diff --git a/.gitignore b/.gitignore index 8958b6b..2c28397 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ .vscode template.json node_modules + +.env.local +next-env.d.ts \ No newline at end of file diff --git a/.next/app-build-manifest.json b/.next/app-build-manifest.json new file mode 100644 index 0000000..df0e97c --- /dev/null +++ b/.next/app-build-manifest.json @@ -0,0 +1,20 @@ +{ + "pages": { + "/page": [ + "static/chunks/webpack.js", + "static/chunks/main-app.js", + "static/chunks/app/page.js" + ], + "/layout": [ + "static/chunks/webpack.js", + "static/chunks/main-app.js", + "static/css/app/layout.css", + "static/chunks/app/layout.js" + ], + "/login/page": [ + "static/chunks/webpack.js", + "static/chunks/main-app.js", + "static/chunks/app/login/page.js" + ] + } +} \ No newline at end of file diff --git a/.next/build-manifest.json b/.next/build-manifest.json new file mode 100644 index 0000000..018cb67 --- /dev/null +++ b/.next/build-manifest.json @@ -0,0 +1,19 @@ +{ + "polyfillFiles": [ + "static/chunks/polyfills.js" + ], + "devFiles": [], + "ampDevFiles": [], + "lowPriorityFiles": [ + "static/development/_buildManifest.js", + "static/development/_ssgManifest.js" + ], + "rootMainFiles": [ + "static/chunks/webpack.js", + "static/chunks/main-app.js" + ], + "pages": { + "/_app": [] + }, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/.next/cache/webpack/client-development/0.pack.gz b/.next/cache/webpack/client-development/0.pack.gz new file mode 100644 index 0000000..b3fd240 Binary files /dev/null and b/.next/cache/webpack/client-development/0.pack.gz differ diff --git a/.next/cache/webpack/client-development/1.pack.gz b/.next/cache/webpack/client-development/1.pack.gz new file mode 100644 index 0000000..46eff6d Binary files /dev/null and b/.next/cache/webpack/client-development/1.pack.gz differ diff --git a/.next/cache/webpack/client-development/2.pack.gz b/.next/cache/webpack/client-development/2.pack.gz new file mode 100644 index 0000000..26df459 Binary files /dev/null and b/.next/cache/webpack/client-development/2.pack.gz differ diff --git a/.next/cache/webpack/client-development/3.pack.gz b/.next/cache/webpack/client-development/3.pack.gz new file mode 100644 index 0000000..3810659 Binary files /dev/null and b/.next/cache/webpack/client-development/3.pack.gz differ diff --git a/.next/cache/webpack/client-development/4.pack.gz b/.next/cache/webpack/client-development/4.pack.gz new file mode 100644 index 0000000..6ebc35b Binary files /dev/null and b/.next/cache/webpack/client-development/4.pack.gz differ diff --git a/.next/cache/webpack/client-development/5.pack.gz b/.next/cache/webpack/client-development/5.pack.gz new file mode 100644 index 0000000..7134c1d Binary files /dev/null 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 new file mode 100644 index 0000000..c2cf97f Binary files /dev/null and b/.next/cache/webpack/client-development/6.pack.gz differ diff --git a/.next/cache/webpack/client-development/index.pack.gz b/.next/cache/webpack/client-development/index.pack.gz new file mode 100644 index 0000000..50bf9c9 Binary files /dev/null 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 new file mode 100644 index 0000000..cb271e8 Binary files /dev/null and b/.next/cache/webpack/client-development/index.pack.gz.old differ diff --git a/.next/cache/webpack/edge-server-development/0.pack.gz b/.next/cache/webpack/edge-server-development/0.pack.gz new file mode 100644 index 0000000..51af056 Binary files /dev/null and b/.next/cache/webpack/edge-server-development/0.pack.gz differ diff --git a/.next/cache/webpack/edge-server-development/index.pack.gz b/.next/cache/webpack/edge-server-development/index.pack.gz new file mode 100644 index 0000000..5cbef14 Binary files /dev/null and b/.next/cache/webpack/edge-server-development/index.pack.gz differ diff --git a/.next/cache/webpack/server-development/0.pack.gz b/.next/cache/webpack/server-development/0.pack.gz new file mode 100644 index 0000000..37d07db Binary files /dev/null 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 new file mode 100644 index 0000000..95d9778 Binary files /dev/null and b/.next/cache/webpack/server-development/1.pack.gz differ diff --git a/.next/cache/webpack/server-development/2.pack.gz b/.next/cache/webpack/server-development/2.pack.gz new file mode 100644 index 0000000..44dc534 Binary files /dev/null and b/.next/cache/webpack/server-development/2.pack.gz differ diff --git a/.next/cache/webpack/server-development/3.pack.gz b/.next/cache/webpack/server-development/3.pack.gz new file mode 100644 index 0000000..879d691 Binary files /dev/null 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 new file mode 100644 index 0000000..5880233 Binary files /dev/null and b/.next/cache/webpack/server-development/4.pack.gz differ diff --git a/.next/cache/webpack/server-development/5.pack.gz b/.next/cache/webpack/server-development/5.pack.gz new file mode 100644 index 0000000..e143afb Binary files /dev/null and b/.next/cache/webpack/server-development/5.pack.gz differ diff --git a/.next/cache/webpack/server-development/index.pack.gz b/.next/cache/webpack/server-development/index.pack.gz new file mode 100644 index 0000000..be779fd Binary files /dev/null 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 new file mode 100644 index 0000000..ca4dcdb Binary files /dev/null and b/.next/cache/webpack/server-development/index.pack.gz.old differ diff --git a/.next/package.json b/.next/package.json new file mode 100644 index 0000000..7156107 --- /dev/null +++ b/.next/package.json @@ -0,0 +1 @@ +{"type": "commonjs"} \ No newline at end of file diff --git a/.next/react-loadable-manifest.json b/.next/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.next/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.next/server/_32c4-_66e9.js b/.next/server/_32c4-_66e9.js new file mode 100644 index 0000000..4ccea19 --- /dev/null +++ b/.next/server/_32c4-_66e9.js @@ -0,0 +1,34 @@ +/* + * 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 = "_32c4-_66e9"; +exports.ids = ["_32c4-_66e9"]; +exports.modules = { + +/***/ "?32c4": +/*!****************************!*\ + !*** bufferutil (ignored) ***! + \****************************/ +/***/ (() => { + +/* (ignored) */ + +/***/ }), + +/***/ "?66e9": +/*!********************************!*\ + !*** utf-8-validate (ignored) ***! + \********************************/ +/***/ (() => { + +/* (ignored) */ + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/app-paths-manifest.json b/.next/server/app-paths-manifest.json new file mode 100644 index 0000000..3d922bb --- /dev/null +++ b/.next/server/app-paths-manifest.json @@ -0,0 +1,4 @@ +{ + "/login/page": "app/login/page.js", + "/page": "app/page.js" +} \ No newline at end of file diff --git a/.next/server/app/_not-found_client-reference-manifest.js b/.next/server/app/_not-found_client-reference-manifest.js new file mode 100644 index 0000000..52df578 --- /dev/null +++ b/.next/server/app/_not-found_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.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/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/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.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/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./components/Code.tsx":{"*":{"id":"(ssr)/./components/Code.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/components/Code.tsx":{"id":"(app-pages-browser)/./components/Code.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false}},"entryCSSFiles":{"/Users/pawanlive/Programming /timetable-app/app/page":[],"/Users/pawanlive/Programming /timetable-app/app/layout":["static/css/app/layout.css"],"/Users/pawanlive/Programming /timetable-app/app/not-found":[]}} \ No newline at end of file diff --git a/.next/server/app/auth/callback/route.js b/.next/server/app/auth/callback/route.js new file mode 100644 index 0000000..5538d5e --- /dev/null +++ b/.next/server/app/auth/callback/route.js @@ -0,0 +1,206 @@ +"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 = "app/auth/callback/route"; +exports.ids = ["app/auth/callback/route"]; +exports.modules = { + +/***/ "../../client/components/action-async-storage.external": +/*!*******************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external.js" ***! + \*******************************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/client/components/action-async-storage.external.js"); + +/***/ }), + +/***/ "../../client/components/request-async-storage.external": +/*!********************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external.js" ***! + \********************************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/client/components/request-async-storage.external.js"); + +/***/ }), + +/***/ "../../client/components/static-generation-async-storage.external": +/*!******************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***! + \******************************************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/client/components/static-generation-async-storage.external.js"); + +/***/ }), + +/***/ "next/dist/compiled/next-server/app-route.runtime.dev.js": +/*!**************************************************************************!*\ + !*** external "next/dist/compiled/next-server/app-route.runtime.dev.js" ***! + \**************************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/compiled/next-server/app-route.runtime.dev.js"); + +/***/ }), + +/***/ "buffer": +/*!*************************!*\ + !*** external "buffer" ***! + \*************************/ +/***/ ((module) => { + +module.exports = require("buffer"); + +/***/ }), + +/***/ "crypto": +/*!*************************!*\ + !*** external "crypto" ***! + \*************************/ +/***/ ((module) => { + +module.exports = require("crypto"); + +/***/ }), + +/***/ "events": +/*!*************************!*\ + !*** external "events" ***! + \*************************/ +/***/ ((module) => { + +module.exports = require("events"); + +/***/ }), + +/***/ "http": +/*!***********************!*\ + !*** external "http" ***! + \***********************/ +/***/ ((module) => { + +module.exports = require("http"); + +/***/ }), + +/***/ "https": +/*!************************!*\ + !*** external "https" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("https"); + +/***/ }), + +/***/ "net": +/*!**********************!*\ + !*** external "net" ***! + \**********************/ +/***/ ((module) => { + +module.exports = require("net"); + +/***/ }), + +/***/ "punycode": +/*!***************************!*\ + !*** external "punycode" ***! + \***************************/ +/***/ ((module) => { + +module.exports = require("punycode"); + +/***/ }), + +/***/ "stream": +/*!*************************!*\ + !*** external "stream" ***! + \*************************/ +/***/ ((module) => { + +module.exports = require("stream"); + +/***/ }), + +/***/ "tls": +/*!**********************!*\ + !*** external "tls" ***! + \**********************/ +/***/ ((module) => { + +module.exports = require("tls"); + +/***/ }), + +/***/ "url": +/*!**********************!*\ + !*** external "url" ***! + \**********************/ +/***/ ((module) => { + +module.exports = require("url"); + +/***/ }), + +/***/ "zlib": +/*!***********************!*\ + !*** external "zlib" ***! + \***********************/ +/***/ ((module) => { + +module.exports = require("zlib"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fauth%2Fcallback%2Froute&page=%2Fauth%2Fcallback%2Froute&appPaths=&pagePath=private-next-app-dir%2Fauth%2Fcallback%2Froute.ts&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fauth%2Fcallback%2Froute&page=%2Fauth%2Fcallback%2Froute&appPaths=&pagePath=private-next-app-dir%2Fauth%2Fcallback%2Froute.ts&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=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 */ headerHooks: () => (/* binding */ headerHooks),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ requestAsyncStorage: () => (/* binding */ requestAsyncStorage),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ serverHooks: () => (/* binding */ serverHooks),\n/* harmony export */ staticGenerationAsyncStorage: () => (/* binding */ staticGenerationAsyncStorage),\n/* harmony export */ staticGenerationBailout: () => (/* binding */ staticGenerationBailout)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-route/module.compiled */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/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_pawanlive_Programming_timetable_app_app_auth_callback_route_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app/auth/callback/route.ts */ \"(rsc)/./app/auth/callback/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_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppRouteRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_ROUTE,\n page: \"/auth/callback/route\",\n pathname: \"/auth/callback\",\n filename: \"route\",\n bundlePath: \"app/auth/callback/route\"\n },\n resolvedPagePath: \"/Users/pawanlive/Programming /timetable-app/app/auth/callback/route.ts\",\n nextConfigOutput,\n userland: _Users_pawanlive_Programming_timetable_app_app_auth_callback_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 { requestAsyncStorage, staticGenerationAsyncStorage, serverHooks, headerHooks, staticGenerationBailout } = routeModule;\nconst originalPathname = \"/auth/callback/route\";\nfunction patchFetch() {\n return (0,next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__.patchFetch)({\n serverHooks,\n staticGenerationAsyncStorage\n });\n}\n\n\n//# sourceMappingURL=app-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZhdXRoJTJGY2FsbGJhY2slMkZyb3V0ZSZwYWdlPSUyRmF1dGglMkZjYWxsYmFjayUyRnJvdXRlJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmF1dGglMkZjYWxsYmFjayUyRnJvdXRlLnRzJmFwcERpcj0lMkZVc2VycyUyRnBhd2FubGl2ZSUyRlByb2dyYW1taW5nJTIwJTJGdGltZXRhYmxlLWFwcCUyRmFwcCZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzJnJvb3REaXI9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAmaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXNHO0FBQ3ZDO0FBQ2M7QUFDc0I7QUFDbkc7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdIQUFtQjtBQUMzQztBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFlBQVk7QUFDWixDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsUUFBUSx1R0FBdUc7QUFDL0c7QUFDQTtBQUNBLFdBQVcsNEVBQVc7QUFDdEI7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUM2Sjs7QUFFN0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vPzRkMTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwUm91dGVSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBwYXRjaEZldGNoIGFzIF9wYXRjaEZldGNoIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3BhdGNoLWZldGNoXCI7XG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvYXV0aC9jYWxsYmFjay9yb3V0ZS50c1wiO1xuLy8gV2UgaW5qZWN0IHRoZSBuZXh0Q29uZmlnT3V0cHV0IGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCBuZXh0Q29uZmlnT3V0cHV0ID0gXCJcIlxuY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUm91dGVSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1JPVVRFLFxuICAgICAgICBwYWdlOiBcIi9hdXRoL2NhbGxiYWNrL3JvdXRlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9hdXRoL2NhbGxiYWNrXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcInJvdXRlXCIsXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiYXBwL2F1dGgvY2FsbGJhY2svcm91dGVcIlxuICAgIH0sXG4gICAgcmVzb2x2ZWRQYWdlUGF0aDogXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9hdXRoL2NhbGxiYWNrL3JvdXRlLnRzXCIsXG4gICAgbmV4dENvbmZpZ091dHB1dCxcbiAgICB1c2VybGFuZFxufSk7XG4vLyBQdWxsIG91dCB0aGUgZXhwb3J0cyB0aGF0IHdlIG5lZWQgdG8gZXhwb3NlIGZyb20gdGhlIG1vZHVsZS4gVGhpcyBzaG91bGRcbi8vIGJlIGVsaW1pbmF0ZWQgd2hlbiB3ZSd2ZSBtb3ZlZCB0aGUgb3RoZXIgcm91dGVzIHRvIHRoZSBuZXcgZm9ybWF0LiBUaGVzZVxuLy8gYXJlIHVzZWQgdG8gaG9vayBpbnRvIHRoZSByb3V0ZS5cbmNvbnN0IHsgcmVxdWVzdEFzeW5jU3RvcmFnZSwgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZSwgc2VydmVySG9va3MsIGhlYWRlckhvb2tzLCBzdGF0aWNHZW5lcmF0aW9uQmFpbG91dCB9ID0gcm91dGVNb2R1bGU7XG5jb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvYXV0aC9jYWxsYmFjay9yb3V0ZVwiO1xuZnVuY3Rpb24gcGF0Y2hGZXRjaCgpIHtcbiAgICByZXR1cm4gX3BhdGNoRmV0Y2goe1xuICAgICAgICBzZXJ2ZXJIb29rcyxcbiAgICAgICAgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZVxuICAgIH0pO1xufVxuZXhwb3J0IHsgcm91dGVNb2R1bGUsIHJlcXVlc3RBc3luY1N0b3JhZ2UsIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UsIHNlcnZlckhvb2tzLCBoZWFkZXJIb29rcywgc3RhdGljR2VuZXJhdGlvbkJhaWxvdXQsIG9yaWdpbmFsUGF0aG5hbWUsIHBhdGNoRmV0Y2gsICB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fauth%2Fcallback%2Froute&page=%2Fauth%2Fcallback%2Froute&appPaths=&pagePath=private-next-app-dir%2Fauth%2Fcallback%2Froute.ts&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(rsc)/./app/auth/callback/route.ts": +/*!************************************!*\ + !*** ./app/auth/callback/route.ts ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GET: () => (/* binding */ GET)\n/* harmony export */ });\n/* harmony import */ var _utils_supabase_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/supabase/server */ \"(rsc)/./utils/supabase/server.ts\");\n/* harmony import */ var next_dist_server_web_exports_next_response__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/web/exports/next-response */ \"(rsc)/./node_modules/next/dist/server/web/exports/next-response.js\");\n/* harmony import */ var next_headers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/headers */ \"(rsc)/./node_modules/next/dist/api/headers.js\");\n\n\n\nasync function GET(request) {\n // The `/auth/callback` route is required for the server-side auth flow implemented\n // by the Auth Helpers package. It exchanges an auth code for the user's session.\n // https://supabase.com/docs/guides/auth/auth-helpers/nextjs#managing-sign-in-with-code-exchange\n const requestUrl = new URL(request.url);\n const code = requestUrl.searchParams.get(\"code\");\n if (code) {\n const cookieStore = (0,next_headers__WEBPACK_IMPORTED_MODULE_2__.cookies)();\n const supabase = (0,_utils_supabase_server__WEBPACK_IMPORTED_MODULE_0__.createClient)(cookieStore);\n await supabase.auth.exchangeCodeForSession(code);\n }\n // URL to redirect to after sign in process completes\n return next_dist_server_web_exports_next_response__WEBPACK_IMPORTED_MODULE_1__[\"default\"].redirect(requestUrl.origin);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvYXV0aC9jYWxsYmFjay9yb3V0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVEO0FBQ1o7QUFDSjtBQUVoQyxlQUFlRyxJQUFJQyxPQUFnQjtJQUN4QyxtRkFBbUY7SUFDbkYsaUZBQWlGO0lBQ2pGLGdHQUFnRztJQUNoRyxNQUFNQyxhQUFhLElBQUlDLElBQUlGLFFBQVFHLEdBQUc7SUFDdEMsTUFBTUMsT0FBT0gsV0FBV0ksWUFBWSxDQUFDQyxHQUFHLENBQUM7SUFFekMsSUFBSUYsTUFBTTtRQUNSLE1BQU1HLGNBQWNULHFEQUFPQTtRQUMzQixNQUFNVSxXQUFXWixvRUFBWUEsQ0FBQ1c7UUFDOUIsTUFBTUMsU0FBU0MsSUFBSSxDQUFDQyxzQkFBc0IsQ0FBQ047SUFDN0M7SUFFQSxxREFBcUQ7SUFDckQsT0FBT1Asa0ZBQVlBLENBQUNjLFFBQVEsQ0FBQ1YsV0FBV1csTUFBTTtBQUNoRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC9hdXRoL2NhbGxiYWNrL3JvdXRlLnRzPzI1ZjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ2xpZW50IH0gZnJvbSBcIkAvdXRpbHMvc3VwYWJhc2Uvc2VydmVyXCI7XG5pbXBvcnQgeyBOZXh0UmVzcG9uc2UgfSBmcm9tIFwibmV4dC9zZXJ2ZXJcIjtcbmltcG9ydCB7IGNvb2tpZXMgfSBmcm9tIFwibmV4dC9oZWFkZXJzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBHRVQocmVxdWVzdDogUmVxdWVzdCkge1xuICAvLyBUaGUgYC9hdXRoL2NhbGxiYWNrYCByb3V0ZSBpcyByZXF1aXJlZCBmb3IgdGhlIHNlcnZlci1zaWRlIGF1dGggZmxvdyBpbXBsZW1lbnRlZFxuICAvLyBieSB0aGUgQXV0aCBIZWxwZXJzIHBhY2thZ2UuIEl0IGV4Y2hhbmdlcyBhbiBhdXRoIGNvZGUgZm9yIHRoZSB1c2VyJ3Mgc2Vzc2lvbi5cbiAgLy8gaHR0cHM6Ly9zdXBhYmFzZS5jb20vZG9jcy9ndWlkZXMvYXV0aC9hdXRoLWhlbHBlcnMvbmV4dGpzI21hbmFnaW5nLXNpZ24taW4td2l0aC1jb2RlLWV4Y2hhbmdlXG4gIGNvbnN0IHJlcXVlc3RVcmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsKTtcbiAgY29uc3QgY29kZSA9IHJlcXVlc3RVcmwuc2VhcmNoUGFyYW1zLmdldChcImNvZGVcIik7XG5cbiAgaWYgKGNvZGUpIHtcbiAgICBjb25zdCBjb29raWVTdG9yZSA9IGNvb2tpZXMoKTtcbiAgICBjb25zdCBzdXBhYmFzZSA9IGNyZWF0ZUNsaWVudChjb29raWVTdG9yZSk7XG4gICAgYXdhaXQgc3VwYWJhc2UuYXV0aC5leGNoYW5nZUNvZGVGb3JTZXNzaW9uKGNvZGUpO1xuICB9XG5cbiAgLy8gVVJMIHRvIHJlZGlyZWN0IHRvIGFmdGVyIHNpZ24gaW4gcHJvY2VzcyBjb21wbGV0ZXNcbiAgcmV0dXJuIE5leHRSZXNwb25zZS5yZWRpcmVjdChyZXF1ZXN0VXJsLm9yaWdpbik7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlQ2xpZW50IiwiTmV4dFJlc3BvbnNlIiwiY29va2llcyIsIkdFVCIsInJlcXVlc3QiLCJyZXF1ZXN0VXJsIiwiVVJMIiwidXJsIiwiY29kZSIsInNlYXJjaFBhcmFtcyIsImdldCIsImNvb2tpZVN0b3JlIiwic3VwYWJhc2UiLCJhdXRoIiwiZXhjaGFuZ2VDb2RlRm9yU2Vzc2lvbiIsInJlZGlyZWN0Iiwib3JpZ2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/auth/callback/route.ts\n"); + +/***/ }), + +/***/ "(rsc)/./utils/supabase/server.ts": +/*!**********************************!*\ + !*** ./utils/supabase/server.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createClient: () => (/* binding */ createClient)\n/* harmony export */ });\n/* harmony import */ var _supabase_ssr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/ssr */ \"(rsc)/./node_modules/@supabase/ssr/dist/index.mjs\");\n\nconst createClient = (cookieStore)=>{\n return (0,_supabase_ssr__WEBPACK_IMPORTED_MODULE_0__.createServerClient)(\"https://xqnaddwvcfzffvygbikl.supabase.co\", \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InhxbmFkZHd2Y2Z6ZmZ2eWdiaWtsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDcyMDQyMjYsImV4cCI6MjAyMjc4MDIyNn0.5cAxDA5obebKSe8iiDkfVe7XtU9KAX5iOZsGMUoX99A\", {\n cookies: {\n get (name) {\n return cookieStore.get(name)?.value;\n },\n set (name, value, options) {\n try {\n cookieStore.set({\n name,\n value,\n ...options\n });\n } catch (error) {\n // The `set` method was called from a Server Component.\n // This can be ignored if you have middleware refreshing\n // user sessions.\n }\n },\n remove (name, options) {\n try {\n cookieStore.set({\n name,\n value: \"\",\n ...options\n });\n } catch (error) {\n // The `delete` method was called from a Server Component.\n // This can be ignored if you have middleware refreshing\n // user sessions.\n }\n }\n }\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi91dGlscy9zdXBhYmFzZS9zZXJ2ZXIudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUU7QUFHaEUsTUFBTUMsZUFBZSxDQUFDQztJQUMzQixPQUFPRixpRUFBa0JBLENBQ3ZCRywwQ0FBb0MsRUFDcENBLGtOQUF5QyxFQUN6QztRQUNFSSxTQUFTO1lBQ1BDLEtBQUlDLElBQVk7Z0JBQ2QsT0FBT1AsWUFBWU0sR0FBRyxDQUFDQyxPQUFPQztZQUNoQztZQUNBQyxLQUFJRixJQUFZLEVBQUVDLEtBQWEsRUFBRUUsT0FBc0I7Z0JBQ3JELElBQUk7b0JBQ0ZWLFlBQVlTLEdBQUcsQ0FBQzt3QkFBRUY7d0JBQU1DO3dCQUFPLEdBQUdFLE9BQU87b0JBQUM7Z0JBQzVDLEVBQUUsT0FBT0MsT0FBTztnQkFDZCx1REFBdUQ7Z0JBQ3ZELHdEQUF3RDtnQkFDeEQsaUJBQWlCO2dCQUNuQjtZQUNGO1lBQ0FDLFFBQU9MLElBQVksRUFBRUcsT0FBc0I7Z0JBQ3pDLElBQUk7b0JBQ0ZWLFlBQVlTLEdBQUcsQ0FBQzt3QkFBRUY7d0JBQU1DLE9BQU87d0JBQUksR0FBR0UsT0FBTztvQkFBQztnQkFDaEQsRUFBRSxPQUFPQyxPQUFPO2dCQUNkLDBEQUEwRDtnQkFDMUQsd0RBQXdEO2dCQUN4RCxpQkFBaUI7Z0JBQ25CO1lBQ0Y7UUFDRjtJQUNGO0FBRUosRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3V0aWxzL3N1cGFiYXNlL3NlcnZlci50cz8wZjU1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlcnZlckNsaWVudCwgdHlwZSBDb29raWVPcHRpb25zIH0gZnJvbSBcIkBzdXBhYmFzZS9zc3JcIjtcbmltcG9ydCB7IGNvb2tpZXMgfSBmcm9tIFwibmV4dC9oZWFkZXJzXCI7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDbGllbnQgPSAoY29va2llU3RvcmU6IFJldHVyblR5cGU8dHlwZW9mIGNvb2tpZXM+KSA9PiB7XG4gIHJldHVybiBjcmVhdGVTZXJ2ZXJDbGllbnQoXG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfU1VQQUJBU0VfVVJMISxcbiAgICBwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19TVVBBQkFTRV9BTk9OX0tFWSEsXG4gICAge1xuICAgICAgY29va2llczoge1xuICAgICAgICBnZXQobmFtZTogc3RyaW5nKSB7XG4gICAgICAgICAgcmV0dXJuIGNvb2tpZVN0b3JlLmdldChuYW1lKT8udmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IENvb2tpZU9wdGlvbnMpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29va2llU3RvcmUuc2V0KHsgbmFtZSwgdmFsdWUsIC4uLm9wdGlvbnMgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFRoZSBgc2V0YCBtZXRob2Qgd2FzIGNhbGxlZCBmcm9tIGEgU2VydmVyIENvbXBvbmVudC5cbiAgICAgICAgICAgIC8vIFRoaXMgY2FuIGJlIGlnbm9yZWQgaWYgeW91IGhhdmUgbWlkZGxld2FyZSByZWZyZXNoaW5nXG4gICAgICAgICAgICAvLyB1c2VyIHNlc3Npb25zLlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlKG5hbWU6IHN0cmluZywgb3B0aW9uczogQ29va2llT3B0aW9ucykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb29raWVTdG9yZS5zZXQoeyBuYW1lLCB2YWx1ZTogXCJcIiwgLi4ub3B0aW9ucyB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gVGhlIGBkZWxldGVgIG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gYSBTZXJ2ZXIgQ29tcG9uZW50LlxuICAgICAgICAgICAgLy8gVGhpcyBjYW4gYmUgaWdub3JlZCBpZiB5b3UgaGF2ZSBtaWRkbGV3YXJlIHJlZnJlc2hpbmdcbiAgICAgICAgICAgIC8vIHVzZXIgc2Vzc2lvbnMuXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVTZXJ2ZXJDbGllbnQiLCJjcmVhdGVDbGllbnQiLCJjb29raWVTdG9yZSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19TVVBBQkFTRV9VUkwiLCJORVhUX1BVQkxJQ19TVVBBQkFTRV9BTk9OX0tFWSIsImNvb2tpZXMiLCJnZXQiLCJuYW1lIiwidmFsdWUiLCJzZXQiLCJvcHRpb25zIiwiZXJyb3IiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./utils/supabase/server.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","vendor-chunks/@supabase","vendor-chunks/tr46","vendor-chunks/whatwg-url","vendor-chunks/ramda","vendor-chunks/cookie","vendor-chunks/webidl-conversions"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fauth%2Fcallback%2Froute&page=%2Fauth%2Fcallback%2Froute&appPaths=&pagePath=private-next-app-dir%2Fauth%2Fcallback%2Froute.ts&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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/dashboard/page.js b/.next/server/app/dashboard/page.js new file mode 100644 index 0000000..816d5ed --- /dev/null +++ b/.next/server/app/dashboard/page.js @@ -0,0 +1,231 @@ +/* + * 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/dashboard/page"; +exports.ids = ["app/dashboard/page"]; +exports.modules = { + +/***/ "./action-async-storage.external": +/*!****************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external" ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/action-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/action-async-storage.external": +/*!*******************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external.js" ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/action-async-storage.external.js"); + +/***/ }), + +/***/ "./request-async-storage.external": +/*!*****************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external" ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/request-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/request-async-storage.external": +/*!********************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external.js" ***! + \********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/request-async-storage.external.js"); + +/***/ }), + +/***/ "./static-generation-async-storage.external": +/*!***************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external" ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/static-generation-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/static-generation-async-storage.external": +/*!******************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***! + \******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/static-generation-async-storage.external.js"); + +/***/ }), + +/***/ "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"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ "url": +/*!**********************!*\ + !*** external "url" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("url"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fpage&page=%2Fdashboard%2Fpage&appPaths=%2Fdashboard%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fpage&page=%2Fdashboard%2Fpage&appPaths=%2Fdashboard%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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 */ originalPathname: () => (/* binding */ originalPathname),\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?9d97\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/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\",\"originalPathname\",\"__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__);\n\"TURBOPACK { transition: next-ssr }\";\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: [\n 'dashboard',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/dashboard/page.tsx */ \"(rsc)/./app/dashboard/page.tsx\")), \"/Users/pawanlive/Programming /timetable-app/app/dashboard/page.tsx\"],\n \n }]\n },\n {\n \n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\"))).default(props))],\n twitter: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\"))).default(props))],\n manifest: undefined\n }\n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\"],\n'not-found': [() => 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)), \"next/dist/client/components/not-found-error\"],\n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\"))).default(props))],\n twitter: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\"))).default(props))],\n manifest: undefined\n }\n }\n ]\n }.children;\nconst pages = [\"/Users/pawanlive/Programming /timetable-app/app/dashboard/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/dashboard/page\";\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/dashboard/page\",\n pathname: \"/dashboard\",\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZkYXNoYm9hcmQlMkZwYWdlJnBhZ2U9JTJGZGFzaGJvYXJkJTJGcGFnZSZhcHBQYXRocz0lMkZkYXNoYm9hcmQlMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGZGFzaGJvYXJkJTJGcGFnZS50c3gmYXBwRGlyPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRnBhd2FubGl2ZSUyRlByb2dyYW1taW5nJTIwJTJGdGltZXRhYmxlLWFwcCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWEsc0JBQXNCO0FBQ2lFO0FBQ3JDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQyx1QkFBdUIsNEpBQXVHO0FBQzlIO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsOGVBQXVQO0FBQzNSO0FBQ0EseUNBQXlDLGtnQkFBaVE7QUFDMVMsdUNBQXVDLDBmQUE2UDtBQUNwUztBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHlCQUF5Qiw0SUFBK0Y7QUFDeEgsb0JBQW9CLDBOQUFnRjtBQUNwRztBQUNBLG9DQUFvQyw4ZUFBdVA7QUFDM1I7QUFDQSx5Q0FBeUMsa2dCQUFpUTtBQUMxUyx1Q0FBdUMsMGZBQTZQO0FBQ3BTO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBQzZEO0FBQ3BGLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ3VEO0FBQ3ZEO0FBQ08sd0JBQXdCLDhHQUFrQjtBQUNqRDtBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vPzQ3ODAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJUVVJCT1BBQ0sgeyB0cmFuc2l0aW9uOiBuZXh0LXNzciB9XCI7XG5pbXBvcnQgeyBBcHBQYWdlUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kXCI7XG4vLyBXZSBpbmplY3QgdGhlIHRyZWUgYW5kIHBhZ2VzIGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCB0cmVlID0ge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAnJyxcbiAgICAgICAge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAnZGFzaGJvYXJkJyxcbiAgICAgICAge1xuICAgICAgICBjaGlsZHJlbjogWydfX1BBR0VfXycsIHt9LCB7XG4gICAgICAgICAgcGFnZTogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvZGFzaGJvYXJkL3BhZ2UudHN4XCIpLCBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2Rhc2hib2FyZC9wYWdlLnRzeFwiXSxcbiAgICAgICAgICBcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgaWNvbjogWyhhc3luYyAocHJvcHMpID0+IChhd2FpdCBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQtbWV0YWRhdGEtaW1hZ2UtbG9hZGVyP3R5cGU9ZmF2aWNvbiZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9mYXZpY29uLmljbz9fX25leHRfbWV0YWRhdGFfX1wiKSkuZGVmYXVsdChwcm9wcykpXSxcbiAgICBhcHBsZTogW10sXG4gICAgb3BlbkdyYXBoOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT1vcGVuR3JhcGgmc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvb3BlbmdyYXBoLWltYWdlLnBuZz9fX25leHRfbWV0YWRhdGFfX1wiKSkuZGVmYXVsdChwcm9wcykpXSxcbiAgICB0d2l0dGVyOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT10d2l0dGVyJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzIS9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL3R3aXR0ZXItaW1hZ2UucG5nP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIG1hbmlmZXN0OiB1bmRlZmluZWRcbiAgfVxuICAgICAgfVxuICAgICAgXVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAnbGF5b3V0JzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvbGF5b3V0LnRzeFwiKSwgXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9sYXlvdXQudHN4XCJdLFxuJ25vdC1mb3VuZCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIiksIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiXSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICBpY29uOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT1mYXZpY29uJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzIS9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2Zhdmljb24uaWNvP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIGFwcGxlOiBbXSxcbiAgICBvcGVuR3JhcGg6IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPW9wZW5HcmFwaCZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9vcGVuZ3JhcGgtaW1hZ2UucG5nP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIHR3aXR0ZXI6IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPXR3aXR0ZXImc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvdHdpdHRlci1pbWFnZS5wbmc/X19uZXh0X21ldGFkYXRhX19cIikpLmRlZmF1bHQocHJvcHMpKV0sXG4gICAgbWFuaWZlc3Q6IHVuZGVmaW5lZFxuICB9XG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LmNoaWxkcmVuO1xuY29uc3QgcGFnZXMgPSBbXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9kYXNoYm9hcmQvcGFnZS50c3hcIl07XG5leHBvcnQgeyB0cmVlLCBwYWdlcyB9O1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHbG9iYWxFcnJvciB9IGZyb20gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnlcIjtcbmNvbnN0IF9fbmV4dF9hcHBfcmVxdWlyZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfX1xuY29uc3QgX19uZXh0X2FwcF9sb2FkX2NodW5rX18gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKVxuZXhwb3J0IGNvbnN0IG9yaWdpbmFsUGF0aG5hbWUgPSBcIi9kYXNoYm9hcmQvcGFnZVwiO1xuZXhwb3J0IGNvbnN0IF9fbmV4dF9hcHBfXyA9IHtcbiAgICByZXF1aXJlOiBfX25leHRfYXBwX3JlcXVpcmVfXyxcbiAgICBsb2FkQ2h1bms6IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fXG59O1xuZXhwb3J0ICogZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9lbnRyeS1iYXNlXCI7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBQYWdlUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICBwYWdlOiBcIi9kYXNoYm9hcmQvcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvZGFzaGJvYXJkXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogXCJcIixcbiAgICAgICAgZmlsZW5hbWU6IFwiXCIsXG4gICAgICAgIGFwcFBhdGhzOiBbXVxuICAgIH0sXG4gICAgdXNlcmxhbmQ6IHtcbiAgICAgICAgbG9hZGVyVHJlZTogdHJlZVxuICAgIH1cbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcGFnZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fpage&page=%2Fdashboard%2Fpage&appPaths=%2Fdashboard%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&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/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\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));\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));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\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));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZhcHAtcm91dGVyLmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZlcnJvci1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXVJO0FBQ3ZJLDBPQUEySTtBQUMzSSx3T0FBMEk7QUFDMUksa1BBQStJO0FBQy9JLHNRQUF5SjtBQUN6SiIsInNvdXJjZXMiOlsid2VicGFjazovLy8/MDUwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWJvdW5kYXJ5LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%22path%22%3A%22node_modules%2Fgeist%2Fdist%2Fsans.js%22%2C%22import%22%3A%22%22%2C%22arguments%22%3A%5B%7B%22src%22%3A%22.%2Ffonts%2Fgeist-sans%2FGeist-Variable.woff2%22%2C%22variable%22%3A%22--font-geist-sans%22%2C%22weight%22%3A%22100%20900%22%7D%5D%2C%22variableName%22%3A%22GeistSans%22%7D&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Fglobals.css&server=true!": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%22path%22%3A%22node_modules%2Fgeist%2Fdist%2Fsans.js%22%2C%22import%22%3A%22%22%2C%22arguments%22%3A%5B%7B%22src%22%3A%22.%2Ffonts%2Fgeist-sans%2FGeist-Variable.woff2%22%2C%22variable%22%3A%22--font-geist-sans%22%2C%22weight%22%3A%22100%20900%22%7D%5D%2C%22variableName%22%3A%22GeistSans%22%7D&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Fglobals.css&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)/./app/globals.css": +/*!*************************!*\ + !*** ./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__ = (\"ac0d597278e1\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hcHAvZ2xvYmFscy5jc3M/YTFhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcImFjMGQ1OTcyNzhlMVwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n"); + +/***/ }), + +/***/ "(rsc)/./app/dashboard/page.tsx": +/*!********************************!*\ + !*** ./app/dashboard/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\": () => (__WEBPACK_DEFAULT_EXPORT__)\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/future/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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst Dashboard = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: \"Hello world\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/dashboard/page.tsx\",\n lineNumber: 6,\n columnNumber: 10\n }, undefined);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Dashboard);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZGFzaGJvYXJkL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUEwQjtBQUkxQixNQUFNQyxZQUFZLENBQUNDO0lBQ2pCLHFCQUFPLDhEQUFDQztrQkFBSTs7Ozs7O0FBQ2Q7QUFFQSxpRUFBZUYsU0FBU0EsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC9kYXNoYm9hcmQvcGFnZS50c3g/ZDEyNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbnR5cGUgUHJvcHMgPSB7fTtcblxuY29uc3QgRGFzaGJvYXJkID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICByZXR1cm4gPGRpdj5IZWxsbyB3b3JsZDwvZGl2Pjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERhc2hib2FyZDtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkRhc2hib2FyZCIsInByb3BzIiwiZGl2Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/dashboard/page.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./app/layout.tsx": +/*!************************!*\ + !*** ./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/future/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 geist_font_sans__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! geist/font/sans */ \"(rsc)/./node_modules/geist/dist/sans.js\");\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n\n\n\nconst defaultUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : \"http://localhost:3000\";\nconst metadata = {\n metadataBase: new URL(defaultUrl),\n title: \"Next.js and Supabase Starter Kit\",\n description: \"The fastest way to build apps with Next.js and Supabase\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n className: geist_font_sans__WEBPACK_IMPORTED_MODULE_1__.GeistSans.className,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: \"bg-background text-foreground\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen flex flex-col items-center\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 22,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 21,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 20,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTRDO0FBQ3JCO0FBRXZCLE1BQU1DLGFBQWFDLFFBQVFDLEdBQUcsQ0FBQ0MsVUFBVSxHQUNyQyxDQUFDLFFBQVEsRUFBRUYsUUFBUUMsR0FBRyxDQUFDQyxVQUFVLENBQUMsQ0FBQyxHQUNuQztBQUVHLE1BQU1DLFdBQVc7SUFDdEJDLGNBQWMsSUFBSUMsSUFBSU47SUFDdEJPLE9BQU87SUFDUEMsYUFBYTtBQUNmLEVBQUU7QUFFYSxTQUFTQyxXQUFXLEVBQ2pDQyxRQUFRLEVBR1Q7SUFDQyxxQkFDRSw4REFBQ0M7UUFBS0MsTUFBSztRQUFLQyxXQUFXZCxzREFBU0EsQ0FBQ2MsU0FBUztrQkFDNUMsNEVBQUNDO1lBQUtELFdBQVU7c0JBQ2QsNEVBQUNFO2dCQUFLRixXQUFVOzBCQUNiSDs7Ozs7Ozs7Ozs7Ozs7OztBQUtYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXBwL2xheW91dC50c3g/OTk4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZWlzdFNhbnMgfSBmcm9tIFwiZ2Vpc3QvZm9udC9zYW5zXCI7XG5pbXBvcnQgXCIuL2dsb2JhbHMuY3NzXCI7XG5cbmNvbnN0IGRlZmF1bHRVcmwgPSBwcm9jZXNzLmVudi5WRVJDRUxfVVJMXG4gID8gYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5WRVJDRUxfVVJMfWBcbiAgOiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiO1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGEgPSB7XG4gIG1ldGFkYXRhQmFzZTogbmV3IFVSTChkZWZhdWx0VXJsKSxcbiAgdGl0bGU6IFwiTmV4dC5qcyBhbmQgU3VwYWJhc2UgU3RhcnRlciBLaXRcIixcbiAgZGVzY3JpcHRpb246IFwiVGhlIGZhc3Rlc3Qgd2F5IHRvIGJ1aWxkIGFwcHMgd2l0aCBOZXh0LmpzIGFuZCBTdXBhYmFzZVwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XG4gIGNoaWxkcmVuLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufSkge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJlblwiIGNsYXNzTmFtZT17R2Vpc3RTYW5zLmNsYXNzTmFtZX0+XG4gICAgICA8Ym9keSBjbGFzc05hbWU9XCJiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvbWFpbj5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiR2Vpc3RTYW5zIiwiZGVmYXVsdFVybCIsInByb2Nlc3MiLCJlbnYiLCJWRVJDRUxfVVJMIiwibWV0YWRhdGEiLCJtZXRhZGF0YUJhc2UiLCJVUkwiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwiaHRtbCIsImxhbmciLCJjbGFzc05hbWUiLCJib2R5IiwibWFpbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__": +/*!**********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ ***! + \**********************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"favicon.ico\")\n\n return [{\n ...imageData,\n url: imageUrl + \"\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPWZhdmljb24mc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhLi9hcHAvZmF2aWNvbi5pY28/X19uZXh0X21ldGFkYXRhX18iLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsRUFBaUY7O0FBRWpGLEVBQUUsaUVBQWU7QUFDakIsdUJBQXVCO0FBQ3ZCLHFCQUFxQiw4RkFBbUI7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC9mYXZpY29uLmljbz9mYmM0Il0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3gtaWNvblwiLFwic2l6ZXNcIjpcIjE2eDE2XCJ9XG4gICAgY29uc3QgaW1hZ2VVcmwgPSBmaWxsTWV0YWRhdGFTZWdtZW50KFwiLlwiLCBwcm9wcy5wYXJhbXMsIFwiZmF2aWNvbi5pY29cIilcblxuICAgIHJldHVybiBbe1xuICAgICAgLi4uaW1hZ2VEYXRhLFxuICAgICAgdXJsOiBpbWFnZVVybCArIFwiXCIsXG4gICAgfV1cbiAgfSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__": +/*!********************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ ***! + \********************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/png\",\"width\":1200,\"height\":600}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"opengraph-image.png\")\n\n return [{\n ...imageData,\n url: imageUrl + \"?2e0bc232e210f89d\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPW9wZW5HcmFwaCZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEuL2FwcC9vcGVuZ3JhcGgtaW1hZ2UucG5nP19fbmV4dF9tZXRhZGF0YV9fIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLEVBQWlGOztBQUVqRixFQUFFLGlFQUFlO0FBQ2pCLHVCQUF1QjtBQUN2QixxQkFBcUIsOEZBQW1COztBQUV4QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hcHAvb3BlbmdyYXBoLWltYWdlLnBuZz8yYTEwIl0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3BuZ1wiLFwid2lkdGhcIjoxMjAwLFwiaGVpZ2h0XCI6NjAwfVxuICAgIGNvbnN0IGltYWdlVXJsID0gZmlsbE1ldGFkYXRhU2VnbWVudChcIi5cIiwgcHJvcHMucGFyYW1zLCBcIm9wZW5ncmFwaC1pbWFnZS5wbmdcIilcblxuICAgIHJldHVybiBbe1xuICAgICAgLi4uaW1hZ2VEYXRhLFxuICAgICAgdXJsOiBpbWFnZVVybCArIFwiPzJlMGJjMjMyZTIxMGY4OWRcIixcbiAgICB9XVxuICB9Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ ***! + \****************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/png\",\"width\":1200,\"height\":600}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"twitter-image.png\")\n\n return [{\n ...imageData,\n url: imageUrl + \"?2e0bc232e210f89d\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPXR3aXR0ZXImc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhLi9hcHAvdHdpdHRlci1pbWFnZS5wbmc/X19uZXh0X21ldGFkYXRhX18iLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsRUFBaUY7O0FBRWpGLEVBQUUsaUVBQWU7QUFDakIsdUJBQXVCO0FBQ3ZCLHFCQUFxQiw4RkFBbUI7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC90d2l0dGVyLWltYWdlLnBuZz8zOGRmIl0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3BuZ1wiLFwid2lkdGhcIjoxMjAwLFwiaGVpZ2h0XCI6NjAwfVxuICAgIGNvbnN0IGltYWdlVXJsID0gZmlsbE1ldGFkYXRhU2VnbWVudChcIi5cIiwgcHJvcHMucGFyYW1zLCBcInR3aXR0ZXItaW1hZ2UucG5nXCIpXG5cbiAgICByZXR1cm4gW3tcbiAgICAgIC4uLmltYWdlRGF0YSxcbiAgICAgIHVybDogaW1hZ2VVcmwgKyBcIj8yZTBiYzIzMmUyMTBmODlkXCIsXG4gICAgfV1cbiAgfSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\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","vendor-chunks/@swc","vendor-chunks/geist"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fpage&page=%2Fdashboard%2Fpage&appPaths=%2Fdashboard%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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/dashboard/page_client-reference-manifest.js b/.next/server/app/dashboard/page_client-reference-manifest.js new file mode 100644 index 0000000..a4e83c1 --- /dev/null +++ b/.next/server/app/dashboard/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/dashboard/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.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/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/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.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/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./components/Code.tsx":{"*":{"id":"(ssr)/./components/Code.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/components/Code.tsx":{"id":"(app-pages-browser)/./components/Code.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false}},"entryCSSFiles":{"/Users/pawanlive/Programming /timetable-app/app/page":[],"/Users/pawanlive/Programming /timetable-app/app/layout":["static/css/app/layout.css"],"/Users/pawanlive/Programming /timetable-app/app/dashboard/page":[]}} \ No newline at end of file diff --git a/.next/server/app/favicon.ico/route.js b/.next/server/app/favicon.ico/route.js new file mode 100644 index 0000000..98205c3 --- /dev/null +++ b/.next/server/app/favicon.ico/route.js @@ -0,0 +1,56 @@ +"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 = "app/favicon.ico/route"; +exports.ids = ["app/favicon.ico/route"]; +exports.modules = { + +/***/ "next/dist/compiled/next-server/app-route.runtime.dev.js": +/*!**************************************************************************!*\ + !*** external "next/dist/compiled/next-server/app-route.runtime.dev.js" ***! + \**************************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/compiled/next-server/app-route.runtime.dev.js"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Ffavicon.ico%2Froute&page=%2Ffavicon.ico%2Froute&appPaths=&pagePath=private-next-app-dir%2Ffavicon.ico&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Ffavicon.ico%2Froute&page=%2Ffavicon.ico%2Froute&appPaths=&pagePath=private-next-app-dir%2Ffavicon.ico&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=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 */ headerHooks: () => (/* binding */ headerHooks),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ requestAsyncStorage: () => (/* binding */ requestAsyncStorage),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ serverHooks: () => (/* binding */ serverHooks),\n/* harmony export */ staticGenerationAsyncStorage: () => (/* binding */ staticGenerationAsyncStorage),\n/* harmony export */ staticGenerationBailout: () => (/* binding */ staticGenerationBailout)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-route/module.compiled */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/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 next_metadata_route_loader_page_2Ffavicon_ico_2Froute_isDynamic_0_Users_pawanlive_Programming_timetable_app_app_favicon_ico_next_metadata_route___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next-metadata-route-loader?page=%2Ffavicon.ico%2Froute&isDynamic=0!./app/favicon.ico?__next_metadata_route__ */ \"(app-metadata-route)/./node_modules/next/dist/build/webpack/loaders/next-metadata-route-loader.js?page=%2Ffavicon.ico%2Froute&isDynamic=0!./app/favicon.ico?__next_metadata_route__\");\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_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppRouteRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_ROUTE,\n page: \"/favicon.ico/route\",\n pathname: \"/favicon.ico\",\n filename: \"favicon\",\n bundlePath: \"app/favicon.ico/route\"\n },\n resolvedPagePath: \"next-metadata-route-loader?page=%2Ffavicon.ico%2Froute&isDynamic=0!/Users/pawanlive/Programming /timetable-app/app/favicon.ico?__next_metadata_route__\",\n nextConfigOutput,\n userland: next_metadata_route_loader_page_2Ffavicon_ico_2Froute_isDynamic_0_Users_pawanlive_Programming_timetable_app_app_favicon_ico_next_metadata_route___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 { requestAsyncStorage, staticGenerationAsyncStorage, serverHooks, headerHooks, staticGenerationBailout } = routeModule;\nconst originalPathname = \"/favicon.ico/route\";\nfunction patchFetch() {\n return (0,next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__.patchFetch)({\n serverHooks,\n staticGenerationAsyncStorage\n });\n}\n\n\n//# sourceMappingURL=app-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZmYXZpY29uLmljbyUyRnJvdXRlJnBhZ2U9JTJGZmF2aWNvbi5pY28lMkZyb3V0ZSZhcHBQYXRocz0mcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZmYXZpY29uLmljbyZhcHBEaXI9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFzRztBQUN2QztBQUNjO0FBQ3NHO0FBQ25MO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnSEFBbUI7QUFDM0M7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxZQUFZO0FBQ1osQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLFFBQVEsdUdBQXVHO0FBQy9HO0FBQ0E7QUFDQSxXQUFXLDRFQUFXO0FBQ3RCO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDNko7O0FBRTdKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLz81ODgwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFJvdXRlUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9hcHAtcm91dGUvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgcGF0Y2hGZXRjaCBhcyBfcGF0Y2hGZXRjaCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9wYXRjaC1mZXRjaFwiO1xuaW1wb3J0ICogYXMgdXNlcmxhbmQgZnJvbSBcIm5leHQtbWV0YWRhdGEtcm91dGUtbG9hZGVyP3BhZ2U9JTJGZmF2aWNvbi5pY28lMkZyb3V0ZSZpc0R5bmFtaWM9MCEvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9mYXZpY29uLmljbz9fX25leHRfbWV0YWRhdGFfcm91dGVfX1wiO1xuLy8gV2UgaW5qZWN0IHRoZSBuZXh0Q29uZmlnT3V0cHV0IGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCBuZXh0Q29uZmlnT3V0cHV0ID0gXCJcIlxuY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUm91dGVSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1JPVVRFLFxuICAgICAgICBwYWdlOiBcIi9mYXZpY29uLmljby9yb3V0ZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvZmF2aWNvbi5pY29cIixcbiAgICAgICAgZmlsZW5hbWU6IFwiZmF2aWNvblwiLFxuICAgICAgICBidW5kbGVQYXRoOiBcImFwcC9mYXZpY29uLmljby9yb3V0ZVwiXG4gICAgfSxcbiAgICByZXNvbHZlZFBhZ2VQYXRoOiBcIm5leHQtbWV0YWRhdGEtcm91dGUtbG9hZGVyP3BhZ2U9JTJGZmF2aWNvbi5pY28lMkZyb3V0ZSZpc0R5bmFtaWM9MCEvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9mYXZpY29uLmljbz9fX25leHRfbWV0YWRhdGFfcm91dGVfX1wiLFxuICAgIG5leHRDb25maWdPdXRwdXQsXG4gICAgdXNlcmxhbmRcbn0pO1xuLy8gUHVsbCBvdXQgdGhlIGV4cG9ydHMgdGhhdCB3ZSBuZWVkIHRvIGV4cG9zZSBmcm9tIHRoZSBtb2R1bGUuIFRoaXMgc2hvdWxkXG4vLyBiZSBlbGltaW5hdGVkIHdoZW4gd2UndmUgbW92ZWQgdGhlIG90aGVyIHJvdXRlcyB0byB0aGUgbmV3IGZvcm1hdC4gVGhlc2Vcbi8vIGFyZSB1c2VkIHRvIGhvb2sgaW50byB0aGUgcm91dGUuXG5jb25zdCB7IHJlcXVlc3RBc3luY1N0b3JhZ2UsIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UsIHNlcnZlckhvb2tzLCBoZWFkZXJIb29rcywgc3RhdGljR2VuZXJhdGlvbkJhaWxvdXQgfSA9IHJvdXRlTW9kdWxlO1xuY29uc3Qgb3JpZ2luYWxQYXRobmFtZSA9IFwiL2Zhdmljb24uaWNvL3JvdXRlXCI7XG5mdW5jdGlvbiBwYXRjaEZldGNoKCkge1xuICAgIHJldHVybiBfcGF0Y2hGZXRjaCh7XG4gICAgICAgIHNlcnZlckhvb2tzLFxuICAgICAgICBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlXG4gICAgfSk7XG59XG5leHBvcnQgeyByb3V0ZU1vZHVsZSwgcmVxdWVzdEFzeW5jU3RvcmFnZSwgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZSwgc2VydmVySG9va3MsIGhlYWRlckhvb2tzLCBzdGF0aWNHZW5lcmF0aW9uQmFpbG91dCwgb3JpZ2luYWxQYXRobmFtZSwgcGF0Y2hGZXRjaCwgIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Ffavicon.ico%2Froute&page=%2Ffavicon.ico%2Froute&appPaths=&pagePath=private-next-app-dir%2Ffavicon.ico&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(app-metadata-route)/./node_modules/next/dist/build/webpack/loaders/next-metadata-route-loader.js?page=%2Ffavicon.ico%2Froute&isDynamic=0!./app/favicon.ico?__next_metadata_route__": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-route-loader.js?page=%2Ffavicon.ico%2Froute&isDynamic=0!./app/favicon.ico?__next_metadata_route__ ***! + \**********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GET: () => (/* binding */ GET),\n/* harmony export */ dynamic: () => (/* binding */ dynamic)\n/* harmony export */ });\n/* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/server */ \"(app-metadata-route)/./node_modules/next/server.js\");\n/* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_server__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconst contentType = \"image/x-icon\"\nconst buffer = Buffer.from(\"AAABAAQAEBAAAAEAIAAoBQAARgAAACAgAAABACAAKBQAAG4FAAAwMAAAAQAgACgtAACWGQAAAAAAAAEAIACNHgAAvkYAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAKAAAADyAAAA/wAAAP8AAAD/AAAA/wAAAPIAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAOAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOAAAAA4AAAAAAAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAKEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAChAAAAAAAAACMAAAD0AAAA/wAAAP9PT0//rq6u/6urq/+rq6v/q6ur/6urq/+tra3/Z2dn/wAAAP8AAAD/AAAA9AAAACMAAABZAAAA/wAAAP8AAAD/Hx8f/+3t7f///////////////////////f39/zU1Nf8AAAD/AAAA/wAAAP8AAABZAAAAuwAAAP8AAAD/AAAA/wAAAP9ra2v//////////////////////46Ojv8AAAD/AAAA/wAAAP8AAAD/AAAAuwAAALsAAAD/AAAA/wAAAP8AAAD/CQkJ/83Nzf///////////+Tk5P8YGBj/AAAA/wAAAP8AAAD/AAAA/wAAALsAAABZAAAA/wAAAP8AAAD/AAAA/wAAAP9KSkr//f39//////9ra2v/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABZAAAAIwAAAPQAAAD/AAAA/wAAAP8AAAD/AQEB/7a2tv/V1dX/CQkJ/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAIwAAAAAAAAChAAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/RERE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAAAAAAA4AAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACgAAAA8gAAAP8AAAD/AAAA/wAAAP8AAADyAAAAoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAsAAAAVQAAAIEAAADoAAAA6AAAAIEAAABVAAAALAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAACFAAAA0gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD5AAAA0gAAAIUAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAA4QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADhAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPAAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADjAAAAGwAAAAAAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAKAAAAPUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPQAAAAnAAAAAAAAAAAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ODg4/4uLi/+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+JiYn/X19f/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIYAAAAAAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8eHh7/7u7u//////////////////////////////////////////////////////////////////////9TU1P/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAArAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj/////////////////////////////////////////////////////////////////rq6u/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD6AAAAKwAAAFQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v///////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABUAAAAggAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3/////////////////////////////////////////////////jY2N/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIEAAADpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/62trf///////////////////////////////////////////+Tk5P8XFxf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA6QAAAOkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Kysr//Pz8///////////////////////////////////////ampq/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAAgQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/i4uL/////////////////////////////////8zMzP8ICAj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIIAAABUAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8WFhb/4+Pj///////////////////////9/f3/SUlJ/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVAAAACsAAAD6AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj//////////////////////6+vr/8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAAArAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v////////////09PT/LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAAAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3//////42Njf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACGAAAAAAAAAAAAAAAnAAAA9AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/7Gxsf/s7Oz/FxcX/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9QAAACgAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MzMz/19fX/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAAAAAABoAAADjAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5AAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAABPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAhQAAANIAAAD5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAANIAAACFAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACwAAABVAAAAgQAAAOgAAADoAAAAgQAAAFUAAAAsAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEwAAABqAAAAswAAAPgAAAD3AAAAswAAAGoAAABLAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVgAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPEAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAEQAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8kJCT/aGho/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/1BQUP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADkAAAAEQAAAAAAAAAAAAAAVQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8cHBz/6+vr/////////////////////////////////////////////////////////////////////////////////////////////////////////////////3Nzc/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVQAAAAAAAAAAAAAAoQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ZWVl////////////////////////////////////////////////////////////////////////////////////////////////////////////zMzM/wgICP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAJAAAA2gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/8nJyf/////////////////////////////////////////////////////////////////////////////////////////////////9/f3/SEhI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2gAAAAkAAAAoAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0VFRf/8/Pz///////////////////////////////////////////////////////////////////////////////////////////+urq7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAACgAAABLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+qqqr///////////////////////////////////////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAEwAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8pKSn/8vLy/////////////////////////////////////////////////////////////////////////////////4yMjP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGoAAAC0AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/iIiI////////////////////////////////////////////////////////////////////////////4+Pj/xYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALMAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/+Hh4f//////////////////////////////////////////////////////////////////////aWlp/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2VlZf/////////////////////////////////////////////////////////////////Ly8v/CAgI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAACzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB//Jycn///////////////////////////////////////////////////////39/f9ISEj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALQAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9FRUX//Pz8/////////////////////////////////////////////////66u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AAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVQAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEsAAABqAAAAswAAAPcAAAD4AAAAswAAAGoAAABMAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\", 'base64'\n )\n\nfunction GET() {\n return new next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse(buffer, {\n headers: {\n 'Content-Type': contentType,\n 'Cache-Control': \"public, max-age=0, must-revalidate\",\n },\n })\n}\n\nconst dynamic = 'force-static'\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1tZXRhZGF0YS1yb3V0ZSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLXJvdXRlLWxvYWRlci5qcz9wYWdlPSUyRmZhdmljb24uaWNvJTJGcm91dGUmaXNEeW5hbWljPTAhLi9hcHAvZmF2aWNvbi5pY28/X19uZXh0X21ldGFkYXRhX3JvdXRlX18iLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBOztBQUVPO0FBQ1AsYUFBYSxxREFBWTtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIOztBQUVPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXBwL2Zhdmljb24uaWNvPzIxZDIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV4dFJlc3BvbnNlIH0gZnJvbSAnbmV4dC9zZXJ2ZXInXG5cbmNvbnN0IGNvbnRlbnRUeXBlID0gXCJpbWFnZS94LWljb25cIlxuY29uc3QgYnVmZmVyID0gQnVmZmVyLmZyb20oXCJBQUFCQUFRQUVCQUFBQUVBSUFBb0JRQUFSZ0FBQUNBZ0FBQUJBQ0FBS0JRQUFHNEZBQUF3TUFBQUFRQWdBQ2d0QUFDV0dRQUFBQUFBQUFFQUlBQ05IZ0FBdmtZQUFDZ0FBQUFRQUFBQUlBQUFBQUVBSUFBQUFBQUFBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDUUFBQUJkQUFBQXVnQUFBTG9BQUFCZEFBQUFKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUtBQUFBRHlBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUElBQUFDZ0FBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBT0FBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBT0FBQUFBNEFBQUFBQUFBQUFBQUFBQUFBQUFBSHdBQUFPSUFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQTRnQUFBQjhBQUFBQUFBQUFBQUFBQUtFQUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUNoQUFBQUFBQUFBQ01BQUFEMEFBQUEvd0FBQVA5UFQwLy9ycTZ1LzZ1cnEvK3JxNnYvcTZ1ci82dXJxLyt0cmEzL1oyZG4vd0FBQVA4QUFBRC9BQUFBOUFBQUFDTUFBQUJaQUFBQS93QUFBUDhBQUFEL0h4OGYvKzN0N2YvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL2YzOS96VTFOZjhBQUFEL0FBQUEvd0FBQVA4QUFBQlpBQUFBdXdBQUFQOEFBQUQvQUFBQS93QUFBUDlyYTJ2Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLzQ2T2p2OEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUF1d0FBQUxzQUFBRC9BQUFBL3dBQUFQOEFBQUQvQ1FrSi84M056Zi8vLy8vLy8vLy8vK1RrNVA4WUdCai9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBTHNBQUFCWkFBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOUtTa3IvL2YzOS8vLy8vLzlyYTJ2L0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUJaQUFBQUl3QUFBUFFBQUFEL0FBQUEvd0FBQVA4QUFBRC9BUUVCLzdhMnR2L1YxZFgvQ1FrSi93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRDBBQUFBSXdBQUFBQUFBQUNoQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4eE1USC9SRVJFL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUFvUUFBQUFBQUFBQUFBQUFBSHdBQUFPSUFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQTRnQUFBQjhBQUFBQUFBQUFBQUFBQUFBQUFBQTRBQUFBNEFBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBNEFBQUFEZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBQ2dBQUFBOGdBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEeUFBQUFvQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNRQUFBQmRBQUFBdWdBQUFMb0FBQUJkQUFBQUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNnQUFBQWdBQUFBUUFBQUFBRUFJQUFBQUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBc0FBQUFWUUFBQUlFQUFBRG9BQUFBNkFBQUFJRUFBQUJWQUFBQUxBQUFBQVlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNvQUFBQ0ZBQUFBMGdBQUFQa0FBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRDVBQUFBMGdBQUFJVUFBQUFxQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCd0FBQUNXQUFBQTh3QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVBNQUFBQ1dBQUFBSEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUkFBQUE0UUFBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEaEFBQUFVUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBY2dBQUFQc0FBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQ3QUFBQWNnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSElBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBY2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlBBQUFBK3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEN0FBQUFUd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUd3QUFBT1FBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQURqQUFBQUd3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ1hBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBQ1hBQUFBQUFBQUFBQUFBQUFBQUFBQUtBQUFBUFVBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUFFBQUFBbkFBQUFBQUFBQUFBQUFBQ0dBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL09EZzQvNHVMaS8rSWlJai9pSWlJLzRpSWlQK0lpSWovaUlpSS80aUlpUCtJaUlqL2lJaUkvNGlJaVArSWlJai9pSWlJLzRpSWlQK0ppWW4vWDE5Zi93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFJWUFBQUFBQUFBQUJ3QUFBTlFBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOGVIaDcvN3U3dS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy85VFUxUC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUExQUFBQUFjQUFBQXJBQUFBK2dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA5b2FHai8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vcnE2dS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQ2QUFBQUt3QUFBRlFBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93Z0lDUC9MeTh2Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1QwOVA4c0xDei9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBQlVBQUFBZ2dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBLzBkSFIvLzkvZjMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8valkyTi93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBSUVBQUFEcEFBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvNjJ0cmYvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK1RrNVA4WEZ4Zi9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBNlFBQUFPa0FBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvS3lzci8vUHo4Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vYW1wcS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEcEFBQUFnUUFBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9pNHVMLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOHpNelA4SUNBai9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFJSUFBQUJVQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhXRmhiLzQrUGovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzkvZjMvU1VsSi93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUFWQUFBQUNzQUFBRDZBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOW9hR2ovLy8vLy8vLy8vLy8vLy8vLy8vLy8vNit2ci84QkFRSC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQb0FBQUFyQUFBQUJ3QUFBTlFBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd2dJQ1AvTHk4di8vLy8vLy8vLy8vLzA5UFQvTEN3cy93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUExQUFBQUFjQUFBQUFBQUFBaGdBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS8wZEhSLy85L2YzLy8vLy8vNDJOamY4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUNHQUFBQUFBQUFBQUFBQUFBbkFBQUE5QUFBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBLzdHeHNmL3M3T3ovRnhjWC93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUE5UUFBQUNnQUFBQUFBQUFBQUFBQUFBQUFBQUNYQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL016TXovMTlmWC84QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUNYQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJvQUFBRGpBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUE1QUFBQUJzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRThBQUFEN0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQc0FBQUJQQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFISUFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUFjZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhJQUFBRDdBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBK3dBQUFISUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkVBQUFEaEFBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBT0VBQUFCUkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCd0FBQUNXQUFBQTh3QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVBNQUFBQ1dBQUFBSEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXFBQUFBaFFBQUFOSUFBQUQ1QUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBK1FBQUFOSUFBQUNGQUFBQUtnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUN3QUFBQlZBQUFBZ1FBQUFPZ0FBQURvQUFBQWdRQUFBRlVBQUFBc0FBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDZ0FBQUF3QUFBQVlBQUFBQUVBSUFBQUFBQUFBQzBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSkFBQUFLQUFBQUV3QUFBQnFBQUFBc3dBQUFQZ0FBQUQzQUFBQXN3QUFBR29BQUFCTEFBQUFLQUFBQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVEFBQUFWZ0FBQUtBQUFBRFlBQUFBK0FBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBK0FBQUFOZ0FBQUNnQUFBQVZRQUFBQk1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKUUFBQUlzQUFBRGhBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQU9FQUFBQ0xBQUFBSmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJZQUFBQ0xBQUFBN3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQTd3QUFBSXNBQUFBV0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVVFBQUFOd0FBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRGNBQUFBVWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUNLQUFBQS9nQUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS9nQUFBSW9BQUFBR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUR3QUFBSzBBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBQ3RBQUFBRHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUEFBQUF1QUFBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQXVBQUFBQTRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQ3VBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQUs0QUFBQUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJb0FBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUNLQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQUFBUDBBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEOUFBQUFUd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkFBQUEzd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBM3dBQUFCVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0xBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBSXNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDTUFBQUR4QUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVBFQUFBQWpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSXdBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUNMQUFBQUFBQUFBQUFBQUFBQUFBQUFFUUFBQU9RQUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4a0pDVC9hR2hvLzJWbFpmOWxaV1gvWldWbC8yVmxaZjlsWldYL1pXVmwvMlZsWmY5bFpXWC9aV1ZsLzJWbFpmOWxaV1gvWldWbC8yVmxaZjlsWldYL1pXVmwvMlZsWmY5bFpXWC9aV1ZsLzJWbFpmOWxaV1gvWldWbC8xQlFVUDhCQVFIL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEa0FBQUFFUUFBQUFBQUFBQUFBQUFBVlFBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOGNIQnovNit2ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vM056Yy84QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBVlFBQUFBQUFBQUFBQUFBQW9RQUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL1pXVmwvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy96TXpNL3dnSUNQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQW9RQUFBQUFBQUFBSkFBQUEyZ0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9Cd2NILzhuSnlmLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzkvZjMvU0VoSS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEyZ0FBQUFrQUFBQW9BQUFBK1FBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS8wVkZSZi84L1B6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyt1cnE3L0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBK0FBQUFDZ0FBQUJMQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVArcXFxci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1QwOVA4c0xDei9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBRXdBQUFCcUFBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOHBLU24vOHZMeS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzR5TWpQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQUdvQUFBQzBBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL2lJaUkvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vNCtQai94WVdGdjhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFMTUFBQUQ0QUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9GQlFVLytIaDRmLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL2FXbHAvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUGdBQUFENEFBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS8yVmxaZi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vTHk4di9DQWdJL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVBnQUFBQ3pBQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd2NIQi8vSnljbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8zOS9mOUlTRWovQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFMUUFBQUJxQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOUZSVVgvL1B6OC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy82NnVydjhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBR29BQUFCTUFBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL3FxcXEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzlQVDAveXdzTFA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQUVzQUFBQW9BQUFBK0FBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9LU2twLy9MeTh2Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9qSXlNL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBK1FBQUFDZ0FBQUFKQUFBQTJnQUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS80aUlpUC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL2o0K1AvRmhZVy93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQTJnQUFBQWtBQUFBQUFBQUFvUUFBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEveFFVRlAvaDRlSC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzlwYVduL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUFvUUFBQUFBQUFBQUFBQUFBVlFBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOWxaV1gvLy8vLy8vLy8vLy8vLy8vLy8vLy8vOHpNelA4SUNBai9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBVlFBQUFBQUFBQUFBQUFBQUVRQUFBT1FBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhIQndmL3ljbkovLy8vLy8vLy8vLy8vZjM5LzBoSVNQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQURrQUFBQUVRQUFBQUFBQUFBQUFBQUFBQUFBQUlzQUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9SVVZGLy96OC9QLy8vLy8vcnE2dS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFDTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDTUFBQUR4QUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS82eXNyUC83Ky92L0xDd3Mvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVBFQUFBQWpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDTEFBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvekl5TXY5OWZYMy9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFJc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZBQUFBM3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQTN3QUFBQlVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVR3QUFBUDBBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEOUFBQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlvQUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBQ0tBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUN1QUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFLNEFBQUFHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUF1QUFBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQXVBQUFBQThBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHdBQUFLMEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFDdEFBQUFEd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFDS0FBQUEvZ0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvZ0FBQUlvQUFBQUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVWdBQUFOd0FBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRGNBQUFBVVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQllBQUFDTEFBQUE3d0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBN3dBQUFJc0FBQUFXQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSmdBQUFJc0FBQURoQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFPRUFBQUNMQUFBQUpRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVEFBQUFWUUFBQUtBQUFBRFlBQUFBK0FBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBK0FBQUFOZ0FBQUNnQUFBQVZnQUFBQk1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKQUFBQUtBQUFBRXNBQUFCcUFBQUFzd0FBQVBjQUFBRDRBQUFBc3dBQUFHb0FBQUJNQUFBQUtBQUFBQWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNKVUU1SERRb2FDZ0FBQUExSlNFUlNBQUFCQUFBQUFRQUlCZ0FBQUZ4eXFHWUFBQUFCYzFKSFFnQ3V6aHpwQUFBQU9HVllTV1pOVFFBcUFBQUFDQUFCaDJrQUJBQUFBQUVBQUFBYUFBQUFBQUFDb0FJQUJBQUFBQUVBQUFFQW9BTUFCQUFBQUFFQUFBRUFBQUFBQUVRaU9ITUFBQjREU1VSQlZIZ0I3VjBKc0JYVm1XNlVYUWc4RmhGUlZrR1c2TVJvSkFuS1RveU9NVE1xaUhHd3dtU3FCc1NOcVVtaGlBaVlSSk5NTXBPcUtNNFVLTlNZTXRiRW1kRVlHVWNKaThGeFgwRGxzWWpnaG9vYkVuZ0l5SnZ2dTlDUHZvOTdiL2U5dlozVC9mMVYzM3Q5dTArZjVUdm4vL3YwK2M4NTNjS1JaSUdCcmloRVo2QVQwQkU0Q2VnRDlBUk9BTG9CWFlEdVFBdWdEbWdEZUtVUlAzWUFEY0JPNERQZ1BXQTc4RGJ3THZBbXNBdmdkZUlUNENBZ3NaUUJOZ2FKSFF4UWdhblF2WURCUVAvRG9GTFRBRkQ1YVFSYUEzSEtYa1JPNCtBYWdIZHd2QTNZREx3QjBGalFhTkNZU0F4blFBYkF6QW82R2RuaUUzd0k4RFZnSUhBaVFBUEFKN3pKc2dlWmMzc042M0Q4S3ZBeXdONERqWVhFSUFaa0FOS3ZqSmJJQWhWOEtEQVMrQW93QU9DVFBrdnlGZ3F6QlhnZVdBT3NCellCQndCSlNneklBS1JEZkQ4a1MwVWZCd3dIVGdIWWZjK1RmSXJDOHJYaEdlQi9BZllXYUNBa0NUSWdBNUFNMlh3dnA4S1BBQzRBVGdONkFKSWpETHlQdzFlQVpjQUs0RFdBNHcyU0dCbVFBWWlQM0xhSStnemdPOEI1QUpXK0ZTRHhaK0J6QktrSEhnWm9FRjRBR2dCSnhBeklBRVJNS0tJN0U3Z0VPQitnMGg4TFNHcG5nR01FSEVoOENIZ1FvREdneTFJaUJveGhnTy8wMDRHVkFFZkIyVUNGNkRsZ0wyQWxNQVBvRFVqRVFHb004TDErTExBSW9OdExDcDhzQjNRcExnYk9BZWhKa1lpQlJCam9nVlNtQWs4Qyt3RXBmcm9jc0E1V0EreUJkUVVrWWlBV0J1aXFtdzNRVlNXbE41T0RqYWliK1FCZnlTUmlJQklHT0VIbjE4QUhnQlRmRGc3NFN2WXpZQmdnRVFNMU1UQUVkMUh4UHdhaytIWnk4TkhoT3Z3eS9rdkVRQ0FHcFBoMktuc2xJKzBhZ2tHQldvQUM1WktCWGlqMXp3RTk4Yk5uQUZ6andGZUQyd0dORVlBRXlTRUdPdURmTEdBYjREWVUvYzgyRnpRRU00RTZRSkpqQmk1RzJaOERwUEQ1NUlCMVB4SFFQQUtRa0NmaEZOMEhnSU9BbEY4YzNJOTJjRG9neVRnREhWRyttd0VPQ2tueHhZRzNEWEI3TTg3ejBHc0JTTWlpakVlaG5nSzhsYTVqOGRHOERUeU5OakltaXdxUTF6SjFROEgvQmVEYTh1YVZyZC9pcEZRYitEUGFDcjBGNmcyQUJKdUZPKzY4Q0pTcVpKMFRMMzV0Z0wwQkx2aVNXTVpBZStSM0xyQWI4S3RrWFJkSGxkb0Fld05zUzl6Z1JXSUJBNXovL1NoUXFWSjFUZnhVMndZZVE1dlMyZ0xERGNCazVPOWRLYitNWDB4dDREM0UrejFBWWhnRG5NMzNTNERiUjFWcjJSVmVuRlhUQnRqRzJOYjRtaWt4Z0lFQnlBTzdaOVZVb3NLS3I3QnRZRG5hWEg4RDJuK3VzOEJSL3MxQTJNclUvZUt3bGpid090cWUxVjRDbTNlc25RYnk3d0c0UlpkRURLVEJBT2NKL0RXd0UrQzZBdXZFUmdQUUJpemZCdHdLOEZnaUJ0SmtnRzN3UElCdVFuN3k3QXRBRWhNRHRMajNBclYwMTNTUGVJdTdEZnc3Mm1iZVB2RVdrNm9mSGUxSk9MVUNpTHNTRmI4NER0TUd1RU14MjZva1FnYTRsUk9uWllhcEdOMHIvcEpxQTJ5cjNFVmFFZ0VEd3hISEppQ3B5bE02NGpxS05yQUJiZmJyRWJUL1hFY3hHcVhuRjJDaXFCREZJUjZUYmdOc3UyekR4b3JKWG9CUllPMjNRRTlqMlZQR3hFQmxCcmdCemJjQnVnaTU1NlJ4WXFvQmNKWC9CT01ZVTRiRVFIVU1jSnE2c1ViQVJBTkE1YjhQMEpPL3VvYW0wT1l5UUNQQXVRTEc5UVJNTXdDalFaS1VIeVJJTXNjQVh3ZG9CSjRIdGdKR1NBc2pjbkVvRXh6dC8wL2dSSVB5cEt5SWdhZ1o0SEoxYmtkUFYySHFZb29CR0FBbWxnRURVMmRFR1JBRDhUUEFSVVRuQTNSdnB5ckhwSnI2b2NRNWE0cmRmaW0vQVpXaExDVENBQjk0dndGU256R1lkZy9nU3lEaEQ4QTVnRVFNNUkyQlZTandkd0d1Smt4RjBod0U1T3FwdTRBTFV5bTVFaFVENlRQUUYxazRHWGdFT0FBa0xta2FnQVVvN1l6RVM2d0V4WUJaREp5TzdQQmh5RjJ0RXBlMERNQTBsUFRIZ0FsakVJbVRyZ1RGUURNR3VHYmdBNER6QkJLVk5NWUF4cUtFL3czUUx5b1JBMkxnRUFQOC9nREhBLzZZSkNGSkc0Qitod3ZZTjhsQ0tpMHhZQWtEYnlDZkV3QzZDUk9SSkx2Z3g2RkVpNEcraVpSTWlZZ0IreGpnQS9MZkFPcEtJcExrR01CUFVhTExFeW1WRWhFRDlqSkFJOUFPZURTSklpUmxBS2o0dHdOSjlqaVM0RTlwaUlFNEdQZ2FJdDBBdkJwSDVONDRXM2gveEhROEZQRXVCN1MwTnlhQ0ZXMG1HZGlPVW8wSFhvdXpkSEgzQU5pVjRTNitwOFZaQ01VdEJqTElBTDFrcHdJUEFQdmpLbC9jQnVBbVpIeHFYSmxYdkdJZzR3ejBSL24yQWF2aUttZWNyd0Nqa2VtSGdjUkdOT01pU2ZHS2dSUVoySU8wTHdCaU1RSnhHWUJPeVBEandGbUFSQXlJZ1hBTXZJemJPWUh1NDNEUkhIMTNYSzhBODVIVXBLT1QweGt4SUFacVlJQUQ2QnhQKzU4YTdxMTRTeHc5Z05GSThmY0E5MEdUaUFFeEVBMERueU1hdmdwRU9sVTRhZ1BBOWYxMCthbnJEeElrWWlCaUJwNUJmSHdWMkIxVnZGRy9BdndETWpZbHFzd3BIakVnQm9vWTZJVmZEY0Rxb3JNaGZrVFpBK0M2NXBVQXYrQXJFUU5pSUI0R1BrRzAzRHAvWFJUUkh4TkZKSWlqTlRBWGtQSkhSR2hTMFhUbzBNSHAzYnQzVXNrcG5mQU1VTWNXQUpIb2JpU1JJRFBjMXVzU1FHSVpBMU9uVG5XV0xGbml0R3JWeXJLYzV6cTdGNkgwM0R2QUNPSEEzL05BbzJBWEI4Y2ZmM3pqbGkxYkdpbVRKMDlXL2RuVmhxbHpSbmphcnBQaTI2WDRibjNObXpldm9QejhzMzc5K3NhNnVqb1pBYnVNd0E5Umw2bEtYNlRPVlV0cU9KWnhNSGp3NE1ZZE8zWTBHUUFleko0OVcvVm9WejIrQ2QzckNhUW10eUZsTlJyTE9HalJva1hqM1hmZlhhVDgvUEhoaHg4Mjl1L2ZYL1ZwVjMzK1UxcmFQd2dKdnk4RFlKOEJIRHQyYk9PK2ZmdU9NZ0E4c1dqUkloa0F1d3pBcDlCQjdybVJ1TnlCRk5WWUxPT2diZHUyalN0V3JDaXAvRHk1ZCsvZXhoRWpScWhlN2FyWE81UFcvbUZJOEdNWkFQc000SlFwVThvcXYzdGgrZkxsalhBTHlnallZd1E0T1NqUlhvQ2UvdlkwamlaRnB0dHZ3NFlOcnA1WC9DKzNvSFhHUGJGZWdKNytGaW8vZTJ0ZXQxOUY3Y2ZGK3ZwNnVRWHRxbWYyQW9ZQVZVa3RpNEhvZXh4WFZTb0tuRG9EY1BzNUN4Y3VkTnEzYng4b0w5MjZkWE0rKyt3ejU0a25uZ2dVWG9GU1o0RGZGK1RhbmtmaXpFbGZSSzZSZjd1ZURJM2wzSDUrdlFDNUJhMTdEZmdJK3RrL1RnTXdINUUzdlZQcTJBNHV4bzBiMTdoLy8zNC9mUzk1WFc1Qk8rcllvNHV6NHpJQVhSRHhSazlDTWdRV0dFTS90MTlKcmZlY2xGdlFPZ093QlRyYVBRNGp3RTk2UytrdDR5Q0kyOCtqN3lVUDVSYTBydDEvUDJvRDBBWVIva2tHd0s2R1VJM2JyNlRtZTA3S0xXaFYzZjhmZEpVNkc1bWNnNWo0Z1FMMUFDemlvQnEzbjBmWFN4N0tMV2hWMitjR29tT0RhSDlRTnlBSC84NE1FcUhDbU1GQXRXNC92MXpUTGJocjF5NjVCZjJJTXVNNjlmb2c4R0FVMmVGR2hOc0JQZjB0NGFCV3QxL0pSNy9ucE55Q1Z1a0EzZlY5b2pBQVYwbjVyYXI0UnJyOXlxMzI4K2h6VFlkeUMxclZGamh3SDBxNFVkd3FRRTkvU3pnSTYvYnpzd3B5QzFxbEM5VGRsbUVzQU4vN2Q4c0EyRlBwVjE1NXBaOE9oNzR1dDZBMTdXRVBkRGZVMk4yUHBQeldWSFlqM1g0Yk4yNE1yZUJCSXJqODhzdlZLN1NqVi9nVDZIQk53c1VGTHdHcWFFczRpTkx0NTJjRTVCYTBSaTllaEE2M3E4VUNqTUJOZTJVQTdLam9VcHQ4K2lseDJPczMzWFNUSGc3bVB4dzRKK0FidFJpQUgwdjU3VkIrdXYzdXVlZWVzUHBjOWYxeUM5clJQcURIdDFWckFOaGxVUGZmZk90ZWVBTEg2ZmJ6c3dxTEZ5OVdMOEQ4ZHZJQzlKbXY5SUhsRElUa0NLSXExM0FPNG5iNytSa0F1UVd0MEJHK3lwOWRTdnZMZlJ1UTg0aHJHamdvbFlqT3hjZkF4SWtUbmRHalI4ZVhnRS9NYmRxMGNSWXNXS0J2Qy9yd2xQSmxMZ3ppbUY0Z29WRjRITkRUMzNBT2tuVDcrZlVFNUJZMFhsOGVnMDZYZStBWEdZYSsrTVY1eERJQWhuT1FwTnZQendEUUxkaTVjMmUxR1hQYnpBZlFhZXAya1pSYURUZ0tJWDVRRkVvL2pHT0FxLzN1dXV1dXdKdDh4bDBBcmhiY3ZYdTNzM3IxNnJpVFV2eTFNWEFjYnVQVTRIcnY3YVc2QkJPOEFYUnNIZ053K3ptelpzMXl1bmJ0YWxUbXJyLytlZ2ZmRmpRcVQ4cE1FUVBqaTM2VitORWE1NTREMUpVem1JTTAzWDUrcndKeUN4cXRPOVJ0Nm5oWkdZd3IvTUNBRElDaEhLVHQ5dk16QUhJTEdxMDcxRzNxZUpNMGZ3WGc5OFU2TjEzVmdYRU1USm8wS1ZXM254OGhjZ3Y2TVpUcWRlbzJ2K3pWSk0wTndEZWJydWpBT0FhNmQrL3V6Smt6eDdoOE5jOFFQai91WEhycHBjMVA2N2NaREp6cnpZYlhBUEQ0TE85RkhadkZ3SXdaTTV5QkF3ZWFsYWt5dWJubGxsdWN1cnE2TWxkMU9rVUd2b0swbTd4L1hnTndBaTRNU0RGalNyb0NBM1Q3WFgzMTFSVkNtSFhwMUZOUGRhNjZpcnZKU1F4amdFK1FucVh5eENXREJ3QU5BQnJHUVZxci9md0cvUHl1YTdXZ2ticEVIVC9ITlFEZUhrQlIxOEFOb1AvcE04QjM2aXV1dUNMOWpGU1pBODVUd0o0QlZkNmw0REV6d080L0Ivc0w0alVBVFNmZGkvcWZQZ053K3hVRy9scTFhcFYrWm1ySUFRM1hpQkdCMTZIVWtJSnVxWUdCcHJFKzF3RHcvMmsxUktSYlltWWc3ZFYrWVlzbnQyQllCbU81bitNQUxid3g4MnVpbXdHOS94dkVnVW1yL2Z6ZTkvMnVhN1dnVWJyRnIzenphOTlOeXdQcEFTZzVNc2hBa25RWXNNbnQ1OGNRM1lKWUxlZ1hUTmVUWVlENlRqUVpnSk54M0o0bkpHWXdRTGNmRFVCV2hHNUJtOXlZV2VHOVREazY0bnd2WG5QSEFQcVhDYWpUS1RCZzZtcS9zRlJjZDkxMVdpMFlsc1RvN2gvQ3FGd0RvQWxBMFJFYk9xYXhZKzEwKy9rVm5Ic0d5QzNveDFKaTEvc3hKZGNBOUVrc1dTVlVrUUhiM1g0VkM0ZUxjZ3Y2TVpUWTljSkRud2FBSHc4c3ZBOGtsclFTS3N1QTZhdjl5bVk4NEFXNUJRTVNGWDh3ZXY2T3BRSG9CR2pWUnZ5RSs2WUF0NThWcS8xOEMrSVRnSzg0V2kzb1ExTDhsN21kVkdmWEFOQUlTRkptZ0l0bmJGbnRGNWFxdVhQbnlpMFlsc1J3OTlNbkt3TVFqc1BvN3JadHRWL1lrbWZOelJtV2p4VHU1ME8vRTNzQTlBbnl3d0dTbEJqSXF0dlBqODZaTTJmS0xlaEhVbnpYdVRkZ1J4cUEzdkdsb1ppRE1KQlZ0NTlmMmJWYTBJK2gySytmUkFPZ0tjQ3g4MXcrZ2F5Ny9jcVgvTkFWdVFYOUdJcjFlaDhhQUU0RGxxVEVRTmJkZm42MHlpM294MUNzMTN0eWM0Qy9CYlFYUUt3OGw0NmNtM3d1WGJyVXVBOThsTTV0ZkdmNzlldm5yRisvM25ubGxWZmlTMFF4bDJMZ1RiMENsS0lsb1hOY0hKTVh0NThmcFhJTCtqRVV5L1Z1N0FGY0N4U1dCc2FTaENJdHlRRGRZQXNYTGpUbTIzNGxNNW5nU1gxYk1FR3lqeVMxa3owQUxkSStRa2dpUjY3Ymo0MWVjb1FCclJZOHdrVkNSOTFwQU5vbGxKaVNPY3hBWHQxK2ZnMUFxd1g5R0lyOCtqSGNGK3dMZ0laQWtnQURkUHN0VzdiTTZNOTdKVUJEMlNUd2JVRm4vUGp4enBvMWE4cUcwWVhJR1BpY2lpL2xqNHhQLzRoczMrVFR2NFRoUXRCQUxsaXd3TEYxRitSd3BVLzg3alljQkp5WGVMSTVUVkJ1djJBVjM3ZHZYNmUrdmw1dXdXQjBoUXFscDM4bytxcTdtWU5jY3Z2NWM4WkIwbm56NXVuYmd2NVVoUTZoSGtCb0NvTkZNR3pZTU9mT08rOTAyclhUbUdzUXhyaE9vS0dod1ZtMWFsV1E0QXBUSXdQc0FYeGU0NzI2TFNBRGZLTGRjTU1OVHBjdWhhM1lBOTZsWU5kZWU2MTZUUEUyZzRNMEFKL0VtNFppNTZqMlpaZGRKaUtxWklBR2M4NmNPVlhlcGVCVk1QQWhEY0RCS201UTBDb1pZSmYvNXB0djFxaDJsYnk1d1drNFI0MGE1ZjdVLzJnWmFLQUIyQkZ0bklyTnk4RGt5Wk9kYzg4OTEzdEt4MVV3d05XQzgrZlBkMXEzNXY0VmtvZ1orSlNEZ095YjlvMDRZa1VIQm5yMDZPRXNXYkpFNy80aFcwT2ZQbjJjalJzM09tdlhyZzBaazI1dnhzQm05Z0ErYW5aU1B5TmlnSU5ZQXdZTWlDaTIvRWJEUVZTK1J0WFZhZlBxaUZ2QmUrd0JzSDk2ZHNRUjV6NjZvVU9IeXUwWFlTdVFXekJDTW85RXRadzlnTzFIZnVzb0NnYjR4THJ4eGh2VjlZK0NURThjMTF4empkeUNIajRpT0h5TEJtQmJCQkVwQ2c4REV5Wk1jRGo0SjRtV0FmWUM1QmFNbE5QdE5BQnZSeHBsemlPajI0OGZ3R3paa2w5Y2swVE5nTnlDa1RKYTJCSnNGNkxjRjJtME9ZNk1EWFRreUpFNVppRGVvc3N0R0JtL25BRzhpejJBblljUldjeDVqWWh1UDNWUjQ2OTlHbGpOckF6TmMwSHZhUUErUFl6UU1lWTlBZzVTeWUwWGZ5dmdJQ3NOcmR5Q29iZ3VNZ0NhQ3hDS1MreXJEcmZmOU9uVFE4YWkyNE15TUdqUUlJZkxxeVUxTThBMVFJVk5RYmtsbUtZRDE4eWo0OGp0RjRLOEVMZHFXL1VRNURuT083ajdBRjhCS0s4ZitxZS90VERBMVg1eSs5WENYTGg3OUczQlVQd1YzUCt1QVhnalZGUTV2cGx1UDc2UHl1MlhUaU9nNFpYWHBTYnVDdzk5MXdDc3J5a0szVlFZalZZRFRLOGh1TjhXMUdyQnF1dGdDKzl3RFFEZkJ6Z2ZRRklGQTNMN1ZVRldqRUhsRnF5YTNEMjQ0eTNlNVJxQTkzQk1TS3BnUUc2L0tzaUtNYWpjZ2xXVHkvVS9CWDEzRFFCZEF1d0ZTQUl5UUxmZnRHblRBb1pXc0xnWm9GdVF5NjhsZ1JqZzlQK0M2OTgxQUkwNHNTblFyUXBVWUlDYmZISVVXbUlPQTFvdEdMZ3UxaUZrWVN0QTF3RHd6dWNDMzU3emdGcnRaMllEa0Zzd2NMMjg1b2IwR2dDZTVLUWdTUVVHdE1sbkJYSU11Q1Mzb0c4bFVNZGZja041RGNCV25IemZ2YUQvcFJuZ0loUnQ4bG1hR3hQT3lpM29Xd3NjQUd6YUE4UnJBSGhCNHdBVitKUGJyd0k1QmwyaVczRFNwRWtHNWNpb3JIQUNVSlBIejJzQWlyb0dSbVhaa016STdXZElSZmhrZzI1QmJTSmFsaVNPOVRWOUM0U2JnbnJsT1B5UTZmUXljdmhZbTN5V0lNWGdVeHdRM0x0M3I3Tnk1VXFEYzVsSzFuNkJWSnRtL25wN0FNek5xd0QzQjVCNEdOQnFQdzhaRmgxcXRlQlJsVVhkYnZJQThHcHpBOEQ1d1h4SGtIZ1kwTGY5UEdSWWRDaTM0RkdWUmQwdXJBRndyelEzQU53YjhDbjNvdjQ3aGM5NWM3VmZxMWF0UkllRkRNZ3RXRlJwMU8yaS9UK2JHd0NHZnJ6b2xwei9rTnZQN2dZZ3QyQlIvVDFXOUFzL21nOEM4dnBlNEFxQUE0SzVGcnI5bGk1ZHFnOThXTjRLOUczQlFnVitnTDgvQW9yRytFcjFBTjVFb0pjTHQrVDhqOXgrMldnQWNnc1c2cEh6LzZuYlJWS3FCOENGUWQyQTg0cEM1dXdIM1g1MzNIR0gwNzU5KzV5VlBKdkZsVnZRdVFNMSsyVHoyaTNWQTJDWU5RQS9ISkJMY2QxK2JEU1M3REJBdCtBcHA1eVNuUUlGTDBrRGdxNG9GYnljQWVDSDJJdjhoYVZ1enVvNXVmMnlXYk0wNkp3aG1FUFppRExYbHlwM09RUEFnY0JIUzkyUTlYUHVKcDl5KzJXenBuUDY2Ylkvb0RiWkN6aEt5aGtBQm53SUtQSVpIblYzQmsva3RJRmtzQ1pMRnltSGJrRyt5ajlTbW8zU2JrQTNMTGNNdWdnNHdUMlI5Zjl5KzJXOWhnK1ZqMjdCVFpzMk9Xdlg4azAzODhMcC9iY0NCMHFWdEZJUGdGMkdaYVZ1eXVvNXVmMnlXclBGNWVJZ0x6L2hucE52Q3o2TTB2T1Z2cVNVY2dONkEzTFN3QlFnOC9OZzVmYnpWbnYyajd0MTYrWTBORFE0cTFhdHluSmg5NkJ3c3dEdTlWRlNXcFE4ZStSa1N4d3VCMFllT1pXOUkzNVU0cjc3N25NdXZ2amk3QlZPSlNyTEFBM0E4T0hEblhYck9FY21rN0lhcFJvUDdDOVhPaXA0SmVGN3czMUFwZzBBdTRKc0JQWDE5VTVqSStkQlNmTEF3TEhISHB2MWFkNzNveDdMS2ovcjJLOEh3REI5Z0dlQTQvbERJZ2JFZ0JVTWNOdXZzNENLMy91b05Bam9scEliQ05LUEtCRURZc0FlQmppQVgxSDVXWlFnQm9EaDdnVnlOeWVBQlplSUFRc1pZTGYvN2lENURtb0F1RGJnaFNBUktvd1lFQU9wTThCWDltZUQ1Q0tvQWVCc29uOE5FcUhDaUFFeGtEb0Q3TEZUWjMwbHlDQ2dHd2tIQWJtbFVELzNoUDZMQVRGZ0hBT2JrS092QXg4SHlWblFIZ0RqNG80aWk0SkVxakJpUUF5a3hnRGQ5b0dVbnptc3BnZkE4UDBCdmx0MDRRK0pHQkFEUmpIQWgvUndZR3ZRWEZYVEEyQ2MzRkw0dDBFalZ6Z3hJQVlTWldBcFV0dGFUWXJWOWdBWTl4Q0FXd3QxNWcrSkdCQURSakR3Q1hKeExzRFZmNEdsMmg0QUkxNFA4RDFESWdiRWdEa01VQ2VyVW41bXZaWWVBTzhiQ25CdWdIb0JaRU1pQnRKbG9LYW5QN05jU3crQTk3MEdxQmRBSmlSaUlIMEdhbnI2TTl1MTlnQjRMM3NCSEF2b3hCOFNNU0FHVW1HQUkvOTg5K2ZHbjFWTHJUMEFKc1JlZ09ZRlZFMjViaEFEa1RMQU9mODFLVDl6RWFZSHdQdDdBazhESi9PSFJBeUlnVVFaNEpMZmJ3QmJhMDNWYjBzd3Yzai9qQURjVkdTQ1gwQmRGd05pSUhJRzVpREdSOFBFR3JZSHdMUTdBS3VBci9LSFJBeUlnVVFZNE9yY01jQm5ZVklMMndOZzJ0d25ZQWN3RVlqQ29DQWFpUmdRQXo0TVhJM3JML21FOGIwY1poRFFHL21EK1BHUTk0U094WUFZaUkyQjN5Rm1idmNkV3FKOFlwK0czUEJWb0M1MHJoU0JHQkFENVJqZ3BKL1J3TnB5QWFvNUg4VXJnSnNlL1pHdGdMSHVDZjBYQTJJZ2NnWnVSWXdQUkJWcmxEMEE1dWs0NEkvQTJmd2hFUU5pSUZJR25rTnM0NEJRQTMvZUhFWFpBMkM4M0l5UVM0WW5BMzdmSEVBUWlSZ1FBd0Vab010OUtyQWhZUGhBd2FJMkFFejBEYUE3d0kwSkpHSkFERVREd0Q4am1zaG4za2I5Q3VBV3RRc09WZ0ljR0pTSUFURVFqZ0YyL2NjRE84TkZjL1RkVWJrQm04Zk1QY211QS9ZMHY2RGZZa0FNVk1YQWJvVCtJUkM1OGpNWGNid0NNRjdLVm9EakFHTUFpUmdRQTdVeDhCUGN0clMyVy8zdml1c1Z3RTI1UFE0NFNZamRGNGtZRUFQVk1VQ1Ayb1ZBUTNXM0JROGR0d0ZnVHJodndPTUFWdzVLeElBWUNNWUFWL3JSNWNkbDk3RkpuSzhBYnFhNVR1QnQ0SytBdU1ZYzNMVDBYd3hrZ1lFREtNUTBZRVhjaFVuQ0FMQU1yd0tjSXN5MXl4SXhJQVlxTS9BclhQNUY1U0RSWEUzaUZjRE5LV2NKY3NHUXBncTdqT2kvR0RpYUFUNzF2d053OUQ5MlNkSUFzREFEZ01lQWZ2d2hFUU5pb0lpQnJmakZCeVFuMHlVaVNiK1R2NDVTL1IzQWFZMFNNU0FHampDd0M0Yy9BQkpUZmlhZDFCZ0EwM0tGQmVTU3hndUFwSHNnYmg3MFh3eVl4TUFYeU14TTREK1N6bFFhQm9CbDVOVEdqc0EzK1VNaUJuTE93RTlSZmlKeFNjc0FzS0JQQUJ3TE9KMC9KR0lncHd6Y2kzTC9JMERYWCtLU2RoZThFMHJNbVlLakVpKzVFaFFENlRQd0oyVGhMNEhJMXZkWFc2U2tCd0diNTI4blR2d044R3p6Qy9vdEJqTE9BTnY4NVVCcXlrOSswKzRCTUErVWdjQXlZQUIvU01SQXhoblloUEtkRDlBcmxxcWszUU53QzA5Q3JnRGVkVS9vdnhqSUtBTnM0MU9BMUpXZi9LWTVDTWowdmZJT2Z2QmpCOThHT25ndjZGZ01aSVFCTHZENUhyREdsUEtZWkFESXlWYmdlVUJHQUNSSU1zVUFsWi92L0N0TktwVnBCb0RjYkFVNFQwQkdBQ1JJTXNFQWxaOGI1YTR5clRRbUdnQnl0QTFRVDhDMDFxTDgxTUtBKytRM1R2bFpHRk1OQVBPMkZhQVIrQmJBV1lNU01XQWJBeHp3NHp2L1NsTXpicklCSUdkYmdTZUJrVUJYUUNJR2JHRmdNekxLYmo4biswaENNbkFLN244YWFCVEVnUVZ0Z0cxMUVDQ0prSUdURU5kcVFFWkFISmpjQmxhZ2piS3RXaUdtdndKNFNlU1V5ZjhDU0s0V0VIbVowYkVwRFB3R0dmayt3QS9sV2lFMkdRQVN1aGZnbEdIT1lPVCtncWJNWkVSV0pEbG1nT3Y1Zndsd1RiODJ1MG1vSVV4SE9seE1aSEozVUhuTGZ2MVE0YWNsMU9hVlRETUd4dUUzNTFSTDBjUkJHbTJBYlc5OHN6YXBud2t6MEIvcExRZlNhQUJLTTcrOFA0NDJOeURodGg1NWNyYU5BWlFpZ1BzTC9nN2daOGpPQmpRdUFCSWtzVEhBOS8xZkFYOFB2QjliS29xNEpnYTRwSmhUTC9Wa0ZnZHh0QUhPN09Qa0hvbkJEQXhEM2g0RDRtZ0Fpak8vdkQ2S05zVzJKYkdBZ2JiSTQxeUFJN1JTV25FUXBnM3dDejFzUzN6RmxGakd3RmprVjFPSVpRQnFOUUF2b2YzUTB5U3htSUU2NVAxMlFMMEJHWUtnaG9BVHpqalExdzJRWklTQk1TaUhlZ015QW41RzRDbTBFL24yTTZMMHpZdkIzc0JzZ0s1RHY0YWc2L25pNkNPMGlac0I3VDBCRXJJdVhFeDBQeUFsRndjSDBRNGVBRTRESkRsaW9DWEtPaEhnL29NeUJQbmtnSFYvQ1NESk1RTjhMWmdKYkFka0NQTEJBZmVjbkFWMEFDUmlvTUJBUC95bHQwQ0dJTHRHNEdQVTc4K0JYb0JFREpSa2dGczUvUnJnb0pCNkJObmdnSXJQT2gwS1NNUkFJQWErakZBeUJIWWJBQ2wrb0thdVFKVVk0UHp2bndGNk5iREhHSHlBK3RJVHYxS3IxcldxR2VBWXdYeGdJNkJYQXpNNTJJSzY0VHdQN2lJdEVRT3hNTUR2RTF3RlBBSHNCMlFNMHVXQWRjQnZSMHdGZWdBU01aQUlBNXhIY0E2d0dPQ1hqV1VJa3VXQXIyU0xBQzc0YWcxSXhFQnFEUFJHeWpPQWxVQURJR01RRHdkN0RuTThIZi81U2lZSnlVQ0xrUGZyOW1JR3VCM1pHY0IzZ1lzQURpQ3lweUNwblFGdXdiVU80SGJ3bkxMN1BDQ0ppQUVaZ0lpSUxCRk5PNXo3S25BK2NDRXdHR2dEU1B3WjRIczlsWjY3OFB3ZWVCSGdFbDFKeEF6SUFFUk1hSm5vMnVJOEo2R01BV2dRT01kQUExWWd3U1B2NDVoSy93aXdCdUJtSFBzQVNZd015QURFU0c2RnFQdmpHbGVmZlF2Z1RzWjBXM1VHOGlTZm9yQ2JnYWVCNVFBVi9nMUFraUFETWdBSmtsMG1LWTRSREFTR0FDT0FNd0VhaUpPQkxBazlKYThEVlBUVndHdkFKdUFBSUVtSkFSbUFsSWozU2JZWHJ0T3o4QmNBQnhMWld6Z0o2QW0wQjB5V1hjZ2NYWFR2QWxUd1o0SDF3RGJnTFVCaUVBTXlBQVpWaGs5V3V1TTZEUUFOUVQrQXJ3MTlBQm9MTG1udUJId0o0SGhEbk1MM2NuYmZkd0lmQVRzQXpzQWo2Z0UrNldrQU9BOWZZamdETWdDR1YxQ0E3TkgxNkJvQUdvR09BSHNQSndKdXIrRUVITk00OEhvN2dNYWtlZDEvam5PZkFKekRRS1dtQW44SXZBZFFvYmNCYndOOHdsUDVhUVJvQUNRV00vRC9RTis1RG1yc2l1RUFBQUFBU1VWT1JLNUNZSUk9XCIsICdiYXNlNjQnXG4gIClcblxuZXhwb3J0IGZ1bmN0aW9uIEdFVCgpIHtcbiAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UoYnVmZmVyLCB7XG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6IGNvbnRlbnRUeXBlLFxuICAgICAgJ0NhY2hlLUNvbnRyb2wnOiBcInB1YmxpYywgbWF4LWFnZT0wLCBtdXN0LXJldmFsaWRhdGVcIixcbiAgICB9LFxuICB9KVxufVxuXG5leHBvcnQgY29uc3QgZHluYW1pYyA9ICdmb3JjZS1zdGF0aWMnXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-metadata-route)/./node_modules/next/dist/build/webpack/loaders/next-metadata-route-loader.js?page=%2Ffavicon.ico%2Froute&isDynamic=0!./app/favicon.ico?__next_metadata_route__\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.js?name=app%2Ffavicon.ico%2Froute&page=%2Ffavicon.ico%2Froute&appPaths=&pagePath=private-next-app-dir%2Ffavicon.ico&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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/login/page.js b/.next/server/app/login/page.js new file mode 100644 index 0000000..0f1f0c5 --- /dev/null +++ b/.next/server/app/login/page.js @@ -0,0 +1,362 @@ +/* + * 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/login/page"; +exports.ids = ["app/login/page"]; +exports.modules = { + +/***/ "./action-async-storage.external": +/*!****************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external" ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/action-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/action-async-storage.external": +/*!*******************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external.js" ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/action-async-storage.external.js"); + +/***/ }), + +/***/ "./request-async-storage.external": +/*!*****************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external" ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/request-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/request-async-storage.external": +/*!********************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external.js" ***! + \********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/request-async-storage.external.js"); + +/***/ }), + +/***/ "./static-generation-async-storage.external": +/*!***************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external" ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/static-generation-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/static-generation-async-storage.external": +/*!******************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***! + \******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/static-generation-async-storage.external.js"); + +/***/ }), + +/***/ "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"); + +/***/ }), + +/***/ "buffer": +/*!*************************!*\ + !*** external "buffer" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("buffer"); + +/***/ }), + +/***/ "crypto": +/*!*************************!*\ + !*** external "crypto" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("crypto"); + +/***/ }), + +/***/ "events": +/*!*************************!*\ + !*** external "events" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("events"); + +/***/ }), + +/***/ "http": +/*!***********************!*\ + !*** external "http" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("http"); + +/***/ }), + +/***/ "https": +/*!************************!*\ + !*** external "https" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("https"); + +/***/ }), + +/***/ "net": +/*!**********************!*\ + !*** external "net" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("net"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ "punycode": +/*!***************************!*\ + !*** external "punycode" ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("punycode"); + +/***/ }), + +/***/ "stream": +/*!*************************!*\ + !*** external "stream" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("stream"); + +/***/ }), + +/***/ "tls": +/*!**********************!*\ + !*** external "tls" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("tls"); + +/***/ }), + +/***/ "url": +/*!**********************!*\ + !*** external "url" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("url"); + +/***/ }), + +/***/ "zlib": +/*!***********************!*\ + !*** external "zlib" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("zlib"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Flogin%2Fpage&page=%2Flogin%2Fpage&appPaths=%2Flogin%2Fpage&pagePath=private-next-app-dir%2Flogin%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Flogin%2Fpage&page=%2Flogin%2Fpage&appPaths=%2Flogin%2Fpage&pagePath=private-next-app-dir%2Flogin%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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 */ originalPathname: () => (/* binding */ originalPathname),\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?9d97\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/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\",\"originalPathname\",\"__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__);\n\"TURBOPACK { transition: next-ssr }\";\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: [\n 'login',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/login/page.tsx */ \"(rsc)/./app/login/page.tsx\")), \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\"],\n \n }]\n },\n {\n \n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\"))).default(props))],\n twitter: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\"))).default(props))],\n manifest: undefined\n }\n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\"],\n'not-found': [() => 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)), \"next/dist/client/components/not-found-error\"],\n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\"))).default(props))],\n twitter: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\"))).default(props))],\n manifest: undefined\n }\n }\n ]\n }.children;\nconst pages = [\"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/login/page\";\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/login/page\",\n pathname: \"/login\",\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZsb2dpbiUyRnBhZ2UmcGFnZT0lMkZsb2dpbiUyRnBhZ2UmYXBwUGF0aHM9JTJGbG9naW4lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGbG9naW4lMkZwYWdlLnRzeCZhcHBEaXI9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsYUFBYSxzQkFBc0I7QUFDaUU7QUFDckM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDLHVCQUF1QixvSkFBbUc7QUFDMUg7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyw4ZUFBdVA7QUFDM1I7QUFDQSx5Q0FBeUMsa2dCQUFpUTtBQUMxUyx1Q0FBdUMsMGZBQTZQO0FBQ3BTO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EseUJBQXlCLDRJQUErRjtBQUN4SCxvQkFBb0IsME5BQWdGO0FBQ3BHO0FBQ0Esb0NBQW9DLDhlQUF1UDtBQUMzUjtBQUNBLHlDQUF5QyxrZ0JBQWlRO0FBQzFTLHVDQUF1QywwZkFBNlA7QUFDcFM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDdUI7QUFDNkQ7QUFDcEYsNkJBQTZCLG1CQUFtQjtBQUNoRDtBQUNPO0FBQ0E7QUFDUDtBQUNBO0FBQ0E7QUFDdUQ7QUFDdkQ7QUFDTyx3QkFBd0IsOEdBQWtCO0FBQ2pEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8/MDk4ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcIlRVUkJPUEFDSyB7IHRyYW5zaXRpb246IG5leHQtc3NyIH1cIjtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICdsb2dpbicsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgIHBhZ2U6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2xvZ2luL3BhZ2UudHN4XCIpLCBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2xvZ2luL3BhZ2UudHN4XCJdLFxuICAgICAgICAgIFxuICAgICAgICB9XVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICBcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICBpY29uOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT1mYXZpY29uJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzIS9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2Zhdmljb24uaWNvP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIGFwcGxlOiBbXSxcbiAgICBvcGVuR3JhcGg6IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPW9wZW5HcmFwaCZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9vcGVuZ3JhcGgtaW1hZ2UucG5nP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIHR3aXR0ZXI6IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPXR3aXR0ZXImc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvdHdpdHRlci1pbWFnZS5wbmc/X19uZXh0X21ldGFkYXRhX19cIikpLmRlZmF1bHQocHJvcHMpKV0sXG4gICAgbWFuaWZlc3Q6IHVuZGVmaW5lZFxuICB9XG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsYXlvdXQnOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9sYXlvdXQudHN4XCIpLCBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2xheW91dC50c3hcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiKSwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCJdLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgIGljb246IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPWZhdmljb24mc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvZmF2aWNvbi5pY28/X19uZXh0X21ldGFkYXRhX19cIikpLmRlZmF1bHQocHJvcHMpKV0sXG4gICAgYXBwbGU6IFtdLFxuICAgIG9wZW5HcmFwaDogWyhhc3luYyAocHJvcHMpID0+IChhd2FpdCBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQtbWV0YWRhdGEtaW1hZ2UtbG9hZGVyP3R5cGU9b3BlbkdyYXBoJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzIS9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL29wZW5ncmFwaC1pbWFnZS5wbmc/X19uZXh0X21ldGFkYXRhX19cIikpLmRlZmF1bHQocHJvcHMpKV0sXG4gICAgdHdpdHRlcjogWyhhc3luYyAocHJvcHMpID0+IChhd2FpdCBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQtbWV0YWRhdGEtaW1hZ2UtbG9hZGVyP3R5cGU9dHdpdHRlciZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC90d2l0dGVyLWltYWdlLnBuZz9fX25leHRfbWV0YWRhdGFfX1wiKSkuZGVmYXVsdChwcm9wcykpXSxcbiAgICBtYW5pZmVzdDogdW5kZWZpbmVkXG4gIH1cbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2xvZ2luL3BhZ2UudHN4XCJdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvbG9naW4vcGFnZVwiO1xuZXhwb3J0IGNvbnN0IF9fbmV4dF9hcHBfXyA9IHtcbiAgICByZXF1aXJlOiBfX25leHRfYXBwX3JlcXVpcmVfXyxcbiAgICBsb2FkQ2h1bms6IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fXG59O1xuZXhwb3J0ICogZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9lbnRyeS1iYXNlXCI7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBQYWdlUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICBwYWdlOiBcIi9sb2dpbi9wYWdlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9sb2dpblwiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiLFxuICAgICAgICBhcHBQYXRoczogW11cbiAgICB9LFxuICAgIHVzZXJsYW5kOiB7XG4gICAgICAgIGxvYWRlclRyZWU6IHRyZWVcbiAgICB9XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Flogin%2Fpage&page=%2Flogin%2Fpage&appPaths=%2Flogin%2Fpage&pagePath=private-next-app-dir%2Flogin%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Flogin%2Fpage.tsx%22%2C%5B%22%24%24ACTION_3%22%2C%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!": +/*!****************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Flogin%2Fpage.tsx%22%2C%5B%22%24%24ACTION_3%22%2C%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=! ***! + \****************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("\nconst actions = {\n'5986120908487f1e4fe1d12ab3757094bbf05b51': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/login/page.tsx */ \"(rsc)/./app/login/page.tsx\")).then(mod => mod[\"$$ACTION_3\"]),\n'b5a660c38f9d3d2778a97dde9a098333a0362045': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/login/page.tsx */ \"(rsc)/./app/login/page.tsx\")).then(mod => mod[\"$$ACTION_1\"]),\n}\n\nasync function endpoint(id, ...args) {\n const action = await actions[id]()\n return action.apply(null, args)\n}\n\n// Using CJS to avoid this to be tree-shaken away due to unused exports.\nmodule.exports = {\n '5986120908487f1e4fe1d12ab3757094bbf05b51': endpoint.bind(null, '5986120908487f1e4fe1d12ab3757094bbf05b51'),\n 'b5a660c38f9d3d2778a97dde9a098333a0362045': endpoint.bind(null, 'b5a660c38f9d3d2778a97dde9a098333a0362045'),\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1hY3Rpb24tZW50cnktbG9hZGVyLmpzP2FjdGlvbnM9JTVCJTVCJTIyJTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZhcHAlMkZsb2dpbiUyRnBhZ2UudHN4JTIyJTJDJTVCJTIyJTI0JTI0QUNUSU9OXzMlMjIlMkMlMjIlMjQlMjRBQ1RJT05fMSUyMiU1RCU1RCU1RCZfX2NsaWVudF9pbXBvcnRlZF9fPSEiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0Esa0RBQWtELG9KQUFtRztBQUNySixrREFBa0Qsb0pBQW1HO0FBQ3JKOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vPzcyYzMiXSwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBhY3Rpb25zID0ge1xuJzU5ODYxMjA5MDg0ODdmMWU0ZmUxZDEyYWIzNzU3MDk0YmJmMDViNTEnOiAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2xvZ2luL3BhZ2UudHN4XCIpLnRoZW4obW9kID0+IG1vZFtcIiQkQUNUSU9OXzNcIl0pLFxuJ2I1YTY2MGMzOGY5ZDNkMjc3OGE5N2RkZTlhMDk4MzMzYTAzNjIwNDUnOiAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2xvZ2luL3BhZ2UudHN4XCIpLnRoZW4obW9kID0+IG1vZFtcIiQkQUNUSU9OXzFcIl0pLFxufVxuXG5hc3luYyBmdW5jdGlvbiBlbmRwb2ludChpZCwgLi4uYXJncykge1xuICBjb25zdCBhY3Rpb24gPSBhd2FpdCBhY3Rpb25zW2lkXSgpXG4gIHJldHVybiBhY3Rpb24uYXBwbHkobnVsbCwgYXJncylcbn1cblxuLy8gVXNpbmcgQ0pTIHRvIGF2b2lkIHRoaXMgdG8gYmUgdHJlZS1zaGFrZW4gYXdheSBkdWUgdG8gdW51c2VkIGV4cG9ydHMuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgJzU5ODYxMjA5MDg0ODdmMWU0ZmUxZDEyYWIzNzU3MDk0YmJmMDViNTEnOiBlbmRwb2ludC5iaW5kKG51bGwsICc1OTg2MTIwOTA4NDg3ZjFlNGZlMWQxMmFiMzc1NzA5NGJiZjA1YjUxJyksXG4gICdiNWE2NjBjMzhmOWQzZDI3NzhhOTdkZGU5YTA5ODMzM2EwMzYyMDQ1JzogZW5kcG9pbnQuYmluZChudWxsLCAnYjVhNjYwYzM4ZjlkM2QyNzc4YTk3ZGRlOWEwOTgzMzNhMDM2MjA0NScpLFxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Flogin%2Fpage.tsx%22%2C%5B%22%24%24ACTION_3%22%2C%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&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/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\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));\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));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\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));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZhcHAtcm91dGVyLmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZlcnJvci1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXVJO0FBQ3ZJLDBPQUEySTtBQUMzSSx3T0FBMEk7QUFDMUksa1BBQStJO0FBQy9JLHNRQUF5SjtBQUN6SiIsInNvdXJjZXMiOlsid2VicGFjazovLy8/MDUwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWJvdW5kYXJ5LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js&server=true!": +/*!********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js&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/link.js */ \"(ssr)/./node_modules/next/dist/client/link.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmxpbmsuanMmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLz83MDBiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%22path%22%3A%22node_modules%2Fgeist%2Fdist%2Fsans.js%22%2C%22import%22%3A%22%22%2C%22arguments%22%3A%5B%7B%22src%22%3A%22.%2Ffonts%2Fgeist-sans%2FGeist-Variable.woff2%22%2C%22variable%22%3A%22--font-geist-sans%22%2C%22weight%22%3A%22100%20900%22%7D%5D%2C%22variableName%22%3A%22GeistSans%22%7D&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Fglobals.css&server=true!": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%22path%22%3A%22node_modules%2Fgeist%2Fdist%2Fsans.js%22%2C%22import%22%3A%22%22%2C%22arguments%22%3A%5B%7B%22src%22%3A%22.%2Ffonts%2Fgeist-sans%2FGeist-Variable.woff2%22%2C%22variable%22%3A%22--font-geist-sans%22%2C%22weight%22%3A%22100%20900%22%7D%5D%2C%22variableName%22%3A%22GeistSans%22%7D&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Fglobals.css&server=true! ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "(rsc)/./app/globals.css": +/*!*************************!*\ + !*** ./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__ = (\"ac0d597278e1\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hcHAvZ2xvYmFscy5jc3M/YTFhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcImFjMGQ1OTcyNzhlMVwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n"); + +/***/ }), + +/***/ "(rsc)/./app/layout.tsx": +/*!************************!*\ + !*** ./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/future/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 geist_font_sans__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! geist/font/sans */ \"(rsc)/./node_modules/geist/dist/sans.js\");\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n\n\n\nconst defaultUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : \"http://localhost:3000\";\nconst metadata = {\n metadataBase: new URL(defaultUrl),\n title: \"Next.js and Supabase Starter Kit\",\n description: \"The fastest way to build apps with Next.js and Supabase\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n className: geist_font_sans__WEBPACK_IMPORTED_MODULE_1__.GeistSans.className,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: \"bg-background text-foreground\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen flex flex-col items-center\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 22,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 21,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 20,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTRDO0FBQ3JCO0FBRXZCLE1BQU1DLGFBQWFDLFFBQVFDLEdBQUcsQ0FBQ0MsVUFBVSxHQUNyQyxDQUFDLFFBQVEsRUFBRUYsUUFBUUMsR0FBRyxDQUFDQyxVQUFVLENBQUMsQ0FBQyxHQUNuQztBQUVHLE1BQU1DLFdBQVc7SUFDdEJDLGNBQWMsSUFBSUMsSUFBSU47SUFDdEJPLE9BQU87SUFDUEMsYUFBYTtBQUNmLEVBQUU7QUFFYSxTQUFTQyxXQUFXLEVBQ2pDQyxRQUFRLEVBR1Q7SUFDQyxxQkFDRSw4REFBQ0M7UUFBS0MsTUFBSztRQUFLQyxXQUFXZCxzREFBU0EsQ0FBQ2MsU0FBUztrQkFDNUMsNEVBQUNDO1lBQUtELFdBQVU7c0JBQ2QsNEVBQUNFO2dCQUFLRixXQUFVOzBCQUNiSDs7Ozs7Ozs7Ozs7Ozs7OztBQUtYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXBwL2xheW91dC50c3g/OTk4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZWlzdFNhbnMgfSBmcm9tIFwiZ2Vpc3QvZm9udC9zYW5zXCI7XG5pbXBvcnQgXCIuL2dsb2JhbHMuY3NzXCI7XG5cbmNvbnN0IGRlZmF1bHRVcmwgPSBwcm9jZXNzLmVudi5WRVJDRUxfVVJMXG4gID8gYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5WRVJDRUxfVVJMfWBcbiAgOiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiO1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGEgPSB7XG4gIG1ldGFkYXRhQmFzZTogbmV3IFVSTChkZWZhdWx0VXJsKSxcbiAgdGl0bGU6IFwiTmV4dC5qcyBhbmQgU3VwYWJhc2UgU3RhcnRlciBLaXRcIixcbiAgZGVzY3JpcHRpb246IFwiVGhlIGZhc3Rlc3Qgd2F5IHRvIGJ1aWxkIGFwcHMgd2l0aCBOZXh0LmpzIGFuZCBTdXBhYmFzZVwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XG4gIGNoaWxkcmVuLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufSkge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJlblwiIGNsYXNzTmFtZT17R2Vpc3RTYW5zLmNsYXNzTmFtZX0+XG4gICAgICA8Ym9keSBjbGFzc05hbWU9XCJiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvbWFpbj5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiR2Vpc3RTYW5zIiwiZGVmYXVsdFVybCIsInByb2Nlc3MiLCJlbnYiLCJWRVJDRUxfVVJMIiwibWV0YWRhdGEiLCJtZXRhZGF0YUJhc2UiLCJVUkwiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwiaHRtbCIsImxhbmciLCJjbGFzc05hbWUiLCJib2R5IiwibWFpbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./app/login/page.tsx": +/*!****************************!*\ + !*** ./app/login/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 */ $$ACTION_1: () => (/* binding */ $$ACTION_1),\n/* harmony export */ $$ACTION_3: () => (/* binding */ $$ACTION_3),\n/* harmony export */ \"default\": () => (/* binding */ Login)\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/future/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 private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! private-next-rsc-action-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-proxy.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! private-next-rsc-action-encryption */ \"(rsc)/./node_modules/next/dist/server/app-render/action-encryption.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/link */ \"(rsc)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_headers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/headers */ \"(rsc)/./node_modules/next/dist/api/headers.js\");\n/* harmony import */ var _utils_supabase_server__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/supabase/server */ \"(rsc)/./utils/supabase/server.ts\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/navigation */ \"(rsc)/./node_modules/next/dist/api/navigation.js\");\n/* __next_internal_action_entry_do_not_use__ {\"5986120908487f1e4fe1d12ab3757094bbf05b51\":\"$$ACTION_3\",\"b5a660c38f9d3d2778a97dde9a098333a0362045\":\"$$ACTION_1\"} */ \n\n\n\n\n\n\nfunction Login({ searchParams }) {\n const signIn = (0,private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_1__.createActionProxy)(\"b5a660c38f9d3d2778a97dde9a098333a0362045\", $$ACTION_1);\n const signUp = (0,private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_1__.createActionProxy)(\"5986120908487f1e4fe1d12ab3757094bbf05b51\", $$ACTION_3);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 flex flex-col w-full px-8 sm:max-w-md justify-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n href: \"/\",\n className: \"absolute left-8 top-8 py-2 px-4 rounded-md no-underline text-foreground bg-btn-background hover:bg-btn-background-hover flex items-center group text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"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 className: \"mr-2 h-4 w-4 transition-transform group-hover:-translate-x-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"polyline\", {\n points: \"15 18 9 12 15 6\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 61,\n columnNumber: 9\n }, this),\n \" \",\n \"Back\"\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 57,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n className: \"animate-in flex-1 flex flex-col w-full justify-center gap-2 text-foreground\",\n action: signIn,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"text-md\",\n htmlFor: \"email\",\n children: \"Email\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 82,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n className: \"rounded-md px-4 py-2 bg-inherit border mb-6\",\n name: \"email\",\n placeholder: \"you@example.com\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 85,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"text-md\",\n htmlFor: \"password\",\n children: \"Password\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 91,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n className: \"rounded-md px-4 py-2 bg-inherit border mb-6\",\n type: \"password\",\n name: \"password\",\n placeholder: \"••••••••\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 94,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"bg-green-700 rounded-md px-4 py-2 text-foreground mb-2\",\n children: \"Sign In\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 101,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n formAction: signUp,\n className: \"border border-foreground/20 rounded-md px-4 py-2 text-foreground mb-2\",\n children: \"Sign Up\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 104,\n columnNumber: 9\n }, this),\n searchParams?.message && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-4 p-4 bg-foreground/10 text-foreground text-center\",\n children: searchParams.message\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 111,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 78,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/login/page.tsx\",\n lineNumber: 56,\n columnNumber: 5\n }, this);\n}\nasync function $$ACTION_1(formData) {\n const email = formData.get(\"email\");\n const password = formData.get(\"password\");\n const cookieStore = (0,next_headers__WEBPACK_IMPORTED_MODULE_4__.cookies)();\n const supabase = (0,_utils_supabase_server__WEBPACK_IMPORTED_MODULE_5__.createClient)(cookieStore);\n const { error } = await supabase.auth.signInWithPassword({\n email,\n password\n });\n if (error) {\n return (0,next_navigation__WEBPACK_IMPORTED_MODULE_6__.redirect)(\"/login?message=Could not authenticate user\");\n }\n return (0,next_navigation__WEBPACK_IMPORTED_MODULE_6__.redirect)(\"/\");\n}\nasync function $$ACTION_3(formData) {\n const origin = (0,next_headers__WEBPACK_IMPORTED_MODULE_4__.headers)().get(\"origin\");\n const email = formData.get(\"email\");\n const password = formData.get(\"password\");\n const cookieStore = (0,next_headers__WEBPACK_IMPORTED_MODULE_4__.cookies)();\n const supabase = (0,_utils_supabase_server__WEBPACK_IMPORTED_MODULE_5__.createClient)(cookieStore);\n const { error } = await supabase.auth.signUp({\n email,\n password,\n options: {\n emailRedirectTo: `${origin}/auth/callback`\n }\n });\n if (error) {\n return (0,next_navigation__WEBPACK_IMPORTED_MODULE_6__.redirect)(\"/login?message=Could not authenticate user\");\n }\n return (0,next_navigation__WEBPACK_IMPORTED_MODULE_6__.redirect)(\"/login?message=Check email to continue sign in process\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbG9naW4vcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTZCO0FBQ21CO0FBQ087QUFDWjtBQUU1QixTQUFTSyxNQUFNLEVBQzVCQyxZQUFZLEVBR2I7SUFDQyxNQUFNQyxTQUFTQSxnRkFBQUE7SUFvQmYsTUFBTUMsU0FBU0EsZ0ZBQUFBO0lBd0JmLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVOzswQkFDYiw4REFBQ1YsaURBQUlBO2dCQUNIVyxNQUFLO2dCQUNMRCxXQUFVOztrQ0FFViw4REFBQ0U7d0JBQ0NDLE9BQU07d0JBQ05DLE9BQU07d0JBQ05DLFFBQU87d0JBQ1BDLFNBQVE7d0JBQ1JDLE1BQUs7d0JBQ0xDLFFBQU87d0JBQ1BDLGFBQVk7d0JBQ1pDLGVBQWM7d0JBQ2RDLGdCQUFlO3dCQUNmWCxXQUFVO2tDQUVWLDRFQUFDWTs0QkFBU0MsUUFBTzs7Ozs7Ozs7Ozs7b0JBQ1o7b0JBQUk7Ozs7Ozs7MEJBSWIsOERBQUNDO2dCQUNDZCxXQUFVO2dCQUNWZSxRQUFRbEI7O2tDQUVSLDhEQUFDbUI7d0JBQU1oQixXQUFVO3dCQUFVaUIsU0FBUTtrQ0FBUTs7Ozs7O2tDQUczQyw4REFBQ0M7d0JBQ0NsQixXQUFVO3dCQUNWbUIsTUFBSzt3QkFDTEMsYUFBWTt3QkFDWkMsUUFBUTs7Ozs7O2tDQUVWLDhEQUFDTDt3QkFBTWhCLFdBQVU7d0JBQVVpQixTQUFRO2tDQUFXOzs7Ozs7a0NBRzlDLDhEQUFDQzt3QkFDQ2xCLFdBQVU7d0JBQ1ZzQixNQUFLO3dCQUNMSCxNQUFLO3dCQUNMQyxhQUFZO3dCQUNaQyxRQUFROzs7Ozs7a0NBRVYsOERBQUNFO3dCQUFPdkIsV0FBVTtrQ0FBeUQ7Ozs7OztrQ0FHM0UsOERBQUN1Qjt3QkFDQ0MsWUFBWTFCO3dCQUNaRSxXQUFVO2tDQUNYOzs7Ozs7b0JBR0FKLGNBQWM2Qix5QkFDYiw4REFBQ0M7d0JBQUUxQixXQUFVO2tDQUNWSixhQUFhNkIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWpDOzBCQTNHd0JFO0lBR3BCLE1BQU1DLFFBQVFELFNBQVNFLEdBQUcsQ0FBQztJQUMzQixNQUFNQyxXQUFXSCxTQUFTRSxHQUFHLENBQUM7SUFDOUIsTUFBTUUsY0FBY3ZDLHFEQUFPQTtJQUMzQixNQUFNd0MsV0FBV3ZDLG9FQUFZQSxDQUFDc0M7SUFFOUIsTUFBTSxFQUFFRSxLQUFLLEVBQUUsR0FBRyxNQUFNRCxTQUFTRSxJQUFJLENBQUNDLGtCQUFrQixDQUFDO1FBQ3ZEUDtRQUNBRTtJQUNGO0lBRUEsSUFBSUcsT0FBTztRQUNULE9BQU92Qyx5REFBUUEsQ0FBQztJQUNsQjtJQUVBLE9BQU9BLHlEQUFRQSxDQUFDO0FBQ2xCOzBCQUVzQmlDO0lBR3BCLE1BQU1TLFNBQVM3QyxxREFBT0EsR0FBR3NDLEdBQUcsQ0FBQztJQUM3QixNQUFNRCxRQUFRRCxTQUFTRSxHQUFHLENBQUM7SUFDM0IsTUFBTUMsV0FBV0gsU0FBU0UsR0FBRyxDQUFDO0lBQzlCLE1BQU1FLGNBQWN2QyxxREFBT0E7SUFDM0IsTUFBTXdDLFdBQVd2QyxvRUFBWUEsQ0FBQ3NDO0lBRTlCLE1BQU0sRUFBRUUsS0FBSyxFQUFFLEdBQUcsTUFBTUQsU0FBU0UsSUFBSSxDQUFDcEMsTUFBTSxDQUFDO1FBQzNDOEI7UUFDQUU7UUFDQU8sU0FBUztZQUNQQyxpQkFBaUIsQ0FBQyxFQUFFRixPQUFPLGNBQWMsQ0FBQztRQUM1QztJQUNGO0lBRUEsSUFBSUgsT0FBTztRQUNULE9BQU92Qyx5REFBUUEsQ0FBQztJQUNsQjtJQUVBLE9BQU9BLHlEQUFRQSxDQUFDO0FBQ2xCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXBwL2xvZ2luL3BhZ2UudHN4PzQ5MGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xuaW1wb3J0IHsgaGVhZGVycywgY29va2llcyB9IGZyb20gXCJuZXh0L2hlYWRlcnNcIjtcbmltcG9ydCB7IGNyZWF0ZUNsaWVudCB9IGZyb20gXCJAL3V0aWxzL3N1cGFiYXNlL3NlcnZlclwiO1xuaW1wb3J0IHsgcmVkaXJlY3QgfSBmcm9tIFwibmV4dC9uYXZpZ2F0aW9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExvZ2luKHtcbiAgc2VhcmNoUGFyYW1zLFxufToge1xuICBzZWFyY2hQYXJhbXM6IHsgbWVzc2FnZTogc3RyaW5nIH07XG59KSB7XG4gIGNvbnN0IHNpZ25JbiA9IGFzeW5jIChmb3JtRGF0YTogRm9ybURhdGEpID0+IHtcbiAgICBcInVzZSBzZXJ2ZXJcIjtcblxuICAgIGNvbnN0IGVtYWlsID0gZm9ybURhdGEuZ2V0KFwiZW1haWxcIikgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHBhc3N3b3JkID0gZm9ybURhdGEuZ2V0KFwicGFzc3dvcmRcIikgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGNvb2tpZVN0b3JlID0gY29va2llcygpO1xuICAgIGNvbnN0IHN1cGFiYXNlID0gY3JlYXRlQ2xpZW50KGNvb2tpZVN0b3JlKTtcblxuICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlLmF1dGguc2lnbkluV2l0aFBhc3N3b3JkKHtcbiAgICAgIGVtYWlsLFxuICAgICAgcGFzc3dvcmQsXG4gICAgfSk7XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHJldHVybiByZWRpcmVjdChcIi9sb2dpbj9tZXNzYWdlPUNvdWxkIG5vdCBhdXRoZW50aWNhdGUgdXNlclwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVkaXJlY3QoXCIvXCIpO1xuICB9O1xuXG4gIGNvbnN0IHNpZ25VcCA9IGFzeW5jIChmb3JtRGF0YTogRm9ybURhdGEpID0+IHtcbiAgICBcInVzZSBzZXJ2ZXJcIjtcblxuICAgIGNvbnN0IG9yaWdpbiA9IGhlYWRlcnMoKS5nZXQoXCJvcmlnaW5cIik7XG4gICAgY29uc3QgZW1haWwgPSBmb3JtRGF0YS5nZXQoXCJlbWFpbFwiKSBhcyBzdHJpbmc7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBmb3JtRGF0YS5nZXQoXCJwYXNzd29yZFwiKSBhcyBzdHJpbmc7XG4gICAgY29uc3QgY29va2llU3RvcmUgPSBjb29raWVzKCk7XG4gICAgY29uc3Qgc3VwYWJhc2UgPSBjcmVhdGVDbGllbnQoY29va2llU3RvcmUpO1xuXG4gICAgY29uc3QgeyBlcnJvciB9ID0gYXdhaXQgc3VwYWJhc2UuYXV0aC5zaWduVXAoe1xuICAgICAgZW1haWwsXG4gICAgICBwYXNzd29yZCxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZW1haWxSZWRpcmVjdFRvOiBgJHtvcmlnaW59L2F1dGgvY2FsbGJhY2tgLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChlcnJvcikge1xuICAgICAgcmV0dXJuIHJlZGlyZWN0KFwiL2xvZ2luP21lc3NhZ2U9Q291bGQgbm90IGF1dGhlbnRpY2F0ZSB1c2VyXCIpO1xuICAgIH1cblxuICAgIHJldHVybiByZWRpcmVjdChcIi9sb2dpbj9tZXNzYWdlPUNoZWNrIGVtYWlsIHRvIGNvbnRpbnVlIHNpZ24gaW4gcHJvY2Vzc1wiKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIGZsZXggZmxleC1jb2wgdy1mdWxsIHB4LTggc206bWF4LXctbWQganVzdGlmeS1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgIDxMaW5rXG4gICAgICAgIGhyZWY9XCIvXCJcbiAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC04IHRvcC04IHB5LTIgcHgtNCByb3VuZGVkLW1kIG5vLXVuZGVybGluZSB0ZXh0LWZvcmVncm91bmQgYmctYnRuLWJhY2tncm91bmQgaG92ZXI6YmctYnRuLWJhY2tncm91bmQtaG92ZXIgZmxleCBpdGVtcy1jZW50ZXIgZ3JvdXAgdGV4dC1zbVwiXG4gICAgICA+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgc3Ryb2tlV2lkdGg9XCIyXCJcbiAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cIm1yLTIgaC00IHctNCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBncm91cC1ob3ZlcjotdHJhbnNsYXRlLXgtMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiMTUgMTggOSAxMiAxNSA2XCIgLz5cbiAgICAgICAgPC9zdmc+e1wiIFwifVxuICAgICAgICBCYWNrXG4gICAgICA8L0xpbms+XG5cbiAgICAgIDxmb3JtXG4gICAgICAgIGNsYXNzTmFtZT1cImFuaW1hdGUtaW4gZmxleC0xIGZsZXggZmxleC1jb2wgdy1mdWxsIGp1c3RpZnktY2VudGVyIGdhcC0yIHRleHQtZm9yZWdyb3VuZFwiXG4gICAgICAgIGFjdGlvbj17c2lnbklufVxuICAgICAgPlxuICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwidGV4dC1tZFwiIGh0bWxGb3I9XCJlbWFpbFwiPlxuICAgICAgICAgIEVtYWlsXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtbWQgcHgtNCBweS0yIGJnLWluaGVyaXQgYm9yZGVyIG1iLTZcIlxuICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ5b3VAZXhhbXBsZS5jb21cIlxuICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJ0ZXh0LW1kXCIgaHRtbEZvcj1cInBhc3N3b3JkXCI+XG4gICAgICAgICAgUGFzc3dvcmRcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2xhc3NOYW1lPVwicm91bmRlZC1tZCBweC00IHB5LTIgYmctaW5oZXJpdCBib3JkZXIgbWItNlwiXG4gICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCiXCJcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAvPlxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJnLWdyZWVuLTcwMCByb3VuZGVkLW1kIHB4LTQgcHktMiB0ZXh0LWZvcmVncm91bmQgbWItMlwiPlxuICAgICAgICAgIFNpZ24gSW5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBmb3JtQWN0aW9uPXtzaWduVXB9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYm9yZGVyIGJvcmRlci1mb3JlZ3JvdW5kLzIwIHJvdW5kZWQtbWQgcHgtNCBweS0yIHRleHQtZm9yZWdyb3VuZCBtYi0yXCJcbiAgICAgICAgPlxuICAgICAgICAgIFNpZ24gVXBcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIHtzZWFyY2hQYXJhbXM/Lm1lc3NhZ2UgJiYgKFxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTQgcC00IGJnLWZvcmVncm91bmQvMTAgdGV4dC1mb3JlZ3JvdW5kIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICB7c2VhcmNoUGFyYW1zLm1lc3NhZ2V9XG4gICAgICAgICAgPC9wPlxuICAgICAgICApfVxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm5hbWVzIjpbIkxpbmsiLCJoZWFkZXJzIiwiY29va2llcyIsImNyZWF0ZUNsaWVudCIsInJlZGlyZWN0IiwiTG9naW4iLCJzZWFyY2hQYXJhbXMiLCJzaWduSW4iLCJzaWduVXAiLCJkaXYiLCJjbGFzc05hbWUiLCJocmVmIiwic3ZnIiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJwb2x5bGluZSIsInBvaW50cyIsImZvcm0iLCJhY3Rpb24iLCJsYWJlbCIsImh0bWxGb3IiLCJpbnB1dCIsIm5hbWUiLCJwbGFjZWhvbGRlciIsInJlcXVpcmVkIiwidHlwZSIsImJ1dHRvbiIsImZvcm1BY3Rpb24iLCJtZXNzYWdlIiwicCIsImZvcm1EYXRhIiwiZW1haWwiLCJnZXQiLCJwYXNzd29yZCIsImNvb2tpZVN0b3JlIiwic3VwYWJhc2UiLCJlcnJvciIsImF1dGgiLCJzaWduSW5XaXRoUGFzc3dvcmQiLCJvcmlnaW4iLCJvcHRpb25zIiwiZW1haWxSZWRpcmVjdFRvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/login/page.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./utils/supabase/server.ts": +/*!**********************************!*\ + !*** ./utils/supabase/server.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 */ createClient: () => (/* binding */ createClient)\n/* harmony export */ });\n/* harmony import */ var _supabase_ssr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/ssr */ \"(rsc)/./node_modules/@supabase/ssr/dist/index.mjs\");\n\nconst createClient = (cookieStore)=>{\n return (0,_supabase_ssr__WEBPACK_IMPORTED_MODULE_0__.createServerClient)(\"https://xqnaddwvcfzffvygbikl.supabase.co\", \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InhxbmFkZHd2Y2Z6ZmZ2eWdiaWtsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDcyMDQyMjYsImV4cCI6MjAyMjc4MDIyNn0.5cAxDA5obebKSe8iiDkfVe7XtU9KAX5iOZsGMUoX99A\", {\n cookies: {\n get (name) {\n return cookieStore.get(name)?.value;\n },\n set (name, value, options) {\n try {\n cookieStore.set({\n name,\n value,\n ...options\n });\n } catch (error) {\n // The `set` method was called from a Server Component.\n // This can be ignored if you have middleware refreshing\n // user sessions.\n }\n },\n remove (name, options) {\n try {\n cookieStore.set({\n name,\n value: \"\",\n ...options\n });\n } catch (error) {\n // The `delete` method was called from a Server Component.\n // This can be ignored if you have middleware refreshing\n // user sessions.\n }\n }\n }\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi91dGlscy9zdXBhYmFzZS9zZXJ2ZXIudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUU7QUFHaEUsTUFBTUMsZUFBZSxDQUFDQztJQUMzQixPQUFPRixpRUFBa0JBLENBQ3ZCRywwQ0FBb0MsRUFDcENBLGtOQUF5QyxFQUN6QztRQUNFSSxTQUFTO1lBQ1BDLEtBQUlDLElBQVk7Z0JBQ2QsT0FBT1AsWUFBWU0sR0FBRyxDQUFDQyxPQUFPQztZQUNoQztZQUNBQyxLQUFJRixJQUFZLEVBQUVDLEtBQWEsRUFBRUUsT0FBc0I7Z0JBQ3JELElBQUk7b0JBQ0ZWLFlBQVlTLEdBQUcsQ0FBQzt3QkFBRUY7d0JBQU1DO3dCQUFPLEdBQUdFLE9BQU87b0JBQUM7Z0JBQzVDLEVBQUUsT0FBT0MsT0FBTztnQkFDZCx1REFBdUQ7Z0JBQ3ZELHdEQUF3RDtnQkFDeEQsaUJBQWlCO2dCQUNuQjtZQUNGO1lBQ0FDLFFBQU9MLElBQVksRUFBRUcsT0FBc0I7Z0JBQ3pDLElBQUk7b0JBQ0ZWLFlBQVlTLEdBQUcsQ0FBQzt3QkFBRUY7d0JBQU1DLE9BQU87d0JBQUksR0FBR0UsT0FBTztvQkFBQztnQkFDaEQsRUFBRSxPQUFPQyxPQUFPO2dCQUNkLDBEQUEwRDtnQkFDMUQsd0RBQXdEO2dCQUN4RCxpQkFBaUI7Z0JBQ25CO1lBQ0Y7UUFDRjtJQUNGO0FBRUosRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3V0aWxzL3N1cGFiYXNlL3NlcnZlci50cz8wZjU1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlcnZlckNsaWVudCwgdHlwZSBDb29raWVPcHRpb25zIH0gZnJvbSBcIkBzdXBhYmFzZS9zc3JcIjtcbmltcG9ydCB7IGNvb2tpZXMgfSBmcm9tIFwibmV4dC9oZWFkZXJzXCI7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDbGllbnQgPSAoY29va2llU3RvcmU6IFJldHVyblR5cGU8dHlwZW9mIGNvb2tpZXM+KSA9PiB7XG4gIHJldHVybiBjcmVhdGVTZXJ2ZXJDbGllbnQoXG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfU1VQQUJBU0VfVVJMISxcbiAgICBwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19TVVBBQkFTRV9BTk9OX0tFWSEsXG4gICAge1xuICAgICAgY29va2llczoge1xuICAgICAgICBnZXQobmFtZTogc3RyaW5nKSB7XG4gICAgICAgICAgcmV0dXJuIGNvb2tpZVN0b3JlLmdldChuYW1lKT8udmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IENvb2tpZU9wdGlvbnMpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29va2llU3RvcmUuc2V0KHsgbmFtZSwgdmFsdWUsIC4uLm9wdGlvbnMgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFRoZSBgc2V0YCBtZXRob2Qgd2FzIGNhbGxlZCBmcm9tIGEgU2VydmVyIENvbXBvbmVudC5cbiAgICAgICAgICAgIC8vIFRoaXMgY2FuIGJlIGlnbm9yZWQgaWYgeW91IGhhdmUgbWlkZGxld2FyZSByZWZyZXNoaW5nXG4gICAgICAgICAgICAvLyB1c2VyIHNlc3Npb25zLlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlKG5hbWU6IHN0cmluZywgb3B0aW9uczogQ29va2llT3B0aW9ucykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb29raWVTdG9yZS5zZXQoeyBuYW1lLCB2YWx1ZTogXCJcIiwgLi4ub3B0aW9ucyB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gVGhlIGBkZWxldGVgIG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gYSBTZXJ2ZXIgQ29tcG9uZW50LlxuICAgICAgICAgICAgLy8gVGhpcyBjYW4gYmUgaWdub3JlZCBpZiB5b3UgaGF2ZSBtaWRkbGV3YXJlIHJlZnJlc2hpbmdcbiAgICAgICAgICAgIC8vIHVzZXIgc2Vzc2lvbnMuXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVTZXJ2ZXJDbGllbnQiLCJjcmVhdGVDbGllbnQiLCJjb29raWVTdG9yZSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19TVVBBQkFTRV9VUkwiLCJORVhUX1BVQkxJQ19TVVBBQkFTRV9BTk9OX0tFWSIsImNvb2tpZXMiLCJnZXQiLCJuYW1lIiwidmFsdWUiLCJzZXQiLCJvcHRpb25zIiwiZXJyb3IiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./utils/supabase/server.ts\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__": +/*!**********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ ***! + \**********************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"favicon.ico\")\n\n return [{\n ...imageData,\n url: imageUrl + \"\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPWZhdmljb24mc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhLi9hcHAvZmF2aWNvbi5pY28/X19uZXh0X21ldGFkYXRhX18iLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsRUFBaUY7O0FBRWpGLEVBQUUsaUVBQWU7QUFDakIsdUJBQXVCO0FBQ3ZCLHFCQUFxQiw4RkFBbUI7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC9mYXZpY29uLmljbz9mYmM0Il0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3gtaWNvblwiLFwic2l6ZXNcIjpcIjE2eDE2XCJ9XG4gICAgY29uc3QgaW1hZ2VVcmwgPSBmaWxsTWV0YWRhdGFTZWdtZW50KFwiLlwiLCBwcm9wcy5wYXJhbXMsIFwiZmF2aWNvbi5pY29cIilcblxuICAgIHJldHVybiBbe1xuICAgICAgLi4uaW1hZ2VEYXRhLFxuICAgICAgdXJsOiBpbWFnZVVybCArIFwiXCIsXG4gICAgfV1cbiAgfSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__": +/*!********************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ ***! + \********************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/png\",\"width\":1200,\"height\":600}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"opengraph-image.png\")\n\n return [{\n ...imageData,\n url: imageUrl + \"?2e0bc232e210f89d\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPW9wZW5HcmFwaCZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEuL2FwcC9vcGVuZ3JhcGgtaW1hZ2UucG5nP19fbmV4dF9tZXRhZGF0YV9fIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLEVBQWlGOztBQUVqRixFQUFFLGlFQUFlO0FBQ2pCLHVCQUF1QjtBQUN2QixxQkFBcUIsOEZBQW1COztBQUV4QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hcHAvb3BlbmdyYXBoLWltYWdlLnBuZz8yYTEwIl0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3BuZ1wiLFwid2lkdGhcIjoxMjAwLFwiaGVpZ2h0XCI6NjAwfVxuICAgIGNvbnN0IGltYWdlVXJsID0gZmlsbE1ldGFkYXRhU2VnbWVudChcIi5cIiwgcHJvcHMucGFyYW1zLCBcIm9wZW5ncmFwaC1pbWFnZS5wbmdcIilcblxuICAgIHJldHVybiBbe1xuICAgICAgLi4uaW1hZ2VEYXRhLFxuICAgICAgdXJsOiBpbWFnZVVybCArIFwiPzJlMGJjMjMyZTIxMGY4OWRcIixcbiAgICB9XVxuICB9Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ ***! + \****************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/png\",\"width\":1200,\"height\":600}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"twitter-image.png\")\n\n return [{\n ...imageData,\n url: imageUrl + \"?2e0bc232e210f89d\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPXR3aXR0ZXImc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhLi9hcHAvdHdpdHRlci1pbWFnZS5wbmc/X19uZXh0X21ldGFkYXRhX18iLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsRUFBaUY7O0FBRWpGLEVBQUUsaUVBQWU7QUFDakIsdUJBQXVCO0FBQ3ZCLHFCQUFxQiw4RkFBbUI7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC90d2l0dGVyLWltYWdlLnBuZz8zOGRmIl0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3BuZ1wiLFwid2lkdGhcIjoxMjAwLFwiaGVpZ2h0XCI6NjAwfVxuICAgIGNvbnN0IGltYWdlVXJsID0gZmlsbE1ldGFkYXRhU2VnbWVudChcIi5cIiwgcHJvcHMucGFyYW1zLCBcInR3aXR0ZXItaW1hZ2UucG5nXCIpXG5cbiAgICByZXR1cm4gW3tcbiAgICAgIC4uLmltYWdlRGF0YSxcbiAgICAgIHVybDogaW1hZ2VVcmwgKyBcIj8yZTBiYzIzMmUyMTBmODlkXCIsXG4gICAgfV1cbiAgfSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\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","vendor-chunks/@supabase","vendor-chunks/tr46","vendor-chunks/whatwg-url","vendor-chunks/ramda","vendor-chunks/cookie","vendor-chunks/webidl-conversions","vendor-chunks/@swc","vendor-chunks/geist"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Flogin%2Fpage&page=%2Flogin%2Fpage&appPaths=%2Flogin%2Fpage&pagePath=private-next-app-dir%2Flogin%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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/login/page_client-reference-manifest.js b/.next/server/app/login/page_client-reference-manifest.js new file mode 100644 index 0000000..d47bc7f --- /dev/null +++ b/.next/server/app/login/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/login/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.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/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/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.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/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./components/Code.tsx":{"*":{"id":"(ssr)/./components/Code.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/components/Code.tsx":{"id":"(app-pages-browser)/./components/Code.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/login/page","static/chunks/app/login/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/login/page","static/chunks/app/login/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false}},"entryCSSFiles":{"/Users/pawanlive/Programming /timetable-app/app/page":[],"/Users/pawanlive/Programming /timetable-app/app/layout":["static/css/app/layout.css"],"/Users/pawanlive/Programming /timetable-app/app/login/page":[]}} \ No newline at end of file diff --git a/.next/server/app/not-found.js b/.next/server/app/not-found.js new file mode 100644 index 0000000..3a93861 --- /dev/null +++ b/.next/server/app/not-found.js @@ -0,0 +1,155 @@ +/* + * 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/not-found"; +exports.ids = ["app/not-found"]; +exports.modules = { + +/***/ "./action-async-storage.external": +/*!****************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external" ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/action-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/action-async-storage.external": +/*!*******************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external.js" ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/action-async-storage.external.js"); + +/***/ }), + +/***/ "./request-async-storage.external": +/*!*****************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external" ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/request-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/request-async-storage.external": +/*!********************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external.js" ***! + \********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/request-async-storage.external.js"); + +/***/ }), + +/***/ "./static-generation-async-storage.external": +/*!***************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external" ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/static-generation-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/static-generation-async-storage.external": +/*!******************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***! + \******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/static-generation-async-storage.external.js"); + +/***/ }), + +/***/ "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"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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 */ originalPathname: () => (/* binding */ originalPathname),\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?9d97\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/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\",\"originalPathname\",\"__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__);\n\"TURBOPACK { transition: next-ssr }\";\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: [\n '__DEFAULT__',\n {},\n {\n defaultPage: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/parallel-route-default */ \"(rsc)/./node_modules/next/dist/client/components/parallel-route-default.js\", 23)), \"next/dist/client/components/parallel-route-default\"],\n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\"],\n'not-found': [() => 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)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/not-found\";\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/not-found\",\n pathname: \"/not-found\",\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZub3QtZm91bmQmcGFnZT0lMkZub3QtZm91bmQmYXBwUGF0aHM9JnBhZ2VQYXRoPW5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRm5vdC1mb3VuZC1lcnJvci5qcyZhcHBEaXI9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsYUFBYSxzQkFBc0I7QUFDaUU7QUFDckM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBLGdDQUFnQyx3T0FBdUY7QUFDdkg7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHlCQUF5Qiw0SUFBK0Y7QUFDeEgsb0JBQW9CLDBOQUFnRjtBQUNwRztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDdUI7QUFDNkQ7QUFDcEYsNkJBQTZCLG1CQUFtQjtBQUNoRDtBQUNPO0FBQ0E7QUFDUDtBQUNBO0FBQ0E7QUFDdUQ7QUFDdkQ7QUFDTyx3QkFBd0IsOEdBQWtCO0FBQ2pEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8/MDVkNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcIlRVUkJPUEFDSyB7IHRyYW5zaXRpb246IG5leHQtc3NyIH1cIjtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgJ19fREVGQVVMVF9fJyxcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZWZhdWx0UGFnZTogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3BhcmFsbGVsLXJvdXRlLWRlZmF1bHRcIiksIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3BhcmFsbGVsLXJvdXRlLWRlZmF1bHRcIl0sXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsYXlvdXQnOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9sYXlvdXQudHN4XCIpLCBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2xheW91dC50c3hcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiKSwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvbm90LWZvdW5kXCI7XG5leHBvcnQgY29uc3QgX19uZXh0X2FwcF9fID0ge1xuICAgIHJlcXVpcmU6IF9fbmV4dF9hcHBfcmVxdWlyZV9fLFxuICAgIGxvYWRDaHVuazogX19uZXh0X2FwcF9sb2FkX2NodW5rX19cbn07XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIjtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IEFwcFBhZ2VSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgIHBhZ2U6IFwiL25vdC1mb3VuZFwiLFxuICAgICAgICBwYXRobmFtZTogXCIvbm90LWZvdW5kXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogXCJcIixcbiAgICAgICAgZmlsZW5hbWU6IFwiXCIsXG4gICAgICAgIGFwcFBhdGhzOiBbXVxuICAgIH0sXG4gICAgdXNlcmxhbmQ6IHtcbiAgICAgICAgbG9hZGVyVHJlZTogdHJlZVxuICAgIH1cbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcGFnZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&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/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\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));\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));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\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));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZhcHAtcm91dGVyLmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZlcnJvci1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXVJO0FBQ3ZJLDBPQUEySTtBQUMzSSx3T0FBMEk7QUFDMUksa1BBQStJO0FBQy9JLHNRQUF5SjtBQUN6SiIsInNvdXJjZXMiOlsid2VicGFjazovLy8/MDUwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWJvdW5kYXJ5LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%22path%22%3A%22node_modules%2Fgeist%2Fdist%2Fsans.js%22%2C%22import%22%3A%22%22%2C%22arguments%22%3A%5B%7B%22src%22%3A%22.%2Ffonts%2Fgeist-sans%2FGeist-Variable.woff2%22%2C%22variable%22%3A%22--font-geist-sans%22%2C%22weight%22%3A%22100%20900%22%7D%5D%2C%22variableName%22%3A%22GeistSans%22%7D&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Fglobals.css&server=true!": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%22path%22%3A%22node_modules%2Fgeist%2Fdist%2Fsans.js%22%2C%22import%22%3A%22%22%2C%22arguments%22%3A%5B%7B%22src%22%3A%22.%2Ffonts%2Fgeist-sans%2FGeist-Variable.woff2%22%2C%22variable%22%3A%22--font-geist-sans%22%2C%22weight%22%3A%22100%20900%22%7D%5D%2C%22variableName%22%3A%22GeistSans%22%7D&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Fglobals.css&server=true! ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "(rsc)/./app/globals.css": +/*!*************************!*\ + !*** ./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__ = (\"ac0d597278e1\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hcHAvZ2xvYmFscy5jc3M/YTFhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcImFjMGQ1OTcyNzhlMVwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n"); + +/***/ }), + +/***/ "(rsc)/./app/layout.tsx": +/*!************************!*\ + !*** ./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/future/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 geist_font_sans__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! geist/font/sans */ \"(rsc)/./node_modules/geist/dist/sans.js\");\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n\n\n\nconst defaultUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : \"http://localhost:3000\";\nconst metadata = {\n metadataBase: new URL(defaultUrl),\n title: \"Next.js and Supabase Starter Kit\",\n description: \"The fastest way to build apps with Next.js and Supabase\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n className: geist_font_sans__WEBPACK_IMPORTED_MODULE_1__.GeistSans.className,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: \"bg-background text-foreground\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen flex flex-col items-center\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 22,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 21,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 20,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTRDO0FBQ3JCO0FBRXZCLE1BQU1DLGFBQWFDLFFBQVFDLEdBQUcsQ0FBQ0MsVUFBVSxHQUNyQyxDQUFDLFFBQVEsRUFBRUYsUUFBUUMsR0FBRyxDQUFDQyxVQUFVLENBQUMsQ0FBQyxHQUNuQztBQUVHLE1BQU1DLFdBQVc7SUFDdEJDLGNBQWMsSUFBSUMsSUFBSU47SUFDdEJPLE9BQU87SUFDUEMsYUFBYTtBQUNmLEVBQUU7QUFFYSxTQUFTQyxXQUFXLEVBQ2pDQyxRQUFRLEVBR1Q7SUFDQyxxQkFDRSw4REFBQ0M7UUFBS0MsTUFBSztRQUFLQyxXQUFXZCxzREFBU0EsQ0FBQ2MsU0FBUztrQkFDNUMsNEVBQUNDO1lBQUtELFdBQVU7c0JBQ2QsNEVBQUNFO2dCQUFLRixXQUFVOzBCQUNiSDs7Ozs7Ozs7Ozs7Ozs7OztBQUtYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXBwL2xheW91dC50c3g/OTk4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZWlzdFNhbnMgfSBmcm9tIFwiZ2Vpc3QvZm9udC9zYW5zXCI7XG5pbXBvcnQgXCIuL2dsb2JhbHMuY3NzXCI7XG5cbmNvbnN0IGRlZmF1bHRVcmwgPSBwcm9jZXNzLmVudi5WRVJDRUxfVVJMXG4gID8gYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5WRVJDRUxfVVJMfWBcbiAgOiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiO1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGEgPSB7XG4gIG1ldGFkYXRhQmFzZTogbmV3IFVSTChkZWZhdWx0VXJsKSxcbiAgdGl0bGU6IFwiTmV4dC5qcyBhbmQgU3VwYWJhc2UgU3RhcnRlciBLaXRcIixcbiAgZGVzY3JpcHRpb246IFwiVGhlIGZhc3Rlc3Qgd2F5IHRvIGJ1aWxkIGFwcHMgd2l0aCBOZXh0LmpzIGFuZCBTdXBhYmFzZVwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XG4gIGNoaWxkcmVuLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufSkge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJlblwiIGNsYXNzTmFtZT17R2Vpc3RTYW5zLmNsYXNzTmFtZX0+XG4gICAgICA8Ym9keSBjbGFzc05hbWU9XCJiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvbWFpbj5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiR2Vpc3RTYW5zIiwiZGVmYXVsdFVybCIsInByb2Nlc3MiLCJlbnYiLCJWRVJDRUxfVVJMIiwibWV0YWRhdGEiLCJtZXRhZGF0YUJhc2UiLCJVUkwiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwiaHRtbCIsImxhbmciLCJjbGFzc05hbWUiLCJib2R5IiwibWFpbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\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","vendor-chunks/@swc","vendor-chunks/geist"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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/not-found_client-reference-manifest.js b/.next/server/app/not-found_client-reference-manifest.js new file mode 100644 index 0000000..b1e46cd --- /dev/null +++ b/.next/server/app/not-found_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/not-found"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.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/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/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.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/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./components/Code.tsx":{"*":{"id":"(ssr)/./components/Code.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/components/Code.tsx":{"id":"(app-pages-browser)/./components/Code.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false}},"entryCSSFiles":{"/Users/pawanlive/Programming /timetable-app/app/page":[],"/Users/pawanlive/Programming /timetable-app/app/layout":["static/css/app/layout.css"],"/Users/pawanlive/Programming /timetable-app/app/not-found":[]}} \ 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 0000000..cd95a26 --- /dev/null +++ b/.next/server/app/page.js @@ -0,0 +1,490 @@ +/* + * 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 = { + +/***/ "./action-async-storage.external": +/*!****************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external" ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/action-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/action-async-storage.external": +/*!*******************************************************************************!*\ + !*** external "next/dist/client/components/action-async-storage.external.js" ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/action-async-storage.external.js"); + +/***/ }), + +/***/ "./request-async-storage.external": +/*!*****************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external" ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/request-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/request-async-storage.external": +/*!********************************************************************************!*\ + !*** external "next/dist/client/components/request-async-storage.external.js" ***! + \********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/request-async-storage.external.js"); + +/***/ }), + +/***/ "./static-generation-async-storage.external": +/*!***************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external" ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/static-generation-async-storage.external"); + +/***/ }), + +/***/ "../../client/components/static-generation-async-storage.external": +/*!******************************************************************************************!*\ + !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***! + \******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/client/components/static-generation-async-storage.external.js"); + +/***/ }), + +/***/ "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"); + +/***/ }), + +/***/ "buffer": +/*!*************************!*\ + !*** external "buffer" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("buffer"); + +/***/ }), + +/***/ "crypto": +/*!*************************!*\ + !*** external "crypto" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("crypto"); + +/***/ }), + +/***/ "events": +/*!*************************!*\ + !*** external "events" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("events"); + +/***/ }), + +/***/ "http": +/*!***********************!*\ + !*** external "http" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("http"); + +/***/ }), + +/***/ "https": +/*!************************!*\ + !*** external "https" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("https"); + +/***/ }), + +/***/ "net": +/*!**********************!*\ + !*** external "net" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("net"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ "punycode": +/*!***************************!*\ + !*** external "punycode" ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("punycode"); + +/***/ }), + +/***/ "stream": +/*!*************************!*\ + !*** external "stream" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("stream"); + +/***/ }), + +/***/ "tls": +/*!**********************!*\ + !*** external "tls" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("tls"); + +/***/ }), + +/***/ "url": +/*!**********************!*\ + !*** external "url" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("url"); + +/***/ }), + +/***/ "zlib": +/*!***********************!*\ + !*** external "zlib" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("zlib"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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 */ originalPathname: () => (/* binding */ originalPathname),\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?9d97\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/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\",\"originalPathname\",\"__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__);\n\"TURBOPACK { transition: next-ssr }\";\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: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/page.tsx */ \"(rsc)/./app/page.tsx\")), \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\"],\n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\"))).default(props))],\n twitter: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\"))).default(props))],\n manifest: undefined\n }\n }]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\"],\n'not-found': [() => 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)), \"next/dist/client/components/not-found-error\"],\n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\"))).default(props))],\n twitter: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\"))).default(props))],\n manifest: undefined\n }\n }\n ]\n }.children;\nconst pages = [\"/Users/pawanlive/Programming /timetable-app/app/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/page\";\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRnBhd2FubGl2ZSUyRlByb2dyYW1taW5nJTIwJTJGdGltZXRhYmxlLWFwcCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWEsc0JBQXNCO0FBQ2lFO0FBQ3JDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQyx1QkFBdUIsd0lBQTZGO0FBQ3BIO0FBQ0Esb0NBQW9DLDhlQUF1UDtBQUMzUjtBQUNBLHlDQUF5QyxrZ0JBQWlRO0FBQzFTLHVDQUF1QywwZkFBNlA7QUFDcFM7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQSx5QkFBeUIsNElBQStGO0FBQ3hILG9CQUFvQiwwTkFBZ0Y7QUFDcEc7QUFDQSxvQ0FBb0MsOGVBQXVQO0FBQzNSO0FBQ0EseUNBQXlDLGtnQkFBaVE7QUFDMVMsdUNBQXVDLDBmQUE2UDtBQUNwUztBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUN1QjtBQUM2RDtBQUNwRiw2QkFBNkIsbUJBQW1CO0FBQ2hEO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUN1RDtBQUN2RDtBQUNPLHdCQUF3Qiw4R0FBa0I7QUFDakQ7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLz80ZWM1Il0sInNvdXJjZXNDb250ZW50IjpbIlwiVFVSQk9QQUNLIHsgdHJhbnNpdGlvbjogbmV4dC1zc3IgfVwiO1xuaW1wb3J0IHsgQXBwUGFnZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuLy8gV2UgaW5qZWN0IHRoZSB0cmVlIGFuZCBwYWdlcyBoZXJlIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRoZSByb3V0ZVxuLy8gbW9kdWxlLlxuY29uc3QgdHJlZSA9IHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJycsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgIHBhZ2U6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL3BhZ2UudHN4XCIpLCBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL3BhZ2UudHN4XCJdLFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgaWNvbjogWyhhc3luYyAocHJvcHMpID0+IChhd2FpdCBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQtbWV0YWRhdGEtaW1hZ2UtbG9hZGVyP3R5cGU9ZmF2aWNvbiZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9mYXZpY29uLmljbz9fX25leHRfbWV0YWRhdGFfX1wiKSkuZGVmYXVsdChwcm9wcykpXSxcbiAgICBhcHBsZTogW10sXG4gICAgb3BlbkdyYXBoOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT1vcGVuR3JhcGgmc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvb3BlbmdyYXBoLWltYWdlLnBuZz9fX25leHRfbWV0YWRhdGFfX1wiKSkuZGVmYXVsdChwcm9wcykpXSxcbiAgICB0d2l0dGVyOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT10d2l0dGVyJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzIS9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL3R3aXR0ZXItaW1hZ2UucG5nP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIG1hbmlmZXN0OiB1bmRlZmluZWRcbiAgfVxuICAgICAgICB9XVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAnbGF5b3V0JzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvbGF5b3V0LnRzeFwiKSwgXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9sYXlvdXQudHN4XCJdLFxuJ25vdC1mb3VuZCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIiksIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiXSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICBpY29uOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT1mYXZpY29uJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzIS9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvYXBwL2Zhdmljb24uaWNvP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIGFwcGxlOiBbXSxcbiAgICBvcGVuR3JhcGg6IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPW9wZW5HcmFwaCZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9vcGVuZ3JhcGgtaW1hZ2UucG5nP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIHR3aXR0ZXI6IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPXR3aXR0ZXImc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9hcHAvdHdpdHRlci1pbWFnZS5wbmc/X19uZXh0X21ldGFkYXRhX19cIikpLmRlZmF1bHQocHJvcHMpKV0sXG4gICAgbWFuaWZlc3Q6IHVuZGVmaW5lZFxuICB9XG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LmNoaWxkcmVuO1xuY29uc3QgcGFnZXMgPSBbXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL2FwcC9wYWdlLnRzeFwiXTtcbmV4cG9ydCB7IHRyZWUsIHBhZ2VzIH07XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdsb2JhbEVycm9yIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeVwiO1xuY29uc3QgX19uZXh0X2FwcF9yZXF1aXJlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fXG5jb25zdCBfX25leHRfYXBwX2xvYWRfY2h1bmtfXyA9ICgpID0+IFByb21pc2UucmVzb2x2ZSgpXG5leHBvcnQgY29uc3Qgb3JpZ2luYWxQYXRobmFtZSA9IFwiL3BhZ2VcIjtcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmV4cG9ydCAqIGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZVwiO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUGFnZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgcGFnZTogXCIvcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogXCJcIixcbiAgICAgICAgZmlsZW5hbWU6IFwiXCIsXG4gICAgICAgIGFwcFBhdGhzOiBbXVxuICAgIH0sXG4gICAgdXNlcmxhbmQ6IHtcbiAgICAgICAgbG9hZGVyVHJlZTogdHJlZVxuICAgIH1cbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcGFnZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fcomponents%2FAuthButton.tsx%22%2C%5B%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!": +/*!**********************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fcomponents%2FAuthButton.tsx%22%2C%5B%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=! ***! + \**********************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("\nconst actions = {\n'6a665cdd66eb4c3f8977ecc183c15fea4451156b': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./components/AuthButton.tsx */ \"(rsc)/./components/AuthButton.tsx\")).then(mod => mod[\"$$ACTION_1\"]),\n}\n\nasync function endpoint(id, ...args) {\n const action = await actions[id]()\n return action.apply(null, args)\n}\n\n// Using CJS to avoid this to be tree-shaken away due to unused exports.\nmodule.exports = {\n '6a665cdd66eb4c3f8977ecc183c15fea4451156b': endpoint.bind(null, '6a665cdd66eb4c3f8977ecc183c15fea4451156b'),\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1hY3Rpb24tZW50cnktbG9hZGVyLmpzP2FjdGlvbnM9JTVCJTVCJTIyJTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZjb21wb25lbnRzJTJGQXV0aEJ1dHRvbi50c3glMjIlMkMlNUIlMjIlMjQlMjRBQ1RJT05fMSUyMiU1RCU1RCU1RCZfX2NsaWVudF9pbXBvcnRlZF9fPSEiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0Esa0RBQWtELGtLQUEwRztBQUM1Sjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8/NGExZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmNvbnN0IGFjdGlvbnMgPSB7XG4nNmE2NjVjZGQ2NmViNGMzZjg5NzdlY2MxODNjMTVmZWE0NDUxMTU2Yic6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9jb21wb25lbnRzL0F1dGhCdXR0b24udHN4XCIpLnRoZW4obW9kID0+IG1vZFtcIiQkQUNUSU9OXzFcIl0pLFxufVxuXG5hc3luYyBmdW5jdGlvbiBlbmRwb2ludChpZCwgLi4uYXJncykge1xuICBjb25zdCBhY3Rpb24gPSBhd2FpdCBhY3Rpb25zW2lkXSgpXG4gIHJldHVybiBhY3Rpb24uYXBwbHkobnVsbCwgYXJncylcbn1cblxuLy8gVXNpbmcgQ0pTIHRvIGF2b2lkIHRoaXMgdG8gYmUgdHJlZS1zaGFrZW4gYXdheSBkdWUgdG8gdW51c2VkIGV4cG9ydHMuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgJzZhNjY1Y2RkNjZlYjRjM2Y4OTc3ZWNjMTgzYzE1ZmVhNDQ1MTE1NmInOiBlbmRwb2ludC5iaW5kKG51bGwsICc2YTY2NWNkZDY2ZWI0YzNmODk3N2VjYzE4M2MxNWZlYTQ0NTExNTZiJyksXG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fcomponents%2FAuthButton.tsx%22%2C%5B%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fcomponents%2FCode.tsx&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js&server=true!": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fcomponents%2FCode.tsx&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js&server=true! ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + +eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./components/Code.tsx */ \"(ssr)/./components/Code.tsx\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/link.js */ \"(ssr)/./node_modules/next/dist/client/link.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZjb21wb25lbnRzJTJGQ29kZS50c3gmbW9kdWxlcz0lMkZVc2VycyUyRnBhd2FubGl2ZSUyRlByb2dyYW1taW5nJTIwJTJGdGltZXRhYmxlLWFwcCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGbGluay5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsc0pBQW9HO0FBQ3BHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLz81YmY3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9jb21wb25lbnRzL0NvZGUudHN4XCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanNcIikiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fcomponents%2FCode.tsx&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&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/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\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));\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));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\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));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZhcHAtcm91dGVyLmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZlcnJvci1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZwYXdhbmxpdmUlMkZQcm9ncmFtbWluZyUyMCUyRnRpbWV0YWJsZS1hcHAlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXVJO0FBQ3ZJLDBPQUEySTtBQUMzSSx3T0FBMEk7QUFDMUksa1BBQStJO0FBQy9JLHNRQUF5SjtBQUN6SiIsInNvdXJjZXMiOlsid2VicGFjazovLy8/MDUwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wYXdhbmxpdmUvUHJvZ3JhbW1pbmcgL3RpbWV0YWJsZS1hcHAvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWJvdW5kYXJ5LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcGF3YW5saXZlL1Byb2dyYW1taW5nIC90aW1ldGFibGUtYXBwL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3Bhd2FubGl2ZS9Qcm9ncmFtbWluZyAvdGltZXRhYmxlLWFwcC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%22path%22%3A%22node_modules%2Fgeist%2Fdist%2Fsans.js%22%2C%22import%22%3A%22%22%2C%22arguments%22%3A%5B%7B%22src%22%3A%22.%2Ffonts%2Fgeist-sans%2FGeist-Variable.woff2%22%2C%22variable%22%3A%22--font-geist-sans%22%2C%22weight%22%3A%22100%20900%22%7D%5D%2C%22variableName%22%3A%22GeistSans%22%7D&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Fglobals.css&server=true!": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%22path%22%3A%22node_modules%2Fgeist%2Fdist%2Fsans.js%22%2C%22import%22%3A%22%22%2C%22arguments%22%3A%5B%7B%22src%22%3A%22.%2Ffonts%2Fgeist-sans%2FGeist-Variable.woff2%22%2C%22variable%22%3A%22--font-geist-sans%22%2C%22weight%22%3A%22100%20900%22%7D%5D%2C%22variableName%22%3A%22GeistSans%22%7D&modules=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Fglobals.css&server=true! ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "(ssr)/./components/Code.tsx": +/*!*****************************!*\ + !*** ./components/Code.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 */ Code)\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/future/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/future/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/* __next_internal_client_entry_do_not_use__ default auto */ \n\nconst CopyIcon = ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20\",\n height: \"20\",\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,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"rect\", {\n x: \"9\",\n y: \"9\",\n width: \"13\",\n height: \"13\",\n rx: \"2\",\n ry: \"2\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Code.tsx\",\n lineNumber: 17,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Code.tsx\",\n lineNumber: 18,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Code.tsx\",\n lineNumber: 6,\n columnNumber: 3\n }, undefined);\nconst CheckIcon = ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"polyline\", {\n points: \"20 6 9 17 4 12\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Code.tsx\",\n lineNumber: 34,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Code.tsx\",\n lineNumber: 23,\n columnNumber: 3\n }, undefined);\nfunction Code({ code }) {\n const [icon, setIcon] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(CopyIcon);\n const copy = async ()=>{\n await navigator?.clipboard?.writeText(code);\n setIcon(CheckIcon);\n setTimeout(()=>setIcon(CopyIcon), 2000);\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"pre\", {\n className: \"bg-foreground/5 rounded-md p-8 my-8 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: copy,\n className: \"absolute top-4 right-4 p-2 rounded-md bg-foreground/5 hover:bg-foreground/10\",\n children: icon\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Code.tsx\",\n lineNumber: 49,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"code\", {\n children: code\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Code.tsx\",\n lineNumber: 55,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Code.tsx\",\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9jb21wb25lbnRzL0NvZGUudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVpQztBQUVqQyxNQUFNQyxXQUFXLGtCQUNmLDhEQUFDQztRQUNDQyxPQUFNO1FBQ05DLE9BQU07UUFDTkMsUUFBTztRQUNQQyxTQUFRO1FBQ1JDLE1BQUs7UUFDTEMsUUFBTztRQUNQQyxhQUFZO1FBQ1pDLGVBQWM7UUFDZEMsZ0JBQWU7OzBCQUVmLDhEQUFDQztnQkFBS0MsR0FBRTtnQkFBSUMsR0FBRTtnQkFBSVYsT0FBTTtnQkFBS0MsUUFBTztnQkFBS1UsSUFBRztnQkFBSUMsSUFBRzs7Ozs7OzBCQUNuRCw4REFBQ0M7Z0JBQUtDLEdBQUU7Ozs7Ozs7Ozs7OztBQUlaLE1BQU1DLFlBQVksa0JBQ2hCLDhEQUFDakI7UUFDQ0MsT0FBTTtRQUNOQyxPQUFNO1FBQ05DLFFBQU87UUFDUEMsU0FBUTtRQUNSQyxNQUFLO1FBQ0xDLFFBQU87UUFDUEMsYUFBWTtRQUNaQyxlQUFjO1FBQ2RDLGdCQUFlO2tCQUVmLDRFQUFDUztZQUFTQyxRQUFPOzs7Ozs7Ozs7OztBQUlOLFNBQVNDLEtBQUssRUFBRUMsSUFBSSxFQUFvQjtJQUNyRCxNQUFNLENBQUNDLE1BQU1DLFFBQVEsR0FBR3pCLCtDQUFRQSxDQUFDQztJQUVqQyxNQUFNeUIsT0FBTztRQUNYLE1BQU1DLFdBQVdDLFdBQVdDLFVBQVVOO1FBQ3RDRSxRQUFRTjtRQUNSVyxXQUFXLElBQU1MLFFBQVF4QixXQUFXO0lBQ3RDO0lBRUEscUJBQ0UsOERBQUM4QjtRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0M7Z0JBQ0NDLFNBQVNSO2dCQUNUTSxXQUFVOzBCQUVUUjs7Ozs7OzBCQUVILDhEQUFDRDswQkFBTUE7Ozs7Ozs7Ozs7OztBQUdiIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vY29tcG9uZW50cy9Db2RlLnRzeD81YjZlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5jb25zdCBDb3B5SWNvbiA9ICgpID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHdpZHRoPVwiMjBcIlxuICAgIGhlaWdodD1cIjIwXCJcbiAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICBmaWxsPVwibm9uZVwiXG4gICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gID5cbiAgICA8cmVjdCB4PVwiOVwiIHk9XCI5XCIgd2lkdGg9XCIxM1wiIGhlaWdodD1cIjEzXCIgcng9XCIyXCIgcnk9XCIyXCI+PC9yZWN0PlxuICAgIDxwYXRoIGQ9XCJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxXCI+PC9wYXRoPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IENoZWNrSWNvbiA9ICgpID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHdpZHRoPVwiMjBcIlxuICAgIGhlaWdodD1cIjIwXCJcbiAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICBmaWxsPVwibm9uZVwiXG4gICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gID5cbiAgICA8cG9seWxpbmUgcG9pbnRzPVwiMjAgNiA5IDE3IDQgMTJcIj48L3BvbHlsaW5lPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvZGUoeyBjb2RlIH06IHsgY29kZTogc3RyaW5nIH0pIHtcbiAgY29uc3QgW2ljb24sIHNldEljb25dID0gdXNlU3RhdGUoQ29weUljb24pO1xuXG4gIGNvbnN0IGNvcHkgPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgbmF2aWdhdG9yPy5jbGlwYm9hcmQ/LndyaXRlVGV4dChjb2RlKTtcbiAgICBzZXRJY29uKENoZWNrSWNvbik7XG4gICAgc2V0VGltZW91dCgoKSA9PiBzZXRJY29uKENvcHlJY29uKSwgMjAwMCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8cHJlIGNsYXNzTmFtZT1cImJnLWZvcmVncm91bmQvNSByb3VuZGVkLW1kIHAtOCBteS04IHJlbGF0aXZlXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG9uQ2xpY2s9e2NvcHl9XG4gICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC00IHJpZ2h0LTQgIHAtMiByb3VuZGVkLW1kIGJnLWZvcmVncm91bmQvNSBob3ZlcjpiZy1mb3JlZ3JvdW5kLzEwXCJcbiAgICAgID5cbiAgICAgICAge2ljb259XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxjb2RlPntjb2RlfTwvY29kZT5cbiAgICA8L3ByZT5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkNvcHlJY29uIiwic3ZnIiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJyZWN0IiwieCIsInkiLCJyeCIsInJ5IiwicGF0aCIsImQiLCJDaGVja0ljb24iLCJwb2x5bGluZSIsInBvaW50cyIsIkNvZGUiLCJjb2RlIiwiaWNvbiIsInNldEljb24iLCJjb3B5IiwibmF2aWdhdG9yIiwiY2xpcGJvYXJkIiwid3JpdGVUZXh0Iiwic2V0VGltZW91dCIsInByZSIsImNsYXNzTmFtZSIsImJ1dHRvbiIsIm9uQ2xpY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./components/Code.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./app/globals.css": +/*!*************************!*\ + !*** ./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__ = (\"ac0d597278e1\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hcHAvZ2xvYmFscy5jc3M/YTFhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcImFjMGQ1OTcyNzhlMVwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n"); + +/***/ }), + +/***/ "(rsc)/./app/layout.tsx": +/*!************************!*\ + !*** ./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/future/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 geist_font_sans__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! geist/font/sans */ \"(rsc)/./node_modules/geist/dist/sans.js\");\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n\n\n\nconst defaultUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : \"http://localhost:3000\";\nconst metadata = {\n metadataBase: new URL(defaultUrl),\n title: \"Next.js and Supabase Starter Kit\",\n description: \"The fastest way to build apps with Next.js and Supabase\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n className: geist_font_sans__WEBPACK_IMPORTED_MODULE_1__.GeistSans.className,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: \"bg-background text-foreground\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen flex flex-col items-center\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 22,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 21,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/layout.tsx\",\n lineNumber: 20,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTRDO0FBQ3JCO0FBRXZCLE1BQU1DLGFBQWFDLFFBQVFDLEdBQUcsQ0FBQ0MsVUFBVSxHQUNyQyxDQUFDLFFBQVEsRUFBRUYsUUFBUUMsR0FBRyxDQUFDQyxVQUFVLENBQUMsQ0FBQyxHQUNuQztBQUVHLE1BQU1DLFdBQVc7SUFDdEJDLGNBQWMsSUFBSUMsSUFBSU47SUFDdEJPLE9BQU87SUFDUEMsYUFBYTtBQUNmLEVBQUU7QUFFYSxTQUFTQyxXQUFXLEVBQ2pDQyxRQUFRLEVBR1Q7SUFDQyxxQkFDRSw4REFBQ0M7UUFBS0MsTUFBSztRQUFLQyxXQUFXZCxzREFBU0EsQ0FBQ2MsU0FBUztrQkFDNUMsNEVBQUNDO1lBQUtELFdBQVU7c0JBQ2QsNEVBQUNFO2dCQUFLRixXQUFVOzBCQUNiSDs7Ozs7Ozs7Ozs7Ozs7OztBQUtYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXBwL2xheW91dC50c3g/OTk4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZWlzdFNhbnMgfSBmcm9tIFwiZ2Vpc3QvZm9udC9zYW5zXCI7XG5pbXBvcnQgXCIuL2dsb2JhbHMuY3NzXCI7XG5cbmNvbnN0IGRlZmF1bHRVcmwgPSBwcm9jZXNzLmVudi5WRVJDRUxfVVJMXG4gID8gYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5WRVJDRUxfVVJMfWBcbiAgOiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiO1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGEgPSB7XG4gIG1ldGFkYXRhQmFzZTogbmV3IFVSTChkZWZhdWx0VXJsKSxcbiAgdGl0bGU6IFwiTmV4dC5qcyBhbmQgU3VwYWJhc2UgU3RhcnRlciBLaXRcIixcbiAgZGVzY3JpcHRpb246IFwiVGhlIGZhc3Rlc3Qgd2F5IHRvIGJ1aWxkIGFwcHMgd2l0aCBOZXh0LmpzIGFuZCBTdXBhYmFzZVwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XG4gIGNoaWxkcmVuLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufSkge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJlblwiIGNsYXNzTmFtZT17R2Vpc3RTYW5zLmNsYXNzTmFtZX0+XG4gICAgICA8Ym9keSBjbGFzc05hbWU9XCJiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvbWFpbj5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiR2Vpc3RTYW5zIiwiZGVmYXVsdFVybCIsInByb2Nlc3MiLCJlbnYiLCJWRVJDRUxfVVJMIiwibWV0YWRhdGEiLCJtZXRhZGF0YUJhc2UiLCJVUkwiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwiaHRtbCIsImxhbmciLCJjbGFzc05hbWUiLCJib2R5IiwibWFpbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./app/page.tsx": +/*!**********************!*\ + !*** ./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 */ Index)\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/future/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 _components_DeployButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/DeployButton */ \"(rsc)/./components/DeployButton.tsx\");\n/* harmony import */ var _components_AuthButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/AuthButton */ \"(rsc)/./components/AuthButton.tsx\");\n/* harmony import */ var _utils_supabase_server__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/supabase/server */ \"(rsc)/./utils/supabase/server.ts\");\n/* harmony import */ var _components_ConnectSupabaseSteps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ConnectSupabaseSteps */ \"(rsc)/./components/ConnectSupabaseSteps.tsx\");\n/* harmony import */ var _components_SignUpUserSteps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/SignUpUserSteps */ \"(rsc)/./components/SignUpUserSteps.tsx\");\n/* harmony import */ var _components_Header__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/Header */ \"(rsc)/./components/Header.tsx\");\n/* harmony import */ var next_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next/headers */ \"(rsc)/./node_modules/next/dist/api/headers.js\");\n\n\n\n\n\n\n\n\nasync function Index() {\n const cookieStore = (0,next_headers__WEBPACK_IMPORTED_MODULE_7__.cookies)();\n const canInitSupabaseClient = ()=>{\n // This function is just for the interactive tutorial.\n // Feel free to remove it once you have Supabase connected.\n try {\n (0,_utils_supabase_server__WEBPACK_IMPORTED_MODULE_3__.createClient)(cookieStore);\n return true;\n } catch (e) {\n return false;\n }\n };\n const isSupabaseConnected = canInitSupabaseClient();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 w-full flex flex-col gap-20 items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"w-full flex justify-center border-b border-b-foreground/10 h-16\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-4xl flex justify-between items-center p-3 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_DeployButton__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 29,\n columnNumber: 11\n }, this),\n isSupabaseConnected && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AuthButton__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 30,\n columnNumber: 35\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-in flex-1 flex flex-col gap-20 opacity-0 max-w-4xl px-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Header__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 35,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"flex-1 flex flex-col gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"font-bold text-4xl mb-4\",\n children: \"Next steps\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 37,\n columnNumber: 11\n }, this),\n isSupabaseConnected ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_SignUpUserSteps__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 38,\n columnNumber: 34\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ConnectSupabaseSteps__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 38,\n columnNumber: 56\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 36,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 34,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"w-full border-t border-t-foreground/10 p-8 flex justify-center text-center text-xs\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"Powered by\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://supabase.com/?utm_source=create-next-app&utm_medium=template&utm_term=nextjs\",\n target: \"_blank\",\n className: \"font-bold hover:underline\",\n rel: \"noreferrer\",\n children: \"Supabase\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 45,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 43,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 42,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/app/page.tsx\",\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBc0Q7QUFDSjtBQUNLO0FBQ2M7QUFDVjtBQUNsQjtBQUNGO0FBRXhCLGVBQWVPO0lBQzVCLE1BQU1DLGNBQWNGLHFEQUFPQTtJQUUzQixNQUFNRyx3QkFBd0I7UUFDNUIsc0RBQXNEO1FBQ3RELDJEQUEyRDtRQUMzRCxJQUFJO1lBQ0ZQLG9FQUFZQSxDQUFDTTtZQUNiLE9BQU87UUFDVCxFQUFFLE9BQU9FLEdBQUc7WUFDVixPQUFPO1FBQ1Q7SUFDRjtJQUVBLE1BQU1DLHNCQUFzQkY7SUFFNUIscUJBQ0UsOERBQUNHO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDQztnQkFBSUQsV0FBVTswQkFDYiw0RUFBQ0Q7b0JBQUlDLFdBQVU7O3NDQUNiLDhEQUFDYixnRUFBWUE7Ozs7O3dCQUNaVyxxQ0FBdUIsOERBQUNWLDhEQUFVQTs7Ozs7Ozs7Ozs7Ozs7OzswQkFJdkMsOERBQUNXO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ1IsMERBQU1BOzs7OztrQ0FDUCw4REFBQ1U7d0JBQUtGLFdBQVU7OzBDQUNkLDhEQUFDRztnQ0FBR0gsV0FBVTswQ0FBMEI7Ozs7Ozs0QkFDdkNGLG9DQUFzQiw4REFBQ1AsbUVBQWVBOzs7O3FEQUFNLDhEQUFDRCx3RUFBb0JBOzs7Ozs7Ozs7Ozs7Ozs7OzswQkFJdEUsOERBQUNjO2dCQUFPSixXQUFVOzBCQUNoQiw0RUFBQ0s7O3dCQUFFO3dCQUNVO3NDQUNYLDhEQUFDQzs0QkFDQ0MsTUFBSzs0QkFDTEMsUUFBTzs0QkFDUFIsV0FBVTs0QkFDVlMsS0FBSTtzQ0FDTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPWCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC9wYWdlLnRzeD83NjAzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEZXBsb3lCdXR0b24gZnJvbSBcIi4uL2NvbXBvbmVudHMvRGVwbG95QnV0dG9uXCI7XG5pbXBvcnQgQXV0aEJ1dHRvbiBmcm9tIFwiLi4vY29tcG9uZW50cy9BdXRoQnV0dG9uXCI7XG5pbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tIFwiQC91dGlscy9zdXBhYmFzZS9zZXJ2ZXJcIjtcbmltcG9ydCBDb25uZWN0U3VwYWJhc2VTdGVwcyBmcm9tIFwiQC9jb21wb25lbnRzL0Nvbm5lY3RTdXBhYmFzZVN0ZXBzXCI7XG5pbXBvcnQgU2lnblVwVXNlclN0ZXBzIGZyb20gXCJAL2NvbXBvbmVudHMvU2lnblVwVXNlclN0ZXBzXCI7XG5pbXBvcnQgSGVhZGVyIGZyb20gXCJAL2NvbXBvbmVudHMvSGVhZGVyXCI7XG5pbXBvcnQgeyBjb29raWVzIH0gZnJvbSBcIm5leHQvaGVhZGVyc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBJbmRleCgpIHtcbiAgY29uc3QgY29va2llU3RvcmUgPSBjb29raWVzKCk7XG5cbiAgY29uc3QgY2FuSW5pdFN1cGFiYXNlQ2xpZW50ID0gKCkgPT4ge1xuICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMganVzdCBmb3IgdGhlIGludGVyYWN0aXZlIHR1dG9yaWFsLlxuICAgIC8vIEZlZWwgZnJlZSB0byByZW1vdmUgaXQgb25jZSB5b3UgaGF2ZSBTdXBhYmFzZSBjb25uZWN0ZWQuXG4gICAgdHJ5IHtcbiAgICAgIGNyZWF0ZUNsaWVudChjb29raWVTdG9yZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGlzU3VwYWJhc2VDb25uZWN0ZWQgPSBjYW5Jbml0U3VwYWJhc2VDbGllbnQoKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIHctZnVsbCBmbGV4IGZsZXgtY29sIGdhcC0yMCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxuYXYgY2xhc3NOYW1lPVwidy1mdWxsIGZsZXgganVzdGlmeS1jZW50ZXIgYm9yZGVyLWIgYm9yZGVyLWItZm9yZWdyb3VuZC8xMCBoLTE2XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIG1heC13LTR4bCBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcC0zIHRleHQtc21cIj5cbiAgICAgICAgICA8RGVwbG95QnV0dG9uIC8+XG4gICAgICAgICAge2lzU3VwYWJhc2VDb25uZWN0ZWQgJiYgPEF1dGhCdXR0b24gLz59XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uYXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYW5pbWF0ZS1pbiBmbGV4LTEgZmxleCBmbGV4LWNvbCBnYXAtMjAgb3BhY2l0eS0wIG1heC13LTR4bCBweC0zXCI+XG4gICAgICAgIDxIZWFkZXIgLz5cbiAgICAgICAgPG1haW4gY2xhc3NOYW1lPVwiZmxleC0xIGZsZXggZmxleC1jb2wgZ2FwLTZcIj5cbiAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiZm9udC1ib2xkIHRleHQtNHhsIG1iLTRcIj5OZXh0IHN0ZXBzPC9oMj5cbiAgICAgICAgICB7aXNTdXBhYmFzZUNvbm5lY3RlZCA/IDxTaWduVXBVc2VyU3RlcHMgLz4gOiA8Q29ubmVjdFN1cGFiYXNlU3RlcHMgLz59XG4gICAgICAgIDwvbWFpbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cInctZnVsbCBib3JkZXItdCBib3JkZXItdC1mb3JlZ3JvdW5kLzEwIHAtOCBmbGV4IGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyIHRleHQteHNcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgUG93ZXJlZCBieXtcIiBcIn1cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vc3VwYWJhc2UuY29tLz91dG1fc291cmNlPWNyZWF0ZS1uZXh0LWFwcCZ1dG1fbWVkaXVtPXRlbXBsYXRlJnV0bV90ZXJtPW5leHRqc1wiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9udC1ib2xkIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBTdXBhYmFzZVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9wPlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiRGVwbG95QnV0dG9uIiwiQXV0aEJ1dHRvbiIsImNyZWF0ZUNsaWVudCIsIkNvbm5lY3RTdXBhYmFzZVN0ZXBzIiwiU2lnblVwVXNlclN0ZXBzIiwiSGVhZGVyIiwiY29va2llcyIsIkluZGV4IiwiY29va2llU3RvcmUiLCJjYW5Jbml0U3VwYWJhc2VDbGllbnQiLCJlIiwiaXNTdXBhYmFzZUNvbm5lY3RlZCIsImRpdiIsImNsYXNzTmFtZSIsIm5hdiIsIm1haW4iLCJoMiIsImZvb3RlciIsInAiLCJhIiwiaHJlZiIsInRhcmdldCIsInJlbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/page.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./components/AuthButton.tsx": +/*!***********************************!*\ + !*** ./components/AuthButton.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 */ $$ACTION_1: () => (/* binding */ $$ACTION_1),\n/* harmony export */ \"default\": () => (/* binding */ AuthButton)\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/future/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 private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! private-next-rsc-action-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-proxy.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! private-next-rsc-action-encryption */ \"(rsc)/./node_modules/next/dist/server/app-render/action-encryption.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_supabase_server__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/supabase/server */ \"(rsc)/./utils/supabase/server.ts\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/link */ \"(rsc)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_headers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/headers */ \"(rsc)/./node_modules/next/dist/api/headers.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/navigation */ \"(rsc)/./node_modules/next/dist/api/navigation.js\");\n/* __next_internal_action_entry_do_not_use__ {\"6a665cdd66eb4c3f8977ecc183c15fea4451156b\":\"$$ACTION_1\"} */ \n\n\n\n\n\n\nasync function AuthButton() {\n const cookieStore = (0,next_headers__WEBPACK_IMPORTED_MODULE_5__.cookies)();\n const supabase = (0,_utils_supabase_server__WEBPACK_IMPORTED_MODULE_3__.createClient)(cookieStore);\n const { data: { user } } = await supabase.auth.getUser();\n const signOut = (0,private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_1__.createActionProxy)(\"6a665cdd66eb4c3f8977ecc183c15fea4451156b\", $$ACTION_1);\n return user ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n \"Hey, \",\n user.email,\n \"!\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n action: signOut,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"py-2 px-4 rounded-md no-underline bg-btn-background hover:bg-btn-background-hover\",\n children: \"Logout\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/AuthButton.tsx\",\n lineNumber: 27,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/AuthButton.tsx\",\n lineNumber: 26,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/AuthButton.tsx\",\n lineNumber: 24,\n columnNumber: 5\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n href: \"/login\",\n className: \"py-2 px-3 flex rounded-md no-underline bg-btn-background hover:bg-btn-background-hover\",\n children: \"Login\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/AuthButton.tsx\",\n lineNumber: 33,\n columnNumber: 5\n }, this);\n}\nasync function $$ACTION_1() {\n const cookieStore = (0,next_headers__WEBPACK_IMPORTED_MODULE_5__.cookies)();\n const supabase = (0,_utils_supabase_server__WEBPACK_IMPORTED_MODULE_3__.createClient)(cookieStore);\n await supabase.auth.signOut();\n return (0,next_navigation__WEBPACK_IMPORTED_MODULE_6__.redirect)(\"/login\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL0F1dGhCdXR0b24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVEO0FBQzFCO0FBQ1U7QUFDSTtBQUU1QixlQUFlSTtJQUM1QixNQUFNQyxjQUFjSCxxREFBT0E7SUFDM0IsTUFBTUksV0FBV04sb0VBQVlBLENBQUNLO0lBRTlCLE1BQU0sRUFDSkUsTUFBTSxFQUFFQyxJQUFJLEVBQUUsRUFDZixHQUFHLE1BQU1GLFNBQVNHLElBQUksQ0FBQ0MsT0FBTztJQUUvQixNQUFNQyxVQUFVQSxnRkFBQUE7SUFTaEIsT0FBT0gscUJBQ0wsOERBQUNJO1FBQUlDLFdBQVU7O1lBQTBCO1lBQ2pDTCxLQUFLTSxLQUFLO1lBQUM7MEJBQ2pCLDhEQUFDQztnQkFBS0MsUUFBUUw7MEJBQ1osNEVBQUNNO29CQUFPSixXQUFVOzhCQUFvRjs7Ozs7Ozs7Ozs7Ozs7Ozs2QkFNMUcsOERBQUNaLGlEQUFJQTtRQUNIaUIsTUFBSztRQUNMTCxXQUFVO2tCQUNYOzs7Ozs7QUFJTDs7SUF2QkksTUFBTVIsY0FBY0gscURBQU9BO0lBQzNCLE1BQU1JLFdBQVdOLG9FQUFZQSxDQUFDSztJQUM5QixNQUFNQyxTQUFTRyxJQUFJLENBQUNFLE9BQU87SUFDM0IsT0FBT1IseURBQVFBLENBQUM7QUFDbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb21wb25lbnRzL0F1dGhCdXR0b24udHN4P2FlMGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ2xpZW50IH0gZnJvbSBcIkAvdXRpbHMvc3VwYWJhc2Uvc2VydmVyXCI7XG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XG5pbXBvcnQgeyBjb29raWVzIH0gZnJvbSBcIm5leHQvaGVhZGVyc1wiO1xuaW1wb3J0IHsgcmVkaXJlY3QgfSBmcm9tIFwibmV4dC9uYXZpZ2F0aW9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIEF1dGhCdXR0b24oKSB7XG4gIGNvbnN0IGNvb2tpZVN0b3JlID0gY29va2llcygpO1xuICBjb25zdCBzdXBhYmFzZSA9IGNyZWF0ZUNsaWVudChjb29raWVTdG9yZSk7XG5cbiAgY29uc3Qge1xuICAgIGRhdGE6IHsgdXNlciB9LFxuICB9ID0gYXdhaXQgc3VwYWJhc2UuYXV0aC5nZXRVc2VyKCk7XG5cbiAgY29uc3Qgc2lnbk91dCA9IGFzeW5jICgpID0+IHtcbiAgICBcInVzZSBzZXJ2ZXJcIjtcblxuICAgIGNvbnN0IGNvb2tpZVN0b3JlID0gY29va2llcygpO1xuICAgIGNvbnN0IHN1cGFiYXNlID0gY3JlYXRlQ2xpZW50KGNvb2tpZVN0b3JlKTtcbiAgICBhd2FpdCBzdXBhYmFzZS5hdXRoLnNpZ25PdXQoKTtcbiAgICByZXR1cm4gcmVkaXJlY3QoXCIvbG9naW5cIik7XG4gIH07XG5cbiAgcmV0dXJuIHVzZXIgPyAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgSGV5LCB7dXNlci5lbWFpbH0hXG4gICAgICA8Zm9ybSBhY3Rpb249e3NpZ25PdXR9PlxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInB5LTIgcHgtNCByb3VuZGVkLW1kIG5vLXVuZGVybGluZSBiZy1idG4tYmFja2dyb3VuZCBob3ZlcjpiZy1idG4tYmFja2dyb3VuZC1ob3ZlclwiPlxuICAgICAgICAgIExvZ291dFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgKSA6IChcbiAgICA8TGlua1xuICAgICAgaHJlZj1cIi9sb2dpblwiXG4gICAgICBjbGFzc05hbWU9XCJweS0yIHB4LTMgZmxleCByb3VuZGVkLW1kIG5vLXVuZGVybGluZSBiZy1idG4tYmFja2dyb3VuZCBob3ZlcjpiZy1idG4tYmFja2dyb3VuZC1ob3ZlclwiXG4gICAgPlxuICAgICAgTG9naW5cbiAgICA8L0xpbms+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlQ2xpZW50IiwiTGluayIsImNvb2tpZXMiLCJyZWRpcmVjdCIsIkF1dGhCdXR0b24iLCJjb29raWVTdG9yZSIsInN1cGFiYXNlIiwiZGF0YSIsInVzZXIiLCJhdXRoIiwiZ2V0VXNlciIsInNpZ25PdXQiLCJkaXYiLCJjbGFzc05hbWUiLCJlbWFpbCIsImZvcm0iLCJhY3Rpb24iLCJidXR0b24iLCJocmVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./components/AuthButton.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./components/Code.tsx": +/*!*****************************!*\ + !*** ./components/Code.tsx ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ $$typeof: () => (/* binding */ $$typeof), +/* harmony export */ __esModule: () => (/* binding */ __esModule), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js"); + +const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/pawanlive/Programming /timetable-app/components/Code.tsx`) + +// Accessing the __esModule property and exporting $$typeof are required here. +// The __esModule getter forces the proxy target to create the default export +// and the $$typeof value is for rendering logic to determine if the module +// is a client boundary. +const { __esModule, $$typeof } = proxy; +const __default__ = proxy.default; + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__); + +/***/ }), + +/***/ "(rsc)/./components/ConnectSupabaseSteps.tsx": +/*!*********************************************!*\ + !*** ./components/ConnectSupabaseSteps.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 */ ConnectSupabaseSteps)\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/future/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 _Step__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Step */ \"(rsc)/./components/Step.tsx\");\n\n\nfunction ConnectSupabaseSteps() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ol\", {\n className: \"flex flex-col gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Step__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n title: \"Create Supabase project\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"Head over to\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://app.supabase.com/project/_/settings/api\",\n target: \"_blank\",\n className: \"font-bold hover:underline text-foreground/80\",\n rel: \"noreferrer\",\n children: \"database.new\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 9,\n columnNumber: 11\n }, this),\n \" \",\n \"and create a new Supabase project.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 7,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Step__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n title: \"Declare environment variables\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"Rename the\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-1 rounded-md bg-foreground/20 text-foreground/80\",\n children: \".env.example\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 24,\n columnNumber: 11\n }, this),\n \" \",\n \"file in your Next.js app to\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-1 rounded-md bg-foreground/20 text-foreground/80\",\n children: \".env.local\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 28,\n columnNumber: 11\n }, this),\n \" \",\n \"and populate with values from\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://app.supabase.com/project/_/settings/api\",\n target: \"_blank\",\n className: \"font-bold hover:underline text-foreground/80\",\n rel: \"noreferrer\",\n children: \"your Supabase project's API Settings\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 32,\n columnNumber: 11\n }, this),\n \".\"\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 22,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 21,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Step__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n title: \"Restart your Next.js development server\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"You may need to quit your Next.js development server and run\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-1 rounded-md bg-foreground/20 text-foreground/80\",\n children: \"npm run dev\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 47,\n columnNumber: 11\n }, this),\n \" \",\n \"again to load the new environment variables.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 44,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Step__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n title: \"Refresh the page\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"You may need to refresh the page for Next.js to load the new environment variables.\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 55,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 54,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/ConnectSupabaseSteps.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL0Nvbm5lY3RTdXBhYmFzZVN0ZXBzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUEwQjtBQUVYLFNBQVNDO0lBQ3RCLHFCQUNFLDhEQUFDQztRQUFHQyxXQUFVOzswQkFDWiw4REFBQ0gsNkNBQUlBO2dCQUFDSSxPQUFNOzBCQUNWLDRFQUFDQzs7d0JBQUU7d0JBQ1k7c0NBQ2IsOERBQUNDOzRCQUNDQyxNQUFLOzRCQUNMQyxRQUFPOzRCQUNQTCxXQUFVOzRCQUNWTSxLQUFJO3NDQUNMOzs7Ozs7d0JBRUk7d0JBQUk7Ozs7Ozs7Ozs7OzswQkFLYiw4REFBQ1QsNkNBQUlBO2dCQUFDSSxPQUFNOzBCQUNWLDRFQUFDQzs7d0JBQUU7d0JBQ1U7c0NBQ1gsOERBQUNLOzRCQUFLUCxXQUFVO3NDQUEyRDs7Ozs7O3dCQUVuRTt3QkFBSTt3QkFDZ0I7c0NBQzVCLDhEQUFDTzs0QkFBS1AsV0FBVTtzQ0FBMkQ7Ozs7Ozt3QkFFbkU7d0JBQUk7d0JBQ2tCO3NDQUM5Qiw4REFBQ0c7NEJBQ0NDLE1BQUs7NEJBQ0xDLFFBQU87NEJBQ1BMLFdBQVU7NEJBQ1ZNLEtBQUk7c0NBQ0w7Ozs7Ozt3QkFFRzs7Ozs7Ozs7Ozs7OzBCQUtSLDhEQUFDVCw2Q0FBSUE7Z0JBQUNJLE9BQU07MEJBQ1YsNEVBQUNDOzt3QkFBRTt3QkFDNEQ7c0NBQzdELDhEQUFDSzs0QkFBS1AsV0FBVTtzQ0FBMkQ7Ozs7Ozt3QkFFbkU7d0JBQUk7Ozs7Ozs7Ozs7OzswQkFLaEIsOERBQUNILDZDQUFJQTtnQkFBQ0ksT0FBTTswQkFDViw0RUFBQ0M7OEJBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT1giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb21wb25lbnRzL0Nvbm5lY3RTdXBhYmFzZVN0ZXBzLnRzeD83OWIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdGVwIGZyb20gXCIuL1N0ZXBcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ29ubmVjdFN1cGFiYXNlU3RlcHMoKSB7XG4gIHJldHVybiAoXG4gICAgPG9sIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTZcIj5cbiAgICAgIDxTdGVwIHRpdGxlPVwiQ3JlYXRlIFN1cGFiYXNlIHByb2plY3RcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgSGVhZCBvdmVyIHRve1wiIFwifVxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9hcHAuc3VwYWJhc2UuY29tL3Byb2plY3QvXy9zZXR0aW5ncy9hcGlcIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBob3Zlcjp1bmRlcmxpbmUgdGV4dC1mb3JlZ3JvdW5kLzgwXCJcbiAgICAgICAgICAgIHJlbD1cIm5vcmVmZXJyZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIGRhdGFiYXNlLm5ld1xuICAgICAgICAgIDwvYT57XCIgXCJ9XG4gICAgICAgICAgYW5kIGNyZWF0ZSBhIG5ldyBTdXBhYmFzZSBwcm9qZWN0LlxuICAgICAgICA8L3A+XG4gICAgICA8L1N0ZXA+XG5cbiAgICAgIDxTdGVwIHRpdGxlPVwiRGVjbGFyZSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgUmVuYW1lIHRoZXtcIiBcIn1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJweC0yIHB5LTEgcm91bmRlZC1tZCBiZy1mb3JlZ3JvdW5kLzIwIHRleHQtZm9yZWdyb3VuZC84MFwiPlxuICAgICAgICAgICAgLmVudi5leGFtcGxlXG4gICAgICAgICAgPC9zcGFuPntcIiBcIn1cbiAgICAgICAgICBmaWxlIGluIHlvdXIgTmV4dC5qcyBhcHAgdG97XCIgXCJ9XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicHgtMiBweS0xIHJvdW5kZWQtbWQgYmctZm9yZWdyb3VuZC8yMCB0ZXh0LWZvcmVncm91bmQvODBcIj5cbiAgICAgICAgICAgIC5lbnYubG9jYWxcbiAgICAgICAgICA8L3NwYW4+e1wiIFwifVxuICAgICAgICAgIGFuZCBwb3B1bGF0ZSB3aXRoIHZhbHVlcyBmcm9te1wiIFwifVxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9hcHAuc3VwYWJhc2UuY29tL3Byb2plY3QvXy9zZXR0aW5ncy9hcGlcIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBob3Zlcjp1bmRlcmxpbmUgdGV4dC1mb3JlZ3JvdW5kLzgwXCJcbiAgICAgICAgICAgIHJlbD1cIm5vcmVmZXJyZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHlvdXIgU3VwYWJhc2UgcHJvamVjdCdzIEFQSSBTZXR0aW5nc1xuICAgICAgICAgIDwvYT5cbiAgICAgICAgICAuXG4gICAgICAgIDwvcD5cbiAgICAgIDwvU3RlcD5cblxuICAgICAgPFN0ZXAgdGl0bGU9XCJSZXN0YXJ0IHlvdXIgTmV4dC5qcyBkZXZlbG9wbWVudCBzZXJ2ZXJcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgWW91IG1heSBuZWVkIHRvIHF1aXQgeW91ciBOZXh0LmpzIGRldmVsb3BtZW50IHNlcnZlciBhbmQgcnVue1wiIFwifVxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInB4LTIgcHktMSByb3VuZGVkLW1kIGJnLWZvcmVncm91bmQvMjAgdGV4dC1mb3JlZ3JvdW5kLzgwXCI+XG4gICAgICAgICAgICBucG0gcnVuIGRldlxuICAgICAgICAgIDwvc3Bhbj57XCIgXCJ9XG4gICAgICAgICAgYWdhaW4gdG8gbG9hZCB0aGUgbmV3IGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICAgICAgPC9wPlxuICAgICAgPC9TdGVwPlxuXG4gICAgICA8U3RlcCB0aXRsZT1cIlJlZnJlc2ggdGhlIHBhZ2VcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgWW91IG1heSBuZWVkIHRvIHJlZnJlc2ggdGhlIHBhZ2UgZm9yIE5leHQuanMgdG8gbG9hZCB0aGUgbmV3XG4gICAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgICAgICA8L3A+XG4gICAgICA8L1N0ZXA+XG4gICAgPC9vbD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJTdGVwIiwiQ29ubmVjdFN1cGFiYXNlU3RlcHMiLCJvbCIsImNsYXNzTmFtZSIsInRpdGxlIiwicCIsImEiLCJocmVmIiwidGFyZ2V0IiwicmVsIiwic3BhbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./components/ConnectSupabaseSteps.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./components/DeployButton.tsx": +/*!*************************************!*\ + !*** ./components/DeployButton.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 */ DeployButton)\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/future/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\nfunction DeployButton() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n className: \"py-2 px-3 flex rounded-md no-underline hover:bg-btn-background-hover border\",\n href: \"https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fnext.js%2Ftree%2Fcanary%2Fexamples%2Fwith-supabase&project-name=nextjs-with-supabase&repository-name=nextjs-with-supabase&demo-title=nextjs-with-supabase&demo-description=This%20starter%20configures%20Supabase%20Auth%20to%20use%20cookies%2C%20making%20the%20user's%20session%20available%20throughout%20the%20entire%20Next.js%20app%20-%20Client%20Components%2C%20Server%20Components%2C%20Route%20Handlers%2C%20Server%20Actions%20and%20Middleware.&demo-url=https%3A%2F%2Fdemo-nextjs-with-supabase.vercel.app%2F&external-id=https%3A%2F%2Fgithub.com%2Fvercel%2Fnext.js%2Ftree%2Fcanary%2Fexamples%2Fwith-supabase&demo-image=https%3A%2F%2Fdemo-nextjs-with-supabase.vercel.app%2Fopengraph-image.png&integration-ids=oac_VqOgBHqhEoFTPzGkPd7L0iH6\",\n target: \"_blank\",\n rel: \"noreferrer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n \"aria-label\": \"Vercel logomark\",\n role: \"img\",\n viewBox: \"0 0 74 64\",\n className: \"h-4 w-4 mr-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M37.5896 0.25L74.5396 64.25H0.639648L37.5896 0.25Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/DeployButton.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/DeployButton.tsx\",\n lineNumber: 9,\n columnNumber: 7\n }, this),\n \"Deploy to Vercel\"\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/DeployButton.tsx\",\n lineNumber: 3,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL0RlcGxveUJ1dHRvbi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFlLFNBQVNBO0lBQ3RCLHFCQUNFLDhEQUFDQztRQUNDQyxXQUFVO1FBQ1ZDLE1BQUs7UUFDTEMsUUFBTztRQUNQQyxLQUFJOzswQkFFSiw4REFBQ0M7Z0JBQ0NDLGNBQVc7Z0JBQ1hDLE1BQUs7Z0JBQ0xDLFNBQVE7Z0JBQ1JQLFdBQVU7MEJBRVYsNEVBQUNRO29CQUNDQyxHQUFFO29CQUNGQyxNQUFLOzs7Ozs7Ozs7OztZQUVIOzs7Ozs7O0FBSVoiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb21wb25lbnRzL0RlcGxveUJ1dHRvbi50c3g/ZTBlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEZXBsb3lCdXR0b24oKSB7XG4gIHJldHVybiAoXG4gICAgPGFcbiAgICAgIGNsYXNzTmFtZT1cInB5LTIgcHgtMyBmbGV4IHJvdW5kZWQtbWQgbm8tdW5kZXJsaW5lIGhvdmVyOmJnLWJ0bi1iYWNrZ3JvdW5kLWhvdmVyIGJvcmRlclwiXG4gICAgICBocmVmPVwiaHR0cHM6Ly92ZXJjZWwuY29tL25ldy9jbG9uZT9yZXBvc2l0b3J5LXVybD1odHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZ2ZXJjZWwlMkZuZXh0LmpzJTJGdHJlZSUyRmNhbmFyeSUyRmV4YW1wbGVzJTJGd2l0aC1zdXBhYmFzZSZwcm9qZWN0LW5hbWU9bmV4dGpzLXdpdGgtc3VwYWJhc2UmcmVwb3NpdG9yeS1uYW1lPW5leHRqcy13aXRoLXN1cGFiYXNlJmRlbW8tdGl0bGU9bmV4dGpzLXdpdGgtc3VwYWJhc2UmZGVtby1kZXNjcmlwdGlvbj1UaGlzJTIwc3RhcnRlciUyMGNvbmZpZ3VyZXMlMjBTdXBhYmFzZSUyMEF1dGglMjB0byUyMHVzZSUyMGNvb2tpZXMlMkMlMjBtYWtpbmclMjB0aGUlMjB1c2VyJ3MlMjBzZXNzaW9uJTIwYXZhaWxhYmxlJTIwdGhyb3VnaG91dCUyMHRoZSUyMGVudGlyZSUyME5leHQuanMlMjBhcHAlMjAtJTIwQ2xpZW50JTIwQ29tcG9uZW50cyUyQyUyMFNlcnZlciUyMENvbXBvbmVudHMlMkMlMjBSb3V0ZSUyMEhhbmRsZXJzJTJDJTIwU2VydmVyJTIwQWN0aW9ucyUyMGFuZCUyME1pZGRsZXdhcmUuJmRlbW8tdXJsPWh0dHBzJTNBJTJGJTJGZGVtby1uZXh0anMtd2l0aC1zdXBhYmFzZS52ZXJjZWwuYXBwJTJGJmV4dGVybmFsLWlkPWh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRnZlcmNlbCUyRm5leHQuanMlMkZ0cmVlJTJGY2FuYXJ5JTJGZXhhbXBsZXMlMkZ3aXRoLXN1cGFiYXNlJmRlbW8taW1hZ2U9aHR0cHMlM0ElMkYlMkZkZW1vLW5leHRqcy13aXRoLXN1cGFiYXNlLnZlcmNlbC5hcHAlMkZvcGVuZ3JhcGgtaW1hZ2UucG5nJmludGVncmF0aW9uLWlkcz1vYWNfVnFPZ0JIcWhFb0ZUUHpHa1BkN0wwaUg2XCJcbiAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICByZWw9XCJub3JlZmVycmVyXCJcbiAgICA+XG4gICAgICA8c3ZnXG4gICAgICAgIGFyaWEtbGFiZWw9XCJWZXJjZWwgbG9nb21hcmtcIlxuICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA3NCA2NFwiXG4gICAgICAgIGNsYXNzTmFtZT1cImgtNCB3LTQgbXItMlwiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0zNy41ODk2IDAuMjVMNzQuNTM5NiA2NC4yNUgwLjYzOTY0OEwzNy41ODk2IDAuMjVaXCJcbiAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgPjwvcGF0aD5cbiAgICAgIDwvc3ZnPlxuICAgICAgRGVwbG95IHRvIFZlcmNlbFxuICAgIDwvYT5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJEZXBsb3lCdXR0b24iLCJhIiwiY2xhc3NOYW1lIiwiaHJlZiIsInRhcmdldCIsInJlbCIsInN2ZyIsImFyaWEtbGFiZWwiLCJyb2xlIiwidmlld0JveCIsInBhdGgiLCJkIiwiZmlsbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./components/DeployButton.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./components/Header.tsx": +/*!*******************************!*\ + !*** ./components/Header.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 */ Header)\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/future/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 _NextLogo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NextLogo */ \"(rsc)/./components/NextLogo.tsx\");\n/* harmony import */ var _SupabaseLogo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SupabaseLogo */ \"(rsc)/./components/SupabaseLogo.tsx\");\n\n\n\nfunction Header() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-16 items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-8 justify-center items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://supabase.com/?utm_source=create-next-app&utm_medium=template&utm_term=nextjs\",\n target: \"_blank\",\n rel: \"noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_SupabaseLogo__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 13,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 8,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"border-l rotate-45 h-6\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://nextjs.org/\",\n target: \"_blank\",\n rel: \"noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_NextLogo__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 16,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 7,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"sr-only\",\n children: \"Supabase and Next.js Starter Template\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 20,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl lg:text-4xl !leading-tight mx-auto max-w-xl text-center\",\n children: [\n \"The fastest way to build apps with\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://supabase.com/?utm_source=create-next-app&utm_medium=template&utm_term=nextjs\",\n target: \"_blank\",\n className: \"font-bold hover:underline\",\n rel: \"noreferrer\",\n children: \"Supabase\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 23,\n columnNumber: 9\n }, this),\n \" \",\n \"and\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://nextjs.org/\",\n target: \"_blank\",\n className: \"font-bold hover:underline\",\n rel: \"noreferrer\",\n children: \"Next.js\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 21,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full p-[1px] bg-gradient-to-r from-transparent via-foreground/10 to-transparent my-8\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 41,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Header.tsx\",\n lineNumber: 6,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL0hlYWRlci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWtDO0FBQ1E7QUFFM0IsU0FBU0U7SUFDdEIscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNDO3dCQUNDQyxNQUFLO3dCQUNMQyxRQUFPO3dCQUNQQyxLQUFJO2tDQUVKLDRFQUFDUCxxREFBWUE7Ozs7Ozs7Ozs7a0NBRWYsOERBQUNRO3dCQUFLTCxXQUFVOzs7Ozs7a0NBQ2hCLDhEQUFDQzt3QkFBRUMsTUFBSzt3QkFBc0JDLFFBQU87d0JBQVNDLEtBQUk7a0NBQ2hELDRFQUFDUixpREFBUUE7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBR2IsOERBQUNVO2dCQUFHTixXQUFVOzBCQUFVOzs7Ozs7MEJBQ3hCLDhEQUFDTztnQkFBRVAsV0FBVTs7b0JBQW1FO29CQUMzQztrQ0FDbkMsOERBQUNDO3dCQUNDQyxNQUFLO3dCQUNMQyxRQUFPO3dCQUNQSCxXQUFVO3dCQUNWSSxLQUFJO2tDQUNMOzs7Ozs7b0JBRUk7b0JBQUk7b0JBQ0w7a0NBQ0osOERBQUNIO3dCQUNDQyxNQUFLO3dCQUNMQyxRQUFPO3dCQUNQSCxXQUFVO3dCQUNWSSxLQUFJO2tDQUNMOzs7Ozs7Ozs7Ozs7MEJBSUgsOERBQUNMO2dCQUFJQyxXQUFVOzs7Ozs7Ozs7Ozs7QUFHckIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb21wb25lbnRzL0hlYWRlci50c3g/MDM2OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTmV4dExvZ28gZnJvbSBcIi4vTmV4dExvZ29cIjtcbmltcG9ydCBTdXBhYmFzZUxvZ28gZnJvbSBcIi4vU3VwYWJhc2VMb2dvXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEhlYWRlcigpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTE2IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC04IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgIGhyZWY9XCJodHRwczovL3N1cGFiYXNlLmNvbS8/dXRtX3NvdXJjZT1jcmVhdGUtbmV4dC1hcHAmdXRtX21lZGl1bT10ZW1wbGF0ZSZ1dG1fdGVybT1uZXh0anNcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8U3VwYWJhc2VMb2dvIC8+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYm9yZGVyLWwgcm90YXRlLTQ1IGgtNlwiIC8+XG4gICAgICAgIDxhIGhyZWY9XCJodHRwczovL25leHRqcy5vcmcvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9yZWZlcnJlclwiPlxuICAgICAgICAgIDxOZXh0TG9nbyAvPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxoMSBjbGFzc05hbWU9XCJzci1vbmx5XCI+U3VwYWJhc2UgYW5kIE5leHQuanMgU3RhcnRlciBUZW1wbGF0ZTwvaDE+XG4gICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBsZzp0ZXh0LTR4bCAhbGVhZGluZy10aWdodCBteC1hdXRvIG1heC13LXhsIHRleHQtY2VudGVyXCI+XG4gICAgICAgIFRoZSBmYXN0ZXN0IHdheSB0byBidWlsZCBhcHBzIHdpdGh7XCIgXCJ9XG4gICAgICAgIDxhXG4gICAgICAgICAgaHJlZj1cImh0dHBzOi8vc3VwYWJhc2UuY29tLz91dG1fc291cmNlPWNyZWF0ZS1uZXh0LWFwcCZ1dG1fbWVkaXVtPXRlbXBsYXRlJnV0bV90ZXJtPW5leHRqc1wiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJmb250LWJvbGQgaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIFN1cGFiYXNlXG4gICAgICAgIDwvYT57XCIgXCJ9XG4gICAgICAgIGFuZHtcIiBcIn1cbiAgICAgICAgPGFcbiAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9uZXh0anMub3JnL1wiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJmb250LWJvbGQgaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIE5leHQuanNcbiAgICAgICAgPC9hPlxuICAgICAgPC9wPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgcC1bMXB4XSBiZy1ncmFkaWVudC10by1yIGZyb20tdHJhbnNwYXJlbnQgdmlhLWZvcmVncm91bmQvMTAgdG8tdHJhbnNwYXJlbnQgbXktOFwiIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiTmV4dExvZ28iLCJTdXBhYmFzZUxvZ28iLCJIZWFkZXIiLCJkaXYiLCJjbGFzc05hbWUiLCJhIiwiaHJlZiIsInRhcmdldCIsInJlbCIsInNwYW4iLCJoMSIsInAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./components/Header.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./components/NextLogo.tsx": +/*!*********************************!*\ + !*** ./components/NextLogo.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 */ NextLogo)\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/future/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\nfunction NextLogo() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n \"aria-label\": \"Next.js logotype\",\n height: \"68\",\n role: \"img\",\n viewBox: \"0 0 394 79\",\n width: \"100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M261.919 0.0330722H330.547V12.7H303.323V79.339H289.71V12.7H261.919V0.0330722Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 10,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M149.052 0.0330722V12.7H94.0421V33.0772H138.281V45.7441H94.0421V66.6721H149.052V79.339H80.43V12.7H80.4243V0.0330722H149.052Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M183.32 0.0661486H165.506L229.312 79.3721H247.178L215.271 39.7464L247.127 0.126654L229.312 0.154184L206.352 28.6697L183.32 0.0661486Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 18,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M201.6 56.7148L192.679 45.6229L165.455 79.4326H183.32L201.6 56.7148Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n clipRule: \"evenodd\",\n d: \"M80.907 79.339L17.0151 0H0V79.3059H13.6121V16.9516L63.8067 79.339H80.907Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 26,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M333.607 78.8546C332.61 78.8546 331.762 78.5093 331.052 77.8186C330.342 77.1279 329.991 76.2917 330 75.3011C329.991 74.3377 330.342 73.5106 331.052 72.8199C331.762 72.1292 332.61 71.7838 333.607 71.7838C334.566 71.7838 335.405 72.1292 336.115 72.8199C336.835 73.5106 337.194 74.3377 337.204 75.3011C337.194 75.9554 337.028 76.5552 336.696 77.0914C336.355 77.6368 335.922 78.064 335.377 78.373C334.842 78.6911 334.252 78.8546 333.607 78.8546Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 32,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M356.84 45.4453H362.872V68.6846C362.863 70.8204 362.401 72.6472 361.498 74.1832C360.585 75.7191 359.321 76.8914 357.698 77.7185C356.084 78.5364 354.193 78.9546 352.044 78.9546C350.079 78.9546 348.318 78.6001 346.75 77.9094C345.182 77.2187 343.937 76.1826 343.024 74.8193C342.101 73.456 341.649 71.7565 341.649 69.7207H347.691C347.7 70.6114 347.903 71.3838 348.29 72.0291C348.677 72.6744 349.212 73.1651 349.895 73.5105C350.586 73.8559 351.38 74.0286 352.274 74.0286C353.243 74.0286 354.073 73.8286 354.746 73.4196C355.419 73.0197 355.936 72.4199 356.296 71.6201C356.646 70.8295 356.831 69.8479 356.84 68.6846V45.4453Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 36,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M387.691 54.5338C387.544 53.1251 386.898 52.0254 385.773 51.2438C384.638 50.4531 383.172 50.0623 381.373 50.0623C380.11 50.0623 379.022 50.2532 378.118 50.6258C377.214 51.0075 376.513 51.5164 376.033 52.1617C375.554 52.807 375.314 53.5432 375.295 54.3703C375.295 55.061 375.461 55.6608 375.784 56.1607C376.107 56.6696 376.54 57.0968 377.103 57.4422C377.656 57.7966 378.274 58.0874 378.948 58.3237C379.63 58.56 380.313 58.76 380.995 58.9236L384.14 59.6961C385.404 59.9869 386.631 60.3778 387.802 60.8776C388.973 61.3684 390.034 61.9955 390.965 62.7498C391.897 63.5042 392.635 64.413 393.179 65.4764C393.723 66.5397 394 67.7848 394 69.2208C394 71.1566 393.502 72.8562 392.496 74.3285C391.491 75.7917 390.043 76.9369 388.143 77.764C386.252 78.582 383.965 79 381.272 79C378.671 79 376.402 78.6002 374.493 77.8004C372.575 77.0097 371.08 75.8463 370.001 74.3194C368.922 72.7926 368.341 70.9294 368.258 68.7391H374.235C374.318 69.8842 374.687 70.8386 375.314 71.6111C375.95 72.3745 376.78 72.938 377.795 73.3197C378.819 73.6923 379.962 73.8832 381.226 73.8832C382.545 73.8832 383.707 73.6832 384.712 73.2924C385.708 72.9016 386.492 72.3564 387.055 71.6475C387.627 70.9476 387.913 70.1206 387.922 69.1754C387.913 68.312 387.654 67.5939 387.156 67.0304C386.649 66.467 385.948 65.9944 385.053 65.6127C384.15 65.231 383.098 64.8856 381.899 64.5857L378.081 63.6223C375.323 62.9225 373.137 61.8592 371.541 60.4323C369.937 59.0054 369.143 57.115 369.143 54.7429C369.143 52.798 369.678 51.0894 370.758 49.6261C371.827 48.1629 373.294 47.0268 375.148 46.2179C377.011 45.4 379.114 45 381.456 45C383.836 45 385.92 45.4 387.719 46.2179C389.517 47.0268 390.929 48.1538 391.952 49.5897C392.976 51.0257 393.511 52.6707 393.539 54.5338H387.691Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 40,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/NextLogo.tsx\",\n lineNumber: 3,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL05leHRMb2dvLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWUsU0FBU0E7SUFDdEIscUJBQ0UsOERBQUNDO1FBQ0NDLGNBQVc7UUFDWEMsUUFBTztRQUNQQyxNQUFLO1FBQ0xDLFNBQVE7UUFDUkMsT0FBTTs7MEJBRU4sOERBQUNDO2dCQUNDQyxHQUFFO2dCQUNGQyxNQUFLOzs7Ozs7MEJBRVAsOERBQUNGO2dCQUNDQyxHQUFFO2dCQUNGQyxNQUFLOzs7Ozs7MEJBRVAsOERBQUNGO2dCQUNDQyxHQUFFO2dCQUNGQyxNQUFLOzs7Ozs7MEJBRVAsOERBQUNGO2dCQUNDQyxHQUFFO2dCQUNGQyxNQUFLOzs7Ozs7MEJBRVAsOERBQUNGO2dCQUNDRyxVQUFTO2dCQUNURixHQUFFO2dCQUNGQyxNQUFLO2dCQUNMRSxVQUFTOzs7Ozs7MEJBRVgsOERBQUNKO2dCQUNDQyxHQUFFO2dCQUNGQyxNQUFLOzs7Ozs7MEJBRVAsOERBQUNGO2dCQUNDQyxHQUFFO2dCQUNGQyxNQUFLOzs7Ozs7MEJBRVAsOERBQUNGO2dCQUNDQyxHQUFFO2dCQUNGQyxNQUFLOzs7Ozs7Ozs7Ozs7QUFJYiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NvbXBvbmVudHMvTmV4dExvZ28udHN4PzM3MjgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTmV4dExvZ28oKSB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgYXJpYS1sYWJlbD1cIk5leHQuanMgbG9nb3R5cGVcIlxuICAgICAgaGVpZ2h0PVwiNjhcIlxuICAgICAgcm9sZT1cImltZ1wiXG4gICAgICB2aWV3Qm94PVwiMCAwIDM5NCA3OVwiXG4gICAgICB3aWR0aD1cIjEwMFwiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0yNjEuOTE5IDAuMDMzMDcyMkgzMzAuNTQ3VjEyLjdIMzAzLjMyM1Y3OS4zMzlIMjg5LjcxVjEyLjdIMjYxLjkxOVYwLjAzMzA3MjJaXCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xNDkuMDUyIDAuMDMzMDcyMlYxMi43SDk0LjA0MjFWMzMuMDc3MkgxMzguMjgxVjQ1Ljc0NDFIOTQuMDQyMVY2Ni42NzIxSDE0OS4wNTJWNzkuMzM5SDgwLjQzVjEyLjdIODAuNDI0M1YwLjAzMzA3MjJIMTQ5LjA1MlpcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTE4My4zMiAwLjA2NjE0ODZIMTY1LjUwNkwyMjkuMzEyIDc5LjM3MjFIMjQ3LjE3OEwyMTUuMjcxIDM5Ljc0NjRMMjQ3LjEyNyAwLjEyNjY1NEwyMjkuMzEyIDAuMTU0MTg0TDIwNi4zNTIgMjguNjY5N0wxODMuMzIgMC4wNjYxNDg2WlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMjAxLjYgNTYuNzE0OEwxOTIuNjc5IDQ1LjYyMjlMMTY1LjQ1NSA3OS40MzI2SDE4My4zMkwyMDEuNiA1Ni43MTQ4WlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNODAuOTA3IDc5LjMzOUwxNy4wMTUxIDBIMFY3OS4zMDU5SDEzLjYxMjFWMTYuOTUxNkw2My44MDY3IDc5LjMzOUg4MC45MDdaXCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0zMzMuNjA3IDc4Ljg1NDZDMzMyLjYxIDc4Ljg1NDYgMzMxLjc2MiA3OC41MDkzIDMzMS4wNTIgNzcuODE4NkMzMzAuMzQyIDc3LjEyNzkgMzI5Ljk5MSA3Ni4yOTE3IDMzMCA3NS4zMDExQzMyOS45OTEgNzQuMzM3NyAzMzAuMzQyIDczLjUxMDYgMzMxLjA1MiA3Mi44MTk5QzMzMS43NjIgNzIuMTI5MiAzMzIuNjEgNzEuNzgzOCAzMzMuNjA3IDcxLjc4MzhDMzM0LjU2NiA3MS43ODM4IDMzNS40MDUgNzIuMTI5MiAzMzYuMTE1IDcyLjgxOTlDMzM2LjgzNSA3My41MTA2IDMzNy4xOTQgNzQuMzM3NyAzMzcuMjA0IDc1LjMwMTFDMzM3LjE5NCA3NS45NTU0IDMzNy4wMjggNzYuNTU1MiAzMzYuNjk2IDc3LjA5MTRDMzM2LjM1NSA3Ny42MzY4IDMzNS45MjIgNzguMDY0IDMzNS4zNzcgNzguMzczQzMzNC44NDIgNzguNjkxMSAzMzQuMjUyIDc4Ljg1NDYgMzMzLjYwNyA3OC44NTQ2WlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMzU2Ljg0IDQ1LjQ0NTNIMzYyLjg3MlY2OC42ODQ2QzM2Mi44NjMgNzAuODIwNCAzNjIuNDAxIDcyLjY0NzIgMzYxLjQ5OCA3NC4xODMyQzM2MC41ODUgNzUuNzE5MSAzNTkuMzIxIDc2Ljg5MTQgMzU3LjY5OCA3Ny43MTg1QzM1Ni4wODQgNzguNTM2NCAzNTQuMTkzIDc4Ljk1NDYgMzUyLjA0NCA3OC45NTQ2QzM1MC4wNzkgNzguOTU0NiAzNDguMzE4IDc4LjYwMDEgMzQ2Ljc1IDc3LjkwOTRDMzQ1LjE4MiA3Ny4yMTg3IDM0My45MzcgNzYuMTgyNiAzNDMuMDI0IDc0LjgxOTNDMzQyLjEwMSA3My40NTYgMzQxLjY0OSA3MS43NTY1IDM0MS42NDkgNjkuNzIwN0gzNDcuNjkxQzM0Ny43IDcwLjYxMTQgMzQ3LjkwMyA3MS4zODM4IDM0OC4yOSA3Mi4wMjkxQzM0OC42NzcgNzIuNjc0NCAzNDkuMjEyIDczLjE2NTEgMzQ5Ljg5NSA3My41MTA1QzM1MC41ODYgNzMuODU1OSAzNTEuMzggNzQuMDI4NiAzNTIuMjc0IDc0LjAyODZDMzUzLjI0MyA3NC4wMjg2IDM1NC4wNzMgNzMuODI4NiAzNTQuNzQ2IDczLjQxOTZDMzU1LjQxOSA3My4wMTk3IDM1NS45MzYgNzIuNDE5OSAzNTYuMjk2IDcxLjYyMDFDMzU2LjY0NiA3MC44Mjk1IDM1Ni44MzEgNjkuODQ3OSAzNTYuODQgNjguNjg0NlY0NS40NDUzWlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMzg3LjY5MSA1NC41MzM4QzM4Ny41NDQgNTMuMTI1MSAzODYuODk4IDUyLjAyNTQgMzg1Ljc3MyA1MS4yNDM4QzM4NC42MzggNTAuNDUzMSAzODMuMTcyIDUwLjA2MjMgMzgxLjM3MyA1MC4wNjIzQzM4MC4xMSA1MC4wNjIzIDM3OS4wMjIgNTAuMjUzMiAzNzguMTE4IDUwLjYyNThDMzc3LjIxNCA1MS4wMDc1IDM3Ni41MTMgNTEuNTE2NCAzNzYuMDMzIDUyLjE2MTdDMzc1LjU1NCA1Mi44MDcgMzc1LjMxNCA1My41NDMyIDM3NS4yOTUgNTQuMzcwM0MzNzUuMjk1IDU1LjA2MSAzNzUuNDYxIDU1LjY2MDggMzc1Ljc4NCA1Ni4xNjA3QzM3Ni4xMDcgNTYuNjY5NiAzNzYuNTQgNTcuMDk2OCAzNzcuMTAzIDU3LjQ0MjJDMzc3LjY1NiA1Ny43OTY2IDM3OC4yNzQgNTguMDg3NCAzNzguOTQ4IDU4LjMyMzdDMzc5LjYzIDU4LjU2IDM4MC4zMTMgNTguNzYgMzgwLjk5NSA1OC45MjM2TDM4NC4xNCA1OS42OTYxQzM4NS40MDQgNTkuOTg2OSAzODYuNjMxIDYwLjM3NzggMzg3LjgwMiA2MC44Nzc2QzM4OC45NzMgNjEuMzY4NCAzOTAuMDM0IDYxLjk5NTUgMzkwLjk2NSA2Mi43NDk4QzM5MS44OTcgNjMuNTA0MiAzOTIuNjM1IDY0LjQxMyAzOTMuMTc5IDY1LjQ3NjRDMzkzLjcyMyA2Ni41Mzk3IDM5NCA2Ny43ODQ4IDM5NCA2OS4yMjA4QzM5NCA3MS4xNTY2IDM5My41MDIgNzIuODU2MiAzOTIuNDk2IDc0LjMyODVDMzkxLjQ5MSA3NS43OTE3IDM5MC4wNDMgNzYuOTM2OSAzODguMTQzIDc3Ljc2NEMzODYuMjUyIDc4LjU4MiAzODMuOTY1IDc5IDM4MS4yNzIgNzlDMzc4LjY3MSA3OSAzNzYuNDAyIDc4LjYwMDIgMzc0LjQ5MyA3Ny44MDA0QzM3Mi41NzUgNzcuMDA5NyAzNzEuMDggNzUuODQ2MyAzNzAuMDAxIDc0LjMxOTRDMzY4LjkyMiA3Mi43OTI2IDM2OC4zNDEgNzAuOTI5NCAzNjguMjU4IDY4LjczOTFIMzc0LjIzNUMzNzQuMzE4IDY5Ljg4NDIgMzc0LjY4NyA3MC44Mzg2IDM3NS4zMTQgNzEuNjExMUMzNzUuOTUgNzIuMzc0NSAzNzYuNzggNzIuOTM4IDM3Ny43OTUgNzMuMzE5N0MzNzguODE5IDczLjY5MjMgMzc5Ljk2MiA3My44ODMyIDM4MS4yMjYgNzMuODgzMkMzODIuNTQ1IDczLjg4MzIgMzgzLjcwNyA3My42ODMyIDM4NC43MTIgNzMuMjkyNEMzODUuNzA4IDcyLjkwMTYgMzg2LjQ5MiA3Mi4zNTY0IDM4Ny4wNTUgNzEuNjQ3NUMzODcuNjI3IDcwLjk0NzYgMzg3LjkxMyA3MC4xMjA2IDM4Ny45MjIgNjkuMTc1NEMzODcuOTEzIDY4LjMxMiAzODcuNjU0IDY3LjU5MzkgMzg3LjE1NiA2Ny4wMzA0QzM4Ni42NDkgNjYuNDY3IDM4NS45NDggNjUuOTk0NCAzODUuMDUzIDY1LjYxMjdDMzg0LjE1IDY1LjIzMSAzODMuMDk4IDY0Ljg4NTYgMzgxLjg5OSA2NC41ODU3TDM3OC4wODEgNjMuNjIyM0MzNzUuMzIzIDYyLjkyMjUgMzczLjEzNyA2MS44NTkyIDM3MS41NDEgNjAuNDMyM0MzNjkuOTM3IDU5LjAwNTQgMzY5LjE0MyA1Ny4xMTUgMzY5LjE0MyA1NC43NDI5QzM2OS4xNDMgNTIuNzk4IDM2OS42NzggNTEuMDg5NCAzNzAuNzU4IDQ5LjYyNjFDMzcxLjgyNyA0OC4xNjI5IDM3My4yOTQgNDcuMDI2OCAzNzUuMTQ4IDQ2LjIxNzlDMzc3LjAxMSA0NS40IDM3OS4xMTQgNDUgMzgxLjQ1NiA0NUMzODMuODM2IDQ1IDM4NS45MiA0NS40IDM4Ny43MTkgNDYuMjE3OUMzODkuNTE3IDQ3LjAyNjggMzkwLjkyOSA0OC4xNTM4IDM5MS45NTIgNDkuNTg5N0MzOTIuOTc2IDUxLjAyNTcgMzkzLjUxMSA1Mi42NzA3IDM5My41MzkgNTQuNTMzOEgzODcuNjkxWlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJOZXh0TG9nbyIsInN2ZyIsImFyaWEtbGFiZWwiLCJoZWlnaHQiLCJyb2xlIiwidmlld0JveCIsIndpZHRoIiwicGF0aCIsImQiLCJmaWxsIiwiY2xpcFJ1bGUiLCJmaWxsUnVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./components/NextLogo.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./components/SignUpUserSteps.tsx": +/*!****************************************!*\ + !*** ./components/SignUpUserSteps.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 */ SignUpUserSteps)\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/future/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 next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(rsc)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _Step__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Step */ \"(rsc)/./components/Step.tsx\");\n/* harmony import */ var _components_Code__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/Code */ \"(rsc)/./components/Code.tsx\");\n\n\n\n\nconst create = `\ncreate table notes (\n id serial primary key,\n title text\n);\n\ninsert into notes(title)\nvalues\n ('Today I created a Supabase project.'),\n ('I added some data and queried it from Next.js.'),\n ('It was awesome!');\n`.trim();\nconst server = `\nimport { createClient } from '@/utils/supabase/server'\nimport { cookies } from 'next/headers'\n\nexport default async function Page() {\n const cookieStore = cookies()\n const supabase = createClient(cookieStore)\n const { data: notes } = await supabase.from('notes').select()\n\n return
{JSON.stringify(notes, null, 2)}
\n}\n`.trim();\nconst client = `\n'use client'\n\nimport { createClient } from '@/utils/supabase/client'\nimport { useEffect, useState } from 'react'\n\nexport default function Page() {\n const [notes, setNotes] = useState(null)\n const supabase = createClient()\n\n useEffect(() => {\n const getData = async () => {\n const { data } = await supabase.from('notes').select()\n setNotes(data)\n }\n getData()\n }, [])\n\n return
{JSON.stringify(notes, null, 2)}
\n}\n`.trim();\nfunction SignUpUserSteps() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ol\", {\n className: \"flex flex-col gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Step__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n title: \"Sign up your first user\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"Head over to the\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n href: \"/login\",\n className: \"font-bold hover:underline text-foreground/80\",\n children: \"Login\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 59,\n columnNumber: 11\n }, this),\n \" \",\n \"page and sign up your first user. It's okay if this is just you for now. Your awesome idea will have plenty of users later!\"\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 57,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 56,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Step__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n title: \"Create some tables and insert some data\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"Head over to the\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://supabase.com/dashboard/project/_/editor\",\n className: \"font-bold hover:underline text-foreground/80\",\n target: \"_blank\",\n rel: \"noreferrer\",\n children: \"Table Editor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this),\n \" \",\n \"for your Supabase project to create a table and insert some example data. If you're stuck for creativity, you can copy and paste the following into the\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://supabase.com/dashboard/project/_/sql/new\",\n className: \"font-bold hover:underline text-foreground/80\",\n target: \"_blank\",\n rel: \"noreferrer\",\n children: \"SQL Editor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 84,\n columnNumber: 11\n }, this),\n \" \",\n \"and click RUN!\"\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 71,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Code__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n code: create\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 94,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 70,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Step__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n title: \"Query Supabase data from Next.js\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"To create a Supabase client and query data from an Async Server Component, create a new page.tsx file at\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-1 rounded-md bg-foreground/20 text-foreground/80\",\n children: \"/app/notes/page.tsx\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 101,\n columnNumber: 11\n }, this),\n \" \",\n \"and add the following.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 98,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Code__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n code: server\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 106,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Alternatively, you can use a Client Component.\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 107,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Code__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n code: client\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 108,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 97,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Step__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n title: \"Build in a weekend and scale to millions!\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"You're ready to launch your product to the world! \\uD83D\\uDE80\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 112,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 111,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SignUpUserSteps.tsx\",\n lineNumber: 55,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL1NpZ25VcFVzZXJTdGVwcy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUE2QjtBQUNIO0FBQ1c7QUFFckMsTUFBTUcsU0FBUyxDQUFDOzs7Ozs7Ozs7OztBQVdoQixDQUFDLENBQUNDLElBQUk7QUFFTixNQUFNQyxTQUFTLENBQUM7Ozs7Ozs7Ozs7O0FBV2hCLENBQUMsQ0FBQ0QsSUFBSTtBQUVOLE1BQU1FLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQmhCLENBQUMsQ0FBQ0YsSUFBSTtBQUVTLFNBQVNHO0lBQ3RCLHFCQUNFLDhEQUFDQztRQUFHQyxXQUFVOzswQkFDWiw4REFBQ1IsNkNBQUlBO2dCQUFDUyxPQUFNOzBCQUNWLDRFQUFDQzs7d0JBQUU7d0JBQ2dCO3NDQUNqQiw4REFBQ1gsaURBQUlBOzRCQUNIWSxNQUFLOzRCQUNMSCxXQUFVO3NDQUNYOzs7Ozs7d0JBRU87d0JBQUk7Ozs7Ozs7Ozs7OzswQkFNaEIsOERBQUNSLDZDQUFJQTtnQkFBQ1MsT0FBTTs7a0NBQ1YsOERBQUNDOzs0QkFBRTs0QkFDZ0I7MENBQ2pCLDhEQUFDRTtnQ0FDQ0QsTUFBSztnQ0FDTEgsV0FBVTtnQ0FDVkssUUFBTztnQ0FDUEMsS0FBSTswQ0FDTDs7Ozs7OzRCQUVJOzRCQUFJOzRCQUdVOzBDQUNuQiw4REFBQ0Y7Z0NBQ0NELE1BQUs7Z0NBQ0xILFdBQVU7Z0NBQ1ZLLFFBQU87Z0NBQ1BDLEtBQUk7MENBQ0w7Ozs7Ozs0QkFFSTs0QkFBSTs7Ozs7OztrQ0FHWCw4REFBQ2Isd0RBQUlBO3dCQUFDYyxNQUFNYjs7Ozs7Ozs7Ozs7OzBCQUdkLDhEQUFDRiw2Q0FBSUE7Z0JBQUNTLE9BQU07O2tDQUNWLDhEQUFDQzs7NEJBQUU7NEJBRXdDOzBDQUN6Qyw4REFBQ007Z0NBQUtSLFdBQVU7MENBQTJEOzs7Ozs7NEJBRW5FOzRCQUFJOzs7Ozs7O2tDQUdkLDhEQUFDUCx3REFBSUE7d0JBQUNjLE1BQU1YOzs7Ozs7a0NBQ1osOERBQUNNO2tDQUFFOzs7Ozs7a0NBQ0gsOERBQUNULHdEQUFJQTt3QkFBQ2MsTUFBTVY7Ozs7Ozs7Ozs7OzswQkFHZCw4REFBQ0wsNkNBQUlBO2dCQUFDUyxPQUFNOzBCQUNWLDRFQUFDQzs4QkFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJWCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NvbXBvbmVudHMvU2lnblVwVXNlclN0ZXBzLnRzeD82YzI4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCBTdGVwIGZyb20gXCIuL1N0ZXBcIjtcbmltcG9ydCBDb2RlIGZyb20gXCJAL2NvbXBvbmVudHMvQ29kZVwiO1xuXG5jb25zdCBjcmVhdGUgPSBgXG5jcmVhdGUgdGFibGUgbm90ZXMgKFxuICBpZCBzZXJpYWwgcHJpbWFyeSBrZXksXG4gIHRpdGxlIHRleHRcbik7XG5cbmluc2VydCBpbnRvIG5vdGVzKHRpdGxlKVxudmFsdWVzXG4gICgnVG9kYXkgSSBjcmVhdGVkIGEgU3VwYWJhc2UgcHJvamVjdC4nKSxcbiAgKCdJIGFkZGVkIHNvbWUgZGF0YSBhbmQgcXVlcmllZCBpdCBmcm9tIE5leHQuanMuJyksXG4gICgnSXQgd2FzIGF3ZXNvbWUhJyk7XG5gLnRyaW0oKTtcblxuY29uc3Qgc2VydmVyID0gYFxuaW1wb3J0IHsgY3JlYXRlQ2xpZW50IH0gZnJvbSAnQC91dGlscy9zdXBhYmFzZS9zZXJ2ZXInXG5pbXBvcnQgeyBjb29raWVzIH0gZnJvbSAnbmV4dC9oZWFkZXJzJ1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBQYWdlKCkge1xuICBjb25zdCBjb29raWVTdG9yZSA9IGNvb2tpZXMoKVxuICBjb25zdCBzdXBhYmFzZSA9IGNyZWF0ZUNsaWVudChjb29raWVTdG9yZSlcbiAgY29uc3QgeyBkYXRhOiBub3RlcyB9ID0gYXdhaXQgc3VwYWJhc2UuZnJvbSgnbm90ZXMnKS5zZWxlY3QoKVxuXG4gIHJldHVybiA8cHJlPntKU09OLnN0cmluZ2lmeShub3RlcywgbnVsbCwgMil9PC9wcmU+XG59XG5gLnRyaW0oKTtcblxuY29uc3QgY2xpZW50ID0gYFxuJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IGNyZWF0ZUNsaWVudCB9IGZyb20gJ0AvdXRpbHMvc3VwYWJhc2UvY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICBjb25zdCBbbm90ZXMsIHNldE5vdGVzXSA9IHVzZVN0YXRlPGFueVtdIHwgbnVsbD4obnVsbClcbiAgY29uc3Qgc3VwYWJhc2UgPSBjcmVhdGVDbGllbnQoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZ2V0RGF0YSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgc3VwYWJhc2UuZnJvbSgnbm90ZXMnKS5zZWxlY3QoKVxuICAgICAgc2V0Tm90ZXMoZGF0YSlcbiAgICB9XG4gICAgZ2V0RGF0YSgpXG4gIH0sIFtdKVxuXG4gIHJldHVybiA8cHJlPntKU09OLnN0cmluZ2lmeShub3RlcywgbnVsbCwgMil9PC9wcmU+XG59XG5gLnRyaW0oKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lnblVwVXNlclN0ZXBzKCkge1xuICByZXR1cm4gKFxuICAgIDxvbCBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGdhcC02XCI+XG4gICAgICA8U3RlcCB0aXRsZT1cIlNpZ24gdXAgeW91ciBmaXJzdCB1c2VyXCI+XG4gICAgICAgIDxwPlxuICAgICAgICAgIEhlYWQgb3ZlciB0byB0aGV7XCIgXCJ9XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGhyZWY9XCIvbG9naW5cIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9udC1ib2xkIGhvdmVyOnVuZGVybGluZSB0ZXh0LWZvcmVncm91bmQvODBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIExvZ2luXG4gICAgICAgICAgPC9MaW5rPntcIiBcIn1cbiAgICAgICAgICBwYWdlIGFuZCBzaWduIHVwIHlvdXIgZmlyc3QgdXNlci4gSXQncyBva2F5IGlmIHRoaXMgaXMganVzdCB5b3UgZm9yXG4gICAgICAgICAgbm93LiBZb3VyIGF3ZXNvbWUgaWRlYSB3aWxsIGhhdmUgcGxlbnR5IG9mIHVzZXJzIGxhdGVyIVxuICAgICAgICA8L3A+XG4gICAgICA8L1N0ZXA+XG5cbiAgICAgIDxTdGVwIHRpdGxlPVwiQ3JlYXRlIHNvbWUgdGFibGVzIGFuZCBpbnNlcnQgc29tZSBkYXRhXCI+XG4gICAgICAgIDxwPlxuICAgICAgICAgIEhlYWQgb3ZlciB0byB0aGV7XCIgXCJ9XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3N1cGFiYXNlLmNvbS9kYXNoYm9hcmQvcHJvamVjdC9fL2VkaXRvclwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmb250LWJvbGQgaG92ZXI6dW5kZXJsaW5lIHRleHQtZm9yZWdyb3VuZC84MFwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgVGFibGUgRWRpdG9yXG4gICAgICAgICAgPC9hPntcIiBcIn1cbiAgICAgICAgICBmb3IgeW91ciBTdXBhYmFzZSBwcm9qZWN0IHRvIGNyZWF0ZSBhIHRhYmxlIGFuZCBpbnNlcnQgc29tZSBleGFtcGxlXG4gICAgICAgICAgZGF0YS4gSWYgeW91J3JlIHN0dWNrIGZvciBjcmVhdGl2aXR5LCB5b3UgY2FuIGNvcHkgYW5kIHBhc3RlIHRoZVxuICAgICAgICAgIGZvbGxvd2luZyBpbnRvIHRoZXtcIiBcIn1cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vc3VwYWJhc2UuY29tL2Rhc2hib2FyZC9wcm9qZWN0L18vc3FsL25ld1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmb250LWJvbGQgaG92ZXI6dW5kZXJsaW5lIHRleHQtZm9yZWdyb3VuZC84MFwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgU1FMIEVkaXRvclxuICAgICAgICAgIDwvYT57XCIgXCJ9XG4gICAgICAgICAgYW5kIGNsaWNrIFJVTiFcbiAgICAgICAgPC9wPlxuICAgICAgICA8Q29kZSBjb2RlPXtjcmVhdGV9IC8+XG4gICAgICA8L1N0ZXA+XG5cbiAgICAgIDxTdGVwIHRpdGxlPVwiUXVlcnkgU3VwYWJhc2UgZGF0YSBmcm9tIE5leHQuanNcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgVG8gY3JlYXRlIGEgU3VwYWJhc2UgY2xpZW50IGFuZCBxdWVyeSBkYXRhIGZyb20gYW4gQXN5bmMgU2VydmVyXG4gICAgICAgICAgQ29tcG9uZW50LCBjcmVhdGUgYSBuZXcgcGFnZS50c3ggZmlsZSBhdHtcIiBcIn1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJweC0yIHB5LTEgcm91bmRlZC1tZCBiZy1mb3JlZ3JvdW5kLzIwIHRleHQtZm9yZWdyb3VuZC84MFwiPlxuICAgICAgICAgICAgL2FwcC9ub3Rlcy9wYWdlLnRzeFxuICAgICAgICAgIDwvc3Bhbj57XCIgXCJ9XG4gICAgICAgICAgYW5kIGFkZCB0aGUgZm9sbG93aW5nLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxDb2RlIGNvZGU9e3NlcnZlcn0gLz5cbiAgICAgICAgPHA+QWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYSBDbGllbnQgQ29tcG9uZW50LjwvcD5cbiAgICAgICAgPENvZGUgY29kZT17Y2xpZW50fSAvPlxuICAgICAgPC9TdGVwPlxuXG4gICAgICA8U3RlcCB0aXRsZT1cIkJ1aWxkIGluIGEgd2Vla2VuZCBhbmQgc2NhbGUgdG8gbWlsbGlvbnMhXCI+XG4gICAgICAgIDxwPllvdSdyZSByZWFkeSB0byBsYXVuY2ggeW91ciBwcm9kdWN0IHRvIHRoZSB3b3JsZCEg8J+agDwvcD5cbiAgICAgIDwvU3RlcD5cbiAgICA8L29sPlxuICApO1xufVxuIl0sIm5hbWVzIjpbIkxpbmsiLCJTdGVwIiwiQ29kZSIsImNyZWF0ZSIsInRyaW0iLCJzZXJ2ZXIiLCJjbGllbnQiLCJTaWduVXBVc2VyU3RlcHMiLCJvbCIsImNsYXNzTmFtZSIsInRpdGxlIiwicCIsImhyZWYiLCJhIiwidGFyZ2V0IiwicmVsIiwiY29kZSIsInNwYW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./components/SignUpUserSteps.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./components/Step.tsx": +/*!*****************************!*\ + !*** ./components/Step.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 */ Step)\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/future/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\nfunction Step({ title, children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"mx-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: title,\n className: `mr-2 peer`\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Step.tsx\",\n lineNumber: 10,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: title,\n className: `text-lg text-foreground/90 peer-checked:line-through font-semibold hover:cursor-pointer`,\n children: title\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Step.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `mx-6 text-foreground/80 text-sm peer-checked:line-through`,\n children: children\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Step.tsx\",\n lineNumber: 17,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/Step.tsx\",\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL1N0ZXAudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZSxTQUFTQSxLQUFLLEVBQzNCQyxLQUFLLEVBQ0xDLFFBQVEsRUFJVDtJQUNDLHFCQUNFLDhEQUFDQztRQUFHQyxXQUFVOzswQkFDWiw4REFBQ0M7Z0JBQU1DLE1BQUs7Z0JBQVdDLElBQUlOO2dCQUFPRyxXQUFXLENBQUMsU0FBUyxDQUFDOzs7Ozs7MEJBQ3hELDhEQUFDSTtnQkFDQ0MsU0FBU1I7Z0JBQ1RHLFdBQVcsQ0FBQyx1RkFBdUYsQ0FBQzswQkFFbkdIOzs7Ozs7MEJBRUgsOERBQUNTO2dCQUNDTixXQUFXLENBQUMseURBQXlELENBQUM7MEJBRXJFRjs7Ozs7Ozs7Ozs7O0FBSVQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb21wb25lbnRzL1N0ZXAudHN4Pzc1ZmQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU3RlcCh7XG4gIHRpdGxlLFxuICBjaGlsZHJlbixcbn06IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPVwibXgtNFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPXt0aXRsZX0gY2xhc3NOYW1lPXtgbXItMiBwZWVyYH0gLz5cbiAgICAgIDxsYWJlbFxuICAgICAgICBodG1sRm9yPXt0aXRsZX1cbiAgICAgICAgY2xhc3NOYW1lPXtgdGV4dC1sZyB0ZXh0LWZvcmVncm91bmQvOTAgcGVlci1jaGVja2VkOmxpbmUtdGhyb3VnaCBmb250LXNlbWlib2xkIGhvdmVyOmN1cnNvci1wb2ludGVyYH1cbiAgICAgID5cbiAgICAgICAge3RpdGxlfVxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtgbXgtNiB0ZXh0LWZvcmVncm91bmQvODAgdGV4dC1zbSBwZWVyLWNoZWNrZWQ6bGluZS10aHJvdWdoYH1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJTdGVwIiwidGl0bGUiLCJjaGlsZHJlbiIsImxpIiwiY2xhc3NOYW1lIiwiaW5wdXQiLCJ0eXBlIiwiaWQiLCJsYWJlbCIsImh0bWxGb3IiLCJkaXYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./components/Step.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./components/SupabaseLogo.tsx": +/*!*************************************!*\ + !*** ./components/SupabaseLogo.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 */ SupabaseLogo)\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/future/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\nfunction SupabaseLogo() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n \"aria-label\": \"Supabase logo\",\n width: \"140\",\n height: \"30\",\n viewBox: \"0 0 115 23\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"g\", {\n clipPath: \"url(#clip0_4671_51136)\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"g\", {\n clipPath: \"url(#clip1_4671_51136)\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M13.4028 21.8652C12.8424 22.5629 11.7063 22.1806 11.6928 21.2898L11.4954 8.25948H20.3564C21.9614 8.25948 22.8565 10.0924 21.8585 11.3353L13.4028 21.8652Z\",\n fill: \"url(#paint0_linear_4671_51136)\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 13,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M13.4028 21.8652C12.8424 22.5629 11.7063 22.1806 11.6928 21.2898L11.4954 8.25948H20.3564C21.9614 8.25948 22.8565 10.0924 21.8585 11.3353L13.4028 21.8652Z\",\n fill: \"url(#paint1_linear_4671_51136)\",\n fillOpacity: \"0.2\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M9.79895 0.89838C10.3593 0.200591 11.4954 0.582929 11.5089 1.47383L11.5955 14.5041H2.84528C1.24026 14.5041 0.345103 12.6711 1.34316 11.4283L9.79895 0.89838Z\",\n fill: \"#3ECF8E\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 22,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 12,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M30.5894 13.3913C30.7068 14.4766 31.7052 16.3371 34.6026 16.3371C37.1279 16.3371 38.3418 14.7479 38.3418 13.1976C38.3418 11.8022 37.3824 10.6588 35.4836 10.2712L34.1131 9.98049C33.5846 9.88359 33.2323 9.5929 33.2323 9.12777C33.2323 8.58512 33.7804 8.17818 34.4656 8.17818C35.5618 8.17818 35.9729 8.89521 36.0513 9.45725L38.2243 8.97275C38.1069 7.94561 37.1867 6.22083 34.446 6.22083C32.3709 6.22083 30.844 7.63555 30.844 9.34094C30.844 10.6781 31.6856 11.7828 33.5454 12.1898L34.8179 12.4805C35.5618 12.6355 35.8555 12.9844 35.8555 13.4107C35.8555 13.9146 35.4444 14.3603 34.583 14.3603C33.4476 14.3603 32.8797 13.6626 32.8212 12.9068L30.5894 13.3913Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 27,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M46.6623 16.0464H49.1486C49.1094 15.717 49.0506 15.0581 49.0506 14.3216V6.51154H46.4468V12.0542C46.4468 13.1588 45.7813 13.934 44.6263 13.934C43.4126 13.934 42.8643 13.0813 42.8643 12.0154V6.51154H40.2606V12.5387C40.2606 14.6123 41.5918 16.2984 43.9215 16.2984C44.9393 16.2984 46.0556 15.9108 46.5841 15.0193C46.5841 15.4069 46.6231 15.8526 46.6623 16.0464Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 31,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M54.433 19.7286V15.1162C54.9027 15.7558 55.8817 16.279 57.213 16.279C59.9341 16.279 61.7545 14.1472 61.7545 11.2596C61.7545 8.43021 60.1298 6.29842 57.3108 6.29842C55.8623 6.29842 54.7855 6.93792 54.3548 7.67439V6.51159H51.8295V19.7286H54.433ZM59.19 11.279C59.19 12.9845 58.133 13.9728 56.8017 13.9728C55.4708 13.9728 54.394 12.9651 54.394 11.279C54.394 9.59299 55.4708 8.6046 56.8017 8.6046C58.133 8.6046 59.19 9.59299 59.19 11.279Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 35,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M63.229 13.4495C63.229 14.9417 64.4818 16.3177 66.5375 16.3177C67.9662 16.3177 68.8865 15.6588 69.3758 14.9029C69.3758 15.2712 69.4149 15.7944 69.4737 16.0464H71.862C71.8033 15.7169 71.7449 15.0386 71.7449 14.5348V9.84482C71.7449 7.92622 70.6093 6.22083 67.5555 6.22083C64.9713 6.22083 63.5811 7.86807 63.4248 9.36033L65.7347 9.84482C65.8131 9.0115 66.4395 8.29445 67.5747 8.29445C68.6713 8.29445 69.1998 8.85646 69.1998 9.53475C69.1998 9.86421 69.0238 10.1355 68.4755 10.2131L66.1068 10.5619C64.5015 10.7945 63.229 11.744 63.229 13.4495ZM67.0854 14.3991C66.2438 14.3991 65.8325 13.8565 65.8325 13.2945C65.8325 12.558 66.361 12.1898 67.0268 12.0929L69.1998 11.7634V12.1898C69.1998 13.8759 68.1818 14.3991 67.0854 14.3991Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 39,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M76.895 16.0465V14.8837C77.4038 15.6976 78.4217 16.279 79.7531 16.279C82.4941 16.279 84.2951 14.1278 84.2951 11.2403C84.2951 8.4108 82.6701 6.25965 79.851 6.25965C78.4217 6.25965 77.3648 6.8798 76.934 7.55806V2.01546H74.3696V16.0465H76.895ZM81.6911 11.2596C81.6911 13.0038 80.6341 13.9728 79.3028 13.9728C77.9912 13.9728 76.895 12.9845 76.895 11.2596C76.895 9.51543 77.9912 8.56584 79.3028 8.56584C80.6341 8.56584 81.6911 9.51543 81.6911 11.2596Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 43,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M85.7692 13.4495C85.7692 14.9417 87.022 16.3177 89.0776 16.3177C90.5065 16.3177 91.4269 15.6588 91.916 14.9029C91.916 15.2712 91.9554 15.7944 92.014 16.0464H94.4023C94.3439 15.7169 94.2851 15.0386 94.2851 14.5348V9.84482C94.2851 7.92622 93.1495 6.22083 90.0955 6.22083C87.5115 6.22083 86.1216 7.86807 85.965 9.36033L88.2747 9.84482C88.3533 9.0115 88.9798 8.29445 90.1149 8.29445C91.2115 8.29445 91.74 8.85646 91.74 9.53475C91.74 9.86421 91.5638 10.1355 91.0156 10.2131L88.647 10.5619C87.0418 10.7945 85.7692 11.744 85.7692 13.4495ZM89.6258 14.3991C88.784 14.3991 88.3727 13.8565 88.3727 13.2945C88.3727 12.558 88.9012 12.1898 89.5671 12.0929L91.74 11.7634V12.1898C91.74 13.8759 90.722 14.3991 89.6258 14.3991Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 47,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M96.087 13.3913C96.2042 14.4766 97.2028 16.3371 100.1 16.3371C102.626 16.3371 103.839 14.7479 103.839 13.1976C103.839 11.8022 102.88 10.6588 100.981 10.2712L99.6105 9.98049C99.082 9.88359 98.7299 9.5929 98.7299 9.12777C98.7299 8.58512 99.2778 8.17818 99.963 8.17818C101.06 8.17818 101.471 8.89521 101.549 9.45725L103.722 8.97275C103.604 7.94561 102.684 6.22083 99.9436 6.22083C97.8683 6.22083 96.3416 7.63555 96.3416 9.34094C96.3416 10.6781 97.183 11.7828 99.043 12.1898L100.316 12.4805C101.06 12.6355 101.353 12.9844 101.353 13.4107C101.353 13.9146 100.942 14.3603 100.081 14.3603C98.9451 14.3603 98.3776 13.6626 98.3188 12.9068L96.087 13.3913Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 51,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M107.794 10.1937C107.852 9.32158 108.596 8.31381 109.947 8.31381C111.435 8.31381 112.062 9.24406 112.101 10.1937H107.794ZM112.355 12.6743C112.042 13.527 111.376 14.1278 110.163 14.1278C108.87 14.1278 107.794 13.2169 107.735 11.9573H114.626C114.626 11.9184 114.665 11.5309 114.665 11.1626C114.665 8.10064 112.884 6.22083 109.908 6.22083C107.441 6.22083 105.17 8.19753 105.17 11.2402C105.17 14.4572 107.5 16.3371 110.143 16.3371C112.512 16.3371 114.039 14.9611 114.528 13.3138L112.355 12.6743Z\",\n fill: \"currentColor\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 55,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"defs\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"linearGradient\", {\n id: \"paint0_linear_4671_51136\",\n x1: \"11.4954\",\n y1: \"11.1486\",\n x2: \"19.3439\",\n y2: \"14.4777\",\n gradientUnits: \"userSpaceOnUse\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n stopColor: \"#249361\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 69,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"1\",\n stopColor: \"#3ECF8E\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 70,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 61,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"linearGradient\", {\n id: \"paint1_linear_4671_51136\",\n x1: \"8.00382\",\n y1: \"6.42177\",\n x2: \"11.5325\",\n y2: \"13.1398\",\n gradientUnits: \"userSpaceOnUse\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {}, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 80,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"1\",\n stopOpacity: \"0\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 81,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 72,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"clipPath\", {\n id: \"clip0_4671_51136\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"rect\", {\n width: \"113.85\",\n height: \"21.8943\",\n fill: \"currentColor\",\n transform: \"translate(0.922119 0.456161)\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 84,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 83,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"clipPath\", {\n id: \"clip1_4671_51136\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"rect\", {\n width: \"21.3592\",\n height: \"21.8943\",\n fill: \"currentColor\",\n transform: \"translate(0.919006 0.497101)\"\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 92,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 91,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 60,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/pawanlive/Programming /timetable-app/components/SupabaseLogo.tsx\",\n lineNumber: 3,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL1N1cGFiYXNlTG9nby50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFlLFNBQVNBO0lBQ3RCLHFCQUNFLDhEQUFDQztRQUNDQyxjQUFXO1FBQ1hDLE9BQU07UUFDTkMsUUFBTztRQUNQQyxTQUFRO1FBQ1JDLE1BQUs7UUFDTEMsT0FBTTs7MEJBRU4sOERBQUNDO2dCQUFFQyxVQUFTOztrQ0FDViw4REFBQ0Q7d0JBQUVDLFVBQVM7OzBDQUNWLDhEQUFDQztnQ0FDQ0MsR0FBRTtnQ0FDRkwsTUFBSzs7Ozs7OzBDQUVQLDhEQUFDSTtnQ0FDQ0MsR0FBRTtnQ0FDRkwsTUFBSztnQ0FDTE0sYUFBWTs7Ozs7OzBDQUVkLDhEQUFDRjtnQ0FDQ0MsR0FBRTtnQ0FDRkwsTUFBSzs7Ozs7Ozs7Ozs7O2tDQUdULDhEQUFDSTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7Ozs7O2tDQUVQLDhEQUFDSTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7Ozs7O2tDQUVQLDhEQUFDSTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7Ozs7O2tDQUVQLDhEQUFDSTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7Ozs7O2tDQUVQLDhEQUFDSTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7Ozs7O2tDQUVQLDhEQUFDSTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7Ozs7O2tDQUVQLDhEQUFDSTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7Ozs7O2tDQUVQLDhEQUFDSTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7Ozs7Ozs7Ozs7OzBCQUdULDhEQUFDTzs7a0NBQ0MsOERBQUNDO3dCQUNDQyxJQUFHO3dCQUNIQyxJQUFHO3dCQUNIQyxJQUFHO3dCQUNIQyxJQUFHO3dCQUNIQyxJQUFHO3dCQUNIQyxlQUFjOzswQ0FFZCw4REFBQ0M7Z0NBQUtDLFdBQVU7Ozs7OzswQ0FDaEIsOERBQUNEO2dDQUFLRSxRQUFPO2dDQUFJRCxXQUFVOzs7Ozs7Ozs7Ozs7a0NBRTdCLDhEQUFDUjt3QkFDQ0MsSUFBRzt3QkFDSEMsSUFBRzt3QkFDSEMsSUFBRzt3QkFDSEMsSUFBRzt3QkFDSEMsSUFBRzt3QkFDSEMsZUFBYzs7MENBRWQsOERBQUNDOzs7OzswQ0FDRCw4REFBQ0E7Z0NBQUtFLFFBQU87Z0NBQUlDLGFBQVk7Ozs7Ozs7Ozs7OztrQ0FFL0IsOERBQUNmO3dCQUFTTSxJQUFHO2tDQUNYLDRFQUFDVTs0QkFDQ3RCLE9BQU07NEJBQ05DLFFBQU87NEJBQ1BFLE1BQUs7NEJBQ0xvQixXQUFVOzs7Ozs7Ozs7OztrQ0FHZCw4REFBQ2pCO3dCQUFTTSxJQUFHO2tDQUNYLDRFQUFDVTs0QkFDQ3RCLE9BQU07NEJBQ05DLFFBQU87NEJBQ1BFLE1BQUs7NEJBQ0xvQixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU10QiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NvbXBvbmVudHMvU3VwYWJhc2VMb2dvLnRzeD9iMzhlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFN1cGFiYXNlTG9nbygpIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBhcmlhLWxhYmVsPVwiU3VwYWJhc2UgbG9nb1wiXG4gICAgICB3aWR0aD1cIjE0MFwiXG4gICAgICBoZWlnaHQ9XCIzMFwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDExNSAyM1wiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8ZyBjbGlwUGF0aD1cInVybCgjY2xpcDBfNDY3MV81MTEzNilcIj5cbiAgICAgICAgPGcgY2xpcFBhdGg9XCJ1cmwoI2NsaXAxXzQ2NzFfNTExMzYpXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTMuNDAyOCAyMS44NjUyQzEyLjg0MjQgMjIuNTYyOSAxMS43MDYzIDIyLjE4MDYgMTEuNjkyOCAyMS4yODk4TDExLjQ5NTQgOC4yNTk0OEgyMC4zNTY0QzIxLjk2MTQgOC4yNTk0OCAyMi44NTY1IDEwLjA5MjQgMjEuODU4NSAxMS4zMzUzTDEzLjQwMjggMjEuODY1MlpcIlxuICAgICAgICAgICAgZmlsbD1cInVybCgjcGFpbnQwX2xpbmVhcl80NjcxXzUxMTM2KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0xMy40MDI4IDIxLjg2NTJDMTIuODQyNCAyMi41NjI5IDExLjcwNjMgMjIuMTgwNiAxMS42OTI4IDIxLjI4OThMMTEuNDk1NCA4LjI1OTQ4SDIwLjM1NjRDMjEuOTYxNCA4LjI1OTQ4IDIyLjg1NjUgMTAuMDkyNCAyMS44NTg1IDExLjMzNTNMMTMuNDAyOCAyMS44NjUyWlwiXG4gICAgICAgICAgICBmaWxsPVwidXJsKCNwYWludDFfbGluZWFyXzQ2NzFfNTExMzYpXCJcbiAgICAgICAgICAgIGZpbGxPcGFjaXR5PVwiMC4yXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTkuNzk4OTUgMC44OTgzOEMxMC4zNTkzIDAuMjAwNTkxIDExLjQ5NTQgMC41ODI5MjkgMTEuNTA4OSAxLjQ3MzgzTDExLjU5NTUgMTQuNTA0MUgyLjg0NTI4QzEuMjQwMjYgMTQuNTA0MSAwLjM0NTEwMyAxMi42NzExIDEuMzQzMTYgMTEuNDI4M0w5Ljc5ODk1IDAuODk4MzhaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjM0VDRjhFXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2c+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0zMC41ODk0IDEzLjM5MTNDMzAuNzA2OCAxNC40NzY2IDMxLjcwNTIgMTYuMzM3MSAzNC42MDI2IDE2LjMzNzFDMzcuMTI3OSAxNi4zMzcxIDM4LjM0MTggMTQuNzQ3OSAzOC4zNDE4IDEzLjE5NzZDMzguMzQxOCAxMS44MDIyIDM3LjM4MjQgMTAuNjU4OCAzNS40ODM2IDEwLjI3MTJMMzQuMTEzMSA5Ljk4MDQ5QzMzLjU4NDYgOS44ODM1OSAzMy4yMzIzIDkuNTkyOSAzMy4yMzIzIDkuMTI3NzdDMzMuMjMyMyA4LjU4NTEyIDMzLjc4MDQgOC4xNzgxOCAzNC40NjU2IDguMTc4MThDMzUuNTYxOCA4LjE3ODE4IDM1Ljk3MjkgOC44OTUyMSAzNi4wNTEzIDkuNDU3MjVMMzguMjI0MyA4Ljk3Mjc1QzM4LjEwNjkgNy45NDU2MSAzNy4xODY3IDYuMjIwODMgMzQuNDQ2IDYuMjIwODNDMzIuMzcwOSA2LjIyMDgzIDMwLjg0NCA3LjYzNTU1IDMwLjg0NCA5LjM0MDk0QzMwLjg0NCAxMC42NzgxIDMxLjY4NTYgMTEuNzgyOCAzMy41NDU0IDEyLjE4OThMMzQuODE3OSAxMi40ODA1QzM1LjU2MTggMTIuNjM1NSAzNS44NTU1IDEyLjk4NDQgMzUuODU1NSAxMy40MTA3QzM1Ljg1NTUgMTMuOTE0NiAzNS40NDQ0IDE0LjM2MDMgMzQuNTgzIDE0LjM2MDNDMzMuNDQ3NiAxNC4zNjAzIDMyLjg3OTcgMTMuNjYyNiAzMi44MjEyIDEyLjkwNjhMMzAuNTg5NCAxMy4zOTEzWlwiXG4gICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk00Ni42NjIzIDE2LjA0NjRINDkuMTQ4NkM0OS4xMDk0IDE1LjcxNyA0OS4wNTA2IDE1LjA1ODEgNDkuMDUwNiAxNC4zMjE2VjYuNTExNTRINDYuNDQ2OFYxMi4wNTQyQzQ2LjQ0NjggMTMuMTU4OCA0NS43ODEzIDEzLjkzNCA0NC42MjYzIDEzLjkzNEM0My40MTI2IDEzLjkzNCA0Mi44NjQzIDEzLjA4MTMgNDIuODY0MyAxMi4wMTU0VjYuNTExNTRINDAuMjYwNlYxMi41Mzg3QzQwLjI2MDYgMTQuNjEyMyA0MS41OTE4IDE2LjI5ODQgNDMuOTIxNSAxNi4yOTg0QzQ0LjkzOTMgMTYuMjk4NCA0Ni4wNTU2IDE1LjkxMDggNDYuNTg0MSAxNS4wMTkzQzQ2LjU4NDEgMTUuNDA2OSA0Ni42MjMxIDE1Ljg1MjYgNDYuNjYyMyAxNi4wNDY0WlwiXG4gICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk01NC40MzMgMTkuNzI4NlYxNS4xMTYyQzU0LjkwMjcgMTUuNzU1OCA1NS44ODE3IDE2LjI3OSA1Ny4yMTMgMTYuMjc5QzU5LjkzNDEgMTYuMjc5IDYxLjc1NDUgMTQuMTQ3MiA2MS43NTQ1IDExLjI1OTZDNjEuNzU0NSA4LjQzMDIxIDYwLjEyOTggNi4yOTg0MiA1Ny4zMTA4IDYuMjk4NDJDNTUuODYyMyA2LjI5ODQyIDU0Ljc4NTUgNi45Mzc5MiA1NC4zNTQ4IDcuNjc0MzlWNi41MTE1OUg1MS44Mjk1VjE5LjcyODZINTQuNDMzWk01OS4xOSAxMS4yNzlDNTkuMTkgMTIuOTg0NSA1OC4xMzMgMTMuOTcyOCA1Ni44MDE3IDEzLjk3MjhDNTUuNDcwOCAxMy45NzI4IDU0LjM5NCAxMi45NjUxIDU0LjM5NCAxMS4yNzlDNTQuMzk0IDkuNTkyOTkgNTUuNDcwOCA4LjYwNDYgNTYuODAxNyA4LjYwNDZDNTguMTMzIDguNjA0NiA1OS4xOSA5LjU5Mjk5IDU5LjE5IDExLjI3OVpcIlxuICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNNjMuMjI5IDEzLjQ0OTVDNjMuMjI5IDE0Ljk0MTcgNjQuNDgxOCAxNi4zMTc3IDY2LjUzNzUgMTYuMzE3N0M2Ny45NjYyIDE2LjMxNzcgNjguODg2NSAxNS42NTg4IDY5LjM3NTggMTQuOTAyOUM2OS4zNzU4IDE1LjI3MTIgNjkuNDE0OSAxNS43OTQ0IDY5LjQ3MzcgMTYuMDQ2NEg3MS44NjJDNzEuODAzMyAxNS43MTY5IDcxLjc0NDkgMTUuMDM4NiA3MS43NDQ5IDE0LjUzNDhWOS44NDQ4MkM3MS43NDQ5IDcuOTI2MjIgNzAuNjA5MyA2LjIyMDgzIDY3LjU1NTUgNi4yMjA4M0M2NC45NzEzIDYuMjIwODMgNjMuNTgxMSA3Ljg2ODA3IDYzLjQyNDggOS4zNjAzM0w2NS43MzQ3IDkuODQ0ODJDNjUuODEzMSA5LjAxMTUgNjYuNDM5NSA4LjI5NDQ1IDY3LjU3NDcgOC4yOTQ0NUM2OC42NzEzIDguMjk0NDUgNjkuMTk5OCA4Ljg1NjQ2IDY5LjE5OTggOS41MzQ3NUM2OS4xOTk4IDkuODY0MjEgNjkuMDIzOCAxMC4xMzU1IDY4LjQ3NTUgMTAuMjEzMUw2Ni4xMDY4IDEwLjU2MTlDNjQuNTAxNSAxMC43OTQ1IDYzLjIyOSAxMS43NDQgNjMuMjI5IDEzLjQ0OTVaTTY3LjA4NTQgMTQuMzk5MUM2Ni4yNDM4IDE0LjM5OTEgNjUuODMyNSAxMy44NTY1IDY1LjgzMjUgMTMuMjk0NUM2NS44MzI1IDEyLjU1OCA2Ni4zNjEgMTIuMTg5OCA2Ny4wMjY4IDEyLjA5MjlMNjkuMTk5OCAxMS43NjM0VjEyLjE4OThDNjkuMTk5OCAxMy44NzU5IDY4LjE4MTggMTQuMzk5MSA2Ny4wODU0IDE0LjM5OTFaXCJcbiAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTc2Ljg5NSAxNi4wNDY1VjE0Ljg4MzdDNzcuNDAzOCAxNS42OTc2IDc4LjQyMTcgMTYuMjc5IDc5Ljc1MzEgMTYuMjc5QzgyLjQ5NDEgMTYuMjc5IDg0LjI5NTEgMTQuMTI3OCA4NC4yOTUxIDExLjI0MDNDODQuMjk1MSA4LjQxMDggODIuNjcwMSA2LjI1OTY1IDc5Ljg1MSA2LjI1OTY1Qzc4LjQyMTcgNi4yNTk2NSA3Ny4zNjQ4IDYuODc5OCA3Ni45MzQgNy41NTgwNlYyLjAxNTQ2SDc0LjM2OTZWMTYuMDQ2NUg3Ni44OTVaTTgxLjY5MTEgMTEuMjU5NkM4MS42OTExIDEzLjAwMzggODAuNjM0MSAxMy45NzI4IDc5LjMwMjggMTMuOTcyOEM3Ny45OTEyIDEzLjk3MjggNzYuODk1IDEyLjk4NDUgNzYuODk1IDExLjI1OTZDNzYuODk1IDkuNTE1NDMgNzcuOTkxMiA4LjU2NTg0IDc5LjMwMjggOC41NjU4NEM4MC42MzQxIDguNTY1ODQgODEuNjkxMSA5LjUxNTQzIDgxLjY5MTEgMTEuMjU5NlpcIlxuICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNODUuNzY5MiAxMy40NDk1Qzg1Ljc2OTIgMTQuOTQxNyA4Ny4wMjIgMTYuMzE3NyA4OS4wNzc2IDE2LjMxNzdDOTAuNTA2NSAxNi4zMTc3IDkxLjQyNjkgMTUuNjU4OCA5MS45MTYgMTQuOTAyOUM5MS45MTYgMTUuMjcxMiA5MS45NTU0IDE1Ljc5NDQgOTIuMDE0IDE2LjA0NjRIOTQuNDAyM0M5NC4zNDM5IDE1LjcxNjkgOTQuMjg1MSAxNS4wMzg2IDk0LjI4NTEgMTQuNTM0OFY5Ljg0NDgyQzk0LjI4NTEgNy45MjYyMiA5My4xNDk1IDYuMjIwODMgOTAuMDk1NSA2LjIyMDgzQzg3LjUxMTUgNi4yMjA4MyA4Ni4xMjE2IDcuODY4MDcgODUuOTY1IDkuMzYwMzNMODguMjc0NyA5Ljg0NDgyQzg4LjM1MzMgOS4wMTE1IDg4Ljk3OTggOC4yOTQ0NSA5MC4xMTQ5IDguMjk0NDVDOTEuMjExNSA4LjI5NDQ1IDkxLjc0IDguODU2NDYgOTEuNzQgOS41MzQ3NUM5MS43NCA5Ljg2NDIxIDkxLjU2MzggMTAuMTM1NSA5MS4wMTU2IDEwLjIxMzFMODguNjQ3IDEwLjU2MTlDODcuMDQxOCAxMC43OTQ1IDg1Ljc2OTIgMTEuNzQ0IDg1Ljc2OTIgMTMuNDQ5NVpNODkuNjI1OCAxNC4zOTkxQzg4Ljc4NCAxNC4zOTkxIDg4LjM3MjcgMTMuODU2NSA4OC4zNzI3IDEzLjI5NDVDODguMzcyNyAxMi41NTggODguOTAxMiAxMi4xODk4IDg5LjU2NzEgMTIuMDkyOUw5MS43NCAxMS43NjM0VjEyLjE4OThDOTEuNzQgMTMuODc1OSA5MC43MjIgMTQuMzk5MSA4OS42MjU4IDE0LjM5OTFaXCJcbiAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTk2LjA4NyAxMy4zOTEzQzk2LjIwNDIgMTQuNDc2NiA5Ny4yMDI4IDE2LjMzNzEgMTAwLjEgMTYuMzM3MUMxMDIuNjI2IDE2LjMzNzEgMTAzLjgzOSAxNC43NDc5IDEwMy44MzkgMTMuMTk3NkMxMDMuODM5IDExLjgwMjIgMTAyLjg4IDEwLjY1ODggMTAwLjk4MSAxMC4yNzEyTDk5LjYxMDUgOS45ODA0OUM5OS4wODIgOS44ODM1OSA5OC43Mjk5IDkuNTkyOSA5OC43Mjk5IDkuMTI3NzdDOTguNzI5OSA4LjU4NTEyIDk5LjI3NzggOC4xNzgxOCA5OS45NjMgOC4xNzgxOEMxMDEuMDYgOC4xNzgxOCAxMDEuNDcxIDguODk1MjEgMTAxLjU0OSA5LjQ1NzI1TDEwMy43MjIgOC45NzI3NUMxMDMuNjA0IDcuOTQ1NjEgMTAyLjY4NCA2LjIyMDgzIDk5Ljk0MzYgNi4yMjA4M0M5Ny44NjgzIDYuMjIwODMgOTYuMzQxNiA3LjYzNTU1IDk2LjM0MTYgOS4zNDA5NEM5Ni4zNDE2IDEwLjY3ODEgOTcuMTgzIDExLjc4MjggOTkuMDQzIDEyLjE4OThMMTAwLjMxNiAxMi40ODA1QzEwMS4wNiAxMi42MzU1IDEwMS4zNTMgMTIuOTg0NCAxMDEuMzUzIDEzLjQxMDdDMTAxLjM1MyAxMy45MTQ2IDEwMC45NDIgMTQuMzYwMyAxMDAuMDgxIDE0LjM2MDNDOTguOTQ1MSAxNC4zNjAzIDk4LjM3NzYgMTMuNjYyNiA5OC4zMTg4IDEyLjkwNjhMOTYuMDg3IDEzLjM5MTNaXCJcbiAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTEwNy43OTQgMTAuMTkzN0MxMDcuODUyIDkuMzIxNTggMTA4LjU5NiA4LjMxMzgxIDEwOS45NDcgOC4zMTM4MUMxMTEuNDM1IDguMzEzODEgMTEyLjA2MiA5LjI0NDA2IDExMi4xMDEgMTAuMTkzN0gxMDcuNzk0Wk0xMTIuMzU1IDEyLjY3NDNDMTEyLjA0MiAxMy41MjcgMTExLjM3NiAxNC4xMjc4IDExMC4xNjMgMTQuMTI3OEMxMDguODcgMTQuMTI3OCAxMDcuNzk0IDEzLjIxNjkgMTA3LjczNSAxMS45NTczSDExNC42MjZDMTE0LjYyNiAxMS45MTg0IDExNC42NjUgMTEuNTMwOSAxMTQuNjY1IDExLjE2MjZDMTE0LjY2NSA4LjEwMDY0IDExMi44ODQgNi4yMjA4MyAxMDkuOTA4IDYuMjIwODNDMTA3LjQ0MSA2LjIyMDgzIDEwNS4xNyA4LjE5NzUzIDEwNS4xNyAxMS4yNDAyQzEwNS4xNyAxNC40NTcyIDEwNy41IDE2LjMzNzEgMTEwLjE0MyAxNi4zMzcxQzExMi41MTIgMTYuMzM3MSAxMTQuMDM5IDE0Ljk2MTEgMTE0LjUyOCAxMy4zMTM4TDExMi4zNTUgMTIuNjc0M1pcIlxuICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAvPlxuICAgICAgPC9nPlxuICAgICAgPGRlZnM+XG4gICAgICAgIDxsaW5lYXJHcmFkaWVudFxuICAgICAgICAgIGlkPVwicGFpbnQwX2xpbmVhcl80NjcxXzUxMTM2XCJcbiAgICAgICAgICB4MT1cIjExLjQ5NTRcIlxuICAgICAgICAgIHkxPVwiMTEuMTQ4NlwiXG4gICAgICAgICAgeDI9XCIxOS4zNDM5XCJcbiAgICAgICAgICB5Mj1cIjE0LjQ3NzdcIlxuICAgICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3RvcCBzdG9wQ29sb3I9XCIjMjQ5MzYxXCIgLz5cbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcENvbG9yPVwiIzNFQ0Y4RVwiIC8+XG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICAgIDxsaW5lYXJHcmFkaWVudFxuICAgICAgICAgIGlkPVwicGFpbnQxX2xpbmVhcl80NjcxXzUxMTM2XCJcbiAgICAgICAgICB4MT1cIjguMDAzODJcIlxuICAgICAgICAgIHkxPVwiNi40MjE3N1wiXG4gICAgICAgICAgeDI9XCIxMS41MzI1XCJcbiAgICAgICAgICB5Mj1cIjEzLjEzOThcIlxuICAgICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3RvcCAvPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBzdG9wT3BhY2l0eT1cIjBcIiAvPlxuICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF80NjcxXzUxMTM2XCI+XG4gICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgIHdpZHRoPVwiMTEzLjg1XCJcbiAgICAgICAgICAgIGhlaWdodD1cIjIxLjg5NDNcIlxuICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC45MjIxMTkgMC40NTYxNjEpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMV80NjcxXzUxMTM2XCI+XG4gICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgIHdpZHRoPVwiMjEuMzU5MlwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIyMS44OTQzXCJcbiAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuOTE5MDA2IDAuNDk3MTAxKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgIDwvZGVmcz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJTdXBhYmFzZUxvZ28iLCJzdmciLCJhcmlhLWxhYmVsIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsInhtbG5zIiwiZyIsImNsaXBQYXRoIiwicGF0aCIsImQiLCJmaWxsT3BhY2l0eSIsImRlZnMiLCJsaW5lYXJHcmFkaWVudCIsImlkIiwieDEiLCJ5MSIsIngyIiwieTIiLCJncmFkaWVudFVuaXRzIiwic3RvcCIsInN0b3BDb2xvciIsIm9mZnNldCIsInN0b3BPcGFjaXR5IiwicmVjdCIsInRyYW5zZm9ybSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./components/SupabaseLogo.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./utils/supabase/server.ts": +/*!**********************************!*\ + !*** ./utils/supabase/server.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 */ createClient: () => (/* binding */ createClient)\n/* harmony export */ });\n/* harmony import */ var _supabase_ssr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/ssr */ \"(rsc)/./node_modules/@supabase/ssr/dist/index.mjs\");\n\nconst createClient = (cookieStore)=>{\n return (0,_supabase_ssr__WEBPACK_IMPORTED_MODULE_0__.createServerClient)(\"https://xqnaddwvcfzffvygbikl.supabase.co\", \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InhxbmFkZHd2Y2Z6ZmZ2eWdiaWtsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDcyMDQyMjYsImV4cCI6MjAyMjc4MDIyNn0.5cAxDA5obebKSe8iiDkfVe7XtU9KAX5iOZsGMUoX99A\", {\n cookies: {\n get (name) {\n return cookieStore.get(name)?.value;\n },\n set (name, value, options) {\n try {\n cookieStore.set({\n name,\n value,\n ...options\n });\n } catch (error) {\n // The `set` method was called from a Server Component.\n // This can be ignored if you have middleware refreshing\n // user sessions.\n }\n },\n remove (name, options) {\n try {\n cookieStore.set({\n name,\n value: \"\",\n ...options\n });\n } catch (error) {\n // The `delete` method was called from a Server Component.\n // This can be ignored if you have middleware refreshing\n // user sessions.\n }\n }\n }\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi91dGlscy9zdXBhYmFzZS9zZXJ2ZXIudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUU7QUFHaEUsTUFBTUMsZUFBZSxDQUFDQztJQUMzQixPQUFPRixpRUFBa0JBLENBQ3ZCRywwQ0FBb0MsRUFDcENBLGtOQUF5QyxFQUN6QztRQUNFSSxTQUFTO1lBQ1BDLEtBQUlDLElBQVk7Z0JBQ2QsT0FBT1AsWUFBWU0sR0FBRyxDQUFDQyxPQUFPQztZQUNoQztZQUNBQyxLQUFJRixJQUFZLEVBQUVDLEtBQWEsRUFBRUUsT0FBc0I7Z0JBQ3JELElBQUk7b0JBQ0ZWLFlBQVlTLEdBQUcsQ0FBQzt3QkFBRUY7d0JBQU1DO3dCQUFPLEdBQUdFLE9BQU87b0JBQUM7Z0JBQzVDLEVBQUUsT0FBT0MsT0FBTztnQkFDZCx1REFBdUQ7Z0JBQ3ZELHdEQUF3RDtnQkFDeEQsaUJBQWlCO2dCQUNuQjtZQUNGO1lBQ0FDLFFBQU9MLElBQVksRUFBRUcsT0FBc0I7Z0JBQ3pDLElBQUk7b0JBQ0ZWLFlBQVlTLEdBQUcsQ0FBQzt3QkFBRUY7d0JBQU1DLE9BQU87d0JBQUksR0FBR0UsT0FBTztvQkFBQztnQkFDaEQsRUFBRSxPQUFPQyxPQUFPO2dCQUNkLDBEQUEwRDtnQkFDMUQsd0RBQXdEO2dCQUN4RCxpQkFBaUI7Z0JBQ25CO1lBQ0Y7UUFDRjtJQUNGO0FBRUosRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3V0aWxzL3N1cGFiYXNlL3NlcnZlci50cz8wZjU1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlcnZlckNsaWVudCwgdHlwZSBDb29raWVPcHRpb25zIH0gZnJvbSBcIkBzdXBhYmFzZS9zc3JcIjtcbmltcG9ydCB7IGNvb2tpZXMgfSBmcm9tIFwibmV4dC9oZWFkZXJzXCI7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDbGllbnQgPSAoY29va2llU3RvcmU6IFJldHVyblR5cGU8dHlwZW9mIGNvb2tpZXM+KSA9PiB7XG4gIHJldHVybiBjcmVhdGVTZXJ2ZXJDbGllbnQoXG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfU1VQQUJBU0VfVVJMISxcbiAgICBwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19TVVBBQkFTRV9BTk9OX0tFWSEsXG4gICAge1xuICAgICAgY29va2llczoge1xuICAgICAgICBnZXQobmFtZTogc3RyaW5nKSB7XG4gICAgICAgICAgcmV0dXJuIGNvb2tpZVN0b3JlLmdldChuYW1lKT8udmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IENvb2tpZU9wdGlvbnMpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29va2llU3RvcmUuc2V0KHsgbmFtZSwgdmFsdWUsIC4uLm9wdGlvbnMgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFRoZSBgc2V0YCBtZXRob2Qgd2FzIGNhbGxlZCBmcm9tIGEgU2VydmVyIENvbXBvbmVudC5cbiAgICAgICAgICAgIC8vIFRoaXMgY2FuIGJlIGlnbm9yZWQgaWYgeW91IGhhdmUgbWlkZGxld2FyZSByZWZyZXNoaW5nXG4gICAgICAgICAgICAvLyB1c2VyIHNlc3Npb25zLlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlKG5hbWU6IHN0cmluZywgb3B0aW9uczogQ29va2llT3B0aW9ucykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb29raWVTdG9yZS5zZXQoeyBuYW1lLCB2YWx1ZTogXCJcIiwgLi4ub3B0aW9ucyB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gVGhlIGBkZWxldGVgIG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gYSBTZXJ2ZXIgQ29tcG9uZW50LlxuICAgICAgICAgICAgLy8gVGhpcyBjYW4gYmUgaWdub3JlZCBpZiB5b3UgaGF2ZSBtaWRkbGV3YXJlIHJlZnJlc2hpbmdcbiAgICAgICAgICAgIC8vIHVzZXIgc2Vzc2lvbnMuXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVTZXJ2ZXJDbGllbnQiLCJjcmVhdGVDbGllbnQiLCJjb29raWVTdG9yZSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19TVVBBQkFTRV9VUkwiLCJORVhUX1BVQkxJQ19TVVBBQkFTRV9BTk9OX0tFWSIsImNvb2tpZXMiLCJnZXQiLCJuYW1lIiwidmFsdWUiLCJzZXQiLCJvcHRpb25zIiwiZXJyb3IiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./utils/supabase/server.ts\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__": +/*!**********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__ ***! + \**********************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"favicon.ico\")\n\n return [{\n ...imageData,\n url: imageUrl + \"\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPWZhdmljb24mc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhLi9hcHAvZmF2aWNvbi5pY28/X19uZXh0X21ldGFkYXRhX18iLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsRUFBaUY7O0FBRWpGLEVBQUUsaUVBQWU7QUFDakIsdUJBQXVCO0FBQ3ZCLHFCQUFxQiw4RkFBbUI7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC9mYXZpY29uLmljbz9mYmM0Il0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3gtaWNvblwiLFwic2l6ZXNcIjpcIjE2eDE2XCJ9XG4gICAgY29uc3QgaW1hZ2VVcmwgPSBmaWxsTWV0YWRhdGFTZWdtZW50KFwiLlwiLCBwcm9wcy5wYXJhbXMsIFwiZmF2aWNvbi5pY29cIilcblxuICAgIHJldHVybiBbe1xuICAgICAgLi4uaW1hZ2VEYXRhLFxuICAgICAgdXJsOiBpbWFnZVVybCArIFwiXCIsXG4gICAgfV1cbiAgfSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/favicon.ico?__next_metadata__\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__": +/*!********************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__ ***! + \********************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/png\",\"width\":1200,\"height\":600}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"opengraph-image.png\")\n\n return [{\n ...imageData,\n url: imageUrl + \"?2e0bc232e210f89d\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPW9wZW5HcmFwaCZzZWdtZW50PSZiYXNlUGF0aD0mcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyEuL2FwcC9vcGVuZ3JhcGgtaW1hZ2UucG5nP19fbmV4dF9tZXRhZGF0YV9fIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLEVBQWlGOztBQUVqRixFQUFFLGlFQUFlO0FBQ2pCLHVCQUF1QjtBQUN2QixxQkFBcUIsOEZBQW1COztBQUV4QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hcHAvb3BlbmdyYXBoLWltYWdlLnBuZz8yYTEwIl0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3BuZ1wiLFwid2lkdGhcIjoxMjAwLFwiaGVpZ2h0XCI6NjAwfVxuICAgIGNvbnN0IGltYWdlVXJsID0gZmlsbE1ldGFkYXRhU2VnbWVudChcIi5cIiwgcHJvcHMucGFyYW1zLCBcIm9wZW5ncmFwaC1pbWFnZS5wbmdcIilcblxuICAgIHJldHVybiBbe1xuICAgICAgLi4uaW1hZ2VEYXRhLFxuICAgICAgdXJsOiBpbWFnZVVybCArIFwiPzJlMGJjMjMyZTIxMGY4OWRcIixcbiAgICB9XVxuICB9Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=openGraph&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/opengraph-image.png?__next_metadata__\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__ ***! + \****************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/png\",\"width\":1200,\"height\":600}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"twitter-image.png\")\n\n return [{\n ...imageData,\n url: imageUrl + \"?2e0bc232e210f89d\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPXR3aXR0ZXImc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhLi9hcHAvdHdpdHRlci1pbWFnZS5wbmc/X19uZXh0X21ldGFkYXRhX18iLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsRUFBaUY7O0FBRWpGLEVBQUUsaUVBQWU7QUFDakIsdUJBQXVCO0FBQ3ZCLHFCQUFxQiw4RkFBbUI7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC90d2l0dGVyLWltYWdlLnBuZz8zOGRmIl0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3BuZ1wiLFwid2lkdGhcIjoxMjAwLFwiaGVpZ2h0XCI6NjAwfVxuICAgIGNvbnN0IGltYWdlVXJsID0gZmlsbE1ldGFkYXRhU2VnbWVudChcIi5cIiwgcHJvcHMucGFyYW1zLCBcInR3aXR0ZXItaW1hZ2UucG5nXCIpXG5cbiAgICByZXR1cm4gW3tcbiAgICAgIC4uLmltYWdlRGF0YSxcbiAgICAgIHVybDogaW1hZ2VVcmwgKyBcIj8yZTBiYzIzMmUyMTBmODlkXCIsXG4gICAgfV1cbiAgfSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=twitter&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./app/twitter-image.png?__next_metadata__\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","vendor-chunks/@supabase","vendor-chunks/tr46","vendor-chunks/whatwg-url","vendor-chunks/ramda","vendor-chunks/cookie","vendor-chunks/webidl-conversions","vendor-chunks/@swc","vendor-chunks/geist"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&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 0000000..8dd86f5 --- /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/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.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/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/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.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/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./components/Code.tsx":{"*":{"id":"(ssr)/./components/Code.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/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/pawanlive/Programming /timetable-app/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/components/Code.tsx":{"id":"(app-pages-browser)/./components/Code.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/pawanlive/Programming /timetable-app/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false}},"entryCSSFiles":{"/Users/pawanlive/Programming /timetable-app/app/page":[],"/Users/pawanlive/Programming /timetable-app/app/layout":["static/css/app/layout.css"]}} \ No newline at end of file diff --git a/.next/server/edge-runtime-webpack.js b/.next/server/edge-runtime-webpack.js new file mode 100644 index 0000000..056b263 --- /dev/null +++ b/.next/server/edge-runtime-webpack.js @@ -0,0 +1,1181 @@ +/* + * 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/). + */ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({}); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ if (cachedModule.error !== undefined) throw cachedModule.error; +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; +/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); +/******/ module = execOptions.module; +/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/******/ // expose the module execution interceptor +/******/ __webpack_require__.i = []; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var [chunkIds, fn, priority] = deferred[i]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/create fake namespace object */ +/******/ (() => { +/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); +/******/ var leafPrototypes; +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 16: return value when it's Promise-like +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = this(value); +/******/ if(mode & 8) return value; +/******/ if(typeof value === 'object' && value) { +/******/ if((mode & 4) && value.__esModule) return value; +/******/ if((mode & 16) && typeof value.then === 'function') return value; +/******/ } +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ var def = {}; +/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; +/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { +/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); +/******/ } +/******/ def['default'] = () => (value); +/******/ __webpack_require__.d(ns, def); +/******/ return ns; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript update chunk filename */ +/******/ (() => { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.hu = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "static/webpack/" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get update manifest filename */ +/******/ (() => { +/******/ __webpack_require__.hmrF = () => ("static/webpack/" + __webpack_require__.h() + ".edge-runtime-webpack.hot-update.json"); +/******/ })(); +/******/ +/******/ /* webpack/runtime/getFullHash */ +/******/ (() => { +/******/ __webpack_require__.h = () => ("5a54609d89f5e684") +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ (() => { +/******/ var inProgress = {}; +/******/ var dataWebpackPrefix = "_N_E:"; +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = (url, done, key, chunkId) => { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ script.setAttribute("data-webpack", dataWebpackPrefix + key); +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = (prev, event) => { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach((fn) => (fn(event))); +/******/ if(prev) return prev(event); +/******/ } +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hot module replacement */ +/******/ (() => { +/******/ var currentModuleData = {}; +/******/ var installedModules = __webpack_require__.c; +/******/ +/******/ // module and require creation +/******/ var currentChildModule; +/******/ var currentParents = []; +/******/ +/******/ // status +/******/ var registeredStatusHandlers = []; +/******/ var currentStatus = "idle"; +/******/ +/******/ // while downloading +/******/ var blockingPromises = 0; +/******/ var blockingPromisesWaiting = []; +/******/ +/******/ // The update info +/******/ var currentUpdateApplyHandlers; +/******/ var queuedInvalidatedModules; +/******/ +/******/ // eslint-disable-next-line no-unused-vars +/******/ __webpack_require__.hmrD = currentModuleData; +/******/ +/******/ __webpack_require__.i.push(function (options) { +/******/ var module = options.module; +/******/ var require = createRequire(options.require, options.id); +/******/ module.hot = createModuleHotObject(options.id, module); +/******/ module.parents = currentParents; +/******/ module.children = []; +/******/ currentParents = []; +/******/ options.require = require; +/******/ }); +/******/ +/******/ __webpack_require__.hmrC = {}; +/******/ __webpack_require__.hmrI = {}; +/******/ +/******/ function createRequire(require, moduleId) { +/******/ var me = installedModules[moduleId]; +/******/ if (!me) return require; +/******/ var fn = function (request) { +/******/ if (me.hot.active) { +/******/ if (installedModules[request]) { +/******/ var parents = installedModules[request].parents; +/******/ if (parents.indexOf(moduleId) === -1) { +/******/ parents.push(moduleId); +/******/ } +/******/ } else { +/******/ currentParents = [moduleId]; +/******/ currentChildModule = request; +/******/ } +/******/ if (me.children.indexOf(request) === -1) { +/******/ me.children.push(request); +/******/ } +/******/ } else { +/******/ console.warn( +/******/ "[HMR] unexpected require(" + +/******/ request + +/******/ ") from disposed module " + +/******/ moduleId +/******/ ); +/******/ currentParents = []; +/******/ } +/******/ return require(request); +/******/ }; +/******/ var createPropertyDescriptor = function (name) { +/******/ return { +/******/ configurable: true, +/******/ enumerable: true, +/******/ get: function () { +/******/ return require[name]; +/******/ }, +/******/ set: function (value) { +/******/ require[name] = value; +/******/ } +/******/ }; +/******/ }; +/******/ for (var name in require) { +/******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { +/******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); +/******/ } +/******/ } +/******/ fn.e = function (chunkId) { +/******/ return trackBlockingPromise(require.e(chunkId)); +/******/ }; +/******/ return fn; +/******/ } +/******/ +/******/ function createModuleHotObject(moduleId, me) { +/******/ var _main = currentChildModule !== moduleId; +/******/ var hot = { +/******/ // private stuff +/******/ _acceptedDependencies: {}, +/******/ _acceptedErrorHandlers: {}, +/******/ _declinedDependencies: {}, +/******/ _selfAccepted: false, +/******/ _selfDeclined: false, +/******/ _selfInvalidated: false, +/******/ _disposeHandlers: [], +/******/ _main: _main, +/******/ _requireSelf: function () { +/******/ currentParents = me.parents.slice(); +/******/ currentChildModule = _main ? undefined : moduleId; +/******/ __webpack_require__(moduleId); +/******/ }, +/******/ +/******/ // Module API +/******/ active: true, +/******/ accept: function (dep, callback, errorHandler) { +/******/ if (dep === undefined) hot._selfAccepted = true; +/******/ else if (typeof dep === "function") hot._selfAccepted = dep; +/******/ else if (typeof dep === "object" && dep !== null) { +/******/ for (var i = 0; i < dep.length; i++) { +/******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; +/******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; +/******/ } +/******/ } else { +/******/ hot._acceptedDependencies[dep] = callback || function () {}; +/******/ hot._acceptedErrorHandlers[dep] = errorHandler; +/******/ } +/******/ }, +/******/ decline: function (dep) { +/******/ if (dep === undefined) hot._selfDeclined = true; +/******/ else if (typeof dep === "object" && dep !== null) +/******/ for (var i = 0; i < dep.length; i++) +/******/ hot._declinedDependencies[dep[i]] = true; +/******/ else hot._declinedDependencies[dep] = true; +/******/ }, +/******/ dispose: function (callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ addDisposeHandler: function (callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ removeDisposeHandler: function (callback) { +/******/ var idx = hot._disposeHandlers.indexOf(callback); +/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); +/******/ }, +/******/ invalidate: function () { +/******/ this._selfInvalidated = true; +/******/ switch (currentStatus) { +/******/ case "idle": +/******/ currentUpdateApplyHandlers = []; +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ setStatus("ready"); +/******/ break; +/******/ case "ready": +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ break; +/******/ case "prepare": +/******/ case "check": +/******/ case "dispose": +/******/ case "apply": +/******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( +/******/ moduleId +/******/ ); +/******/ break; +/******/ default: +/******/ // ignore requests in error states +/******/ break; +/******/ } +/******/ }, +/******/ +/******/ // Management API +/******/ check: hotCheck, +/******/ apply: hotApply, +/******/ status: function (l) { +/******/ if (!l) return currentStatus; +/******/ registeredStatusHandlers.push(l); +/******/ }, +/******/ addStatusHandler: function (l) { +/******/ registeredStatusHandlers.push(l); +/******/ }, +/******/ removeStatusHandler: function (l) { +/******/ var idx = registeredStatusHandlers.indexOf(l); +/******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); +/******/ }, +/******/ +/******/ //inherit from previous dispose call +/******/ data: currentModuleData[moduleId] +/******/ }; +/******/ currentChildModule = undefined; +/******/ return hot; +/******/ } +/******/ +/******/ function setStatus(newStatus) { +/******/ currentStatus = newStatus; +/******/ var results = []; +/******/ +/******/ for (var i = 0; i < registeredStatusHandlers.length; i++) +/******/ results[i] = registeredStatusHandlers[i].call(null, newStatus); +/******/ +/******/ return Promise.all(results); +/******/ } +/******/ +/******/ function unblock() { +/******/ if (--blockingPromises === 0) { +/******/ setStatus("ready").then(function () { +/******/ if (blockingPromises === 0) { +/******/ var list = blockingPromisesWaiting; +/******/ blockingPromisesWaiting = []; +/******/ for (var i = 0; i < list.length; i++) { +/******/ list[i](); +/******/ } +/******/ } +/******/ }); +/******/ } +/******/ } +/******/ +/******/ function trackBlockingPromise(promise) { +/******/ switch (currentStatus) { +/******/ case "ready": +/******/ setStatus("prepare"); +/******/ /* fallthrough */ +/******/ case "prepare": +/******/ blockingPromises++; +/******/ promise.then(unblock, unblock); +/******/ return promise; +/******/ default: +/******/ return promise; +/******/ } +/******/ } +/******/ +/******/ function waitForBlockingPromises(fn) { +/******/ if (blockingPromises === 0) return fn(); +/******/ return new Promise(function (resolve) { +/******/ blockingPromisesWaiting.push(function () { +/******/ resolve(fn()); +/******/ }); +/******/ }); +/******/ } +/******/ +/******/ function hotCheck(applyOnUpdate) { +/******/ if (currentStatus !== "idle") { +/******/ throw new Error("check() is only allowed in idle status"); +/******/ } +/******/ return setStatus("check") +/******/ .then(__webpack_require__.hmrM) +/******/ .then(function (update) { +/******/ if (!update) { +/******/ return setStatus(applyInvalidatedModules() ? "ready" : "idle").then( +/******/ function () { +/******/ return null; +/******/ } +/******/ ); +/******/ } +/******/ +/******/ return setStatus("prepare").then(function () { +/******/ var updatedModules = []; +/******/ currentUpdateApplyHandlers = []; +/******/ +/******/ return Promise.all( +/******/ Object.keys(__webpack_require__.hmrC).reduce(function ( +/******/ promises, +/******/ key +/******/ ) { +/******/ __webpack_require__.hmrC[key]( +/******/ update.c, +/******/ update.r, +/******/ update.m, +/******/ promises, +/******/ currentUpdateApplyHandlers, +/******/ updatedModules +/******/ ); +/******/ return promises; +/******/ }, +/******/ []) +/******/ ).then(function () { +/******/ return waitForBlockingPromises(function () { +/******/ if (applyOnUpdate) { +/******/ return internalApply(applyOnUpdate); +/******/ } else { +/******/ return setStatus("ready").then(function () { +/******/ return updatedModules; +/******/ }); +/******/ } +/******/ }); +/******/ }); +/******/ }); +/******/ }); +/******/ } +/******/ +/******/ function hotApply(options) { +/******/ if (currentStatus !== "ready") { +/******/ return Promise.resolve().then(function () { +/******/ throw new Error( +/******/ "apply() is only allowed in ready status (state: " + +/******/ currentStatus + +/******/ ")" +/******/ ); +/******/ }); +/******/ } +/******/ return internalApply(options); +/******/ } +/******/ +/******/ function internalApply(options) { +/******/ options = options || {}; +/******/ +/******/ applyInvalidatedModules(); +/******/ +/******/ var results = currentUpdateApplyHandlers.map(function (handler) { +/******/ return handler(options); +/******/ }); +/******/ currentUpdateApplyHandlers = undefined; +/******/ +/******/ var errors = results +/******/ .map(function (r) { +/******/ return r.error; +/******/ }) +/******/ .filter(Boolean); +/******/ +/******/ if (errors.length > 0) { +/******/ return setStatus("abort").then(function () { +/******/ throw errors[0]; +/******/ }); +/******/ } +/******/ +/******/ // Now in "dispose" phase +/******/ var disposePromise = setStatus("dispose"); +/******/ +/******/ results.forEach(function (result) { +/******/ if (result.dispose) result.dispose(); +/******/ }); +/******/ +/******/ // Now in "apply" phase +/******/ var applyPromise = setStatus("apply"); +/******/ +/******/ var error; +/******/ var reportError = function (err) { +/******/ if (!error) error = err; +/******/ }; +/******/ +/******/ var outdatedModules = []; +/******/ results.forEach(function (result) { +/******/ if (result.apply) { +/******/ var modules = result.apply(reportError); +/******/ if (modules) { +/******/ for (var i = 0; i < modules.length; i++) { +/******/ outdatedModules.push(modules[i]); +/******/ } +/******/ } +/******/ } +/******/ }); +/******/ +/******/ return Promise.all([disposePromise, applyPromise]).then(function () { +/******/ // handle errors in accept handlers and self accepted module load +/******/ if (error) { +/******/ return setStatus("fail").then(function () { +/******/ throw error; +/******/ }); +/******/ } +/******/ +/******/ if (queuedInvalidatedModules) { +/******/ return internalApply(options).then(function (list) { +/******/ outdatedModules.forEach(function (moduleId) { +/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); +/******/ }); +/******/ return list; +/******/ }); +/******/ } +/******/ +/******/ return setStatus("idle").then(function () { +/******/ return outdatedModules; +/******/ }); +/******/ }); +/******/ } +/******/ +/******/ function applyInvalidatedModules() { +/******/ if (queuedInvalidatedModules) { +/******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ queuedInvalidatedModules.forEach(function (moduleId) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ }); +/******/ queuedInvalidatedModules = undefined; +/******/ return true; +/******/ } +/******/ } +/******/ })(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ (() => { +/******/ __webpack_require__.p = "/_next/"; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || { +/******/ "edge-runtime-webpack": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ var currentUpdatedModulesList; +/******/ var waitingUpdateResolves = {}; +/******/ function loadUpdateChunk(chunkId, updatedModulesList) { +/******/ currentUpdatedModulesList = updatedModulesList; +/******/ return new Promise((resolve, reject) => { +/******/ waitingUpdateResolves[chunkId] = resolve; +/******/ // start update chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = (event) => { +/******/ if(waitingUpdateResolves[chunkId]) { +/******/ waitingUpdateResolves[chunkId] = undefined +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ reject(error); +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded); +/******/ }); +/******/ } +/******/ +/******/ self["webpackHotUpdate_N_E"] = (chunkId, moreModules, runtime) => { +/******/ for(var moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ currentUpdate[moduleId] = moreModules[moduleId]; +/******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); +/******/ } +/******/ } +/******/ if(runtime) currentUpdateRuntime.push(runtime); +/******/ if(waitingUpdateResolves[chunkId]) { +/******/ waitingUpdateResolves[chunkId](); +/******/ waitingUpdateResolves[chunkId] = undefined; +/******/ } +/******/ }; +/******/ +/******/ var currentUpdateChunks; +/******/ var currentUpdate; +/******/ var currentUpdateRemovedChunks; +/******/ var currentUpdateRuntime; +/******/ function applyHandler(options) { +/******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; +/******/ currentUpdateChunks = undefined; +/******/ function getAffectedModuleEffects(updateModuleId) { +/******/ var outdatedModules = [updateModuleId]; +/******/ var outdatedDependencies = {}; +/******/ +/******/ var queue = outdatedModules.map(function (id) { +/******/ return { +/******/ chain: [id], +/******/ id: id +/******/ }; +/******/ }); +/******/ while (queue.length > 0) { +/******/ var queueItem = queue.pop(); +/******/ var moduleId = queueItem.id; +/******/ var chain = queueItem.chain; +/******/ var module = __webpack_require__.c[moduleId]; +/******/ if ( +/******/ !module || +/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) +/******/ ) +/******/ continue; +/******/ if (module.hot._selfDeclined) { +/******/ return { +/******/ type: "self-declined", +/******/ chain: chain, +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ if (module.hot._main) { +/******/ return { +/******/ type: "unaccepted", +/******/ chain: chain, +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ for (var i = 0; i < module.parents.length; i++) { +/******/ var parentId = module.parents[i]; +/******/ var parent = __webpack_require__.c[parentId]; +/******/ if (!parent) continue; +/******/ if (parent.hot._declinedDependencies[moduleId]) { +/******/ return { +/******/ type: "declined", +/******/ chain: chain.concat([parentId]), +/******/ moduleId: moduleId, +/******/ parentId: parentId +/******/ }; +/******/ } +/******/ if (outdatedModules.indexOf(parentId) !== -1) continue; +/******/ if (parent.hot._acceptedDependencies[moduleId]) { +/******/ if (!outdatedDependencies[parentId]) +/******/ outdatedDependencies[parentId] = []; +/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); +/******/ continue; +/******/ } +/******/ delete outdatedDependencies[parentId]; +/******/ outdatedModules.push(parentId); +/******/ queue.push({ +/******/ chain: chain.concat([parentId]), +/******/ id: parentId +/******/ }); +/******/ } +/******/ } +/******/ +/******/ return { +/******/ type: "accepted", +/******/ moduleId: updateModuleId, +/******/ outdatedModules: outdatedModules, +/******/ outdatedDependencies: outdatedDependencies +/******/ }; +/******/ } +/******/ +/******/ function addAllToSet(a, b) { +/******/ for (var i = 0; i < b.length; i++) { +/******/ var item = b[i]; +/******/ if (a.indexOf(item) === -1) a.push(item); +/******/ } +/******/ } +/******/ +/******/ // at begin all updates modules are outdated +/******/ // the "outdated" status can propagate to parents if they don't accept the children +/******/ var outdatedDependencies = {}; +/******/ var outdatedModules = []; +/******/ var appliedUpdate = {}; +/******/ +/******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { +/******/ console.warn( +/******/ "[HMR] unexpected require(" + module.id + ") to disposed module" +/******/ ); +/******/ }; +/******/ +/******/ for (var moduleId in currentUpdate) { +/******/ if (__webpack_require__.o(currentUpdate, moduleId)) { +/******/ var newModuleFactory = currentUpdate[moduleId]; +/******/ /** @type {TODO} */ +/******/ var result; +/******/ if (newModuleFactory) { +/******/ result = getAffectedModuleEffects(moduleId); +/******/ } else { +/******/ result = { +/******/ type: "disposed", +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ /** @type {Error|false} */ +/******/ var abortError = false; +/******/ var doApply = false; +/******/ var doDispose = false; +/******/ var chainInfo = ""; +/******/ if (result.chain) { +/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); +/******/ } +/******/ switch (result.type) { +/******/ case "self-declined": +/******/ if (options.onDeclined) options.onDeclined(result); +/******/ if (!options.ignoreDeclined) +/******/ abortError = new Error( +/******/ "Aborted because of self decline: " + +/******/ result.moduleId + +/******/ chainInfo +/******/ ); +/******/ break; +/******/ case "declined": +/******/ if (options.onDeclined) options.onDeclined(result); +/******/ if (!options.ignoreDeclined) +/******/ abortError = new Error( +/******/ "Aborted because of declined dependency: " + +/******/ result.moduleId + +/******/ " in " + +/******/ result.parentId + +/******/ chainInfo +/******/ ); +/******/ break; +/******/ case "unaccepted": +/******/ if (options.onUnaccepted) options.onUnaccepted(result); +/******/ if (!options.ignoreUnaccepted) +/******/ abortError = new Error( +/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo +/******/ ); +/******/ break; +/******/ case "accepted": +/******/ if (options.onAccepted) options.onAccepted(result); +/******/ doApply = true; +/******/ break; +/******/ case "disposed": +/******/ if (options.onDisposed) options.onDisposed(result); +/******/ doDispose = true; +/******/ break; +/******/ default: +/******/ throw new Error("Unexception type " + result.type); +/******/ } +/******/ if (abortError) { +/******/ return { +/******/ error: abortError +/******/ }; +/******/ } +/******/ if (doApply) { +/******/ appliedUpdate[moduleId] = newModuleFactory; +/******/ addAllToSet(outdatedModules, result.outdatedModules); +/******/ for (moduleId in result.outdatedDependencies) { +/******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { +/******/ if (!outdatedDependencies[moduleId]) +/******/ outdatedDependencies[moduleId] = []; +/******/ addAllToSet( +/******/ outdatedDependencies[moduleId], +/******/ result.outdatedDependencies[moduleId] +/******/ ); +/******/ } +/******/ } +/******/ } +/******/ if (doDispose) { +/******/ addAllToSet(outdatedModules, [result.moduleId]); +/******/ appliedUpdate[moduleId] = warnUnexpectedRequire; +/******/ } +/******/ } +/******/ } +/******/ currentUpdate = undefined; +/******/ +/******/ // Store self accepted outdated modules to require them later by the module system +/******/ var outdatedSelfAcceptedModules = []; +/******/ for (var j = 0; j < outdatedModules.length; j++) { +/******/ var outdatedModuleId = outdatedModules[j]; +/******/ var module = __webpack_require__.c[outdatedModuleId]; +/******/ if ( +/******/ module && +/******/ (module.hot._selfAccepted || module.hot._main) && +/******/ // removed self-accepted modules should not be required +/******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && +/******/ // when called invalidate self-accepting is not possible +/******/ !module.hot._selfInvalidated +/******/ ) { +/******/ outdatedSelfAcceptedModules.push({ +/******/ module: outdatedModuleId, +/******/ require: module.hot._requireSelf, +/******/ errorHandler: module.hot._selfAccepted +/******/ }); +/******/ } +/******/ } +/******/ +/******/ var moduleOutdatedDependencies; +/******/ +/******/ return { +/******/ dispose: function () { +/******/ currentUpdateRemovedChunks.forEach(function (chunkId) { +/******/ delete installedChunks[chunkId]; +/******/ }); +/******/ currentUpdateRemovedChunks = undefined; +/******/ +/******/ var idx; +/******/ var queue = outdatedModules.slice(); +/******/ while (queue.length > 0) { +/******/ var moduleId = queue.pop(); +/******/ var module = __webpack_require__.c[moduleId]; +/******/ if (!module) continue; +/******/ +/******/ var data = {}; +/******/ +/******/ // Call dispose handlers +/******/ var disposeHandlers = module.hot._disposeHandlers; +/******/ for (j = 0; j < disposeHandlers.length; j++) { +/******/ disposeHandlers[j].call(null, data); +/******/ } +/******/ __webpack_require__.hmrD[moduleId] = data; +/******/ +/******/ // disable module (this disables requires from this module) +/******/ module.hot.active = false; +/******/ +/******/ // remove module from cache +/******/ delete __webpack_require__.c[moduleId]; +/******/ +/******/ // when disposing there is no need to call dispose handler +/******/ delete outdatedDependencies[moduleId]; +/******/ +/******/ // remove "parents" references from all children +/******/ for (j = 0; j < module.children.length; j++) { +/******/ var child = __webpack_require__.c[module.children[j]]; +/******/ if (!child) continue; +/******/ idx = child.parents.indexOf(moduleId); +/******/ if (idx >= 0) { +/******/ child.parents.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ +/******/ // remove outdated dependency from module children +/******/ var dependency; +/******/ for (var outdatedModuleId in outdatedDependencies) { +/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { +/******/ module = __webpack_require__.c[outdatedModuleId]; +/******/ if (module) { +/******/ moduleOutdatedDependencies = +/******/ outdatedDependencies[outdatedModuleId]; +/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ dependency = moduleOutdatedDependencies[j]; +/******/ idx = module.children.indexOf(dependency); +/******/ if (idx >= 0) module.children.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ }, +/******/ apply: function (reportError) { +/******/ // insert new code +/******/ for (var updateModuleId in appliedUpdate) { +/******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { +/******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; +/******/ } +/******/ } +/******/ +/******/ // run new runtime modules +/******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { +/******/ currentUpdateRuntime[i](__webpack_require__); +/******/ } +/******/ +/******/ // call accept handlers +/******/ for (var outdatedModuleId in outdatedDependencies) { +/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { +/******/ var module = __webpack_require__.c[outdatedModuleId]; +/******/ if (module) { +/******/ moduleOutdatedDependencies = +/******/ outdatedDependencies[outdatedModuleId]; +/******/ var callbacks = []; +/******/ var errorHandlers = []; +/******/ var dependenciesForCallbacks = []; +/******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ var dependency = moduleOutdatedDependencies[j]; +/******/ var acceptCallback = +/******/ module.hot._acceptedDependencies[dependency]; +/******/ var errorHandler = +/******/ module.hot._acceptedErrorHandlers[dependency]; +/******/ if (acceptCallback) { +/******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; +/******/ callbacks.push(acceptCallback); +/******/ errorHandlers.push(errorHandler); +/******/ dependenciesForCallbacks.push(dependency); +/******/ } +/******/ } +/******/ for (var k = 0; k < callbacks.length; k++) { +/******/ try { +/******/ callbacks[k].call(null, moduleOutdatedDependencies); +/******/ } catch (err) { +/******/ if (typeof errorHandlers[k] === "function") { +/******/ try { +/******/ errorHandlers[k](err, { +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k] +/******/ }); +/******/ } catch (err2) { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "accept-error-handler-errored", +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k], +/******/ error: err2, +/******/ originalError: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err2); +/******/ reportError(err); +/******/ } +/******/ } +/******/ } else { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "accept-errored", +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k], +/******/ error: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ // Load self accepted modules +/******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { +/******/ var item = outdatedSelfAcceptedModules[o]; +/******/ var moduleId = item.module; +/******/ try { +/******/ item.require(moduleId); +/******/ } catch (err) { +/******/ if (typeof item.errorHandler === "function") { +/******/ try { +/******/ item.errorHandler(err, { +/******/ moduleId: moduleId, +/******/ module: __webpack_require__.c[moduleId] +/******/ }); +/******/ } catch (err2) { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "self-accept-error-handler-errored", +/******/ moduleId: moduleId, +/******/ error: err2, +/******/ originalError: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err2); +/******/ reportError(err); +/******/ } +/******/ } +/******/ } else { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "self-accept-errored", +/******/ moduleId: moduleId, +/******/ error: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ return outdatedModules; +/******/ } +/******/ }; +/******/ } +/******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { +/******/ if (!currentUpdate) { +/******/ currentUpdate = {}; +/******/ currentUpdateRuntime = []; +/******/ currentUpdateRemovedChunks = []; +/******/ applyHandlers.push(applyHandler); +/******/ } +/******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { +/******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; +/******/ } +/******/ }; +/******/ __webpack_require__.hmrC.jsonp = function ( +/******/ chunkIds, +/******/ removedChunks, +/******/ removedModules, +/******/ promises, +/******/ applyHandlers, +/******/ updatedModulesList +/******/ ) { +/******/ applyHandlers.push(applyHandler); +/******/ currentUpdateChunks = {}; +/******/ currentUpdateRemovedChunks = removedChunks; +/******/ currentUpdate = removedModules.reduce(function (obj, key) { +/******/ obj[key] = false; +/******/ return obj; +/******/ }, {}); +/******/ currentUpdateRuntime = []; +/******/ chunkIds.forEach(function (chunkId) { +/******/ if ( +/******/ __webpack_require__.o(installedChunks, chunkId) && +/******/ installedChunks[chunkId] !== undefined +/******/ ) { +/******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); +/******/ currentUpdateChunks[chunkId] = true; +/******/ } else { +/******/ currentUpdateChunks[chunkId] = false; +/******/ } +/******/ }); +/******/ if (__webpack_require__.f) { +/******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { +/******/ if ( +/******/ currentUpdateChunks && +/******/ __webpack_require__.o(currentUpdateChunks, chunkId) && +/******/ !currentUpdateChunks[chunkId] +/******/ ) { +/******/ promises.push(loadUpdateChunk(chunkId)); +/******/ currentUpdateChunks[chunkId] = true; +/******/ } +/******/ }; +/******/ } +/******/ }; +/******/ +/******/ __webpack_require__.hmrM = () => { +/******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); +/******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => { +/******/ if(response.status === 404) return; // no update available +/******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); +/******/ return response.json(); +/******/ }); +/******/ }; +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // module cache are used so entry inlining is disabled +/******/ +/******/ })() +; \ No newline at end of file diff --git a/.next/server/middleware-build-manifest.js b/.next/server/middleware-build-manifest.js new file mode 100644 index 0000000..c7ad621 --- /dev/null +++ b/.next/server/middleware-build-manifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST={"polyfillFiles":["static/chunks/polyfills.js"],"devFiles":[],"ampDevFiles":[],"lowPriorityFiles":["static/development/_buildManifest.js","static/development/_ssgManifest.js"],"rootMainFiles":["static/chunks/webpack.js","static/chunks/main-app.js"],"pages":{"/_app":[]},"ampFirstPages":[]} \ No newline at end of file diff --git a/.next/server/middleware-manifest.json b/.next/server/middleware-manifest.json new file mode 100644 index 0000000..bca02f7 --- /dev/null +++ b/.next/server/middleware-manifest.json @@ -0,0 +1,25 @@ +{ + "sortedMiddleware": [ + "/" + ], + "middleware": { + "/": { + "files": [ + "server/edge-runtime-webpack.js", + "server/middleware.js" + ], + "name": "middleware", + "page": "/", + "matchers": [ + { + "regexp": "^/.*$", + "originalSource": "/:path*" + } + ], + "wasm": [], + "assets": [] + } + }, + "functions": {}, + "version": 2 +} \ No newline at end of file diff --git a/.next/server/middleware-react-loadable-manifest.js b/.next/server/middleware-react-loadable-manifest.js new file mode 100644 index 0000000..ca34f09 --- /dev/null +++ b/.next/server/middleware-react-loadable-manifest.js @@ -0,0 +1 @@ +self.__REACT_LOADABLE_MANIFEST="{}" \ No newline at end of file diff --git a/.next/server/middleware.js b/.next/server/middleware.js new file mode 100644 index 0000000..620c44d --- /dev/null +++ b/.next/server/middleware.js @@ -0,0 +1,1294 @@ +// 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([["middleware"],{ + +/***/ "node:async_hooks": +/*!***********************************!*\ + !*** external "node:async_hooks" ***! + \***********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("node:async_hooks"); + +/***/ }), + +/***/ "buffer": +/*!******************************!*\ + !*** external "node:buffer" ***! + \******************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("node:buffer"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js?absolutePagePath=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fmiddleware.ts&page=%2Fmiddleware&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&matchers=&preferredRegion=&middlewareConfig=e30%3D!": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js?absolutePagePath=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fmiddleware.ts&page=%2Fmiddleware&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&matchers=&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 */ \"default\": () => (/* binding */ nHandler)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_web_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/web/globals */ \"(middleware)/./node_modules/next/dist/esm/server/web/globals.js\");\n/* harmony import */ var next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/web/adapter */ \"(middleware)/./node_modules/next/dist/esm/server/web/adapter.js\");\n/* harmony import */ var _middleware_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./middleware.ts */ \"(middleware)/./middleware.ts\");\n\n\n// Import the userland code.\n\nconst mod = {\n ..._middleware_ts__WEBPACK_IMPORTED_MODULE_2__\n};\nconst handler = mod.middleware || mod.default;\nconst page = \"/middleware\";\nif (typeof handler !== \"function\") {\n throw new Error(`The Middleware \"${page}\" must export a \\`middleware\\` or a \\`default\\` function`);\n}\nfunction nHandler(opts) {\n return (0,next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_1__.adapter)({\n ...opts,\n page,\n handler\n });\n}\n\n//# sourceMappingURL=middleware.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1taWRkbGV3YXJlLWxvYWRlci5qcz9hYnNvbHV0ZVBhZ2VQYXRoPSUyRlVzZXJzJTJGcGF3YW5saXZlJTJGUHJvZ3JhbW1pbmclMjAlMkZ0aW1ldGFibGUtYXBwJTJGbWlkZGxld2FyZS50cyZwYWdlPSUyRm1pZGRsZXdhcmUmcm9vdERpcj0lMkZVc2VycyUyRnBhd2FubGl2ZSUyRlByb2dyYW1taW5nJTIwJTJGdGltZXRhYmxlLWFwcCZtYXRjaGVycz0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFzQztBQUNpQjtBQUN2RDtBQUN3QztBQUN4QztBQUNBLE9BQU8sMkNBQUk7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxLQUFLO0FBQzVDO0FBQ2U7QUFDZixXQUFXLHFFQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvP2YzMGMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwibmV4dC9kaXN0L3NlcnZlci93ZWIvZ2xvYmFsc1wiO1xuaW1wb3J0IHsgYWRhcHRlciB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9hZGFwdGVyXCI7XG4vLyBJbXBvcnQgdGhlIHVzZXJsYW5kIGNvZGUuXG5pbXBvcnQgKiBhcyBfbW9kIGZyb20gXCIuL21pZGRsZXdhcmUudHNcIjtcbmNvbnN0IG1vZCA9IHtcbiAgICAuLi5fbW9kXG59O1xuY29uc3QgaGFuZGxlciA9IG1vZC5taWRkbGV3YXJlIHx8IG1vZC5kZWZhdWx0O1xuY29uc3QgcGFnZSA9IFwiL21pZGRsZXdhcmVcIjtcbmlmICh0eXBlb2YgaGFuZGxlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgTWlkZGxld2FyZSBcIiR7cGFnZX1cIiBtdXN0IGV4cG9ydCBhIFxcYG1pZGRsZXdhcmVcXGAgb3IgYSBcXGBkZWZhdWx0XFxgIGZ1bmN0aW9uYCk7XG59XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBuSGFuZGxlcihvcHRzKSB7XG4gICAgcmV0dXJuIGFkYXB0ZXIoe1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICBwYWdlLFxuICAgICAgICBoYW5kbGVyXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1pZGRsZXdhcmUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js?absolutePagePath=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fmiddleware.ts&page=%2Fmiddleware&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&matchers=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(middleware)/./middleware.ts": +/*!***********************!*\ + !*** ./middleware.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 */ config: () => (/* binding */ config),\n/* harmony export */ middleware: () => (/* binding */ middleware)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_web_exports_next_response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/web/exports/next-response */ \"(middleware)/./node_modules/next/dist/esm/server/web/exports/next-response.js\");\n/* harmony import */ var _utils_supabase_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/supabase/middleware */ \"(middleware)/./utils/supabase/middleware.ts\");\n\n\nasync function middleware(request) {\n try {\n // This `try/catch` block is only here for the interactive tutorial.\n // Feel free to remove once you have Supabase connected.\n const { supabase, response } = (0,_utils_supabase_middleware__WEBPACK_IMPORTED_MODULE_1__.createClient)(request);\n // Refresh session if expired - required for Server Components\n // https://supabase.com/docs/guides/auth/server-side/nextjs\n await supabase.auth.getUser();\n return response;\n } catch (e) {\n // If you are here, a Supabase client could not be created!\n // This is likely because you have not set up environment variables.\n // Check out http://localhost:3000 for Next Steps.\n return next_dist_server_web_exports_next_response__WEBPACK_IMPORTED_MODULE_0__[\"default\"].next({\n request: {\n headers: request.headers\n }\n });\n }\n}\nconst config = {\n matcher: [\n /*\n * Match all request paths except for the ones starting with:\n * - _next/static (static files)\n * - _next/image (image optimization files)\n * - favicon.ico (favicon file)\n * Feel free to modify this pattern to include more paths.\n */ \"/((?!_next/static|_next/image|favicon.ico).*)\"\n ]\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbWlkZGxld2FyZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZEO0FBQ0Y7QUFFcEQsZUFBZUUsV0FBV0MsT0FBb0I7SUFDbkQsSUFBSTtRQUNGLG9FQUFvRTtRQUNwRSx3REFBd0Q7UUFDeEQsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFFBQVEsRUFBRSxHQUFHSix3RUFBWUEsQ0FBQ0U7UUFFNUMsOERBQThEO1FBQzlELDJEQUEyRDtRQUMzRCxNQUFNQyxTQUFTRSxJQUFJLENBQUNDLE9BQU87UUFFM0IsT0FBT0Y7SUFDVCxFQUFFLE9BQU9HLEdBQUc7UUFDViwyREFBMkQ7UUFDM0Qsb0VBQW9FO1FBQ3BFLGtEQUFrRDtRQUNsRCxPQUFPUixrRkFBWUEsQ0FBQ1MsSUFBSSxDQUFDO1lBQ3ZCTixTQUFTO2dCQUNQTyxTQUFTUCxRQUFRTyxPQUFPO1lBQzFCO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sTUFBTUMsU0FBUztJQUNwQkMsU0FBUztRQUNQOzs7Ozs7S0FNQyxHQUNEO0tBQ0Q7QUFDSCxFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL21pZGRsZXdhcmUudHM/NDIyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXh0UmVzcG9uc2UsIHR5cGUgTmV4dFJlcXVlc3QgfSBmcm9tIFwibmV4dC9zZXJ2ZXJcIjtcbmltcG9ydCB7IGNyZWF0ZUNsaWVudCB9IGZyb20gXCJAL3V0aWxzL3N1cGFiYXNlL21pZGRsZXdhcmVcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1pZGRsZXdhcmUocmVxdWVzdDogTmV4dFJlcXVlc3QpIHtcbiAgdHJ5IHtcbiAgICAvLyBUaGlzIGB0cnkvY2F0Y2hgIGJsb2NrIGlzIG9ubHkgaGVyZSBmb3IgdGhlIGludGVyYWN0aXZlIHR1dG9yaWFsLlxuICAgIC8vIEZlZWwgZnJlZSB0byByZW1vdmUgb25jZSB5b3UgaGF2ZSBTdXBhYmFzZSBjb25uZWN0ZWQuXG4gICAgY29uc3QgeyBzdXBhYmFzZSwgcmVzcG9uc2UgfSA9IGNyZWF0ZUNsaWVudChyZXF1ZXN0KTtcblxuICAgIC8vIFJlZnJlc2ggc2Vzc2lvbiBpZiBleHBpcmVkIC0gcmVxdWlyZWQgZm9yIFNlcnZlciBDb21wb25lbnRzXG4gICAgLy8gaHR0cHM6Ly9zdXBhYmFzZS5jb20vZG9jcy9ndWlkZXMvYXV0aC9zZXJ2ZXItc2lkZS9uZXh0anNcbiAgICBhd2FpdCBzdXBhYmFzZS5hdXRoLmdldFVzZXIoKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIElmIHlvdSBhcmUgaGVyZSwgYSBTdXBhYmFzZSBjbGllbnQgY291bGQgbm90IGJlIGNyZWF0ZWQhXG4gICAgLy8gVGhpcyBpcyBsaWtlbHkgYmVjYXVzZSB5b3UgaGF2ZSBub3Qgc2V0IHVwIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICAvLyBDaGVjayBvdXQgaHR0cDovL2xvY2FsaG9zdDozMDAwIGZvciBOZXh0IFN0ZXBzLlxuICAgIHJldHVybiBOZXh0UmVzcG9uc2UubmV4dCh7XG4gICAgICByZXF1ZXN0OiB7XG4gICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgbWF0Y2hlcjogW1xuICAgIC8qXG4gICAgICogTWF0Y2ggYWxsIHJlcXVlc3QgcGF0aHMgZXhjZXB0IGZvciB0aGUgb25lcyBzdGFydGluZyB3aXRoOlxuICAgICAqIC0gX25leHQvc3RhdGljIChzdGF0aWMgZmlsZXMpXG4gICAgICogLSBfbmV4dC9pbWFnZSAoaW1hZ2Ugb3B0aW1pemF0aW9uIGZpbGVzKVxuICAgICAqIC0gZmF2aWNvbi5pY28gKGZhdmljb24gZmlsZSlcbiAgICAgKiBGZWVsIGZyZWUgdG8gbW9kaWZ5IHRoaXMgcGF0dGVybiB0byBpbmNsdWRlIG1vcmUgcGF0aHMuXG4gICAgICovXG4gICAgXCIvKCg/IV9uZXh0L3N0YXRpY3xfbmV4dC9pbWFnZXxmYXZpY29uLmljbykuKilcIixcbiAgXSxcbn07XG4iXSwibmFtZXMiOlsiTmV4dFJlc3BvbnNlIiwiY3JlYXRlQ2xpZW50IiwibWlkZGxld2FyZSIsInJlcXVlc3QiLCJzdXBhYmFzZSIsInJlc3BvbnNlIiwiYXV0aCIsImdldFVzZXIiLCJlIiwibmV4dCIsImhlYWRlcnMiLCJjb25maWciLCJtYXRjaGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./middleware.ts\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FunctionsClient: () => (/* binding */ FunctionsClient)\n/* harmony export */ });\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper */ \"(middleware)/./node_modules/@supabase/functions-js/dist/module/helper.js\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ \"(middleware)/./node_modules/@supabase/functions-js/dist/module/types.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\nclass FunctionsClient {\n constructor(url, { headers = {}, customFetch, region = _types__WEBPACK_IMPORTED_MODULE_0__.FunctionRegion.Any } = {}){\n this.url = url;\n this.headers = headers;\n this.region = region;\n this.fetch = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(customFetch);\n }\n /**\n * Updates the authorization header\n * @param token - the new jwt token sent in the authorisation header\n */ setAuth(token) {\n this.headers.Authorization = `Bearer ${token}`;\n }\n /**\n * Invokes a function\n * @param functionName - The name of the Function to invoke.\n * @param options - Options for invoking the Function.\n */ invoke(functionName, options = {}) {\n var _a;\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const { headers, method, body: functionArgs } = options;\n let _headers = {};\n let { region } = options;\n if (!region) {\n region = this.region;\n }\n if (region && region !== \"any\") {\n _headers[\"x-region\"] = region;\n }\n let body;\n if (functionArgs && (headers && !Object.prototype.hasOwnProperty.call(headers, \"Content-Type\") || !headers)) {\n if (typeof Blob !== \"undefined\" && functionArgs instanceof Blob || functionArgs instanceof ArrayBuffer) {\n // will work for File as File inherits Blob\n // also works for ArrayBuffer as it is the same underlying structure as a Blob\n _headers[\"Content-Type\"] = \"application/octet-stream\";\n body = functionArgs;\n } else if (typeof functionArgs === \"string\") {\n // plain string\n _headers[\"Content-Type\"] = \"text/plain\";\n body = functionArgs;\n } else if (typeof FormData !== \"undefined\" && functionArgs instanceof FormData) {\n // don't set content-type headers\n // Request will automatically add the right boundary value\n body = functionArgs;\n } else {\n // default, assume this is JSON\n _headers[\"Content-Type\"] = \"application/json\";\n body = JSON.stringify(functionArgs);\n }\n }\n const response = yield this.fetch(`${this.url}/${functionName}`, {\n method: method || \"POST\",\n // headers priority is (high to low):\n // 1. invoke-level headers\n // 2. client-level headers\n // 3. default Content-Type header\n headers: Object.assign(Object.assign(Object.assign({}, _headers), this.headers), headers),\n body\n }).catch((fetchError)=>{\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsFetchError(fetchError);\n });\n const isRelayError = response.headers.get(\"x-relay-error\");\n if (isRelayError && isRelayError === \"true\") {\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsRelayError(response);\n }\n if (!response.ok) {\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsHttpError(response);\n }\n let responseType = ((_a = response.headers.get(\"Content-Type\")) !== null && _a !== void 0 ? _a : \"text/plain\").split(\";\")[0].trim();\n let data;\n if (responseType === \"application/json\") {\n data = yield response.json();\n } else if (responseType === \"application/octet-stream\") {\n data = yield response.blob();\n } else if (responseType === \"multipart/form-data\") {\n data = yield response.formData();\n } else {\n // default to text\n data = yield response.text();\n }\n return {\n data,\n error: null\n };\n } catch (error) {\n return {\n data: null,\n error\n };\n }\n });\n }\n} //# sourceMappingURL=FunctionsClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9mdW5jdGlvbnMtanMvZGlzdC9tb2R1bGUvRnVuY3Rpb25zQ2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUlBLFlBQVksU0FBSyxJQUFJLFNBQUksQ0FBQ0EsU0FBUyxJQUFLLFNBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVM7SUFDbkYsU0FBU0MsTUFBTUMsS0FBSztRQUFJLE9BQU9BLGlCQUFpQkgsSUFBSUcsUUFBUSxJQUFJSCxFQUFFLFNBQVVJLE9BQU87WUFBSUEsUUFBUUQ7UUFBUTtJQUFJO0lBQzNHLE9BQU8sSUFBS0gsQ0FBQUEsS0FBTUEsQ0FBQUEsSUFBSUssT0FBTSxDQUFDLEVBQUcsU0FBVUQsT0FBTyxFQUFFRSxNQUFNO1FBQ3JELFNBQVNDLFVBQVVKLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxVQUFVUSxJQUFJLENBQUNOO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDMUYsU0FBU0MsU0FBU1IsS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFNBQVMsQ0FBQyxRQUFRLENBQUNFO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDN0YsU0FBU0YsS0FBS0ksTUFBTTtZQUFJQSxPQUFPQyxJQUFJLEdBQUdULFFBQVFRLE9BQU9ULEtBQUssSUFBSUQsTUFBTVUsT0FBT1QsS0FBSyxFQUFFVyxJQUFJLENBQUNQLFdBQVdJO1FBQVc7UUFDN0dILEtBQUssQ0FBQ1AsWUFBWUEsVUFBVWMsS0FBSyxDQUFDakIsU0FBU0MsY0FBYyxFQUFFLEdBQUdVLElBQUk7SUFDdEU7QUFDSjtBQUN3QztBQUNnRTtBQUNqRyxNQUFNWTtJQUNUQyxZQUFZQyxHQUFHLEVBQUUsRUFBRUMsVUFBVSxDQUFDLENBQUMsRUFBRUMsV0FBVyxFQUFFQyxTQUFTTixrREFBY0EsQ0FB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QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQ0MsSUFBSTtnQkFDakksSUFBSUM7Z0JBQ0osSUFBSUgsaUJBQWlCLG9CQUFvQjtvQkFDckNHLE9BQU8sTUFBTVYsU0FBU1csSUFBSTtnQkFDOUIsT0FDSyxJQUFJSixpQkFBaUIsNEJBQTRCO29CQUNsREcsT0FBTyxNQUFNVixTQUFTWSxJQUFJO2dCQUM5QixPQUNLLElBQUlMLGlCQUFpQix1QkFBdUI7b0JBQzdDRyxPQUFPLE1BQU1WLFNBQVNhLFFBQVE7Z0JBQ2xDLE9BQ0s7b0JBQ0Qsa0JBQWtCO29CQUNsQkgsT0FBTyxNQUFNVixTQUFTYyxJQUFJO2dCQUM5QjtnQkFDQSxPQUFPO29CQUFFSjtvQkFBTUssT0FBTztnQkFBSztZQUMvQixFQUNBLE9BQU9BLE9BQU87Z0JBQ1YsT0FBTztvQkFBRUwsTUFBTTtvQkFBTUs7Z0JBQU07WUFDL0I7UUFDSjtJQUNKO0FBQ0osRUFDQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9mdW5jdGlvbnMtanMvZGlzdC9tb2R1bGUvRnVuY3Rpb25zQ2xpZW50LmpzPzVjMzgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyByZXNvbHZlRmV0Y2ggfSBmcm9tICcuL2hlbHBlcic7XG5pbXBvcnQgeyBGdW5jdGlvbnNGZXRjaEVycm9yLCBGdW5jdGlvbnNIdHRwRXJyb3IsIEZ1bmN0aW9uc1JlbGF5RXJyb3IsIEZ1bmN0aW9uUmVnaW9uLCB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uc0NsaWVudCB7XG4gICAgY29uc3RydWN0b3IodXJsLCB7IGhlYWRlcnMgPSB7fSwgY3VzdG9tRmV0Y2gsIHJlZ2lvbiA9IEZ1bmN0aW9uUmVnaW9uLkFueSwgfSA9IHt9KSB7XG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICAgICAgICB0aGlzLnJlZ2lvbiA9IHJlZ2lvbjtcbiAgICAgICAgdGhpcy5mZXRjaCA9IHJlc29sdmVGZXRjaChjdXN0b21GZXRjaCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGF1dGhvcml6YXRpb24gaGVhZGVyXG4gICAgICogQHBhcmFtIHRva2VuIC0gdGhlIG5ldyBqd3QgdG9rZW4gc2VudCBpbiB0aGUgYXV0aG9yaXNhdGlvbiBoZWFkZXJcbiAgICAgKi9cbiAgICBzZXRBdXRoKHRva2VuKSB7XG4gICAgICAgIHRoaXMuaGVhZGVycy5BdXRob3JpemF0aW9uID0gYEJlYXJlciAke3Rva2VufWA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEludm9rZXMgYSBmdW5jdGlvblxuICAgICAqIEBwYXJhbSBmdW5jdGlvbk5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgRnVuY3Rpb24gdG8gaW52b2tlLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgaW52b2tpbmcgdGhlIEZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGludm9rZShmdW5jdGlvbk5hbWUsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaGVhZGVycywgbWV0aG9kLCBib2R5OiBmdW5jdGlvbkFyZ3MgfSA9IG9wdGlvbnM7XG4gICAgICAgICAgICAgICAgbGV0IF9oZWFkZXJzID0ge307XG4gICAgICAgICAgICAgICAgbGV0IHsgcmVnaW9uIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIGlmICghcmVnaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lvbiA9IHRoaXMucmVnaW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVnaW9uICYmIHJlZ2lvbiAhPT0gJ2FueScpIHtcbiAgICAgICAgICAgICAgICAgICAgX2hlYWRlcnNbJ3gtcmVnaW9uJ10gPSByZWdpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBib2R5O1xuICAgICAgICAgICAgICAgIGlmIChmdW5jdGlvbkFyZ3MgJiZcbiAgICAgICAgICAgICAgICAgICAgKChoZWFkZXJzICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgJ0NvbnRlbnQtVHlwZScpKSB8fCAhaGVhZGVycykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCh0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgZnVuY3Rpb25BcmdzIGluc3RhbmNlb2YgQmxvYikgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uQXJncyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIHdvcmsgZm9yIEZpbGUgYXMgRmlsZSBpbmhlcml0cyBCbG9iXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHdvcmtzIGZvciBBcnJheUJ1ZmZlciBhcyBpdCBpcyB0aGUgc2FtZSB1bmRlcmx5aW5nIHN0cnVjdHVyZSBhcyBhIEJsb2JcbiAgICAgICAgICAgICAgICAgICAgICAgIF9oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA9IGZ1bmN0aW9uQXJncztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgZnVuY3Rpb25BcmdzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGxhaW4gc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBfaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAndGV4dC9wbGFpbic7XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0gZnVuY3Rpb25BcmdzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBGb3JtRGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgZnVuY3Rpb25BcmdzIGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHNldCBjb250ZW50LXR5cGUgaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVxdWVzdCB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSByaWdodCBib3VuZGFyeSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA9IGZ1bmN0aW9uQXJncztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQsIGFzc3VtZSB0aGlzIGlzIEpTT05cbiAgICAgICAgICAgICAgICAgICAgICAgIF9oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShmdW5jdGlvbkFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgdGhpcy5mZXRjaChgJHt0aGlzLnVybH0vJHtmdW5jdGlvbk5hbWV9YCwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZCB8fCAnUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgcHJpb3JpdHkgaXMgKGhpZ2ggdG8gbG93KTpcbiAgICAgICAgICAgICAgICAgICAgLy8gMS4gaW52b2tlLWxldmVsIGhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgLy8gMi4gY2xpZW50LWxldmVsIGhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgLy8gMy4gZGVmYXVsdCBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBfaGVhZGVycyksIHRoaXMuaGVhZGVycyksIGhlYWRlcnMpLFxuICAgICAgICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKChmZXRjaEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGdW5jdGlvbnNGZXRjaEVycm9yKGZldGNoRXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUmVsYXlFcnJvciA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LXJlbGF5LWVycm9yJyk7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVsYXlFcnJvciAmJiBpc1JlbGF5RXJyb3IgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRnVuY3Rpb25zUmVsYXlFcnJvcihyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZ1bmN0aW9uc0h0dHBFcnJvcihyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCByZXNwb25zZVR5cGUgPSAoKF9hID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAndGV4dC9wbGFpbicpLnNwbGl0KCc7JylbMF0udHJpbSgpO1xuICAgICAgICAgICAgICAgIGxldCBkYXRhO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZVR5cGUgPT09ICdhcHBsaWNhdGlvbi9qc29uJykge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0geWllbGQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXNwb25zZVR5cGUgPT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSB5aWVsZCByZXNwb25zZS5ibG9iKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlVHlwZSA9PT0gJ211bHRpcGFydC9mb3JtLWRhdGEnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSB5aWVsZCByZXNwb25zZS5mb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byB0ZXh0XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSB5aWVsZCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GdW5jdGlvbnNDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInJlc29sdmVGZXRjaCIsIkZ1bmN0aW9uc0ZldGNoRXJyb3IiLCJGdW5jdGlvbnNIdHRwRXJyb3IiLCJGdW5jdGlvbnNSZWxheUVycm9yIiwiRnVuY3Rpb25SZWdpb24iLCJGdW5jdGlvbnNDbGllbnQiLCJjb25zdHJ1Y3RvciIsInVybCIsImhlYWRlcnMiLCJjdXN0b21GZXRjaCIsInJlZ2lvbiIsIkFueSIsImZldGNoIiwic2V0QXV0aCIsInRva2VuIiwiQXV0aG9yaXphdGlvbiIsImludm9rZSIsImZ1bmN0aW9uTmFtZSIsIm9wdGlvbnMiLCJfYSIsIm1ldGhvZCIsImJvZHkiLCJmdW5jdGlvbkFyZ3MiLCJfaGVhZGVycyIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIkJsb2IiLCJBcnJheUJ1ZmZlciIsIkZvcm1EYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsInJlc3BvbnNlIiwiYXNzaWduIiwiY2F0Y2giLCJmZXRjaEVycm9yIiwiaXNSZWxheUVycm9yIiwiZ2V0Iiwib2siLCJyZXNwb25zZVR5cGUiLCJzcGxpdCIsInRyaW0iLCJkYXRhIiwianNvbiIsImJsb2IiLCJmb3JtRGF0YSIsInRleHQiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/functions-js/dist/module/helper.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@supabase/functions-js/dist/module/helper.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveFetch: () => (/* binding */ resolveFetch)\n/* harmony export */ });\nconst resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (...args)=>Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(middleware)/./node_modules/@supabase/node-fetch/browser.js\")).then(({ default: fetch1 })=>fetch1(...args));\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n}; //# sourceMappingURL=helper.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9mdW5jdGlvbnMtanMvZGlzdC9tb2R1bGUvaGVscGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxlQUFlLENBQUNDO0lBQ3pCLElBQUlDO0lBQ0osSUFBSUQsYUFBYTtRQUNiQyxTQUFTRDtJQUNiLE9BQ0ssSUFBSSxPQUFPRSxVQUFVLGFBQWE7UUFDbkNELFNBQVMsQ0FBQyxHQUFHRSxPQUFTLCtLQUFPLENBQXdCQyxJQUFJLENBQUMsQ0FBQyxFQUFFQyxTQUFTSCxNQUFLLEVBQUUsR0FBS0EsVUFBU0M7SUFDL0YsT0FDSztRQUNERixTQUFTQztJQUNiO0lBQ0EsT0FBTyxDQUFDLEdBQUdDLE9BQVNGLFVBQVVFO0FBQ2xDLEVBQUUsQ0FDRixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9mdW5jdGlvbnMtanMvZGlzdC9tb2R1bGUvaGVscGVyLmpzP2I2OTUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHJlc29sdmVGZXRjaCA9IChjdXN0b21GZXRjaCkgPT4ge1xuICAgIGxldCBfZmV0Y2g7XG4gICAgaWYgKGN1c3RvbUZldGNoKSB7XG4gICAgICAgIF9mZXRjaCA9IGN1c3RvbUZldGNoO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZmV0Y2ggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIF9mZXRjaCA9ICguLi5hcmdzKSA9PiBpbXBvcnQoJ0BzdXBhYmFzZS9ub2RlLWZldGNoJykudGhlbigoeyBkZWZhdWx0OiBmZXRjaCB9KSA9PiBmZXRjaCguLi5hcmdzKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBfZmV0Y2ggPSBmZXRjaDtcbiAgICB9XG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiBfZmV0Y2goLi4uYXJncyk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJyZXNvbHZlRmV0Y2giLCJjdXN0b21GZXRjaCIsIl9mZXRjaCIsImZldGNoIiwiYXJncyIsInRoZW4iLCJkZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/functions-js/dist/module/helper.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/functions-js/dist/module/types.js": +/*!******************************************************************!*\ + !*** ./node_modules/@supabase/functions-js/dist/module/types.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FunctionRegion: () => (/* binding */ FunctionRegion),\n/* harmony export */ FunctionsError: () => (/* binding */ FunctionsError),\n/* harmony export */ FunctionsFetchError: () => (/* binding */ FunctionsFetchError),\n/* harmony export */ FunctionsHttpError: () => (/* binding */ FunctionsHttpError),\n/* harmony export */ FunctionsRelayError: () => (/* binding */ FunctionsRelayError)\n/* harmony export */ });\nclass FunctionsError extends Error {\n constructor(message, name = \"FunctionsError\", context){\n super(message);\n this.name = name;\n this.context = context;\n }\n}\nclass FunctionsFetchError extends FunctionsError {\n constructor(context){\n super(\"Failed to send a request to the Edge Function\", \"FunctionsFetchError\", context);\n }\n}\nclass FunctionsRelayError extends FunctionsError {\n constructor(context){\n super(\"Relay Error invoking the Edge Function\", \"FunctionsRelayError\", context);\n }\n}\nclass FunctionsHttpError extends FunctionsError {\n constructor(context){\n super(\"Edge Function returned a non-2xx status code\", \"FunctionsHttpError\", context);\n }\n}\n// Define the enum for the 'region' property\nvar FunctionRegion;\n(function(FunctionRegion) {\n FunctionRegion[\"Any\"] = \"any\";\n FunctionRegion[\"ApNortheast1\"] = \"ap-northeast-1\";\n FunctionRegion[\"ApNortheast2\"] = \"ap-northeast-2\";\n FunctionRegion[\"ApSouth1\"] = \"ap-south-1\";\n FunctionRegion[\"ApSoutheast1\"] = \"ap-southeast-1\";\n FunctionRegion[\"ApSoutheast2\"] = \"ap-southeast-2\";\n FunctionRegion[\"CaCentral1\"] = \"ca-central-1\";\n FunctionRegion[\"EuCentral1\"] = \"eu-central-1\";\n FunctionRegion[\"EuWest1\"] = \"eu-west-1\";\n FunctionRegion[\"EuWest2\"] = \"eu-west-2\";\n FunctionRegion[\"EuWest3\"] = \"eu-west-3\";\n FunctionRegion[\"SaEast1\"] = \"sa-east-1\";\n FunctionRegion[\"UsEast1\"] = \"us-east-1\";\n FunctionRegion[\"UsWest1\"] = \"us-west-1\";\n FunctionRegion[\"UsWest2\"] = \"us-west-2\";\n})(FunctionRegion || (FunctionRegion = {})); //# sourceMappingURL=types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9mdW5jdGlvbnMtanMvZGlzdC9tb2R1bGUvdHlwZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBTyxNQUFNQSx1QkFBdUJDO0lBQ2hDQyxZQUFZQyxPQUFPLEVBQUVDLE9BQU8sZ0JBQWdCLEVBQUVDLE9BQU8sQ0FBRTtRQUNuRCxLQUFLLENBQUNGO1FBQ04sSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO0lBQ25CO0FBQ0o7QUFDTyxNQUFNQyw0QkFBNEJOO0lBQ3JDRSxZQUFZRyxPQUFPLENBQUU7UUFDakIsS0FBSyxDQUFDLGlEQUFpRCx1QkFBdUJBO0lBQ2xGO0FBQ0o7QUFDTyxNQUFNRSw0QkFBNEJQO0lBQ3JDRSxZQUFZRyxPQUFPLENBQUU7UUFDakIsS0FBSyxDQUFDLDBDQUEwQyx1QkFBdUJBO0lBQzNFO0FBQ0o7QUFDTyxNQUFNRywyQkFBMkJSO0lBQ3BDRSxZQUFZRyxPQUFPLENBQUU7UUFDakIsS0FBSyxDQUFDLGdEQUFnRCxzQkFBc0JBO0lBQ2hGO0FBQ0o7QUFDQSw0Q0FBNEM7QUFDckMsSUFBSUksZUFBZTtBQUN6QixVQUFVQSxjQUFjO0lBQ3JCQSxjQUFjLENBQUMsTUFBTSxHQUFHO0lBQ3hCQSxjQUFjLENBQUMsZUFBZSxHQUFHO0lBQ2pDQSxjQUFjLENBQUMsZUFBZSxHQUFHO0lBQ2pDQSxjQUFjLENBQUMsV0FBVyxHQUFHO0lBQzdCQSxjQUFjLENBQUMsZUFBZSxHQUFHO0lBQ2pDQSxjQUFjLENBQUMsZUFBZSxHQUFHO0lBQ2pDQSxjQUFjLENBQUMsYUFBYSxHQUFHO0lBQy9CQSxjQUFjLENBQUMsYUFBYSxHQUFHO0lBQy9CQSxjQUFjLENBQUMsVUFBVSxHQUFHO0lBQzVCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0lBQzVCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0lBQzVCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0lBQzVCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0lBQzVCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0lBQzVCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0FBQ2hDLEdBQUdBLGtCQUFtQkEsQ0FBQUEsaUJBQWlCLENBQUMsS0FDeEMsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZnVuY3Rpb25zLWpzL2Rpc3QvbW9kdWxlL3R5cGVzLmpzPzY4OGUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEZ1bmN0aW9uc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIG5hbWUgPSAnRnVuY3Rpb25zRXJyb3InLCBjb250ZXh0KSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNGZXRjaEVycm9yIGV4dGVuZHMgRnVuY3Rpb25zRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcbiAgICAgICAgc3VwZXIoJ0ZhaWxlZCB0byBzZW5kIGEgcmVxdWVzdCB0byB0aGUgRWRnZSBGdW5jdGlvbicsICdGdW5jdGlvbnNGZXRjaEVycm9yJywgY29udGV4dCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uc1JlbGF5RXJyb3IgZXh0ZW5kcyBGdW5jdGlvbnNFcnJvciB7XG4gICAgY29uc3RydWN0b3IoY29udGV4dCkge1xuICAgICAgICBzdXBlcignUmVsYXkgRXJyb3IgaW52b2tpbmcgdGhlIEVkZ2UgRnVuY3Rpb24nLCAnRnVuY3Rpb25zUmVsYXlFcnJvcicsIGNvbnRleHQpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNIdHRwRXJyb3IgZXh0ZW5kcyBGdW5jdGlvbnNFcnJvciB7XG4gICAgY29uc3RydWN0b3IoY29udGV4dCkge1xuICAgICAgICBzdXBlcignRWRnZSBGdW5jdGlvbiByZXR1cm5lZCBhIG5vbi0yeHggc3RhdHVzIGNvZGUnLCAnRnVuY3Rpb25zSHR0cEVycm9yJywgY29udGV4dCk7XG4gICAgfVxufVxuLy8gRGVmaW5lIHRoZSBlbnVtIGZvciB0aGUgJ3JlZ2lvbicgcHJvcGVydHlcbmV4cG9ydCB2YXIgRnVuY3Rpb25SZWdpb247XG4oZnVuY3Rpb24gKEZ1bmN0aW9uUmVnaW9uKSB7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJBbnlcIl0gPSBcImFueVwiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiQXBOb3J0aGVhc3QxXCJdID0gXCJhcC1ub3J0aGVhc3QtMVwiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiQXBOb3J0aGVhc3QyXCJdID0gXCJhcC1ub3J0aGVhc3QtMlwiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiQXBTb3V0aDFcIl0gPSBcImFwLXNvdXRoLTFcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkFwU291dGhlYXN0MVwiXSA9IFwiYXAtc291dGhlYXN0LTFcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkFwU291dGhlYXN0MlwiXSA9IFwiYXAtc291dGhlYXN0LTJcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkNhQ2VudHJhbDFcIl0gPSBcImNhLWNlbnRyYWwtMVwiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiRXVDZW50cmFsMVwiXSA9IFwiZXUtY2VudHJhbC0xXCI7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJFdVdlc3QxXCJdID0gXCJldS13ZXN0LTFcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkV1V2VzdDJcIl0gPSBcImV1LXdlc3QtMlwiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiRXVXZXN0M1wiXSA9IFwiZXUtd2VzdC0zXCI7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJTYUVhc3QxXCJdID0gXCJzYS1lYXN0LTFcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIlVzRWFzdDFcIl0gPSBcInVzLWVhc3QtMVwiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiVXNXZXN0MVwiXSA9IFwidXMtd2VzdC0xXCI7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJVc1dlc3QyXCJdID0gXCJ1cy13ZXN0LTJcIjtcbn0pKEZ1bmN0aW9uUmVnaW9uIHx8IChGdW5jdGlvblJlZ2lvbiA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD10eXBlcy5qcy5tYXAiXSwibmFtZXMiOlsiRnVuY3Rpb25zRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsIm5hbWUiLCJjb250ZXh0IiwiRnVuY3Rpb25zRmV0Y2hFcnJvciIsIkZ1bmN0aW9uc1JlbGF5RXJyb3IiLCJGdW5jdGlvbnNIdHRwRXJyb3IiLCJGdW5jdGlvblJlZ2lvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/functions-js/dist/module/types.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/AuthAdminApi.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/AuthAdminApi.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js\");\n\nconst AuthAdminApi = _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AuthAdminApi); //# sourceMappingURL=AuthAdminApi.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvQXV0aEFkbWluQXBpLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQThDO0FBQzlDLE1BQU1DLGVBQWVELHVEQUFjQTtBQUNuQyxpRUFBZUMsWUFBWUEsRUFBQyxDQUM1Qix3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvQXV0aEFkbWluQXBpLmpzPzc2NjIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdvVHJ1ZUFkbWluQXBpIGZyb20gJy4vR29UcnVlQWRtaW5BcGknO1xuY29uc3QgQXV0aEFkbWluQXBpID0gR29UcnVlQWRtaW5BcGk7XG5leHBvcnQgZGVmYXVsdCBBdXRoQWRtaW5BcGk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BdXRoQWRtaW5BcGkuanMubWFwIl0sIm5hbWVzIjpbIkdvVHJ1ZUFkbWluQXBpIiwiQXV0aEFkbWluQXBpIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/AuthAdminApi.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/AuthClient.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/AuthClient.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _GoTrueClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueClient */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js\");\n\nconst AuthClient = _GoTrueClient__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AuthClient); //# sourceMappingURL=AuthClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvQXV0aENsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEwQztBQUMxQyxNQUFNQyxhQUFhRCxxREFBWUE7QUFDL0IsaUVBQWVDLFVBQVVBLEVBQUMsQ0FDMUIsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL0F1dGhDbGllbnQuanM/NzE4NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR29UcnVlQ2xpZW50IGZyb20gJy4vR29UcnVlQ2xpZW50JztcbmNvbnN0IEF1dGhDbGllbnQgPSBHb1RydWVDbGllbnQ7XG5leHBvcnQgZGVmYXVsdCBBdXRoQ2xpZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QXV0aENsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiR29UcnVlQ2xpZW50IiwiQXV0aENsaWVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/AuthClient.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js": +/*!************************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GoTrueAdminApi)\n/* harmony export */ });\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/fetch */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/helpers */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/errors */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\");\nvar __rest = undefined && undefined.__rest || function(s, e) {\n var t = {};\n for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\nclass GoTrueAdminApi {\n constructor({ url = \"\", headers = {}, fetch }){\n this.url = url;\n this.headers = headers;\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(fetch);\n this.mfa = {\n listFactors: this._listFactors.bind(this),\n deleteFactor: this._deleteFactor.bind(this)\n };\n }\n /**\n * Removes a logged-in session.\n * @param jwt A valid, logged-in JWT.\n * @param scope The logout sope.\n */ async signOut(jwt, scope = \"global\") {\n try {\n await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"POST\", `${this.url}/logout?scope=${scope}`, {\n headers: this.headers,\n jwt,\n noResolveJson: true\n });\n return {\n data: null,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Sends an invite link to an email address.\n * @param email The email address of the user.\n * @param options Additional options to be included when inviting.\n */ async inviteUserByEmail(email, options = {}) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"POST\", `${this.url}/invite`, {\n body: {\n email,\n data: options.data\n },\n headers: this.headers,\n redirectTo: options.redirectTo,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Generates email links and OTPs to be sent via a custom email provider.\n * @param email The user's email.\n * @param options.password User password. For signup only.\n * @param options.data Optional user metadata. For signup only.\n * @param options.redirectTo The redirect url which should be appended to the generated link\n */ async generateLink(params) {\n try {\n const { options } = params, rest = __rest(params, [\n \"options\"\n ]);\n const body = Object.assign(Object.assign({}, rest), options);\n if (\"newEmail\" in rest) {\n // replace newEmail with new_email in request body\n body.new_email = rest === null || rest === void 0 ? void 0 : rest.newEmail;\n delete body[\"newEmail\"];\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"POST\", `${this.url}/admin/generate_link`, {\n body: body,\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._generateLinkResponse,\n redirectTo: options === null || options === void 0 ? void 0 : options.redirectTo\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n properties: null,\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n // User Admin API\n /**\n * Creates a new user.\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */ async createUser(attributes) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"POST\", `${this.url}/admin/users`, {\n body: attributes,\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Get a list of users.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n * @param params An object which supports `page` and `perPage` as numbers, to alter the paginated results.\n */ async listUsers(params) {\n var _a, _b, _c, _d, _e, _f, _g;\n try {\n const pagination = {\n nextPage: null,\n lastPage: 0,\n total: 0\n };\n const response = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"GET\", `${this.url}/admin/users`, {\n headers: this.headers,\n noResolveJson: true,\n query: {\n page: (_b = (_a = params === null || params === void 0 ? void 0 : params.page) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"\",\n per_page: (_d = (_c = params === null || params === void 0 ? void 0 : params.perPage) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : \"\"\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._noResolveJsonResponse\n });\n if (response.error) throw response.error;\n const users = await response.json();\n const total = (_e = response.headers.get(\"x-total-count\")) !== null && _e !== void 0 ? _e : 0;\n const links = (_g = (_f = response.headers.get(\"link\")) === null || _f === void 0 ? void 0 : _f.split(\",\")) !== null && _g !== void 0 ? _g : [];\n if (links.length > 0) {\n links.forEach((link)=>{\n const page = parseInt(link.split(\";\")[0].split(\"=\")[1].substring(0, 1));\n const rel = JSON.parse(link.split(\";\")[1].split(\"=\")[1]);\n pagination[`${rel}Page`] = page;\n });\n pagination.total = parseInt(total);\n }\n return {\n data: Object.assign(Object.assign({}, users), pagination),\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n users: []\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Get user by id.\n *\n * @param uid The user's unique identifier\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */ async getUserById(uid) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"GET\", `${this.url}/admin/users/${uid}`, {\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Updates the user data.\n *\n * @param attributes The data you want to update.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */ async updateUserById(uid, attributes) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"PUT\", `${this.url}/admin/users/${uid}`, {\n body: attributes,\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Delete a user. Requires a `service_role` key.\n *\n * @param id The user id you want to remove.\n * @param shouldSoftDelete If true, then the user will be soft-deleted (setting `deleted_at` to the current timestamp and disabling their account while preserving their data) from the auth schema.\n * Defaults to false for backward compatibility.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */ async deleteUser(id, shouldSoftDelete = false) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"DELETE\", `${this.url}/admin/users/${id}`, {\n headers: this.headers,\n body: {\n should_soft_delete: shouldSoftDelete\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n async _listFactors(params) {\n try {\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"GET\", `${this.url}/admin/users/${params.userId}/factors`, {\n headers: this.headers,\n xform: (factors)=>{\n return {\n data: {\n factors\n },\n error: null\n };\n }\n });\n return {\n data,\n error\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n async _deleteFactor(params) {\n try {\n const data = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"DELETE\", `${this.url}/admin/users/${params.userId}/factors/${params.id}`, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n} //# sourceMappingURL=GoTrueAdminApi.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvR29UcnVlQWRtaW5BcGkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUlBLFNBQVMsU0FBSyxJQUFJLFNBQUksQ0FBQ0EsTUFBTSxJQUFLLFNBQVVDLENBQUMsRUFBRUMsQ0FBQztJQUNoRCxJQUFJQyxJQUFJLENBQUM7SUFDVCxJQUFLLElBQUlDLEtBQUtILEVBQUcsSUFBSUksT0FBT0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsR0FBR0csTUFBTUYsRUFBRU8sT0FBTyxDQUFDTCxLQUFLLEdBQzlFRCxDQUFDLENBQUNDLEVBQUUsR0FBR0gsQ0FBQyxDQUFDRyxFQUFFO0lBQ2YsSUFBSUgsS0FBSyxRQUFRLE9BQU9JLE9BQU9LLHFCQUFxQixLQUFLLFlBQ3JELElBQUssSUFBSUMsSUFBSSxHQUFHUCxJQUFJQyxPQUFPSyxxQkFBcUIsQ0FBQ1QsSUFBSVUsSUFBSVAsRUFBRVEsTUFBTSxFQUFFRCxJQUFLO1FBQ3BFLElBQUlULEVBQUVPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxFQUFFLElBQUksS0FBS04sT0FBT0MsU0FBUyxDQUFDTyxvQkFBb0IsQ0FBQ0wsSUFBSSxDQUFDUCxHQUFHRyxDQUFDLENBQUNPLEVBQUUsR0FDekVSLENBQUMsQ0FBQ0MsQ0FBQyxDQUFDTyxFQUFFLENBQUMsR0FBR1YsQ0FBQyxDQUFDRyxDQUFDLENBQUNPLEVBQUUsQ0FBQztJQUN6QjtJQUNKLE9BQU9SO0FBQ1g7QUFDc0c7QUFDekQ7QUFDRjtBQUM1QixNQUFNaUI7SUFDakJDLFlBQVksRUFBRUMsTUFBTSxFQUFFLEVBQUVDLFVBQVUsQ0FBQyxDQUFDLEVBQUVDLEtBQUssRUFBRyxDQUFFO1FBQzVDLElBQUksQ0FBQ0YsR0FBRyxHQUFHQTtRQUNYLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsS0FBSyxHQUFHTiwwREFBWUEs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TyxNQUFNbkIsb0RBQVFBLENBQUMsSUFBSSxDQUFDUSxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDRixHQUFHLENBQUMsYUFBYSxFQUFFdUIsT0FBTzZDLE1BQU0sQ0FBQyxTQUFTLEVBQUU3QyxPQUFPMEMsRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDL0doRSxTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUN6QjtZQUNBLE9BQU87Z0JBQUVZO2dCQUFNQyxPQUFPO1lBQUs7UUFDL0IsRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSWpCLHdEQUFXQSxDQUFDaUIsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUQsTUFBTTtvQkFBTUM7Z0JBQU07WUFDL0I7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7QUFDSixFQUNBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9Hb1RydWVBZG1pbkFwaS5qcz9kMjk2Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IF9nZW5lcmF0ZUxpbmtSZXNwb25zZSwgX25vUmVzb2x2ZUpzb25SZXNwb25zZSwgX3JlcXVlc3QsIF91c2VyUmVzcG9uc2UsIH0gZnJvbSAnLi9saWIvZmV0Y2gnO1xuaW1wb3J0IHsgcmVzb2x2ZUZldGNoIH0gZnJvbSAnLi9saWIvaGVscGVycyc7XG5pbXBvcnQgeyBpc0F1dGhFcnJvciB9IGZyb20gJy4vbGliL2Vycm9ycyc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHb1RydWVBZG1pbkFwaSB7XG4gICAgY29uc3RydWN0b3IoeyB1cmwgPSAnJywgaGVhZGVycyA9IHt9LCBmZXRjaCwgfSkge1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgICAgICAgdGhpcy5mZXRjaCA9IHJlc29sdmVGZXRjaChmZXRjaCk7XG4gICAgICAgIHRoaXMubWZhID0ge1xuICAgICAgICAgICAgbGlzdEZhY3RvcnM6IHRoaXMuX2xpc3RGYWN0b3JzLmJpbmQodGhpcyksXG4gICAgICAgICAgICBkZWxldGVGYWN0b3I6IHRoaXMuX2RlbGV0ZUZhY3Rvci5iaW5kKHRoaXMpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgbG9nZ2VkLWluIHNlc3Npb24uXG4gICAgICogQHBhcmFtIGp3dCBBIHZhbGlkLCBsb2dnZWQtaW4gSldULlxuICAgICAqIEBwYXJhbSBzY29wZSBUaGUgbG9nb3V0IHNvcGUuXG4gICAgICovXG4gICAgYXN5bmMgc2lnbk91dChqd3QsIHNjb3BlID0gJ2dsb2JhbCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L2xvZ291dD9zY29wZT0ke3Njb3BlfWAsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgand0LFxuICAgICAgICAgICAgICAgIG5vUmVzb2x2ZUpzb246IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbmRzIGFuIGludml0ZSBsaW5rIHRvIGFuIGVtYWlsIGFkZHJlc3MuXG4gICAgICogQHBhcmFtIGVtYWlsIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBiZSBpbmNsdWRlZCB3aGVuIGludml0aW5nLlxuICAgICAqL1xuICAgIGFzeW5jIGludml0ZVVzZXJCeUVtYWlsKGVtYWlsLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9pbnZpdGVgLCB7XG4gICAgICAgICAgICAgICAgYm9keTogeyBlbWFpbCwgZGF0YTogb3B0aW9ucy5kYXRhIH0sXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86IG9wdGlvbnMucmVkaXJlY3RUbyxcbiAgICAgICAgICAgICAgICB4Zm9ybTogX3VzZXJSZXNwb25zZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGVtYWlsIGxpbmtzIGFuZCBPVFBzIHRvIGJlIHNlbnQgdmlhIGEgY3VzdG9tIGVtYWlsIHByb3ZpZGVyLlxuICAgICAqIEBwYXJhbSBlbWFpbCBUaGUgdXNlcidzIGVtYWlsLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnBhc3N3b3JkIFVzZXIgcGFzc3dvcmQuIEZvciBzaWdudXAgb25seS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kYXRhIE9wdGlvbmFsIHVzZXIgbWV0YWRhdGEuIEZvciBzaWdudXAgb25seS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWRpcmVjdFRvIFRoZSByZWRpcmVjdCB1cmwgd2hpY2ggc2hvdWxkIGJlIGFwcGVuZGVkIHRvIHRoZSBnZW5lcmF0ZWQgbGlua1xuICAgICAqL1xuICAgIGFzeW5jIGdlbmVyYXRlTGluayhwYXJhbXMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHsgb3B0aW9ucyB9ID0gcGFyYW1zLCByZXN0ID0gX19yZXN0KHBhcmFtcywgW1wib3B0aW9uc1wiXSk7XG4gICAgICAgICAgICBjb25zdCBib2R5ID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCByZXN0KSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAoJ25ld0VtYWlsJyBpbiByZXN0KSB7XG4gICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBuZXdFbWFpbCB3aXRoIG5ld19lbWFpbCBpbiByZXF1ZXN0IGJvZHlcbiAgICAgICAgICAgICAgICBib2R5Lm5ld19lbWFpbCA9IHJlc3QgPT09IG51bGwgfHwgcmVzdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzdC5uZXdFbWFpbDtcbiAgICAgICAgICAgICAgICBkZWxldGUgYm9keVsnbmV3RW1haWwnXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9hZG1pbi9nZW5lcmF0ZV9saW5rYCwge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIHhmb3JtOiBfZ2VuZXJhdGVMaW5rUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgcmVkaXJlY3RUbzogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnJlZGlyZWN0VG8sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFVzZXIgQWRtaW4gQVBJXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB1c2VyLlxuICAgICAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIGEgc2VydmVyLiBOZXZlciBleHBvc2UgeW91ciBgc2VydmljZV9yb2xlYCBrZXkgaW4gdGhlIGJyb3dzZXIuXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlVXNlcihhdHRyaWJ1dGVzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnNgLCB7XG4gICAgICAgICAgICAgICAgYm9keTogYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCBhIGxpc3Qgb2YgdXNlcnMuXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiBhIHNlcnZlci4gTmV2ZXIgZXhwb3NlIHlvdXIgYHNlcnZpY2Vfcm9sZWAga2V5IGluIHRoZSBicm93c2VyLlxuICAgICAqIEBwYXJhbSBwYXJhbXMgQW4gb2JqZWN0IHdoaWNoIHN1cHBvcnRzIGBwYWdlYCBhbmQgYHBlclBhZ2VgIGFzIG51bWJlcnMsIHRvIGFsdGVyIHRoZSBwYWdpbmF0ZWQgcmVzdWx0cy5cbiAgICAgKi9cbiAgICBhc3luYyBsaXN0VXNlcnMocGFyYW1zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB7IG5leHRQYWdlOiBudWxsLCBsYXN0UGFnZTogMCwgdG90YWw6IDAgfTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0dFVCcsIGAke3RoaXMudXJsfS9hZG1pbi91c2Vyc2AsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgbm9SZXNvbHZlSnNvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgICAgICAgICBwYWdlOiAoX2IgPSAoX2EgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMucGFnZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnLFxuICAgICAgICAgICAgICAgICAgICBwZXJfcGFnZTogKF9kID0gKF9jID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBlclBhZ2UpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50b1N0cmluZygpKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAnJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHhmb3JtOiBfbm9SZXNvbHZlSnNvblJlc3BvbnNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IpXG4gICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2UuZXJyb3I7XG4gICAgICAgICAgICBjb25zdCB1c2VycyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gKF9lID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtdG90YWwtY291bnQnKSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogMDtcbiAgICAgICAgICAgIGNvbnN0IGxpbmtzID0gKF9nID0gKF9mID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2xpbmsnKSkgPT09IG51bGwgfHwgX2YgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mLnNwbGl0KCcsJykpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IFtdO1xuICAgICAgICAgICAgaWYgKGxpbmtzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBsaW5rcy5mb3JFYWNoKChsaW5rKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChsaW5rLnNwbGl0KCc7JylbMF0uc3BsaXQoJz0nKVsxXS5zdWJzdHJpbmcoMCwgMSkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWwgPSBKU09OLnBhcnNlKGxpbmsuc3BsaXQoJzsnKVsxXS5zcGxpdCgnPScpWzFdKTtcbiAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbltgJHtyZWx9UGFnZWBdID0gcGFnZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uLnRvdGFsID0gcGFyc2VJbnQodG90YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB1c2VycyksIHBhZ2luYXRpb24pLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcnM6IFtdIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgdXNlciBieSBpZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1aWQgVGhlIHVzZXIncyB1bmlxdWUgaWRlbnRpZmllclxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gYSBzZXJ2ZXIuIE5ldmVyIGV4cG9zZSB5b3VyIGBzZXJ2aWNlX3JvbGVgIGtleSBpbiB0aGUgYnJvd3Nlci5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRVc2VyQnlJZCh1aWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnR0VUJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzLyR7dWlkfWAsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHVzZXIgZGF0YS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVzIFRoZSBkYXRhIHlvdSB3YW50IHRvIHVwZGF0ZS5cbiAgICAgKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIGEgc2VydmVyLiBOZXZlciBleHBvc2UgeW91ciBgc2VydmljZV9yb2xlYCBrZXkgaW4gdGhlIGJyb3dzZXIuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlVXNlckJ5SWQodWlkLCBhdHRyaWJ1dGVzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BVVCcsIGAke3RoaXMudXJsfS9hZG1pbi91c2Vycy8ke3VpZH1gLCB7XG4gICAgICAgICAgICAgICAgYm9keTogYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhIHVzZXIuIFJlcXVpcmVzIGEgYHNlcnZpY2Vfcm9sZWAga2V5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIFRoZSB1c2VyIGlkIHlvdSB3YW50IHRvIHJlbW92ZS5cbiAgICAgKiBAcGFyYW0gc2hvdWxkU29mdERlbGV0ZSBJZiB0cnVlLCB0aGVuIHRoZSB1c2VyIHdpbGwgYmUgc29mdC1kZWxldGVkIChzZXR0aW5nIGBkZWxldGVkX2F0YCB0byB0aGUgY3VycmVudCB0aW1lc3RhbXAgYW5kIGRpc2FibGluZyB0aGVpciBhY2NvdW50IHdoaWxlIHByZXNlcnZpbmcgdGhlaXIgZGF0YSkgZnJvbSB0aGUgYXV0aCBzY2hlbWEuXG4gICAgICogRGVmYXVsdHMgdG8gZmFsc2UgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiBhIHNlcnZlci4gTmV2ZXIgZXhwb3NlIHlvdXIgYHNlcnZpY2Vfcm9sZWAga2V5IGluIHRoZSBicm93c2VyLlxuICAgICAqL1xuICAgIGFzeW5jIGRlbGV0ZVVzZXIoaWQsIHNob3VsZFNvZnREZWxldGUgPSBmYWxzZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdERUxFVEUnLCBgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnMvJHtpZH1gLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgc2hvdWxkX3NvZnRfZGVsZXRlOiBzaG91bGRTb2Z0RGVsZXRlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIF9saXN0RmFjdG9ycyhwYXJhbXMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdHRVQnLCBgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnMvJHtwYXJhbXMudXNlcklkfS9mYWN0b3JzYCwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICB4Zm9ybTogKGZhY3RvcnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBmYWN0b3JzIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3IgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgX2RlbGV0ZUZhY3RvcihwYXJhbXMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnREVMRVRFJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzLyR7cGFyYW1zLnVzZXJJZH0vZmFjdG9ycy8ke3BhcmFtcy5pZH1gLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUdvVHJ1ZUFkbWluQXBpLmpzLm1hcCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIl9nZW5lcmF0ZUxpbmtSZXNwb25zZSIsIl9ub1Jlc29sdmVKc29uUmVzcG9uc2UiLCJfcmVxdWVzdCIsIl91c2VyUmVzcG9uc2UiLCJyZXNvbHZlRmV0Y2giLCJpc0F1dGhFcnJvciIsIkdvVHJ1ZUFkbWluQXBpIiwiY29uc3RydWN0b3IiLCJ1cmwiLCJoZWFkZXJzIiwiZmV0Y2giLCJtZmEiLCJsaXN0RmFjdG9ycyIsIl9saXN0RmFjdG9ycyIsImJpbmQiLCJkZWxldGVGYWN0b3IiLCJfZGVsZXRlRmFjdG9yIiwic2lnbk91dCIsImp3dCIsInNjb3BlIiwibm9SZXNvbHZlSnNvbiIsImRhdGEiLCJlcnJvciIsImludml0ZVVzZXJCeUVtYWlsIiwiZW1haWwiLCJvcHRpb25zIiwiYm9keSIsInJlZGlyZWN0VG8iLCJ4Zm9ybSIsInVzZXIiLCJnZW5lcmF0ZUxpbmsiLCJwYXJhbXMiLCJyZXN0IiwiYXNzaWduIiwibmV3X2VtYWlsIiwibmV3RW1haWwiLCJwcm9wZXJ0aWVzIiwiY3JlYXRlVXNlciIsImF0dHJpYnV0ZXMiLCJsaXN0VXNlcnMiLCJfYSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiX2YiLCJfZyIsInBhZ2luYXRpb24iLCJuZXh0UGFnZSIsImxhc3RQYWdlIiwidG90YWwiLCJyZXNwb25zZSIsInF1ZXJ5IiwicGFnZSIsInRvU3RyaW5nIiwicGVyX3BhZ2UiLCJwZXJQYWdlIiwidXNlcnMiLCJqc29uIiwiZ2V0IiwibGlua3MiLCJzcGxpdCIsImZvckVhY2giLCJsaW5rIiwicGFyc2VJbnQiLCJzdWJzdHJpbmciLCJyZWwiLCJKU09OIiwicGFyc2UiLCJnZXRVc2VyQnlJZCIsInVpZCIsInVwZGF0ZVVzZXJCeUlkIiwiZGVsZXRlVXNlciIsImlkIiwic2hvdWxkU29mdERlbGV0ZSIsInNob3VsZF9zb2Z0X2RlbGV0ZSIsInVzZXJJZCIsImZhY3RvcnMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GoTrueClient)\n/* harmony export */ });\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/constants */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/errors */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/fetch */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/helpers */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_local_storage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/local-storage */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/local-storage.js\");\n/* harmony import */ var _lib_polyfills__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/polyfills */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/polyfills.js\");\n/* harmony import */ var _lib_version__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/version */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/version.js\");\n/* harmony import */ var _lib_locks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/locks */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js\");\n\n\n\n\n\n\n\n\n\n(0,_lib_polyfills__WEBPACK_IMPORTED_MODULE_6__.polyfillGlobalThis)(); // Make \"globalThis\" available\nconst DEFAULT_OPTIONS = {\n url: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.GOTRUE_URL,\n storageKey: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEY,\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n headers: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_HEADERS,\n flowType: \"implicit\",\n debug: false\n};\n/** Current session will be checked for refresh at this interval. */ const AUTO_REFRESH_TICK_DURATION = 30 * 1000;\n/**\n * A token refresh will be attempted this many ticks before the current session expires. */ const AUTO_REFRESH_TICK_THRESHOLD = 3;\nasync function lockNoOp(name, acquireTimeout, fn) {\n return await fn();\n}\nclass GoTrueClient {\n /**\n * Create a new client for use in the browser.\n */ constructor(options){\n var _a, _b;\n this.memoryStorage = null;\n this.stateChangeEmitters = new Map();\n this.autoRefreshTicker = null;\n this.visibilityChangedCallback = null;\n this.refreshingDeferred = null;\n /**\n * Keeps track of the async client initialization.\n * When null or not yet resolved the auth state is `unknown`\n * Once resolved the the auth state is known and it's save to call any further client methods.\n * Keep extra care to never reject or throw uncaught errors\n */ this.initializePromise = null;\n this.detectSessionInUrl = true;\n this.lockAcquired = false;\n this.pendingInLock = [];\n /**\n * Used to broadcast state change events to other tabs listening.\n */ this.broadcastChannel = null;\n this.logger = console.log;\n this.instanceID = GoTrueClient.nextInstanceID;\n GoTrueClient.nextInstanceID += 1;\n if (this.instanceID > 0 && (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)()) {\n console.warn(\"Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.\");\n }\n const settings = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n this.logDebugMessages = !!settings.debug;\n if (typeof settings.debug === \"function\") {\n this.logger = settings.debug;\n }\n this.persistSession = settings.persistSession;\n this.storageKey = settings.storageKey;\n this.autoRefreshToken = settings.autoRefreshToken;\n this.admin = new _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n url: settings.url,\n headers: settings.headers,\n fetch: settings.fetch\n });\n this.url = settings.url;\n this.headers = settings.headers;\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.resolveFetch)(settings.fetch);\n this.lock = settings.lock || lockNoOp;\n this.detectSessionInUrl = settings.detectSessionInUrl;\n this.flowType = settings.flowType;\n if (settings.lock) {\n this.lock = settings.lock;\n } else if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && ((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.locks)) {\n this.lock = _lib_locks__WEBPACK_IMPORTED_MODULE_8__.navigatorLock;\n } else {\n this.lock = lockNoOp;\n }\n this.mfa = {\n verify: this._verify.bind(this),\n enroll: this._enroll.bind(this),\n unenroll: this._unenroll.bind(this),\n challenge: this._challenge.bind(this),\n listFactors: this._listFactors.bind(this),\n challengeAndVerify: this._challengeAndVerify.bind(this),\n getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this)\n };\n if (this.persistSession) {\n if (settings.storage) {\n this.storage = settings.storage;\n } else {\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.supportsLocalStorage)()) {\n this.storage = _lib_local_storage__WEBPACK_IMPORTED_MODULE_5__.localStorageAdapter;\n } else {\n this.memoryStorage = {};\n this.storage = (0,_lib_local_storage__WEBPACK_IMPORTED_MODULE_5__.memoryLocalStorageAdapter)(this.memoryStorage);\n }\n }\n } else {\n this.memoryStorage = {};\n this.storage = (0,_lib_local_storage__WEBPACK_IMPORTED_MODULE_5__.memoryLocalStorageAdapter)(this.memoryStorage);\n }\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && globalThis.BroadcastChannel && this.persistSession && this.storageKey) {\n try {\n this.broadcastChannel = new globalThis.BroadcastChannel(this.storageKey);\n } catch (e) {\n console.error(\"Failed to create a new BroadcastChannel, multi-tab state changes will not be available\", e);\n }\n (_b = this.broadcastChannel) === null || _b === void 0 ? void 0 : _b.addEventListener(\"message\", async (event)=>{\n this._debug(\"received broadcast notification from other tab or client\", event);\n await this._notifyAllSubscribers(event.data.event, event.data.session, false); // broadcast = false so we don't get an endless loop of messages\n });\n }\n this.initialize();\n }\n _debug(...args) {\n if (this.logDebugMessages) {\n this.logger(`GoTrueClient@${this.instanceID} (${_lib_version__WEBPACK_IMPORTED_MODULE_7__.version}) ${new Date().toISOString()}`, ...args);\n }\n return this;\n }\n /**\n * Initializes the client session either from the url or from storage.\n * This method is automatically called when instantiating the client, but should also be called\n * manually when checking for an error from an auth redirect (oauth, magiclink, password recovery, etc).\n */ async initialize() {\n if (this.initializePromise) {\n return await this.initializePromise;\n }\n this.initializePromise = (async ()=>{\n return await this._acquireLock(-1, async ()=>{\n return await this._initialize();\n });\n })();\n return await this.initializePromise;\n }\n /**\n * IMPORTANT:\n * 1. Never throw in this method, as it is called from the constructor\n * 2. Never return a session from this method as it would be cached over\n * the whole lifetime of the client\n */ async _initialize() {\n try {\n const isPKCEFlow = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() ? await this._isPKCEFlow() : false;\n this._debug(\"#_initialize()\", \"begin\", \"is PKCE flow\", isPKCEFlow);\n if (isPKCEFlow || this.detectSessionInUrl && this._isImplicitGrantFlow()) {\n const { data, error } = await this._getSessionFromURL(isPKCEFlow);\n if (error) {\n this._debug(\"#_initialize()\", \"error detecting session from URL\", error);\n // hacky workaround to keep the existing session if there's an error returned from identity linking\n // TODO: once error codes are ready, we should match against it instead of the message\n if ((error === null || error === void 0 ? void 0 : error.message) === \"Identity is already linked\" || (error === null || error === void 0 ? void 0 : error.message) === \"Identity is already linked to another user\") {\n return {\n error\n };\n }\n // failed login attempt via url,\n // remove old session as in verifyOtp, signUp and signInWith*\n await this._removeSession();\n return {\n error\n };\n }\n const { session, redirectType } = data;\n this._debug(\"#_initialize()\", \"detected session in URL\", session, \"redirect type\", redirectType);\n await this._saveSession(session);\n setTimeout(async ()=>{\n if (redirectType === \"recovery\") {\n await this._notifyAllSubscribers(\"PASSWORD_RECOVERY\", session);\n } else {\n await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n }\n }, 0);\n return {\n error: null\n };\n }\n // no login attempt via callback url try to recover session from storage\n await this._recoverAndRefresh();\n return {\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n error\n };\n }\n return {\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthUnknownError(\"Unexpected error during initialization\", error)\n };\n } finally{\n await this._handleVisibilityChange();\n this._debug(\"#_initialize()\", \"end\");\n }\n }\n /**\n * Creates a new user.\n *\n * Be aware that if a user account exists in the system you may get back an\n * error message that attempts to hide this information from the user.\n * This method has support for PKCE via email signups. The PKCE flow cannot be used when autoconfirm is enabled.\n *\n * @returns A logged-in session if the server has \"autoconfirm\" ON\n * @returns A user if the server has \"autoconfirm\" OFF\n */ async signUp(credentials) {\n var _a, _b, _c;\n try {\n await this._removeSession();\n let res;\n if (\"email\" in credentials) {\n const { email, password, options } = credentials;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/signup`, {\n headers: this.headers,\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n body: {\n email,\n password,\n data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n },\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n } else if (\"phone\" in credentials) {\n const { phone, password, options } = credentials;\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/signup`, {\n headers: this.headers,\n body: {\n phone,\n password,\n data: (_b = options === null || options === void 0 ? void 0 : options.data) !== null && _b !== void 0 ? _b : {},\n channel: (_c = options === null || options === void 0 ? void 0 : options.channel) !== null && _c !== void 0 ? _c : \"sms\",\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n } else {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError(\"You must provide either an email or phone number and a password\");\n }\n const { data, error } = res;\n if (error || !data) {\n return {\n data: {\n user: null,\n session: null\n },\n error: error\n };\n }\n const session = data.session;\n const user = data.user;\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n }\n return {\n data: {\n user,\n session\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Log in an existing user with an email and password or phone and password.\n *\n * Be aware that you may get back an error message that will not distinguish\n * between the cases where the account does not exist or that the\n * email/phone and password combination is wrong or that the account can only\n * be accessed via social login.\n */ async signInWithPassword(credentials) {\n try {\n await this._removeSession();\n let res;\n if (\"email\" in credentials) {\n const { email, password, options } = credentials;\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=password`, {\n headers: this.headers,\n body: {\n email,\n password,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponsePassword\n });\n } else if (\"phone\" in credentials) {\n const { phone, password, options } = credentials;\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=password`, {\n headers: this.headers,\n body: {\n phone,\n password,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponsePassword\n });\n } else {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError(\"You must provide either an email or phone number and a password\");\n }\n const { data, error } = res;\n if (error) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n } else if (!data || !data.session || !data.user) {\n return {\n data: {\n user: null,\n session: null\n },\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError()\n };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n }\n return {\n data: Object.assign({\n user: data.user,\n session: data.session\n }, data.weak_password ? {\n weakPassword: data.weak_password\n } : null),\n error\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Log in an existing user via a third-party provider.\n * This method supports the PKCE flow.\n */ async signInWithOAuth(credentials) {\n var _a, _b, _c, _d;\n await this._removeSession();\n return await this._handleProviderSignIn(credentials.provider, {\n redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\n scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\n queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\n skipBrowserRedirect: (_d = credentials.options) === null || _d === void 0 ? void 0 : _d.skipBrowserRedirect\n });\n }\n /**\n * Log in an existing user by exchanging an Auth Code issued during the PKCE flow.\n */ async exchangeCodeForSession(authCode) {\n await this.initializePromise;\n return this._acquireLock(-1, async ()=>{\n return this._exchangeCodeForSession(authCode);\n });\n }\n async _exchangeCodeForSession(authCode) {\n const storageItem = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\n const [codeVerifier, redirectType] = (storageItem !== null && storageItem !== void 0 ? storageItem : \"\").split(\"/\");\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=pkce`, {\n headers: this.headers,\n body: {\n auth_code: authCode,\n code_verifier: codeVerifier\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\n if (error) {\n return {\n data: {\n user: null,\n session: null,\n redirectType: null\n },\n error\n };\n } else if (!data || !data.session || !data.user) {\n return {\n data: {\n user: null,\n session: null,\n redirectType: null\n },\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError()\n };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n }\n return {\n data: Object.assign(Object.assign({}, data), {\n redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null\n }),\n error\n };\n }\n /**\n * Allows signing in with an OIDC ID token. The authentication provider used\n * should be enabled and configured.\n */ async signInWithIdToken(credentials) {\n await this._removeSession();\n try {\n const { options, provider, token, access_token, nonce } = credentials;\n const res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=id_token`, {\n headers: this.headers,\n body: {\n provider,\n id_token: token,\n access_token,\n nonce,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n const { data, error } = res;\n if (error) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n } else if (!data || !data.session || !data.user) {\n return {\n data: {\n user: null,\n session: null\n },\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError()\n };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n }\n return {\n data,\n error\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Log in a user using magiclink or a one-time password (OTP).\n *\n * If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent.\n * If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent.\n * If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins.\n *\n * Be aware that you may get back an error message that will not distinguish\n * between the cases where the account does not exist or, that the account\n * can only be accessed via social login.\n *\n * Do note that you will need to configure a Whatsapp sender on Twilio\n * if you are using phone sign in with the 'whatsapp' channel. The whatsapp\n * channel is not supported on other providers\n * at this time.\n * This method supports PKCE when an email is passed.\n */ async signInWithOtp(credentials) {\n var _a, _b, _c, _d, _e;\n try {\n await this._removeSession();\n if (\"email\" in credentials) {\n const { email, options } = credentials;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/otp`, {\n headers: this.headers,\n body: {\n email,\n data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\n create_user: (_b = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _b !== void 0 ? _b : true,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n },\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod\n },\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo\n });\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n if (\"phone\" in credentials) {\n const { phone, options } = credentials;\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/otp`, {\n headers: this.headers,\n body: {\n phone,\n data: (_c = options === null || options === void 0 ? void 0 : options.data) !== null && _c !== void 0 ? _c : {},\n create_user: (_d = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _d !== void 0 ? _d : true,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n },\n channel: (_e = options === null || options === void 0 ? void 0 : options.channel) !== null && _e !== void 0 ? _e : \"sms\"\n }\n });\n return {\n data: {\n user: null,\n session: null,\n messageId: data === null || data === void 0 ? void 0 : data.message_id\n },\n error\n };\n }\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError(\"You must provide either an email or phone number.\");\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Log in a user given a User supplied OTP or TokenHash received through mobile or email.\n */ async verifyOtp(params) {\n var _a, _b;\n try {\n if (params.type !== \"email_change\" && params.type !== \"phone_change\") {\n // we don't want to remove the authenticated session if the user is performing an email_change or phone_change verification\n await this._removeSession();\n }\n let redirectTo = undefined;\n let captchaToken = undefined;\n if (\"options\" in params) {\n redirectTo = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo;\n captchaToken = (_b = params.options) === null || _b === void 0 ? void 0 : _b.captchaToken;\n }\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/verify`, {\n headers: this.headers,\n body: Object.assign(Object.assign({}, params), {\n gotrue_meta_security: {\n captcha_token: captchaToken\n }\n }),\n redirectTo,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n if (error) {\n throw error;\n }\n if (!data) {\n throw new Error(\"An error occurred on token verification.\");\n }\n const session = data.session;\n const user = data.user;\n if (session === null || session === void 0 ? void 0 : session.access_token) {\n await this._saveSession(session);\n await this._notifyAllSubscribers(params.type == \"recovery\" ? \"PASSWORD_RECOVERY\" : \"SIGNED_IN\", session);\n }\n return {\n data: {\n user,\n session\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Attempts a single-sign on using an enterprise Identity Provider. A\n * successful SSO attempt will redirect the current page to the identity\n * provider authorization page. The redirect URL is implementation and SSO\n * protocol specific.\n *\n * You can use it by providing a SSO domain. Typically you can extract this\n * domain by asking users for their email address. If this domain is\n * registered on the Auth instance the redirect will use that organization's\n * currently active SSO Identity Provider for the login.\n *\n * If you have built an organization-specific login page, you can use the\n * organization's SSO Identity Provider UUID directly instead.\n */ async signInWithSSO(params) {\n var _a, _b, _c;\n try {\n await this._removeSession();\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/sso`, {\n body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, \"providerId\" in params ? {\n provider_id: params.providerId\n } : null), \"domain\" in params ? {\n domain: params.domain\n } : null), {\n redirect_to: (_b = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo) !== null && _b !== void 0 ? _b : undefined\n }), ((_c = params === null || params === void 0 ? void 0 : params.options) === null || _c === void 0 ? void 0 : _c.captchaToken) ? {\n gotrue_meta_security: {\n captcha_token: params.options.captchaToken\n }\n } : null), {\n skip_http_redirect: true,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod\n }),\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._ssoResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Sends a reauthentication OTP to the user's email or phone number.\n * Requires the user to be signed-in.\n */ async reauthenticate() {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._reauthenticate();\n });\n }\n async _reauthenticate() {\n try {\n return await this._useSession(async (result)=>{\n const { data: { session }, error: sessionError } = result;\n if (sessionError) throw sessionError;\n if (!session) throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"GET\", `${this.url}/reauthenticate`, {\n headers: this.headers,\n jwt: session.access_token\n });\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Resends an existing signup confirmation email, email change email, SMS OTP or phone change OTP.\n */ async resend(credentials) {\n try {\n if (credentials.type != \"email_change\" && credentials.type != \"phone_change\") {\n await this._removeSession();\n }\n const endpoint = `${this.url}/resend`;\n if (\"email\" in credentials) {\n const { email, type, options } = credentials;\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", endpoint, {\n headers: this.headers,\n body: {\n email,\n type,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo\n });\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n } else if (\"phone\" in credentials) {\n const { phone, type, options } = credentials;\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", endpoint, {\n headers: this.headers,\n body: {\n phone,\n type,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n }\n });\n return {\n data: {\n user: null,\n session: null,\n messageId: data === null || data === void 0 ? void 0 : data.message_id\n },\n error\n };\n }\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError(\"You must provide either an email or phone number and a type\");\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Returns the session, refreshing it if necessary.\n * The session returned can be null if the session is not detected which can happen in the event a user is not signed-in or has logged out.\n */ async getSession() {\n await this.initializePromise;\n return this._acquireLock(-1, async ()=>{\n return this._useSession(async (result)=>{\n return result;\n });\n });\n }\n /**\n * Acquires a global lock based on the storage key.\n */ async _acquireLock(acquireTimeout, fn) {\n this._debug(\"#_acquireLock\", \"begin\", acquireTimeout);\n try {\n if (this.lockAcquired) {\n const last = this.pendingInLock.length ? this.pendingInLock[this.pendingInLock.length - 1] : Promise.resolve();\n const result = (async ()=>{\n await last;\n return await fn();\n })();\n this.pendingInLock.push((async ()=>{\n try {\n await result;\n } catch (e) {\n // we just care if it finished\n }\n })());\n return result;\n }\n return await this.lock(`lock:${this.storageKey}`, acquireTimeout, async ()=>{\n this._debug(\"#_acquireLock\", \"lock acquired for storage key\", this.storageKey);\n try {\n this.lockAcquired = true;\n const result = fn();\n this.pendingInLock.push((async ()=>{\n try {\n await result;\n } catch (e) {\n // we just care if it finished\n }\n })());\n await result;\n // keep draining the queue until there's nothing to wait on\n while(this.pendingInLock.length){\n const waitOn = [\n ...this.pendingInLock\n ];\n await Promise.all(waitOn);\n this.pendingInLock.splice(0, waitOn.length);\n }\n return await result;\n } finally{\n this._debug(\"#_acquireLock\", \"lock released for storage key\", this.storageKey);\n this.lockAcquired = false;\n }\n });\n } finally{\n this._debug(\"#_acquireLock\", \"end\");\n }\n }\n /**\n * Use instead of {@link #getSession} inside the library. It is\n * semantically usually what you want, as getting a session involves some\n * processing afterwards that requires only one client operating on the\n * session at once across multiple tabs or processes.\n */ async _useSession(fn) {\n this._debug(\"#_useSession\", \"begin\");\n try {\n // the use of __loadSession here is the only correct use of the function!\n const result = await this.__loadSession();\n return await fn(result);\n } finally{\n this._debug(\"#_useSession\", \"end\");\n }\n }\n /**\n * NEVER USE DIRECTLY!\n *\n * Always use {@link #_useSession}.\n */ async __loadSession() {\n this._debug(\"#__loadSession()\", \"begin\");\n if (!this.lockAcquired) {\n this._debug(\"#__loadSession()\", \"used outside of an acquired lock!\", new Error().stack);\n }\n try {\n let currentSession = null;\n const maybeSession = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, this.storageKey);\n this._debug(\"#getSession()\", \"session from storage\", maybeSession);\n if (maybeSession !== null) {\n if (this._isValidSession(maybeSession)) {\n currentSession = maybeSession;\n } else {\n this._debug(\"#getSession()\", \"session from storage is not valid\");\n await this._removeSession();\n }\n }\n if (!currentSession) {\n return {\n data: {\n session: null\n },\n error: null\n };\n }\n const hasExpired = currentSession.expires_at ? currentSession.expires_at <= Date.now() / 1000 : false;\n this._debug(\"#__loadSession()\", `session has${hasExpired ? \"\" : \" not\"} expired`, \"expires_at\", currentSession.expires_at);\n if (!hasExpired) {\n return {\n data: {\n session: currentSession\n },\n error: null\n };\n }\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return {\n data: {\n session: null\n },\n error\n };\n }\n return {\n data: {\n session\n },\n error: null\n };\n } finally{\n this._debug(\"#__loadSession()\", \"end\");\n }\n }\n /**\n * Gets the current user details if there is an existing session.\n * @param jwt Takes in an optional access token jwt. If no jwt is provided, getUser() will attempt to get the jwt from the current session.\n */ async getUser(jwt) {\n if (jwt) {\n return await this._getUser(jwt);\n }\n await this.initializePromise;\n return this._acquireLock(-1, async ()=>{\n return await this._getUser();\n });\n }\n async _getUser(jwt) {\n try {\n if (jwt) {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"GET\", `${this.url}/user`, {\n headers: this.headers,\n jwt: jwt,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse\n });\n }\n return await this._useSession(async (result)=>{\n var _a, _b;\n const { data, error } = result;\n if (error) {\n throw error;\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"GET\", `${this.url}/user`, {\n headers: this.headers,\n jwt: (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : undefined,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse\n });\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Updates user data for a logged in user.\n */ async updateUser(attributes, options = {}) {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._updateUser(attributes, options);\n });\n }\n async _updateUser(attributes, options = {}) {\n try {\n return await this._useSession(async (result)=>{\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n throw sessionError;\n }\n if (!sessionData.session) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n }\n const session = sessionData.session;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\" && attributes.email != null) {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n const { data, error: userError } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"PUT\", `${this.url}/user`, {\n headers: this.headers,\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n body: Object.assign(Object.assign({}, attributes), {\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod\n }),\n jwt: session.access_token,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse\n });\n if (userError) throw userError;\n session.user = data.user;\n await this._saveSession(session);\n await this._notifyAllSubscribers(\"USER_UPDATED\", session);\n return {\n data: {\n user: session.user\n },\n error: null\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Decodes a JWT (without performing any validation).\n */ _decodeJWT(jwt) {\n return (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.decodeJWTPayload)(jwt);\n }\n /**\n * Sets the session data from the current session. If the current session is expired, setSession will take care of refreshing it to obtain a new session.\n * If the refresh token or access token in the current session is invalid, an error will be thrown.\n * @param currentSession The current session that minimally contains an access token and refresh token.\n */ async setSession(currentSession) {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._setSession(currentSession);\n });\n }\n async _setSession(currentSession) {\n try {\n if (!currentSession.access_token || !currentSession.refresh_token) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n }\n const timeNow = Date.now() / 1000;\n let expiresAt = timeNow;\n let hasExpired = true;\n let session = null;\n const payload = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.decodeJWTPayload)(currentSession.access_token);\n if (payload.exp) {\n expiresAt = payload.exp;\n hasExpired = expiresAt <= timeNow;\n }\n if (hasExpired) {\n const { session: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return {\n data: {\n user: null,\n session: null\n },\n error: error\n };\n }\n if (!refreshedSession) {\n return {\n data: {\n user: null,\n session: null\n },\n error: null\n };\n }\n session = refreshedSession;\n } else {\n const { data, error } = await this._getUser(currentSession.access_token);\n if (error) {\n throw error;\n }\n session = {\n access_token: currentSession.access_token,\n refresh_token: currentSession.refresh_token,\n user: data.user,\n token_type: \"bearer\",\n expires_in: expiresAt - timeNow,\n expires_at: expiresAt\n };\n await this._saveSession(session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n }\n return {\n data: {\n user: session.user,\n session\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n session: null,\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Returns a new session, regardless of expiry status.\n * Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession().\n * If the current session's refresh token is invalid, an error will be thrown.\n * @param currentSession The current session. If passed in, it must contain a refresh token.\n */ async refreshSession(currentSession) {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._refreshSession(currentSession);\n });\n }\n async _refreshSession(currentSession) {\n try {\n return await this._useSession(async (result)=>{\n var _a;\n if (!currentSession) {\n const { data, error } = result;\n if (error) {\n throw error;\n }\n currentSession = (_a = data.session) !== null && _a !== void 0 ? _a : undefined;\n }\n if (!(currentSession === null || currentSession === void 0 ? void 0 : currentSession.refresh_token)) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n }\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return {\n data: {\n user: null,\n session: null\n },\n error: error\n };\n }\n if (!session) {\n return {\n data: {\n user: null,\n session: null\n },\n error: null\n };\n }\n return {\n data: {\n user: session.user,\n session\n },\n error: null\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Gets the session data from a URL string\n */ async _getSessionFromURL(isPKCEFlow) {\n try {\n if (!(0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)()) throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(\"No browser detected.\");\n if (this.flowType === \"implicit\" && !this._isImplicitGrantFlow()) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(\"Not a valid implicit grant flow url.\");\n } else if (this.flowType == \"pkce\" && !isPKCEFlow) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthPKCEGrantCodeExchangeError(\"Not a valid PKCE flow url.\");\n }\n const params = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.parseParametersFromURL)(window.location.href);\n if (isPKCEFlow) {\n if (!params.code) throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthPKCEGrantCodeExchangeError(\"No code detected.\");\n const { data, error } = await this._exchangeCodeForSession(params.code);\n if (error) throw error;\n const url = new URL(window.location.href);\n url.searchParams.delete(\"code\");\n window.history.replaceState(window.history.state, \"\", url.toString());\n return {\n data: {\n session: data.session,\n redirectType: null\n },\n error: null\n };\n }\n if (params.error || params.error_description || params.error_code) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(params.error_description || \"Error in URL with unspecified error_description\", {\n error: params.error || \"unspecified_error\",\n code: params.error_code || \"unspecified_code\"\n });\n }\n const { provider_token, provider_refresh_token, access_token, refresh_token, expires_in, expires_at, token_type } = params;\n if (!access_token || !expires_in || !refresh_token || !token_type) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(\"No session defined in URL\");\n }\n const timeNow = Math.round(Date.now() / 1000);\n const expiresIn = parseInt(expires_in);\n let expiresAt = timeNow + expiresIn;\n if (expires_at) {\n expiresAt = parseInt(expires_at);\n }\n const actuallyExpiresIn = expiresAt - timeNow;\n if (actuallyExpiresIn * 1000 <= AUTO_REFRESH_TICK_DURATION) {\n console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`);\n }\n const issuedAt = expiresAt - expiresIn;\n if (timeNow - issuedAt >= 120) {\n console.warn(\"@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale\", issuedAt, expiresAt, timeNow);\n } else if (timeNow - issuedAt < 0) {\n console.warn(\"@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clok for skew\", issuedAt, expiresAt, timeNow);\n }\n const { data, error } = await this._getUser(access_token);\n if (error) throw error;\n const session = {\n provider_token,\n provider_refresh_token,\n access_token,\n expires_in: expiresIn,\n expires_at: expiresAt,\n refresh_token,\n token_type,\n user: data.user\n };\n // Remove tokens from URL\n window.location.hash = \"\";\n this._debug(\"#_getSessionFromURL()\", \"clearing window.location.hash\");\n return {\n data: {\n session,\n redirectType: params.type\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n session: null,\n redirectType: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Checks if the current URL contains parameters given by an implicit oauth grant flow (https://www.rfc-editor.org/rfc/rfc6749.html#section-4.2)\n */ _isImplicitGrantFlow() {\n const params = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.parseParametersFromURL)(window.location.href);\n return !!((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && (params.access_token || params.error_description));\n }\n /**\n * Checks if the current URL and backing storage contain parameters given by a PKCE flow\n */ async _isPKCEFlow() {\n const params = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.parseParametersFromURL)(window.location.href);\n const currentStorageContent = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\n return !!(params.code && currentStorageContent);\n }\n /**\n * Inside a browser context, `signOut()` will remove the logged in user from the browser session and log them out - removing all items from localstorage and then trigger a `\"SIGNED_OUT\"` event.\n *\n * For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`.\n * There is no way to revoke a user's access token jwt until it expires. It is recommended to set a shorter expiry on the jwt for this reason.\n *\n * If using `others` scope, no `SIGNED_OUT` event is fired!\n */ async signOut(options = {\n scope: \"global\"\n }) {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._signOut(options);\n });\n }\n async _signOut({ scope } = {\n scope: \"global\"\n }) {\n return await this._useSession(async (result)=>{\n var _a;\n const { data, error: sessionError } = result;\n if (sessionError) {\n return {\n error: sessionError\n };\n }\n const accessToken = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token;\n if (accessToken) {\n const { error } = await this.admin.signOut(accessToken, scope);\n if (error) {\n // ignore 404s since user might not exist anymore\n // ignore 401s since an invalid or expired JWT should sign out the current session\n if (!((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthApiError)(error) && (error.status === 404 || error.status === 401))) {\n return {\n error\n };\n }\n }\n }\n if (scope !== \"others\") {\n await this._removeSession();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\n await this._notifyAllSubscribers(\"SIGNED_OUT\", null);\n }\n return {\n error: null\n };\n });\n }\n /**\n * Receive a notification every time an auth event happens.\n * @param callback A callback function to be invoked when an auth event happens.\n */ onAuthStateChange(callback) {\n const id = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.uuid)();\n const subscription = {\n id,\n callback,\n unsubscribe: ()=>{\n this._debug(\"#unsubscribe()\", \"state change callback with id removed\", id);\n this.stateChangeEmitters.delete(id);\n }\n };\n this._debug(\"#onAuthStateChange()\", \"registered callback with id\", id);\n this.stateChangeEmitters.set(id, subscription);\n (async ()=>{\n await this.initializePromise;\n await this._acquireLock(-1, async ()=>{\n this._emitInitialSession(id);\n });\n })();\n return {\n data: {\n subscription\n }\n };\n }\n async _emitInitialSession(id) {\n return await this._useSession(async (result)=>{\n var _a, _b;\n try {\n const { data: { session }, error } = result;\n if (error) throw error;\n await ((_a = this.stateChangeEmitters.get(id)) === null || _a === void 0 ? void 0 : _a.callback(\"INITIAL_SESSION\", session));\n this._debug(\"INITIAL_SESSION\", \"callback id\", id, \"session\", session);\n } catch (err) {\n await ((_b = this.stateChangeEmitters.get(id)) === null || _b === void 0 ? void 0 : _b.callback(\"INITIAL_SESSION\", null));\n this._debug(\"INITIAL_SESSION\", \"callback id\", id, \"error\", err);\n console.error(err);\n }\n });\n }\n /**\n * Sends a password reset request to an email address. This method supports the PKCE flow.\n *\n * @param email The email address of the user.\n * @param options.redirectTo The URL to send the user to after they click the password reset link.\n * @param options.captchaToken Verification token received when the user completes the captcha on the site.\n */ async resetPasswordForEmail(email, options = {}) {\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, `${codeVerifier}/PASSWORD_RECOVERY`);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/recover`, {\n body: {\n email,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n gotrue_meta_security: {\n captcha_token: options.captchaToken\n }\n },\n headers: this.headers,\n redirectTo: options.redirectTo\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Gets all the identities linked to a user.\n */ async getUserIdentities() {\n var _a;\n try {\n const { data, error } = await this.getUser();\n if (error) throw error;\n return {\n data: {\n identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : []\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Links an oauth identity to an existing user.\n * This method supports the PKCE flow.\n */ async linkIdentity(credentials) {\n var _a;\n try {\n const { data, error } = await this._useSession(async (result)=>{\n var _a, _b, _c, _d, _e;\n const { data, error } = result;\n if (error) throw error;\n const url = await this._getUrlForProvider(`${this.url}/user/identities/authorize`, credentials.provider, {\n redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\n scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\n queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\n skipBrowserRedirect: true\n });\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"GET\", url, {\n headers: this.headers,\n jwt: (_e = (_d = data.session) === null || _d === void 0 ? void 0 : _d.access_token) !== null && _e !== void 0 ? _e : undefined\n });\n });\n if (error) throw error;\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && !((_a = credentials.options) === null || _a === void 0 ? void 0 : _a.skipBrowserRedirect)) {\n window.location.assign(data === null || data === void 0 ? void 0 : data.url);\n }\n return {\n data: {\n provider: credentials.provider,\n url: data === null || data === void 0 ? void 0 : data.url\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n provider: credentials.provider,\n url: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.\n */ async unlinkIdentity(identity) {\n try {\n return await this._useSession(async (result)=>{\n var _a, _b;\n const { data, error } = result;\n if (error) {\n throw error;\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"DELETE\", `${this.url}/user/identities/${identity.identity_id}`, {\n headers: this.headers,\n jwt: (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : undefined\n });\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Generates a new JWT.\n * @param refreshToken A valid refresh token that was returned on login.\n */ async _refreshAccessToken(refreshToken) {\n const debugName = `#_refreshAccessToken(${refreshToken.substring(0, 5)}...)`;\n this._debug(debugName, \"begin\");\n try {\n const startedAt = Date.now();\n // will attempt to refresh the token with exponential backoff\n return await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.retryable)(async (attempt)=>{\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.sleep)(attempt * 200); // 0, 200, 400, 800, ...\n this._debug(debugName, \"refreshing attempt\", attempt);\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=refresh_token`, {\n body: {\n refresh_token: refreshToken\n },\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n }, (attempt, _, result)=>result && result.error && (0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(result.error) && // retryable only if the request can be sent before the backoff overflows the tick duration\n Date.now() + (attempt + 1) * 200 - startedAt < AUTO_REFRESH_TICK_DURATION);\n } catch (error) {\n this._debug(debugName, \"error\", error);\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n session: null,\n user: null\n },\n error\n };\n }\n throw error;\n } finally{\n this._debug(debugName, \"end\");\n }\n }\n _isValidSession(maybeSession) {\n const isValidSession = typeof maybeSession === \"object\" && maybeSession !== null && \"access_token\" in maybeSession && \"refresh_token\" in maybeSession && \"expires_at\" in maybeSession;\n return isValidSession;\n }\n async _handleProviderSignIn(provider, options) {\n const url = await this._getUrlForProvider(`${this.url}/authorize`, provider, {\n redirectTo: options.redirectTo,\n scopes: options.scopes,\n queryParams: options.queryParams\n });\n this._debug(\"#_handleProviderSignIn()\", \"provider\", provider, \"options\", options, \"url\", url);\n // try to open on the browser\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && !options.skipBrowserRedirect) {\n window.location.assign(url);\n }\n return {\n data: {\n provider,\n url\n },\n error: null\n };\n }\n /**\n * Recovers the session from LocalStorage and refreshes\n * Note: this method is async to accommodate for AsyncStorage e.g. in React native.\n */ async _recoverAndRefresh() {\n var _a;\n const debugName = \"#_recoverAndRefresh()\";\n this._debug(debugName, \"begin\");\n try {\n const currentSession = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, this.storageKey);\n this._debug(debugName, \"session from storage\", currentSession);\n if (!this._isValidSession(currentSession)) {\n this._debug(debugName, \"session is not valid\");\n if (currentSession !== null) {\n await this._removeSession();\n }\n return;\n }\n const timeNow = Math.round(Date.now() / 1000);\n const expiresWithMargin = ((_a = currentSession.expires_at) !== null && _a !== void 0 ? _a : Infinity) < timeNow + _lib_constants__WEBPACK_IMPORTED_MODULE_1__.EXPIRY_MARGIN;\n this._debug(debugName, `session has${expiresWithMargin ? \"\" : \" not\"} expired with margin of ${_lib_constants__WEBPACK_IMPORTED_MODULE_1__.EXPIRY_MARGIN}s`);\n if (expiresWithMargin) {\n if (this.autoRefreshToken && currentSession.refresh_token) {\n const { error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n console.error(error);\n if (!(0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(error)) {\n this._debug(debugName, \"refresh failed with a non-retryable error, removing the session\", error);\n await this._removeSession();\n }\n }\n }\n } else {\n // no need to persist currentSession again, as we just loaded it from\n // local storage; persisting it again may overwrite a value saved by\n // another client with access to the same local storage\n await this._notifyAllSubscribers(\"SIGNED_IN\", currentSession);\n }\n } catch (err) {\n this._debug(debugName, \"error\", err);\n console.error(err);\n return;\n } finally{\n this._debug(debugName, \"end\");\n }\n }\n async _callRefreshToken(refreshToken) {\n var _a, _b;\n if (!refreshToken) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n }\n // refreshing is already in progress\n if (this.refreshingDeferred) {\n return this.refreshingDeferred.promise;\n }\n const debugName = `#_callRefreshToken(${refreshToken.substring(0, 5)}...)`;\n this._debug(debugName, \"begin\");\n try {\n this.refreshingDeferred = new _lib_helpers__WEBPACK_IMPORTED_MODULE_4__.Deferred();\n const { data, error } = await this._refreshAccessToken(refreshToken);\n if (error) throw error;\n if (!data.session) throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"TOKEN_REFRESHED\", data.session);\n const result = {\n session: data.session,\n error: null\n };\n this.refreshingDeferred.resolve(result);\n return result;\n } catch (error) {\n this._debug(debugName, \"error\", error);\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n const result = {\n session: null,\n error\n };\n if (!(0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(error)) {\n await this._removeSession();\n await this._notifyAllSubscribers(\"SIGNED_OUT\", null);\n }\n (_a = this.refreshingDeferred) === null || _a === void 0 ? void 0 : _a.resolve(result);\n return result;\n }\n (_b = this.refreshingDeferred) === null || _b === void 0 ? void 0 : _b.reject(error);\n throw error;\n } finally{\n this.refreshingDeferred = null;\n this._debug(debugName, \"end\");\n }\n }\n async _notifyAllSubscribers(event, session, broadcast = true) {\n const debugName = `#_notifyAllSubscribers(${event})`;\n this._debug(debugName, \"begin\", session, `broadcast = ${broadcast}`);\n try {\n if (this.broadcastChannel && broadcast) {\n this.broadcastChannel.postMessage({\n event,\n session\n });\n }\n const errors = [];\n const promises = Array.from(this.stateChangeEmitters.values()).map(async (x)=>{\n try {\n await x.callback(event, session);\n } catch (e) {\n errors.push(e);\n }\n });\n await Promise.all(promises);\n if (errors.length > 0) {\n for(let i = 0; i < errors.length; i += 1){\n console.error(errors[i]);\n }\n throw errors[0];\n }\n } finally{\n this._debug(debugName, \"end\");\n }\n }\n /**\n * set currentSession and currentUser\n * process to _startAutoRefreshToken if possible\n */ async _saveSession(session) {\n this._debug(\"#_saveSession()\", session);\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, this.storageKey, session);\n }\n async _removeSession() {\n this._debug(\"#_removeSession()\");\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, this.storageKey);\n }\n /**\n * Removes any registered visibilitychange callback.\n *\n * {@see #startAutoRefresh}\n * {@see #stopAutoRefresh}\n */ _removeVisibilityChangedCallback() {\n this._debug(\"#_removeVisibilityChangedCallback()\");\n const callback = this.visibilityChangedCallback;\n this.visibilityChangedCallback = null;\n try {\n if (callback && (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && (window === null || window === void 0 ? void 0 : window.removeEventListener)) {\n window.removeEventListener(\"visibilitychange\", callback);\n }\n } catch (e) {\n console.error(\"removing visibilitychange callback failed\", e);\n }\n }\n /**\n * This is the private implementation of {@link #startAutoRefresh}. Use this\n * within the library.\n */ async _startAutoRefresh() {\n await this._stopAutoRefresh();\n this._debug(\"#_startAutoRefresh()\");\n const ticker = setInterval(()=>this._autoRefreshTokenTick(), AUTO_REFRESH_TICK_DURATION);\n this.autoRefreshTicker = ticker;\n if (ticker && typeof ticker === \"object\" && typeof ticker.unref === \"function\") {\n // ticker is a NodeJS Timeout object that has an `unref` method\n // https://nodejs.org/api/timers.html#timeoutunref\n // When auto refresh is used in NodeJS (like for testing) the\n // `setInterval` is preventing the process from being marked as\n // finished and tests run endlessly. This can be prevented by calling\n // `unref()` on the returned object.\n ticker.unref();\n // @ts-ignore\n } else if (typeof Deno !== \"undefined\" && typeof Deno.unrefTimer === \"function\") {\n // similar like for NodeJS, but with the Deno API\n // https://deno.land/api@latest?unstable&s=Deno.unrefTimer\n // @ts-ignore\n Deno.unrefTimer(ticker);\n }\n // run the tick immediately, but in the next pass of the event loop so that\n // #_initialize can be allowed to complete without recursively waiting on\n // itself\n setTimeout(async ()=>{\n await this.initializePromise;\n await this._autoRefreshTokenTick();\n }, 0);\n }\n /**\n * This is the private implementation of {@link #stopAutoRefresh}. Use this\n * within the library.\n */ async _stopAutoRefresh() {\n this._debug(\"#_stopAutoRefresh()\");\n const ticker = this.autoRefreshTicker;\n this.autoRefreshTicker = null;\n if (ticker) {\n clearInterval(ticker);\n }\n }\n /**\n * Starts an auto-refresh process in the background. The session is checked\n * every few seconds. Close to the time of expiration a process is started to\n * refresh the session. If refreshing fails it will be retried for as long as\n * necessary.\n *\n * If you set the {@link GoTrueClientOptions#autoRefreshToken} you don't need\n * to call this function, it will be called for you.\n *\n * On browsers the refresh process works only when the tab/window is in the\n * foreground to conserve resources as well as prevent race conditions and\n * flooding auth with requests. If you call this method any managed\n * visibility change callback will be removed and you must manage visibility\n * changes on your own.\n *\n * On non-browser platforms the refresh process works *continuously* in the\n * background, which may not be desirable. You should hook into your\n * platform's foreground indication mechanism and call these methods\n * appropriately to conserve resources.\n *\n * {@see #stopAutoRefresh}\n */ async startAutoRefresh() {\n this._removeVisibilityChangedCallback();\n await this._startAutoRefresh();\n }\n /**\n * Stops an active auto refresh process running in the background (if any).\n *\n * If you call this method any managed visibility change callback will be\n * removed and you must manage visibility changes on your own.\n *\n * See {@link #startAutoRefresh} for more details.\n */ async stopAutoRefresh() {\n this._removeVisibilityChangedCallback();\n await this._stopAutoRefresh();\n }\n /**\n * Runs the auto refresh token tick.\n */ async _autoRefreshTokenTick() {\n this._debug(\"#_autoRefreshTokenTick()\", \"begin\");\n try {\n await this._acquireLock(0, async ()=>{\n try {\n const now = Date.now();\n try {\n return await this._useSession(async (result)=>{\n const { data: { session } } = result;\n if (!session || !session.refresh_token || !session.expires_at) {\n this._debug(\"#_autoRefreshTokenTick()\", \"no session\");\n return;\n }\n // session will expire in this many ticks (or has already expired if <= 0)\n const expiresInTicks = Math.floor((session.expires_at * 1000 - now) / AUTO_REFRESH_TICK_DURATION);\n this._debug(\"#_autoRefreshTokenTick()\", `access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`);\n if (expiresInTicks <= AUTO_REFRESH_TICK_THRESHOLD) {\n await this._callRefreshToken(session.refresh_token);\n }\n });\n } catch (e) {\n console.error(\"Auto refresh tick failed with error. This is likely a transient error.\", e);\n }\n } finally{\n this._debug(\"#_autoRefreshTokenTick()\", \"end\");\n }\n });\n } catch (e) {\n if (e.isAcquireTimeout || e instanceof _lib_locks__WEBPACK_IMPORTED_MODULE_8__.LockAcquireTimeoutError) {\n this._debug(\"auto refresh token tick lock not available\");\n } else {\n throw e;\n }\n }\n }\n /**\n * Registers callbacks on the browser / platform, which in-turn run\n * algorithms when the browser window/tab are in foreground. On non-browser\n * platforms it assumes always foreground.\n */ async _handleVisibilityChange() {\n this._debug(\"#_handleVisibilityChange()\");\n if (!(0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() || !(window === null || window === void 0 ? void 0 : window.addEventListener)) {\n if (this.autoRefreshToken) {\n // in non-browser environments the refresh token ticker runs always\n this.startAutoRefresh();\n }\n return false;\n }\n try {\n this.visibilityChangedCallback = async ()=>await this._onVisibilityChanged(false);\n window === null || window === void 0 ? void 0 : window.addEventListener(\"visibilitychange\", this.visibilityChangedCallback);\n // now immediately call the visbility changed callback to setup with the\n // current visbility state\n await this._onVisibilityChanged(true); // initial call\n } catch (error) {\n console.error(\"_handleVisibilityChange\", error);\n }\n }\n /**\n * Callback registered with `window.addEventListener('visibilitychange')`.\n */ async _onVisibilityChanged(calledFromInitialize) {\n const methodName = `#_onVisibilityChanged(${calledFromInitialize})`;\n this._debug(methodName, \"visibilityState\", document.visibilityState);\n if (document.visibilityState === \"visible\") {\n if (this.autoRefreshToken) {\n // in browser environments the refresh token ticker runs only on focused tabs\n // which prevents race conditions\n this._startAutoRefresh();\n }\n if (!calledFromInitialize) {\n // called when the visibility has changed, i.e. the browser\n // transitioned from hidden -> visible so we need to see if the session\n // should be recovered immediately... but to do that we need to acquire\n // the lock first asynchronously\n await this.initializePromise;\n await this._acquireLock(-1, async ()=>{\n if (document.visibilityState !== \"visible\") {\n this._debug(methodName, \"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting\");\n // visibility has changed while waiting for the lock, abort\n return;\n }\n // recover the session\n await this._recoverAndRefresh();\n });\n }\n } else if (document.visibilityState === \"hidden\") {\n if (this.autoRefreshToken) {\n this._stopAutoRefresh();\n }\n }\n }\n /**\n * Generates the relevant login URL for a third-party provider.\n * @param options.redirectTo A URL or mobile address to send the user to after they are confirmed.\n * @param options.scopes A space-separated list of scopes granted to the OAuth application.\n * @param options.queryParams An object of key-value pairs containing query parameters granted to the OAuth application.\n */ async _getUrlForProvider(url, provider, options) {\n const urlParams = [\n `provider=${encodeURIComponent(provider)}`\n ];\n if (options === null || options === void 0 ? void 0 : options.redirectTo) {\n urlParams.push(`redirect_to=${encodeURIComponent(options.redirectTo)}`);\n }\n if (options === null || options === void 0 ? void 0 : options.scopes) {\n urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`);\n }\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n const codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n const codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n this._debug(\"PKCE\", \"code verifier\", `${codeVerifier.substring(0, 5)}...`, \"code challenge\", codeChallenge, \"method\", codeChallengeMethod);\n const flowParams = new URLSearchParams({\n code_challenge: `${encodeURIComponent(codeChallenge)}`,\n code_challenge_method: `${encodeURIComponent(codeChallengeMethod)}`\n });\n urlParams.push(flowParams.toString());\n }\n if (options === null || options === void 0 ? void 0 : options.queryParams) {\n const query = new URLSearchParams(options.queryParams);\n urlParams.push(query.toString());\n }\n if (options === null || options === void 0 ? void 0 : options.skipBrowserRedirect) {\n urlParams.push(`skip_http_redirect=${options.skipBrowserRedirect}`);\n }\n return `${url}?${urlParams.join(\"&\")}`;\n }\n async _unenroll(params) {\n try {\n return await this._useSession(async (result)=>{\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"DELETE\", `${this.url}/factors/${params.factorId}`, {\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n });\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * {@see GoTrueMFAApi#enroll}\n */ async _enroll(params) {\n try {\n return await this._useSession(async (result)=>{\n var _a, _b;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/factors`, {\n body: {\n friendly_name: params.friendlyName,\n factor_type: params.factorType,\n issuer: params.issuer\n },\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n });\n if (error) {\n return {\n data: null,\n error\n };\n }\n if ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code) {\n data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;\n }\n return {\n data,\n error: null\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * {@see GoTrueMFAApi#verify}\n */ async _verify(params) {\n return this._acquireLock(-1, async ()=>{\n try {\n return await this._useSession(async (result)=>{\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/factors/${params.factorId}/verify`, {\n body: {\n code: params.code,\n challenge_id: params.challengeId\n },\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n });\n if (error) {\n return {\n data: null,\n error\n };\n }\n await this._saveSession(Object.assign({\n expires_at: Math.round(Date.now() / 1000) + data.expires_in\n }, data));\n await this._notifyAllSubscribers(\"MFA_CHALLENGE_VERIFIED\", data);\n return {\n data,\n error\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * {@see GoTrueMFAApi#challenge}\n */ async _challenge(params) {\n return this._acquireLock(-1, async ()=>{\n try {\n return await this._useSession(async (result)=>{\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/factors/${params.factorId}/challenge`, {\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n });\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * {@see GoTrueMFAApi#challengeAndVerify}\n */ async _challengeAndVerify(params) {\n // both _challenge and _verify independently acquire the lock, so no need\n // to acquire it here\n const { data: challengeData, error: challengeError } = await this._challenge({\n factorId: params.factorId\n });\n if (challengeError) {\n return {\n data: null,\n error: challengeError\n };\n }\n return await this._verify({\n factorId: params.factorId,\n challengeId: challengeData.id,\n code: params.code\n });\n }\n /**\n * {@see GoTrueMFAApi#listFactors}\n */ async _listFactors() {\n // use #getUser instead of #_getUser as the former acquires a lock\n const { data: { user }, error: userError } = await this.getUser();\n if (userError) {\n return {\n data: null,\n error: userError\n };\n }\n const factors = (user === null || user === void 0 ? void 0 : user.factors) || [];\n const totp = factors.filter((factor)=>factor.factor_type === \"totp\" && factor.status === \"verified\");\n return {\n data: {\n all: factors,\n totp\n },\n error: null\n };\n }\n /**\n * {@see GoTrueMFAApi#getAuthenticatorAssuranceLevel}\n */ async _getAuthenticatorAssuranceLevel() {\n return this._acquireLock(-1, async ()=>{\n return await this._useSession(async (result)=>{\n var _a, _b;\n const { data: { session }, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n if (!session) {\n return {\n data: {\n currentLevel: null,\n nextLevel: null,\n currentAuthenticationMethods: []\n },\n error: null\n };\n }\n const payload = this._decodeJWT(session.access_token);\n let currentLevel = null;\n if (payload.aal) {\n currentLevel = payload.aal;\n }\n let nextLevel = currentLevel;\n const verifiedFactors = (_b = (_a = session.user.factors) === null || _a === void 0 ? void 0 : _a.filter((factor)=>factor.status === \"verified\")) !== null && _b !== void 0 ? _b : [];\n if (verifiedFactors.length > 0) {\n nextLevel = \"aal2\";\n }\n const currentAuthenticationMethods = payload.amr || [];\n return {\n data: {\n currentLevel,\n nextLevel,\n currentAuthenticationMethods\n },\n error: null\n };\n });\n });\n }\n}\nGoTrueClient.nextInstanceID = 0; //# sourceMappingURL=GoTrueClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvR29UcnVlQ2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBOEM7QUFDNEM7QUFDb0s7QUFDN0k7QUFDb0k7QUFDaEs7QUFDaEM7QUFDYjtBQUM2QjtBQUNyRW1DLGtFQUFrQkEsSUFBSSw4QkFBOEI7QUFDcEQsTUFBTUksa0JBQWtCO0lBQ3BCQyxLQUFLckMsc0RBQVVBO0lBQ2ZzQyxZQUFZckMsdURBQVdBO0lBQ3ZCc0Msa0JBQWtCO0lBQ2xCQyxnQkFBZ0I7SUFDaEJDLG9CQUFvQjtJQUNwQkMsU0FBUzVDLDJEQUFlQTtJQUN4QjZDLFVBQVU7SUFDVkMsT0FBTztBQUNYO0FBQ0Esa0VBQWtFLEdBQ2xFLE1BQU1DLDZCQUE2QixLQUFLO0FBQ3hDO3lGQUN5RixHQUN6RixNQUFNQyw4QkFBOEI7QUFDcEMsZUFBZUMsU0FBU0MsSUFBSSxFQUFFQyxjQUFjLEVBQUVDLEVBQUU7SUFDNUMsT0FBTyxNQUFNQTtBQUNqQjtBQUNlLE1BQU1DO0lBQ2pCOztLQUVDLEdBQ0RDLFlBQVlDLE9BQU8sQ0FBRTtRQUNqQixJQUFJQyxJQUFJQztRQUNSLElBQUksQ0FBQ0MsYUFBYSxHQUFHO1FBQ3JCLElBQUksQ0FBQ0MsbUJBQW1CLEdBQUcsSUFBSUM7UUFDL0IsSUFBSSxDQUFDQyxpQkFBaUIsR0FBRztRQUN6QixJQUFJLENBQUNDLHlCQUF5QixHQUFHO1FBQ2pDLElBQUksQ0FBQ0Msa0JBQWtCLEdBQUc7UUFDMUI7Ozs7O1NBS0MsR0FDRCxJQUFJLENBQUNDLGlCQUFpQixHQUFHO1FBQ3pCLElBQUksQ0FBQ3JCLGtCQUFrQixHQUFHO1FBQzFCLElBQUksQ0FBQ3NCLFlBQVksR0FBRztRQUNwQixJQUFJLENBQUNDLGFBQWEsR0FBRyxFQUFFO1FBQ3ZCOztTQUVDLEdBQ0QsSUFBSSxDQUFDQyxnQkFBZ0IsR0FBRztRQUN4QixJQUFJLENBQUNDLE1BQU0s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WUFBWTtnQkFDaEI7Z0JBQ0EsTUFBTUMsK0JBQStCdEgsUUFBUXlILEdBQUcsSUFBSSxFQUFFO2dCQUN0RCxPQUFPO29CQUFFL08sTUFBTTt3QkFBRTBPO3dCQUFjQzt3QkFBV0M7b0JBQTZCO29CQUFHalAsT0FBTztnQkFBSztZQUMxRjtRQUNKO0lBQ0o7QUFDSjtBQUNBbEQsYUFBYW1CLGNBQWMsR0FBRyxHQUM5Qix3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvR29UcnVlQ2xpZW50LmpzPzQ5ZDIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdvVHJ1ZUFkbWluQXBpIGZyb20gJy4vR29UcnVlQWRtaW5BcGknO1xuaW1wb3J0IHsgREVGQVVMVF9IRUFERVJTLCBFWFBJUllfTUFSR0lOLCBHT1RSVUVfVVJMLCBTVE9SQUdFX0tFWSB9IGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBdXRoSW1wbGljaXRHcmFudFJlZGlyZWN0RXJyb3IsIEF1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvciwgQXV0aEludmFsaWRDcmVkZW50aWFsc0Vycm9yLCBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvciwgQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3IsIEF1dGhVbmtub3duRXJyb3IsIGlzQXV0aEFwaUVycm9yLCBpc0F1dGhFcnJvciwgaXNBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvciwgfSBmcm9tICcuL2xpYi9lcnJvcnMnO1xuaW1wb3J0IHsgX3JlcXVlc3QsIF9zZXNzaW9uUmVzcG9uc2UsIF9zZXNzaW9uUmVzcG9uc2VQYXNzd29yZCwgX3VzZXJSZXNwb25zZSwgX3Nzb1Jlc3BvbnNlLCB9IGZyb20gJy4vbGliL2ZldGNoJztcbmltcG9ydCB7IGRlY29kZUpXVFBheWxvYWQsIERlZmVycmVkLCBnZXRJdGVtQXN5bmMsIGlzQnJvd3NlciwgcmVtb3ZlSXRlbUFzeW5jLCByZXNvbHZlRmV0Y2gsIHNldEl0ZW1Bc3luYywgdXVpZCwgcmV0cnlhYmxlLCBzbGVlcCwgZ2VuZXJhdGVQS0NFVmVyaWZpZXIsIGdlbmVyYXRlUEtDRUNoYWxsZW5nZSwgc3VwcG9ydHNMb2NhbFN0b3JhZ2UsIHBhcnNlUGFyYW1ldGVyc0Zyb21VUkwsIH0gZnJvbSAnLi9saWIvaGVscGVycyc7XG5pbXBvcnQgeyBsb2NhbFN0b3JhZ2VBZGFwdGVyLCBtZW1vcnlMb2NhbFN0b3JhZ2VBZGFwdGVyIH0gZnJvbSAnLi9saWIvbG9jYWwtc3RvcmFnZSc7XG5pbXBvcnQgeyBwb2x5ZmlsbEdsb2JhbFRoaXMgfSBmcm9tICcuL2xpYi9wb2x5ZmlsbHMnO1xuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4vbGliL3ZlcnNpb24nO1xuaW1wb3J0IHsgTG9ja0FjcXVpcmVUaW1lb3V0RXJyb3IsIG5hdmlnYXRvckxvY2sgfSBmcm9tICcuL2xpYi9sb2Nrcyc7XG5wb2x5ZmlsbEdsb2JhbFRoaXMoKTsgLy8gTWFrZSBcImdsb2JhbFRoaXNcIiBhdmFpbGFibGVcbmNvbnN0IERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICB1cmw6IEdPVFJVRV9VUkwsXG4gICAgc3RvcmFnZUtleTogU1RPUkFHRV9LRVksXG4gICAgYXV0b1JlZnJlc2hUb2tlbjogdHJ1ZSxcbiAgICBwZXJzaXN0U2Vzc2lvbjogdHJ1ZSxcbiAgICBkZXRlY3RTZXNzaW9uSW5Vcmw6IHRydWUsXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxuICAgIGZsb3dUeXBlOiAnaW1wbGljaXQnLFxuICAgIGRlYnVnOiBmYWxzZSxcbn07XG4vKiogQ3VycmVudCBzZXNzaW9uIHdpbGwgYmUgY2hlY2tlZCBmb3IgcmVmcmVzaCBhdCB0aGlzIGludGVydmFsLiAqL1xuY29uc3QgQVVUT19SRUZSRVNIX1RJQ0tfRFVSQVRJT04gPSAzMCAqIDEwMDA7XG4vKipcbiAqIEEgdG9rZW4gcmVmcmVzaCB3aWxsIGJlIGF0dGVtcHRlZCB0aGlzIG1hbnkgdGlja3MgYmVmb3JlIHRoZSBjdXJyZW50IHNlc3Npb24gZXhwaXJlcy4gKi9cbmNvbnN0IEFVVE9fUkVGUkVTSF9USUNLX1RIUkVTSE9MRCA9IDM7XG5hc3luYyBmdW5jdGlvbiBsb2NrTm9PcChuYW1lLCBhY3F1aXJlVGltZW91dCwgZm4pIHtcbiAgICByZXR1cm4gYXdhaXQgZm4oKTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdvVHJ1ZUNsaWVudCB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGNsaWVudCBmb3IgdXNlIGluIHRoZSBicm93c2VyLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgdGhpcy5tZW1vcnlTdG9yYWdlID0gbnVsbDtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUVtaXR0ZXJzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmF1dG9SZWZyZXNoVGlja2VyID0gbnVsbDtcbiAgICAgICAgdGhpcy52aXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogS2VlcHMgdHJhY2sgb2YgdGhlIGFzeW5jIGNsaWVudCBpbml0aWFsaXphdGlvbi5cbiAgICAgICAgICogV2hlbiBudWxsIG9yIG5vdCB5ZXQgcmVzb2x2ZWQgdGhlIGF1dGggc3RhdGUgaXMgYHVua25vd25gXG4gICAgICAgICAqIE9uY2UgcmVzb2x2ZWQgdGhlIHRoZSBhdXRoIHN0YXRlIGlzIGtub3duIGFuZCBpdCdzIHNhdmUgdG8gY2FsbCBhbnkgZnVydGhlciBjbGllbnQgbWV0aG9kcy5cbiAgICAgICAgICogS2VlcCBleHRyYSBjYXJlIHRvIG5ldmVyIHJlamVjdCBvciB0aHJvdyB1bmNhdWdodCBlcnJvcnNcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVByb21pc2UgPSBudWxsO1xuICAgICAgICB0aGlzLmRldGVjdFNlc3Npb25JblVybCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9ja0FjcXVpcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMucGVuZGluZ0luTG9jayA9IFtdO1xuICAgICAgICAvKipcbiAgICAgICAgICogVXNlZCB0byBicm9hZGNhc3Qgc3RhdGUgY2hhbmdlIGV2ZW50cyB0byBvdGhlciB0YWJzIGxpc3RlbmluZy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gY29uc29sZS5sb2c7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VJRCA9IEdvVHJ1ZUNsaWVudC5uZXh0SW5zdGFuY2VJRDtcbiAgICAgICAgR29UcnVlQ2xpZW50Lm5leHRJbnN0YW5jZUlEICs9IDE7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlSUQgPiAwICYmIGlzQnJvd3NlcigpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ011bHRpcGxlIEdvVHJ1ZUNsaWVudCBpbnN0YW5jZXMgZGV0ZWN0ZWQgaW4gdGhlIHNhbWUgYnJvd3NlciBjb250ZXh0LiBJdCBpcyBub3QgYW4gZXJyb3IsIGJ1dCB0aGlzIHNob3VsZCBiZSBhdm9pZGVkIGFzIGl0IG1heSBwcm9kdWNlIHVuZGVmaW5lZCBiZWhhdmlvciB3aGVuIHVzZWQgY29uY3VycmVudGx5IHVuZGVyIHRoZSBzYW1lIHN0b3JhZ2Uga2V5LicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMpLCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5sb2dEZWJ1Z01lc3NhZ2VzID0gISFzZXR0aW5ncy5kZWJ1ZztcbiAgICAgICAgaWYgKHR5cGVvZiBzZXR0aW5ncy5kZWJ1ZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIgPSBzZXR0aW5ncy5kZWJ1ZztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBlcnNpc3RTZXNzaW9uID0gc2V0dGluZ3MucGVyc2lzdFNlc3Npb247XG4gICAgICAgIHRoaXMuc3RvcmFnZUtleSA9IHNldHRpbmdzLnN0b3JhZ2VLZXk7XG4gICAgICAgIHRoaXMuYXV0b1JlZnJlc2hUb2tlbiA9IHNldHRpbmdzLmF1dG9SZWZyZXNoVG9rZW47XG4gICAgICAgIHRoaXMuYWRtaW4gPSBuZXcgR29UcnVlQWRtaW5BcGkoe1xuICAgICAgICAgICAgdXJsOiBzZXR0aW5ncy51cmwsXG4gICAgICAgICAgICBoZWFkZXJzOiBzZXR0aW5ncy5oZWFkZXJzLFxuICAgICAgICAgICAgZmV0Y2g6IHNldHRpbmdzLmZldGNoLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51cmwgPSBzZXR0aW5ncy51cmw7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IHNldHRpbmdzLmhlYWRlcnM7XG4gICAgICAgIHRoaXMuZmV0Y2ggPSByZXNvbHZlRmV0Y2goc2V0dGluZ3MuZmV0Y2gpO1xuICAgICAgICB0aGlzLmxvY2sgPSBzZXR0aW5ncy5sb2NrIHx8IGxvY2tOb09wO1xuICAgICAgICB0aGlzLmRldGVjdFNlc3Npb25JblVybCA9IHNldHRpbmdzLmRldGVjdFNlc3Npb25JblVybDtcbiAgICAgICAgdGhpcy5mbG93VHlwZSA9IHNldHRpbmdzLmZsb3dUeXBlO1xuICAgICAgICBpZiAoc2V0dGluZ3MubG9jaykge1xuICAgICAgICAgICAgdGhpcy5sb2NrID0gc2V0dGluZ3MubG9jaztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0Jyb3dzZXIoKSAmJiAoKF9hID0gZ2xvYmFsVGhpcyA9PT0gbnVsbCB8fCBnbG9iYWxUaGlzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnbG9iYWxUaGlzLm5hdmlnYXRvcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxvY2tzKSkge1xuICAgICAgICAgICAgdGhpcy5sb2NrID0gbmF2aWdhdG9yTG9jaztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9jayA9IGxvY2tOb09wO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWZhID0ge1xuICAgICAgICAgICAgdmVyaWZ5OiB0aGlzLl92ZXJpZnkuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGVucm9sbDogdGhpcy5fZW5yb2xsLmJpbmQodGhpcyksXG4gICAgICAgICAgICB1bmVucm9sbDogdGhpcy5fdW5lbnJvbGwuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGNoYWxsZW5nZTogdGhpcy5fY2hhbGxlbmdlLmJpbmQodGhpcyksXG4gICAgICAgICAgICBsaXN0RmFjdG9yczogdGhpcy5fbGlzdEZhY3RvcnMuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGNoYWxsZW5nZUFuZFZlcmlmeTogdGhpcy5fY2hhbGxlbmdlQW5kVmVyaWZ5LmJpbmQodGhpcyksXG4gICAgICAgICAgICBnZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWw6IHRoaXMuX2dldEF1dGhlbnRpY2F0b3JBc3N1cmFuY2VMZXZlbC5iaW5kKHRoaXMpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5wZXJzaXN0U2Vzc2lvbikge1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLnN0b3JhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2UgPSBzZXR0aW5ncy5zdG9yYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzTG9jYWxTdG9yYWdlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlID0gbG9jYWxTdG9yYWdlQWRhcHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVtb3J5U3RvcmFnZSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2UgPSBtZW1vcnlMb2NhbFN0b3JhZ2VBZGFwdGVyKHRoaXMubWVtb3J5U3RvcmFnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZW1vcnlTdG9yYWdlID0ge307XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2UgPSBtZW1vcnlMb2NhbFN0b3JhZ2VBZGFwdGVyKHRoaXMubWVtb3J5U3RvcmFnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQnJvd3NlcigpICYmIGdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbCAmJiB0aGlzLnBlcnNpc3RTZXNzaW9uICYmIHRoaXMuc3RvcmFnZUtleSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJyb2FkY2FzdENoYW5uZWwgPSBuZXcgZ2xvYmFsVGhpcy5Ccm9hZGNhc3RDaGFubmVsKHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgYSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCwgbXVsdGktdGFiIHN0YXRlIGNoYW5nZXMgd2lsbCBub3QgYmUgYXZhaWxhYmxlJywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAoX2IgPSB0aGlzLmJyb2FkY2FzdENoYW5uZWwpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJ3JlY2VpdmVkIGJyb2FkY2FzdCBub3RpZmljYXRpb24gZnJvbSBvdGhlciB0YWIgb3IgY2xpZW50JywgZXZlbnQpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKGV2ZW50LmRhdGEuZXZlbnQsIGV2ZW50LmRhdGEuc2Vzc2lvbiwgZmFsc2UpOyAvLyBicm9hZGNhc3QgPSBmYWxzZSBzbyB3ZSBkb24ndCBnZXQgYW4gZW5kbGVzcyBsb29wIG9mIG1lc3NhZ2VzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB9XG4gICAgX2RlYnVnKC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKHRoaXMubG9nRGVidWdNZXNzYWdlcykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIoYEdvVHJ1ZUNsaWVudEAke3RoaXMuaW5zdGFuY2VJRH0gKCR7dmVyc2lvbn0pICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWAsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyB0aGUgY2xpZW50IHNlc3Npb24gZWl0aGVyIGZyb20gdGhlIHVybCBvciBmcm9tIHN0b3JhZ2UuXG4gICAgICogVGhpcyBtZXRob2QgaXMgYXV0b21hdGljYWxseSBjYWxsZWQgd2hlbiBpbnN0YW50aWF0aW5nIHRoZSBjbGllbnQsIGJ1dCBzaG91bGQgYWxzbyBiZSBjYWxsZWRcbiAgICAgKiBtYW51YWxseSB3aGVuIGNoZWNraW5nIGZvciBhbiBlcnJvciBmcm9tIGFuIGF1dGggcmVkaXJlY3QgKG9hdXRoLCBtYWdpY2xpbmssIHBhc3N3b3JkIHJlY292ZXJ5LCBldGMpLlxuICAgICAqL1xuICAgIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVQcm9taXNlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxpemVQcm9taXNlID0gKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9pbml0aWFsaXplKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkoKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElNUE9SVEFOVDpcbiAgICAgKiAxLiBOZXZlciB0aHJvdyBpbiB0aGlzIG1ldGhvZCwgYXMgaXQgaXMgY2FsbGVkIGZyb20gdGhlIGNvbnN0cnVjdG9yXG4gICAgICogMi4gTmV2ZXIgcmV0dXJuIGEgc2Vzc2lvbiBmcm9tIHRoaXMgbWV0aG9kIGFzIGl0IHdvdWxkIGJlIGNhY2hlZCBvdmVyXG4gICAgICogICAgdGhlIHdob2xlIGxpZmV0aW1lIG9mIHRoZSBjbGllbnRcbiAgICAgKi9cbiAgICBhc3luYyBfaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGlzUEtDRUZsb3cgPSBpc0Jyb3dzZXIoKSA/IGF3YWl0IHRoaXMuX2lzUEtDRUZsb3coKSA6IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfaW5pdGlhbGl6ZSgpJywgJ2JlZ2luJywgJ2lzIFBLQ0UgZmxvdycsIGlzUEtDRUZsb3cpO1xuICAgICAgICAgICAgaWYgKGlzUEtDRUZsb3cgfHwgKHRoaXMuZGV0ZWN0U2Vzc2lvbkluVXJsICYmIHRoaXMuX2lzSW1wbGljaXRHcmFudEZsb3coKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9nZXRTZXNzaW9uRnJvbVVSTChpc1BLQ0VGbG93KTtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfaW5pdGlhbGl6ZSgpJywgJ2Vycm9yIGRldGVjdGluZyBzZXNzaW9uIGZyb20gVVJMJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAvLyBoYWNreSB3b3JrYXJvdW5kIHRvIGtlZXAgdGhlIGV4aXN0aW5nIHNlc3Npb24gaWYgdGhlcmUncyBhbiBlcnJvciByZXR1cm5lZCBmcm9tIGlkZW50aXR5IGxpbmtpbmdcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogb25jZSBlcnJvciBjb2RlcyBhcmUgcmVhZHksIHdlIHNob3VsZCBtYXRjaCBhZ2FpbnN0IGl0IGluc3RlYWQgb2YgdGhlIG1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgaWYgKChlcnJvciA9PT0gbnVsbCB8fCBlcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZSkgPT09ICdJZGVudGl0eSBpcyBhbHJlYWR5IGxpbmtlZCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvciA9PT0gbnVsbCB8fCBlcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZSkgPT09ICdJZGVudGl0eSBpcyBhbHJlYWR5IGxpbmtlZCB0byBhbm90aGVyIHVzZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBlcnJvciB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGZhaWxlZCBsb2dpbiBhdHRlbXB0IHZpYSB1cmwsXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBvbGQgc2Vzc2lvbiBhcyBpbiB2ZXJpZnlPdHAsIHNpZ25VcCBhbmQgc2lnbkluV2l0aCpcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB7IHNlc3Npb24sIHJlZGlyZWN0VHlwZSB9ID0gZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19pbml0aWFsaXplKCknLCAnZGV0ZWN0ZWQgc2Vzc2lvbiBpbiBVUkwnLCBzZXNzaW9uLCAncmVkaXJlY3QgdHlwZScsIHJlZGlyZWN0VHlwZSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oc2Vzc2lvbik7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdFR5cGUgPT09ICdyZWNvdmVyeScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdQQVNTV09SRF9SRUNPVkVSWScsIHNlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIHNlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIG5vIGxvZ2luIGF0dGVtcHQgdmlhIGNhbGxiYWNrIHVybCB0cnkgdG8gcmVjb3ZlciBzZXNzaW9uIGZyb20gc3RvcmFnZVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVjb3ZlckFuZFJlZnJlc2goKTtcbiAgICAgICAgICAgIHJldHVybiB7IGVycm9yOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IG5ldyBBdXRoVW5rbm93bkVycm9yKCdVbmV4cGVjdGVkIGVycm9yIGR1cmluZyBpbml0aWFsaXphdGlvbicsIGVycm9yKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKCk7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19pbml0aWFsaXplKCknLCAnZW5kJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB1c2VyLlxuICAgICAqXG4gICAgICogQmUgYXdhcmUgdGhhdCBpZiBhIHVzZXIgYWNjb3VudCBleGlzdHMgaW4gdGhlIHN5c3RlbSB5b3UgbWF5IGdldCBiYWNrIGFuXG4gICAgICogZXJyb3IgbWVzc2FnZSB0aGF0IGF0dGVtcHRzIHRvIGhpZGUgdGhpcyBpbmZvcm1hdGlvbiBmcm9tIHRoZSB1c2VyLlxuICAgICAqIFRoaXMgbWV0aG9kIGhhcyBzdXBwb3J0IGZvciBQS0NFIHZpYSBlbWFpbCBzaWdudXBzLiBUaGUgUEtDRSBmbG93IGNhbm5vdCBiZSB1c2VkIHdoZW4gYXV0b2NvbmZpcm0gaXMgZW5hYmxlZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgbG9nZ2VkLWluIHNlc3Npb24gaWYgdGhlIHNlcnZlciBoYXMgXCJhdXRvY29uZmlybVwiIE9OXG4gICAgICogQHJldHVybnMgQSB1c2VyIGlmIHRoZSBzZXJ2ZXIgaGFzIFwiYXV0b2NvbmZpcm1cIiBPRkZcbiAgICAgKi9cbiAgICBhc3luYyBzaWduVXAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCk7XG4gICAgICAgICAgICBsZXQgcmVzO1xuICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVtYWlsLCBwYXNzd29yZCwgb3B0aW9ucyB9ID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlTWV0aG9kID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mbG93VHlwZSA9PT0gJ3BrY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlUEtDRVZlcmlmaWVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmAsIGNvZGVWZXJpZmllcik7XG4gICAgICAgICAgICAgICAgICAgIGNvZGVDaGFsbGVuZ2UgPSBhd2FpdCBnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UoY29kZVZlcmlmaWVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29kZUNoYWxsZW5nZU1ldGhvZCA9IGNvZGVWZXJpZmllciA9PT0gY29kZUNoYWxsZW5nZSA/ICdwbGFpbicgOiAnczI1Nic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlcyA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L3NpZ251cGAsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZW1haWxSZWRpcmVjdFRvLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogKF9hID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRhdGEpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6IGNvZGVDaGFsbGVuZ2VNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoJ3Bob25lJyBpbiBjcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcGhvbmUsIHBhc3N3b3JkLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgICAgICByZXMgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9zaWdudXBgLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IChfYiA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kYXRhKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IChfYyA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jaGFubmVsKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnc21zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OiB7IGNhcHRjaGFfdG9rZW46IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEludmFsaWRDcmVkZW50aWFsc0Vycm9yKCdZb3UgbXVzdCBwcm92aWRlIGVpdGhlciBhbiBlbWFpbCBvciBwaG9uZSBudW1iZXIgYW5kIGEgcGFzc3dvcmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IHJlcztcbiAgICAgICAgICAgIGlmIChlcnJvciB8fCAhZGF0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvcjogZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSBkYXRhLnNlc3Npb247XG4gICAgICAgICAgICBjb25zdCB1c2VyID0gZGF0YS51c2VyO1xuICAgICAgICAgICAgaWYgKGRhdGEuc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGRhdGEuc2Vzc2lvbik7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIHNlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyLCBzZXNzaW9uIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBMb2cgaW4gYW4gZXhpc3RpbmcgdXNlciB3aXRoIGFuIGVtYWlsIGFuZCBwYXNzd29yZCBvciBwaG9uZSBhbmQgcGFzc3dvcmQuXG4gICAgICpcbiAgICAgKiBCZSBhd2FyZSB0aGF0IHlvdSBtYXkgZ2V0IGJhY2sgYW4gZXJyb3IgbWVzc2FnZSB0aGF0IHdpbGwgbm90IGRpc3Rpbmd1aXNoXG4gICAgICogYmV0d2VlbiB0aGUgY2FzZXMgd2hlcmUgdGhlIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3IgdGhhdCB0aGVcbiAgICAgKiBlbWFpbC9waG9uZSBhbmQgcGFzc3dvcmQgY29tYmluYXRpb24gaXMgd3Jvbmcgb3IgdGhhdCB0aGUgYWNjb3VudCBjYW4gb25seVxuICAgICAqIGJlIGFjY2Vzc2VkIHZpYSBzb2NpYWwgbG9naW4uXG4gICAgICovXG4gICAgYXN5bmMgc2lnbkluV2l0aFBhc3N3b3JkKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCk7XG4gICAgICAgICAgICBsZXQgcmVzO1xuICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVtYWlsLCBwYXNzd29yZCwgb3B0aW9ucyB9ID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICAgICAgcmVzID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1wYXNzd29yZGAsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB4Zm9ybTogX3Nlc3Npb25SZXNwb25zZVBhc3N3b3JkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoJ3Bob25lJyBpbiBjcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcGhvbmUsIHBhc3N3b3JkLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgICAgICByZXMgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS90b2tlbj9ncmFudF90eXBlPXBhc3N3b3JkYCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBob25lLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2FwdGNoYVRva2VuIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlUGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEludmFsaWRDcmVkZW50aWFsc0Vycm9yKCdZb3UgbXVzdCBwcm92aWRlIGVpdGhlciBhbiBlbWFpbCBvciBwaG9uZSBudW1iZXIgYW5kIGEgcGFzc3dvcmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IHJlcztcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoIWRhdGEgfHwgIWRhdGEuc2Vzc2lvbiB8fCAhZGF0YS51c2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yOiBuZXcgQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3IoKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGRhdGEuc2Vzc2lvbik7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIGRhdGEuc2Vzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRhdGE6IE9iamVjdC5hc3NpZ24oeyB1c2VyOiBkYXRhLnVzZXIsIHNlc3Npb246IGRhdGEuc2Vzc2lvbiB9LCAoZGF0YS53ZWFrX3Bhc3N3b3JkID8geyB3ZWFrUGFzc3dvcmQ6IGRhdGEud2Vha19wYXNzd29yZCB9IDogbnVsbCkpLFxuICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIExvZyBpbiBhbiBleGlzdGluZyB1c2VyIHZpYSBhIHRoaXJkLXBhcnR5IHByb3ZpZGVyLlxuICAgICAqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIHRoZSBQS0NFIGZsb3cuXG4gICAgICovXG4gICAgYXN5bmMgc2lnbkluV2l0aE9BdXRoKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5faGFuZGxlUHJvdmlkZXJTaWduSW4oY3JlZGVudGlhbHMucHJvdmlkZXIsIHtcbiAgICAgICAgICAgIHJlZGlyZWN0VG86IChfYSA9IGNyZWRlbnRpYWxzLm9wdGlvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZWRpcmVjdFRvLFxuICAgICAgICAgICAgc2NvcGVzOiAoX2IgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iuc2NvcGVzLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IChfYyA9IGNyZWRlbnRpYWxzLm9wdGlvbnMpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5xdWVyeVBhcmFtcyxcbiAgICAgICAgICAgIHNraXBCcm93c2VyUmVkaXJlY3Q6IChfZCA9IGNyZWRlbnRpYWxzLm9wdGlvbnMpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5za2lwQnJvd3NlclJlZGlyZWN0LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTG9nIGluIGFuIGV4aXN0aW5nIHVzZXIgYnkgZXhjaGFuZ2luZyBhbiBBdXRoIENvZGUgaXNzdWVkIGR1cmluZyB0aGUgUEtDRSBmbG93LlxuICAgICAqL1xuICAgIGFzeW5jIGV4Y2hhbmdlQ29kZUZvclNlc3Npb24oYXV0aENvZGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZXhjaGFuZ2VDb2RlRm9yU2Vzc2lvbihhdXRoQ29kZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBfZXhjaGFuZ2VDb2RlRm9yU2Vzc2lvbihhdXRoQ29kZSkge1xuICAgICAgICBjb25zdCBzdG9yYWdlSXRlbSA9IGF3YWl0IGdldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmApO1xuICAgICAgICBjb25zdCBbY29kZVZlcmlmaWVyLCByZWRpcmVjdFR5cGVdID0gKHN0b3JhZ2VJdGVtICE9PSBudWxsICYmIHN0b3JhZ2VJdGVtICE9PSB2b2lkIDAgPyBzdG9yYWdlSXRlbSA6ICcnKS5zcGxpdCgnLycpO1xuICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS90b2tlbj9ncmFudF90eXBlPXBrY2VgLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgYXV0aF9jb2RlOiBhdXRoQ29kZSxcbiAgICAgICAgICAgICAgICBjb2RlX3ZlcmlmaWVyOiBjb2RlVmVyaWZpZXIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCByZW1vdmVJdGVtQXN5bmModGhpcy5zdG9yYWdlLCBgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgKTtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwsIHJlZGlyZWN0VHlwZTogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFkYXRhIHx8ICFkYXRhLnNlc3Npb24gfHwgIWRhdGEudXNlcikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwsIHJlZGlyZWN0VHlwZTogbnVsbCB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiBuZXcgQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3IoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc2Vzc2lvbikge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oZGF0YS5zZXNzaW9uKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfSU4nLCBkYXRhLnNlc3Npb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGRhdGE6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZGF0YSksIHsgcmVkaXJlY3RUeXBlOiByZWRpcmVjdFR5cGUgIT09IG51bGwgJiYgcmVkaXJlY3RUeXBlICE9PSB2b2lkIDAgPyByZWRpcmVjdFR5cGUgOiBudWxsIH0pLCBlcnJvciB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGxvd3Mgc2lnbmluZyBpbiB3aXRoIGFuIE9JREMgSUQgdG9rZW4uIFRoZSBhdXRoZW50aWNhdGlvbiBwcm92aWRlciB1c2VkXG4gICAgICogc2hvdWxkIGJlIGVuYWJsZWQgYW5kIGNvbmZpZ3VyZWQuXG4gICAgICovXG4gICAgYXN5bmMgc2lnbkluV2l0aElkVG9rZW4oY3JlZGVudGlhbHMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgeyBvcHRpb25zLCBwcm92aWRlciwgdG9rZW4sIGFjY2Vzc190b2tlbiwgbm9uY2UgfSA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1pZF90b2tlbmAsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgaWRfdG9rZW46IHRva2VuLFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIG5vbmNlLFxuICAgICAgICAgICAgICAgICAgICBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2FwdGNoYVRva2VuIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB4Zm9ybTogX3Nlc3Npb25SZXNwb25zZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gcmVzO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICghZGF0YSB8fCAhZGF0YS5zZXNzaW9uIHx8ICFkYXRhLnVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IG5ldyBBdXRoSW52YWxpZFRva2VuUmVzcG9uc2VFcnJvcigpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5zZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oZGF0YS5zZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX0lOJywgZGF0YS5zZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBMb2cgaW4gYSB1c2VyIHVzaW5nIG1hZ2ljbGluayBvciBhIG9uZS10aW1lIHBhc3N3b3JkIChPVFApLlxuICAgICAqXG4gICAgICogSWYgdGhlIGB7eyAuQ29uZmlybWF0aW9uVVJMIH19YCB2YXJpYWJsZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGVtYWlsIHRlbXBsYXRlLCBhIG1hZ2ljbGluayB3aWxsIGJlIHNlbnQuXG4gICAgICogSWYgdGhlIGB7eyAuVG9rZW4gfX1gIHZhcmlhYmxlIGlzIHNwZWNpZmllZCBpbiB0aGUgZW1haWwgdGVtcGxhdGUsIGFuIE9UUCB3aWxsIGJlIHNlbnQuXG4gICAgICogSWYgeW91J3JlIHVzaW5nIHBob25lIHNpZ24taW5zLCBvbmx5IGFuIE9UUCB3aWxsIGJlIHNlbnQuIFlvdSB3b24ndCBiZSBhYmxlIHRvIHNlbmQgYSBtYWdpY2xpbmsgZm9yIHBob25lIHNpZ24taW5zLlxuICAgICAqXG4gICAgICogQmUgYXdhcmUgdGhhdCB5b3UgbWF5IGdldCBiYWNrIGFuIGVycm9yIG1lc3NhZ2UgdGhhdCB3aWxsIG5vdCBkaXN0aW5ndWlzaFxuICAgICAqIGJldHdlZW4gdGhlIGNhc2VzIHdoZXJlIHRoZSBhY2NvdW50IGRvZXMgbm90IGV4aXN0IG9yLCB0aGF0IHRoZSBhY2NvdW50XG4gICAgICogY2FuIG9ubHkgYmUgYWNjZXNzZWQgdmlhIHNvY2lhbCBsb2dpbi5cbiAgICAgKlxuICAgICAqIERvIG5vdGUgdGhhdCB5b3Ugd2lsbCBuZWVkIHRvIGNvbmZpZ3VyZSBhIFdoYXRzYXBwIHNlbmRlciBvbiBUd2lsaW9cbiAgICAgKiBpZiB5b3UgYXJlIHVzaW5nIHBob25lIHNpZ24gaW4gd2l0aCB0aGUgJ3doYXRzYXBwJyBjaGFubmVsLiBUaGUgd2hhdHNhcHBcbiAgICAgKiBjaGFubmVsIGlzIG5vdCBzdXBwb3J0ZWQgb24gb3RoZXIgcHJvdmlkZXJzXG4gICAgICogYXQgdGhpcyB0aW1lLlxuICAgICAqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIFBLQ0Ugd2hlbiBhbiBlbWFpbCBpcyBwYXNzZWQuXG4gICAgICovXG4gICAgYXN5bmMgc2lnbkluV2l0aE90cChjcmVkZW50aWFscykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVtYWlsLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgICAgICBsZXQgY29kZUNoYWxsZW5nZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZVZlcmlmaWVyID0gZ2VuZXJhdGVQS0NFVmVyaWZpZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCwgY29kZVZlcmlmaWVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29kZUNoYWxsZW5nZSA9IGF3YWl0IGdlbmVyYXRlUEtDRUNoYWxsZW5nZShjb2RlVmVyaWZpZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb2RlQ2hhbGxlbmdlTWV0aG9kID0gY29kZVZlcmlmaWVyID09PSBjb2RlQ2hhbGxlbmdlID8gJ3BsYWluJyA6ICdzMjU2JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vb3RwYCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogKF9hID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRhdGEpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlX3VzZXI6IChfYiA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5zaG91bGRDcmVhdGVVc2VyKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6IGNvZGVDaGFsbGVuZ2VNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5lbWFpbFJlZGlyZWN0VG8sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJ3Bob25lJyBpbiBjcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcGhvbmUsIG9wdGlvbnMgfSA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L290cGAsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IChfYyA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kYXRhKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV91c2VyOiAoX2QgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2hvdWxkQ3JlYXRlVXNlcikgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OiB7IGNhcHRjaGFfdG9rZW46IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IChfZSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jaGFubmVsKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiAnc21zJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwsIG1lc3NhZ2VJZDogZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLm1lc3NhZ2VfaWQgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW52YWxpZENyZWRlbnRpYWxzRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIGFuIGVtYWlsIG9yIHBob25lIG51bWJlci4nKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIExvZyBpbiBhIHVzZXIgZ2l2ZW4gYSBVc2VyIHN1cHBsaWVkIE9UUCBvciBUb2tlbkhhc2ggcmVjZWl2ZWQgdGhyb3VnaCBtb2JpbGUgb3IgZW1haWwuXG4gICAgICovXG4gICAgYXN5bmMgdmVyaWZ5T3RwKHBhcmFtcykge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHBhcmFtcy50eXBlICE9PSAnZW1haWxfY2hhbmdlJyAmJiBwYXJhbXMudHlwZSAhPT0gJ3Bob25lX2NoYW5nZScpIHtcbiAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIHJlbW92ZSB0aGUgYXV0aGVudGljYXRlZCBzZXNzaW9uIGlmIHRoZSB1c2VyIGlzIHBlcmZvcm1pbmcgYW4gZW1haWxfY2hhbmdlIG9yIHBob25lX2NoYW5nZSB2ZXJpZmljYXRpb25cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcmVkaXJlY3RUbyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGxldCBjYXB0Y2hhVG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoJ29wdGlvbnMnIGluIHBhcmFtcykge1xuICAgICAgICAgICAgICAgIHJlZGlyZWN0VG8gPSAoX2EgPSBwYXJhbXMub3B0aW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlZGlyZWN0VG87XG4gICAgICAgICAgICAgICAgY2FwdGNoYVRva2VuID0gKF9iID0gcGFyYW1zLm9wdGlvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYXB0Y2hhVG9rZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS92ZXJpZnlgLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIGJvZHk6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyYW1zKSwgeyBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBjYXB0Y2hhVG9rZW4gfSB9KSxcbiAgICAgICAgICAgICAgICByZWRpcmVjdFRvLFxuICAgICAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQW4gZXJyb3Igb2NjdXJyZWQgb24gdG9rZW4gdmVyaWZpY2F0aW9uLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGRhdGEuc2Vzc2lvbjtcbiAgICAgICAgICAgIGNvbnN0IHVzZXIgPSBkYXRhLnVzZXI7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvbiA9PT0gbnVsbCB8fCBzZXNzaW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZXNzaW9uLmFjY2Vzc190b2tlbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKHNlc3Npb24pO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKHBhcmFtcy50eXBlID09ICdyZWNvdmVyeScgPyAnUEFTU1dPUkRfUkVDT1ZFUlknIDogJ1NJR05FRF9JTicsIHNlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyLCBzZXNzaW9uIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBdHRlbXB0cyBhIHNpbmdsZS1zaWduIG9uIHVzaW5nIGFuIGVudGVycHJpc2UgSWRlbnRpdHkgUHJvdmlkZXIuIEFcbiAgICAgKiBzdWNjZXNzZnVsIFNTTyBhdHRlbXB0IHdpbGwgcmVkaXJlY3QgdGhlIGN1cnJlbnQgcGFnZSB0byB0aGUgaWRlbnRpdHlcbiAgICAgKiBwcm92aWRlciBhdXRob3JpemF0aW9uIHBhZ2UuIFRoZSByZWRpcmVjdCBVUkwgaXMgaW1wbGVtZW50YXRpb24gYW5kIFNTT1xuICAgICAqIHByb3RvY29sIHNwZWNpZmljLlxuICAgICAqXG4gICAgICogWW91IGNhbiB1c2UgaXQgYnkgcHJvdmlkaW5nIGEgU1NPIGRvbWFpbi4gVHlwaWNhbGx5IHlvdSBjYW4gZXh0cmFjdCB0aGlzXG4gICAgICogZG9tYWluIGJ5IGFza2luZyB1c2VycyBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gSWYgdGhpcyBkb21haW4gaXNcbiAgICAgKiByZWdpc3RlcmVkIG9uIHRoZSBBdXRoIGluc3RhbmNlIHRoZSByZWRpcmVjdCB3aWxsIHVzZSB0aGF0IG9yZ2FuaXphdGlvbidzXG4gICAgICogY3VycmVudGx5IGFjdGl2ZSBTU08gSWRlbnRpdHkgUHJvdmlkZXIgZm9yIHRoZSBsb2dpbi5cbiAgICAgKlxuICAgICAqIElmIHlvdSBoYXZlIGJ1aWx0IGFuIG9yZ2FuaXphdGlvbi1zcGVjaWZpYyBsb2dpbiBwYWdlLCB5b3UgY2FuIHVzZSB0aGVcbiAgICAgKiBvcmdhbml6YXRpb24ncyBTU08gSWRlbnRpdHkgUHJvdmlkZXIgVVVJRCBkaXJlY3RseSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGFzeW5jIHNpZ25JbldpdGhTU08ocGFyYW1zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2UgPSBudWxsO1xuICAgICAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMuZmxvd1R5cGUgPT09ICdwa2NlJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlUEtDRVZlcmlmaWVyKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgc2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCwgY29kZVZlcmlmaWVyKTtcbiAgICAgICAgICAgICAgICBjb2RlQ2hhbGxlbmdlID0gYXdhaXQgZ2VuZXJhdGVQS0NFQ2hhbGxlbmdlKGNvZGVWZXJpZmllcik7XG4gICAgICAgICAgICAgICAgY29kZUNoYWxsZW5nZU1ldGhvZCA9IGNvZGVWZXJpZmllciA9PT0gY29kZUNoYWxsZW5nZSA/ICdwbGFpbicgOiAnczI1Nic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vc3NvYCwge1xuICAgICAgICAgICAgICAgIGJvZHk6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKCdwcm92aWRlcklkJyBpbiBwYXJhbXMgPyB7IHByb3ZpZGVyX2lkOiBwYXJhbXMucHJvdmlkZXJJZCB9IDogbnVsbCkpLCAoJ2RvbWFpbicgaW4gcGFyYW1zID8geyBkb21haW46IHBhcmFtcy5kb21haW4gfSA6IG51bGwpKSwgeyByZWRpcmVjdF90bzogKF9iID0gKF9hID0gcGFyYW1zLm9wdGlvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZWRpcmVjdFRvKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB1bmRlZmluZWQgfSksICgoKF9jID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLm9wdGlvbnMpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5jYXB0Y2hhVG9rZW4pXG4gICAgICAgICAgICAgICAgICAgID8geyBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBwYXJhbXMub3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSB9XG4gICAgICAgICAgICAgICAgICAgIDogbnVsbCkpLCB7IHNraXBfaHR0cF9yZWRpcmVjdDogdHJ1ZSwgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogY29kZUNoYWxsZW5nZU1ldGhvZCB9KSxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgeGZvcm06IF9zc29SZXNwb25zZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIHJlYXV0aGVudGljYXRpb24gT1RQIHRvIHRoZSB1c2VyJ3MgZW1haWwgb3IgcGhvbmUgbnVtYmVyLlxuICAgICAqIFJlcXVpcmVzIHRoZSB1c2VyIHRvIGJlIHNpZ25lZC1pbi5cbiAgICAgKi9cbiAgICBhc3luYyByZWF1dGhlbnRpY2F0ZSgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fcmVhdXRoZW50aWNhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF9yZWF1dGhlbnRpY2F0ZSgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9LCBlcnJvcjogc2Vzc2lvbkVycm9yLCB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHNlc3Npb25FcnJvcjtcbiAgICAgICAgICAgICAgICBpZiAoIXNlc3Npb24pXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdHRVQnLCBgJHt0aGlzLnVybH0vcmVhdXRoZW50aWNhdGVgLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgand0OiBzZXNzaW9uLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVzZW5kcyBhbiBleGlzdGluZyBzaWdudXAgY29uZmlybWF0aW9uIGVtYWlsLCBlbWFpbCBjaGFuZ2UgZW1haWwsIFNNUyBPVFAgb3IgcGhvbmUgY2hhbmdlIE9UUC5cbiAgICAgKi9cbiAgICBhc3luYyByZXNlbmQoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChjcmVkZW50aWFscy50eXBlICE9ICdlbWFpbF9jaGFuZ2UnICYmIGNyZWRlbnRpYWxzLnR5cGUgIT0gJ3Bob25lX2NoYW5nZScpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMudXJsfS9yZXNlbmRgO1xuICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVtYWlsLCB0eXBlLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGVuZHBvaW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWwsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZW1haWxSZWRpcmVjdFRvLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoJ3Bob25lJyBpbiBjcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcGhvbmUsIHR5cGUsIG9wdGlvbnMgfSA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2FwdGNoYVRva2VuIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsLCBtZXNzYWdlSWQ6IGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5tZXNzYWdlX2lkIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEludmFsaWRDcmVkZW50aWFsc0Vycm9yKCdZb3UgbXVzdCBwcm92aWRlIGVpdGhlciBhbiBlbWFpbCBvciBwaG9uZSBudW1iZXIgYW5kIGEgdHlwZScpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc2Vzc2lvbiwgcmVmcmVzaGluZyBpdCBpZiBuZWNlc3NhcnkuXG4gICAgICogVGhlIHNlc3Npb24gcmV0dXJuZWQgY2FuIGJlIG51bGwgaWYgdGhlIHNlc3Npb24gaXMgbm90IGRldGVjdGVkIHdoaWNoIGNhbiBoYXBwZW4gaW4gdGhlIGV2ZW50IGEgdXNlciBpcyBub3Qgc2lnbmVkLWluIG9yIGhhcyBsb2dnZWQgb3V0LlxuICAgICAqL1xuICAgIGFzeW5jIGdldFNlc3Npb24oKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFjcXVpcmVzIGEgZ2xvYmFsIGxvY2sgYmFzZWQgb24gdGhlIHN0b3JhZ2Uga2V5LlxuICAgICAqL1xuICAgIGFzeW5jIF9hY3F1aXJlTG9jayhhY3F1aXJlVGltZW91dCwgZm4pIHtcbiAgICAgICAgdGhpcy5fZGVidWcoJyNfYWNxdWlyZUxvY2snLCAnYmVnaW4nLCBhY3F1aXJlVGltZW91dCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodGhpcy5sb2NrQWNxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5wZW5kaW5nSW5Mb2NrLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucGVuZGluZ0luTG9ja1t0aGlzLnBlbmRpbmdJbkxvY2subGVuZ3RoIC0gMV1cbiAgICAgICAgICAgICAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBsYXN0O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgZm4oKTtcbiAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0luTG9jay5wdXNoKChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGp1c3QgY2FyZSBpZiBpdCBmaW5pc2hlZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkoKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2soYGxvY2s6JHt0aGlzLnN0b3JhZ2VLZXl9YCwgYWNxdWlyZVRpbWVvdXQsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19hY3F1aXJlTG9jaycsICdsb2NrIGFjcXVpcmVkIGZvciBzdG9yYWdlIGtleScsIHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NrQWNxdWlyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdJbkxvY2sucHVzaCgoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGp1c3QgY2FyZSBpZiBpdCBmaW5pc2hlZFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSgpKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIGRyYWluaW5nIHRoZSBxdWV1ZSB1bnRpbCB0aGVyZSdzIG5vdGhpbmcgdG8gd2FpdCBvblxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGhpcy5wZW5kaW5nSW5Mb2NrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdE9uID0gWy4uLnRoaXMucGVuZGluZ0luTG9ja107XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbCh3YWl0T24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nSW5Mb2NrLnNwbGljZSgwLCB3YWl0T24ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfYWNxdWlyZUxvY2snLCAnbG9jayByZWxlYXNlZCBmb3Igc3RvcmFnZSBrZXknLCB0aGlzLnN0b3JhZ2VLZXkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2tBY3F1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfYWNxdWlyZUxvY2snLCAnZW5kJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogVXNlIGluc3RlYWQgb2Yge0BsaW5rICNnZXRTZXNzaW9ufSBpbnNpZGUgdGhlIGxpYnJhcnkuIEl0IGlzXG4gICAgICogc2VtYW50aWNhbGx5IHVzdWFsbHkgd2hhdCB5b3Ugd2FudCwgYXMgZ2V0dGluZyBhIHNlc3Npb24gaW52b2x2ZXMgc29tZVxuICAgICAqIHByb2Nlc3NpbmcgYWZ0ZXJ3YXJkcyB0aGF0IHJlcXVpcmVzIG9ubHkgb25lIGNsaWVudCBvcGVyYXRpbmcgb24gdGhlXG4gICAgICogc2Vzc2lvbiBhdCBvbmNlIGFjcm9zcyBtdWx0aXBsZSB0YWJzIG9yIHByb2Nlc3Nlcy5cbiAgICAgKi9cbiAgICBhc3luYyBfdXNlU2Vzc2lvbihmbikge1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI191c2VTZXNzaW9uJywgJ2JlZ2luJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyB0aGUgdXNlIG9mIF9fbG9hZFNlc3Npb24gaGVyZSBpcyB0aGUgb25seSBjb3JyZWN0IHVzZSBvZiB0aGUgZnVuY3Rpb24hXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9fbG9hZFNlc3Npb24oKTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBmbihyZXN1bHQpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfdXNlU2Vzc2lvbicsICdlbmQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBORVZFUiBVU0UgRElSRUNUTFkhXG4gICAgICpcbiAgICAgKiBBbHdheXMgdXNlIHtAbGluayAjX3VzZVNlc3Npb259LlxuICAgICAqL1xuICAgIGFzeW5jIF9fbG9hZFNlc3Npb24oKSB7XG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX19sb2FkU2Vzc2lvbigpJywgJ2JlZ2luJyk7XG4gICAgICAgIGlmICghdGhpcy5sb2NrQWNxdWlyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX19sb2FkU2Vzc2lvbigpJywgJ3VzZWQgb3V0c2lkZSBvZiBhbiBhY3F1aXJlZCBsb2NrIScsIG5ldyBFcnJvcigpLnN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRTZXNzaW9uID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IG1heWJlU2Vzc2lvbiA9IGF3YWl0IGdldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI2dldFNlc3Npb24oKScsICdzZXNzaW9uIGZyb20gc3RvcmFnZScsIG1heWJlU2Vzc2lvbik7XG4gICAgICAgICAgICBpZiAobWF5YmVTZXNzaW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzVmFsaWRTZXNzaW9uKG1heWJlU2Vzc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlc3Npb24gPSBtYXliZVNlc3Npb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI2dldFNlc3Npb24oKScsICdzZXNzaW9uIGZyb20gc3RvcmFnZSBpcyBub3QgdmFsaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY3VycmVudFNlc3Npb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IG51bGwgfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGhhc0V4cGlyZWQgPSBjdXJyZW50U2Vzc2lvbi5leHBpcmVzX2F0XG4gICAgICAgICAgICAgICAgPyBjdXJyZW50U2Vzc2lvbi5leHBpcmVzX2F0IDw9IERhdGUubm93KCkgLyAxMDAwXG4gICAgICAgICAgICAgICAgOiBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX19sb2FkU2Vzc2lvbigpJywgYHNlc3Npb24gaGFzJHtoYXNFeHBpcmVkID8gJycgOiAnIG5vdCd9IGV4cGlyZWRgLCAnZXhwaXJlc19hdCcsIGN1cnJlbnRTZXNzaW9uLmV4cGlyZXNfYXQpO1xuICAgICAgICAgICAgaWYgKCFoYXNFeHBpcmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBzZXNzaW9uOiBjdXJyZW50U2Vzc2lvbiB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBzZXNzaW9uLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKTtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBzZXNzaW9uIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19fbG9hZFNlc3Npb24oKScsICdlbmQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHVzZXIgZGV0YWlscyBpZiB0aGVyZSBpcyBhbiBleGlzdGluZyBzZXNzaW9uLlxuICAgICAqIEBwYXJhbSBqd3QgVGFrZXMgaW4gYW4gb3B0aW9uYWwgYWNjZXNzIHRva2VuIGp3dC4gSWYgbm8gand0IGlzIHByb3ZpZGVkLCBnZXRVc2VyKCkgd2lsbCBhdHRlbXB0IHRvIGdldCB0aGUgand0IGZyb20gdGhlIGN1cnJlbnQgc2Vzc2lvbi5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRVc2VyKGp3dCkge1xuICAgICAgICBpZiAoand0KSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fZ2V0VXNlcihqd3QpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2dldFVzZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF9nZXRVc2VyKGp3dCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGp3dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnR0VUJywgYCR7dGhpcy51cmx9L3VzZXJgLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgand0OiBqd3QsXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdHRVQnLCBgJHt0aGlzLnVybH0vdXNlcmAsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBqd3Q6IChfYiA9IChfYSA9IGRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2Vzc190b2tlbikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICB4Zm9ybTogX3VzZXJSZXNwb25zZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB1c2VyIGRhdGEgZm9yIGEgbG9nZ2VkIGluIHVzZXIuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlVXNlcihhdHRyaWJ1dGVzLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXBkYXRlVXNlcihhdHRyaWJ1dGVzLCBvcHRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF91cGRhdGVVc2VyKGF0dHJpYnV0ZXMsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogc2Vzc2lvbkRhdGEsIGVycm9yOiBzZXNzaW9uRXJyb3IgfSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IHNlc3Npb25FcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uRGF0YS5zZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gc2Vzc2lvbkRhdGEuc2Vzc2lvbjtcbiAgICAgICAgICAgICAgICBsZXQgY29kZUNoYWxsZW5nZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScgJiYgYXR0cmlidXRlcy5lbWFpbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlUEtDRVZlcmlmaWVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmAsIGNvZGVWZXJpZmllcik7XG4gICAgICAgICAgICAgICAgICAgIGNvZGVDaGFsbGVuZ2UgPSBhd2FpdCBnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UoY29kZVZlcmlmaWVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29kZUNoYWxsZW5nZU1ldGhvZCA9IGNvZGVWZXJpZmllciA9PT0gY29kZUNoYWxsZW5nZSA/ICdwbGFpbicgOiAnczI1Nic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3I6IHVzZXJFcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BVVCcsIGAke3RoaXMudXJsfS91c2VyYCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5lbWFpbFJlZGlyZWN0VG8sXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXR0cmlidXRlcyksIHsgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogY29kZUNoYWxsZW5nZU1ldGhvZCB9KSxcbiAgICAgICAgICAgICAgICAgICAgand0OiBzZXNzaW9uLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHVzZXJFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgdXNlckVycm9yO1xuICAgICAgICAgICAgICAgIHNlc3Npb24udXNlciA9IGRhdGEudXNlcjtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihzZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnVVNFUl9VUERBVEVEJywgc2Vzc2lvbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBzZXNzaW9uLnVzZXIgfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRGVjb2RlcyBhIEpXVCAod2l0aG91dCBwZXJmb3JtaW5nIGFueSB2YWxpZGF0aW9uKS5cbiAgICAgKi9cbiAgICBfZGVjb2RlSldUKGp3dCkge1xuICAgICAgICByZXR1cm4gZGVjb2RlSldUUGF5bG9hZChqd3QpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzZXNzaW9uIGRhdGEgZnJvbSB0aGUgY3VycmVudCBzZXNzaW9uLiBJZiB0aGUgY3VycmVudCBzZXNzaW9uIGlzIGV4cGlyZWQsIHNldFNlc3Npb24gd2lsbCB0YWtlIGNhcmUgb2YgcmVmcmVzaGluZyBpdCB0byBvYnRhaW4gYSBuZXcgc2Vzc2lvbi5cbiAgICAgKiBJZiB0aGUgcmVmcmVzaCB0b2tlbiBvciBhY2Nlc3MgdG9rZW4gaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiBpcyBpbnZhbGlkLCBhbiBlcnJvciB3aWxsIGJlIHRocm93bi5cbiAgICAgKiBAcGFyYW0gY3VycmVudFNlc3Npb24gVGhlIGN1cnJlbnQgc2Vzc2lvbiB0aGF0IG1pbmltYWxseSBjb250YWlucyBhbiBhY2Nlc3MgdG9rZW4gYW5kIHJlZnJlc2ggdG9rZW4uXG4gICAgICovXG4gICAgYXN5bmMgc2V0U2Vzc2lvbihjdXJyZW50U2Vzc2lvbikge1xuICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9zZXRTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF9zZXRTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRTZXNzaW9uLmFjY2Vzc190b2tlbiB8fCAhY3VycmVudFNlc3Npb24ucmVmcmVzaF90b2tlbikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGltZU5vdyA9IERhdGUubm93KCkgLyAxMDAwO1xuICAgICAgICAgICAgbGV0IGV4cGlyZXNBdCA9IHRpbWVOb3c7XG4gICAgICAgICAgICBsZXQgaGFzRXhwaXJlZCA9IHRydWU7XG4gICAgICAgICAgICBsZXQgc2Vzc2lvbiA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGVjb2RlSldUUGF5bG9hZChjdXJyZW50U2Vzc2lvbi5hY2Nlc3NfdG9rZW4pO1xuICAgICAgICAgICAgaWYgKHBheWxvYWQuZXhwKSB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0F0ID0gcGF5bG9hZC5leHA7XG4gICAgICAgICAgICAgICAgaGFzRXhwaXJlZCA9IGV4cGlyZXNBdCA8PSB0aW1lTm93O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc0V4cGlyZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNlc3Npb246IHJlZnJlc2hlZFNlc3Npb24sIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9jYWxsUmVmcmVzaFRva2VuKGN1cnJlbnRTZXNzaW9uLnJlZnJlc2hfdG9rZW4pO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3I6IGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghcmVmcmVzaGVkU2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2Vzc2lvbiA9IHJlZnJlc2hlZFNlc3Npb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9nZXRVc2VyKGN1cnJlbnRTZXNzaW9uLmFjY2Vzc190b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXNzaW9uID0ge1xuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW46IGN1cnJlbnRTZXNzaW9uLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaF90b2tlbjogY3VycmVudFNlc3Npb24ucmVmcmVzaF90b2tlbixcbiAgICAgICAgICAgICAgICAgICAgdXNlcjogZGF0YS51c2VyLFxuICAgICAgICAgICAgICAgICAgICB0b2tlbl90eXBlOiAnYmVhcmVyJyxcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlc19pbjogZXhwaXJlc0F0IC0gdGltZU5vdyxcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlc19hdDogZXhwaXJlc0F0LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oc2Vzc2lvbik7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIHNlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBzZXNzaW9uLnVzZXIsIHNlc3Npb24gfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IG51bGwsIHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBuZXcgc2Vzc2lvbiwgcmVnYXJkbGVzcyBvZiBleHBpcnkgc3RhdHVzLlxuICAgICAqIFRha2VzIGluIGFuIG9wdGlvbmFsIGN1cnJlbnQgc2Vzc2lvbi4gSWYgbm90IHBhc3NlZCBpbiwgdGhlbiByZWZyZXNoU2Vzc2lvbigpIHdpbGwgYXR0ZW1wdCB0byByZXRyaWV2ZSBpdCBmcm9tIGdldFNlc3Npb24oKS5cbiAgICAgKiBJZiB0aGUgY3VycmVudCBzZXNzaW9uJ3MgcmVmcmVzaCB0b2tlbiBpcyBpbnZhbGlkLCBhbiBlcnJvciB3aWxsIGJlIHRocm93bi5cbiAgICAgKiBAcGFyYW0gY3VycmVudFNlc3Npb24gVGhlIGN1cnJlbnQgc2Vzc2lvbi4gSWYgcGFzc2VkIGluLCBpdCBtdXN0IGNvbnRhaW4gYSByZWZyZXNoIHRva2VuLlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3JlZnJlc2hTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF9yZWZyZXNoU2Vzc2lvbihjdXJyZW50U2Vzc2lvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRTZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2Vzc2lvbiA9IChfYSA9IGRhdGEuc2Vzc2lvbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIShjdXJyZW50U2Vzc2lvbiA9PT0gbnVsbCB8fCBjdXJyZW50U2Vzc2lvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VycmVudFNlc3Npb24ucmVmcmVzaF90b2tlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhTZXNzaW9uTWlzc2luZ0Vycm9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2Vzc2lvbiwgZXJyb3IgfSA9IGF3YWl0IHRoaXMuX2NhbGxSZWZyZXNoVG9rZW4oY3VycmVudFNlc3Npb24ucmVmcmVzaF90b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvcjogZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IHNlc3Npb24udXNlciwgc2Vzc2lvbiB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzZXNzaW9uIGRhdGEgZnJvbSBhIFVSTCBzdHJpbmdcbiAgICAgKi9cbiAgICBhc3luYyBfZ2V0U2Vzc2lvbkZyb21VUkwoaXNQS0NFRmxvdykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCFpc0Jyb3dzZXIoKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yKCdObyBicm93c2VyIGRldGVjdGVkLicpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZmxvd1R5cGUgPT09ICdpbXBsaWNpdCcgJiYgIXRoaXMuX2lzSW1wbGljaXRHcmFudEZsb3coKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW1wbGljaXRHcmFudFJlZGlyZWN0RXJyb3IoJ05vdCBhIHZhbGlkIGltcGxpY2l0IGdyYW50IGZsb3cgdXJsLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5mbG93VHlwZSA9PSAncGtjZScgJiYgIWlzUEtDRUZsb3cpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFBLQ0VHcmFudENvZGVFeGNoYW5nZUVycm9yKCdOb3QgYSB2YWxpZCBQS0NFIGZsb3cgdXJsLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gcGFyc2VQYXJhbWV0ZXJzRnJvbVVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgICBpZiAoaXNQS0NFRmxvdykge1xuICAgICAgICAgICAgICAgIGlmICghcGFyYW1zLmNvZGUpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoUEtDRUdyYW50Q29kZUV4Y2hhbmdlRXJyb3IoJ05vIGNvZGUgZGV0ZWN0ZWQuJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fZXhjaGFuZ2VDb2RlRm9yU2Vzc2lvbihwYXJhbXMuY29kZSk7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmRlbGV0ZSgnY29kZScpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh3aW5kb3cuaGlzdG9yeS5zdGF0ZSwgJycsIHVybC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IGRhdGEuc2Vzc2lvbiwgcmVkaXJlY3RUeXBlOiBudWxsIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyYW1zLmVycm9yIHx8IHBhcmFtcy5lcnJvcl9kZXNjcmlwdGlvbiB8fCBwYXJhbXMuZXJyb3JfY29kZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW1wbGljaXRHcmFudFJlZGlyZWN0RXJyb3IocGFyYW1zLmVycm9yX2Rlc2NyaXB0aW9uIHx8ICdFcnJvciBpbiBVUkwgd2l0aCB1bnNwZWNpZmllZCBlcnJvcl9kZXNjcmlwdGlvbicsIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IHBhcmFtcy5lcnJvciB8fCAndW5zcGVjaWZpZWRfZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICBjb2RlOiBwYXJhbXMuZXJyb3JfY29kZSB8fCAndW5zcGVjaWZpZWRfY29kZScsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IHByb3ZpZGVyX3Rva2VuLCBwcm92aWRlcl9yZWZyZXNoX3Rva2VuLCBhY2Nlc3NfdG9rZW4sIHJlZnJlc2hfdG9rZW4sIGV4cGlyZXNfaW4sIGV4cGlyZXNfYXQsIHRva2VuX3R5cGUsIH0gPSBwYXJhbXM7XG4gICAgICAgICAgICBpZiAoIWFjY2Vzc190b2tlbiB8fCAhZXhwaXJlc19pbiB8fCAhcmVmcmVzaF90b2tlbiB8fCAhdG9rZW5fdHlwZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW1wbGljaXRHcmFudFJlZGlyZWN0RXJyb3IoJ05vIHNlc3Npb24gZGVmaW5lZCBpbiBVUkwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRpbWVOb3cgPSBNYXRoLnJvdW5kKERhdGUubm93KCkgLyAxMDAwKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGlyZXNJbiA9IHBhcnNlSW50KGV4cGlyZXNfaW4pO1xuICAgICAgICAgICAgbGV0IGV4cGlyZXNBdCA9IHRpbWVOb3cgKyBleHBpcmVzSW47XG4gICAgICAgICAgICBpZiAoZXhwaXJlc19hdCkge1xuICAgICAgICAgICAgICAgIGV4cGlyZXNBdCA9IHBhcnNlSW50KGV4cGlyZXNfYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWN0dWFsbHlFeHBpcmVzSW4gPSBleHBpcmVzQXQgLSB0aW1lTm93O1xuICAgICAgICAgICAgaWYgKGFjdHVhbGx5RXhwaXJlc0luICogMTAwMCA8PSBBVVRPX1JFRlJFU0hfVElDS19EVVJBVElPTikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgQHN1cGFiYXNlL2dvdHJ1ZS1qczogU2Vzc2lvbiBhcyByZXRyaWV2ZWQgZnJvbSBVUkwgZXhwaXJlcyBpbiAke2FjdHVhbGx5RXhwaXJlc0lufXMsIHNob3VsZCBoYXZlIGJlZW4gY2xvc2VyIHRvICR7ZXhwaXJlc0lufXNgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzc3VlZEF0ID0gZXhwaXJlc0F0IC0gZXhwaXJlc0luO1xuICAgICAgICAgICAgaWYgKHRpbWVOb3cgLSBpc3N1ZWRBdCA+PSAxMjApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0BzdXBhYmFzZS9nb3RydWUtanM6IFNlc3Npb24gYXMgcmV0cmlldmVkIGZyb20gVVJMIHdhcyBpc3N1ZWQgb3ZlciAxMjBzIGFnbywgVVJMIGNvdWxkIGJlIHN0YWxlJywgaXNzdWVkQXQsIGV4cGlyZXNBdCwgdGltZU5vdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aW1lTm93IC0gaXNzdWVkQXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBTZXNzaW9uIGFzIHJldHJpZXZlZCBmcm9tIFVSTCB3YXMgaXNzdWVkIGluIHRoZSBmdXR1cmU/IENoZWNrIHRoZSBkZXZpY2UgY2xvayBmb3Igc2tldycsIGlzc3VlZEF0LCBleHBpcmVzQXQsIHRpbWVOb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fZ2V0VXNlcihhY2Nlc3NfdG9rZW4pO1xuICAgICAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlcl90b2tlbixcbiAgICAgICAgICAgICAgICBwcm92aWRlcl9yZWZyZXNoX3Rva2VuLFxuICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICBleHBpcmVzX2luOiBleHBpcmVzSW4sXG4gICAgICAgICAgICAgICAgZXhwaXJlc19hdDogZXhwaXJlc0F0LFxuICAgICAgICAgICAgICAgIHJlZnJlc2hfdG9rZW4sXG4gICAgICAgICAgICAgICAgdG9rZW5fdHlwZSxcbiAgICAgICAgICAgICAgICB1c2VyOiBkYXRhLnVzZXIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gUmVtb3ZlIHRva2VucyBmcm9tIFVSTFxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnJztcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2dldFNlc3Npb25Gcm9tVVJMKCknLCAnY2xlYXJpbmcgd2luZG93LmxvY2F0aW9uLmhhc2gnKTtcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbiwgcmVkaXJlY3RUeXBlOiBwYXJhbXMudHlwZSB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbjogbnVsbCwgcmVkaXJlY3RUeXBlOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgVVJMIGNvbnRhaW5zIHBhcmFtZXRlcnMgZ2l2ZW4gYnkgYW4gaW1wbGljaXQgb2F1dGggZ3JhbnQgZmxvdyAoaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzY3NDkuaHRtbCNzZWN0aW9uLTQuMilcbiAgICAgKi9cbiAgICBfaXNJbXBsaWNpdEdyYW50RmxvdygpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gcGFyc2VQYXJhbWV0ZXJzRnJvbVVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIHJldHVybiAhIShpc0Jyb3dzZXIoKSAmJiAocGFyYW1zLmFjY2Vzc190b2tlbiB8fCBwYXJhbXMuZXJyb3JfZGVzY3JpcHRpb24pKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IFVSTCBhbmQgYmFja2luZyBzdG9yYWdlIGNvbnRhaW4gcGFyYW1ldGVycyBnaXZlbiBieSBhIFBLQ0UgZmxvd1xuICAgICAqL1xuICAgIGFzeW5jIF9pc1BLQ0VGbG93KCkge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBwYXJzZVBhcmFtZXRlcnNGcm9tVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgY29uc3QgY3VycmVudFN0b3JhZ2VDb250ZW50ID0gYXdhaXQgZ2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCk7XG4gICAgICAgIHJldHVybiAhIShwYXJhbXMuY29kZSAmJiBjdXJyZW50U3RvcmFnZUNvbnRlbnQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbnNpZGUgYSBicm93c2VyIGNvbnRleHQsIGBzaWduT3V0KClgIHdpbGwgcmVtb3ZlIHRoZSBsb2dnZWQgaW4gdXNlciBmcm9tIHRoZSBicm93c2VyIHNlc3Npb24gYW5kIGxvZyB0aGVtIG91dCAtIHJlbW92aW5nIGFsbCBpdGVtcyBmcm9tIGxvY2Fsc3RvcmFnZSBhbmQgdGhlbiB0cmlnZ2VyIGEgYFwiU0lHTkVEX09VVFwiYCBldmVudC5cbiAgICAgKlxuICAgICAqIEZvciBzZXJ2ZXItc2lkZSBtYW5hZ2VtZW50LCB5b3UgY2FuIHJldm9rZSBhbGwgcmVmcmVzaCB0b2tlbnMgZm9yIGEgdXNlciBieSBwYXNzaW5nIGEgdXNlcidzIEpXVCB0aHJvdWdoIHRvIGBhdXRoLmFwaS5zaWduT3V0KEpXVDogc3RyaW5nKWAuXG4gICAgICogVGhlcmUgaXMgbm8gd2F5IHRvIHJldm9rZSBhIHVzZXIncyBhY2Nlc3MgdG9rZW4gand0IHVudGlsIGl0IGV4cGlyZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHNldCBhIHNob3J0ZXIgZXhwaXJ5IG9uIHRoZSBqd3QgZm9yIHRoaXMgcmVhc29uLlxuICAgICAqXG4gICAgICogSWYgdXNpbmcgYG90aGVyc2Agc2NvcGUsIG5vIGBTSUdORURfT1VUYCBldmVudCBpcyBmaXJlZCFcbiAgICAgKi9cbiAgICBhc3luYyBzaWduT3V0KG9wdGlvbnMgPSB7IHNjb3BlOiAnZ2xvYmFsJyB9KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3NpZ25PdXQob3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBfc2lnbk91dCh7IHNjb3BlIH0gPSB7IHNjb3BlOiAnZ2xvYmFsJyB9KSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3I6IHNlc3Npb25FcnJvciB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGVycm9yOiBzZXNzaW9uRXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gKF9hID0gZGF0YS5zZXNzaW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWNjZXNzX3Rva2VuO1xuICAgICAgICAgICAgaWYgKGFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvciB9ID0gYXdhaXQgdGhpcy5hZG1pbi5zaWduT3V0KGFjY2Vzc1Rva2VuLCBzY29wZSk7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSA0MDRzIHNpbmNlIHVzZXIgbWlnaHQgbm90IGV4aXN0IGFueW1vcmVcbiAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIDQwMXMgc2luY2UgYW4gaW52YWxpZCBvciBleHBpcmVkIEpXVCBzaG91bGQgc2lnbiBvdXQgdGhlIGN1cnJlbnQgc2Vzc2lvblxuICAgICAgICAgICAgICAgICAgICBpZiAoIShpc0F1dGhBcGlFcnJvcihlcnJvcikgJiYgKGVycm9yLnN0YXR1cyA9PT0gNDA0IHx8IGVycm9yLnN0YXR1cyA9PT0gNDAxKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGVycm9yIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2NvcGUgIT09ICdvdGhlcnMnKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHJlbW92ZUl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmApO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfT1VUJywgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVjZWl2ZSBhIG5vdGlmaWNhdGlvbiBldmVyeSB0aW1lIGFuIGF1dGggZXZlbnQgaGFwcGVucy5cbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIHdoZW4gYW4gYXV0aCBldmVudCBoYXBwZW5zLlxuICAgICAqL1xuICAgIG9uQXV0aFN0YXRlQ2hhbmdlKGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IGlkID0gdXVpZCgpO1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI3Vuc3Vic2NyaWJlKCknLCAnc3RhdGUgY2hhbmdlIGNhbGxiYWNrIHdpdGggaWQgcmVtb3ZlZCcsIGlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMuZGVsZXRlKGlkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2RlYnVnKCcjb25BdXRoU3RhdGVDaGFuZ2UoKScsICdyZWdpc3RlcmVkIGNhbGxiYWNrIHdpdGggaWQnLCBpZCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VFbWl0dGVycy5zZXQoaWQsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0SW5pdGlhbFNlc3Npb24oaWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IHsgc3Vic2NyaXB0aW9uIH0gfTtcbiAgICB9XG4gICAgYXN5bmMgX2VtaXRJbml0aWFsU2Vzc2lvbihpZCkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9LCBlcnJvciwgfSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIGF3YWl0ICgoX2EgPSB0aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMuZ2V0KGlkKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGxiYWNrKCdJTklUSUFMX1NFU1NJT04nLCBzZXNzaW9uKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJ0lOSVRJQUxfU0VTU0lPTicsICdjYWxsYmFjayBpZCcsIGlkLCAnc2Vzc2lvbicsIHNlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGF3YWl0ICgoX2IgPSB0aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMuZ2V0KGlkKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGxiYWNrKCdJTklUSUFMX1NFU1NJT04nLCBudWxsKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJ0lOSVRJQUxfU0VTU0lPTicsICdjYWxsYmFjayBpZCcsIGlkLCAnZXJyb3InLCBlcnIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbmRzIGEgcGFzc3dvcmQgcmVzZXQgcmVxdWVzdCB0byBhbiBlbWFpbCBhZGRyZXNzLiBUaGlzIG1ldGhvZCBzdXBwb3J0cyB0aGUgUEtDRSBmbG93LlxuICAgICAqXG4gICAgICogQHBhcmFtIGVtYWlsIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlZGlyZWN0VG8gVGhlIFVSTCB0byBzZW5kIHRoZSB1c2VyIHRvIGFmdGVyIHRoZXkgY2xpY2sgdGhlIHBhc3N3b3JkIHJlc2V0IGxpbmsuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuY2FwdGNoYVRva2VuIFZlcmlmaWNhdGlvbiB0b2tlbiByZWNlaXZlZCB3aGVuIHRoZSB1c2VyIGNvbXBsZXRlcyB0aGUgY2FwdGNoYSBvbiB0aGUgc2l0ZS5cbiAgICAgKi9cbiAgICBhc3luYyByZXNldFBhc3N3b3JkRm9yRW1haWwoZW1haWwsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBsZXQgY29kZUNoYWxsZW5nZSA9IG51bGw7XG4gICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlTWV0aG9kID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuZmxvd1R5cGUgPT09ICdwa2NlJykge1xuICAgICAgICAgICAgY29uc3QgY29kZVZlcmlmaWVyID0gZ2VuZXJhdGVQS0NFVmVyaWZpZXIoKTtcbiAgICAgICAgICAgIGF3YWl0IHNldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmAsIGAke2NvZGVWZXJpZmllcn0vUEFTU1dPUkRfUkVDT1ZFUllgKTtcbiAgICAgICAgICAgIGNvZGVDaGFsbGVuZ2UgPSBhd2FpdCBnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UoY29kZVZlcmlmaWVyKTtcbiAgICAgICAgICAgIGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBjb2RlVmVyaWZpZXIgPT09IGNvZGVDaGFsbGVuZ2UgPyAncGxhaW4nIDogJ3MyNTYnO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vcmVjb3ZlcmAsIHtcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgICAgICAgICAgICBjb2RlX2NoYWxsZW5nZTogY29kZUNoYWxsZW5nZSxcbiAgICAgICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiBjb2RlQ2hhbGxlbmdlTWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86IG9wdGlvbnMucmVkaXJlY3RUbyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCB0aGUgaWRlbnRpdGllcyBsaW5rZWQgdG8gYSB1c2VyLlxuICAgICAqL1xuICAgIGFzeW5jIGdldFVzZXJJZGVudGl0aWVzKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLmdldFVzZXIoKTtcbiAgICAgICAgICAgIGlmIChlcnJvcilcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgaWRlbnRpdGllczogKF9hID0gZGF0YS51c2VyLmlkZW50aXRpZXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFtdIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIExpbmtzIGFuIG9hdXRoIGlkZW50aXR5IHRvIGFuIGV4aXN0aW5nIHVzZXIuXG4gICAgICogVGhpcyBtZXRob2Qgc3VwcG9ydHMgdGhlIFBLQ0UgZmxvdy5cbiAgICAgKi9cbiAgICBhc3luYyBsaW5rSWRlbnRpdHkoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLl9nZXRVcmxGb3JQcm92aWRlcihgJHt0aGlzLnVybH0vdXNlci9pZGVudGl0aWVzL2F1dGhvcml6ZWAsIGNyZWRlbnRpYWxzLnByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86IChfYSA9IGNyZWRlbnRpYWxzLm9wdGlvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZWRpcmVjdFRvLFxuICAgICAgICAgICAgICAgICAgICBzY29wZXM6IChfYiA9IGNyZWRlbnRpYWxzLm9wdGlvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zY29wZXMsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiAoX2MgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgIHNraXBCcm93c2VyUmVkaXJlY3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdHRVQnLCB1cmwsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBqd3Q6IChfZSA9IChfZCA9IGRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmFjY2Vzc190b2tlbikgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICBpZiAoaXNCcm93c2VyKCkgJiYgISgoX2EgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2tpcEJyb3dzZXJSZWRpcmVjdCkpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS51cmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBwcm92aWRlcjogY3JlZGVudGlhbHMucHJvdmlkZXIsIHVybDogZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnVybCB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgcHJvdmlkZXI6IGNyZWRlbnRpYWxzLnByb3ZpZGVyLCB1cmw6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVubGlua3MgYW4gaWRlbnRpdHkgZnJvbSBhIHVzZXIgYnkgZGVsZXRpbmcgaXQuIFRoZSB1c2VyIHdpbGwgbm8gbG9uZ2VyIGJlIGFibGUgdG8gc2lnbiBpbiB3aXRoIHRoYXQgaWRlbnRpdHkgb25jZSBpdCdzIHVubGlua2VkLlxuICAgICAqL1xuICAgIGFzeW5jIHVubGlua0lkZW50aXR5KGlkZW50aXR5KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0RFTEVURScsIGAke3RoaXMudXJsfS91c2VyL2lkZW50aXRpZXMvJHtpZGVudGl0eS5pZGVudGl0eV9pZH1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgand0OiAoX2IgPSAoX2EgPSBkYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBuZXcgSldULlxuICAgICAqIEBwYXJhbSByZWZyZXNoVG9rZW4gQSB2YWxpZCByZWZyZXNoIHRva2VuIHRoYXQgd2FzIHJldHVybmVkIG9uIGxvZ2luLlxuICAgICAqL1xuICAgIGFzeW5jIF9yZWZyZXNoQWNjZXNzVG9rZW4ocmVmcmVzaFRva2VuKSB7XG4gICAgICAgIGNvbnN0IGRlYnVnTmFtZSA9IGAjX3JlZnJlc2hBY2Nlc3NUb2tlbigke3JlZnJlc2hUb2tlbi5zdWJzdHJpbmcoMCwgNSl9Li4uKWA7XG4gICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2JlZ2luJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgLy8gd2lsbCBhdHRlbXB0IHRvIHJlZnJlc2ggdGhlIHRva2VuIHdpdGggZXhwb25lbnRpYWwgYmFja29mZlxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJldHJ5YWJsZShhc3luYyAoYXR0ZW1wdCkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVwKGF0dGVtcHQgKiAyMDApOyAvLyAwLCAyMDAsIDQwMCwgODAwLCAuLi5cbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdyZWZyZXNoaW5nIGF0dGVtcHQnLCBhdHRlbXB0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1yZWZyZXNoX3Rva2VuYCwge1xuICAgICAgICAgICAgICAgICAgICBib2R5OiB7IHJlZnJlc2hfdG9rZW46IHJlZnJlc2hUb2tlbiB9LFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgKGF0dGVtcHQsIF8sIHJlc3VsdCkgPT4gcmVzdWx0ICYmXG4gICAgICAgICAgICAgICAgcmVzdWx0LmVycm9yICYmXG4gICAgICAgICAgICAgICAgaXNBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihyZXN1bHQuZXJyb3IpICYmXG4gICAgICAgICAgICAgICAgLy8gcmV0cnlhYmxlIG9ubHkgaWYgdGhlIHJlcXVlc3QgY2FuIGJlIHNlbnQgYmVmb3JlIHRoZSBiYWNrb2ZmIG92ZXJmbG93cyB0aGUgdGljayBkdXJhdGlvblxuICAgICAgICAgICAgICAgIERhdGUubm93KCkgKyAoYXR0ZW1wdCArIDEpICogMjAwIC0gc3RhcnRlZEF0IDwgQVVUT19SRUZSRVNIX1RJQ0tfRFVSQVRJT04pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBzZXNzaW9uOiBudWxsLCB1c2VyOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2VuZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9pc1ZhbGlkU2Vzc2lvbihtYXliZVNlc3Npb24pIHtcbiAgICAgICAgY29uc3QgaXNWYWxpZFNlc3Npb24gPSB0eXBlb2YgbWF5YmVTZXNzaW9uID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgbWF5YmVTZXNzaW9uICE9PSBudWxsICYmXG4gICAgICAgICAgICAnYWNjZXNzX3Rva2VuJyBpbiBtYXliZVNlc3Npb24gJiZcbiAgICAgICAgICAgICdyZWZyZXNoX3Rva2VuJyBpbiBtYXliZVNlc3Npb24gJiZcbiAgICAgICAgICAgICdleHBpcmVzX2F0JyBpbiBtYXliZVNlc3Npb247XG4gICAgICAgIHJldHVybiBpc1ZhbGlkU2Vzc2lvbjtcbiAgICB9XG4gICAgYXN5bmMgX2hhbmRsZVByb3ZpZGVyU2lnbkluKHByb3ZpZGVyLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuX2dldFVybEZvclByb3ZpZGVyKGAke3RoaXMudXJsfS9hdXRob3JpemVgLCBwcm92aWRlciwge1xuICAgICAgICAgICAgcmVkaXJlY3RUbzogb3B0aW9ucy5yZWRpcmVjdFRvLFxuICAgICAgICAgICAgc2NvcGVzOiBvcHRpb25zLnNjb3BlcyxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBvcHRpb25zLnF1ZXJ5UGFyYW1zLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZGVidWcoJyNfaGFuZGxlUHJvdmlkZXJTaWduSW4oKScsICdwcm92aWRlcicsIHByb3ZpZGVyLCAnb3B0aW9ucycsIG9wdGlvbnMsICd1cmwnLCB1cmwpO1xuICAgICAgICAvLyB0cnkgdG8gb3BlbiBvbiB0aGUgYnJvd3NlclxuICAgICAgICBpZiAoaXNCcm93c2VyKCkgJiYgIW9wdGlvbnMuc2tpcEJyb3dzZXJSZWRpcmVjdCkge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbih1cmwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGRhdGE6IHsgcHJvdmlkZXIsIHVybCB9LCBlcnJvcjogbnVsbCB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZWNvdmVycyB0aGUgc2Vzc2lvbiBmcm9tIExvY2FsU3RvcmFnZSBhbmQgcmVmcmVzaGVzXG4gICAgICogTm90ZTogdGhpcyBtZXRob2QgaXMgYXN5bmMgdG8gYWNjb21tb2RhdGUgZm9yIEFzeW5jU3RvcmFnZSBlLmcuIGluIFJlYWN0IG5hdGl2ZS5cbiAgICAgKi9cbiAgICBhc3luYyBfcmVjb3ZlckFuZFJlZnJlc2goKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgZGVidWdOYW1lID0gJyNfcmVjb3ZlckFuZFJlZnJlc2goKSc7XG4gICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2JlZ2luJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U2Vzc2lvbiA9IGF3YWl0IGdldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdzZXNzaW9uIGZyb20gc3RvcmFnZScsIGN1cnJlbnRTZXNzaW9uKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5faXNWYWxpZFNlc3Npb24oY3VycmVudFNlc3Npb24pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnc2Vzc2lvbiBpcyBub3QgdmFsaWQnKTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNlc3Npb24gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0aW1lTm93ID0gTWF0aC5yb3VuZChEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgICAgICAgICBjb25zdCBleHBpcmVzV2l0aE1hcmdpbiA9ICgoX2EgPSBjdXJyZW50U2Vzc2lvbi5leHBpcmVzX2F0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBJbmZpbml0eSkgPCB0aW1lTm93ICsgRVhQSVJZX01BUkdJTjtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgYHNlc3Npb24gaGFzJHtleHBpcmVzV2l0aE1hcmdpbiA/ICcnIDogJyBub3QnfSBleHBpcmVkIHdpdGggbWFyZ2luIG9mICR7RVhQSVJZX01BUkdJTn1zYCk7XG4gICAgICAgICAgICBpZiAoZXhwaXJlc1dpdGhNYXJnaW4pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFRva2VuICYmIGN1cnJlbnRTZXNzaW9uLnJlZnJlc2hfdG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvciB9ID0gYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdyZWZyZXNoIGZhaWxlZCB3aXRoIGEgbm9uLXJldHJ5YWJsZSBlcnJvciwgcmVtb3ZpbmcgdGhlIHNlc3Npb24nLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbm8gbmVlZCB0byBwZXJzaXN0IGN1cnJlbnRTZXNzaW9uIGFnYWluLCBhcyB3ZSBqdXN0IGxvYWRlZCBpdCBmcm9tXG4gICAgICAgICAgICAgICAgLy8gbG9jYWwgc3RvcmFnZTsgcGVyc2lzdGluZyBpdCBhZ2FpbiBtYXkgb3ZlcndyaXRlIGEgdmFsdWUgc2F2ZWQgYnlcbiAgICAgICAgICAgICAgICAvLyBhbm90aGVyIGNsaWVudCB3aXRoIGFjY2VzcyB0byB0aGUgc2FtZSBsb2NhbCBzdG9yYWdlXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIGN1cnJlbnRTZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdlcnJvcicsIGVycik7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdlbmQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBfY2FsbFJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJlZnJlc2hpbmcgaXMgYWxyZWFkeSBpbiBwcm9ncmVzc1xuICAgICAgICBpZiAodGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZC5wcm9taXNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlYnVnTmFtZSA9IGAjX2NhbGxSZWZyZXNoVG9rZW4oJHtyZWZyZXNoVG9rZW4uc3Vic3RyaW5nKDAsIDUpfS4uLilgO1xuICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdiZWdpbicpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQgPSBuZXcgRGVmZXJyZWQoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IHRoaXMuX3JlZnJlc2hBY2Nlc3NUb2tlbihyZWZyZXNoVG9rZW4pO1xuICAgICAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgaWYgKCFkYXRhLnNlc3Npb24pXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhTZXNzaW9uTWlzc2luZ0Vycm9yKCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihkYXRhLnNlc3Npb24pO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1RPS0VOX1JFRlJFU0hFRCcsIGRhdGEuc2Vzc2lvbik7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IHNlc3Npb246IGRhdGEuc2Vzc2lvbiwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ0RlZmVycmVkLnJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdlcnJvcicsIGVycm9yKTtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IHNlc3Npb246IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgaWYgKCFpc0F1dGhSZXRyeWFibGVGZXRjaEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfT1VUJywgbnVsbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIChfYSA9IHRoaXMucmVmcmVzaGluZ0RlZmVycmVkKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAoX2IgPSB0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ0RlZmVycmVkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2VuZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIF9ub3RpZnlBbGxTdWJzY3JpYmVycyhldmVudCwgc2Vzc2lvbiwgYnJvYWRjYXN0ID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBkZWJ1Z05hbWUgPSBgI19ub3RpZnlBbGxTdWJzY3JpYmVycygke2V2ZW50fSlgO1xuICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdiZWdpbicsIHNlc3Npb24sIGBicm9hZGNhc3QgPSAke2Jyb2FkY2FzdH1gKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmJyb2FkY2FzdENoYW5uZWwgJiYgYnJvYWRjYXN0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5icm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKHsgZXZlbnQsIHNlc3Npb24gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2VzID0gQXJyYXkuZnJvbSh0aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMudmFsdWVzKCkpLm1hcChhc3luYyAoeCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHguY2FsbGJhY2soZXZlbnQsIHNlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXJyb3JzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnZW5kJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogc2V0IGN1cnJlbnRTZXNzaW9uIGFuZCBjdXJyZW50VXNlclxuICAgICAqIHByb2Nlc3MgdG8gX3N0YXJ0QXV0b1JlZnJlc2hUb2tlbiBpZiBwb3NzaWJsZVxuICAgICAqL1xuICAgIGFzeW5jIF9zYXZlU2Vzc2lvbihzZXNzaW9uKSB7XG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX3NhdmVTZXNzaW9uKCknLCBzZXNzaW9uKTtcbiAgICAgICAgYXdhaXQgc2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5LCBzZXNzaW9uKTtcbiAgICB9XG4gICAgYXN5bmMgX3JlbW92ZVNlc3Npb24oKSB7XG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX3JlbW92ZVNlc3Npb24oKScpO1xuICAgICAgICBhd2FpdCByZW1vdmVJdGVtQXN5bmModGhpcy5zdG9yYWdlLCB0aGlzLnN0b3JhZ2VLZXkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFueSByZWdpc3RlcmVkIHZpc2liaWxpdHljaGFuZ2UgY2FsbGJhY2suXG4gICAgICpcbiAgICAgKiB7QHNlZSAjc3RhcnRBdXRvUmVmcmVzaH1cbiAgICAgKiB7QHNlZSAjc3RvcEF1dG9SZWZyZXNofVxuICAgICAqL1xuICAgIF9yZW1vdmVWaXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrKCkge1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI19yZW1vdmVWaXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrKCknKTtcbiAgICAgICAgY29uc3QgY2FsbGJhY2sgPSB0aGlzLnZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2s7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjayA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNCcm93c2VyKCkgJiYgKHdpbmRvdyA9PT0gbnVsbCB8fCB3aW5kb3cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgY2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdyZW1vdmluZyB2aXNpYmlsaXR5Y2hhbmdlIGNhbGxiYWNrIGZhaWxlZCcsIGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgdGhlIHByaXZhdGUgaW1wbGVtZW50YXRpb24gb2Yge0BsaW5rICNzdGFydEF1dG9SZWZyZXNofS4gVXNlIHRoaXNcbiAgICAgKiB3aXRoaW4gdGhlIGxpYnJhcnkuXG4gICAgICovXG4gICAgYXN5bmMgX3N0YXJ0QXV0b1JlZnJlc2goKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX3N0b3BBdXRvUmVmcmVzaCgpO1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI19zdGFydEF1dG9SZWZyZXNoKCknKTtcbiAgICAgICAgY29uc3QgdGlja2VyID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5fYXV0b1JlZnJlc2hUb2tlblRpY2soKSwgQVVUT19SRUZSRVNIX1RJQ0tfRFVSQVRJT04pO1xuICAgICAgICB0aGlzLmF1dG9SZWZyZXNoVGlja2VyID0gdGlja2VyO1xuICAgICAgICBpZiAodGlja2VyICYmIHR5cGVvZiB0aWNrZXIgPT09ICdvYmplY3QnICYmIHR5cGVvZiB0aWNrZXIudW5yZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIHRpY2tlciBpcyBhIE5vZGVKUyBUaW1lb3V0IG9iamVjdCB0aGF0IGhhcyBhbiBgdW5yZWZgIG1ldGhvZFxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS90aW1lcnMuaHRtbCN0aW1lb3V0dW5yZWZcbiAgICAgICAgICAgIC8vIFdoZW4gYXV0byByZWZyZXNoIGlzIHVzZWQgaW4gTm9kZUpTIChsaWtlIGZvciB0ZXN0aW5nKSB0aGVcbiAgICAgICAgICAgIC8vIGBzZXRJbnRlcnZhbGAgaXMgcHJldmVudGluZyB0aGUgcHJvY2VzcyBmcm9tIGJlaW5nIG1hcmtlZCBhc1xuICAgICAgICAgICAgLy8gZmluaXNoZWQgYW5kIHRlc3RzIHJ1biBlbmRsZXNzbHkuIFRoaXMgY2FuIGJlIHByZXZlbnRlZCBieSBjYWxsaW5nXG4gICAgICAgICAgICAvLyBgdW5yZWYoKWAgb24gdGhlIHJldHVybmVkIG9iamVjdC5cbiAgICAgICAgICAgIHRpY2tlci51bnJlZigpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBEZW5vICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgRGVuby51bnJlZlRpbWVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBzaW1pbGFyIGxpa2UgZm9yIE5vZGVKUywgYnV0IHdpdGggdGhlIERlbm8gQVBJXG4gICAgICAgICAgICAvLyBodHRwczovL2Rlbm8ubGFuZC9hcGlAbGF0ZXN0P3Vuc3RhYmxlJnM9RGVuby51bnJlZlRpbWVyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBEZW5vLnVucmVmVGltZXIodGlja2VyKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBydW4gdGhlIHRpY2sgaW1tZWRpYXRlbHksIGJ1dCBpbiB0aGUgbmV4dCBwYXNzIG9mIHRoZSBldmVudCBsb29wIHNvIHRoYXRcbiAgICAgICAgLy8gI19pbml0aWFsaXplIGNhbiBiZSBhbGxvd2VkIHRvIGNvbXBsZXRlIHdpdGhvdXQgcmVjdXJzaXZlbHkgd2FpdGluZyBvblxuICAgICAgICAvLyBpdHNlbGZcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fYXV0b1JlZnJlc2hUb2tlblRpY2soKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgdGhlIHByaXZhdGUgaW1wbGVtZW50YXRpb24gb2Yge0BsaW5rICNzdG9wQXV0b1JlZnJlc2h9LiBVc2UgdGhpc1xuICAgICAqIHdpdGhpbiB0aGUgbGlicmFyeS5cbiAgICAgKi9cbiAgICBhc3luYyBfc3RvcEF1dG9SZWZyZXNoKCkge1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI19zdG9wQXV0b1JlZnJlc2goKScpO1xuICAgICAgICBjb25zdCB0aWNrZXIgPSB0aGlzLmF1dG9SZWZyZXNoVGlja2VyO1xuICAgICAgICB0aGlzLmF1dG9SZWZyZXNoVGlja2VyID0gbnVsbDtcbiAgICAgICAgaWYgKHRpY2tlcikge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aWNrZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0YXJ0cyBhbiBhdXRvLXJlZnJlc2ggcHJvY2VzcyBpbiB0aGUgYmFja2dyb3VuZC4gVGhlIHNlc3Npb24gaXMgY2hlY2tlZFxuICAgICAqIGV2ZXJ5IGZldyBzZWNvbmRzLiBDbG9zZSB0byB0aGUgdGltZSBvZiBleHBpcmF0aW9uIGEgcHJvY2VzcyBpcyBzdGFydGVkIHRvXG4gICAgICogcmVmcmVzaCB0aGUgc2Vzc2lvbi4gSWYgcmVmcmVzaGluZyBmYWlscyBpdCB3aWxsIGJlIHJldHJpZWQgZm9yIGFzIGxvbmcgYXNcbiAgICAgKiBuZWNlc3NhcnkuXG4gICAgICpcbiAgICAgKiBJZiB5b3Ugc2V0IHRoZSB7QGxpbmsgR29UcnVlQ2xpZW50T3B0aW9ucyNhdXRvUmVmcmVzaFRva2VufSB5b3UgZG9uJ3QgbmVlZFxuICAgICAqIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiwgaXQgd2lsbCBiZSBjYWxsZWQgZm9yIHlvdS5cbiAgICAgKlxuICAgICAqIE9uIGJyb3dzZXJzIHRoZSByZWZyZXNoIHByb2Nlc3Mgd29ya3Mgb25seSB3aGVuIHRoZSB0YWIvd2luZG93IGlzIGluIHRoZVxuICAgICAqIGZvcmVncm91bmQgdG8gY29uc2VydmUgcmVzb3VyY2VzIGFzIHdlbGwgYXMgcHJldmVudCByYWNlIGNvbmRpdGlvbnMgYW5kXG4gICAgICogZmxvb2RpbmcgYXV0aCB3aXRoIHJlcXVlc3RzLiBJZiB5b3UgY2FsbCB0aGlzIG1ldGhvZCBhbnkgbWFuYWdlZFxuICAgICAqIHZpc2liaWxpdHkgY2hhbmdlIGNhbGxiYWNrIHdpbGwgYmUgcmVtb3ZlZCBhbmQgeW91IG11c3QgbWFuYWdlIHZpc2liaWxpdHlcbiAgICAgKiBjaGFuZ2VzIG9uIHlvdXIgb3duLlxuICAgICAqXG4gICAgICogT24gbm9uLWJyb3dzZXIgcGxhdGZvcm1zIHRoZSByZWZyZXNoIHByb2Nlc3Mgd29ya3MgKmNvbnRpbnVvdXNseSogaW4gdGhlXG4gICAgICogYmFja2dyb3VuZCwgd2hpY2ggbWF5IG5vdCBiZSBkZXNpcmFibGUuIFlvdSBzaG91bGQgaG9vayBpbnRvIHlvdXJcbiAgICAgKiBwbGF0Zm9ybSdzIGZvcmVncm91bmQgaW5kaWNhdGlvbiBtZWNoYW5pc20gYW5kIGNhbGwgdGhlc2UgbWV0aG9kc1xuICAgICAqIGFwcHJvcHJpYXRlbHkgdG8gY29uc2VydmUgcmVzb3VyY2VzLlxuICAgICAqXG4gICAgICoge0BzZWUgI3N0b3BBdXRvUmVmcmVzaH1cbiAgICAgKi9cbiAgICBhc3luYyBzdGFydEF1dG9SZWZyZXNoKCkge1xuICAgICAgICB0aGlzLl9yZW1vdmVWaXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuX3N0YXJ0QXV0b1JlZnJlc2goKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU3RvcHMgYW4gYWN0aXZlIGF1dG8gcmVmcmVzaCBwcm9jZXNzIHJ1bm5pbmcgaW4gdGhlIGJhY2tncm91bmQgKGlmIGFueSkuXG4gICAgICpcbiAgICAgKiBJZiB5b3UgY2FsbCB0aGlzIG1ldGhvZCBhbnkgbWFuYWdlZCB2aXNpYmlsaXR5IGNoYW5nZSBjYWxsYmFjayB3aWxsIGJlXG4gICAgICogcmVtb3ZlZCBhbmQgeW91IG11c3QgbWFuYWdlIHZpc2liaWxpdHkgY2hhbmdlcyBvbiB5b3VyIG93bi5cbiAgICAgKlxuICAgICAqIFNlZSB7QGxpbmsgI3N0YXJ0QXV0b1JlZnJlc2h9IGZvciBtb3JlIGRldGFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgc3RvcEF1dG9SZWZyZXNoKCkge1xuICAgICAgICB0aGlzLl9yZW1vdmVWaXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuX3N0b3BBdXRvUmVmcmVzaCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSdW5zIHRoZSBhdXRvIHJlZnJlc2ggdG9rZW4gdGljay5cbiAgICAgKi9cbiAgICBhc3luYyBfYXV0b1JlZnJlc2hUb2tlblRpY2soKSB7XG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCknLCAnYmVnaW4nKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKDAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogeyBzZXNzaW9uIH0sIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uIHx8ICFzZXNzaW9uLnJlZnJlc2hfdG9rZW4gfHwgIXNlc3Npb24uZXhwaXJlc19hdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19hdXRvUmVmcmVzaFRva2VuVGljaygpJywgJ25vIHNlc3Npb24nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXNzaW9uIHdpbGwgZXhwaXJlIGluIHRoaXMgbWFueSB0aWNrcyAob3IgaGFzIGFscmVhZHkgZXhwaXJlZCBpZiA8PSAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cGlyZXNJblRpY2tzID0gTWF0aC5mbG9vcigoc2Vzc2lvbi5leHBpcmVzX2F0ICogMTAwMCAtIG5vdykgLyBBVVRPX1JFRlJFU0hfVElDS19EVVJBVElPTik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfYXV0b1JlZnJlc2hUb2tlblRpY2soKScsIGBhY2Nlc3MgdG9rZW4gZXhwaXJlcyBpbiAke2V4cGlyZXNJblRpY2tzfSB0aWNrcywgYSB0aWNrIGxhc3RzICR7QVVUT19SRUZSRVNIX1RJQ0tfRFVSQVRJT059bXMsIHJlZnJlc2ggdGhyZXNob2xkIGlzICR7QVVUT19SRUZSRVNIX1RJQ0tfVEhSRVNIT0xEfSB0aWNrc2ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBpcmVzSW5UaWNrcyA8PSBBVVRPX1JFRlJFU0hfVElDS19USFJFU0hPTEQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihzZXNzaW9uLnJlZnJlc2hfdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdBdXRvIHJlZnJlc2ggdGljayBmYWlsZWQgd2l0aCBlcnJvci4gVGhpcyBpcyBsaWtlbHkgYSB0cmFuc2llbnQgZXJyb3IuJywgZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCknLCAnZW5kJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlLmlzQWNxdWlyZVRpbWVvdXQgfHwgZSBpbnN0YW5jZW9mIExvY2tBY3F1aXJlVGltZW91dEVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJ2F1dG8gcmVmcmVzaCB0b2tlbiB0aWNrIGxvY2sgbm90IGF2YWlsYWJsZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgY2FsbGJhY2tzIG9uIHRoZSBicm93c2VyIC8gcGxhdGZvcm0sIHdoaWNoIGluLXR1cm4gcnVuXG4gICAgICogYWxnb3JpdGhtcyB3aGVuIHRoZSBicm93c2VyIHdpbmRvdy90YWIgYXJlIGluIGZvcmVncm91bmQuIE9uIG5vbi1icm93c2VyXG4gICAgICogcGxhdGZvcm1zIGl0IGFzc3VtZXMgYWx3YXlzIGZvcmVncm91bmQuXG4gICAgICovXG4gICAgYXN5bmMgX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2UoKScpO1xuICAgICAgICBpZiAoIWlzQnJvd3NlcigpIHx8ICEod2luZG93ID09PSBudWxsIHx8IHdpbmRvdyA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICAgICAgLy8gaW4gbm9uLWJyb3dzZXIgZW52aXJvbm1lbnRzIHRoZSByZWZyZXNoIHRva2VuIHRpY2tlciBydW5zIGFsd2F5c1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdXRvUmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2sgPSBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLl9vblZpc2liaWxpdHlDaGFuZ2VkKGZhbHNlKTtcbiAgICAgICAgICAgIHdpbmRvdyA9PT0gbnVsbCB8fCB3aW5kb3cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgdGhpcy52aXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrKTtcbiAgICAgICAgICAgIC8vIG5vdyBpbW1lZGlhdGVseSBjYWxsIHRoZSB2aXNiaWxpdHkgY2hhbmdlZCBjYWxsYmFjayB0byBzZXR1cCB3aXRoIHRoZVxuICAgICAgICAgICAgLy8gY3VycmVudCB2aXNiaWxpdHkgc3RhdGVcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX29uVmlzaWJpbGl0eUNoYW5nZWQodHJ1ZSk7IC8vIGluaXRpYWwgY2FsbFxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2UnLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgcmVnaXN0ZXJlZCB3aXRoIGB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScpYC5cbiAgICAgKi9cbiAgICBhc3luYyBfb25WaXNpYmlsaXR5Q2hhbmdlZChjYWxsZWRGcm9tSW5pdGlhbGl6ZSkge1xuICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gYCNfb25WaXNpYmlsaXR5Q2hhbmdlZCgke2NhbGxlZEZyb21Jbml0aWFsaXplfSlgO1xuICAgICAgICB0aGlzLl9kZWJ1ZyhtZXRob2ROYW1lLCAndmlzaWJpbGl0eVN0YXRlJywgZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlKTtcbiAgICAgICAgaWYgKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gJ3Zpc2libGUnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICAgICAgLy8gaW4gYnJvd3NlciBlbnZpcm9ubWVudHMgdGhlIHJlZnJlc2ggdG9rZW4gdGlja2VyIHJ1bnMgb25seSBvbiBmb2N1c2VkIHRhYnNcbiAgICAgICAgICAgICAgICAvLyB3aGljaCBwcmV2ZW50cyByYWNlIGNvbmRpdGlvbnNcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydEF1dG9SZWZyZXNoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNhbGxlZEZyb21Jbml0aWFsaXplKSB7XG4gICAgICAgICAgICAgICAgLy8gY2FsbGVkIHdoZW4gdGhlIHZpc2liaWxpdHkgaGFzIGNoYW5nZWQsIGkuZS4gdGhlIGJyb3dzZXJcbiAgICAgICAgICAgICAgICAvLyB0cmFuc2l0aW9uZWQgZnJvbSBoaWRkZW4gLT4gdmlzaWJsZSBzbyB3ZSBuZWVkIHRvIHNlZSBpZiB0aGUgc2Vzc2lvblxuICAgICAgICAgICAgICAgIC8vIHNob3VsZCBiZSByZWNvdmVyZWQgaW1tZWRpYXRlbHkuLi4gYnV0IHRvIGRvIHRoYXQgd2UgbmVlZCB0byBhY3F1aXJlXG4gICAgICAgICAgICAgICAgLy8gdGhlIGxvY2sgZmlyc3QgYXN5bmNocm9ub3VzbHlcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgIT09ICd2aXNpYmxlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcobWV0aG9kTmFtZSwgJ2FjcXVpcmVkIHRoZSBsb2NrIHRvIHJlY292ZXIgdGhlIHNlc3Npb24sIGJ1dCB0aGUgYnJvd3NlciB2aXNpYmlsaXR5U3RhdGUgaXMgbm8gbG9uZ2VyIHZpc2libGUsIGFib3J0aW5nJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB2aXNpYmlsaXR5IGhhcyBjaGFuZ2VkIHdoaWxlIHdhaXRpbmcgZm9yIHRoZSBsb2NrLCBhYm9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlY292ZXIgdGhlIHNlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVjb3ZlckFuZFJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RvcEF1dG9SZWZyZXNoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIHRoZSByZWxldmFudCBsb2dpbiBVUkwgZm9yIGEgdGhpcmQtcGFydHkgcHJvdmlkZXIuXG4gICAgICogQHBhcmFtIG9wdGlvbnMucmVkaXJlY3RUbyBBIFVSTCBvciBtb2JpbGUgYWRkcmVzcyB0byBzZW5kIHRoZSB1c2VyIHRvIGFmdGVyIHRoZXkgYXJlIGNvbmZpcm1lZC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5zY29wZXMgQSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBzY29wZXMgZ3JhbnRlZCB0byB0aGUgT0F1dGggYXBwbGljYXRpb24uXG4gICAgICogQHBhcmFtIG9wdGlvbnMucXVlcnlQYXJhbXMgQW4gb2JqZWN0IG9mIGtleS12YWx1ZSBwYWlycyBjb250YWluaW5nIHF1ZXJ5IHBhcmFtZXRlcnMgZ3JhbnRlZCB0byB0aGUgT0F1dGggYXBwbGljYXRpb24uXG4gICAgICovXG4gICAgYXN5bmMgX2dldFVybEZvclByb3ZpZGVyKHVybCwgcHJvdmlkZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgdXJsUGFyYW1zID0gW2Bwcm92aWRlcj0ke2VuY29kZVVSSUNvbXBvbmVudChwcm92aWRlcil9YF07XG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucmVkaXJlY3RUbykge1xuICAgICAgICAgICAgdXJsUGFyYW1zLnB1c2goYHJlZGlyZWN0X3RvPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMucmVkaXJlY3RUbyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5zY29wZXMpIHtcbiAgICAgICAgICAgIHVybFBhcmFtcy5wdXNoKGBzY29wZXM9JHtlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5zY29wZXMpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlUEtDRVZlcmlmaWVyKCk7XG4gICAgICAgICAgICBhd2FpdCBzZXRJdGVtQXN5bmModGhpcy5zdG9yYWdlLCBgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgLCBjb2RlVmVyaWZpZXIpO1xuICAgICAgICAgICAgY29uc3QgY29kZUNoYWxsZW5nZSA9IGF3YWl0IGdlbmVyYXRlUEtDRUNoYWxsZW5nZShjb2RlVmVyaWZpZXIpO1xuICAgICAgICAgICAgY29uc3QgY29kZUNoYWxsZW5nZU1ldGhvZCA9IGNvZGVWZXJpZmllciA9PT0gY29kZUNoYWxsZW5nZSA/ICdwbGFpbicgOiAnczI1Nic7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZygnUEtDRScsICdjb2RlIHZlcmlmaWVyJywgYCR7Y29kZVZlcmlmaWVyLnN1YnN0cmluZygwLCA1KX0uLi5gLCAnY29kZSBjaGFsbGVuZ2UnLCBjb2RlQ2hhbGxlbmdlLCAnbWV0aG9kJywgY29kZUNoYWxsZW5nZU1ldGhvZCk7XG4gICAgICAgICAgICBjb25zdCBmbG93UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2U6IGAke2VuY29kZVVSSUNvbXBvbmVudChjb2RlQ2hhbGxlbmdlKX1gLFxuICAgICAgICAgICAgICAgIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGNvZGVDaGFsbGVuZ2VNZXRob2QpfWAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHVybFBhcmFtcy5wdXNoKGZsb3dQYXJhbXMudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5xdWVyeVBhcmFtcykge1xuICAgICAgICAgICAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKG9wdGlvbnMucXVlcnlQYXJhbXMpO1xuICAgICAgICAgICAgdXJsUGFyYW1zLnB1c2gocXVlcnkudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5za2lwQnJvd3NlclJlZGlyZWN0KSB7XG4gICAgICAgICAgICB1cmxQYXJhbXMucHVzaChgc2tpcF9odHRwX3JlZGlyZWN0PSR7b3B0aW9ucy5za2lwQnJvd3NlclJlZGlyZWN0fWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHt1cmx9PyR7dXJsUGFyYW1zLmpvaW4oJyYnKX1gO1xuICAgIH1cbiAgICBhc3luYyBfdW5lbnJvbGwocGFyYW1zKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogc2Vzc2lvbkRhdGEsIGVycm9yOiBzZXNzaW9uRXJyb3IgfSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBzZXNzaW9uRXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdERUxFVEUnLCBgJHt0aGlzLnVybH0vZmFjdG9ycy8ke3BhcmFtcy5mYWN0b3JJZH1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgand0OiAoX2EgPSBzZXNzaW9uRGF0YSA9PT0gbnVsbCB8fCBzZXNzaW9uRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvbkRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiB7QHNlZSBHb1RydWVNRkFBcGkjZW5yb2xsfVxuICAgICAqL1xuICAgIGFzeW5jIF9lbnJvbGwocGFyYW1zKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHNlc3Npb25EYXRhLCBlcnJvcjogc2Vzc2lvbkVycm9yIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogc2Vzc2lvbkVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L2ZhY3RvcnNgLCB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyaWVuZGx5X25hbWU6IHBhcmFtcy5mcmllbmRseU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3JfdHlwZTogcGFyYW1zLmZhY3RvclR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXI6IHBhcmFtcy5pc3N1ZXIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgand0OiAoX2EgPSBzZXNzaW9uRGF0YSA9PT0gbnVsbCB8fCBzZXNzaW9uRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvbkRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChfYiA9IGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS50b3RwKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucXJfY29kZSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhLnRvdHAucXJfY29kZSA9IGBkYXRhOmltYWdlL3N2Zyt4bWw7dXRmLTgsJHtkYXRhLnRvdHAucXJfY29kZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIHtAc2VlIEdvVHJ1ZU1GQUFwaSN2ZXJpZnl9XG4gICAgICovXG4gICAgYXN5bmMgX3ZlcmlmeShwYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHNlc3Npb25EYXRhLCBlcnJvcjogc2Vzc2lvbkVycm9yIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBzZXNzaW9uRXJyb3IgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9mYWN0b3JzLyR7cGFyYW1zLmZhY3RvcklkfS92ZXJpZnlgLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7IGNvZGU6IHBhcmFtcy5jb2RlLCBjaGFsbGVuZ2VfaWQ6IHBhcmFtcy5jaGFsbGVuZ2VJZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgand0OiAoX2EgPSBzZXNzaW9uRGF0YSA9PT0gbnVsbCB8fCBzZXNzaW9uRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvbkRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihPYmplY3QuYXNzaWduKHsgZXhwaXJlc19hdDogTWF0aC5yb3VuZChEYXRlLm5vdygpIC8gMTAwMCkgKyBkYXRhLmV4cGlyZXNfaW4gfSwgZGF0YSkpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnTUZBX0NIQUxMRU5HRV9WRVJJRklFRCcsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIHtAc2VlIEdvVHJ1ZU1GQUFwaSNjaGFsbGVuZ2V9XG4gICAgICovXG4gICAgYXN5bmMgX2NoYWxsZW5nZShwYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHNlc3Npb25EYXRhLCBlcnJvcjogc2Vzc2lvbkVycm9yIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBzZXNzaW9uRXJyb3IgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vZmFjdG9ycy8ke3BhcmFtcy5mYWN0b3JJZH0vY2hhbGxlbmdlYCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgand0OiAoX2EgPSBzZXNzaW9uRGF0YSA9PT0gbnVsbCB8fCBzZXNzaW9uRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvbkRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICoge0BzZWUgR29UcnVlTUZBQXBpI2NoYWxsZW5nZUFuZFZlcmlmeX1cbiAgICAgKi9cbiAgICBhc3luYyBfY2hhbGxlbmdlQW5kVmVyaWZ5KHBhcmFtcykge1xuICAgICAgICAvLyBib3RoIF9jaGFsbGVuZ2UgYW5kIF92ZXJpZnkgaW5kZXBlbmRlbnRseSBhY3F1aXJlIHRoZSBsb2NrLCBzbyBubyBuZWVkXG4gICAgICAgIC8vIHRvIGFjcXVpcmUgaXQgaGVyZVxuICAgICAgICBjb25zdCB7IGRhdGE6IGNoYWxsZW5nZURhdGEsIGVycm9yOiBjaGFsbGVuZ2VFcnJvciB9ID0gYXdhaXQgdGhpcy5fY2hhbGxlbmdlKHtcbiAgICAgICAgICAgIGZhY3RvcklkOiBwYXJhbXMuZmFjdG9ySWQsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY2hhbGxlbmdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBjaGFsbGVuZ2VFcnJvciB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl92ZXJpZnkoe1xuICAgICAgICAgICAgZmFjdG9ySWQ6IHBhcmFtcy5mYWN0b3JJZCxcbiAgICAgICAgICAgIGNoYWxsZW5nZUlkOiBjaGFsbGVuZ2VEYXRhLmlkLFxuICAgICAgICAgICAgY29kZTogcGFyYW1zLmNvZGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiB7QHNlZSBHb1RydWVNRkFBcGkjbGlzdEZhY3RvcnN9XG4gICAgICovXG4gICAgYXN5bmMgX2xpc3RGYWN0b3JzKCkge1xuICAgICAgICAvLyB1c2UgI2dldFVzZXIgaW5zdGVhZCBvZiAjX2dldFVzZXIgYXMgdGhlIGZvcm1lciBhY3F1aXJlcyBhIGxvY2tcbiAgICAgICAgY29uc3QgeyBkYXRhOiB7IHVzZXIgfSwgZXJyb3I6IHVzZXJFcnJvciwgfSA9IGF3YWl0IHRoaXMuZ2V0VXNlcigpO1xuICAgICAgICBpZiAodXNlckVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogdXNlckVycm9yIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmFjdG9ycyA9ICh1c2VyID09PSBudWxsIHx8IHVzZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHVzZXIuZmFjdG9ycykgfHwgW107XG4gICAgICAgIGNvbnN0IHRvdHAgPSBmYWN0b3JzLmZpbHRlcigoZmFjdG9yKSA9PiBmYWN0b3IuZmFjdG9yX3R5cGUgPT09ICd0b3RwJyAmJiBmYWN0b3Iuc3RhdHVzID09PSAndmVyaWZpZWQnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhbGw6IGZhY3RvcnMsXG4gICAgICAgICAgICAgICAgdG90cCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICoge0BzZWUgR29UcnVlTUZBQXBpI2dldEF1dGhlbnRpY2F0b3JBc3N1cmFuY2VMZXZlbH1cbiAgICAgKi9cbiAgICBhc3luYyBfZ2V0QXV0aGVudGljYXRvckFzc3VyYW5jZUxldmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogeyBzZXNzaW9uIH0sIGVycm9yOiBzZXNzaW9uRXJyb3IsIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogc2Vzc2lvbkVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogeyBjdXJyZW50TGV2ZWw6IG51bGwsIG5leHRMZXZlbDogbnVsbCwgY3VycmVudEF1dGhlbnRpY2F0aW9uTWV0aG9kczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5fZGVjb2RlSldUKHNlc3Npb24uYWNjZXNzX3Rva2VuKTtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudExldmVsID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAocGF5bG9hZC5hYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudExldmVsID0gcGF5bG9hZC5hYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBuZXh0TGV2ZWwgPSBjdXJyZW50TGV2ZWw7XG4gICAgICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRGYWN0b3JzID0gKF9iID0gKF9hID0gc2Vzc2lvbi51c2VyLmZhY3RvcnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5maWx0ZXIoKGZhY3RvcikgPT4gZmFjdG9yLnN0YXR1cyA9PT0gJ3ZlcmlmaWVkJykpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFtdO1xuICAgICAgICAgICAgICAgIGlmICh2ZXJpZmllZEZhY3RvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBuZXh0TGV2ZWwgPSAnYWFsMic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRBdXRoZW50aWNhdGlvbk1ldGhvZHMgPSBwYXlsb2FkLmFtciB8fCBbXTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IGN1cnJlbnRMZXZlbCwgbmV4dExldmVsLCBjdXJyZW50QXV0aGVudGljYXRpb25NZXRob2RzIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuR29UcnVlQ2xpZW50Lm5leHRJbnN0YW5jZUlEID0gMDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUdvVHJ1ZUNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiR29UcnVlQWRtaW5BcGkiLCJERUZBVUxUX0hFQURFUlMiLCJFWFBJUllfTUFSR0lOIiwiR09UUlVFX1VSTCIsIlNUT1JBR0VfS0VZIiwiQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yIiwiQXV0aFBLQ0VHcmFudENvZGVFeGNoYW5nZUVycm9yIiwiQXV0aEludmFsaWRDcmVkZW50aWFsc0Vycm9yIiwiQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IiLCJBdXRoSW52YWxpZFRva2VuUmVzcG9uc2VFcnJvciIsIkF1dGhVbmtub3duRXJyb3IiLCJpc0F1dGhBcGlFcnJvciIsImlzQXV0aEVycm9yIiwiaXNBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvciIsIl9yZXF1ZXN0IiwiX3Nlc3Npb25SZXNwb25zZSIsIl9zZXNzaW9uUmVzcG9uc2VQYXNzd29yZCIsIl91c2VyUmVzcG9uc2UiLCJfc3NvUmVzcG9uc2UiLCJkZWNvZGVKV1RQYXlsb2FkIiwiRGVmZXJyZWQiLCJnZXRJdGVtQXN5bmMiLCJpc0Jyb3dzZXIiLCJyZW1vdmVJdGVtQXN5bmMiLCJyZXNvbHZlRmV0Y2giLCJzZXRJdGVtQXN5bmMiLCJ1dWlkIiwicmV0cnlhYmxlIiwic2xlZXAiLCJnZW5lcmF0ZVBLQ0VWZXJpZmllciIsImdlbmVyYXRlUEtDRUNoYWxsZW5nZSIsInN1cHBvcnRzTG9jYWxTdG9yYWdlIiwicGFyc2VQYXJhbWV0ZXJzRnJvbVVSTCIsImxvY2FsU3RvcmFnZUFkYXB0ZXIiLCJtZW1vcnlMb2NhbFN0b3JhZ2VBZGFwdGVyIiwicG9seWZpbGxHbG9iYWxUaGlzIiwidmVyc2lvbiIsIkxvY2tBY3F1aXJlVGltZW91dEVycm9yIiwibmF2aWdhdG9yTG9jayIsIkRFRkFVTFRfT1BUSU9OUyIsInVybCIsInN0b3JhZ2VLZXkiLCJhdXRvUmVmcmVzaFRva2VuIiwicGVyc2lzdFNlc3Npb24iLCJkZXRlY3RTZXNzaW9uSW5VcmwiLCJoZWFkZXJzIiwiZmxvd1R5cGUiLCJkZWJ1ZyIsIkFVVE9fUkVGUkVTSF9USUNLX0RVUkFUSU9OIiwiQVVUT19SRUZSRVNIX1RJQ0tfVEhSRVNIT0xEIiwibG9ja05vT3AiLCJuYW1lIiwiYWNxdWlyZVRpbWVvdXQiLCJmbiIsIkdvVHJ1ZUNsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIl9hIiwiX2IiLCJtZW1vcnlTdG9yYWdlIiwic3RhdGVDaGFuZ2VFbWl0dGVycyIsIk1hcCIsImF1dG9SZWZyZXNoVGlja2VyIiwidmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjayIsInJlZnJlc2hpbmdEZWZlcnJlZCIsImluaXRpYWxpemVQcm9taXNlIiwibG9ja0FjcXVpcmVkIiwicGVuZGluZ0luTG9jayIsImJyb2FkY2FzdENoYW5uZWwiLCJsb2dnZXIiLCJjb25zb2xlIiwibG9nIiwiaW5zdGFuY2VJRCIsIm5leHRJbnN0YW5jZUlEIiwid2FybiIsInNldHRpbmdzIiwiT2JqZWN0IiwiYXNzaWduIiwibG9nRGVidWdNZXNzYWdlcyIsImFkbWluIiwiZmV0Y2giLCJsb2NrIiwiZ2xvYmFsVGhpcyIsIm5hdmlnYXRvciIsImxvY2tzIiwibWZhIiwidmVyaWZ5IiwiX3ZlcmlmeSIsImJpbmQiLCJlbnJvbGwiLCJfZW5yb2xsIiwidW5lbnJvbGwiLCJfdW5lbnJvbGwiLCJjaGFsbGVuZ2UiLCJfY2hhbGxlbmdlIiwibGlzdEZhY3RvcnMiLCJfbGlzdEZhY3RvcnMiLCJjaGFsbGVuZ2VBbmRWZXJpZnkiLCJfY2hhbGxlbmdlQW5kVmVyaWZ5IiwiZ2V0QXV0aGVudGljYXRvckFzc3VyYW5jZUxldmVsIiwiX2dldEF1dGhlbnRpY2F0b3JBc3N1cmFuY2VMZXZlbCIsInN0b3JhZ2UiLCJCcm9hZGNhc3RDaGFubmVsIiwiZSIsImVycm9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwiX2RlYnVnIiwiX25vdGlmeUFsbFN1YnNjcmliZXJzIiwiZGF0YSIsInNlc3Npb24iLCJpbml0aWFsaXplIiwiYXJncyIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsIl9hY3F1aXJlTG9jayIsIl9pbml0aWFsaXplIiwiaXNQS0NFRmxvdyIsIl9pc1BLQ0VGbG93IiwiX2lzSW1wbGljaXRHcmFudEZsb3ciLCJfZ2V0U2Vzc2lvbkZyb21VUkwiLCJtZXNzYWdlIiwiX3JlbW92ZVNlc3Npb24iLCJyZWRpcmVjdFR5cGUiLCJfc2F2ZVNlc3Npb24iLCJzZXRUaW1lb3V0IiwiX3JlY292ZXJBbmRSZWZyZXNoIiwiX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2UiLCJzaWduVXAiLCJjcmVkZW50aWFscyIsIl9jIiwicmVzIiwiZW1haWwiLCJwYXNzd29yZCIsImNvZGVDaGFsbGVuZ2UiLCJjb2RlQ2hhbGxlbmdlTWV0aG9kIiwiY29kZVZlcmlmaWVyIiwicmVkaXJlY3RUbyIsImVtYWlsUmVkaXJlY3RUbyIsImJvZHkiLCJnb3RydWVfbWV0YV9zZWN1cml0eSIsImNhcHRjaGFfdG9rZW4iLCJjYXB0Y2hhVG9rZW4iLCJjb2RlX2NoYWxsZW5nZSIsImNvZGVfY2hhbGxlbmdlX21ldGhvZCIsInhmb3JtIiwicGhvbmUiLCJjaGFubmVsIiwidXNlciIsInNpZ25JbldpdGhQYXNzd29yZCIsIndlYWtfcGFzc3dvcmQiLCJ3ZWFrUGFzc3dvcmQiLCJzaWduSW5XaXRoT0F1dGgiLCJfZCIsIl9oYW5kbGVQcm92aWRlclNpZ25JbiIsInByb3ZpZGVyIiwic2NvcGVzIiwicXVlcnlQYXJhbXMiLCJza2lwQnJvd3NlclJlZGlyZWN0IiwiZXhjaGFuZ2VDb2RlRm9yU2Vzc2lvbiIsImF1dGhDb2RlIiwiX2V4Y2hhbmdlQ29kZUZvclNlc3Npb24iLCJzdG9yYWdlSXRlbSIsInNwbGl0IiwiYXV0aF9jb2RlIiwiY29kZV92ZXJpZmllciIsInNpZ25JbldpdGhJZFRva2VuIiwidG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJub25jZSIsImlkX3Rva2VuIiwic2lnbkluV2l0aE90cCIsIl9lIiwiY3JlYXRlX3VzZXIiLCJzaG91bGRDcmVhdGVVc2VyIiwibWVzc2FnZUlkIiwibWVzc2FnZV9pZCIsInZlcmlmeU90cCIsInBhcmFtcyIsInR5cGUiLCJ1bmRlZmluZWQiLCJFcnJvciIsInNpZ25JbldpdGhTU08iLCJwcm92aWRlcl9pZCIsInByb3ZpZGVySWQiLCJkb21haW4iLCJyZWRpcmVjdF90byIsInNraXBfaHR0cF9yZWRpcmVjdCIsInJlYXV0aGVudGljYXRlIiwiX3JlYXV0aGVudGljYXRlIiwiX3VzZVNlc3Npb24iLCJyZXN1bHQiLCJzZXNzaW9uRXJyb3IiLCJqd3QiLCJyZXNlbmQiLCJlbmRwb2ludCIsImdldFNlc3Npb24iLCJsYXN0IiwibGVuZ3RoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJwdXNoIiwid2FpdE9uIiwiYWxsIiwic3BsaWNlIiwiX19sb2FkU2Vzc2lvbiIsInN0YWNrIiwiY3VycmVudFNlc3Npb24iLCJtYXliZVNlc3Npb24iLCJfaXNWYWxpZFNlc3Npb24iLCJoYXNFeHBpcmVkIiwiZXhwaXJlc19hdCIsIm5vdyIsIl9jYWxsUmVmcmVzaFRva2VuIiwicmVmcmVzaF90b2tlbiIsImdldFVzZXIiLCJfZ2V0VXNlciIsInVwZGF0ZVVzZXIiLCJhdHRyaWJ1dGVzIiwiX3VwZGF0ZVVzZXIiLCJzZXNzaW9uRGF0YSIsInVzZXJFcnJvciIsIl9kZWNvZGVKV1QiLCJzZXRTZXNzaW9uIiwiX3NldFNlc3Npb24iLCJ0aW1lTm93IiwiZXhwaXJlc0F0IiwicGF5bG9hZCIsImV4cCIsInJlZnJlc2hlZFNlc3Npb24iLCJ0b2tlbl90eXBlIiwiZXhwaXJlc19pbiIsInJlZnJlc2hTZXNzaW9uIiwiX3JlZnJlc2hTZXNzaW9uIiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwiY29kZSIsIlVSTCIsInNlYXJjaFBhcmFtcyIsImRlbGV0ZSIsImhpc3RvcnkiLCJyZXBsYWNlU3RhdGUiLCJzdGF0ZSIsInRvU3RyaW5nIiwiZXJyb3JfZGVzY3JpcHRpb24iLCJlcnJvcl9jb2RlIiwicHJvdmlkZXJfdG9rZW4iLCJwcm92aWRlcl9yZWZyZXNoX3Rva2VuIiwiTWF0aCIsInJvdW5kIiwiZXhwaXJlc0luIiwicGFyc2VJbnQiLCJhY3R1YWxseUV4cGlyZXNJbiIsImlzc3VlZEF0IiwiaGFzaCIsImN1cnJlbnRTdG9yYWdlQ29udGVudCIsInNpZ25PdXQiLCJzY29wZSIsIl9zaWduT3V0IiwiYWNjZXNzVG9rZW4iLCJzdGF0dXMiLCJvbkF1dGhTdGF0ZUNoYW5nZSIsImNhbGxiYWNrIiwiaWQiLCJzdWJzY3JpcHRpb24iLCJ1bnN1YnNjcmliZSIsInNldCIsIl9lbWl0SW5pdGlhbFNlc3Npb24iLCJnZXQiLCJlcnIiLCJyZXNldFBhc3N3b3JkRm9yRW1haWwiLCJnZXRVc2VySWRlbnRpdGllcyIsImlkZW50aXRpZXMiLCJsaW5rSWRlbnRpdHkiLCJfZ2V0VXJsRm9yUHJvdmlkZXIiLCJ1bmxpbmtJZGVudGl0eSIsImlkZW50aXR5IiwiaWRlbnRpdHlfaWQiLCJfcmVmcmVzaEFjY2Vzc1Rva2VuIiwicmVmcmVzaFRva2VuIiwiZGVidWdOYW1lIiwic3Vic3RyaW5nIiwic3RhcnRlZEF0IiwiYXR0ZW1wdCIsIl8iLCJpc1ZhbGlkU2Vzc2lvbiIsImV4cGlyZXNXaXRoTWFyZ2luIiwiSW5maW5pdHkiLCJwcm9taXNlIiwicmVqZWN0IiwiYnJvYWRjYXN0IiwicG9zdE1lc3NhZ2UiLCJlcnJvcnMiLCJwcm9taXNlcyIsIkFycmF5IiwiZnJvbSIsInZhbHVlcyIsIm1hcCIsIngiLCJpIiwiX3JlbW92ZVZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2siLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiX3N0YXJ0QXV0b1JlZnJlc2giLCJfc3RvcEF1dG9SZWZyZXNoIiwidGlja2VyIiwic2V0SW50ZXJ2YWwiLCJfYXV0b1JlZnJlc2hUb2tlblRpY2siLCJ1bnJlZiIsIkRlbm8iLCJ1bnJlZlRpbWVyIiwiY2xlYXJJbnRlcnZhbCIsInN0YXJ0QXV0b1JlZnJlc2giLCJzdG9wQXV0b1JlZnJlc2giLCJleHBpcmVzSW5UaWNrcyIsImZsb29yIiwiaXNBY3F1aXJlVGltZW91dCIsIl9vblZpc2liaWxpdHlDaGFuZ2VkIiwiY2FsbGVkRnJvbUluaXRpYWxpemUiLCJtZXRob2ROYW1lIiwiZG9jdW1lbnQiLCJ2aXNpYmlsaXR5U3RhdGUiLCJ1cmxQYXJhbXMiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmbG93UGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwicXVlcnkiLCJqb2luIiwiZmFjdG9ySWQiLCJmcmllbmRseV9uYW1lIiwiZnJpZW5kbHlOYW1lIiwiZmFjdG9yX3R5cGUiLCJmYWN0b3JUeXBlIiwiaXNzdWVyIiwidG90cCIsInFyX2NvZGUiLCJjaGFsbGVuZ2VfaWQiLCJjaGFsbGVuZ2VJZCIsImNoYWxsZW5nZURhdGEiLCJjaGFsbGVuZ2VFcnJvciIsImZhY3RvcnMiLCJmaWx0ZXIiLCJmYWN0b3IiLCJjdXJyZW50TGV2ZWwiLCJuZXh0TGV2ZWwiLCJjdXJyZW50QXV0aGVudGljYXRpb25NZXRob2RzIiwiYWFsIiwidmVyaWZpZWRGYWN0b3JzIiwiYW1yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/index.js": +/*!***************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/index.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthAdminApi: () => (/* reexport safe */ _AuthAdminApi__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ AuthApiError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthApiError),\n/* harmony export */ AuthClient: () => (/* reexport safe */ _AuthClient__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ AuthError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthError),\n/* harmony export */ AuthImplicitGrantRedirectError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthImplicitGrantRedirectError),\n/* harmony export */ AuthInvalidCredentialsError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthInvalidCredentialsError),\n/* harmony export */ AuthInvalidTokenResponseError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthInvalidTokenResponseError),\n/* harmony export */ AuthPKCEGrantCodeExchangeError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthPKCEGrantCodeExchangeError),\n/* harmony export */ AuthRetryableFetchError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthRetryableFetchError),\n/* harmony export */ AuthSessionMissingError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthSessionMissingError),\n/* harmony export */ AuthUnknownError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthUnknownError),\n/* harmony export */ AuthWeakPasswordError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthWeakPasswordError),\n/* harmony export */ CustomAuthError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.CustomAuthError),\n/* harmony export */ GoTrueAdminApi: () => (/* reexport safe */ _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ GoTrueClient: () => (/* reexport safe */ _GoTrueClient__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ NavigatorLockAcquireTimeoutError: () => (/* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.NavigatorLockAcquireTimeoutError),\n/* harmony export */ isAuthApiError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthApiError),\n/* harmony export */ isAuthError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthError),\n/* harmony export */ isAuthRetryableFetchError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthRetryableFetchError),\n/* harmony export */ isAuthWeakPasswordError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthWeakPasswordError),\n/* harmony export */ lockInternals: () => (/* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.internals),\n/* harmony export */ navigatorLock: () => (/* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.navigatorLock)\n/* harmony export */ });\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js\");\n/* harmony import */ var _GoTrueClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GoTrueClient */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js\");\n/* harmony import */ var _AuthAdminApi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AuthAdminApi */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/AuthAdminApi.js\");\n/* harmony import */ var _AuthClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AuthClient */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/AuthClient.js\");\n/* harmony import */ var _lib_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/types */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/types.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/errors */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_locks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/locks */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js\");\n\n\n\n\n\n\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOEM7QUFDSjtBQUNBO0FBQ0o7QUFDNEI7QUFDdEM7QUFDQztBQUM4RSxDQUMzRyxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvaW5kZXguanM/ZWIxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR29UcnVlQWRtaW5BcGkgZnJvbSAnLi9Hb1RydWVBZG1pbkFwaSc7XG5pbXBvcnQgR29UcnVlQ2xpZW50IGZyb20gJy4vR29UcnVlQ2xpZW50JztcbmltcG9ydCBBdXRoQWRtaW5BcGkgZnJvbSAnLi9BdXRoQWRtaW5BcGknO1xuaW1wb3J0IEF1dGhDbGllbnQgZnJvbSAnLi9BdXRoQ2xpZW50JztcbmV4cG9ydCB7IEdvVHJ1ZUFkbWluQXBpLCBHb1RydWVDbGllbnQsIEF1dGhBZG1pbkFwaSwgQXV0aENsaWVudCB9O1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXJyb3JzJztcbmV4cG9ydCB7IG5hdmlnYXRvckxvY2ssIE5hdmlnYXRvckxvY2tBY3F1aXJlVGltZW91dEVycm9yLCBpbnRlcm5hbHMgYXMgbG9ja0ludGVybmFscywgfSBmcm9tICcuL2xpYi9sb2Nrcyc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiR29UcnVlQWRtaW5BcGkiLCJHb1RydWVDbGllbnQiLCJBdXRoQWRtaW5BcGkiLCJBdXRoQ2xpZW50IiwibmF2aWdhdG9yTG9jayIsIk5hdmlnYXRvckxvY2tBY3F1aXJlVGltZW91dEVycm9yIiwiaW50ZXJuYWxzIiwibG9ja0ludGVybmFscyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/constants.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/constants.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AUDIENCE: () => (/* binding */ AUDIENCE),\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS),\n/* harmony export */ EXPIRY_MARGIN: () => (/* binding */ EXPIRY_MARGIN),\n/* harmony export */ GOTRUE_URL: () => (/* binding */ GOTRUE_URL),\n/* harmony export */ NETWORK_FAILURE: () => (/* binding */ NETWORK_FAILURE),\n/* harmony export */ STORAGE_KEY: () => (/* binding */ STORAGE_KEY)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/version.js\");\n\nconst GOTRUE_URL = \"http://localhost:9999\";\nconst STORAGE_KEY = \"supabase.auth.token\";\nconst AUDIENCE = \"\";\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `gotrue-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n};\nconst EXPIRY_MARGIN = 10; // in seconds\nconst NETWORK_FAILURE = {\n MAX_RETRIES: 10,\n RETRY_INTERVAL: 2\n}; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQW9DO0FBQzdCLE1BQU1DLGFBQWEsd0JBQXdCO0FBQzNDLE1BQU1DLGNBQWMsc0JBQXNCO0FBQzFDLE1BQU1DLFdBQVcsR0FBRztBQUNwQixNQUFNQyxrQkFBa0I7SUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUVKLDZDQUFPQSxDQUFDLENBQUM7QUFBQyxFQUFFO0FBQ3BFLE1BQU1LLGdCQUFnQixHQUFHLENBQUMsYUFBYTtBQUN2QyxNQUFNQyxrQkFBa0I7SUFDM0JDLGFBQWE7SUFDYkMsZ0JBQWdCO0FBQ3BCLEVBQUUsQ0FDRixxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2NvbnN0YW50cy5qcz9lZjc3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24nO1xuZXhwb3J0IGNvbnN0IEdPVFJVRV9VUkwgPSAnaHR0cDovL2xvY2FsaG9zdDo5OTk5JztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX0tFWSA9ICdzdXBhYmFzZS5hdXRoLnRva2VuJztcbmV4cG9ydCBjb25zdCBBVURJRU5DRSA9ICcnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVBREVSUyA9IHsgJ1gtQ2xpZW50LUluZm8nOiBgZ290cnVlLWpzLyR7dmVyc2lvbn1gIH07XG5leHBvcnQgY29uc3QgRVhQSVJZX01BUkdJTiA9IDEwOyAvLyBpbiBzZWNvbmRzXG5leHBvcnQgY29uc3QgTkVUV09SS19GQUlMVVJFID0ge1xuICAgIE1BWF9SRVRSSUVTOiAxMCxcbiAgICBSRVRSWV9JTlRFUlZBTDogMiwgLy8gaW4gZGVjaXNlY29uZHNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iLCJHT1RSVUVfVVJMIiwiU1RPUkFHRV9LRVkiLCJBVURJRU5DRSIsIkRFRkFVTFRfSEVBREVSUyIsIkVYUElSWV9NQVJHSU4iLCJORVRXT1JLX0ZBSUxVUkUiLCJNQVhfUkVUUklFUyIsIlJFVFJZX0lOVEVSVkFMIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/constants.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthApiError: () => (/* binding */ AuthApiError),\n/* harmony export */ AuthError: () => (/* binding */ AuthError),\n/* harmony export */ AuthImplicitGrantRedirectError: () => (/* binding */ AuthImplicitGrantRedirectError),\n/* harmony export */ AuthInvalidCredentialsError: () => (/* binding */ AuthInvalidCredentialsError),\n/* harmony export */ AuthInvalidTokenResponseError: () => (/* binding */ AuthInvalidTokenResponseError),\n/* harmony export */ AuthPKCEGrantCodeExchangeError: () => (/* binding */ AuthPKCEGrantCodeExchangeError),\n/* harmony export */ AuthRetryableFetchError: () => (/* binding */ AuthRetryableFetchError),\n/* harmony export */ AuthSessionMissingError: () => (/* binding */ AuthSessionMissingError),\n/* harmony export */ AuthUnknownError: () => (/* binding */ AuthUnknownError),\n/* harmony export */ AuthWeakPasswordError: () => (/* binding */ AuthWeakPasswordError),\n/* harmony export */ CustomAuthError: () => (/* binding */ CustomAuthError),\n/* harmony export */ isAuthApiError: () => (/* binding */ isAuthApiError),\n/* harmony export */ isAuthError: () => (/* binding */ isAuthError),\n/* harmony export */ isAuthRetryableFetchError: () => (/* binding */ isAuthRetryableFetchError),\n/* harmony export */ isAuthWeakPasswordError: () => (/* binding */ isAuthWeakPasswordError)\n/* harmony export */ });\nclass AuthError extends Error {\n constructor(message, status){\n super(message);\n this.__isAuthError = true;\n this.name = \"AuthError\";\n this.status = status;\n }\n}\nfunction isAuthError(error) {\n return typeof error === \"object\" && error !== null && \"__isAuthError\" in error;\n}\nclass AuthApiError extends AuthError {\n constructor(message, status){\n super(message, status);\n this.name = \"AuthApiError\";\n this.status = status;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status\n };\n }\n}\nfunction isAuthApiError(error) {\n return isAuthError(error) && error.name === \"AuthApiError\";\n}\nclass AuthUnknownError extends AuthError {\n constructor(message, originalError){\n super(message);\n this.name = \"AuthUnknownError\";\n this.originalError = originalError;\n }\n}\nclass CustomAuthError extends AuthError {\n constructor(message, name, status){\n super(message);\n this.name = name;\n this.status = status;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status\n };\n }\n}\nclass AuthSessionMissingError extends CustomAuthError {\n constructor(){\n super(\"Auth session missing!\", \"AuthSessionMissingError\", 400);\n }\n}\nclass AuthInvalidTokenResponseError extends CustomAuthError {\n constructor(){\n super(\"Auth session or user missing\", \"AuthInvalidTokenResponseError\", 500);\n }\n}\nclass AuthInvalidCredentialsError extends CustomAuthError {\n constructor(message){\n super(message, \"AuthInvalidCredentialsError\", 400);\n }\n}\nclass AuthImplicitGrantRedirectError extends CustomAuthError {\n constructor(message, details = null){\n super(message, \"AuthImplicitGrantRedirectError\", 500);\n this.details = null;\n this.details = details;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n details: this.details\n };\n }\n}\nclass AuthPKCEGrantCodeExchangeError extends CustomAuthError {\n constructor(message, details = null){\n super(message, \"AuthPKCEGrantCodeExchangeError\", 500);\n this.details = null;\n this.details = details;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n details: this.details\n };\n }\n}\nclass AuthRetryableFetchError extends CustomAuthError {\n constructor(message, status){\n super(message, \"AuthRetryableFetchError\", status);\n }\n}\nfunction isAuthRetryableFetchError(error) {\n return isAuthError(error) && error.name === \"AuthRetryableFetchError\";\n}\n/**\n * This error is thrown on certain methods when the password used is deemed\n * weak. Inspect the reasons to identify what password strength rules are\n * inadequate.\n */ class AuthWeakPasswordError extends CustomAuthError {\n constructor(message, status, reasons){\n super(message, \"AuthWeakPasswordError\", status);\n this.reasons = reasons;\n }\n}\nfunction isAuthWeakPasswordError(error) {\n return isAuthError(error) && error.name === \"AuthWeakPasswordError\";\n} //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2Vycm9ycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxrQkFBa0JDO0lBQzNCQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sQ0FBRTtRQUN6QixLQUFLLENBQUNEO1FBQ04sSUFBSSxDQUFDRSxhQUFhLEdBQUc7UUFDckIsSUFBSSxDQUFDQyxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNGLE1BQU0sR0FBR0E7SUFDbEI7QUFDSjtBQUNPLFNBQVNHLFlBQVlDLEtBQUs7SUFDN0IsT0FBTyxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxtQkFBbUJBO0FBQzdFO0FBQ08sTUFBTUMscUJBQXFCVDtJQUM5QkUsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLENBQUU7UUFDekIsS0FBSyxDQUFDRCxTQUFTQztRQUNmLElBQUksQ0FBQ0UsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDRixNQUFNLEdBQUdBO0lBQ2xCO0lBQ0FNLFNBQVM7UUFDTCxPQUFPO1lBQ0hKLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2ZILFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtRQUN2QjtJQUNKO0FBQ0o7QUFDTyxTQUFTTyxlQUFlSCxLQUFLO0lBQ2hDLE9BQU9ELFlBQVlDLFVBQVVBLE1BQU1GLElBQUksS0FBSztBQUNoRDtBQUNPLE1BQU1NLHlCQUF5Qlo7SUFDbENFLFlBQVlDLE9BQU8sRUFBRVUsYUFBYSxDQUFFO1FBQ2hDLEtBQUssQ0FBQ1Y7UUFDTixJQUFJLENBQUNHLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ08sYUFBYSxHQUFHQTtJQUN6QjtBQUNKO0FBQ08sTUFBTUMsd0JBQXdCZDtJQUNqQ0UsWUFBWUMsT0FBTyxFQUFFRyxJQUFJLEVBQUVGLE1BQU0sQ0FBRTtRQUMvQixLQUFLLENBQUNEO1FBQ04sSUFBSSxDQUFDRyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDRixNQUFNLEdBQUdBO0lBQ2xCO0lBQ0FNLFNBQVM7UUFDTCxPQUFPO1lBQ0hKLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2ZILFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtRQUN2QjtJQUNKO0FBQ0o7QUFDTyxNQUFNVyxnQ0FBZ0NEO0lBQ3pDWixhQUFjO1FBQ1YsS0FBSyxDQUFDLHlCQUF5QiwyQkFBMkI7SUFDOUQ7QUFDSjtBQUNPLE1BQU1jLHNDQUFzQ0Y7SUFDL0NaLGFBQWM7UUFDVixLQUFLLENBQUMsZ0NBQWdDLGlDQUFpQztJQUMzRTtBQUNKO0FBQ08sTUFBTWUsb0NBQW9DSDtJQUM3Q1osWUFBWUMsT0FBTyxDQUFFO1FBQ2pCLEtBQUssQ0FBQ0EsU0FBUywrQkFBK0I7SUFDbEQ7QUFDSjtBQUNPLE1BQU1lLHVDQUF1Q0o7SUFDaERaLFlBQVlDLE9BQU8sRUFBRWdCLFVBQVUsSUFBSSxDQUFFO1FBQ2pDLEtBQUssQ0FBQ2hCLFNBQVMsa0NBQWtDO1FBQ2pELElBQUksQ0FBQ2dCLE9BQU8sR0FBRztRQUNmLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtJQUNuQjtJQUNBVCxTQUFTO1FBQ0wsT0FBTztZQUNISixNQUFNLElBQUksQ0FBQ0EsSUFBSTtZQUNmSCxTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUNyQkMsUUFBUSxJQUFJLENBQUNBLE1BQU07WUFDbkJlLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1FBQ3pCO0lBQ0o7QUFDSjtBQUNPLE1BQU1DLHVDQUF1Q047SUFDaERaLFlBQVlDLE9BQU8sRUFBRWdCLFVBQVUsSUFBSSxDQUFFO1FBQ2pDLEtBQUssQ0FBQ2hCLFNBQVMsa0NBQWtDO1FBQ2pELElBQUksQ0FBQ2dCLE9BQU8sR0FBRztRQUNmLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtJQUNuQjtJQUNBVCxTQUFTO1FBQ0wsT0FBTztZQUNISixNQUFNLElBQUksQ0FBQ0EsSUFBSTtZQUNmSCxTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUNyQkMsUUFBUSxJQUFJLENBQUNBLE1BQU07WUFDbkJlLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1FBQ3pCO0lBQ0o7QUFDSjtBQUNPLE1BQU1FLGdDQUFnQ1A7SUFDekNaLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxDQUFFO1FBQ3pCLEtBQUssQ0FBQ0QsU0FBUywyQkFBMkJDO0lBQzlDO0FBQ0o7QUFDTyxTQUFTa0IsMEJBQTBCZCxLQUFLO0lBQzNDLE9BQU9ELFlBQVlDLFVBQVVBLE1BQU1GLElBQUksS0FBSztBQUNoRDtBQUNBOzs7O0NBSUMsR0FDTSxNQUFNaUIsOEJBQThCVDtJQUN2Q1osWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVvQixPQUFPLENBQUU7UUFDbEMsS0FBSyxDQUFDckIsU0FBUyx5QkFBeUJDO1FBQ3hDLElBQUksQ0FBQ29CLE9BQU8sR0FBR0E7SUFDbkI7QUFDSjtBQUNPLFNBQVNDLHdCQUF3QmpCLEtBQUs7SUFDekMsT0FBT0QsWUFBWUMsVUFBVUEsTUFBTUYsSUFBSSxLQUFLO0FBQ2hELEVBQ0Esa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL2xpYi9lcnJvcnMuanM/MjkxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQXV0aEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIHN0YXR1cykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5fX2lzQXV0aEVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ0F1dGhFcnJvcic7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhFcnJvcihlcnJvcikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmIGVycm9yICE9PSBudWxsICYmICdfX2lzQXV0aEVycm9yJyBpbiBlcnJvcjtcbn1cbmV4cG9ydCBjbGFzcyBBdXRoQXBpRXJyb3IgZXh0ZW5kcyBBdXRoRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIHN0YXR1cykge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCBzdGF0dXMpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnQXV0aEFwaUVycm9yJztcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aEFwaUVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIGlzQXV0aEVycm9yKGVycm9yKSAmJiBlcnJvci5uYW1lID09PSAnQXV0aEFwaUVycm9yJztcbn1cbmV4cG9ydCBjbGFzcyBBdXRoVW5rbm93bkVycm9yIGV4dGVuZHMgQXV0aEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBvcmlnaW5hbEVycm9yKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnQXV0aFVua25vd25FcnJvcic7XG4gICAgICAgIHRoaXMub3JpZ2luYWxFcnJvciA9IG9yaWdpbmFsRXJyb3I7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEN1c3RvbUF1dGhFcnJvciBleHRlbmRzIEF1dGhFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgbmFtZSwgc3RhdHVzKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgICB9XG4gICAgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IgZXh0ZW5kcyBDdXN0b21BdXRoRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignQXV0aCBzZXNzaW9uIG1pc3NpbmchJywgJ0F1dGhTZXNzaW9uTWlzc2luZ0Vycm9yJywgNDAwKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3IgZXh0ZW5kcyBDdXN0b21BdXRoRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignQXV0aCBzZXNzaW9uIG9yIHVzZXIgbWlzc2luZycsICdBdXRoSW52YWxpZFRva2VuUmVzcG9uc2VFcnJvcicsIDUwMCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvciBleHRlbmRzIEN1c3RvbUF1dGhFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCAnQXV0aEludmFsaWRDcmVkZW50aWFsc0Vycm9yJywgNDAwKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBkZXRhaWxzID0gbnVsbCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCAnQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yJywgNTAwKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzID0gbnVsbDtcbiAgICAgICAgdGhpcy5kZXRhaWxzID0gZGV0YWlscztcbiAgICB9XG4gICAgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgICAgICAgIGRldGFpbHM6IHRoaXMuZGV0YWlscyxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQXV0aFBLQ0VHcmFudENvZGVFeGNoYW5nZUVycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBkZXRhaWxzID0gbnVsbCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCAnQXV0aFBLQ0VHcmFudENvZGVFeGNoYW5nZUVycm9yJywgNTAwKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzID0gbnVsbDtcbiAgICAgICAgdGhpcy5kZXRhaWxzID0gZGV0YWlscztcbiAgICB9XG4gICAgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgICAgICAgIGRldGFpbHM6IHRoaXMuZGV0YWlscyxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IgZXh0ZW5kcyBDdXN0b21BdXRoRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIHN0YXR1cykge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCAnQXV0aFJldHJ5YWJsZUZldGNoRXJyb3InLCBzdGF0dXMpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhSZXRyeWFibGVGZXRjaEVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIGlzQXV0aEVycm9yKGVycm9yKSAmJiBlcnJvci5uYW1lID09PSAnQXV0aFJldHJ5YWJsZUZldGNoRXJyb3InO1xufVxuLyoqXG4gKiBUaGlzIGVycm9yIGlzIHRocm93biBvbiBjZXJ0YWluIG1ldGhvZHMgd2hlbiB0aGUgcGFzc3dvcmQgdXNlZCBpcyBkZWVtZWRcbiAqIHdlYWsuIEluc3BlY3QgdGhlIHJlYXNvbnMgdG8gaWRlbnRpZnkgd2hhdCBwYXNzd29yZCBzdHJlbmd0aCBydWxlcyBhcmVcbiAqIGluYWRlcXVhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRoV2Vha1Bhc3N3b3JkRXJyb3IgZXh0ZW5kcyBDdXN0b21BdXRoRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIHN0YXR1cywgcmVhc29ucykge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCAnQXV0aFdlYWtQYXNzd29yZEVycm9yJywgc3RhdHVzKTtcbiAgICAgICAgdGhpcy5yZWFzb25zID0gcmVhc29ucztcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaXNBdXRoV2Vha1Bhc3N3b3JkRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gaXNBdXRoRXJyb3IoZXJyb3IpICYmIGVycm9yLm5hbWUgPT09ICdBdXRoV2Vha1Bhc3N3b3JkRXJyb3InO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXJyb3JzLmpzLm1hcCJdLCJuYW1lcyI6WyJBdXRoRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsInN0YXR1cyIsIl9faXNBdXRoRXJyb3IiLCJuYW1lIiwiaXNBdXRoRXJyb3IiLCJlcnJvciIsIkF1dGhBcGlFcnJvciIsInRvSlNPTiIsImlzQXV0aEFwaUVycm9yIiwiQXV0aFVua25vd25FcnJvciIsIm9yaWdpbmFsRXJyb3IiLCJDdXN0b21BdXRoRXJyb3IiLCJBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvciIsIkF1dGhJbnZhbGlkVG9rZW5SZXNwb25zZUVycm9yIiwiQXV0aEludmFsaWRDcmVkZW50aWFsc0Vycm9yIiwiQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yIiwiZGV0YWlscyIsIkF1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvciIsIkF1dGhSZXRyeWFibGVGZXRjaEVycm9yIiwiaXNBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvciIsIkF1dGhXZWFrUGFzc3dvcmRFcnJvciIsInJlYXNvbnMiLCJpc0F1dGhXZWFrUGFzc3dvcmRFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _generateLinkResponse: () => (/* binding */ _generateLinkResponse),\n/* harmony export */ _noResolveJsonResponse: () => (/* binding */ _noResolveJsonResponse),\n/* harmony export */ _request: () => (/* binding */ _request),\n/* harmony export */ _sessionResponse: () => (/* binding */ _sessionResponse),\n/* harmony export */ _sessionResponsePassword: () => (/* binding */ _sessionResponsePassword),\n/* harmony export */ _ssoResponse: () => (/* binding */ _ssoResponse),\n/* harmony export */ _userResponse: () => (/* binding */ _userResponse)\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./errors */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\");\nvar __rest = undefined && undefined.__rest || function(s, e) {\n var t = {};\n for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\nconst _getErrorMessage = (err)=>err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\nconst NETWORK_ERROR_CODES = [\n 502,\n 503,\n 504\n];\nasync function handleError(error) {\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_0__.looksLikeFetchResponse)(error)) {\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthRetryableFetchError(_getErrorMessage(error), 0);\n }\n if (NETWORK_ERROR_CODES.includes(error.status)) {\n // status in 500...599 range - server had an error, request might be retryed.\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthRetryableFetchError(_getErrorMessage(error), error.status);\n }\n let data;\n try {\n data = await error.json();\n } catch (e) {\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthUnknownError(_getErrorMessage(e), e);\n }\n if (typeof data === \"object\" && data && typeof data.weak_password === \"object\" && data.weak_password && Array.isArray(data.weak_password.reasons) && data.weak_password.reasons.length && data.weak_password.reasons.reduce((a, i)=>a && typeof i === \"string\", true)) {\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthWeakPasswordError(_getErrorMessage(data), error.status, data.weak_password.reasons);\n }\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthApiError(_getErrorMessage(data), error.status || 500);\n}\nconst _getRequestParams = (method, options, parameters, body)=>{\n const params = {\n method,\n headers: (options === null || options === void 0 ? void 0 : options.headers) || {}\n };\n if (method === \"GET\") {\n return params;\n }\n params.headers = Object.assign({\n \"Content-Type\": \"application/json;charset=UTF-8\"\n }, options === null || options === void 0 ? void 0 : options.headers);\n params.body = JSON.stringify(body);\n return Object.assign(Object.assign({}, params), parameters);\n};\nasync function _request(fetcher, method, url, options) {\n var _a;\n const headers = Object.assign({}, options === null || options === void 0 ? void 0 : options.headers);\n if (options === null || options === void 0 ? void 0 : options.jwt) {\n headers[\"Authorization\"] = `Bearer ${options.jwt}`;\n }\n const qs = (_a = options === null || options === void 0 ? void 0 : options.query) !== null && _a !== void 0 ? _a : {};\n if (options === null || options === void 0 ? void 0 : options.redirectTo) {\n qs[\"redirect_to\"] = options.redirectTo;\n }\n const queryString = Object.keys(qs).length ? \"?\" + new URLSearchParams(qs).toString() : \"\";\n const data = await _handleRequest(fetcher, method, url + queryString, {\n headers,\n noResolveJson: options === null || options === void 0 ? void 0 : options.noResolveJson\n }, {}, options === null || options === void 0 ? void 0 : options.body);\n return (options === null || options === void 0 ? void 0 : options.xform) ? options === null || options === void 0 ? void 0 : options.xform(data) : {\n data: Object.assign({}, data),\n error: null\n };\n}\nasync function _handleRequest(fetcher, method, url, options, parameters, body) {\n const requestParams = _getRequestParams(method, options, parameters, body);\n let result;\n try {\n result = await fetcher(url, requestParams);\n } catch (e) {\n console.error(e);\n // fetch failed, likely due to a network or CORS error\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthRetryableFetchError(_getErrorMessage(e), 0);\n }\n if (!result.ok) {\n await handleError(result);\n }\n if (options === null || options === void 0 ? void 0 : options.noResolveJson) {\n return result;\n }\n try {\n return await result.json();\n } catch (e) {\n await handleError(e);\n }\n}\nfunction _sessionResponse(data) {\n var _a;\n let session = null;\n if (hasSession(data)) {\n session = Object.assign({}, data);\n if (!data.expires_at) {\n session.expires_at = (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.expiresAt)(data.expires_in);\n }\n }\n const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\n return {\n data: {\n session,\n user\n },\n error: null\n };\n}\nfunction _sessionResponsePassword(data) {\n const response = _sessionResponse(data);\n if (!response.error && data.weak_password && typeof data.weak_password === \"object\" && Array.isArray(data.weak_password.reasons) && data.weak_password.reasons.length && data.weak_password.message && typeof data.weak_password.message === \"string\" && data.weak_password.reasons.reduce((a, i)=>a && typeof i === \"string\", true)) {\n response.data.weak_password = data.weak_password;\n }\n return response;\n}\nfunction _userResponse(data) {\n var _a;\n const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\n return {\n data: {\n user\n },\n error: null\n };\n}\nfunction _ssoResponse(data) {\n return {\n data,\n error: null\n };\n}\nfunction _generateLinkResponse(data) {\n const { action_link, email_otp, hashed_token, redirect_to, verification_type } = data, rest = __rest(data, [\n \"action_link\",\n \"email_otp\",\n \"hashed_token\",\n \"redirect_to\",\n \"verification_type\"\n ]);\n const properties = {\n action_link,\n email_otp,\n hashed_token,\n redirect_to,\n verification_type\n };\n const user = Object.assign({}, rest);\n return {\n data: {\n properties,\n user\n },\n error: null\n };\n}\nfunction _noResolveJsonResponse(data) {\n return data;\n}\n/**\n * hasSession checks if the response object contains a valid session\n * @param data A response object\n * @returns true if a session is in the response\n */ function hasSession(data) {\n return data.access_token && data.refresh_token && data.expires_in;\n} //# sourceMappingURL=fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2ZldGNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLElBQUlBLFNBQVMsU0FBSyxJQUFJLFNBQUksQ0FBQ0EsTUFBTSxJQUFLLFNBQVVDLENBQUMsRUFBRUMsQ0FBQztJQUNoRCxJQUFJQyxJQUFJLENBQUM7SUFDVCxJQUFLLElBQUlDLEtBQUtILEVBQUcsSUFBSUksT0FBT0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsR0FBR0csTUFBTUYsRUFBRU8sT0FBTyxDQUFDTCxLQUFLLEdBQzlFRCxDQUFDLENBQUNDLEVBQUUsR0FBR0gsQ0FBQyxDQUFDRyxFQUFFO0lBQ2YsSUFBSUgsS0FBSyxRQUFRLE9BQU9JLE9BQU9LLHFCQUFxQixLQUFLLFlBQ3JELElBQUssSUFBSUMsSUFBSSxHQUFHUCxJQUFJQyxPQUFPSyxxQkFBcUIsQ0FBQ1QsSUFBSVUsSUFBSVAsRUFBRVEsTUFBTSxFQUFFRCxJQUFLO1FBQ3BFLElBQUlULEVBQUVPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxFQUFFLElBQUksS0FBS04sT0FBT0MsU0FBUyxDQUFDTyxvQkFBb0IsQ0FBQ0wsSUFBSSxDQUFDUCxHQUFHRyxDQUFDLENBQUNPLEVBQUUsR0FDekVSLENBQUMsQ0FBQ0MsQ0FBQyxDQUFDTyxFQUFFLENBQUMsR0FBR1YsQ0FBQyxDQUFDRyxDQUFDLENBQUNPLEVBQUUsQ0FBQztJQUN6QjtJQUNKLE9BQU9SO0FBQ1g7QUFDOEQ7QUFDNkM7QUFDM0csTUFBTWlCLG1CQUFtQixDQUFDQyxNQUFRQSxJQUFJQyxHQUFHLElBQUlELElBQUlFLE9BQU8sSUFBSUYsSUFBSUcsaUJBQWlCLElBQUlILElBQUlJLEtBQUssSUFBSUMsS0FBS0MsU0FBUyxDQUFDTjtBQUNqSCxNQUFNTyxzQkFBc0I7SUFBQztJQUFLO0lBQUs7Q0FBSTtBQUMzQyxlQUFlQyxZQUFZSixL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Qy9ELE9BQU87UUFBRUEsTUFBTTtZQUFFd0M7UUFBSztRQUFHL0MsT0FBTztJQUFLO0FBQ3pDO0FBQ08sU0FBU21ELGFBQWE1QyxJQUFJO0lBQzdCLE9BQU87UUFBRUE7UUFBTVAsT0FBTztJQUFLO0FBQy9CO0FBQ08sU0FBU29ELHNCQUFzQjdDLElBQUk7SUFDdEMsTUFBTSxFQUFFOEMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLFlBQVksRUFBRUMsV0FBVyxFQUFFQyxpQkFBaUIsRUFBRSxHQUFHbEQsTUFBTW1ELE9BQU9uRixPQUFPZ0MsTUFBTTtRQUFDO1FBQWU7UUFBYTtRQUFnQjtRQUFlO0tBQW9CO0lBQzNMLE1BQU1vRCxhQUFhO1FBQ2ZOO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO0lBQ0o7SUFDQSxNQUFNVixPQUFPbkUsT0FBTzBDLE1BQU0sQ0FBQyxDQUFDLEdBQUdvQztJQUMvQixPQUFPO1FBQ0huRCxNQUFNO1lBQ0ZvRDtZQUNBWjtRQUNKO1FBQ0EvQyxPQUFPO0lBQ1g7QUFDSjtBQUNPLFNBQVM0RCx1QkFBdUJyRCxJQUFJO0lBQ3ZDLE9BQU9BO0FBQ1g7QUFDQTs7OztDQUlDLEdBQ0QsU0FBU3FDLFdBQVdyQyxJQUFJO0lBQ3BCLE9BQU9BLEtBQUtzRCxZQUFZLElBQUl0RCxLQUFLdUQsYUFBYSxJQUFJdkQsS0FBS3VDLFVBQVU7QUFDckUsRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2ZldGNoLmpzPzM1NjciXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgZXhwaXJlc0F0LCBsb29rc0xpa2VGZXRjaFJlc3BvbnNlIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IEF1dGhBcGlFcnJvciwgQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IsIEF1dGhXZWFrUGFzc3dvcmRFcnJvciwgQXV0aFVua25vd25FcnJvciwgfSBmcm9tICcuL2Vycm9ycyc7XG5jb25zdCBfZ2V0RXJyb3JNZXNzYWdlID0gKGVycikgPT4gZXJyLm1zZyB8fCBlcnIubWVzc2FnZSB8fCBlcnIuZXJyb3JfZGVzY3JpcHRpb24gfHwgZXJyLmVycm9yIHx8IEpTT04uc3RyaW5naWZ5KGVycik7XG5jb25zdCBORVRXT1JLX0VSUk9SX0NPREVTID0gWzUwMiwgNTAzLCA1MDRdO1xuYXN5bmMgZnVuY3Rpb24gaGFuZGxlRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAoIWxvb2tzTGlrZUZldGNoUmVzcG9uc2UoZXJyb3IpKSB7XG4gICAgICAgIHRocm93IG5ldyBBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSwgMCk7XG4gICAgfVxuICAgIGlmIChORVRXT1JLX0VSUk9SX0NPREVTLmluY2x1ZGVzKGVycm9yLnN0YXR1cykpIHtcbiAgICAgICAgLy8gc3RhdHVzIGluIDUwMC4uLjU5OSByYW5nZSAtIHNlcnZlciBoYWQgYW4gZXJyb3IsIHJlcXVlc3QgbWlnaHQgYmUgcmV0cnllZC5cbiAgICAgICAgdGhyb3cgbmV3IEF1dGhSZXRyeWFibGVGZXRjaEVycm9yKF9nZXRFcnJvck1lc3NhZ2UoZXJyb3IpLCBlcnJvci5zdGF0dXMpO1xuICAgIH1cbiAgICBsZXQgZGF0YTtcbiAgICB0cnkge1xuICAgICAgICBkYXRhID0gYXdhaXQgZXJyb3IuanNvbigpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgQXV0aFVua25vd25FcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGUpLCBlKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBkYXRhICYmXG4gICAgICAgIHR5cGVvZiBkYXRhLndlYWtfcGFzc3dvcmQgPT09ICdvYmplY3QnICYmXG4gICAgICAgIGRhdGEud2Vha19wYXNzd29yZCAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zKSAmJlxuICAgICAgICBkYXRhLndlYWtfcGFzc3dvcmQucmVhc29ucy5sZW5ndGggJiZcbiAgICAgICAgZGF0YS53ZWFrX3Bhc3N3b3JkLnJlYXNvbnMucmVkdWNlKChhLCBpKSA9PiBhICYmIHR5cGVvZiBpID09PSAnc3RyaW5nJywgdHJ1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEF1dGhXZWFrUGFzc3dvcmRFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGRhdGEpLCBlcnJvci5zdGF0dXMsIGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEF1dGhBcGlFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGRhdGEpLCBlcnJvci5zdGF0dXMgfHwgNTAwKTtcbn1cbmNvbnN0IF9nZXRSZXF1ZXN0UGFyYW1zID0gKG1ldGhvZCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSkgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgbWV0aG9kLCBoZWFkZXJzOiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmhlYWRlcnMpIHx8IHt9IH07XG4gICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG4gICAgcGFyYW1zLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnIH0sIG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWFkZXJzKTtcbiAgICBwYXJhbXMuYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHBhcmFtcyksIHBhcmFtZXRlcnMpO1xufTtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBfcmVxdWVzdChmZXRjaGVyLCBtZXRob2QsIHVybCwgb3B0aW9ucykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmhlYWRlcnMpO1xuICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuand0KSB7XG4gICAgICAgIGhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHtvcHRpb25zLmp3dH1gO1xuICAgIH1cbiAgICBjb25zdCBxcyA9IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5xdWVyeSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge307XG4gICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yZWRpcmVjdFRvKSB7XG4gICAgICAgIHFzWydyZWRpcmVjdF90byddID0gb3B0aW9ucy5yZWRpcmVjdFRvO1xuICAgIH1cbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IE9iamVjdC5rZXlzKHFzKS5sZW5ndGggPyAnPycgKyBuZXcgVVJMU2VhcmNoUGFyYW1zKHFzKS50b1N0cmluZygpIDogJyc7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IF9oYW5kbGVSZXF1ZXN0KGZldGNoZXIsIG1ldGhvZCwgdXJsICsgcXVlcnlTdHJpbmcsIHsgaGVhZGVycywgbm9SZXNvbHZlSnNvbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm5vUmVzb2x2ZUpzb24gfSwge30sIG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5ib2R5KTtcbiAgICByZXR1cm4gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy54Zm9ybSkgPyBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMueGZvcm0oZGF0YSkgOiB7IGRhdGE6IE9iamVjdC5hc3NpZ24oe30sIGRhdGEpLCBlcnJvcjogbnVsbCB9O1xufVxuYXN5bmMgZnVuY3Rpb24gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgbWV0aG9kLCB1cmwsIG9wdGlvbnMsIHBhcmFtZXRlcnMsIGJvZHkpIHtcbiAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gX2dldFJlcXVlc3RQYXJhbXMobWV0aG9kLCBvcHRpb25zLCBwYXJhbWV0ZXJzLCBib2R5KTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHRyeSB7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoZXIodXJsLCByZXF1ZXN0UGFyYW1zKTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgLy8gZmV0Y2ggZmFpbGVkLCBsaWtlbHkgZHVlIHRvIGEgbmV0d29yayBvciBDT1JTIGVycm9yXG4gICAgICAgIHRocm93IG5ldyBBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGUpLCAwKTtcbiAgICB9XG4gICAgaWYgKCFyZXN1bHQub2spIHtcbiAgICAgICAgYXdhaXQgaGFuZGxlRXJyb3IocmVzdWx0KTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5ub1Jlc29sdmVKc29uKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCByZXN1bHQuanNvbigpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBhd2FpdCBoYW5kbGVFcnJvcihlKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gX3Nlc3Npb25SZXNwb25zZShkYXRhKSB7XG4gICAgdmFyIF9hO1xuICAgIGxldCBzZXNzaW9uID0gbnVsbDtcbiAgICBpZiAoaGFzU2Vzc2lvbihkYXRhKSkge1xuICAgICAgICBzZXNzaW9uID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSk7XG4gICAgICAgIGlmICghZGF0YS5leHBpcmVzX2F0KSB7XG4gICAgICAgICAgICBzZXNzaW9uLmV4cGlyZXNfYXQgPSBleHBpcmVzQXQoZGF0YS5leHBpcmVzX2luKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB1c2VyID0gKF9hID0gZGF0YS51c2VyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhO1xuICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbiwgdXNlciB9LCBlcnJvcjogbnVsbCB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIF9zZXNzaW9uUmVzcG9uc2VQYXNzd29yZChkYXRhKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBfc2Vzc2lvblJlc3BvbnNlKGRhdGEpO1xuICAgIGlmICghcmVzcG9uc2UuZXJyb3IgJiZcbiAgICAgICAgZGF0YS53ZWFrX3Bhc3N3b3JkICYmXG4gICAgICAgIHR5cGVvZiBkYXRhLndlYWtfcGFzc3dvcmQgPT09ICdvYmplY3QnICYmXG4gICAgICAgIEFycmF5LmlzQXJyYXkoZGF0YS53ZWFrX3Bhc3N3b3JkLnJlYXNvbnMpICYmXG4gICAgICAgIGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zLmxlbmd0aCAmJlxuICAgICAgICBkYXRhLndlYWtfcGFzc3dvcmQubWVzc2FnZSAmJlxuICAgICAgICB0eXBlb2YgZGF0YS53ZWFrX3Bhc3N3b3JkLm1lc3NhZ2UgPT09ICdzdHJpbmcnICYmXG4gICAgICAgIGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zLnJlZHVjZSgoYSwgaSkgPT4gYSAmJiB0eXBlb2YgaSA9PT0gJ3N0cmluZycsIHRydWUpKSB7XG4gICAgICAgIHJlc3BvbnNlLmRhdGEud2Vha19wYXNzd29yZCA9IGRhdGEud2Vha19wYXNzd29yZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIF91c2VyUmVzcG9uc2UoZGF0YSkge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB1c2VyID0gKF9hID0gZGF0YS51c2VyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhO1xuICAgIHJldHVybiB7IGRhdGE6IHsgdXNlciB9LCBlcnJvcjogbnVsbCB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIF9zc29SZXNwb25zZShkYXRhKSB7XG4gICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBfZ2VuZXJhdGVMaW5rUmVzcG9uc2UoZGF0YSkge1xuICAgIGNvbnN0IHsgYWN0aW9uX2xpbmssIGVtYWlsX290cCwgaGFzaGVkX3Rva2VuLCByZWRpcmVjdF90bywgdmVyaWZpY2F0aW9uX3R5cGUgfSA9IGRhdGEsIHJlc3QgPSBfX3Jlc3QoZGF0YSwgW1wiYWN0aW9uX2xpbmtcIiwgXCJlbWFpbF9vdHBcIiwgXCJoYXNoZWRfdG9rZW5cIiwgXCJyZWRpcmVjdF90b1wiLCBcInZlcmlmaWNhdGlvbl90eXBlXCJdKTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0ge1xuICAgICAgICBhY3Rpb25fbGluayxcbiAgICAgICAgZW1haWxfb3RwLFxuICAgICAgICBoYXNoZWRfdG9rZW4sXG4gICAgICAgIHJlZGlyZWN0X3RvLFxuICAgICAgICB2ZXJpZmljYXRpb25fdHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IHVzZXIgPSBPYmplY3QuYXNzaWduKHt9LCByZXN0KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgdXNlcixcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBfbm9SZXNvbHZlSnNvblJlc3BvbnNlKGRhdGEpIHtcbiAgICByZXR1cm4gZGF0YTtcbn1cbi8qKlxuICogaGFzU2Vzc2lvbiBjaGVja3MgaWYgdGhlIHJlc3BvbnNlIG9iamVjdCBjb250YWlucyBhIHZhbGlkIHNlc3Npb25cbiAqIEBwYXJhbSBkYXRhIEEgcmVzcG9uc2Ugb2JqZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIGEgc2Vzc2lvbiBpcyBpbiB0aGUgcmVzcG9uc2VcbiAqL1xuZnVuY3Rpb24gaGFzU2Vzc2lvbihkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEuYWNjZXNzX3Rva2VuICYmIGRhdGEucmVmcmVzaF90b2tlbiAmJiBkYXRhLmV4cGlyZXNfaW47XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mZXRjaC5qcy5tYXAiXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJleHBpcmVzQXQiLCJsb29rc0xpa2VGZXRjaFJlc3BvbnNlIiwiQXV0aEFwaUVycm9yIiwiQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IiLCJBdXRoV2Vha1Bhc3N3b3JkRXJyb3IiLCJBdXRoVW5rbm93bkVycm9yIiwiX2dldEVycm9yTWVzc2FnZSIsImVyciIsIm1zZyIsIm1lc3NhZ2UiLCJlcnJvcl9kZXNjcmlwdGlvbiIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsIk5FVFdPUktfRVJST1JfQ09ERVMiLCJoYW5kbGVFcnJvciIsImluY2x1ZGVzIiwic3RhdHVzIiwiZGF0YSIsImpzb24iLCJ3ZWFrX3Bhc3N3b3JkIiwiQXJyYXkiLCJpc0FycmF5IiwicmVhc29ucyIsInJlZHVjZSIsImEiLCJfZ2V0UmVxdWVzdFBhcmFtcyIsIm1ldGhvZCIsIm9wdGlvbnMiLCJwYXJhbWV0ZXJzIiwiYm9keSIsInBhcmFtcyIsImhlYWRlcnMiLCJhc3NpZ24iLCJfcmVxdWVzdCIsImZldGNoZXIiLCJ1cmwiLCJfYSIsImp3dCIsInFzIiwicXVlcnkiLCJyZWRpcmVjdFRvIiwicXVlcnlTdHJpbmciLCJrZXlzIiwiVVJMU2VhcmNoUGFyYW1zIiwidG9TdHJpbmciLCJfaGFuZGxlUmVxdWVzdCIsIm5vUmVzb2x2ZUpzb24iLCJ4Zm9ybSIsInJlcXVlc3RQYXJhbXMiLCJyZXN1bHQiLCJjb25zb2xlIiwib2siLCJfc2Vzc2lvblJlc3BvbnNlIiwic2Vzc2lvbiIsImhhc1Nlc3Npb24iLCJleHBpcmVzX2F0IiwiZXhwaXJlc19pbiIsInVzZXIiLCJfc2Vzc2lvblJlc3BvbnNlUGFzc3dvcmQiLCJyZXNwb25zZSIsIl91c2VyUmVzcG9uc2UiLCJfc3NvUmVzcG9uc2UiLCJfZ2VuZXJhdGVMaW5rUmVzcG9uc2UiLCJhY3Rpb25fbGluayIsImVtYWlsX290cCIsImhhc2hlZF90b2tlbiIsInJlZGlyZWN0X3RvIiwidmVyaWZpY2F0aW9uX3R5cGUiLCJyZXN0IiwicHJvcGVydGllcyIsIl9ub1Jlc29sdmVKc29uUmVzcG9uc2UiLCJhY2Nlc3NfdG9rZW4iLCJyZWZyZXNoX3Rva2VuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Deferred: () => (/* binding */ Deferred),\n/* harmony export */ decodeBase64URL: () => (/* binding */ decodeBase64URL),\n/* harmony export */ decodeJWTPayload: () => (/* binding */ decodeJWTPayload),\n/* harmony export */ expiresAt: () => (/* binding */ expiresAt),\n/* harmony export */ generatePKCEChallenge: () => (/* binding */ generatePKCEChallenge),\n/* harmony export */ generatePKCEVerifier: () => (/* binding */ generatePKCEVerifier),\n/* harmony export */ getItemAsync: () => (/* binding */ getItemAsync),\n/* harmony export */ isBrowser: () => (/* binding */ isBrowser),\n/* harmony export */ looksLikeFetchResponse: () => (/* binding */ looksLikeFetchResponse),\n/* harmony export */ parseParametersFromURL: () => (/* binding */ parseParametersFromURL),\n/* harmony export */ removeItemAsync: () => (/* binding */ removeItemAsync),\n/* harmony export */ resolveFetch: () => (/* binding */ resolveFetch),\n/* harmony export */ retryable: () => (/* binding */ retryable),\n/* harmony export */ setItemAsync: () => (/* binding */ setItemAsync),\n/* harmony export */ sleep: () => (/* binding */ sleep),\n/* harmony export */ supportsLocalStorage: () => (/* binding */ supportsLocalStorage),\n/* harmony export */ uuid: () => (/* binding */ uuid)\n/* harmony export */ });\nfunction expiresAt(expiresIn) {\n const timeNow = Math.round(Date.now() / 1000);\n return timeNow + expiresIn;\n}\nfunction uuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n const r = Math.random() * 16 | 0, v = c == \"x\" ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\nconst isBrowser = ()=>typeof document !== \"undefined\";\nconst localStorageWriteTests = {\n tested: false,\n writable: false\n};\n/**\n * Checks whether localStorage is supported on this browser.\n */ const supportsLocalStorage = ()=>{\n if (!isBrowser()) {\n return false;\n }\n try {\n if (typeof globalThis.localStorage !== \"object\") {\n return false;\n }\n } catch (e) {\n // DOM exception when accessing `localStorage`\n return false;\n }\n if (localStorageWriteTests.tested) {\n return localStorageWriteTests.writable;\n }\n const randomKey = `lswt-${Math.random()}${Math.random()}`;\n try {\n globalThis.localStorage.setItem(randomKey, randomKey);\n globalThis.localStorage.removeItem(randomKey);\n localStorageWriteTests.tested = true;\n localStorageWriteTests.writable = true;\n } catch (e) {\n // localStorage can't be written to\n // https://www.chromium.org/for-testers/bug-reporting-guidelines/uncaught-securityerror-failed-to-read-the-localstorage-property-from-window-access-is-denied-for-this-document\n localStorageWriteTests.tested = true;\n localStorageWriteTests.writable = false;\n }\n return localStorageWriteTests.writable;\n};\n/**\n * Extracts parameters encoded in the URL both in the query and fragment.\n */ function parseParametersFromURL(href) {\n const result = {};\n const url = new URL(href);\n if (url.hash && url.hash[0] === \"#\") {\n try {\n const hashSearchParams = new URLSearchParams(url.hash.substring(1));\n hashSearchParams.forEach((value, key)=>{\n result[key] = value;\n });\n } catch (e) {\n // hash is not a query string\n }\n }\n // search parameters take precedence over hash parameters\n url.searchParams.forEach((value, key)=>{\n result[key] = value;\n });\n return result;\n}\nconst resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (...args)=>Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(middleware)/./node_modules/@supabase/node-fetch/browser.js\")).then(({ default: fetch1 })=>fetch1(...args));\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n};\nconst looksLikeFetchResponse = (maybeResponse)=>{\n return typeof maybeResponse === \"object\" && maybeResponse !== null && \"status\" in maybeResponse && \"ok\" in maybeResponse && \"json\" in maybeResponse && typeof maybeResponse.json === \"function\";\n};\n// Storage helpers\nconst setItemAsync = async (storage, key, data)=>{\n await storage.setItem(key, JSON.stringify(data));\n};\nconst getItemAsync = async (storage, key)=>{\n const value = await storage.getItem(key);\n if (!value) {\n return null;\n }\n try {\n return JSON.parse(value);\n } catch (_a) {\n return value;\n }\n};\nconst removeItemAsync = async (storage, key)=>{\n await storage.removeItem(key);\n};\nfunction decodeBase64URL(value) {\n const key = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let base64 = \"\";\n let chr1, chr2, chr3;\n let enc1, enc2, enc3, enc4;\n let i = 0;\n value = value.replace(\"-\", \"+\").replace(\"_\", \"/\");\n while(i < value.length){\n enc1 = key.indexOf(value.charAt(i++));\n enc2 = key.indexOf(value.charAt(i++));\n enc3 = key.indexOf(value.charAt(i++));\n enc4 = key.indexOf(value.charAt(i++));\n chr1 = enc1 << 2 | enc2 >> 4;\n chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n chr3 = (enc3 & 3) << 6 | enc4;\n base64 = base64 + String.fromCharCode(chr1);\n if (enc3 != 64 && chr2 != 0) {\n base64 = base64 + String.fromCharCode(chr2);\n }\n if (enc4 != 64 && chr3 != 0) {\n base64 = base64 + String.fromCharCode(chr3);\n }\n }\n return base64;\n}\n/**\n * A deferred represents some asynchronous work that is not yet finished, which\n * may or may not culminate in a value.\n * Taken from: https://github.com/mike-north/types/blob/master/src/async.ts\n */ class Deferred {\n constructor(){\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n this.promise = new Deferred.promiseConstructor((res, rej)=>{\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\nDeferred.promiseConstructor = Promise;\n// Taken from: https://stackoverflow.com/questions/38552003/how-to-decode-jwt-token-in-javascript-without-using-a-library\nfunction decodeJWTPayload(token) {\n // Regex checks for base64url format\n const base64UrlRegex = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i;\n const parts = token.split(\".\");\n if (parts.length !== 3) {\n throw new Error(\"JWT is not valid: not a JWT structure\");\n }\n if (!base64UrlRegex.test(parts[1])) {\n throw new Error(\"JWT is not valid: payload is not in base64url format\");\n }\n const base64Url = parts[1];\n return JSON.parse(decodeBase64URL(base64Url));\n}\n/**\n * Creates a promise that resolves to null after some time.\n */ async function sleep(time) {\n return await new Promise((accept)=>{\n setTimeout(()=>accept(null), time);\n });\n}\n/**\n * Converts the provided async function into a retryable function. Each result\n * or thrown error is sent to the isRetryable function which should return true\n * if the function should run again.\n */ function retryable(fn, isRetryable) {\n const promise = new Promise((accept, reject)=>{\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n (async ()=>{\n for(let attempt = 0; attempt < Infinity; attempt++){\n try {\n const result = await fn(attempt);\n if (!isRetryable(attempt, null, result)) {\n accept(result);\n return;\n }\n } catch (e) {\n if (!isRetryable(attempt, e)) {\n reject(e);\n return;\n }\n }\n }\n })();\n });\n return promise;\n}\nfunction dec2hex(dec) {\n return (\"0\" + dec.toString(16)).substr(-2);\n}\n// Functions below taken from: https://stackoverflow.com/questions/63309409/creating-a-code-verifier-and-challenge-for-pkce-auth-on-spotify-api-in-reactjs\nfunction generatePKCEVerifier() {\n const verifierLength = 56;\n const array = new Uint32Array(verifierLength);\n if (typeof crypto === \"undefined\") {\n const charSet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\n const charSetLen = charSet.length;\n let verifier = \"\";\n for(let i = 0; i < verifierLength; i++){\n verifier += charSet.charAt(Math.floor(Math.random() * charSetLen));\n }\n return verifier;\n }\n crypto.getRandomValues(array);\n return Array.from(array, dec2hex).join(\"\");\n}\nasync function sha256(randomString) {\n const encoder = new TextEncoder();\n const encodedData = encoder.encode(randomString);\n const hash = await crypto.subtle.digest(\"SHA-256\", encodedData);\n const bytes = new Uint8Array(hash);\n return Array.from(bytes).map((c)=>String.fromCharCode(c)).join(\"\");\n}\nfunction base64urlencode(str) {\n return btoa(str).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nasync function generatePKCEChallenge(verifier) {\n const hasCryptoSupport = typeof crypto !== \"undefined\" && typeof crypto.subtle !== \"undefined\" && typeof TextEncoder !== \"undefined\";\n if (!hasCryptoSupport) {\n console.warn(\"WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.\");\n return verifier;\n }\n const hashed = await sha256(verifier);\n return base64urlencode(hashed);\n} //# sourceMappingURL=helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2hlbHBlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxTQUFTQSxVQUFVQyxTQUFTO0lBQy9CLE1BQU1DLFVBQVVDLEtBQUtDLEtBQUssQ0FBQ0MsS0FBS0MsR0FBRyxLQUFLO0lBQ3hDLE9BQU9KLFVBQVVEO0FBQ3JCO0FBQ08sU0FBU007SUFDWixPQUFPLHVDQUF1Q0MsT0FBTyxDQUFDLFNBQVMsU0FBVUMsQ0FBQztRQUN0RSxNQUFNQyxJQUFJLEtBQU1DLE1BQU0sS0FBSyxLQUFNLEdBQUdDLElBQUlILEtBQUssTUFBTUMsSUFBSSxJQUFLLE1BQU87UUFDbkUsT0FBT0UsRUFBRUMsUUFBUSxDQUFDO0lBQ3RCO0FBQ0o7QUFDTyxNQUFNQyxZQUFZLElBQU0sT0FBT0MsYUFBYSxZQUFZO0FBQy9ELE1BQU1DLHlCQUF5QjtJQUMzQkMsUUFBUTtJQUNSQyxVQUFVO0FBQ2Q7QUFDQTs7Q0FFQyxHQUNNLE1BQU1DLHVCQUF1QjtJQUNoQyxJQUFJLENBQUNMLGFBQWE7UUFDZCxPQUFPO0lBQ1g7SUFDQSxJQUFJO1FBQ0EsSUFBSSxPQUFPTSxXQUFXQyxZQUFZLEtBQUssVUFBVTtZQUM3QyxPQUFPO1FBQ1g7SUFDSixFQUNBLE9BQU9DLEdBQUc7UUFDTiw4Q0FBOEM7UUFDOUMsT0FBTztJQUNYO0lBQ0EsSUFBSU4sdUJBQXVCQyxNQUFNLEVBQUU7UUFDL0IsT0FBT0QsdUJBQXVCRSxRQUFRO0lBQzFDO0lBQ0EsTUFBTUssWUFBWSxDQUFDLEtBQUssRUFBRXBCLEtBQUtRLE1BQU0sR0FBRyxFQUFFUixLQUFLUSxNQUFNLEdBQUcsQ0FBQztJQUN6RCxJQUFJO1FBQ0FTLFdBQVdDLFlBQVksQ0FBQ0csT0FBTyxDQUFDRCxXQUFXQTtRQUMzQ0gsV0FBV0MsWUFBWSxDQUFDSSxVQUFVLENBQUNGO1FBQ25DUCx1QkFBdUJDLE1BQU0s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QUFJLENBQUNULE9BQU9MLFNBQVNlLElBQUksQ0FBQztBQUMzQztBQUNBLGVBQWVDLE9BQU9DLFlBQVk7SUFDOUIsTUFBTUMsVUFBVSxJQUFJQztJQUNwQixNQUFNQyxjQUFjRixRQUFRRyxNQUFNLENBQUNKO0lBQ25DLE1BQU10RixPQUFPLE1BQU00RSxPQUFPZSxNQUFNLENBQUNDLE1BQU0sQ0FBQyxXQUFXSDtJQUNuRCxNQUFNSSxRQUFRLElBQUlDLFdBQVc5RjtJQUM3QixPQUFPa0YsTUFBTUMsSUFBSSxDQUFDVSxPQUNiRSxHQUFHLENBQUMsQ0FBQ3JILElBQU0rRCxPQUFPQyxZQUFZLENBQUNoRSxJQUMvQjBHLElBQUksQ0FBQztBQUNkO0FBQ0EsU0FBU1ksZ0JBQWdCQyxHQUFHO0lBQ3hCLE9BQU9DLEtBQUtELEtBQUt4SCxPQUFPLENBQUMsT0FBTyxLQUFLQSxPQUFPLENBQUMsT0FBTyxLQUFLQSxPQUFPLENBQUMsT0FBTztBQUM1RTtBQUNPLGVBQWUwSCxzQkFBc0JwQixRQUFRO0lBQ2hELE1BQU1xQixtQkFBbUIsT0FBT3hCLFdBQVcsZUFDdkMsT0FBT0EsT0FBT2UsTUFBTSxLQUFLLGVBQ3pCLE9BQU9ILGdCQUFnQjtJQUMzQixJQUFJLENBQUNZLGtCQUFrQjtRQUNuQkMsUUFBUUMsSUFBSSxDQUFDO1FBQ2IsT0FBT3ZCO0lBQ1g7SUFDQSxNQUFNd0IsU0FBUyxNQUFNbEIsT0FBT047SUFDNUIsT0FBT2lCLGdCQUFnQk87QUFDM0IsRUFDQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2hlbHBlcnMuanM/NmIyZiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXhwaXJlc0F0KGV4cGlyZXNJbikge1xuICAgIGNvbnN0IHRpbWVOb3cgPSBNYXRoLnJvdW5kKERhdGUubm93KCkgLyAxMDAwKTtcbiAgICByZXR1cm4gdGltZU5vdyArIGV4cGlyZXNJbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1dWlkKCkge1xuICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uIChjKSB7XG4gICAgICAgIGNvbnN0IHIgPSAoTWF0aC5yYW5kb20oKSAqIDE2KSB8IDAsIHYgPSBjID09ICd4JyA/IHIgOiAociAmIDB4MykgfCAweDg7XG4gICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcbiAgICB9KTtcbn1cbmV4cG9ydCBjb25zdCBpc0Jyb3dzZXIgPSAoKSA9PiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuY29uc3QgbG9jYWxTdG9yYWdlV3JpdGVUZXN0cyA9IHtcbiAgICB0ZXN0ZWQ6IGZhbHNlLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbn07XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGxvY2FsU3RvcmFnZSBpcyBzdXBwb3J0ZWQgb24gdGhpcyBicm93c2VyLlxuICovXG5leHBvcnQgY29uc3Qgc3VwcG9ydHNMb2NhbFN0b3JhZ2UgPSAoKSA9PiB7XG4gICAgaWYgKCFpc0Jyb3dzZXIoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gRE9NIGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2luZyBgbG9jYWxTdG9yYWdlYFxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChsb2NhbFN0b3JhZ2VXcml0ZVRlc3RzLnRlc3RlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlV3JpdGVUZXN0cy53cml0YWJsZTtcbiAgICB9XG4gICAgY29uc3QgcmFuZG9tS2V5ID0gYGxzd3QtJHtNYXRoLnJhbmRvbSgpfSR7TWF0aC5yYW5kb20oKX1gO1xuICAgIHRyeSB7XG4gICAgICAgIGdsb2JhbFRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0ocmFuZG9tS2V5LCByYW5kb21LZXkpO1xuICAgICAgICBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHJhbmRvbUtleSk7XG4gICAgICAgIGxvY2FsU3RvcmFnZVdyaXRlVGVzdHMudGVzdGVkID0gdHJ1ZTtcbiAgICAgICAgbG9jYWxTdG9yYWdlV3JpdGVUZXN0cy53cml0YWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGxvY2FsU3RvcmFnZSBjYW4ndCBiZSB3cml0dGVuIHRvXG4gICAgICAgIC8vIGh0dHBzOi8vd3d3LmNocm9taXVtLm9yZy9mb3ItdGVzdGVycy9idWctcmVwb3J0aW5nLWd1aWRlbGluZXMvdW5jYXVnaHQtc2VjdXJpdHllcnJvci1mYWlsZWQtdG8tcmVhZC10aGUtbG9jYWxzdG9yYWdlLXByb3BlcnR5LWZyb20td2luZG93LWFjY2Vzcy1pcy1kZW5pZWQtZm9yLXRoaXMtZG9jdW1lbnRcbiAgICAgICAgbG9jYWxTdG9yYWdlV3JpdGVUZXN0cy50ZXN0ZWQgPSB0cnVlO1xuICAgICAgICBsb2NhbFN0b3JhZ2VXcml0ZVRlc3RzLndyaXRhYmxlID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2VXcml0ZVRlc3RzLndyaXRhYmxlO1xufTtcbi8qKlxuICogRXh0cmFjdHMgcGFyYW1ldGVycyBlbmNvZGVkIGluIHRoZSBVUkwgYm90aCBpbiB0aGUgcXVlcnkgYW5kIGZyYWdtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYXJhbWV0ZXJzRnJvbVVSTChocmVmKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChocmVmKTtcbiAgICBpZiAodXJsLmhhc2ggJiYgdXJsLmhhc2hbMF0gPT09ICcjJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgaGFzaFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsLmhhc2guc3Vic3RyaW5nKDEpKTtcbiAgICAgICAgICAgIGhhc2hTZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gaGFzaCBpcyBub3QgYSBxdWVyeSBzdHJpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBzZWFyY2ggcGFyYW1ldGVycyB0YWtlIHByZWNlZGVuY2Ugb3ZlciBoYXNoIHBhcmFtZXRlcnNcbiAgICB1cmwuc2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0IGNvbnN0IHJlc29sdmVGZXRjaCA9IChjdXN0b21GZXRjaCkgPT4ge1xuICAgIGxldCBfZmV0Y2g7XG4gICAgaWYgKGN1c3RvbUZldGNoKSB7XG4gICAgICAgIF9mZXRjaCA9IGN1c3RvbUZldGNoO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZmV0Y2ggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIF9mZXRjaCA9ICguLi5hcmdzKSA9PiBpbXBvcnQoJ0BzdXBhYmFzZS9ub2RlLWZldGNoJykudGhlbigoeyBkZWZhdWx0OiBmZXRjaCB9KSA9PiBmZXRjaCguLi5hcmdzKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBfZmV0Y2ggPSBmZXRjaDtcbiAgICB9XG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiBfZmV0Y2goLi4uYXJncyk7XG59O1xuZXhwb3J0IGNvbnN0IGxvb2tzTGlrZUZldGNoUmVzcG9uc2UgPSAobWF5YmVSZXNwb25zZSkgPT4ge1xuICAgIHJldHVybiAodHlwZW9mIG1heWJlUmVzcG9uc2UgPT09ICdvYmplY3QnICYmXG4gICAgICAgIG1heWJlUmVzcG9uc2UgIT09IG51bGwgJiZcbiAgICAgICAgJ3N0YXR1cycgaW4gbWF5YmVSZXNwb25zZSAmJlxuICAgICAgICAnb2snIGluIG1heWJlUmVzcG9uc2UgJiZcbiAgICAgICAgJ2pzb24nIGluIG1heWJlUmVzcG9uc2UgJiZcbiAgICAgICAgdHlwZW9mIG1heWJlUmVzcG9uc2UuanNvbiA9PT0gJ2Z1bmN0aW9uJyk7XG59O1xuLy8gU3RvcmFnZSBoZWxwZXJzXG5leHBvcnQgY29uc3Qgc2V0SXRlbUFzeW5jID0gYXN5bmMgKHN0b3JhZ2UsIGtleSwgZGF0YSkgPT4ge1xuICAgIGF3YWl0IHN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbn07XG5leHBvcnQgY29uc3QgZ2V0SXRlbUFzeW5jID0gYXN5bmMgKHN0b3JhZ2UsIGtleSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgc3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn07XG5leHBvcnQgY29uc3QgcmVtb3ZlSXRlbUFzeW5jID0gYXN5bmMgKHN0b3JhZ2UsIGtleSkgPT4ge1xuICAgIGF3YWl0IHN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCYXNlNjRVUkwodmFsdWUpIHtcbiAgICBjb25zdCBrZXkgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0nO1xuICAgIGxldCBiYXNlNjQgPSAnJztcbiAgICBsZXQgY2hyMSwgY2hyMiwgY2hyMztcbiAgICBsZXQgZW5jMSwgZW5jMiwgZW5jMywgZW5jNDtcbiAgICBsZXQgaSA9IDA7XG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCctJywgJysnKS5yZXBsYWNlKCdfJywgJy8nKTtcbiAgICB3aGlsZSAoaSA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgICBlbmMxID0ga2V5LmluZGV4T2YodmFsdWUuY2hhckF0KGkrKykpO1xuICAgICAgICBlbmMyID0ga2V5LmluZGV4T2YodmFsdWUuY2hhckF0KGkrKykpO1xuICAgICAgICBlbmMzID0ga2V5LmluZGV4T2YodmFsdWUuY2hhckF0KGkrKykpO1xuICAgICAgICBlbmM0ID0ga2V5LmluZGV4T2YodmFsdWUuY2hhckF0KGkrKykpO1xuICAgICAgICBjaHIxID0gKGVuYzEgPDwgMikgfCAoZW5jMiA+PiA0KTtcbiAgICAgICAgY2hyMiA9ICgoZW5jMiAmIDE1KSA8PCA0KSB8IChlbmMzID4+IDIpO1xuICAgICAgICBjaHIzID0gKChlbmMzICYgMykgPDwgNikgfCBlbmM0O1xuICAgICAgICBiYXNlNjQgPSBiYXNlNjQgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocjEpO1xuICAgICAgICBpZiAoZW5jMyAhPSA2NCAmJiBjaHIyICE9IDApIHtcbiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuYzQgIT0gNjQgJiYgY2hyMyAhPSAwKSB7XG4gICAgICAgICAgICBiYXNlNjQgPSBiYXNlNjQgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocjMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBiYXNlNjQ7XG59XG4vKipcbiAqIEEgZGVmZXJyZWQgcmVwcmVzZW50cyBzb21lIGFzeW5jaHJvbm91cyB3b3JrIHRoYXQgaXMgbm90IHlldCBmaW5pc2hlZCwgd2hpY2hcbiAqIG1heSBvciBtYXkgbm90IGN1bG1pbmF0ZSBpbiBhIHZhbHVlLlxuICogVGFrZW4gZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL21pa2Utbm9ydGgvdHlwZXMvYmxvYi9tYXN0ZXIvc3JjL2FzeW5jLnRzXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZlcnJlZCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXh0cmEtc2VtaVxuICAgICAgICA7XG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBEZWZlcnJlZC5wcm9taXNlQ29uc3RydWN0b3IoKHJlcywgcmVqKSA9PiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4dHJhLXNlbWlcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlcztcbiAgICAgICAgICAgIHRoaXMucmVqZWN0ID0gcmVqO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5EZWZlcnJlZC5wcm9taXNlQ29uc3RydWN0b3IgPSBQcm9taXNlO1xuLy8gVGFrZW4gZnJvbTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzg1NTIwMDMvaG93LXRvLWRlY29kZS1qd3QtdG9rZW4taW4tamF2YXNjcmlwdC13aXRob3V0LXVzaW5nLWEtbGlicmFyeVxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUpXVFBheWxvYWQodG9rZW4pIHtcbiAgICAvLyBSZWdleCBjaGVja3MgZm9yIGJhc2U2NHVybCBmb3JtYXRcbiAgICBjb25zdCBiYXNlNjRVcmxSZWdleCA9IC9eKFthLXowLTlfLV17NH0pKigkfFthLXowLTlfLV17M309PyR8W2EtejAtOV8tXXsyfSg9PSk/JCkkL2k7XG4gICAgY29uc3QgcGFydHMgPSB0b2tlbi5zcGxpdCgnLicpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdKV1QgaXMgbm90IHZhbGlkOiBub3QgYSBKV1Qgc3RydWN0dXJlJyk7XG4gICAgfVxuICAgIGlmICghYmFzZTY0VXJsUmVnZXgudGVzdChwYXJ0c1sxXSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdKV1QgaXMgbm90IHZhbGlkOiBwYXlsb2FkIGlzIG5vdCBpbiBiYXNlNjR1cmwgZm9ybWF0Jyk7XG4gICAgfVxuICAgIGNvbnN0IGJhc2U2NFVybCA9IHBhcnRzWzFdO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZUJhc2U2NFVSTChiYXNlNjRVcmwpKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBudWxsIGFmdGVyIHNvbWUgdGltZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNsZWVwKHRpbWUpIHtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKGFjY2VwdCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGFjY2VwdChudWxsKSwgdGltZSk7XG4gICAgfSk7XG59XG4vKipcbiAqIENvbnZlcnRzIHRoZSBwcm92aWRlZCBhc3luYyBmdW5jdGlvbiBpbnRvIGEgcmV0cnlhYmxlIGZ1bmN0aW9uLiBFYWNoIHJlc3VsdFxuICogb3IgdGhyb3duIGVycm9yIGlzIHNlbnQgdG8gdGhlIGlzUmV0cnlhYmxlIGZ1bmN0aW9uIHdoaWNoIHNob3VsZCByZXR1cm4gdHJ1ZVxuICogaWYgdGhlIGZ1bmN0aW9uIHNob3VsZCBydW4gYWdhaW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXRyeWFibGUoZm4sIGlzUmV0cnlhYmxlKSB7XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChhY2NlcHQsIHJlamVjdCkgPT4ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4dHJhLXNlbWlcbiAgICAgICAgO1xuICAgICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPCBJbmZpbml0eTsgYXR0ZW1wdCsrKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm4oYXR0ZW1wdCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNSZXRyeWFibGUoYXR0ZW1wdCwgbnVsbCwgcmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1JldHJ5YWJsZShhdHRlbXB0LCBlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KSgpO1xuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gZGVjMmhleChkZWMpIHtcbiAgICByZXR1cm4gKCcwJyArIGRlYy50b1N0cmluZygxNikpLnN1YnN0cigtMik7XG59XG4vLyBGdW5jdGlvbnMgYmVsb3cgdGFrZW4gZnJvbTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjMzMDk0MDkvY3JlYXRpbmctYS1jb2RlLXZlcmlmaWVyLWFuZC1jaGFsbGVuZ2UtZm9yLXBrY2UtYXV0aC1vbi1zcG90aWZ5LWFwaS1pbi1yZWFjdGpzXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQS0NFVmVyaWZpZXIoKSB7XG4gICAgY29uc3QgdmVyaWZpZXJMZW5ndGggPSA1NjtcbiAgICBjb25zdCBhcnJheSA9IG5ldyBVaW50MzJBcnJheSh2ZXJpZmllckxlbmd0aCk7XG4gICAgaWYgKHR5cGVvZiBjcnlwdG8gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnN0IGNoYXJTZXQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktLl9+JztcbiAgICAgICAgY29uc3QgY2hhclNldExlbiA9IGNoYXJTZXQubGVuZ3RoO1xuICAgICAgICBsZXQgdmVyaWZpZXIgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2ZXJpZmllckxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2ZXJpZmllciArPSBjaGFyU2V0LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0TGVuKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZlcmlmaWVyO1xuICAgIH1cbiAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycmF5KTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShhcnJheSwgZGVjMmhleCkuam9pbignJyk7XG59XG5hc3luYyBmdW5jdGlvbiBzaGEyNTYocmFuZG9tU3RyaW5nKSB7XG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGNvbnN0IGVuY29kZWREYXRhID0gZW5jb2Rlci5lbmNvZGUocmFuZG9tU3RyaW5nKTtcbiAgICBjb25zdCBoYXNoID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoJ1NIQS0yNTYnLCBlbmNvZGVkRGF0YSk7XG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShoYXNoKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShieXRlcylcbiAgICAgICAgLm1hcCgoYykgPT4gU3RyaW5nLmZyb21DaGFyQ29kZShjKSlcbiAgICAgICAgLmpvaW4oJycpO1xufVxuZnVuY3Rpb24gYmFzZTY0dXJsZW5jb2RlKHN0cikge1xuICAgIHJldHVybiBidG9hKHN0cikucmVwbGFjZSgvXFwrL2csICctJykucmVwbGFjZSgvXFwvL2csICdfJykucmVwbGFjZSgvPSskLywgJycpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlUEtDRUNoYWxsZW5nZSh2ZXJpZmllcikge1xuICAgIGNvbnN0IGhhc0NyeXB0b1N1cHBvcnQgPSB0eXBlb2YgY3J5cHRvICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICB0eXBlb2YgY3J5cHRvLnN1YnRsZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgdHlwZW9mIFRleHRFbmNvZGVyICE9PSAndW5kZWZpbmVkJztcbiAgICBpZiAoIWhhc0NyeXB0b1N1cHBvcnQpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdXZWJDcnlwdG8gQVBJIGlzIG5vdCBzdXBwb3J0ZWQuIENvZGUgY2hhbGxlbmdlIG1ldGhvZCB3aWxsIGRlZmF1bHQgdG8gdXNlIHBsYWluIGluc3RlYWQgb2Ygc2hhMjU2LicpO1xuICAgICAgICByZXR1cm4gdmVyaWZpZXI7XG4gICAgfVxuICAgIGNvbnN0IGhhc2hlZCA9IGF3YWl0IHNoYTI1Nih2ZXJpZmllcik7XG4gICAgcmV0dXJuIGJhc2U2NHVybGVuY29kZShoYXNoZWQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5qcy5tYXAiXSwibmFtZXMiOlsiZXhwaXJlc0F0IiwiZXhwaXJlc0luIiwidGltZU5vdyIsIk1hdGgiLCJyb3VuZCIsIkRhdGUiLCJub3ciLCJ1dWlkIiwicmVwbGFjZSIsImMiLCJyIiwicmFuZG9tIiwidiIsInRvU3RyaW5nIiwiaXNCcm93c2VyIiwiZG9jdW1lbnQiLCJsb2NhbFN0b3JhZ2VXcml0ZVRlc3RzIiwidGVzdGVkIiwid3JpdGFibGUiLCJzdXBwb3J0c0xvY2FsU3RvcmFnZSIsImdsb2JhbFRoaXMiLCJsb2NhbFN0b3JhZ2UiLCJlIiwicmFuZG9tS2V5Iiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJwYXJzZVBhcmFtZXRlcnNGcm9tVVJMIiwiaHJlZiIsInJlc3VsdCIsInVybCIsIlVSTCIsImhhc2giLCJoYXNoU2VhcmNoUGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwic3Vic3RyaW5nIiwiZm9yRWFjaCIsInZhbHVlIiwia2V5Iiwic2VhcmNoUGFyYW1zIiwicmVzb2x2ZUZldGNoIiwiY3VzdG9tRmV0Y2giLCJfZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJ0aGVuIiwiZGVmYXVsdCIsImxvb2tzTGlrZUZldGNoUmVzcG9uc2UiLCJtYXliZVJlc3BvbnNlIiwianNvbiIsInNldEl0ZW1Bc3luYyIsInN0b3JhZ2UiLCJkYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldEl0ZW1Bc3luYyIsImdldEl0ZW0iLCJwYXJzZSIsIl9hIiwicmVtb3ZlSXRlbUFzeW5jIiwiZGVjb2RlQmFzZTY0VVJMIiwiYmFzZTY0IiwiY2hyMSIsImNocjIiLCJjaHIzIiwiZW5jMSIsImVuYzIiLCJlbmMzIiwiZW5jNCIsImkiLCJsZW5ndGgiLCJpbmRleE9mIiwiY2hhckF0IiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiRGVmZXJyZWQiLCJjb25zdHJ1Y3RvciIsInByb21pc2UiLCJwcm9taXNlQ29uc3RydWN0b3IiLCJyZXMiLCJyZWoiLCJyZXNvbHZlIiwicmVqZWN0IiwiUHJvbWlzZSIsImRlY29kZUpXVFBheWxvYWQiLCJ0b2tlbiIsImJhc2U2NFVybFJlZ2V4IiwicGFydHMiLCJzcGxpdCIsIkVycm9yIiwidGVzdCIsImJhc2U2NFVybCIsInNsZWVwIiwidGltZSIsImFjY2VwdCIsInNldFRpbWVvdXQiLCJyZXRyeWFibGUiLCJmbiIsImlzUmV0cnlhYmxlIiwiYXR0ZW1wdCIsIkluZmluaXR5IiwiZGVjMmhleCIsImRlYyIsInN1YnN0ciIsImdlbmVyYXRlUEtDRVZlcmlmaWVyIiwidmVyaWZpZXJMZW5ndGgiLCJhcnJheSIsIlVpbnQzMkFycmF5IiwiY3J5cHRvIiwiY2hhclNldCIsImNoYXJTZXRMZW4iLCJ2ZXJpZmllciIsImZsb29yIiwiZ2V0UmFuZG9tVmFsdWVzIiwiQXJyYXkiLCJmcm9tIiwiam9pbiIsInNoYTI1NiIsInJhbmRvbVN0cmluZyIsImVuY29kZXIiLCJUZXh0RW5jb2RlciIsImVuY29kZWREYXRhIiwiZW5jb2RlIiwic3VidGxlIiwiZGlnZXN0IiwiYnl0ZXMiLCJVaW50OEFycmF5IiwibWFwIiwiYmFzZTY0dXJsZW5jb2RlIiwic3RyIiwiYnRvYSIsImdlbmVyYXRlUEtDRUNoYWxsZW5nZSIsImhhc0NyeXB0b1N1cHBvcnQiLCJjb25zb2xlIiwid2FybiIsImhhc2hlZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/local-storage.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/local-storage.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ localStorageAdapter: () => (/* binding */ localStorageAdapter),\n/* harmony export */ memoryLocalStorageAdapter: () => (/* binding */ memoryLocalStorageAdapter)\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n\n/**\n * Provides safe access to the globalThis.localStorage property.\n */ const localStorageAdapter = {\n getItem: (key)=>{\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)()) {\n return null;\n }\n return globalThis.localStorage.getItem(key);\n },\n setItem: (key, value)=>{\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)()) {\n return;\n }\n globalThis.localStorage.setItem(key, value);\n },\n removeItem: (key)=>{\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)()) {\n return;\n }\n globalThis.localStorage.removeItem(key);\n }\n};\n/**\n * Returns a localStorage-like object that stores the key-value pairs in\n * memory.\n */ function memoryLocalStorageAdapter(store = {}) {\n return {\n getItem: (key)=>{\n return store[key] || null;\n },\n setItem: (key, value)=>{\n store[key] = value;\n },\n removeItem: (key)=>{\n delete store[key];\n }\n };\n} //# sourceMappingURL=local-storage.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2xvY2FsLXN0b3JhZ2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWlEO0FBQ2pEOztDQUVDLEdBQ00sTUFBTUMsc0JBQXNCO0lBQy9CQyxTQUFTLENBQUNDO1FBQ04sSUFBSSxDQUFDSCw4REFBb0JBLElBQUk7WUFDekIsT0FBTztRQUNYO1FBQ0EsT0FBT0ksV0FBV0MsWUFBWSxDQUFDSCxPQUFPLENBQUNDO0lBQzNDO0lBQ0FHLFNBQVMsQ0FBQ0gsS0FBS0k7UUFDWCxJQUFJLENBQUNQLDhEQUFvQkEsSUFBSTtZQUN6QjtRQUNKO1FBQ0FJLFdBQVdDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDSCxLQUFLSTtJQUN6QztJQUNBQyxZQUFZLENBQUNMO1FBQ1QsSUFBSSxDQUFDSCw4REFBb0JBLElBQUk7WUFDekI7UUFDSjtRQUNBSSxXQUFXQyxZQUFZLENBQUNHLFVBQVUsQ0FBQ0w7SUFDdkM7QUFDSixFQUFFO0FBQ0Y7OztDQUdDLEdBQ00sU0FBU00sMEJBQTBCQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxPQUFPO1FBQ0hSLFNBQVMsQ0FBQ0M7WUFDTixPQUFPTyxLQUFLLENBQUNQLElBQUksSUFBSTtRQUN6QjtRQUNBRyxTQUFTLENBQUNILEtBQUtJO1lBQ1hHLEtBQUssQ0FBQ1AsSUFBSSxHQUFHSTtRQUNqQjtRQUNBQyxZQUFZLENBQUNMO1lBQ1QsT0FBT08sS0FBSyxDQUFDUCxJQUFJO1FBQ3JCO0lBQ0o7QUFDSixFQUNBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvbG9jYWwtc3RvcmFnZS5qcz8xYmE2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN1cHBvcnRzTG9jYWxTdG9yYWdlIH0gZnJvbSAnLi9oZWxwZXJzJztcbi8qKlxuICogUHJvdmlkZXMgc2FmZSBhY2Nlc3MgdG8gdGhlIGdsb2JhbFRoaXMubG9jYWxTdG9yYWdlIHByb3BlcnR5LlxuICovXG5leHBvcnQgY29uc3QgbG9jYWxTdG9yYWdlQWRhcHRlciA9IHtcbiAgICBnZXRJdGVtOiAoa2V5KSA9PiB7XG4gICAgICAgIGlmICghc3VwcG9ydHNMb2NhbFN0b3JhZ2UoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdsb2JhbFRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICB9LFxuICAgIHNldEl0ZW06IChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghc3VwcG9ydHNMb2NhbFN0b3JhZ2UoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGdsb2JhbFRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgfSxcbiAgICByZW1vdmVJdGVtOiAoa2V5KSA9PiB7XG4gICAgICAgIGlmICghc3VwcG9ydHNMb2NhbFN0b3JhZ2UoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGdsb2JhbFRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICB9LFxufTtcbi8qKlxuICogUmV0dXJucyBhIGxvY2FsU3RvcmFnZS1saWtlIG9iamVjdCB0aGF0IHN0b3JlcyB0aGUga2V5LXZhbHVlIHBhaXJzIGluXG4gKiBtZW1vcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZW1vcnlMb2NhbFN0b3JhZ2VBZGFwdGVyKHN0b3JlID0ge30pIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXRJdGVtOiAoa2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmVba2V5XSB8fCBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBzZXRJdGVtOiAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgc3RvcmVba2V5XSA9IHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICByZW1vdmVJdGVtOiAoa2V5KSA9PiB7XG4gICAgICAgICAgICBkZWxldGUgc3RvcmVba2V5XTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9jYWwtc3RvcmFnZS5qcy5tYXAiXSwibmFtZXMiOlsic3VwcG9ydHNMb2NhbFN0b3JhZ2UiLCJsb2NhbFN0b3JhZ2VBZGFwdGVyIiwiZ2V0SXRlbSIsImtleSIsImdsb2JhbFRoaXMiLCJsb2NhbFN0b3JhZ2UiLCJzZXRJdGVtIiwidmFsdWUiLCJyZW1vdmVJdGVtIiwibWVtb3J5TG9jYWxTdG9yYWdlQWRhcHRlciIsInN0b3JlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/local-storage.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LockAcquireTimeoutError: () => (/* binding */ LockAcquireTimeoutError),\n/* harmony export */ NavigatorLockAcquireTimeoutError: () => (/* binding */ NavigatorLockAcquireTimeoutError),\n/* harmony export */ internals: () => (/* binding */ internals),\n/* harmony export */ navigatorLock: () => (/* binding */ navigatorLock)\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n\n/**\n * @experimental\n */ const internals = {\n /**\n * @experimental\n */ debug: !!(globalThis && (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)() && globalThis.localStorage && globalThis.localStorage.getItem(\"supabase.gotrue-js.locks.debug\") === \"true\")\n};\n/**\n * An error thrown when a lock cannot be acquired after some amount of time.\n *\n * Use the {@link #isAcquireTimeout} property instead of checking with `instanceof`.\n */ class LockAcquireTimeoutError extends Error {\n constructor(message){\n super(message);\n this.isAcquireTimeout = true;\n }\n}\nclass NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError {\n}\n/**\n * Implements a global exclusive lock using the Navigator LockManager API. It\n * is available on all browsers released after 2022-03-15 with Safari being the\n * last one to release support. If the API is not available, this function will\n * throw. Make sure you check availablility before configuring {@link\n * GoTrueClient}.\n *\n * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`\n * local storage item to `true`.\n *\n * Internals:\n *\n * Since the LockManager API does not preserve stack traces for the async\n * function passed in the `request` method, a trick is used where acquiring the\n * lock releases a previously started promise to run the operation in the `fn`\n * function. The lock waits for that promise to finish (with or without error),\n * while the function will finally wait for the result anyway.\n *\n * @param name Name of the lock to be acquired.\n * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if\n * the lock can't be acquired without waiting. If positive, the lock acquire\n * will time out after so many milliseconds. An error is\n * a timeout if it has `isAcquireTimeout` set to true.\n * @param fn The operation to run once the lock is acquired.\n */ async function navigatorLock(name, acquireTimeout, fn) {\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock: acquire lock\", name, acquireTimeout);\n }\n const abortController = new globalThis.AbortController();\n if (acquireTimeout > 0) {\n setTimeout(()=>{\n abortController.abort();\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock acquire timed out\", name);\n }\n }, acquireTimeout);\n }\n // MDN article: https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\n return await globalThis.navigator.locks.request(name, acquireTimeout === 0 ? {\n mode: \"exclusive\",\n ifAvailable: true\n } : {\n mode: \"exclusive\",\n signal: abortController.signal\n }, async (lock)=>{\n if (lock) {\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock: acquired\", name, lock.name);\n }\n try {\n return await fn();\n } finally{\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock: released\", name, lock.name);\n }\n }\n } else {\n if (acquireTimeout === 0) {\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock: not immediately available\", name);\n }\n throw new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock \"${name}\" immediately failed`);\n } else {\n if (internals.debug) {\n try {\n const result = await globalThis.navigator.locks.query();\n console.log(\"@supabase/gotrue-js: Navigator LockManager state\", JSON.stringify(result, null, \" \"));\n } catch (e) {\n console.warn(\"@supabase/gotrue-js: Error when querying Navigator LockManager state\", e);\n }\n }\n // Browser is not following the Navigator LockManager spec, it\n // returned a null lock when we didn't use ifAvailable. So we can\n // pretend the lock is acquired in the name of backward compatibility\n // and user experience and just run the function.\n console.warn(\"@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\");\n return await fn();\n }\n }\n });\n} //# sourceMappingURL=locks.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2xvY2tzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWlEO0FBQ2pEOztDQUVDLEdBQ00sTUFBTUMsWUFBWTtJQUNyQjs7S0FFQyxHQUNEQyxPQUFPLENBQUMsQ0FBRUMsQ0FBQUEsY0FDTkgsOERBQW9CQSxNQUNwQkcsV0FBV0MsWUFBWSxJQUN2QkQsV0FBV0MsWUFBWSxDQUFDQyxPQUFPLENBQUMsc0NBQXNDLE1BQUs7QUFDbkYsRUFBRTtBQUNGOzs7O0NBSUMsR0FDTSxNQUFNQyxnQ0FBZ0NDO0lBQ3pDQyxZQUFZQyxPQUFPLENBQUU7UUFDakIsS0FBSyxDQUFDQTtRQUNOLElBQUksQ0FBQ0MsZ0JBQWdCLEdBQUc7SUFDNUI7QUFDSjtBQUNPLE1BQU1DLHlDQUF5Q0w7QUFDdEQ7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBd0JDLEdBQ00sZUFBZU0sY0FBY0MsSUFBSSxFQUFFQyxjQUFjLEVBQUVDLEVBQUU7SUFDeEQsSUFBSWQsVUFBVUMsS0FBSyxFQUFFO1FBQ2pCYyxRQUFRQyxHQUFHLENBQUMsb0RBQW9ESixNQUFNQztJQUMxRTtJQUNBLE1BQU1JLGtCQUFrQixJQUFJZixXQUFXZ0IsZUFBZTtJQUN0RCxJQUFJTCxpQkFBaUIsR0FBRztRQUNwQk0sV0FBVztZQUNQRixnQkFBZ0JHLEtBQUs7WUFDckIsSUFBSXBCLFVBQVVDLEtBQUssRUFBRTtnQkFDakJjLFFBQVFDLEdBQUcsQ0FBQyx3REFBd0RKO1lBQ3hFO1FBQ0osR0FBR0M7SUFDUDtJQUNBLG9GQUFvRjtJQUNwRixPQUFPLE1BQU1YLFdBQVdtQixTQUFTLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDWCxNQUFNQyxtQkFBbUIsSUFDbkU7UUFDRVcsTUFBTTtRQUNOQyxhQUFhO0lBQ2pCLElBQ0U7UUFDRUQsTUFBTTtRQUNORSxRQUFRVCxnQkFBZ0JTLE1BQU07SUFDbEMsR0FBRyxPQUFPQztRQUNWLElBQUlBLE1BQU07WUFDTixJQUFJM0IsVUFBVUMsS0FBSyxFQUFFO2dCQUNqQmMsUUFBUUMsR0FBRyxDQUFDLGdEQUFnREosTUFBTWUsS0FBS2YsSUFBSTtZQUMvRTtZQUNBLElBQUk7Z0JBQ0EsT0FBTyxNQUFNRTtZQUNqQixTQUNRO2dCQUNKLElBQUlkLFVBQVVDLEtBQUssRUFBRTtvQkFDakJjLFFBQVFDLEdBQUcsQ0FBQyxnREFBZ0RKLE1BQU1lLEtBQUtmLElBQUk7Z0JBQy9FO1lBQ0o7UUFDSixPQUNLO1lBQ0QsSUFBSUMsbUJBQW1CLEdBQUc7Z0JBQ3RCLElBQUliLFVBQVVDLEtBQUssRUFBRTtvQkFDakJjLFFBQVFDLEdBQUcsQ0FBQyxpRUFBaUVKO2dCQUNqRjtnQkFDQSxNQUFNLElBQUlGLGlDQUFpQyxDQUFDLG1EQUFtRCxFQUFFRSxLQUFLLG9CQUFvQixDQUFDO1lBQy9ILE9BQ0s7Z0JBQ0QsSUFBSVosVUFBVUMsS0FBSyxFQUFFO29CQUNqQixJQUFJO3dCQUNBLE1BQU0yQixTQUFTLE1BQU0xQixXQUFXbUIsU0FBUyxDQUFDQyxLQUFLLENBQUNPLEtBQUs7d0JBQ3JEZCxRQUFRQyxHQUFHLENBQUMsb0RBQW9EYyxLQUFLQyxTQUFTLENBQUNILFFBQVEsTUFBTTtvQkFDakcsRUFDQSxPQUFPSSxHQUFHO3dCQUNOakIsUUFBUWtCLElBQUksQ0FBQyx3RUFBd0VEO29CQUN6RjtnQkFDSjtnQkFDQSw4REFBOEQ7Z0JBQzlELGlFQUFpRTtnQkFDakUscUVBQXFFO2dCQUNyRSxpREFBaUQ7Z0JBQ2pEakIsUUFBUWtCLElBQUksQ0FBQztnQkFDYixPQUFPLE1BQU1uQjtZQUNqQjtRQUNKO0lBQ0o7QUFDSixFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvbG9ja3MuanM/MmMyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdXBwb3J0c0xvY2FsU3RvcmFnZSB9IGZyb20gJy4vaGVscGVycyc7XG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNvbnN0IGludGVybmFscyA9IHtcbiAgICAvKipcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgZGVidWc6ICEhKGdsb2JhbFRoaXMgJiZcbiAgICAgICAgc3VwcG9ydHNMb2NhbFN0b3JhZ2UoKSAmJlxuICAgICAgICBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZSAmJlxuICAgICAgICBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdXBhYmFzZS5nb3RydWUtanMubG9ja3MuZGVidWcnKSA9PT0gJ3RydWUnKSxcbn07XG4vKipcbiAqIEFuIGVycm9yIHRocm93biB3aGVuIGEgbG9jayBjYW5ub3QgYmUgYWNxdWlyZWQgYWZ0ZXIgc29tZSBhbW91bnQgb2YgdGltZS5cbiAqXG4gKiBVc2UgdGhlIHtAbGluayAjaXNBY3F1aXJlVGltZW91dH0gcHJvcGVydHkgaW5zdGVhZCBvZiBjaGVja2luZyB3aXRoIGBpbnN0YW5jZW9mYC5cbiAqL1xuZXhwb3J0IGNsYXNzIExvY2tBY3F1aXJlVGltZW91dEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMuaXNBY3F1aXJlVGltZW91dCA9IHRydWU7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRvckxvY2tBY3F1aXJlVGltZW91dEVycm9yIGV4dGVuZHMgTG9ja0FjcXVpcmVUaW1lb3V0RXJyb3Ige1xufVxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgZ2xvYmFsIGV4Y2x1c2l2ZSBsb2NrIHVzaW5nIHRoZSBOYXZpZ2F0b3IgTG9ja01hbmFnZXIgQVBJLiBJdFxuICogaXMgYXZhaWxhYmxlIG9uIGFsbCBicm93c2VycyByZWxlYXNlZCBhZnRlciAyMDIyLTAzLTE1IHdpdGggU2FmYXJpIGJlaW5nIHRoZVxuICogbGFzdCBvbmUgdG8gcmVsZWFzZSBzdXBwb3J0LiBJZiB0aGUgQVBJIGlzIG5vdCBhdmFpbGFibGUsIHRoaXMgZnVuY3Rpb24gd2lsbFxuICogdGhyb3cuIE1ha2Ugc3VyZSB5b3UgY2hlY2sgYXZhaWxhYmxpbGl0eSBiZWZvcmUgY29uZmlndXJpbmcge0BsaW5rXG4gKiBHb1RydWVDbGllbnR9LlxuICpcbiAqIFlvdSBjYW4gdHVybiBvbiBkZWJ1Z2dpbmcgYnkgc2V0dGluZyB0aGUgYHN1cGFiYXNlLmdvdHJ1ZS1qcy5sb2Nrcy5kZWJ1Z2BcbiAqIGxvY2FsIHN0b3JhZ2UgaXRlbSB0byBgdHJ1ZWAuXG4gKlxuICogSW50ZXJuYWxzOlxuICpcbiAqIFNpbmNlIHRoZSBMb2NrTWFuYWdlciBBUEkgZG9lcyBub3QgcHJlc2VydmUgc3RhY2sgdHJhY2VzIGZvciB0aGUgYXN5bmNcbiAqIGZ1bmN0aW9uIHBhc3NlZCBpbiB0aGUgYHJlcXVlc3RgIG1ldGhvZCwgYSB0cmljayBpcyB1c2VkIHdoZXJlIGFjcXVpcmluZyB0aGVcbiAqIGxvY2sgcmVsZWFzZXMgYSBwcmV2aW91c2x5IHN0YXJ0ZWQgcHJvbWlzZSB0byBydW4gdGhlIG9wZXJhdGlvbiBpbiB0aGUgYGZuYFxuICogZnVuY3Rpb24uIFRoZSBsb2NrIHdhaXRzIGZvciB0aGF0IHByb21pc2UgdG8gZmluaXNoICh3aXRoIG9yIHdpdGhvdXQgZXJyb3IpLFxuICogd2hpbGUgdGhlIGZ1bmN0aW9uIHdpbGwgZmluYWxseSB3YWl0IGZvciB0aGUgcmVzdWx0IGFueXdheS5cbiAqXG4gKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBsb2NrIHRvIGJlIGFjcXVpcmVkLlxuICogQHBhcmFtIGFjcXVpcmVUaW1lb3V0IElmIG5lZ2F0aXZlLCBubyB0aW1lb3V0LiBJZiAwIGFuIGVycm9yIGlzIHRocm93biBpZlxuICogICAgICAgICAgICAgICAgICAgICAgIHRoZSBsb2NrIGNhbid0IGJlIGFjcXVpcmVkIHdpdGhvdXQgd2FpdGluZy4gSWYgcG9zaXRpdmUsIHRoZSBsb2NrIGFjcXVpcmVcbiAqICAgICAgICAgICAgICAgICAgICAgICB3aWxsIHRpbWUgb3V0IGFmdGVyIHNvIG1hbnkgbWlsbGlzZWNvbmRzLiBBbiBlcnJvciBpc1xuICogICAgICAgICAgICAgICAgICAgICAgIGEgdGltZW91dCBpZiBpdCBoYXMgYGlzQWNxdWlyZVRpbWVvdXRgIHNldCB0byB0cnVlLlxuICogQHBhcmFtIGZuIFRoZSBvcGVyYXRpb24gdG8gcnVuIG9uY2UgdGhlIGxvY2sgaXMgYWNxdWlyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBuYXZpZ2F0b3JMb2NrKG5hbWUsIGFjcXVpcmVUaW1lb3V0LCBmbikge1xuICAgIGlmIChpbnRlcm5hbHMuZGVidWcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0BzdXBhYmFzZS9nb3RydWUtanM6IG5hdmlnYXRvckxvY2s6IGFjcXVpcmUgbG9jaycsIG5hbWUsIGFjcXVpcmVUaW1lb3V0KTtcbiAgICB9XG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IGdsb2JhbFRoaXMuQWJvcnRDb250cm9sbGVyKCk7XG4gICAgaWYgKGFjcXVpcmVUaW1lb3V0ID4gMCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgICAgICAgaWYgKGludGVybmFscy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBuYXZpZ2F0b3JMb2NrIGFjcXVpcmUgdGltZWQgb3V0JywgbmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGFjcXVpcmVUaW1lb3V0KTtcbiAgICB9XG4gICAgLy8gTUROIGFydGljbGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9Mb2NrTWFuYWdlci9yZXF1ZXN0XG4gICAgcmV0dXJuIGF3YWl0IGdsb2JhbFRoaXMubmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QobmFtZSwgYWNxdWlyZVRpbWVvdXQgPT09IDBcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtb2RlOiAnZXhjbHVzaXZlJyxcbiAgICAgICAgICAgIGlmQXZhaWxhYmxlOiB0cnVlLFxuICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgbW9kZTogJ2V4Y2x1c2l2ZScsXG4gICAgICAgICAgICBzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0sIGFzeW5jIChsb2NrKSA9PiB7XG4gICAgICAgIGlmIChsb2NrKSB7XG4gICAgICAgICAgICBpZiAoaW50ZXJuYWxzLmRlYnVnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0BzdXBhYmFzZS9nb3RydWUtanM6IG5hdmlnYXRvckxvY2s6IGFjcXVpcmVkJywgbmFtZSwgbG9jay5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGZuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLmRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBuYXZpZ2F0b3JMb2NrOiByZWxlYXNlZCcsIG5hbWUsIGxvY2submFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGFjcXVpcmVUaW1lb3V0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGludGVybmFscy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQHN1cGFiYXNlL2dvdHJ1ZS1qczogbmF2aWdhdG9yTG9jazogbm90IGltbWVkaWF0ZWx5IGF2YWlsYWJsZScsIG5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTmF2aWdhdG9yTG9ja0FjcXVpcmVUaW1lb3V0RXJyb3IoYEFjcXVpcmluZyBhbiBleGNsdXNpdmUgTmF2aWdhdG9yIExvY2tNYW5hZ2VyIGxvY2sgXCIke25hbWV9XCIgaW1tZWRpYXRlbHkgZmFpbGVkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLmRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBnbG9iYWxUaGlzLm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0BzdXBhYmFzZS9nb3RydWUtanM6IE5hdmlnYXRvciBMb2NrTWFuYWdlciBzdGF0ZScsIEpTT04uc3RyaW5naWZ5KHJlc3VsdCwgbnVsbCwgJyAgJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0BzdXBhYmFzZS9nb3RydWUtanM6IEVycm9yIHdoZW4gcXVlcnlpbmcgTmF2aWdhdG9yIExvY2tNYW5hZ2VyIHN0YXRlJywgZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQnJvd3NlciBpcyBub3QgZm9sbG93aW5nIHRoZSBOYXZpZ2F0b3IgTG9ja01hbmFnZXIgc3BlYywgaXRcbiAgICAgICAgICAgICAgICAvLyByZXR1cm5lZCBhIG51bGwgbG9jayB3aGVuIHdlIGRpZG4ndCB1c2UgaWZBdmFpbGFibGUuIFNvIHdlIGNhblxuICAgICAgICAgICAgICAgIC8vIHByZXRlbmQgdGhlIGxvY2sgaXMgYWNxdWlyZWQgaW4gdGhlIG5hbWUgb2YgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgIC8vIGFuZCB1c2VyIGV4cGVyaWVuY2UgYW5kIGp1c3QgcnVuIHRoZSBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0BzdXBhYmFzZS9nb3RydWUtanM6IE5hdmlnYXRvciBMb2NrTWFuYWdlciByZXR1cm5lZCBhIG51bGwgbG9jayB3aGVuIHVzaW5nICNyZXF1ZXN0IHdpdGhvdXQgaWZBdmFpbGFibGUgc2V0IHRvIHRydWUsIGl0IGFwcGVhcnMgdGhpcyBicm93c2VyIGlzIG5vdCBmb2xsb3dpbmcgdGhlIExvY2tNYW5hZ2VyIHNwZWMgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0xvY2tNYW5hZ2VyL3JlcXVlc3QnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgZm4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9ja3MuanMubWFwIl0sIm5hbWVzIjpbInN1cHBvcnRzTG9jYWxTdG9yYWdlIiwiaW50ZXJuYWxzIiwiZGVidWciLCJnbG9iYWxUaGlzIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIkxvY2tBY3F1aXJlVGltZW91dEVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJpc0FjcXVpcmVUaW1lb3V0IiwiTmF2aWdhdG9yTG9ja0FjcXVpcmVUaW1lb3V0RXJyb3IiLCJuYXZpZ2F0b3JMb2NrIiwibmFtZSIsImFjcXVpcmVUaW1lb3V0IiwiZm4iLCJjb25zb2xlIiwibG9nIiwiYWJvcnRDb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwic2V0VGltZW91dCIsImFib3J0IiwibmF2aWdhdG9yIiwibG9ja3MiLCJyZXF1ZXN0IiwibW9kZSIsImlmQXZhaWxhYmxlIiwic2lnbmFsIiwibG9jayIsInJlc3VsdCIsInF1ZXJ5IiwiSlNPTiIsInN0cmluZ2lmeSIsImUiLCJ3YXJuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/polyfills.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/polyfills.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ polyfillGlobalThis: () => (/* binding */ polyfillGlobalThis)\n/* harmony export */ });\n/**\n * https://mathiasbynens.be/notes/globalthis\n */ function polyfillGlobalThis() {\n if (typeof globalThis === \"object\") return;\n try {\n Object.defineProperty(Object.prototype, \"__magic__\", {\n get: function() {\n return this;\n },\n configurable: true\n });\n // @ts-expect-error 'Allow access to magic'\n __magic__.globalThis = __magic__;\n // @ts-expect-error 'Allow access to magic'\n delete Object.prototype.__magic__;\n } catch (e) {\n if (typeof self !== \"undefined\") {\n // @ts-expect-error 'Allow access to globals'\n self.globalThis = self;\n }\n }\n} //# sourceMappingURL=polyfills.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL3BvbHlmaWxscy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0NBRUMsR0FDTSxTQUFTQTtJQUNaLElBQUksT0FBT0MsZUFBZSxVQUN0QjtJQUNKLElBQUk7UUFDQUMsT0FBT0MsY0FBYyxDQUFDRCxPQUFPRSxTQUFTLEVBQUUsYUFBYTtZQUNqREMsS0FBSztnQkFDRCxPQUFPLElBQUk7WUFDZjtZQUNBQyxjQUFjO1FBQ2xCO1FBQ0EsMkNBQTJDO1FBQzNDQyxVQUFVTixVQUFVLEdBQUdNO1FBQ3ZCLDJDQUEyQztRQUMzQyxPQUFPTCxPQUFPRSxTQUFTLENBQUNHLFNBQVM7SUFDckMsRUFDQSxPQUFPQyxHQUFHO1FBQ04sSUFBSSxPQUFPQyxTQUFTLGFBQWE7WUFDN0IsNkNBQTZDO1lBQzdDQSxLQUFLUixVQUFVLEdBQUdRO1FBQ3RCO0lBQ0o7QUFDSixFQUNBLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvcG9seWZpbGxzLmpzP2Y3MDAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvZ2xvYmFsdGhpc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcG9seWZpbGxHbG9iYWxUaGlzKCkge1xuICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpXG4gICAgICAgIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgJ19fbWFnaWNfXycsIHtcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgJ0FsbG93IGFjY2VzcyB0byBtYWdpYydcbiAgICAgICAgX19tYWdpY19fLmdsb2JhbFRoaXMgPSBfX21hZ2ljX187XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgJ0FsbG93IGFjY2VzcyB0byBtYWdpYydcbiAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGUuX19tYWdpY19fO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yICdBbGxvdyBhY2Nlc3MgdG8gZ2xvYmFscydcbiAgICAgICAgICAgIHNlbGYuZ2xvYmFsVGhpcyA9IHNlbGY7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wb2x5ZmlsbHMuanMubWFwIl0sIm5hbWVzIjpbInBvbHlmaWxsR2xvYmFsVGhpcyIsImdsb2JhbFRoaXMiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInByb3RvdHlwZSIsImdldCIsImNvbmZpZ3VyYWJsZSIsIl9fbWFnaWNfXyIsImUiLCJzZWxmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/polyfills.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/types.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/types.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n //# sourceMappingURL=types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL3R5cGVzLmpzIiwibWFwcGluZ3MiOiI7QUFBVSxDQUNWLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvdHlwZXMuanM/NjYxNyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD10eXBlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/types.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/version.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/version.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\n// Generated by genversion.\nconst version = \"0.0.0\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL3ZlcnNpb24uanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDJCQUEyQjtBQUNwQixNQUFNQSxVQUFVLFFBQVEsQ0FDL0IsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL2xpYi92ZXJzaW9uLmpzPzQ3MjYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGdlbnZlcnNpb24uXG5leHBvcnQgY29uc3QgdmVyc2lvbiA9ICcwLjAuMCc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZXJzaW9uLmpzLm1hcCJdLCJuYW1lcyI6WyJ2ZXJzaW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/gotrue-js/dist/module/lib/version.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/node-fetch/browser.js": +/*!******************************************************!*\ + !*** ./node_modules/@supabase/node-fetch/browser.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Headers: () => (/* binding */ Headers),\n/* harmony export */ Request: () => (/* binding */ Request),\n/* harmony export */ Response: () => (/* binding */ Response),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ fetch: () => (/* binding */ fetch)\n/* harmony export */ });\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== \"undefined\") {\n return self;\n }\n if (false) {}\n if (typeof __webpack_require__.g !== \"undefined\") {\n return __webpack_require__.g;\n }\n throw new Error(\"unable to locate global object\");\n};\nvar globalObject = getGlobal();\nconst fetch = globalObject.fetch;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (globalObject.fetch.bind(globalObject));\nconst Headers = globalObject.Headers;\nconst Request = globalObject.Request;\nconst Response = globalObject.Response;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9ub2RlLWZldGNoL2Jyb3dzZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBYTtBQUViLCtDQUErQztBQUMvQyxJQUFJQSxZQUFZO0lBQ1osc0RBQXNEO0lBQ3RELDhCQUE4QjtJQUM5QixzREFBc0Q7SUFDdEQsSUFBSSxPQUFPQyxTQUFTLGFBQWE7UUFBRSxPQUFPQTtJQUFNO0lBQ2hELElBQUksS0FBa0IsRUFBYSxFQUFrQjtJQUNyRCxJQUFJLE9BQU9FLHFCQUFNQSxLQUFLLGFBQWE7UUFBRSxPQUFPQSxxQkFBTUE7SUFBRTtJQUNwRCxNQUFNLElBQUlDLE1BQU07QUFDcEI7QUFFQSxJQUFJQyxlQUFlTDtBQUVaLE1BQU1NLFFBQVFELGFBQWFDLEtBQUssQ0FBQztBQUV4QyxpRUFBZUQsYUFBYUMsS0FBSyxDQUFDQyxJQUFJLENBQUNGLGFBQWFBLEVBQUM7QUFFOUMsTUFBTUcsVUFBVUgsYUFBYUcsT0FBTyxDQUFDO0FBQ3JDLE1BQU1DLFVBQVVKLGFBQWFJLE9BQU8sQ0FBQztBQUNyQyxNQUFNQyxXQUFXTCxhQUFhSyxRQUFRLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9ub2RlLWZldGNoL2Jyb3dzZXIuanM/MjFmZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1nbG9iYWxcbnZhciBnZXRHbG9iYWwgPSBmdW5jdGlvbigpIHtcbiAgICAvLyB0aGUgb25seSByZWxpYWJsZSBtZWFucyB0byBnZXQgdGhlIGdsb2JhbCBvYmplY3QgaXNcbiAgICAvLyBgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKWBcbiAgICAvLyBIb3dldmVyLCB0aGlzIGNhdXNlcyBDU1AgdmlvbGF0aW9ucyBpbiBDaHJvbWUgYXBwcy5cbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7IHJldHVybiBzZWxmOyB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7IHJldHVybiB3aW5kb3c7IH1cbiAgICBpZiAodHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuIGdsb2JhbDsgfVxuICAgIHRocm93IG5ldyBFcnJvcigndW5hYmxlIHRvIGxvY2F0ZSBnbG9iYWwgb2JqZWN0Jyk7XG59XG5cbnZhciBnbG9iYWxPYmplY3QgPSBnZXRHbG9iYWwoKTtcblxuZXhwb3J0IGNvbnN0IGZldGNoID0gZ2xvYmFsT2JqZWN0LmZldGNoO1xuXG5leHBvcnQgZGVmYXVsdCBnbG9iYWxPYmplY3QuZmV0Y2guYmluZChnbG9iYWxPYmplY3QpO1xuXG5leHBvcnQgY29uc3QgSGVhZGVycyA9IGdsb2JhbE9iamVjdC5IZWFkZXJzO1xuZXhwb3J0IGNvbnN0IFJlcXVlc3QgPSBnbG9iYWxPYmplY3QuUmVxdWVzdDtcbmV4cG9ydCBjb25zdCBSZXNwb25zZSA9IGdsb2JhbE9iamVjdC5SZXNwb25zZTtcbiJdLCJuYW1lcyI6WyJnZXRHbG9iYWwiLCJzZWxmIiwid2luZG93IiwiZ2xvYmFsIiwiRXJyb3IiLCJnbG9iYWxPYmplY3QiLCJmZXRjaCIsImJpbmQiLCJIZWFkZXJzIiwiUmVxdWVzdCIsIlJlc3BvbnNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/node-fetch/browser.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PostgrestBuilder)\n/* harmony export */ });\n/* harmony import */ var _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/node-fetch */ \"(middleware)/./node_modules/@supabase/node-fetch/browser.js\");\n/* harmony import */ var _PostgrestError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PostgrestError */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestError.js\");\n// @ts-ignore\n\n\nclass PostgrestBuilder {\n constructor(builder){\n this.shouldThrowOnError = false;\n this.method = builder.method;\n this.url = builder.url;\n this.headers = builder.headers;\n this.schema = builder.schema;\n this.body = builder.body;\n this.shouldThrowOnError = builder.shouldThrowOnError;\n this.signal = builder.signal;\n this.isMaybeSingle = builder.isMaybeSingle;\n if (builder.fetch) {\n this.fetch = builder.fetch;\n } else if (typeof fetch === \"undefined\") {\n this.fetch = _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n } else {\n this.fetch = fetch;\n }\n }\n /**\n * If there's an error with the query, throwOnError will reject the promise by\n * throwing the error instead of returning it as part of a successful response.\n *\n * {@link https://github.com/supabase/supabase-js/issues/92}\n */ throwOnError() {\n this.shouldThrowOnError = true;\n return this;\n }\n then(onfulfilled, onrejected) {\n // https://postgrest.org/en/stable/api.html#switching-schemas\n if (this.schema === undefined) {\n // skip\n } else if ([\n \"GET\",\n \"HEAD\"\n ].includes(this.method)) {\n this.headers[\"Accept-Profile\"] = this.schema;\n } else {\n this.headers[\"Content-Profile\"] = this.schema;\n }\n if (this.method !== \"GET\" && this.method !== \"HEAD\") {\n this.headers[\"Content-Type\"] = \"application/json\";\n }\n // NOTE: Invoke w/o `this` to avoid illegal invocation error.\n // https://github.com/supabase/postgrest-js/pull/247\n const _fetch = this.fetch;\n let res = _fetch(this.url.toString(), {\n method: this.method,\n headers: this.headers,\n body: JSON.stringify(this.body),\n signal: this.signal\n }).then(async (res)=>{\n var _a, _b, _c;\n let error = null;\n let data = null;\n let count = null;\n let status = res.status;\n let statusText = res.statusText;\n if (res.ok) {\n if (this.method !== \"HEAD\") {\n const body = await res.text();\n if (body === \"\") {\n // Prefer: return=minimal\n } else if (this.headers[\"Accept\"] === \"text/csv\") {\n data = body;\n } else if (this.headers[\"Accept\"] && this.headers[\"Accept\"].includes(\"application/vnd.pgrst.plan+text\")) {\n data = body;\n } else {\n data = JSON.parse(body);\n }\n }\n const countHeader = (_a = this.headers[\"Prefer\"]) === null || _a === void 0 ? void 0 : _a.match(/count=(exact|planned|estimated)/);\n const contentRange = (_b = res.headers.get(\"content-range\")) === null || _b === void 0 ? void 0 : _b.split(\"/\");\n if (countHeader && contentRange && contentRange.length > 1) {\n count = parseInt(contentRange[1]);\n }\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\n if (this.isMaybeSingle && this.method === \"GET\" && Array.isArray(data)) {\n if (data.length > 1) {\n error = {\n // https://github.com/PostgREST/postgrest/blob/a867d79c42419af16c18c3fb019eba8df992626f/src/PostgREST/Error.hs#L553\n code: \"PGRST116\",\n details: `Results contain ${data.length} rows, application/vnd.pgrst.object+json requires 1 row`,\n hint: null,\n message: \"JSON object requested, multiple (or no) rows returned\"\n };\n data = null;\n count = null;\n status = 406;\n statusText = \"Not Acceptable\";\n } else if (data.length === 1) {\n data = data[0];\n } else {\n data = null;\n }\n }\n } else {\n const body = await res.text();\n try {\n error = JSON.parse(body);\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\n if (Array.isArray(error) && res.status === 404) {\n data = [];\n error = null;\n status = 200;\n statusText = \"OK\";\n }\n } catch (_d) {\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\n if (res.status === 404 && body === \"\") {\n status = 204;\n statusText = \"No Content\";\n } else {\n error = {\n message: body\n };\n }\n }\n if (error && this.isMaybeSingle && ((_c = error === null || error === void 0 ? void 0 : error.details) === null || _c === void 0 ? void 0 : _c.includes(\"0 rows\"))) {\n error = null;\n status = 200;\n statusText = \"OK\";\n }\n if (error && this.shouldThrowOnError) {\n throw new _PostgrestError__WEBPACK_IMPORTED_MODULE_1__[\"default\"](error);\n }\n }\n const postgrestResponse = {\n error,\n data,\n count,\n status,\n statusText\n };\n return postgrestResponse;\n });\n if (!this.shouldThrowOnError) {\n res = res.catch((fetchError)=>{\n var _a, _b, _c;\n return {\n error: {\n message: `${(_a = fetchError === null || fetchError === void 0 ? void 0 : fetchError.name) !== null && _a !== void 0 ? _a : \"FetchError\"}: ${fetchError === null || fetchError === void 0 ? void 0 : fetchError.message}`,\n details: `${(_b = fetchError === null || fetchError === void 0 ? void 0 : fetchError.stack) !== null && _b !== void 0 ? _b : \"\"}`,\n hint: \"\",\n code: `${(_c = fetchError === null || fetchError === void 0 ? void 0 : fetchError.code) !== null && _c !== void 0 ? _c : \"\"}`\n },\n data: null,\n count: null,\n status: 0,\n statusText: \"\"\n };\n });\n }\n return res.then(onfulfilled, onrejected);\n }\n} //# sourceMappingURL=PostgrestBuilder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0QnVpbGRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxhQUFhO0FBQ2dDO0FBQ0M7QUFDL0IsTUFBTUU7SUFDakJDLFlBQVlDLE9BQU8sQ0FBRTtRQUNqQixJQUFJLENBQUNDLGtCQUFrQixHQUFHO1FBQzFCLElBQUksQ0FBQ0MsTUFBTSxHQUFHRixRQUFRRSxNQUFNO1FBQzVCLElBQUksQ0FBQ0MsR0FBRyxHQUFHSCxRQUFRRyxHQUFHO1FBQ3RCLElBQUksQ0FBQ0MsT0FBTyxHQUFHSixRQUFRSSxPQUFPO1FBQzlCLElBQUksQ0FBQ0MsTUFBTSxHQUFHTCxRQUFRSyxNQUFNO1FBQzVCLElBQUksQ0FBQ0MsSUFBSSxHQUFHTixRQUFRTSxJQUFJO1FBQ3hCLElBQUksQ0FBQ0wsa0JBQWtCLEdBQUdELFFBQVFDLGtCQUFrQjtRQUNwRCxJQUFJLENBQUNNLE1BQU0sR0FBR1AsUUFBUU8sTUFBTTtRQUM1QixJQUFJLENBQUNDLGFBQWEsR0FBR1IsUUFBUVEsYUFBYTtRQUMxQyxJQUFJUixRQUFRUyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUNBLEtBQUssR0FBR1QsUUFBUVMsS0FBSztRQUM5QixPQUNLLElBQUksT0FBT0EsVUFBVSxhQUFhO1lBQ25DLElBQUksQ0FBQ0EsS0FBSyxHQUFHYiw0REFBU0E7UUFDMUIsT0FDSztZQUNELElBQUksQ0FBQ2EsS0FBSyxHQUFHQTtRQUNqQjtJQUNKO0lBQ0E7Ozs7O0tBS0MsR0FDREMsZUFBZTtRQUNYLElBQUksQ0FBQ1Qsa0JBQWtCLEdBQUc7UUFDMUIsT0FBTyxJQUFJO0lBQ2Y7SUFDQVUsS0FBS0MsV0FBVyxFQUFFQyxVQUFVLEVBQUU7UUFDMUIsNkRBQTZEO1FBQzdELElBQUksSUFBSSxDQUFDUixNQUFNLEtBQUtTLFdBQVc7UUFDM0IsT0FBTztRQUNYLE9BQ0ssSUFBSTtZQUFDO1lBQU87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QUFDdkIsS0FBSzJCLGVBQWUsUUFBUUEsZUFBZSxLQUFLLElBQUksS0FBSyxJQUFJQSxXQUFXQyxJQUFJLE1BQU0sUUFBUTVCLE9BQU8sS0FBSyxJQUFJQSxLQUFLLGFBQWEsRUFBRSxFQUFFMkIsZUFBZSxRQUFRQSxlQUFlLEtBQUssSUFBSSxLQUFLLElBQUlBLFdBQVdKLE9BQU8sQ0FBQyxDQUFDO3dCQUN6TkYsU0FBUyxDQUFDLEVBQUUsQ0FBQ3BCLEtBQUswQixlQUFlLFFBQVFBLGVBQWUsS0FBSyxJQUFJLEtBQUssSUFBSUEsV0FBV0UsS0FBSyxNQUFNLFFBQVE1QixPQUFPLEtBQUssSUFBSUEsS0FBSyxHQUFHLENBQUM7d0JBQ2pJcUIsTUFBTTt3QkFDTkYsTUFBTSxDQUFDLEVBQUUsQ0FBQ2xCLEtBQUt5QixlQUFlLFFBQVFBLGVBQWUsS0FBSyxJQUFJLEtBQUssSUFBSUEsV0FBV1AsSUFBSSxNQUFNLFFBQVFsQixPQUFPLEtBQUssSUFBSUEsS0FBSyxHQUFHLENBQUM7b0JBQ2pJO29CQUNBRSxNQUFNO29CQUNOQyxPQUFPO29CQUNQQyxRQUFRO29CQUNSQyxZQUFZO2dCQUNoQjtZQUNKO1FBQ0o7UUFDQSxPQUFPWCxJQUFJTixJQUFJLENBQUNDLGFBQWFDO0lBQ2pDO0FBQ0osRUFDQSw0Q0FBNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0QnVpbGRlci5qcz9mNzRmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBub2RlRmV0Y2ggZnJvbSAnQHN1cGFiYXNlL25vZGUtZmV0Y2gnO1xuaW1wb3J0IFBvc3RncmVzdEVycm9yIGZyb20gJy4vUG9zdGdyZXN0RXJyb3InO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9zdGdyZXN0QnVpbGRlciB7XG4gICAgY29uc3RydWN0b3IoYnVpbGRlcikge1xuICAgICAgICB0aGlzLnNob3VsZFRocm93T25FcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1ldGhvZCA9IGJ1aWxkZXIubWV0aG9kO1xuICAgICAgICB0aGlzLnVybCA9IGJ1aWxkZXIudXJsO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBidWlsZGVyLmhlYWRlcnM7XG4gICAgICAgIHRoaXMuc2NoZW1hID0gYnVpbGRlci5zY2hlbWE7XG4gICAgICAgIHRoaXMuYm9keSA9IGJ1aWxkZXIuYm9keTtcbiAgICAgICAgdGhpcy5zaG91bGRUaHJvd09uRXJyb3IgPSBidWlsZGVyLnNob3VsZFRocm93T25FcnJvcjtcbiAgICAgICAgdGhpcy5zaWduYWwgPSBidWlsZGVyLnNpZ25hbDtcbiAgICAgICAgdGhpcy5pc01heWJlU2luZ2xlID0gYnVpbGRlci5pc01heWJlU2luZ2xlO1xuICAgICAgICBpZiAoYnVpbGRlci5mZXRjaCkge1xuICAgICAgICAgICAgdGhpcy5mZXRjaCA9IGJ1aWxkZXIuZmV0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGZldGNoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5mZXRjaCA9IG5vZGVGZXRjaDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2ggPSBmZXRjaDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBJZiB0aGVyZSdzIGFuIGVycm9yIHdpdGggdGhlIHF1ZXJ5LCB0aHJvd09uRXJyb3Igd2lsbCByZWplY3QgdGhlIHByb21pc2UgYnlcbiAgICAgKiB0aHJvd2luZyB0aGUgZXJyb3IgaW5zdGVhZCBvZiByZXR1cm5pbmcgaXQgYXMgcGFydCBvZiBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3N1cGFiYXNlL3N1cGFiYXNlLWpzL2lzc3Vlcy85Mn1cbiAgICAgKi9cbiAgICB0aHJvd09uRXJyb3IoKSB7XG4gICAgICAgIHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHRoZW4ob25mdWxmaWxsZWQsIG9ucmVqZWN0ZWQpIHtcbiAgICAgICAgLy8gaHR0cHM6Ly9wb3N0Z3Jlc3Qub3JnL2VuL3N0YWJsZS9hcGkuaHRtbCNzd2l0Y2hpbmctc2NoZW1hc1xuICAgICAgICBpZiAodGhpcy5zY2hlbWEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gc2tpcFxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFsnR0VUJywgJ0hFQUQnXS5pbmNsdWRlcyh0aGlzLm1ldGhvZCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snQWNjZXB0LVByb2ZpbGUnXSA9IHRoaXMuc2NoZW1hO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydDb250ZW50LVByb2ZpbGUnXSA9IHRoaXMuc2NoZW1hO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1ldGhvZCAhPT0gJ0dFVCcgJiYgdGhpcy5tZXRob2QgIT09ICdIRUFEJykge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgICAgfVxuICAgICAgICAvLyBOT1RFOiBJbnZva2Ugdy9vIGB0aGlzYCB0byBhdm9pZCBpbGxlZ2FsIGludm9jYXRpb24gZXJyb3IuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9wb3N0Z3Jlc3QtanMvcHVsbC8yNDdcbiAgICAgICAgY29uc3QgX2ZldGNoID0gdGhpcy5mZXRjaDtcbiAgICAgICAgbGV0IHJlcyA9IF9mZXRjaCh0aGlzLnVybC50b1N0cmluZygpLCB7XG4gICAgICAgICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkodGhpcy5ib2R5KSxcbiAgICAgICAgICAgIHNpZ25hbDogdGhpcy5zaWduYWwsXG4gICAgICAgIH0pLnRoZW4oYXN5bmMgKHJlcykgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgICAgICBsZXQgZXJyb3IgPSBudWxsO1xuICAgICAgICAgICAgbGV0IGRhdGEgPSBudWxsO1xuICAgICAgICAgICAgbGV0IGNvdW50ID0gbnVsbDtcbiAgICAgICAgICAgIGxldCBzdGF0dXMgPSByZXMuc3RhdHVzO1xuICAgICAgICAgICAgbGV0IHN0YXR1c1RleHQgPSByZXMuc3RhdHVzVGV4dDtcbiAgICAgICAgICAgIGlmIChyZXMub2spIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tZXRob2QgIT09ICdIRUFEJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVzLnRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmVmZXI6IHJldHVybj1taW5pbWFsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5oZWFkZXJzWydBY2NlcHQnXSA9PT0gJ3RleHQvY3N2Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGJvZHk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5oZWFkZXJzWydBY2NlcHQnXSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQnXS5pbmNsdWRlcygnYXBwbGljYXRpb24vdm5kLnBncnN0LnBsYW4rdGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYm9keTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGJvZHkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50SGVhZGVyID0gKF9hID0gdGhpcy5oZWFkZXJzWydQcmVmZXInXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1hdGNoKC9jb3VudD0oZXhhY3R8cGxhbm5lZHxlc3RpbWF0ZWQpLyk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudFJhbmdlID0gKF9iID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXJhbmdlJykpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zcGxpdCgnLycpO1xuICAgICAgICAgICAgICAgIGlmIChjb3VudEhlYWRlciAmJiBjb250ZW50UmFuZ2UgJiYgY29udGVudFJhbmdlLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnQgPSBwYXJzZUludChjb250ZW50UmFuZ2VbMV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBUZW1wb3JhcnkgcGFydGlhbCBmaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9wb3N0Z3Jlc3QtanMvaXNzdWVzLzM2MVxuICAgICAgICAgICAgICAgIC8vIElzc3VlIHBlcnNpc3RzIGUuZy4gZm9yIGAuaW5zZXJ0KFsuLi5dKS5zZWxlY3QoKS5tYXliZVNpbmdsZSgpYFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTWF5YmVTaW5nbGUgJiYgdGhpcy5tZXRob2QgPT09ICdHRVQnICYmIEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL1Bvc3RnUkVTVC9wb3N0Z3Jlc3QvYmxvYi9hODY3ZDc5YzQyNDE5YWYxNmMxOGMzZmIwMTllYmE4ZGY5OTI2MjZmL3NyYy9Qb3N0Z1JFU1QvRXJyb3IuaHMjTDU1M1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6ICdQR1JTVDExNicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsczogYFJlc3VsdHMgY29udGFpbiAke2RhdGEubGVuZ3RofSByb3dzLCBhcHBsaWNhdGlvbi92bmQucGdyc3Qub2JqZWN0K2pzb24gcmVxdWlyZXMgMSByb3dgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0pTT04gb2JqZWN0IHJlcXVlc3RlZCwgbXVsdGlwbGUgKG9yIG5vKSByb3dzIHJldHVybmVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IDQwNjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgPSAnTm90IEFjY2VwdGFibGUnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YVswXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlcy50ZXh0KCk7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBKU09OLnBhcnNlKGJvZHkpO1xuICAgICAgICAgICAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vc3VwYWJhc2UvcG9zdGdyZXN0LWpzL2lzc3Vlcy8yOTVcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyb3IpICYmIHJlcy5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gMjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA9ICdPSyc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKF9kKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9wb3N0Z3Jlc3QtanMvaXNzdWVzLzI5NVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDA0ICYmIGJvZHkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAyMDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0ID0gJ05vIENvbnRlbnQnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYm9keSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yICYmIHRoaXMuaXNNYXliZVNpbmdsZSAmJiAoKF9jID0gZXJyb3IgPT09IG51bGwgfHwgZXJyb3IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9yLmRldGFpbHMpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5pbmNsdWRlcygnMCByb3dzJykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gMjAwO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0ID0gJ09LJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yICYmIHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBQb3N0Z3Jlc3RFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcG9zdGdyZXN0UmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICBjb3VudCxcbiAgICAgICAgICAgICAgICBzdGF0dXMsXG4gICAgICAgICAgICAgICAgc3RhdHVzVGV4dCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcG9zdGdyZXN0UmVzcG9uc2U7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkVGhyb3dPbkVycm9yKSB7XG4gICAgICAgICAgICByZXMgPSByZXMuY2F0Y2goKGZldGNoRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGAkeyhfYSA9IGZldGNoRXJyb3IgPT09IG51bGwgfHwgZmV0Y2hFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmV0Y2hFcnJvci5uYW1lKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnRmV0Y2hFcnJvcid9OiAke2ZldGNoRXJyb3IgPT09IG51bGwgfHwgZmV0Y2hFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmV0Y2hFcnJvci5tZXNzYWdlfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzOiBgJHsoX2IgPSBmZXRjaEVycm9yID09PSBudWxsIHx8IGZldGNoRXJyb3IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZldGNoRXJyb3Iuc3RhY2spICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBoaW50OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IGAkeyhfYyA9IGZldGNoRXJyb3IgPT09IG51bGwgfHwgZmV0Y2hFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmV0Y2hFcnJvci5jb2RlKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnJ31gLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBjb3VudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAwLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiAnJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXMudGhlbihvbmZ1bGZpbGxlZCwgb25yZWplY3RlZCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG9zdGdyZXN0QnVpbGRlci5qcy5tYXAiXSwibmFtZXMiOlsibm9kZUZldGNoIiwiUG9zdGdyZXN0RXJyb3IiLCJQb3N0Z3Jlc3RCdWlsZGVyIiwiY29uc3RydWN0b3IiLCJidWlsZGVyIiwic2hvdWxkVGhyb3dPbkVycm9yIiwibWV0aG9kIiwidXJsIiwiaGVhZGVycyIsInNjaGVtYSIsImJvZHkiLCJzaWduYWwiLCJpc01heWJlU2luZ2xlIiwiZmV0Y2giLCJ0aHJvd09uRXJyb3IiLCJ0aGVuIiwib25mdWxmaWxsZWQiLCJvbnJlamVjdGVkIiwidW5kZWZpbmVkIiwiaW5jbHVkZXMiLCJfZmV0Y2giLCJyZXMiLCJ0b1N0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJfYSIsIl9iIiwiX2MiLCJlcnJvciIsImRhdGEiLCJjb3VudCIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJvayIsInRleHQiLCJwYXJzZSIsImNvdW50SGVhZGVyIiwibWF0Y2giLCJjb250ZW50UmFuZ2UiLCJnZXQiLCJzcGxpdCIsImxlbmd0aCIsInBhcnNlSW50IiwiQXJyYXkiLCJpc0FycmF5IiwiY29kZSIsImRldGFpbHMiLCJoaW50IiwibWVzc2FnZSIsIl9kIiwicG9zdGdyZXN0UmVzcG9uc2UiLCJjYXRjaCIsImZldGNoRXJyb3IiLCJuYW1lIiwic3RhY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestClient.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestClient.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PostgrestClient)\n/* harmony export */ });\n/* harmony import */ var _PostgrestQueryBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestQueryBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js\");\n/* harmony import */ var _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PostgrestFilterBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/constants.js\");\n\n\n\n/**\n * PostgREST client.\n *\n * @typeParam Database - Types for the schema from the [type\n * generator](https://supabase.com/docs/reference/javascript/next/typescript-support)\n *\n * @typeParam SchemaName - Postgres schema to switch to. Must be a string\n * literal, the same one passed to the constructor. If the schema is not\n * `\"public\"`, this must be supplied manually.\n */ class PostgrestClient {\n // TODO: Add back shouldThrowOnError once we figure out the typings\n /**\n * Creates a PostgREST client.\n *\n * @param url - URL of the PostgREST endpoint\n * @param options - Named parameters\n * @param options.headers - Custom headers\n * @param options.schema - Postgres schema to switch to\n * @param options.fetch - Custom fetch\n */ constructor(url, { headers = {}, schema, fetch } = {}){\n this.url = url;\n this.headers = Object.assign(Object.assign({}, _constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_HEADERS), headers);\n this.schemaName = schema;\n this.fetch = fetch;\n }\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */ from(relation) {\n const url = new URL(`${this.url}/${relation}`);\n return new _PostgrestQueryBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"](url, {\n headers: Object.assign({}, this.headers),\n schema: this.schemaName,\n fetch: this.fetch\n });\n }\n /**\n * Select a schema to query or perform an function (rpc) call.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The schema to query\n */ schema(schema) {\n return new PostgrestClient(this.url, {\n headers: this.headers,\n schema,\n fetch: this.fetch\n });\n }\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ rpc(fn, args = {}, { head = false, count } = {}) {\n let method;\n const url = new URL(`${this.url}/rpc/${fn}`);\n let body;\n if (head) {\n method = \"HEAD\";\n Object.entries(args).forEach(([name, value])=>{\n url.searchParams.append(name, `${value}`);\n });\n } else {\n method = \"POST\";\n body = args;\n }\n const headers = Object.assign({}, this.headers);\n if (count) {\n headers[\"Prefer\"] = `count=${count}`;\n }\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n method,\n url,\n headers,\n schema: this.schemaName,\n body,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n} //# sourceMappingURL=PostgrestClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0Q2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBNEQ7QUFDRTtBQUNoQjtBQUM5Qzs7Ozs7Ozs7O0NBU0MsR0FDYyxNQUFNRztJQUNqQixtRUFBbUU7SUFDbkU7Ozs7Ozs7O0tBUUMsR0FDREMsWUFBWUMsR0FBRyxFQUFFLEVBQUVDLFVBQVUsQ0FBQyxDQUFDLEVBQUVDLE1BQU0sRUFBRUMsS0FBSyxFQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUU7UUFDcEQsSUFBSSxDQUFDSCxHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxPQUFPLEdBQUdHLE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR1IsdURBQWVBLEdBQUdJO1FBQ2pFLElBQUksQ0FBQ0ssVUFBVSxHQUFHSjtRQUNsQixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDakI7SUFDQTs7OztLQUlDLEdBQ0RJLEtBQUtDLFFBQVEsRUFBRTtRQUNYLE1BQU1SLE1BQU0sSUFBSVMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDVCxHQUFHLENBQUMsQ0FBQyxFQUFFUSxTQUFTLENBQUM7UUFDN0MsT0FBTyxJQUFJYiw4REFBcUJBLENBQUNLLEtBQUs7WUFDbENDLFNBQVNHLE9BQU9DLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDSixPQUFPO1lBQ3ZDQyxRQUFRLElBQUksQ0FBQ0ksVUFBVTtZQUN2QkgsT0FBTyxJQUFJLENBQUNBLEtBQUs7UUFDckI7SUFDSjtJQUNBOzs7Ozs7S0FNQyxHQUNERCxPQUFPQSxNQUFNLEVBQUU7UUFDWCxPQUFPLElBQUlKLGdCQUFnQixJQUFJLENBQUNFLEdBQUcsRUFBRTtZQUNqQ0MsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJDO1lBQ0FDLE9BQU8sSUFBSSxDQUFDQSxLQUFLO1FBQ3JCO0lBQ0o7SUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FvQkMsR0FDRE8sSUFBSUMsRUFBRSxFQUFFQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUVDLE9BQU8sS0FBSyxFQUFFQyxLQUFLLEVBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUM5QyxJQUFJQztRQUNKLE1BQU1mLE1BQU0sSUFBSVMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDVCxHQUFHLENBQUMsS0FBSyxFQUFFVyxHQUFHLENBQUM7UUFDM0MsSUFBSUs7UUFDSixJQUFJSCxNQUFNO1lBQ05FLFNBQVM7WUFDVFgsT0FBT2EsT0FBTyxDQUFDTCxNQUFNTSxPQUFPLENBQUMsQ0FBQyxDQUFDQyxNQUFNQyxNQUFNO2dCQUN2Q3BCLElBQUlxQixZQUFZLENBQUNDLE1BQU0sQ0FBQ0gsTUFBTSxDQUFDLEVBQUVDLE1BQU0sQ0FBQztZQUM1QztRQUNKLE9BQ0s7WUFDREwsU0FBUztZQUNUQyxPQUFPSjtRQUNYO1FBQ0EsTUFBTVgsVUFBVUcsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUNKLE9BQU87UUFDOUMsSUFBSWEsT0FBTztZQUNQYixPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFYSxNQUFNLENBQUM7UUFDeEM7UUFDQSxPQUFPLElBQUlsQiwrREFBc0JBLENBQUM7WUFDOUJtQjtZQUNBZjtZQUNBQztZQUNBQyxRQUFRLElBQUksQ0FBQ0ksVUFBVTtZQUN2QlU7WUFDQWIsT0FBTyxJQUFJLENBQUNBLEtBQUs7WUFDakJvQixZQUFZO1FBQ2hCO0lBQ0o7QUFDSixFQUNBLDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RDbGllbnQuanM/MmVmOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUG9zdGdyZXN0UXVlcnlCdWlsZGVyIGZyb20gJy4vUG9zdGdyZXN0UXVlcnlCdWlsZGVyJztcbmltcG9ydCBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyIGZyb20gJy4vUG9zdGdyZXN0RmlsdGVyQnVpbGRlcic7XG5pbXBvcnQgeyBERUZBVUxUX0hFQURFUlMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG4vKipcbiAqIFBvc3RnUkVTVCBjbGllbnQuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRhYmFzZSAtIFR5cGVzIGZvciB0aGUgc2NoZW1hIGZyb20gdGhlIFt0eXBlXG4gKiBnZW5lcmF0b3JdKGh0dHBzOi8vc3VwYWJhc2UuY29tL2RvY3MvcmVmZXJlbmNlL2phdmFzY3JpcHQvbmV4dC90eXBlc2NyaXB0LXN1cHBvcnQpXG4gKlxuICogQHR5cGVQYXJhbSBTY2hlbWFOYW1lIC0gUG9zdGdyZXMgc2NoZW1hIHRvIHN3aXRjaCB0by4gTXVzdCBiZSBhIHN0cmluZ1xuICogbGl0ZXJhbCwgdGhlIHNhbWUgb25lIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuIElmIHRoZSBzY2hlbWEgaXMgbm90XG4gKiBgXCJwdWJsaWNcImAsIHRoaXMgbXVzdCBiZSBzdXBwbGllZCBtYW51YWxseS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9zdGdyZXN0Q2xpZW50IHtcbiAgICAvLyBUT0RPOiBBZGQgYmFjayBzaG91bGRUaHJvd09uRXJyb3Igb25jZSB3ZSBmaWd1cmUgb3V0IHRoZSB0eXBpbmdzXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIFBvc3RnUkVTVCBjbGllbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIC0gVVJMIG9mIHRoZSBQb3N0Z1JFU1QgZW5kcG9pbnRcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5oZWFkZXJzIC0gQ3VzdG9tIGhlYWRlcnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5zY2hlbWEgLSBQb3N0Z3JlcyBzY2hlbWEgdG8gc3dpdGNoIHRvXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZmV0Y2ggLSBDdXN0b20gZmV0Y2hcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih1cmwsIHsgaGVhZGVycyA9IHt9LCBzY2hlbWEsIGZldGNoLCB9ID0ge30pIHtcbiAgICAgICAgdGhpcy51cmwgPSB1cmw7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9IRUFERVJTKSwgaGVhZGVycyk7XG4gICAgICAgIHRoaXMuc2NoZW1hTmFtZSA9IHNjaGVtYTtcbiAgICAgICAgdGhpcy5mZXRjaCA9IGZldGNoO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtIGEgcXVlcnkgb24gYSB0YWJsZSBvciBhIHZpZXcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVsYXRpb24gLSBUaGUgdGFibGUgb3IgdmlldyBuYW1lIHRvIHF1ZXJ5XG4gICAgICovXG4gICAgZnJvbShyZWxhdGlvbikge1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGAke3RoaXMudXJsfS8ke3JlbGF0aW9ufWApO1xuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdFF1ZXJ5QnVpbGRlcih1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hTmFtZSxcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VsZWN0IGEgc2NoZW1hIHRvIHF1ZXJ5IG9yIHBlcmZvcm0gYW4gZnVuY3Rpb24gKHJwYykgY2FsbC5cbiAgICAgKlxuICAgICAqIFRoZSBzY2hlbWEgbmVlZHMgdG8gYmUgb24gdGhlIGxpc3Qgb2YgZXhwb3NlZCBzY2hlbWFzIGluc2lkZSBTdXBhYmFzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzY2hlbWEgLSBUaGUgc2NoZW1hIHRvIHF1ZXJ5XG4gICAgICovXG4gICAgc2NoZW1hKHNjaGVtYSkge1xuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdENsaWVudCh0aGlzLnVybCwge1xuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgc2NoZW1hLFxuICAgICAgICAgICAgZmV0Y2g6IHRoaXMuZmV0Y2gsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtIGEgZnVuY3Rpb24gY2FsbC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiBuYW1lIHRvIGNhbGxcbiAgICAgKiBAcGFyYW0gYXJncyAtIFRoZSBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24gY2FsbFxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvcHRpb25zLmhlYWQgLSBXaGVuIHNldCB0byBgdHJ1ZWAsIGBkYXRhYCB3aWxsIG5vdCBiZSByZXR1cm5lZC5cbiAgICAgKiBVc2VmdWwgaWYgeW91IG9ubHkgbmVlZCB0aGUgY291bnQuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuY291bnQgLSBDb3VudCBhbGdvcml0aG0gdG8gdXNlIHRvIGNvdW50IHJvd3MgcmV0dXJuZWQgYnkgdGhlXG4gICAgICogZnVuY3Rpb24uIE9ubHkgYXBwbGljYWJsZSBmb3IgW3NldC1yZXR1cm5pbmdcbiAgICAgKiBmdW5jdGlvbnNdKGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9mdW5jdGlvbnMtc3JmLmh0bWwpLlxuICAgICAqXG4gICAgICogYFwiZXhhY3RcImA6IEV4YWN0IGJ1dCBzbG93IGNvdW50IGFsZ29yaXRobS4gUGVyZm9ybXMgYSBgQ09VTlQoKilgIHVuZGVyIHRoZVxuICAgICAqIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJwbGFubmVkXCJgOiBBcHByb3hpbWF0ZWQgYnV0IGZhc3QgY291bnQgYWxnb3JpdGhtLiBVc2VzIHRoZSBQb3N0Z3Jlc1xuICAgICAqIHN0YXRpc3RpY3MgdW5kZXIgdGhlIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJlc3RpbWF0ZWRcImA6IFVzZXMgZXhhY3QgY291bnQgZm9yIGxvdyBudW1iZXJzIGFuZCBwbGFubmVkIGNvdW50IGZvciBoaWdoXG4gICAgICogbnVtYmVycy5cbiAgICAgKi9cbiAgICBycGMoZm4sIGFyZ3MgPSB7fSwgeyBoZWFkID0gZmFsc2UsIGNvdW50LCB9ID0ge30pIHtcbiAgICAgICAgbGV0IG1ldGhvZDtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChgJHt0aGlzLnVybH0vcnBjLyR7Zm59YCk7XG4gICAgICAgIGxldCBib2R5O1xuICAgICAgICBpZiAoaGVhZCkge1xuICAgICAgICAgICAgbWV0aG9kID0gJ0hFQUQnO1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoYXJncykuZm9yRWFjaCgoW25hbWUsIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKG5hbWUsIGAke3ZhbHVlfWApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtZXRob2QgPSAnUE9TVCc7XG4gICAgICAgICAgICBib2R5ID0gYXJncztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5oZWFkZXJzKTtcbiAgICAgICAgaWYgKGNvdW50KSB7XG4gICAgICAgICAgICBoZWFkZXJzWydQcmVmZXInXSA9IGBjb3VudD0ke2NvdW50fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyKHtcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hTmFtZSxcbiAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcbiAgICAgICAgICAgIGFsbG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qb3N0Z3Jlc3RDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIlBvc3RncmVzdFF1ZXJ5QnVpbGRlciIsIlBvc3RncmVzdEZpbHRlckJ1aWxkZXIiLCJERUZBVUxUX0hFQURFUlMiLCJQb3N0Z3Jlc3RDbGllbnQiLCJjb25zdHJ1Y3RvciIsInVybCIsImhlYWRlcnMiLCJzY2hlbWEiLCJmZXRjaCIsIk9iamVjdCIsImFzc2lnbiIsInNjaGVtYU5hbWUiLCJmcm9tIiwicmVsYXRpb24iLCJVUkwiLCJycGMiLCJmbiIsImFyZ3MiLCJoZWFkIiwiY291bnQiLCJtZXRob2QiLCJib2R5IiwiZW50cmllcyIsImZvckVhY2giLCJuYW1lIiwidmFsdWUiLCJzZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJhbGxvd0VtcHR5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestClient.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestError.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestError.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PostgrestError)\n/* harmony export */ });\nclass PostgrestError extends Error {\n constructor(context){\n super(context.message);\n this.name = \"PostgrestError\";\n this.details = context.details;\n this.hint = context.hint;\n this.code = context.code;\n }\n} //# sourceMappingURL=PostgrestError.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0RXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlLE1BQU1BLHVCQUF1QkM7SUFDeENDLFlBQVlDLE9BQU8sQ0FBRTtRQUNqQixLQUFLLENBQUNBLFFBQVFDLE9BQU87UUFDckIsSUFBSSxDQUFDQyxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNDLE9BQU8sR0FBR0gsUUFBUUcsT0FBTztRQUM5QixJQUFJLENBQUNDLElBQUksR0FBR0osUUFBUUksSUFBSTtRQUN4QixJQUFJLENBQUNDLElBQUksR0FBR0wsUUFBUUssSUFBSTtJQUM1QjtBQUNKLEVBQ0EsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvbW9kdWxlL1Bvc3RncmVzdEVycm9yLmpzP2ZlODkiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9zdGdyZXN0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoY29udGV4dCkge1xuICAgICAgICBzdXBlcihjb250ZXh0Lm1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnUG9zdGdyZXN0RXJyb3InO1xuICAgICAgICB0aGlzLmRldGFpbHMgPSBjb250ZXh0LmRldGFpbHM7XG4gICAgICAgIHRoaXMuaGludCA9IGNvbnRleHQuaGludDtcbiAgICAgICAgdGhpcy5jb2RlID0gY29udGV4dC5jb2RlO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBvc3RncmVzdEVycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJQb3N0Z3Jlc3RFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJjb250ZXh0IiwibWVzc2FnZSIsIm5hbWUiLCJkZXRhaWxzIiwiaGludCIsImNvZGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestError.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PostgrestFilterBuilder)\n/* harmony export */ });\n/* harmony import */ var _PostgrestTransformBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestTransformBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js\");\n\nclass PostgrestFilterBuilder extends _PostgrestTransformBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n /**\n * Match only rows where `column` is equal to `value`.\n *\n * To check if the value of `column` is NULL, you should use `.is()` instead.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ eq(column, value) {\n this.url.searchParams.append(column, `eq.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is not equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ neq(column, value) {\n this.url.searchParams.append(column, `neq.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is greater than `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ gt(column, value) {\n this.url.searchParams.append(column, `gt.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is greater than or equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ gte(column, value) {\n this.url.searchParams.append(column, `gte.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is less than `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ lt(column, value) {\n this.url.searchParams.append(column, `lt.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is less than or equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ lte(column, value) {\n this.url.searchParams.append(column, `lte.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` matches `pattern` case-sensitively.\n *\n * @param column - The column to filter on\n * @param pattern - The pattern to match with\n */ like(column, pattern) {\n this.url.searchParams.append(column, `like.${pattern}`);\n return this;\n }\n /**\n * Match only rows where `column` matches all of `patterns` case-sensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */ likeAllOf(column, patterns) {\n this.url.searchParams.append(column, `like(all).{${patterns.join(\",\")}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches any of `patterns` case-sensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */ likeAnyOf(column, patterns) {\n this.url.searchParams.append(column, `like(any).{${patterns.join(\",\")}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches `pattern` case-insensitively.\n *\n * @param column - The column to filter on\n * @param pattern - The pattern to match with\n */ ilike(column, pattern) {\n this.url.searchParams.append(column, `ilike.${pattern}`);\n return this;\n }\n /**\n * Match only rows where `column` matches all of `patterns` case-insensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */ ilikeAllOf(column, patterns) {\n this.url.searchParams.append(column, `ilike(all).{${patterns.join(\",\")}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches any of `patterns` case-insensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */ ilikeAnyOf(column, patterns) {\n this.url.searchParams.append(column, `ilike(any).{${patterns.join(\",\")}}`);\n return this;\n }\n /**\n * Match only rows where `column` IS `value`.\n *\n * For non-boolean columns, this is only relevant for checking if the value of\n * `column` is NULL by setting `value` to `null`.\n *\n * For boolean columns, you can also set `value` to `true` or `false` and it\n * will behave the same way as `.eq()`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ is(column, value) {\n this.url.searchParams.append(column, `is.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is included in the `values` array.\n *\n * @param column - The column to filter on\n * @param values - The values array to filter with\n */ in(column, values) {\n const cleanedValues = values.map((s)=>{\n // handle postgrest reserved characters\n // https://postgrest.org/en/v7.0.0/api.html#reserved-characters\n if (typeof s === \"string\" && new RegExp(\"[,()]\").test(s)) return `\"${s}\"`;\n else return `${s}`;\n }).join(\",\");\n this.url.searchParams.append(column, `in.(${cleanedValues})`);\n return this;\n }\n /**\n * Only relevant for jsonb, array, and range columns. Match only rows where\n * `column` contains every element appearing in `value`.\n *\n * @param column - The jsonb, array, or range column to filter on\n * @param value - The jsonb, array, or range value to filter with\n */ contains(column, value) {\n if (typeof value === \"string\") {\n // range types can be inclusive '[', ']' or exclusive '(', ')' so just\n // keep it simple and accept a string\n this.url.searchParams.append(column, `cs.${value}`);\n } else if (Array.isArray(value)) {\n // array\n this.url.searchParams.append(column, `cs.{${value.join(\",\")}}`);\n } else {\n // json\n this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`);\n }\n return this;\n }\n /**\n * Only relevant for jsonb, array, and range columns. Match only rows where\n * every element appearing in `column` is contained by `value`.\n *\n * @param column - The jsonb, array, or range column to filter on\n * @param value - The jsonb, array, or range value to filter with\n */ containedBy(column, value) {\n if (typeof value === \"string\") {\n // range\n this.url.searchParams.append(column, `cd.${value}`);\n } else if (Array.isArray(value)) {\n // array\n this.url.searchParams.append(column, `cd.{${value.join(\",\")}}`);\n } else {\n // json\n this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`);\n }\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is greater than any element in `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeGt(column, range) {\n this.url.searchParams.append(column, `sr.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is either contained in `range` or greater than any element in\n * `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeGte(column, range) {\n this.url.searchParams.append(column, `nxl.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is less than any element in `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeLt(column, range) {\n this.url.searchParams.append(column, `sl.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is either contained in `range` or less than any element in\n * `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeLte(column, range) {\n this.url.searchParams.append(column, `nxr.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where `column` is\n * mutually exclusive to `range` and there can be no element between the two\n * ranges.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeAdjacent(column, range) {\n this.url.searchParams.append(column, `adj.${range}`);\n return this;\n }\n /**\n * Only relevant for array and range columns. Match only rows where\n * `column` and `value` have an element in common.\n *\n * @param column - The array or range column to filter on\n * @param value - The array or range value to filter with\n */ overlaps(column, value) {\n if (typeof value === \"string\") {\n // range\n this.url.searchParams.append(column, `ov.${value}`);\n } else {\n // array\n this.url.searchParams.append(column, `ov.{${value.join(\",\")}}`);\n }\n return this;\n }\n /**\n * Only relevant for text and tsvector columns. Match only rows where\n * `column` matches the query string in `query`.\n *\n * @param column - The text or tsvector column to filter on\n * @param query - The query text to match with\n * @param options - Named parameters\n * @param options.config - The text search configuration to use\n * @param options.type - Change how the `query` text is interpreted\n */ textSearch(column, query, { config, type } = {}) {\n let typePart = \"\";\n if (type === \"plain\") {\n typePart = \"pl\";\n } else if (type === \"phrase\") {\n typePart = \"ph\";\n } else if (type === \"websearch\") {\n typePart = \"w\";\n }\n const configPart = config === undefined ? \"\" : `(${config})`;\n this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`);\n return this;\n }\n /**\n * Match only rows where each column in `query` keys is equal to its\n * associated value. Shorthand for multiple `.eq()`s.\n *\n * @param query - The object to filter with, with column names as keys mapped\n * to their filter values\n */ match(query) {\n Object.entries(query).forEach(([column, value])=>{\n this.url.searchParams.append(column, `eq.${value}`);\n });\n return this;\n }\n /**\n * Match only rows which doesn't satisfy the filter.\n *\n * Unlike most filters, `opearator` and `value` are used as-is and need to\n * follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure they are properly sanitized.\n *\n * @param column - The column to filter on\n * @param operator - The operator to be negated to filter with, following\n * PostgREST syntax\n * @param value - The value to filter with, following PostgREST syntax\n */ not(column, operator, value) {\n this.url.searchParams.append(column, `not.${operator}.${value}`);\n return this;\n }\n /**\n * Match only rows which satisfy at least one of the filters.\n *\n * Unlike most filters, `filters` is used as-is and needs to follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure it's properly sanitized.\n *\n * It's currently not possible to do an `.or()` filter across multiple tables.\n *\n * @param filters - The filters to use, following PostgREST syntax\n * @param options - Named parameters\n * @param options.referencedTable - Set this to filter on referenced tables\n * instead of the parent table\n * @param options.foreignTable - Deprecated, use `referencedTable` instead\n */ or(filters, { foreignTable, referencedTable = foreignTable } = {}) {\n const key = referencedTable ? `${referencedTable}.or` : \"or\";\n this.url.searchParams.append(key, `(${filters})`);\n return this;\n }\n /**\n * Match only rows which satisfy the filter. This is an escape hatch - you\n * should use the specific filter methods wherever possible.\n *\n * Unlike most filters, `opearator` and `value` are used as-is and need to\n * follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure they are properly sanitized.\n *\n * @param column - The column to filter on\n * @param operator - The operator to filter with, following PostgREST syntax\n * @param value - The value to filter with, following PostgREST syntax\n */ filter(column, operator, value) {\n this.url.searchParams.append(column, `${operator}.${value}`);\n return this;\n }\n} //# sourceMappingURL=PostgrestFilterBuilder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0RmlsdGVyQnVpbGRlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvRTtBQUNyRCxNQUFNQywrQkFBK0JELGtFQUF5QkE7SUFDekU7Ozs7Ozs7S0FPQyxHQUNERSxHQUFHQyxNQUFNLEVBQUVDLEtBQUssRUFBRTtRQUNkLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxZQUFZLENBQUNDLE1BQU0sQ0FBQ0osUUFBUSxDQUFDLEdBQUcsRUFBRUMsTUFBTSxDQUFDO1FBQ2xELE9BQU8sSUFBSTtJQUNmO0lBQ0E7Ozs7O0tBS0MsR0FDREksSUFBSUwsTUFBTSxFQUFFQyxLQUFLLEVBQUU7UUFDZixJQUFJLENBQUNDLEdBQUcsQ0FBQ0MsWUFBWSxDQUFDQyxNQUFNLENBQUNKLFFBQVEsQ0FBQyxJQUFJLEVBQUVDLE1BQU0sQ0FBQztRQUNuRCxPQUFPLElBQUk7SUFDZjtJQUNBOzs7OztLQUtDLEdBQ0RLLEdBQUdOLE1BQU0sRUFBRUMsS0FBSyxFQUFFO1FBQ2QsSUFBSSxDQUFDQyxHQUFHLENBQUNDLFlBQVksQ0FBQ0MsTUFBTSxDQUFDSixRQUFRLENBQUMsR0FBRyxFQUFFQyxNQUFNLENBQUM7UUFDbEQsT0FBTyxJQUFJO0lBQ2Y7SUFDQTs7Ozs7S0FLQyxHQUNETSxJQUFJUCxNQUFNLEVBQUVDLEtBQUssRUFBRTtRQUNmLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxZQUFZLENBQUNDLE1BQU0sQ0FBQ0osUUFBUSxDQUFDLElBQUksRUFBRUMsTUFBTSxDQUFDO1FBQ25ELE9BQU8sSUFBSTtJQUNmO0lBQ0E7Ozs7O0tBS0MsR0FDRE8sR0FBR1IsTUFBTSxFQUFFQyxLQUFLLEVBQUU7UUFDZCxJQUFJLENBQUNDLEdBQUcsQ0FBQ0MsWUFBWSxDQUFDQyxNQUFNLENBQUNKLFFBQVEsQ0FBQyxHQUFHLEVBQUVDLE1BQU0sQ0FBQztRQUNsRCxPQUFPLElBQUk7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QUM7UUFDL0QsT0FBTyxJQUFJO0lBQ2Y7SUFDQTs7Ozs7Ozs7Ozs7Ozs7S0FjQyxHQUNEb0QsR0FBR0MsT0FBTyxFQUFFLEVBQUVDLFlBQVksRUFBRUMsa0JBQWtCRCxZQUFZLEVBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNoRSxNQUFNRSxNQUFNRCxrQkFBa0IsQ0FBQyxFQUFFQSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUc7UUFDeEQsSUFBSSxDQUFDdEQsR0FBRyxDQUFDQyxZQUFZLENBQUNDLE1BQU0sQ0FBQ3FELEtBQUssQ0FBQyxDQUFDLEVBQUVILFFBQVEsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSTtJQUNmO0lBQ0E7Ozs7Ozs7Ozs7OztLQVlDLEdBQ0RJLE9BQU8xRCxNQUFNLEVBQUVvRCxRQUFRLEVBQUVuRCxLQUFLLEVBQUU7UUFDNUIsSUFBSSxDQUFDQyxHQUFHLENBQUNDLFlBQVksQ0FBQ0MsTUFBTSxDQUFDSixRQUFRLENBQUMsRUFBRW9ELFNBQVMsQ0FBQyxFQUFFbkQsTUFBTSxDQUFDO1FBQzNELE9BQU8sSUFBSTtJQUNmO0FBQ0osRUFDQSxrREFBa0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0RmlsdGVyQnVpbGRlci5qcz82NjFiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyIGZyb20gJy4vUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlcic7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyIGV4dGVuZHMgUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlciB7XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGVxdWFsIHRvIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBUbyBjaGVjayBpZiB0aGUgdmFsdWUgb2YgYGNvbHVtbmAgaXMgTlVMTCwgeW91IHNob3VsZCB1c2UgYC5pcygpYCBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgZXEoY29sdW1uLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGVxLiR7dmFsdWV9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXMgbm90IGVxdWFsIHRvIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICBuZXEoY29sdW1uLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG5lcS4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGdyZWF0ZXIgdGhhbiBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgZ3QoY29sdW1uLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGd0LiR7dmFsdWV9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICBndGUoY29sdW1uLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGd0ZS4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGxlc3MgdGhhbiBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgbHQoY29sdW1uLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGx0LiR7dmFsdWV9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICBsdGUoY29sdW1uLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGx0ZS4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYHBhdHRlcm5gIGNhc2Utc2Vuc2l0aXZlbHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gcGF0dGVybiAtIFRoZSBwYXR0ZXJuIHRvIG1hdGNoIHdpdGhcbiAgICAgKi9cbiAgICBsaWtlKGNvbHVtbiwgcGF0dGVybikge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGxpa2UuJHtwYXR0ZXJufWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYWxsIG9mIGBwYXR0ZXJuc2AgY2FzZS1zZW5zaXRpdmVseS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSBwYXR0ZXJucyAtIFRoZSBwYXR0ZXJucyB0byBtYXRjaCB3aXRoXG4gICAgICovXG4gICAgbGlrZUFsbE9mKGNvbHVtbiwgcGF0dGVybnMpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBsaWtlKGFsbCkueyR7cGF0dGVybnMuam9pbignLCcpfX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBtYXRjaGVzIGFueSBvZiBgcGF0dGVybnNgIGNhc2Utc2Vuc2l0aXZlbHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gcGF0dGVybnMgLSBUaGUgcGF0dGVybnMgdG8gbWF0Y2ggd2l0aFxuICAgICAqL1xuICAgIGxpa2VBbnlPZihjb2x1bW4sIHBhdHRlcm5zKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgbGlrZShhbnkpLnske3BhdHRlcm5zLmpvaW4oJywnKX19YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgbWF0Y2hlcyBgcGF0dGVybmAgY2FzZS1pbnNlbnNpdGl2ZWx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHBhdHRlcm4gLSBUaGUgcGF0dGVybiB0byBtYXRjaCB3aXRoXG4gICAgICovXG4gICAgaWxpa2UoY29sdW1uLCBwYXR0ZXJuKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgaWxpa2UuJHtwYXR0ZXJufWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYWxsIG9mIGBwYXR0ZXJuc2AgY2FzZS1pbnNlbnNpdGl2ZWx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHBhdHRlcm5zIC0gVGhlIHBhdHRlcm5zIHRvIG1hdGNoIHdpdGhcbiAgICAgKi9cbiAgICBpbGlrZUFsbE9mKGNvbHVtbiwgcGF0dGVybnMpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBpbGlrZShhbGwpLnske3BhdHRlcm5zLmpvaW4oJywnKX19YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgbWF0Y2hlcyBhbnkgb2YgYHBhdHRlcm5zYCBjYXNlLWluc2Vuc2l0aXZlbHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gcGF0dGVybnMgLSBUaGUgcGF0dGVybnMgdG8gbWF0Y2ggd2l0aFxuICAgICAqL1xuICAgIGlsaWtlQW55T2YoY29sdW1uLCBwYXR0ZXJucykge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGlsaWtlKGFueSkueyR7cGF0dGVybnMuam9pbignLCcpfX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBJUyBgdmFsdWVgLlxuICAgICAqXG4gICAgICogRm9yIG5vbi1ib29sZWFuIGNvbHVtbnMsIHRoaXMgaXMgb25seSByZWxldmFudCBmb3IgY2hlY2tpbmcgaWYgdGhlIHZhbHVlIG9mXG4gICAgICogYGNvbHVtbmAgaXMgTlVMTCBieSBzZXR0aW5nIGB2YWx1ZWAgdG8gYG51bGxgLlxuICAgICAqXG4gICAgICogRm9yIGJvb2xlYW4gY29sdW1ucywgeW91IGNhbiBhbHNvIHNldCBgdmFsdWVgIHRvIGB0cnVlYCBvciBgZmFsc2VgIGFuZCBpdFxuICAgICAqIHdpbGwgYmVoYXZlIHRoZSBzYW1lIHdheSBhcyBgLmVxKClgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgaXMoY29sdW1uLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGlzLiR7dmFsdWV9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXMgaW5jbHVkZWQgaW4gdGhlIGB2YWx1ZXNgIGFycmF5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlcyAtIFRoZSB2YWx1ZXMgYXJyYXkgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICBpbihjb2x1bW4sIHZhbHVlcykge1xuICAgICAgICBjb25zdCBjbGVhbmVkVmFsdWVzID0gdmFsdWVzXG4gICAgICAgICAgICAubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAvLyBoYW5kbGUgcG9zdGdyZXN0IHJlc2VydmVkIGNoYXJhY3RlcnNcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vcG9zdGdyZXN0Lm9yZy9lbi92Ny4wLjAvYXBpLmh0bWwjcmVzZXJ2ZWQtY2hhcmFjdGVyc1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBzID09PSAnc3RyaW5nJyAmJiBuZXcgUmVnRXhwKCdbLCgpXScpLnRlc3QocykpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGBcIiR7c31cImA7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3N9YDtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcsJyk7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgaW4uKCR7Y2xlYW5lZFZhbHVlc30pYCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciBqc29uYiwgYXJyYXksIGFuZCByYW5nZSBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmVcbiAgICAgKiBgY29sdW1uYCBjb250YWlucyBldmVyeSBlbGVtZW50IGFwcGVhcmluZyBpbiBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBqc29uYiwgYXJyYXksIG9yIHJhbmdlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUganNvbmIsIGFycmF5LCBvciByYW5nZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIGNvbnRhaW5zKGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIHJhbmdlIHR5cGVzIGNhbiBiZSBpbmNsdXNpdmUgJ1snLCAnXScgb3IgZXhjbHVzaXZlICcoJywgJyknIHNvIGp1c3RcbiAgICAgICAgICAgIC8vIGtlZXAgaXQgc2ltcGxlIGFuZCBhY2NlcHQgYSBzdHJpbmdcbiAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgY3MuJHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgLy8gYXJyYXlcbiAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgY3MueyR7dmFsdWUuam9pbignLCcpfX1gKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGpzb25cbiAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgY3MuJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE9ubHkgcmVsZXZhbnQgZm9yIGpzb25iLCBhcnJheSwgYW5kIHJhbmdlIGNvbHVtbnMuIE1hdGNoIG9ubHkgcm93cyB3aGVyZVxuICAgICAqIGV2ZXJ5IGVsZW1lbnQgYXBwZWFyaW5nIGluIGBjb2x1bW5gIGlzIGNvbnRhaW5lZCBieSBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBqc29uYiwgYXJyYXksIG9yIHJhbmdlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUganNvbmIsIGFycmF5LCBvciByYW5nZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIGNvbnRhaW5lZEJ5KGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIHJhbmdlXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGNkLiR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIGFycmF5XG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGNkLnske3ZhbHVlLmpvaW4oJywnKX19YCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBqc29uXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGNkLiR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciByYW5nZSBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgZXZlcnkgZWxlbWVudCBpblxuICAgICAqIGBjb2x1bW5gIGlzIGdyZWF0ZXIgdGhhbiBhbnkgZWxlbWVudCBpbiBgcmFuZ2VgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHJhbmdlIC0gVGhlIHJhbmdlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgcmFuZ2VHdChjb2x1bW4sIHJhbmdlKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgc3IuJHtyYW5nZX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE9ubHkgcmVsZXZhbnQgZm9yIHJhbmdlIGNvbHVtbnMuIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBldmVyeSBlbGVtZW50IGluXG4gICAgICogYGNvbHVtbmAgaXMgZWl0aGVyIGNvbnRhaW5lZCBpbiBgcmFuZ2VgIG9yIGdyZWF0ZXIgdGhhbiBhbnkgZWxlbWVudCBpblxuICAgICAqIGByYW5nZWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIHJhbmdlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gcmFuZ2UgLSBUaGUgcmFuZ2UgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICByYW5nZUd0ZShjb2x1bW4sIHJhbmdlKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgbnhsLiR7cmFuZ2V9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciByYW5nZSBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgZXZlcnkgZWxlbWVudCBpblxuICAgICAqIGBjb2x1bW5gIGlzIGxlc3MgdGhhbiBhbnkgZWxlbWVudCBpbiBgcmFuZ2VgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHJhbmdlIC0gVGhlIHJhbmdlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgcmFuZ2VMdChjb2x1bW4sIHJhbmdlKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgc2wuJHtyYW5nZX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE9ubHkgcmVsZXZhbnQgZm9yIHJhbmdlIGNvbHVtbnMuIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBldmVyeSBlbGVtZW50IGluXG4gICAgICogYGNvbHVtbmAgaXMgZWl0aGVyIGNvbnRhaW5lZCBpbiBgcmFuZ2VgIG9yIGxlc3MgdGhhbiBhbnkgZWxlbWVudCBpblxuICAgICAqIGByYW5nZWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIHJhbmdlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gcmFuZ2UgLSBUaGUgcmFuZ2UgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICByYW5nZUx0ZShjb2x1bW4sIHJhbmdlKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgbnhyLiR7cmFuZ2V9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciByYW5nZSBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXNcbiAgICAgKiBtdXR1YWxseSBleGNsdXNpdmUgdG8gYHJhbmdlYCBhbmQgdGhlcmUgY2FuIGJlIG5vIGVsZW1lbnQgYmV0d2VlbiB0aGUgdHdvXG4gICAgICogcmFuZ2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHJhbmdlIC0gVGhlIHJhbmdlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgcmFuZ2VBZGphY2VudChjb2x1bW4sIHJhbmdlKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgYWRqLiR7cmFuZ2V9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciBhcnJheSBhbmQgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlXG4gICAgICogYGNvbHVtbmAgYW5kIGB2YWx1ZWAgaGF2ZSBhbiBlbGVtZW50IGluIGNvbW1vbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgYXJyYXkgb3IgcmFuZ2UgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhcnJheSBvciByYW5nZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIG92ZXJsYXBzKGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIHJhbmdlXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG92LiR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBhcnJheVxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBvdi57JHt2YWx1ZS5qb2luKCcsJyl9fWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciB0ZXh0IGFuZCB0c3ZlY3RvciBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmVcbiAgICAgKiBgY29sdW1uYCBtYXRjaGVzIHRoZSBxdWVyeSBzdHJpbmcgaW4gYHF1ZXJ5YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgdGV4dCBvciB0c3ZlY3RvciBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHF1ZXJ5IC0gVGhlIHF1ZXJ5IHRleHQgdG8gbWF0Y2ggd2l0aFxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvbmZpZyAtIFRoZSB0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uIHRvIHVzZVxuICAgICAqIEBwYXJhbSBvcHRpb25zLnR5cGUgLSBDaGFuZ2UgaG93IHRoZSBgcXVlcnlgIHRleHQgaXMgaW50ZXJwcmV0ZWRcbiAgICAgKi9cbiAgICB0ZXh0U2VhcmNoKGNvbHVtbiwgcXVlcnksIHsgY29uZmlnLCB0eXBlIH0gPSB7fSkge1xuICAgICAgICBsZXQgdHlwZVBhcnQgPSAnJztcbiAgICAgICAgaWYgKHR5cGUgPT09ICdwbGFpbicpIHtcbiAgICAgICAgICAgIHR5cGVQYXJ0ID0gJ3BsJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlID09PSAncGhyYXNlJykge1xuICAgICAgICAgICAgdHlwZVBhcnQgPSAncGgnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICd3ZWJzZWFyY2gnKSB7XG4gICAgICAgICAgICB0eXBlUGFydCA9ICd3JztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb25maWdQYXJ0ID0gY29uZmlnID09PSB1bmRlZmluZWQgPyAnJyA6IGAoJHtjb25maWd9KWA7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgJHt0eXBlUGFydH1mdHMke2NvbmZpZ1BhcnR9LiR7cXVlcnl9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgZWFjaCBjb2x1bW4gaW4gYHF1ZXJ5YCBrZXlzIGlzIGVxdWFsIHRvIGl0c1xuICAgICAqIGFzc29jaWF0ZWQgdmFsdWUuIFNob3J0aGFuZCBmb3IgbXVsdGlwbGUgYC5lcSgpYHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcXVlcnkgLSBUaGUgb2JqZWN0IHRvIGZpbHRlciB3aXRoLCB3aXRoIGNvbHVtbiBuYW1lcyBhcyBrZXlzIG1hcHBlZFxuICAgICAqIHRvIHRoZWlyIGZpbHRlciB2YWx1ZXNcbiAgICAgKi9cbiAgICBtYXRjaChxdWVyeSkge1xuICAgICAgICBPYmplY3QuZW50cmllcyhxdWVyeSkuZm9yRWFjaCgoW2NvbHVtbiwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGVxLiR7dmFsdWV9YCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoaWNoIGRvZXNuJ3Qgc2F0aXNmeSB0aGUgZmlsdGVyLlxuICAgICAqXG4gICAgICogVW5saWtlIG1vc3QgZmlsdGVycywgYG9wZWFyYXRvcmAgYW5kIGB2YWx1ZWAgYXJlIHVzZWQgYXMtaXMgYW5kIG5lZWQgdG9cbiAgICAgKiBmb2xsb3cgW1Bvc3RnUkVTVFxuICAgICAqIHN5bnRheF0oaHR0cHM6Ly9wb3N0Z3Jlc3Qub3JnL2VuL3N0YWJsZS9hcGkuaHRtbCNvcGVyYXRvcnMpLiBZb3UgYWxzbyBuZWVkXG4gICAgICogdG8gbWFrZSBzdXJlIHRoZXkgYXJlIHByb3Blcmx5IHNhbml0aXplZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSBvcGVyYXRvciAtIFRoZSBvcGVyYXRvciB0byBiZSBuZWdhdGVkIHRvIGZpbHRlciB3aXRoLCBmb2xsb3dpbmdcbiAgICAgKiBQb3N0Z1JFU1Qgc3ludGF4XG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoLCBmb2xsb3dpbmcgUG9zdGdSRVNUIHN5bnRheFxuICAgICAqL1xuICAgIG5vdChjb2x1bW4sIG9wZXJhdG9yLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG5vdC4ke29wZXJhdG9yfS4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoaWNoIHNhdGlzZnkgYXQgbGVhc3Qgb25lIG9mIHRoZSBmaWx0ZXJzLlxuICAgICAqXG4gICAgICogVW5saWtlIG1vc3QgZmlsdGVycywgYGZpbHRlcnNgIGlzIHVzZWQgYXMtaXMgYW5kIG5lZWRzIHRvIGZvbGxvdyBbUG9zdGdSRVNUXG4gICAgICogc3ludGF4XShodHRwczovL3Bvc3RncmVzdC5vcmcvZW4vc3RhYmxlL2FwaS5odG1sI29wZXJhdG9ycykuIFlvdSBhbHNvIG5lZWRcbiAgICAgKiB0byBtYWtlIHN1cmUgaXQncyBwcm9wZXJseSBzYW5pdGl6ZWQuXG4gICAgICpcbiAgICAgKiBJdCdzIGN1cnJlbnRseSBub3QgcG9zc2libGUgdG8gZG8gYW4gYC5vcigpYCBmaWx0ZXIgYWNyb3NzIG11bHRpcGxlIHRhYmxlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXJzIC0gVGhlIGZpbHRlcnMgdG8gdXNlLCBmb2xsb3dpbmcgUG9zdGdSRVNUIHN5bnRheFxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZSAtIFNldCB0aGlzIHRvIGZpbHRlciBvbiByZWZlcmVuY2VkIHRhYmxlc1xuICAgICAqIGluc3RlYWQgb2YgdGhlIHBhcmVudCB0YWJsZVxuICAgICAqIEBwYXJhbSBvcHRpb25zLmZvcmVpZ25UYWJsZSAtIERlcHJlY2F0ZWQsIHVzZSBgcmVmZXJlbmNlZFRhYmxlYCBpbnN0ZWFkXG4gICAgICovXG4gICAgb3IoZmlsdGVycywgeyBmb3JlaWduVGFibGUsIHJlZmVyZW5jZWRUYWJsZSA9IGZvcmVpZ25UYWJsZSwgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHJlZmVyZW5jZWRUYWJsZSA/IGAke3JlZmVyZW5jZWRUYWJsZX0ub3JgIDogJ29yJztcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIGAoJHtmaWx0ZXJzfSlgKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGljaCBzYXRpc2Z5IHRoZSBmaWx0ZXIuIFRoaXMgaXMgYW4gZXNjYXBlIGhhdGNoIC0geW91XG4gICAgICogc2hvdWxkIHVzZSB0aGUgc3BlY2lmaWMgZmlsdGVyIG1ldGhvZHMgd2hlcmV2ZXIgcG9zc2libGUuXG4gICAgICpcbiAgICAgKiBVbmxpa2UgbW9zdCBmaWx0ZXJzLCBgb3BlYXJhdG9yYCBhbmQgYHZhbHVlYCBhcmUgdXNlZCBhcy1pcyBhbmQgbmVlZCB0b1xuICAgICAqIGZvbGxvdyBbUG9zdGdSRVNUXG4gICAgICogc3ludGF4XShodHRwczovL3Bvc3RncmVzdC5vcmcvZW4vc3RhYmxlL2FwaS5odG1sI29wZXJhdG9ycykuIFlvdSBhbHNvIG5lZWRcbiAgICAgKiB0byBtYWtlIHN1cmUgdGhleSBhcmUgcHJvcGVybHkgc2FuaXRpemVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIG9wZXJhdG9yIC0gVGhlIG9wZXJhdG9yIHRvIGZpbHRlciB3aXRoLCBmb2xsb3dpbmcgUG9zdGdSRVNUIHN5bnRheFxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aCwgZm9sbG93aW5nIFBvc3RnUkVTVCBzeW50YXhcbiAgICAgKi9cbiAgICBmaWx0ZXIoY29sdW1uLCBvcGVyYXRvciwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGAke29wZXJhdG9yfS4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJQb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyIiwiUG9zdGdyZXN0RmlsdGVyQnVpbGRlciIsImVxIiwiY29sdW1uIiwidmFsdWUiLCJ1cmwiLCJzZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJuZXEiLCJndCIsImd0ZSIsImx0IiwibHRlIiwibGlrZSIsInBhdHRlcm4iLCJsaWtlQWxsT2YiLCJwYXR0ZXJucyIsImpvaW4iLCJsaWtlQW55T2YiLCJpbGlrZSIsImlsaWtlQWxsT2YiLCJpbGlrZUFueU9mIiwiaXMiLCJpbiIsInZhbHVlcyIsImNsZWFuZWRWYWx1ZXMiLCJtYXAiLCJzIiwiUmVnRXhwIiwidGVzdCIsImNvbnRhaW5zIiwiQXJyYXkiLCJpc0FycmF5IiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbnRhaW5lZEJ5IiwicmFuZ2VHdCIsInJhbmdlIiwicmFuZ2VHdGUiLCJyYW5nZUx0IiwicmFuZ2VMdGUiLCJyYW5nZUFkamFjZW50Iiwib3ZlcmxhcHMiLCJ0ZXh0U2VhcmNoIiwicXVlcnkiLCJjb25maWciLCJ0eXBlIiwidHlwZVBhcnQiLCJjb25maWdQYXJ0IiwidW5kZWZpbmVkIiwibWF0Y2giLCJPYmplY3QiLCJlbnRyaWVzIiwiZm9yRWFjaCIsIm5vdCIsIm9wZXJhdG9yIiwib3IiLCJmaWx0ZXJzIiwiZm9yZWlnblRhYmxlIiwicmVmZXJlbmNlZFRhYmxlIiwia2V5IiwiZmlsdGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PostgrestQueryBuilder)\n/* harmony export */ });\n/* harmony import */ var _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestFilterBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js\");\n\nclass PostgrestQueryBuilder {\n constructor(url, { headers = {}, schema, fetch }){\n this.url = url;\n this.headers = headers;\n this.schema = schema;\n this.fetch = fetch;\n }\n /**\n * Perform a SELECT query on the table or view.\n *\n * @param columns - The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName`\n *\n * @param options - Named parameters\n *\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n *\n * @param options.count - Count algorithm to use to count rows in the table or view.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ select(columns, { head = false, count } = {}) {\n const method = head ? \"HEAD\" : \"GET\";\n // Remove whitespaces except when quoted\n let quoted = false;\n const cleanedColumns = (columns !== null && columns !== void 0 ? columns : \"*\").split(\"\").map((c)=>{\n if (/\\s/.test(c) && !quoted) {\n return \"\";\n }\n if (c === '\"') {\n quoted = !quoted;\n }\n return c;\n }).join(\"\");\n this.url.searchParams.set(\"select\", cleanedColumns);\n if (count) {\n this.headers[\"Prefer\"] = `count=${count}`;\n }\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n /**\n * Perform an INSERT into the table or view.\n *\n * By default, inserted rows are not returned. To return it, chain the call\n * with `.select()`.\n *\n * @param values - The values to insert. Pass an object to insert a single row\n * or an array to insert multiple rows.\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count inserted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n *\n * @param options.defaultToNull - Make missing fields default to `null`.\n * Otherwise, use the default value for the column. Only applies for bulk\n * inserts.\n */ insert(values, { count, defaultToNull = true } = {}) {\n const method = \"POST\";\n const prefersHeaders = [];\n if (this.headers[\"Prefer\"]) {\n prefersHeaders.push(this.headers[\"Prefer\"]);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (!defaultToNull) {\n prefersHeaders.push(\"missing=default\");\n }\n this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\n if (Array.isArray(values)) {\n const columns = values.reduce((acc, x)=>acc.concat(Object.keys(x)), []);\n if (columns.length > 0) {\n const uniqueColumns = [\n ...new Set(columns)\n ].map((column)=>`\"${column}\"`);\n this.url.searchParams.set(\"columns\", uniqueColumns.join(\",\"));\n }\n }\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n /**\n * Perform an UPSERT on the table or view. Depending on the column(s) passed\n * to `onConflict`, `.upsert()` allows you to perform the equivalent of\n * `.insert()` if a row with the corresponding `onConflict` columns doesn't\n * exist, or if it does exist, perform an alternative action depending on\n * `ignoreDuplicates`.\n *\n * By default, upserted rows are not returned. To return it, chain the call\n * with `.select()`.\n *\n * @param values - The values to upsert with. Pass an object to upsert a\n * single row or an array to upsert multiple rows.\n *\n * @param options - Named parameters\n *\n * @param options.onConflict - Comma-separated UNIQUE column(s) to specify how\n * duplicate rows are determined. Two rows are duplicates if all the\n * `onConflict` columns are equal.\n *\n * @param options.ignoreDuplicates - If `true`, duplicate rows are ignored. If\n * `false`, duplicate rows are merged with existing rows.\n *\n * @param options.count - Count algorithm to use to count upserted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n *\n * @param options.defaultToNull - Make missing fields default to `null`.\n * Otherwise, use the default value for the column. This only applies when\n * inserting new rows, not when merging with existing rows under\n * `ignoreDuplicates: false`. This also only applies when doing bulk upserts.\n */ upsert(values, { onConflict, ignoreDuplicates = false, count, defaultToNull = true } = {}) {\n const method = \"POST\";\n const prefersHeaders = [\n `resolution=${ignoreDuplicates ? \"ignore\" : \"merge\"}-duplicates`\n ];\n if (onConflict !== undefined) this.url.searchParams.set(\"on_conflict\", onConflict);\n if (this.headers[\"Prefer\"]) {\n prefersHeaders.push(this.headers[\"Prefer\"]);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (!defaultToNull) {\n prefersHeaders.push(\"missing=default\");\n }\n this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\n if (Array.isArray(values)) {\n const columns = values.reduce((acc, x)=>acc.concat(Object.keys(x)), []);\n if (columns.length > 0) {\n const uniqueColumns = [\n ...new Set(columns)\n ].map((column)=>`\"${column}\"`);\n this.url.searchParams.set(\"columns\", uniqueColumns.join(\",\"));\n }\n }\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n /**\n * Perform an UPDATE on the table or view.\n *\n * By default, updated rows are not returned. To return it, chain the call\n * with `.select()` after filters.\n *\n * @param values - The values to update with\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count updated rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ update(values, { count } = {}) {\n const method = \"PATCH\";\n const prefersHeaders = [];\n if (this.headers[\"Prefer\"]) {\n prefersHeaders.push(this.headers[\"Prefer\"]);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n /**\n * Perform a DELETE on the table or view.\n *\n * By default, deleted rows are not returned. To return it, chain the call\n * with `.select()` after filters.\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count deleted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ delete({ count } = {}) {\n const method = \"DELETE\";\n const prefersHeaders = [];\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (this.headers[\"Prefer\"]) {\n prefersHeaders.unshift(this.headers[\"Prefer\"]);\n }\n this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n} //# sourceMappingURL=PostgrestQueryBuilder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0UXVlcnlCdWlsZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQThEO0FBQy9DLE1BQU1DO0lBQ2pCQyxZQUFZQyxHQUFHLEVBQUUsRUFBRUMsVUFBVSxDQUFDLENBQUMsRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQUcsQ0FBRTtRQUMvQyxJQUFJLENBQUNILEdBQUcsR0FBR0E7UUFDWCxJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDakI7SUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FvQkMsR0FDREMsT0FBT0MsT0FBTyxFQUFFLEVBQUVDLE9BQU8sS0FBSyxFQUFFQyxLQUFLLEVBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUMzQyxNQUFNQyxTQUFTRixPQUFPLFNBQVM7UUFDL0Isd0NBQXdDO1FBQ3hDLElBQUlHLFNBQVM7UUFDYixNQUFNQyxpQkFBaUIsQ0FBQ0wsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSUEsVUFBVSxHQUFFLEVBQ3hFTSxLQUFLLENBQUMsSUFDTkMsR0FBRyxDQUFDLENBQUNDO1lBQ04sSUFBSSxLQUFLQyxJQUFJLENBQUNELE1BQU0sQ0FBQ0osUUFBUTtnQkFDekIsT0FBTztZQUNYO1lBQ0EsSUFBSUksTUFBTSxLQUFLO2dCQUNYSixTQUFTLENBQUNBO1lBQ2Q7WUFDQSxPQUFPSTtRQUNYLEdBQ0tFLElBQUksQ0FBQztRQUNWLElBQUksQ0FBQ2YsR0FBRyxDQUFDZ0IsWUFBWSxDQUFDQyxHQUFHLENBQUMsVUFBVVA7UUFDcEMsSUFBSUgsT0FBTztZQUNQLElBQUksQ0FBQ04sT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLE1BQU0sRUFBRU0sTUFBTSxDQUFDO1FBQzdDO1FBQ0EsT0FBTyxJQUFJViwrREFBc0JBLENBQUM7WUFDOUJXO1lBQ0FSLEtBQUssSUFBSSxDQUFDQSxHQUFHO1lBQ2JDLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtZQUNuQkMsT0FBTyxJQUFJLENBQUNBLEtBQUs7WUFDakJlLFlBQVk7UUFDaEI7SUFDSjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUJDLEdBQ0RDLE9BQU9DLE1BQU0sRUFBRSxFQUFFYixLQUFLLEVBQUVjLGdCQUFnQixJQUFJLEVBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNsRCxNQUFNYixTQUFTO1FBQ2YsTUFBTWMsaUJBQWlCLEVBQUU7UUFDekIsSUFBSSxJQUFJLENBQUNyQixPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hCcUIsZUFBZUMsSUFBSSxDQUFDLElBQUksQ0FBQ3RCLE9BQU8sQ0FBQyxTQUFTO1FBQzlDO1FBQ0EsSUFBSU0sT0FBTztZQUNQZSxlQUFlQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUVoQixNQUFNLENBQUM7UUFDeEM7UUFDQSxJQUFJLENBQUNjLGVBQWU7WUFDaEJDLGVBQWVDLElBQUksQ0FBQztRQUN4QjtRQUNBLElBQUksQ0FBQ3RCLE9BQU8sQ0FBQyxTQUFTLEdBQUdxQixlQUFlUCxJQUFJLENBQUM7UUFDN0MsSUFBSVMsTUFBTUMsT0FBTyxDQUFDTCxTQUFTO1lBQ3ZCLE1BQU1mLFVBQVVlLE9BQU9NLE1BQU0sQ0FBQyxDQUFDQyxLQUFLQyxJQUFNRCxJQUFJRSxNQUFNLENBQUNDLE9BQU9DLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1lBQ3hFLElBQUl2QixRQUFRMkIsTUFBTSxHQUFHLEdBQUc7Z0JBQ3BCLE1BQU1DLGdCQUFnQjt1QkFBSSxJQUFJQyxJQUFJN0I7aUJBQVMsQ0FBQ08sR0FBRyxDQUFDLENBQUN1QixTQUFXLENBQUMsQ0FBQyxFQUFFQSxPQUFPLENBQUMsQ0FBQztnQkFDekUsSUFBSSxDQUFDbkMsR0FBRyxDQUFDZ0IsWUFBWSxDQUFDQyxHQUFHLENBQUMsV0FBV2dCLGNBQWNsQixJQUFJLENBQUM7WUFDNUQ7UUFDSjtRQUNBLE9BQU8sSUFBSWxCLCtEQUFzQkEsQ0FBQztZQUM5Qlc7WUFDQVIsS0FBSyxJQUFJLENBQUNBLEdBQUc7WUFDYkMsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJDLFFBQVEsSUFBSSxDQUFDQSxNQUFNO1lBQ25Ca0MsTUFBTWhCO1lBQ05qQixPQUFPLElBQUksQ0FBQ0EsS0FBSztZQUNqQmUsWUFBWTtRQUNoQjtJQUNKO0lBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FxQ0MsR0FDRG1CLE9BQU9qQixNQUFNLEVBQUUsRUFBRWtCLFVBQVUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRWhDLEtBQUssRUFBRWMsZ0JBQWdCLElBQUksRUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ3hGLE1BQU1iLFNBQVM7UUFDZixNQUFNYyxpQkFBaUI7WUFBQyxDQUFDLFdBQVcsRUFBRWlCLG1CQUFtQixXQUFXLFFBQVEsV0FBVyxDQUFDO1NBQUM7UUFDekYsSUFBSUQsZUFBZUUsV0FDZixJQUFJLENBQUN4QyxHQUFHLENBQUNnQixZQUFZLENBQUNDLEdBQUcsQ0FBQyxlQUFlcUI7UUFDN0MsSUFBSSxJQUFJLENBQUNyQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hCcUIsZUFBZUMsSUFBSSxDQUFDLElBQUksQ0FBQ3RCLE9BQU8sQ0FBQyxTQUFTO1FBQzlDO1FBQ0EsSUFBSU0sT0FBTztZQUNQZSxlQUFlQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUVoQixNQUFNLENBQUM7UUFDeEM7UUFDQSxJQUFJLENBQUNjLGVBQWU7WUFDaEJDLGVBQWVDLElBQUksQ0FBQztRQUN4QjtRQUNBLElBQUksQ0FBQ3RCLE9BQU8sQ0FBQyxTQUFTLEdBQUdxQixlQUFlUCxJQUFJLENBQUM7UUFDN0MsSUFBSVMsTUFBTUMsT0FBTyxDQUFDTCxTQUFTO1lBQ3ZCLE1BQU1mLFVBQVVlLE9BQU9NLE1BQU0sQ0FBQyxDQUFDQyxLQUFLQyxJQUFNRCxJQUFJRSxNQUFNLENBQUNDLE9BQU9DLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1lBQ3hFLElBQUl2QixRQUFRMkIsTUFBTSxHQUFHLEdBQUc7Z0JBQ3BCLE1BQU1DLGdCQUFnQjt1QkFBSSxJQUFJQyxJQUFJN0I7aUJBQVMsQ0FBQ08sR0FBRyxDQUFDLENBQUN1QixTQUFXLENBQUMsQ0FBQyxFQUFFQSxPQUFPLENBQUMsQ0FBQztnQkFDekUsSUFBSSxDQUFDbkMsR0FBRyxDQUFDZ0IsWUFBWSxDQUFDQyxHQUFHLENBQUMsV0FBV2dCLGNBQWNsQixJQUFJLENBQUM7WUFDNUQ7UUFDSjtRQUNBLE9BQU8sSUFBSWxCLCtEQUFzQkEsQ0FBQztZQUM5Qlc7WUFDQVIsS0FBSyxJQUFJLENBQUNBLEdBQUc7WUFDYkMsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJDLFFBQVEsSUFBSSxDQUFDQSxNQUFNO1lBQ25Ca0MsTUFBTWhCO1lBQ05qQixPQUFPLElBQUksQ0FBQ0EsS0FBSztZQUNqQmUsWUFBWTtRQUNoQjtJQUNKO0lBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBb0JDLEdBQ0R1QixPQUFPckIsTUFBTSxFQUFFLEVBQUViLEtBQUssRUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQzVCLE1BQU1DLFNBQVM7UUFDZixNQUFNYyxpQkFBaUIsRUFBRTtRQUN6QixJQUFJLElBQUksQ0FBQ3JCLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDeEJxQixlQUFlQyxJQUFJLENBQUMsSUFBSSxDQUFDdEIsT0FBTyxDQUFDLFNBQVM7UUFDOUM7UUFDQSxJQUFJTSxPQUFPO1lBQ1BlLGVBQWVDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRWhCLE1BQU0sQ0FBQztRQUN4QztRQUNBLElBQUksQ0FBQ04sT0FBTyxDQUFDLFNBQVMsR0FBR3FCLGVBQWVQLElBQUksQ0FBQztRQUM3QyxPQUFPLElBQUlsQiwrREFBc0JBLENBQUM7WUFDOUJXO1lBQ0FSLEtBQUssSUFBSSxDQUFDQSxHQUFHO1lBQ2JDLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtZQUNuQmtDLE1BQU1oQjtZQUNOakIsT0FBTyxJQUFJLENBQUNBLEtBQUs7WUFDakJlLFlBQVk7UUFDaEI7SUFDSjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQkMsR0FDRHdCLE9BQU8sRUFBRW5DLEtBQUssRUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ3BCLE1BQU1DLFNBQVM7UUFDZixNQUFNYyxpQkFBaUIsRUFBRTtRQUN6QixJQUFJZixPQUFPO1lBQ1BlLGVBQWVDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRWhCLE1BQU0sQ0FBQztRQUN4QztRQUNBLElBQUksSUFBSSxDQUFDTixPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hCcUIsZUFBZXFCLE9BQU8sQ0FBQyxJQUFJLENBQUMxQyxPQUFPLENBQUMsU0FBUztRQUNqRDtRQUNBLElBQUksQ0FBQ0EsT0FBTyxDQUFDLFNBQVMsR0FBR3FCLGVBQWVQLElBQUksQ0FBQztRQUM3QyxPQUFPLElBQUlsQiwrREFBc0JBLENBQUM7WUFDOUJXO1lBQ0FSLEtBQUssSUFBSSxDQUFDQSxHQUFHO1lBQ2JDLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtZQUNuQkMsT0FBTyxJQUFJLENBQUNBLEtBQUs7WUFDakJlLFlBQVk7UUFDaEI7SUFDSjtBQUNKLEVBQ0EsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvbW9kdWxlL1Bvc3RncmVzdFF1ZXJ5QnVpbGRlci5qcz8zNDViIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyIGZyb20gJy4vUG9zdGdyZXN0RmlsdGVyQnVpbGRlcic7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIge1xuICAgIGNvbnN0cnVjdG9yKHVybCwgeyBoZWFkZXJzID0ge30sIHNjaGVtYSwgZmV0Y2gsIH0pIHtcbiAgICAgICAgdGhpcy51cmwgPSB1cmw7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IGhlYWRlcnM7XG4gICAgICAgIHRoaXMuc2NoZW1hID0gc2NoZW1hO1xuICAgICAgICB0aGlzLmZldGNoID0gZmV0Y2g7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBlcmZvcm0gYSBTRUxFQ1QgcXVlcnkgb24gdGhlIHRhYmxlIG9yIHZpZXcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1ucyAtIFRoZSBjb2x1bW5zIHRvIHJldHJpZXZlLCBzZXBhcmF0ZWQgYnkgY29tbWFzLiBDb2x1bW5zIGNhbiBiZSByZW5hbWVkIHdoZW4gcmV0dXJuZWQgd2l0aCBgY3VzdG9tTmFtZTpjb2x1bW5OYW1lYFxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5oZWFkIC0gV2hlbiBzZXQgdG8gYHRydWVgLCBgZGF0YWAgd2lsbCBub3QgYmUgcmV0dXJuZWQuXG4gICAgICogVXNlZnVsIGlmIHlvdSBvbmx5IG5lZWQgdGhlIGNvdW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuY291bnQgLSBDb3VudCBhbGdvcml0aG0gdG8gdXNlIHRvIGNvdW50IHJvd3MgaW4gdGhlIHRhYmxlIG9yIHZpZXcuXG4gICAgICpcbiAgICAgKiBgXCJleGFjdFwiYDogRXhhY3QgYnV0IHNsb3cgY291bnQgYWxnb3JpdGhtLiBQZXJmb3JtcyBhIGBDT1VOVCgqKWAgdW5kZXIgdGhlXG4gICAgICogaG9vZC5cbiAgICAgKlxuICAgICAqIGBcInBsYW5uZWRcImA6IEFwcHJveGltYXRlZCBidXQgZmFzdCBjb3VudCBhbGdvcml0aG0uIFVzZXMgdGhlIFBvc3RncmVzXG4gICAgICogc3RhdGlzdGljcyB1bmRlciB0aGUgaG9vZC5cbiAgICAgKlxuICAgICAqIGBcImVzdGltYXRlZFwiYDogVXNlcyBleGFjdCBjb3VudCBmb3IgbG93IG51bWJlcnMgYW5kIHBsYW5uZWQgY291bnQgZm9yIGhpZ2hcbiAgICAgKiBudW1iZXJzLlxuICAgICAqL1xuICAgIHNlbGVjdChjb2x1bW5zLCB7IGhlYWQgPSBmYWxzZSwgY291bnQsIH0gPSB7fSkge1xuICAgICAgICBjb25zdCBtZXRob2QgPSBoZWFkID8gJ0hFQUQnIDogJ0dFVCc7XG4gICAgICAgIC8vIFJlbW92ZSB3aGl0ZXNwYWNlcyBleGNlcHQgd2hlbiBxdW90ZWRcbiAgICAgICAgbGV0IHF1b3RlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjbGVhbmVkQ29sdW1ucyA9IChjb2x1bW5zICE9PSBudWxsICYmIGNvbHVtbnMgIT09IHZvaWQgMCA/IGNvbHVtbnMgOiAnKicpXG4gICAgICAgICAgICAuc3BsaXQoJycpXG4gICAgICAgICAgICAubWFwKChjKSA9PiB7XG4gICAgICAgICAgICBpZiAoL1xccy8udGVzdChjKSAmJiAhcXVvdGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGMgPT09ICdcIicpIHtcbiAgICAgICAgICAgICAgICBxdW90ZWQgPSAhcXVvdGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignJyk7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3NlbGVjdCcsIGNsZWFuZWRDb2x1bW5zKTtcbiAgICAgICAgaWYgKGNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddID0gYGNvdW50PSR7Y291bnR9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdEZpbHRlckJ1aWxkZXIoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcbiAgICAgICAgICAgIGFsbG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGVyZm9ybSBhbiBJTlNFUlQgaW50byB0aGUgdGFibGUgb3Igdmlldy5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIGluc2VydGVkIHJvd3MgYXJlIG5vdCByZXR1cm5lZC4gVG8gcmV0dXJuIGl0LCBjaGFpbiB0aGUgY2FsbFxuICAgICAqIHdpdGggYC5zZWxlY3QoKWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWVzIC0gVGhlIHZhbHVlcyB0byBpbnNlcnQuIFBhc3MgYW4gb2JqZWN0IHRvIGluc2VydCBhIHNpbmdsZSByb3dcbiAgICAgKiBvciBhbiBhcnJheSB0byBpbnNlcnQgbXVsdGlwbGUgcm93cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuY291bnQgLSBDb3VudCBhbGdvcml0aG0gdG8gdXNlIHRvIGNvdW50IGluc2VydGVkIHJvd3MuXG4gICAgICpcbiAgICAgKiBgXCJleGFjdFwiYDogRXhhY3QgYnV0IHNsb3cgY291bnQgYWxnb3JpdGhtLiBQZXJmb3JtcyBhIGBDT1VOVCgqKWAgdW5kZXIgdGhlXG4gICAgICogaG9vZC5cbiAgICAgKlxuICAgICAqIGBcInBsYW5uZWRcImA6IEFwcHJveGltYXRlZCBidXQgZmFzdCBjb3VudCBhbGdvcml0aG0uIFVzZXMgdGhlIFBvc3RncmVzXG4gICAgICogc3RhdGlzdGljcyB1bmRlciB0aGUgaG9vZC5cbiAgICAgKlxuICAgICAqIGBcImVzdGltYXRlZFwiYDogVXNlcyBleGFjdCBjb3VudCBmb3IgbG93IG51bWJlcnMgYW5kIHBsYW5uZWQgY291bnQgZm9yIGhpZ2hcbiAgICAgKiBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZGVmYXVsdFRvTnVsbCAtIE1ha2UgbWlzc2luZyBmaWVsZHMgZGVmYXVsdCB0byBgbnVsbGAuXG4gICAgICogT3RoZXJ3aXNlLCB1c2UgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjb2x1bW4uIE9ubHkgYXBwbGllcyBmb3IgYnVsa1xuICAgICAqIGluc2VydHMuXG4gICAgICovXG4gICAgaW5zZXJ0KHZhbHVlcywgeyBjb3VudCwgZGVmYXVsdFRvTnVsbCA9IHRydWUsIH0gPSB7fSkge1xuICAgICAgICBjb25zdCBtZXRob2QgPSAnUE9TVCc7XG4gICAgICAgIGNvbnN0IHByZWZlcnNIZWFkZXJzID0gW107XG4gICAgICAgIGlmICh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKSB7XG4gICAgICAgICAgICBwcmVmZXJzSGVhZGVycy5wdXNoKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaChgY291bnQ9JHtjb3VudH1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRlZmF1bHRUb051bGwpIHtcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2goJ21pc3Npbmc9ZGVmYXVsdCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gPSBwcmVmZXJzSGVhZGVycy5qb2luKCcsJyk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbnMgPSB2YWx1ZXMucmVkdWNlKChhY2MsIHgpID0+IGFjYy5jb25jYXQoT2JqZWN0LmtleXMoeCkpLCBbXSk7XG4gICAgICAgICAgICBpZiAoY29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pcXVlQ29sdW1ucyA9IFsuLi5uZXcgU2V0KGNvbHVtbnMpXS5tYXAoKGNvbHVtbikgPT4gYFwiJHtjb2x1bW59XCJgKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCdjb2x1bW5zJywgdW5pcXVlQ29sdW1ucy5qb2luKCcsJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcih7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSxcbiAgICAgICAgICAgIGJvZHk6IHZhbHVlcyxcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxuICAgICAgICAgICAgYWxsb3dFbXB0eTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtIGFuIFVQU0VSVCBvbiB0aGUgdGFibGUgb3Igdmlldy4gRGVwZW5kaW5nIG9uIHRoZSBjb2x1bW4ocykgcGFzc2VkXG4gICAgICogdG8gYG9uQ29uZmxpY3RgLCBgLnVwc2VydCgpYCBhbGxvd3MgeW91IHRvIHBlcmZvcm0gdGhlIGVxdWl2YWxlbnQgb2ZcbiAgICAgKiBgLmluc2VydCgpYCBpZiBhIHJvdyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGBvbkNvbmZsaWN0YCBjb2x1bW5zIGRvZXNuJ3RcbiAgICAgKiBleGlzdCwgb3IgaWYgaXQgZG9lcyBleGlzdCwgcGVyZm9ybSBhbiBhbHRlcm5hdGl2ZSBhY3Rpb24gZGVwZW5kaW5nIG9uXG4gICAgICogYGlnbm9yZUR1cGxpY2F0ZXNgLlxuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgdXBzZXJ0ZWQgcm93cyBhcmUgbm90IHJldHVybmVkLiBUbyByZXR1cm4gaXQsIGNoYWluIHRoZSBjYWxsXG4gICAgICogd2l0aCBgLnNlbGVjdCgpYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZXMgLSBUaGUgdmFsdWVzIHRvIHVwc2VydCB3aXRoLiBQYXNzIGFuIG9iamVjdCB0byB1cHNlcnQgYVxuICAgICAqIHNpbmdsZSByb3cgb3IgYW4gYXJyYXkgdG8gdXBzZXJ0IG11bHRpcGxlIHJvd3MuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLm9uQ29uZmxpY3QgLSBDb21tYS1zZXBhcmF0ZWQgVU5JUVVFIGNvbHVtbihzKSB0byBzcGVjaWZ5IGhvd1xuICAgICAqIGR1cGxpY2F0ZSByb3dzIGFyZSBkZXRlcm1pbmVkLiBUd28gcm93cyBhcmUgZHVwbGljYXRlcyBpZiBhbGwgdGhlXG4gICAgICogYG9uQ29uZmxpY3RgIGNvbHVtbnMgYXJlIGVxdWFsLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuaWdub3JlRHVwbGljYXRlcyAtIElmIGB0cnVlYCwgZHVwbGljYXRlIHJvd3MgYXJlIGlnbm9yZWQuIElmXG4gICAgICogYGZhbHNlYCwgZHVwbGljYXRlIHJvd3MgYXJlIG1lcmdlZCB3aXRoIGV4aXN0aW5nIHJvd3MuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5jb3VudCAtIENvdW50IGFsZ29yaXRobSB0byB1c2UgdG8gY291bnQgdXBzZXJ0ZWQgcm93cy5cbiAgICAgKlxuICAgICAqIGBcImV4YWN0XCJgOiBFeGFjdCBidXQgc2xvdyBjb3VudCBhbGdvcml0aG0uIFBlcmZvcm1zIGEgYENPVU5UKCopYCB1bmRlciB0aGVcbiAgICAgKiBob29kLlxuICAgICAqXG4gICAgICogYFwicGxhbm5lZFwiYDogQXBwcm94aW1hdGVkIGJ1dCBmYXN0IGNvdW50IGFsZ29yaXRobS4gVXNlcyB0aGUgUG9zdGdyZXNcbiAgICAgKiBzdGF0aXN0aWNzIHVuZGVyIHRoZSBob29kLlxuICAgICAqXG4gICAgICogYFwiZXN0aW1hdGVkXCJgOiBVc2VzIGV4YWN0IGNvdW50IGZvciBsb3cgbnVtYmVycyBhbmQgcGxhbm5lZCBjb3VudCBmb3IgaGlnaFxuICAgICAqIG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kZWZhdWx0VG9OdWxsIC0gTWFrZSBtaXNzaW5nIGZpZWxkcyBkZWZhdWx0IHRvIGBudWxsYC5cbiAgICAgKiBPdGhlcndpc2UsIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvbHVtbi4gVGhpcyBvbmx5IGFwcGxpZXMgd2hlblxuICAgICAqIGluc2VydGluZyBuZXcgcm93cywgbm90IHdoZW4gbWVyZ2luZyB3aXRoIGV4aXN0aW5nIHJvd3MgdW5kZXJcbiAgICAgKiBgaWdub3JlRHVwbGljYXRlczogZmFsc2VgLiBUaGlzIGFsc28gb25seSBhcHBsaWVzIHdoZW4gZG9pbmcgYnVsayB1cHNlcnRzLlxuICAgICAqL1xuICAgIHVwc2VydCh2YWx1ZXMsIHsgb25Db25mbGljdCwgaWdub3JlRHVwbGljYXRlcyA9IGZhbHNlLCBjb3VudCwgZGVmYXVsdFRvTnVsbCA9IHRydWUsIH0gPSB7fSkge1xuICAgICAgICBjb25zdCBtZXRob2QgPSAnUE9TVCc7XG4gICAgICAgIGNvbnN0IHByZWZlcnNIZWFkZXJzID0gW2ByZXNvbHV0aW9uPSR7aWdub3JlRHVwbGljYXRlcyA/ICdpZ25vcmUnIDogJ21lcmdlJ30tZHVwbGljYXRlc2BdO1xuICAgICAgICBpZiAob25Db25mbGljdCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldCgnb25fY29uZmxpY3QnLCBvbkNvbmZsaWN0KTtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pIHtcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2godGhpcy5oZWFkZXJzWydQcmVmZXInXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvdW50KSB7XG4gICAgICAgICAgICBwcmVmZXJzSGVhZGVycy5wdXNoKGBjb3VudD0ke2NvdW50fWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZGVmYXVsdFRvTnVsbCkge1xuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaCgnbWlzc2luZz1kZWZhdWx0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oZWFkZXJzWydQcmVmZXInXSA9IHByZWZlcnNIZWFkZXJzLmpvaW4oJywnKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IHZhbHVlcy5yZWR1Y2UoKGFjYywgeCkgPT4gYWNjLmNvbmNhdChPYmplY3Qua2V5cyh4KSksIFtdKTtcbiAgICAgICAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bmlxdWVDb2x1bW5zID0gWy4uLm5ldyBTZXQoY29sdW1ucyldLm1hcCgoY29sdW1uKSA9PiBgXCIke2NvbHVtbn1cImApO1xuICAgICAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2NvbHVtbnMnLCB1bmlxdWVDb2x1bW5zLmpvaW4oJywnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyKHtcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxuICAgICAgICAgICAgYm9keTogdmFsdWVzLFxuICAgICAgICAgICAgZmV0Y2g6IHRoaXMuZmV0Y2gsXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBlcmZvcm0gYW4gVVBEQVRFIG9uIHRoZSB0YWJsZSBvciB2aWV3LlxuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgdXBkYXRlZCByb3dzIGFyZSBub3QgcmV0dXJuZWQuIFRvIHJldHVybiBpdCwgY2hhaW4gdGhlIGNhbGxcbiAgICAgKiB3aXRoIGAuc2VsZWN0KClgIGFmdGVyIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWVzIC0gVGhlIHZhbHVlcyB0byB1cGRhdGUgd2l0aFxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5jb3VudCAtIENvdW50IGFsZ29yaXRobSB0byB1c2UgdG8gY291bnQgdXBkYXRlZCByb3dzLlxuICAgICAqXG4gICAgICogYFwiZXhhY3RcImA6IEV4YWN0IGJ1dCBzbG93IGNvdW50IGFsZ29yaXRobS4gUGVyZm9ybXMgYSBgQ09VTlQoKilgIHVuZGVyIHRoZVxuICAgICAqIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJwbGFubmVkXCJgOiBBcHByb3hpbWF0ZWQgYnV0IGZhc3QgY291bnQgYWxnb3JpdGhtLiBVc2VzIHRoZSBQb3N0Z3Jlc1xuICAgICAqIHN0YXRpc3RpY3MgdW5kZXIgdGhlIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJlc3RpbWF0ZWRcImA6IFVzZXMgZXhhY3QgY291bnQgZm9yIGxvdyBudW1iZXJzIGFuZCBwbGFubmVkIGNvdW50IGZvciBoaWdoXG4gICAgICogbnVtYmVycy5cbiAgICAgKi9cbiAgICB1cGRhdGUodmFsdWVzLCB7IGNvdW50LCB9ID0ge30pIHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gJ1BBVENIJztcbiAgICAgICAgY29uc3QgcHJlZmVyc0hlYWRlcnMgPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pIHtcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2godGhpcy5oZWFkZXJzWydQcmVmZXInXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvdW50KSB7XG4gICAgICAgICAgICBwcmVmZXJzSGVhZGVycy5wdXNoKGBjb3VudD0ke2NvdW50fWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gPSBwcmVmZXJzSGVhZGVycy5qb2luKCcsJyk7XG4gICAgICAgIHJldHVybiBuZXcgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcih7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSxcbiAgICAgICAgICAgIGJvZHk6IHZhbHVlcyxcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxuICAgICAgICAgICAgYWxsb3dFbXB0eTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtIGEgREVMRVRFIG9uIHRoZSB0YWJsZSBvciB2aWV3LlxuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgZGVsZXRlZCByb3dzIGFyZSBub3QgcmV0dXJuZWQuIFRvIHJldHVybiBpdCwgY2hhaW4gdGhlIGNhbGxcbiAgICAgKiB3aXRoIGAuc2VsZWN0KClgIGFmdGVyIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCBkZWxldGVkIHJvd3MuXG4gICAgICpcbiAgICAgKiBgXCJleGFjdFwiYDogRXhhY3QgYnV0IHNsb3cgY291bnQgYWxnb3JpdGhtLiBQZXJmb3JtcyBhIGBDT1VOVCgqKWAgdW5kZXIgdGhlXG4gICAgICogaG9vZC5cbiAgICAgKlxuICAgICAqIGBcInBsYW5uZWRcImA6IEFwcHJveGltYXRlZCBidXQgZmFzdCBjb3VudCBhbGdvcml0aG0uIFVzZXMgdGhlIFBvc3RncmVzXG4gICAgICogc3RhdGlzdGljcyB1bmRlciB0aGUgaG9vZC5cbiAgICAgKlxuICAgICAqIGBcImVzdGltYXRlZFwiYDogVXNlcyBleGFjdCBjb3VudCBmb3IgbG93IG51bWJlcnMgYW5kIHBsYW5uZWQgY291bnQgZm9yIGhpZ2hcbiAgICAgKiBudW1iZXJzLlxuICAgICAqL1xuICAgIGRlbGV0ZSh7IGNvdW50LCB9ID0ge30pIHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gJ0RFTEVURSc7XG4gICAgICAgIGNvbnN0IHByZWZlcnNIZWFkZXJzID0gW107XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaChgY291bnQ9JHtjb3VudH1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5oZWFkZXJzWydQcmVmZXInXSkge1xuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMudW5zaGlmdCh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddID0gcHJlZmVyc0hlYWRlcnMuam9pbignLCcpO1xuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdEZpbHRlckJ1aWxkZXIoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcbiAgICAgICAgICAgIGFsbG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIuanMubWFwIl0sIm5hbWVzIjpbIlBvc3RncmVzdEZpbHRlckJ1aWxkZXIiLCJQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIiLCJjb25zdHJ1Y3RvciIsInVybCIsImhlYWRlcnMiLCJzY2hlbWEiLCJmZXRjaCIsInNlbGVjdCIsImNvbHVtbnMiLCJoZWFkIiwiY291bnQiLCJtZXRob2QiLCJxdW90ZWQiLCJjbGVhbmVkQ29sdW1ucyIsInNwbGl0IiwibWFwIiwiYyIsInRlc3QiLCJqb2luIiwic2VhcmNoUGFyYW1zIiwic2V0IiwiYWxsb3dFbXB0eSIsImluc2VydCIsInZhbHVlcyIsImRlZmF1bHRUb051bGwiLCJwcmVmZXJzSGVhZGVycyIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJyZWR1Y2UiLCJhY2MiLCJ4IiwiY29uY2F0IiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsInVuaXF1ZUNvbHVtbnMiLCJTZXQiLCJjb2x1bW4iLCJib2R5IiwidXBzZXJ0Iiwib25Db25mbGljdCIsImlnbm9yZUR1cGxpY2F0ZXMiLCJ1bmRlZmluZWQiLCJ1cGRhdGUiLCJkZWxldGUiLCJ1bnNoaWZ0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PostgrestTransformBuilder)\n/* harmony export */ });\n/* harmony import */ var _PostgrestBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js\");\n\nclass PostgrestTransformBuilder extends _PostgrestBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n /**\n * Perform a SELECT on the query result.\n *\n * By default, `.insert()`, `.update()`, `.upsert()`, and `.delete()` do not\n * return modified rows. By calling this method, modified rows are returned in\n * `data`.\n *\n * @param columns - The columns to retrieve, separated by commas\n */ select(columns) {\n // Remove whitespaces except when quoted\n let quoted = false;\n const cleanedColumns = (columns !== null && columns !== void 0 ? columns : \"*\").split(\"\").map((c)=>{\n if (/\\s/.test(c) && !quoted) {\n return \"\";\n }\n if (c === '\"') {\n quoted = !quoted;\n }\n return c;\n }).join(\"\");\n this.url.searchParams.set(\"select\", cleanedColumns);\n if (this.headers[\"Prefer\"]) {\n this.headers[\"Prefer\"] += \",\";\n }\n this.headers[\"Prefer\"] += \"return=representation\";\n return this;\n }\n /**\n * Order the query result by `column`.\n *\n * You can call this method multiple times to order by multiple columns.\n *\n * You can order referenced tables, but it only affects the ordering of the\n * parent table if you use `!inner` in the query.\n *\n * @param column - The column to order by\n * @param options - Named parameters\n * @param options.ascending - If `true`, the result will be in ascending order\n * @param options.nullsFirst - If `true`, `null`s appear first. If `false`,\n * `null`s appear last.\n * @param options.referencedTable - Set this to order a referenced table by\n * its columns\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */ order(column, { ascending = true, nullsFirst, foreignTable, referencedTable = foreignTable } = {}) {\n const key = referencedTable ? `${referencedTable}.order` : \"order\";\n const existingOrder = this.url.searchParams.get(key);\n this.url.searchParams.set(key, `${existingOrder ? `${existingOrder},` : \"\"}${column}.${ascending ? \"asc\" : \"desc\"}${nullsFirst === undefined ? \"\" : nullsFirst ? \".nullsfirst\" : \".nullslast\"}`);\n return this;\n }\n /**\n * Limit the query result by `count`.\n *\n * @param count - The maximum number of rows to return\n * @param options - Named parameters\n * @param options.referencedTable - Set this to limit rows of referenced\n * tables instead of the parent table\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */ limit(count, { foreignTable, referencedTable = foreignTable } = {}) {\n const key = typeof referencedTable === \"undefined\" ? \"limit\" : `${referencedTable}.limit`;\n this.url.searchParams.set(key, `${count}`);\n return this;\n }\n /**\n * Limit the query result by starting at an offset (`from`) and ending at the offset (`from + to`).\n * Only records within this range are returned.\n * This respects the query order and if there is no order clause the range could behave unexpectedly.\n * The `from` and `to` values are 0-based and inclusive: `range(1, 3)` will include the second, third\n * and fourth rows of the query.\n *\n * @param from - The starting index from which to limit the result\n * @param to - The last index to which to limit the result\n * @param options - Named parameters\n * @param options.referencedTable - Set this to limit rows of referenced\n * tables instead of the parent table\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */ range(from, to, { foreignTable, referencedTable = foreignTable } = {}) {\n const keyOffset = typeof referencedTable === \"undefined\" ? \"offset\" : `${referencedTable}.offset`;\n const keyLimit = typeof referencedTable === \"undefined\" ? \"limit\" : `${referencedTable}.limit`;\n this.url.searchParams.set(keyOffset, `${from}`);\n // Range is inclusive, so add 1\n this.url.searchParams.set(keyLimit, `${to - from + 1}`);\n return this;\n }\n /**\n * Set the AbortSignal for the fetch request.\n *\n * @param signal - The AbortSignal to use for the fetch request\n */ abortSignal(signal) {\n this.signal = signal;\n return this;\n }\n /**\n * Return `data` as a single object instead of an array of objects.\n *\n * Query result must be one row (e.g. using `.limit(1)`), otherwise this\n * returns an error.\n */ single() {\n this.headers[\"Accept\"] = \"application/vnd.pgrst.object+json\";\n return this;\n }\n /**\n * Return `data` as a single object instead of an array of objects.\n *\n * Query result must be zero or one row (e.g. using `.limit(1)`), otherwise\n * this returns an error.\n */ maybeSingle() {\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\n if (this.method === \"GET\") {\n this.headers[\"Accept\"] = \"application/json\";\n } else {\n this.headers[\"Accept\"] = \"application/vnd.pgrst.object+json\";\n }\n this.isMaybeSingle = true;\n return this;\n }\n /**\n * Return `data` as a string in CSV format.\n */ csv() {\n this.headers[\"Accept\"] = \"text/csv\";\n return this;\n }\n /**\n * Return `data` as an object in [GeoJSON](https://geojson.org) format.\n */ geojson() {\n this.headers[\"Accept\"] = \"application/geo+json\";\n return this;\n }\n /**\n * Return `data` as the EXPLAIN plan for the query.\n *\n * You need to enable the\n * [db_plan_enabled](https://supabase.com/docs/guides/database/debugging-performance#enabling-explain)\n * setting before using this method.\n *\n * @param options - Named parameters\n *\n * @param options.analyze - If `true`, the query will be executed and the\n * actual run time will be returned\n *\n * @param options.verbose - If `true`, the query identifier will be returned\n * and `data` will include the output columns of the query\n *\n * @param options.settings - If `true`, include information on configuration\n * parameters that affect query planning\n *\n * @param options.buffers - If `true`, include information on buffer usage\n *\n * @param options.wal - If `true`, include information on WAL record generation\n *\n * @param options.format - The format of the output, can be `\"text\"` (default)\n * or `\"json\"`\n */ explain({ analyze = false, verbose = false, settings = false, buffers = false, wal = false, format = \"text\" } = {}) {\n var _a;\n const options = [\n analyze ? \"analyze\" : null,\n verbose ? \"verbose\" : null,\n settings ? \"settings\" : null,\n buffers ? \"buffers\" : null,\n wal ? \"wal\" : null\n ].filter(Boolean).join(\"|\");\n // An Accept header can carry multiple media types but postgrest-js always sends one\n const forMediatype = (_a = this.headers[\"Accept\"]) !== null && _a !== void 0 ? _a : \"application/json\";\n this.headers[\"Accept\"] = `application/vnd.pgrst.plan+${format}; for=\"${forMediatype}\"; options=${options};`;\n if (format === \"json\") return this;\n else return this;\n }\n /**\n * Rollback the query.\n *\n * `data` will still be returned, but the query is not committed.\n */ rollback() {\n var _a;\n if (((_a = this.headers[\"Prefer\"]) !== null && _a !== void 0 ? _a : \"\").trim().length > 0) {\n this.headers[\"Prefer\"] += \",tx=rollback\";\n } else {\n this.headers[\"Prefer\"] = \"tx=rollback\";\n }\n return this;\n }\n /**\n * Override the type of the returned `data`.\n *\n * @typeParam NewResult - The new result type to override with\n */ returns() {\n return this;\n }\n} //# sourceMappingURL=PostgrestTransformBuilder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDtBQUNuQyxNQUFNQyxrQ0FBa0NELHlEQUFnQkE7SUFDbkU7Ozs7Ozs7O0tBUUMsR0FDREUsT0FBT0MsT0FBTyxFQUFFO1FBQ1osd0NBQXdDO1FBQ3hDLElBQUlDLFNBQVM7UUFDYixNQUFNQyxpQkFBaUIsQ0FBQ0YsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSUEsVUFBVSxHQUFFLEVBQ3hFRyxLQUFLLENBQUMsSUFDTkMsR0FBRyxDQUFDLENBQUNDO1lBQ04sSUFBSSxLQUFLQyxJQUFJLENBQUNELE1BQU0sQ0FBQ0osUUFBUTtnQkFDekIsT0FBTztZQUNYO1lBQ0EsSUFBSUksTUFBTSxLQUFLO2dCQUNYSixTQUFTLENBQUNBO1lBQ2Q7WUFDQSxPQUFPSTtRQUNYLEdBQ0tFLElBQUksQ0FBQztRQUNWLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxZQUFZLENBQUNDLEdBQUcsQ0FBQyxVQUFVUjtRQUNwQyxJQUFJLElBQUksQ0FBQ1MsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN4QixJQUFJLENBQUNBLE9BQU8sQ0FBQyxTQUFTLElBQUk7UUFDOUI7UUFDQSxJQUFJLENBQUNBLE9BQU8sQ0FBQyxTQUFTLElBQUk7UUFDMUIsT0FBTyxJQUFJO0lBQ2Y7SUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQkMsR0FDREMsTUFBTUMsTUFBTSxFQUFFLEVBQUVDLFlBQVksSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFlBQVksRUFBRUMsa0JBQWtCRCxZQUFZLEVBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNoRyxNQUFNRSxNQUFNRCxrQkFBa0IsQ0FBQyxFQUFFQSxnQkFBZ0IsTUFBTSxDQUFDLEdBQUc7UUFDM0QsTUFBTUUsZ0JBQWdCLElBQUksQ0FBQ1gsR0FBRyxDQUFDQyxZQUFZ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SUFBSSxDQUFDO1FBQ1Ysb0ZBQW9GO1FBQ3BGLE1BQU15QyxlQUFlLENBQUNKLEtBQUssSUFBSSxDQUFDakMsT0FBTyxDQUFDLFNBQVMsTUFBTSxRQUFRaUMsT0FBTyxLQUFLLElBQUlBLEtBQUs7UUFDcEYsSUFBSSxDQUFDakMsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLDJCQUEyQixFQUFFZ0MsT0FBTyxPQUFPLEVBQUVLLGFBQWEsV0FBVyxFQUFFSCxRQUFRLENBQUMsQ0FBQztRQUMzRyxJQUFJRixXQUFXLFFBQ1gsT0FBTyxJQUFJO2FBRVgsT0FBTyxJQUFJO0lBQ25CO0lBQ0E7Ozs7S0FJQyxHQUNETSxXQUFXO1FBQ1AsSUFBSUw7UUFDSixJQUFJLENBQUMsQ0FBQ0EsS0FBSyxJQUFJLENBQUNqQyxPQUFPLENBQUMsU0FBUyxNQUFNLFFBQVFpQyxPQUFPLEtBQUssSUFBSUEsS0FBSyxFQUFDLEVBQUdNLElBQUksR0FBR0MsTUFBTSxHQUFHLEdBQUc7WUFDdkYsSUFBSSxDQUFDeEMsT0FBTyxDQUFDLFNBQVMsSUFBSTtRQUM5QixPQUNLO1lBQ0QsSUFBSSxDQUFDQSxPQUFPLENBQUMsU0FBUyxHQUFHO1FBQzdCO1FBQ0EsT0FBTyxJQUFJO0lBQ2Y7SUFDQTs7OztLQUlDLEdBQ0R5QyxVQUFVO1FBQ04sT0FBTyxJQUFJO0lBQ2Y7QUFDSixFQUNBLHFEQUFxRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyLmpzPzg1OTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBvc3RncmVzdEJ1aWxkZXIgZnJvbSAnLi9Qb3N0Z3Jlc3RCdWlsZGVyJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXIgZXh0ZW5kcyBQb3N0Z3Jlc3RCdWlsZGVyIHtcbiAgICAvKipcbiAgICAgKiBQZXJmb3JtIGEgU0VMRUNUIG9uIHRoZSBxdWVyeSByZXN1bHQuXG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0LCBgLmluc2VydCgpYCwgYC51cGRhdGUoKWAsIGAudXBzZXJ0KClgLCBhbmQgYC5kZWxldGUoKWAgZG8gbm90XG4gICAgICogcmV0dXJuIG1vZGlmaWVkIHJvd3MuIEJ5IGNhbGxpbmcgdGhpcyBtZXRob2QsIG1vZGlmaWVkIHJvd3MgYXJlIHJldHVybmVkIGluXG4gICAgICogYGRhdGFgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbnMgLSBUaGUgY29sdW1ucyB0byByZXRyaWV2ZSwgc2VwYXJhdGVkIGJ5IGNvbW1hc1xuICAgICAqL1xuICAgIHNlbGVjdChjb2x1bW5zKSB7XG4gICAgICAgIC8vIFJlbW92ZSB3aGl0ZXNwYWNlcyBleGNlcHQgd2hlbiBxdW90ZWRcbiAgICAgICAgbGV0IHF1b3RlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjbGVhbmVkQ29sdW1ucyA9IChjb2x1bW5zICE9PSBudWxsICYmIGNvbHVtbnMgIT09IHZvaWQgMCA/IGNvbHVtbnMgOiAnKicpXG4gICAgICAgICAgICAuc3BsaXQoJycpXG4gICAgICAgICAgICAubWFwKChjKSA9PiB7XG4gICAgICAgICAgICBpZiAoL1xccy8udGVzdChjKSAmJiAhcXVvdGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGMgPT09ICdcIicpIHtcbiAgICAgICAgICAgICAgICBxdW90ZWQgPSAhcXVvdGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignJyk7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3NlbGVjdCcsIGNsZWFuZWRDb2x1bW5zKTtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gKz0gJywnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gKz0gJ3JldHVybj1yZXByZXNlbnRhdGlvbic7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPcmRlciB0aGUgcXVlcnkgcmVzdWx0IGJ5IGBjb2x1bW5gLlxuICAgICAqXG4gICAgICogWW91IGNhbiBjYWxsIHRoaXMgbWV0aG9kIG11bHRpcGxlIHRpbWVzIHRvIG9yZGVyIGJ5IG11bHRpcGxlIGNvbHVtbnMuXG4gICAgICpcbiAgICAgKiBZb3UgY2FuIG9yZGVyIHJlZmVyZW5jZWQgdGFibGVzLCBidXQgaXQgb25seSBhZmZlY3RzIHRoZSBvcmRlcmluZyBvZiB0aGVcbiAgICAgKiBwYXJlbnQgdGFibGUgaWYgeW91IHVzZSBgIWlubmVyYCBpbiB0aGUgcXVlcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBvcmRlciBieVxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvcHRpb25zLmFzY2VuZGluZyAtIElmIGB0cnVlYCwgdGhlIHJlc3VsdCB3aWxsIGJlIGluIGFzY2VuZGluZyBvcmRlclxuICAgICAqIEBwYXJhbSBvcHRpb25zLm51bGxzRmlyc3QgLSBJZiBgdHJ1ZWAsIGBudWxsYHMgYXBwZWFyIGZpcnN0LiBJZiBgZmFsc2VgLFxuICAgICAqIGBudWxsYHMgYXBwZWFyIGxhc3QuXG4gICAgICogQHBhcmFtIG9wdGlvbnMucmVmZXJlbmNlZFRhYmxlIC0gU2V0IHRoaXMgdG8gb3JkZXIgYSByZWZlcmVuY2VkIHRhYmxlIGJ5XG4gICAgICogaXRzIGNvbHVtbnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5mb3JlaWduVGFibGUgLSBEZXByZWNhdGVkLCB1c2UgYG9wdGlvbnMucmVmZXJlbmNlZFRhYmxlYFxuICAgICAqIGluc3RlYWRcbiAgICAgKi9cbiAgICBvcmRlcihjb2x1bW4sIHsgYXNjZW5kaW5nID0gdHJ1ZSwgbnVsbHNGaXJzdCwgZm9yZWlnblRhYmxlLCByZWZlcmVuY2VkVGFibGUgPSBmb3JlaWduVGFibGUsIH0gPSB7fSkge1xuICAgICAgICBjb25zdCBrZXkgPSByZWZlcmVuY2VkVGFibGUgPyBgJHtyZWZlcmVuY2VkVGFibGV9Lm9yZGVyYCA6ICdvcmRlcic7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nT3JkZXIgPSB0aGlzLnVybC5zZWFyY2hQYXJhbXMuZ2V0KGtleSk7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoa2V5LCBgJHtleGlzdGluZ09yZGVyID8gYCR7ZXhpc3RpbmdPcmRlcn0sYCA6ICcnfSR7Y29sdW1ufS4ke2FzY2VuZGluZyA/ICdhc2MnIDogJ2Rlc2MnfSR7bnVsbHNGaXJzdCA9PT0gdW5kZWZpbmVkID8gJycgOiBudWxsc0ZpcnN0ID8gJy5udWxsc2ZpcnN0JyA6ICcubnVsbHNsYXN0J31gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIExpbWl0IHRoZSBxdWVyeSByZXN1bHQgYnkgYGNvdW50YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb3VudCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiByb3dzIHRvIHJldHVyblxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZSAtIFNldCB0aGlzIHRvIGxpbWl0IHJvd3Mgb2YgcmVmZXJlbmNlZFxuICAgICAqIHRhYmxlcyBpbnN0ZWFkIG9mIHRoZSBwYXJlbnQgdGFibGVcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5mb3JlaWduVGFibGUgLSBEZXByZWNhdGVkLCB1c2UgYG9wdGlvbnMucmVmZXJlbmNlZFRhYmxlYFxuICAgICAqIGluc3RlYWRcbiAgICAgKi9cbiAgICBsaW1pdChjb3VudCwgeyBmb3JlaWduVGFibGUsIHJlZmVyZW5jZWRUYWJsZSA9IGZvcmVpZ25UYWJsZSwgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHR5cGVvZiByZWZlcmVuY2VkVGFibGUgPT09ICd1bmRlZmluZWQnID8gJ2xpbWl0JyA6IGAke3JlZmVyZW5jZWRUYWJsZX0ubGltaXRgO1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KGtleSwgYCR7Y291bnR9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBMaW1pdCB0aGUgcXVlcnkgcmVzdWx0IGJ5IHN0YXJ0aW5nIGF0IGFuIG9mZnNldCAoYGZyb21gKSBhbmQgZW5kaW5nIGF0IHRoZSBvZmZzZXQgKGBmcm9tICsgdG9gKS5cbiAgICAgKiBPbmx5IHJlY29yZHMgd2l0aGluIHRoaXMgcmFuZ2UgYXJlIHJldHVybmVkLlxuICAgICAqIFRoaXMgcmVzcGVjdHMgdGhlIHF1ZXJ5IG9yZGVyIGFuZCBpZiB0aGVyZSBpcyBubyBvcmRlciBjbGF1c2UgdGhlIHJhbmdlIGNvdWxkIGJlaGF2ZSB1bmV4cGVjdGVkbHkuXG4gICAgICogVGhlIGBmcm9tYCBhbmQgYHRvYCB2YWx1ZXMgYXJlIDAtYmFzZWQgYW5kIGluY2x1c2l2ZTogYHJhbmdlKDEsIDMpYCB3aWxsIGluY2x1ZGUgdGhlIHNlY29uZCwgdGhpcmRcbiAgICAgKiBhbmQgZm91cnRoIHJvd3Mgb2YgdGhlIHF1ZXJ5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZyb20gLSBUaGUgc3RhcnRpbmcgaW5kZXggZnJvbSB3aGljaCB0byBsaW1pdCB0aGUgcmVzdWx0XG4gICAgICogQHBhcmFtIHRvIC0gVGhlIGxhc3QgaW5kZXggdG8gd2hpY2ggdG8gbGltaXQgdGhlIHJlc3VsdFxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZSAtIFNldCB0aGlzIHRvIGxpbWl0IHJvd3Mgb2YgcmVmZXJlbmNlZFxuICAgICAqIHRhYmxlcyBpbnN0ZWFkIG9mIHRoZSBwYXJlbnQgdGFibGVcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5mb3JlaWduVGFibGUgLSBEZXByZWNhdGVkLCB1c2UgYG9wdGlvbnMucmVmZXJlbmNlZFRhYmxlYFxuICAgICAqIGluc3RlYWRcbiAgICAgKi9cbiAgICByYW5nZShmcm9tLCB0bywgeyBmb3JlaWduVGFibGUsIHJlZmVyZW5jZWRUYWJsZSA9IGZvcmVpZ25UYWJsZSwgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IGtleU9mZnNldCA9IHR5cGVvZiByZWZlcmVuY2VkVGFibGUgPT09ICd1bmRlZmluZWQnID8gJ29mZnNldCcgOiBgJHtyZWZlcmVuY2VkVGFibGV9Lm9mZnNldGA7XG4gICAgICAgIGNvbnN0IGtleUxpbWl0ID0gdHlwZW9mIHJlZmVyZW5jZWRUYWJsZSA9PT0gJ3VuZGVmaW5lZCcgPyAnbGltaXQnIDogYCR7cmVmZXJlbmNlZFRhYmxlfS5saW1pdGA7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoa2V5T2Zmc2V0LCBgJHtmcm9tfWApO1xuICAgICAgICAvLyBSYW5nZSBpcyBpbmNsdXNpdmUsIHNvIGFkZCAxXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoa2V5TGltaXQsIGAke3RvIC0gZnJvbSArIDF9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIEFib3J0U2lnbmFsIGZvciB0aGUgZmV0Y2ggcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaWduYWwgLSBUaGUgQWJvcnRTaWduYWwgdG8gdXNlIGZvciB0aGUgZmV0Y2ggcmVxdWVzdFxuICAgICAqL1xuICAgIGFib3J0U2lnbmFsKHNpZ25hbCkge1xuICAgICAgICB0aGlzLnNpZ25hbCA9IHNpZ25hbDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBgZGF0YWAgYXMgYSBzaW5nbGUgb2JqZWN0IGluc3RlYWQgb2YgYW4gYXJyYXkgb2Ygb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIFF1ZXJ5IHJlc3VsdCBtdXN0IGJlIG9uZSByb3cgKGUuZy4gdXNpbmcgYC5saW1pdCgxKWApLCBvdGhlcndpc2UgdGhpc1xuICAgICAqIHJldHVybnMgYW4gZXJyb3IuXG4gICAgICovXG4gICAgc2luZ2xlKCkge1xuICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID0gJ2FwcGxpY2F0aW9uL3ZuZC5wZ3JzdC5vYmplY3QranNvbic7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYGRhdGFgIGFzIGEgc2luZ2xlIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5IG9mIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBRdWVyeSByZXN1bHQgbXVzdCBiZSB6ZXJvIG9yIG9uZSByb3cgKGUuZy4gdXNpbmcgYC5saW1pdCgxKWApLCBvdGhlcndpc2VcbiAgICAgKiB0aGlzIHJldHVybnMgYW4gZXJyb3IuXG4gICAgICovXG4gICAgbWF5YmVTaW5nbGUoKSB7XG4gICAgICAgIC8vIFRlbXBvcmFyeSBwYXJ0aWFsIGZpeCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3N1cGFiYXNlL3Bvc3RncmVzdC1qcy9pc3N1ZXMvMzYxXG4gICAgICAgIC8vIElzc3VlIHBlcnNpc3RzIGUuZy4gZm9yIGAuaW5zZXJ0KFsuLi5dKS5zZWxlY3QoKS5tYXliZVNpbmdsZSgpYFxuICAgICAgICBpZiAodGhpcy5tZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQnXSA9ICdhcHBsaWNhdGlvbi92bmQucGdyc3Qub2JqZWN0K2pzb24nO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNNYXliZVNpbmdsZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYGRhdGFgIGFzIGEgc3RyaW5nIGluIENTViBmb3JtYXQuXG4gICAgICovXG4gICAgY3N2KCkge1xuICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID0gJ3RleHQvY3N2JztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBgZGF0YWAgYXMgYW4gb2JqZWN0IGluIFtHZW9KU09OXShodHRwczovL2dlb2pzb24ub3JnKSBmb3JtYXQuXG4gICAgICovXG4gICAgZ2VvanNvbigpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQnXSA9ICdhcHBsaWNhdGlvbi9nZW8ranNvbic7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYGRhdGFgIGFzIHRoZSBFWFBMQUlOIHBsYW4gZm9yIHRoZSBxdWVyeS5cbiAgICAgKlxuICAgICAqIFlvdSBuZWVkIHRvIGVuYWJsZSB0aGVcbiAgICAgKiBbZGJfcGxhbl9lbmFibGVkXShodHRwczovL3N1cGFiYXNlLmNvbS9kb2NzL2d1aWRlcy9kYXRhYmFzZS9kZWJ1Z2dpbmctcGVyZm9ybWFuY2UjZW5hYmxpbmctZXhwbGFpbilcbiAgICAgKiBzZXR0aW5nIGJlZm9yZSB1c2luZyB0aGlzIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYW5hbHl6ZSAtIElmIGB0cnVlYCwgdGhlIHF1ZXJ5IHdpbGwgYmUgZXhlY3V0ZWQgYW5kIHRoZVxuICAgICAqIGFjdHVhbCBydW4gdGltZSB3aWxsIGJlIHJldHVybmVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy52ZXJib3NlIC0gSWYgYHRydWVgLCB0aGUgcXVlcnkgaWRlbnRpZmllciB3aWxsIGJlIHJldHVybmVkXG4gICAgICogYW5kIGBkYXRhYCB3aWxsIGluY2x1ZGUgdGhlIG91dHB1dCBjb2x1bW5zIG9mIHRoZSBxdWVyeVxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuc2V0dGluZ3MgLSBJZiBgdHJ1ZWAsIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gY29uZmlndXJhdGlvblxuICAgICAqIHBhcmFtZXRlcnMgdGhhdCBhZmZlY3QgcXVlcnkgcGxhbm5pbmdcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmJ1ZmZlcnMgLSBJZiBgdHJ1ZWAsIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gYnVmZmVyIHVzYWdlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy53YWwgLSBJZiBgdHJ1ZWAsIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gV0FMIHJlY29yZCBnZW5lcmF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5mb3JtYXQgLSBUaGUgZm9ybWF0IG9mIHRoZSBvdXRwdXQsIGNhbiBiZSBgXCJ0ZXh0XCJgIChkZWZhdWx0KVxuICAgICAqIG9yIGBcImpzb25cImBcbiAgICAgKi9cbiAgICBleHBsYWluKHsgYW5hbHl6ZSA9IGZhbHNlLCB2ZXJib3NlID0gZmFsc2UsIHNldHRpbmdzID0gZmFsc2UsIGJ1ZmZlcnMgPSBmYWxzZSwgd2FsID0gZmFsc2UsIGZvcm1hdCA9ICd0ZXh0JywgfSA9IHt9KSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IFtcbiAgICAgICAgICAgIGFuYWx5emUgPyAnYW5hbHl6ZScgOiBudWxsLFxuICAgICAgICAgICAgdmVyYm9zZSA/ICd2ZXJib3NlJyA6IG51bGwsXG4gICAgICAgICAgICBzZXR0aW5ncyA/ICdzZXR0aW5ncycgOiBudWxsLFxuICAgICAgICAgICAgYnVmZmVycyA/ICdidWZmZXJzJyA6IG51bGwsXG4gICAgICAgICAgICB3YWwgPyAnd2FsJyA6IG51bGwsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgIC5qb2luKCd8Jyk7XG4gICAgICAgIC8vIEFuIEFjY2VwdCBoZWFkZXIgY2FuIGNhcnJ5IG11bHRpcGxlIG1lZGlhIHR5cGVzIGJ1dCBwb3N0Z3Jlc3QtanMgYWx3YXlzIHNlbmRzIG9uZVxuICAgICAgICBjb25zdCBmb3JNZWRpYXR5cGUgPSAoX2EgPSB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnYXBwbGljYXRpb24vanNvbic7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snQWNjZXB0J10gPSBgYXBwbGljYXRpb24vdm5kLnBncnN0LnBsYW4rJHtmb3JtYXR9OyBmb3I9XCIke2Zvck1lZGlhdHlwZX1cIjsgb3B0aW9ucz0ke29wdGlvbnN9O2A7XG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJylcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUm9sbGJhY2sgdGhlIHF1ZXJ5LlxuICAgICAqXG4gICAgICogYGRhdGFgIHdpbGwgc3RpbGwgYmUgcmV0dXJuZWQsIGJ1dCB0aGUgcXVlcnkgaXMgbm90IGNvbW1pdHRlZC5cbiAgICAgKi9cbiAgICByb2xsYmFjaygpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoKChfYSA9IHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKS50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydQcmVmZXInXSArPSAnLHR4PXJvbGxiYWNrJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gPSAndHg9cm9sbGJhY2snO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPdmVycmlkZSB0aGUgdHlwZSBvZiB0aGUgcmV0dXJuZWQgYGRhdGFgLlxuICAgICAqXG4gICAgICogQHR5cGVQYXJhbSBOZXdSZXN1bHQgLSBUaGUgbmV3IHJlc3VsdCB0eXBlIHRvIG92ZXJyaWRlIHdpdGhcbiAgICAgKi9cbiAgICByZXR1cm5zKCkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJQb3N0Z3Jlc3RCdWlsZGVyIiwiUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlciIsInNlbGVjdCIsImNvbHVtbnMiLCJxdW90ZWQiLCJjbGVhbmVkQ29sdW1ucyIsInNwbGl0IiwibWFwIiwiYyIsInRlc3QiLCJqb2luIiwidXJsIiwic2VhcmNoUGFyYW1zIiwic2V0IiwiaGVhZGVycyIsIm9yZGVyIiwiY29sdW1uIiwiYXNjZW5kaW5nIiwibnVsbHNGaXJzdCIsImZvcmVpZ25UYWJsZSIsInJlZmVyZW5jZWRUYWJsZSIsImtleSIsImV4aXN0aW5nT3JkZXIiLCJnZXQiLCJ1bmRlZmluZWQiLCJsaW1pdCIsImNvdW50IiwicmFuZ2UiLCJmcm9tIiwidG8iLCJrZXlPZmZzZXQiLCJrZXlMaW1pdCIsImFib3J0U2lnbmFsIiwic2lnbmFsIiwic2luZ2xlIiwibWF5YmVTaW5nbGUiLCJtZXRob2QiLCJpc01heWJlU2luZ2xlIiwiY3N2IiwiZ2VvanNvbiIsImV4cGxhaW4iLCJhbmFseXplIiwidmVyYm9zZSIsInNldHRpbmdzIiwiYnVmZmVycyIsIndhbCIsImZvcm1hdCIsIl9hIiwib3B0aW9ucyIsImZpbHRlciIsIkJvb2xlYW4iLCJmb3JNZWRpYXR5cGUiLCJyb2xsYmFjayIsInRyaW0iLCJsZW5ndGgiLCJyZXR1cm5zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/constants.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/constants.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/version.js\");\n\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `postgrest-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n}; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW9DO0FBQzdCLE1BQU1DLGtCQUFrQjtJQUFFLGlCQUFpQixDQUFDLGFBQWEsRUFBRUQsNkNBQU9BLENBQUMsQ0FBQztBQUFDLEVBQUUsQ0FDOUUscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvbW9kdWxlL2NvbnN0YW50cy5qcz8wNmY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24nO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVBREVSUyA9IHsgJ1gtQ2xpZW50LUluZm8nOiBgcG9zdGdyZXN0LWpzLyR7dmVyc2lvbn1gIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iLCJERUZBVUxUX0hFQURFUlMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/constants.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/index.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PostgrestBuilder: () => (/* reexport safe */ _PostgrestBuilder__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ PostgrestClient: () => (/* reexport safe */ _PostgrestClient__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ PostgrestFilterBuilder: () => (/* reexport safe */ _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ PostgrestQueryBuilder: () => (/* reexport safe */ _PostgrestQueryBuilder__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ PostgrestTransformBuilder: () => (/* reexport safe */ _PostgrestTransformBuilder__WEBPACK_IMPORTED_MODULE_3__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _PostgrestClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestClient */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestClient.js\");\n/* harmony import */ var _PostgrestQueryBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PostgrestQueryBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js\");\n/* harmony import */ var _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PostgrestFilterBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js\");\n/* harmony import */ var _PostgrestTransformBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PostgrestTransformBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js\");\n/* harmony import */ var _PostgrestBuilder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PostgrestBuilder */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js\");\n\n\n\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUErRDtBQUNZO0FBQ0U7QUFDTTtBQUNsQixDQUNqRSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvaW5kZXguanM/NjY0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIFBvc3RncmVzdENsaWVudCB9IGZyb20gJy4vUG9zdGdyZXN0Q2xpZW50JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9zdGdyZXN0UXVlcnlCdWlsZGVyIH0gZnJvbSAnLi9Qb3N0Z3Jlc3RRdWVyeUJ1aWxkZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyIH0gZnJvbSAnLi9Qb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlciB9IGZyb20gJy4vUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvc3RncmVzdEJ1aWxkZXIgfSBmcm9tICcuL1Bvc3RncmVzdEJ1aWxkZXInO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJQb3N0Z3Jlc3RDbGllbnQiLCJQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIiLCJQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyIiwiUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlciIsIlBvc3RncmVzdEJ1aWxkZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/postgrest-js/dist/module/version.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/version.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\nconst version = \"1.9.2\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvdmVyc2lvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sTUFBTUEsVUFBVSxRQUFRLENBQy9CLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS92ZXJzaW9uLmpzP2JlMDAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHZlcnNpb24gPSAnMS45LjInO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmVyc2lvbi5qcy5tYXAiXSwibmFtZXMiOlsidmVyc2lvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/postgrest-js/dist/module/version.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_CHANNEL_STATES: () => (/* binding */ REALTIME_CHANNEL_STATES),\n/* harmony export */ REALTIME_LISTEN_TYPES: () => (/* binding */ REALTIME_LISTEN_TYPES),\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: () => (/* binding */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT),\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: () => (/* binding */ REALTIME_SUBSCRIBE_STATES),\n/* harmony export */ \"default\": () => (/* binding */ RealtimeChannel)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/constants */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_push__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/push */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js\");\n/* harmony import */ var _lib_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/timer */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\");\n/* harmony import */ var _RealtimePresence__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RealtimePresence */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\");\n/* harmony import */ var _lib_transformers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/transformers */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js\");\n\n\n\n\n\nvar REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;\n(function(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT) {\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"ALL\"] = \"*\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"INSERT\"] = \"INSERT\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"UPDATE\"] = \"UPDATE\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"DELETE\"] = \"DELETE\";\n})(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT || (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT = {}));\nvar REALTIME_LISTEN_TYPES;\n(function(REALTIME_LISTEN_TYPES) {\n REALTIME_LISTEN_TYPES[\"BROADCAST\"] = \"broadcast\";\n REALTIME_LISTEN_TYPES[\"PRESENCE\"] = \"presence\";\n /**\n * listen to Postgres changes.\n */ REALTIME_LISTEN_TYPES[\"POSTGRES_CHANGES\"] = \"postgres_changes\";\n})(REALTIME_LISTEN_TYPES || (REALTIME_LISTEN_TYPES = {}));\nvar REALTIME_SUBSCRIBE_STATES;\n(function(REALTIME_SUBSCRIBE_STATES) {\n REALTIME_SUBSCRIBE_STATES[\"SUBSCRIBED\"] = \"SUBSCRIBED\";\n REALTIME_SUBSCRIBE_STATES[\"TIMED_OUT\"] = \"TIMED_OUT\";\n REALTIME_SUBSCRIBE_STATES[\"CLOSED\"] = \"CLOSED\";\n REALTIME_SUBSCRIBE_STATES[\"CHANNEL_ERROR\"] = \"CHANNEL_ERROR\";\n})(REALTIME_SUBSCRIBE_STATES || (REALTIME_SUBSCRIBE_STATES = {}));\nconst REALTIME_CHANNEL_STATES = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES;\n/** A channel is the basic building block of Realtime\n * and narrows the scope of data flow to subscribed clients.\n * You can think of a channel as a chatroom where participants are able to see who's online\n * and send and receive messages.\n */ class RealtimeChannel {\n constructor(/** Topic name can be any string. */ topic, params = {\n config: {}\n }, socket){\n this.topic = topic;\n this.params = params;\n this.socket = socket;\n this.bindings = {};\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\n this.joinedOnce = false;\n this.pushBuffer = [];\n this.subTopic = topic.replace(/^realtime:/i, \"\");\n this.params.config = Object.assign({\n broadcast: {\n ack: false,\n self: false\n },\n presence: {\n key: \"\"\n }\n }, params.config);\n this.timeout = this.socket.timeout;\n this.joinPush = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.join, this.params, this.timeout);\n this.rejoinTimer = new _lib_timer__WEBPACK_IMPORTED_MODULE_2__[\"default\"](()=>this._rejoinUntilConnected(), this.socket.reconnectAfterMs);\n this.joinPush.receive(\"ok\", ()=>{\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joined;\n this.rejoinTimer.reset();\n this.pushBuffer.forEach((pushEvent)=>pushEvent.send());\n this.pushBuffer = [];\n });\n this._onClose(()=>{\n this.rejoinTimer.reset();\n this.socket.log(\"channel\", `close ${this.topic} ${this._joinRef()}`);\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\n this.socket._remove(this);\n });\n this._onError((reason)=>{\n if (this._isLeaving() || this._isClosed()) {\n return;\n }\n this.socket.log(\"channel\", `error ${this.topic}`, reason);\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.errored;\n this.rejoinTimer.scheduleTimeout();\n });\n this.joinPush.receive(\"timeout\", ()=>{\n if (!this._isJoining()) {\n return;\n }\n this.socket.log(\"channel\", `timeout ${this.topic}`, this.joinPush.timeout);\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.errored;\n this.rejoinTimer.scheduleTimeout();\n });\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.reply, {}, (payload, ref)=>{\n this._trigger(this._replyEventName(ref), payload);\n });\n this.presence = new _RealtimePresence__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this);\n this.broadcastEndpointURL = this._broadcastEndpointURL();\n }\n /** Subscribe registers your client with the server */ subscribe(callback, timeout = this.timeout) {\n var _a, _b;\n if (!this.socket.isConnected()) {\n this.socket.connect();\n }\n if (this.joinedOnce) {\n throw `tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance`;\n } else {\n const { config: { broadcast, presence } } = this.params;\n this._onError((e)=>callback && callback(\"CHANNEL_ERROR\", e));\n this._onClose(()=>callback && callback(\"CLOSED\"));\n const accessTokenPayload = {};\n const config = {\n broadcast,\n presence,\n postgres_changes: (_b = (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.map((r)=>r.filter)) !== null && _b !== void 0 ? _b : []\n };\n if (this.socket.accessToken) {\n accessTokenPayload.access_token = this.socket.accessToken;\n }\n this.updateJoinPayload(Object.assign({\n config\n }, accessTokenPayload));\n this.joinedOnce = true;\n this._rejoin(timeout);\n this.joinPush.receive(\"ok\", ({ postgres_changes: serverPostgresFilters })=>{\n var _a;\n this.socket.accessToken && this.socket.setAuth(this.socket.accessToken);\n if (serverPostgresFilters === undefined) {\n callback && callback(\"SUBSCRIBED\");\n return;\n } else {\n const clientPostgresBindings = this.bindings.postgres_changes;\n const bindingsLen = (_a = clientPostgresBindings === null || clientPostgresBindings === void 0 ? void 0 : clientPostgresBindings.length) !== null && _a !== void 0 ? _a : 0;\n const newPostgresBindings = [];\n for(let i = 0; i < bindingsLen; i++){\n const clientPostgresBinding = clientPostgresBindings[i];\n const { filter: { event, schema, table, filter } } = clientPostgresBinding;\n const serverPostgresFilter = serverPostgresFilters && serverPostgresFilters[i];\n if (serverPostgresFilter && serverPostgresFilter.event === event && serverPostgresFilter.schema === schema && serverPostgresFilter.table === table && serverPostgresFilter.filter === filter) {\n newPostgresBindings.push(Object.assign(Object.assign({}, clientPostgresBinding), {\n id: serverPostgresFilter.id\n }));\n } else {\n this.unsubscribe();\n callback && callback(\"CHANNEL_ERROR\", new Error(\"mismatch between server and client bindings for postgres changes\"));\n return;\n }\n }\n this.bindings.postgres_changes = newPostgresBindings;\n callback && callback(\"SUBSCRIBED\");\n return;\n }\n }).receive(\"error\", (error)=>{\n callback && callback(\"CHANNEL_ERROR\", new Error(JSON.stringify(Object.values(error).join(\", \") || \"error\")));\n return;\n }).receive(\"timeout\", ()=>{\n callback && callback(\"TIMED_OUT\");\n return;\n });\n }\n return this;\n }\n presenceState() {\n return this.presence.state;\n }\n async track(payload, opts = {}) {\n return await this.send({\n type: \"presence\",\n event: \"track\",\n payload\n }, opts.timeout || this.timeout);\n }\n async untrack(opts = {}) {\n return await this.send({\n type: \"presence\",\n event: \"untrack\"\n }, opts);\n }\n on(type, filter, callback) {\n return this._on(type, filter, callback);\n }\n /**\n * Sends a message into the channel.\n *\n * @param args Arguments to send to channel\n * @param args.type The type of event to send\n * @param args.event The name of the event being sent\n * @param args.payload Payload to be sent\n * @param opts Options to be used during the send process\n */ async send(args, opts = {}) {\n var _a, _b;\n if (!this._canPush() && args.type === \"broadcast\") {\n const { event, payload: endpoint_payload } = args;\n const options = {\n method: \"POST\",\n headers: {\n apikey: (_a = this.socket.apiKey) !== null && _a !== void 0 ? _a : \"\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n messages: [\n {\n topic: this.subTopic,\n event,\n payload: endpoint_payload\n }\n ]\n })\n };\n try {\n const response = await this._fetchWithTimeout(this.broadcastEndpointURL, options, (_b = opts.timeout) !== null && _b !== void 0 ? _b : this.timeout);\n if (response.ok) {\n return \"ok\";\n } else {\n return \"error\";\n }\n } catch (error) {\n if (error.name === \"AbortError\") {\n return \"timed out\";\n } else {\n return \"error\";\n }\n }\n } else {\n return new Promise((resolve)=>{\n var _a, _b, _c;\n const push = this._push(args.type, args, opts.timeout || this.timeout);\n if (args.type === \"broadcast\" && !((_c = (_b = (_a = this.params) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.broadcast) === null || _c === void 0 ? void 0 : _c.ack)) {\n resolve(\"ok\");\n }\n push.receive(\"ok\", ()=>resolve(\"ok\"));\n push.receive(\"timeout\", ()=>resolve(\"timed out\"));\n });\n }\n }\n updateJoinPayload(payload) {\n this.joinPush.updatePayload(payload);\n }\n /**\n * Leaves the channel.\n *\n * Unsubscribes from server events, and instructs channel to terminate on server.\n * Triggers onClose() hooks.\n *\n * To receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\n * channel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n */ unsubscribe(timeout = this.timeout) {\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.leaving;\n const onClose = ()=>{\n this.socket.log(\"channel\", `leave ${this.topic}`);\n this._trigger(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.close, \"leave\", this._joinRef());\n };\n this.rejoinTimer.reset();\n // Destroy joinPush to avoid connection timeouts during unscription phase\n this.joinPush.destroy();\n return new Promise((resolve)=>{\n const leavePush = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.leave, {}, timeout);\n leavePush.receive(\"ok\", ()=>{\n onClose();\n resolve(\"ok\");\n }).receive(\"timeout\", ()=>{\n onClose();\n resolve(\"timed out\");\n }).receive(\"error\", ()=>{\n resolve(\"error\");\n });\n leavePush.send();\n if (!this._canPush()) {\n leavePush.trigger(\"ok\", {});\n }\n });\n }\n /** @internal */ _broadcastEndpointURL() {\n let url = this.socket.endPoint;\n url = url.replace(/^ws/i, \"http\");\n url = url.replace(/(\\/socket\\/websocket|\\/socket|\\/websocket)\\/?$/i, \"\");\n return url.replace(/\\/+$/, \"\") + \"/api/broadcast\";\n }\n async _fetchWithTimeout(url, options, timeout) {\n const controller = new AbortController();\n const id = setTimeout(()=>controller.abort(), timeout);\n const response = await this.socket.fetch(url, Object.assign(Object.assign({}, options), {\n signal: controller.signal\n }));\n clearTimeout(id);\n return response;\n }\n /** @internal */ _push(event, payload, timeout = this.timeout) {\n if (!this.joinedOnce) {\n throw `tried to push '${event}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;\n }\n let pushEvent = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, event, payload, timeout);\n if (this._canPush()) {\n pushEvent.send();\n } else {\n pushEvent.startTimeout();\n this.pushBuffer.push(pushEvent);\n }\n return pushEvent;\n }\n /**\n * Overridable message hook\n *\n * Receives all events for specialized message handling before dispatching to the channel callbacks.\n * Must return the payload, modified or unmodified.\n *\n * @internal\n */ _onMessage(_event, payload, _ref) {\n return payload;\n }\n /** @internal */ _isMember(topic) {\n return this.topic === topic;\n }\n /** @internal */ _joinRef() {\n return this.joinPush.ref;\n }\n /** @internal */ _trigger(type, payload, ref) {\n var _a, _b;\n const typeLower = type.toLocaleLowerCase();\n const { close, error, leave, join } = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS;\n const events = [\n close,\n error,\n leave,\n join\n ];\n if (ref && events.indexOf(typeLower) >= 0 && ref !== this._joinRef()) {\n return;\n }\n let handledPayload = this._onMessage(typeLower, payload, ref);\n if (payload && !handledPayload) {\n throw \"channel onMessage callbacks must return the payload, modified or unmodified\";\n }\n if ([\n \"insert\",\n \"update\",\n \"delete\"\n ].includes(typeLower)) {\n (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.filter((bind)=>{\n var _a, _b, _c;\n return ((_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event) === \"*\" || ((_c = (_b = bind.filter) === null || _b === void 0 ? void 0 : _b.event) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase()) === typeLower;\n }).map((bind)=>bind.callback(handledPayload, ref));\n } else {\n (_b = this.bindings[typeLower]) === null || _b === void 0 ? void 0 : _b.filter((bind)=>{\n var _a, _b, _c, _d, _e, _f;\n if ([\n \"broadcast\",\n \"presence\",\n \"postgres_changes\"\n ].includes(typeLower)) {\n if (\"id\" in bind) {\n const bindId = bind.id;\n const bindEvent = (_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event;\n return bindId && ((_b = payload.ids) === null || _b === void 0 ? void 0 : _b.includes(bindId)) && (bindEvent === \"*\" || (bindEvent === null || bindEvent === void 0 ? void 0 : bindEvent.toLocaleLowerCase()) === ((_c = payload.data) === null || _c === void 0 ? void 0 : _c.type.toLocaleLowerCase()));\n } else {\n const bindEvent = (_e = (_d = bind === null || bind === void 0 ? void 0 : bind.filter) === null || _d === void 0 ? void 0 : _d.event) === null || _e === void 0 ? void 0 : _e.toLocaleLowerCase();\n return bindEvent === \"*\" || bindEvent === ((_f = payload === null || payload === void 0 ? void 0 : payload.event) === null || _f === void 0 ? void 0 : _f.toLocaleLowerCase());\n }\n } else {\n return bind.type.toLocaleLowerCase() === typeLower;\n }\n }).map((bind)=>{\n if (typeof handledPayload === \"object\" && \"ids\" in handledPayload) {\n const postgresChanges = handledPayload.data;\n const { schema, table, commit_timestamp, type, errors } = postgresChanges;\n const enrichedPayload = {\n schema: schema,\n table: table,\n commit_timestamp: commit_timestamp,\n eventType: type,\n new: {},\n old: {},\n errors: errors\n };\n handledPayload = Object.assign(Object.assign({}, enrichedPayload), this._getPayloadRecords(postgresChanges));\n }\n bind.callback(handledPayload, ref);\n });\n }\n }\n /** @internal */ _isClosed() {\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\n }\n /** @internal */ _isJoined() {\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joined;\n }\n /** @internal */ _isJoining() {\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joining;\n }\n /** @internal */ _isLeaving() {\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.leaving;\n }\n /** @internal */ _replyEventName(ref) {\n return `chan_reply_${ref}`;\n }\n /** @internal */ _on(type, filter, callback) {\n const typeLower = type.toLocaleLowerCase();\n const binding = {\n type: typeLower,\n filter: filter,\n callback: callback\n };\n if (this.bindings[typeLower]) {\n this.bindings[typeLower].push(binding);\n } else {\n this.bindings[typeLower] = [\n binding\n ];\n }\n return this;\n }\n /** @internal */ _off(type, filter) {\n const typeLower = type.toLocaleLowerCase();\n this.bindings[typeLower] = this.bindings[typeLower].filter((bind)=>{\n var _a;\n return !(((_a = bind.type) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === typeLower && RealtimeChannel.isEqual(bind.filter, filter));\n });\n return this;\n }\n /** @internal */ static isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n }\n for(const k in obj1){\n if (obj1[k] !== obj2[k]) {\n return false;\n }\n }\n return true;\n }\n /** @internal */ _rejoinUntilConnected() {\n this.rejoinTimer.scheduleTimeout();\n if (this.socket.isConnected()) {\n this._rejoin();\n }\n }\n /**\n * Registers a callback that will be executed when the channel closes.\n *\n * @internal\n */ _onClose(callback) {\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.close, {}, callback);\n }\n /**\n * Registers a callback that will be executed when the channel encounteres an error.\n *\n * @internal\n */ _onError(callback) {\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.error, {}, (reason)=>callback(reason));\n }\n /**\n * Returns `true` if the socket is connected and the channel has been joined.\n *\n * @internal\n */ _canPush() {\n return this.socket.isConnected() && this._isJoined();\n }\n /** @internal */ _rejoin(timeout = this.timeout) {\n if (this._isLeaving()) {\n return;\n }\n this.socket._leaveOpenTopic(this.topic);\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joining;\n this.joinPush.resend(timeout);\n }\n /** @internal */ _getPayloadRecords(payload) {\n const records = {\n new: {},\n old: {}\n };\n if (payload.type === \"INSERT\" || payload.type === \"UPDATE\") {\n records.new = _lib_transformers__WEBPACK_IMPORTED_MODULE_4__.convertChangeData(payload.columns, payload.record);\n }\n if (payload.type === \"UPDATE\" || payload.type === \"DELETE\") {\n records.old = _lib_transformers__WEBPACK_IMPORTED_MODULE_4__.convertChangeData(payload.columns, payload.old_record);\n }\n return records;\n }\n} //# sourceMappingURL=RealtimeChannel.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9SZWFsdGltZUNoYW5uZWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFpRTtBQUNuQztBQUNFO0FBQ2tCO0FBQ0M7QUFDNUMsSUFBSU0sdUNBQXVDO0FBQ2pELFVBQVVBLHNDQUFzQztJQUM3Q0Esc0NBQXNDLENBQUMsTUFBTSxHQUFHO0lBQ2hEQSxzQ0FBc0MsQ0FBQyxTQUFTLEdBQUc7SUFDbkRBLHNDQUFzQyxDQUFDLFNBQVMsR0FBRztJQUNuREEsc0NBQXNDLENBQUMsU0FBUyxHQUFHO0FBQ3ZELEdBQUdBLDBDQUEyQ0EsQ0FBQUEseUNBQXlDLENBQUM7QUFDakYsSUFBSUMsc0JBQXNCO0FBQ2hDLFVBQVVBLHFCQUFxQjtJQUM1QkEscUJBQXFCLENBQUMsWUFBWSxHQUFHO0lBQ3JDQSxxQkFBcUIsQ0FBQyxXQUFXLEdBQUc7SUFDcEM7O0tBRUMsR0FDREEscUJBQXFCLENBQUMsbUJBQW1CLEdBQUc7QUFDaEQsR0FBR0EseUJBQTBCQSxDQUFBQSx3QkFBd0IsQ0FBQztBQUMvQyxJQUFJQywwQkFBMEI7QUFDcEMsVUFBVUEseUJBQXlCO0lBQ2hDQSx5QkFBeUIsQ0FBQyxhQUFhLEdBQUc7SUFDMUNBLHlCQUF5QixDQUFDLFlBQVksR0FBRztJQUN6Q0EseUJBQXlCLENBQUMsU0FBUyxHQUFHO0lBQ3RDQSx5QkFBeUIsQ0FBQyxnQkFBZ0IsR0FBRztBQUNqRCxHQUFHQSw2QkFBOEJBLENBQUFBLDRCQUE0QixDQUFDO0FBQ3ZELE1BQU1DLDBCQUEwQlIsMERBQWNBLENBQUM7QUFDdEQ7Ozs7Q0FJQyxHQUNjLE1BQU1TO0lBQ2pCQyxZQUNBLGtDQUFrQyxHQUNsQ0MsS0FBSyxFQUFFQyxTQUFTO1FBQUVDLFFBQVEsQ0FBQztJQUFFLENBQUMsRUFBRUMsTUFBTSxDQUFFO1FBQ3BDLElBQUksQ0FBQ0gsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FB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QUcsR0FBRzlKLGdFQUE4QixDQUFDa0QsUUFBUTRILE9BQU8sRUFBRTVILFFBQVE2SCxNQUFNO1FBQ2hGO1FBQ0EsSUFBSTdILFFBQVE4QyxJQUFJLEtBQUssWUFBWTlDLFFBQVE4QyxJQUFJLEtBQUssVUFBVTtZQUN4RDRFLFFBQVFiLEdBQUcsR0FBRy9KLGdFQUE4QixDQUFDa0QsUUFBUTRILE9BQU8sRUFBRTVILFFBQVE4SCxVQUFVO1FBQ3BGO1FBQ0EsT0FBT0o7SUFDWDtBQUNKLEVBQ0EsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvUmVhbHRpbWVDaGFubmVsLmpzP2VjNGMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0hBTk5FTF9FVkVOVFMsIENIQU5ORUxfU1RBVEVTIH0gZnJvbSAnLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCBQdXNoIGZyb20gJy4vbGliL3B1c2gnO1xuaW1wb3J0IFRpbWVyIGZyb20gJy4vbGliL3RpbWVyJztcbmltcG9ydCBSZWFsdGltZVByZXNlbmNlIGZyb20gJy4vUmVhbHRpbWVQcmVzZW5jZSc7XG5pbXBvcnQgKiBhcyBUcmFuc2Zvcm1lcnMgZnJvbSAnLi9saWIvdHJhbnNmb3JtZXJzJztcbmV4cG9ydCB2YXIgUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlQ7XG4oZnVuY3Rpb24gKFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UKSB7XG4gICAgUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlRbXCJBTExcIl0gPSBcIipcIjtcbiAgICBSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVFtcIklOU0VSVFwiXSA9IFwiSU5TRVJUXCI7XG4gICAgUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlRbXCJVUERBVEVcIl0gPSBcIlVQREFURVwiO1xuICAgIFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UW1wiREVMRVRFXCJdID0gXCJERUxFVEVcIjtcbn0pKFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UIHx8IChSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCA9IHt9KSk7XG5leHBvcnQgdmFyIFJFQUxUSU1FX0xJU1RFTl9UWVBFUztcbihmdW5jdGlvbiAoUkVBTFRJTUVfTElTVEVOX1RZUEVTKSB7XG4gICAgUkVBTFRJTUVfTElTVEVOX1RZUEVTW1wiQlJPQURDQVNUXCJdID0gXCJicm9hZGNhc3RcIjtcbiAgICBSRUFMVElNRV9MSVNURU5fVFlQRVNbXCJQUkVTRU5DRVwiXSA9IFwicHJlc2VuY2VcIjtcbiAgICAvKipcbiAgICAgKiBsaXN0ZW4gdG8gUG9zdGdyZXMgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBSRUFMVElNRV9MSVNURU5fVFlQRVNbXCJQT1NUR1JFU19DSEFOR0VTXCJdID0gXCJwb3N0Z3Jlc19jaGFuZ2VzXCI7XG59KShSRUFMVElNRV9MSVNURU5fVFlQRVMgfHwgKFJFQUxUSU1FX0xJU1RFTl9UWVBFUyA9IHt9KSk7XG5leHBvcnQgdmFyIFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVM7XG4oZnVuY3Rpb24gKFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMpIHtcbiAgICBSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTW1wiU1VCU0NSSUJFRFwiXSA9IFwiU1VCU0NSSUJFRFwiO1xuICAgIFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVNbXCJUSU1FRF9PVVRcIl0gPSBcIlRJTUVEX09VVFwiO1xuICAgIFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVNbXCJDTE9TRURcIl0gPSBcIkNMT1NFRFwiO1xuICAgIFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVNbXCJDSEFOTkVMX0VSUk9SXCJdID0gXCJDSEFOTkVMX0VSUk9SXCI7XG59KShSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTIHx8IChSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTID0ge30pKTtcbmV4cG9ydCBjb25zdCBSRUFMVElNRV9DSEFOTkVMX1NUQVRFUyA9IENIQU5ORUxfU1RBVEVTO1xuLyoqIEEgY2hhbm5lbCBpcyB0aGUgYmFzaWMgYnVpbGRpbmcgYmxvY2sgb2YgUmVhbHRpbWVcbiAqIGFuZCBuYXJyb3dzIHRoZSBzY29wZSBvZiBkYXRhIGZsb3cgdG8gc3Vic2NyaWJlZCBjbGllbnRzLlxuICogWW91IGNhbiB0aGluayBvZiBhIGNoYW5uZWwgYXMgYSBjaGF0cm9vbSB3aGVyZSBwYXJ0aWNpcGFudHMgYXJlIGFibGUgdG8gc2VlIHdobydzIG9ubGluZVxuICogYW5kIHNlbmQgYW5kIHJlY2VpdmUgbWVzc2FnZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlYWx0aW1lQ2hhbm5lbCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgLyoqIFRvcGljIG5hbWUgY2FuIGJlIGFueSBzdHJpbmcuICovXG4gICAgdG9waWMsIHBhcmFtcyA9IHsgY29uZmlnOiB7fSB9LCBzb2NrZXQpIHtcbiAgICAgICAgdGhpcy50b3BpYyA9IHRvcGljO1xuICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgdGhpcy5zb2NrZXQgPSBzb2NrZXQ7XG4gICAgICAgIHRoaXMuYmluZGluZ3MgPSB7fTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmNsb3NlZDtcbiAgICAgICAgdGhpcy5qb2luZWRPbmNlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHVzaEJ1ZmZlciA9IFtdO1xuICAgICAgICB0aGlzLnN1YlRvcGljID0gdG9waWMucmVwbGFjZSgvXnJlYWx0aW1lOi9pLCAnJyk7XG4gICAgICAgIHRoaXMucGFyYW1zLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgYnJvYWRjYXN0OiB7IGFjazogZmFsc2UsIHNlbGY6IGZhbHNlIH0sXG4gICAgICAgICAgICBwcmVzZW5jZTogeyBrZXk6ICcnIH0sXG4gICAgICAgIH0sIHBhcmFtcy5jb25maWcpO1xuICAgICAgICB0aGlzLnRpbWVvdXQgPSB0aGlzLnNvY2tldC50aW1lb3V0O1xuICAgICAgICB0aGlzLmpvaW5QdXNoID0gbmV3IFB1c2godGhpcywgQ0hBTk5FTF9FVkVOVFMuam9pbiwgdGhpcy5wYXJhbXMsIHRoaXMudGltZW91dCk7XG4gICAgICAgIHRoaXMucmVqb2luVGltZXIgPSBuZXcgVGltZXIoKCkgPT4gdGhpcy5fcmVqb2luVW50aWxDb25uZWN0ZWQoKSwgdGhpcy5zb2NrZXQucmVjb25uZWN0QWZ0ZXJNcyk7XG4gICAgICAgIHRoaXMuam9pblB1c2gucmVjZWl2ZSgnb2snLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuam9pbmVkO1xuICAgICAgICAgICAgdGhpcy5yZWpvaW5UaW1lci5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy5wdXNoQnVmZmVyLmZvckVhY2goKHB1c2hFdmVudCkgPT4gcHVzaEV2ZW50LnNlbmQoKSk7XG4gICAgICAgICAgICB0aGlzLnB1c2hCdWZmZXIgPSBbXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX29uQ2xvc2UoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWpvaW5UaW1lci5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy5zb2NrZXQubG9nKCdjaGFubmVsJywgYGNsb3NlICR7dGhpcy50b3BpY30gJHt0aGlzLl9qb2luUmVmKCl9YCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuY2xvc2VkO1xuICAgICAgICAgICAgdGhpcy5zb2NrZXQuX3JlbW92ZSh0aGlzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX29uRXJyb3IoKHJlYXNvbikgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzTGVhdmluZygpIHx8IHRoaXMuX2lzQ2xvc2VkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNvY2tldC5sb2coJ2NoYW5uZWwnLCBgZXJyb3IgJHt0aGlzLnRvcGljfWAsIHJlYXNvbik7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZDtcbiAgICAgICAgICAgIHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmpvaW5QdXNoLnJlY2VpdmUoJ3RpbWVvdXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzSm9pbmluZygpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zb2NrZXQubG9nKCdjaGFubmVsJywgYHRpbWVvdXQgJHt0aGlzLnRvcGljfWAsIHRoaXMuam9pblB1c2gudGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZDtcbiAgICAgICAgICAgIHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9vbihDSEFOTkVMX0VWRU5UUy5yZXBseSwge30sIChwYXlsb2FkLCByZWYpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIodGhpcy5fcmVwbHlFdmVudE5hbWUocmVmKSwgcGF5bG9hZCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByZXNlbmNlID0gbmV3IFJlYWx0aW1lUHJlc2VuY2UodGhpcyk7XG4gICAgICAgIHRoaXMuYnJvYWRjYXN0RW5kcG9pbnRVUkwgPSB0aGlzLl9icm9hZGNhc3RFbmRwb2ludFVSTCgpO1xuICAgIH1cbiAgICAvKiogU3Vic2NyaWJlIHJlZ2lzdGVycyB5b3VyIGNsaWVudCB3aXRoIHRoZSBzZXJ2ZXIgKi9cbiAgICBzdWJzY3JpYmUoY2FsbGJhY2ssIHRpbWVvdXQgPSB0aGlzLnRpbWVvdXQpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCF0aGlzLnNvY2tldC5pc0Nvbm5lY3RlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNvY2tldC5jb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuam9pbmVkT25jZSkge1xuICAgICAgICAgICAgdGhyb3cgYHRyaWVkIHRvIHN1YnNjcmliZSBtdWx0aXBsZSB0aW1lcy4gJ3N1YnNjcmliZScgY2FuIG9ubHkgYmUgY2FsbGVkIGEgc2luZ2xlIHRpbWUgcGVyIGNoYW5uZWwgaW5zdGFuY2VgO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgeyBjb25maWc6IHsgYnJvYWRjYXN0LCBwcmVzZW5jZSB9LCB9ID0gdGhpcy5wYXJhbXM7XG4gICAgICAgICAgICB0aGlzLl9vbkVycm9yKChlKSA9PiBjYWxsYmFjayAmJiBjYWxsYmFjaygnQ0hBTk5FTF9FUlJPUicsIGUpKTtcbiAgICAgICAgICAgIHRoaXMuX29uQ2xvc2UoKCkgPT4gY2FsbGJhY2sgJiYgY2FsbGJhY2soJ0NMT1NFRCcpKTtcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuUGF5bG9hZCA9IHt9O1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgICAgIGJyb2FkY2FzdCxcbiAgICAgICAgICAgICAgICBwcmVzZW5jZSxcbiAgICAgICAgICAgICAgICBwb3N0Z3Jlc19jaGFuZ2VzOiAoX2IgPSAoX2EgPSB0aGlzLmJpbmRpbmdzLnBvc3RncmVzX2NoYW5nZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tYXAoKHIpID0+IHIuZmlsdGVyKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogW10sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuc29ja2V0LmFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW5QYXlsb2FkLmFjY2Vzc190b2tlbiA9IHRoaXMuc29ja2V0LmFjY2Vzc1Rva2VuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVKb2luUGF5bG9hZChPYmplY3QuYXNzaWduKHsgY29uZmlnIH0sIGFjY2Vzc1Rva2VuUGF5bG9hZCkpO1xuICAgICAgICAgICAgdGhpcy5qb2luZWRPbmNlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3Jlam9pbih0aW1lb3V0KTtcbiAgICAgICAgICAgIHRoaXMuam9pblB1c2hcbiAgICAgICAgICAgICAgICAucmVjZWl2ZSgnb2snLCAoeyBwb3N0Z3Jlc19jaGFuZ2VzOiBzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlcnMsIH0pID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgdGhpcy5zb2NrZXQuYWNjZXNzVG9rZW4gJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zb2NrZXQuc2V0QXV0aCh0aGlzLnNvY2tldC5hY2Nlc3NUb2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHNlcnZlclBvc3RncmVzRmlsdGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCdTVUJTQ1JJQkVEJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFBvc3RncmVzQmluZGluZ3MgPSB0aGlzLmJpbmRpbmdzLnBvc3RncmVzX2NoYW5nZXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpbmRpbmdzTGVuID0gKF9hID0gY2xpZW50UG9zdGdyZXNCaW5kaW5ncyA9PT0gbnVsbCB8fCBjbGllbnRQb3N0Z3Jlc0JpbmRpbmdzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjbGllbnRQb3N0Z3Jlc0JpbmRpbmdzLmxlbmd0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UG9zdGdyZXNCaW5kaW5ncyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbmRpbmdzTGVuOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFBvc3RncmVzQmluZGluZyA9IGNsaWVudFBvc3RncmVzQmluZGluZ3NbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlcjogeyBldmVudCwgc2NoZW1hLCB0YWJsZSwgZmlsdGVyIH0sIH0gPSBjbGllbnRQb3N0Z3Jlc0JpbmRpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlciA9IHNlcnZlclBvc3RncmVzRmlsdGVycyAmJiBzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlcnNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VydmVyUG9zdGdyZXNGaWx0ZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlci5ldmVudCA9PT0gZXZlbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlci5zY2hlbWEgPT09IHNjaGVtYSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclBvc3RncmVzRmlsdGVyLnRhYmxlID09PSB0YWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclBvc3RncmVzRmlsdGVyLmZpbHRlciA9PT0gZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UG9zdGdyZXNCaW5kaW5ncy5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY2xpZW50UG9zdGdyZXNCaW5kaW5nKSwgeyBpZDogc2VydmVyUG9zdGdyZXNGaWx0ZXIuaWQgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCdDSEFOTkVMX0VSUk9SJywgbmV3IEVycm9yKCdtaXNtYXRjaCBiZXR3ZWVuIHNlcnZlciBhbmQgY2xpZW50IGJpbmRpbmdzIGZvciBwb3N0Z3JlcyBjaGFuZ2VzJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJpbmRpbmdzLnBvc3RncmVzX2NoYW5nZXMgPSBuZXdQb3N0Z3Jlc0JpbmRpbmdzO1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygnU1VCU0NSSUJFRCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVjZWl2ZSgnZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayAmJlxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygnQ0hBTk5FTF9FUlJPUicsIG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeShPYmplY3QudmFsdWVzKGVycm9yKS5qb2luKCcsICcpIHx8ICdlcnJvcicpKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVjZWl2ZSgndGltZW91dCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygnVElNRURfT1VUJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHByZXNlbmNlU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXNlbmNlLnN0YXRlO1xuICAgIH1cbiAgICBhc3luYyB0cmFjayhwYXlsb2FkLCBvcHRzID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZCh7XG4gICAgICAgICAgICB0eXBlOiAncHJlc2VuY2UnLFxuICAgICAgICAgICAgZXZlbnQ6ICd0cmFjaycsXG4gICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICB9LCBvcHRzLnRpbWVvdXQgfHwgdGhpcy50aW1lb3V0KTtcbiAgICB9XG4gICAgYXN5bmMgdW50cmFjayhvcHRzID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZCh7XG4gICAgICAgICAgICB0eXBlOiAncHJlc2VuY2UnLFxuICAgICAgICAgICAgZXZlbnQ6ICd1bnRyYWNrJyxcbiAgICAgICAgfSwgb3B0cyk7XG4gICAgfVxuICAgIG9uKHR5cGUsIGZpbHRlciwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uKHR5cGUsIGZpbHRlciwgY2FsbGJhY2spO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIG1lc3NhZ2UgaW50byB0aGUgY2hhbm5lbC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcmdzIEFyZ3VtZW50cyB0byBzZW5kIHRvIGNoYW5uZWxcbiAgICAgKiBAcGFyYW0gYXJncy50eXBlIFRoZSB0eXBlIG9mIGV2ZW50IHRvIHNlbmRcbiAgICAgKiBAcGFyYW0gYXJncy5ldmVudCBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgYmVpbmcgc2VudFxuICAgICAqIEBwYXJhbSBhcmdzLnBheWxvYWQgUGF5bG9hZCB0byBiZSBzZW50XG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgc2VuZCBwcm9jZXNzXG4gICAgICovXG4gICAgYXN5bmMgc2VuZChhcmdzLCBvcHRzID0ge30pIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCF0aGlzLl9jYW5QdXNoKCkgJiYgYXJncy50eXBlID09PSAnYnJvYWRjYXN0Jykge1xuICAgICAgICAgICAgY29uc3QgeyBldmVudCwgcGF5bG9hZDogZW5kcG9pbnRfcGF5bG9hZCB9ID0gYXJncztcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBhcGlrZXk6IChfYSA9IHRoaXMuc29ja2V0LmFwaUtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycsXG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHRvcGljOiB0aGlzLnN1YlRvcGljLCBldmVudCwgcGF5bG9hZDogZW5kcG9pbnRfcGF5bG9hZCB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9mZXRjaFdpdGhUaW1lb3V0KHRoaXMuYnJvYWRjYXN0RW5kcG9pbnRVUkwsIG9wdGlvbnMsIChfYiA9IG9wdHMudGltZW91dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdGhpcy50aW1lb3V0KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdvayc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndGltZWQgb3V0JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICAgICAgICAgIGNvbnN0IHB1c2ggPSB0aGlzLl9wdXNoKGFyZ3MudHlwZSwgYXJncywgb3B0cy50aW1lb3V0IHx8IHRoaXMudGltZW91dCk7XG4gICAgICAgICAgICAgICAgaWYgKGFyZ3MudHlwZSA9PT0gJ2Jyb2FkY2FzdCcgJiYgISgoX2MgPSAoX2IgPSAoX2EgPSB0aGlzLnBhcmFtcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbmZpZykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmJyb2FkY2FzdCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmFjaykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgnb2snKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcHVzaC5yZWNlaXZlKCdvaycsICgpID0+IHJlc29sdmUoJ29rJykpO1xuICAgICAgICAgICAgICAgIHB1c2gucmVjZWl2ZSgndGltZW91dCcsICgpID0+IHJlc29sdmUoJ3RpbWVkIG91dCcpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVwZGF0ZUpvaW5QYXlsb2FkKHBheWxvYWQpIHtcbiAgICAgICAgdGhpcy5qb2luUHVzaC51cGRhdGVQYXlsb2FkKHBheWxvYWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBMZWF2ZXMgdGhlIGNoYW5uZWwuXG4gICAgICpcbiAgICAgKiBVbnN1YnNjcmliZXMgZnJvbSBzZXJ2ZXIgZXZlbnRzLCBhbmQgaW5zdHJ1Y3RzIGNoYW5uZWwgdG8gdGVybWluYXRlIG9uIHNlcnZlci5cbiAgICAgKiBUcmlnZ2VycyBvbkNsb3NlKCkgaG9va3MuXG4gICAgICpcbiAgICAgKiBUbyByZWNlaXZlIGxlYXZlIGFja25vd2xlZGdlbWVudHMsIHVzZSB0aGUgYSBgcmVjZWl2ZWAgaG9vayB0byBiaW5kIHRvIHRoZSBzZXJ2ZXIgYWNrLCBpZTpcbiAgICAgKiBjaGFubmVsLnVuc3Vic2NyaWJlKCkucmVjZWl2ZShcIm9rXCIsICgpID0+IGFsZXJ0KFwibGVmdCFcIikgKVxuICAgICAqL1xuICAgIHVuc3Vic2NyaWJlKHRpbWVvdXQgPSB0aGlzLnRpbWVvdXQpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmxlYXZpbmc7XG4gICAgICAgIGNvbnN0IG9uQ2xvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNvY2tldC5sb2coJ2NoYW5uZWwnLCBgbGVhdmUgJHt0aGlzLnRvcGljfWApO1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcihDSEFOTkVMX0VWRU5UUy5jbG9zZSwgJ2xlYXZlJywgdGhpcy5fam9pblJlZigpKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yZWpvaW5UaW1lci5yZXNldCgpO1xuICAgICAgICAvLyBEZXN0cm95IGpvaW5QdXNoIHRvIGF2b2lkIGNvbm5lY3Rpb24gdGltZW91dHMgZHVyaW5nIHVuc2NyaXB0aW9uIHBoYXNlXG4gICAgICAgIHRoaXMuam9pblB1c2guZGVzdHJveSgpO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxlYXZlUHVzaCA9IG5ldyBQdXNoKHRoaXMsIENIQU5ORUxfRVZFTlRTLmxlYXZlLCB7fSwgdGltZW91dCk7XG4gICAgICAgICAgICBsZWF2ZVB1c2hcbiAgICAgICAgICAgICAgICAucmVjZWl2ZSgnb2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoJ29rJyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZWNlaXZlKCd0aW1lb3V0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCd0aW1lZCBvdXQnKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlY2VpdmUoJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoJ2Vycm9yJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxlYXZlUHVzaC5zZW5kKCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2NhblB1c2goKSkge1xuICAgICAgICAgICAgICAgIGxlYXZlUHVzaC50cmlnZ2VyKCdvaycsIHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfYnJvYWRjYXN0RW5kcG9pbnRVUkwoKSB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLnNvY2tldC5lbmRQb2ludDtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoL153cy9pLCAnaHR0cCcpO1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgvKFxcL3NvY2tldFxcL3dlYnNvY2tldHxcXC9zb2NrZXR8XFwvd2Vic29ja2V0KVxcLz8kL2ksICcnKTtcbiAgICAgICAgcmV0dXJuIHVybC5yZXBsYWNlKC9cXC8rJC8sICcnKSArICcvYXBpL2Jyb2FkY2FzdCc7XG4gICAgfVxuICAgIGFzeW5jIF9mZXRjaFdpdGhUaW1lb3V0KHVybCwgb3B0aW9ucywgdGltZW91dCkge1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNvY2tldC5mZXRjaCh1cmwsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyksIHsgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCB9KSk7XG4gICAgICAgIGNsZWFyVGltZW91dChpZCk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9wdXNoKGV2ZW50LCBwYXlsb2FkLCB0aW1lb3V0ID0gdGhpcy50aW1lb3V0KSB7XG4gICAgICAgIGlmICghdGhpcy5qb2luZWRPbmNlKSB7XG4gICAgICAgICAgICB0aHJvdyBgdHJpZWQgdG8gcHVzaCAnJHtldmVudH0nIHRvICcke3RoaXMudG9waWN9JyBiZWZvcmUgam9pbmluZy4gVXNlIGNoYW5uZWwuc3Vic2NyaWJlKCkgYmVmb3JlIHB1c2hpbmcgZXZlbnRzYDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcHVzaEV2ZW50ID0gbmV3IFB1c2godGhpcywgZXZlbnQsIHBheWxvYWQsIHRpbWVvdXQpO1xuICAgICAgICBpZiAodGhpcy5fY2FuUHVzaCgpKSB7XG4gICAgICAgICAgICBwdXNoRXZlbnQuc2VuZCgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcHVzaEV2ZW50LnN0YXJ0VGltZW91dCgpO1xuICAgICAgICAgICAgdGhpcy5wdXNoQnVmZmVyLnB1c2gocHVzaEV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHVzaEV2ZW50O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPdmVycmlkYWJsZSBtZXNzYWdlIGhvb2tcbiAgICAgKlxuICAgICAqIFJlY2VpdmVzIGFsbCBldmVudHMgZm9yIHNwZWNpYWxpemVkIG1lc3NhZ2UgaGFuZGxpbmcgYmVmb3JlIGRpc3BhdGNoaW5nIHRvIHRoZSBjaGFubmVsIGNhbGxiYWNrcy5cbiAgICAgKiBNdXN0IHJldHVybiB0aGUgcGF5bG9hZCwgbW9kaWZpZWQgb3IgdW5tb2RpZmllZC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9vbk1lc3NhZ2UoX2V2ZW50LCBwYXlsb2FkLCBfcmVmKSB7XG4gICAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2lzTWVtYmVyKHRvcGljKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvcGljID09PSB0b3BpYztcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9qb2luUmVmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5qb2luUHVzaC5yZWY7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfdHJpZ2dlcih0eXBlLCBwYXlsb2FkLCByZWYpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgdHlwZUxvd2VyID0gdHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCB7IGNsb3NlLCBlcnJvciwgbGVhdmUsIGpvaW4gfSA9IENIQU5ORUxfRVZFTlRTO1xuICAgICAgICBjb25zdCBldmVudHMgPSBbY2xvc2UsIGVycm9yLCBsZWF2ZSwgam9pbl07XG4gICAgICAgIGlmIChyZWYgJiYgZXZlbnRzLmluZGV4T2YodHlwZUxvd2VyKSA+PSAwICYmIHJlZiAhPT0gdGhpcy5fam9pblJlZigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGhhbmRsZWRQYXlsb2FkID0gdGhpcy5fb25NZXNzYWdlKHR5cGVMb3dlciwgcGF5bG9hZCwgcmVmKTtcbiAgICAgICAgaWYgKHBheWxvYWQgJiYgIWhhbmRsZWRQYXlsb2FkKSB7XG4gICAgICAgICAgICB0aHJvdyAnY2hhbm5lbCBvbk1lc3NhZ2UgY2FsbGJhY2tzIG11c3QgcmV0dXJuIHRoZSBwYXlsb2FkLCBtb2RpZmllZCBvciB1bm1vZGlmaWVkJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoWydpbnNlcnQnLCAndXBkYXRlJywgJ2RlbGV0ZSddLmluY2x1ZGVzKHR5cGVMb3dlcikpIHtcbiAgICAgICAgICAgIChfYSA9IHRoaXMuYmluZGluZ3MucG9zdGdyZXNfY2hhbmdlcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZpbHRlcigoYmluZCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKChfYSA9IGJpbmQuZmlsdGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZXZlbnQpID09PSAnKicgfHxcbiAgICAgICAgICAgICAgICAgICAgKChfYyA9IChfYiA9IGJpbmQuZmlsdGVyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZXZlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50b0xvY2FsZUxvd2VyQ2FzZSgpKSA9PT0gdHlwZUxvd2VyKTtcbiAgICAgICAgICAgIH0pLm1hcCgoYmluZCkgPT4gYmluZC5jYWxsYmFjayhoYW5kbGVkUGF5bG9hZCwgcmVmKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAoX2IgPSB0aGlzLmJpbmRpbmdzW3R5cGVMb3dlcl0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5maWx0ZXIoKGJpbmQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZjtcbiAgICAgICAgICAgICAgICBpZiAoWydicm9hZGNhc3QnLCAncHJlc2VuY2UnLCAncG9zdGdyZXNfY2hhbmdlcyddLmluY2x1ZGVzKHR5cGVMb3dlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCdpZCcgaW4gYmluZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmluZElkID0gYmluZC5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpbmRFdmVudCA9IChfYSA9IGJpbmQuZmlsdGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGJpbmRJZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoX2IgPSBwYXlsb2FkLmlkcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmluY2x1ZGVzKGJpbmRJZCkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJpbmRFdmVudCA9PT0gJyonIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiaW5kRXZlbnQgPT09IG51bGwgfHwgYmluZEV2ZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBiaW5kRXZlbnQudG9Mb2NhbGVMb3dlckNhc2UoKSkgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKF9jID0gcGF5bG9hZC5kYXRhKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmluZEV2ZW50ID0gKF9lID0gKF9kID0gYmluZCA9PT0gbnVsbCB8fCBiaW5kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBiaW5kLmZpbHRlcikgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmV2ZW50KSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoYmluZEV2ZW50ID09PSAnKicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kRXZlbnQgPT09ICgoX2YgPSBwYXlsb2FkID09PSBudWxsIHx8IHBheWxvYWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBheWxvYWQuZXZlbnQpID09PSBudWxsIHx8IF9mID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZi50b0xvY2FsZUxvd2VyQ2FzZSgpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiaW5kLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gdHlwZUxvd2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLm1hcCgoYmluZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaGFuZGxlZFBheWxvYWQgPT09ICdvYmplY3QnICYmICdpZHMnIGluIGhhbmRsZWRQYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc3RncmVzQ2hhbmdlcyA9IGhhbmRsZWRQYXlsb2FkLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgc2NoZW1hLCB0YWJsZSwgY29tbWl0X3RpbWVzdGFtcCwgdHlwZSwgZXJyb3JzIH0gPSBwb3N0Z3Jlc0NoYW5nZXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVucmljaGVkUGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYTogc2NoZW1hLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGU6IHRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0X3RpbWVzdGFtcDogY29tbWl0X3RpbWVzdGFtcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldzoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBvbGQ6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzOiBlcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZWRQYXlsb2FkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBlbnJpY2hlZFBheWxvYWQpLCB0aGlzLl9nZXRQYXlsb2FkUmVjb3Jkcyhwb3N0Z3Jlc0NoYW5nZXMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYmluZC5jYWxsYmFjayhoYW5kbGVkUGF5bG9hZCwgcmVmKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfaXNDbG9zZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBDSEFOTkVMX1NUQVRFUy5jbG9zZWQ7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfaXNKb2luZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBDSEFOTkVMX1NUQVRFUy5qb2luZWQ7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfaXNKb2luaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gQ0hBTk5FTF9TVEFURVMuam9pbmluZztcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9pc0xlYXZpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBDSEFOTkVMX1NUQVRFUy5sZWF2aW5nO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX3JlcGx5RXZlbnROYW1lKHJlZikge1xuICAgICAgICByZXR1cm4gYGNoYW5fcmVwbHlfJHtyZWZ9YDtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9vbih0eXBlLCBmaWx0ZXIsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IHR5cGVMb3dlciA9IHR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgYmluZGluZyA9IHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGVMb3dlcixcbiAgICAgICAgICAgIGZpbHRlcjogZmlsdGVyLFxuICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5iaW5kaW5nc1t0eXBlTG93ZXJdKSB7XG4gICAgICAgICAgICB0aGlzLmJpbmRpbmdzW3R5cGVMb3dlcl0ucHVzaChiaW5kaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYmluZGluZ3NbdHlwZUxvd2VyXSA9IFtiaW5kaW5nXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9vZmYodHlwZSwgZmlsdGVyKSB7XG4gICAgICAgIGNvbnN0IHR5cGVMb3dlciA9IHR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgdGhpcy5iaW5kaW5nc1t0eXBlTG93ZXJdID0gdGhpcy5iaW5kaW5nc1t0eXBlTG93ZXJdLmZpbHRlcigoYmluZCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgcmV0dXJuICEoKChfYSA9IGJpbmQudHlwZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvTG9jYWxlTG93ZXJDYXNlKCkpID09PSB0eXBlTG93ZXIgJiZcbiAgICAgICAgICAgICAgICBSZWFsdGltZUNoYW5uZWwuaXNFcXVhbChiaW5kLmZpbHRlciwgZmlsdGVyKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHN0YXRpYyBpc0VxdWFsKG9iajEsIG9iajIpIHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKG9iajEpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMob2JqMikubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrIGluIG9iajEpIHtcbiAgICAgICAgICAgIGlmIChvYmoxW2tdICE9PSBvYmoyW2tdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX3Jlam9pblVudGlsQ29ubmVjdGVkKCkge1xuICAgICAgICB0aGlzLnJlam9pblRpbWVyLnNjaGVkdWxlVGltZW91dCgpO1xuICAgICAgICBpZiAodGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5fcmVqb2luKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIGNoYW5uZWwgY2xvc2VzLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgX29uQ2xvc2UoY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5fb24oQ0hBTk5FTF9FVkVOVFMuY2xvc2UsIHt9LCBjYWxsYmFjayk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZSBjaGFubmVsIGVuY291bnRlcmVzIGFuIGVycm9yLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgX29uRXJyb3IoY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5fb24oQ0hBTk5FTF9FVkVOVFMuZXJyb3IsIHt9LCAocmVhc29uKSA9PiBjYWxsYmFjayhyZWFzb24pKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHNvY2tldCBpcyBjb25uZWN0ZWQgYW5kIHRoZSBjaGFubmVsIGhhcyBiZWVuIGpvaW5lZC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9jYW5QdXNoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSAmJiB0aGlzLl9pc0pvaW5lZCgpO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX3Jlam9pbih0aW1lb3V0ID0gdGhpcy50aW1lb3V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9pc0xlYXZpbmcoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ja2V0Ll9sZWF2ZU9wZW5Ub3BpYyh0aGlzLnRvcGljKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmpvaW5pbmc7XG4gICAgICAgIHRoaXMuam9pblB1c2gucmVzZW5kKHRpbWVvdXQpO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2dldFBheWxvYWRSZWNvcmRzKHBheWxvYWQpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IHtcbiAgICAgICAgICAgIG5ldzoge30sXG4gICAgICAgICAgICBvbGQ6IHt9LFxuICAgICAgICB9O1xuICAgICAgICBpZiAocGF5bG9hZC50eXBlID09PSAnSU5TRVJUJyB8fCBwYXlsb2FkLnR5cGUgPT09ICdVUERBVEUnKSB7XG4gICAgICAgICAgICByZWNvcmRzLm5ldyA9IFRyYW5zZm9ybWVycy5jb252ZXJ0Q2hhbmdlRGF0YShwYXlsb2FkLmNvbHVtbnMsIHBheWxvYWQucmVjb3JkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF5bG9hZC50eXBlID09PSAnVVBEQVRFJyB8fCBwYXlsb2FkLnR5cGUgPT09ICdERUxFVEUnKSB7XG4gICAgICAgICAgICByZWNvcmRzLm9sZCA9IFRyYW5zZm9ybWVycy5jb252ZXJ0Q2hhbmdlRGF0YShwYXlsb2FkLmNvbHVtbnMsIHBheWxvYWQub2xkX3JlY29yZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlY29yZHM7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmVhbHRpbWVDaGFubmVsLmpzLm1hcCJdLCJuYW1lcyI6WyJDSEFOTkVMX0VWRU5UUyIsIkNIQU5ORUxfU1RBVEVTIiwiUHVzaCIsIlRpbWVyIiwiUmVhbHRpbWVQcmVzZW5jZSIsIlRyYW5zZm9ybWVycyIsIlJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UIiwiUkVBTFRJTUVfTElTVEVOX1RZUEVTIiwiUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFUyIsIlJFQUxUSU1FX0NIQU5ORUxfU1RBVEVTIiwiUmVhbHRpbWVDaGFubmVsIiwiY29uc3RydWN0b3IiLCJ0b3BpYyIsInBhcmFtcyIsImNvbmZpZyIsInNvY2tldCIsImJpbmRpbmdzIiwic3RhdGUiLCJjbG9zZWQiLCJqb2luZWRPbmNlIiwicHVzaEJ1ZmZlciIsInN1YlRvcGljIiwicmVwbGFjZSIsIk9iamVjdCIsImFzc2lnbiIsImJyb2FkY2FzdCIsImFjayIsInNlbGYiLCJwcmVzZW5jZSIsImtleSIsInRpbWVvdXQiLCJqb2luUHVzaCIsImpvaW4iLCJyZWpvaW5UaW1lciIsIl9yZWpvaW5VbnRpbENvbm5lY3RlZCIsInJlY29ubmVjdEFmdGVyTXMiLCJyZWNlaXZlIiwiam9pbmVkIiwicmVzZXQiLCJmb3JFYWNoIiwicHVzaEV2ZW50Iiwic2VuZCIsIl9vbkNsb3NlIiwibG9nIiwiX2pvaW5SZWYiLCJfcmVtb3ZlIiwiX29uRXJyb3IiLCJyZWFzb24iLCJfaXNMZWF2aW5nIiwiX2lzQ2xvc2VkIiwiZXJyb3JlZCIsInNjaGVkdWxlVGltZW91dCIsIl9pc0pvaW5pbmciLCJfb24iLCJyZXBseSIsInBheWxvYWQiLCJyZWYiLCJfdHJpZ2dlciIsIl9yZXBseUV2ZW50TmFtZSIsImJyb2FkY2FzdEVuZHBvaW50VVJMIiwiX2Jyb2FkY2FzdEVuZHBvaW50VVJMIiwic3Vic2NyaWJlIiwiY2FsbGJhY2siLCJfYSIsIl9iIiwiaXNDb25uZWN0ZWQiLCJjb25uZWN0IiwiZSIsImFjY2Vzc1Rva2VuUGF5bG9hZCIsInBvc3RncmVzX2NoYW5nZXMiLCJtYXAiLCJyIiwiZmlsdGVyIiwiYWNjZXNzVG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJ1cGRhdGVKb2luUGF5bG9hZCIsIl9yZWpvaW4iLCJzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlcnMiLCJzZXRBdXRoIiwidW5kZWZpbmVkIiwiY2xpZW50UG9zdGdyZXNCaW5kaW5ncyIsImJpbmRpbmdzTGVuIiwibGVuZ3RoIiwibmV3UG9zdGdyZXNCaW5kaW5ncyIsImkiLCJjbGllbnRQb3N0Z3Jlc0JpbmRpbmciLCJldmVudCIsInNjaGVtYSIsInRhYmxlIiwic2VydmVyUG9zdGdyZXNGaWx0ZXIiLCJwdXNoIiwiaWQiLCJ1bnN1YnNjcmliZSIsIkVycm9yIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwidmFsdWVzIiwicHJlc2VuY2VTdGF0ZSIsInRyYWNrIiwib3B0cyIsInR5cGUiLCJ1bnRyYWNrIiwib24iLCJhcmdzIiwiX2NhblB1c2giLCJlbmRwb2ludF9wYXlsb2FkIiwib3B0aW9ucyIsIm1ldGhvZCIsImhlYWRlcnMiLCJhcGlrZXkiLCJhcGlLZXkiLCJib2R5IiwibWVzc2FnZXMiLCJyZXNwb25zZSIsIl9mZXRjaFdpdGhUaW1lb3V0Iiwib2siLCJuYW1lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJfYyIsIl9wdXNoIiwidXBkYXRlUGF5bG9hZCIsImxlYXZpbmciLCJvbkNsb3NlIiwiY2xvc2UiLCJkZXN0cm95IiwibGVhdmVQdXNoIiwibGVhdmUiLCJ0cmlnZ2VyIiwidXJsIiwiZW5kUG9pbnQiLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwic2V0VGltZW91dCIsImFib3J0IiwiZmV0Y2giLCJzaWduYWwiLCJjbGVhclRpbWVvdXQiLCJzdGFydFRpbWVvdXQiLCJfb25NZXNzYWdlIiwiX2V2ZW50IiwiX3JlZiIsIl9pc01lbWJlciIsInR5cGVMb3dlciIsInRvTG9jYWxlTG93ZXJDYXNlIiwiZXZlbnRzIiwiaW5kZXhPZiIsImhhbmRsZWRQYXlsb2FkIiwiaW5jbHVkZXMiLCJiaW5kIiwiX2QiLCJfZSIsIl9mIiwiYmluZElkIiwiYmluZEV2ZW50IiwiaWRzIiwiZGF0YSIsInBvc3RncmVzQ2hhbmdlcyIsImNvbW1pdF90aW1lc3RhbXAiLCJlcnJvcnMiLCJlbnJpY2hlZFBheWxvYWQiLCJldmVudFR5cGUiLCJuZXciLCJvbGQiLCJfZ2V0UGF5bG9hZFJlY29yZHMiLCJfaXNKb2luZWQiLCJqb2luaW5nIiwiYmluZGluZyIsIl9vZmYiLCJpc0VxdWFsIiwib2JqMSIsIm9iajIiLCJrZXlzIiwiayIsIl9sZWF2ZU9wZW5Ub3BpYyIsInJlc2VuZCIsInJlY29yZHMiLCJjb252ZXJ0Q2hhbmdlRGF0YSIsImNvbHVtbnMiLCJyZWNvcmQiLCJvbGRfcmVjb3JkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RealtimeClient)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/constants */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/timer */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\");\n/* harmony import */ var _lib_serializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/serializer */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js\");\n/* harmony import */ var _RealtimeChannel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RealtimeChannel */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\");\n\n\n\n\nconst noop = ()=>{};\nconst NATIVE_WEBSOCKET_AVAILABLE = typeof WebSocket !== \"undefined\";\nclass RealtimeClient {\n /**\n * Initializes the Socket.\n *\n * @param endPoint The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)\n * @param options.transport The Websocket Transport, for example WebSocket.\n * @param options.timeout The default timeout in milliseconds to trigger push timeouts.\n * @param options.params The optional params to pass when connecting.\n * @param options.headers The optional headers to pass when connecting.\n * @param options.heartbeatIntervalMs The millisec interval to send a heartbeat message.\n * @param options.logger The optional function for specialized logging, ie: logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }\n * @param options.encode The function to encode outgoing messages. Defaults to JSON: (payload, callback) => callback(JSON.stringify(payload))\n * @param options.decode The function to decode incoming messages. Defaults to Serializer's decode.\n * @param options.reconnectAfterMs he optional function that returns the millsec reconnect interval. Defaults to stepped backoff off.\n */ constructor(endPoint, options){\n var _a;\n this.accessToken = null;\n this.apiKey = null;\n this.channels = [];\n this.endPoint = \"\";\n this.headers = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_HEADERS;\n this.params = {};\n this.timeout = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_TIMEOUT;\n this.heartbeatIntervalMs = 30000;\n this.heartbeatTimer = undefined;\n this.pendingHeartbeatRef = null;\n this.ref = 0;\n this.logger = noop;\n this.conn = null;\n this.sendBuffer = [];\n this.serializer = new _lib_serializer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]();\n this.stateChangeCallbacks = {\n open: [],\n close: [],\n error: [],\n message: []\n };\n /**\n * Use either custom fetch, if provided, or default fetch to make HTTP requests\n *\n * @internal\n */ this._resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (...args)=>Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(middleware)/./node_modules/@supabase/node-fetch/browser.js\")).then(({ default: fetch1 })=>fetch1(...args));\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n };\n this.endPoint = `${endPoint}/${_lib_constants__WEBPACK_IMPORTED_MODULE_0__.TRANSPORTS.websocket}`;\n if (options === null || options === void 0 ? void 0 : options.transport) {\n this.transport = options.transport;\n } else {\n this.transport = null;\n }\n if (options === null || options === void 0 ? void 0 : options.params) this.params = options.params;\n if (options === null || options === void 0 ? void 0 : options.headers) this.headers = Object.assign(Object.assign({}, this.headers), options.headers);\n if (options === null || options === void 0 ? void 0 : options.timeout) this.timeout = options.timeout;\n if (options === null || options === void 0 ? void 0 : options.logger) this.logger = options.logger;\n if (options === null || options === void 0 ? void 0 : options.heartbeatIntervalMs) this.heartbeatIntervalMs = options.heartbeatIntervalMs;\n const accessToken = (_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey;\n if (accessToken) {\n this.accessToken = accessToken;\n this.apiKey = accessToken;\n }\n this.reconnectAfterMs = (options === null || options === void 0 ? void 0 : options.reconnectAfterMs) ? options.reconnectAfterMs : (tries)=>{\n return [\n 1000,\n 2000,\n 5000,\n 10000\n ][tries - 1] || 10000;\n };\n this.encode = (options === null || options === void 0 ? void 0 : options.encode) ? options.encode : (payload, callback)=>{\n return callback(JSON.stringify(payload));\n };\n this.decode = (options === null || options === void 0 ? void 0 : options.decode) ? options.decode : this.serializer.decode.bind(this.serializer);\n this.reconnectTimer = new _lib_timer__WEBPACK_IMPORTED_MODULE_1__[\"default\"](async ()=>{\n this.disconnect();\n this.connect();\n }, this.reconnectAfterMs);\n this.fetch = this._resolveFetch(options === null || options === void 0 ? void 0 : options.fetch);\n }\n /**\n * Connects the socket, unless already connected.\n */ connect() {\n if (this.conn) {\n return;\n }\n if (this.transport) {\n this.conn = new this.transport(this._endPointURL(), undefined, {\n headers: this.headers\n });\n return;\n }\n if (NATIVE_WEBSOCKET_AVAILABLE) {\n this.conn = new WebSocket(this._endPointURL());\n this.setupConnection();\n return;\n }\n this.conn = new WSWebSocketDummy(this._endPointURL(), undefined, {\n close: ()=>{\n this.conn = null;\n }\n });\n Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! ws */ \"(middleware)/./node_modules/ws/browser.js\", 23)).then(({ default: WS })=>{\n this.conn = new WS(this._endPointURL(), undefined, {\n headers: this.headers\n });\n this.setupConnection();\n });\n }\n /**\n * Disconnects the socket.\n *\n * @param code A numeric status code to send on disconnect.\n * @param reason A custom reason for the disconnect.\n */ disconnect(code, reason) {\n if (this.conn) {\n this.conn.onclose = function() {}; // noop\n if (code) {\n this.conn.close(code, reason !== null && reason !== void 0 ? reason : \"\");\n } else {\n this.conn.close();\n }\n this.conn = null;\n // remove open handles\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.reconnectTimer.reset();\n }\n }\n /**\n * Returns all created channels\n */ getChannels() {\n return this.channels;\n }\n /**\n * Unsubscribes and removes a single channel\n * @param channel A RealtimeChannel instance\n */ async removeChannel(channel) {\n const status = await channel.unsubscribe();\n if (this.channels.length === 0) {\n this.disconnect();\n }\n return status;\n }\n /**\n * Unsubscribes and removes all channels\n */ async removeAllChannels() {\n const values_1 = await Promise.all(this.channels.map((channel)=>channel.unsubscribe()));\n this.disconnect();\n return values_1;\n }\n /**\n * Logs the message.\n *\n * For customized logging, `this.logger` can be overridden.\n */ log(kind, msg, data) {\n this.logger(kind, msg, data);\n }\n /**\n * Returns the current state of the socket.\n */ connectionState() {\n switch(this.conn && this.conn.readyState){\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.connecting:\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Connecting;\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.open:\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Open;\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.closing:\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Closing;\n default:\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Closed;\n }\n }\n /**\n * Returns `true` is the connection is open.\n */ isConnected() {\n return this.connectionState() === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Open;\n }\n channel(topic, params = {\n config: {}\n }) {\n const chan = new _RealtimeChannel__WEBPACK_IMPORTED_MODULE_3__[\"default\"](`realtime:${topic}`, params, this);\n this.channels.push(chan);\n return chan;\n }\n /**\n * Push out a message if the socket is connected.\n *\n * If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n */ push(data) {\n const { topic, event, payload, ref } = data;\n const callback = ()=>{\n this.encode(data, (result)=>{\n var _a;\n (_a = this.conn) === null || _a === void 0 ? void 0 : _a.send(result);\n });\n };\n this.log(\"push\", `${topic} ${event} (${ref})`, payload);\n if (this.isConnected()) {\n callback();\n } else {\n this.sendBuffer.push(callback);\n }\n }\n /**\n * Sets the JWT access token used for channel subscription authorization and Realtime RLS.\n *\n * @param token A JWT string.\n */ setAuth(token) {\n this.accessToken = token;\n this.channels.forEach((channel)=>{\n token && channel.updateJoinPayload({\n access_token: token\n });\n if (channel.joinedOnce && channel._isJoined()) {\n channel._push(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.access_token, {\n access_token: token\n });\n }\n });\n }\n /**\n * Return the next message ref, accounting for overflows\n *\n * @internal\n */ _makeRef() {\n let newRef = this.ref + 1;\n if (newRef === this.ref) {\n this.ref = 0;\n } else {\n this.ref = newRef;\n }\n return this.ref.toString();\n }\n /**\n * Unsubscribe from channels with the specified topic.\n *\n * @internal\n */ _leaveOpenTopic(topic) {\n let dupChannel = this.channels.find((c)=>c.topic === topic && (c._isJoined() || c._isJoining()));\n if (dupChannel) {\n this.log(\"transport\", `leaving duplicate topic \"${topic}\"`);\n dupChannel.unsubscribe();\n }\n }\n /**\n * Removes a subscription from the socket.\n *\n * @param channel An open subscription.\n *\n * @internal\n */ _remove(channel) {\n this.channels = this.channels.filter((c)=>c._joinRef() !== channel._joinRef());\n }\n /**\n * Sets up connection handlers.\n *\n * @internal\n */ setupConnection() {\n if (this.conn) {\n this.conn.binaryType = \"arraybuffer\";\n this.conn.onopen = ()=>this._onConnOpen();\n this.conn.onerror = (error)=>this._onConnError(error);\n this.conn.onmessage = (event)=>this._onConnMessage(event);\n this.conn.onclose = (event)=>this._onConnClose(event);\n }\n }\n /**\n * Returns the URL of the websocket.\n *\n * @internal\n */ _endPointURL() {\n return this._appendParams(this.endPoint, Object.assign({}, this.params, {\n vsn: _lib_constants__WEBPACK_IMPORTED_MODULE_0__.VSN\n }));\n }\n /** @internal */ _onConnMessage(rawMessage) {\n this.decode(rawMessage.data, (msg)=>{\n let { topic, event, payload, ref } = msg;\n if (ref && ref === this.pendingHeartbeatRef || event === (payload === null || payload === void 0 ? void 0 : payload.type)) {\n this.pendingHeartbeatRef = null;\n }\n this.log(\"receive\", `${payload.status || \"\"} ${topic} ${event} ${ref && \"(\" + ref + \")\" || \"\"}`, payload);\n this.channels.filter((channel)=>channel._isMember(topic)).forEach((channel)=>channel._trigger(event, payload, ref));\n this.stateChangeCallbacks.message.forEach((callback)=>callback(msg));\n });\n }\n /** @internal */ _onConnOpen() {\n this.log(\"transport\", `connected to ${this._endPointURL()}`);\n this._flushSendBuffer();\n this.reconnectTimer.reset();\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = setInterval(()=>this._sendHeartbeat(), this.heartbeatIntervalMs);\n this.stateChangeCallbacks.open.forEach((callback)=>callback());\n }\n /** @internal */ _onConnClose(event) {\n this.log(\"transport\", \"close\", event);\n this._triggerChanError();\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.reconnectTimer.scheduleTimeout();\n this.stateChangeCallbacks.close.forEach((callback)=>callback(event));\n }\n /** @internal */ _onConnError(error) {\n this.log(\"transport\", error.message);\n this._triggerChanError();\n this.stateChangeCallbacks.error.forEach((callback)=>callback(error));\n }\n /** @internal */ _triggerChanError() {\n this.channels.forEach((channel)=>channel._trigger(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.error));\n }\n /** @internal */ _appendParams(url, params) {\n if (Object.keys(params).length === 0) {\n return url;\n }\n const prefix = url.match(/\\?/) ? \"&\" : \"?\";\n const query = new URLSearchParams(params);\n return `${url}${prefix}${query}`;\n }\n /** @internal */ _flushSendBuffer() {\n if (this.isConnected() && this.sendBuffer.length > 0) {\n this.sendBuffer.forEach((callback)=>callback());\n this.sendBuffer = [];\n }\n }\n /** @internal */ _sendHeartbeat() {\n var _a;\n if (!this.isConnected()) {\n return;\n }\n if (this.pendingHeartbeatRef) {\n this.pendingHeartbeatRef = null;\n this.log(\"transport\", \"heartbeat timeout. Attempting to re-establish connection\");\n (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.WS_CLOSE_NORMAL, \"hearbeat timeout\");\n return;\n }\n this.pendingHeartbeatRef = this._makeRef();\n this.push({\n topic: \"phoenix\",\n event: \"heartbeat\",\n payload: {},\n ref: this.pendingHeartbeatRef\n });\n this.setAuth(this.accessToken);\n }\n}\nclass WSWebSocketDummy {\n constructor(address, _protocols, options){\n this.binaryType = \"arraybuffer\";\n this.onclose = ()=>{};\n this.onerror = ()=>{};\n this.onmessage = ()=>{};\n this.onopen = ()=>{};\n this.readyState = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.connecting;\n this.send = ()=>{};\n this.url = null;\n this.url = address;\n this.close = options.close;\n }\n} //# sourceMappingURL=RealtimeClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9SZWFsdGltZUNsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF1SjtBQUN2SDtBQUNVO0FBQ007QUFDaEQsTUFBTVcsT0FBTyxLQUFRO0FBQ3JCLE1BQU1DLDZCQUE2QixPQUFPQyxjQUFjO0FBQ3pDLE1BQU1DO0lBQ2pCOzs7Ozs7Ozs7Ozs7O0tBYUMsR0FDREMsWUFBWUMsUUFBUSxFQUFFQyxPQUFPLENBQUU7UUFDM0IsSUFBSUM7UUFDSixJQUFJLENBQUNDLFdBQVcsR0FBRztRQUNuQixJQUFJLENBQUNDLE1BQU0sR0FBRztRQUNkLElBQUksQ0FBQ0MsUUFBUSxHQUFHLEVBQUU7UUFDbEIsSUFBSSxDQUFDTCxRQUFRLEdBQUc7UUFDaEIsSUFBSSxDQUFDTSxPQUFPLEdBQUdoQiwyREFBZUE7UUFDOUIsSUFBSSxDQUFDaUIsTUFBTSxHQUFHLENBQUM7UUFDZixJQUFJLENBQUNDLE9BQU8sR0FBR3BCLDJEQUFlQTtRQUM5QixJQUFJLENBQUNxQixtQkFBbUIsR0FBRztRQUMzQixJQUFJLENBQUNDLGNBQWMsR0FBR0M7UUFDdEIsSUFBSSxDQUFDQyxtQkFBbUIsR0FBRztRQUMzQixJQUFJLENBQUNDLEdBQUcsR0FBRztRQUNYLElBQUksQ0FBQ0MsTUFBTSxHQUFHbkI7UUFDZCxJQUFJLENBQUNvQixJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNDLFVBQVUsR0FBRyxFQUFFO1FBQ3BCLElBQUksQ0FBQ0MsVUFBVSxHQUFHLElBQUl4Qix1REFBVUE7UUFDaEMsSUFBSSxDQUFDeUIsb0JBQW9CLEdBQUc7WUFDeEJDLE1BQU0sRUFBRTtZQUNSQyxPQUFPLEVBQUU7WUFDVEMsT0FBTyxFQUFFO1lBQ1RDLFNBQVMsRUFBRTtRQUNmO1FBQ0E7Ozs7U0FJQyxHQUNELElBQUksQ0FBQ0MsYUFBYSxHQUFHLENBQUNDO1lBQ2xCLElBQUlDO1lBQ0osSUFBSUQs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QUMvRyxLQUFLLEdBQUduQixRQUFRbUIsS0FBSztJQUM5QjtBQUNKLEVBQ0EsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvUmVhbHRpbWVDbGllbnQuanM/NmI2ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWU04sIENIQU5ORUxfRVZFTlRTLCBUUkFOU1BPUlRTLCBTT0NLRVRfU1RBVEVTLCBERUZBVUxUX1RJTUVPVVQsIFdTX0NMT1NFX05PUk1BTCwgREVGQVVMVF9IRUFERVJTLCBDT05ORUNUSU9OX1NUQVRFLCB9IGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgVGltZXIgZnJvbSAnLi9saWIvdGltZXInO1xuaW1wb3J0IFNlcmlhbGl6ZXIgZnJvbSAnLi9saWIvc2VyaWFsaXplcic7XG5pbXBvcnQgUmVhbHRpbWVDaGFubmVsIGZyb20gJy4vUmVhbHRpbWVDaGFubmVsJztcbmNvbnN0IG5vb3AgPSAoKSA9PiB7IH07XG5jb25zdCBOQVRJVkVfV0VCU09DS0VUX0FWQUlMQUJMRSA9IHR5cGVvZiBXZWJTb2NrZXQgIT09ICd1bmRlZmluZWQnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVhbHRpbWVDbGllbnQge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIHRoZSBTb2NrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZW5kUG9pbnQgVGhlIHN0cmluZyBXZWJTb2NrZXQgZW5kcG9pbnQsIGllLCBcIndzOi8vZXhhbXBsZS5jb20vc29ja2V0XCIsIFwid3NzOi8vZXhhbXBsZS5jb21cIiwgXCIvc29ja2V0XCIgKGluaGVyaXRlZCBob3N0ICYgcHJvdG9jb2wpXG4gICAgICogQHBhcmFtIG9wdGlvbnMudHJhbnNwb3J0IFRoZSBXZWJzb2NrZXQgVHJhbnNwb3J0LCBmb3IgZXhhbXBsZSBXZWJTb2NrZXQuXG4gICAgICogQHBhcmFtIG9wdGlvbnMudGltZW91dCBUaGUgZGVmYXVsdCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0byB0cmlnZ2VyIHB1c2ggdGltZW91dHMuXG4gICAgICogQHBhcmFtIG9wdGlvbnMucGFyYW1zIFRoZSBvcHRpb25hbCBwYXJhbXMgdG8gcGFzcyB3aGVuIGNvbm5lY3RpbmcuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuaGVhZGVycyBUaGUgb3B0aW9uYWwgaGVhZGVycyB0byBwYXNzIHdoZW4gY29ubmVjdGluZy5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5oZWFydGJlYXRJbnRlcnZhbE1zIFRoZSBtaWxsaXNlYyBpbnRlcnZhbCB0byBzZW5kIGEgaGVhcnRiZWF0IG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIG9wdGlvbnMubG9nZ2VyIFRoZSBvcHRpb25hbCBmdW5jdGlvbiBmb3Igc3BlY2lhbGl6ZWQgbG9nZ2luZywgaWU6IGxvZ2dlcjogKGtpbmQsIG1zZywgZGF0YSkgPT4geyBjb25zb2xlLmxvZyhgJHtraW5kfTogJHttc2d9YCwgZGF0YSkgfVxuICAgICAqIEBwYXJhbSBvcHRpb25zLmVuY29kZSBUaGUgZnVuY3Rpb24gdG8gZW5jb2RlIG91dGdvaW5nIG1lc3NhZ2VzLiBEZWZhdWx0cyB0byBKU09OOiAocGF5bG9hZCwgY2FsbGJhY2spID0+IGNhbGxiYWNrKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKVxuICAgICAqIEBwYXJhbSBvcHRpb25zLmRlY29kZSBUaGUgZnVuY3Rpb24gdG8gZGVjb2RlIGluY29taW5nIG1lc3NhZ2VzLiBEZWZhdWx0cyB0byBTZXJpYWxpemVyJ3MgZGVjb2RlLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlY29ubmVjdEFmdGVyTXMgaGUgb3B0aW9uYWwgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBtaWxsc2VjIHJlY29ubmVjdCBpbnRlcnZhbC4gRGVmYXVsdHMgdG8gc3RlcHBlZCBiYWNrb2ZmIG9mZi5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihlbmRQb2ludCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLmFwaUtleSA9IG51bGw7XG4gICAgICAgIHRoaXMuY2hhbm5lbHMgPSBbXTtcbiAgICAgICAgdGhpcy5lbmRQb2ludCA9ICcnO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBERUZBVUxUX0hFQURFUlM7XG4gICAgICAgIHRoaXMucGFyYW1zID0ge307XG4gICAgICAgIHRoaXMudGltZW91dCA9IERFRkFVTFRfVElNRU9VVDtcbiAgICAgICAgdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zID0gMzAwMDA7XG4gICAgICAgIHRoaXMuaGVhcnRiZWF0VGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IG51bGw7XG4gICAgICAgIHRoaXMucmVmID0gMDtcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBub29wO1xuICAgICAgICB0aGlzLmNvbm4gPSBudWxsO1xuICAgICAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IFNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcyA9IHtcbiAgICAgICAgICAgIG9wZW46IFtdLFxuICAgICAgICAgICAgY2xvc2U6IFtdLFxuICAgICAgICAgICAgZXJyb3I6IFtdLFxuICAgICAgICAgICAgbWVzc2FnZTogW10sXG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2UgZWl0aGVyIGN1c3RvbSBmZXRjaCwgaWYgcHJvdmlkZWQsIG9yIGRlZmF1bHQgZmV0Y2ggdG8gbWFrZSBIVFRQIHJlcXVlc3RzXG4gICAgICAgICAqXG4gICAgICAgICAqIEBpbnRlcm5hbFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fcmVzb2x2ZUZldGNoID0gKGN1c3RvbUZldGNoKSA9PiB7XG4gICAgICAgICAgICBsZXQgX2ZldGNoO1xuICAgICAgICAgICAgaWYgKGN1c3RvbUZldGNoKSB7XG4gICAgICAgICAgICAgICAgX2ZldGNoID0gY3VzdG9tRmV0Y2g7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgZmV0Y2ggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgX2ZldGNoID0gKC4uLmFyZ3MpID0+IGltcG9ydCgnQHN1cGFiYXNlL25vZGUtZmV0Y2gnKS50aGVuKCh7IGRlZmF1bHQ6IGZldGNoIH0pID0+IGZldGNoKC4uLmFyZ3MpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9mZXRjaCA9IGZldGNoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICguLi5hcmdzKSA9PiBfZmV0Y2goLi4uYXJncyk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZW5kUG9pbnQgPSBgJHtlbmRQb2ludH0vJHtUUkFOU1BPUlRTLndlYnNvY2tldH1gO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnRyYW5zcG9ydCkge1xuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQgPSBvcHRpb25zLnRyYW5zcG9ydDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmFtcylcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXM7XG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVhZGVycylcbiAgICAgICAgICAgIHRoaXMuaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5oZWFkZXJzKSwgb3B0aW9ucy5oZWFkZXJzKTtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50aW1lb3V0KVxuICAgICAgICAgICAgdGhpcy50aW1lb3V0ID0gb3B0aW9ucy50aW1lb3V0O1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmxvZ2dlcilcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyID0gb3B0aW9ucy5sb2dnZXI7XG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVhcnRiZWF0SW50ZXJ2YWxNcylcbiAgICAgICAgICAgIHRoaXMuaGVhcnRiZWF0SW50ZXJ2YWxNcyA9IG9wdGlvbnMuaGVhcnRiZWF0SW50ZXJ2YWxNcztcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSAoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyYW1zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYXBpa2V5O1xuICAgICAgICBpZiAoYWNjZXNzVG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSBhY2Nlc3NUb2tlbjtcbiAgICAgICAgICAgIHRoaXMuYXBpS2V5ID0gYWNjZXNzVG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWNvbm5lY3RBZnRlck1zID0gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yZWNvbm5lY3RBZnRlck1zKVxuICAgICAgICAgICAgPyBvcHRpb25zLnJlY29ubmVjdEFmdGVyTXNcbiAgICAgICAgICAgIDogKHRyaWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsxMDAwLCAyMDAwLCA1MDAwLCAxMDAwMF1bdHJpZXMgLSAxXSB8fCAxMDAwMDtcbiAgICAgICAgICAgIH07XG4gICAgICAgIHRoaXMuZW5jb2RlID0gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5lbmNvZGUpXG4gICAgICAgICAgICA/IG9wdGlvbnMuZW5jb2RlXG4gICAgICAgICAgICA6IChwYXlsb2FkLCBjYWxsYmFjaykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhKU09OLnN0cmluZ2lmeShwYXlsb2FkKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB0aGlzLmRlY29kZSA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZGVjb2RlKVxuICAgICAgICAgICAgPyBvcHRpb25zLmRlY29kZVxuICAgICAgICAgICAgOiB0aGlzLnNlcmlhbGl6ZXIuZGVjb2RlLmJpbmQodGhpcy5zZXJpYWxpemVyKTtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3RUaW1lciA9IG5ldyBUaW1lcihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdCgpO1xuICAgICAgICB9LCB0aGlzLnJlY29ubmVjdEFmdGVyTXMpO1xuICAgICAgICB0aGlzLmZldGNoID0gdGhpcy5fcmVzb2x2ZUZldGNoKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5mZXRjaCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbm5lY3RzIHRoZSBzb2NrZXQsIHVubGVzcyBhbHJlYWR5IGNvbm5lY3RlZC5cbiAgICAgKi9cbiAgICBjb25uZWN0KCkge1xuICAgICAgICBpZiAodGhpcy5jb25uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudHJhbnNwb3J0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbm4gPSBuZXcgdGhpcy50cmFuc3BvcnQodGhpcy5fZW5kUG9pbnRVUkwoKSwgdW5kZWZpbmVkLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE5BVElWRV9XRUJTT0NLRVRfQVZBSUxBQkxFKSB7XG4gICAgICAgICAgICB0aGlzLmNvbm4gPSBuZXcgV2ViU29ja2V0KHRoaXMuX2VuZFBvaW50VVJMKCkpO1xuICAgICAgICAgICAgdGhpcy5zZXR1cENvbm5lY3Rpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbm4gPSBuZXcgV1NXZWJTb2NrZXREdW1teSh0aGlzLl9lbmRQb2ludFVSTCgpLCB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgIGNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uID0gbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpbXBvcnQoJ3dzJykudGhlbigoeyBkZWZhdWx0OiBXUyB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbm4gPSBuZXcgV1ModGhpcy5fZW5kUG9pbnRVUkwoKSwgdW5kZWZpbmVkLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnNldHVwQ29ubmVjdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGlzY29ubmVjdHMgdGhlIHNvY2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2RlIEEgbnVtZXJpYyBzdGF0dXMgY29kZSB0byBzZW5kIG9uIGRpc2Nvbm5lY3QuXG4gICAgICogQHBhcmFtIHJlYXNvbiBBIGN1c3RvbSByZWFzb24gZm9yIHRoZSBkaXNjb25uZWN0LlxuICAgICAqL1xuICAgIGRpc2Nvbm5lY3QoY29kZSwgcmVhc29uKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbm4pIHtcbiAgICAgICAgICAgIHRoaXMuY29ubi5vbmNsb3NlID0gZnVuY3Rpb24gKCkgeyB9OyAvLyBub29wXG4gICAgICAgICAgICBpZiAoY29kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubi5jbG9zZShjb2RlLCByZWFzb24gIT09IG51bGwgJiYgcmVhc29uICE9PSB2b2lkIDAgPyByZWFzb24gOiAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm4uY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29ubiA9IG51bGw7XG4gICAgICAgICAgICAvLyByZW1vdmUgb3BlbiBoYW5kbGVzXG4gICAgICAgICAgICB0aGlzLmhlYXJ0YmVhdFRpbWVyICYmIGNsZWFySW50ZXJ2YWwodGhpcy5oZWFydGJlYXRUaW1lcik7XG4gICAgICAgICAgICB0aGlzLnJlY29ubmVjdFRpbWVyLnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgY3JlYXRlZCBjaGFubmVsc1xuICAgICAqL1xuICAgIGdldENoYW5uZWxzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGFubmVscztcbiAgICB9XG4gICAgLyoqXG4gICAgICogVW5zdWJzY3JpYmVzIGFuZCByZW1vdmVzIGEgc2luZ2xlIGNoYW5uZWxcbiAgICAgKiBAcGFyYW0gY2hhbm5lbCBBIFJlYWx0aW1lQ2hhbm5lbCBpbnN0YW5jZVxuICAgICAqL1xuICAgIGFzeW5jIHJlbW92ZUNoYW5uZWwoY2hhbm5lbCkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCBjaGFubmVsLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGlmICh0aGlzLmNoYW5uZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG4gICAgLyoqXG4gICAgICogVW5zdWJzY3JpYmVzIGFuZCByZW1vdmVzIGFsbCBjaGFubmVsc1xuICAgICAqL1xuICAgIGFzeW5jIHJlbW92ZUFsbENoYW5uZWxzKCkge1xuICAgICAgICBjb25zdCB2YWx1ZXNfMSA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMuY2hhbm5lbHMubWFwKChjaGFubmVsKSA9PiBjaGFubmVsLnVuc3Vic2NyaWJlKCkpKTtcbiAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgICAgIHJldHVybiB2YWx1ZXNfMTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTG9ncyB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEZvciBjdXN0b21pemVkIGxvZ2dpbmcsIGB0aGlzLmxvZ2dlcmAgY2FuIGJlIG92ZXJyaWRkZW4uXG4gICAgICovXG4gICAgbG9nKGtpbmQsIG1zZywgZGF0YSkge1xuICAgICAgICB0aGlzLmxvZ2dlcihraW5kLCBtc2csIGRhdGEpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzb2NrZXQuXG4gICAgICovXG4gICAgY29ubmVjdGlvblN0YXRlKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY29ubiAmJiB0aGlzLmNvbm4ucmVhZHlTdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSBTT0NLRVRfU1RBVEVTLmNvbm5lY3Rpbmc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENPTk5FQ1RJT05fU1RBVEUuQ29ubmVjdGluZztcbiAgICAgICAgICAgIGNhc2UgU09DS0VUX1NUQVRFUy5vcGVuOlxuICAgICAgICAgICAgICAgIHJldHVybiBDT05ORUNUSU9OX1NUQVRFLk9wZW47XG4gICAgICAgICAgICBjYXNlIFNPQ0tFVF9TVEFURVMuY2xvc2luZzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ09OTkVDVElPTl9TVEFURS5DbG9zaW5nO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ09OTkVDVElPTl9TVEFURS5DbG9zZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBgdHJ1ZWAgaXMgdGhlIGNvbm5lY3Rpb24gaXMgb3Blbi5cbiAgICAgKi9cbiAgICBpc0Nvbm5lY3RlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvblN0YXRlKCkgPT09IENPTk5FQ1RJT05fU1RBVEUuT3BlbjtcbiAgICB9XG4gICAgY2hhbm5lbCh0b3BpYywgcGFyYW1zID0geyBjb25maWc6IHt9IH0pIHtcbiAgICAgICAgY29uc3QgY2hhbiA9IG5ldyBSZWFsdGltZUNoYW5uZWwoYHJlYWx0aW1lOiR7dG9waWN9YCwgcGFyYW1zLCB0aGlzKTtcbiAgICAgICAgdGhpcy5jaGFubmVscy5wdXNoKGNoYW4pO1xuICAgICAgICByZXR1cm4gY2hhbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHVzaCBvdXQgYSBtZXNzYWdlIGlmIHRoZSBzb2NrZXQgaXMgY29ubmVjdGVkLlxuICAgICAqXG4gICAgICogSWYgdGhlIHNvY2tldCBpcyBub3QgY29ubmVjdGVkLCB0aGUgbWVzc2FnZSBnZXRzIGVucXVldWVkIHdpdGhpbiBhIGxvY2FsIGJ1ZmZlciwgYW5kIHNlbnQgb3V0IHdoZW4gYSBjb25uZWN0aW9uIGlzIG5leHQgZXN0YWJsaXNoZWQuXG4gICAgICovXG4gICAgcHVzaChkYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgdG9waWMsIGV2ZW50LCBwYXlsb2FkLCByZWYgfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmNvZGUoZGF0YSwgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSB0aGlzLmNvbm4pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZW5kKHJlc3VsdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5sb2coJ3B1c2gnLCBgJHt0b3BpY30gJHtldmVudH0gKCR7cmVmfSlgLCBwYXlsb2FkKTtcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSkge1xuICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZEJ1ZmZlci5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBKV1QgYWNjZXNzIHRva2VuIHVzZWQgZm9yIGNoYW5uZWwgc3Vic2NyaXB0aW9uIGF1dGhvcml6YXRpb24gYW5kIFJlYWx0aW1lIFJMUy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0b2tlbiBBIEpXVCBzdHJpbmcuXG4gICAgICovXG4gICAgc2V0QXV0aCh0b2tlbikge1xuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdG9rZW47XG4gICAgICAgIHRoaXMuY2hhbm5lbHMuZm9yRWFjaCgoY2hhbm5lbCkgPT4ge1xuICAgICAgICAgICAgdG9rZW4gJiYgY2hhbm5lbC51cGRhdGVKb2luUGF5bG9hZCh7IGFjY2Vzc190b2tlbjogdG9rZW4gfSk7XG4gICAgICAgICAgICBpZiAoY2hhbm5lbC5qb2luZWRPbmNlICYmIGNoYW5uZWwuX2lzSm9pbmVkKCkpIHtcbiAgICAgICAgICAgICAgICBjaGFubmVsLl9wdXNoKENIQU5ORUxfRVZFTlRTLmFjY2Vzc190b2tlbiwgeyBhY2Nlc3NfdG9rZW46IHRva2VuIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBuZXh0IG1lc3NhZ2UgcmVmLCBhY2NvdW50aW5nIGZvciBvdmVyZmxvd3NcbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9tYWtlUmVmKCkge1xuICAgICAgICBsZXQgbmV3UmVmID0gdGhpcy5yZWYgKyAxO1xuICAgICAgICBpZiAobmV3UmVmID09PSB0aGlzLnJlZikge1xuICAgICAgICAgICAgdGhpcy5yZWYgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZWYgPSBuZXdSZWY7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVmLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlIGZyb20gY2hhbm5lbHMgd2l0aCB0aGUgc3BlY2lmaWVkIHRvcGljLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgX2xlYXZlT3BlblRvcGljKHRvcGljKSB7XG4gICAgICAgIGxldCBkdXBDaGFubmVsID0gdGhpcy5jaGFubmVscy5maW5kKChjKSA9PiBjLnRvcGljID09PSB0b3BpYyAmJiAoYy5faXNKb2luZWQoKSB8fCBjLl9pc0pvaW5pbmcoKSkpO1xuICAgICAgICBpZiAoZHVwQ2hhbm5lbCkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ3RyYW5zcG9ydCcsIGBsZWF2aW5nIGR1cGxpY2F0ZSB0b3BpYyBcIiR7dG9waWN9XCJgKTtcbiAgICAgICAgICAgIGR1cENoYW5uZWwudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgc3Vic2NyaXB0aW9uIGZyb20gdGhlIHNvY2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFubmVsIEFuIG9wZW4gc3Vic2NyaXB0aW9uLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgX3JlbW92ZShjaGFubmVsKSB7XG4gICAgICAgIHRoaXMuY2hhbm5lbHMgPSB0aGlzLmNoYW5uZWxzLmZpbHRlcigoYykgPT4gYy5fam9pblJlZigpICE9PSBjaGFubmVsLl9qb2luUmVmKCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHVwIGNvbm5lY3Rpb24gaGFuZGxlcnMuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBzZXR1cENvbm5lY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbm4pIHtcbiAgICAgICAgICAgIHRoaXMuY29ubi5iaW5hcnlUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICAgICAgICAgIHRoaXMuY29ubi5vbm9wZW4gPSAoKSA9PiB0aGlzLl9vbkNvbm5PcGVuKCk7XG4gICAgICAgICAgICB0aGlzLmNvbm4ub25lcnJvciA9IChlcnJvcikgPT4gdGhpcy5fb25Db25uRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5jb25uLm9ubWVzc2FnZSA9IChldmVudCkgPT4gdGhpcy5fb25Db25uTWVzc2FnZShldmVudCk7XG4gICAgICAgICAgICB0aGlzLmNvbm4ub25jbG9zZSA9IChldmVudCkgPT4gdGhpcy5fb25Db25uQ2xvc2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFVSTCBvZiB0aGUgd2Vic29ja2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgX2VuZFBvaW50VVJMKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwZW5kUGFyYW1zKHRoaXMuZW5kUG9pbnQsIE9iamVjdC5hc3NpZ24oe30sIHRoaXMucGFyYW1zLCB7IHZzbjogVlNOIH0pKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9vbkNvbm5NZXNzYWdlKHJhd01lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5kZWNvZGUocmF3TWVzc2FnZS5kYXRhLCAobXNnKSA9PiB7XG4gICAgICAgICAgICBsZXQgeyB0b3BpYywgZXZlbnQsIHBheWxvYWQsIHJlZiB9ID0gbXNnO1xuICAgICAgICAgICAgaWYgKChyZWYgJiYgcmVmID09PSB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYpIHx8XG4gICAgICAgICAgICAgICAgZXZlbnQgPT09IChwYXlsb2FkID09PSBudWxsIHx8IHBheWxvYWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBheWxvYWQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sb2coJ3JlY2VpdmUnLCBgJHtwYXlsb2FkLnN0YXR1cyB8fCAnJ30gJHt0b3BpY30gJHtldmVudH0gJHsocmVmICYmICcoJyArIHJlZiArICcpJykgfHwgJyd9YCwgcGF5bG9hZCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWxzXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoY2hhbm5lbCkgPT4gY2hhbm5lbC5faXNNZW1iZXIodG9waWMpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChjaGFubmVsKSA9PiBjaGFubmVsLl90cmlnZ2VyKGV2ZW50LCBwYXlsb2FkLCByZWYpKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MubWVzc2FnZS5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2sobXNnKSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX29uQ29ubk9wZW4oKSB7XG4gICAgICAgIHRoaXMubG9nKCd0cmFuc3BvcnQnLCBgY29ubmVjdGVkIHRvICR7dGhpcy5fZW5kUG9pbnRVUkwoKX1gKTtcbiAgICAgICAgdGhpcy5fZmx1c2hTZW5kQnVmZmVyKCk7XG4gICAgICAgIHRoaXMucmVjb25uZWN0VGltZXIucmVzZXQoKTtcbiAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciAmJiBjbGVhckludGVydmFsKHRoaXMuaGVhcnRiZWF0VGltZXIpO1xuICAgICAgICB0aGlzLmhlYXJ0YmVhdFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5fc2VuZEhlYXJ0YmVhdCgpLCB0aGlzLmhlYXJ0YmVhdEludGVydmFsTXMpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm9wZW4uZm9yRWFjaCgoY2FsbGJhY2spID0+IGNhbGxiYWNrKCkpO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX29uQ29ubkNsb3NlKGV2ZW50KSB7XG4gICAgICAgIHRoaXMubG9nKCd0cmFuc3BvcnQnLCAnY2xvc2UnLCBldmVudCk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDaGFuRXJyb3IoKTtcbiAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciAmJiBjbGVhckludGVydmFsKHRoaXMuaGVhcnRiZWF0VGltZXIpO1xuICAgICAgICB0aGlzLnJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLmNsb3NlLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhldmVudCkpO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX29uQ29ubkVycm9yKGVycm9yKSB7XG4gICAgICAgIHRoaXMubG9nKCd0cmFuc3BvcnQnLCBlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNoYW5FcnJvcigpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLmVycm9yLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhlcnJvcikpO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX3RyaWdnZXJDaGFuRXJyb3IoKSB7XG4gICAgICAgIHRoaXMuY2hhbm5lbHMuZm9yRWFjaCgoY2hhbm5lbCkgPT4gY2hhbm5lbC5fdHJpZ2dlcihDSEFOTkVMX0VWRU5UUy5lcnJvcikpO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2FwcGVuZFBhcmFtcyh1cmwsIHBhcmFtcykge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB1cmw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZml4ID0gdXJsLm1hdGNoKC9cXD8vKSA/ICcmJyA6ICc/JztcbiAgICAgICAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcyk7XG4gICAgICAgIHJldHVybiBgJHt1cmx9JHtwcmVmaXh9JHtxdWVyeX1gO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2ZsdXNoU2VuZEJ1ZmZlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSAmJiB0aGlzLnNlbmRCdWZmZXIubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zZW5kQnVmZmVyLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjaygpKTtcbiAgICAgICAgICAgIHRoaXMuc2VuZEJ1ZmZlciA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfc2VuZEhlYXJ0YmVhdCgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmxvZygndHJhbnNwb3J0JywgJ2hlYXJ0YmVhdCB0aW1lb3V0LiBBdHRlbXB0aW5nIHRvIHJlLWVzdGFibGlzaCBjb25uZWN0aW9uJyk7XG4gICAgICAgICAgICAoX2EgPSB0aGlzLmNvbm4pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbG9zZShXU19DTE9TRV9OT1JNQUwsICdoZWFyYmVhdCB0aW1lb3V0Jyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmID0gdGhpcy5fbWFrZVJlZigpO1xuICAgICAgICB0aGlzLnB1c2goe1xuICAgICAgICAgICAgdG9waWM6ICdwaG9lbml4JyxcbiAgICAgICAgICAgIGV2ZW50OiAnaGVhcnRiZWF0JyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHt9LFxuICAgICAgICAgICAgcmVmOiB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldEF1dGgodGhpcy5hY2Nlc3NUb2tlbik7XG4gICAgfVxufVxuY2xhc3MgV1NXZWJTb2NrZXREdW1teSB7XG4gICAgY29uc3RydWN0b3IoYWRkcmVzcywgX3Byb3RvY29scywgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmJpbmFyeVR5cGUgPSAnYXJyYXlidWZmZXInO1xuICAgICAgICB0aGlzLm9uY2xvc2UgPSAoKSA9PiB7IH07XG4gICAgICAgIHRoaXMub25lcnJvciA9ICgpID0+IHsgfTtcbiAgICAgICAgdGhpcy5vbm1lc3NhZ2UgPSAoKSA9PiB7IH07XG4gICAgICAgIHRoaXMub25vcGVuID0gKCkgPT4geyB9O1xuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBTT0NLRVRfU1RBVEVTLmNvbm5lY3Rpbmc7XG4gICAgICAgIHRoaXMuc2VuZCA9ICgpID0+IHsgfTtcbiAgICAgICAgdGhpcy51cmwgPSBudWxsO1xuICAgICAgICB0aGlzLnVybCA9IGFkZHJlc3M7XG4gICAgICAgIHRoaXMuY2xvc2UgPSBvcHRpb25zLmNsb3NlO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWx0aW1lQ2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJWU04iLCJDSEFOTkVMX0VWRU5UUyIsIlRSQU5TUE9SVFMiLCJTT0NLRVRfU1RBVEVTIiwiREVGQVVMVF9USU1FT1VUIiwiV1NfQ0xPU0VfTk9STUFMIiwiREVGQVVMVF9IRUFERVJTIiwiQ09OTkVDVElPTl9TVEFURSIsIlRpbWVyIiwiU2VyaWFsaXplciIsIlJlYWx0aW1lQ2hhbm5lbCIsIm5vb3AiLCJOQVRJVkVfV0VCU09DS0VUX0FWQUlMQUJMRSIsIldlYlNvY2tldCIsIlJlYWx0aW1lQ2xpZW50IiwiY29uc3RydWN0b3IiLCJlbmRQb2ludCIsIm9wdGlvbnMiLCJfYSIsImFjY2Vzc1Rva2VuIiwiYXBpS2V5IiwiY2hhbm5lbHMiLCJoZWFkZXJzIiwicGFyYW1zIiwidGltZW91dCIsImhlYXJ0YmVhdEludGVydmFsTXMiLCJoZWFydGJlYXRUaW1lciIsInVuZGVmaW5lZCIsInBlbmRpbmdIZWFydGJlYXRSZWYiLCJyZWYiLCJsb2dnZXIiLCJjb25uIiwic2VuZEJ1ZmZlciIsInNlcmlhbGl6ZXIiLCJzdGF0ZUNoYW5nZUNhbGxiYWNrcyIsIm9wZW4iLCJjbG9zZSIsImVycm9yIiwibWVzc2FnZSIsIl9yZXNvbHZlRmV0Y2giLCJjdXN0b21GZXRjaCIsIl9mZXRjaCIsImZldGNoIiwiYXJncyIsInRoZW4iLCJkZWZhdWx0Iiwid2Vic29ja2V0IiwidHJhbnNwb3J0IiwiT2JqZWN0IiwiYXNzaWduIiwiYXBpa2V5IiwicmVjb25uZWN0QWZ0ZXJNcyIsInRyaWVzIiwiZW5jb2RlIiwicGF5bG9hZCIsImNhbGxiYWNrIiwiSlNPTiIsInN0cmluZ2lmeSIsImRlY29kZSIsImJpbmQiLCJyZWNvbm5lY3RUaW1lciIsImRpc2Nvbm5lY3QiLCJjb25uZWN0IiwiX2VuZFBvaW50VVJMIiwic2V0dXBDb25uZWN0aW9uIiwiV1NXZWJTb2NrZXREdW1teSIsIldTIiwiY29kZSIsInJlYXNvbiIsIm9uY2xvc2UiLCJjbGVhckludGVydmFsIiwicmVzZXQiLCJnZXRDaGFubmVscyIsInJlbW92ZUNoYW5uZWwiLCJjaGFubmVsIiwic3RhdHVzIiwidW5zdWJzY3JpYmUiLCJsZW5ndGgiLCJyZW1vdmVBbGxDaGFubmVscyIsInZhbHVlc18xIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImxvZyIsImtpbmQiLCJtc2ciLCJkYXRhIiwiY29ubmVjdGlvblN0YXRlIiwicmVhZHlTdGF0ZSIsImNvbm5lY3RpbmciLCJDb25uZWN0aW5nIiwiT3BlbiIsImNsb3NpbmciLCJDbG9zaW5nIiwiQ2xvc2VkIiwiaXNDb25uZWN0ZWQiLCJ0b3BpYyIsImNvbmZpZyIsImNoYW4iLCJwdXNoIiwiZXZlbnQiLCJyZXN1bHQiLCJzZW5kIiwic2V0QXV0aCIsInRva2VuIiwiZm9yRWFjaCIsInVwZGF0ZUpvaW5QYXlsb2FkIiwiYWNjZXNzX3Rva2VuIiwiam9pbmVkT25jZSIsIl9pc0pvaW5lZCIsIl9wdXNoIiwiX21ha2VSZWYiLCJuZXdSZWYiLCJ0b1N0cmluZyIsIl9sZWF2ZU9wZW5Ub3BpYyIsImR1cENoYW5uZWwiLCJmaW5kIiwiYyIsIl9pc0pvaW5pbmciLCJfcmVtb3ZlIiwiZmlsdGVyIiwiX2pvaW5SZWYiLCJiaW5hcnlUeXBlIiwib25vcGVuIiwiX29uQ29ubk9wZW4iLCJvbmVycm9yIiwiX29uQ29ubkVycm9yIiwib25tZXNzYWdlIiwiX29uQ29ubk1lc3NhZ2UiLCJfb25Db25uQ2xvc2UiLCJfYXBwZW5kUGFyYW1zIiwidnNuIiwicmF3TWVzc2FnZSIsInR5cGUiLCJfaXNNZW1iZXIiLCJfdHJpZ2dlciIsIl9mbHVzaFNlbmRCdWZmZXIiLCJzZXRJbnRlcnZhbCIsIl9zZW5kSGVhcnRiZWF0IiwiX3RyaWdnZXJDaGFuRXJyb3IiLCJzY2hlZHVsZVRpbWVvdXQiLCJ1cmwiLCJrZXlzIiwicHJlZml4IiwibWF0Y2giLCJxdWVyeSIsIlVSTFNlYXJjaFBhcmFtcyIsImFkZHJlc3MiLCJfcHJvdG9jb2xzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: () => (/* binding */ REALTIME_PRESENCE_LISTEN_EVENTS),\n/* harmony export */ \"default\": () => (/* binding */ RealtimePresence)\n/* harmony export */ });\n/*\n This file draws heavily from https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/assets/js/phoenix/presence.js\n License: https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/LICENSE.md\n*/ var REALTIME_PRESENCE_LISTEN_EVENTS;\n(function(REALTIME_PRESENCE_LISTEN_EVENTS) {\n REALTIME_PRESENCE_LISTEN_EVENTS[\"SYNC\"] = \"sync\";\n REALTIME_PRESENCE_LISTEN_EVENTS[\"JOIN\"] = \"join\";\n REALTIME_PRESENCE_LISTEN_EVENTS[\"LEAVE\"] = \"leave\";\n})(REALTIME_PRESENCE_LISTEN_EVENTS || (REALTIME_PRESENCE_LISTEN_EVENTS = {}));\nclass RealtimePresence {\n /**\n * Initializes the Presence.\n *\n * @param channel - The RealtimeChannel\n * @param opts - The options,\n * for example `{events: {state: 'state', diff: 'diff'}}`\n */ constructor(channel, opts){\n this.channel = channel;\n this.state = {};\n this.pendingDiffs = [];\n this.joinRef = null;\n this.caller = {\n onJoin: ()=>{},\n onLeave: ()=>{},\n onSync: ()=>{}\n };\n const events = (opts === null || opts === void 0 ? void 0 : opts.events) || {\n state: \"presence_state\",\n diff: \"presence_diff\"\n };\n this.channel._on(events.state, {}, (newState)=>{\n const { onJoin, onLeave, onSync } = this.caller;\n this.joinRef = this.channel._joinRef();\n this.state = RealtimePresence.syncState(this.state, newState, onJoin, onLeave);\n this.pendingDiffs.forEach((diff)=>{\n this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\n });\n this.pendingDiffs = [];\n onSync();\n });\n this.channel._on(events.diff, {}, (diff)=>{\n const { onJoin, onLeave, onSync } = this.caller;\n if (this.inPendingSyncState()) {\n this.pendingDiffs.push(diff);\n } else {\n this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\n onSync();\n }\n });\n this.onJoin((key, currentPresences, newPresences)=>{\n this.channel._trigger(\"presence\", {\n event: \"join\",\n key,\n currentPresences,\n newPresences\n });\n });\n this.onLeave((key, currentPresences, leftPresences)=>{\n this.channel._trigger(\"presence\", {\n event: \"leave\",\n key,\n currentPresences,\n leftPresences\n });\n });\n this.onSync(()=>{\n this.channel._trigger(\"presence\", {\n event: \"sync\"\n });\n });\n }\n /**\n * Used to sync the list of presences on the server with the\n * client's state.\n *\n * An optional `onJoin` and `onLeave` callback can be provided to\n * react to changes in the client's local presences across\n * disconnects and reconnects with the server.\n *\n * @internal\n */ static syncState(currentState, newState, onJoin, onLeave) {\n const state = this.cloneDeep(currentState);\n const transformedState = this.transformState(newState);\n const joins = {};\n const leaves = {};\n this.map(state, (key, presences)=>{\n if (!transformedState[key]) {\n leaves[key] = presences;\n }\n });\n this.map(transformedState, (key, newPresences)=>{\n const currentPresences = state[key];\n if (currentPresences) {\n const newPresenceRefs = newPresences.map((m)=>m.presence_ref);\n const curPresenceRefs = currentPresences.map((m)=>m.presence_ref);\n const joinedPresences = newPresences.filter((m)=>curPresenceRefs.indexOf(m.presence_ref) < 0);\n const leftPresences = currentPresences.filter((m)=>newPresenceRefs.indexOf(m.presence_ref) < 0);\n if (joinedPresences.length > 0) {\n joins[key] = joinedPresences;\n }\n if (leftPresences.length > 0) {\n leaves[key] = leftPresences;\n }\n } else {\n joins[key] = newPresences;\n }\n });\n return this.syncDiff(state, {\n joins,\n leaves\n }, onJoin, onLeave);\n }\n /**\n * Used to sync a diff of presence join and leave events from the\n * server, as they happen.\n *\n * Like `syncState`, `syncDiff` accepts optional `onJoin` and\n * `onLeave` callbacks to react to a user joining or leaving from a\n * device.\n *\n * @internal\n */ static syncDiff(state, diff, onJoin, onLeave) {\n const { joins, leaves } = {\n joins: this.transformState(diff.joins),\n leaves: this.transformState(diff.leaves)\n };\n if (!onJoin) {\n onJoin = ()=>{};\n }\n if (!onLeave) {\n onLeave = ()=>{};\n }\n this.map(joins, (key, newPresences)=>{\n var _a;\n const currentPresences = (_a = state[key]) !== null && _a !== void 0 ? _a : [];\n state[key] = this.cloneDeep(newPresences);\n if (currentPresences.length > 0) {\n const joinedPresenceRefs = state[key].map((m)=>m.presence_ref);\n const curPresences = currentPresences.filter((m)=>joinedPresenceRefs.indexOf(m.presence_ref) < 0);\n state[key].unshift(...curPresences);\n }\n onJoin(key, currentPresences, newPresences);\n });\n this.map(leaves, (key, leftPresences)=>{\n let currentPresences = state[key];\n if (!currentPresences) return;\n const presenceRefsToRemove = leftPresences.map((m)=>m.presence_ref);\n currentPresences = currentPresences.filter((m)=>presenceRefsToRemove.indexOf(m.presence_ref) < 0);\n state[key] = currentPresences;\n onLeave(key, currentPresences, leftPresences);\n if (currentPresences.length === 0) delete state[key];\n });\n return state;\n }\n /** @internal */ static map(obj, func) {\n return Object.getOwnPropertyNames(obj).map((key)=>func(key, obj[key]));\n }\n /**\n * Remove 'metas' key\n * Change 'phx_ref' to 'presence_ref'\n * Remove 'phx_ref' and 'phx_ref_prev'\n *\n * @example\n * // returns {\n * abc123: [\n * { presence_ref: '2', user_id: 1 },\n * { presence_ref: '3', user_id: 2 }\n * ]\n * }\n * RealtimePresence.transformState({\n * abc123: {\n * metas: [\n * { phx_ref: '2', phx_ref_prev: '1' user_id: 1 },\n * { phx_ref: '3', user_id: 2 }\n * ]\n * }\n * })\n *\n * @internal\n */ static transformState(state) {\n state = this.cloneDeep(state);\n return Object.getOwnPropertyNames(state).reduce((newState, key)=>{\n const presences = state[key];\n if (\"metas\" in presences) {\n newState[key] = presences.metas.map((presence)=>{\n presence[\"presence_ref\"] = presence[\"phx_ref\"];\n delete presence[\"phx_ref\"];\n delete presence[\"phx_ref_prev\"];\n return presence;\n });\n } else {\n newState[key] = presences;\n }\n return newState;\n }, {});\n }\n /** @internal */ static cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n /** @internal */ onJoin(callback) {\n this.caller.onJoin = callback;\n }\n /** @internal */ onLeave(callback) {\n this.caller.onLeave = callback;\n }\n /** @internal */ onSync(callback) {\n this.caller.onSync = callback;\n }\n /** @internal */ inPendingSyncState() {\n return !this.joinRef || this.joinRef !== this.channel._joinRef();\n }\n} //# sourceMappingURL=RealtimePresence.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9SZWFsdGltZVByZXNlbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztBQUdBLEdBQ08sSUFBSUEsZ0NBQWdDO0FBQzFDLFVBQVVBLCtCQUErQjtJQUN0Q0EsK0JBQStCLENBQUMsT0FBTyxHQUFHO0lBQzFDQSwrQkFBK0IsQ0FBQyxPQUFPLEdBQUc7SUFDMUNBLCtCQUErQixDQUFDLFFBQVEsR0FBRztBQUMvQyxHQUFHQSxtQ0FBb0NBLENBQUFBLGtDQUFrQyxDQUFDO0FBQzNELE1BQU1DO0lBQ2pCOzs7Ozs7S0FNQyxHQUNEQyxZQUFZQyxPQUFPLEVBQUVDLElBQUksQ0FBRTtRQUN2QixJQUFJLENBQUNELE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNFLEtBQUssR0FBRyxDQUFDO1FBQ2QsSUFBSSxDQUFDQyxZQUFZLEdBQUcsRUFBRTtRQUN0QixJQUFJLENBQUNDLE9BQU8sR0FBRztRQUNmLElBQUksQ0FBQ0MsTUFBTSxHQUFHO1lBQ1ZDLFFBQVEsS0FBUTtZQUNoQkMsU0FBUyxLQUFRO1lBQ2pCQyxRQUFRLEtBQVE7UUFDcEI7UUFDQSxNQUFNQyxTQUFTLENBQUNSLFNBQVMsUUFBUUEsU0FBUyxLQUFLLElBQUksS0FBSyxJQUFJQSxLQUFLUSxNQUFNLEtBQUs7WUFDeEVQLE9BQU87WUFDUFEsTUFBTTtRQUNWO1FBQ0EsSUFBSSxDQUFDVixPQUFPLENBQUNXLEdBQUcsQ0FBQ0YsT0FBT1AsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDVTtZQUNoQyxNQUFNLEVBQUVOLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUNILE1BQU07WUFDL0MsSUFBSSxDQUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDSixPQUFPLENBQUNhLFFBQVE7WUFDcEMsSUFBSSxDQUFDWCxLQUFLLEdBQUdKLGlCQUFpQmdCLFNBQVMsQ0FBQyxJ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QyxlQUFlO29CQUMvQixPQUFPQTtnQkFDWDtZQUNKLE9BQ0s7Z0JBQ0R4QyxRQUFRLENBQUNPLElBQUksR0FBR2E7WUFDcEI7WUFDQSxPQUFPcEI7UUFDWCxHQUFHLENBQUM7SUFDUjtJQUNBLGNBQWMsR0FDZCxPQUFPYyxVQUFVb0IsR0FBRyxFQUFFO1FBQ2xCLE9BQU9PLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsU0FBUyxDQUFDVDtJQUNyQztJQUNBLGNBQWMsR0FDZHhDLE9BQU9rRCxRQUFRLEVBQUU7UUFDYixJQUFJLENBQUNuRCxNQUFNLENBQUNDLE1BQU0sR0FBR2tEO0lBQ3pCO0lBQ0EsY0FBYyxHQUNkakQsUUFBUWlELFFBQVEsRUFBRTtRQUNkLElBQUksQ0FBQ25ELE1BQU0sQ0FBQ0UsT0FBTyxHQUFHaUQ7SUFDMUI7SUFDQSxjQUFjLEdBQ2RoRCxPQUFPZ0QsUUFBUSxFQUFFO1FBQ2IsSUFBSSxDQUFDbkQsTUFBTSxDQUFDRyxNQUFNLEdBQUdnRDtJQUN6QjtJQUNBLGNBQWMsR0FDZHZDLHFCQUFxQjtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDYixPQUFPLElBQUksSUFBSSxDQUFDQSxPQUFPLEtBQUssSUFBSSxDQUFDSixPQUFPLENBQUNhLFFBQVE7SUFDbEU7QUFDSixFQUNBLDRDQUE0QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL1JlYWx0aW1lUHJlc2VuY2UuanM/Y2VjMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICBUaGlzIGZpbGUgZHJhd3MgaGVhdmlseSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9lbml4ZnJhbWV3b3JrL3Bob2VuaXgvYmxvYi9kMzQ0ZWMwYTczMmFiNGVlMjA0MjE1YjMxZGU2OWNmNGJlNzJlM2JmL2Fzc2V0cy9qcy9waG9lbml4L3ByZXNlbmNlLmpzXG4gIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9waG9lbml4ZnJhbWV3b3JrL3Bob2VuaXgvYmxvYi9kMzQ0ZWMwYTczMmFiNGVlMjA0MjE1YjMxZGU2OWNmNGJlNzJlM2JmL0xJQ0VOU0UubWRcbiovXG5leHBvcnQgdmFyIFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFM7XG4oZnVuY3Rpb24gKFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFMpIHtcbiAgICBSRUFMVElNRV9QUkVTRU5DRV9MSVNURU5fRVZFTlRTW1wiU1lOQ1wiXSA9IFwic3luY1wiO1xuICAgIFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFNbXCJKT0lOXCJdID0gXCJqb2luXCI7XG4gICAgUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UU1tcIkxFQVZFXCJdID0gXCJsZWF2ZVwiO1xufSkoUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUyB8fCAoUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUyA9IHt9KSk7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZWFsdGltZVByZXNlbmNlIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyB0aGUgUHJlc2VuY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2hhbm5lbCAtIFRoZSBSZWFsdGltZUNoYW5uZWxcbiAgICAgKiBAcGFyYW0gb3B0cyAtIFRoZSBvcHRpb25zLFxuICAgICAqICAgICAgICBmb3IgZXhhbXBsZSBge2V2ZW50czoge3N0YXRlOiAnc3RhdGUnLCBkaWZmOiAnZGlmZid9fWBcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihjaGFubmVsLCBvcHRzKSB7XG4gICAgICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWw7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgICAgICAgdGhpcy5wZW5kaW5nRGlmZnMgPSBbXTtcbiAgICAgICAgdGhpcy5qb2luUmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5jYWxsZXIgPSB7XG4gICAgICAgICAgICBvbkpvaW46ICgpID0+IHsgfSxcbiAgICAgICAgICAgIG9uTGVhdmU6ICgpID0+IHsgfSxcbiAgICAgICAgICAgIG9uU3luYzogKCkgPT4geyB9LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBldmVudHMgPSAob3B0cyA9PT0gbnVsbCB8fCBvcHRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRzLmV2ZW50cykgfHwge1xuICAgICAgICAgICAgc3RhdGU6ICdwcmVzZW5jZV9zdGF0ZScsXG4gICAgICAgICAgICBkaWZmOiAncHJlc2VuY2VfZGlmZicsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2hhbm5lbC5fb24oZXZlbnRzLnN0YXRlLCB7fSwgKG5ld1N0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IG9uSm9pbiwgb25MZWF2ZSwgb25TeW5jIH0gPSB0aGlzLmNhbGxlcjtcbiAgICAgICAgICAgIHRoaXMuam9pblJlZiA9IHRoaXMuY2hhbm5lbC5fam9pblJlZigpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFJlYWx0aW1lUHJlc2VuY2Uuc3luY1N0YXRlKHRoaXMuc3RhdGUsIG5ld1N0YXRlLCBvbkpvaW4sIG9uTGVhdmUpO1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nRGlmZnMuZm9yRWFjaCgoZGlmZikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBSZWFsdGltZVByZXNlbmNlLnN5bmNEaWZmKHRoaXMuc3RhdGUsIGRpZmYsIG9uSm9pbiwgb25MZWF2ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0RpZmZzID0gW107XG4gICAgICAgICAgICBvblN5bmMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2hhbm5lbC5fb24oZXZlbnRzLmRpZmYsIHt9LCAoZGlmZikgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBvbkpvaW4sIG9uTGVhdmUsIG9uU3luYyB9ID0gdGhpcy5jYWxsZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5pblBlbmRpbmdTeW5jU3RhdGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0RpZmZzLnB1c2goZGlmZik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gUmVhbHRpbWVQcmVzZW5jZS5zeW5jRGlmZih0aGlzLnN0YXRlLCBkaWZmLCBvbkpvaW4sIG9uTGVhdmUpO1xuICAgICAgICAgICAgICAgIG9uU3luYygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkpvaW4oKGtleSwgY3VycmVudFByZXNlbmNlcywgbmV3UHJlc2VuY2VzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwuX3RyaWdnZXIoJ3ByZXNlbmNlJywge1xuICAgICAgICAgICAgICAgIGV2ZW50OiAnam9pbicsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQcmVzZW5jZXMsXG4gICAgICAgICAgICAgICAgbmV3UHJlc2VuY2VzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uTGVhdmUoKGtleSwgY3VycmVudFByZXNlbmNlcywgbGVmdFByZXNlbmNlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGFubmVsLl90cmlnZ2VyKCdwcmVzZW5jZScsIHtcbiAgICAgICAgICAgICAgICBldmVudDogJ2xlYXZlJyxcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgY3VycmVudFByZXNlbmNlcyxcbiAgICAgICAgICAgICAgICBsZWZ0UHJlc2VuY2VzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uU3luYygoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwuX3RyaWdnZXIoJ3ByZXNlbmNlJywgeyBldmVudDogJ3N5bmMnIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXNlZCB0byBzeW5jIHRoZSBsaXN0IG9mIHByZXNlbmNlcyBvbiB0aGUgc2VydmVyIHdpdGggdGhlXG4gICAgICogY2xpZW50J3Mgc3RhdGUuXG4gICAgICpcbiAgICAgKiBBbiBvcHRpb25hbCBgb25Kb2luYCBhbmQgYG9uTGVhdmVgIGNhbGxiYWNrIGNhbiBiZSBwcm92aWRlZCB0b1xuICAgICAqIHJlYWN0IHRvIGNoYW5nZXMgaW4gdGhlIGNsaWVudCdzIGxvY2FsIHByZXNlbmNlcyBhY3Jvc3NcbiAgICAgKiBkaXNjb25uZWN0cyBhbmQgcmVjb25uZWN0cyB3aXRoIHRoZSBzZXJ2ZXIuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBzdGF0aWMgc3luY1N0YXRlKGN1cnJlbnRTdGF0ZSwgbmV3U3RhdGUsIG9uSm9pbiwgb25MZWF2ZSkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY2xvbmVEZWVwKGN1cnJlbnRTdGF0ZSk7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkU3RhdGUgPSB0aGlzLnRyYW5zZm9ybVN0YXRlKG5ld1N0YXRlKTtcbiAgICAgICAgY29uc3Qgam9pbnMgPSB7fTtcbiAgICAgICAgY29uc3QgbGVhdmVzID0ge307XG4gICAgICAgIHRoaXMubWFwKHN0YXRlLCAoa2V5LCBwcmVzZW5jZXMpID0+IHtcbiAgICAgICAgICAgIGlmICghdHJhbnNmb3JtZWRTdGF0ZVtrZXldKSB7XG4gICAgICAgICAgICAgICAgbGVhdmVzW2tleV0gPSBwcmVzZW5jZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1hcCh0cmFuc2Zvcm1lZFN0YXRlLCAoa2V5LCBuZXdQcmVzZW5jZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQcmVzZW5jZXMgPSBzdGF0ZVtrZXldO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRQcmVzZW5jZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdQcmVzZW5jZVJlZnMgPSBuZXdQcmVzZW5jZXMubWFwKChtKSA9PiBtLnByZXNlbmNlX3JlZik7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VyUHJlc2VuY2VSZWZzID0gY3VycmVudFByZXNlbmNlcy5tYXAoKG0pID0+IG0ucHJlc2VuY2VfcmVmKTtcbiAgICAgICAgICAgICAgICBjb25zdCBqb2luZWRQcmVzZW5jZXMgPSBuZXdQcmVzZW5jZXMuZmlsdGVyKChtKSA9PiBjdXJQcmVzZW5jZVJlZnMuaW5kZXhPZihtLnByZXNlbmNlX3JlZikgPCAwKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0UHJlc2VuY2VzID0gY3VycmVudFByZXNlbmNlcy5maWx0ZXIoKG0pID0+IG5ld1ByZXNlbmNlUmVmcy5pbmRleE9mKG0ucHJlc2VuY2VfcmVmKSA8IDApO1xuICAgICAgICAgICAgICAgIGlmIChqb2luZWRQcmVzZW5jZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBqb2luc1trZXldID0gam9pbmVkUHJlc2VuY2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobGVmdFByZXNlbmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlYXZlc1trZXldID0gbGVmdFByZXNlbmNlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBqb2luc1trZXldID0gbmV3UHJlc2VuY2VzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3luY0RpZmYoc3RhdGUsIHsgam9pbnMsIGxlYXZlcyB9LCBvbkpvaW4sIG9uTGVhdmUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHN5bmMgYSBkaWZmIG9mIHByZXNlbmNlIGpvaW4gYW5kIGxlYXZlIGV2ZW50cyBmcm9tIHRoZVxuICAgICAqIHNlcnZlciwgYXMgdGhleSBoYXBwZW4uXG4gICAgICpcbiAgICAgKiBMaWtlIGBzeW5jU3RhdGVgLCBgc3luY0RpZmZgIGFjY2VwdHMgb3B0aW9uYWwgYG9uSm9pbmAgYW5kXG4gICAgICogYG9uTGVhdmVgIGNhbGxiYWNrcyB0byByZWFjdCB0byBhIHVzZXIgam9pbmluZyBvciBsZWF2aW5nIGZyb20gYVxuICAgICAqIGRldmljZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHN0YXRpYyBzeW5jRGlmZihzdGF0ZSwgZGlmZiwgb25Kb2luLCBvbkxlYXZlKSB7XG4gICAgICAgIGNvbnN0IHsgam9pbnMsIGxlYXZlcyB9ID0ge1xuICAgICAgICAgICAgam9pbnM6IHRoaXMudHJhbnNmb3JtU3RhdGUoZGlmZi5qb2lucyksXG4gICAgICAgICAgICBsZWF2ZXM6IHRoaXMudHJhbnNmb3JtU3RhdGUoZGlmZi5sZWF2ZXMpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIW9uSm9pbikge1xuICAgICAgICAgICAgb25Kb2luID0gKCkgPT4geyB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghb25MZWF2ZSkge1xuICAgICAgICAgICAgb25MZWF2ZSA9ICgpID0+IHsgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hcChqb2lucywgKGtleSwgbmV3UHJlc2VuY2VzKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UHJlc2VuY2VzID0gKF9hID0gc3RhdGVba2V5XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW107XG4gICAgICAgICAgICBzdGF0ZVtrZXldID0gdGhpcy5jbG9uZURlZXAobmV3UHJlc2VuY2VzKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UHJlc2VuY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBqb2luZWRQcmVzZW5jZVJlZnMgPSBzdGF0ZVtrZXldLm1hcCgobSkgPT4gbS5wcmVzZW5jZV9yZWYpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1clByZXNlbmNlcyA9IGN1cnJlbnRQcmVzZW5jZXMuZmlsdGVyKChtKSA9PiBqb2luZWRQcmVzZW5jZVJlZnMuaW5kZXhPZihtLnByZXNlbmNlX3JlZikgPCAwKTtcbiAgICAgICAgICAgICAgICBzdGF0ZVtrZXldLnVuc2hpZnQoLi4uY3VyUHJlc2VuY2VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uSm9pbihrZXksIGN1cnJlbnRQcmVzZW5jZXMsIG5ld1ByZXNlbmNlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1hcChsZWF2ZXMsIChrZXksIGxlZnRQcmVzZW5jZXMpID0+IHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50UHJlc2VuY2VzID0gc3RhdGVba2V5XTtcbiAgICAgICAgICAgIGlmICghY3VycmVudFByZXNlbmNlcylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBwcmVzZW5jZVJlZnNUb1JlbW92ZSA9IGxlZnRQcmVzZW5jZXMubWFwKChtKSA9PiBtLnByZXNlbmNlX3JlZik7XG4gICAgICAgICAgICBjdXJyZW50UHJlc2VuY2VzID0gY3VycmVudFByZXNlbmNlcy5maWx0ZXIoKG0pID0+IHByZXNlbmNlUmVmc1RvUmVtb3ZlLmluZGV4T2YobS5wcmVzZW5jZV9yZWYpIDwgMCk7XG4gICAgICAgICAgICBzdGF0ZVtrZXldID0gY3VycmVudFByZXNlbmNlcztcbiAgICAgICAgICAgIG9uTGVhdmUoa2V5LCBjdXJyZW50UHJlc2VuY2VzLCBsZWZ0UHJlc2VuY2VzKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UHJlc2VuY2VzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgICAgICBkZWxldGUgc3RhdGVba2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHN0YXRpYyBtYXAob2JqLCBmdW5jKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLm1hcCgoa2V5KSA9PiBmdW5jKGtleSwgb2JqW2tleV0pKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlICdtZXRhcycga2V5XG4gICAgICogQ2hhbmdlICdwaHhfcmVmJyB0byAncHJlc2VuY2VfcmVmJ1xuICAgICAqIFJlbW92ZSAncGh4X3JlZicgYW5kICdwaHhfcmVmX3ByZXYnXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIC8vIHJldHVybnMge1xuICAgICAqICBhYmMxMjM6IFtcbiAgICAgKiAgICB7IHByZXNlbmNlX3JlZjogJzInLCB1c2VyX2lkOiAxIH0sXG4gICAgICogICAgeyBwcmVzZW5jZV9yZWY6ICczJywgdXNlcl9pZDogMiB9XG4gICAgICogIF1cbiAgICAgKiB9XG4gICAgICogUmVhbHRpbWVQcmVzZW5jZS50cmFuc2Zvcm1TdGF0ZSh7XG4gICAgICogIGFiYzEyMzoge1xuICAgICAqICAgIG1ldGFzOiBbXG4gICAgICogICAgICB7IHBoeF9yZWY6ICcyJywgcGh4X3JlZl9wcmV2OiAnMScgdXNlcl9pZDogMSB9LFxuICAgICAqICAgICAgeyBwaHhfcmVmOiAnMycsIHVzZXJfaWQ6IDIgfVxuICAgICAqICAgIF1cbiAgICAgKiAgfVxuICAgICAqIH0pXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBzdGF0aWMgdHJhbnNmb3JtU3RhdGUoc3RhdGUpIHtcbiAgICAgICAgc3RhdGUgPSB0aGlzLmNsb25lRGVlcChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzdGF0ZSkucmVkdWNlKChuZXdTdGF0ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmVzZW5jZXMgPSBzdGF0ZVtrZXldO1xuICAgICAgICAgICAgaWYgKCdtZXRhcycgaW4gcHJlc2VuY2VzKSB7XG4gICAgICAgICAgICAgICAgbmV3U3RhdGVba2V5XSA9IHByZXNlbmNlcy5tZXRhcy5tYXAoKHByZXNlbmNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHByZXNlbmNlWydwcmVzZW5jZV9yZWYnXSA9IHByZXNlbmNlWydwaHhfcmVmJ107XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwcmVzZW5jZVsncGh4X3JlZiddO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcHJlc2VuY2VbJ3BoeF9yZWZfcHJldiddO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJlc2VuY2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdTdGF0ZVtrZXldID0gcHJlc2VuY2VzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgICAgICB9LCB7fSk7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBzdGF0aWMgY2xvbmVEZWVwKG9iaikge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uSm9pbihjYWxsYmFjaykge1xuICAgICAgICB0aGlzLmNhbGxlci5vbkpvaW4gPSBjYWxsYmFjaztcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uTGVhdmUoY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5jYWxsZXIub25MZWF2ZSA9IGNhbGxiYWNrO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgb25TeW5jKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuY2FsbGVyLm9uU3luYyA9IGNhbGxiYWNrO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgaW5QZW5kaW5nU3luY1N0YXRlKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuam9pblJlZiB8fCB0aGlzLmpvaW5SZWYgIT09IHRoaXMuY2hhbm5lbC5fam9pblJlZigpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWx0aW1lUHJlc2VuY2UuanMubWFwIl0sIm5hbWVzIjpbIlJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFMiLCJSZWFsdGltZVByZXNlbmNlIiwiY29uc3RydWN0b3IiLCJjaGFubmVsIiwib3B0cyIsInN0YXRlIiwicGVuZGluZ0RpZmZzIiwiam9pblJlZiIsImNhbGxlciIsIm9uSm9pbiIsIm9uTGVhdmUiLCJvblN5bmMiLCJldmVudHMiLCJkaWZmIiwiX29uIiwibmV3U3RhdGUiLCJfam9pblJlZiIsInN5bmNTdGF0ZSIsImZvckVhY2giLCJzeW5jRGlmZiIsImluUGVuZGluZ1N5bmNTdGF0ZSIsInB1c2giLCJrZXkiLCJjdXJyZW50UHJlc2VuY2VzIiwibmV3UHJlc2VuY2VzIiwiX3RyaWdnZXIiLCJldmVudCIsImxlZnRQcmVzZW5jZXMiLCJjdXJyZW50U3RhdGUiLCJjbG9uZURlZXAiLCJ0cmFuc2Zvcm1lZFN0YXRlIiwidHJhbnNmb3JtU3RhdGUiLCJqb2lucyIsImxlYXZlcyIsIm1hcCIsInByZXNlbmNlcyIsIm5ld1ByZXNlbmNlUmVmcyIsIm0iLCJwcmVzZW5jZV9yZWYiLCJjdXJQcmVzZW5jZVJlZnMiLCJqb2luZWRQcmVzZW5jZXMiLCJmaWx0ZXIiLCJpbmRleE9mIiwibGVuZ3RoIiwiX2EiLCJqb2luZWRQcmVzZW5jZVJlZnMiLCJjdXJQcmVzZW5jZXMiLCJ1bnNoaWZ0IiwicHJlc2VuY2VSZWZzVG9SZW1vdmUiLCJvYmoiLCJmdW5jIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInJlZHVjZSIsIm1ldGFzIiwicHJlc2VuY2UiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJjYWxsYmFjayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_CHANNEL_STATES: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_CHANNEL_STATES),\n/* harmony export */ REALTIME_LISTEN_TYPES: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_LISTEN_TYPES),\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT),\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: () => (/* reexport safe */ _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__.REALTIME_PRESENCE_LISTEN_EVENTS),\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_SUBSCRIBE_STATES),\n/* harmony export */ RealtimeChannel: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ RealtimeClient: () => (/* reexport safe */ _RealtimeClient__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ RealtimePresence: () => (/* reexport safe */ _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _RealtimeClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RealtimeClient */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js\");\n/* harmony import */ var _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RealtimeChannel */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\");\n/* harmony import */ var _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RealtimePresence */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\");\n\n\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE4QztBQUMwSDtBQUNoRjtBQUMwSCxDQUNsTixpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9pbmRleC5qcz81NTVkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFsdGltZUNsaWVudCBmcm9tICcuL1JlYWx0aW1lQ2xpZW50JztcbmltcG9ydCBSZWFsdGltZUNoYW5uZWwsIHsgUkVBTFRJTUVfTElTVEVOX1RZUEVTLCBSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCwgUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFUywgUkVBTFRJTUVfQ0hBTk5FTF9TVEFURVMsIH0gZnJvbSAnLi9SZWFsdGltZUNoYW5uZWwnO1xuaW1wb3J0IFJlYWx0aW1lUHJlc2VuY2UsIHsgUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUywgfSBmcm9tICcuL1JlYWx0aW1lUHJlc2VuY2UnO1xuZXhwb3J0IHsgUmVhbHRpbWVQcmVzZW5jZSwgUmVhbHRpbWVDaGFubmVsLCBSZWFsdGltZUNsaWVudCwgUkVBTFRJTUVfTElTVEVOX1RZUEVTLCBSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCwgUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUywgUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFUywgUkVBTFRJTUVfQ0hBTk5FTF9TVEFURVMsIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiUmVhbHRpbWVDbGllbnQiLCJSZWFsdGltZUNoYW5uZWwiLCJSRUFMVElNRV9MSVNURU5fVFlQRVMiLCJSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCIsIlJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMiLCJSRUFMVElNRV9DSEFOTkVMX1NUQVRFUyIsIlJlYWx0aW1lUHJlc2VuY2UiLCJSRUFMVElNRV9QUkVTRU5DRV9MSVNURU5fRVZFTlRTIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/constants.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CHANNEL_EVENTS: () => (/* binding */ CHANNEL_EVENTS),\n/* harmony export */ CHANNEL_STATES: () => (/* binding */ CHANNEL_STATES),\n/* harmony export */ CONNECTION_STATE: () => (/* binding */ CONNECTION_STATE),\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS),\n/* harmony export */ DEFAULT_TIMEOUT: () => (/* binding */ DEFAULT_TIMEOUT),\n/* harmony export */ SOCKET_STATES: () => (/* binding */ SOCKET_STATES),\n/* harmony export */ TRANSPORTS: () => (/* binding */ TRANSPORTS),\n/* harmony export */ VSN: () => (/* binding */ VSN),\n/* harmony export */ WS_CLOSE_NORMAL: () => (/* binding */ WS_CLOSE_NORMAL)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js\");\n\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `realtime-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n};\nconst VSN = \"1.0.0\";\nconst DEFAULT_TIMEOUT = 10000;\nconst WS_CLOSE_NORMAL = 1000;\nvar SOCKET_STATES;\n(function(SOCKET_STATES) {\n SOCKET_STATES[SOCKET_STATES[\"connecting\"] = 0] = \"connecting\";\n SOCKET_STATES[SOCKET_STATES[\"open\"] = 1] = \"open\";\n SOCKET_STATES[SOCKET_STATES[\"closing\"] = 2] = \"closing\";\n SOCKET_STATES[SOCKET_STATES[\"closed\"] = 3] = \"closed\";\n})(SOCKET_STATES || (SOCKET_STATES = {}));\nvar CHANNEL_STATES;\n(function(CHANNEL_STATES) {\n CHANNEL_STATES[\"closed\"] = \"closed\";\n CHANNEL_STATES[\"errored\"] = \"errored\";\n CHANNEL_STATES[\"joined\"] = \"joined\";\n CHANNEL_STATES[\"joining\"] = \"joining\";\n CHANNEL_STATES[\"leaving\"] = \"leaving\";\n})(CHANNEL_STATES || (CHANNEL_STATES = {}));\nvar CHANNEL_EVENTS;\n(function(CHANNEL_EVENTS) {\n CHANNEL_EVENTS[\"close\"] = \"phx_close\";\n CHANNEL_EVENTS[\"error\"] = \"phx_error\";\n CHANNEL_EVENTS[\"join\"] = \"phx_join\";\n CHANNEL_EVENTS[\"reply\"] = \"phx_reply\";\n CHANNEL_EVENTS[\"leave\"] = \"phx_leave\";\n CHANNEL_EVENTS[\"access_token\"] = \"access_token\";\n})(CHANNEL_EVENTS || (CHANNEL_EVENTS = {}));\nvar TRANSPORTS;\n(function(TRANSPORTS) {\n TRANSPORTS[\"websocket\"] = \"websocket\";\n})(TRANSPORTS || (TRANSPORTS = {}));\nvar CONNECTION_STATE;\n(function(CONNECTION_STATE) {\n CONNECTION_STATE[\"Connecting\"] = \"connecting\";\n CONNECTION_STATE[\"Open\"] = \"open\";\n CONNECTION_STATE[\"Closing\"] = \"closing\";\n CONNECTION_STATE[\"Closed\"] = \"closed\";\n})(CONNECTION_STATE || (CONNECTION_STATE = {})); //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBb0M7QUFDN0IsTUFBTUMsa0JBQWtCO0lBQUUsaUJBQWlCLENBQUMsWUFBWSxFQUFFRCw2Q0FBT0EsQ0FBQyxDQUFDO0FBQUMsRUFBRTtBQUN0RSxNQUFNRSxNQUFNLFFBQVE7QUFDcEIsTUFBTUMsa0JBQWtCLE1BQU07QUFDOUIsTUFBTUMsa0JBQWtCLEtBQUs7QUFDN0IsSUFBSUMsY0FBYztBQUN4QixVQUFVQSxhQUFhO0lBQ3BCQSxhQUFhLENBQUNBLGFBQWEsQ0FBQyxhQUFhLEdBQUcsRUFBRSxHQUFHO0lBQ2pEQSxhQUFhLENBQUNBLGFBQWEsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHO0lBQzNDQSxhQUFhLENBQUNBLGFBQWEsQ0FBQyxVQUFVLEdBQUcsRUFBRSxHQUFHO0lBQzlDQSxhQUFhLENBQUNBLGFBQWEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxHQUFHO0FBQ2pELEdBQUdBLGlCQUFrQkEsQ0FBQUEsZ0JBQWdCLENBQUM7QUFDL0IsSUFBSUMsZUFBZTtBQUN6QixVQUFVQSxjQUFjO0lBQ3JCQSxjQUFjLENBQUMsU0FBUyxHQUFHO0lBQzNCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0lBQzVCQSxjQUFjLENBQUMsU0FBUyxHQUFHO0lBQzNCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0lBQzVCQSxjQUFjLENBQUMsVUFBVSxHQUFHO0FBQ2hDLEdBQUdBLGtCQUFtQkEsQ0FBQUEsaUJBQWlCLENBQUM7QUFDakMsSUFBSUMsZUFBZTtBQUN6QixVQUFVQSxjQUFjO0lBQ3JCQSxjQUFjLENBQUMsUUFBUSxHQUFHO0lBQzFCQSxjQUFjLENBQUMsUUFBUSxHQUFHO0lBQzFCQSxjQUFjLENBQUMsT0FBTyxHQUFHO0lBQ3pCQSxjQUFjLENBQUMsUUFBUSxHQUFHO0lBQzFCQSxjQUFjLENBQUMsUUFBUSxHQUFHO0lBQzFCQSxjQUFjLENBQUMsZUFBZSxHQUFHO0FBQ3JDLEdBQUdBLGtCQUFtQkEsQ0FBQUEsaUJBQWlCLENBQUM7QUFDakMsSUFBSUMsV0FBVztBQUNyQixVQUFVQSxVQUFVO0lBQ2pCQSxVQUFVLENBQUMsWUFBWSxHQUFHO0FBQzlCLEdBQUdBLGNBQWVBLENBQUFBLGFBQWEsQ0FBQztBQUN6QixJQUFJQyxpQkFBaUI7QUFDM0IsVUFBVUEsZ0JBQWdCO0lBQ3ZCQSxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUc7SUFDakNBLGdCQUFnQixDQUFDLE9BQU8sR0FBRztJQUMzQkEsZ0JBQWdCLENBQUMsVUFBVSxHQUFHO0lBQzlCQSxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUc7QUFDakMsR0FBR0Esb0JBQXFCQSxDQUFBQSxtQkFBbUIsQ0FBQyxLQUM1QyxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzP2FjMTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4vdmVyc2lvbic7XG5leHBvcnQgY29uc3QgREVGQVVMVF9IRUFERVJTID0geyAnWC1DbGllbnQtSW5mbyc6IGByZWFsdGltZS1qcy8ke3ZlcnNpb259YCB9O1xuZXhwb3J0IGNvbnN0IFZTTiA9ICcxLjAuMCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FT1VUID0gMTAwMDA7XG5leHBvcnQgY29uc3QgV1NfQ0xPU0VfTk9STUFMID0gMTAwMDtcbmV4cG9ydCB2YXIgU09DS0VUX1NUQVRFUztcbihmdW5jdGlvbiAoU09DS0VUX1NUQVRFUykge1xuICAgIFNPQ0tFVF9TVEFURVNbU09DS0VUX1NUQVRFU1tcImNvbm5lY3RpbmdcIl0gPSAwXSA9IFwiY29ubmVjdGluZ1wiO1xuICAgIFNPQ0tFVF9TVEFURVNbU09DS0VUX1NUQVRFU1tcIm9wZW5cIl0gPSAxXSA9IFwib3BlblwiO1xuICAgIFNPQ0tFVF9TVEFURVNbU09DS0VUX1NUQVRFU1tcImNsb3NpbmdcIl0gPSAyXSA9IFwiY2xvc2luZ1wiO1xuICAgIFNPQ0tFVF9TVEFURVNbU09DS0VUX1NUQVRFU1tcImNsb3NlZFwiXSA9IDNdID0gXCJjbG9zZWRcIjtcbn0pKFNPQ0tFVF9TVEFURVMgfHwgKFNPQ0tFVF9TVEFURVMgPSB7fSkpO1xuZXhwb3J0IHZhciBDSEFOTkVMX1NUQVRFUztcbihmdW5jdGlvbiAoQ0hBTk5FTF9TVEFURVMpIHtcbiAgICBDSEFOTkVMX1NUQVRFU1tcImNsb3NlZFwiXSA9IFwiY2xvc2VkXCI7XG4gICAgQ0hBTk5FTF9TVEFURVNbXCJlcnJvcmVkXCJdID0gXCJlcnJvcmVkXCI7XG4gICAgQ0hBTk5FTF9TVEFURVNbXCJqb2luZWRcIl0gPSBcImpvaW5lZFwiO1xuICAgIENIQU5ORUxfU1RBVEVTW1wiam9pbmluZ1wiXSA9IFwiam9pbmluZ1wiO1xuICAgIENIQU5ORUxfU1RBVEVTW1wibGVhdmluZ1wiXSA9IFwibGVhdmluZ1wiO1xufSkoQ0hBTk5FTF9TVEFURVMgfHwgKENIQU5ORUxfU1RBVEVTID0ge30pKTtcbmV4cG9ydCB2YXIgQ0hBTk5FTF9FVkVOVFM7XG4oZnVuY3Rpb24gKENIQU5ORUxfRVZFTlRTKSB7XG4gICAgQ0hBTk5FTF9FVkVOVFNbXCJjbG9zZVwiXSA9IFwicGh4X2Nsb3NlXCI7XG4gICAgQ0hBTk5FTF9FVkVOVFNbXCJlcnJvclwiXSA9IFwicGh4X2Vycm9yXCI7XG4gICAgQ0hBTk5FTF9FVkVOVFNbXCJqb2luXCJdID0gXCJwaHhfam9pblwiO1xuICAgIENIQU5ORUxfRVZFTlRTW1wicmVwbHlcIl0gPSBcInBoeF9yZXBseVwiO1xuICAgIENIQU5ORUxfRVZFTlRTW1wibGVhdmVcIl0gPSBcInBoeF9sZWF2ZVwiO1xuICAgIENIQU5ORUxfRVZFTlRTW1wiYWNjZXNzX3Rva2VuXCJdID0gXCJhY2Nlc3NfdG9rZW5cIjtcbn0pKENIQU5ORUxfRVZFTlRTIHx8IChDSEFOTkVMX0VWRU5UUyA9IHt9KSk7XG5leHBvcnQgdmFyIFRSQU5TUE9SVFM7XG4oZnVuY3Rpb24gKFRSQU5TUE9SVFMpIHtcbiAgICBUUkFOU1BPUlRTW1wid2Vic29ja2V0XCJdID0gXCJ3ZWJzb2NrZXRcIjtcbn0pKFRSQU5TUE9SVFMgfHwgKFRSQU5TUE9SVFMgPSB7fSkpO1xuZXhwb3J0IHZhciBDT05ORUNUSU9OX1NUQVRFO1xuKGZ1bmN0aW9uIChDT05ORUNUSU9OX1NUQVRFKSB7XG4gICAgQ09OTkVDVElPTl9TVEFURVtcIkNvbm5lY3RpbmdcIl0gPSBcImNvbm5lY3RpbmdcIjtcbiAgICBDT05ORUNUSU9OX1NUQVRFW1wiT3BlblwiXSA9IFwib3BlblwiO1xuICAgIENPTk5FQ1RJT05fU1RBVEVbXCJDbG9zaW5nXCJdID0gXCJjbG9zaW5nXCI7XG4gICAgQ09OTkVDVElPTl9TVEFURVtcIkNsb3NlZFwiXSA9IFwiY2xvc2VkXCI7XG59KShDT05ORUNUSU9OX1NUQVRFIHx8IChDT05ORUNUSU9OX1NUQVRFID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOlsidmVyc2lvbiIsIkRFRkFVTFRfSEVBREVSUyIsIlZTTiIsIkRFRkFVTFRfVElNRU9VVCIsIldTX0NMT1NFX05PUk1BTCIsIlNPQ0tFVF9TVEFURVMiLCJDSEFOTkVMX1NUQVRFUyIsIkNIQU5ORUxfRVZFTlRTIiwiVFJBTlNQT1JUUyIsIkNPTk5FQ1RJT05fU1RBVEUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/push.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Push)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/constants */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n\nclass Push {\n /**\n * Initializes the Push\n *\n * @param channel The Channel\n * @param event The event, for example `\"phx_join\"`\n * @param payload The payload, for example `{user_id: 123}`\n * @param timeout The push timeout in milliseconds\n */ constructor(channel, event, payload = {}, timeout = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_TIMEOUT){\n this.channel = channel;\n this.event = event;\n this.payload = payload;\n this.timeout = timeout;\n this.sent = false;\n this.timeoutTimer = undefined;\n this.ref = \"\";\n this.receivedResp = null;\n this.recHooks = [];\n this.refEvent = null;\n }\n resend(timeout) {\n this.timeout = timeout;\n this._cancelRefEvent();\n this.ref = \"\";\n this.refEvent = null;\n this.receivedResp = null;\n this.sent = false;\n this.send();\n }\n send() {\n if (this._hasReceived(\"timeout\")) {\n return;\n }\n this.startTimeout();\n this.sent = true;\n this.channel.socket.push({\n topic: this.channel.topic,\n event: this.event,\n payload: this.payload,\n ref: this.ref,\n join_ref: this.channel._joinRef()\n });\n }\n updatePayload(payload) {\n this.payload = Object.assign(Object.assign({}, this.payload), payload);\n }\n receive(status, callback) {\n var _a;\n if (this._hasReceived(status)) {\n callback((_a = this.receivedResp) === null || _a === void 0 ? void 0 : _a.response);\n }\n this.recHooks.push({\n status,\n callback\n });\n return this;\n }\n startTimeout() {\n if (this.timeoutTimer) {\n return;\n }\n this.ref = this.channel.socket._makeRef();\n this.refEvent = this.channel._replyEventName(this.ref);\n const callback = (payload)=>{\n this._cancelRefEvent();\n this._cancelTimeout();\n this.receivedResp = payload;\n this._matchReceive(payload);\n };\n this.channel._on(this.refEvent, {}, callback);\n this.timeoutTimer = setTimeout(()=>{\n this.trigger(\"timeout\", {});\n }, this.timeout);\n }\n trigger(status, response) {\n if (this.refEvent) this.channel._trigger(this.refEvent, {\n status,\n response\n });\n }\n destroy() {\n this._cancelRefEvent();\n this._cancelTimeout();\n }\n _cancelRefEvent() {\n if (!this.refEvent) {\n return;\n }\n this.channel._off(this.refEvent, {});\n }\n _cancelTimeout() {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = undefined;\n }\n _matchReceive({ status, response }) {\n this.recHooks.filter((h)=>h.status === status).forEach((h)=>h.callback(response));\n }\n _hasReceived(status) {\n return this.receivedResp && this.receivedResp.status === status;\n }\n} //# sourceMappingURL=push.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvcHVzaC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFtRDtBQUNwQyxNQUFNQztJQUNqQjs7Ozs7OztLQU9DLEdBQ0RDLFlBQVlDLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxVQUFVLENBQUMsQ0FBQyxFQUFFQyxVQUFVTiwyREFBZSxDQUFFO1FBQ2pFLElBQUksQ0FBQ0csT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDQyxZQUFZLEdBQUdDO1FBQ3BCLElBQUksQ0FBQ0MsR0FBRyxHQUFHO1FBQ1gsSUFBSSxDQUFDQyxZQUFZLEdBQUc7UUFDcEIsSUFBSSxDQUFDQyxRQUFRLEdBQUcsRUFBRTtRQUNsQixJQUFJLENBQUNDLFFBQVEsR0FBRztJQUNwQjtJQUNBQyxPQUFPUixPQUFPLEVBQUU7UUFDWixJQUFJLENBQUNBLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNTLGVBQWU7UUFDcEIsSUFBSSxDQUFDTCxHQUFHLEdBQUc7UUFDWCxJQUFJLENBQUNHLFFBQVEsR0FBRztRQUNoQixJQUFJLENBQUNGLFlBQVksR0FBRztRQUNwQixJQUFJLENBQUNKLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ1MsSUFBSTtJQUNiO0lBQ0FBLE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQ0MsWUFBWSxDQUFDLFlBQVk7WUFDOUI7UUFDSjtRQUNBLElBQUksQ0FBQ0MsWUFBWTtRQUNqQixJQUFJLENBQUNYLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ0osT0FBTyxDQUFDZ0IsTUFBTSxDQUFDQyxJQUFJLENBQUM7WUFDckJDLE9BQU8sSUFBSSxDQUFDbEIsT0FBTyxDQUFDa0IsS0FBSztZQUN6QmpCLE9BQU8sSUFBSSxDQUFDQSxLQUFLO1lBQ2pCQyxTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUNyQkssS0FBSyxJQUFJLENBQUNBLEdBQUc7WUFDYlksVUFBVSxJQUFJLENBQUNuQixPQUFPLENBQUNvQixRQUFRO1FBQ25DO0lBQ0o7SUFDQUMsY0FBY25CLE9BQU8sRUFBRTtRQUNuQixJQUFJLENBQUNBLE9BQU8sR0FBR29CLE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUNyQixPQUFPLEdBQUdBO0lBQ2xFO0lBQ0FzQixRQUFRQyxNQUFNLEVBQUVDLFFBQVEsRUFBRTtRQUN0QixJQUFJQztRQUNKLElBQUksSUFBSSxDQUFDYixZQUFZLENBQUNXLFNBQVM7WUFDM0JDLFNBQVMsQ0FBQ0MsS0FBSyxJQUFJLENBQUNuQixZQUFZLE1BQU0sUUFBUW1CLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR0MsUUFBUTtRQUN0RjtRQUNBLElBQUksQ0FBQ25CLFFBQVEsQ0FBQ1EsSUFBSSxDQUFDO1lBQUVRO1lBQVFDO1FBQVM7UUFDdEMsT0FBTyxJQUFJO0lBQ2Y7SUFDQVgsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDVixZQUFZLEVBQUU7WUFDbkI7UUFDSjtRQUNBLElBQUksQ0FBQ0UsR0FBRyxHQUFHLElBQUksQ0FBQ1AsT0FBTyxDQUFDZ0IsTUFBTSxDQUFDYSxRQUFRO1FBQ3ZDLElBQUksQ0FBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUNWLE9BQU8sQ0FBQzhCLGVBQWUsQ0FBQyxJQUFJLENBQUN2QixHQUFHO1FBQ3JELE1BQU1tQixXQUFXLENBQUN4QjtZQUNkLElBQUksQ0FBQ1UsZUFBZTtZQUNwQixJQUFJLENBQUNtQixjQUFjO1lBQ25CLElBQUksQ0FBQ3ZCLFlBQVksR0FBR047WUFDcEIsSUFBSSxDQUFDOEIsYUFBYSxDQUFDOUI7UUFDdkI7UUFDQSxJQUFJLENBQUNGLE9BQU8sQ0FBQ2lDLEdBQUcsQ0FBQyxJQUFJLENBQUN2QixRQUFRLEVBQUUsQ0FBQyxHQUFHZ0I7UUFDcEMsSUFBSSxDQUFDckIsWUFBWSxHQUFHNkIsV0FBVztZQUMzQixJQUFJLENBQUNDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDN0IsR0FBRyxJQUFJLENBQUNoQyxPQUFPO0lBQ25CO0lBQ0FnQyxRQUFRVixNQUFNLEVBQUVHLFFBQVEsRUFBRTtRQUN0QixJQUFJLElBQUksQ0FBQ2xCLFFBQVEsRUFDYixJQUFJLENBQUNWLE9BQU8sQ0FBQ29DLFFBQVEsQ0FBQyxJQUFJLENBQUMxQixRQUFRLEVBQUU7WUFBRWU7WUFBUUc7UUFBUztJQUNoRTtJQUNBUyxVQUFVO1FBQ04sSUFBSSxDQUFDekIsZUFBZTtRQUNwQixJQUFJLENBQUNtQixjQUFjO0lBQ3ZCO0lBQ0FuQixrQkFBa0I7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDRixRQUFRLEVBQUU7WUFDaEI7UUFDSjtRQUNBLElBQUksQ0FBQ1YsT0FBTyxDQUFDc0MsSUFBSSxDQUFDLElBQUksQ0FBQzVCLFFBQVEsRUFBRSxDQUFDO0lBQ3RDO0lBQ0FxQixpQkFBaUI7UUFDYlEsYUFBYSxJQUFJLENBQUNsQyxZQUFZO1FBQzlCLElBQUksQ0FBQ0EsWUFBWSxHQUFHQztJQUN4QjtJQUNBMEIsY0FBYyxFQUFFUCxNQUFNLEVBQUVHLFFBQVEsRUFBRyxFQUFFO1FBQ2pDLElBQUksQ0FBQ25CLFFBQVEsQ0FDUitCLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFaEIsTUFBTSxLQUFLQSxRQUMzQmlCLE9BQU8sQ0FBQyxDQUFDRCxJQUFNQSxFQUFFZixRQUFRLENBQUNFO0lBQ25DO0lBQ0FkLGFBQWFXLE1BQU0sRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQ2pCLFlBQVksSUFBSSxJQUFJLENBQUNBLFlBQVksQ0FBQ2lCLE1BQU0sS0FBS0E7SUFDN0Q7QUFDSixFQUNBLGdDQUFnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi9wdXNoLmpzPzQ0OGYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9USU1FT1VUIH0gZnJvbSAnLi4vbGliL2NvbnN0YW50cyc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQdXNoIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyB0aGUgUHVzaFxuICAgICAqXG4gICAgICogQHBhcmFtIGNoYW5uZWwgVGhlIENoYW5uZWxcbiAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50LCBmb3IgZXhhbXBsZSBgXCJwaHhfam9pblwiYFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkLCBmb3IgZXhhbXBsZSBge3VzZXJfaWQ6IDEyM31gXG4gICAgICogQHBhcmFtIHRpbWVvdXQgVGhlIHB1c2ggdGltZW91dCBpbiBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihjaGFubmVsLCBldmVudCwgcGF5bG9hZCA9IHt9LCB0aW1lb3V0ID0gREVGQVVMVF9USU1FT1VUKSB7XG4gICAgICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWw7XG4gICAgICAgIHRoaXMuZXZlbnQgPSBldmVudDtcbiAgICAgICAgdGhpcy5wYXlsb2FkID0gcGF5bG9hZDtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gdGltZW91dDtcbiAgICAgICAgdGhpcy5zZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGltZW91dFRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnJlZiA9ICcnO1xuICAgICAgICB0aGlzLnJlY2VpdmVkUmVzcCA9IG51bGw7XG4gICAgICAgIHRoaXMucmVjSG9va3MgPSBbXTtcbiAgICAgICAgdGhpcy5yZWZFdmVudCA9IG51bGw7XG4gICAgfVxuICAgIHJlc2VuZCh0aW1lb3V0KSB7XG4gICAgICAgIHRoaXMudGltZW91dCA9IHRpbWVvdXQ7XG4gICAgICAgIHRoaXMuX2NhbmNlbFJlZkV2ZW50KCk7XG4gICAgICAgIHRoaXMucmVmID0gJyc7XG4gICAgICAgIHRoaXMucmVmRXZlbnQgPSBudWxsO1xuICAgICAgICB0aGlzLnJlY2VpdmVkUmVzcCA9IG51bGw7XG4gICAgICAgIHRoaXMuc2VudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbmQoKTtcbiAgICB9XG4gICAgc2VuZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2hhc1JlY2VpdmVkKCd0aW1lb3V0JykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXJ0VGltZW91dCgpO1xuICAgICAgICB0aGlzLnNlbnQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNoYW5uZWwuc29ja2V0LnB1c2goe1xuICAgICAgICAgICAgdG9waWM6IHRoaXMuY2hhbm5lbC50b3BpYyxcbiAgICAgICAgICAgIGV2ZW50OiB0aGlzLmV2ZW50LFxuICAgICAgICAgICAgcGF5bG9hZDogdGhpcy5wYXlsb2FkLFxuICAgICAgICAgICAgcmVmOiB0aGlzLnJlZixcbiAgICAgICAgICAgIGpvaW5fcmVmOiB0aGlzLmNoYW5uZWwuX2pvaW5SZWYoKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHVwZGF0ZVBheWxvYWQocGF5bG9hZCkge1xuICAgICAgICB0aGlzLnBheWxvYWQgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMucGF5bG9hZCksIHBheWxvYWQpO1xuICAgIH1cbiAgICByZWNlaXZlKHN0YXR1cywgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGhpcy5faGFzUmVjZWl2ZWQoc3RhdHVzKSkge1xuICAgICAgICAgICAgY2FsbGJhY2soKF9hID0gdGhpcy5yZWNlaXZlZFJlc3ApID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWNIb29rcy5wdXNoKHsgc3RhdHVzLCBjYWxsYmFjayB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHN0YXJ0VGltZW91dCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGltZW91dFRpbWVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWYgPSB0aGlzLmNoYW5uZWwuc29ja2V0Ll9tYWtlUmVmKCk7XG4gICAgICAgIHRoaXMucmVmRXZlbnQgPSB0aGlzLmNoYW5uZWwuX3JlcGx5RXZlbnROYW1lKHRoaXMucmVmKTtcbiAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2FuY2VsUmVmRXZlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NhbmNlbFRpbWVvdXQoKTtcbiAgICAgICAgICAgIHRoaXMucmVjZWl2ZWRSZXNwID0gcGF5bG9hZDtcbiAgICAgICAgICAgIHRoaXMuX21hdGNoUmVjZWl2ZShwYXlsb2FkKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jaGFubmVsLl9vbih0aGlzLnJlZkV2ZW50LCB7fSwgY2FsbGJhY2spO1xuICAgICAgICB0aGlzLnRpbWVvdXRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCd0aW1lb3V0Jywge30pO1xuICAgICAgICB9LCB0aGlzLnRpbWVvdXQpO1xuICAgIH1cbiAgICB0cmlnZ2VyKHN0YXR1cywgcmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKHRoaXMucmVmRXZlbnQpXG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwuX3RyaWdnZXIodGhpcy5yZWZFdmVudCwgeyBzdGF0dXMsIHJlc3BvbnNlIH0pO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9jYW5jZWxSZWZFdmVudCgpO1xuICAgICAgICB0aGlzLl9jYW5jZWxUaW1lb3V0KCk7XG4gICAgfVxuICAgIF9jYW5jZWxSZWZFdmVudCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlZkV2ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFubmVsLl9vZmYodGhpcy5yZWZFdmVudCwge30pO1xuICAgIH1cbiAgICBfY2FuY2VsVGltZW91dCgpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFRpbWVyKTtcbiAgICAgICAgdGhpcy50aW1lb3V0VGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIF9tYXRjaFJlY2VpdmUoeyBzdGF0dXMsIHJlc3BvbnNlLCB9KSB7XG4gICAgICAgIHRoaXMucmVjSG9va3NcbiAgICAgICAgICAgIC5maWx0ZXIoKGgpID0+IGguc3RhdHVzID09PSBzdGF0dXMpXG4gICAgICAgICAgICAuZm9yRWFjaCgoaCkgPT4gaC5jYWxsYmFjayhyZXNwb25zZSkpO1xuICAgIH1cbiAgICBfaGFzUmVjZWl2ZWQoc3RhdHVzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2VpdmVkUmVzcCAmJiB0aGlzLnJlY2VpdmVkUmVzcC5zdGF0dXMgPT09IHN0YXR1cztcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wdXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJERUZBVUxUX1RJTUVPVVQiLCJQdXNoIiwiY29uc3RydWN0b3IiLCJjaGFubmVsIiwiZXZlbnQiLCJwYXlsb2FkIiwidGltZW91dCIsInNlbnQiLCJ0aW1lb3V0VGltZXIiLCJ1bmRlZmluZWQiLCJyZWYiLCJyZWNlaXZlZFJlc3AiLCJyZWNIb29rcyIsInJlZkV2ZW50IiwicmVzZW5kIiwiX2NhbmNlbFJlZkV2ZW50Iiwic2VuZCIsIl9oYXNSZWNlaXZlZCIsInN0YXJ0VGltZW91dCIsInNvY2tldCIsInB1c2giLCJ0b3BpYyIsImpvaW5fcmVmIiwiX2pvaW5SZWYiLCJ1cGRhdGVQYXlsb2FkIiwiT2JqZWN0IiwiYXNzaWduIiwicmVjZWl2ZSIsInN0YXR1cyIsImNhbGxiYWNrIiwiX2EiLCJyZXNwb25zZSIsIl9tYWtlUmVmIiwiX3JlcGx5RXZlbnROYW1lIiwiX2NhbmNlbFRpbWVvdXQiLCJfbWF0Y2hSZWNlaXZlIiwiX29uIiwic2V0VGltZW91dCIsInRyaWdnZXIiLCJfdHJpZ2dlciIsImRlc3Ryb3kiLCJfb2ZmIiwiY2xlYXJUaW1lb3V0IiwiZmlsdGVyIiwiaCIsImZvckVhY2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Serializer)\n/* harmony export */ });\n// This file draws heavily from https://github.com/phoenixframework/phoenix/commit/cf098e9cf7a44ee6479d31d911a97d3c7430c6fe\n// License: https://github.com/phoenixframework/phoenix/blob/master/LICENSE.md\nclass Serializer {\n constructor(){\n this.HEADER_LENGTH = 1;\n }\n decode(rawPayload, callback) {\n if (rawPayload.constructor === ArrayBuffer) {\n return callback(this._binaryDecode(rawPayload));\n }\n if (typeof rawPayload === \"string\") {\n return callback(JSON.parse(rawPayload));\n }\n return callback({});\n }\n _binaryDecode(buffer) {\n const view = new DataView(buffer);\n const decoder = new TextDecoder();\n return this._decodeBroadcast(buffer, view, decoder);\n }\n _decodeBroadcast(buffer, view, decoder) {\n const topicSize = view.getUint8(1);\n const eventSize = view.getUint8(2);\n let offset = this.HEADER_LENGTH + 2;\n const topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n const event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n const data = JSON.parse(decoder.decode(buffer.slice(offset, buffer.byteLength)));\n return {\n ref: null,\n topic: topic,\n event: event,\n payload: data\n };\n }\n} //# sourceMappingURL=serializer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvc2VyaWFsaXplci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkhBQTJIO0FBQzNILDhFQUE4RTtBQUMvRCxNQUFNQTtJQUNqQkMsYUFBYztRQUNWLElBQUksQ0FBQ0MsYUFBYSxHQUFHO0lBQ3pCO0lBQ0FDLE9BQU9DLFVBQVUsRUFBRUMsUUFBUSxFQUFFO1FBQ3pCLElBQUlELFdBQVdILFdBQVcsS0FBS0ssYUFBYTtZQUN4QyxPQUFPRCxTQUFTLElBQUksQ0FBQ0UsYUFBYSxDQUFDSDtRQUN2QztRQUNBLElBQUksT0FBT0EsZUFBZSxVQUFVO1lBQ2hDLE9BQU9DLFNBQVNHLEtBQUtDLEtBQUssQ0FBQ0w7UUFDL0I7UUFDQSxPQUFPQyxTQUFTLENBQUM7SUFDckI7SUFDQUUsY0FBY0csTUFBTSxFQUFFO1FBQ2xCLE1BQU1DLE9BQU8sSUFBSUMsU0FBU0Y7UUFDMUIsTUFBTUcsVUFBVSxJQUFJQztRQUNwQixPQUFPLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUNMLFFBQVFDLE1BQU1FO0lBQy9DO0lBQ0FFLGlCQUFpQkwsTUFBTSxFQUFFQyxJQUFJLEVBQUVFLE9BQU8sRUFBRTtRQUNwQyxNQUFNRyxZQUFZTCxLQUFLTSxRQUFRLENBQUM7UUFDaEMsTUFBTUMsWUFBWVAsS0FBS00sUUFBUSxDQUFDO1FBQ2hDLElBQUlFLFNBQVMsSUFBSSxDQUFDakIsYUFBYSxHQUFHO1FBQ2xDLE1BQU1rQixRQUFRUCxRQUFRVixNQUFNLENBQUNPLE9BQU9XLEtBQUssQ0FBQ0YsUUFBUUEsU0FBU0g7UUFDM0RHLFNBQVNBLFNBQVNIO1FBQ2xCLE1BQU1NLFFBQVFULFFBQVFWLE1BQU0sQ0FBQ08sT0FBT1csS0FBSyxDQUFDRixRQUFRQSxTQUFTRDtRQUMzREMsU0FBU0EsU0FBU0Q7UUFDbEIsTUFBTUssT0FBT2YsS0FBS0MsS0FBSyxDQUFDSSxRQUFRVixNQUFNLENBQUNPLE9BQU9XLEtBQUssQ0FBQ0YsUUFBUVQsT0FBT2MsVUFBVTtRQUM3RSxPQUFPO1lBQUVDLEtBQUs7WUFBTUwsT0FBT0E7WUFBT0UsT0FBT0E7WUFBT0ksU0FBU0g7UUFBSztJQUNsRTtBQUNKLEVBQ0Esc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL3NlcmlhbGl6ZXIuanM/ODFkYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgZHJhd3MgaGVhdmlseSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9lbml4ZnJhbWV3b3JrL3Bob2VuaXgvY29tbWl0L2NmMDk4ZTljZjdhNDRlZTY0NzlkMzFkOTExYTk3ZDNjNzQzMGM2ZmVcbi8vIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9waG9lbml4ZnJhbWV3b3JrL3Bob2VuaXgvYmxvYi9tYXN0ZXIvTElDRU5TRS5tZFxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VyaWFsaXplciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuSEVBREVSX0xFTkdUSCA9IDE7XG4gICAgfVxuICAgIGRlY29kZShyYXdQYXlsb2FkLCBjYWxsYmFjaykge1xuICAgICAgICBpZiAocmF3UGF5bG9hZC5jb25zdHJ1Y3RvciA9PT0gQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzLl9iaW5hcnlEZWNvZGUocmF3UGF5bG9hZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgcmF3UGF5bG9hZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhKU09OLnBhcnNlKHJhd1BheWxvYWQpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FsbGJhY2soe30pO1xuICAgIH1cbiAgICBfYmluYXJ5RGVjb2RlKGJ1ZmZlcikge1xuICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlcik7XG4gICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlY29kZUJyb2FkY2FzdChidWZmZXIsIHZpZXcsIGRlY29kZXIpO1xuICAgIH1cbiAgICBfZGVjb2RlQnJvYWRjYXN0KGJ1ZmZlciwgdmlldywgZGVjb2Rlcikge1xuICAgICAgICBjb25zdCB0b3BpY1NpemUgPSB2aWV3LmdldFVpbnQ4KDEpO1xuICAgICAgICBjb25zdCBldmVudFNpemUgPSB2aWV3LmdldFVpbnQ4KDIpO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gdGhpcy5IRUFERVJfTEVOR1RIICsgMjtcbiAgICAgICAgY29uc3QgdG9waWMgPSBkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyB0b3BpY1NpemUpKTtcbiAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICsgdG9waWNTaXplO1xuICAgICAgICBjb25zdCBldmVudCA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlci5zbGljZShvZmZzZXQsIG9mZnNldCArIGV2ZW50U2l6ZSkpO1xuICAgICAgICBvZmZzZXQgPSBvZmZzZXQgKyBldmVudFNpemU7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRlY29kZXIuZGVjb2RlKGJ1ZmZlci5zbGljZShvZmZzZXQsIGJ1ZmZlci5ieXRlTGVuZ3RoKSkpO1xuICAgICAgICByZXR1cm4geyByZWY6IG51bGwsIHRvcGljOiB0b3BpYywgZXZlbnQ6IGV2ZW50LCBwYXlsb2FkOiBkYXRhIH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VyaWFsaXplci5qcy5tYXAiXSwibmFtZXMiOlsiU2VyaWFsaXplciIsImNvbnN0cnVjdG9yIiwiSEVBREVSX0xFTkdUSCIsImRlY29kZSIsInJhd1BheWxvYWQiLCJjYWxsYmFjayIsIkFycmF5QnVmZmVyIiwiX2JpbmFyeURlY29kZSIsIkpTT04iLCJwYXJzZSIsImJ1ZmZlciIsInZpZXciLCJEYXRhVmlldyIsImRlY29kZXIiLCJUZXh0RGVjb2RlciIsIl9kZWNvZGVCcm9hZGNhc3QiLCJ0b3BpY1NpemUiLCJnZXRVaW50OCIsImV2ZW50U2l6ZSIsIm9mZnNldCIsInRvcGljIiwic2xpY2UiLCJldmVudCIsImRhdGEiLCJieXRlTGVuZ3RoIiwicmVmIiwicGF5bG9hZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/timer.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Timer)\n/* harmony export */ });\n/**\n * Creates a timer that accepts a `timerCalc` function to perform calculated timeout retries, such as exponential backoff.\n *\n * @example\n * let reconnectTimer = new Timer(() => this.connect(), function(tries){\n * return [1000, 5000, 10000][tries - 1] || 10000\n * })\n * reconnectTimer.scheduleTimeout() // fires after 1000\n * reconnectTimer.scheduleTimeout() // fires after 5000\n * reconnectTimer.reset()\n * reconnectTimer.scheduleTimeout() // fires after 1000\n */ class Timer {\n constructor(callback, timerCalc){\n this.callback = callback;\n this.timerCalc = timerCalc;\n this.timer = undefined;\n this.tries = 0;\n this.callback = callback;\n this.timerCalc = timerCalc;\n }\n reset() {\n this.tries = 0;\n clearTimeout(this.timer);\n }\n // Cancels any previous scheduleTimeout and schedules callback\n scheduleTimeout() {\n clearTimeout(this.timer);\n this.timer = setTimeout(()=>{\n this.tries = this.tries + 1;\n this.callback();\n }, this.timerCalc(this.tries + 1));\n }\n} //# sourceMappingURL=timer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvdGltZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7OztDQVdDLEdBQ2MsTUFBTUE7SUFDakJDLFlBQVlDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQzdCLElBQUksQ0FBQ0QsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxLQUFLLEdBQUdDO1FBQ2IsSUFBSSxDQUFDQyxLQUFLLEdBQUc7UUFDYixJQUFJLENBQUNKLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ3JCO0lBQ0FJLFFBQVE7UUFDSixJQUFJLENBQUNELEtBQUssR0FBRztRQUNiRSxhQUFhLElBQUksQ0FBQ0osS0FBSztJQUMzQjtJQUNBLDhEQUE4RDtJQUM5REssa0JBQWtCO1FBQ2RELGFBQWEsSUFBSSxDQUFDSixLQUFLO1FBQ3ZCLElBQUksQ0FBQ0EsS0FBSyxHQUFHTSxXQUFXO1lBQ3BCLElBQUksQ0FBQ0osS0FBSyxHQUFHLElBQUksQ0FBQ0EsS0FBSyxHQUFHO1lBQzFCLElBQUksQ0FBQ0osUUFBUTtRQUNqQixHQUFHLElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ0csS0FBSyxHQUFHO0lBQ25DO0FBQ0osRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvdGltZXIuanM/MTE1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZXMgYSB0aW1lciB0aGF0IGFjY2VwdHMgYSBgdGltZXJDYWxjYCBmdW5jdGlvbiB0byBwZXJmb3JtIGNhbGN1bGF0ZWQgdGltZW91dCByZXRyaWVzLCBzdWNoIGFzIGV4cG9uZW50aWFsIGJhY2tvZmYuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgIGxldCByZWNvbm5lY3RUaW1lciA9IG5ldyBUaW1lcigoKSA9PiB0aGlzLmNvbm5lY3QoKSwgZnVuY3Rpb24odHJpZXMpe1xuICogICAgICByZXR1cm4gWzEwMDAsIDUwMDAsIDEwMDAwXVt0cmllcyAtIDFdIHx8IDEwMDAwXG4gKiAgICB9KVxuICogICAgcmVjb25uZWN0VGltZXIuc2NoZWR1bGVUaW1lb3V0KCkgLy8gZmlyZXMgYWZ0ZXIgMTAwMFxuICogICAgcmVjb25uZWN0VGltZXIuc2NoZWR1bGVUaW1lb3V0KCkgLy8gZmlyZXMgYWZ0ZXIgNTAwMFxuICogICAgcmVjb25uZWN0VGltZXIucmVzZXQoKVxuICogICAgcmVjb25uZWN0VGltZXIuc2NoZWR1bGVUaW1lb3V0KCkgLy8gZmlyZXMgYWZ0ZXIgMTAwMFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaW1lciB7XG4gICAgY29uc3RydWN0b3IoY2FsbGJhY2ssIHRpbWVyQ2FsYykge1xuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgIHRoaXMudGltZXJDYWxjID0gdGltZXJDYWxjO1xuICAgICAgICB0aGlzLnRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnRyaWVzID0gMDtcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICB0aGlzLnRpbWVyQ2FsYyA9IHRpbWVyQ2FsYztcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMudHJpZXMgPSAwO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgfVxuICAgIC8vIENhbmNlbHMgYW55IHByZXZpb3VzIHNjaGVkdWxlVGltZW91dCBhbmQgc2NoZWR1bGVzIGNhbGxiYWNrXG4gICAgc2NoZWR1bGVUaW1lb3V0KCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJpZXMgPSB0aGlzLnRyaWVzICsgMTtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2soKTtcbiAgICAgICAgfSwgdGhpcy50aW1lckNhbGModGhpcy50cmllcyArIDEpKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aW1lci5qcy5tYXAiXSwibmFtZXMiOlsiVGltZXIiLCJjb25zdHJ1Y3RvciIsImNhbGxiYWNrIiwidGltZXJDYWxjIiwidGltZXIiLCJ1bmRlZmluZWQiLCJ0cmllcyIsInJlc2V0IiwiY2xlYXJUaW1lb3V0Iiwic2NoZWR1bGVUaW1lb3V0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PostgresTypes: () => (/* binding */ PostgresTypes),\n/* harmony export */ convertCell: () => (/* binding */ convertCell),\n/* harmony export */ convertChangeData: () => (/* binding */ convertChangeData),\n/* harmony export */ convertColumn: () => (/* binding */ convertColumn),\n/* harmony export */ toArray: () => (/* binding */ toArray),\n/* harmony export */ toBoolean: () => (/* binding */ toBoolean),\n/* harmony export */ toJson: () => (/* binding */ toJson),\n/* harmony export */ toNumber: () => (/* binding */ toNumber),\n/* harmony export */ toTimestampString: () => (/* binding */ toTimestampString)\n/* harmony export */ });\n/**\n * Helpers to convert the change Payload into native JS types.\n */ // Adapted from epgsql (src/epgsql_binary.erl), this module licensed under\n// 3-clause BSD found here: https://raw.githubusercontent.com/epgsql/epgsql/devel/LICENSE\nvar PostgresTypes;\n(function(PostgresTypes) {\n PostgresTypes[\"abstime\"] = \"abstime\";\n PostgresTypes[\"bool\"] = \"bool\";\n PostgresTypes[\"date\"] = \"date\";\n PostgresTypes[\"daterange\"] = \"daterange\";\n PostgresTypes[\"float4\"] = \"float4\";\n PostgresTypes[\"float8\"] = \"float8\";\n PostgresTypes[\"int2\"] = \"int2\";\n PostgresTypes[\"int4\"] = \"int4\";\n PostgresTypes[\"int4range\"] = \"int4range\";\n PostgresTypes[\"int8\"] = \"int8\";\n PostgresTypes[\"int8range\"] = \"int8range\";\n PostgresTypes[\"json\"] = \"json\";\n PostgresTypes[\"jsonb\"] = \"jsonb\";\n PostgresTypes[\"money\"] = \"money\";\n PostgresTypes[\"numeric\"] = \"numeric\";\n PostgresTypes[\"oid\"] = \"oid\";\n PostgresTypes[\"reltime\"] = \"reltime\";\n PostgresTypes[\"text\"] = \"text\";\n PostgresTypes[\"time\"] = \"time\";\n PostgresTypes[\"timestamp\"] = \"timestamp\";\n PostgresTypes[\"timestamptz\"] = \"timestamptz\";\n PostgresTypes[\"timetz\"] = \"timetz\";\n PostgresTypes[\"tsrange\"] = \"tsrange\";\n PostgresTypes[\"tstzrange\"] = \"tstzrange\";\n})(PostgresTypes || (PostgresTypes = {}));\n/**\n * Takes an array of columns and an object of string values then converts each string value\n * to its mapped type.\n *\n * @param {{name: String, type: String}[]} columns\n * @param {Object} record\n * @param {Object} options The map of various options that can be applied to the mapper\n * @param {Array} options.skipTypes The array of types that should not be converted\n *\n * @example convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n * //=>{ first_name: 'Paul', age: 33 }\n */ const convertChangeData = (columns, record, options = {})=>{\n var _a;\n const skipTypes = (_a = options.skipTypes) !== null && _a !== void 0 ? _a : [];\n return Object.keys(record).reduce((acc, rec_key)=>{\n acc[rec_key] = convertColumn(rec_key, columns, record, skipTypes);\n return acc;\n }, {});\n};\n/**\n * Converts the value of an individual column.\n *\n * @param {String} columnName The column that you want to convert\n * @param {{name: String, type: String}[]} columns All of the columns\n * @param {Object} record The map of string values\n * @param {Array} skipTypes An array of types that should not be converted\n * @return {object} Useless information\n *\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n * //=> 33\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n * //=> \"33\"\n */ const convertColumn = (columnName, columns, record, skipTypes)=>{\n const column = columns.find((x)=>x.name === columnName);\n const colType = column === null || column === void 0 ? void 0 : column.type;\n const value = record[columnName];\n if (colType && !skipTypes.includes(colType)) {\n return convertCell(colType, value);\n }\n return noop(value);\n};\n/**\n * If the value of the cell is `null`, returns null.\n * Otherwise converts the string value to the correct type.\n * @param {String} type A postgres column type\n * @param {String} value The cell value\n *\n * @example convertCell('bool', 't')\n * //=> true\n * @example convertCell('int8', '10')\n * //=> 10\n * @example convertCell('_int4', '{1,2,3,4}')\n * //=> [1,2,3,4]\n */ const convertCell = (type, value)=>{\n // if data type is an array\n if (type.charAt(0) === \"_\") {\n const dataType = type.slice(1, type.length);\n return toArray(value, dataType);\n }\n // If not null, convert to correct type.\n switch(type){\n case PostgresTypes.bool:\n return toBoolean(value);\n case PostgresTypes.float4:\n case PostgresTypes.float8:\n case PostgresTypes.int2:\n case PostgresTypes.int4:\n case PostgresTypes.int8:\n case PostgresTypes.numeric:\n case PostgresTypes.oid:\n return toNumber(value);\n case PostgresTypes.json:\n case PostgresTypes.jsonb:\n return toJson(value);\n case PostgresTypes.timestamp:\n return toTimestampString(value); // Format to be consistent with PostgREST\n case PostgresTypes.abstime:\n case PostgresTypes.date:\n case PostgresTypes.daterange:\n case PostgresTypes.int4range:\n case PostgresTypes.int8range:\n case PostgresTypes.money:\n case PostgresTypes.reltime:\n case PostgresTypes.text:\n case PostgresTypes.time:\n case PostgresTypes.timestamptz:\n case PostgresTypes.timetz:\n case PostgresTypes.tsrange:\n case PostgresTypes.tstzrange:\n return noop(value);\n default:\n // Return the value for remaining types\n return noop(value);\n }\n};\nconst noop = (value)=>{\n return value;\n};\nconst toBoolean = (value)=>{\n switch(value){\n case \"t\":\n return true;\n case \"f\":\n return false;\n default:\n return value;\n }\n};\nconst toNumber = (value)=>{\n if (typeof value === \"string\") {\n const parsedValue = parseFloat(value);\n if (!Number.isNaN(parsedValue)) {\n return parsedValue;\n }\n }\n return value;\n};\nconst toJson = (value)=>{\n if (typeof value === \"string\") {\n try {\n return JSON.parse(value);\n } catch (error) {\n console.log(`JSON parse error: ${error}`);\n return value;\n }\n }\n return value;\n};\n/**\n * Converts a Postgres Array into a native JS array\n *\n * @example toArray('{}', 'int4')\n * //=> []\n * @example toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n * //=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']\n * @example toArray([1,2,3,4], 'int4')\n * //=> [1,2,3,4]\n */ const toArray = (value, type)=>{\n if (typeof value !== \"string\") {\n return value;\n }\n const lastIdx = value.length - 1;\n const closeBrace = value[lastIdx];\n const openBrace = value[0];\n // Confirm value is a Postgres array by checking curly brackets\n if (openBrace === \"{\" && closeBrace === \"}\") {\n let arr;\n const valTrim = value.slice(1, lastIdx);\n // TODO: find a better solution to separate Postgres array data\n try {\n arr = JSON.parse(\"[\" + valTrim + \"]\");\n } catch (_) {\n // WARNING: splitting on comma does not cover all edge cases\n arr = valTrim ? valTrim.split(\",\") : [];\n }\n return arr.map((val)=>convertCell(type, val));\n }\n return value;\n};\n/**\n * Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\n * See https://github.com/supabase/supabase/issues/18\n *\n * @example toTimestampString('2019-09-10 00:00:00')\n * //=> '2019-09-10T00:00:00'\n */ const toTimestampString = (value)=>{\n if (typeof value === \"string\") {\n return value.replace(\" \", \"T\");\n }\n return value;\n}; //# sourceMappingURL=transformers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvdHJhbnNmb3JtZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztDQUVDLEdBQ0QsMEVBQTBFO0FBQzFFLHlGQUF5RjtBQUNsRixJQUFJQSxjQUFjO0FBQ3hCLFVBQVVBLGFBQWE7SUFDcEJBLGFBQWEsQ0FBQyxVQUFVLEdBQUc7SUFDM0JBLGFBQWEsQ0FBQyxPQUFPLEdBQUc7SUFDeEJBLGFBQWEsQ0FBQyxPQUFPLEdBQUc7SUFDeEJBLGFBQWEsQ0FBQyxZQUFZLEdBQUc7SUFDN0JBLGFBQWEsQ0FBQyxTQUFTLEdBQUc7SUFDMUJBLGFBQWEsQ0FBQyxTQUFTLEdBQUc7SUFDMUJBLGFBQWEsQ0FBQyxPQUFPLEdBQUc7SUFDeEJBLGFBQWEsQ0FBQyxPQUFPLEdBQUc7SUFDeEJBLGFBQWEsQ0FBQyxZQUFZLEdBQUc7SUFDN0JBLGFBQWEsQ0FBQyxPQUFPLEdBQUc7SUFDeEJBLGFBQWEsQ0FBQyxZQUFZLEdBQUc7SUFDN0JBLGFBQWEsQ0FBQyxPQUFPLEdBQUc7SUFDeEJBLGFBQWEsQ0FBQyxRQUFRLEdBQUc7SUFDekJBLGFBQWEsQ0FBQyxRQUFRLEdBQUc7SUFDekJBLGFBQWEsQ0FBQyxVQUFVLEdBQUc7SUFDM0JBLGFBQWEsQ0FBQyxNQUFNLEdBQUc7SUFDdkJBLGFBQWEsQ0FBQyxVQUFVLEdBQUc7SUFDM0JBLGFBQWEsQ0FBQyxPQUFPLEdBQUc7SUFDeEJBLGFBQWEsQ0FBQyxPQUFPLEdBQUc7SUFDeEJBLGFBQWEsQ0FBQyxZQUFZLEdBQUc7SUFDN0JBLGFBQWEsQ0FBQyxjQUFjLEdBQUc7SUFDL0JBLGFBQWEsQ0FBQyxTQUFTLEdBQUc7SUFDMUJBLGFBQWEsQ0FBQyxVQUFVLEdBQUc7SUFDM0JBLGFBQWEsQ0FBQyxZQUFZLEdBQUc7QUFDakMsR0FBR0EsaUJBQWtCQSxDQUFBQSxnQkFBZ0IsQ0FBQztBQUN0Qzs7Ozs7Ozs7Ozs7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QU9BLE1BQU11RCxPQUFPLENBQUMsS0FBSztJQUM5QjtJQUNBLE9BQU92RDtBQUNYLEVBQUUsQ0FDRix3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvdHJhbnNmb3JtZXJzLmpzPzNmYzAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIZWxwZXJzIHRvIGNvbnZlcnQgdGhlIGNoYW5nZSBQYXlsb2FkIGludG8gbmF0aXZlIEpTIHR5cGVzLlxuICovXG4vLyBBZGFwdGVkIGZyb20gZXBnc3FsIChzcmMvZXBnc3FsX2JpbmFyeS5lcmwpLCB0aGlzIG1vZHVsZSBsaWNlbnNlZCB1bmRlclxuLy8gMy1jbGF1c2UgQlNEIGZvdW5kIGhlcmU6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9lcGdzcWwvZXBnc3FsL2RldmVsL0xJQ0VOU0VcbmV4cG9ydCB2YXIgUG9zdGdyZXNUeXBlcztcbihmdW5jdGlvbiAoUG9zdGdyZXNUeXBlcykge1xuICAgIFBvc3RncmVzVHlwZXNbXCJhYnN0aW1lXCJdID0gXCJhYnN0aW1lXCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcImJvb2xcIl0gPSBcImJvb2xcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiZGF0ZVwiXSA9IFwiZGF0ZVwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJkYXRlcmFuZ2VcIl0gPSBcImRhdGVyYW5nZVwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJmbG9hdDRcIl0gPSBcImZsb2F0NFwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJmbG9hdDhcIl0gPSBcImZsb2F0OFwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJpbnQyXCJdID0gXCJpbnQyXCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcImludDRcIl0gPSBcImludDRcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiaW50NHJhbmdlXCJdID0gXCJpbnQ0cmFuZ2VcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiaW50OFwiXSA9IFwiaW50OFwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJpbnQ4cmFuZ2VcIl0gPSBcImludDhyYW5nZVwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJqc29uXCJdID0gXCJqc29uXCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcImpzb25iXCJdID0gXCJqc29uYlwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJtb25leVwiXSA9IFwibW9uZXlcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wibnVtZXJpY1wiXSA9IFwibnVtZXJpY1wiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJvaWRcIl0gPSBcIm9pZFwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJyZWx0aW1lXCJdID0gXCJyZWx0aW1lXCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcInRleHRcIl0gPSBcInRleHRcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1widGltZVwiXSA9IFwidGltZVwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJ0aW1lc3RhbXBcIl0gPSBcInRpbWVzdGFtcFwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJ0aW1lc3RhbXB0elwiXSA9IFwidGltZXN0YW1wdHpcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1widGltZXR6XCJdID0gXCJ0aW1ldHpcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1widHNyYW5nZVwiXSA9IFwidHNyYW5nZVwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJ0c3R6cmFuZ2VcIl0gPSBcInRzdHpyYW5nZVwiO1xufSkoUG9zdGdyZXNUeXBlcyB8fCAoUG9zdGdyZXNUeXBlcyA9IHt9KSk7XG4vKipcbiAqIFRha2VzIGFuIGFycmF5IG9mIGNvbHVtbnMgYW5kIGFuIG9iamVjdCBvZiBzdHJpbmcgdmFsdWVzIHRoZW4gY29udmVydHMgZWFjaCBzdHJpbmcgdmFsdWVcbiAqIHRvIGl0cyBtYXBwZWQgdHlwZS5cbiAqXG4gKiBAcGFyYW0ge3tuYW1lOiBTdHJpbmcsIHR5cGU6IFN0cmluZ31bXX0gY29sdW1uc1xuICogQHBhcmFtIHtPYmplY3R9IHJlY29yZFxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgVGhlIG1hcCBvZiB2YXJpb3VzIG9wdGlvbnMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byB0aGUgbWFwcGVyXG4gKiBAcGFyYW0ge0FycmF5fSBvcHRpb25zLnNraXBUeXBlcyBUaGUgYXJyYXkgb2YgdHlwZXMgdGhhdCBzaG91bGQgbm90IGJlIGNvbnZlcnRlZFxuICpcbiAqIEBleGFtcGxlIGNvbnZlcnRDaGFuZ2VEYXRhKFt7bmFtZTogJ2ZpcnN0X25hbWUnLCB0eXBlOiAndGV4dCd9LCB7bmFtZTogJ2FnZScsIHR5cGU6ICdpbnQ0J31dLCB7Zmlyc3RfbmFtZTogJ1BhdWwnLCBhZ2U6JzMzJ30sIHt9KVxuICogLy89PnsgZmlyc3RfbmFtZTogJ1BhdWwnLCBhZ2U6IDMzIH1cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnRDaGFuZ2VEYXRhID0gKGNvbHVtbnMsIHJlY29yZCwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHNraXBUeXBlcyA9IChfYSA9IG9wdGlvbnMuc2tpcFR5cGVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBbXTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocmVjb3JkKS5yZWR1Y2UoKGFjYywgcmVjX2tleSkgPT4ge1xuICAgICAgICBhY2NbcmVjX2tleV0gPSBjb252ZXJ0Q29sdW1uKHJlY19rZXksIGNvbHVtbnMsIHJlY29yZCwgc2tpcFR5cGVzKTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG59O1xuLyoqXG4gKiBDb252ZXJ0cyB0aGUgdmFsdWUgb2YgYW4gaW5kaXZpZHVhbCBjb2x1bW4uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGNvbHVtbk5hbWUgVGhlIGNvbHVtbiB0aGF0IHlvdSB3YW50IHRvIGNvbnZlcnRcbiAqIEBwYXJhbSB7e25hbWU6IFN0cmluZywgdHlwZTogU3RyaW5nfVtdfSBjb2x1bW5zIEFsbCBvZiB0aGUgY29sdW1uc1xuICogQHBhcmFtIHtPYmplY3R9IHJlY29yZCBUaGUgbWFwIG9mIHN0cmluZyB2YWx1ZXNcbiAqIEBwYXJhbSB7QXJyYXl9IHNraXBUeXBlcyBBbiBhcnJheSBvZiB0eXBlcyB0aGF0IHNob3VsZCBub3QgYmUgY29udmVydGVkXG4gKiBAcmV0dXJuIHtvYmplY3R9IFVzZWxlc3MgaW5mb3JtYXRpb25cbiAqXG4gKiBAZXhhbXBsZSBjb252ZXJ0Q29sdW1uKCdhZ2UnLCBbe25hbWU6ICdmaXJzdF9uYW1lJywgdHlwZTogJ3RleHQnfSwge25hbWU6ICdhZ2UnLCB0eXBlOiAnaW50NCd9XSwge2ZpcnN0X25hbWU6ICdQYXVsJywgYWdlOiAnMzMnfSwgW10pXG4gKiAvLz0+IDMzXG4gKiBAZXhhbXBsZSBjb252ZXJ0Q29sdW1uKCdhZ2UnLCBbe25hbWU6ICdmaXJzdF9uYW1lJywgdHlwZTogJ3RleHQnfSwge25hbWU6ICdhZ2UnLCB0eXBlOiAnaW50NCd9XSwge2ZpcnN0X25hbWU6ICdQYXVsJywgYWdlOiAnMzMnfSwgWydpbnQ0J10pXG4gKiAvLz0+IFwiMzNcIlxuICovXG5leHBvcnQgY29uc3QgY29udmVydENvbHVtbiA9IChjb2x1bW5OYW1lLCBjb2x1bW5zLCByZWNvcmQsIHNraXBUeXBlcykgPT4ge1xuICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnMuZmluZCgoeCkgPT4geC5uYW1lID09PSBjb2x1bW5OYW1lKTtcbiAgICBjb25zdCBjb2xUeXBlID0gY29sdW1uID09PSBudWxsIHx8IGNvbHVtbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29sdW1uLnR5cGU7XG4gICAgY29uc3QgdmFsdWUgPSByZWNvcmRbY29sdW1uTmFtZV07XG4gICAgaWYgKGNvbFR5cGUgJiYgIXNraXBUeXBlcy5pbmNsdWRlcyhjb2xUeXBlKSkge1xuICAgICAgICByZXR1cm4gY29udmVydENlbGwoY29sVHlwZSwgdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9vcCh2YWx1ZSk7XG59O1xuLyoqXG4gKiBJZiB0aGUgdmFsdWUgb2YgdGhlIGNlbGwgaXMgYG51bGxgLCByZXR1cm5zIG51bGwuXG4gKiBPdGhlcndpc2UgY29udmVydHMgdGhlIHN0cmluZyB2YWx1ZSB0byB0aGUgY29ycmVjdCB0eXBlLlxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGUgQSBwb3N0Z3JlcyBjb2x1bW4gdHlwZVxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlIFRoZSBjZWxsIHZhbHVlXG4gKlxuICogQGV4YW1wbGUgY29udmVydENlbGwoJ2Jvb2wnLCAndCcpXG4gKiAvLz0+IHRydWVcbiAqIEBleGFtcGxlIGNvbnZlcnRDZWxsKCdpbnQ4JywgJzEwJylcbiAqIC8vPT4gMTBcbiAqIEBleGFtcGxlIGNvbnZlcnRDZWxsKCdfaW50NCcsICd7MSwyLDMsNH0nKVxuICogLy89PiBbMSwyLDMsNF1cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnRDZWxsID0gKHR5cGUsIHZhbHVlKSA9PiB7XG4gICAgLy8gaWYgZGF0YSB0eXBlIGlzIGFuIGFycmF5XG4gICAgaWYgKHR5cGUuY2hhckF0KDApID09PSAnXycpIHtcbiAgICAgICAgY29uc3QgZGF0YVR5cGUgPSB0eXBlLnNsaWNlKDEsIHR5cGUubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIHRvQXJyYXkodmFsdWUsIGRhdGFUeXBlKTtcbiAgICB9XG4gICAgLy8gSWYgbm90IG51bGwsIGNvbnZlcnQgdG8gY29ycmVjdCB0eXBlLlxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuYm9vbDpcbiAgICAgICAgICAgIHJldHVybiB0b0Jvb2xlYW4odmFsdWUpO1xuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuZmxvYXQ0OlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuZmxvYXQ4OlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuaW50MjpcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmludDQ6XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5pbnQ4OlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMubnVtZXJpYzpcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLm9pZDpcbiAgICAgICAgICAgIHJldHVybiB0b051bWJlcih2YWx1ZSk7XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5qc29uOlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuanNvbmI6XG4gICAgICAgICAgICByZXR1cm4gdG9Kc29uKHZhbHVlKTtcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLnRpbWVzdGFtcDpcbiAgICAgICAgICAgIHJldHVybiB0b1RpbWVzdGFtcFN0cmluZyh2YWx1ZSk7IC8vIEZvcm1hdCB0byBiZSBjb25zaXN0ZW50IHdpdGggUG9zdGdSRVNUXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5hYnN0aW1lOiAvLyBUbyBhbGxvdyB1c2VycyB0byBjYXN0IGl0IGJhc2VkIG9uIFRpbWV6b25lXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5kYXRlOiAvLyBUbyBhbGxvdyB1c2VycyB0byBjYXN0IGl0IGJhc2VkIG9uIFRpbWV6b25lXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5kYXRlcmFuZ2U6XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5pbnQ0cmFuZ2U6XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5pbnQ4cmFuZ2U6XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5tb25leTpcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLnJlbHRpbWU6IC8vIFRvIGFsbG93IHVzZXJzIHRvIGNhc3QgaXQgYmFzZWQgb24gVGltZXpvbmVcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLnRleHQ6XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50aW1lOiAvLyBUbyBhbGxvdyB1c2VycyB0byBjYXN0IGl0IGJhc2VkIG9uIFRpbWV6b25lXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50aW1lc3RhbXB0ejogLy8gVG8gYWxsb3cgdXNlcnMgdG8gY2FzdCBpdCBiYXNlZCBvbiBUaW1lem9uZVxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMudGltZXR6OiAvLyBUbyBhbGxvdyB1c2VycyB0byBjYXN0IGl0IGJhc2VkIG9uIFRpbWV6b25lXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50c3JhbmdlOlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMudHN0enJhbmdlOlxuICAgICAgICAgICAgcmV0dXJuIG5vb3AodmFsdWUpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gUmV0dXJuIHRoZSB2YWx1ZSBmb3IgcmVtYWluaW5nIHR5cGVzXG4gICAgICAgICAgICByZXR1cm4gbm9vcCh2YWx1ZSk7XG4gICAgfVxufTtcbmNvbnN0IG5vb3AgPSAodmFsdWUpID0+IHtcbiAgICByZXR1cm4gdmFsdWU7XG59O1xuZXhwb3J0IGNvbnN0IHRvQm9vbGVhbiA9ICh2YWx1ZSkgPT4ge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgY2FzZSAndCc6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY2FzZSAnZic6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufTtcbmV4cG9ydCBjb25zdCB0b051bWJlciA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKHBhcnNlZFZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgdG9Kc29uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBKU09OIHBhcnNlIGVycm9yOiAke2Vycm9yfWApO1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG4vKipcbiAqIENvbnZlcnRzIGEgUG9zdGdyZXMgQXJyYXkgaW50byBhIG5hdGl2ZSBKUyBhcnJheVxuICpcbiAqIEBleGFtcGxlIHRvQXJyYXkoJ3t9JywgJ2ludDQnKVxuICogLy89PiBbXVxuICogQGV4YW1wbGUgdG9BcnJheSgne1wiWzIwMjEtMDEtMDEsMjAyMS0xMi0zMSlcIixcIigyMDIxLTAxLTAxLDIwMjEtMTItMzJdXCJ9JywgJ2RhdGVyYW5nZScpXG4gKiAvLz0+IFsnWzIwMjEtMDEtMDEsMjAyMS0xMi0zMSknLCAnKDIwMjEtMDEtMDEsMjAyMS0xMi0zMl0nXVxuICogQGV4YW1wbGUgdG9BcnJheShbMSwyLDMsNF0sICdpbnQ0JylcbiAqIC8vPT4gWzEsMiwzLDRdXG4gKi9cbmV4cG9ydCBjb25zdCB0b0FycmF5ID0gKHZhbHVlLCB0eXBlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBsYXN0SWR4ID0gdmFsdWUubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBjbG9zZUJyYWNlID0gdmFsdWVbbGFzdElkeF07XG4gICAgY29uc3Qgb3BlbkJyYWNlID0gdmFsdWVbMF07XG4gICAgLy8gQ29uZmlybSB2YWx1ZSBpcyBhIFBvc3RncmVzIGFycmF5IGJ5IGNoZWNraW5nIGN1cmx5IGJyYWNrZXRzXG4gICAgaWYgKG9wZW5CcmFjZSA9PT0gJ3snICYmIGNsb3NlQnJhY2UgPT09ICd9Jykge1xuICAgICAgICBsZXQgYXJyO1xuICAgICAgICBjb25zdCB2YWxUcmltID0gdmFsdWUuc2xpY2UoMSwgbGFzdElkeCk7XG4gICAgICAgIC8vIFRPRE86IGZpbmQgYSBiZXR0ZXIgc29sdXRpb24gdG8gc2VwYXJhdGUgUG9zdGdyZXMgYXJyYXkgZGF0YVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXJyID0gSlNPTi5wYXJzZSgnWycgKyB2YWxUcmltICsgJ10nKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgLy8gV0FSTklORzogc3BsaXR0aW5nIG9uIGNvbW1hIGRvZXMgbm90IGNvdmVyIGFsbCBlZGdlIGNhc2VzXG4gICAgICAgICAgICBhcnIgPSB2YWxUcmltID8gdmFsVHJpbS5zcGxpdCgnLCcpIDogW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFyci5tYXAoKHZhbCkgPT4gY29udmVydENlbGwodHlwZSwgdmFsKSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG4vKipcbiAqIEZpeGVzIHRpbWVzdGFtcCB0byBiZSBJU08tODYwMS4gU3dhcHMgdGhlIHNwYWNlIGJldHdlZW4gdGhlIGRhdGUgYW5kIHRpbWUgZm9yIGEgJ1QnXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3N1cGFiYXNlL3N1cGFiYXNlL2lzc3Vlcy8xOFxuICpcbiAqIEBleGFtcGxlIHRvVGltZXN0YW1wU3RyaW5nKCcyMDE5LTA5LTEwIDAwOjAwOjAwJylcbiAqIC8vPT4gJzIwMTktMDktMTBUMDA6MDA6MDAnXG4gKi9cbmV4cG9ydCBjb25zdCB0b1RpbWVzdGFtcFN0cmluZyA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKCcgJywgJ1QnKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyYW5zZm9ybWVycy5qcy5tYXAiXSwibmFtZXMiOlsiUG9zdGdyZXNUeXBlcyIsImNvbnZlcnRDaGFuZ2VEYXRhIiwiY29sdW1ucyIsInJlY29yZCIsIm9wdGlvbnMiLCJfYSIsInNraXBUeXBlcyIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJhY2MiLCJyZWNfa2V5IiwiY29udmVydENvbHVtbiIsImNvbHVtbk5hbWUiLCJjb2x1bW4iLCJmaW5kIiwieCIsIm5hbWUiLCJjb2xUeXBlIiwidHlwZSIsInZhbHVlIiwiaW5jbHVkZXMiLCJjb252ZXJ0Q2VsbCIsIm5vb3AiLCJjaGFyQXQiLCJkYXRhVHlwZSIsInNsaWNlIiwibGVuZ3RoIiwidG9BcnJheSIsImJvb2wiLCJ0b0Jvb2xlYW4iLCJmbG9hdDQiLCJmbG9hdDgiLCJpbnQyIiwiaW50NCIsImludDgiLCJudW1lcmljIiwib2lkIiwidG9OdW1iZXIiLCJqc29uIiwianNvbmIiLCJ0b0pzb24iLCJ0aW1lc3RhbXAiLCJ0b1RpbWVzdGFtcFN0cmluZyIsImFic3RpbWUiLCJkYXRlIiwiZGF0ZXJhbmdlIiwiaW50NHJhbmdlIiwiaW50OHJhbmdlIiwibW9uZXkiLCJyZWx0aW1lIiwidGV4dCIsInRpbWUiLCJ0aW1lc3RhbXB0eiIsInRpbWV0eiIsInRzcmFuZ2UiLCJ0c3R6cmFuZ2UiLCJwYXJzZWRWYWx1ZSIsInBhcnNlRmxvYXQiLCJOdW1iZXIiLCJpc05hTiIsIkpTT04iLCJwYXJzZSIsImVycm9yIiwiY29uc29sZSIsImxvZyIsImxhc3RJZHgiLCJjbG9zZUJyYWNlIiwib3BlbkJyYWNlIiwiYXJyIiwidmFsVHJpbSIsIl8iLCJzcGxpdCIsIm1hcCIsInZhbCIsInJlcGxhY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/version.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\nconst version = \"2.9.3\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sTUFBTUEsVUFBVSxRQUFRLENBQy9CLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi92ZXJzaW9uLmpzPzFmZDUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHZlcnNpb24gPSAnMi45LjMnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmVyc2lvbi5qcy5tYXAiXSwibmFtZXMiOlsidmVyc2lvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js": +/*!************************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/StorageClient.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StorageClient: () => (/* binding */ StorageClient)\n/* harmony export */ });\n/* harmony import */ var _packages_StorageFileApi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./packages/StorageFileApi */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js\");\n/* harmony import */ var _packages_StorageBucketApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./packages/StorageBucketApi */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js\");\n\n\nclass StorageClient extends _packages_StorageBucketApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n constructor(url, headers = {}, fetch){\n super(url, headers, fetch);\n }\n /**\n * Perform file operation in a bucket.\n *\n * @param id The bucket id to operate on.\n */ from(id) {\n return new _packages_StorageFileApi__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this.url, this.headers, id, this.fetch);\n }\n} //# sourceMappingURL=StorageClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL1N0b3JhZ2VDbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXVEO0FBQ0k7QUFDcEQsTUFBTUUsc0JBQXNCRCxrRUFBZ0JBO0lBQy9DRSxZQUFZQyxHQUFHLEVBQUVDLFVBQVUsQ0FBQyxDQUFDLEVBQUVDLEtBQUssQ0FBRTtRQUNsQyxLQUFLLENBQUNGLEtBQUtDLFNBQVNDO0lBQ3hCO0lBQ0E7Ozs7S0FJQyxHQUNEQyxLQUFLQyxFQUFFLEVBQUU7UUFDTCxPQUFPLElBQUlSLGdFQUFjQSxDQUFDLElBQUksQ0FBQ0ksR0FBRyxFQUFFLElBQUksQ0FBQ0MsT0FBTyxFQUFFRyxJQUFJLElBQUksQ0FBQ0YsS0FBSztJQUNwRTtBQUNKLEVBQ0EseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9TdG9yYWdlQ2xpZW50LmpzP2E4Y2MiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0b3JhZ2VGaWxlQXBpIGZyb20gJy4vcGFja2FnZXMvU3RvcmFnZUZpbGVBcGknO1xuaW1wb3J0IFN0b3JhZ2VCdWNrZXRBcGkgZnJvbSAnLi9wYWNrYWdlcy9TdG9yYWdlQnVja2V0QXBpJztcbmV4cG9ydCBjbGFzcyBTdG9yYWdlQ2xpZW50IGV4dGVuZHMgU3RvcmFnZUJ1Y2tldEFwaSB7XG4gICAgY29uc3RydWN0b3IodXJsLCBoZWFkZXJzID0ge30sIGZldGNoKSB7XG4gICAgICAgIHN1cGVyKHVybCwgaGVhZGVycywgZmV0Y2gpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtIGZpbGUgb3BlcmF0aW9uIGluIGEgYnVja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIFRoZSBidWNrZXQgaWQgdG8gb3BlcmF0ZSBvbi5cbiAgICAgKi9cbiAgICBmcm9tKGlkKSB7XG4gICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUZpbGVBcGkodGhpcy51cmwsIHRoaXMuaGVhZGVycywgaWQsIHRoaXMuZmV0Y2gpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN0b3JhZ2VDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIlN0b3JhZ2VGaWxlQXBpIiwiU3RvcmFnZUJ1Y2tldEFwaSIsIlN0b3JhZ2VDbGllbnQiLCJjb25zdHJ1Y3RvciIsInVybCIsImhlYWRlcnMiLCJmZXRjaCIsImZyb20iLCJpZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js": +/*!************************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/constants.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/version.js\");\n\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `storage-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n}; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0M7QUFDN0IsTUFBTUMsa0JBQWtCO0lBQUUsaUJBQWlCLENBQUMsV0FBVyxFQUFFRCw2Q0FBT0EsQ0FBQyxDQUFDO0FBQUMsRUFBRSxDQUM1RSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL2xpYi9jb25zdGFudHMuanM/Nzk5MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9uJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hFQURFUlMgPSB7ICdYLUNsaWVudC1JbmZvJzogYHN0b3JhZ2UtanMvJHt2ZXJzaW9ufWAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOlsidmVyc2lvbiIsIkRFRkFVTFRfSEVBREVSUyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/errors.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StorageApiError: () => (/* binding */ StorageApiError),\n/* harmony export */ StorageError: () => (/* binding */ StorageError),\n/* harmony export */ StorageUnknownError: () => (/* binding */ StorageUnknownError),\n/* harmony export */ isStorageError: () => (/* binding */ isStorageError)\n/* harmony export */ });\nclass StorageError extends Error {\n constructor(message){\n super(message);\n this.__isStorageError = true;\n this.name = \"StorageError\";\n }\n}\nfunction isStorageError(error) {\n return typeof error === \"object\" && error !== null && \"__isStorageError\" in error;\n}\nclass StorageApiError extends StorageError {\n constructor(message, status){\n super(message);\n this.name = \"StorageApiError\";\n this.status = status;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status\n };\n }\n}\nclass StorageUnknownError extends StorageError {\n constructor(message, originalError){\n super(message);\n this.name = \"StorageUnknownError\";\n this.originalError = originalError;\n }\n} //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL2xpYi9lcnJvcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPLE1BQU1BLHFCQUFxQkM7SUFDOUJDLFlBQVlDLE9BQU8sQ0FBRTtRQUNqQixLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDQyxnQkFBZ0IsR0FBRztRQUN4QixJQUFJLENBQUNDLElBQUksR0FBRztJQUNoQjtBQUNKO0FBQ08sU0FBU0MsZUFBZUMsS0FBSztJQUNoQyxPQUFPLE9BQU9BLFVBQVUsWUFBWUEsVUFBVSxRQUFRLHNCQUFzQkE7QUFDaEY7QUFDTyxNQUFNQyx3QkFBd0JSO0lBQ2pDRSxZQUFZQyxPQUFPLEVBQUVNLE1BQU0sQ0FBRTtRQUN6QixLQUFLLENBQUNOO1FBQ04sSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNJLE1BQU0sR0FBR0E7SUFDbEI7SUFDQUMsU0FBUztRQUNMLE9BQU87WUFDSEwsTUFBTSxJQUFJLENBQUNBLElBQUk7WUFDZkYsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJNLFFBQVEsSUFBSSxDQUFDQSxNQUFNO1FBQ3ZCO0lBQ0o7QUFDSjtBQUNPLE1BQU1FLDRCQUE0Qlg7SUFDckNFLFlBQVlDLE9BQU8sRUFBRVMsYUFBYSxDQUFFO1FBQ2hDLEtBQUssQ0FBQ1Q7UUFDTixJQUFJLENBQUNFLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ08sYUFBYSxHQUFHQTtJQUN6QjtBQUNKLEVBQ0Esa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvZXJyb3JzLmpzPzRhOWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0b3JhZ2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLl9faXNTdG9yYWdlRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLm5hbWUgPSAnU3RvcmFnZUVycm9yJztcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaXNTdG9yYWdlRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiAnX19pc1N0b3JhZ2VFcnJvcicgaW4gZXJyb3I7XG59XG5leHBvcnQgY2xhc3MgU3RvcmFnZUFwaUVycm9yIGV4dGVuZHMgU3RvcmFnZUVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBzdGF0dXMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdTdG9yYWdlQXBpRXJyb3InO1xuICAgICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgICB9XG4gICAgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgU3RvcmFnZVVua25vd25FcnJvciBleHRlbmRzIFN0b3JhZ2VFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgb3JpZ2luYWxFcnJvcikge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ1N0b3JhZ2VVbmtub3duRXJyb3InO1xuICAgICAgICB0aGlzLm9yaWdpbmFsRXJyb3IgPSBvcmlnaW5hbEVycm9yO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9ycy5qcy5tYXAiXSwibmFtZXMiOlsiU3RvcmFnZUVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJfX2lzU3RvcmFnZUVycm9yIiwibmFtZSIsImlzU3RvcmFnZUVycm9yIiwiZXJyb3IiLCJTdG9yYWdlQXBpRXJyb3IiLCJzdGF0dXMiLCJ0b0pTT04iLCJTdG9yYWdlVW5rbm93bkVycm9yIiwib3JpZ2luYWxFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/fetch.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ get: () => (/* binding */ get),\n/* harmony export */ post: () => (/* binding */ post),\n/* harmony export */ put: () => (/* binding */ put),\n/* harmony export */ remove: () => (/* binding */ remove)\n/* harmony export */ });\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./errors */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\nconst _getErrorMessage = (err)=>err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\nconst handleError = (error, reject)=>__awaiter(void 0, void 0, void 0, function*() {\n const Res = yield (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.resolveResponse)();\n if (error instanceof Res) {\n error.json().then((err)=>{\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageApiError(_getErrorMessage(err), error.status || 500));\n }).catch((err)=>{\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageUnknownError(_getErrorMessage(err), err));\n });\n } else {\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageUnknownError(_getErrorMessage(error), error));\n }\n });\nconst _getRequestParams = (method, options, parameters, body)=>{\n const params = {\n method,\n headers: (options === null || options === void 0 ? void 0 : options.headers) || {}\n };\n if (method === \"GET\") {\n return params;\n }\n params.headers = Object.assign({\n \"Content-Type\": \"application/json\"\n }, options === null || options === void 0 ? void 0 : options.headers);\n params.body = JSON.stringify(body);\n return Object.assign(Object.assign({}, params), parameters);\n};\nfunction _handleRequest(fetcher, method, url, options, parameters, body) {\n return __awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve, reject)=>{\n fetcher(url, _getRequestParams(method, options, parameters, body)).then((result)=>{\n if (!result.ok) throw result;\n if (options === null || options === void 0 ? void 0 : options.noResolveJson) return result;\n return result.json();\n }).then((data)=>resolve(data)).catch((error)=>handleError(error, reject));\n });\n });\n}\nfunction get(fetcher, url, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n return _handleRequest(fetcher, \"GET\", url, options, parameters);\n });\n}\nfunction post(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n return _handleRequest(fetcher, \"POST\", url, options, parameters, body);\n });\n}\nfunction put(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n return _handleRequest(fetcher, \"PUT\", url, options, parameters, body);\n });\n}\nfunction remove(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n return _handleRequest(fetcher, \"DELETE\", url, options, parameters, body);\n });\n} //# sourceMappingURL=fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL2xpYi9mZXRjaC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFJQSxZQUFZLFNBQUssSUFBSSxTQUFJLENBQUNBLFNBQVMsSUFBSyxTQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTO0lBQ25GLFNBQVNDLE1BQU1DLEtBQUs7UUFBSSxPQUFPQSxpQkFBaUJILElBQUlHLFFBQVEsSUFBSUgsRUFBRSxTQUFVSSxPQUFPO1lBQUlBLFFBQVFEO1FBQVE7SUFBSTtJQUMzRyxPQUFPLElBQUtILENBQUFBLEtBQU1BLENBQUFBLElBQUlLLE9BQU0sQ0FBQyxFQUFHLFNBQVVELE9BQU8sRUFBRUUsTUFBTTtRQUNyRCxTQUFTQyxVQUFVSixLQUFLO1lBQUksSUFBSTtnQkFBRUssS0FBS1AsVUFBVVEsSUFBSSxDQUFDTjtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzFGLFNBQVNDLFNBQVNSLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxTQUFTLENBQUMsUUFBUSxDQUFDRTtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzdGLFNBQVNGLEtBQUtJLE1BQU07WUFBSUEsT0FBT0MsSUFBSSxHQUFHVCxRQUFRUSxPQUFPVCxLQUFLLElBQUlELE1BQU1VLE9BQU9ULEtBQUssRUFBRVcsSUFBSSxDQUFDUCxXQUFXSTtRQUFXO1FBQzdHSCxLQUFLLENBQUNQLFlBQVlBLFVBQVVjLEtBQUssQ0FBQ2pCLFNBQVNDLGNBQWMsRUFBRSxHQUFHVSxJQUFJO0lBQ3RFO0FBQ0o7QUFDZ0U7QUFDcEI7QUFDNUMsTUFBTVUsbUJBQW1CLENBQUNDLE1BQVFBLElBQUlDLEdBQUcsSUFBSUQsSUFBSUUsT0FBTyxJQUFJRixJQUFJRyxpQkFBaUIsSUFBSUgsSUFBSUksS0FB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RUMsR0FBRyxFQUFFUCxJQUFJLEVBQUVGLE9BQU8sRUFBRUMsVUFBVTtJQUMxRCxPQUFPdEMsVUFBVSxJQUFJLEVBQUUsS0FBSyxHQUFHLEtBQUssR0FBRztRQUNuQyxPQUFPNEMsZUFBZUMsU0FBUyxVQUFVQyxLQUFLVCxTQUFTQyxZQUFZQztJQUN2RTtBQUNKLEVBQ0EsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvZmV0Y2guanM/YzA0NiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IFN0b3JhZ2VBcGlFcnJvciwgU3RvcmFnZVVua25vd25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7IHJlc29sdmVSZXNwb25zZSB9IGZyb20gJy4vaGVscGVycyc7XG5jb25zdCBfZ2V0RXJyb3JNZXNzYWdlID0gKGVycikgPT4gZXJyLm1zZyB8fCBlcnIubWVzc2FnZSB8fCBlcnIuZXJyb3JfZGVzY3JpcHRpb24gfHwgZXJyLmVycm9yIHx8IEpTT04uc3RyaW5naWZ5KGVycik7XG5jb25zdCBoYW5kbGVFcnJvciA9IChlcnJvciwgcmVqZWN0KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICBjb25zdCBSZXMgPSB5aWVsZCByZXNvbHZlUmVzcG9uc2UoKTtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBSZXMpIHtcbiAgICAgICAgZXJyb3JcbiAgICAgICAgICAgIC5qc29uKClcbiAgICAgICAgICAgIC50aGVuKChlcnIpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChuZXcgU3RvcmFnZUFwaUVycm9yKF9nZXRFcnJvck1lc3NhZ2UoZXJyKSwgZXJyb3Iuc3RhdHVzIHx8IDUwMCkpO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChuZXcgU3RvcmFnZVVua25vd25FcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGVyciksIGVycikpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJlamVjdChuZXcgU3RvcmFnZVVua25vd25FcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSwgZXJyb3IpKTtcbiAgICB9XG59KTtcbmNvbnN0IF9nZXRSZXF1ZXN0UGFyYW1zID0gKG1ldGhvZCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSkgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgbWV0aG9kLCBoZWFkZXJzOiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmhlYWRlcnMpIHx8IHt9IH07XG4gICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG4gICAgcGFyYW1zLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LCBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVhZGVycyk7XG4gICAgcGFyYW1zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwYXJhbXMpLCBwYXJhbWV0ZXJzKTtcbn07XG5mdW5jdGlvbiBfaGFuZGxlUmVxdWVzdChmZXRjaGVyLCBtZXRob2QsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBmZXRjaGVyKHVybCwgX2dldFJlcXVlc3RQYXJhbXMobWV0aG9kLCBvcHRpb25zLCBwYXJhbWV0ZXJzLCBib2R5KSlcbiAgICAgICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQub2spXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm5vUmVzb2x2ZUpzb24pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5qc29uKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiByZXNvbHZlKGRhdGEpKVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGhhbmRsZUVycm9yKGVycm9yLCByZWplY3QpKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0KGZldGNoZXIsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHJldHVybiBfaGFuZGxlUmVxdWVzdChmZXRjaGVyLCAnR0VUJywgdXJsLCBvcHRpb25zLCBwYXJhbWV0ZXJzKTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwb3N0KGZldGNoZXIsIHVybCwgYm9keSwgb3B0aW9ucywgcGFyYW1ldGVycykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHJldHVybiBfaGFuZGxlUmVxdWVzdChmZXRjaGVyLCAnUE9TVCcsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSk7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcHV0KGZldGNoZXIsIHVybCwgYm9keSwgb3B0aW9ucywgcGFyYW1ldGVycykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHJldHVybiBfaGFuZGxlUmVxdWVzdChmZXRjaGVyLCAnUFVUJywgdXJsLCBvcHRpb25zLCBwYXJhbWV0ZXJzLCBib2R5KTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmUoZmV0Y2hlciwgdXJsLCBib2R5LCBvcHRpb25zLCBwYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgcmV0dXJuIF9oYW5kbGVSZXF1ZXN0KGZldGNoZXIsICdERUxFVEUnLCB1cmwsIG9wdGlvbnMsIHBhcmFtZXRlcnMsIGJvZHkpO1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmV0Y2guanMubWFwIl0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIlN0b3JhZ2VBcGlFcnJvciIsIlN0b3JhZ2VVbmtub3duRXJyb3IiLCJyZXNvbHZlUmVzcG9uc2UiLCJfZ2V0RXJyb3JNZXNzYWdlIiwiZXJyIiwibXNnIiwibWVzc2FnZSIsImVycm9yX2Rlc2NyaXB0aW9uIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiaGFuZGxlRXJyb3IiLCJSZXMiLCJqc29uIiwic3RhdHVzIiwiY2F0Y2giLCJfZ2V0UmVxdWVzdFBhcmFtcyIsIm1ldGhvZCIsIm9wdGlvbnMiLCJwYXJhbWV0ZXJzIiwiYm9keSIsInBhcmFtcyIsImhlYWRlcnMiLCJPYmplY3QiLCJhc3NpZ24iLCJfaGFuZGxlUmVxdWVzdCIsImZldGNoZXIiLCJ1cmwiLCJvayIsIm5vUmVzb2x2ZUpzb24iLCJkYXRhIiwiZ2V0IiwicG9zdCIsInB1dCIsInJlbW92ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/helpers.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveFetch: () => (/* binding */ resolveFetch),\n/* harmony export */ resolveResponse: () => (/* binding */ resolveResponse)\n/* harmony export */ });\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (...args)=>Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(middleware)/./node_modules/@supabase/node-fetch/browser.js\")).then(({ default: fetch1 })=>fetch1(...args));\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n};\nconst resolveResponse = ()=>__awaiter(void 0, void 0, void 0, function*() {\n if (typeof Response === \"undefined\") {\n // @ts-ignore\n return (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(middleware)/./node_modules/@supabase/node-fetch/browser.js\"))).Response;\n }\n return Response;\n }); //# sourceMappingURL=helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL2xpYi9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBSUEsWUFBWSxTQUFLLElBQUksU0FBSSxDQUFDQSxTQUFTLElBQUssU0FBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUztJQUNuRixTQUFTQyxNQUFNQyxLQUFLO1FBQUksT0FBT0EsaUJBQWlCSCxJQUFJRyxRQUFRLElBQUlILEVBQUUsU0FBVUksT0FBTztZQUFJQSxRQUFRRDtRQUFRO0lBQUk7SUFDM0csT0FBTyxJQUFLSCxDQUFBQSxLQUFNQSxDQUFBQSxJQUFJSyxPQUFNLENBQUMsRUFBRyxTQUFVRCxPQUFPLEVBQUVFLE1BQU07UUFDckQsU0FBU0MsVUFBVUosS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFVBQVVRLElBQUksQ0FBQ047WUFBUyxFQUFFLE9BQU9PLEdBQUc7Z0JBQUVKLE9BQU9JO1lBQUk7UUFBRTtRQUMxRixTQUFTQyxTQUFTUixLQUFLO1lBQUksSUFBSTtnQkFBRUssS0FBS1AsU0FBUyxDQUFDLFFBQVEsQ0FBQ0U7WUFBUyxFQUFFLE9BQU9PLEdBQUc7Z0JBQUVKLE9BQU9JO1lBQUk7UUFBRTtRQUM3RixTQUFTRixLQUFLSSxNQUFNO1lBQUlBLE9BQU9DLElBQUksR0FBR1QsUUFBUVEsT0FBT1QsS0FBSyxJQUFJRCxNQUFNVSxPQUFPVCxLQUFLLEVBQUVXLElBQUksQ0FBQ1AsV0FBV0k7UUFBVztRQUM3R0gsS0FBSyxDQUFDUCxZQUFZQSxVQUFVYyxLQUFLLENBQUNqQixTQUFTQyxjQUFjLEVBQUUsR0FBR1UsSUFBSTtJQUN0RTtBQUNKO0FBQ08sTUFBTU8sZUFBZSxDQUFDQztJQUN6QixJQUFJQztJQUNKLElBQUlELGFBQWE7UUFDYkMsU0FBU0Q7SUFDYixPQUNLLElBQUksT0FBT0UsVUFBVSxhQUFhO1FBQ25DRCxTQUFTLENBQUMsR0FBR0UsT0FBUywrS0FBTyxDQUF3Qk4sSUFBSSxDQUFDLENBQUMsRUFBRU8sU0FBU0YsTUFBSyxFQUFFLEdBQUtBLFVBQVNDO0lBQy9GLE9BQ0s7UUFDREYsU0FBU0M7SUFDYjtJQUNBLE9BQU8sQ0FBQyxHQUFHQyxPQUFTRixVQUFVRTtBQUNsQyxFQUFFO0FBQ0ssTUFBTUUsa0JBQWtCLElBQU16QixVQUFVLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHO1FBQ25FLElBQUksT0FBTzBCLGFBQWEsYUFBYTtZQUNqQyxhQUFhO1lBQ2IsT0FBTyxDQUFDLE1BQU0sK0tBQTZCLEVBQUdBLFFBQVE7UUFDMUQ7UUFDQSxPQUFPQTtJQUNYLEdBQUcsQ0FDSCxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL2xpYi9oZWxwZXJzLmpzP2E0N2IiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUZldGNoID0gKGN1c3RvbUZldGNoKSA9PiB7XG4gICAgbGV0IF9mZXRjaDtcbiAgICBpZiAoY3VzdG9tRmV0Y2gpIHtcbiAgICAgICAgX2ZldGNoID0gY3VzdG9tRmV0Y2g7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBmZXRjaCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgX2ZldGNoID0gKC4uLmFyZ3MpID0+IGltcG9ydCgnQHN1cGFiYXNlL25vZGUtZmV0Y2gnKS50aGVuKCh7IGRlZmF1bHQ6IGZldGNoIH0pID0+IGZldGNoKC4uLmFyZ3MpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIF9mZXRjaCA9IGZldGNoO1xuICAgIH1cbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IF9mZXRjaCguLi5hcmdzKTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZVJlc3BvbnNlID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgaWYgKHR5cGVvZiBSZXNwb25zZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gKHlpZWxkIGltcG9ydCgnQHN1cGFiYXNlL25vZGUtZmV0Y2gnKSkuUmVzcG9uc2U7XG4gICAgfVxuICAgIHJldHVybiBSZXNwb25zZTtcbn0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5qcy5tYXAiXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwicmVzb2x2ZUZldGNoIiwiY3VzdG9tRmV0Y2giLCJfZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJkZWZhdWx0IiwicmVzb2x2ZVJlc3BvbnNlIiwiUmVzcG9uc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/version.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/version.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\n// generated by genversion\nconst version = \"2.5.5\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL2xpYi92ZXJzaW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwQkFBMEI7QUFDbkIsTUFBTUEsVUFBVSxRQUFRLENBQy9CLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL3ZlcnNpb24uanM/ZmEzOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZW5lcmF0ZWQgYnkgZ2VudmVyc2lvblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSAnMi41LjUnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmVyc2lvbi5qcy5tYXAiXSwibmFtZXMiOlsidmVyc2lvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/version.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js": +/*!************************************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ StorageBucketApi)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/constants */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/errors */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/fetch */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/helpers */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nclass StorageBucketApi {\n constructor(url, headers = {}, fetch){\n this.url = url;\n this.headers = Object.assign(Object.assign({}, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_HEADERS), headers);\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(fetch);\n }\n /**\n * Retrieves the details of all Storage buckets within an existing project.\n */ listBuckets() {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/bucket`, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Retrieves the details of an existing Storage bucket.\n *\n * @param id The unique identifier of the bucket you would like to retrieve.\n */ getBucket(id) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/bucket/${id}`, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a new Storage bucket\n *\n * @param id A unique identifier for the bucket you are creating.\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations. By default, buckets are private.\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n * The global file size limit takes precedence over this value.\n * The default value is null, which doesn't set a per bucket file size limit.\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n * The default value is null, which allows files with all mime types to be uploaded.\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n * @returns newly created bucket id\n */ createBucket(id, options = {\n public: false\n }) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/bucket`, {\n id,\n name: id,\n public: options.public,\n file_size_limit: options.fileSizeLimit,\n allowed_mime_types: options.allowedMimeTypes\n }, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Updates a Storage bucket\n *\n * @param id A unique identifier for the bucket you are updating.\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations.\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n * The global file size limit takes precedence over this value.\n * The default value is null, which doesn't set a per bucket file size limit.\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n * The default value is null, which allows files with all mime types to be uploaded.\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n */ updateBucket(id, options) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.put)(this.fetch, `${this.url}/bucket/${id}`, {\n id,\n name: id,\n public: options.public,\n file_size_limit: options.fileSizeLimit,\n allowed_mime_types: options.allowedMimeTypes\n }, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Removes all objects inside a single bucket.\n *\n * @param id The unique identifier of the bucket you would like to empty.\n */ emptyBucket(id) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/bucket/${id}/empty`, {}, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\n * You must first `empty()` the bucket.\n *\n * @param id The unique identifier of the bucket you would like to delete.\n */ deleteBucket(id) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.remove)(this.fetch, `${this.url}/bucket/${id}`, {}, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n} //# sourceMappingURL=StorageBucketApi.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL3BhY2thZ2VzL1N0b3JhZ2VCdWNrZXRBcGkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFJQSxZQUFZLFNBQUssSUFBSSxTQUFJLENBQUNBLFNBQVMsSUFBSyxTQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTO0lBQ25GLFNBQVNDLE1BQU1DLEtBQUs7UUFBSSxPQUFPQSxpQkFBaUJILElBQUlHLFFBQVEsSUFBSUgsRUFBRSxTQUFVSSxPQUFPO1lBQUlBLFFBQVFEO1FBQVE7SUFBSTtJQUMzRyxPQUFPLElBQUtILENBQUFBLEtBQU1BLENBQUFBLElBQUlLLE9BQU0sQ0FBQyxFQUFHLFNBQVVELE9BQU8sRUFBRUUsTUFBTTtRQUNyRCxTQUFTQyxVQUFVSixLQUFLO1lBQUksSUFBSTtnQkFBRUssS0FBS1AsVUFBVVEsSUFBSSxDQUFDTjtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzFGLFNBQVNDLFNBQVNSLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxTQUFTLENBQUMsUUFBUSxDQUFDRTtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzdGLFNBQVNGLEtBQUtJLE1BQU07WUFBSUEsT0FBT0MsSUFBSSxHQUFHVCxRQUFRUSxPQUFPVCxLQUFLLElBQUlELE1BQU1VLE9BQU9ULEtBQUssRUFBRVcsSUFBSSxDQUFDUCxXQUFXSTtRQUFXO1FBQzdHSCxLQUFLLENBQUNQLFlBQVlBLFVBQVVjLEtBQUssQ0FBQ2pCLFNBQVNDLGNBQWMsRUFBRSxHQUFHVSxJQUFJO0lBQ3RFO0FBQ0o7QUFDbUQ7QUFDSjtBQUNPO0FBQ1I7QUFDL0IsTUFBTWM7SUFDakJDLFlBQVlDLEdBQUcsRUFBRUMsVUFBVSxDQUFDLENBQUMsRUFBRUMsS0FBSyxDQUFFO1FB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O29CQUFNQyxPQUFPO2dCQUFLO1lBQy9CLEVBQ0EsT0FBT0EsT0FBTztnQkFDVixJQUFJZiwyREFBY0EsQ0FBQ2UsUUFBUTtvQkFDdkIsT0FBTzt3QkFBRUQsTUFBTTt3QkFBTUM7b0JBQU07Z0JBQy9CO2dCQUNBLE1BQU1BO1lBQ1Y7UUFDSjtJQUNKO0FBQ0osRUFDQSw0Q0FBNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL3BhY2thZ2VzL1N0b3JhZ2VCdWNrZXRBcGkuanM/YjUyNSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IERFRkFVTFRfSEVBREVSUyB9IGZyb20gJy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaXNTdG9yYWdlRXJyb3IgfSBmcm9tICcuLi9saWIvZXJyb3JzJztcbmltcG9ydCB7IGdldCwgcG9zdCwgcHV0LCByZW1vdmUgfSBmcm9tICcuLi9saWIvZmV0Y2gnO1xuaW1wb3J0IHsgcmVzb2x2ZUZldGNoIH0gZnJvbSAnLi4vbGliL2hlbHBlcnMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RvcmFnZUJ1Y2tldEFwaSB7XG4gICAgY29uc3RydWN0b3IodXJsLCBoZWFkZXJzID0ge30sIGZldGNoKSB7XG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfSEVBREVSUyksIGhlYWRlcnMpO1xuICAgICAgICB0aGlzLmZldGNoID0gcmVzb2x2ZUZldGNoKGZldGNoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxzIG9mIGFsbCBTdG9yYWdlIGJ1Y2tldHMgd2l0aGluIGFuIGV4aXN0aW5nIHByb2plY3QuXG4gICAgICovXG4gICAgbGlzdEJ1Y2tldHMoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBnZXQodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L2J1Y2tldGAsIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxzIG9mIGFuIGV4aXN0aW5nIFN0b3JhZ2UgYnVja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYnVja2V0IHlvdSB3b3VsZCBsaWtlIHRvIHJldHJpZXZlLlxuICAgICAqL1xuICAgIGdldEJ1Y2tldChpZCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZ2V0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9idWNrZXQvJHtpZH1gLCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgU3RvcmFnZSBidWNrZXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgYnVja2V0IHlvdSBhcmUgY3JlYXRpbmcuXG4gICAgICogQHBhcmFtIG9wdGlvbnMucHVibGljIFRoZSB2aXNpYmlsaXR5IG9mIHRoZSBidWNrZXQuIFB1YmxpYyBidWNrZXRzIGRvbid0IHJlcXVpcmUgYW4gYXV0aG9yaXphdGlvbiB0b2tlbiB0byBkb3dubG9hZCBvYmplY3RzLCBidXQgc3RpbGwgcmVxdWlyZSBhIHZhbGlkIHRva2VuIGZvciBhbGwgb3RoZXIgb3BlcmF0aW9ucy4gQnkgZGVmYXVsdCwgYnVja2V0cyBhcmUgcHJpdmF0ZS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5maWxlU2l6ZUxpbWl0IHNwZWNpZmllcyB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBieXRlcyB0aGF0IGNhbiBiZSB1cGxvYWRlZCB0byB0aGlzIGJ1Y2tldC5cbiAgICAgKiBUaGUgZ2xvYmFsIGZpbGUgc2l6ZSBsaW1pdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhpcyB2YWx1ZS5cbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBudWxsLCB3aGljaCBkb2Vzbid0IHNldCBhIHBlciBidWNrZXQgZmlsZSBzaXplIGxpbWl0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmFsbG93ZWRNaW1lVHlwZXMgc3BlY2lmaWVzIHRoZSBhbGxvd2VkIG1pbWUgdHlwZXMgdGhhdCB0aGlzIGJ1Y2tldCBjYW4gYWNjZXB0IGR1cmluZyB1cGxvYWQuXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgbnVsbCwgd2hpY2ggYWxsb3dzIGZpbGVzIHdpdGggYWxsIG1pbWUgdHlwZXMgdG8gYmUgdXBsb2FkZWQuXG4gICAgICogRWFjaCBtaW1lIHR5cGUgc3BlY2lmaWVkIGNhbiBiZSBhIHdpbGRjYXJkLCBlLmcuIGltYWdlLyosIG9yIGEgc3BlY2lmaWMgbWltZSB0eXBlLCBlLmcuIGltYWdlL3BuZy5cbiAgICAgKiBAcmV0dXJucyBuZXdseSBjcmVhdGVkIGJ1Y2tldCBpZFxuICAgICAqL1xuICAgIGNyZWF0ZUJ1Y2tldChpZCwgb3B0aW9ucyA9IHtcbiAgICAgICAgcHVibGljOiBmYWxzZSxcbiAgICB9KSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBwb3N0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9idWNrZXRgLCB7XG4gICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgcHVibGljOiBvcHRpb25zLnB1YmxpYyxcbiAgICAgICAgICAgICAgICAgICAgZmlsZV9zaXplX2xpbWl0OiBvcHRpb25zLmZpbGVTaXplTGltaXQsXG4gICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfbWltZV90eXBlczogb3B0aW9ucy5hbGxvd2VkTWltZVR5cGVzLFxuICAgICAgICAgICAgICAgIH0sIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlcyBhIFN0b3JhZ2UgYnVja2V0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGJ1Y2tldCB5b3UgYXJlIHVwZGF0aW5nLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnB1YmxpYyBUaGUgdmlzaWJpbGl0eSBvZiB0aGUgYnVja2V0LiBQdWJsaWMgYnVja2V0cyBkb24ndCByZXF1aXJlIGFuIGF1dGhvcml6YXRpb24gdG9rZW4gdG8gZG93bmxvYWQgb2JqZWN0cywgYnV0IHN0aWxsIHJlcXVpcmUgYSB2YWxpZCB0b2tlbiBmb3IgYWxsIG90aGVyIG9wZXJhdGlvbnMuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZmlsZVNpemVMaW1pdCBzcGVjaWZpZXMgdGhlIG1heCBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCBjYW4gYmUgdXBsb2FkZWQgdG8gdGhpcyBidWNrZXQuXG4gICAgICogVGhlIGdsb2JhbCBmaWxlIHNpemUgbGltaXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoaXMgdmFsdWUuXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgbnVsbCwgd2hpY2ggZG9lc24ndCBzZXQgYSBwZXIgYnVja2V0IGZpbGUgc2l6ZSBsaW1pdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5hbGxvd2VkTWltZVR5cGVzIHNwZWNpZmllcyB0aGUgYWxsb3dlZCBtaW1lIHR5cGVzIHRoYXQgdGhpcyBidWNrZXQgY2FuIGFjY2VwdCBkdXJpbmcgdXBsb2FkLlxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG51bGwsIHdoaWNoIGFsbG93cyBmaWxlcyB3aXRoIGFsbCBtaW1lIHR5cGVzIHRvIGJlIHVwbG9hZGVkLlxuICAgICAqIEVhY2ggbWltZSB0eXBlIHNwZWNpZmllZCBjYW4gYmUgYSB3aWxkY2FyZCwgZS5nLiBpbWFnZS8qLCBvciBhIHNwZWNpZmljIG1pbWUgdHlwZSwgZS5nLiBpbWFnZS9wbmcuXG4gICAgICovXG4gICAgdXBkYXRlQnVja2V0KGlkLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBwdXQodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L2J1Y2tldC8ke2lkfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGlkLFxuICAgICAgICAgICAgICAgICAgICBwdWJsaWM6IG9wdGlvbnMucHVibGljLFxuICAgICAgICAgICAgICAgICAgICBmaWxlX3NpemVfbGltaXQ6IG9wdGlvbnMuZmlsZVNpemVMaW1pdCxcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9taW1lX3R5cGVzOiBvcHRpb25zLmFsbG93ZWRNaW1lVHlwZXMsXG4gICAgICAgICAgICAgICAgfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBvYmplY3RzIGluc2lkZSBhIHNpbmdsZSBidWNrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBidWNrZXQgeW91IHdvdWxkIGxpa2UgdG8gZW1wdHkuXG4gICAgICovXG4gICAgZW1wdHlCdWNrZXQoaWQpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L2J1Y2tldC8ke2lkfS9lbXB0eWAsIHt9LCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYW4gZXhpc3RpbmcgYnVja2V0LiBBIGJ1Y2tldCBjYW4ndCBiZSBkZWxldGVkIHdpdGggZXhpc3Rpbmcgb2JqZWN0cyBpbnNpZGUgaXQuXG4gICAgICogWW91IG11c3QgZmlyc3QgYGVtcHR5KClgIHRoZSBidWNrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBidWNrZXQgeW91IHdvdWxkIGxpa2UgdG8gZGVsZXRlLlxuICAgICAqL1xuICAgIGRlbGV0ZUJ1Y2tldChpZCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVtb3ZlKHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9idWNrZXQvJHtpZH1gLCB7fSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN0b3JhZ2VCdWNrZXRBcGkuanMubWFwIl0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIkRFRkFVTFRfSEVBREVSUyIsImlzU3RvcmFnZUVycm9yIiwiZ2V0IiwicG9zdCIsInB1dCIsInJlbW92ZSIsInJlc29sdmVGZXRjaCIsIlN0b3JhZ2VCdWNrZXRBcGkiLCJjb25zdHJ1Y3RvciIsInVybCIsImhlYWRlcnMiLCJmZXRjaCIsIk9iamVjdCIsImFzc2lnbiIsImxpc3RCdWNrZXRzIiwiZGF0YSIsImVycm9yIiwiZ2V0QnVja2V0IiwiaWQiLCJjcmVhdGVCdWNrZXQiLCJvcHRpb25zIiwicHVibGljIiwibmFtZSIsImZpbGVfc2l6ZV9saW1pdCIsImZpbGVTaXplTGltaXQiLCJhbGxvd2VkX21pbWVfdHlwZXMiLCJhbGxvd2VkTWltZVR5cGVzIiwidXBkYXRlQnVja2V0IiwiZW1wdHlCdWNrZXQiLCJkZWxldGVCdWNrZXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ StorageFileApi)\n/* harmony export */ });\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/errors */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/fetch */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/helpers */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nconst DEFAULT_SEARCH_OPTIONS = {\n limit: 100,\n offset: 0,\n sortBy: {\n column: \"name\",\n order: \"asc\"\n }\n};\nconst DEFAULT_FILE_OPTIONS = {\n cacheControl: \"3600\",\n contentType: \"text/plain;charset=UTF-8\",\n upsert: false\n};\nclass StorageFileApi {\n constructor(url, headers = {}, bucketId, fetch){\n this.url = url;\n this.headers = headers;\n this.bucketId = bucketId;\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_0__.resolveFetch)(fetch);\n }\n /**\n * Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one.\n *\n * @param method HTTP method.\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param fileBody The body of the file to be stored in the bucket.\n */ uploadOrUpdate(method, path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n let body;\n const options = Object.assign(Object.assign({}, DEFAULT_FILE_OPTIONS), fileOptions);\n const headers = Object.assign(Object.assign({}, this.headers), method === \"POST\" && {\n \"x-upsert\": String(options.upsert)\n });\n if (typeof Blob !== \"undefined\" && fileBody instanceof Blob) {\n body = new FormData();\n body.append(\"cacheControl\", options.cacheControl);\n body.append(\"\", fileBody);\n } else if (typeof FormData !== \"undefined\" && fileBody instanceof FormData) {\n body = fileBody;\n body.append(\"cacheControl\", options.cacheControl);\n } else {\n body = fileBody;\n headers[\"cache-control\"] = `max-age=${options.cacheControl}`;\n headers[\"content-type\"] = options.contentType;\n }\n const cleanPath = this._removeEmptyFolders(path);\n const _path = this._getFinalPath(cleanPath);\n const res = yield this.fetch(`${this.url}/object/${_path}`, Object.assign({\n method,\n body: body,\n headers\n }, (options === null || options === void 0 ? void 0 : options.duplex) ? {\n duplex: options.duplex\n } : {}));\n const data = yield res.json();\n if (res.ok) {\n return {\n data: {\n path: cleanPath,\n id: data.Id,\n fullPath: data.Key\n },\n error: null\n };\n } else {\n const error = data;\n return {\n data: null,\n error\n };\n }\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Uploads a file to an existing bucket.\n *\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param fileBody The body of the file to be stored in the bucket.\n */ upload(path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function*() {\n return this.uploadOrUpdate(\"POST\", path, fileBody, fileOptions);\n });\n }\n /**\n * Upload a file with a token generated from `createSignedUploadUrl`.\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param token The token generated from `createSignedUploadUrl`\n * @param fileBody The body of the file to be stored in the bucket.\n */ uploadToSignedUrl(path, token, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function*() {\n const cleanPath = this._removeEmptyFolders(path);\n const _path = this._getFinalPath(cleanPath);\n const url = new URL(this.url + `/object/upload/sign/${_path}`);\n url.searchParams.set(\"token\", token);\n try {\n let body;\n const options = Object.assign({\n upsert: DEFAULT_FILE_OPTIONS.upsert\n }, fileOptions);\n const headers = Object.assign(Object.assign({}, this.headers), {\n \"x-upsert\": String(options.upsert)\n });\n if (typeof Blob !== \"undefined\" && fileBody instanceof Blob) {\n body = new FormData();\n body.append(\"cacheControl\", options.cacheControl);\n body.append(\"\", fileBody);\n } else if (typeof FormData !== \"undefined\" && fileBody instanceof FormData) {\n body = fileBody;\n body.append(\"cacheControl\", options.cacheControl);\n } else {\n body = fileBody;\n headers[\"cache-control\"] = `max-age=${options.cacheControl}`;\n headers[\"content-type\"] = options.contentType;\n }\n const res = yield this.fetch(url.toString(), {\n method: \"PUT\",\n body: body,\n headers\n });\n const data = yield res.json();\n if (res.ok) {\n return {\n data: {\n path: cleanPath,\n fullPath: data.Key\n },\n error: null\n };\n } else {\n const error = data;\n return {\n data: null,\n error\n };\n }\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a signed upload URL.\n * Signed upload URLs can be used to upload files to the bucket without further authentication.\n * They are valid for 2 hours.\n * @param path The file path, including the current file name. For example `folder/image.png`.\n */ createSignedUploadUrl(path) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n let _path = this._getFinalPath(path);\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/upload/sign/${_path}`, {}, {\n headers: this.headers\n });\n const url = new URL(this.url + data.url);\n const token = url.searchParams.get(\"token\");\n if (!token) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_1__.StorageError(\"No token returned by API\");\n }\n return {\n data: {\n signedUrl: url.toString(),\n path,\n token\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Replaces an existing file at the specified path with a new one.\n *\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to update.\n * @param fileBody The body of the file to be stored in the bucket.\n */ update(path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function*() {\n return this.uploadOrUpdate(\"PUT\", path, fileBody, fileOptions);\n });\n }\n /**\n * Moves an existing file to a new path in the same bucket.\n *\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n * @param toPath The new file path, including the new file name. For example `folder/image-new.png`.\n */ move(fromPath, toPath) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/move`, {\n bucketId: this.bucketId,\n sourceKey: fromPath,\n destinationKey: toPath\n }, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Copies an existing file to a new path in the same bucket.\n *\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n * @param toPath The new file path, including the new file name. For example `folder/image-copy.png`.\n */ copy(fromPath, toPath) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/copy`, {\n bucketId: this.bucketId,\n sourceKey: fromPath,\n destinationKey: toPath\n }, {\n headers: this.headers\n });\n return {\n data: {\n path: data.Key\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a signed URL. Use a signed URL to share a file for a fixed amount of time.\n *\n * @param path The file path, including the current file name. For example `folder/image.png`.\n * @param expiresIn The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n * @param options.transform Transform the asset before serving it to the client.\n */ createSignedUrl(path, expiresIn, options) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n let _path = this._getFinalPath(path);\n let data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/sign/${_path}`, Object.assign({\n expiresIn\n }, (options === null || options === void 0 ? void 0 : options.transform) ? {\n transform: options.transform\n } : {}), {\n headers: this.headers\n });\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `&download=${options.download === true ? \"\" : options.download}` : \"\";\n const signedUrl = encodeURI(`${this.url}${data.signedURL}${downloadQueryParam}`);\n data = {\n signedUrl\n };\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Creates multiple signed URLs. Use a signed URL to share a file for a fixed amount of time.\n *\n * @param paths The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`.\n * @param expiresIn The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n */ createSignedUrls(paths, expiresIn, options) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/sign/${this.bucketId}`, {\n expiresIn,\n paths\n }, {\n headers: this.headers\n });\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `&download=${options.download === true ? \"\" : options.download}` : \"\";\n return {\n data: data.map((datum)=>Object.assign(Object.assign({}, datum), {\n signedUrl: datum.signedURL ? encodeURI(`${this.url}${datum.signedURL}${downloadQueryParam}`) : null\n })),\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead.\n *\n * @param path The full path and file name of the file to be downloaded. For example `folder/image.png`.\n * @param options.transform Transform the asset before serving it to the client.\n */ download(path, options) {\n return __awaiter(this, void 0, void 0, function*() {\n const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== \"undefined\";\n const renderPath = wantsTransformation ? \"render/image/authenticated\" : \"object\";\n const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\n const queryString = transformationQuery ? `?${transformationQuery}` : \"\";\n try {\n const _path = this._getFinalPath(path);\n const res = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/${renderPath}/${_path}${queryString}`, {\n headers: this.headers,\n noResolveJson: true\n });\n const data = yield res.blob();\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * A simple convenience function to get the URL for an asset in a public bucket. If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset.\n * This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset.\n *\n * @param path The path and name of the file to generate the public URL for. For example `folder/image.png`.\n * @param options.download Triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n * @param options.transform Transform the asset before serving it to the client.\n */ getPublicUrl(path, options) {\n const _path = this._getFinalPath(path);\n const _queryString = [];\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `download=${options.download === true ? \"\" : options.download}` : \"\";\n if (downloadQueryParam !== \"\") {\n _queryString.push(downloadQueryParam);\n }\n const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== \"undefined\";\n const renderPath = wantsTransformation ? \"render/image\" : \"object\";\n const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\n if (transformationQuery !== \"\") {\n _queryString.push(transformationQuery);\n }\n let queryString = _queryString.join(\"&\");\n if (queryString !== \"\") {\n queryString = `?${queryString}`;\n }\n return {\n data: {\n publicUrl: encodeURI(`${this.url}/${renderPath}/public/${_path}${queryString}`)\n }\n };\n }\n /**\n * Deletes files within the same bucket\n *\n * @param paths An array of files to delete, including the path and file name. For example [`'folder/image.png'`].\n */ remove(paths) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.remove)(this.fetch, `${this.url}/object/${this.bucketId}`, {\n prefixes: paths\n }, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Get file metadata\n * @param id the file id to retrieve metadata\n */ // async getMetadata(\n // id: string\n // ): Promise<\n // | {\n // data: Metadata\n // error: null\n // }\n // | {\n // data: null\n // error: StorageError\n // }\n // > {\n // try {\n // const data = await get(this.fetch, `${this.url}/metadata/${id}`, { headers: this.headers })\n // return { data, error: null }\n // } catch (error) {\n // if (isStorageError(error)) {\n // return { data: null, error }\n // }\n // throw error\n // }\n // }\n /**\n * Update file metadata\n * @param id the file id to update metadata\n * @param meta the new file metadata\n */ // async updateMetadata(\n // id: string,\n // meta: Metadata\n // ): Promise<\n // | {\n // data: Metadata\n // error: null\n // }\n // | {\n // data: null\n // error: StorageError\n // }\n // > {\n // try {\n // const data = await post(\n // this.fetch,\n // `${this.url}/metadata/${id}`,\n // { ...meta },\n // { headers: this.headers }\n // )\n // return { data, error: null }\n // } catch (error) {\n // if (isStorageError(error)) {\n // return { data: null, error }\n // }\n // throw error\n // }\n // }\n /**\n * Lists all the files within a bucket.\n * @param path The folder path.\n */ list(path, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const body = Object.assign(Object.assign(Object.assign({}, DEFAULT_SEARCH_OPTIONS), options), {\n prefix: path || \"\"\n });\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/list/${this.bucketId}`, body, {\n headers: this.headers\n }, parameters);\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n _getFinalPath(path) {\n return `${this.bucketId}/${path}`;\n }\n _removeEmptyFolders(path) {\n return path.replace(/^\\/|\\/$/g, \"\").replace(/\\/+/g, \"/\");\n }\n transformOptsToQueryString(transform) {\n const params = [];\n if (transform.width) {\n params.push(`width=${transform.width}`);\n }\n if (transform.height) {\n params.push(`height=${transform.height}`);\n }\n if (transform.resize) {\n params.push(`resize=${transform.resize}`);\n }\n if (transform.format) {\n params.push(`format=${transform.format}`);\n }\n if (transform.quality) {\n params.push(`quality=${transform.quality}`);\n }\n return params.join(\"&\");\n }\n} //# sourceMappingURL=StorageFileApi.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL3BhY2thZ2VzL1N0b3JhZ2VGaWxlQXBpLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFJQSxZQUFZLFNBQUssSUFBSSxTQUFJLENBQUNBLFNBQVMsSUFBSyxTQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTO0lBQ25GLFNBQVNDLE1BQU1DLEtBQUs7UUFBSSxPQUFPQSxpQkFBaUJILElBQUlHLFFBQVEsSUFBSUgsRUFBRSxTQUFVSSxPQUFPO1lBQUlBLFFBQVFEO1FBQVE7SUFBSTtJQUMzRyxPQUFPLElBQUtILENBQUFBLEtBQU1BLENBQUFBLElBQUlLLE9BQU0sQ0FBQyxFQUFHLFNBQVVELE9BQU8sRUFBRUUsTUFBTTtRQUNyRCxTQUFTQyxVQUFVSixLQUFLO1lBQUksSUFBSTtnQkFBRUssS0FBS1AsVUFBVVEsSUFBSSxDQUFDTjtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzFGLFNBQVNDLFNBQVNSLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxTQUFTLENBQUMsUUFBUSxDQUFDRTtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzdGLFNBQVNGLEtBQUtJLE1BQU07WUFBSUEsT0FBT0MsSUFBSSxHQUFHVCxRQUFRUSxPQUFPVCxLQUFLLElBQUlELE1BQU1VLE9BQU9ULEtBQUssRUFBRVcsSUFBSSxDQUFDUCxXQUFXSTtRQUFXO1FBQzdHSCxLQUFLLENBQUNQLFlBQVlBLFVBQVVjLEtBQUssQ0FBQ2pCLFNBQVNDLGNBQWMsRUFBRSxHQUFHVSxJQUFJO0lBQ3RFO0FBQ0o7QUFDNkQ7QUFDWjtBQUNIO0FBQzlDLE1BQU1hLHlCQUF5QjtJQUMzQkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLFFBQVE7UUFDSkMsUUFBUTtRQUNSQyxPQUFPO0lB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LE9BQU9SLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRWxCLFVBQVUrQixPQUFPLENBQUMsQ0FBQztRQUM5QztRQUNBLE9BQU9MLE9BQU9QLElBQUksQ0FBQztJQUN2QjtBQUNKLEVBQ0EsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9wYWNrYWdlcy9TdG9yYWdlRmlsZUFwaS5qcz8xNThhIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgaXNTdG9yYWdlRXJyb3IsIFN0b3JhZ2VFcnJvciB9IGZyb20gJy4uL2xpYi9lcnJvcnMnO1xuaW1wb3J0IHsgZ2V0LCBwb3N0LCByZW1vdmUgfSBmcm9tICcuLi9saWIvZmV0Y2gnO1xuaW1wb3J0IHsgcmVzb2x2ZUZldGNoIH0gZnJvbSAnLi4vbGliL2hlbHBlcnMnO1xuY29uc3QgREVGQVVMVF9TRUFSQ0hfT1BUSU9OUyA9IHtcbiAgICBsaW1pdDogMTAwLFxuICAgIG9mZnNldDogMCxcbiAgICBzb3J0Qnk6IHtcbiAgICAgICAgY29sdW1uOiAnbmFtZScsXG4gICAgICAgIG9yZGVyOiAnYXNjJyxcbiAgICB9LFxufTtcbmNvbnN0IERFRkFVTFRfRklMRV9PUFRJT05TID0ge1xuICAgIGNhY2hlQ29udHJvbDogJzM2MDAnLFxuICAgIGNvbnRlbnRUeXBlOiAndGV4dC9wbGFpbjtjaGFyc2V0PVVURi04JyxcbiAgICB1cHNlcnQ6IGZhbHNlLFxufTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0b3JhZ2VGaWxlQXBpIHtcbiAgICBjb25zdHJ1Y3Rvcih1cmwsIGhlYWRlcnMgPSB7fSwgYnVja2V0SWQsIGZldGNoKSB7XG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICAgICAgICB0aGlzLmJ1Y2tldElkID0gYnVja2V0SWQ7XG4gICAgICAgIHRoaXMuZmV0Y2ggPSByZXNvbHZlRmV0Y2goZmV0Y2gpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGxvYWRzIGEgZmlsZSB0byBhbiBleGlzdGluZyBidWNrZXQgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZmlsZSBhdCB0aGUgc3BlY2lmaWVkIHBhdGggd2l0aCBhIG5ldyBvbmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWV0aG9kIEhUVFAgbWV0aG9kLlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSByZWxhdGl2ZSBmaWxlIHBhdGguIFNob3VsZCBiZSBvZiB0aGUgZm9ybWF0IGBmb2xkZXIvc3ViZm9sZGVyL2ZpbGVuYW1lLnBuZ2AuIFRoZSBidWNrZXQgbXVzdCBhbHJlYWR5IGV4aXN0IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVwbG9hZC5cbiAgICAgKiBAcGFyYW0gZmlsZUJvZHkgVGhlIGJvZHkgb2YgdGhlIGZpbGUgdG8gYmUgc3RvcmVkIGluIHRoZSBidWNrZXQuXG4gICAgICovXG4gICAgdXBsb2FkT3JVcGRhdGUobWV0aG9kLCBwYXRoLCBmaWxlQm9keSwgZmlsZU9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IGJvZHk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9GSUxFX09QVElPTlMpLCBmaWxlT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5oZWFkZXJzKSwgKG1ldGhvZCA9PT0gJ1BPU1QnICYmIHsgJ3gtdXBzZXJ0JzogU3RyaW5nKG9wdGlvbnMudXBzZXJ0KSB9KSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBCbG9iICE9PSAndW5kZWZpbmVkJyAmJiBmaWxlQm9keSBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnY2FjaGVDb250cm9sJywgb3B0aW9ucy5jYWNoZUNvbnRyb2wpO1xuICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnJywgZmlsZUJvZHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnICYmIGZpbGVCb2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IGZpbGVCb2R5O1xuICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnY2FjaGVDb250cm9sJywgb3B0aW9ucy5jYWNoZUNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IGZpbGVCb2R5O1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzWydjYWNoZS1jb250cm9sJ10gPSBgbWF4LWFnZT0ke29wdGlvbnMuY2FjaGVDb250cm9sfWA7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gb3B0aW9ucy5jb250ZW50VHlwZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgY2xlYW5QYXRoID0gdGhpcy5fcmVtb3ZlRW1wdHlGb2xkZXJzKHBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9wYXRoID0gdGhpcy5fZ2V0RmluYWxQYXRoKGNsZWFuUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0geWllbGQgdGhpcy5mZXRjaChgJHt0aGlzLnVybH0vb2JqZWN0LyR7X3BhdGh9YCwgT2JqZWN0LmFzc2lnbih7IG1ldGhvZCwgYm9keTogYm9keSwgaGVhZGVycyB9LCAoKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kdXBsZXgpID8geyBkdXBsZXg6IG9wdGlvbnMuZHVwbGV4IH0gOiB7fSkpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVzLmpzb24oKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IHBhdGg6IGNsZWFuUGF0aCwgaWQ6IGRhdGEuSWQsIGZ1bGxQYXRoOiBkYXRhLktleSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwbG9hZHMgYSBmaWxlIHRvIGFuIGV4aXN0aW5nIGJ1Y2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgZmlsZSBuYW1lLiBTaG91bGQgYmUgb2YgdGhlIGZvcm1hdCBgZm9sZGVyL3N1YmZvbGRlci9maWxlbmFtZS5wbmdgLiBUaGUgYnVja2V0IG11c3QgYWxyZWFkeSBleGlzdCBiZWZvcmUgYXR0ZW1wdGluZyB0byB1cGxvYWQuXG4gICAgICogQHBhcmFtIGZpbGVCb2R5IFRoZSBib2R5IG9mIHRoZSBmaWxlIHRvIGJlIHN0b3JlZCBpbiB0aGUgYnVja2V0LlxuICAgICAqL1xuICAgIHVwbG9hZChwYXRoLCBmaWxlQm9keSwgZmlsZU9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZE9yVXBkYXRlKCdQT1NUJywgcGF0aCwgZmlsZUJvZHksIGZpbGVPcHRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwbG9hZCBhIGZpbGUgd2l0aCBhIHRva2VuIGdlbmVyYXRlZCBmcm9tIGBjcmVhdGVTaWduZWRVcGxvYWRVcmxgLlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgZmlsZSBuYW1lLiBTaG91bGQgYmUgb2YgdGhlIGZvcm1hdCBgZm9sZGVyL3N1YmZvbGRlci9maWxlbmFtZS5wbmdgLiBUaGUgYnVja2V0IG11c3QgYWxyZWFkeSBleGlzdCBiZWZvcmUgYXR0ZW1wdGluZyB0byB1cGxvYWQuXG4gICAgICogQHBhcmFtIHRva2VuIFRoZSB0b2tlbiBnZW5lcmF0ZWQgZnJvbSBgY3JlYXRlU2lnbmVkVXBsb2FkVXJsYFxuICAgICAqIEBwYXJhbSBmaWxlQm9keSBUaGUgYm9keSBvZiB0aGUgZmlsZSB0byBiZSBzdG9yZWQgaW4gdGhlIGJ1Y2tldC5cbiAgICAgKi9cbiAgICB1cGxvYWRUb1NpZ25lZFVybChwYXRoLCB0b2tlbiwgZmlsZUJvZHksIGZpbGVPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBjbGVhblBhdGggPSB0aGlzLl9yZW1vdmVFbXB0eUZvbGRlcnMocGF0aCk7XG4gICAgICAgICAgICBjb25zdCBfcGF0aCA9IHRoaXMuX2dldEZpbmFsUGF0aChjbGVhblBhdGgpO1xuICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnVybCArIGAvb2JqZWN0L3VwbG9hZC9zaWduLyR7X3BhdGh9YCk7XG4gICAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgndG9rZW4nLCB0b2tlbik7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBib2R5O1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHsgdXBzZXJ0OiBERUZBVUxUX0ZJTEVfT1BUSU9OUy51cHNlcnQgfSwgZmlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaGVhZGVycyksIHsgJ3gtdXBzZXJ0JzogU3RyaW5nKG9wdGlvbnMudXBzZXJ0KSB9KTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIGZpbGVCb2R5IGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICAgICAgICAgICAgICBib2R5ID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkuYXBwZW5kKCdjYWNoZUNvbnRyb2wnLCBvcHRpb25zLmNhY2hlQ29udHJvbCk7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkuYXBwZW5kKCcnLCBmaWxlQm9keSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBGb3JtRGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgZmlsZUJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBib2R5ID0gZmlsZUJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkuYXBwZW5kKCdjYWNoZUNvbnRyb2wnLCBvcHRpb25zLmNhY2hlQ29udHJvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBib2R5ID0gZmlsZUJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbJ2NhY2hlLWNvbnRyb2wnXSA9IGBtYXgtYWdlPSR7b3B0aW9ucy5jYWNoZUNvbnRyb2x9YDtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1snY29udGVudC10eXBlJ10gPSBvcHRpb25zLmNvbnRlbnRUeXBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSB5aWVsZCB0aGlzLmZldGNoKHVybC50b1N0cmluZygpLCB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcy5qc29uKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogeyBwYXRoOiBjbGVhblBhdGgsIGZ1bGxQYXRoOiBkYXRhLktleSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzaWduZWQgdXBsb2FkIFVSTC5cbiAgICAgKiBTaWduZWQgdXBsb2FkIFVSTHMgY2FuIGJlIHVzZWQgdG8gdXBsb2FkIGZpbGVzIHRvIHRoZSBidWNrZXQgd2l0aG91dCBmdXJ0aGVyIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqIFRoZXkgYXJlIHZhbGlkIGZvciAyIGhvdXJzLlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgY3VycmVudCBmaWxlIG5hbWUuIEZvciBleGFtcGxlIGBmb2xkZXIvaW1hZ2UucG5nYC5cbiAgICAgKi9cbiAgICBjcmVhdGVTaWduZWRVcGxvYWRVcmwocGF0aCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgX3BhdGggPSB0aGlzLl9nZXRGaW5hbFBhdGgocGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC91cGxvYWQvc2lnbi8ke19wYXRofWAsIHt9LCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRoaXMudXJsICsgZGF0YS51cmwpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoJ3Rva2VuJyk7XG4gICAgICAgICAgICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RvcmFnZUVycm9yKCdObyB0b2tlbiByZXR1cm5lZCBieSBBUEknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBzaWduZWRVcmw6IHVybC50b1N0cmluZygpLCBwYXRoLCB0b2tlbiB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIGFuIGV4aXN0aW5nIGZpbGUgYXQgdGhlIHNwZWNpZmllZCBwYXRoIHdpdGggYSBuZXcgb25lLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggVGhlIHJlbGF0aXZlIGZpbGUgcGF0aC4gU2hvdWxkIGJlIG9mIHRoZSBmb3JtYXQgYGZvbGRlci9zdWJmb2xkZXIvZmlsZW5hbWUucG5nYC4gVGhlIGJ1Y2tldCBtdXN0IGFscmVhZHkgZXhpc3QgYmVmb3JlIGF0dGVtcHRpbmcgdG8gdXBkYXRlLlxuICAgICAqIEBwYXJhbSBmaWxlQm9keSBUaGUgYm9keSBvZiB0aGUgZmlsZSB0byBiZSBzdG9yZWQgaW4gdGhlIGJ1Y2tldC5cbiAgICAgKi9cbiAgICB1cGRhdGUocGF0aCwgZmlsZUJvZHksIGZpbGVPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRPclVwZGF0ZSgnUFVUJywgcGF0aCwgZmlsZUJvZHksIGZpbGVPcHRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1vdmVzIGFuIGV4aXN0aW5nIGZpbGUgdG8gYSBuZXcgcGF0aCBpbiB0aGUgc2FtZSBidWNrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnJvbVBhdGggVGhlIG9yaWdpbmFsIGZpbGUgcGF0aCwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGZpbGUgbmFtZS4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS5wbmdgLlxuICAgICAqIEBwYXJhbSB0b1BhdGggVGhlIG5ldyBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgbmV3IGZpbGUgbmFtZS4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS1uZXcucG5nYC5cbiAgICAgKi9cbiAgICBtb3ZlKGZyb21QYXRoLCB0b1BhdGgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC9tb3ZlYCwgeyBidWNrZXRJZDogdGhpcy5idWNrZXRJZCwgc291cmNlS2V5OiBmcm9tUGF0aCwgZGVzdGluYXRpb25LZXk6IHRvUGF0aCB9LCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvcGllcyBhbiBleGlzdGluZyBmaWxlIHRvIGEgbmV3IHBhdGggaW4gdGhlIHNhbWUgYnVja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZyb21QYXRoIFRoZSBvcmlnaW5hbCBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgY3VycmVudCBmaWxlIG5hbWUuIEZvciBleGFtcGxlIGBmb2xkZXIvaW1hZ2UucG5nYC5cbiAgICAgKiBAcGFyYW0gdG9QYXRoIFRoZSBuZXcgZmlsZSBwYXRoLCBpbmNsdWRpbmcgdGhlIG5ldyBmaWxlIG5hbWUuIEZvciBleGFtcGxlIGBmb2xkZXIvaW1hZ2UtY29weS5wbmdgLlxuICAgICAqL1xuICAgIGNvcHkoZnJvbVBhdGgsIHRvUGF0aCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcG9zdCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vb2JqZWN0L2NvcHlgLCB7IGJ1Y2tldElkOiB0aGlzLmJ1Y2tldElkLCBzb3VyY2VLZXk6IGZyb21QYXRoLCBkZXN0aW5hdGlvbktleTogdG9QYXRoIH0sIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgcGF0aDogZGF0YS5LZXkgfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2lnbmVkIFVSTC4gVXNlIGEgc2lnbmVkIFVSTCB0byBzaGFyZSBhIGZpbGUgZm9yIGEgZml4ZWQgYW1vdW50IG9mIHRpbWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZmlsZSBwYXRoLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgZmlsZSBuYW1lLiBGb3IgZXhhbXBsZSBgZm9sZGVyL2ltYWdlLnBuZ2AuXG4gICAgICogQHBhcmFtIGV4cGlyZXNJbiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdW50aWwgdGhlIHNpZ25lZCBVUkwgZXhwaXJlcy4gRm9yIGV4YW1wbGUsIGA2MGAgZm9yIGEgVVJMIHdoaWNoIGlzIHZhbGlkIGZvciBvbmUgbWludXRlLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmRvd25sb2FkIHRyaWdnZXJzIHRoZSBmaWxlIGFzIGEgZG93bmxvYWQgaWYgc2V0IHRvIHRydWUuIFNldCB0aGlzIHBhcmFtZXRlciBhcyB0aGUgbmFtZSBvZiB0aGUgZmlsZSBpZiB5b3Ugd2FudCB0byB0cmlnZ2VyIHRoZSBkb3dubG9hZCB3aXRoIGEgZGlmZmVyZW50IGZpbGVuYW1lLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnRyYW5zZm9ybSBUcmFuc2Zvcm0gdGhlIGFzc2V0IGJlZm9yZSBzZXJ2aW5nIGl0IHRvIHRoZSBjbGllbnQuXG4gICAgICovXG4gICAgY3JlYXRlU2lnbmVkVXJsKHBhdGgsIGV4cGlyZXNJbiwgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgX3BhdGggPSB0aGlzLl9nZXRGaW5hbFBhdGgocGF0aCk7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB5aWVsZCBwb3N0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9vYmplY3Qvc2lnbi8ke19wYXRofWAsIE9iamVjdC5hc3NpZ24oeyBleHBpcmVzSW4gfSwgKChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMudHJhbnNmb3JtKSA/IHsgdHJhbnNmb3JtOiBvcHRpb25zLnRyYW5zZm9ybSB9IDoge30pKSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZG93bmxvYWRRdWVyeVBhcmFtID0gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kb3dubG9hZClcbiAgICAgICAgICAgICAgICAgICAgPyBgJmRvd25sb2FkPSR7b3B0aW9ucy5kb3dubG9hZCA9PT0gdHJ1ZSA/ICcnIDogb3B0aW9ucy5kb3dubG9hZH1gXG4gICAgICAgICAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2lnbmVkVXJsID0gZW5jb2RlVVJJKGAke3RoaXMudXJsfSR7ZGF0YS5zaWduZWRVUkx9JHtkb3dubG9hZFF1ZXJ5UGFyYW19YCk7XG4gICAgICAgICAgICAgICAgZGF0YSA9IHsgc2lnbmVkVXJsIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG11bHRpcGxlIHNpZ25lZCBVUkxzLiBVc2UgYSBzaWduZWQgVVJMIHRvIHNoYXJlIGEgZmlsZSBmb3IgYSBmaXhlZCBhbW91bnQgb2YgdGltZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRocyBUaGUgZmlsZSBwYXRocyB0byBiZSBkb3dubG9hZGVkLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgZmlsZSBuYW1lcy4gRm9yIGV4YW1wbGUgYFsnZm9sZGVyL2ltYWdlLnBuZycsICdmb2xkZXIyL2ltYWdlMi5wbmcnXWAuXG4gICAgICogQHBhcmFtIGV4cGlyZXNJbiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdW50aWwgdGhlIHNpZ25lZCBVUkxzIGV4cGlyZS4gRm9yIGV4YW1wbGUsIGA2MGAgZm9yIFVSTHMgd2hpY2ggYXJlIHZhbGlkIGZvciBvbmUgbWludXRlLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmRvd25sb2FkIHRyaWdnZXJzIHRoZSBmaWxlIGFzIGEgZG93bmxvYWQgaWYgc2V0IHRvIHRydWUuIFNldCB0aGlzIHBhcmFtZXRlciBhcyB0aGUgbmFtZSBvZiB0aGUgZmlsZSBpZiB5b3Ugd2FudCB0byB0cmlnZ2VyIHRoZSBkb3dubG9hZCB3aXRoIGEgZGlmZmVyZW50IGZpbGVuYW1lLlxuICAgICAqL1xuICAgIGNyZWF0ZVNpZ25lZFVybHMocGF0aHMsIGV4cGlyZXNJbiwgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcG9zdCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vb2JqZWN0L3NpZ24vJHt0aGlzLmJ1Y2tldElkfWAsIHsgZXhwaXJlc0luLCBwYXRocyB9LCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBkb3dubG9hZFF1ZXJ5UGFyYW0gPSAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRvd25sb2FkKVxuICAgICAgICAgICAgICAgICAgICA/IGAmZG93bmxvYWQ9JHtvcHRpb25zLmRvd25sb2FkID09PSB0cnVlID8gJycgOiBvcHRpb25zLmRvd25sb2FkfWBcbiAgICAgICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLm1hcCgoZGF0dW0pID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGRhdHVtKSwgeyBzaWduZWRVcmw6IGRhdHVtLnNpZ25lZFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZW5jb2RlVVJJKGAke3RoaXMudXJsfSR7ZGF0dW0uc2lnbmVkVVJMfSR7ZG93bmxvYWRRdWVyeVBhcmFtfWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsIH0pKSksXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRG93bmxvYWRzIGEgZmlsZSBmcm9tIGEgcHJpdmF0ZSBidWNrZXQuIEZvciBwdWJsaWMgYnVja2V0cywgbWFrZSBhIHJlcXVlc3QgdG8gdGhlIFVSTCByZXR1cm5lZCBmcm9tIGBnZXRQdWJsaWNVcmxgIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZnVsbCBwYXRoIGFuZCBmaWxlIG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZC4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS5wbmdgLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnRyYW5zZm9ybSBUcmFuc2Zvcm0gdGhlIGFzc2V0IGJlZm9yZSBzZXJ2aW5nIGl0IHRvIHRoZSBjbGllbnQuXG4gICAgICovXG4gICAgZG93bmxvYWQocGF0aCwgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgd2FudHNUcmFuc2Zvcm1hdGlvbiA9IHR5cGVvZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnRyYW5zZm9ybSkgIT09ICd1bmRlZmluZWQnO1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyUGF0aCA9IHdhbnRzVHJhbnNmb3JtYXRpb24gPyAncmVuZGVyL2ltYWdlL2F1dGhlbnRpY2F0ZWQnIDogJ29iamVjdCc7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1hdGlvblF1ZXJ5ID0gdGhpcy50cmFuc2Zvcm1PcHRzVG9RdWVyeVN0cmluZygob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnRyYW5zZm9ybSkgfHwge30pO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSB0cmFuc2Zvcm1hdGlvblF1ZXJ5ID8gYD8ke3RyYW5zZm9ybWF0aW9uUXVlcnl9YCA6ICcnO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBfcGF0aCA9IHRoaXMuX2dldEZpbmFsUGF0aChwYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSB5aWVsZCBnZXQodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9LyR7cmVuZGVyUGF0aH0vJHtfcGF0aH0ke3F1ZXJ5U3RyaW5nfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBub1Jlc29sdmVKc29uOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZXMuYmxvYigpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSBzaW1wbGUgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gZ2V0IHRoZSBVUkwgZm9yIGFuIGFzc2V0IGluIGEgcHVibGljIGJ1Y2tldC4gSWYgeW91IGRvIG5vdCB3YW50IHRvIHVzZSB0aGlzIGZ1bmN0aW9uLCB5b3UgY2FuIGNvbnN0cnVjdCB0aGUgcHVibGljIFVSTCBieSBjb25jYXRlbmF0aW5nIHRoZSBidWNrZXQgVVJMIHdpdGggdGhlIHBhdGggdG8gdGhlIGFzc2V0LlxuICAgICAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgdmVyaWZ5IGlmIHRoZSBidWNrZXQgaXMgcHVibGljLiBJZiBhIHB1YmxpYyBVUkwgaXMgY3JlYXRlZCBmb3IgYSBidWNrZXQgd2hpY2ggaXMgbm90IHB1YmxpYywgeW91IHdpbGwgbm90IGJlIGFibGUgdG8gZG93bmxvYWQgdGhlIGFzc2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggYW5kIG5hbWUgb2YgdGhlIGZpbGUgdG8gZ2VuZXJhdGUgdGhlIHB1YmxpYyBVUkwgZm9yLiBGb3IgZXhhbXBsZSBgZm9sZGVyL2ltYWdlLnBuZ2AuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZG93bmxvYWQgVHJpZ2dlcnMgdGhlIGZpbGUgYXMgYSBkb3dubG9hZCBpZiBzZXQgdG8gdHJ1ZS4gU2V0IHRoaXMgcGFyYW1ldGVyIGFzIHRoZSBuYW1lIG9mIHRoZSBmaWxlIGlmIHlvdSB3YW50IHRvIHRyaWdnZXIgdGhlIGRvd25sb2FkIHdpdGggYSBkaWZmZXJlbnQgZmlsZW5hbWUuXG4gICAgICogQHBhcmFtIG9wdGlvbnMudHJhbnNmb3JtIFRyYW5zZm9ybSB0aGUgYXNzZXQgYmVmb3JlIHNlcnZpbmcgaXQgdG8gdGhlIGNsaWVudC5cbiAgICAgKi9cbiAgICBnZXRQdWJsaWNVcmwocGF0aCwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCBfcGF0aCA9IHRoaXMuX2dldEZpbmFsUGF0aChwYXRoKTtcbiAgICAgICAgY29uc3QgX3F1ZXJ5U3RyaW5nID0gW107XG4gICAgICAgIGNvbnN0IGRvd25sb2FkUXVlcnlQYXJhbSA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZG93bmxvYWQpXG4gICAgICAgICAgICA/IGBkb3dubG9hZD0ke29wdGlvbnMuZG93bmxvYWQgPT09IHRydWUgPyAnJyA6IG9wdGlvbnMuZG93bmxvYWR9YFxuICAgICAgICAgICAgOiAnJztcbiAgICAgICAgaWYgKGRvd25sb2FkUXVlcnlQYXJhbSAhPT0gJycpIHtcbiAgICAgICAgICAgIF9xdWVyeVN0cmluZy5wdXNoKGRvd25sb2FkUXVlcnlQYXJhbSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgd2FudHNUcmFuc2Zvcm1hdGlvbiA9IHR5cGVvZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnRyYW5zZm9ybSkgIT09ICd1bmRlZmluZWQnO1xuICAgICAgICBjb25zdCByZW5kZXJQYXRoID0gd2FudHNUcmFuc2Zvcm1hdGlvbiA/ICdyZW5kZXIvaW1hZ2UnIDogJ29iamVjdCc7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWF0aW9uUXVlcnkgPSB0aGlzLnRyYW5zZm9ybU9wdHNUb1F1ZXJ5U3RyaW5nKChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMudHJhbnNmb3JtKSB8fCB7fSk7XG4gICAgICAgIGlmICh0cmFuc2Zvcm1hdGlvblF1ZXJ5ICE9PSAnJykge1xuICAgICAgICAgICAgX3F1ZXJ5U3RyaW5nLnB1c2godHJhbnNmb3JtYXRpb25RdWVyeSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHF1ZXJ5U3RyaW5nID0gX3F1ZXJ5U3RyaW5nLmpvaW4oJyYnKTtcbiAgICAgICAgaWYgKHF1ZXJ5U3RyaW5nICE9PSAnJykge1xuICAgICAgICAgICAgcXVlcnlTdHJpbmcgPSBgPyR7cXVlcnlTdHJpbmd9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogeyBwdWJsaWNVcmw6IGVuY29kZVVSSShgJHt0aGlzLnVybH0vJHtyZW5kZXJQYXRofS9wdWJsaWMvJHtfcGF0aH0ke3F1ZXJ5U3RyaW5nfWApIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgZmlsZXMgd2l0aGluIHRoZSBzYW1lIGJ1Y2tldFxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGhzIEFuIGFycmF5IG9mIGZpbGVzIHRvIGRlbGV0ZSwgaW5jbHVkaW5nIHRoZSBwYXRoIGFuZCBmaWxlIG5hbWUuIEZvciBleGFtcGxlIFtgJ2ZvbGRlci9pbWFnZS5wbmcnYF0uXG4gICAgICovXG4gICAgcmVtb3ZlKHBhdGhzKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZW1vdmUodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC8ke3RoaXMuYnVja2V0SWR9YCwgeyBwcmVmaXhlczogcGF0aHMgfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgZmlsZSBtZXRhZGF0YVxuICAgICAqIEBwYXJhbSBpZCB0aGUgZmlsZSBpZCB0byByZXRyaWV2ZSBtZXRhZGF0YVxuICAgICAqL1xuICAgIC8vIGFzeW5jIGdldE1ldGFkYXRhKFxuICAgIC8vICAgaWQ6IHN0cmluZ1xuICAgIC8vICk6IFByb21pc2U8XG4gICAgLy8gICB8IHtcbiAgICAvLyAgICAgICBkYXRhOiBNZXRhZGF0YVxuICAgIC8vICAgICAgIGVycm9yOiBudWxsXG4gICAgLy8gICAgIH1cbiAgICAvLyAgIHwge1xuICAgIC8vICAgICAgIGRhdGE6IG51bGxcbiAgICAvLyAgICAgICBlcnJvcjogU3RvcmFnZUVycm9yXG4gICAgLy8gICAgIH1cbiAgICAvLyA+IHtcbiAgICAvLyAgIHRyeSB7XG4gICAgLy8gICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXQodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L21ldGFkYXRhLyR7aWR9YCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSlcbiAgICAvLyAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfVxuICAgIC8vICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgIC8vICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH1cbiAgICAvLyAgICAgfVxuICAgIC8vICAgICB0aHJvdyBlcnJvclxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgZmlsZSBtZXRhZGF0YVxuICAgICAqIEBwYXJhbSBpZCB0aGUgZmlsZSBpZCB0byB1cGRhdGUgbWV0YWRhdGFcbiAgICAgKiBAcGFyYW0gbWV0YSB0aGUgbmV3IGZpbGUgbWV0YWRhdGFcbiAgICAgKi9cbiAgICAvLyBhc3luYyB1cGRhdGVNZXRhZGF0YShcbiAgICAvLyAgIGlkOiBzdHJpbmcsXG4gICAgLy8gICBtZXRhOiBNZXRhZGF0YVxuICAgIC8vICk6IFByb21pc2U8XG4gICAgLy8gICB8IHtcbiAgICAvLyAgICAgICBkYXRhOiBNZXRhZGF0YVxuICAgIC8vICAgICAgIGVycm9yOiBudWxsXG4gICAgLy8gICAgIH1cbiAgICAvLyAgIHwge1xuICAgIC8vICAgICAgIGRhdGE6IG51bGxcbiAgICAvLyAgICAgICBlcnJvcjogU3RvcmFnZUVycm9yXG4gICAgLy8gICAgIH1cbiAgICAvLyA+IHtcbiAgICAvLyAgIHRyeSB7XG4gICAgLy8gICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBwb3N0KFxuICAgIC8vICAgICAgIHRoaXMuZmV0Y2gsXG4gICAgLy8gICAgICAgYCR7dGhpcy51cmx9L21ldGFkYXRhLyR7aWR9YCxcbiAgICAvLyAgICAgICB7IC4uLm1ldGEgfSxcbiAgICAvLyAgICAgICB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9XG4gICAgLy8gICAgIClcbiAgICAvLyAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfVxuICAgIC8vICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgIC8vICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH1cbiAgICAvLyAgICAgfVxuICAgIC8vICAgICB0aHJvdyBlcnJvclxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvKipcbiAgICAgKiBMaXN0cyBhbGwgdGhlIGZpbGVzIHdpdGhpbiBhIGJ1Y2tldC5cbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZm9sZGVyIHBhdGguXG4gICAgICovXG4gICAgbGlzdChwYXRoLCBvcHRpb25zLCBwYXJhbWV0ZXJzKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRUFSQ0hfT1BUSU9OUyksIG9wdGlvbnMpLCB7IHByZWZpeDogcGF0aCB8fCAnJyB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcG9zdCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vb2JqZWN0L2xpc3QvJHt0aGlzLmJ1Y2tldElkfWAsIGJvZHksIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0sIHBhcmFtZXRlcnMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2dldEZpbmFsUGF0aChwYXRoKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmJ1Y2tldElkfS8ke3BhdGh9YDtcbiAgICB9XG4gICAgX3JlbW92ZUVtcHR5Rm9sZGVycyhwYXRoKSB7XG4gICAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCAnJykucmVwbGFjZSgvXFwvKy9nLCAnLycpO1xuICAgIH1cbiAgICB0cmFuc2Zvcm1PcHRzVG9RdWVyeVN0cmluZyh0cmFuc2Zvcm0pIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gW107XG4gICAgICAgIGlmICh0cmFuc2Zvcm0ud2lkdGgpIHtcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKGB3aWR0aD0ke3RyYW5zZm9ybS53aWR0aH1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJhbnNmb3JtLmhlaWdodCkge1xuICAgICAgICAgICAgcGFyYW1zLnB1c2goYGhlaWdodD0ke3RyYW5zZm9ybS5oZWlnaHR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyYW5zZm9ybS5yZXNpemUpIHtcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKGByZXNpemU9JHt0cmFuc2Zvcm0ucmVzaXplfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0cmFuc2Zvcm0uZm9ybWF0KSB7XG4gICAgICAgICAgICBwYXJhbXMucHVzaChgZm9ybWF0PSR7dHJhbnNmb3JtLmZvcm1hdH1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJhbnNmb3JtLnF1YWxpdHkpIHtcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKGBxdWFsaXR5PSR7dHJhbnNmb3JtLnF1YWxpdHl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmFtcy5qb2luKCcmJyk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U3RvcmFnZUZpbGVBcGkuanMubWFwIl0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsImlzU3RvcmFnZUVycm9yIiwiU3RvcmFnZUVycm9yIiwiZ2V0IiwicG9zdCIsInJlbW92ZSIsInJlc29sdmVGZXRjaCIsIkRFRkFVTFRfU0VBUkNIX09QVElPTlMiLCJsaW1pdCIsIm9mZnNldCIsInNvcnRCeSIsImNvbHVtbiIsIm9yZGVyIiwiREVGQVVMVF9GSUxFX09QVElPTlMiLCJjYWNoZUNvbnRyb2wiLCJjb250ZW50VHlwZSIsInVwc2VydCIsIlN0b3JhZ2VGaWxlQXBpIiwiY29uc3RydWN0b3IiLCJ1cmwiLCJoZWFkZXJzIiwiYnVja2V0SWQiLCJmZXRjaCIsInVwbG9hZE9yVXBkYXRlIiwibWV0aG9kIiwicGF0aCIsImZpbGVCb2R5IiwiZmlsZU9wdGlvbnMiLCJib2R5Iiwib3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsIlN0cmluZyIsIkJsb2IiLCJGb3JtRGF0YSIsImFwcGVuZCIsImNsZWFuUGF0aCIsIl9yZW1vdmVFbXB0eUZvbGRlcnMiLCJfcGF0aCIsIl9nZXRGaW5hbFBhdGgiLCJyZXMiLCJkdXBsZXgiLCJkYXRhIiwianNvbiIsIm9rIiwiaWQiLCJJZCIsImZ1bGxQYXRoIiwiS2V5IiwiZXJyb3IiLCJ1cGxvYWQiLCJ1cGxvYWRUb1NpZ25lZFVybCIsInRva2VuIiwiVVJMIiwic2VhcmNoUGFyYW1zIiwic2V0IiwidG9TdHJpbmciLCJjcmVhdGVTaWduZWRVcGxvYWRVcmwiLCJzaWduZWRVcmwiLCJ1cGRhdGUiLCJtb3ZlIiwiZnJvbVBhdGgiLCJ0b1BhdGgiLCJzb3VyY2VLZXkiLCJkZXN0aW5hdGlvbktleSIsImNvcHkiLCJjcmVhdGVTaWduZWRVcmwiLCJleHBpcmVzSW4iLCJ0cmFuc2Zvcm0iLCJkb3dubG9hZFF1ZXJ5UGFyYW0iLCJkb3dubG9hZCIsImVuY29kZVVSSSIsInNpZ25lZFVSTCIsImNyZWF0ZVNpZ25lZFVybHMiLCJwYXRocyIsIm1hcCIsImRhdHVtIiwid2FudHNUcmFuc2Zvcm1hdGlvbiIsInJlbmRlclBhdGgiLCJ0cmFuc2Zvcm1hdGlvblF1ZXJ5IiwidHJhbnNmb3JtT3B0c1RvUXVlcnlTdHJpbmciLCJxdWVyeVN0cmluZyIsIm5vUmVzb2x2ZUpzb24iLCJibG9iIiwiZ2V0UHVibGljVXJsIiwiX3F1ZXJ5U3RyaW5nIiwicHVzaCIsImpvaW4iLCJwdWJsaWNVcmwiLCJwcmVmaXhlcyIsImxpc3QiLCJwYXJhbWV0ZXJzIiwicHJlZml4IiwicmVwbGFjZSIsInBhcmFtcyIsIndpZHRoIiwiaGVpZ2h0IiwicmVzaXplIiwiZm9ybWF0IiwicXVhbGl0eSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SupabaseClient)\n/* harmony export */ });\n/* harmony import */ var _supabase_functions_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @supabase/functions-js */ \"(middleware)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js\");\n/* harmony import */ var _supabase_postgrest_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/postgrest-js */ \"(middleware)/./node_modules/@supabase/postgrest-js/dist/module/index.js\");\n/* harmony import */ var _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @supabase/realtime-js */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/index.js\");\n/* harmony import */ var _supabase_storage_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @supabase/storage-js */ \"(middleware)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/constants */ \"(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/fetch */ \"(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/helpers */ \"(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_SupabaseAuthClient__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/SupabaseAuthClient */ \"(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nconst DEFAULT_GLOBAL_OPTIONS = {\n headers: _lib_constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_HEADERS\n};\nconst DEFAULT_DB_OPTIONS = {\n schema: \"public\"\n};\nconst DEFAULT_AUTH_OPTIONS = {\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n flowType: \"implicit\"\n};\nconst DEFAULT_REALTIME_OPTIONS = {};\n/**\n * Supabase Client.\n *\n * An isomorphic Javascript client for interacting with Postgres.\n */ class SupabaseClient {\n /**\n * Create a new client for use in the browser.\n * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.\n * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.\n * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.\n * @param options.auth.autoRefreshToken Set to \"true\" if you want to automatically refresh the token before expiring.\n * @param options.auth.persistSession Set to \"true\" if you want to automatically save the user session into local storage.\n * @param options.auth.detectSessionInUrl Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user.\n * @param options.realtime Options passed along to realtime-js constructor.\n * @param options.global.fetch A custom fetch implementation.\n * @param options.global.headers Any additional headers to send with each network request.\n */ constructor(supabaseUrl, supabaseKey, options){\n var _a, _b, _c, _d, _e, _f, _g, _h;\n this.supabaseUrl = supabaseUrl;\n this.supabaseKey = supabaseKey;\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */ this.from = (relation)=>{\n return this.rest.from(relation);\n };\n /**\n * Perform a query on a schema distinct from the default schema supplied via\n * the `options.db.schema` constructor parameter.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The name of the schema to query\n */ this.schema = (schema)=>{\n return this.rest.schema(schema);\n };\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ this.rpc = (fn, args = {}, options)=>{\n return this.rest.rpc(fn, args, options);\n };\n if (!supabaseUrl) throw new Error(\"supabaseUrl is required.\");\n if (!supabaseKey) throw new Error(\"supabaseKey is required.\");\n const _supabaseUrl = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_3__.stripTrailingSlash)(supabaseUrl);\n this.realtimeUrl = `${_supabaseUrl}/realtime/v1`.replace(/^http/i, \"ws\");\n this.authUrl = `${_supabaseUrl}/auth/v1`;\n this.storageUrl = `${_supabaseUrl}/storage/v1`;\n this.functionsUrl = `${_supabaseUrl}/functions/v1`;\n // default storage key uses the supabase project ref as a namespace\n const defaultStorageKey = `sb-${new URL(this.authUrl).hostname.split(\".\")[0]}-auth-token`;\n const DEFAULTS = {\n db: DEFAULT_DB_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), {\n storageKey: defaultStorageKey\n }),\n global: DEFAULT_GLOBAL_OPTIONS\n };\n const settings = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_3__.applySettingDefaults)(options !== null && options !== void 0 ? options : {}, DEFAULTS);\n this.storageKey = (_b = (_a = settings.auth) === null || _a === void 0 ? void 0 : _a.storageKey) !== null && _b !== void 0 ? _b : \"\";\n this.headers = (_d = (_c = settings.global) === null || _c === void 0 ? void 0 : _c.headers) !== null && _d !== void 0 ? _d : {};\n this.auth = this._initSupabaseAuthClient((_e = settings.auth) !== null && _e !== void 0 ? _e : {}, this.headers, (_f = settings.global) === null || _f === void 0 ? void 0 : _f.fetch);\n this.fetch = (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_4__.fetchWithAuth)(supabaseKey, this._getAccessToken.bind(this), (_g = settings.global) === null || _g === void 0 ? void 0 : _g.fetch);\n this.realtime = this._initRealtimeClient(Object.assign({\n headers: this.headers\n }, settings.realtime));\n this.rest = new _supabase_postgrest_js__WEBPACK_IMPORTED_MODULE_0__.PostgrestClient(`${_supabaseUrl}/rest/v1`, {\n headers: this.headers,\n schema: (_h = settings.db) === null || _h === void 0 ? void 0 : _h.schema,\n fetch: this.fetch\n });\n this._listenForAuthEvents();\n }\n /**\n * Supabase Functions allows you to deploy and invoke edge functions.\n */ get functions() {\n return new _supabase_functions_js__WEBPACK_IMPORTED_MODULE_5__.FunctionsClient(this.functionsUrl, {\n headers: this.headers,\n customFetch: this.fetch\n });\n }\n /**\n * Supabase Storage allows you to manage user-generated content, such as photos or videos.\n */ get storage() {\n return new _supabase_storage_js__WEBPACK_IMPORTED_MODULE_6__.StorageClient(this.storageUrl, this.headers, this.fetch);\n }\n /**\n * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.\n *\n * @param {string} name - The name of the Realtime channel.\n * @param {Object} opts - The options to pass to the Realtime channel.\n *\n */ channel(name, opts = {\n config: {}\n }) {\n return this.realtime.channel(name, opts);\n }\n /**\n * Returns all Realtime channels.\n */ getChannels() {\n return this.realtime.getChannels();\n }\n /**\n * Unsubscribes and removes Realtime channel from Realtime client.\n *\n * @param {RealtimeChannel} channel - The name of the Realtime channel.\n *\n */ removeChannel(channel) {\n return this.realtime.removeChannel(channel);\n }\n /**\n * Unsubscribes and removes all Realtime channels from Realtime client.\n */ removeAllChannels() {\n return this.realtime.removeAllChannels();\n }\n _getAccessToken() {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function*() {\n const { data } = yield this.auth.getSession();\n return (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : null;\n });\n }\n _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, storage, storageKey, flowType, debug }, headers, fetch) {\n const authHeaders = {\n Authorization: `Bearer ${this.supabaseKey}`,\n apikey: `${this.supabaseKey}`\n };\n return new _lib_SupabaseAuthClient__WEBPACK_IMPORTED_MODULE_7__.SupabaseAuthClient({\n url: this.authUrl,\n headers: Object.assign(Object.assign({}, authHeaders), headers),\n storageKey: storageKey,\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n flowType,\n debug,\n fetch\n });\n }\n _initRealtimeClient(options) {\n return new _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_1__.RealtimeClient(this.realtimeUrl, Object.assign(Object.assign({}, options), {\n params: Object.assign({\n apikey: this.supabaseKey\n }, options === null || options === void 0 ? void 0 : options.params)\n }));\n }\n _listenForAuthEvents() {\n let data = this.auth.onAuthStateChange((event, session)=>{\n this._handleTokenChanged(event, \"CLIENT\", session === null || session === void 0 ? void 0 : session.access_token);\n });\n return data;\n }\n _handleTokenChanged(event, source, token) {\n if ((event === \"TOKEN_REFRESHED\" || event === \"SIGNED_IN\") && this.changedAccessToken !== token) {\n // Token has changed\n this.realtime.setAuth(token !== null && token !== void 0 ? token : null);\n this.changedAccessToken = token;\n } else if (event === \"SIGNED_OUT\") {\n // Token is removed\n this.realtime.setAuth(this.supabaseKey);\n if (source == \"STORAGE\") this.auth.signOut();\n this.changedAccessToken = undefined;\n }\n }\n} //# sourceMappingURL=SupabaseClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9TdXBhYmFzZUNsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxZQUFZLFNBQUssSUFBSSxTQUFJLENBQUNBLFNBQVMsSUFBSyxTQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTO0lBQ25GLFNBQVNDLE1BQU1DLEtBQUs7UUFBSSxPQUFPQSxpQkFBaUJILElBQUlHLFFBQVEsSUFBSUgsRUFBRSxTQUFVSSxPQUFPO1lBQUlBLFFBQVFEO1FBQVE7SUFBSTtJQUMzRyxPQUFPLElBQUtILENBQUFBLEtBQU1BLENBQUFBLElBQUlLLE9BQU0sQ0FBQyxFQUFHLFNBQVVELE9BQU8sRUFBRUUsTUFBTTtRQUNyRCxTQUFTQyxVQUFVSixLQUFLO1lBQUksSUFBSTtnQkFBRUssS0FBS1AsVUFBVVEsSUFBSSxDQUFDTjtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzFGLFNBQVNDLFNBQVNSLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxTQUFTLENBQUMsUUFBUSxDQUFDRTtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzdGLFNBQVNGLEtBQUtJLE1BQU07WUFBSUEsT0FBT0MsSUFBSSxHQUFHVCxRQUFRUSxPQUFPVCxLQUFLLElBQUlELE1BQU1VLE9BQU9ULEtBQUssRUFBRVcsSUFBSSxDQUFDUCxXQUFXSTtRQUFXO1FBQzdHSCxLQUFLLENBQUNQLFlBQVlBLFVBQVVjLEtBQUssQ0FBQ2pCLFNBQVNDLGNBQWMsRUFBRSxHQUFHVSxJQUFJO0lBQ3RFO0FBQ0o7QUFDeUQ7QUFDQTtBQUNEO0FBQ3NCO0FBQzVCO0FBQ047QUFDNkI7QUFDWDtBQUM5RCxNQUFNaUIseUJBQXlCO0lBQzNCQyxTQUFTTiwyREFBZUE7QUFDNUI7QUFDQSxN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T0FDSyxJQUFJSCxVQUFVLGNBQWM7WUFDN0IsbUJBQW1CO1lBQ25CLElBQUksQ0FBQ2xDLFFBQVEsQ0FBQ3VDLE9BQU8sQ0FBQyxJQUFJLENBQUNwRSxXQUFXO1lBQ3RDLElBQUlpRSxVQUFVLFdBQ1YsSUFBSSxDQUFDbkMsSUFBSSxDQUFDdUMsT0FBTztZQUNyQixJQUFJLENBQUNGLGtCQUFrQixHQUFHRztRQUM5QjtJQUNKO0FBQ0osRUFDQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9TdXBhYmFzZUNsaWVudC5qcz8zZjcyIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgRnVuY3Rpb25zQ2xpZW50IH0gZnJvbSAnQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcyc7XG5pbXBvcnQgeyBQb3N0Z3Jlc3RDbGllbnQgfSBmcm9tICdAc3VwYWJhc2UvcG9zdGdyZXN0LWpzJztcbmltcG9ydCB7IFJlYWx0aW1lQ2xpZW50LCB9IGZyb20gJ0BzdXBhYmFzZS9yZWFsdGltZS1qcyc7XG5pbXBvcnQgeyBTdG9yYWdlQ2xpZW50IGFzIFN1cGFiYXNlU3RvcmFnZUNsaWVudCB9IGZyb20gJ0BzdXBhYmFzZS9zdG9yYWdlLWpzJztcbmltcG9ydCB7IERFRkFVTFRfSEVBREVSUyB9IGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBmZXRjaFdpdGhBdXRoIH0gZnJvbSAnLi9saWIvZmV0Y2gnO1xuaW1wb3J0IHsgc3RyaXBUcmFpbGluZ1NsYXNoLCBhcHBseVNldHRpbmdEZWZhdWx0cyB9IGZyb20gJy4vbGliL2hlbHBlcnMnO1xuaW1wb3J0IHsgU3VwYWJhc2VBdXRoQ2xpZW50IH0gZnJvbSAnLi9saWIvU3VwYWJhc2VBdXRoQ2xpZW50JztcbmNvbnN0IERFRkFVTFRfR0xPQkFMX09QVElPTlMgPSB7XG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxufTtcbmNvbnN0IERFRkFVTFRfREJfT1BUSU9OUyA9IHtcbiAgICBzY2hlbWE6ICdwdWJsaWMnLFxufTtcbmNvbnN0IERFRkFVTFRfQVVUSF9PUFRJT05TID0ge1xuICAgIGF1dG9SZWZyZXNoVG9rZW46IHRydWUsXG4gICAgcGVyc2lzdFNlc3Npb246IHRydWUsXG4gICAgZGV0ZWN0U2Vzc2lvbkluVXJsOiB0cnVlLFxuICAgIGZsb3dUeXBlOiAnaW1wbGljaXQnLFxufTtcbmNvbnN0IERFRkFVTFRfUkVBTFRJTUVfT1BUSU9OUyA9IHt9O1xuLyoqXG4gKiBTdXBhYmFzZSBDbGllbnQuXG4gKlxuICogQW4gaXNvbW9ycGhpYyBKYXZhc2NyaXB0IGNsaWVudCBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBQb3N0Z3Jlcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3VwYWJhc2VDbGllbnQge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBjbGllbnQgZm9yIHVzZSBpbiB0aGUgYnJvd3Nlci5cbiAgICAgKiBAcGFyYW0gc3VwYWJhc2VVcmwgVGhlIHVuaXF1ZSBTdXBhYmFzZSBVUkwgd2hpY2ggaXMgc3VwcGxpZWQgd2hlbiB5b3UgY3JlYXRlIGEgbmV3IHByb2plY3QgaW4geW91ciBwcm9qZWN0IGRhc2hib2FyZC5cbiAgICAgKiBAcGFyYW0gc3VwYWJhc2VLZXkgVGhlIHVuaXF1ZSBTdXBhYmFzZSBLZXkgd2hpY2ggaXMgc3VwcGxpZWQgd2hlbiB5b3UgY3JlYXRlIGEgbmV3IHByb2plY3QgaW4geW91ciBwcm9qZWN0IGRhc2hib2FyZC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kYi5zY2hlbWEgWW91IGNhbiBzd2l0Y2ggaW4gYmV0d2VlbiBzY2hlbWFzLiBUaGUgc2NoZW1hIG5lZWRzIHRvIGJlIG9uIHRoZSBsaXN0IG9mIGV4cG9zZWQgc2NoZW1hcyBpbnNpZGUgU3VwYWJhc2UuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYXV0aC5hdXRvUmVmcmVzaFRva2VuIFNldCB0byBcInRydWVcIiBpZiB5b3Ugd2FudCB0byBhdXRvbWF0aWNhbGx5IHJlZnJlc2ggdGhlIHRva2VuIGJlZm9yZSBleHBpcmluZy5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5hdXRoLnBlcnNpc3RTZXNzaW9uIFNldCB0byBcInRydWVcIiBpZiB5b3Ugd2FudCB0byBhdXRvbWF0aWNhbGx5IHNhdmUgdGhlIHVzZXIgc2Vzc2lvbiBpbnRvIGxvY2FsIHN0b3JhZ2UuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYXV0aC5kZXRlY3RTZXNzaW9uSW5VcmwgU2V0IHRvIFwidHJ1ZVwiIGlmIHlvdSB3YW50IHRvIGF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBPQXV0aCBncmFudHMgaW4gdGhlIFVSTCBhbmQgc2lnbnMgaW4gdGhlIHVzZXIuXG4gICAgICogQHBhcmFtIG9wdGlvbnMucmVhbHRpbWUgT3B0aW9ucyBwYXNzZWQgYWxvbmcgdG8gcmVhbHRpbWUtanMgY29uc3RydWN0b3IuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZ2xvYmFsLmZldGNoIEEgY3VzdG9tIGZldGNoIGltcGxlbWVudGF0aW9uLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmdsb2JhbC5oZWFkZXJzIEFueSBhZGRpdGlvbmFsIGhlYWRlcnMgdG8gc2VuZCB3aXRoIGVhY2ggbmV0d29yayByZXF1ZXN0LlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHN1cGFiYXNlVXJsLCBzdXBhYmFzZUtleSwgb3B0aW9ucykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oO1xuICAgICAgICB0aGlzLnN1cGFiYXNlVXJsID0gc3VwYWJhc2VVcmw7XG4gICAgICAgIHRoaXMuc3VwYWJhc2VLZXkgPSBzdXBhYmFzZUtleTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBlcmZvcm0gYSBxdWVyeSBvbiBhIHRhYmxlIG9yIGEgdmlldy5cbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtIHJlbGF0aW9uIC0gVGhlIHRhYmxlIG9yIHZpZXcgbmFtZSB0byBxdWVyeVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mcm9tID0gKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXN0LmZyb20ocmVsYXRpb24pO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogUGVyZm9ybSBhIHF1ZXJ5IG9uIGEgc2NoZW1hIGRpc3RpbmN0IGZyb20gdGhlIGRlZmF1bHQgc2NoZW1hIHN1cHBsaWVkIHZpYVxuICAgICAgICAgKiB0aGUgYG9wdGlvbnMuZGIuc2NoZW1hYCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoZSBzY2hlbWEgbmVlZHMgdG8gYmUgb24gdGhlIGxpc3Qgb2YgZXhwb3NlZCBzY2hlbWFzIGluc2lkZSBTdXBhYmFzZS5cbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtIHNjaGVtYSAtIFRoZSBuYW1lIG9mIHRoZSBzY2hlbWEgdG8gcXVlcnlcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2NoZW1hID0gKHNjaGVtYSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzdC5zY2hlbWEoc2NoZW1hKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBlcmZvcm0gYSBmdW5jdGlvbiBjYWxsLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0gZm4gLSBUaGUgZnVuY3Rpb24gbmFtZSB0byBjYWxsXG4gICAgICAgICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAgICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucy5oZWFkIC0gV2hlbiBzZXQgdG8gYHRydWVgLCBgZGF0YWAgd2lsbCBub3QgYmUgcmV0dXJuZWQuXG4gICAgICAgICAqIFVzZWZ1bCBpZiB5b3Ugb25seSBuZWVkIHRoZSBjb3VudC5cbiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMuY291bnQgLSBDb3VudCBhbGdvcml0aG0gdG8gdXNlIHRvIGNvdW50IHJvd3MgcmV0dXJuZWQgYnkgdGhlXG4gICAgICAgICAqIGZ1bmN0aW9uLiBPbmx5IGFwcGxpY2FibGUgZm9yIFtzZXQtcmV0dXJuaW5nXG4gICAgICAgICAqIGZ1bmN0aW9uc10oaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2Z1bmN0aW9ucy1zcmYuaHRtbCkuXG4gICAgICAgICAqXG4gICAgICAgICAqIGBcImV4YWN0XCJgOiBFeGFjdCBidXQgc2xvdyBjb3VudCBhbGdvcml0aG0uIFBlcmZvcm1zIGEgYENPVU5UKCopYCB1bmRlciB0aGVcbiAgICAgICAgICogaG9vZC5cbiAgICAgICAgICpcbiAgICAgICAgICogYFwicGxhbm5lZFwiYDogQXBwcm94aW1hdGVkIGJ1dCBmYXN0IGNvdW50IGFsZ29yaXRobS4gVXNlcyB0aGUgUG9zdGdyZXNcbiAgICAgICAgICogc3RhdGlzdGljcyB1bmRlciB0aGUgaG9vZC5cbiAgICAgICAgICpcbiAgICAgICAgICogYFwiZXN0aW1hdGVkXCJgOiBVc2VzIGV4YWN0IGNvdW50IGZvciBsb3cgbnVtYmVycyBhbmQgcGxhbm5lZCBjb3VudCBmb3IgaGlnaFxuICAgICAgICAgKiBudW1iZXJzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ycGMgPSAoZm4sIGFyZ3MgPSB7fSwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzdC5ycGMoZm4sIGFyZ3MsIG9wdGlvbnMpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoIXN1cGFiYXNlVXJsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdXBhYmFzZVVybCBpcyByZXF1aXJlZC4nKTtcbiAgICAgICAgaWYgKCFzdXBhYmFzZUtleSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc3VwYWJhc2VLZXkgaXMgcmVxdWlyZWQuJyk7XG4gICAgICAgIGNvbnN0IF9zdXBhYmFzZVVybCA9IHN0cmlwVHJhaWxpbmdTbGFzaChzdXBhYmFzZVVybCk7XG4gICAgICAgIHRoaXMucmVhbHRpbWVVcmwgPSBgJHtfc3VwYWJhc2VVcmx9L3JlYWx0aW1lL3YxYC5yZXBsYWNlKC9eaHR0cC9pLCAnd3MnKTtcbiAgICAgICAgdGhpcy5hdXRoVXJsID0gYCR7X3N1cGFiYXNlVXJsfS9hdXRoL3YxYDtcbiAgICAgICAgdGhpcy5zdG9yYWdlVXJsID0gYCR7X3N1cGFiYXNlVXJsfS9zdG9yYWdlL3YxYDtcbiAgICAgICAgdGhpcy5mdW5jdGlvbnNVcmwgPSBgJHtfc3VwYWJhc2VVcmx9L2Z1bmN0aW9ucy92MWA7XG4gICAgICAgIC8vIGRlZmF1bHQgc3RvcmFnZSBrZXkgdXNlcyB0aGUgc3VwYWJhc2UgcHJvamVjdCByZWYgYXMgYSBuYW1lc3BhY2VcbiAgICAgICAgY29uc3QgZGVmYXVsdFN0b3JhZ2VLZXkgPSBgc2ItJHtuZXcgVVJMKHRoaXMuYXV0aFVybCkuaG9zdG5hbWUuc3BsaXQoJy4nKVswXX0tYXV0aC10b2tlbmA7XG4gICAgICAgIGNvbnN0IERFRkFVTFRTID0ge1xuICAgICAgICAgICAgZGI6IERFRkFVTFRfREJfT1BUSU9OUyxcbiAgICAgICAgICAgIHJlYWx0aW1lOiBERUZBVUxUX1JFQUxUSU1FX09QVElPTlMsXG4gICAgICAgICAgICBhdXRoOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfQVVUSF9PUFRJT05TKSwgeyBzdG9yYWdlS2V5OiBkZWZhdWx0U3RvcmFnZUtleSB9KSxcbiAgICAgICAgICAgIGdsb2JhbDogREVGQVVMVF9HTE9CQUxfT1BUSU9OUyxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBhcHBseVNldHRpbmdEZWZhdWx0cyhvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMgOiB7fSwgREVGQVVMVFMpO1xuICAgICAgICB0aGlzLnN0b3JhZ2VLZXkgPSAoX2IgPSAoX2EgPSBzZXR0aW5ncy5hdXRoKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc3RvcmFnZUtleSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJyc7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IChfZCA9IChfYyA9IHNldHRpbmdzLmdsb2JhbCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmhlYWRlcnMpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHt9O1xuICAgICAgICB0aGlzLmF1dGggPSB0aGlzLl9pbml0U3VwYWJhc2VBdXRoQ2xpZW50KChfZSA9IHNldHRpbmdzLmF1dGgpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IHt9LCB0aGlzLmhlYWRlcnMsIChfZiA9IHNldHRpbmdzLmdsb2JhbCkgPT09IG51bGwgfHwgX2YgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mLmZldGNoKTtcbiAgICAgICAgdGhpcy5mZXRjaCA9IGZldGNoV2l0aEF1dGgoc3VwYWJhc2VLZXksIHRoaXMuX2dldEFjY2Vzc1Rva2VuLmJpbmQodGhpcyksIChfZyA9IHNldHRpbmdzLmdsb2JhbCkgPT09IG51bGwgfHwgX2cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nLmZldGNoKTtcbiAgICAgICAgdGhpcy5yZWFsdGltZSA9IHRoaXMuX2luaXRSZWFsdGltZUNsaWVudChPYmplY3QuYXNzaWduKHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0sIHNldHRpbmdzLnJlYWx0aW1lKSk7XG4gICAgICAgIHRoaXMucmVzdCA9IG5ldyBQb3N0Z3Jlc3RDbGllbnQoYCR7X3N1cGFiYXNlVXJsfS9yZXN0L3YxYCwge1xuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgc2NoZW1hOiAoX2ggPSBzZXR0aW5ncy5kYikgPT09IG51bGwgfHwgX2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9oLnNjaGVtYSxcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fbGlzdGVuRm9yQXV0aEV2ZW50cygpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdXBhYmFzZSBGdW5jdGlvbnMgYWxsb3dzIHlvdSB0byBkZXBsb3kgYW5kIGludm9rZSBlZGdlIGZ1bmN0aW9ucy5cbiAgICAgKi9cbiAgICBnZXQgZnVuY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uc0NsaWVudCh0aGlzLmZ1bmN0aW9uc1VybCwge1xuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgY3VzdG9tRmV0Y2g6IHRoaXMuZmV0Y2gsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdXBhYmFzZSBTdG9yYWdlIGFsbG93cyB5b3UgdG8gbWFuYWdlIHVzZXItZ2VuZXJhdGVkIGNvbnRlbnQsIHN1Y2ggYXMgcGhvdG9zIG9yIHZpZGVvcy5cbiAgICAgKi9cbiAgICBnZXQgc3RvcmFnZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdXBhYmFzZVN0b3JhZ2VDbGllbnQodGhpcy5zdG9yYWdlVXJsLCB0aGlzLmhlYWRlcnMsIHRoaXMuZmV0Y2gpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgUmVhbHRpbWUgY2hhbm5lbCB3aXRoIEJyb2FkY2FzdCwgUHJlc2VuY2UsIGFuZCBQb3N0Z3JlcyBDaGFuZ2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgUmVhbHRpbWUgY2hhbm5lbC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIFRoZSBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIFJlYWx0aW1lIGNoYW5uZWwuXG4gICAgICpcbiAgICAgKi9cbiAgICBjaGFubmVsKG5hbWUsIG9wdHMgPSB7IGNvbmZpZzoge30gfSkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFsdGltZS5jaGFubmVsKG5hbWUsIG9wdHMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCBSZWFsdGltZSBjaGFubmVscy5cbiAgICAgKi9cbiAgICBnZXRDaGFubmVscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhbHRpbWUuZ2V0Q2hhbm5lbHMoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVW5zdWJzY3JpYmVzIGFuZCByZW1vdmVzIFJlYWx0aW1lIGNoYW5uZWwgZnJvbSBSZWFsdGltZSBjbGllbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1JlYWx0aW1lQ2hhbm5lbH0gY2hhbm5lbCAtIFRoZSBuYW1lIG9mIHRoZSBSZWFsdGltZSBjaGFubmVsLlxuICAgICAqXG4gICAgICovXG4gICAgcmVtb3ZlQ2hhbm5lbChjaGFubmVsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWx0aW1lLnJlbW92ZUNoYW5uZWwoY2hhbm5lbCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlcyBhbmQgcmVtb3ZlcyBhbGwgUmVhbHRpbWUgY2hhbm5lbHMgZnJvbSBSZWFsdGltZSBjbGllbnQuXG4gICAgICovXG4gICAgcmVtb3ZlQWxsQ2hhbm5lbHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWx0aW1lLnJlbW92ZUFsbENoYW5uZWxzKCk7XG4gICAgfVxuICAgIF9nZXRBY2Nlc3NUb2tlbigpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSB9ID0geWllbGQgdGhpcy5hdXRoLmdldFNlc3Npb24oKTtcbiAgICAgICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSBkYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfaW5pdFN1cGFiYXNlQXV0aENsaWVudCh7IGF1dG9SZWZyZXNoVG9rZW4sIHBlcnNpc3RTZXNzaW9uLCBkZXRlY3RTZXNzaW9uSW5VcmwsIHN0b3JhZ2UsIHN0b3JhZ2VLZXksIGZsb3dUeXBlLCBkZWJ1ZywgfSwgaGVhZGVycywgZmV0Y2gpIHtcbiAgICAgICAgY29uc3QgYXV0aEhlYWRlcnMgPSB7XG4gICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5zdXBhYmFzZUtleX1gLFxuICAgICAgICAgICAgYXBpa2V5OiBgJHt0aGlzLnN1cGFiYXNlS2V5fWAsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBuZXcgU3VwYWJhc2VBdXRoQ2xpZW50KHtcbiAgICAgICAgICAgIHVybDogdGhpcy5hdXRoVXJsLFxuICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhdXRoSGVhZGVycyksIGhlYWRlcnMpLFxuICAgICAgICAgICAgc3RvcmFnZUtleTogc3RvcmFnZUtleSxcbiAgICAgICAgICAgIGF1dG9SZWZyZXNoVG9rZW4sXG4gICAgICAgICAgICBwZXJzaXN0U2Vzc2lvbixcbiAgICAgICAgICAgIGRldGVjdFNlc3Npb25JblVybCxcbiAgICAgICAgICAgIHN0b3JhZ2UsXG4gICAgICAgICAgICBmbG93VHlwZSxcbiAgICAgICAgICAgIGRlYnVnLFxuICAgICAgICAgICAgZmV0Y2gsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfaW5pdFJlYWx0aW1lQ2xpZW50KG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWFsdGltZUNsaWVudCh0aGlzLnJlYWx0aW1lVXJsLCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpLCB7IHBhcmFtczogT2JqZWN0LmFzc2lnbih7IGFwaWtleTogdGhpcy5zdXBhYmFzZUtleSB9LCBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyYW1zKSB9KSk7XG4gICAgfVxuICAgIF9saXN0ZW5Gb3JBdXRoRXZlbnRzKCkge1xuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuYXV0aC5vbkF1dGhTdGF0ZUNoYW5nZSgoZXZlbnQsIHNlc3Npb24pID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZVRva2VuQ2hhbmdlZChldmVudCwgJ0NMSUVOVCcsIHNlc3Npb24gPT09IG51bGwgfHwgc2Vzc2lvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvbi5hY2Nlc3NfdG9rZW4pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIF9oYW5kbGVUb2tlbkNoYW5nZWQoZXZlbnQsIHNvdXJjZSwgdG9rZW4pIHtcbiAgICAgICAgaWYgKChldmVudCA9PT0gJ1RPS0VOX1JFRlJFU0hFRCcgfHwgZXZlbnQgPT09ICdTSUdORURfSU4nKSAmJlxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkQWNjZXNzVG9rZW4gIT09IHRva2VuKSB7XG4gICAgICAgICAgICAvLyBUb2tlbiBoYXMgY2hhbmdlZFxuICAgICAgICAgICAgdGhpcy5yZWFsdGltZS5zZXRBdXRoKHRva2VuICE9PSBudWxsICYmIHRva2VuICE9PSB2b2lkIDAgPyB0b2tlbiA6IG51bGwpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkQWNjZXNzVG9rZW4gPSB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChldmVudCA9PT0gJ1NJR05FRF9PVVQnKSB7XG4gICAgICAgICAgICAvLyBUb2tlbiBpcyByZW1vdmVkXG4gICAgICAgICAgICB0aGlzLnJlYWx0aW1lLnNldEF1dGgodGhpcy5zdXBhYmFzZUtleSk7XG4gICAgICAgICAgICBpZiAoc291cmNlID09ICdTVE9SQUdFJylcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGguc2lnbk91dCgpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkQWNjZXNzVG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdXBhYmFzZUNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiRnVuY3Rpb25zQ2xpZW50IiwiUG9zdGdyZXN0Q2xpZW50IiwiUmVhbHRpbWVDbGllbnQiLCJTdG9yYWdlQ2xpZW50IiwiU3VwYWJhc2VTdG9yYWdlQ2xpZW50IiwiREVGQVVMVF9IRUFERVJTIiwiZmV0Y2hXaXRoQXV0aCIsInN0cmlwVHJhaWxpbmdTbGFzaCIsImFwcGx5U2V0dGluZ0RlZmF1bHRzIiwiU3VwYWJhc2VBdXRoQ2xpZW50IiwiREVGQVVMVF9HTE9CQUxfT1BUSU9OUyIsImhlYWRlcnMiLCJERUZBVUxUX0RCX09QVElPTlMiLCJzY2hlbWEiLCJERUZBVUxUX0FVVEhfT1BUSU9OUyIsImF1dG9SZWZyZXNoVG9rZW4iLCJwZXJzaXN0U2Vzc2lvbiIsImRldGVjdFNlc3Npb25JblVybCIsImZsb3dUeXBlIiwiREVGQVVMVF9SRUFMVElNRV9PUFRJT05TIiwiU3VwYWJhc2VDbGllbnQiLCJjb25zdHJ1Y3RvciIsInN1cGFiYXNlVXJsIiwic3VwYWJhc2VLZXkiLCJvcHRpb25zIiwiX2EiLCJfYiIsIl9jIiwiX2QiLCJfZSIsIl9mIiwiX2ciLCJfaCIsImZyb20iLCJyZWxhdGlvbiIsInJlc3QiLCJycGMiLCJmbiIsImFyZ3MiLCJFcnJvciIsIl9zdXBhYmFzZVVybCIsInJlYWx0aW1lVXJsIiwicmVwbGFjZSIsImF1dGhVcmwiLCJzdG9yYWdlVXJsIiwiZnVuY3Rpb25zVXJsIiwiZGVmYXVsdFN0b3JhZ2VLZXkiLCJVUkwiLCJob3N0bmFtZSIsInNwbGl0IiwiREVGQVVMVFMiLCJkYiIsInJlYWx0aW1lIiwiYXV0aCIsIk9iamVjdCIsImFzc2lnbiIsInN0b3JhZ2VLZXkiLCJnbG9iYWwiLCJzZXR0aW5ncyIsIl9pbml0U3VwYWJhc2VBdXRoQ2xpZW50IiwiZmV0Y2giLCJfZ2V0QWNjZXNzVG9rZW4iLCJiaW5kIiwiX2luaXRSZWFsdGltZUNsaWVudCIsIl9saXN0ZW5Gb3JBdXRoRXZlbnRzIiwiZnVuY3Rpb25zIiwiY3VzdG9tRmV0Y2giLCJzdG9yYWdlIiwiY2hhbm5lbCIsIm5hbWUiLCJvcHRzIiwiY29uZmlnIiwiZ2V0Q2hhbm5lbHMiLCJyZW1vdmVDaGFubmVsIiwicmVtb3ZlQWxsQ2hhbm5lbHMiLCJkYXRhIiwiZ2V0U2Vzc2lvbiIsInNlc3Npb24iLCJhY2Nlc3NfdG9rZW4iLCJkZWJ1ZyIsImF1dGhIZWFkZXJzIiwiQXV0aG9yaXphdGlvbiIsImFwaWtleSIsInVybCIsInBhcmFtcyIsIm9uQXV0aFN0YXRlQ2hhbmdlIiwiZXZlbnQiLCJfaGFuZGxlVG9rZW5DaGFuZ2VkIiwic291cmNlIiwidG9rZW4iLCJjaGFuZ2VkQWNjZXNzVG9rZW4iLCJzZXRBdXRoIiwic2lnbk91dCIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/supabase-js/dist/module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthAdminApi: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthAdminApi),\n/* harmony export */ AuthApiError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthApiError),\n/* harmony export */ AuthClient: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthClient),\n/* harmony export */ AuthError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthError),\n/* harmony export */ AuthImplicitGrantRedirectError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthImplicitGrantRedirectError),\n/* harmony export */ AuthInvalidCredentialsError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthInvalidCredentialsError),\n/* harmony export */ AuthInvalidTokenResponseError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthInvalidTokenResponseError),\n/* harmony export */ AuthPKCEGrantCodeExchangeError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthPKCEGrantCodeExchangeError),\n/* harmony export */ AuthRetryableFetchError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthRetryableFetchError),\n/* harmony export */ AuthSessionMissingError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthSessionMissingError),\n/* harmony export */ AuthUnknownError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthUnknownError),\n/* harmony export */ AuthWeakPasswordError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthWeakPasswordError),\n/* harmony export */ CustomAuthError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.CustomAuthError),\n/* harmony export */ FunctionsError: () => (/* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__.FunctionsError),\n/* harmony export */ FunctionsFetchError: () => (/* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__.FunctionsFetchError),\n/* harmony export */ FunctionsHttpError: () => (/* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__.FunctionsHttpError),\n/* harmony export */ FunctionsRelayError: () => (/* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__.FunctionsRelayError),\n/* harmony export */ GoTrueAdminApi: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.GoTrueAdminApi),\n/* harmony export */ GoTrueClient: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.GoTrueClient),\n/* harmony export */ NavigatorLockAcquireTimeoutError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.NavigatorLockAcquireTimeoutError),\n/* harmony export */ REALTIME_CHANNEL_STATES: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_CHANNEL_STATES),\n/* harmony export */ REALTIME_LISTEN_TYPES: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_LISTEN_TYPES),\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT),\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_PRESENCE_LISTEN_EVENTS),\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_SUBSCRIBE_STATES),\n/* harmony export */ RealtimeChannel: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.RealtimeChannel),\n/* harmony export */ RealtimeClient: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.RealtimeClient),\n/* harmony export */ RealtimePresence: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.RealtimePresence),\n/* harmony export */ SupabaseClient: () => (/* reexport safe */ _SupabaseClient__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ createClient: () => (/* binding */ createClient),\n/* harmony export */ isAuthApiError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.isAuthApiError),\n/* harmony export */ isAuthError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.isAuthError),\n/* harmony export */ isAuthRetryableFetchError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.isAuthRetryableFetchError),\n/* harmony export */ isAuthWeakPasswordError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.isAuthWeakPasswordError),\n/* harmony export */ lockInternals: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.lockInternals),\n/* harmony export */ navigatorLock: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.navigatorLock)\n/* harmony export */ });\n/* harmony import */ var _SupabaseClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SupabaseClient */ \"(middleware)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js\");\n/* harmony import */ var _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/gotrue-js */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/index.js\");\n/* harmony import */ var _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @supabase/functions-js */ \"(middleware)/./node_modules/@supabase/functions-js/dist/module/types.js\");\n/* harmony import */ var _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/realtime-js */ \"(middleware)/./node_modules/@supabase/realtime-js/dist/module/index.js\");\n\n\n\n\n\n/**\n * Creates a new Supabase Client.\n */ const createClient = (supabaseUrl, supabaseKey, options)=>{\n return new _SupabaseClient__WEBPACK_IMPORTED_MODULE_3__[\"default\"](supabaseUrl, supabaseKey, options);\n}; //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQThDO0FBQ1Y7QUFDbUY7QUFDakY7QUFDdUI7QUFDN0Q7O0NBRUMsR0FDTSxNQUFNTSxlQUFlLENBQUNDLGFBQWFDLGFBQWFDO0lBQ25ELE9BQU8sSUFBSVQsdURBQWNBLENBQUNPLGFBQWFDLGFBQWFDO0FBQ3hELEVBQUUsQ0FDRixpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9pbmRleC5qcz9iMzI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdXBhYmFzZUNsaWVudCBmcm9tICcuL1N1cGFiYXNlQ2xpZW50JztcbmV4cG9ydCAqIGZyb20gJ0BzdXBhYmFzZS9nb3RydWUtanMnO1xuZXhwb3J0IHsgRnVuY3Rpb25zSHR0cEVycm9yLCBGdW5jdGlvbnNGZXRjaEVycm9yLCBGdW5jdGlvbnNSZWxheUVycm9yLCBGdW5jdGlvbnNFcnJvciwgfSBmcm9tICdAc3VwYWJhc2UvZnVuY3Rpb25zLWpzJztcbmV4cG9ydCAqIGZyb20gJ0BzdXBhYmFzZS9yZWFsdGltZS1qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN1cGFiYXNlQ2xpZW50IH0gZnJvbSAnLi9TdXBhYmFzZUNsaWVudCc7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgU3VwYWJhc2UgQ2xpZW50LlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQ2xpZW50ID0gKHN1cGFiYXNlVXJsLCBzdXBhYmFzZUtleSwgb3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBuZXcgU3VwYWJhc2VDbGllbnQoc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5LCBvcHRpb25zKTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiU3VwYWJhc2VDbGllbnQiLCJGdW5jdGlvbnNIdHRwRXJyb3IiLCJGdW5jdGlvbnNGZXRjaEVycm9yIiwiRnVuY3Rpb25zUmVsYXlFcnJvciIsIkZ1bmN0aW9uc0Vycm9yIiwiZGVmYXVsdCIsImNyZWF0ZUNsaWVudCIsInN1cGFiYXNlVXJsIiwic3VwYWJhc2VLZXkiLCJvcHRpb25zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/supabase-js/dist/module/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SupabaseAuthClient: () => (/* binding */ SupabaseAuthClient)\n/* harmony export */ });\n/* harmony import */ var _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/gotrue-js */ \"(middleware)/./node_modules/@supabase/gotrue-js/dist/module/index.js\");\n\nclass SupabaseAuthClient extends _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.GoTrueClient {\n constructor(options){\n super(options);\n }\n} //# sourceMappingURL=SupabaseAuthClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvU3VwYWJhc2VBdXRoQ2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1EO0FBQzVDLE1BQU1DLDJCQUEyQkQsNkRBQVlBO0lBQ2hERSxZQUFZQyxPQUFPLENBQUU7UUFDakIsS0FBSyxDQUFDQTtJQUNWO0FBQ0osRUFDQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvU3VwYWJhc2VBdXRoQ2xpZW50LmpzPzFkMjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR29UcnVlQ2xpZW50IH0gZnJvbSAnQHN1cGFiYXNlL2dvdHJ1ZS1qcyc7XG5leHBvcnQgY2xhc3MgU3VwYWJhc2VBdXRoQ2xpZW50IGV4dGVuZHMgR29UcnVlQ2xpZW50IHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN1cGFiYXNlQXV0aENsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiR29UcnVlQ2xpZW50IiwiU3VwYWJhc2VBdXRoQ2xpZW50IiwiY29uc3RydWN0b3IiLCJvcHRpb25zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/constants.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js\");\n// constants.ts\n\nlet JS_ENV = \"\";\n// @ts-ignore\nif (typeof Deno !== \"undefined\") {\n JS_ENV = \"deno\";\n} else if (typeof document !== \"undefined\") {\n JS_ENV = \"web\";\n} else if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n JS_ENV = \"react-native\";\n} else {\n JS_ENV = \"node\";\n}\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `supabase-js-${JS_ENV}/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n}; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZUFBZTtBQUNxQjtBQUNwQyxJQUFJQyxTQUFTO0FBQ2IsYUFBYTtBQUNiLElBQUksT0FBT0MsU0FBUyxhQUFhO0lBQzdCRCxTQUFTO0FBQ2IsT0FDSyxJQUFJLE9BQU9FLGFBQWEsYUFBYTtJQUN0Q0YsU0FBUztBQUNiLE9BQ0ssSUFBSSxPQUFPRyxjQUFjLGVBQWVBLFVBQVVDLE9BQU8sS0FBSyxlQUFlO0lBQzlFSixTQUFTO0FBQ2IsT0FDSztJQUNEQSxTQUFTO0FBQ2I7QUFDTyxNQUFNSyxrQkFBa0I7SUFBRSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUVMLE9BQU8sQ0FBQyxFQUFFRCw2Q0FBT0EsQ0FBQyxDQUFDO0FBQUMsRUFBRSxDQUN2RixxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzP2JlNzIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gY29uc3RhbnRzLnRzXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9uJztcbmxldCBKU19FTlYgPSAnJztcbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgRGVubyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBKU19FTlYgPSAnZGVubyc7XG59XG5lbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgSlNfRU5WID0gJ3dlYic7XG59XG5lbHNlIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gJ1JlYWN0TmF0aXZlJykge1xuICAgIEpTX0VOViA9ICdyZWFjdC1uYXRpdmUnO1xufVxuZWxzZSB7XG4gICAgSlNfRU5WID0gJ25vZGUnO1xufVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVBREVSUyA9IHsgJ1gtQ2xpZW50LUluZm8nOiBgc3VwYWJhc2UtanMtJHtKU19FTlZ9LyR7dmVyc2lvbn1gIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iLCJKU19FTlYiLCJEZW5vIiwiZG9jdW1lbnQiLCJuYXZpZ2F0b3IiLCJwcm9kdWN0IiwiREVGQVVMVF9IRUFERVJTIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fetchWithAuth: () => (/* binding */ fetchWithAuth),\n/* harmony export */ resolveFetch: () => (/* binding */ resolveFetch),\n/* harmony export */ resolveHeadersConstructor: () => (/* binding */ resolveHeadersConstructor)\n/* harmony export */ });\n/* harmony import */ var _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/node-fetch */ \"(middleware)/./node_modules/@supabase/node-fetch/browser.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// @ts-ignore\n\nconst resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n};\nconst resolveHeadersConstructor = ()=>{\n if (typeof Headers === \"undefined\") {\n return _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__.Headers;\n }\n return Headers;\n};\nconst fetchWithAuth = (supabaseKey, getAccessToken, customFetch)=>{\n const fetch1 = resolveFetch(customFetch);\n const HeadersConstructor = resolveHeadersConstructor();\n return (input, init)=>__awaiter(void 0, void 0, void 0, function*() {\n var _a;\n const accessToken = (_a = yield getAccessToken()) !== null && _a !== void 0 ? _a : supabaseKey;\n let headers = new HeadersConstructor(init === null || init === void 0 ? void 0 : init.headers);\n if (!headers.has(\"apikey\")) {\n headers.set(\"apikey\", supabaseKey);\n }\n if (!headers.has(\"Authorization\")) {\n headers.set(\"Authorization\", `Bearer ${accessToken}`);\n }\n return fetch1(input, Object.assign(Object.assign({}, init), {\n headers\n }));\n });\n}; //# sourceMappingURL=fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvZmV0Y2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUlBLFlBQVksU0FBSyxJQUFJLFNBQUksQ0FBQ0EsU0FBUyxJQUFLLFNBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVM7SUFDbkYsU0FBU0MsTUFBTUMsS0FBSztRQUFJLE9BQU9BLGlCQUFpQkgsSUFBSUcsUUFBUSxJQUFJSCxFQUFFLFNBQVVJLE9BQU87WUFBSUEsUUFBUUQ7UUFBUTtJQUFJO0lBQzNHLE9BQU8sSUFBS0gsQ0FBQUEsS0FBTUEsQ0FBQUEsSUFBSUssT0FBTSxDQUFDLEVBQUcsU0FBVUQsT0FBTyxFQUFFRSxNQUFNO1FBQ3JELFNBQVNDLFVBQVVKLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxVQUFVUSxJQUFJLENBQUNOO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDMUYsU0FBU0MsU0FBU1IsS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFNBQVMsQ0FBQyxRQUFRLENBQUNFO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDN0YsU0FBU0YsS0FBS0ksTUFBTTtZQUFJQSxPQUFPQyxJQUFJLEdBQUdULFFBQVFRLE9BQU9ULEtBQUssSUFBSUQsTUFBTVUsT0FBT1QsS0FBSyxFQUFFVyxJQUFJLENBQUNQLFdBQVdJO1FBQVc7UUFDN0dILEtBQUssQ0FBQ1AsWUFBWUEsVUFBVWMsS0FBSyxDQUFDakIsU0FBU0MsY0FBYyxFQUFFLEdBQUdVLElBQUk7SUFDdEU7QUFDSjtBQUNBLGFBQWE7QUFDaUU7QUFDdkUsTUFBTVUsZUFBZSxDQUFDQztJQUN6QixJQUFJQztJQUNKLElBQUlELGFBQWE7UUFDYkMsU0FBU0Q7SUFDYixPQUNLLElBQUksT0FBT0UsVUFBVSxhQUFhO1FBQ25DRCxTQUFTTCw0REFBU0E7SUFDdEIsT0FDSztRQUNESyxTQUFTQztJQUNiO0lBQ0EsT0FBTyxDQUFDLEdBQUdDLE9BQVNGLFVBQVVFO0FBQ2xDLEVBQUU7QUFDSyxNQUFNQyw0QkFBNEI7SUFDckMsSUFBSSxPQUFPUCxZQUFZLGFBQWE7UUFDaEMsT0FBT0MseURBQWdCQTtJQUMzQjtJQUNBLE9BQU9EO0FBQ1gsRUFBRTtBQUNLLE1BQU1RLGdCQUFnQixDQUFDQyxhQUFhQyxnQkFBZ0JQO0lBQ3ZELE1BQU1FLFNBQVFILGFBQWFDO0lBQzNCLE1BQU1RLHFCQUFxQko7SUFDM0IsT0FBTyxDQUFDSyxPQUFPQyxPQUFTakMsVUFBVSxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRztZQUN0RCxJQUFJa0M7WUFDSixNQUFNQyxjQUFjLENBQUNELEtBQU0sTUFBTUosZ0JBQWdCLE1BQU8sUUFBUUksT0FBTyxLQUFLLElBQUlBLEtBQUtMO1lBQ3JGLElBQUlPLFVBQVUsSUFBSUwsbUJBQW1CRSxTQUFTLFFBQVFBLFNBQVMsS0FBSyxJQUFJLEtBQUssSUFBSUEsS0FBS0csT0FBTztZQUM3RixJQUFJLENBQUNBLFFBQVFDLEdBQUcsQ0FBQyxXQUFXO2dCQUN4QkQsUUFBUUUsR0FBRyxDQUFDLFVBQVVUO1lBQzFCO1lBQ0EsSUFBSSxDQUFDTyxRQUFRQyxHQUFHLENBQUMsa0JBQWtCO2dCQUMvQkQsUUFBUUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRUgsWUFBWSxDQUFDO1lBQ3hEO1lBQ0EsT0FBT1YsT0FBTU8sT0FBT08sT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHUCxPQUFPO2dCQUFFRztZQUFRO1FBQ3pFO0FBQ0osRUFBRSxDQUNGLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9mZXRjaC5qcz8yNTRjIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IG5vZGVGZXRjaCwgeyBIZWFkZXJzIGFzIE5vZGVGZXRjaEhlYWRlcnMgfSBmcm9tICdAc3VwYWJhc2Uvbm9kZS1mZXRjaCc7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUZldGNoID0gKGN1c3RvbUZldGNoKSA9PiB7XG4gICAgbGV0IF9mZXRjaDtcbiAgICBpZiAoY3VzdG9tRmV0Y2gpIHtcbiAgICAgICAgX2ZldGNoID0gY3VzdG9tRmV0Y2g7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBmZXRjaCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgX2ZldGNoID0gbm9kZUZldGNoO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgX2ZldGNoID0gZmV0Y2g7XG4gICAgfVxuICAgIHJldHVybiAoLi4uYXJncykgPT4gX2ZldGNoKC4uLmFyZ3MpO1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSGVhZGVyc0NvbnN0cnVjdG9yID0gKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgSGVhZGVycyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIE5vZGVGZXRjaEhlYWRlcnM7XG4gICAgfVxuICAgIHJldHVybiBIZWFkZXJzO1xufTtcbmV4cG9ydCBjb25zdCBmZXRjaFdpdGhBdXRoID0gKHN1cGFiYXNlS2V5LCBnZXRBY2Nlc3NUb2tlbiwgY3VzdG9tRmV0Y2gpID0+IHtcbiAgICBjb25zdCBmZXRjaCA9IHJlc29sdmVGZXRjaChjdXN0b21GZXRjaCk7XG4gICAgY29uc3QgSGVhZGVyc0NvbnN0cnVjdG9yID0gcmVzb2x2ZUhlYWRlcnNDb25zdHJ1Y3RvcigpO1xuICAgIHJldHVybiAoaW5wdXQsIGluaXQpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gKF9hID0gKHlpZWxkIGdldEFjY2Vzc1Rva2VuKCkpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBzdXBhYmFzZUtleTtcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSGVhZGVyc0NvbnN0cnVjdG9yKGluaXQgPT09IG51bGwgfHwgaW5pdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5pdC5oZWFkZXJzKTtcbiAgICAgICAgaWYgKCFoZWFkZXJzLmhhcygnYXBpa2V5JykpIHtcbiAgICAgICAgICAgIGhlYWRlcnMuc2V0KCdhcGlrZXknLCBzdXBhYmFzZUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFoZWFkZXJzLmhhcygnQXV0aG9yaXphdGlvbicpKSB7XG4gICAgICAgICAgICBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmV0Y2goaW5wdXQsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdCksIHsgaGVhZGVycyB9KSk7XG4gICAgfSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmV0Y2guanMubWFwIl0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIm5vZGVGZXRjaCIsIkhlYWRlcnMiLCJOb2RlRmV0Y2hIZWFkZXJzIiwicmVzb2x2ZUZldGNoIiwiY3VzdG9tRmV0Y2giLCJfZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJyZXNvbHZlSGVhZGVyc0NvbnN0cnVjdG9yIiwiZmV0Y2hXaXRoQXV0aCIsInN1cGFiYXNlS2V5IiwiZ2V0QWNjZXNzVG9rZW4iLCJIZWFkZXJzQ29uc3RydWN0b3IiLCJpbnB1dCIsImluaXQiLCJfYSIsImFjY2Vzc1Rva2VuIiwiaGVhZGVycyIsImhhcyIsInNldCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applySettingDefaults: () => (/* binding */ applySettingDefaults),\n/* harmony export */ isBrowser: () => (/* binding */ isBrowser),\n/* harmony export */ stripTrailingSlash: () => (/* binding */ stripTrailingSlash),\n/* harmony export */ uuid: () => (/* binding */ uuid)\n/* harmony export */ });\nfunction uuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == \"x\" ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\nfunction stripTrailingSlash(url) {\n return url.replace(/\\/$/, \"\");\n}\nconst isBrowser = ()=>\"undefined\" !== \"undefined\";\nfunction applySettingDefaults(options, defaults) {\n const { db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions } = options;\n const { db: DEFAULT_DB_OPTIONS, auth: DEFAULT_AUTH_OPTIONS, realtime: DEFAULT_REALTIME_OPTIONS, global: DEFAULT_GLOBAL_OPTIONS } = defaults;\n return {\n db: Object.assign(Object.assign({}, DEFAULT_DB_OPTIONS), dbOptions),\n auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), authOptions),\n realtime: Object.assign(Object.assign({}, DEFAULT_REALTIME_OPTIONS), realtimeOptions),\n global: Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS), globalOptions)\n };\n} //# sourceMappingURL=helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQU8sU0FBU0E7SUFDWixPQUFPLHVDQUF1Q0MsT0FBTyxDQUFDLFNBQVMsU0FBVUMsQ0FBQztRQUN0RSxJQUFJQyxJQUFJLEtBQU1FLE1BQU0sS0FBSyxLQUFNLEdBQUdDLElBQUlKLEtBQUssTUFBTUMsSUFBSSxJQUFLLE1BQU87UUFDakUsT0FBT0csRUFBRUMsUUFBUSxDQUFDO0lBQ3RCO0FBQ0o7QUFDTyxTQUFTQyxtQkFBbUJDLEdBQUc7SUFDbEMsT0FBT0EsSUFBSVIsT0FBTyxDQUFDLE9BQU87QUFDOUI7QUFDTyxNQUFNUyxZQUFZLElBQU0sZ0JBQWtCLFlBQVk7QUFDdEQsU0FBU0MscUJBQXFCQyxPQUFPLEVBQUVDLFFBQVE7SUFDbEQsTUFBTSxFQUFFQyxJQUFJQyxTQUFTLEVBQUVDLE1BQU1DLFdBQVcsRUFBRUMsVUFBVUMsZUFBZSxFQUFFQyxRQUFRQyxhQUFhLEVBQUcsR0FBR1Q7SUFDaEcsTUFBTSxFQUFFRSxJQUFJUSxrQkFBa0IsRUFBRU4sTUFBTU8sb0JBQW9CLEVBQUVMLFVBQVVNLHdCQUF3QixFQUFFSixRQUFRSyxzQkFBc0IsRUFBRyxHQUFHWjtJQUNwSSxPQUFPO1FBQ0hDLElBQUlZLE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR0wscUJBQXFCUDtRQUN6REMsTUFBTVUsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHSix1QkFBdUJOO1FBQzdEQyxVQUFVUSxPQUFPQyxNQUFNLENBQUNELE9BQU9DLE1BQU0sQ0FBQyxDQUFDLEdBQUdILDJCQUEyQkw7UUFDckVDLFFBQVFNLE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR0YseUJBQXlCSjtJQUNyRTtBQUNKLEVBQ0EsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL2hlbHBlcnMuanM/OWE2ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdXVpZCgpIHtcbiAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xuICAgICAgICB2YXIgciA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMCwgdiA9IGMgPT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4ODtcbiAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVHJhaWxpbmdTbGFzaCh1cmwpIHtcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG59XG5leHBvcnQgY29uc3QgaXNCcm93c2VyID0gKCkgPT4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTZXR0aW5nRGVmYXVsdHMob3B0aW9ucywgZGVmYXVsdHMpIHtcbiAgICBjb25zdCB7IGRiOiBkYk9wdGlvbnMsIGF1dGg6IGF1dGhPcHRpb25zLCByZWFsdGltZTogcmVhbHRpbWVPcHRpb25zLCBnbG9iYWw6IGdsb2JhbE9wdGlvbnMsIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHsgZGI6IERFRkFVTFRfREJfT1BUSU9OUywgYXV0aDogREVGQVVMVF9BVVRIX09QVElPTlMsIHJlYWx0aW1lOiBERUZBVUxUX1JFQUxUSU1FX09QVElPTlMsIGdsb2JhbDogREVGQVVMVF9HTE9CQUxfT1BUSU9OUywgfSA9IGRlZmF1bHRzO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRiOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfREJfT1BUSU9OUyksIGRiT3B0aW9ucyksXG4gICAgICAgIGF1dGg6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9BVVRIX09QVElPTlMpLCBhdXRoT3B0aW9ucyksXG4gICAgICAgIHJlYWx0aW1lOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfUkVBTFRJTUVfT1BUSU9OUyksIHJlYWx0aW1lT3B0aW9ucyksXG4gICAgICAgIGdsb2JhbDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX0dMT0JBTF9PUFRJT05TKSwgZ2xvYmFsT3B0aW9ucyksXG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbInV1aWQiLCJyZXBsYWNlIiwiYyIsInIiLCJNYXRoIiwicmFuZG9tIiwidiIsInRvU3RyaW5nIiwic3RyaXBUcmFpbGluZ1NsYXNoIiwidXJsIiwiaXNCcm93c2VyIiwiYXBwbHlTZXR0aW5nRGVmYXVsdHMiLCJvcHRpb25zIiwiZGVmYXVsdHMiLCJkYiIsImRiT3B0aW9ucyIsImF1dGgiLCJhdXRoT3B0aW9ucyIsInJlYWx0aW1lIiwicmVhbHRpbWVPcHRpb25zIiwiZ2xvYmFsIiwiZ2xvYmFsT3B0aW9ucyIsIkRFRkFVTFRfREJfT1BUSU9OUyIsIkRFRkFVTFRfQVVUSF9PUFRJT05TIiwiREVGQVVMVF9SRUFMVElNRV9PUFRJT05TIiwiREVGQVVMVF9HTE9CQUxfT1BUSU9OUyIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/version.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\nconst version = \"2.39.3\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sTUFBTUEsVUFBVSxTQUFTLENBQ2hDLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi92ZXJzaW9uLmpzPzQ4MjciXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHZlcnNpb24gPSAnMi4zOS4zJztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZlcnNpb24uanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/cookie/index.js": +/*!**************************************!*\ + !*** ./node_modules/cookie/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */ \n/**\n * Module exports.\n * @public\n */ exports.parse = parse;\nexports.serialize = serialize;\n/**\n * Module variables.\n * @private\n */ var __toString = Object.prototype.toString;\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */ var fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */ function parse(str, options) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var obj = {};\n var opt = options || {};\n var dec = opt.decode || decode;\n var index = 0;\n while(index < str.length){\n var eqIdx = str.indexOf(\"=\", index);\n // no more cookie pairs\n if (eqIdx === -1) {\n break;\n }\n var endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n var key = str.slice(index, eqIdx).trim();\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim();\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1);\n }\n obj[key] = tryDecode(val, dec);\n }\n index = endIdx + 1;\n }\n return obj;\n}\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */ function serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n if (typeof enc !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var value = enc(val);\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var str = name + \"=\" + value;\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n str += \"; Max-Age=\" + Math.floor(maxAge);\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n str += \"; Domain=\" + opt.domain;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n str += \"; Path=\" + opt.path;\n }\n if (opt.expires) {\n var expires = opt.expires;\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError(\"option expires is invalid\");\n }\n str += \"; Expires=\" + expires.toUTCString();\n }\n if (opt.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (opt.secure) {\n str += \"; Secure\";\n }\n if (opt.priority) {\n var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n switch(priority){\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(\"option priority is invalid\");\n }\n }\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch(sameSite){\n case true:\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return str;\n}\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */ function decode(str) {\n return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n}\n/**\n * URL-encode value.\n *\n * @param {string} str\n * @returns {string}\n */ function encode(val) {\n return encodeURIComponent(val);\n}\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */ function isDate(val) {\n return __toString.call(val) === \"[object Date]\" || val instanceof Date;\n}\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */ function tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL2Nvb2tpZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Q0FLQyxHQUVEO0FBRUE7OztDQUdDLEdBRURBLGFBQWEsR0FBR0M7QUFDaEJELGlCQUFpQixHQUFHRTtBQUVwQjs7O0NBR0MsR0FFRCxJQUFJQyxhQUFhQyxPQUFPQyxTQUFTLENBQUNDLFFBQVE7QUFFMUM7Ozs7OztDQU1DLEdBRUQsSUFBSUMscUJBQXFCO0FBRXpCOzs7Ozs7Ozs7O0NBVUMsR0FFRCxTQUFTTixNQUFNTyxHQUFHLEVBQUVDLE9BQU87SUFDekIsSUFBSSxPQUFPRCxRQUFRLFVBQVU7UUFDM0IsTUFBTSxJQUFJRSxVQUFVO0lBQ3RCO0lBRUEsSUFBSUMsTUFBTSxDQUFDO0lBQ1gsSUFBSUMsTUFBTUgsV0FBVyxDQUFDO0lBQ3RCLElBQUlJLE1BQU1ELElBQUlFLE1BQU0sSUFBSUE7SUFFeEIsSUFBSUMsUUFBUTtJQUNaLE1BQU9BLFFBQVFQLElBQUlRLE1BQU0sQ0FBRTtRQUN6QixJQUFJQyxRQUFRVCxJQUFJVSxPQUFPLENBQUMsS0FBS0g7UUFFN0IsdUJBQXVCO1FBQ3ZCLElBQUlFLFVBQVUsQ0FBQyxHQUFHO1lBQ2hCO1FBQ0Y7UUFFQSxJQUFJRSxTQUFTWCxJQUFJVSxPQUFPLENBQUMsS0FBS0g7UUFFOUIsSUFBSUksV0FBVyxDQUFDLEdBQUc7WUFDakJBLFNBQVNYLElBQUlRLE1BQU07UUFDckIsT0FBTyxJQUFJRyxTQUFTRixPQUFPO1lBQ3pCLCtCQUErQjtZQUMvQkYsUUFBUVAsSUFBSVksV0FBVyxDQUFDLEtBQUtILFFBQVEsS0FBSztZQUMxQztRQUNGO1FBRUEsSUFBSUksTUFBTWIsSUFBSWMsS0FBSyxDQUFDUCxPQUFPRSxPQUFPTSxJQUFJO1FBRXRDLG1CQUFtQjtRQUNuQixJQUFJQyxjQUFjYixHQUFHLENBQUNVLElBQUksRUFBRTtZQUMxQixJQUFJSSxNQUFNakIsSUFBSWMsS0FBSyxDQUFDTCxRQUFRLEdBQUdF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WUFDRixLQUFLO2dCQUNIQSxPQUFPO2dCQUNQO1lBQ0Y7Z0JBQ0UsTUFBTSxJQUFJRSxVQUFVO1FBQ3hCO0lBQ0Y7SUFFQSxPQUFPRjtBQUNUO0FBRUE7Ozs7O0NBS0MsR0FFRCxTQUFTTSxPQUFRTixHQUFHO0lBQ2xCLE9BQU9BLElBQUlVLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFDekIrQixtQkFBbUJ6QyxPQUNuQkE7QUFDTjtBQUVBOzs7OztDQUtDLEdBRUQsU0FBU3NCLE9BQVFMLEdBQUc7SUFDbEIsT0FBT3lCLG1CQUFtQnpCO0FBQzVCO0FBRUE7Ozs7O0NBS0MsR0FFRCxTQUFTZ0IsT0FBUWhCLEdBQUc7SUFDbEIsT0FBT3RCLFdBQVdnRCxJQUFJLENBQUMxQixTQUFTLG1CQUM5QkEsZUFBZTJCO0FBQ25CO0FBRUE7Ozs7OztDQU1DLEdBRUQsU0FBU3pCLFVBQVVuQixHQUFHLEVBQUVNLE1BQU07SUFDNUIsSUFBSTtRQUNGLE9BQU9BLE9BQU9OO0lBQ2hCLEVBQUUsT0FBTzZDLEdBQUc7UUFDVixPQUFPN0M7SUFDVDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9jb29raWUvaW5kZXguanM/NWQzMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIGNvb2tpZVxuICogQ29weXJpZ2h0KGMpIDIwMTItMjAxNCBSb21hbiBTaHR5bG1hblxuICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqIEBwdWJsaWNcbiAqL1xuXG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5leHBvcnRzLnNlcmlhbGl6ZSA9IHNlcmlhbGl6ZTtcblxuLyoqXG4gKiBNb2R1bGUgdmFyaWFibGVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgX190b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxuLyoqXG4gKiBSZWdFeHAgdG8gbWF0Y2ggZmllbGQtY29udGVudCBpbiBSRkMgNzIzMCBzZWMgMy4yXG4gKlxuICogZmllbGQtY29udGVudCA9IGZpZWxkLXZjaGFyIFsgMSooIFNQIC8gSFRBQiApIGZpZWxkLXZjaGFyIF1cbiAqIGZpZWxkLXZjaGFyICAgPSBWQ0hBUiAvIG9icy10ZXh0XG4gKiBvYnMtdGV4dCAgICAgID0gJXg4MC1GRlxuICovXG5cbnZhciBmaWVsZENvbnRlbnRSZWdFeHAgPSAvXltcXHUwMDA5XFx1MDAyMC1cXHUwMDdlXFx1MDA4MC1cXHUwMGZmXSskLztcblxuLyoqXG4gKiBQYXJzZSBhIGNvb2tpZSBoZWFkZXIuXG4gKlxuICogUGFyc2UgdGhlIGdpdmVuIGNvb2tpZSBoZWFkZXIgc3RyaW5nIGludG8gYW4gb2JqZWN0XG4gKiBUaGUgb2JqZWN0IGhhcyB0aGUgdmFyaW91cyBjb29raWVzIGFzIGtleXMobmFtZXMpID0+IHZhbHVlc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc11cbiAqIEByZXR1cm4ge29iamVjdH1cbiAqIEBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZShzdHIsIG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYXJndW1lbnQgc3RyIG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIHZhciBvYmogPSB7fVxuICB2YXIgb3B0ID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGRlYyA9IG9wdC5kZWNvZGUgfHwgZGVjb2RlO1xuXG4gIHZhciBpbmRleCA9IDBcbiAgd2hpbGUgKGluZGV4IDwgc3RyLmxlbmd0aCkge1xuICAgIHZhciBlcUlkeCA9IHN0ci5pbmRleE9mKCc9JywgaW5kZXgpXG5cbiAgICAvLyBubyBtb3JlIGNvb2tpZSBwYWlyc1xuICAgIGlmIChlcUlkeCA9PT0gLTEpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgdmFyIGVuZElkeCA9IHN0ci5pbmRleE9mKCc7JywgaW5kZXgpXG5cbiAgICBpZiAoZW5kSWR4ID09PSAtMSkge1xuICAgICAgZW5kSWR4ID0gc3RyLmxlbmd0aFxuICAgIH0gZWxzZSBpZiAoZW5kSWR4IDwgZXFJZHgpIHtcbiAgICAgIC8vIGJhY2t0cmFjayBvbiBwcmlvciBzZW1pY29sb25cbiAgICAgIGluZGV4ID0gc3RyLmxhc3RJbmRleE9mKCc7JywgZXFJZHggLSAxKSArIDFcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgdmFyIGtleSA9IHN0ci5zbGljZShpbmRleCwgZXFJZHgpLnRyaW0oKVxuXG4gICAgLy8gb25seSBhc3NpZ24gb25jZVxuICAgIGlmICh1bmRlZmluZWQgPT09IG9ialtrZXldKSB7XG4gICAgICB2YXIgdmFsID0gc3RyLnNsaWNlKGVxSWR4ICsgMSwgZW5kSWR4KS50cmltKClcblxuICAgICAgLy8gcXVvdGVkIHZhbHVlc1xuICAgICAgaWYgKHZhbC5jaGFyQ29kZUF0KDApID09PSAweDIyKSB7XG4gICAgICAgIHZhbCA9IHZhbC5zbGljZSgxLCAtMSlcbiAgICAgIH1cblxuICAgICAgb2JqW2tleV0gPSB0cnlEZWNvZGUodmFsLCBkZWMpO1xuICAgIH1cblxuICAgIGluZGV4ID0gZW5kSWR4ICsgMVxuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgZGF0YSBpbnRvIGEgY29va2llIGhlYWRlci5cbiAqXG4gKiBTZXJpYWxpemUgdGhlIGEgbmFtZSB2YWx1ZSBwYWlyIGludG8gYSBjb29raWUgc3RyaW5nIHN1aXRhYmxlIGZvclxuICogaHR0cCBoZWFkZXJzLiBBbiBvcHRpb25hbCBvcHRpb25zIG9iamVjdCBzcGVjaWZpZWQgY29va2llIHBhcmFtZXRlcnMuXG4gKlxuICogc2VyaWFsaXplKCdmb28nLCAnYmFyJywgeyBodHRwT25seTogdHJ1ZSB9KVxuICogICA9PiBcImZvbz1iYXI7IGh0dHBPbmx5XCJcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IHZhbFxuICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXVxuICogQHJldHVybiB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZShuYW1lLCB2YWwsIG9wdGlvbnMpIHtcbiAgdmFyIG9wdCA9IG9wdGlvbnMgfHwge307XG4gIHZhciBlbmMgPSBvcHQuZW5jb2RlIHx8IGVuY29kZTtcblxuICBpZiAodHlwZW9mIGVuYyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBlbmNvZGUgaXMgaW52YWxpZCcpO1xuICB9XG5cbiAgaWYgKCFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChuYW1lKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FyZ3VtZW50IG5hbWUgaXMgaW52YWxpZCcpO1xuICB9XG5cbiAgdmFyIHZhbHVlID0gZW5jKHZhbCk7XG5cbiAgaWYgKHZhbHVlICYmICFmaWVsZENvbnRlbnRSZWdFeHAudGVzdCh2YWx1ZSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdhcmd1bWVudCB2YWwgaXMgaW52YWxpZCcpO1xuICB9XG5cbiAgdmFyIHN0ciA9IG5hbWUgKyAnPScgKyB2YWx1ZTtcblxuICBpZiAobnVsbCAhPSBvcHQubWF4QWdlKSB7XG4gICAgdmFyIG1heEFnZSA9IG9wdC5tYXhBZ2UgLSAwO1xuXG4gICAgaWYgKGlzTmFOKG1heEFnZSkgfHwgIWlzRmluaXRlKG1heEFnZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBtYXhBZ2UgaXMgaW52YWxpZCcpXG4gICAgfVxuXG4gICAgc3RyICs9ICc7IE1heC1BZ2U9JyArIE1hdGguZmxvb3IobWF4QWdlKTtcbiAgfVxuXG4gIGlmIChvcHQuZG9tYWluKSB7XG4gICAgaWYgKCFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChvcHQuZG9tYWluKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIGRvbWFpbiBpcyBpbnZhbGlkJyk7XG4gICAgfVxuXG4gICAgc3RyICs9ICc7IERvbWFpbj0nICsgb3B0LmRvbWFpbjtcbiAgfVxuXG4gIGlmIChvcHQucGF0aCkge1xuICAgIGlmICghZmllbGRDb250ZW50UmVnRXhwLnRlc3Qob3B0LnBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gcGF0aCBpcyBpbnZhbGlkJyk7XG4gICAgfVxuXG4gICAgc3RyICs9ICc7IFBhdGg9JyArIG9wdC5wYXRoO1xuICB9XG5cbiAgaWYgKG9wdC5leHBpcmVzKSB7XG4gICAgdmFyIGV4cGlyZXMgPSBvcHQuZXhwaXJlc1xuXG4gICAgaWYgKCFpc0RhdGUoZXhwaXJlcykgfHwgaXNOYU4oZXhwaXJlcy52YWx1ZU9mKCkpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gZXhwaXJlcyBpcyBpbnZhbGlkJyk7XG4gICAgfVxuXG4gICAgc3RyICs9ICc7IEV4cGlyZXM9JyArIGV4cGlyZXMudG9VVENTdHJpbmcoKVxuICB9XG5cbiAgaWYgKG9wdC5odHRwT25seSkge1xuICAgIHN0ciArPSAnOyBIdHRwT25seSc7XG4gIH1cblxuICBpZiAob3B0LnNlY3VyZSkge1xuICAgIHN0ciArPSAnOyBTZWN1cmUnO1xuICB9XG5cbiAgaWYgKG9wdC5wcmlvcml0eSkge1xuICAgIHZhciBwcmlvcml0eSA9IHR5cGVvZiBvcHQucHJpb3JpdHkgPT09ICdzdHJpbmcnXG4gICAgICA/IG9wdC5wcmlvcml0eS50b0xvd2VyQ2FzZSgpXG4gICAgICA6IG9wdC5wcmlvcml0eVxuXG4gICAgc3dpdGNoIChwcmlvcml0eSkge1xuICAgICAgY2FzZSAnbG93JzpcbiAgICAgICAgc3RyICs9ICc7IFByaW9yaXR5PUxvdydcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgIHN0ciArPSAnOyBQcmlvcml0eT1NZWRpdW0nXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdoaWdoJzpcbiAgICAgICAgc3RyICs9ICc7IFByaW9yaXR5PUhpZ2gnXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gcHJpb3JpdHkgaXMgaW52YWxpZCcpXG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdC5zYW1lU2l0ZSkge1xuICAgIHZhciBzYW1lU2l0ZSA9IHR5cGVvZiBvcHQuc2FtZVNpdGUgPT09ICdzdHJpbmcnXG4gICAgICA/IG9wdC5zYW1lU2l0ZS50b0xvd2VyQ2FzZSgpIDogb3B0LnNhbWVTaXRlO1xuXG4gICAgc3dpdGNoIChzYW1lU2l0ZSkge1xuICAgICAgY2FzZSB0cnVlOlxuICAgICAgICBzdHIgKz0gJzsgU2FtZVNpdGU9U3RyaWN0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsYXgnOlxuICAgICAgICBzdHIgKz0gJzsgU2FtZVNpdGU9TGF4JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdHJpY3QnOlxuICAgICAgICBzdHIgKz0gJzsgU2FtZVNpdGU9U3RyaWN0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdub25lJzpcbiAgICAgICAgc3RyICs9ICc7IFNhbWVTaXRlPU5vbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBzYW1lU2l0ZSBpcyBpbnZhbGlkJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0cjtcbn1cblxuLyoqXG4gKiBVUkwtZGVjb2RlIHN0cmluZyB2YWx1ZS4gT3B0aW1pemVkIHRvIHNraXAgbmF0aXZlIGNhbGwgd2hlbiBubyAlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gZGVjb2RlIChzdHIpIHtcbiAgcmV0dXJuIHN0ci5pbmRleE9mKCclJykgIT09IC0xXG4gICAgPyBkZWNvZGVVUklDb21wb25lbnQoc3RyKVxuICAgIDogc3RyXG59XG5cbi8qKlxuICogVVJMLWVuY29kZSB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5cbmZ1bmN0aW9uIGVuY29kZSAodmFsKSB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsKVxufVxuXG4vKipcbiAqIERldGVybWluZSBpZiB2YWx1ZSBpcyBhIERhdGUuXG4gKlxuICogQHBhcmFtIHsqfSB2YWxcbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNEYXRlICh2YWwpIHtcbiAgcmV0dXJuIF9fdG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBEYXRlXScgfHxcbiAgICB2YWwgaW5zdGFuY2VvZiBEYXRlXG59XG5cbi8qKlxuICogVHJ5IGRlY29kaW5nIGEgc3RyaW5nIHVzaW5nIGEgZGVjb2RpbmcgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICogQHBhcmFtIHtmdW5jdGlvbn0gZGVjb2RlXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHRyeURlY29kZShzdHIsIGRlY29kZSkge1xuICB0cnkge1xuICAgIHJldHVybiBkZWNvZGUoc3RyKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBzdHI7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJleHBvcnRzIiwicGFyc2UiLCJzZXJpYWxpemUiLCJfX3RvU3RyaW5nIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJmaWVsZENvbnRlbnRSZWdFeHAiLCJzdHIiLCJvcHRpb25zIiwiVHlwZUVycm9yIiwib2JqIiwib3B0IiwiZGVjIiwiZGVjb2RlIiwiaW5kZXgiLCJsZW5ndGgiLCJlcUlkeCIsImluZGV4T2YiLCJlbmRJZHgiLCJsYXN0SW5kZXhPZiIsImtleSIsInNsaWNlIiwidHJpbSIsInVuZGVmaW5lZCIsInZhbCIsImNoYXJDb2RlQXQiLCJ0cnlEZWNvZGUiLCJuYW1lIiwiZW5jIiwiZW5jb2RlIiwidGVzdCIsInZhbHVlIiwibWF4QWdlIiwiaXNOYU4iLCJpc0Zpbml0ZSIsIk1hdGgiLCJmbG9vciIsImRvbWFpbiIsInBhdGgiLCJleHBpcmVzIiwiaXNEYXRlIiwidmFsdWVPZiIsInRvVVRDU3RyaW5nIiwiaHR0cE9ubHkiLCJzZWN1cmUiLCJwcmlvcml0eSIsInRvTG93ZXJDYXNlIiwic2FtZVNpdGUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjYWxsIiwiRGF0ZSIsImUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/cookie/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js": +/*!************************************************************************!*\ + !*** ./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all)=>{\n for(var name in all)__defProp(target, name, {\n get: all[name],\n enumerable: true\n });\n};\nvar __copyProps = (to, from, except, desc)=>{\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: ()=>from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n};\nvar __toCommonJS = (mod)=>__copyProps(__defProp({}, \"__esModule\", {\n value: true\n }), mod);\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: ()=>RequestCookies,\n ResponseCookies: ()=>ResponseCookies,\n parseCookie: ()=>parseCookie,\n parseSetCookie: ()=>parseSetCookie,\n stringifyCookie: ()=>stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n return `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)){\n if (!pair) continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [\n pair.slice(0, splitAt),\n pair.slice(splitAt + 1)\n ];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {}\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const { domain, expires, httponly, maxage, path, samesite, secure, priority } = Object.fromEntries(attributes.map(([key, value2])=>[\n key.toLowerCase(),\n value2\n ]));\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && {\n expires: new Date(expires)\n },\n ...httponly && {\n httpOnly: true\n },\n ...typeof maxage === \"string\" && {\n maxAge: Number(maxage)\n },\n path,\n ...samesite && {\n sameSite: parseSameSite(samesite)\n },\n ...secure && {\n secure: true\n },\n ...priority && {\n priority: parsePriority(priority)\n }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for(const key in t){\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\n \"strict\",\n \"lax\",\n \"none\"\n];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\n \"low\",\n \"medium\",\n \"high\"\n];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString) return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders){\n /** @internal */ this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed){\n this._parsed.set(name, {\n name,\n value\n });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */ get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value])=>value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n])=>n === name).map(([_, value])=>value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [\n args[0].name,\n args[0].value\n ] : args;\n const map = this._parsed;\n map.set(name, {\n name,\n value\n });\n this._headers.set(\"cookie\", Array.from(map).map(([_, value2])=>stringifyCookie(value2)).join(\"; \"));\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */ delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name)=>map.delete(name));\n this._headers.set(\"cookie\", Array.from(map).map(([_, value])=>stringifyCookie(value)).join(\"; \"));\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */ clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */ [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [\n ...this._parsed.values()\n ].map((v)=>`${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders){\n /** @internal */ this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings){\n const parsed = parseSetCookie(cookieString);\n if (parsed) this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */ get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */ getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c)=>c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */ set(...args) {\n const [name, value, cookie] = args.length === 1 ? [\n args[0].name,\n args[0].value,\n args[0]\n ] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({\n name,\n value,\n ...cookie\n }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */ delete(...args) {\n const [name, path, domain] = typeof args[0] === \"string\" ? [\n args[0]\n ] : [\n args[0].name,\n args[0].path,\n args[0].domain\n ];\n return this.set({\n name,\n path,\n domain,\n value: \"\",\n expires: /* @__PURE__ */ new Date(0)\n });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [\n ...this._parsed.values()\n ].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag){\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = {\n name: \"\",\n value: \"\"\n}) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixJQUFJQSxZQUFZQyxPQUFPQyxjQUFjO0FBQ3JDLElBQUlDLG1CQUFtQkYsT0FBT0csd0JBQXdCO0FBQ3RELElBQUlDLG9CQUFvQkosT0FBT0ssbUJBQW1CO0FBQ2xELElBQUlDLGVBQWVOLE9BQU9PLFNBQVMsQ0FBQ0MsY0FBYztBQUNsRCxJQUFJQyxXQUFXLENBQUNDLFFBQVFDO0lBQ3RCLElBQUssSUFBSUMsUUFBUUQsSUFDZlosVUFBVVcsUUFBUUUsTUFBTTtRQUFFQyxLQUFLRixHQUFHLENBQUNDLEtBQUs7UUFBRUUsWUFBWTtJQUFLO0FBQy9EO0FBQ0EsSUFBSUMsY0FBYyxDQUFDQyxJQUFJQyxNQUFNQyxRQUFRQztJQUNuQyxJQUFJRixRQUFRLE9BQU9BLFNBQVMsWUFBWSxPQUFPQSxTQUFTLFlBQVk7UUFDbEUsS0FBSyxJQUFJRyxPQUFPaEIsa0JBQWtCYSxNQUNoQyxJQUFJLENBQUNYLGFBQWFlLElBQUksQ0FBQ0wsSUFBSUksUUFBUUEsUUFBUUYsUUFDekNuQixVQUFVaUIsSUFBSUksS0FBSztZQUFFUCxLQUFLLElBQU1JLElBQUksQ0FBQ0csSUFBSTtZQUFFTixZQUFZLENBQUVLLENBQUFBLE9BQU9qQixpQkFBaUJlLE1BQU1HLElBQUcsS0FBTUQsS0FBS0wsVUFBVTtRQUFDO0lBQ3RIO0lBQ0EsT0FBT0U7QUFDVDtBQUNBLElBQUlNLGVBQWUsQ0FBQ0MsTUFBUVIsWUFBWWhCLFVBQVUsQ0FBQyxHQUFHLGNBQWM7UUFBRXlCLE9BQU87SUFBSyxJQUFJRDtBQUV0RixlQUFlO0FBQ2YsSUFBSUUsY0FBYyxDQUFDO0FBQ25CaEIsU0FBU2dCLGFBQWE7SUFDcEJDLGdCQUFnQixJQUFNQTtJQUN0QkMsaUJBQWlCLElBQU1BO0lBQ3ZCQyxhQUFhLElBQU1BO0lBQ25CQyxnQkFB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RSxhQUFhckcsZ0JBQWdCTjtRQUNuQzBHLFFBQVFFLE1BQU0sQ0FBQyxjQUFjRDtJQUMvQjtBQUNGO0FBQ0EsU0FBU0osZ0JBQWdCN0UsU0FBUztJQUFFdEMsTUFBTTtJQUFJWSxPQUFPO0FBQUcsQ0FBQztJQUN2RCxJQUFJLE9BQU8wQixPQUFPYixPQUFPLEtBQUssVUFBVTtRQUN0Q2EsT0FBT2IsT0FBTyxHQUFHLElBQUlDLEtBQUtZLE9BQU9iLE9BQU87SUFDMUM7SUFDQSxJQUFJYSxPQUFPVixNQUFNLEVBQUU7UUFDakJVLE9BQU9iLE9BQU8sR0FBRyxJQUFJQyxLQUFLQSxLQUFLK0YsR0FBRyxLQUFLbkYsT0FBT1YsTUFBTSxHQUFHO0lBQ3pEO0lBQ0EsSUFBSVUsT0FBT2QsSUFBSSxLQUFLLFFBQVFjLE9BQU9kLElBQUksS0FBSyxLQUFLLEdBQUc7UUFDbERjLE9BQU9kLElBQUksR0FBRztJQUNoQjtJQUNBLE9BQU9jO0FBQ1Q7QUFDQSw2REFBNkQ7QUFDN0QsS0FBTW5CLENBQUFBLENBTU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXMvaW5kZXguanM/YzA5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7XG4gIGZvciAodmFyIG5hbWUgaW4gYWxsKVxuICAgIF9fZGVmUHJvcCh0YXJnZXQsIG5hbWUsIHsgZ2V0OiBhbGxbbmFtZV0sIGVudW1lcmFibGU6IHRydWUgfSk7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9Db21tb25KUyA9IChtb2QpID0+IF9fY29weVByb3BzKF9fZGVmUHJvcCh7fSwgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7XG5cbi8vIHNyYy9pbmRleC50c1xudmFyIHNyY19leHBvcnRzID0ge307XG5fX2V4cG9ydChzcmNfZXhwb3J0cywge1xuICBSZXF1ZXN0Q29va2llczogKCkgPT4gUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llczogKCkgPT4gUmVzcG9uc2VDb29raWVzLFxuICBwYXJzZUNvb2tpZTogKCkgPT4gcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llOiAoKSA9PiBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llOiAoKSA9PiBzdHJpbmdpZnlDb29raWVcbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBfX3RvQ29tbW9uSlMoc3JjX2V4cG9ydHMpO1xuXG4vLyBzcmMvc2VyaWFsaXplLnRzXG5mdW5jdGlvbiBzdHJpbmdpZnlDb29raWUoYykge1xuICB2YXIgX2E7XG4gIGNvbnN0IGF0dHJzID0gW1xuICAgIFwicGF0aFwiIGluIGMgJiYgYy5wYXRoICYmIGBQYXRoPSR7Yy5wYXRofWAsXG4gICAgXCJleHBpcmVzXCIgaW4gYyAmJiAoYy5leHBpcmVzIHx8IGMuZXhwaXJlcyA9PT0gMCkgJiYgYEV4cGlyZXM9JHsodHlwZW9mIGMuZXhwaXJlcyA9PT0gXCJudW1iZXJcIiA/IG5ldyBEYXRlKGMuZXhwaXJlcykgOiBjLmV4cGlyZXMpLnRvVVRDU3RyaW5nKCl9YCxcbiAgICBcIm1heEFnZVwiIGluIGMgJiYgdHlwZW9mIGMubWF4QWdlID09PSBcIm51bWJlclwiICYmIGBNYXgtQWdlPSR7Yy5tYXhBZ2V9YCxcbiAgICBcImRvbWFpblwiIGluIGMgJiYgYy5kb21haW4gJiYgYERvbWFpbj0ke2MuZG9tYWlufWAsXG4gICAgXCJzZWN1cmVcIiBpbiBjICYmIGMuc2VjdXJlICYmIFwiU2VjdXJlXCIsXG4gICAgXCJodHRwT25seVwiIGluIGMgJiYgYy5odHRwT25seSAmJiBcIkh0dHBPbmx5XCIsXG4gICAgXCJzYW1lU2l0ZVwiIGluIGMgJiYgYy5zYW1lU2l0ZSAmJiBgU2FtZVNpdGU9JHtjLnNhbWVTaXRlfWAsXG4gICAgXCJwcmlvcml0eVwiIGluIGMgJiYgYy5wcmlvcml0eSAmJiBgUHJpb3JpdHk9JHtjLnByaW9yaXR5fWBcbiAgXS5maWx0ZXIoQm9vbGVhbik7XG4gIHJldHVybiBgJHtjLm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KChfYSA9IGMudmFsdWUpICE9IG51bGwgPyBfYSA6IFwiXCIpfTsgJHthdHRycy5qb2luKFwiOyBcIil9YDtcbn1cbmZ1bmN0aW9uIHBhcnNlQ29va2llKGNvb2tpZSkge1xuICBjb25zdCBtYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICBmb3IgKGNvbnN0IHBhaXIgb2YgY29va2llLnNwbGl0KC87ICovKSkge1xuICAgIGlmICghcGFpcilcbiAgICAgIGNvbnRpbnVlO1xuICAgIGNvbnN0IHNwbGl0QXQgPSBwYWlyLmluZGV4T2YoXCI9XCIpO1xuICAgIGlmIChzcGxpdEF0ID09PSAtMSkge1xuICAgICAgbWFwLnNldChwYWlyLCBcInRydWVcIik7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgW2tleSwgdmFsdWVdID0gW3BhaXIuc2xpY2UoMCwgc3BsaXRBdCksIHBhaXIuc2xpY2Uoc3BsaXRBdCArIDEpXTtcbiAgICB0cnkge1xuICAgICAgbWFwLnNldChrZXksIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiBcInRydWVcIikpO1xuICAgIH0gY2F0Y2gge1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWFwO1xufVxuZnVuY3Rpb24gcGFyc2VTZXRDb29raWUoc2V0Q29va2llKSB7XG4gIGlmICghc2V0Q29va2llKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICBjb25zdCBbW25hbWUsIHZhbHVlXSwgLi4uYXR0cmlidXRlc10gPSBwYXJzZUNvb2tpZShzZXRDb29raWUpO1xuICBjb25zdCB7XG4gICAgZG9tYWluLFxuICAgIGV4cGlyZXMsXG4gICAgaHR0cG9ubHksXG4gICAgbWF4YWdlLFxuICAgIHBhdGgsXG4gICAgc2FtZXNpdGUsXG4gICAgc2VjdXJlLFxuICAgIHByaW9yaXR5XG4gIH0gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgYXR0cmlidXRlcy5tYXAoKFtrZXksIHZhbHVlMl0pID0+IFtrZXkudG9Mb3dlckNhc2UoKSwgdmFsdWUyXSlcbiAgKTtcbiAgY29uc3QgY29va2llID0ge1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSksXG4gICAgZG9tYWluLFxuICAgIC4uLmV4cGlyZXMgJiYgeyBleHBpcmVzOiBuZXcgRGF0ZShleHBpcmVzKSB9LFxuICAgIC4uLmh0dHBvbmx5ICYmIHsgaHR0cE9ubHk6IHRydWUgfSxcbiAgICAuLi50eXBlb2YgbWF4YWdlID09PSBcInN0cmluZ1wiICYmIHsgbWF4QWdlOiBOdW1iZXIobWF4YWdlKSB9LFxuICAgIHBhdGgsXG4gICAgLi4uc2FtZXNpdGUgJiYgeyBzYW1lU2l0ZTogcGFyc2VTYW1lU2l0ZShzYW1lc2l0ZSkgfSxcbiAgICAuLi5zZWN1cmUgJiYgeyBzZWN1cmU6IHRydWUgfSxcbiAgICAuLi5wcmlvcml0eSAmJiB7IHByaW9yaXR5OiBwYXJzZVByaW9yaXR5KHByaW9yaXR5KSB9XG4gIH07XG4gIHJldHVybiBjb21wYWN0KGNvb2tpZSk7XG59XG5mdW5jdGlvbiBjb21wYWN0KHQpIHtcbiAgY29uc3QgbmV3VCA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiB0KSB7XG4gICAgaWYgKHRba2V5XSkge1xuICAgICAgbmV3VFtrZXldID0gdFtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3VDtcbn1cbnZhciBTQU1FX1NJVEUgPSBbXCJzdHJpY3RcIiwgXCJsYXhcIiwgXCJub25lXCJdO1xuZnVuY3Rpb24gcGFyc2VTYW1lU2l0ZShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBTQU1FX1NJVEUuaW5jbHVkZXMoc3RyaW5nKSA/IHN0cmluZyA6IHZvaWQgMDtcbn1cbnZhciBQUklPUklUWSA9IFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5mdW5jdGlvbiBwYXJzZVByaW9yaXR5KHN0cmluZykge1xuICBzdHJpbmcgPSBzdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIFBSSU9SSVRZLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG5mdW5jdGlvbiBzcGxpdENvb2tpZXNTdHJpbmcoY29va2llc1N0cmluZykge1xuICBpZiAoIWNvb2tpZXNTdHJpbmcpXG4gICAgcmV0dXJuIFtdO1xuICB2YXIgY29va2llc1N0cmluZ3MgPSBbXTtcbiAgdmFyIHBvcyA9IDA7XG4gIHZhciBzdGFydDtcbiAgdmFyIGNoO1xuICB2YXIgbGFzdENvbW1hO1xuICB2YXIgbmV4dFN0YXJ0O1xuICB2YXIgY29va2llc1NlcGFyYXRvckZvdW5kO1xuICBmdW5jdGlvbiBza2lwV2hpdGVzcGFjZSgpIHtcbiAgICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgL1xccy8udGVzdChjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpKSkge1xuICAgICAgcG9zICs9IDE7XG4gICAgfVxuICAgIHJldHVybiBwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aDtcbiAgfVxuICBmdW5jdGlvbiBub3RTcGVjaWFsQ2hhcigpIHtcbiAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgcmV0dXJuIGNoICE9PSBcIj1cIiAmJiBjaCAhPT0gXCI7XCIgJiYgY2ggIT09IFwiLFwiO1xuICB9XG4gIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgIHN0YXJ0ID0gcG9zO1xuICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IGZhbHNlO1xuICAgIHdoaWxlIChza2lwV2hpdGVzcGFjZSgpKSB7XG4gICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICBpZiAoY2ggPT09IFwiLFwiKSB7XG4gICAgICAgIGxhc3RDb21tYSA9IHBvcztcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIHNraXBXaGl0ZXNwYWNlKCk7XG4gICAgICAgIG5leHRTdGFydCA9IHBvcztcbiAgICAgICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIG5vdFNwZWNpYWxDaGFyKCkpIHtcbiAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgY29va2llc1N0cmluZy5jaGFyQXQocG9zKSA9PT0gXCI9XCIpIHtcbiAgICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSB0cnVlO1xuICAgICAgICAgIHBvcyA9IG5leHRTdGFydDtcbiAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBsYXN0Q29tbWEpKTtcbiAgICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwb3MgPSBsYXN0Q29tbWEgKyAxO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3MgKz0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFjb29raWVzU2VwYXJhdG9yRm91bmQgfHwgcG9zID49IGNvb2tpZXNTdHJpbmcubGVuZ3RoKSB7XG4gICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBjb29raWVzU3RyaW5nLmxlbmd0aCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY29va2llc1N0cmluZ3M7XG59XG5cbi8vIHNyYy9yZXF1ZXN0LWNvb2tpZXMudHNcbnZhciBSZXF1ZXN0Q29va2llcyA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IocmVxdWVzdEhlYWRlcnMpIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5fcGFyc2VkID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLl9oZWFkZXJzID0gcmVxdWVzdEhlYWRlcnM7XG4gICAgY29uc3QgaGVhZGVyID0gcmVxdWVzdEhlYWRlcnMuZ2V0KFwiY29va2llXCIpO1xuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQ29va2llKGhlYWRlcik7XG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgcGFyc2VkKSB7XG4gICAgICAgIHRoaXMuX3BhcnNlZC5zZXQobmFtZSwgeyBuYW1lLCB2YWx1ZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZFtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgY29va2llcyByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnRcbiAgICovXG4gIGdldCBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuc2l6ZTtcbiAgfVxuICBnZXQoLi4uYXJncykge1xuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5nZXQobmFtZSk7XG4gIH1cbiAgZ2V0QWxsKC4uLmFyZ3MpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgYWxsID0gQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQpO1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBhbGwubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoW25dKSA9PiBuID09PSBuYW1lKS5tYXAoKFtfLCB2YWx1ZV0pID0+IHZhbHVlKTtcbiAgfVxuICBoYXMobmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuaGFzKG5hbWUpO1xuICB9XG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlXSA9IGFyZ3MubGVuZ3RoID09PSAxID8gW2FyZ3NbMF0ubmFtZSwgYXJnc1swXS52YWx1ZV0gOiBhcmdzO1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBtYXAuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlMl0pID0+IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZTIpKS5qb2luKFwiOyBcIilcbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIGNvb2tpZXMgbWF0Y2hpbmcgdGhlIHBhc3NlZCBuYW1lIG9yIG5hbWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgZGVsZXRlKG5hbWVzKSB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIGNvbnN0IHJlc3VsdCA9ICFBcnJheS5pc0FycmF5KG5hbWVzKSA/IG1hcC5kZWxldGUobmFtZXMpIDogbmFtZXMubWFwKChuYW1lKSA9PiBtYXAuZGVsZXRlKG5hbWUpKTtcbiAgICB0aGlzLl9oZWFkZXJzLnNldChcbiAgICAgIFwiY29va2llXCIsXG4gICAgICBBcnJheS5mcm9tKG1hcCkubWFwKChbXywgdmFsdWVdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUpKS5qb2luKFwiOyBcIilcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgdGhlIGNvb2tpZXMgaW4gdGhlIGNvb2tpZXMgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICBjbGVhcigpIHtcbiAgICB0aGlzLmRlbGV0ZShBcnJheS5mcm9tKHRoaXMuX3BhcnNlZC5rZXlzKCkpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRm9ybWF0IHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0IGFzIGEgc3RyaW5nIGZvciBsb2dnaW5nXG4gICAqL1xuICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgcmV0dXJuIGBSZXF1ZXN0Q29va2llcyAke0pTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyh0aGlzLl9wYXJzZWQpKX1gO1xuICB9XG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fcGFyc2VkLnZhbHVlcygpXS5tYXAoKHYpID0+IGAke3YubmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQodi52YWx1ZSl9YCkuam9pbihcIjsgXCIpO1xuICB9XG59O1xuXG4vLyBzcmMvcmVzcG9uc2UtY29va2llcy50c1xudmFyIFJlc3BvbnNlQ29va2llcyA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IocmVzcG9uc2VIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlc3BvbnNlSGVhZGVycztcbiAgICBjb25zdCBzZXRDb29raWUgPSAoX2MgPSAoX2IgPSAoX2EgPSByZXNwb25zZUhlYWRlcnMuZ2V0U2V0Q29va2llKSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2FsbChyZXNwb25zZUhlYWRlcnMpKSAhPSBudWxsID8gX2IgOiByZXNwb25zZUhlYWRlcnMuZ2V0KFwic2V0LWNvb2tpZVwiKSkgIT0gbnVsbCA/IF9jIDogW107XG4gICAgY29uc3QgY29va2llU3RyaW5ncyA9IEFycmF5LmlzQXJyYXkoc2V0Q29va2llKSA/IHNldENvb2tpZSA6IHNwbGl0Q29va2llc1N0cmluZyhzZXRDb29raWUpO1xuICAgIGZvciAoY29uc3QgY29va2llU3RyaW5nIG9mIGNvb2tpZVN0cmluZ3MpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlU2V0Q29va2llKGNvb2tpZVN0cmluZyk7XG4gICAgICBpZiAocGFyc2VkKVxuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KHBhcnNlZC5uYW1lLCBwYXJzZWQpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1nZXQgQ29va2llU3RvcmUjZ2V0fSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5nZXQoa2V5KTtcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1nZXRBbGwgQ29va2llU3RvcmUjZ2V0QWxsfSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgZ2V0QWxsKC4uLmFyZ3MpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgYWxsID0gQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQudmFsdWVzKCkpO1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBhbGw7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IChfYSA9IGFyZ3NbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfYS5uYW1lO1xuICAgIHJldHVybiBhbGwuZmlsdGVyKChjKSA9PiBjLm5hbWUgPT09IGtleSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1zZXQgQ29va2llU3RvcmUjc2V0fSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgc2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbbmFtZSwgdmFsdWUsIGNvb2tpZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWUsIGFyZ3NbMF1dIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCBub3JtYWxpemVDb29raWUoeyBuYW1lLCB2YWx1ZSwgLi4uY29va2llIH0pKTtcbiAgICByZXBsYWNlKG1hcCwgdGhpcy5faGVhZGVycyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZGVsZXRlIENvb2tpZVN0b3JlI2RlbGV0ZX0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGRlbGV0ZSguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHBhdGgsIGRvbWFpbl0gPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IFthcmdzWzBdXSA6IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0ucGF0aCwgYXJnc1swXS5kb21haW5dO1xuICAgIHJldHVybiB0aGlzLnNldCh7IG5hbWUsIHBhdGgsIGRvbWFpbiwgdmFsdWU6IFwiXCIsIGV4cGlyZXM6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgwKSB9KTtcbiAgfVxuICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgcmV0dXJuIGBSZXNwb25zZUNvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKHN0cmluZ2lmeUNvb2tpZSkuam9pbihcIjsgXCIpO1xuICB9XG59O1xuZnVuY3Rpb24gcmVwbGFjZShiYWcsIGhlYWRlcnMpIHtcbiAgaGVhZGVycy5kZWxldGUoXCJzZXQtY29va2llXCIpO1xuICBmb3IgKGNvbnN0IFssIHZhbHVlXSBvZiBiYWcpIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc3RyaW5naWZ5Q29va2llKHZhbHVlKTtcbiAgICBoZWFkZXJzLmFwcGVuZChcInNldC1jb29raWVcIiwgc2VyaWFsaXplZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNvb2tpZShjb29raWUgPSB7IG5hbWU6IFwiXCIsIHZhbHVlOiBcIlwiIH0pIHtcbiAgaWYgKHR5cGVvZiBjb29raWUuZXhwaXJlcyA9PT0gXCJudW1iZXJcIikge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoY29va2llLmV4cGlyZXMpO1xuICB9XG4gIGlmIChjb29raWUubWF4QWdlKSB7XG4gICAgY29va2llLmV4cGlyZXMgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgY29va2llLm1heEFnZSAqIDFlMyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5wYXRoID09PSBudWxsIHx8IGNvb2tpZS5wYXRoID09PSB2b2lkIDApIHtcbiAgICBjb29raWUucGF0aCA9IFwiL1wiO1xuICB9XG4gIHJldHVybiBjb29raWU7XG59XG4vLyBBbm5vdGF0ZSB0aGUgQ29tbW9uSlMgZXhwb3J0IG5hbWVzIGZvciBFU00gaW1wb3J0IGluIG5vZGU6XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llLFxuICBzdHJpbmdpZnlDb29raWVcbn0pO1xuIl0sIm5hbWVzIjpbIl9fZGVmUHJvcCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiX19nZXRPd25Qcm9wRGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9fZ2V0T3duUHJvcE5hbWVzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsIl9faGFzT3duUHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiX19leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZ2V0IiwiZW51bWVyYWJsZSIsIl9fY29weVByb3BzIiwidG8iLCJmcm9tIiwiZXhjZXB0IiwiZGVzYyIsImtleSIsImNhbGwiLCJfX3RvQ29tbW9uSlMiLCJtb2QiLCJ2YWx1ZSIsInNyY19leHBvcnRzIiwiUmVxdWVzdENvb2tpZXMiLCJSZXNwb25zZUNvb2tpZXMiLCJwYXJzZUNvb2tpZSIsInBhcnNlU2V0Q29va2llIiwic3RyaW5naWZ5Q29va2llIiwibW9kdWxlIiwiZXhwb3J0cyIsImMiLCJfYSIsImF0dHJzIiwicGF0aCIsImV4cGlyZXMiLCJEYXRlIiwidG9VVENTdHJpbmciLCJtYXhBZ2UiLCJkb21haW4iLCJzZWN1cmUiLCJodHRwT25seSIsInNhbWVTaXRlIiwicHJpb3JpdHkiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwiam9pbiIsImNvb2tpZSIsIm1hcCIsIk1hcCIsInBhaXIiLCJzcGxpdCIsInNwbGl0QXQiLCJpbmRleE9mIiwic2V0Iiwic2xpY2UiLCJkZWNvZGVVUklDb21wb25lbnQiLCJzZXRDb29raWUiLCJhdHRyaWJ1dGVzIiwiaHR0cG9ubHkiLCJtYXhhZ2UiLCJzYW1lc2l0ZSIsImZyb21FbnRyaWVzIiwidmFsdWUyIiwidG9Mb3dlckNhc2UiLCJOdW1iZXIiLCJwYXJzZVNhbWVTaXRlIiwicGFyc2VQcmlvcml0eSIsImNvbXBhY3QiLCJ0IiwibmV3VCIsIlNBTUVfU0lURSIsInN0cmluZyIsImluY2x1ZGVzIiwiUFJJT1JJVFkiLCJzcGxpdENvb2tpZXNTdHJpbmciLCJjb29raWVzU3RyaW5nIiwiY29va2llc1N0cmluZ3MiLCJwb3MiLCJzdGFydCIsImNoIiwibGFzdENvbW1hIiwibmV4dFN0YXJ0IiwiY29va2llc1NlcGFyYXRvckZvdW5kIiwic2tpcFdoaXRlc3BhY2UiLCJsZW5ndGgiLCJ0ZXN0IiwiY2hhckF0Iiwibm90U3BlY2lhbENoYXIiLCJwdXNoIiwic3Vic3RyaW5nIiwiY29uc3RydWN0b3IiLCJyZXF1ZXN0SGVhZGVycyIsIl9wYXJzZWQiLCJfaGVhZGVycyIsImhlYWRlciIsInBhcnNlZCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwic2l6ZSIsImFyZ3MiLCJnZXRBbGwiLCJBcnJheSIsIl8iLCJuIiwiaGFzIiwiZGVsZXRlIiwibmFtZXMiLCJyZXN1bHQiLCJpc0FycmF5IiwiY2xlYXIiLCJrZXlzIiwiZm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvU3RyaW5nIiwidmFsdWVzIiwidiIsInJlc3BvbnNlSGVhZGVycyIsIl9iIiwiX2MiLCJnZXRTZXRDb29raWUiLCJjb29raWVTdHJpbmdzIiwiY29va2llU3RyaW5nIiwibm9ybWFsaXplQ29va2llIiwicmVwbGFjZSIsImJhZyIsImhlYWRlcnMiLCJzZXJpYWxpemVkIiwiYXBwZW5kIiwibm93Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js": +/*!*********************************************************************!*\ + !*** ./node_modules/next/dist/compiled/@opentelemetry/api/index.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var e = {\n 491: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ContextAPI = void 0;\n const n = r(223);\n const a = r(172);\n const o = r(930);\n const i = \"context\";\n const c = new n.NoopContextManager;\n class ContextAPI {\n constructor(){}\n static getInstance() {\n if (!this._instance) {\n this._instance = new ContextAPI;\n }\n return this._instance;\n }\n setGlobalContextManager(e) {\n return (0, a.registerGlobal)(i, e, o.DiagAPI.instance());\n }\n active() {\n return this._getContextManager().active();\n }\n with(e, t, r, ...n) {\n return this._getContextManager().with(e, t, r, ...n);\n }\n bind(e, t) {\n return this._getContextManager().bind(e, t);\n }\n _getContextManager() {\n return (0, a.getGlobal)(i) || c;\n }\n disable() {\n this._getContextManager().disable();\n (0, a.unregisterGlobal)(i, o.DiagAPI.instance());\n }\n }\n t.ContextAPI = ContextAPI;\n },\n 930: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagAPI = void 0;\n const n = r(56);\n const a = r(912);\n const o = r(957);\n const i = r(172);\n const c = \"diag\";\n class DiagAPI {\n constructor(){\n function _logProxy(e) {\n return function(...t) {\n const r = (0, i.getGlobal)(\"diag\");\n if (!r) return;\n return r[e](...t);\n };\n }\n const e = this;\n const setLogger = (t, r = {\n logLevel: o.DiagLogLevel.INFO\n })=>{\n var n, c, s;\n if (t === e) {\n const t = new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");\n e.error((n = t.stack) !== null && n !== void 0 ? n : t.message);\n return false;\n }\n if (typeof r === \"number\") {\n r = {\n logLevel: r\n };\n }\n const u = (0, i.getGlobal)(\"diag\");\n const l = (0, a.createLogLevelDiagLogger)((c = r.logLevel) !== null && c !== void 0 ? c : o.DiagLogLevel.INFO, t);\n if (u && !r.suppressOverrideMessage) {\n const e = (s = (new Error).stack) !== null && s !== void 0 ? s : \"\";\n u.warn(`Current logger will be overwritten from ${e}`);\n l.warn(`Current logger will overwrite one already registered from ${e}`);\n }\n return (0, i.registerGlobal)(\"diag\", l, e, true);\n };\n e.setLogger = setLogger;\n e.disable = ()=>{\n (0, i.unregisterGlobal)(c, e);\n };\n e.createComponentLogger = (e)=>new n.DiagComponentLogger(e);\n e.verbose = _logProxy(\"verbose\");\n e.debug = _logProxy(\"debug\");\n e.info = _logProxy(\"info\");\n e.warn = _logProxy(\"warn\");\n e.error = _logProxy(\"error\");\n }\n static instance() {\n if (!this._instance) {\n this._instance = new DiagAPI;\n }\n return this._instance;\n }\n }\n t.DiagAPI = DiagAPI;\n },\n 653: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.MetricsAPI = void 0;\n const n = r(660);\n const a = r(172);\n const o = r(930);\n const i = \"metrics\";\n class MetricsAPI {\n constructor(){}\n static getInstance() {\n if (!this._instance) {\n this._instance = new MetricsAPI;\n }\n return this._instance;\n }\n setGlobalMeterProvider(e) {\n return (0, a.registerGlobal)(i, e, o.DiagAPI.instance());\n }\n getMeterProvider() {\n return (0, a.getGlobal)(i) || n.NOOP_METER_PROVIDER;\n }\n getMeter(e, t, r) {\n return this.getMeterProvider().getMeter(e, t, r);\n }\n disable() {\n (0, a.unregisterGlobal)(i, o.DiagAPI.instance());\n }\n }\n t.MetricsAPI = MetricsAPI;\n },\n 181: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.PropagationAPI = void 0;\n const n = r(172);\n const a = r(874);\n const o = r(194);\n const i = r(277);\n const c = r(369);\n const s = r(930);\n const u = \"propagation\";\n const l = new a.NoopTextMapPropagator;\n class PropagationAPI {\n constructor(){\n this.createBaggage = c.createBaggage;\n this.getBaggage = i.getBaggage;\n this.getActiveBaggage = i.getActiveBaggage;\n this.setBaggage = i.setBaggage;\n this.deleteBaggage = i.deleteBaggage;\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new PropagationAPI;\n }\n return this._instance;\n }\n setGlobalPropagator(e) {\n return (0, n.registerGlobal)(u, e, s.DiagAPI.instance());\n }\n inject(e, t, r = o.defaultTextMapSetter) {\n return this._getGlobalPropagator().inject(e, t, r);\n }\n extract(e, t, r = o.defaultTextMapGetter) {\n return this._getGlobalPropagator().extract(e, t, r);\n }\n fields() {\n return this._getGlobalPropagator().fields();\n }\n disable() {\n (0, n.unregisterGlobal)(u, s.DiagAPI.instance());\n }\n _getGlobalPropagator() {\n return (0, n.getGlobal)(u) || l;\n }\n }\n t.PropagationAPI = PropagationAPI;\n },\n 997: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceAPI = void 0;\n const n = r(172);\n const a = r(846);\n const o = r(139);\n const i = r(607);\n const c = r(930);\n const s = \"trace\";\n class TraceAPI {\n constructor(){\n this._proxyTracerProvider = new a.ProxyTracerProvider;\n this.wrapSpanContext = o.wrapSpanContext;\n this.isSpanContextValid = o.isSpanContextValid;\n this.deleteSpan = i.deleteSpan;\n this.getSpan = i.getSpan;\n this.getActiveSpan = i.getActiveSpan;\n this.getSpanContext = i.getSpanContext;\n this.setSpan = i.setSpan;\n this.setSpanContext = i.setSpanContext;\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new TraceAPI;\n }\n return this._instance;\n }\n setGlobalTracerProvider(e) {\n const t = (0, n.registerGlobal)(s, this._proxyTracerProvider, c.DiagAPI.instance());\n if (t) {\n this._proxyTracerProvider.setDelegate(e);\n }\n return t;\n }\n getTracerProvider() {\n return (0, n.getGlobal)(s) || this._proxyTracerProvider;\n }\n getTracer(e, t) {\n return this.getTracerProvider().getTracer(e, t);\n }\n disable() {\n (0, n.unregisterGlobal)(s, c.DiagAPI.instance());\n this._proxyTracerProvider = new a.ProxyTracerProvider;\n }\n }\n t.TraceAPI = TraceAPI;\n },\n 277: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.deleteBaggage = t.setBaggage = t.getActiveBaggage = t.getBaggage = void 0;\n const n = r(491);\n const a = r(780);\n const o = (0, a.createContextKey)(\"OpenTelemetry Baggage Key\");\n function getBaggage(e) {\n return e.getValue(o) || undefined;\n }\n t.getBaggage = getBaggage;\n function getActiveBaggage() {\n return getBaggage(n.ContextAPI.getInstance().active());\n }\n t.getActiveBaggage = getActiveBaggage;\n function setBaggage(e, t) {\n return e.setValue(o, t);\n }\n t.setBaggage = setBaggage;\n function deleteBaggage(e) {\n return e.deleteValue(o);\n }\n t.deleteBaggage = deleteBaggage;\n },\n 993: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.BaggageImpl = void 0;\n class BaggageImpl {\n constructor(e){\n this._entries = e ? new Map(e) : new Map;\n }\n getEntry(e) {\n const t = this._entries.get(e);\n if (!t) {\n return undefined;\n }\n return Object.assign({}, t);\n }\n getAllEntries() {\n return Array.from(this._entries.entries()).map(([e, t])=>[\n e,\n t\n ]);\n }\n setEntry(e, t) {\n const r = new BaggageImpl(this._entries);\n r._entries.set(e, t);\n return r;\n }\n removeEntry(e) {\n const t = new BaggageImpl(this._entries);\n t._entries.delete(e);\n return t;\n }\n removeEntries(...e) {\n const t = new BaggageImpl(this._entries);\n for (const r of e){\n t._entries.delete(r);\n }\n return t;\n }\n clear() {\n return new BaggageImpl;\n }\n }\n t.BaggageImpl = BaggageImpl;\n },\n 830: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.baggageEntryMetadataSymbol = void 0;\n t.baggageEntryMetadataSymbol = Symbol(\"BaggageEntryMetadata\");\n },\n 369: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.baggageEntryMetadataFromString = t.createBaggage = void 0;\n const n = r(930);\n const a = r(993);\n const o = r(830);\n const i = n.DiagAPI.instance();\n function createBaggage(e = {}) {\n return new a.BaggageImpl(new Map(Object.entries(e)));\n }\n t.createBaggage = createBaggage;\n function baggageEntryMetadataFromString(e) {\n if (typeof e !== \"string\") {\n i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);\n e = \"\";\n }\n return {\n __TYPE__: o.baggageEntryMetadataSymbol,\n toString () {\n return e;\n }\n };\n }\n t.baggageEntryMetadataFromString = baggageEntryMetadataFromString;\n },\n 67: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.context = void 0;\n const n = r(491);\n t.context = n.ContextAPI.getInstance();\n },\n 223: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopContextManager = void 0;\n const n = r(780);\n class NoopContextManager {\n active() {\n return n.ROOT_CONTEXT;\n }\n with(e, t, r, ...n) {\n return t.call(r, ...n);\n }\n bind(e, t) {\n return t;\n }\n enable() {\n return this;\n }\n disable() {\n return this;\n }\n }\n t.NoopContextManager = NoopContextManager;\n },\n 780: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ROOT_CONTEXT = t.createContextKey = void 0;\n function createContextKey(e) {\n return Symbol.for(e);\n }\n t.createContextKey = createContextKey;\n class BaseContext {\n constructor(e){\n const t = this;\n t._currentContext = e ? new Map(e) : new Map;\n t.getValue = (e)=>t._currentContext.get(e);\n t.setValue = (e, r)=>{\n const n = new BaseContext(t._currentContext);\n n._currentContext.set(e, r);\n return n;\n };\n t.deleteValue = (e)=>{\n const r = new BaseContext(t._currentContext);\n r._currentContext.delete(e);\n return r;\n };\n }\n }\n t.ROOT_CONTEXT = new BaseContext;\n },\n 506: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.diag = void 0;\n const n = r(930);\n t.diag = n.DiagAPI.instance();\n },\n 56: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagComponentLogger = void 0;\n const n = r(172);\n class DiagComponentLogger {\n constructor(e){\n this._namespace = e.namespace || \"DiagComponentLogger\";\n }\n debug(...e) {\n return logProxy(\"debug\", this._namespace, e);\n }\n error(...e) {\n return logProxy(\"error\", this._namespace, e);\n }\n info(...e) {\n return logProxy(\"info\", this._namespace, e);\n }\n warn(...e) {\n return logProxy(\"warn\", this._namespace, e);\n }\n verbose(...e) {\n return logProxy(\"verbose\", this._namespace, e);\n }\n }\n t.DiagComponentLogger = DiagComponentLogger;\n function logProxy(e, t, r) {\n const a = (0, n.getGlobal)(\"diag\");\n if (!a) {\n return;\n }\n r.unshift(t);\n return a[e](...r);\n }\n },\n 972: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagConsoleLogger = void 0;\n const r = [\n {\n n: \"error\",\n c: \"error\"\n },\n {\n n: \"warn\",\n c: \"warn\"\n },\n {\n n: \"info\",\n c: \"info\"\n },\n {\n n: \"debug\",\n c: \"debug\"\n },\n {\n n: \"verbose\",\n c: \"trace\"\n }\n ];\n class DiagConsoleLogger {\n constructor(){\n function _consoleFunc(e) {\n return function(...t) {\n if (console) {\n let r = console[e];\n if (typeof r !== \"function\") {\n r = console.log;\n }\n if (typeof r === \"function\") {\n return r.apply(console, t);\n }\n }\n };\n }\n for(let e = 0; e < r.length; e++){\n this[r[e].n] = _consoleFunc(r[e].c);\n }\n }\n }\n t.DiagConsoleLogger = DiagConsoleLogger;\n },\n 912: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.createLogLevelDiagLogger = void 0;\n const n = r(957);\n function createLogLevelDiagLogger(e, t) {\n if (e < n.DiagLogLevel.NONE) {\n e = n.DiagLogLevel.NONE;\n } else if (e > n.DiagLogLevel.ALL) {\n e = n.DiagLogLevel.ALL;\n }\n t = t || {};\n function _filterFunc(r, n) {\n const a = t[r];\n if (typeof a === \"function\" && e >= n) {\n return a.bind(t);\n }\n return function() {};\n }\n return {\n error: _filterFunc(\"error\", n.DiagLogLevel.ERROR),\n warn: _filterFunc(\"warn\", n.DiagLogLevel.WARN),\n info: _filterFunc(\"info\", n.DiagLogLevel.INFO),\n debug: _filterFunc(\"debug\", n.DiagLogLevel.DEBUG),\n verbose: _filterFunc(\"verbose\", n.DiagLogLevel.VERBOSE)\n };\n }\n t.createLogLevelDiagLogger = createLogLevelDiagLogger;\n },\n 957: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagLogLevel = void 0;\n var r;\n (function(e) {\n e[e[\"NONE\"] = 0] = \"NONE\";\n e[e[\"ERROR\"] = 30] = \"ERROR\";\n e[e[\"WARN\"] = 50] = \"WARN\";\n e[e[\"INFO\"] = 60] = \"INFO\";\n e[e[\"DEBUG\"] = 70] = \"DEBUG\";\n e[e[\"VERBOSE\"] = 80] = \"VERBOSE\";\n e[e[\"ALL\"] = 9999] = \"ALL\";\n })(r = t.DiagLogLevel || (t.DiagLogLevel = {}));\n },\n 172: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.unregisterGlobal = t.getGlobal = t.registerGlobal = void 0;\n const n = r(200);\n const a = r(521);\n const o = r(130);\n const i = a.VERSION.split(\".\")[0];\n const c = Symbol.for(`opentelemetry.js.api.${i}`);\n const s = n._globalThis;\n function registerGlobal(e, t, r, n = false) {\n var o;\n const i = s[c] = (o = s[c]) !== null && o !== void 0 ? o : {\n version: a.VERSION\n };\n if (!n && i[e]) {\n const t = new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);\n r.error(t.stack || t.message);\n return false;\n }\n if (i.version !== a.VERSION) {\n const t = new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);\n r.error(t.stack || t.message);\n return false;\n }\n i[e] = t;\n r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);\n return true;\n }\n t.registerGlobal = registerGlobal;\n function getGlobal(e) {\n var t, r;\n const n = (t = s[c]) === null || t === void 0 ? void 0 : t.version;\n if (!n || !(0, o.isCompatible)(n)) {\n return;\n }\n return (r = s[c]) === null || r === void 0 ? void 0 : r[e];\n }\n t.getGlobal = getGlobal;\n function unregisterGlobal(e, t) {\n t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);\n const r = s[c];\n if (r) {\n delete r[e];\n }\n }\n t.unregisterGlobal = unregisterGlobal;\n },\n 130: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.isCompatible = t._makeCompatibilityCheck = void 0;\n const n = r(521);\n const a = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n function _makeCompatibilityCheck(e) {\n const t = new Set([\n e\n ]);\n const r = new Set;\n const n = e.match(a);\n if (!n) {\n return ()=>false;\n }\n const o = {\n major: +n[1],\n minor: +n[2],\n patch: +n[3],\n prerelease: n[4]\n };\n if (o.prerelease != null) {\n return function isExactmatch(t) {\n return t === e;\n };\n }\n function _reject(e) {\n r.add(e);\n return false;\n }\n function _accept(e) {\n t.add(e);\n return true;\n }\n return function isCompatible(e) {\n if (t.has(e)) {\n return true;\n }\n if (r.has(e)) {\n return false;\n }\n const n = e.match(a);\n if (!n) {\n return _reject(e);\n }\n const i = {\n major: +n[1],\n minor: +n[2],\n patch: +n[3],\n prerelease: n[4]\n };\n if (i.prerelease != null) {\n return _reject(e);\n }\n if (o.major !== i.major) {\n return _reject(e);\n }\n if (o.major === 0) {\n if (o.minor === i.minor && o.patch <= i.patch) {\n return _accept(e);\n }\n return _reject(e);\n }\n if (o.minor <= i.minor) {\n return _accept(e);\n }\n return _reject(e);\n };\n }\n t._makeCompatibilityCheck = _makeCompatibilityCheck;\n t.isCompatible = _makeCompatibilityCheck(n.VERSION);\n },\n 886: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.metrics = void 0;\n const n = r(653);\n t.metrics = n.MetricsAPI.getInstance();\n },\n 901: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ValueType = void 0;\n var r;\n (function(e) {\n e[e[\"INT\"] = 0] = \"INT\";\n e[e[\"DOUBLE\"] = 1] = \"DOUBLE\";\n })(r = t.ValueType || (t.ValueType = {}));\n },\n 102: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n 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;\n class NoopMeter {\n constructor(){}\n createHistogram(e, r) {\n return t.NOOP_HISTOGRAM_METRIC;\n }\n createCounter(e, r) {\n return t.NOOP_COUNTER_METRIC;\n }\n createUpDownCounter(e, r) {\n return t.NOOP_UP_DOWN_COUNTER_METRIC;\n }\n createObservableGauge(e, r) {\n return t.NOOP_OBSERVABLE_GAUGE_METRIC;\n }\n createObservableCounter(e, r) {\n return t.NOOP_OBSERVABLE_COUNTER_METRIC;\n }\n createObservableUpDownCounter(e, r) {\n return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n }\n addBatchObservableCallback(e, t) {}\n removeBatchObservableCallback(e) {}\n }\n t.NoopMeter = NoopMeter;\n class NoopMetric {\n }\n t.NoopMetric = NoopMetric;\n class NoopCounterMetric extends NoopMetric {\n add(e, t) {}\n }\n t.NoopCounterMetric = NoopCounterMetric;\n class NoopUpDownCounterMetric extends NoopMetric {\n add(e, t) {}\n }\n t.NoopUpDownCounterMetric = NoopUpDownCounterMetric;\n class NoopHistogramMetric extends NoopMetric {\n record(e, t) {}\n }\n t.NoopHistogramMetric = NoopHistogramMetric;\n class NoopObservableMetric {\n addCallback(e) {}\n removeCallback(e) {}\n }\n t.NoopObservableMetric = NoopObservableMetric;\n class NoopObservableCounterMetric extends NoopObservableMetric {\n }\n t.NoopObservableCounterMetric = NoopObservableCounterMetric;\n class NoopObservableGaugeMetric extends NoopObservableMetric {\n }\n t.NoopObservableGaugeMetric = NoopObservableGaugeMetric;\n class NoopObservableUpDownCounterMetric extends NoopObservableMetric {\n }\n t.NoopObservableUpDownCounterMetric = NoopObservableUpDownCounterMetric;\n t.NOOP_METER = new NoopMeter;\n t.NOOP_COUNTER_METRIC = new NoopCounterMetric;\n t.NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric;\n t.NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric;\n t.NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric;\n t.NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric;\n t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric;\n function createNoopMeter() {\n return t.NOOP_METER;\n }\n t.createNoopMeter = createNoopMeter;\n },\n 660: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NOOP_METER_PROVIDER = t.NoopMeterProvider = void 0;\n const n = r(102);\n class NoopMeterProvider {\n getMeter(e, t, r) {\n return n.NOOP_METER;\n }\n }\n t.NoopMeterProvider = NoopMeterProvider;\n t.NOOP_METER_PROVIDER = new NoopMeterProvider;\n },\n 200: function(e, t, r) {\n var n = this && this.__createBinding || (Object.create ? function(e, t, r, n) {\n if (n === undefined) n = r;\n Object.defineProperty(e, n, {\n enumerable: true,\n get: function() {\n return t[r];\n }\n });\n } : function(e, t, r, n) {\n if (n === undefined) n = r;\n e[n] = t[r];\n });\n var a = this && this.__exportStar || function(e, t) {\n for(var r in e)if (r !== \"default\" && !Object.prototype.hasOwnProperty.call(t, r)) n(t, e, r);\n };\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n a(r(46), t);\n },\n 651: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t._globalThis = void 0;\n t._globalThis = typeof globalThis === \"object\" ? globalThis : __webpack_require__.g;\n },\n 46: function(e, t, r) {\n var n = this && this.__createBinding || (Object.create ? function(e, t, r, n) {\n if (n === undefined) n = r;\n Object.defineProperty(e, n, {\n enumerable: true,\n get: function() {\n return t[r];\n }\n });\n } : function(e, t, r, n) {\n if (n === undefined) n = r;\n e[n] = t[r];\n });\n var a = this && this.__exportStar || function(e, t) {\n for(var r in e)if (r !== \"default\" && !Object.prototype.hasOwnProperty.call(t, r)) n(t, e, r);\n };\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n a(r(651), t);\n },\n 939: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.propagation = void 0;\n const n = r(181);\n t.propagation = n.PropagationAPI.getInstance();\n },\n 874: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTextMapPropagator = void 0;\n class NoopTextMapPropagator {\n inject(e, t) {}\n extract(e, t) {\n return e;\n }\n fields() {\n return [];\n }\n }\n t.NoopTextMapPropagator = NoopTextMapPropagator;\n },\n 194: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.defaultTextMapSetter = t.defaultTextMapGetter = void 0;\n t.defaultTextMapGetter = {\n get (e, t) {\n if (e == null) {\n return undefined;\n }\n return e[t];\n },\n keys (e) {\n if (e == null) {\n return [];\n }\n return Object.keys(e);\n }\n };\n t.defaultTextMapSetter = {\n set (e, t, r) {\n if (e == null) {\n return;\n }\n e[t] = r;\n }\n };\n },\n 845: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.trace = void 0;\n const n = r(997);\n t.trace = n.TraceAPI.getInstance();\n },\n 403: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NonRecordingSpan = void 0;\n const n = r(476);\n class NonRecordingSpan {\n constructor(e = n.INVALID_SPAN_CONTEXT){\n this._spanContext = e;\n }\n spanContext() {\n return this._spanContext;\n }\n setAttribute(e, t) {\n return this;\n }\n setAttributes(e) {\n return this;\n }\n addEvent(e, t) {\n return this;\n }\n setStatus(e) {\n return this;\n }\n updateName(e) {\n return this;\n }\n end(e) {}\n isRecording() {\n return false;\n }\n recordException(e, t) {}\n }\n t.NonRecordingSpan = NonRecordingSpan;\n },\n 614: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTracer = void 0;\n const n = r(491);\n const a = r(607);\n const o = r(403);\n const i = r(139);\n const c = n.ContextAPI.getInstance();\n class NoopTracer {\n startSpan(e, t, r = c.active()) {\n const n = Boolean(t === null || t === void 0 ? void 0 : t.root);\n if (n) {\n return new o.NonRecordingSpan;\n }\n const s = r && (0, a.getSpanContext)(r);\n if (isSpanContext(s) && (0, i.isSpanContextValid)(s)) {\n return new o.NonRecordingSpan(s);\n } else {\n return new o.NonRecordingSpan;\n }\n }\n startActiveSpan(e, t, r, n) {\n let o;\n let i;\n let s;\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n s = t;\n } else if (arguments.length === 3) {\n o = t;\n s = r;\n } else {\n o = t;\n i = r;\n s = n;\n }\n const u = i !== null && i !== void 0 ? i : c.active();\n const l = this.startSpan(e, o, u);\n const g = (0, a.setSpan)(u, l);\n return c.with(g, s, undefined, l);\n }\n }\n t.NoopTracer = NoopTracer;\n function isSpanContext(e) {\n return typeof e === \"object\" && typeof e[\"spanId\"] === \"string\" && typeof e[\"traceId\"] === \"string\" && typeof e[\"traceFlags\"] === \"number\";\n }\n },\n 124: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTracerProvider = void 0;\n const n = r(614);\n class NoopTracerProvider {\n getTracer(e, t, r) {\n return new n.NoopTracer;\n }\n }\n t.NoopTracerProvider = NoopTracerProvider;\n },\n 125: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ProxyTracer = void 0;\n const n = r(614);\n const a = new n.NoopTracer;\n class ProxyTracer {\n constructor(e, t, r, n){\n this._provider = e;\n this.name = t;\n this.version = r;\n this.options = n;\n }\n startSpan(e, t, r) {\n return this._getTracer().startSpan(e, t, r);\n }\n startActiveSpan(e, t, r, n) {\n const a = this._getTracer();\n return Reflect.apply(a.startActiveSpan, a, arguments);\n }\n _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n const e = this._provider.getDelegateTracer(this.name, this.version, this.options);\n if (!e) {\n return a;\n }\n this._delegate = e;\n return this._delegate;\n }\n }\n t.ProxyTracer = ProxyTracer;\n },\n 846: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ProxyTracerProvider = void 0;\n const n = r(125);\n const a = r(124);\n const o = new a.NoopTracerProvider;\n class ProxyTracerProvider {\n getTracer(e, t, r) {\n var a;\n return (a = this.getDelegateTracer(e, t, r)) !== null && a !== void 0 ? a : new n.ProxyTracer(this, e, t, r);\n }\n getDelegate() {\n var e;\n return (e = this._delegate) !== null && e !== void 0 ? e : o;\n }\n setDelegate(e) {\n this._delegate = e;\n }\n getDelegateTracer(e, t, r) {\n var n;\n return (n = this._delegate) === null || n === void 0 ? void 0 : n.getTracer(e, t, r);\n }\n }\n t.ProxyTracerProvider = ProxyTracerProvider;\n },\n 996: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SamplingDecision = void 0;\n var r;\n (function(e) {\n e[e[\"NOT_RECORD\"] = 0] = \"NOT_RECORD\";\n e[e[\"RECORD\"] = 1] = \"RECORD\";\n e[e[\"RECORD_AND_SAMPLED\"] = 2] = \"RECORD_AND_SAMPLED\";\n })(r = t.SamplingDecision || (t.SamplingDecision = {}));\n },\n 607: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.getSpanContext = t.setSpanContext = t.deleteSpan = t.setSpan = t.getActiveSpan = t.getSpan = void 0;\n const n = r(780);\n const a = r(403);\n const o = r(491);\n const i = (0, n.createContextKey)(\"OpenTelemetry Context Key SPAN\");\n function getSpan(e) {\n return e.getValue(i) || undefined;\n }\n t.getSpan = getSpan;\n function getActiveSpan() {\n return getSpan(o.ContextAPI.getInstance().active());\n }\n t.getActiveSpan = getActiveSpan;\n function setSpan(e, t) {\n return e.setValue(i, t);\n }\n t.setSpan = setSpan;\n function deleteSpan(e) {\n return e.deleteValue(i);\n }\n t.deleteSpan = deleteSpan;\n function setSpanContext(e, t) {\n return setSpan(e, new a.NonRecordingSpan(t));\n }\n t.setSpanContext = setSpanContext;\n function getSpanContext(e) {\n var t;\n return (t = getSpan(e)) === null || t === void 0 ? void 0 : t.spanContext();\n }\n t.getSpanContext = getSpanContext;\n },\n 325: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceStateImpl = void 0;\n const n = r(564);\n const a = 32;\n const o = 512;\n const i = \",\";\n const c = \"=\";\n class TraceStateImpl {\n constructor(e){\n this._internalState = new Map;\n if (e) this._parse(e);\n }\n set(e, t) {\n const r = this._clone();\n if (r._internalState.has(e)) {\n r._internalState.delete(e);\n }\n r._internalState.set(e, t);\n return r;\n }\n unset(e) {\n const t = this._clone();\n t._internalState.delete(e);\n return t;\n }\n get(e) {\n return this._internalState.get(e);\n }\n serialize() {\n return this._keys().reduce((e, t)=>{\n e.push(t + c + this.get(t));\n return e;\n }, []).join(i);\n }\n _parse(e) {\n if (e.length > o) return;\n this._internalState = e.split(i).reverse().reduce((e, t)=>{\n const r = t.trim();\n const a = r.indexOf(c);\n if (a !== -1) {\n const o = r.slice(0, a);\n const i = r.slice(a + 1, t.length);\n if ((0, n.validateKey)(o) && (0, n.validateValue)(i)) {\n e.set(o, i);\n } else {}\n }\n return e;\n }, new Map);\n if (this._internalState.size > a) {\n this._internalState = new Map(Array.from(this._internalState.entries()).reverse().slice(0, a));\n }\n }\n _keys() {\n return Array.from(this._internalState.keys()).reverse();\n }\n _clone() {\n const e = new TraceStateImpl;\n e._internalState = new Map(this._internalState);\n return e;\n }\n }\n t.TraceStateImpl = TraceStateImpl;\n },\n 564: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.validateValue = t.validateKey = void 0;\n const r = \"[_0-9a-z-*/]\";\n const n = `[a-z]${r}{0,255}`;\n const a = `[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;\n const o = new RegExp(`^(?:${n}|${a})$`);\n const i = /^[ -~]{0,255}[!-~]$/;\n const c = /,|=/;\n function validateKey(e) {\n return o.test(e);\n }\n t.validateKey = validateKey;\n function validateValue(e) {\n return i.test(e) && !c.test(e);\n }\n t.validateValue = validateValue;\n },\n 98: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.createTraceState = void 0;\n const n = r(325);\n function createTraceState(e) {\n return new n.TraceStateImpl(e);\n }\n t.createTraceState = createTraceState;\n },\n 476: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.INVALID_SPAN_CONTEXT = t.INVALID_TRACEID = t.INVALID_SPANID = void 0;\n const n = r(475);\n t.INVALID_SPANID = \"0000000000000000\";\n t.INVALID_TRACEID = \"00000000000000000000000000000000\";\n t.INVALID_SPAN_CONTEXT = {\n traceId: t.INVALID_TRACEID,\n spanId: t.INVALID_SPANID,\n traceFlags: n.TraceFlags.NONE\n };\n },\n 357: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SpanKind = void 0;\n var r;\n (function(e) {\n e[e[\"INTERNAL\"] = 0] = \"INTERNAL\";\n e[e[\"SERVER\"] = 1] = \"SERVER\";\n e[e[\"CLIENT\"] = 2] = \"CLIENT\";\n e[e[\"PRODUCER\"] = 3] = \"PRODUCER\";\n e[e[\"CONSUMER\"] = 4] = \"CONSUMER\";\n })(r = t.SpanKind || (t.SpanKind = {}));\n },\n 139: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.wrapSpanContext = t.isSpanContextValid = t.isValidSpanId = t.isValidTraceId = void 0;\n const n = r(476);\n const a = r(403);\n const o = /^([0-9a-f]{32})$/i;\n const i = /^[0-9a-f]{16}$/i;\n function isValidTraceId(e) {\n return o.test(e) && e !== n.INVALID_TRACEID;\n }\n t.isValidTraceId = isValidTraceId;\n function isValidSpanId(e) {\n return i.test(e) && e !== n.INVALID_SPANID;\n }\n t.isValidSpanId = isValidSpanId;\n function isSpanContextValid(e) {\n return isValidTraceId(e.traceId) && isValidSpanId(e.spanId);\n }\n t.isSpanContextValid = isSpanContextValid;\n function wrapSpanContext(e) {\n return new a.NonRecordingSpan(e);\n }\n t.wrapSpanContext = wrapSpanContext;\n },\n 847: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SpanStatusCode = void 0;\n var r;\n (function(e) {\n e[e[\"UNSET\"] = 0] = \"UNSET\";\n e[e[\"OK\"] = 1] = \"OK\";\n e[e[\"ERROR\"] = 2] = \"ERROR\";\n })(r = t.SpanStatusCode || (t.SpanStatusCode = {}));\n },\n 475: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceFlags = void 0;\n var r;\n (function(e) {\n e[e[\"NONE\"] = 0] = \"NONE\";\n e[e[\"SAMPLED\"] = 1] = \"SAMPLED\";\n })(r = t.TraceFlags || (t.TraceFlags = {}));\n },\n 521: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.VERSION = void 0;\n t.VERSION = \"1.6.0\";\n }\n };\n var t = {};\n function __nccwpck_require__(r) {\n var n = t[r];\n if (n !== undefined) {\n return n.exports;\n }\n var a = t[r] = {\n exports: {}\n };\n var o = true;\n try {\n e[r].call(a.exports, a, a.exports, __nccwpck_require__);\n o = false;\n } finally{\n if (o) delete t[r];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var r = {};\n (()=>{\n var e = r;\n Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n 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;\n var t = __nccwpck_require__(369);\n Object.defineProperty(e, \"baggageEntryMetadataFromString\", {\n enumerable: true,\n get: function() {\n return t.baggageEntryMetadataFromString;\n }\n });\n var n = __nccwpck_require__(780);\n Object.defineProperty(e, \"createContextKey\", {\n enumerable: true,\n get: function() {\n return n.createContextKey;\n }\n });\n Object.defineProperty(e, \"ROOT_CONTEXT\", {\n enumerable: true,\n get: function() {\n return n.ROOT_CONTEXT;\n }\n });\n var a = __nccwpck_require__(972);\n Object.defineProperty(e, \"DiagConsoleLogger\", {\n enumerable: true,\n get: function() {\n return a.DiagConsoleLogger;\n }\n });\n var o = __nccwpck_require__(957);\n Object.defineProperty(e, \"DiagLogLevel\", {\n enumerable: true,\n get: function() {\n return o.DiagLogLevel;\n }\n });\n var i = __nccwpck_require__(102);\n Object.defineProperty(e, \"createNoopMeter\", {\n enumerable: true,\n get: function() {\n return i.createNoopMeter;\n }\n });\n var c = __nccwpck_require__(901);\n Object.defineProperty(e, \"ValueType\", {\n enumerable: true,\n get: function() {\n return c.ValueType;\n }\n });\n var s = __nccwpck_require__(194);\n Object.defineProperty(e, \"defaultTextMapGetter\", {\n enumerable: true,\n get: function() {\n return s.defaultTextMapGetter;\n }\n });\n Object.defineProperty(e, \"defaultTextMapSetter\", {\n enumerable: true,\n get: function() {\n return s.defaultTextMapSetter;\n }\n });\n var u = __nccwpck_require__(125);\n Object.defineProperty(e, \"ProxyTracer\", {\n enumerable: true,\n get: function() {\n return u.ProxyTracer;\n }\n });\n var l = __nccwpck_require__(846);\n Object.defineProperty(e, \"ProxyTracerProvider\", {\n enumerable: true,\n get: function() {\n return l.ProxyTracerProvider;\n }\n });\n var g = __nccwpck_require__(996);\n Object.defineProperty(e, \"SamplingDecision\", {\n enumerable: true,\n get: function() {\n return g.SamplingDecision;\n }\n });\n var p = __nccwpck_require__(357);\n Object.defineProperty(e, \"SpanKind\", {\n enumerable: true,\n get: function() {\n return p.SpanKind;\n }\n });\n var d = __nccwpck_require__(847);\n Object.defineProperty(e, \"SpanStatusCode\", {\n enumerable: true,\n get: function() {\n return d.SpanStatusCode;\n }\n });\n var _ = __nccwpck_require__(475);\n Object.defineProperty(e, \"TraceFlags\", {\n enumerable: true,\n get: function() {\n return _.TraceFlags;\n }\n });\n var f = __nccwpck_require__(98);\n Object.defineProperty(e, \"createTraceState\", {\n enumerable: true,\n get: function() {\n return f.createTraceState;\n }\n });\n var b = __nccwpck_require__(139);\n Object.defineProperty(e, \"isSpanContextValid\", {\n enumerable: true,\n get: function() {\n return b.isSpanContextValid;\n }\n });\n Object.defineProperty(e, \"isValidTraceId\", {\n enumerable: true,\n get: function() {\n return b.isValidTraceId;\n }\n });\n Object.defineProperty(e, \"isValidSpanId\", {\n enumerable: true,\n get: function() {\n return b.isValidSpanId;\n }\n });\n var v = __nccwpck_require__(476);\n Object.defineProperty(e, \"INVALID_SPANID\", {\n enumerable: true,\n get: function() {\n return v.INVALID_SPANID;\n }\n });\n Object.defineProperty(e, \"INVALID_TRACEID\", {\n enumerable: true,\n get: function() {\n return v.INVALID_TRACEID;\n }\n });\n Object.defineProperty(e, \"INVALID_SPAN_CONTEXT\", {\n enumerable: true,\n get: function() {\n return v.INVALID_SPAN_CONTEXT;\n }\n });\n const O = __nccwpck_require__(67);\n Object.defineProperty(e, \"context\", {\n enumerable: true,\n get: function() {\n return O.context;\n }\n });\n const P = __nccwpck_require__(506);\n Object.defineProperty(e, \"diag\", {\n enumerable: true,\n get: function() {\n return P.diag;\n }\n });\n const N = __nccwpck_require__(886);\n Object.defineProperty(e, \"metrics\", {\n enumerable: true,\n get: function() {\n return N.metrics;\n }\n });\n const S = __nccwpck_require__(939);\n Object.defineProperty(e, \"propagation\", {\n enumerable: true,\n get: function() {\n return S.propagation;\n }\n });\n const C = __nccwpck_require__(845);\n Object.defineProperty(e, \"trace\", {\n enumerable: true,\n get: function() {\n return C.trace;\n }\n });\n e[\"default\"] = {\n context: O.context,\n diag: P.diag,\n metrics: N.metrics,\n propagation: S.propagation,\n trace: C.trace\n };\n })();\n module.exports = r;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGkvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUksQ0FBQ0EsR0FBRUMsR0FBRUM7WUFBS0MsT0FBT0MsY0FBYyxDQUFDSCxHQUFFLGNBQWE7Z0JBQUNJLE9BQU07WUFBSTtZQUFHSixFQUFFSyxVQUFVLEdBQUMsS0FBSztZQUFFLE1BQU1DLElBQUVMLEVBQUU7WUFBSyxNQUFNTSxJQUFFTixFQUFFO1lBQUssTUFBTU8sSUFBRVAsRUFBRTtZQUFLLE1BQU1RLElBQUU7WUFBVSxNQUFNQyxJQUFFLElBQUlKLEVBQUVLLGtCQUFrQjtZQUFDLE1BQU1OO2dCQUFXTyxhQUFhLENBQUM7Z0JBQUMsT0FBT0MsY0FBYTtvQkFBQyxJQUFHLENBQUMsSUFBSSxDQUFDQyxTQUFTLEVBQUM7d0JBQUMsSUFBSSxDQUFDQSxTQUFTLEdBQUMsSUFBSVQ7b0JBQVU7b0JBQUMsT0FBTyxJQUFJLENBQUNTLFNBQVM7Z0JBQUE7Z0JBQUNDLHdCQUF3QmhCLENBQUMsRUFBQztvQkFBQyxPQUFNLENBQUMsR0FBRVEsRUFBRVMsY0FBYyxFQUFFUCxHQUFFVixHQUFFUyxFQUFFUyxPQUFPLENBQUNDLFFBQVE7Z0JBQUc7Z0JBQUNDLFNBQVE7b0JBQUMsT0FBTyxJQUFJLENBQUNDLGtCQUFrQixHQUFHRCxNQUFNO2dCQUFFO2dCQUFDRSxLQUFLdEIsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQyxHQUFHSyxDQUFDLEVBQUM7b0JBQUMsT0FBTyxJQUFJLENBQUNjLGtCQUFrQixHQUFHQyxJQUFJLENBQUN0QixHQUFFQyxHQUFFQyxNQUFLSztnQkFBRTtnQkFBQ2dCLEtBQUt2QixDQUFDLEVBQUNDLENBQUMsRUFBQztvQkFBQyxPQUFPLElBQUksQ0FBQ29CLGtCQUFrQixHQUFHRSxJQUFJLENBQUN2QixHQUFFQztn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WUFBVztZQUFLN0YsS0FBSTtnQkFBVyxPQUFPK0ssRUFBRW5ILE9BQU87WUFBQTtRQUFDO1FBQUcsTUFBTW9ILElBQUViLG9CQUFvQjtRQUFLMVAsT0FBT0MsY0FBYyxDQUFDSixHQUFFLGVBQWM7WUFBQ3VMLFlBQVc7WUFBSzdGLEtBQUk7Z0JBQVcsT0FBT2dMLEVBQUU3RSxXQUFXO1lBQUE7UUFBQztRQUFHLE1BQU04RSxJQUFFZCxvQkFBb0I7UUFBSzFQLE9BQU9DLGNBQWMsQ0FBQ0osR0FBRSxTQUFRO1lBQUN1TCxZQUFXO1lBQUs3RixLQUFJO2dCQUFXLE9BQU9pTCxFQUFFNUUsS0FBSztZQUFBO1FBQUM7UUFBRy9MLENBQUMsQ0FBQyxVQUFVLEdBQUM7WUFBQzRHLFNBQVEySixFQUFFM0osT0FBTztZQUFDTyxNQUFLcUosRUFBRXJKLElBQUk7WUFBQ21DLFNBQVFtSCxFQUFFbkgsT0FBTztZQUFDdUMsYUFBWTZFLEVBQUU3RSxXQUFXO1lBQUNFLE9BQU00RSxFQUFFNUUsS0FBSztRQUFBO0lBQUM7SUFBSzZFLE9BQU9kLE9BQU8sR0FBQzVQO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGkvaW5kZXguanM/MTQ4MyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17NDkxOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQ29udGV4dEFQST12b2lkIDA7Y29uc3Qgbj1yKDIyMyk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cImNvbnRleHRcIjtjb25zdCBjPW5ldyBuLk5vb3BDb250ZXh0TWFuYWdlcjtjbGFzcyBDb250ZXh0QVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IENvbnRleHRBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbENvbnRleHRNYW5hZ2VyKGUpe3JldHVybigwLGEucmVnaXN0ZXJHbG9iYWwpKGksZSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9YWN0aXZlKCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYWN0aXZlKCl9d2l0aChlLHQsciwuLi5uKXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS53aXRoKGUsdCxyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5iaW5kKGUsdCl9X2dldENvbnRleHRNYW5hZ2VyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxjfWRpc2FibGUoKXt0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmRpc2FibGUoKTsoMCxhLnVucmVnaXN0ZXJHbG9iYWwpKGksby5EaWFnQVBJLmluc3RhbmNlKCkpfX10LkNvbnRleHRBUEk9Q29udGV4dEFQSX0sOTMwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0FQST12b2lkIDA7Y29uc3Qgbj1yKDU2KTtjb25zdCBhPXIoOTEyKTtjb25zdCBvPXIoOTU3KTtjb25zdCBpPXIoMTcyKTtjb25zdCBjPVwiZGlhZ1wiO2NsYXNzIERpYWdBUEl7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiBfbG9nUHJveHkoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0IHI9KDAsaS5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtpZighcilyZXR1cm47cmV0dXJuIHJbZV0oLi4udCl9fWNvbnN0IGU9dGhpcztjb25zdCBzZXRMb2dnZXI9KHQscj17bG9nTGV2ZWw6by5EaWFnTG9nTGV2ZWwuSU5GT30pPT57dmFyIG4sYyxzO2lmKHQ9PT1lKXtjb25zdCB0PW5ldyBFcnJvcihcIkNhbm5vdCB1c2UgZGlhZyBhcyB0aGUgbG9nZ2VyIGZvciBpdHNlbGYuIFBsZWFzZSB1c2UgYSBEaWFnTG9nZ2VyIGltcGxlbWVudGF0aW9uIGxpa2UgQ29uc29sZURpYWdMb2dnZXIgb3IgYSBjdXN0b20gaW1wbGVtZW50YXRpb25cIik7ZS5lcnJvcigobj10LnN0YWNrKSE9PW51bGwmJm4hPT12b2lkIDA/bjp0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pZih0eXBlb2Ygcj09PVwibnVtYmVyXCIpe3I9e2xvZ0xldmVsOnJ9fWNvbnN0IHU9KDAsaS5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtjb25zdCBsPSgwLGEuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyKSgoYz1yLmxvZ0xldmVsKSE9PW51bGwmJmMhPT12b2lkIDA/YzpvLkRpYWdMb2dMZXZlbC5JTkZPLHQpO2lmKHUmJiFyLnN1cHByZXNzT3ZlcnJpZGVNZXNzYWdlKXtjb25zdCBlPShzPShuZXcgRXJyb3IpLnN0YWNrKSE9PW51bGwmJnMhPT12b2lkIDA/czpcIjxmYWlsZWQgdG8gZ2VuZXJhdGUgc3RhY2t0cmFjZT5cIjt1Lndhcm4oYEN1cnJlbnQgbG9nZ2VyIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZnJvbSAke2V9YCk7bC53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIG92ZXJ3cml0ZSBvbmUgYWxyZWFkeSByZWdpc3RlcmVkIGZyb20gJHtlfWApfXJldHVybigwLGkucmVnaXN0ZXJHbG9iYWwpKFwiZGlhZ1wiLGwsZSx0cnVlKX07ZS5zZXRMb2dnZXI9c2V0TG9nZ2VyO2UuZGlzYWJsZT0oKT0+eygwLGkudW5yZWdpc3Rlckdsb2JhbCkoYyxlKX07ZS5jcmVhdGVDb21wb25lbnRMb2dnZXI9ZT0+bmV3IG4uRGlhZ0NvbXBvbmVudExvZ2dlcihlKTtlLnZlcmJvc2U9X2xvZ1Byb3h5KFwidmVyYm9zZVwiKTtlLmRlYnVnPV9sb2dQcm94eShcImRlYnVnXCIpO2UuaW5mbz1fbG9nUHJveHkoXCJpbmZvXCIpO2Uud2Fybj1fbG9nUHJveHkoXCJ3YXJuXCIpO2UuZXJyb3I9X2xvZ1Byb3h5KFwiZXJyb3JcIil9c3RhdGljIGluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgRGlhZ0FQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9fXQuRGlhZ0FQST1EaWFnQVBJfSw2NTM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5NZXRyaWNzQVBJPXZvaWQgMDtjb25zdCBuPXIoNjYwKTtjb25zdCBhPXIoMTcyKTtjb25zdCBvPXIoOTMwKTtjb25zdCBpPVwibWV0cmljc1wiO2NsYXNzIE1ldHJpY3NBUEl7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgTWV0cmljc0FQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsTWV0ZXJQcm92aWRlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWdldE1ldGVyUHJvdmlkZXIoKXtyZXR1cm4oMCxhLmdldEdsb2JhbCkoaSl8fG4uTk9PUF9NRVRFUl9QUk9WSURFUn1nZXRNZXRlcihlLHQscil7cmV0dXJuIHRoaXMuZ2V0TWV0ZXJQcm92aWRlcigpLmdldE1ldGVyKGUsdCxyKX1kaXNhYmxlKCl7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5NZXRyaWNzQVBJPU1ldHJpY3NBUEl9LDE4MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3BhZ2F0aW9uQVBJPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjb25zdCBhPXIoODc0KTtjb25zdCBvPXIoMTk0KTtjb25zdCBpPXIoMjc3KTtjb25zdCBjPXIoMzY5KTtjb25zdCBzPXIoOTMwKTtjb25zdCB1PVwicHJvcGFnYXRpb25cIjtjb25zdCBsPW5ldyBhLk5vb3BUZXh0TWFwUHJvcGFnYXRvcjtjbGFzcyBQcm9wYWdhdGlvbkFQSXtjb25zdHJ1Y3Rvcigpe3RoaXMuY3JlYXRlQmFnZ2FnZT1jLmNyZWF0ZUJhZ2dhZ2U7dGhpcy5nZXRCYWdnYWdlPWkuZ2V0QmFnZ2FnZTt0aGlzLmdldEFjdGl2ZUJhZ2dhZ2U9aS5nZXRBY3RpdmVCYWdnYWdlO3RoaXMuc2V0QmFnZ2FnZT1pLnNldEJhZ2dhZ2U7dGhpcy5kZWxldGVCYWdnYWdlPWkuZGVsZXRlQmFnZ2FnZX1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBQcm9wYWdhdGlvbkFQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsUHJvcGFnYXRvcihlKXtyZXR1cm4oMCxuLnJlZ2lzdGVyR2xvYmFsKSh1LGUscy5EaWFnQVBJLmluc3RhbmNlKCkpfWluamVjdChlLHQscj1vLmRlZmF1bHRUZXh0TWFwU2V0dGVyKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmluamVjdChlLHQscil9ZXh0cmFjdChlLHQscj1vLmRlZmF1bHRUZXh0TWFwR2V0dGVyKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmV4dHJhY3QoZSx0LHIpfWZpZWxkcygpe3JldHVybiB0aGlzLl9nZXRHbG9iYWxQcm9wYWdhdG9yKCkuZmllbGRzKCl9ZGlzYWJsZSgpeygwLG4udW5yZWdpc3Rlckdsb2JhbCkodSxzLkRpYWdBUEkuaW5zdGFuY2UoKSl9X2dldEdsb2JhbFByb3BhZ2F0b3IoKXtyZXR1cm4oMCxuLmdldEdsb2JhbCkodSl8fGx9fXQuUHJvcGFnYXRpb25BUEk9UHJvcGFnYXRpb25BUEl9LDk5NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlQVBJPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjb25zdCBhPXIoODQ2KTtjb25zdCBvPXIoMTM5KTtjb25zdCBpPXIoNjA3KTtjb25zdCBjPXIoOTMwKTtjb25zdCBzPVwidHJhY2VcIjtjbGFzcyBUcmFjZUFQSXtjb25zdHJ1Y3Rvcigpe3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcjt0aGlzLndyYXBTcGFuQ29udGV4dD1vLndyYXBTcGFuQ29udGV4dDt0aGlzLmlzU3BhbkNvbnRleHRWYWxpZD1vLmlzU3BhbkNvbnRleHRWYWxpZDt0aGlzLmRlbGV0ZVNwYW49aS5kZWxldGVTcGFuO3RoaXMuZ2V0U3Bhbj1pLmdldFNwYW47dGhpcy5nZXRBY3RpdmVTcGFuPWkuZ2V0QWN0aXZlU3Bhbjt0aGlzLmdldFNwYW5Db250ZXh0PWkuZ2V0U3BhbkNvbnRleHQ7dGhpcy5zZXRTcGFuPWkuc2V0U3Bhbjt0aGlzLnNldFNwYW5Db250ZXh0PWkuc2V0U3BhbkNvbnRleHR9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgVHJhY2VBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFRyYWNlclByb3ZpZGVyKGUpe2NvbnN0IHQ9KDAsbi5yZWdpc3Rlckdsb2JhbCkocyx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLGMuRGlhZ0FQSS5pbnN0YW5jZSgpKTtpZih0KXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLnNldERlbGVnYXRlKGUpfXJldHVybiB0fWdldFRyYWNlclByb3ZpZGVyKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHMpfHx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyfWdldFRyYWNlcihlLHQpe3JldHVybiB0aGlzLmdldFRyYWNlclByb3ZpZGVyKCkuZ2V0VHJhY2VyKGUsdCl9ZGlzYWJsZSgpeygwLG4udW5yZWdpc3Rlckdsb2JhbCkocyxjLkRpYWdBUEkuaW5zdGFuY2UoKSk7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcj1uZXcgYS5Qcm94eVRyYWNlclByb3ZpZGVyfX10LlRyYWNlQVBJPVRyYWNlQVBJfSwyNzc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWxldGVCYWdnYWdlPXQuc2V0QmFnZ2FnZT10LmdldEFjdGl2ZUJhZ2dhZ2U9dC5nZXRCYWdnYWdlPXZvaWQgMDtjb25zdCBuPXIoNDkxKTtjb25zdCBhPXIoNzgwKTtjb25zdCBvPSgwLGEuY3JlYXRlQ29udGV4dEtleSkoXCJPcGVuVGVsZW1ldHJ5IEJhZ2dhZ2UgS2V5XCIpO2Z1bmN0aW9uIGdldEJhZ2dhZ2UoZSl7cmV0dXJuIGUuZ2V0VmFsdWUobyl8fHVuZGVmaW5lZH10LmdldEJhZ2dhZ2U9Z2V0QmFnZ2FnZTtmdW5jdGlvbiBnZXRBY3RpdmVCYWdnYWdlKCl7cmV0dXJuIGdldEJhZ2dhZ2Uobi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfXQuZ2V0QWN0aXZlQmFnZ2FnZT1nZXRBY3RpdmVCYWdnYWdlO2Z1bmN0aW9uIHNldEJhZ2dhZ2UoZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShvLHQpfXQuc2V0QmFnZ2FnZT1zZXRCYWdnYWdlO2Z1bmN0aW9uIGRlbGV0ZUJhZ2dhZ2UoZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUobyl9dC5kZWxldGVCYWdnYWdlPWRlbGV0ZUJhZ2dhZ2V9LDk5MzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5CYWdnYWdlSW1wbD12b2lkIDA7Y2xhc3MgQmFnZ2FnZUltcGx7Y29uc3RydWN0b3IoZSl7dGhpcy5fZW50cmllcz1lP25ldyBNYXAoZSk6bmV3IE1hcH1nZXRFbnRyeShlKXtjb25zdCB0PXRoaXMuX2VudHJpZXMuZ2V0KGUpO2lmKCF0KXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBPYmplY3QuYXNzaWduKHt9LHQpfWdldEFsbEVudHJpZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9lbnRyaWVzLmVudHJpZXMoKSkubWFwKCgoW2UsdF0pPT5bZSx0XSkpfXNldEVudHJ5KGUsdCl7Y29uc3Qgcj1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7ci5fZW50cmllcy5zZXQoZSx0KTtyZXR1cm4gcn1yZW1vdmVFbnRyeShlKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTt0Ll9lbnRyaWVzLmRlbGV0ZShlKTtyZXR1cm4gdH1yZW1vdmVFbnRyaWVzKC4uLmUpe2NvbnN0IHQ9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO2Zvcihjb25zdCByIG9mIGUpe3QuX2VudHJpZXMuZGVsZXRlKHIpfXJldHVybiB0fWNsZWFyKCl7cmV0dXJuIG5ldyBCYWdnYWdlSW1wbH19dC5CYWdnYWdlSW1wbD1CYWdnYWdlSW1wbH0sODMwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sPXZvaWQgMDt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sPVN5bWJvbChcIkJhZ2dhZ2VFbnRyeU1ldGFkYXRhXCIpfSwzNjk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9dC5jcmVhdGVCYWdnYWdlPXZvaWQgMDtjb25zdCBuPXIoOTMwKTtjb25zdCBhPXIoOTkzKTtjb25zdCBvPXIoODMwKTtjb25zdCBpPW4uRGlhZ0FQSS5pbnN0YW5jZSgpO2Z1bmN0aW9uIGNyZWF0ZUJhZ2dhZ2UoZT17fSl7cmV0dXJuIG5ldyBhLkJhZ2dhZ2VJbXBsKG5ldyBNYXAoT2JqZWN0LmVudHJpZXMoZSkpKX10LmNyZWF0ZUJhZ2dhZ2U9Y3JlYXRlQmFnZ2FnZTtmdW5jdGlvbiBiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmcoZSl7aWYodHlwZW9mIGUhPT1cInN0cmluZ1wiKXtpLmVycm9yKGBDYW5ub3QgY3JlYXRlIGJhZ2dhZ2UgbWV0YWRhdGEgZnJvbSB1bmtub3duIHR5cGU6ICR7dHlwZW9mIGV9YCk7ZT1cIlwifXJldHVybntfX1RZUEVfXzpvLmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sLHRvU3RyaW5nKCl7cmV0dXJuIGV9fX10LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZz1iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmd9LDY3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY29udGV4dD12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7dC5jb250ZXh0PW4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpfSwyMjM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wQ29udGV4dE1hbmFnZXI9dm9pZCAwO2NvbnN0IG49cig3ODApO2NsYXNzIE5vb3BDb250ZXh0TWFuYWdlcnthY3RpdmUoKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9d2l0aChlLHQsciwuLi5uKXtyZXR1cm4gdC5jYWxsKHIsLi4ubil9YmluZChlLHQpe3JldHVybiB0fWVuYWJsZSgpe3JldHVybiB0aGlzfWRpc2FibGUoKXtyZXR1cm4gdGhpc319dC5Ob29wQ29udGV4dE1hbmFnZXI9Tm9vcENvbnRleHRNYW5hZ2VyfSw3ODA6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUk9PVF9DT05URVhUPXQuY3JlYXRlQ29udGV4dEtleT12b2lkIDA7ZnVuY3Rpb24gY3JlYXRlQ29udGV4dEtleShlKXtyZXR1cm4gU3ltYm9sLmZvcihlKX10LmNyZWF0ZUNvbnRleHRLZXk9Y3JlYXRlQ29udGV4dEtleTtjbGFzcyBCYXNlQ29udGV4dHtjb25zdHJ1Y3RvcihlKXtjb25zdCB0PXRoaXM7dC5fY3VycmVudENvbnRleHQ9ZT9uZXcgTWFwKGUpOm5ldyBNYXA7dC5nZXRWYWx1ZT1lPT50Ll9jdXJyZW50Q29udGV4dC5nZXQoZSk7dC5zZXRWYWx1ZT0oZSxyKT0+e2NvbnN0IG49bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtuLl9jdXJyZW50Q29udGV4dC5zZXQoZSxyKTtyZXR1cm4gbn07dC5kZWxldGVWYWx1ZT1lPT57Y29uc3Qgcj1uZXcgQmFzZUNvbnRleHQodC5fY3VycmVudENvbnRleHQpO3IuX2N1cnJlbnRDb250ZXh0LmRlbGV0ZShlKTtyZXR1cm4gcn19fXQuUk9PVF9DT05URVhUPW5ldyBCYXNlQ29udGV4dH0sNTA2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGlhZz12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7dC5kaWFnPW4uRGlhZ0FQSS5pbnN0YW5jZSgpfSw1NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdDb21wb25lbnRMb2dnZXI9dm9pZCAwO2NvbnN0IG49cigxNzIpO2NsYXNzIERpYWdDb21wb25lbnRMb2dnZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5fbmFtZXNwYWNlPWUubmFtZXNwYWNlfHxcIkRpYWdDb21wb25lbnRMb2dnZXJcIn1kZWJ1ZyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJkZWJ1Z1wiLHRoaXMuX25hbWVzcGFjZSxlKX1lcnJvciguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJlcnJvclwiLHRoaXMuX25hbWVzcGFjZSxlKX1pbmZvKC4uLmUpe3JldHVybiBsb2dQcm94eShcImluZm9cIix0aGlzLl9uYW1lc3BhY2UsZSl9d2FybiguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJ3YXJuXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXZlcmJvc2UoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwidmVyYm9zZVwiLHRoaXMuX25hbWVzcGFjZSxlKX19dC5EaWFnQ29tcG9uZW50TG9nZ2VyPURpYWdDb21wb25lbnRMb2dnZXI7ZnVuY3Rpb24gbG9nUHJveHkoZSx0LHIpe2NvbnN0IGE9KDAsbi5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtpZighYSl7cmV0dXJufXIudW5zaGlmdCh0KTtyZXR1cm4gYVtlXSguLi5yKX19LDk3MjooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29uc29sZUxvZ2dlcj12b2lkIDA7Y29uc3Qgcj1be246XCJlcnJvclwiLGM6XCJlcnJvclwifSx7bjpcIndhcm5cIixjOlwid2FyblwifSx7bjpcImluZm9cIixjOlwiaW5mb1wifSx7bjpcImRlYnVnXCIsYzpcImRlYnVnXCJ9LHtuOlwidmVyYm9zZVwiLGM6XCJ0cmFjZVwifV07Y2xhc3MgRGlhZ0NvbnNvbGVMb2dnZXJ7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiBfY29uc29sZUZ1bmMoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2lmKGNvbnNvbGUpe2xldCByPWNvbnNvbGVbZV07aWYodHlwZW9mIHIhPT1cImZ1bmN0aW9uXCIpe3I9Y29uc29sZS5sb2d9aWYodHlwZW9mIHI9PT1cImZ1bmN0aW9uXCIpe3JldHVybiByLmFwcGx5KGNvbnNvbGUsdCl9fX19Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspe3RoaXNbcltlXS5uXT1fY29uc29sZUZ1bmMocltlXS5jKX19fXQuRGlhZ0NvbnNvbGVMb2dnZXI9RGlhZ0NvbnNvbGVMb2dnZXJ9LDkxMjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj12b2lkIDA7Y29uc3Qgbj1yKDk1Nyk7ZnVuY3Rpb24gY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyKGUsdCl7aWYoZTxuLkRpYWdMb2dMZXZlbC5OT05FKXtlPW4uRGlhZ0xvZ0xldmVsLk5PTkV9ZWxzZSBpZihlPm4uRGlhZ0xvZ0xldmVsLkFMTCl7ZT1uLkRpYWdMb2dMZXZlbC5BTEx9dD10fHx7fTtmdW5jdGlvbiBfZmlsdGVyRnVuYyhyLG4pe2NvbnN0IGE9dFtyXTtpZih0eXBlb2YgYT09PVwiZnVuY3Rpb25cIiYmZT49bil7cmV0dXJuIGEuYmluZCh0KX1yZXR1cm4gZnVuY3Rpb24oKXt9fXJldHVybntlcnJvcjpfZmlsdGVyRnVuYyhcImVycm9yXCIsbi5EaWFnTG9nTGV2ZWwuRVJST1IpLHdhcm46X2ZpbHRlckZ1bmMoXCJ3YXJuXCIsbi5EaWFnTG9nTGV2ZWwuV0FSTiksaW5mbzpfZmlsdGVyRnVuYyhcImluZm9cIixuLkRpYWdMb2dMZXZlbC5JTkZPKSxkZWJ1ZzpfZmlsdGVyRnVuYyhcImRlYnVnXCIsbi5EaWFnTG9nTGV2ZWwuREVCVUcpLHZlcmJvc2U6X2ZpbHRlckZ1bmMoXCJ2ZXJib3NlXCIsbi5EaWFnTG9nTGV2ZWwuVkVSQk9TRSl9fXQuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyPWNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcn0sOTU3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdMb2dMZXZlbD12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiRVJST1JcIl09MzBdPVwiRVJST1JcIjtlW2VbXCJXQVJOXCJdPTUwXT1cIldBUk5cIjtlW2VbXCJJTkZPXCJdPTYwXT1cIklORk9cIjtlW2VbXCJERUJVR1wiXT03MF09XCJERUJVR1wiO2VbZVtcIlZFUkJPU0VcIl09ODBdPVwiVkVSQk9TRVwiO2VbZVtcIkFMTFwiXT05OTk5XT1cIkFMTFwifSkocj10LkRpYWdMb2dMZXZlbHx8KHQuRGlhZ0xvZ0xldmVsPXt9KSl9LDE3MjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnVucmVnaXN0ZXJHbG9iYWw9dC5nZXRHbG9iYWw9dC5yZWdpc3Rlckdsb2JhbD12b2lkIDA7Y29uc3Qgbj1yKDIwMCk7Y29uc3QgYT1yKDUyMSk7Y29uc3Qgbz1yKDEzMCk7Y29uc3QgaT1hLlZFUlNJT04uc3BsaXQoXCIuXCIpWzBdO2NvbnN0IGM9U3ltYm9sLmZvcihgb3BlbnRlbGVtZXRyeS5qcy5hcGkuJHtpfWApO2NvbnN0IHM9bi5fZ2xvYmFsVGhpcztmdW5jdGlvbiByZWdpc3Rlckdsb2JhbChlLHQscixuPWZhbHNlKXt2YXIgbztjb25zdCBpPXNbY109KG89c1tjXSkhPT1udWxsJiZvIT09dm9pZCAwP286e3ZlcnNpb246YS5WRVJTSU9OfTtpZighbiYmaVtlXSl7Y29uc3QgdD1uZXcgRXJyb3IoYEBvcGVudGVsZW1ldHJ5L2FwaTogQXR0ZW1wdGVkIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gb2YgQVBJOiAke2V9YCk7ci5lcnJvcih0LnN0YWNrfHx0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pZihpLnZlcnNpb24hPT1hLlZFUlNJT04pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IFJlZ2lzdHJhdGlvbiBvZiB2ZXJzaW9uIHYke2kudmVyc2lvbn0gZm9yICR7ZX0gZG9lcyBub3QgbWF0Y2ggcHJldmlvdXNseSByZWdpc3RlcmVkIEFQSSB2JHthLlZFUlNJT059YCk7ci5lcnJvcih0LnN0YWNrfHx0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pW2VdPXQ7ci5kZWJ1ZyhgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RlcmVkIGEgZ2xvYmFsIGZvciAke2V9IHYke2EuVkVSU0lPTn0uYCk7cmV0dXJuIHRydWV9dC5yZWdpc3Rlckdsb2JhbD1yZWdpc3Rlckdsb2JhbDtmdW5jdGlvbiBnZXRHbG9iYWwoZSl7dmFyIHQscjtjb25zdCBuPSh0PXNbY10pPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC52ZXJzaW9uO2lmKCFufHwhKDAsby5pc0NvbXBhdGlibGUpKG4pKXtyZXR1cm59cmV0dXJuKHI9c1tjXSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyW2VdfXQuZ2V0R2xvYmFsPWdldEdsb2JhbDtmdW5jdGlvbiB1bnJlZ2lzdGVyR2xvYmFsKGUsdCl7dC5kZWJ1ZyhgQG9wZW50ZWxlbWV0cnkvYXBpOiBVbnJlZ2lzdGVyaW5nIGEgZ2xvYmFsIGZvciAke2V9IHYke2EuVkVSU0lPTn0uYCk7Y29uc3Qgcj1zW2NdO2lmKHIpe2RlbGV0ZSByW2VdfX10LnVucmVnaXN0ZXJHbG9iYWw9dW5yZWdpc3Rlckdsb2JhbH0sMTMwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuaXNDb21wYXRpYmxlPXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9dm9pZCAwO2NvbnN0IG49cig1MjEpO2NvbnN0IGE9L14oXFxkKylcXC4oXFxkKylcXC4oXFxkKykoLSguKykpPyQvO2Z1bmN0aW9uIF9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrKGUpe2NvbnN0IHQ9bmV3IFNldChbZV0pO2NvbnN0IHI9bmV3IFNldDtjb25zdCBuPWUubWF0Y2goYSk7aWYoIW4pe3JldHVybigpPT5mYWxzZX1jb25zdCBvPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKG8ucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uIGlzRXhhY3RtYXRjaCh0KXtyZXR1cm4gdD09PWV9fWZ1bmN0aW9uIF9yZWplY3QoZSl7ci5hZGQoZSk7cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIF9hY2NlcHQoZSl7dC5hZGQoZSk7cmV0dXJuIHRydWV9cmV0dXJuIGZ1bmN0aW9uIGlzQ29tcGF0aWJsZShlKXtpZih0LmhhcyhlKSl7cmV0dXJuIHRydWV9aWYoci5oYXMoZSkpe3JldHVybiBmYWxzZX1jb25zdCBuPWUubWF0Y2goYSk7aWYoIW4pe3JldHVybiBfcmVqZWN0KGUpfWNvbnN0IGk9e21ham9yOituWzFdLG1pbm9yOituWzJdLHBhdGNoOituWzNdLHByZXJlbGVhc2U6bls0XX07aWYoaS5wcmVyZWxlYXNlIT1udWxsKXtyZXR1cm4gX3JlamVjdChlKX1pZihvLm1ham9yIT09aS5tYWpvcil7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvcj09PTApe2lmKG8ubWlub3I9PT1pLm1pbm9yJiZvLnBhdGNoPD1pLnBhdGNoKXtyZXR1cm4gX2FjY2VwdChlKX1yZXR1cm4gX3JlamVjdChlKX1pZihvLm1pbm9yPD1pLm1pbm9yKXtyZXR1cm4gX2FjY2VwdChlKX1yZXR1cm4gX3JlamVjdChlKX19dC5fbWFrZUNvbXBhdGliaWxpdHlDaGVjaz1fbWFrZUNvbXBhdGliaWxpdHlDaGVjazt0LmlzQ29tcGF0aWJsZT1fbWFrZUNvbXBhdGliaWxpdHlDaGVjayhuLlZFUlNJT04pfSw4ODY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5tZXRyaWNzPXZvaWQgMDtjb25zdCBuPXIoNjUzKTt0Lm1ldHJpY3M9bi5NZXRyaWNzQVBJLmdldEluc3RhbmNlKCl9LDkwMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WYWx1ZVR5cGU9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRcIl09MF09XCJJTlRcIjtlW2VbXCJET1VCTEVcIl09MV09XCJET1VCTEVcIn0pKHI9dC5WYWx1ZVR5cGV8fCh0LlZhbHVlVHlwZT17fSkpfSwxMDI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlTm9vcE1ldGVyPXQuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9dC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDPXQuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9ISVNUT0dSQU1fTUVUUklDPXQuTk9PUF9DT1VOVEVSX01FVFJJQz10Lk5PT1BfTUVURVI9dC5Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM9dC5Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljPXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVNZXRyaWM9dC5Ob29wSGlzdG9ncmFtTWV0cmljPXQuTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM9dC5Ob29wQ291bnRlck1ldHJpYz10Lk5vb3BNZXRyaWM9dC5Ob29wTWV0ZXI9dm9pZCAwO2NsYXNzIE5vb3BNZXRlcntjb25zdHJ1Y3Rvcigpe31jcmVhdGVIaXN0b2dyYW0oZSxyKXtyZXR1cm4gdC5OT09QX0hJU1RPR1JBTV9NRVRSSUN9Y3JlYXRlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfQ09VTlRFUl9NRVRSSUN9Y3JlYXRlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlR2F1Z2UoZSxyKXtyZXR1cm4gdC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVDb3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVVcERvd25Db3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9YWRkQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2soZSx0KXt9cmVtb3ZlQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2soZSl7fX10Lk5vb3BNZXRlcj1Ob29wTWV0ZXI7Y2xhc3MgTm9vcE1ldHJpY3t9dC5Ob29wTWV0cmljPU5vb3BNZXRyaWM7Y2xhc3MgTm9vcENvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wQ291bnRlck1ldHJpYz1Ob29wQ291bnRlck1ldHJpYztjbGFzcyBOb29wVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BNZXRyaWN7YWRkKGUsdCl7fX10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPU5vb3BVcERvd25Db3VudGVyTWV0cmljO2NsYXNzIE5vb3BIaXN0b2dyYW1NZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje3JlY29yZChlLHQpe319dC5Ob29wSGlzdG9ncmFtTWV0cmljPU5vb3BIaXN0b2dyYW1NZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVNZXRyaWN7YWRkQ2FsbGJhY2soZSl7fXJlbW92ZUNhbGxiYWNrKGUpe319dC5Ob29wT2JzZXJ2YWJsZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZU1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM9Tm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljPU5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYzt0Lk5PT1BfTUVURVI9bmV3IE5vb3BNZXRlcjt0Lk5PT1BfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BDb3VudGVyTWV0cmljO3QuTk9PUF9ISVNUT0dSQU1fTUVUUklDPW5ldyBOb29wSGlzdG9ncmFtTWV0cmljO3QuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDPW5ldyBOb29wVXBEb3duQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljO3QuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPW5ldyBOb29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7ZnVuY3Rpb24gY3JlYXRlTm9vcE1ldGVyKCl7cmV0dXJuIHQuTk9PUF9NRVRFUn10LmNyZWF0ZU5vb3BNZXRlcj1jcmVhdGVOb29wTWV0ZXJ9LDY2MDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5PT1BfTUVURVJfUFJPVklERVI9dC5Ob29wTWV0ZXJQcm92aWRlcj12b2lkIDA7Y29uc3Qgbj1yKDEwMik7Y2xhc3MgTm9vcE1ldGVyUHJvdmlkZXJ7Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiBuLk5PT1BfTUVURVJ9fXQuTm9vcE1ldGVyUHJvdmlkZXI9Tm9vcE1ldGVyUHJvdmlkZXI7dC5OT09QX01FVEVSX1BST1ZJREVSPW5ldyBOb29wTWV0ZXJQcm92aWRlcn0sMjAwOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfTpmdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtlW25dPXRbcl19KTt2YXIgYT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gZSlpZihyIT09XCJkZWZhdWx0XCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSluKHQsZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTthKHIoNDYpLHQpfSw2NTE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuX2dsb2JhbFRoaXM9dm9pZCAwO3QuX2dsb2JhbFRoaXM9dHlwZW9mIGdsb2JhbFRoaXM9PT1cIm9iamVjdFwiP2dsb2JhbFRoaXM6Z2xvYmFsfSw0NjpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDY1MSksdCl9LDkzOTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnByb3BhZ2F0aW9uPXZvaWQgMDtjb25zdCBuPXIoMTgxKTt0LnByb3BhZ2F0aW9uPW4uUHJvcGFnYXRpb25BUEkuZ2V0SW5zdGFuY2UoKX0sODc0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj12b2lkIDA7Y2xhc3MgTm9vcFRleHRNYXBQcm9wYWdhdG9ye2luamVjdChlLHQpe31leHRyYWN0KGUsdCl7cmV0dXJuIGV9ZmllbGRzKCl7cmV0dXJuW119fXQuTm9vcFRleHRNYXBQcm9wYWdhdG9yPU5vb3BUZXh0TWFwUHJvcGFnYXRvcn0sMTk0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRlZmF1bHRUZXh0TWFwU2V0dGVyPXQuZGVmYXVsdFRleHRNYXBHZXR0ZXI9dm9pZCAwO3QuZGVmYXVsdFRleHRNYXBHZXR0ZXI9e2dldChlLHQpe2lmKGU9PW51bGwpe3JldHVybiB1bmRlZmluZWR9cmV0dXJuIGVbdF19LGtleXMoZSl7aWYoZT09bnVsbCl7cmV0dXJuW119cmV0dXJuIE9iamVjdC5rZXlzKGUpfX07dC5kZWZhdWx0VGV4dE1hcFNldHRlcj17c2V0KGUsdCxyKXtpZihlPT1udWxsKXtyZXR1cm59ZVt0XT1yfX19LDg0NTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnRyYWNlPXZvaWQgMDtjb25zdCBuPXIoOTk3KTt0LnRyYWNlPW4uVHJhY2VBUEkuZ2V0SW5zdGFuY2UoKX0sNDAzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9uUmVjb3JkaW5nU3Bhbj12b2lkIDA7Y29uc3Qgbj1yKDQ3Nik7Y2xhc3MgTm9uUmVjb3JkaW5nU3Bhbntjb25zdHJ1Y3RvcihlPW4uSU5WQUxJRF9TUEFOX0NPTlRFWFQpe3RoaXMuX3NwYW5Db250ZXh0PWV9c3BhbkNvbnRleHQoKXtyZXR1cm4gdGhpcy5fc3BhbkNvbnRleHR9c2V0QXR0cmlidXRlKGUsdCl7cmV0dXJuIHRoaXN9c2V0QXR0cmlidXRlcyhlKXtyZXR1cm4gdGhpc31hZGRFdmVudChlLHQpe3JldHVybiB0aGlzfXNldFN0YXR1cyhlKXtyZXR1cm4gdGhpc311cGRhdGVOYW1lKGUpe3JldHVybiB0aGlzfWVuZChlKXt9aXNSZWNvcmRpbmcoKXtyZXR1cm4gZmFsc2V9cmVjb3JkRXhjZXB0aW9uKGUsdCl7fX10Lk5vblJlY29yZGluZ1NwYW49Tm9uUmVjb3JkaW5nU3Bhbn0sNjE0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDYwNyk7Y29uc3Qgbz1yKDQwMyk7Y29uc3QgaT1yKDEzOSk7Y29uc3QgYz1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKTtjbGFzcyBOb29wVHJhY2Vye3N0YXJ0U3BhbihlLHQscj1jLmFjdGl2ZSgpKXtjb25zdCBuPUJvb2xlYW4odD09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQucm9vdCk7aWYobil7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW59Y29uc3Qgcz1yJiYoMCxhLmdldFNwYW5Db250ZXh0KShyKTtpZihpc1NwYW5Db250ZXh0KHMpJiYoMCxpLmlzU3BhbkNvbnRleHRWYWxpZCkocykpe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFuKHMpfWVsc2V7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW59fXN0YXJ0QWN0aXZlU3BhbihlLHQscixuKXtsZXQgbztsZXQgaTtsZXQgcztpZihhcmd1bWVudHMubGVuZ3RoPDIpe3JldHVybn1lbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGg9PT0yKXtzPXR9ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Myl7bz10O3M9cn1lbHNle289dDtpPXI7cz1ufWNvbnN0IHU9aSE9PW51bGwmJmkhPT12b2lkIDA/aTpjLmFjdGl2ZSgpO2NvbnN0IGw9dGhpcy5zdGFydFNwYW4oZSxvLHUpO2NvbnN0IGc9KDAsYS5zZXRTcGFuKSh1LGwpO3JldHVybiBjLndpdGgoZyxzLHVuZGVmaW5lZCxsKX19dC5Ob29wVHJhY2VyPU5vb3BUcmFjZXI7ZnVuY3Rpb24gaXNTcGFuQ29udGV4dChlKXtyZXR1cm4gdHlwZW9mIGU9PT1cIm9iamVjdFwiJiZ0eXBlb2YgZVtcInNwYW5JZFwiXT09PVwic3RyaW5nXCImJnR5cGVvZiBlW1widHJhY2VJZFwiXT09PVwic3RyaW5nXCImJnR5cGVvZiBlW1widHJhY2VGbGFnc1wiXT09PVwibnVtYmVyXCJ9fSwxMjQ6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVHJhY2VyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cig2MTQpO2NsYXNzIE5vb3BUcmFjZXJQcm92aWRlcntnZXRUcmFjZXIoZSx0LHIpe3JldHVybiBuZXcgbi5Ob29wVHJhY2VyfX10Lk5vb3BUcmFjZXJQcm92aWRlcj1Ob29wVHJhY2VyUHJvdmlkZXJ9LDEyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3h5VHJhY2VyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjb25zdCBhPW5ldyBuLk5vb3BUcmFjZXI7Y2xhc3MgUHJveHlUcmFjZXJ7Y29uc3RydWN0b3IoZSx0LHIsbil7dGhpcy5fcHJvdmlkZXI9ZTt0aGlzLm5hbWU9dDt0aGlzLnZlcnNpb249cjt0aGlzLm9wdGlvbnM9bn1zdGFydFNwYW4oZSx0LHIpe3JldHVybiB0aGlzLl9nZXRUcmFjZXIoKS5zdGFydFNwYW4oZSx0LHIpfXN0YXJ0QWN0aXZlU3BhbihlLHQscixuKXtjb25zdCBhPXRoaXMuX2dldFRyYWNlcigpO3JldHVybiBSZWZsZWN0LmFwcGx5KGEuc3RhcnRBY3RpdmVTcGFuLGEsYXJndW1lbnRzKX1fZ2V0VHJhY2VyKCl7aWYodGhpcy5fZGVsZWdhdGUpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZX1jb25zdCBlPXRoaXMuX3Byb3ZpZGVyLmdldERlbGVnYXRlVHJhY2VyKHRoaXMubmFtZSx0aGlzLnZlcnNpb24sdGhpcy5vcHRpb25zKTtpZighZSl7cmV0dXJuIGF9dGhpcy5fZGVsZWdhdGU9ZTtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9fXQuUHJveHlUcmFjZXI9UHJveHlUcmFjZXJ9LDg0NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3h5VHJhY2VyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMjUpO2NvbnN0IGE9cigxMjQpO2NvbnN0IG89bmV3IGEuTm9vcFRyYWNlclByb3ZpZGVyO2NsYXNzIFByb3h5VHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXt2YXIgYTtyZXR1cm4oYT10aGlzLmdldERlbGVnYXRlVHJhY2VyKGUsdCxyKSkhPT1udWxsJiZhIT09dm9pZCAwP2E6bmV3IG4uUHJveHlUcmFjZXIodGhpcyxlLHQscil9Z2V0RGVsZWdhdGUoKXt2YXIgZTtyZXR1cm4oZT10aGlzLl9kZWxlZ2F0ZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6b31zZXREZWxlZ2F0ZShlKXt0aGlzLl9kZWxlZ2F0ZT1lfWdldERlbGVnYXRlVHJhY2VyKGUsdCxyKXt2YXIgbjtyZXR1cm4obj10aGlzLl9kZWxlZ2F0ZSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmdldFRyYWNlcihlLHQscil9fXQuUHJveHlUcmFjZXJQcm92aWRlcj1Qcm94eVRyYWNlclByb3ZpZGVyfSw5OTY6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU2FtcGxpbmdEZWNpc2lvbj12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PVF9SRUNPUkRcIl09MF09XCJOT1RfUkVDT1JEXCI7ZVtlW1wiUkVDT1JEXCJdPTFdPVwiUkVDT1JEXCI7ZVtlW1wiUkVDT1JEX0FORF9TQU1QTEVEXCJdPTJdPVwiUkVDT1JEX0FORF9TQU1QTEVEXCJ9KShyPXQuU2FtcGxpbmdEZWNpc2lvbnx8KHQuU2FtcGxpbmdEZWNpc2lvbj17fSkpfSw2MDc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5nZXRTcGFuQ29udGV4dD10LnNldFNwYW5Db250ZXh0PXQuZGVsZXRlU3Bhbj10LnNldFNwYW49dC5nZXRBY3RpdmVTcGFuPXQuZ2V0U3Bhbj12b2lkIDA7Y29uc3Qgbj1yKDc4MCk7Y29uc3QgYT1yKDQwMyk7Y29uc3Qgbz1yKDQ5MSk7Y29uc3QgaT0oMCxuLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBDb250ZXh0IEtleSBTUEFOXCIpO2Z1bmN0aW9uIGdldFNwYW4oZSl7cmV0dXJuIGUuZ2V0VmFsdWUoaSl8fHVuZGVmaW5lZH10LmdldFNwYW49Z2V0U3BhbjtmdW5jdGlvbiBnZXRBY3RpdmVTcGFuKCl7cmV0dXJuIGdldFNwYW4oby5Db250ZXh0QVBJLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfXQuZ2V0QWN0aXZlU3Bhbj1nZXRBY3RpdmVTcGFuO2Z1bmN0aW9uIHNldFNwYW4oZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShpLHQpfXQuc2V0U3Bhbj1zZXRTcGFuO2Z1bmN0aW9uIGRlbGV0ZVNwYW4oZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUoaSl9dC5kZWxldGVTcGFuPWRlbGV0ZVNwYW47ZnVuY3Rpb24gc2V0U3BhbkNvbnRleHQoZSx0KXtyZXR1cm4gc2V0U3BhbihlLG5ldyBhLk5vblJlY29yZGluZ1NwYW4odCkpfXQuc2V0U3BhbkNvbnRleHQ9c2V0U3BhbkNvbnRleHQ7ZnVuY3Rpb24gZ2V0U3BhbkNvbnRleHQoZSl7dmFyIHQ7cmV0dXJuKHQ9Z2V0U3BhbihlKSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnNwYW5Db250ZXh0KCl9dC5nZXRTcGFuQ29udGV4dD1nZXRTcGFuQ29udGV4dH0sMzI1OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VTdGF0ZUltcGw9dm9pZCAwO2NvbnN0IG49cig1NjQpO2NvbnN0IGE9MzI7Y29uc3Qgbz01MTI7Y29uc3QgaT1cIixcIjtjb25zdCBjPVwiPVwiO2NsYXNzIFRyYWNlU3RhdGVJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2ludGVybmFsU3RhdGU9bmV3IE1hcDtpZihlKXRoaXMuX3BhcnNlKGUpfXNldChlLHQpe2NvbnN0IHI9dGhpcy5fY2xvbmUoKTtpZihyLl9pbnRlcm5hbFN0YXRlLmhhcyhlKSl7ci5faW50ZXJuYWxTdGF0ZS5kZWxldGUoZSl9ci5faW50ZXJuYWxTdGF0ZS5zZXQoZSx0KTtyZXR1cm4gcn11bnNldChlKXtjb25zdCB0PXRoaXMuX2Nsb25lKCk7dC5faW50ZXJuYWxTdGF0ZS5kZWxldGUoZSk7cmV0dXJuIHR9Z2V0KGUpe3JldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlLmdldChlKX1zZXJpYWxpemUoKXtyZXR1cm4gdGhpcy5fa2V5cygpLnJlZHVjZSgoKGUsdCk9PntlLnB1c2godCtjK3RoaXMuZ2V0KHQpKTtyZXR1cm4gZX0pLFtdKS5qb2luKGkpfV9wYXJzZShlKXtpZihlLmxlbmd0aD5vKXJldHVybjt0aGlzLl9pbnRlcm5hbFN0YXRlPWUuc3BsaXQoaSkucmV2ZXJzZSgpLnJlZHVjZSgoKGUsdCk9Pntjb25zdCByPXQudHJpbSgpO2NvbnN0IGE9ci5pbmRleE9mKGMpO2lmKGEhPT0tMSl7Y29uc3Qgbz1yLnNsaWNlKDAsYSk7Y29uc3QgaT1yLnNsaWNlKGErMSx0Lmxlbmd0aCk7aWYoKDAsbi52YWxpZGF0ZUtleSkobykmJigwLG4udmFsaWRhdGVWYWx1ZSkoaSkpe2Uuc2V0KG8saSl9ZWxzZXt9fXJldHVybiBlfSksbmV3IE1hcCk7aWYodGhpcy5faW50ZXJuYWxTdGF0ZS5zaXplPmEpe3RoaXMuX2ludGVybmFsU3RhdGU9bmV3IE1hcChBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUuZW50cmllcygpKS5yZXZlcnNlKCkuc2xpY2UoMCxhKSl9fV9rZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5rZXlzKCkpLnJldmVyc2UoKX1fY2xvbmUoKXtjb25zdCBlPW5ldyBUcmFjZVN0YXRlSW1wbDtlLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAodGhpcy5faW50ZXJuYWxTdGF0ZSk7cmV0dXJuIGV9fXQuVHJhY2VTdGF0ZUltcGw9VHJhY2VTdGF0ZUltcGx9LDU2NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC52YWxpZGF0ZVZhbHVlPXQudmFsaWRhdGVLZXk9dm9pZCAwO2NvbnN0IHI9XCJbXzAtOWEtei0qL11cIjtjb25zdCBuPWBbYS16XSR7cn17MCwyNTV9YDtjb25zdCBhPWBbYS16MC05XSR7cn17MCwyNDB9QFthLXpdJHtyfXswLDEzfWA7Y29uc3Qgbz1uZXcgUmVnRXhwKGBeKD86JHtufXwke2F9KSRgKTtjb25zdCBpPS9eWyAtfl17MCwyNTV9WyEtfl0kLztjb25zdCBjPS8sfD0vO2Z1bmN0aW9uIHZhbGlkYXRlS2V5KGUpe3JldHVybiBvLnRlc3QoZSl9dC52YWxpZGF0ZUtleT12YWxpZGF0ZUtleTtmdW5jdGlvbiB2YWxpZGF0ZVZhbHVlKGUpe3JldHVybiBpLnRlc3QoZSkmJiFjLnRlc3QoZSl9dC52YWxpZGF0ZVZhbHVlPXZhbGlkYXRlVmFsdWV9LDk4OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlVHJhY2VTdGF0ZT12b2lkIDA7Y29uc3Qgbj1yKDMyNSk7ZnVuY3Rpb24gY3JlYXRlVHJhY2VTdGF0ZShlKXtyZXR1cm4gbmV3IG4uVHJhY2VTdGF0ZUltcGwoZSl9dC5jcmVhdGVUcmFjZVN0YXRlPWNyZWF0ZVRyYWNlU3RhdGV9LDQ3NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LklOVkFMSURfU1BBTl9DT05URVhUPXQuSU5WQUxJRF9UUkFDRUlEPXQuSU5WQUxJRF9TUEFOSUQ9dm9pZCAwO2NvbnN0IG49cig0NzUpO3QuSU5WQUxJRF9TUEFOSUQ9XCIwMDAwMDAwMDAwMDAwMDAwXCI7dC5JTlZBTElEX1RSQUNFSUQ9XCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9e3RyYWNlSWQ6dC5JTlZBTElEX1RSQUNFSUQsc3BhbklkOnQuSU5WQUxJRF9TUEFOSUQsdHJhY2VGbGFnczpuLlRyYWNlRmxhZ3MuTk9ORX19LDM1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuS2luZD12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIklOVEVSTkFMXCJdPTBdPVwiSU5URVJOQUxcIjtlW2VbXCJTRVJWRVJcIl09MV09XCJTRVJWRVJcIjtlW2VbXCJDTElFTlRcIl09Ml09XCJDTElFTlRcIjtlW2VbXCJQUk9EVUNFUlwiXT0zXT1cIlBST0RVQ0VSXCI7ZVtlW1wiQ09OU1VNRVJcIl09NF09XCJDT05TVU1FUlwifSkocj10LlNwYW5LaW5kfHwodC5TcGFuS2luZD17fSkpfSwxMzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC53cmFwU3BhbkNvbnRleHQ9dC5pc1NwYW5Db250ZXh0VmFsaWQ9dC5pc1ZhbGlkU3BhbklkPXQuaXNWYWxpZFRyYWNlSWQ9dm9pZCAwO2NvbnN0IG49cig0NzYpO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89L14oWzAtOWEtZl17MzJ9KSQvaTtjb25zdCBpPS9eWzAtOWEtZl17MTZ9JC9pO2Z1bmN0aW9uIGlzVmFsaWRUcmFjZUlkKGUpe3JldHVybiBvLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfVFJBQ0VJRH10LmlzVmFsaWRUcmFjZUlkPWlzVmFsaWRUcmFjZUlkO2Z1bmN0aW9uIGlzVmFsaWRTcGFuSWQoZSl7cmV0dXJuIGkudGVzdChlKSYmZSE9PW4uSU5WQUxJRF9TUEFOSUR9dC5pc1ZhbGlkU3BhbklkPWlzVmFsaWRTcGFuSWQ7ZnVuY3Rpb24gaXNTcGFuQ29udGV4dFZhbGlkKGUpe3JldHVybiBpc1ZhbGlkVHJhY2VJZChlLnRyYWNlSWQpJiZpc1ZhbGlkU3BhbklkKGUuc3BhbklkKX10LmlzU3BhbkNvbnRleHRWYWxpZD1pc1NwYW5Db250ZXh0VmFsaWQ7ZnVuY3Rpb24gd3JhcFNwYW5Db250ZXh0KGUpe3JldHVybiBuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKGUpfXQud3JhcFNwYW5Db250ZXh0PXdyYXBTcGFuQ29udGV4dH0sODQ3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNwYW5TdGF0dXNDb2RlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiVU5TRVRcIl09MF09XCJVTlNFVFwiO2VbZVtcIk9LXCJdPTFdPVwiT0tcIjtlW2VbXCJFUlJPUlwiXT0yXT1cIkVSUk9SXCJ9KShyPXQuU3BhblN0YXR1c0NvZGV8fCh0LlNwYW5TdGF0dXNDb2RlPXt9KSl9LDQ3NTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUZsYWdzPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiTk9ORVwiXT0wXT1cIk5PTkVcIjtlW2VbXCJTQU1QTEVEXCJdPTFdPVwiU0FNUExFRFwifSkocj10LlRyYWNlRmxhZ3N8fCh0LlRyYWNlRmxhZ3M9e30pKX0sNTIxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlZFUlNJT049dm9pZCAwO3QuVkVSU0lPTj1cIjEuNi4wXCJ9fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHIpe3ZhciBuPXRbcl07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgYT10W3JdPXtleHBvcnRzOnt9fTt2YXIgbz10cnVlO3RyeXtlW3JdLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO289ZmFsc2V9ZmluYWxseXtpZihvKWRlbGV0ZSB0W3JdfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciByPXt9OygoKT0+e3ZhciBlPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTtlLnRyYWNlPWUucHJvcGFnYXRpb249ZS5tZXRyaWNzPWUuZGlhZz1lLmNvbnRleHQ9ZS5JTlZBTElEX1NQQU5fQ09OVEVYVD1lLklOVkFMSURfVFJBQ0VJRD1lLklOVkFMSURfU1BBTklEPWUuaXNWYWxpZFNwYW5JZD1lLmlzVmFsaWRUcmFjZUlkPWUuaXNTcGFuQ29udGV4dFZhbGlkPWUuY3JlYXRlVHJhY2VTdGF0ZT1lLlRyYWNlRmxhZ3M9ZS5TcGFuU3RhdHVzQ29kZT1lLlNwYW5LaW5kPWUuU2FtcGxpbmdEZWNpc2lvbj1lLlByb3h5VHJhY2VyUHJvdmlkZXI9ZS5Qcm94eVRyYWNlcj1lLmRlZmF1bHRUZXh0TWFwU2V0dGVyPWUuZGVmYXVsdFRleHRNYXBHZXR0ZXI9ZS5WYWx1ZVR5cGU9ZS5jcmVhdGVOb29wTWV0ZXI9ZS5EaWFnTG9nTGV2ZWw9ZS5EaWFnQ29uc29sZUxvZ2dlcj1lLlJPT1RfQ09OVEVYVD1lLmNyZWF0ZUNvbnRleHRLZXk9ZS5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9dm9pZCAwO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oMzY5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfX0pO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oNzgwKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZUNvbnRleHRLZXlcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmNyZWF0ZUNvbnRleHRLZXl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJST09UX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBuLlJPT1RfQ09OVEVYVH19KTt2YXIgYT1fX25jY3dwY2tfcmVxdWlyZV9fKDk3Mik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJEaWFnQ29uc29sZUxvZ2dlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuRGlhZ0NvbnNvbGVMb2dnZXJ9fSk7dmFyIG89X19uY2N3cGNrX3JlcXVpcmVfXyg5NTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0xvZ0xldmVsXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5EaWFnTG9nTGV2ZWx9fSk7dmFyIGk9X19uY2N3cGNrX3JlcXVpcmVfXygxMDIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlTm9vcE1ldGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaS5jcmVhdGVOb29wTWV0ZXJ9fSk7dmFyIGM9X19uY2N3cGNrX3JlcXVpcmVfXyg5MDEpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVmFsdWVUeXBlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5WYWx1ZVR5cGV9fSk7dmFyIHM9X19uY2N3cGNrX3JlcXVpcmVfXygxOTQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFRleHRNYXBHZXR0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHRUZXh0TWFwR2V0dGVyfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFRleHRNYXBTZXR0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHRUZXh0TWFwU2V0dGVyfX0pO3ZhciB1PV9fbmNjd3Bja19yZXF1aXJlX18oMTI1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlByb3h5VHJhY2VyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdS5Qcm94eVRyYWNlcn19KTt2YXIgbD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclByb3ZpZGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5Qcm94eVRyYWNlclByb3ZpZGVyfX0pO3ZhciBnPV9fbmNjd3Bja19yZXF1aXJlX18oOTk2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNhbXBsaW5nRGVjaXNpb25cIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBnLlNhbXBsaW5nRGVjaXNpb259fSk7dmFyIHA9X19uY2N3cGNrX3JlcXVpcmVfXygzNTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiU3BhbktpbmRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBwLlNwYW5LaW5kfX0pO3ZhciBkPV9fbmNjd3Bja19yZXF1aXJlX18oODQ3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5TdGF0dXNDb2RlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZC5TcGFuU3RhdHVzQ29kZX19KTt2YXIgXz1fX25jY3dwY2tfcmVxdWlyZV9fKDQ3NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJUcmFjZUZsYWdzXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXy5UcmFjZUZsYWdzfX0pO3ZhciBmPV9fbmNjd3Bja19yZXF1aXJlX18oOTgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlVHJhY2VTdGF0ZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGYuY3JlYXRlVHJhY2VTdGF0ZX19KTt2YXIgYj1fX25jY3dwY2tfcmVxdWlyZV9fKDEzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1NwYW5Db250ZXh0VmFsaWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzU3BhbkNvbnRleHRWYWxpZH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzVmFsaWRUcmFjZUlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkVHJhY2VJZH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzVmFsaWRTcGFuSWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzVmFsaWRTcGFuSWR9fSk7dmFyIHY9X19uY2N3cGNrX3JlcXVpcmVfXyg0NzYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOSURcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTklEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9UUkFDRUlEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1RSQUNFSUR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJJTlZBTElEX1NQQU5fQ09OVEVYVFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9TUEFOX0NPTlRFWFR9fSk7Y29uc3QgTz1fX25jY3dwY2tfcmVxdWlyZV9fKDY3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNvbnRleHRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBPLmNvbnRleHR9fSk7Y29uc3QgUD1fX25jY3dwY2tfcmVxdWlyZV9fKDUwNik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkaWFnXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUC5kaWFnfX0pO2NvbnN0IE49X19uY2N3cGNrX3JlcXVpcmVfXyg4ODYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwibWV0cmljc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4ubWV0cmljc319KTtjb25zdCBTPV9fbmNjd3Bja19yZXF1aXJlX18oOTM5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3BhZ2F0aW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUy5wcm9wYWdhdGlvbn19KTtjb25zdCBDPV9fbmNjd3Bja19yZXF1aXJlX18oODQ1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInRyYWNlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQy50cmFjZX19KTtlW1wiZGVmYXVsdFwiXT17Y29udGV4dDpPLmNvbnRleHQsZGlhZzpQLmRpYWcsbWV0cmljczpOLm1ldHJpY3MscHJvcGFnYXRpb246Uy5wcm9wYWdhdGlvbix0cmFjZTpDLnRyYWNlfX0pKCk7bW9kdWxlLmV4cG9ydHM9cn0pKCk7Il0sIm5hbWVzIjpbImUiLCJ0IiwiciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJDb250ZXh0QVBJIiwibiIsImEiLCJvIiwiaSIsImMiLCJOb29wQ29udGV4dE1hbmFnZXIiLCJjb25zdHJ1Y3RvciIsImdldEluc3RhbmNlIiwiX2luc3RhbmNlIiwic2V0R2xvYmFsQ29udGV4dE1hbmFnZXIiLCJyZWdpc3Rlckdsb2JhbCIsIkRpYWdBUEkiLCJpbnN0YW5jZSIsImFjdGl2ZSIsIl9nZXRDb250ZXh0TWFuYWdlciIsIndpdGgiLCJiaW5kIiwiZ2V0R2xvYmFsIiwiZGlzYWJsZSIsInVucmVnaXN0ZXJHbG9iYWwiLCJfbG9nUHJveHkiLCJzZXRMb2dnZXIiLCJsb2dMZXZlbCIsIkRpYWdMb2dMZXZlbCIsIklORk8iLCJzIiwiRXJyb3IiLCJlcnJvciIsInN0YWNrIiwibWVzc2FnZSIsInUiLCJsIiwiY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyIiwic3VwcHJlc3NPdmVycmlkZU1lc3NhZ2UiLCJ3YXJuIiwiY3JlYXRlQ29tcG9uZW50TG9nZ2VyIiwiRGlhZ0NvbXBvbmVudExvZ2dlciIsInZlcmJvc2UiLCJkZWJ1ZyIsImluZm8iLCJNZXRyaWNzQVBJIiwic2V0R2xvYmFsTWV0ZXJQcm92aWRlciIsImdldE1ldGVyUHJvdmlkZXIiLCJOT09QX01FVEVSX1BST1ZJREVSIiwiZ2V0TWV0ZXIiLCJQcm9wYWdhdGlvbkFQSSIsIk5vb3BUZXh0TWFwUHJvcGFnYXRvciIsImNyZWF0ZUJhZ2dhZ2UiLCJnZXRCYWdnYWdlIiwiZ2V0QWN0aXZlQmFnZ2FnZSIsInNldEJhZ2dhZ2UiLCJkZWxldGVCYWdnYWdlIiwic2V0R2xvYmFsUHJvcGFnYXRvciIsImluamVjdCIsImRlZmF1bHRUZXh0TWFwU2V0dGVyIiwiX2dldEdsb2JhbFByb3BhZ2F0b3IiLCJleHRyYWN0IiwiZGVmYXVsdFRleHRNYXBHZXR0ZXIiLCJmaWVsZHMiLCJUcmFjZUFQSSIsIl9wcm94eVRyYWNlclByb3ZpZGVyIiwiUHJveHlUcmFjZXJQcm92aWRlciIsIndyYXBTcGFuQ29udGV4dCIsImlzU3BhbkNvbnRleHRWYWxpZCIsImRlbGV0ZVNwYW4iLCJnZXRTcGFuIiwiZ2V0QWN0aXZlU3BhbiIsImdldFNwYW5Db250ZXh0Iiwic2V0U3BhbiIsInNldFNwYW5Db250ZXh0Iiwic2V0R2xvYmFsVHJhY2VyUHJvdmlkZXIiLCJzZXREZWxlZ2F0ZSIsImdldFRyYWNlclByb3ZpZGVyIiwiZ2V0VHJhY2VyIiwiY3JlYXRlQ29udGV4dEtleSIsImdldFZhbHVlIiwidW5kZWZpbmVkIiwic2V0VmFsdWUiLCJkZWxldGVWYWx1ZSIsIkJhZ2dhZ2VJbXBsIiwiX2VudHJpZXMiLCJNYXAiLCJnZXRFbnRyeSIsImdldCIsImFzc2lnbiIsImdldEFsbEVudHJpZXMiLCJBcnJheSIsImZyb20iLCJlbnRyaWVzIiwibWFwIiwic2V0RW50cnkiLCJzZXQiLCJyZW1vdmVFbnRyeSIsImRlbGV0ZSIsInJlbW92ZUVudHJpZXMiLCJjbGVhciIsImJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sIiwiU3ltYm9sIiwiYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nIiwiX19UWVBFX18iLCJ0b1N0cmluZyIsImNvbnRleHQiLCJST09UX0NPTlRFWFQiLCJjYWxsIiwiZW5hYmxlIiwiZm9yIiwiQmFzZUNvbnRleHQiLCJfY3VycmVudENvbnRleHQiLCJkaWFnIiwiX25hbWVzcGFjZSIsIm5hbWVzcGFjZSIsImxvZ1Byb3h5IiwidW5zaGlmdCIsIkRpYWdDb25zb2xlTG9nZ2VyIiwiX2NvbnNvbGVGdW5jIiwiY29uc29sZSIsImxvZyIsImFwcGx5IiwibGVuZ3RoIiwiTk9ORSIsIkFMTCIsIl9maWx0ZXJGdW5jIiwiRVJST1IiLCJXQVJOIiwiREVCVUciLCJWRVJCT1NFIiwiVkVSU0lPTiIsInNwbGl0IiwiX2dsb2JhbFRoaXMiLCJ2ZXJzaW9uIiwiaXNDb21wYXRpYmxlIiwiX21ha2VDb21wYXRpYmlsaXR5Q2hlY2siLCJTZXQiLCJtYXRjaCIsIm1ham9yIiwibWlub3IiLCJwYXRjaCIsInByZXJlbGVhc2UiLCJpc0V4YWN0bWF0Y2giLCJfcmVqZWN0IiwiYWRkIiwiX2FjY2VwdCIsImhhcyIsIm1ldHJpY3MiLCJWYWx1ZVR5cGUiLCJjcmVhdGVOb29wTWV0ZXIiLCJOT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQyIsIk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUMiLCJOT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUMiLCJOT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUMiLCJOT09QX0hJU1RPR1JBTV9NRVRSSUMiLCJOT09QX0NPVU5URVJfTUVUUklDIiwiTk9PUF9NRVRFUiIsIk5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYyIsIk5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWMiLCJOb29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWMiLCJOb29wT2JzZXJ2YWJsZU1ldHJpYyIsIk5vb3BIaXN0b2dyYW1NZXRyaWMiLCJOb29wVXBEb3duQ291bnRlck1ldHJpYyIsIk5vb3BDb3VudGVyTWV0cmljIiwiTm9vcE1ldHJpYyIsIk5vb3BNZXRlciIsImNyZWF0ZUhpc3RvZ3JhbSIsImNyZWF0ZUNvdW50ZXIiLCJjcmVhdGVVcERvd25Db3VudGVyIiwiY3JlYXRlT2JzZXJ2YWJsZUdhdWdlIiwiY3JlYXRlT2JzZXJ2YWJsZUNvdW50ZXIiLCJjcmVhdGVPYnNlcnZhYmxlVXBEb3duQ291bnRlciIsImFkZEJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrIiwicmVtb3ZlQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2siLCJyZWNvcmQiLCJhZGRDYWxsYmFjayIsInJlbW92ZUNhbGxiYWNrIiwiTm9vcE1ldGVyUHJvdmlkZXIiLCJfX2NyZWF0ZUJpbmRpbmciLCJjcmVhdGUiLCJlbnVtZXJhYmxlIiwiX19leHBvcnRTdGFyIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJnbG9iYWxUaGlzIiwiZ2xvYmFsIiwicHJvcGFnYXRpb24iLCJrZXlzIiwidHJhY2UiLCJOb25SZWNvcmRpbmdTcGFuIiwiSU5WQUxJRF9TUEFOX0NPTlRFWFQiLCJfc3BhbkNvbnRleHQiLCJzcGFuQ29udGV4dCIsInNldEF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZXMiLCJhZGRFdmVudCIsInNldFN0YXR1cyIsInVwZGF0ZU5hbWUiLCJlbmQiLCJpc1JlY29yZGluZyIsInJlY29yZEV4Y2VwdGlvbiIsIk5vb3BUcmFjZXIiLCJzdGFydFNwYW4iLCJCb29sZWFuIiwicm9vdCIsImlzU3BhbkNvbnRleHQiLCJzdGFydEFjdGl2ZVNwYW4iLCJhcmd1bWVudHMiLCJnIiwiTm9vcFRyYWNlclByb3ZpZGVyIiwiUHJveHlUcmFjZXIiLCJfcHJvdmlkZXIiLCJuYW1lIiwib3B0aW9ucyIsIl9nZXRUcmFjZXIiLCJSZWZsZWN0IiwiX2RlbGVnYXRlIiwiZ2V0RGVsZWdhdGVUcmFjZXIiLCJnZXREZWxlZ2F0ZSIsIlNhbXBsaW5nRGVjaXNpb24iLCJUcmFjZVN0YXRlSW1wbCIsIl9pbnRlcm5hbFN0YXRlIiwiX3BhcnNlIiwiX2Nsb25lIiwidW5zZXQiLCJzZXJpYWxpemUiLCJfa2V5cyIsInJlZHVjZSIsInB1c2giLCJqb2luIiwicmV2ZXJzZSIsInRyaW0iLCJpbmRleE9mIiwic2xpY2UiLCJ2YWxpZGF0ZUtleSIsInZhbGlkYXRlVmFsdWUiLCJzaXplIiwiUmVnRXhwIiwidGVzdCIsImNyZWF0ZVRyYWNlU3RhdGUiLCJJTlZBTElEX1RSQUNFSUQiLCJJTlZBTElEX1NQQU5JRCIsInRyYWNlSWQiLCJzcGFuSWQiLCJ0cmFjZUZsYWdzIiwiVHJhY2VGbGFncyIsIlNwYW5LaW5kIiwiaXNWYWxpZFNwYW5JZCIsImlzVmFsaWRUcmFjZUlkIiwiU3BhblN0YXR1c0NvZGUiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwiZXhwb3J0cyIsImFiIiwiX19kaXJuYW1lIiwicCIsImQiLCJfIiwiZiIsImIiLCJ2IiwiTyIsIlAiLCJOIiwiUyIsIkMiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/compiled/cookie/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/next/dist/compiled/cookie/index.js ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var e = {};\n (()=>{\n var r = e;\n /*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */ r.parse = parse;\n r.serialize = serialize;\n var i = decodeURIComponent;\n var t = encodeURIComponent;\n var a = /; */;\n var n = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n function parse(e, r) {\n if (typeof e !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var t = {};\n var n = r || {};\n var o = e.split(a);\n var s = n.decode || i;\n for(var p = 0; p < o.length; p++){\n var f = o[p];\n var u = f.indexOf(\"=\");\n if (u < 0) {\n continue;\n }\n var v = f.substr(0, u).trim();\n var c = f.substr(++u, f.length).trim();\n if ('\"' == c[0]) {\n c = c.slice(1, -1);\n }\n if (undefined == t[v]) {\n t[v] = tryDecode(c, s);\n }\n }\n return t;\n }\n function serialize(e, r, i) {\n var a = i || {};\n var o = a.encode || t;\n if (typeof o !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!n.test(e)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var s = o(r);\n if (s && !n.test(s)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var p = e + \"=\" + s;\n if (null != a.maxAge) {\n var f = a.maxAge - 0;\n if (isNaN(f) || !isFinite(f)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n p += \"; Max-Age=\" + Math.floor(f);\n }\n if (a.domain) {\n if (!n.test(a.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n p += \"; Domain=\" + a.domain;\n }\n if (a.path) {\n if (!n.test(a.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n p += \"; Path=\" + a.path;\n }\n if (a.expires) {\n if (typeof a.expires.toUTCString !== \"function\") {\n throw new TypeError(\"option expires is invalid\");\n }\n p += \"; Expires=\" + a.expires.toUTCString();\n }\n if (a.httpOnly) {\n p += \"; HttpOnly\";\n }\n if (a.secure) {\n p += \"; Secure\";\n }\n if (a.sameSite) {\n var u = typeof a.sameSite === \"string\" ? a.sameSite.toLowerCase() : a.sameSite;\n switch(u){\n case true:\n p += \"; SameSite=Strict\";\n break;\n case \"lax\":\n p += \"; SameSite=Lax\";\n break;\n case \"strict\":\n p += \"; SameSite=Strict\";\n break;\n case \"none\":\n p += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return p;\n }\n function tryDecode(e, r) {\n try {\n return r(e);\n } catch (r) {\n return e;\n }\n }\n })();\n module.exports = e;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9jb29raWUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLO0lBQWEsSUFBRyxPQUFPQSx3QkFBc0IsYUFBWUEsb0JBQW9CQyxFQUFFLEdBQUNDLFNBQVNBLEdBQUM7SUFBSSxJQUFJQyxJQUFFLENBQUM7SUFBRztRQUFLLElBQUlDLElBQUVEO1FBQ3pIOzs7OztDQUtDLEdBQUVDLEVBQUVDLEtBQUssR0FBQ0E7UUFBTUQsRUFBRUUsU0FBUyxHQUFDQTtRQUFVLElBQUlDLElBQUVDO1FBQW1CLElBQUlDLElBQUVDO1FBQW1CLElBQUlDLElBQUU7UUFBTSxJQUFJQyxJQUFFO1FBQXdDLFNBQVNQLE1BQU1GLENBQUMsRUFBQ0MsQ0FBQztZQUFFLElBQUcsT0FBT0QsTUFBSSxVQUFTO2dCQUFDLE1BQU0sSUFBSVUsVUFBVTtZQUFnQztZQUFDLElBQUlKLElBQUUsQ0FBQztZQUFFLElBQUlHLElBQUVSLEtBQUcsQ0FBQztZQUFFLElBQUlVLElBQUVYLEVBQUVZLEtBQUssQ0FBQ0o7WUFBRyxJQUFJSyxJQUFFSixFQUFFSyxNQUFNLElBQUVWO1lBQUUsSUFBSSxJQUFJVyxJQUFFLEdBQUVBLElBQUVKLEVBQUVLLE1BQU0sRUFBQ0QsSUFBSTtnQkFBQyxJQUFJRSxJQUFFTixDQUFDLENBQUNJLEVBQUU7Z0JBQUMsSUFBSUcsSUFBRUQsRUFBRUUsT0FBTyxDQUFDO2dCQUFLLElBQUdELElBQUUsR0FBRTtvQkFBQztnQkFBUTtnQkFBQyxJQUFJRSxJQUFFSCxFQUFFSSxNQUFNLENBQUMsR0FBRUgsR0FBR0ksSUFBSTtnQkFBRyxJQUFJQyxJQUFFTixFQUFFSSxNQUFNLENBQUMsRUFBRUgsR0FBRUQsRUFBRUQsTUFBTSxFQUFFTSxJQUFJO2dCQUFHLElBQUcsT0FBS0MsQ0FBQyxDQUFDLEVBQUUsRUFBQztvQkFBQ0EsSUFBRUEsRUFBRUMsS0FBSyxDQUFDLEdBQUUsQ0FBQztnQkFBRTtnQkFBQyxJQUFHQyxhQUFXbkIsQ0FBQyxDQUFDYyxFQUFFLEVBQUM7b0JBQUNkLENBQUMsQ0FBQ2MsRUFBRSxHQUFDTSxVQUFVSCxHQUFFVjtnQkFBRTtZQUFDO1lBQUMsT0FBT1A7UUFBQztRQUFDLFNBQVNILFVBQVVILENBQUMsRUFBQ0MsQ0FBQyxFQUFDRyxDQUFDO1lBQUUsSUFBSUksSUFBRUosS0FBRyxDQUFDO1lBQUUsSUFBSU8sSUFBRUgsRUFBRW1CLE1BQU0sSUFBRXJCO1lBQUUsSUFBRyxPQUFPSyxNQUFJLFlBQVc7Z0JBQUMsTUFBTSxJQUFJRCxVQUFVO1lBQTJCO1lBQUMsSUFBRyxDQUFDRCxFQUFFbUIsSUFBSSxDQUFDNUIsSUFBRztnQkFBQyxNQUFNLElBQUlVLFVBQVU7WUFBMkI7WUFBQyxJQUFJRyxJQUFFRixFQUFFVjtZQUFHLElBQUdZLEtBQUcsQ0FBQ0osRUFBRW1CLElBQUksQ0FBQ2YsSUFBRztnQkFBQyxNQUFNLElBQUlILFVBQVU7WUFBMEI7WUFBQyxJQUFJSyxJQUFFZixJQUFFLE1BQUlhO1lBQUUsSUFBRyxRQUFNTCxFQUFFcUIsTUFBTSxFQUFDO2dCQUFDLElBQUlaLElBQUVULEVBQUVxQixNQUFNLEdBQUM7Z0JBQUUsSUFBR0MsTUFBTWIsTUFBSSxDQUFDYyxTQUFTZCxJQUFHO29CQUFDLE1BQU0sSUFBSVAsVUFBVTtnQkFBMkI7Z0JBQUNLLEtBQUcsZUFBYWlCLEtBQUtDLEtBQUssQ0FBQ2hCO1lBQUU7WUFBQyxJQUFHVCxFQUFFMEIsTUFBTSxFQUFDO2dCQUFDLElBQUcsQ0FBQ3pCLEVBQUVtQixJQUFJLENBQUNwQixFQUFFMEIsTUFBTSxHQUFFO29CQUFDLE1BQU0sSUFBSXhCLFVBQVU7Z0JBQTJCO2dCQUFDSyxLQUFHLGNBQVlQLEVBQUUwQixNQUFNO1lBQUE7WUFBQyxJQUFHMUIsRUFBRTJCLElBQUksRUFBQztnQkFBQyxJQUFHLENBQUMxQixFQUFFbUIsSUFBSSxDQUFDcEIsRUFBRTJCLElBQUksR0FBRTtvQkFBQyxNQUFNLElBQUl6QixVQUFVO2dCQUF5QjtnQkFBQ0ssS0FBRyxZQUFVUCxFQUFFMkIsSUFBSTtZQUFBO1lBQUMsSUFBRzNCLEVBQUU0QixPQUFPLEVBQUM7Z0JBQUMsSUFBRyxPQUFPNUIsRUFBRTRCLE9BQU8sQ0FBQ0MsV0FBVyxLQUFHLFlBQVc7b0JBQUMsTUFBTSxJQUFJM0IsVUFBVTtnQkFBNEI7Z0JBQUNLLEtBQUcsZUFBYVAsRUFBRTRCLE9BQU8sQ0FBQ0MsV0FBVztZQUFFO1lBQUMsSUFBRzdCLEVBQUU4QixRQUFRLEVBQUM7Z0JBQUN2QixLQUFHO1lBQVk7WUFBQyxJQUFHUCxFQUFFK0IsTUFBTSxFQUFDO2dCQUFDeEIsS0FBRztZQUFVO1lBQUMsSUFBR1AsRUFBRWdDLFFBQVEsRUFBQztnQkFBQyxJQUFJdEIsSUFBRSxPQUFPVixFQUFFZ0MsUUFBUSxLQUFHLFdBQVNoQyxFQUFFZ0MsUUFBUSxDQUFDQyxXQUFXLEtBQUdqQyxFQUFFZ0MsUUFBUTtnQkFBQyxPQUFPdEI7b0JBQUcsS0FBSzt3QkFBS0gsS0FBRzt3QkFBb0I7b0JBQU0sS0FBSTt3QkFBTUEsS0FBRzt3QkFBaUI7b0JBQU0sS0FBSTt3QkFBU0EsS0FBRzt3QkFBb0I7b0JBQU0sS0FBSTt3QkFBT0EsS0FBRzt3QkFBa0I7b0JBQU07d0JBQVEsTUFBTSxJQUFJTCxVQUFVO2dCQUE2QjtZQUFDO1lBQUMsT0FBT0s7UUFBQztRQUFDLFNBQVNXLFVBQVUxQixDQUFDLEVBQUNDLENBQUM7WUFBRSxJQUFHO2dCQUFDLE9BQU9BLEVBQUVEO1lBQUUsRUFBQyxPQUFNQyxHQUFFO2dCQUFDLE9BQU9EO1lBQUM7UUFBQztJQUFDO0lBQUswQyxPQUFPQyxPQUFPLEdBQUMzQztBQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvY29va2llL2luZGV4LmpzP2IyNWUiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBlPXt9OygoKT0+e3ZhciByPWU7XG4vKiFcbiAqIGNvb2tpZVxuICogQ29weXJpZ2h0KGMpIDIwMTItMjAxNCBSb21hbiBTaHR5bG1hblxuICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovci5wYXJzZT1wYXJzZTtyLnNlcmlhbGl6ZT1zZXJpYWxpemU7dmFyIGk9ZGVjb2RlVVJJQ29tcG9uZW50O3ZhciB0PWVuY29kZVVSSUNvbXBvbmVudDt2YXIgYT0vOyAqLzt2YXIgbj0vXltcXHUwMDA5XFx1MDAyMC1cXHUwMDdlXFx1MDA4MC1cXHUwMGZmXSskLztmdW5jdGlvbiBwYXJzZShlLHIpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0ciBtdXN0IGJlIGEgc3RyaW5nXCIpfXZhciB0PXt9O3ZhciBuPXJ8fHt9O3ZhciBvPWUuc3BsaXQoYSk7dmFyIHM9bi5kZWNvZGV8fGk7Zm9yKHZhciBwPTA7cDxvLmxlbmd0aDtwKyspe3ZhciBmPW9bcF07dmFyIHU9Zi5pbmRleE9mKFwiPVwiKTtpZih1PDApe2NvbnRpbnVlfXZhciB2PWYuc3Vic3RyKDAsdSkudHJpbSgpO3ZhciBjPWYuc3Vic3RyKCsrdSxmLmxlbmd0aCkudHJpbSgpO2lmKCdcIic9PWNbMF0pe2M9Yy5zbGljZSgxLC0xKX1pZih1bmRlZmluZWQ9PXRbdl0pe3Rbdl09dHJ5RGVjb2RlKGMscyl9fXJldHVybiB0fWZ1bmN0aW9uIHNlcmlhbGl6ZShlLHIsaSl7dmFyIGE9aXx8e307dmFyIG89YS5lbmNvZGV8fHQ7aWYodHlwZW9mIG8hPT1cImZ1bmN0aW9uXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZW5jb2RlIGlzIGludmFsaWRcIil9aWYoIW4udGVzdChlKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG5hbWUgaXMgaW52YWxpZFwiKX12YXIgcz1vKHIpO2lmKHMmJiFuLnRlc3Qocykpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCB2YWwgaXMgaW52YWxpZFwiKX12YXIgcD1lK1wiPVwiK3M7aWYobnVsbCE9YS5tYXhBZ2Upe3ZhciBmPWEubWF4QWdlLTA7aWYoaXNOYU4oZil8fCFpc0Zpbml0ZShmKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBtYXhBZ2UgaXMgaW52YWxpZFwiKX1wKz1cIjsgTWF4LUFnZT1cIitNYXRoLmZsb29yKGYpfWlmKGEuZG9tYWluKXtpZighbi50ZXN0KGEuZG9tYWluKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBkb21haW4gaXMgaW52YWxpZFwiKX1wKz1cIjsgRG9tYWluPVwiK2EuZG9tYWlufWlmKGEucGF0aCl7aWYoIW4udGVzdChhLnBhdGgpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHBhdGggaXMgaW52YWxpZFwiKX1wKz1cIjsgUGF0aD1cIithLnBhdGh9aWYoYS5leHBpcmVzKXtpZih0eXBlb2YgYS5leHBpcmVzLnRvVVRDU3RyaW5nIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGV4cGlyZXMgaXMgaW52YWxpZFwiKX1wKz1cIjsgRXhwaXJlcz1cIithLmV4cGlyZXMudG9VVENTdHJpbmcoKX1pZihhLmh0dHBPbmx5KXtwKz1cIjsgSHR0cE9ubHlcIn1pZihhLnNlY3VyZSl7cCs9XCI7IFNlY3VyZVwifWlmKGEuc2FtZVNpdGUpe3ZhciB1PXR5cGVvZiBhLnNhbWVTaXRlPT09XCJzdHJpbmdcIj9hLnNhbWVTaXRlLnRvTG93ZXJDYXNlKCk6YS5zYW1lU2l0ZTtzd2l0Y2godSl7Y2FzZSB0cnVlOnArPVwiOyBTYW1lU2l0ZT1TdHJpY3RcIjticmVhaztjYXNlXCJsYXhcIjpwKz1cIjsgU2FtZVNpdGU9TGF4XCI7YnJlYWs7Y2FzZVwic3RyaWN0XCI6cCs9XCI7IFNhbWVTaXRlPVN0cmljdFwiO2JyZWFrO2Nhc2VcIm5vbmVcIjpwKz1cIjsgU2FtZVNpdGU9Tm9uZVwiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBzYW1lU2l0ZSBpcyBpbnZhbGlkXCIpfX1yZXR1cm4gcH1mdW5jdGlvbiB0cnlEZWNvZGUoZSxyKXt0cnl7cmV0dXJuIHIoZSl9Y2F0Y2gocil7cmV0dXJuIGV9fX0pKCk7bW9kdWxlLmV4cG9ydHM9ZX0pKCk7Il0sIm5hbWVzIjpbIl9fbmNjd3Bja19yZXF1aXJlX18iLCJhYiIsIl9fZGlybmFtZSIsImUiLCJyIiwicGFyc2UiLCJzZXJpYWxpemUiLCJpIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwidCIsImVuY29kZVVSSUNvbXBvbmVudCIsImEiLCJuIiwiVHlwZUVycm9yIiwibyIsInNwbGl0IiwicyIsImRlY29kZSIsInAiLCJsZW5ndGgiLCJmIiwidSIsImluZGV4T2YiLCJ2Iiwic3Vic3RyIiwidHJpbSIsImMiLCJzbGljZSIsInVuZGVmaW5lZCIsInRyeURlY29kZSIsImVuY29kZSIsInRlc3QiLCJtYXhBZ2UiLCJpc05hTiIsImlzRmluaXRlIiwiTWF0aCIsImZsb29yIiwiZG9tYWluIiwicGF0aCIsImV4cGlyZXMiLCJ0b1VUQ1N0cmluZyIsImh0dHBPbmx5Iiwic2VjdXJlIiwic2FtZVNpdGUiLCJ0b0xvd2VyQ2FzZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/compiled/cookie/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/client/components/app-router-headers.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/esm/client/components/app-router-headers.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACTION: () => (/* binding */ ACTION),\n/* harmony export */ FLIGHT_PARAMETERS: () => (/* binding */ FLIGHT_PARAMETERS),\n/* harmony export */ NEXT_DID_POSTPONE_HEADER: () => (/* binding */ NEXT_DID_POSTPONE_HEADER),\n/* harmony export */ NEXT_ROUTER_PREFETCH_HEADER: () => (/* binding */ NEXT_ROUTER_PREFETCH_HEADER),\n/* harmony export */ NEXT_ROUTER_STATE_TREE: () => (/* binding */ NEXT_ROUTER_STATE_TREE),\n/* harmony export */ NEXT_RSC_UNION_QUERY: () => (/* binding */ NEXT_RSC_UNION_QUERY),\n/* harmony export */ NEXT_URL: () => (/* binding */ NEXT_URL),\n/* harmony export */ RSC_CONTENT_TYPE_HEADER: () => (/* binding */ RSC_CONTENT_TYPE_HEADER),\n/* harmony export */ RSC_HEADER: () => (/* binding */ RSC_HEADER),\n/* harmony export */ RSC_VARY_HEADER: () => (/* binding */ RSC_VARY_HEADER)\n/* harmony export */ });\nconst RSC_HEADER = \"RSC\";\nconst ACTION = \"Next-Action\";\nconst NEXT_ROUTER_STATE_TREE = \"Next-Router-State-Tree\";\nconst NEXT_ROUTER_PREFETCH_HEADER = \"Next-Router-Prefetch\";\nconst NEXT_URL = \"Next-Url\";\nconst RSC_CONTENT_TYPE_HEADER = \"text/x-component\";\nconst RSC_VARY_HEADER = RSC_HEADER + \", \" + NEXT_ROUTER_STATE_TREE + \", \" + NEXT_ROUTER_PREFETCH_HEADER + \", \" + NEXT_URL;\nconst FLIGHT_PARAMETERS = [\n [\n RSC_HEADER\n ],\n [\n NEXT_ROUTER_STATE_TREE\n ],\n [\n NEXT_ROUTER_PREFETCH_HEADER\n ]\n];\nconst NEXT_RSC_UNION_QUERY = \"_rsc\";\nconst NEXT_DID_POSTPONE_HEADER = \"x-nextjs-postponed\"; //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxhQUFhLE1BQU07QUFDekIsTUFBTUMsU0FBUyxjQUFjO0FBQzdCLE1BQU1DLHlCQUF5Qix5QkFBeUI7QUFDeEQsTUFBTUMsOEJBQThCLHVCQUF1QjtBQUMzRCxNQUFNQyxXQUFXLFdBQVc7QUFDNUIsTUFBTUMsMEJBQTBCLG1CQUFtQjtBQUNuRCxNQUFNQyxrQkFBa0JOLGFBQWEsT0FBT0UseUJBQXlCLE9BQU9DLDhCQUE4QixPQUFPQyxTQUFTO0FBQzFILE1BQU1HLG9CQUFvQjtJQUM3QjtRQUNJUDtLQUNIO0lBQ0Q7UUFDSUU7S0FDSDtJQUNEO1FBQ0lDO0tBQ0g7Q0FDSixDQUFDO0FBQ0ssTUFBTUssdUJBQXVCLE9BQU87QUFDcEMsTUFBTUMsMkJBQTJCLHFCQUFxQixDQUU3RCw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzLmpzPzIyN2EiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJTQ19IRUFERVIgPSBcIlJTQ1wiO1xuZXhwb3J0IGNvbnN0IEFDVElPTiA9IFwiTmV4dC1BY3Rpb25cIjtcbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9TVEFURV9UUkVFID0gXCJOZXh0LVJvdXRlci1TdGF0ZS1UcmVlXCI7XG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSID0gXCJOZXh0LVJvdXRlci1QcmVmZXRjaFwiO1xuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gXCJOZXh0LVVybFwiO1xuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gXCJ0ZXh0L3gtY29tcG9uZW50XCI7XG5leHBvcnQgY29uc3QgUlNDX1ZBUllfSEVBREVSID0gUlNDX0hFQURFUiArIFwiLCBcIiArIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUUgKyBcIiwgXCIgKyBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIgKyBcIiwgXCIgKyBORVhUX1VSTDtcbmV4cG9ydCBjb25zdCBGTElHSFRfUEFSQU1FVEVSUyA9IFtcbiAgICBbXG4gICAgICAgIFJTQ19IRUFERVJcbiAgICBdLFxuICAgIFtcbiAgICAgICAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRVxuICAgIF0sXG4gICAgW1xuICAgICAgICBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVJcbiAgICBdXG5dO1xuZXhwb3J0IGNvbnN0IE5FWFRfUlNDX1VOSU9OX1FVRVJZID0gXCJfcnNjXCI7XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gXCJ4LW5leHRqcy1wb3N0cG9uZWRcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXJvdXRlci1oZWFkZXJzLmpzLm1hcCJdLCJuYW1lcyI6WyJSU0NfSEVBREVSIiwiQUNUSU9OIiwiTkVYVF9ST1VURVJfU1RBVEVfVFJFRSIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfVVJMIiwiUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIiLCJSU0NfVkFSWV9IRUFERVIiLCJGTElHSFRfUEFSQU1FVEVSUyIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/client/components/app-router-headers.js\n"); + +/***/ }), + +/***/ "(shared)/./node_modules/next/dist/esm/client/components/request-async-storage.external.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/next/dist/esm/client/components/request-async-storage.external.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ requestAsyncStorage: () => (/* binding */ requestAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var _async_local_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./async-local-storage */ \"(shared)/./node_modules/next/dist/esm/client/components/async-local-storage.js\");\n\nconst requestAsyncStorage = (0,_async_local_storage__WEBPACK_IMPORTED_MODULE_0__.createAsyncLocalStorage)(); //# sourceMappingURL=request-async-storage.external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZXF1ZXN0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBZ0U7QUFDekQsTUFBTUMsc0JBQXNCRCw2RUFBdUJBLEdBQUcsQ0FFN0QsMERBQTBEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlcXVlc3QtYXN5bmMtc3RvcmFnZS5leHRlcm5hbC5qcz9iNzYyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSBcIi4vYXN5bmMtbG9jYWwtc3RvcmFnZVwiO1xuZXhwb3J0IGNvbnN0IHJlcXVlc3RBc3luY1N0b3JhZ2UgPSBjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSgpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanMubWFwIl0sIm5hbWVzIjpbImNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlIiwicmVxdWVzdEFzeW5jU3RvcmFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(shared)/./node_modules/next/dist/esm/client/components/request-async-storage.external.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/lib/constants.js": +/*!*****************************************************!*\ + !*** ./node_modules/next/dist/esm/lib/constants.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ APP_DIR_ALIAS: () => (/* binding */ APP_DIR_ALIAS),\n/* harmony export */ CACHE_ONE_YEAR: () => (/* binding */ CACHE_ONE_YEAR),\n/* harmony export */ DOT_NEXT_ALIAS: () => (/* binding */ DOT_NEXT_ALIAS),\n/* harmony export */ ESLINT_DEFAULT_DIRS: () => (/* binding */ ESLINT_DEFAULT_DIRS),\n/* harmony export */ ESLINT_PROMPT_VALUES: () => (/* binding */ ESLINT_PROMPT_VALUES),\n/* harmony export */ GSP_NO_RETURNED_VALUE: () => (/* binding */ GSP_NO_RETURNED_VALUE),\n/* harmony export */ GSSP_COMPONENT_MEMBER_ERROR: () => (/* binding */ GSSP_COMPONENT_MEMBER_ERROR),\n/* harmony export */ GSSP_NO_RETURNED_VALUE: () => (/* binding */ GSSP_NO_RETURNED_VALUE),\n/* harmony export */ INSTRUMENTATION_HOOK_FILENAME: () => (/* binding */ INSTRUMENTATION_HOOK_FILENAME),\n/* harmony export */ MIDDLEWARE_FILENAME: () => (/* binding */ MIDDLEWARE_FILENAME),\n/* harmony export */ MIDDLEWARE_LOCATION_REGEXP: () => (/* binding */ MIDDLEWARE_LOCATION_REGEXP),\n/* harmony export */ NEXT_BODY_SUFFIX: () => (/* binding */ NEXT_BODY_SUFFIX),\n/* harmony export */ NEXT_CACHE_IMPLICIT_TAG_ID: () => (/* binding */ NEXT_CACHE_IMPLICIT_TAG_ID),\n/* harmony export */ NEXT_CACHE_REVALIDATED_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_REVALIDATED_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: () => (/* binding */ NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER),\n/* harmony export */ NEXT_CACHE_SOFT_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_SOFT_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_SOFT_TAG_MAX_LENGTH: () => (/* binding */ NEXT_CACHE_SOFT_TAG_MAX_LENGTH),\n/* harmony export */ NEXT_CACHE_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_TAG_MAX_LENGTH: () => (/* binding */ NEXT_CACHE_TAG_MAX_LENGTH),\n/* harmony export */ NEXT_DATA_SUFFIX: () => (/* binding */ NEXT_DATA_SUFFIX),\n/* harmony export */ NEXT_META_SUFFIX: () => (/* binding */ NEXT_META_SUFFIX),\n/* harmony export */ NEXT_QUERY_PARAM_PREFIX: () => (/* binding */ NEXT_QUERY_PARAM_PREFIX),\n/* harmony export */ NON_STANDARD_NODE_ENV: () => (/* binding */ NON_STANDARD_NODE_ENV),\n/* harmony export */ PAGES_DIR_ALIAS: () => (/* binding */ PAGES_DIR_ALIAS),\n/* harmony export */ PRERENDER_REVALIDATE_HEADER: () => (/* binding */ PRERENDER_REVALIDATE_HEADER),\n/* harmony export */ PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: () => (/* binding */ PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER),\n/* harmony export */ PUBLIC_DIR_MIDDLEWARE_CONFLICT: () => (/* binding */ PUBLIC_DIR_MIDDLEWARE_CONFLICT),\n/* harmony export */ ROOT_DIR_ALIAS: () => (/* binding */ ROOT_DIR_ALIAS),\n/* harmony export */ RSC_ACTION_CLIENT_WRAPPER_ALIAS: () => (/* binding */ RSC_ACTION_CLIENT_WRAPPER_ALIAS),\n/* harmony export */ RSC_ACTION_ENCRYPTION_ALIAS: () => (/* binding */ RSC_ACTION_ENCRYPTION_ALIAS),\n/* harmony export */ RSC_ACTION_PROXY_ALIAS: () => (/* binding */ RSC_ACTION_PROXY_ALIAS),\n/* harmony export */ RSC_ACTION_VALIDATE_ALIAS: () => (/* binding */ RSC_ACTION_VALIDATE_ALIAS),\n/* harmony export */ RSC_MOD_REF_PROXY_ALIAS: () => (/* binding */ RSC_MOD_REF_PROXY_ALIAS),\n/* harmony export */ RSC_PREFETCH_SUFFIX: () => (/* binding */ RSC_PREFETCH_SUFFIX),\n/* harmony export */ RSC_SUFFIX: () => (/* binding */ RSC_SUFFIX),\n/* harmony export */ SERVER_PROPS_EXPORT_ERROR: () => (/* binding */ SERVER_PROPS_EXPORT_ERROR),\n/* harmony export */ SERVER_PROPS_GET_INIT_PROPS_CONFLICT: () => (/* binding */ SERVER_PROPS_GET_INIT_PROPS_CONFLICT),\n/* harmony export */ SERVER_PROPS_SSG_CONFLICT: () => (/* binding */ SERVER_PROPS_SSG_CONFLICT),\n/* harmony export */ SERVER_RUNTIME: () => (/* binding */ SERVER_RUNTIME),\n/* harmony export */ SSG_FALLBACK_EXPORT_ERROR: () => (/* binding */ SSG_FALLBACK_EXPORT_ERROR),\n/* harmony export */ SSG_GET_INITIAL_PROPS_CONFLICT: () => (/* binding */ SSG_GET_INITIAL_PROPS_CONFLICT),\n/* harmony export */ STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: () => (/* binding */ STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR),\n/* harmony export */ UNSTABLE_REVALIDATE_RENAME_ERROR: () => (/* binding */ UNSTABLE_REVALIDATE_RENAME_ERROR),\n/* harmony export */ WEBPACK_LAYERS: () => (/* binding */ WEBPACK_LAYERS),\n/* harmony export */ WEBPACK_RESOURCE_QUERIES: () => (/* binding */ WEBPACK_RESOURCE_QUERIES)\n/* harmony export */ });\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\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_SUFFIX = \".rsc\";\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_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = \"_N_T_\";\n// in seconds\nconst CACHE_ONE_YEAR = 31536000;\n// Patterns to detect middleware files\nconst MIDDLEWARE_FILENAME = \"middleware\";\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\n// Pattern to detect instrumentation hooks file\nconst INSTRUMENTATION_HOOK_FILENAME = \"instrumentation\";\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\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-action-proxy\";\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 ESLINT_PROMPT_VALUES = [\n {\n title: \"Strict\",\n recommended: true,\n config: {\n extends: \"next/core-web-vitals\"\n }\n },\n {\n title: \"Base\",\n config: {\n extends: \"next\"\n }\n },\n {\n title: \"Cancel\",\n config: null\n }\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 * React Server Components layer (rsc).\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 assets on the edge.\n */ edgeAsset: \"edge-asset\",\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: \"app-pages-browser\",\n /**\n * The server bundle layer for metadata routes.\n */ appMetadataRoute: \"app-metadata-route\",\n /**\n * The layer for the server bundle for App Route handlers.\n */ appRouteHandler: \"app-route-handler\"\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n server: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler\n ],\n nonClientServerTarget: [\n // plus middleware and pages api\n WEBPACK_LAYERS_NAMES.middleware,\n WEBPACK_LAYERS_NAMES.api\n ],\n app: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared\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 //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSwwQkFBMEIsT0FBTztBQUN2QyxNQUFNQyw4QkFBOEIseUJBQXlCO0FBQzdELE1BQU1DLDZDQUE2QyxzQ0FBc0M7QUFDekYsTUFBTUMsc0JBQXNCLGdCQUFnQjtBQUM1QyxNQUFNQyxhQUFhLE9BQU87QUFDMUIsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMseUJBQXlCLG9CQUFvQjtBQUNuRCxNQUFNQyw4QkFBOEIseUJBQXlCO0FBQzdELE1BQU1DLHFDQUFxQywwQkFBMEI7QUFDckUsTUFBTUMseUNBQXlDLDhCQUE4QjtBQUM3RSxNQUFNQyw0QkFBNEIsSUFBSTtBQUN0QyxNQUFNQyxpQ0FBaUMsS0FBSztBQUM1QyxNQUFNQyw2QkFBNkIsUUFBUTtBQUNsRCxhQUFhO0FBQ04sTUFBTUMsaUJBQWlCLFNBQVM7QUFDdkMsc0NBQXNDO0FBQy9CLE1BQU1DLHNCQUFzQixhQUFhO0FBQ3pDLE1BQU1DLDZCQUE2QixDQUFDLFNBQVMsRUFBRUQsb0JBQW9CLENBQUMsQ0FBQztBQUM1RSwrQ0FBK0M7QUFDeEMsTUFBTUUsZ0NBQWdDLGtCQUFrQjtBQUMvRCwwR0FBMEc7QUFDMUcsaUNBQWlDO0FBQzFCLE1BQU1DLGtCQUFrQixxQkFBcUI7QUFDN0MsTUFBTUMsaUJBQWlCLG1CQUFtQjtBQUMxQyxNQUFNQyxpQkFBaUIsd0JBQXdCO0FBQy9DLE1BQU1DLGdCQUFnQix1QkFBdUI7QUFDN0MsTUFBTUMsMEJBQTBCLGlDQUFpQztBQUNqRSxNQUFNQyw0QkFBNEIsbUNBQW1DO0FBQ3JFLE1BQU1DLHlCQUF5QixnQ0FBZ0M7QUFDL0QsTUFBTUMsOEJBQThCLHFDQUFxQztBQUN6RSxNQUFNQyxrQ0FBa0MseUNBQXlDO0FBQ2pGLE1BQU1DLGlDQUFpQyxDQUFDLDZLQUE2SyxDQUFDLENBQUM7QUFDdk4sTUFBTUMsaUNBQWlDLENBQUMsbUdBQW1HLENBQUMsQ0FBQztBQUM3SSxNQUFNQyx1Q0FBdUMsQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO0FBQ3ZJLE1BQU1DLDRCQUE0QixDQUFDLHNIQUFzSCxDQUFDLENBQUM7QUFDM0osTUFBTUMsNkNBQTZDLENBQUMsdUdBQXVHLENBQUMsQ0FBQztBQUM3SixNQUFNQyw0QkFBNEIsQ0FBQyx1SEFBdUgsQ0FBQyxDQUFDO0FBQzVKLE1BQU1DLHdCQUF3Qiw2RkFBNkY7QUFDM0gsTUFBTUMseUJBQXlCLGlHQUFpRztBQUNoSSxNQUFNQyxtQ0FBbUMsdUVBQXVFLG1DQUFtQztBQUNuSixNQUFNQyw4QkFBOEIsQ0FBQyx3SkFBd0osQ0FBQyxDQUFDO0FBQy9MLE1BQU1DLHdCQUF3QixDQUFDLGlOQUFpTixDQUFDLENBQUM7QUFDbFAsTUFBTUMsNEJBQTRCLENBQUMsd0pBQXdKLENBQUMsQ0FBQztBQUM3TCxNQUFNQyxzQkFBc0I7SUFDL0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDSyxNQUFNQyx1QkFBdUI7SUFDaEM7UUFDSUMsT0FBTztRQUNQQyxhQUFhO1FBQ2JDLFFBQVE7WUFDSkMsU0FBUztRQUNiO0lBQ0o7SUFDQTtRQUNJSCxPQUFPO1FBQ1BFLFFBQVE7WUFDSkMsU0FBUztRQUNiO0lBQ0o7SUFDQTtRQUNJSCxPQUFPO1FBQ1BFLFFBQVE7SUFDWjtDQUNILENBQUM7QUFDSyxNQUFNRSxpQkFBaUI7SUFDMUJDLE1BQU07SUFDTkMsa0JBQWtCO0lBQ2xCQyxRQUFRO0FBQ1osRUFBRTtBQUNGOzs7Q0FHQyxHQUFHLE1BQU1DLHVCQUF1QjtJQUM3Qjs7R0FFRCxHQUFHQyxRQUFRO0lBQ1Y7O0dBRUQsR0FBR0MsdUJBQXVCO0lBQ3pCOztHQUVELEdBQUdDLHFCQUFxQjtJQUN2Qjs7R0FFRCxHQUFHQyxlQUFlO0lBQ2pCOztHQUVELEdBQUdDLEtBQUs7SUFDUDs7R0FFRCxHQUFHQyxZQUFZO0lBQ2Q7O0dBRUQsR0FBR0MsV0FBVztJQUNiOztHQUVELEdBQUdDLGlCQUFpQjtJQUNuQjs7R0FFRCxHQUFHQyxrQkFBa0I7SUFDcEI7O0dBRUQsR0FBR0MsaUJBQWlCO0FBQ3ZCO0FBQ0EsTUFBTUMsaUJBQWlCO0lBQ25CLEdBQUdYLG9CQUFvQjtJQUN2QlksT0FBTztRQUNIQyxRQUFRO1lBQ0piLHFCQUFxQkUscUJBQXFCO1lBQzFDRixxQkFBcUJJLGFBQWE7WUFDbENKLHFCQUFxQlMsZ0JBQWdCO1lBQ3JDVCxxQkFBcUJVLGVBQWU7U0FDdkM7UUFDREksdUJBQXVCO1lBQ25CLGdDQUFnQztZQUNoQ2QscUJBQXFCTSxVQUFVO1lBQy9CTixxQkFBcUJLLEdBQUc7U0FDM0I7UUFDRFUsS0FBSztZQUNEZixxQkFBcUJFLHFCQUFxQjtZQUMxQ0YscUJBQXFCSSxhQUFhO1lBQ2xDSixxQkFBcUJTLGdCQUFnQjtZQUNyQ1QscUJBQXFCVSxlQUFlO1lBQ3BDVixxQkFBcUJHLG1CQUFtQjtZQUN4Q0gscUJBQXFCUSxlQUFlO1lBQ3BDUixxQkFBcUJDLE1BQU07U0FDOUI7SUFDTDtBQUNKO0FBQ0EsTUFBTWUsMkJBQTJCO0lBQzdCQyxjQUFjO0lBQ2RDLFVBQVU7SUFDVkMsZUFBZTtJQUNmQyxtQkFBbUI7QUFDdkI7QUFDb0QsQ0FFcEQscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2xpYi9jb25zdGFudHMuanM/ZDEwMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggPSBcIm54dFBcIjtcbmV4cG9ydCBjb25zdCBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIgPSBcIngtcHJlcmVuZGVyLXJldmFsaWRhdGVcIjtcbmV4cG9ydCBjb25zdCBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIgPSBcIngtcHJlcmVuZGVyLXJldmFsaWRhdGUtaWYtZ2VuZXJhdGVkXCI7XG5leHBvcnQgY29uc3QgUlNDX1BSRUZFVENIX1NVRkZJWCA9IFwiLnByZWZldGNoLnJzY1wiO1xuZXhwb3J0IGNvbnN0IFJTQ19TVUZGSVggPSBcIi5yc2NcIjtcbmV4cG9ydCBjb25zdCBORVhUX0RBVEFfU1VGRklYID0gXCIuanNvblwiO1xuZXhwb3J0IGNvbnN0IE5FWFRfTUVUQV9TVUZGSVggPSBcIi5tZXRhXCI7XG5leHBvcnQgY29uc3QgTkVYVF9CT0RZX1NVRkZJWCA9IFwiLmJvZHlcIjtcbmV4cG9ydCBjb25zdCBORVhUX0NBQ0hFX1RBR1NfSEVBREVSID0gXCJ4LW5leHQtY2FjaGUtdGFnc1wiO1xuZXhwb3J0IGNvbnN0IE5FWFRfQ0FDSEVfU09GVF9UQUdTX0hFQURFUiA9IFwieC1uZXh0LWNhY2hlLXNvZnQtdGFnc1wiO1xuZXhwb3J0IGNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIgPSBcIngtbmV4dC1yZXZhbGlkYXRlZC10YWdzXCI7XG5leHBvcnQgY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVIgPSBcIngtbmV4dC1yZXZhbGlkYXRlLXRhZy10b2tlblwiO1xuZXhwb3J0IGNvbnN0IE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEggPSAyNTY7XG5leHBvcnQgY29uc3QgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIID0gMTAyNDtcbmV4cG9ydCBjb25zdCBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRCA9IFwiX05fVF9cIjtcbi8vIGluIHNlY29uZHNcbmV4cG9ydCBjb25zdCBDQUNIRV9PTkVfWUVBUiA9IDMxNTM2MDAwO1xuLy8gUGF0dGVybnMgdG8gZGV0ZWN0IG1pZGRsZXdhcmUgZmlsZXNcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX0ZJTEVOQU1FID0gXCJtaWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFAgPSBgKD86c3JjLyk/JHtNSURETEVXQVJFX0ZJTEVOQU1FfWA7XG4vLyBQYXR0ZXJuIHRvIGRldGVjdCBpbnN0cnVtZW50YXRpb24gaG9va3MgZmlsZVxuZXhwb3J0IGNvbnN0IElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FID0gXCJpbnN0cnVtZW50YXRpb25cIjtcbi8vIEJlY2F1c2Ugb24gV2luZG93cyBhYnNvbHV0ZSBwYXRocyBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUgY2FuIGJyZWFrIGJlY2F1c2Ugb2YgbnVtYmVycywgZWcgMSBpbiB0aGUgcGF0aCxcbi8vIHdlIGhhdmUgdG8gdXNlIGEgcHJpdmF0ZSBhbGlhc1xuZXhwb3J0IGNvbnN0IFBBR0VTX0RJUl9BTElBUyA9IFwicHJpdmF0ZS1uZXh0LXBhZ2VzXCI7XG5leHBvcnQgY29uc3QgRE9UX05FWFRfQUxJQVMgPSBcInByaXZhdGUtZG90LW5leHRcIjtcbmV4cG9ydCBjb25zdCBST09UX0RJUl9BTElBUyA9IFwicHJpdmF0ZS1uZXh0LXJvb3QtZGlyXCI7XG5leHBvcnQgY29uc3QgQVBQX0RJUl9BTElBUyA9IFwicHJpdmF0ZS1uZXh0LWFwcC1kaXJcIjtcbmV4cG9ydCBjb25zdCBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUyA9IFwicHJpdmF0ZS1uZXh0LXJzYy1tb2QtcmVmLXByb3h5XCI7XG5leHBvcnQgY29uc3QgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUyA9IFwicHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tdmFsaWRhdGVcIjtcbmV4cG9ydCBjb25zdCBSU0NfQUNUSU9OX1BST1hZX0FMSUFTID0gXCJwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1wcm94eVwiO1xuZXhwb3J0IGNvbnN0IFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUyA9IFwicHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tZW5jcnlwdGlvblwiO1xuZXhwb3J0IGNvbnN0IFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWNsaWVudC13cmFwcGVyXCI7XG5leHBvcnQgY29uc3QgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IGhhdmUgYSAnX25leHQnIGZvbGRlciBpbnNpZGUgb2YgeW91ciBwdWJsaWMgZm9sZGVyLiBUaGlzIGNvbmZsaWN0cyB3aXRoIHRoZSBpbnRlcm5hbCAnL19uZXh0JyByb3V0ZS4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHVibGljLW5leHQtZm9sZGVyLWNvbmZsaWN0YDtcbmV4cG9ydCBjb25zdCBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldEluaXRpYWxQcm9wcyB3aXRoIGdldFN0YXRpY1Byb3BzLiBUbyB1c2UgU1NHLCBwbGVhc2UgcmVtb3ZlIHlvdXIgZ2V0SW5pdGlhbFByb3BzYDtcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldEluaXRpYWxQcm9wcyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gUGxlYXNlIHJlbW92ZSBnZXRJbml0aWFsUHJvcHMuYDtcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRTdGF0aWNQcm9wcyBvciBnZXRTdGF0aWNQYXRocyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSBnZXRTZXJ2ZXJTaWRlUHJvcHNgO1xuZXhwb3J0IGNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUiA9IGBjYW4gbm90IGhhdmUgZ2V0SW5pdGlhbFByb3BzL2dldFNlcnZlclNpZGVQcm9wcywgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvNDA0LWdldC1pbml0aWFsLXByb3BzYDtcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SID0gYHBhZ2VzIHdpdGggXFxgZ2V0U2VydmVyU2lkZVByb3BzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1leHBvcnRgO1xuZXhwb3J0IGNvbnN0IEdTUF9OT19SRVRVUk5FRF9WQUxVRSA9IFwiWW91ciBgZ2V0U3RhdGljUHJvcHNgIGZ1bmN0aW9uIGRpZCBub3QgcmV0dXJuIGFuIG9iamVjdC4gRGlkIHlvdSBmb3JnZXQgdG8gYWRkIGEgYHJldHVybmA/XCI7XG5leHBvcnQgY29uc3QgR1NTUF9OT19SRVRVUk5FRF9WQUxVRSA9IFwiWW91ciBgZ2V0U2VydmVyU2lkZVByb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gP1wiO1xuZXhwb3J0IGNvbnN0IFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SID0gXCJUaGUgYHVuc3RhYmxlX3JldmFsaWRhdGVgIHByb3BlcnR5IGlzIGF2YWlsYWJsZSBmb3IgZ2VuZXJhbCB1c2UuXFxuXCIgKyBcIlBsZWFzZSB1c2UgYHJldmFsaWRhdGVgIGluc3RlYWQuXCI7XG5leHBvcnQgY29uc3QgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SID0gYGNhbiBub3QgYmUgYXR0YWNoZWQgdG8gYSBwYWdlJ3MgY29tcG9uZW50IGFuZCBtdXN0IGJlIGV4cG9ydGVkIGZyb20gdGhlIHBhZ2UuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1jb21wb25lbnQtbWVtYmVyYDtcbmV4cG9ydCBjb25zdCBOT05fU1RBTkRBUkRfTk9ERV9FTlYgPSBgWW91IGFyZSB1c2luZyBhIG5vbi1zdGFuZGFyZCBcIk5PREVfRU5WXCIgdmFsdWUgaW4geW91ciBlbnZpcm9ubWVudC4gVGhpcyBjcmVhdGVzIGluY29uc2lzdGVuY2llcyBpbiB0aGUgcHJvamVjdCBhbmQgaXMgc3Ryb25nbHkgYWR2aXNlZCBhZ2FpbnN0LiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vbi1zdGFuZGFyZC1ub2RlLWVudmA7XG5leHBvcnQgY29uc3QgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUiA9IGBQYWdlcyB3aXRoIFxcYGZhbGxiYWNrXFxgIGVuYWJsZWQgaW4gXFxgZ2V0U3RhdGljUGF0aHNcXGAgY2FuIG5vdCBiZSBleHBvcnRlZC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zc2ctZmFsbGJhY2stdHJ1ZS1leHBvcnRgO1xuZXhwb3J0IGNvbnN0IEVTTElOVF9ERUZBVUxUX0RJUlMgPSBbXG4gICAgXCJhcHBcIixcbiAgICBcInBhZ2VzXCIsXG4gICAgXCJjb21wb25lbnRzXCIsXG4gICAgXCJsaWJcIixcbiAgICBcInNyY1wiXG5dO1xuZXhwb3J0IGNvbnN0IEVTTElOVF9QUk9NUFRfVkFMVUVTID0gW1xuICAgIHtcbiAgICAgICAgdGl0bGU6IFwiU3RyaWN0XCIsXG4gICAgICAgIHJlY29tbWVuZGVkOiB0cnVlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgIGV4dGVuZHM6IFwibmV4dC9jb3JlLXdlYi12aXRhbHNcIlxuICAgICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpdGxlOiBcIkJhc2VcIixcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBleHRlbmRzOiBcIm5leHRcIlxuICAgICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpdGxlOiBcIkNhbmNlbFwiLFxuICAgICAgICBjb25maWc6IG51bGxcbiAgICB9XG5dO1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9SVU5USU1FID0ge1xuICAgIGVkZ2U6IFwiZWRnZVwiLFxuICAgIGV4cGVyaW1lbnRhbEVkZ2U6IFwiZXhwZXJpbWVudGFsLWVkZ2VcIixcbiAgICBub2RlanM6IFwibm9kZWpzXCJcbn07XG4vKipcbiAqIFRoZSBuYW1lcyBvZiB0aGUgd2VicGFjayBsYXllcnMuIFRoZXNlIGxheWVycyBhcmUgdGhlIHByaW1pdGl2ZXMgZm9yIHRoZVxuICogd2VicGFjayBjaHVua3MuXG4gKi8gY29uc3QgV0VCUEFDS19MQVlFUlNfTkFNRVMgPSB7XG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIHNoYXJlZCBjb2RlIGJldHdlZW4gdGhlIGNsaWVudCBhbmQgc2VydmVyIGJ1bmRsZXMuXG4gICAqLyBzaGFyZWQ6IFwic2hhcmVkXCIsXG4gICAgLyoqXG4gICAqIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIGxheWVyIChyc2MpLlxuICAgKi8gcmVhY3RTZXJ2ZXJDb21wb25lbnRzOiBcInJzY1wiLFxuICAgIC8qKlxuICAgKiBTZXJ2ZXIgU2lkZSBSZW5kZXJpbmcgbGF5ZXIgZm9yIGFwcCAoc3NyKS5cbiAgICovIHNlcnZlclNpZGVSZW5kZXJpbmc6IFwic3NyXCIsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIGFjdGlvbnMuXG4gICAqLyBhY3Rpb25Ccm93c2VyOiBcImFjdGlvbi1icm93c2VyXCIsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIEFQSSByb3V0ZXMuXG4gICAqLyBhcGk6IFwiYXBpXCIsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIG1pZGRsZXdhcmUgY29kZS5cbiAgICovIG1pZGRsZXdhcmU6IFwibWlkZGxld2FyZVwiLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIGFzc2V0cyBvbiB0aGUgZWRnZS5cbiAgICovIGVkZ2VBc3NldDogXCJlZGdlLWFzc2V0XCIsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIEFwcCBkaXJlY3RvcnkuXG4gICAqLyBhcHBQYWdlc0Jyb3dzZXI6IFwiYXBwLXBhZ2VzLWJyb3dzZXJcIixcbiAgICAvKipcbiAgICogVGhlIHNlcnZlciBidW5kbGUgbGF5ZXIgZm9yIG1ldGFkYXRhIHJvdXRlcy5cbiAgICovIGFwcE1ldGFkYXRhUm91dGU6IFwiYXBwLW1ldGFkYXRhLXJvdXRlXCIsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIHNlcnZlciBidW5kbGUgZm9yIEFwcCBSb3V0ZSBoYW5kbGVycy5cbiAgICovIGFwcFJvdXRlSGFuZGxlcjogXCJhcHAtcm91dGUtaGFuZGxlclwiXG59O1xuY29uc3QgV0VCUEFDS19MQVlFUlMgPSB7XG4gICAgLi4uV0VCUEFDS19MQVlFUlNfTkFNRVMsXG4gICAgR1JPVVA6IHtcbiAgICAgICAgc2VydmVyOiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwTWV0YWRhdGFSb3V0ZSxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFJvdXRlSGFuZGxlclxuICAgICAgICBdLFxuICAgICAgICBub25DbGllbnRTZXJ2ZXJUYXJnZXQ6IFtcbiAgICAgICAgICAgIC8vIHBsdXMgbWlkZGxld2FyZSBhbmQgcGFnZXMgYXBpXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBpXG4gICAgICAgIF0sXG4gICAgICAgIGFwcDogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcE1ldGFkYXRhUm91dGUsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBSb3V0ZUhhbmRsZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2hhcmVkXG4gICAgICAgIF1cbiAgICB9XG59O1xuY29uc3QgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTID0ge1xuICAgIGVkZ2VTU1JFbnRyeTogXCJfX25leHRfZWRnZV9zc3JfZW50cnlfX1wiLFxuICAgIG1ldGFkYXRhOiBcIl9fbmV4dF9tZXRhZGF0YV9fXCIsXG4gICAgbWV0YWRhdGFSb3V0ZTogXCJfX25leHRfbWV0YWRhdGFfcm91dGVfX1wiLFxuICAgIG1ldGFkYXRhSW1hZ2VNZXRhOiBcIl9fbmV4dF9tZXRhZGF0YV9pbWFnZV9tZXRhX19cIlxufTtcbmV4cG9ydCB7IFdFQlBBQ0tfTEFZRVJTLCBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVMgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCIsIlBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUiIsIlBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUiIsIlJTQ19QUkVGRVRDSF9TVUZGSVgiLCJSU0NfU1VGRklYIiwiTkVYVF9EQVRBX1NVRkZJWCIsIk5FWFRfTUVUQV9TVUZGSVgiLCJORVhUX0JPRFlfU1VGRklYIiwiTkVYVF9DQUNIRV9UQUdTX0hFQURFUiIsIk5FWFRfQ0FDSEVfU09GVF9UQUdTX0hFQURFUiIsIk5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIiLCJORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUiIsIk5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEgiLCJORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEgiLCJORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRCIsIkNBQ0hFX09ORV9ZRUFSIiwiTUlERExFV0FSRV9GSUxFTkFNRSIsIk1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQIiwiSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUUiLCJQQUdFU19ESVJfQUxJQVMiLCJET1RfTkVYVF9BTElBUyIsIlJPT1RfRElSX0FMSUFTIiwiQVBQX0RJUl9BTElBUyIsIlJTQ19NT0RfUkVGX1BST1hZX0FMSUFTIiwiUlNDX0FDVElPTl9WQUxJREFURV9BTElBUyIsIlJTQ19BQ1RJT05fUFJPWFlfQUxJQVMiLCJSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVMiLCJSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTIiwiUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUIiwiU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUIiwiU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUIiwiU0VSVkVSX1BST1BTX1NTR19DT05GTElDVCIsIlNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUiIsIlNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1IiLCJHU1BfTk9fUkVUVVJORURfVkFMVUUiLCJHU1NQX05PX1JFVFVSTkVEX1ZBTFVFIiwiVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1IiLCJHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1IiLCJOT05fU1RBTkRBUkRfTk9ERV9FTlYiLCJTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SIiwiRVNMSU5UX0RFRkFVTFRfRElSUyIsIkVTTElOVF9QUk9NUFRfVkFMVUVTIiwidGl0bGUiLCJyZWNvbW1lbmRlZCIsImNvbmZpZyIsImV4dGVuZHMiLCJTRVJWRVJfUlVOVElNRSIsImVkZ2UiLCJleHBlcmltZW50YWxFZGdlIiwibm9kZWpzIiwiV0VCUEFDS19MQVlFUlNfTkFNRVMiLCJzaGFyZWQiLCJyZWFjdFNlcnZlckNvbXBvbmVudHMiLCJzZXJ2ZXJTaWRlUmVuZGVyaW5nIiwiYWN0aW9uQnJvd3NlciIsImFwaSIsIm1pZGRsZXdhcmUiLCJlZGdlQXNzZXQiLCJhcHBQYWdlc0Jyb3dzZXIiLCJhcHBNZXRhZGF0YVJvdXRlIiwiYXBwUm91dGVIYW5kbGVyIiwiV0VCUEFDS19MQVlFUlMiLCJHUk9VUCIsInNlcnZlciIsIm5vbkNsaWVudFNlcnZlclRhcmdldCIsImFwcCIsIldFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUyIsImVkZ2VTU1JFbnRyeSIsIm1ldGFkYXRhIiwibWV0YWRhdGFSb3V0ZSIsIm1ldGFkYXRhSW1hZ2VNZXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/lib/constants.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/api-utils/index.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/api-utils/index.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ApiError: () => (/* binding */ ApiError),\n/* harmony export */ COOKIE_NAME_PRERENDER_BYPASS: () => (/* binding */ COOKIE_NAME_PRERENDER_BYPASS),\n/* harmony export */ COOKIE_NAME_PRERENDER_DATA: () => (/* binding */ COOKIE_NAME_PRERENDER_DATA),\n/* harmony export */ RESPONSE_LIMIT_DEFAULT: () => (/* binding */ RESPONSE_LIMIT_DEFAULT),\n/* harmony export */ SYMBOL_CLEARED_COOKIES: () => (/* binding */ SYMBOL_CLEARED_COOKIES),\n/* harmony export */ SYMBOL_PREVIEW_DATA: () => (/* binding */ SYMBOL_PREVIEW_DATA),\n/* harmony export */ checkIsOnDemandRevalidate: () => (/* binding */ checkIsOnDemandRevalidate),\n/* harmony export */ clearPreviewData: () => (/* binding */ clearPreviewData),\n/* harmony export */ redirect: () => (/* binding */ redirect),\n/* harmony export */ sendError: () => (/* binding */ sendError),\n/* harmony export */ sendStatusCode: () => (/* binding */ sendStatusCode),\n/* harmony export */ setLazyProp: () => (/* binding */ setLazyProp)\n/* harmony export */ });\n/* harmony import */ var _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../web/spec-extension/adapters/headers */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/constants */ \"(middleware)/./node_modules/next/dist/esm/lib/constants.js\");\n\n\n/**\n *\n * @param res response object\n * @param statusCode `HTTP` status code of response\n */ function sendStatusCode(res, statusCode) {\n res.statusCode = statusCode;\n return res;\n}\n/**\n *\n * @param res response object\n * @param [statusOrUrl] `HTTP` status code of redirect\n * @param url URL of redirect\n */ function redirect(res, statusOrUrl, url) {\n if (typeof statusOrUrl === \"string\") {\n url = statusOrUrl;\n statusOrUrl = 307;\n }\n if (typeof statusOrUrl !== \"number\" || typeof url !== \"string\") {\n throw new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`);\n }\n res.writeHead(statusOrUrl, {\n Location: url\n });\n res.write(url);\n res.end();\n return res;\n}\nfunction checkIsOnDemandRevalidate(req, previewProps) {\n const headers = _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_0__.HeadersAdapter.from(req.headers);\n const previewModeId = headers.get(_lib_constants__WEBPACK_IMPORTED_MODULE_1__.PRERENDER_REVALIDATE_HEADER);\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.has(_lib_constants__WEBPACK_IMPORTED_MODULE_1__.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);\n return {\n isOnDemandRevalidate,\n revalidateOnlyGenerated\n };\n}\nconst COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`;\nconst COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`;\nconst RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024;\nconst SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA);\nconst SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS);\nfunction clearPreviewData(res, options = {}) {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res;\n }\n const { serialize } = __webpack_require__(/*! next/dist/compiled/cookie */ \"(middleware)/./node_modules/next/dist/compiled/cookie/index.js\");\n const previous = res.getHeader(\"Set-Cookie\");\n res.setHeader(`Set-Cookie`, [\n ...typeof previous === \"string\" ? [\n previous\n ] : Array.isArray(previous) ? previous : [],\n serialize(COOKIE_NAME_PRERENDER_BYPASS, \"\", {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: false ? 0 : \"lax\",\n secure: \"development\" !== \"development\",\n path: \"/\",\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, \"\", {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: false ? 0 : \"lax\",\n secure: \"development\" !== \"development\",\n path: \"/\",\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n })\n ]);\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false\n });\n return res;\n}\n/**\n * Custom error class\n */ class ApiError extends Error {\n constructor(statusCode, message){\n super(message);\n this.statusCode = statusCode;\n }\n}\n/**\n * Sends error in `response`\n * @param res response object\n * @param statusCode of response\n * @param message of response\n */ function sendError(res, statusCode, message) {\n res.statusCode = statusCode;\n res.statusMessage = message;\n res.end(message);\n}\n/**\n * Execute getter function only if its needed\n * @param LazyProps `req` and `params` for lazyProp\n * @param prop name of property\n * @param getter function to get data\n */ function setLazyProp({ req }, prop, getter) {\n const opts = {\n configurable: true,\n enumerable: true\n };\n const optsReset = {\n ...opts,\n writable: true\n };\n Object.defineProperty(req, prop, {\n ...opts,\n get: ()=>{\n const value = getter();\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n return value;\n },\n set: (value)=>{\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n }\n });\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwaS11dGlscy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUF3RTtBQUNzQztBQUM5Rzs7OztDQUlDLEdBQVUsU0FBU0csZUFBZUMsR0FBRyxFQUFFQyxVQUFVO0lBQzlDRCxJQUFJQyxVQUFVLEdBQUdBO0lBQ2pCLE9BQU9EO0FBQ1g7QUFDQTs7Ozs7Q0FLQyxHQUFVLFNBQVNFLFNBQVNGLEdBQUcsRUFBRUcsV0FBVyxFQUFFQyxHQUFHO0lBQzlDLElBQUksT0FBT0QsZ0JBQWdCLFVBQVU7UUFDakNDLE1BQU1EO1FBQ05BLGNBQWM7SUFDbEI7SUFDQSxJQUFJLE9BQU9BLGdCQUFnQixZQUFZLE9BQU9DLFFBQVEsVUFBVTtRQUM1RCxNQUFNLElBQUlDLE1BQU0sQ0FBQyxxS0FBcUssQ0FBQztJQUMzTDtJQUNBTCxJQUFJTSxTQUFTLENBQUNILGFBQWE7UUFDdkJJLFVBQVVIO0lBQ2Q7SUFDQUosSUFBSVEsS0FBSyxDQUFDSjtJQUNWSixJQUFJUyxHQUFHO0lBQ1AsT0FBT1Q7QUFDWDtBQUNPLFNBQVNVLDBCQUEwQkMsR0FBRyxFQUFFQyxZQUFZO0lBQ3ZELE1BQU1DLFVBQVVqQixnRkFBY0EsQ0FBQ2tCLElBQUksQ0FBQ0gsSUFBSUUsT0FBTztJQUMvQyxNQUFNRSxnQkFBZ0JGLFFBQVFHLEdBQUcsQ0FBQ25CLHVFQUEyQkE7SUFDN0QsTUFBTW9CLHVCQUF1QkYsa0JBQWtCSCxhQUFhRyxhQUFhO0lBQ3pFLE1BQU1HLDBCQUEwQkwsUUFBUU0sR0FBRyxDQUFDckIsc0ZBQTBDQTtJQUN0RixPQUFPO1FBQ0htQjtRQUNBQztJQUNKO0FBQ0o7QUFDTyxNQUFNRSwrQkFBK0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzFELE1BQU1DLDZCQUE2QixDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDekQsTUFBTUMseUJBQXlCLElBQUksT0FBTyxLQUFLO0FBQy9DLE1BQU1DLHNCQUFzQkMsT0FBT0gsNEJBQTRCO0FBQy9ELE1BQU1JLHlCQUF5QkQsT0FBT0osOEJBQThCO0FBQ3BFLFNBQVNNLGlCQUFpQjFCLEdBQUcsRUFBRTJCLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLElBQUlGLDBCQUEwQnpCLEtBQUs7UUFDL0IsT0FBT0E7SUFDWDtJQUNBLE1BQU0sRUFBRTRCLFNBQVMsRUFBRSxHQUFHQyxtQkFBT0EsQ0FBQyxpR0FBMkI7SUFDekQsTUFBTUMsV0FBVzlCLElBQUkrQixTQUFTLENBQUM7SUFDL0IvQixJQUFJZ0MsU0FBUyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUU7V0FDckIsT0FBT0YsYUFBYSxXQUFXO1lBQzlCQTtTQUNILEdBQUdHLE1BQU1DLE9BQU8sQ0FBQ0osWUFBWUEsV0FBVyxFQUFFO1FBQzNDRixVQUFVUiw4QkFBOEIsSUFBSTtZQUN4QywyREFBMkQ7WUFDM0Qsb0RBQW9EO1lBQ3BELHdFQUF3RTtZQUN4RWUsU0FBUyxJQUFJQyxLQUFLO1lBQ2xCQyxVQUFVO1lBQ1ZDLFVBQVVDLE1BQXNDLEdBQUcsQ0FBTSxHQUFHO1lBQzVEQyxRQUFRRCxrQkFBeUI7WUFDakNFLE1BQU07WUFDTixHQUFHZCxRQUFRYyxJQUFJLEtBQUtDLFlBQVk7Z0JBQzVCRCxNQUFNZCxRQUFRYyxJQUFJO1lBQ3RCLElBQUlDLFNBQVM7UUFDakI7UUFDQWQsVUFBVVAsNEJBQTRCLElBQUk7WUFDdEMsMkRBQTJEO1lBQzNELG9EQUFvRDtZQUNwRCx3RUFBd0U7WUFDeEVjLFNBQVMsSUFBSUMsS0FBSztZQUNsQkMsVUFBVTtZQUNWQyxVQUFVQyxNQUFzQyxHQUFHLENBQU0sR0FBRztZQUM1REMsUUFBUUQsa0JBQXlCO1lBQ2pDRSxNQUFNO1lBQ04sR0FBR2QsUUFBUWMsSUFBSSxLQUFLQyxZQUFZO2dCQUM1QkQsTUFBTWQsUUFBUWMsSUFBSTtZQUN0QixJQUFJQyxTQUFTO1FBQ2pCO0tBQ0g7SUFDREMsT0FBT0MsY0FBYyxDQUFDNUMsS0FBS3lCLHdCQUF3QjtRQUMvQ29CLE9BQU87UUFDUEMsWUFBWTtJQUNoQjtJQUNBLE9BQU85QztBQUNYO0FBQ0E7O0NBRUMsR0FBVSxNQUFNK0MsaUJBQWlCMUM7SUFDOUIyQyxZQUFZL0MsVUFBVSxFQUFFZ0QsT0FBTyxDQUFDO1FBQzVCLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNoRCxVQUFVLEdBQUdBO0lBQ3RCO0FBQ0o7QUFDQTs7Ozs7Q0FLQyxHQUFVLFNBQVNpRCxVQUFVbEQsR0FBRyxFQUFFQyxVQUFVLEVBQUVnRCxPQUFPO0lBQ2xEakQsSUFBSUMsVUFBVSxHQUFHQTtJQUNqQkQsSUFBSW1ELGFBQWEsR0FBR0Y7SUFDcEJqRCxJQUFJUyxHQUFHLENBQUN3QztBQUNaO0FBQ0E7Ozs7O0NBS0MsR0FBVSxTQUFTRyxZQUFZLEVBQUV6QyxHQUFHLEVBQUUsRUFBRTBDLElBQUksRUFBRUMsTUFBTTtJQUNqRCxNQUFNQyxPQUFPO1FBQ1RDLGNBQWM7UUFDZFYsWUFBWTtJQUNoQjtJQUNBLE1BQU1XLFlBQVk7UUFDZCxHQUFHRixJQUFJO1FBQ1BHLFVBQVU7SUFDZDtJQUNBZixPQUFPQyxjQUFjLENBQUNqQyxLQUFLMEMsTUFBTTtRQUM3QixHQUFHRSxJQUFJO1FBQ1B2QyxLQUFLO1lBQ0QsTUFBTTZCLFFBQVFTO1lBQ2QsOERBQThEO1lBQzlEWCxPQUFPQyxjQUFjLENBQUNqQyxLQUFLMEMsTUFBTTtnQkFDN0IsR0FBR0ksU0FBUztnQkFDWlo7WUFDSjtZQUNBLE9BQU9BO1FBQ1g7UUFDQWMsS0FBSyxDQUFDZDtZQUNGRixPQUFPQyxjQUFjLENBQUNqQyxLQUFLMEMsTUFBTTtnQkFDN0IsR0FBR0ksU0FBUztnQkFDWlo7WUFDSjtRQUNKO0lBQ0o7QUFDSixFQUVBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBpLXV0aWxzL2luZGV4LmpzP2YwZjIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGVhZGVyc0FkYXB0ZXIgfSBmcm9tIFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL2hlYWRlcnNcIjtcbmltcG9ydCB7IFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUiwgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSIH0gZnJvbSBcIi4uLy4uL2xpYi9jb25zdGFudHNcIjtcbi8qKlxuICpcbiAqIEBwYXJhbSByZXMgcmVzcG9uc2Ugb2JqZWN0XG4gKiBAcGFyYW0gc3RhdHVzQ29kZSBgSFRUUGAgc3RhdHVzIGNvZGUgb2YgcmVzcG9uc2VcbiAqLyBleHBvcnQgZnVuY3Rpb24gc2VuZFN0YXR1c0NvZGUocmVzLCBzdGF0dXNDb2RlKSB7XG4gICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIHJldHVybiByZXM7XG59XG4vKipcbiAqXG4gKiBAcGFyYW0gcmVzIHJlc3BvbnNlIG9iamVjdFxuICogQHBhcmFtIFtzdGF0dXNPclVybF0gYEhUVFBgIHN0YXR1cyBjb2RlIG9mIHJlZGlyZWN0XG4gKiBAcGFyYW0gdXJsIFVSTCBvZiByZWRpcmVjdFxuICovIGV4cG9ydCBmdW5jdGlvbiByZWRpcmVjdChyZXMsIHN0YXR1c09yVXJsLCB1cmwpIHtcbiAgICBpZiAodHlwZW9mIHN0YXR1c09yVXJsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHVybCA9IHN0YXR1c09yVXJsO1xuICAgICAgICBzdGF0dXNPclVybCA9IDMwNztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzdGF0dXNPclVybCAhPT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgdXJsICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWRpcmVjdCBhcmd1bWVudHMuIFBsZWFzZSB1c2UgYSBzaW5nbGUgYXJndW1lbnQgVVJMLCBlLmcuIHJlcy5yZWRpcmVjdCgnL2Rlc3RpbmF0aW9uJykgb3IgdXNlIGEgc3RhdHVzIGNvZGUgYW5kIFVSTCwgZS5nLiByZXMucmVkaXJlY3QoMzA3LCAnL2Rlc3RpbmF0aW9uJykuYCk7XG4gICAgfVxuICAgIHJlcy53cml0ZUhlYWQoc3RhdHVzT3JVcmwsIHtcbiAgICAgICAgTG9jYXRpb246IHVybFxuICAgIH0pO1xuICAgIHJlcy53cml0ZSh1cmwpO1xuICAgIHJlcy5lbmQoKTtcbiAgICByZXR1cm4gcmVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSXNPbkRlbWFuZFJldmFsaWRhdGUocmVxLCBwcmV2aWV3UHJvcHMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gSGVhZGVyc0FkYXB0ZXIuZnJvbShyZXEuaGVhZGVycyk7XG4gICAgY29uc3QgcHJldmlld01vZGVJZCA9IGhlYWRlcnMuZ2V0KFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUik7XG4gICAgY29uc3QgaXNPbkRlbWFuZFJldmFsaWRhdGUgPSBwcmV2aWV3TW9kZUlkID09PSBwcmV2aWV3UHJvcHMucHJldmlld01vZGVJZDtcbiAgICBjb25zdCByZXZhbGlkYXRlT25seUdlbmVyYXRlZCA9IGhlYWRlcnMuaGFzKFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkXG4gICAgfTtcbn1cbmV4cG9ydCBjb25zdCBDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTID0gYF9fcHJlcmVuZGVyX2J5cGFzc2A7XG5leHBvcnQgY29uc3QgQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEEgPSBgX19uZXh0X3ByZXZpZXdfZGF0YWA7XG5leHBvcnQgY29uc3QgUkVTUE9OU0VfTElNSVRfREVGQVVMVCA9IDQgKiAxMDI0ICogMTAyNDtcbmV4cG9ydCBjb25zdCBTWU1CT0xfUFJFVklFV19EQVRBID0gU3ltYm9sKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBKTtcbmV4cG9ydCBjb25zdCBTWU1CT0xfQ0xFQVJFRF9DT09LSUVTID0gU3ltYm9sKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1MpO1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyUHJldmlld0RhdGEocmVzLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAoU1lNQk9MX0NMRUFSRURfQ09PS0lFUyBpbiByZXMpIHtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgY29uc3QgeyBzZXJpYWxpemUgfSA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvY29va2llXCIpO1xuICAgIGNvbnN0IHByZXZpb3VzID0gcmVzLmdldEhlYWRlcihcIlNldC1Db29raWVcIik7XG4gICAgcmVzLnNldEhlYWRlcihgU2V0LUNvb2tpZWAsIFtcbiAgICAgICAgLi4udHlwZW9mIHByZXZpb3VzID09PSBcInN0cmluZ1wiID8gW1xuICAgICAgICAgICAgcHJldmlvdXNcbiAgICAgICAgXSA6IEFycmF5LmlzQXJyYXkocHJldmlvdXMpID8gcHJldmlvdXMgOiBbXSxcbiAgICAgICAgc2VyaWFsaXplKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1MsIFwiXCIsIHtcbiAgICAgICAgICAgIC8vIFRvIGRlbGV0ZSBhIGNvb2tpZSwgc2V0IGBleHBpcmVzYCB0byBhIGRhdGUgaW4gdGhlIHBhc3Q6XG4gICAgICAgICAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTQuMS4xXG4gICAgICAgICAgICAvLyBgTWF4LUFnZTogMGAgaXMgbm90IHZhbGlkLCB0aHVzIGlnbm9yZWQsIGFuZCB0aGUgY29va2llIGlzIHBlcnNpc3RlZC5cbiAgICAgICAgICAgIGV4cGlyZXM6IG5ldyBEYXRlKDApLFxuICAgICAgICAgICAgaHR0cE9ubHk6IHRydWUsXG4gICAgICAgICAgICBzYW1lU2l0ZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIiA/IFwibm9uZVwiIDogXCJsYXhcIixcbiAgICAgICAgICAgIHNlY3VyZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIixcbiAgICAgICAgICAgIHBhdGg6IFwiL1wiLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy5wYXRoICE9PSB1bmRlZmluZWQgPyB7XG4gICAgICAgICAgICAgICAgcGF0aDogb3B0aW9ucy5wYXRoXG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgIH0pLFxuICAgICAgICBzZXJpYWxpemUoQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEEsIFwiXCIsIHtcbiAgICAgICAgICAgIC8vIFRvIGRlbGV0ZSBhIGNvb2tpZSwgc2V0IGBleHBpcmVzYCB0byBhIGRhdGUgaW4gdGhlIHBhc3Q6XG4gICAgICAgICAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTQuMS4xXG4gICAgICAgICAgICAvLyBgTWF4LUFnZTogMGAgaXMgbm90IHZhbGlkLCB0aHVzIGlnbm9yZWQsIGFuZCB0aGUgY29va2llIGlzIHBlcnNpc3RlZC5cbiAgICAgICAgICAgIGV4cGlyZXM6IG5ldyBEYXRlKDApLFxuICAgICAgICAgICAgaHR0cE9ubHk6IHRydWUsXG4gICAgICAgICAgICBzYW1lU2l0ZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIiA/IFwibm9uZVwiIDogXCJsYXhcIixcbiAgICAgICAgICAgIHNlY3VyZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIixcbiAgICAgICAgICAgIHBhdGg6IFwiL1wiLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy5wYXRoICE9PSB1bmRlZmluZWQgPyB7XG4gICAgICAgICAgICAgICAgcGF0aDogb3B0aW9ucy5wYXRoXG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgIH0pXG4gICAgXSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcywgU1lNQk9MX0NMRUFSRURfQ09PS0lFUywge1xuICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzO1xufVxuLyoqXG4gKiBDdXN0b20gZXJyb3IgY2xhc3NcbiAqLyBleHBvcnQgY2xhc3MgQXBpRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3Ioc3RhdHVzQ29kZSwgbWVzc2FnZSl7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIH1cbn1cbi8qKlxuICogU2VuZHMgZXJyb3IgaW4gYHJlc3BvbnNlYFxuICogQHBhcmFtIHJlcyByZXNwb25zZSBvYmplY3RcbiAqIEBwYXJhbSBzdGF0dXNDb2RlIG9mIHJlc3BvbnNlXG4gKiBAcGFyYW0gbWVzc2FnZSBvZiByZXNwb25zZVxuICovIGV4cG9ydCBmdW5jdGlvbiBzZW5kRXJyb3IocmVzLCBzdGF0dXNDb2RlLCBtZXNzYWdlKSB7XG4gICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIHJlcy5zdGF0dXNNZXNzYWdlID0gbWVzc2FnZTtcbiAgICByZXMuZW5kKG1lc3NhZ2UpO1xufVxuLyoqXG4gKiBFeGVjdXRlIGdldHRlciBmdW5jdGlvbiBvbmx5IGlmIGl0cyBuZWVkZWRcbiAqIEBwYXJhbSBMYXp5UHJvcHMgYHJlcWAgYW5kIGBwYXJhbXNgIGZvciBsYXp5UHJvcFxuICogQHBhcmFtIHByb3AgbmFtZSBvZiBwcm9wZXJ0eVxuICogQHBhcmFtIGdldHRlciBmdW5jdGlvbiB0byBnZXQgZGF0YVxuICovIGV4cG9ydCBmdW5jdGlvbiBzZXRMYXp5UHJvcCh7IHJlcSB9LCBwcm9wLCBnZXR0ZXIpIHtcbiAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICB9O1xuICAgIGNvbnN0IG9wdHNSZXNldCA9IHtcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXEsIHByb3AsIHtcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgZ2V0OiAoKT0+e1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXR0ZXIoKTtcbiAgICAgICAgICAgIC8vIHdlIHNldCB0aGUgcHJvcGVydHkgb24gdGhlIG9iamVjdCB0byBhdm9pZCByZWNhbGN1bGF0aW5nIGl0XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgLi4ub3B0c1Jlc2V0LFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiAodmFsdWUpPT57XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgLi4ub3B0c1Jlc2V0LFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiSGVhZGVyc0FkYXB0ZXIiLCJQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIiLCJQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIiLCJzZW5kU3RhdHVzQ29kZSIsInJlcyIsInN0YXR1c0NvZGUiLCJyZWRpcmVjdCIsInN0YXR1c09yVXJsIiwidXJsIiwiRXJyb3IiLCJ3cml0ZUhlYWQiLCJMb2NhdGlvbiIsIndyaXRlIiwiZW5kIiwiY2hlY2tJc09uRGVtYW5kUmV2YWxpZGF0ZSIsInJlcSIsInByZXZpZXdQcm9wcyIsImhlYWRlcnMiLCJmcm9tIiwicHJldmlld01vZGVJZCIsImdldCIsImlzT25EZW1hbmRSZXZhbGlkYXRlIiwicmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQiLCJoYXMiLCJDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTIiwiQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEEiLCJSRVNQT05TRV9MSU1JVF9ERUZBVUxUIiwiU1lNQk9MX1BSRVZJRVdfREFUQSIsIlN5bWJvbCIsIlNZTUJPTF9DTEVBUkVEX0NPT0tJRVMiLCJjbGVhclByZXZpZXdEYXRhIiwib3B0aW9ucyIsInNlcmlhbGl6ZSIsInJlcXVpcmUiLCJwcmV2aW91cyIsImdldEhlYWRlciIsInNldEhlYWRlciIsIkFycmF5IiwiaXNBcnJheSIsImV4cGlyZXMiLCJEYXRlIiwiaHR0cE9ubHkiLCJzYW1lU2l0ZSIsInByb2Nlc3MiLCJzZWN1cmUiLCJwYXRoIiwidW5kZWZpbmVkIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJBcGlFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsInNlbmRFcnJvciIsInN0YXR1c01lc3NhZ2UiLCJzZXRMYXp5UHJvcCIsInByb3AiLCJnZXR0ZXIiLCJvcHRzIiwiY29uZmlndXJhYmxlIiwib3B0c1Jlc2V0Iiwid3JpdGFibGUiLCJzZXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/api-utils/index.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js": +/*!********************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DraftModeProvider: () => (/* binding */ DraftModeProvider)\n/* harmony export */ });\n/* harmony import */ var _api_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api-utils */ \"(middleware)/./node_modules/next/dist/esm/server/api-utils/index.js\");\n\nclass DraftModeProvider {\n constructor(previewProps, req, cookies, mutableCookies){\n var _cookies_get;\n // The logic for draftMode() is very similar to tryGetPreviewData()\n // but Draft Mode does not have any data associated with it.\n const isOnDemandRevalidate = previewProps && (0,_api_utils__WEBPACK_IMPORTED_MODULE_0__.checkIsOnDemandRevalidate)(req, previewProps).isOnDemandRevalidate;\n const cookieValue = (_cookies_get = cookies.get(_api_utils__WEBPACK_IMPORTED_MODULE_0__.COOKIE_NAME_PRERENDER_BYPASS)) == null ? void 0 : _cookies_get.value;\n this.isEnabled = Boolean(!isOnDemandRevalidate && cookieValue && previewProps && cookieValue === previewProps.previewModeId);\n this._previewModeId = previewProps == null ? void 0 : previewProps.previewModeId;\n this._mutableCookies = mutableCookies;\n }\n enable() {\n if (!this._previewModeId) {\n throw new Error(\"Invariant: previewProps missing previewModeId this should never happen\");\n }\n this._mutableCookies.set({\n name: _api_utils__WEBPACK_IMPORTED_MODULE_0__.COOKIE_NAME_PRERENDER_BYPASS,\n value: this._previewModeId,\n httpOnly: true,\n sameSite: false ? 0 : \"lax\",\n secure: \"development\" !== \"development\",\n path: \"/\"\n });\n }\n disable() {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n this._mutableCookies.set({\n name: _api_utils__WEBPACK_IMPORTED_MODULE_0__.COOKIE_NAME_PRERENDER_BYPASS,\n value: \"\",\n httpOnly: true,\n sameSite: false ? 0 : \"lax\",\n secure: \"development\" !== \"development\",\n path: \"/\",\n expires: new Date(0)\n });\n }\n} //# sourceMappingURL=draft-mode-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FzeW5jLXN0b3JhZ2UvZHJhZnQtbW9kZS1wcm92aWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1RjtBQUNoRixNQUFNRTtJQUNUQyxZQUFZQyxZQUFZLEVBQUVDLEdBQUcsRUFBRUMsT0FBTyxFQUFFQyxjQUFjLENBQUM7UUFDbkQsSUFBSUM7UUFDSixtRUFBbUU7UUFDbkUsNERBQTREO1FBQzVELE1BQU1DLHVCQUF1QkwsZ0JBQWdCSCxxRUFBeUJBLENBQUNJLEtBQUtELGNBQWNLLG9CQUFvQjtRQUM5RyxNQUFNQyxjQUFjLENBQUNGLGVBQWVGLFFBQVFLLEdBQUcsQ0FBQ1gsb0VBQTRCQSxDQUFBLEtBQU0sT0FBTyxLQUFLLElBQUlRLGFBQWFJLEtBQUs7UUFDcEgsSUFBSSxDQUFDQyxTQUFTLEdBQUdDLFFBQVEsQ0FBQ0wsd0JBQXdCQyxlQUFlTixnQkFBZ0JNLGdCQUFnQk4sYUFBYVcsYUFBYTtRQUMzSCxJQUFJLENBQUNDLGNBQWMsR0FBR1osZ0JBQWdCLE9BQU8sS0FBSyxJQUFJQSxhQUFhVyxhQUFhO1FBQ2hGLElBQUksQ0FBQ0UsZUFBZSxHQUFHVjtJQUMzQjtJQUNBVyxTQUFTO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQ0YsY0FBYyxFQUFFO1lBQ3RCLE1BQU0sSUFBSUcsTUFBTTtRQUNwQjtRQUNBLElBQUksQ0FBQ0YsZUFBZSxDQUFDRyxHQUFHLENBQUM7WUFDckJDLE1BQU1yQixvRUFBNEJBO1lBQ2xDWSxPQUFPLElBQUksQ0FBQ0ksY0FBYztZQUMxQk0sVUFBVTtZQUNWQyxVQUFVQyxNQUFzQyxHQUFHLENBQU0sR0FBRztZQUM1REMsUUFBUUQsa0JBQXlCO1lBQ2pDRSxNQUFNO1FBQ1Y7SUFDSjtJQUNBQyxVQUFVO1FBQ04sMkRBQTJEO1FBQzNELG9EQUFvRDtRQUNwRCx3RUFBd0U7UUFDeEUsSUFBSSxDQUFDVixlQUFlLENBQUNHLEdBQUcsQ0FBQztZQUNyQkMsTUFBTXJCLG9FQUE0QkE7WUFDbENZLE9BQU87WUFDUFUsVUFBVTtZQUNWQyxVQUFVQyxNQUFzQyxHQUFHLENBQU0sR0FBRztZQUM1REMsUUFBUUQsa0JBQXlCO1lBQ2pDRSxNQUFNO1lBQ05FLFNBQVMsSUFBSUMsS0FBSztRQUN0QjtJQUNKO0FBQ0osRUFFQSwrQ0FBK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FzeW5jLXN0b3JhZ2UvZHJhZnQtbW9kZS1wcm92aWRlci5qcz84N2UwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1MsIGNoZWNrSXNPbkRlbWFuZFJldmFsaWRhdGUgfSBmcm9tIFwiLi4vYXBpLXV0aWxzXCI7XG5leHBvcnQgY2xhc3MgRHJhZnRNb2RlUHJvdmlkZXIge1xuICAgIGNvbnN0cnVjdG9yKHByZXZpZXdQcm9wcywgcmVxLCBjb29raWVzLCBtdXRhYmxlQ29va2llcyl7XG4gICAgICAgIHZhciBfY29va2llc19nZXQ7XG4gICAgICAgIC8vIFRoZSBsb2dpYyBmb3IgZHJhZnRNb2RlKCkgaXMgdmVyeSBzaW1pbGFyIHRvIHRyeUdldFByZXZpZXdEYXRhKClcbiAgICAgICAgLy8gYnV0IERyYWZ0IE1vZGUgZG9lcyBub3QgaGF2ZSBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggaXQuXG4gICAgICAgIGNvbnN0IGlzT25EZW1hbmRSZXZhbGlkYXRlID0gcHJldmlld1Byb3BzICYmIGNoZWNrSXNPbkRlbWFuZFJldmFsaWRhdGUocmVxLCBwcmV2aWV3UHJvcHMpLmlzT25EZW1hbmRSZXZhbGlkYXRlO1xuICAgICAgICBjb25zdCBjb29raWVWYWx1ZSA9IChfY29va2llc19nZXQgPSBjb29raWVzLmdldChDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jb29raWVzX2dldC52YWx1ZTtcbiAgICAgICAgdGhpcy5pc0VuYWJsZWQgPSBCb29sZWFuKCFpc09uRGVtYW5kUmV2YWxpZGF0ZSAmJiBjb29raWVWYWx1ZSAmJiBwcmV2aWV3UHJvcHMgJiYgY29va2llVmFsdWUgPT09IHByZXZpZXdQcm9wcy5wcmV2aWV3TW9kZUlkKTtcbiAgICAgICAgdGhpcy5fcHJldmlld01vZGVJZCA9IHByZXZpZXdQcm9wcyA9PSBudWxsID8gdm9pZCAwIDogcHJldmlld1Byb3BzLnByZXZpZXdNb2RlSWQ7XG4gICAgICAgIHRoaXMuX211dGFibGVDb29raWVzID0gbXV0YWJsZUNvb2tpZXM7XG4gICAgfVxuICAgIGVuYWJsZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9wcmV2aWV3TW9kZUlkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IHByZXZpZXdQcm9wcyBtaXNzaW5nIHByZXZpZXdNb2RlSWQgdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX211dGFibGVDb29raWVzLnNldCh7XG4gICAgICAgICAgICBuYW1lOiBDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3ByZXZpZXdNb2RlSWQsXG4gICAgICAgICAgICBodHRwT25seTogdHJ1ZSxcbiAgICAgICAgICAgIHNhbWVTaXRlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJkZXZlbG9wbWVudFwiID8gXCJub25lXCIgOiBcImxheFwiLFxuICAgICAgICAgICAgc2VjdXJlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJkZXZlbG9wbWVudFwiLFxuICAgICAgICAgICAgcGF0aDogXCIvXCJcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRpc2FibGUoKSB7XG4gICAgICAgIC8vIFRvIGRlbGV0ZSBhIGNvb2tpZSwgc2V0IGBleHBpcmVzYCB0byBhIGRhdGUgaW4gdGhlIHBhc3Q6XG4gICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4xLjFcbiAgICAgICAgLy8gYE1heC1BZ2U6IDBgIGlzIG5vdCB2YWxpZCwgdGh1cyBpZ25vcmVkLCBhbmQgdGhlIGNvb2tpZSBpcyBwZXJzaXN0ZWQuXG4gICAgICAgIHRoaXMuX211dGFibGVDb29raWVzLnNldCh7XG4gICAgICAgICAgICBuYW1lOiBDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTLFxuICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICBodHRwT25seTogdHJ1ZSxcbiAgICAgICAgICAgIHNhbWVTaXRlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJkZXZlbG9wbWVudFwiID8gXCJub25lXCIgOiBcImxheFwiLFxuICAgICAgICAgICAgc2VjdXJlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJkZXZlbG9wbWVudFwiLFxuICAgICAgICAgICAgcGF0aDogXCIvXCIsXG4gICAgICAgICAgICBleHBpcmVzOiBuZXcgRGF0ZSgwKVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRyYWZ0LW1vZGUtcHJvdmlkZXIuanMubWFwIl0sIm5hbWVzIjpbIkNPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1MiLCJjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlIiwiRHJhZnRNb2RlUHJvdmlkZXIiLCJjb25zdHJ1Y3RvciIsInByZXZpZXdQcm9wcyIsInJlcSIsImNvb2tpZXMiLCJtdXRhYmxlQ29va2llcyIsIl9jb29raWVzX2dldCIsImlzT25EZW1hbmRSZXZhbGlkYXRlIiwiY29va2llVmFsdWUiLCJnZXQiLCJ2YWx1ZSIsImlzRW5hYmxlZCIsIkJvb2xlYW4iLCJwcmV2aWV3TW9kZUlkIiwiX3ByZXZpZXdNb2RlSWQiLCJfbXV0YWJsZUNvb2tpZXMiLCJlbmFibGUiLCJFcnJvciIsInNldCIsIm5hbWUiLCJodHRwT25seSIsInNhbWVTaXRlIiwicHJvY2VzcyIsInNlY3VyZSIsInBhdGgiLCJkaXNhYmxlIiwiZXhwaXJlcyIsIkRhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RequestAsyncStorageWrapper: () => (/* binding */ RequestAsyncStorageWrapper)\n/* harmony export */ });\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(middleware)/./node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../web/spec-extension/adapters/headers */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js\");\n/* harmony import */ var _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../web/spec-extension/adapters/request-cookies */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\");\n/* harmony import */ var _web_spec_extension_cookies__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../web/spec-extension/cookies */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n/* harmony import */ var _draft_mode_provider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./draft-mode-provider */ \"(middleware)/./node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js\");\n\n\n\n\n\nfunction getHeaders(headers) {\n const cleaned = _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.from(headers);\n for (const param of _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.FLIGHT_PARAMETERS){\n cleaned.delete(param.toString().toLowerCase());\n }\n return _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.seal(cleaned);\n}\nfunction getCookies(headers) {\n const cookies = new _web_spec_extension_cookies__WEBPACK_IMPORTED_MODULE_3__.RequestCookies(_web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.from(headers));\n return _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_2__.RequestCookiesAdapter.seal(cookies);\n}\nfunction getMutableCookies(headers, onUpdateCookies) {\n const cookies = new _web_spec_extension_cookies__WEBPACK_IMPORTED_MODULE_3__.RequestCookies(_web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.from(headers));\n return _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_2__.MutableRequestCookiesAdapter.wrap(cookies, onUpdateCookies);\n}\nconst RequestAsyncStorageWrapper = {\n /**\n * Wrap the callback with the given store so it can access the underlying\n * store using hooks.\n *\n * @param storage underlying storage object returned by the module\n * @param context context to seed the store\n * @param callback function to call within the scope of the context\n * @returns the result returned by the callback\n */ wrap (storage, { req, res, renderOpts }, callback) {\n let previewProps = undefined;\n if (renderOpts && \"previewProps\" in renderOpts) {\n // TODO: investigate why previewProps isn't on RenderOpts\n previewProps = renderOpts.previewProps;\n }\n function defaultOnUpdateCookies(cookies) {\n if (res) {\n res.setHeader(\"Set-Cookie\", cookies);\n }\n }\n const cache = {};\n const store = {\n get headers () {\n if (!cache.headers) {\n // Seal the headers object that'll freeze out any methods that could\n // mutate the underlying data.\n cache.headers = getHeaders(req.headers);\n }\n return cache.headers;\n },\n get cookies () {\n if (!cache.cookies) {\n // Seal the cookies object that'll freeze out any methods that could\n // mutate the underlying data.\n cache.cookies = getCookies(req.headers);\n }\n return cache.cookies;\n },\n get mutableCookies () {\n if (!cache.mutableCookies) {\n cache.mutableCookies = getMutableCookies(req.headers, (renderOpts == null ? void 0 : renderOpts.onUpdateCookies) || (res ? defaultOnUpdateCookies : undefined));\n }\n return cache.mutableCookies;\n },\n get draftMode () {\n if (!cache.draftMode) {\n cache.draftMode = new _draft_mode_provider__WEBPACK_IMPORTED_MODULE_4__.DraftModeProvider(previewProps, req, this.cookies, this.mutableCookies);\n }\n return cache.draftMode;\n }\n };\n return storage.run(store, callback, store);\n }\n}; //# sourceMappingURL=request-async-storage-wrapper.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FzeW5jLXN0b3JhZ2UvcmVxdWVzdC1hc3luYy1zdG9yYWdlLXdyYXBwZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQStFO0FBQ1A7QUFDNkM7QUFDdEQ7QUFDTDtBQUMxRCxTQUFTTSxXQUFXQyxPQUFPO0lBQ3ZCLE1BQU1DLFVBQVVQLGdGQUFjQSxDQUFDUSxJQUFJLENBQUNGO0lBQ3BDLEtBQUssTUFBTUcsU0FBU1Ysb0ZBQWlCQSxDQUFDO1FBQ2xDUSxRQUFRRyxNQUFNLENBQUNELE1BQU1FLFFBQVEsR0FBR0MsV0FBVztJQUMvQztJQUNBLE9BQU9aLGdGQUFjQSxDQUFDYSxJQUFJLENBQUNOO0FBQy9CO0FBQ0EsU0FBU08sV0FBV1IsT0FBTztJQUN2QixNQUFNUyxVQUFVLElBQUlaLHVFQUFjQSxDQUFDSCxnRkFBY0EsQ0FBQ1EsSUFBSSxDQUFDRjtJQUN2RCxPQUFPSiwrRkFBcUJBLENBQUNXLElBQUksQ0FBQ0U7QUFDdEM7QUFDQSxTQUFTQyxrQkFBa0JWLE9BQU8sRUFBRVcsZUFBZTtJQUMvQyxNQUFNRixVQUFVLElBQUlaLHVFQUFjQSxDQUFDSCxnRkFBY0EsQ0FBQ1EsSUFBSSxDQUFDRjtJQUN2RCxPQUFPTCxzR0FBNEJBLENBQUNpQixJQUFJLENBQUNILFNBQVNFO0FBQ3REO0FBQ08sTUFBTUUsNkJBQTZCO0lBQ3RDOzs7Ozs7OztHQVFELEdBQUdELE1BQU1FLE9BQU8sRUFBRSxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsVUFBVSxFQUFFLEVBQUVDLFFBQVE7UUFDL0MsSUFBSUMsZUFBZUM7UUFDbkIsSUFBSUgsY0FBYyxrQkFBa0JBLFlBQVk7WUFDNUMseURBQXlEO1lBQ3pERSxlQUFlRixXQUFXRSxZQUFZO1FBQzFDO1FBQ0EsU0FBU0UsdUJBQXVCWixPQUFPO1lBQ25DLElBQUlPLEtBQUs7Z0JBQ0xBLElBQUlNLFNBQVMsQ0FBQyxjQUFjYjtZQUNoQztRQUNKO1FBQ0EsTUFBTWMsUUFBUSxDQUFDO1FBQ2YsTUFBTUMsUUFBUTtZQUNWLElBQUl4QixXQUFXO2dCQUNYLElBQUksQ0FBQ3VCLE1BQU12QixPQUFPLEVBQUU7b0JBQ2hCLG9FQUFvRTtvQkFDcEUsOEJBQThCO29CQUM5QnVCLE1BQU12QixPQUFPLEdBQUdELFdBQVdnQixJQUFJZixPQUFPO2dCQUMxQztnQkFDQSxPQUFPdUIsTUFBTXZCLE9BQU87WUFDeEI7WUFDQSxJQUFJUyxXQUFXO2dCQUNYLElBQUksQ0FBQ2MsTUFBTWQsT0FBTyxFQUFFO29CQUNoQixvRUFBb0U7b0JBQ3BFLDhCQUE4QjtvQkFDOUJjLE1BQU1kLE9BQU8sR0FBR0QsV0FBV08sSUFBSWYsT0FBTztnQkFDMUM7Z0JBQ0EsT0FBT3VCLE1BQU1kLE9BQU87WUFDeEI7WUFDQSxJQUFJZ0Isa0JBQWtCO2dCQUNsQixJQUFJLENBQUNGLE1BQU1FLGNBQWMsRUFBRTtvQkFDdkJGLE1BQU1FLGNBQWMsR0FBR2Ysa0JBQWtCSyxJQUFJZixPQUFPLEVBQUUsQ0FBQ2lCLGNBQWMsT0FBTyxLQUFLLElBQUlBLFdBQVdOLGVBQWUsS0FBTUssQ0FBQUEsTUFBTUsseUJBQXlCRCxTQUFRO2dCQUNoSztnQkFDQSxPQUFPRyxNQUFNRSxjQUFjO1lBQy9CO1lBQ0EsSUFBSUMsYUFBYTtnQkFDYixJQUFJLENBQUNILE1BQU1HLFNBQVMsRUFBRTtvQkFDbEJILE1BQU1HLFNBQVMsR0FBRyxJQUFJNUIsbUVBQWlCQSxDQUFDcUIsY0FBY0osS0FBSyxJQUFJLENBQUNOLE9BQU8sRUFBRSxJQUFJLENBQUNnQixjQUFjO2dCQUNoRztnQkFDQSxPQUFPRixNQUFNRyxTQUFTO1lBQzFCO1FBQ0o7UUFDQSxPQUFPWixRQUFRYSxHQUFHLENBQUNILE9BQU9OLFVBQVVNO0lBQ3hDO0FBQ0osRUFBRSxDQUVGLHlEQUF5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXN5bmMtc3RvcmFnZS9yZXF1ZXN0LWFzeW5jLXN0b3JhZ2Utd3JhcHBlci5qcz9jNjUwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZMSUdIVF9QQVJBTUVURVJTIH0gZnJvbSBcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiO1xuaW1wb3J0IHsgSGVhZGVyc0FkYXB0ZXIgfSBmcm9tIFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL2hlYWRlcnNcIjtcbmltcG9ydCB7IE11dGFibGVSZXF1ZXN0Q29va2llc0FkYXB0ZXIsIFJlcXVlc3RDb29raWVzQWRhcHRlciB9IGZyb20gXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVxdWVzdC1jb29raWVzXCI7XG5pbXBvcnQgeyBSZXF1ZXN0Q29va2llcyB9IGZyb20gXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vY29va2llc1wiO1xuaW1wb3J0IHsgRHJhZnRNb2RlUHJvdmlkZXIgfSBmcm9tIFwiLi9kcmFmdC1tb2RlLXByb3ZpZGVyXCI7XG5mdW5jdGlvbiBnZXRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBjb25zdCBjbGVhbmVkID0gSGVhZGVyc0FkYXB0ZXIuZnJvbShoZWFkZXJzKTtcbiAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIEZMSUdIVF9QQVJBTUVURVJTKXtcbiAgICAgICAgY2xlYW5lZC5kZWxldGUocGFyYW0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gICAgcmV0dXJuIEhlYWRlcnNBZGFwdGVyLnNlYWwoY2xlYW5lZCk7XG59XG5mdW5jdGlvbiBnZXRDb29raWVzKGhlYWRlcnMpIHtcbiAgICBjb25zdCBjb29raWVzID0gbmV3IFJlcXVlc3RDb29raWVzKEhlYWRlcnNBZGFwdGVyLmZyb20oaGVhZGVycykpO1xuICAgIHJldHVybiBSZXF1ZXN0Q29va2llc0FkYXB0ZXIuc2VhbChjb29raWVzKTtcbn1cbmZ1bmN0aW9uIGdldE11dGFibGVDb29raWVzKGhlYWRlcnMsIG9uVXBkYXRlQ29va2llcykge1xuICAgIGNvbnN0IGNvb2tpZXMgPSBuZXcgUmVxdWVzdENvb2tpZXMoSGVhZGVyc0FkYXB0ZXIuZnJvbShoZWFkZXJzKSk7XG4gICAgcmV0dXJuIE11dGFibGVSZXF1ZXN0Q29va2llc0FkYXB0ZXIud3JhcChjb29raWVzLCBvblVwZGF0ZUNvb2tpZXMpO1xufVxuZXhwb3J0IGNvbnN0IFJlcXVlc3RBc3luY1N0b3JhZ2VXcmFwcGVyID0ge1xuICAgIC8qKlxuICAgKiBXcmFwIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBnaXZlbiBzdG9yZSBzbyBpdCBjYW4gYWNjZXNzIHRoZSB1bmRlcmx5aW5nXG4gICAqIHN0b3JlIHVzaW5nIGhvb2tzLlxuICAgKlxuICAgKiBAcGFyYW0gc3RvcmFnZSB1bmRlcmx5aW5nIHN0b3JhZ2Ugb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBtb2R1bGVcbiAgICogQHBhcmFtIGNvbnRleHQgY29udGV4dCB0byBzZWVkIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCB3aXRoaW4gdGhlIHNjb3BlIG9mIHRoZSBjb250ZXh0XG4gICAqIEByZXR1cm5zIHRoZSByZXN1bHQgcmV0dXJuZWQgYnkgdGhlIGNhbGxiYWNrXG4gICAqLyB3cmFwIChzdG9yYWdlLCB7IHJlcSwgcmVzLCByZW5kZXJPcHRzIH0sIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBwcmV2aWV3UHJvcHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZW5kZXJPcHRzICYmIFwicHJldmlld1Byb3BzXCIgaW4gcmVuZGVyT3B0cykge1xuICAgICAgICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgd2h5IHByZXZpZXdQcm9wcyBpc24ndCBvbiBSZW5kZXJPcHRzXG4gICAgICAgICAgICBwcmV2aWV3UHJvcHMgPSByZW5kZXJPcHRzLnByZXZpZXdQcm9wcztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBkZWZhdWx0T25VcGRhdGVDb29raWVzKGNvb2tpZXMpIHtcbiAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiU2V0LUNvb2tpZVwiLCBjb29raWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYWNoZSA9IHt9O1xuICAgICAgICBjb25zdCBzdG9yZSA9IHtcbiAgICAgICAgICAgIGdldCBoZWFkZXJzICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNhY2hlLmhlYWRlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VhbCB0aGUgaGVhZGVycyBvYmplY3QgdGhhdCdsbCBmcmVlemUgb3V0IGFueSBtZXRob2RzIHRoYXQgY291bGRcbiAgICAgICAgICAgICAgICAgICAgLy8gbXV0YXRlIHRoZSB1bmRlcmx5aW5nIGRhdGEuXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlLmhlYWRlcnMgPSBnZXRIZWFkZXJzKHJlcS5oZWFkZXJzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLmhlYWRlcnM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IGNvb2tpZXMgKCkge1xuICAgICAgICAgICAgICAgIGlmICghY2FjaGUuY29va2llcykge1xuICAgICAgICAgICAgICAgICAgICAvLyBTZWFsIHRoZSBjb29raWVzIG9iamVjdCB0aGF0J2xsIGZyZWV6ZSBvdXQgYW55IG1ldGhvZHMgdGhhdCBjb3VsZFxuICAgICAgICAgICAgICAgICAgICAvLyBtdXRhdGUgdGhlIHVuZGVybHlpbmcgZGF0YS5cbiAgICAgICAgICAgICAgICAgICAgY2FjaGUuY29va2llcyA9IGdldENvb2tpZXMocmVxLmhlYWRlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUuY29va2llcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgbXV0YWJsZUNvb2tpZXMgKCkge1xuICAgICAgICAgICAgICAgIGlmICghY2FjaGUubXV0YWJsZUNvb2tpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGUubXV0YWJsZUNvb2tpZXMgPSBnZXRNdXRhYmxlQ29va2llcyhyZXEuaGVhZGVycywgKHJlbmRlck9wdHMgPT0gbnVsbCA/IHZvaWQgMCA6IHJlbmRlck9wdHMub25VcGRhdGVDb29raWVzKSB8fCAocmVzID8gZGVmYXVsdE9uVXBkYXRlQ29va2llcyA6IHVuZGVmaW5lZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUubXV0YWJsZUNvb2tpZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IGRyYWZ0TW9kZSAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjYWNoZS5kcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGUuZHJhZnRNb2RlID0gbmV3IERyYWZ0TW9kZVByb3ZpZGVyKHByZXZpZXdQcm9wcywgcmVxLCB0aGlzLmNvb2tpZXMsIHRoaXMubXV0YWJsZUNvb2tpZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUuZHJhZnRNb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc3RvcmFnZS5ydW4oc3RvcmUsIGNhbGxiYWNrLCBzdG9yZSk7XG4gICAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1hc3luYy1zdG9yYWdlLXdyYXBwZXIuanMubWFwIl0sIm5hbWVzIjpbIkZMSUdIVF9QQVJBTUVURVJTIiwiSGVhZGVyc0FkYXB0ZXIiLCJNdXRhYmxlUmVxdWVzdENvb2tpZXNBZGFwdGVyIiwiUmVxdWVzdENvb2tpZXNBZGFwdGVyIiwiUmVxdWVzdENvb2tpZXMiLCJEcmFmdE1vZGVQcm92aWRlciIsImdldEhlYWRlcnMiLCJoZWFkZXJzIiwiY2xlYW5lZCIsImZyb20iLCJwYXJhbSIsImRlbGV0ZSIsInRvU3RyaW5nIiwidG9Mb3dlckNhc2UiLCJzZWFsIiwiZ2V0Q29va2llcyIsImNvb2tpZXMiLCJnZXRNdXRhYmxlQ29va2llcyIsIm9uVXBkYXRlQ29va2llcyIsIndyYXAiLCJSZXF1ZXN0QXN5bmNTdG9yYWdlV3JhcHBlciIsInN0b3JhZ2UiLCJyZXEiLCJyZXMiLCJyZW5kZXJPcHRzIiwiY2FsbGJhY2siLCJwcmV2aWV3UHJvcHMiLCJ1bmRlZmluZWQiLCJkZWZhdWx0T25VcGRhdGVDb29raWVzIiwic2V0SGVhZGVyIiwiY2FjaGUiLCJzdG9yZSIsIm11dGFibGVDb29raWVzIiwiZHJhZnRNb2RlIiwicnVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/internal-utils.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/internal-utils.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stripInternalHeaders: () => (/* binding */ stripInternalHeaders),\n/* harmony export */ stripInternalQueries: () => (/* binding */ stripInternalQueries),\n/* harmony export */ stripInternalSearchParams: () => (/* binding */ stripInternalSearchParams)\n/* harmony export */ });\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/app-router-headers */ \"(middleware)/./node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/lib/constants */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/constants.js\");\n\n\nconst INTERNAL_QUERY_NAMES = [\n \"__nextFallback\",\n \"__nextLocale\",\n \"__nextInferredLocaleFromDefault\",\n \"__nextDefaultLocale\",\n \"__nextIsNotFound\",\n _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_RSC_UNION_QUERY\n];\nconst EDGE_EXTENDED_INTERNAL_QUERY_NAMES = [\n \"__nextDataReq\"\n];\nfunction stripInternalQueries(query) {\n for (const name of INTERNAL_QUERY_NAMES){\n delete query[name];\n }\n}\nfunction stripInternalSearchParams(url, isEdge) {\n const isStringUrl = typeof url === \"string\";\n const instance = isStringUrl ? new URL(url) : url;\n for (const name of INTERNAL_QUERY_NAMES){\n instance.searchParams.delete(name);\n }\n if (isEdge) {\n for (const name of EDGE_EXTENDED_INTERNAL_QUERY_NAMES){\n instance.searchParams.delete(name);\n }\n }\n return isStringUrl ? instance.toString() : instance;\n}\n/**\n * Strip internal headers from the request headers.\n *\n * @param headers the headers to strip of internal headers\n */ function stripInternalHeaders(headers) {\n for (const key of _shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__.INTERNAL_HEADERS){\n delete headers[key];\n }\n} //# sourceMappingURL=internal-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2ludGVybmFsLXV0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStFO0FBQ3BCO0FBQzNELE1BQU1FLHVCQUF1QjtJQUN6QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0FGLHVGQUFvQkE7Q0FDdkI7QUFDRCxNQUFNRyxxQ0FBcUM7SUFDdkM7Q0FDSDtBQUNNLFNBQVNDLHFCQUFxQkMsS0FBSztJQUN0QyxLQUFLLE1BQU1DLFFBQVFKLHFCQUFxQjtRQUNwQyxPQUFPRyxLQUFLLENBQUNDLEtBQUs7SUFDdEI7QUFDSjtBQUNPLFNBQVNDLDBCQUEwQkMsR0FBRyxFQUFFQyxNQUFNO0lBQ2pELE1BQU1DLGNBQWMsT0FBT0YsUUFBUTtJQUNuQyxNQUFNRyxXQUFXRCxjQUFjLElBQUlFLElBQUlKLE9BQU9BO0lBQzlDLEtBQUssTUFBTUYsUUFBUUoscUJBQXFCO1FBQ3BDUyxTQUFTRSxZQUFZLENBQUNDLE1BQU0sQ0FBQ1I7SUFDakM7SUFDQSxJQUFJRyxRQUFRO1FBQ1IsS0FBSyxNQUFNSCxRQUFRSCxtQ0FBbUM7WUFDbERRLFNBQVNFLFlBQVksQ0FBQ0MsTUFBTSxDQUFDUjtRQUNqQztJQUNKO0lBQ0EsT0FBT0ksY0FBY0MsU0FBU0ksUUFBUSxLQUFLSjtBQUMvQztBQUNBOzs7O0NBSUMsR0FBVSxTQUFTSyxxQkFBcUJDLE9BQU87SUFDNUMsS0FBSyxNQUFNQyxPQUFPakIsbUVBQWdCQSxDQUFDO1FBQy9CLE9BQU9nQixPQUFPLENBQUNDLElBQUk7SUFDdkI7QUFDSixFQUVBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvaW50ZXJuYWwtdXRpbHMuanM/YjMyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBORVhUX1JTQ19VTklPTl9RVUVSWSB9IGZyb20gXCIuLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbmltcG9ydCB7IElOVEVSTkFMX0hFQURFUlMgfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9jb25zdGFudHNcIjtcbmNvbnN0IElOVEVSTkFMX1FVRVJZX05BTUVTID0gW1xuICAgIFwiX19uZXh0RmFsbGJhY2tcIixcbiAgICBcIl9fbmV4dExvY2FsZVwiLFxuICAgIFwiX19uZXh0SW5mZXJyZWRMb2NhbGVGcm9tRGVmYXVsdFwiLFxuICAgIFwiX19uZXh0RGVmYXVsdExvY2FsZVwiLFxuICAgIFwiX19uZXh0SXNOb3RGb3VuZFwiLFxuICAgIE5FWFRfUlNDX1VOSU9OX1FVRVJZXG5dO1xuY29uc3QgRURHRV9FWFRFTkRFRF9JTlRFUk5BTF9RVUVSWV9OQU1FUyA9IFtcbiAgICBcIl9fbmV4dERhdGFSZXFcIlxuXTtcbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEludGVybmFsUXVlcmllcyhxdWVyeSkge1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBJTlRFUk5BTF9RVUVSWV9OQU1FUyl7XG4gICAgICAgIGRlbGV0ZSBxdWVyeVtuYW1lXTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gc3RyaXBJbnRlcm5hbFNlYXJjaFBhcmFtcyh1cmwsIGlzRWRnZSkge1xuICAgIGNvbnN0IGlzU3RyaW5nVXJsID0gdHlwZW9mIHVybCA9PT0gXCJzdHJpbmdcIjtcbiAgICBjb25zdCBpbnN0YW5jZSA9IGlzU3RyaW5nVXJsID8gbmV3IFVSTCh1cmwpIDogdXJsO1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBJTlRFUk5BTF9RVUVSWV9OQU1FUyl7XG4gICAgICAgIGluc3RhbmNlLnNlYXJjaFBhcmFtcy5kZWxldGUobmFtZSk7XG4gICAgfVxuICAgIGlmIChpc0VkZ2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIEVER0VfRVhURU5ERURfSU5URVJOQUxfUVVFUllfTkFNRVMpe1xuICAgICAgICAgICAgaW5zdGFuY2Uuc2VhcmNoUGFyYW1zLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNTdHJpbmdVcmwgPyBpbnN0YW5jZS50b1N0cmluZygpIDogaW5zdGFuY2U7XG59XG4vKipcbiAqIFN0cmlwIGludGVybmFsIGhlYWRlcnMgZnJvbSB0aGUgcmVxdWVzdCBoZWFkZXJzLlxuICpcbiAqIEBwYXJhbSBoZWFkZXJzIHRoZSBoZWFkZXJzIHRvIHN0cmlwIG9mIGludGVybmFsIGhlYWRlcnNcbiAqLyBleHBvcnQgZnVuY3Rpb24gc3RyaXBJbnRlcm5hbEhlYWRlcnMoaGVhZGVycykge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIElOVEVSTkFMX0hFQURFUlMpe1xuICAgICAgICBkZWxldGUgaGVhZGVyc1trZXldO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJuYWwtdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiSU5URVJOQUxfSEVBREVSUyIsIklOVEVSTkFMX1FVRVJZX05BTUVTIiwiRURHRV9FWFRFTkRFRF9JTlRFUk5BTF9RVUVSWV9OQU1FUyIsInN0cmlwSW50ZXJuYWxRdWVyaWVzIiwicXVlcnkiLCJuYW1lIiwic3RyaXBJbnRlcm5hbFNlYXJjaFBhcmFtcyIsInVybCIsImlzRWRnZSIsImlzU3RyaW5nVXJsIiwiaW5zdGFuY2UiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJkZWxldGUiLCJ0b1N0cmluZyIsInN0cmlwSW50ZXJuYWxIZWFkZXJzIiwiaGVhZGVycyIsImtleSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/internal-utils.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/lib/trace/constants.js": +/*!******************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/lib/trace/constants.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRenderSpan: () => (/* binding */ AppRenderSpan),\n/* harmony export */ AppRouteRouteHandlersSpan: () => (/* binding */ AppRouteRouteHandlersSpan),\n/* harmony export */ BaseServerSpan: () => (/* binding */ BaseServerSpan),\n/* harmony export */ LoadComponentsSpan: () => (/* binding */ LoadComponentsSpan),\n/* harmony export */ NextNodeServerSpan: () => (/* binding */ NextNodeServerSpan),\n/* harmony export */ NextServerSpan: () => (/* binding */ NextServerSpan),\n/* harmony export */ NextVanillaSpanAllowlist: () => (/* binding */ NextVanillaSpanAllowlist),\n/* harmony export */ NodeSpan: () => (/* binding */ NodeSpan),\n/* harmony export */ RenderSpan: () => (/* binding */ RenderSpan),\n/* harmony export */ ResolveMetadataSpan: () => (/* binding */ ResolveMetadataSpan),\n/* harmony export */ RouterSpan: () => (/* binding */ RouterSpan),\n/* harmony export */ StartServerSpan: () => (/* binding */ StartServerSpan)\n/* harmony export */ });\n/**\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 */ var BaseServerSpan;\n(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})(BaseServerSpan || (BaseServerSpan = {}));\nvar LoadComponentsSpan;\n(function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n})(LoadComponentsSpan || (LoadComponentsSpan = {}));\nvar NextServerSpan;\n(function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n})(NextServerSpan || (NextServerSpan = {}));\nvar NextNodeServerSpan;\n(function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\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[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n})(NextNodeServerSpan || (NextNodeServerSpan = {}));\nvar StartServerSpan;\n(function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n})(StartServerSpan || (StartServerSpan = {}));\nvar RenderSpan;\n(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})(RenderSpan || (RenderSpan = {}));\nvar AppRenderSpan;\n(function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n})(AppRenderSpan || (AppRenderSpan = {}));\nvar RouterSpan;\n(function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n})(RouterSpan || (RouterSpan = {}));\nvar NodeSpan;\n(function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n})(NodeSpan || (NodeSpan = {}));\nvar AppRouteRouteHandlersSpan;\n(function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n})(AppRouteRouteHandlersSpan || (AppRouteRouteHandlersSpan = {}));\nvar ResolveMetadataSpan;\n(function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n})(ResolveMetadataSpan || (ResolveMetadataSpan = {}));\n// This list is used to filter out spans that are not relevant to the user\nconst NextVanillaSpanAllowlist = [\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.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\"\n];\n //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7O0VBS0UsR0FBRyw0Q0FBNEM7QUFDakQsNEJBQTRCLEdBQUcsSUFBSUE7QUFDbEMsVUFBU0EsY0FBYztJQUNwQkEsY0FBYyxDQUFDLGdCQUFnQixHQUFHO0lBQ2xDQSxjQUFjLENBQUMsTUFBTSxHQUFHO0lBQ3hCQSxjQUFjLENBQUMsT0FBTyxHQUFHO0lBQ3pCQSxjQUFjLENBQUMsZ0JBQWdCLEdBQUc7SUFDbENBLGNBQWMsQ0FBQyxTQUFTLEdBQUc7SUFDM0JBLGNBQWMsQ0FBQyxpQ0FBaUMsR0FBRztJQUNuREEsY0FBYyxDQUFDLG1CQUFtQixHQUFHO0lBQ3JDQSxjQUFjLENBQUMsZUFBZSxHQUFHO0lBQ2pDQSxjQUFjLENBQUMsY0FBYyxHQUFHO0lBQ2hDQSxjQUFjLENBQUMsd0JBQXdCLEdBQUc7SUFDMUNBLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRztJQUN0Q0EsY0FBYyxDQUFDLFlBQVksR0FBRztBQUNsQyxHQUFHQSxrQkFBbUJBLENBQUFBLGlCQUFpQixDQUFDO0FBQ3hDLElBQUlDO0FBQ0gsVUFBU0Esa0JBQWtCO0lBQ3hCQSxrQkFBa0IsQ0FBQyw2QkFBNkIsR0FBRztJQUNuREEsa0JBQWtCLENBQUMsaUJBQWlCLEdBQUc7QUFDM0MsR0FBR0Esc0JBQXVCQSxDQUFBQSxxQkFBcUIsQ0FBQztBQUNoRCxJQUFJQztBQUNILFVBQVNBLGNBQWM7SUFDcEJBLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRztJQUN0Q0EsY0FBYyxDQUFDLFlBQVksR0FBRztJQUM5QkEsY0FBYyxDQUFDLDBCQUEwQixHQUFHO0lBQzVDQSxjQUFjLENBQUMsZUFBZSxHQUFHO0FBQ3JDLEdBQUdBLGtCQUFtQkEsQ0FBQUEsaUJBQWlCLENBQUM7QUFDeEMsSUFBSUM7QUFDSCxVQUFTQSxrQkFBa0I7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O0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDb00sQ0FFdE0scUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzPzRkMGIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWlucyBwcmVkZWZpbmVkIGNvbnN0YW50cyBmb3IgdGhlIHRyYWNlIHNwYW4gbmFtZSBpbiBuZXh0L3NlcnZlci5cbiAqXG4gKiBDdXJyZW50bHksIG5leHQvc2VydmVyL3RyYWNlciBpcyBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvbmx5IGZvciB0cmFja2luZ1xuICogbmV4dC5qcydzIGltcGxlbWVudGF0aW9uIG9ubHkgd2l0aCBrbm93biBzcGFuIG5hbWVzIGRlZmluZWQgaGVyZS5cbiAqKi8gLy8gZXNsaW50IHR5cGVzY3JpcHQgaGFzIGEgYnVnIHdpdGggVFMgZW51bXNcbi8qIGVzbGludC1kaXNhYmxlIG5vLXNoYWRvdyAqLyB2YXIgQmFzZVNlcnZlclNwYW47XG4oZnVuY3Rpb24oQmFzZVNlcnZlclNwYW4pIHtcbiAgICBCYXNlU2VydmVyU3BhbltcImhhbmRsZVJlcXVlc3RcIl0gPSBcIkJhc2VTZXJ2ZXIuaGFuZGxlUmVxdWVzdFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicnVuXCJdID0gXCJCYXNlU2VydmVyLnJ1blwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicGlwZVwiXSA9IFwiQmFzZVNlcnZlci5waXBlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJnZXRTdGF0aWNIVE1MXCJdID0gXCJCYXNlU2VydmVyLmdldFN0YXRpY0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50c1wiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9SZXNwb25zZVwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9IVE1MXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yVG9IVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyNDA0XCI7XG59KShCYXNlU2VydmVyU3BhbiB8fCAoQmFzZVNlcnZlclNwYW4gPSB7fSkpO1xudmFyIExvYWRDb21wb25lbnRzU3BhbjtcbihmdW5jdGlvbihMb2FkQ29tcG9uZW50c1NwYW4pIHtcbiAgICBMb2FkQ29tcG9uZW50c1NwYW5bXCJsb2FkRGVmYXVsdEVycm9yQ29tcG9uZW50c1wiXSA9IFwiTG9hZENvbXBvbmVudHMubG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIjtcbiAgICBMb2FkQ29tcG9uZW50c1NwYW5bXCJsb2FkQ29tcG9uZW50c1wiXSA9IFwiTG9hZENvbXBvbmVudHMubG9hZENvbXBvbmVudHNcIjtcbn0pKExvYWRDb21wb25lbnRzU3BhbiB8fCAoTG9hZENvbXBvbmVudHNTcGFuID0ge30pKTtcbnZhciBOZXh0U2VydmVyU3BhbjtcbihmdW5jdGlvbihOZXh0U2VydmVyU3Bhbikge1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0UmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFNlcnZlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFNlcnZlclJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFNlcnZlclJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJjcmVhdGVTZXJ2ZXJcIl0gPSBcImNyZWF0ZVNlcnZlci5jcmVhdGVTZXJ2ZXJcIjtcbn0pKE5leHRTZXJ2ZXJTcGFuIHx8IChOZXh0U2VydmVyU3BhbiA9IHt9KSk7XG52YXIgTmV4dE5vZGVTZXJ2ZXJTcGFuO1xuKGZ1bmN0aW9uKE5leHROb2RlU2VydmVyU3Bhbikge1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNvbXByZXNzaW9uXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jb21wcmVzc2lvblwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEJ1aWxkSWRcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldEJ1aWxkSWRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRMYXlvdXRPclBhZ2VNb2R1bGVcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZVN0YXRpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVB1YmxpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUltYWdlUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUltYWdlUm91dGVzLnJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wic2VuZFJlbmRlclJlc3VsdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuc2VuZFJlbmRlclJlc3VsdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInByb3h5UmVxdWVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucHJveHlSZXF1ZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicnVuQXBpXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5ydW5BcGlcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckhUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckhUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbWFnZU9wdGltaXplclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuaW1hZ2VPcHRpbWl6ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRQYWdlUGF0aFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0UGFnZVBhdGhcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRSb3V0ZXNNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Um91dGVzTWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJmaW5kUGFnZUNvbXBvbmVudHNcIl0gPSBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEZvbnRNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Rm9udE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyQ29tcG9uZW50TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhblsvLyBuZXN0ZWQgaW5uZXIgc3BhbiwgZG9lcyBub3QgcmVxdWlyZSBwYXJlbnQgc2NvcGUgbmFtZVxuICAgIFwicm91dGVcIl0gPSBcInJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wib25Qcm94eVJlcVwiXSA9IFwib25Qcm94eVJlcVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImFwaVJlc29sdmVyXCJdID0gXCJhcGlSZXNvbHZlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImludGVybmFsRmV0Y2hcIl0gPSBcImludGVybmFsRmV0Y2hcIjtcbn0pKE5leHROb2RlU2VydmVyU3BhbiB8fCAoTmV4dE5vZGVTZXJ2ZXJTcGFuID0ge30pKTtcbnZhciBTdGFydFNlcnZlclNwYW47XG4oZnVuY3Rpb24oU3RhcnRTZXJ2ZXJTcGFuKSB7XG4gICAgU3RhcnRTZXJ2ZXJTcGFuW1wic3RhcnRTZXJ2ZXJcIl0gPSBcInN0YXJ0U2VydmVyLnN0YXJ0U2VydmVyXCI7XG59KShTdGFydFNlcnZlclNwYW4gfHwgKFN0YXJ0U2VydmVyU3BhbiA9IHt9KSk7XG52YXIgUmVuZGVyU3BhbjtcbihmdW5jdGlvbihSZW5kZXJTcGFuKSB7XG4gICAgUmVuZGVyU3BhbltcImdldFNlcnZlclNpZGVQcm9wc1wiXSA9IFwiUmVuZGVyLmdldFNlcnZlclNpZGVQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJnZXRTdGF0aWNQcm9wc1wiXSA9IFwiUmVuZGVyLmdldFN0YXRpY1Byb3BzXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlclRvU3RyaW5nXCJdID0gXCJSZW5kZXIucmVuZGVyVG9TdHJpbmdcIjtcbiAgICBSZW5kZXJTcGFuW1wicmVuZGVyRG9jdW1lbnRcIl0gPSBcIlJlbmRlci5yZW5kZXJEb2N1bWVudFwiO1xuICAgIFJlbmRlclNwYW5bXCJjcmVhdGVCb2R5UmVzdWx0XCJdID0gXCJSZW5kZXIuY3JlYXRlQm9keVJlc3VsdFwiO1xufSkoUmVuZGVyU3BhbiB8fCAoUmVuZGVyU3BhbiA9IHt9KSk7XG52YXIgQXBwUmVuZGVyU3BhbjtcbihmdW5jdGlvbihBcHBSZW5kZXJTcGFuKSB7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvU3RyaW5nXCJdID0gXCJBcHBSZW5kZXIucmVuZGVyVG9TdHJpbmdcIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wicmVuZGVyVG9SZWFkYWJsZVN0cmVhbVwiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvUmVhZGFibGVTdHJlYW1cIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wiZ2V0Qm9keVJlc3VsdFwiXSA9IFwiQXBwUmVuZGVyLmdldEJvZHlSZXN1bHRcIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wiZmV0Y2hcIl0gPSBcIkFwcFJlbmRlci5mZXRjaFwiO1xufSkoQXBwUmVuZGVyU3BhbiB8fCAoQXBwUmVuZGVyU3BhbiA9IHt9KSk7XG52YXIgUm91dGVyU3BhbjtcbihmdW5jdGlvbihSb3V0ZXJTcGFuKSB7XG4gICAgUm91dGVyU3BhbltcImV4ZWN1dGVSb3V0ZVwiXSA9IFwiUm91dGVyLmV4ZWN1dGVSb3V0ZVwiO1xufSkoUm91dGVyU3BhbiB8fCAoUm91dGVyU3BhbiA9IHt9KSk7XG52YXIgTm9kZVNwYW47XG4oZnVuY3Rpb24oTm9kZVNwYW4pIHtcbiAgICBOb2RlU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIk5vZGUucnVuSGFuZGxlclwiO1xufSkoTm9kZVNwYW4gfHwgKE5vZGVTcGFuID0ge30pKTtcbnZhciBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuO1xuKGZ1bmN0aW9uKEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4pIHtcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuW1wicnVuSGFuZGxlclwiXSA9IFwiQXBwUm91dGVSb3V0ZUhhbmRsZXJzLnJ1bkhhbmRsZXJcIjtcbn0pKEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gfHwgKEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gPSB7fSkpO1xudmFyIFJlc29sdmVNZXRhZGF0YVNwYW47XG4oZnVuY3Rpb24oUmVzb2x2ZU1ldGFkYXRhU3Bhbikge1xuICAgIFJlc29sdmVNZXRhZGF0YVNwYW5bXCJnZW5lcmF0ZU1ldGFkYXRhXCJdID0gXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiO1xuICAgIFJlc29sdmVNZXRhZGF0YVNwYW5bXCJnZW5lcmF0ZVZpZXdwb3J0XCJdID0gXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVWaWV3cG9ydFwiO1xufSkoUmVzb2x2ZU1ldGFkYXRhU3BhbiB8fCAoUmVzb2x2ZU1ldGFkYXRhU3BhbiA9IHt9KSk7XG4vLyBUaGlzIGxpc3QgaXMgdXNlZCB0byBmaWx0ZXIgb3V0IHNwYW5zIHRoYXQgYXJlIG5vdCByZWxldmFudCB0byB0aGUgdXNlclxuZXhwb3J0IGNvbnN0IE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdCA9IFtcbiAgICBcIkJhc2VTZXJ2ZXIuaGFuZGxlUmVxdWVzdFwiLFxuICAgIFwiUmVuZGVyLmdldFNlcnZlclNpZGVQcm9wc1wiLFxuICAgIFwiUmVuZGVyLmdldFN0YXRpY1Byb3BzXCIsXG4gICAgXCJBcHBSZW5kZXIuZmV0Y2hcIixcbiAgICBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCIsXG4gICAgXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIixcbiAgICBcIk5vZGUucnVuSGFuZGxlclwiLFxuICAgIFwiQXBwUm91dGVSb3V0ZUhhbmRsZXJzLnJ1bkhhbmRsZXJcIixcbiAgICBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZU1ldGFkYXRhXCIsXG4gICAgXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVWaWV3cG9ydFwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5nZXRMYXlvdXRPclBhZ2VNb2R1bGVcIlxuXTtcbmV4cG9ydCB7IEJhc2VTZXJ2ZXJTcGFuLCBMb2FkQ29tcG9uZW50c1NwYW4sIE5leHRTZXJ2ZXJTcGFuLCBOZXh0Tm9kZVNlcnZlclNwYW4sIFN0YXJ0U2VydmVyU3BhbiwgUmVuZGVyU3BhbiwgUm91dGVyU3BhbiwgQXBwUmVuZGVyU3BhbiwgTm9kZVNwYW4sIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4sIFJlc29sdmVNZXRhZGF0YVNwYW4sICB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbIkJhc2VTZXJ2ZXJTcGFuIiwiTG9hZENvbXBvbmVudHNTcGFuIiwiTmV4dFNlcnZlclNwYW4iLCJOZXh0Tm9kZVNlcnZlclNwYW4iLCJTdGFydFNlcnZlclNwYW4iLCJSZW5kZXJTcGFuIiwiQXBwUmVuZGVyU3BhbiIsIlJvdXRlclNwYW4iLCJOb2RlU3BhbiIsIkFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4iLCJSZXNvbHZlTWV0YWRhdGFTcGFuIiwiTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/lib/trace/constants.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/lib/trace/tracer.js": +/*!***************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/lib/trace/tracer.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SpanKind: () => (/* binding */ SpanKind),\n/* harmony export */ SpanStatusCode: () => (/* binding */ SpanStatusCode),\n/* harmony export */ getTracer: () => (/* binding */ getTracer)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"(middleware)/./node_modules/next/dist/esm/server/lib/trace/constants.js\");\n\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 (true) {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(middleware)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n} else {}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nconst isPromise = (p)=>{\n return p !== null && typeof p === \"object\" && typeof p.then === \"function\";\n};\nconst closeSpanWithError = (span, error)=>{\n if ((error == null ? void 0 : error.bubble) === true) {\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++;\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 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 if (!_constants__WEBPACK_IMPORTED_MODULE_0__.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== \"1\" || options.hideSpan) {\n return fn();\n }\n const spanName = options.spanName ?? type;\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 = 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 onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\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 (isPromise(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__WEBPACK_IMPORTED_MODULE_0__.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}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n //# sourceMappingURL=tracer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF1RDtBQUN2RCxJQUFJQztBQUNKLGdGQUFnRjtBQUNoRiw4RUFBOEU7QUFDOUUsdUNBQXVDO0FBQ3ZDLDBFQUEwRTtBQUMxRSwrRUFBK0U7QUFDL0UsNENBQTRDO0FBQzVDLDZDQUE2QztBQUM3QyxJQUFJQyxJQUFtQyxFQUFFO0lBQ3JDRCxNQUFNSSxtQkFBT0EsQ0FBQyxzR0FBb0I7QUFDdEMsT0FBTyxFQU1OO0FBQ0QsTUFBTSxFQUFFRSxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsS0FBSyxFQUFFQyxjQUFjLEVBQUVDLFFBQVEsRUFBRUMsWUFBWSxFQUFFLEdBQUdYO0FBQ2hGLE1BQU1ZLFlBQVksQ0FBQ0M7SUFDZixPQUFPQSxNQUFNLFFBQVEsT0FBT0EsTUFBTSxZQUFZLE9BQU9BLEVBQUVDLElBQUksS0FBSztBQUNwRTtBQUNBLE1BQU1DLHFCQUFxQixDQUFDQyxNQUFNQztJQUM5QixJQUFJLENBQUNBLFNBQVMsT0FBTyxLQUFLLElBQUlBLE1BQU1DLE1BQU0sTUFBTSxNQUFNO1FBQ2xERixLQUFLRyxZQUFZLENBQUMsZUFBZTtJQUNyQyxPQUFPO1FBQ0gsSUFBSUYsT0FBTztZQUNQRCxLQUFLSSxlQUFlLENBQUNIO1FBQ3pCO1FBQ0FELEtBQUtLLFNBQVMsQ0FBQztZQUNYQyxNQUFNYixlQUFlYyxLQUFLO1lBQzFCQyxTQUFTUCxTQUFTLE9BQU8sS0FBSyxJQUFJQSxNQUFNTyxPQUFPO1FBQ25EO0lBQ0o7SUFDQVIsS0FBS1MsR0FBRztBQUNaO0FBQ0EsOEVBQThFLEdBQUcsTUFBTUMsMEJBQTBCLElBQUlDO0FBQ3JILE1BQU1DLGdCQUFnQjVCLElBQUk2QixnQkFBZ0IsQ0FBQztBQUMzQyxJQUFJQyxhQUFhO0FBQ2pCLE1BQU1DLFlBQVksSUFBSUQ7QUFDdEIsTUFBTUU7SUFDRjs7OztHQUlE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QUFJLEVBQUVDO29CQUNwQztvQkFDQSxPQUFPeEMsR0FBR3VDLEtBQUssQ0FBQyxJQUFJLEVBQUVDO2dCQUMxQjtZQUNKLE9BQU87Z0JBQ0gsT0FBT0osT0FBT3JFLEtBQUssQ0FBQ3NFLE1BQU1DLFlBQVksSUFBSXRDLEdBQUd1QyxLQUFLLENBQUMsSUFBSSxFQUFFQztZQUM3RDtRQUNKO0lBQ0o7SUFDQU8sVUFBVSxHQUFHeEMsSUFBSSxFQUFFO1FBQ2YsTUFBTSxDQUFDRSxNQUFNRyxRQUFRLEdBQUdMO1FBQ3hCLE1BQU1VLGNBQWMsSUFBSSxDQUFDZCxjQUFjLENBQUMsQ0FBQ1MsV0FBVyxPQUFPLEtBQUssSUFBSUEsUUFBUU0sVUFBVSxLQUFLLElBQUksQ0FBQ3ZCLGtCQUFrQjtRQUNsSCxPQUFPLElBQUksQ0FBQ0gsaUJBQWlCLEdBQUd1RCxTQUFTLENBQUN0QyxNQUFNRyxTQUFTSztJQUM3RDtJQUNBZCxlQUFlZSxVQUFVLEVBQUU7UUFDdkIsTUFBTUQsY0FBY0MsYUFBYW5ELE1BQU1pRixPQUFPLENBQUNuRixRQUFRZ0MsTUFBTSxJQUFJcUIsY0FBYytCO1FBQy9FLE9BQU9oQztJQUNYO0lBQ0FpQyx3QkFBd0I7UUFDcEIsTUFBTTdCLFNBQVN4RCxRQUFRZ0MsTUFBTSxHQUFHc0QsUUFBUSxDQUFDaEU7UUFDekMsT0FBT0Ysd0JBQXdCbUUsR0FBRyxDQUFDL0I7SUFDdkM7QUFDSjtBQUNBLE1BQU01QixZQUFZLENBQUM7SUFDZixNQUFNMkMsU0FBUyxJQUFJN0M7SUFDbkIsT0FBTyxJQUFJNkM7QUFDZjtBQUMrQyxDQUUvQyxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanM/NDg5MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmxldCBhcGk7XG4vLyB3ZSB3YW50IHRvIGFsbG93IHVzZXJzIHRvIHVzZSB0aGVpciBvd24gdmVyc2lvbiBvZiBAb3BlbnRlbGVtZXRyeS9hcGkgaWYgdGhleVxuLy8gd2FudCB0bywgc28gd2UgdHJ5IHRvIHJlcXVpcmUgaXQgZmlyc3QsIGFuZCBpZiBpdCBmYWlscyB3ZSBmYWxsIGJhY2sgdG8gdGhlXG4vLyB2ZXJzaW9uIHRoYXQgaXMgYnVuZGxlZCB3aXRoIE5leHQuanNcbi8vIHRoaXMgaXMgYmVjYXVzZSBAb3BlbnRlbGVtZXRyeS9hcGkgaGFzIHRvIGJlIHN5bmNlZCB3aXRoIHRoZSB2ZXJzaW9uIG9mXG4vLyBAb3BlbnRlbGVtZXRyeS90cmFjaW5nIHRoYXQgaXMgdXNlZCwgYW5kIHdlIGRvbid0IHdhbnQgdG8gZm9yY2UgdXNlcnMgdG8gdXNlXG4vLyB0aGUgdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzLlxuLy8gdGhlIEFQSSBpcyB+c3RhYmxlLCBzbyB0aGlzIHNob3VsZCBiZSBmaW5lXG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIikge1xuICAgIGFwaSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9hcGlcIik7XG59IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9hcGlcIik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpXCIpO1xuICAgIH1cbn1cbmNvbnN0IHsgY29udGV4dCwgcHJvcGFnYXRpb24sIHRyYWNlLCBTcGFuU3RhdHVzQ29kZSwgU3BhbktpbmQsIFJPT1RfQ09OVEVYVCB9ID0gYXBpO1xuY29uc3QgaXNQcm9taXNlID0gKHApPT57XG4gICAgcmV0dXJuIHAgIT09IG51bGwgJiYgdHlwZW9mIHAgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHAudGhlbiA9PT0gXCJmdW5jdGlvblwiO1xufTtcbmNvbnN0IGNsb3NlU3BhbldpdGhFcnJvciA9IChzcGFuLCBlcnJvcik9PntcbiAgICBpZiAoKGVycm9yID09IG51bGwgPyB2b2lkIDAgOiBlcnJvci5idWJibGUpID09PSB0cnVlKSB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKFwibmV4dC5idWJibGVcIiwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICBzcGFuLnJlY29yZEV4Y2VwdGlvbihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3Bhbi5lbmQoKTtcbn07XG4vKiogd2UgdXNlIHRoaXMgbWFwIHRvIHByb3BhZ2F0ZSBhdHRyaWJ1dGVzIGZyb20gbmVzdGVkIHNwYW5zIHRvIHRoZSB0b3Agc3BhbiAqLyBjb25zdCByb290U3BhbkF0dHJpYnV0ZXNTdG9yZSA9IG5ldyBNYXAoKTtcbmNvbnN0IHJvb3RTcGFuSWRLZXkgPSBhcGkuY3JlYXRlQ29udGV4dEtleShcIm5leHQucm9vdFNwYW5JZFwiKTtcbmxldCBsYXN0U3BhbklkID0gMDtcbmNvbnN0IGdldFNwYW5JZCA9ICgpPT5sYXN0U3BhbklkKys7XG5jbGFzcyBOZXh0VHJhY2VySW1wbCB7XG4gICAgLyoqXG4gICAqIFJldHVybnMgYW4gaW5zdGFuY2UgdG8gdGhlIHRyYWNlIHdpdGggY29uZmlndXJlZCBuYW1lLlxuICAgKiBTaW5jZSB3cmFwIC8gdHJhY2UgY2FuIGJlIGRlZmluZWQgaW4gYW55IHBsYWNlIHByaW9yIHRvIGFjdHVhbCB0cmFjZSBzdWJzY3JpYmVyIGluaXRpYWxpemF0aW9uLFxuICAgKiBUaGlzIHNob3VsZCBiZSBsYXppbHkgZXZhbHVhdGVkLlxuICAgKi8gZ2V0VHJhY2VySW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0cmFjZS5nZXRUcmFjZXIoXCJuZXh0LmpzXCIsIFwiMC4wLjFcIik7XG4gICAgfVxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgIH1cbiAgICBnZXRBY3RpdmVTY29wZVNwYW4oKSB7XG4gICAgICAgIHJldHVybiB0cmFjZS5nZXRTcGFuKGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQuYWN0aXZlKCkpO1xuICAgIH1cbiAgICB3aXRoUHJvcGFnYXRlZENvbnRleHQoY2FycmllciwgZm4sIGdldHRlcikge1xuICAgICAgICBjb25zdCBhY3RpdmVDb250ZXh0ID0gY29udGV4dC5hY3RpdmUoKTtcbiAgICAgICAgaWYgKHRyYWNlLmdldFNwYW5Db250ZXh0KGFjdGl2ZUNvbnRleHQpKSB7XG4gICAgICAgICAgICAvLyBBY3RpdmUgc3BhbiBpcyBhbHJlYWR5IHNldCwgdG9vIGxhdGUgdG8gcHJvcGFnYXRlLlxuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVtb3RlQ29udGV4dCA9IHByb3BhZ2F0aW9uLmV4dHJhY3QoYWN0aXZlQ29udGV4dCwgY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQud2l0aChyZW1vdGVDb250ZXh0LCBmbik7XG4gICAgfVxuICAgIHRyYWNlKC4uLmFyZ3MpIHtcbiAgICAgICAgdmFyIF90cmFjZV9nZXRTcGFuQ29udGV4dDtcbiAgICAgICAgY29uc3QgW3R5cGUsIGZuT3JPcHRpb25zLCBmbk9yRW1wdHldID0gYXJncztcbiAgICAgICAgLy8gY29lcmNlIG9wdGlvbnMgZm9ybSBvdmVybG9hZFxuICAgICAgICBjb25zdCB7IGZuLCBvcHRpb25zIH0gPSB0eXBlb2YgZm5Pck9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIiA/IHtcbiAgICAgICAgICAgIGZuOiBmbk9yT3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHt9XG4gICAgICAgIH0gOiB7XG4gICAgICAgICAgICBmbjogZm5PckVtcHR5LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIC4uLmZuT3JPcHRpb25zXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGlmICghTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0LmluY2x1ZGVzKHR5cGUpICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9WRVJCT1NFICE9PSBcIjFcIiB8fCBvcHRpb25zLmhpZGVTcGFuKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcGFuTmFtZSA9IG9wdGlvbnMuc3Bhbk5hbWUgPz8gdHlwZTtcbiAgICAgICAgLy8gVHJ5aW5nIHRvIGdldCBhY3RpdmUgc2NvcGVkIHNwYW4gdG8gYXNzaWduIHBhcmVudC4gSWYgb3B0aW9uIHNwZWNpZmllcyBwYXJlbnQgc3BhbiBtYW51YWxseSwgd2lsbCB0cnkgdG8gdXNlIGl0LlxuICAgICAgICBsZXQgc3BhbkNvbnRleHQgPSB0aGlzLmdldFNwYW5Db250ZXh0KChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmVudFNwYW4pID8/IHRoaXMuZ2V0QWN0aXZlU2NvcGVTcGFuKCkpO1xuICAgICAgICBsZXQgaXNSb290U3BhbiA9IGZhbHNlO1xuICAgICAgICBpZiAoIXNwYW5Db250ZXh0KSB7XG4gICAgICAgICAgICBzcGFuQ29udGV4dCA9IFJPT1RfQ09OVEVYVDtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKChfdHJhY2VfZ2V0U3BhbkNvbnRleHQgPSB0cmFjZS5nZXRTcGFuQ29udGV4dChzcGFuQ29udGV4dCkpID09IG51bGwgPyB2b2lkIDAgOiBfdHJhY2VfZ2V0U3BhbkNvbnRleHQuaXNSZW1vdGUpIHtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGdldFNwYW5JZCgpO1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMgPSB7XG4gICAgICAgICAgICBcIm5leHQuc3Bhbl9uYW1lXCI6IHNwYW5OYW1lLFxuICAgICAgICAgICAgXCJuZXh0LnNwYW5fdHlwZVwiOiB0eXBlLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy5hdHRyaWJ1dGVzXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgoc3BhbkNvbnRleHQuc2V0VmFsdWUocm9vdFNwYW5JZEtleSwgc3BhbklkKSwgKCk9PnRoaXMuZ2V0VHJhY2VySW5zdGFuY2UoKS5zdGFydEFjdGl2ZVNwYW4oc3Bhbk5hbWUsIG9wdGlvbnMsIChzcGFuKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IG9uQ2xlYW51cCA9ICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmRlbGV0ZShzcGFuSWQpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKGlzUm9vdFNwYW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuc2V0KHNwYW5JZCwgbmV3IE1hcChPYmplY3QuZW50cmllcyhvcHRpb25zLmF0dHJpYnV0ZXMgPz8ge30pKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4oc3BhbiwgKGVycik9PmNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmbihzcGFuKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvbWlzZShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGVycm9yIG1ha2Ugc3VyZSBpdCB0aHJvd3NcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmVlZCB0byBwYXNzIGRvd24gdGhlIHByb21pc2UgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0IGNvdWxkIGJlIHJlYWN0IHN0cmVhbSByZXNwb25zZSB3aXRoIGVycm9yIHsgZXJyb3IsIHN0cmVhbSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuZmluYWxseShvbkNsZWFudXApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgd3JhcCguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHRyYWNlciA9IHRoaXM7XG4gICAgICAgIGNvbnN0IFtuYW1lLCBvcHRpb25zLCBmbl0gPSBhcmdzLmxlbmd0aCA9PT0gMyA/IGFyZ3MgOiBbXG4gICAgICAgICAgICBhcmdzWzBdLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICBhcmdzWzFdXG4gICAgICAgIF07XG4gICAgICAgIGlmICghTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0LmluY2x1ZGVzKG5hbWUpICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9WRVJCT1NFICE9PSBcIjFcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGxldCBvcHRpb25zT2JqID0gb3B0aW9ucztcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09iaiA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBmbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uc09iaiA9IG9wdGlvbnNPYmouYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhc3RBcmdJZCA9IGFyZ3VtZW50cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgY29uc3QgY2IgPSBhcmd1bWVudHNbbGFzdEFyZ0lkXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjb3BlQm91bmRDYiA9IHRyYWNlci5nZXRDb250ZXh0KCkuYmluZChjb250ZXh0LmFjdGl2ZSgpLCBjYik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlci50cmFjZShuYW1lLCBvcHRpb25zT2JqLCAoX3NwYW4sIGRvbmUpPT57XG4gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50c1tsYXN0QXJnSWRdID0gZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb25lID09IG51bGwgPyB2b2lkIDAgOiBkb25lKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NvcGVCb3VuZENiLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhY2VyLnRyYWNlKG5hbWUsIG9wdGlvbnNPYmosICgpPT5mbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhcnRTcGFuKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgW3R5cGUsIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgY29uc3Qgc3BhbkNvbnRleHQgPSB0aGlzLmdldFNwYW5Db250ZXh0KChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmVudFNwYW4pID8/IHRoaXMuZ2V0QWN0aXZlU2NvcGVTcGFuKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFjZXJJbnN0YW5jZSgpLnN0YXJ0U3Bhbih0eXBlLCBvcHRpb25zLCBzcGFuQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFNwYW5Db250ZXh0KHBhcmVudFNwYW4pIHtcbiAgICAgICAgY29uc3Qgc3BhbkNvbnRleHQgPSBwYXJlbnRTcGFuID8gdHJhY2Uuc2V0U3Bhbihjb250ZXh0LmFjdGl2ZSgpLCBwYXJlbnRTcGFuKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHNwYW5Db250ZXh0O1xuICAgIH1cbiAgICBnZXRSb290U3BhbkF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGNvbnRleHQuYWN0aXZlKCkuZ2V0VmFsdWUocm9vdFNwYW5JZEtleSk7XG4gICAgICAgIHJldHVybiByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5nZXQoc3BhbklkKTtcbiAgICB9XG59XG5jb25zdCBnZXRUcmFjZXIgPSAoKCk9PntcbiAgICBjb25zdCB0cmFjZXIgPSBuZXcgTmV4dFRyYWNlckltcGwoKTtcbiAgICByZXR1cm4gKCk9PnRyYWNlcjtcbn0pKCk7XG5leHBvcnQgeyBnZXRUcmFjZXIsIFNwYW5TdGF0dXNDb2RlLCBTcGFuS2luZCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFjZXIuanMubWFwIl0sIm5hbWVzIjpbIk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdCIsImFwaSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJyZXF1aXJlIiwiZXJyIiwiY29udGV4dCIsInByb3BhZ2F0aW9uIiwidHJhY2UiLCJTcGFuU3RhdHVzQ29kZSIsIlNwYW5LaW5kIiwiUk9PVF9DT05URVhUIiwiaXNQcm9taXNlIiwicCIsInRoZW4iLCJjbG9zZVNwYW5XaXRoRXJyb3IiLCJzcGFuIiwiZXJyb3IiLCJidWJibGUiLCJzZXRBdHRyaWJ1dGUiLCJyZWNvcmRFeGNlcHRpb24iLCJzZXRTdGF0dXMiLCJjb2RlIiwiRVJST1IiLCJtZXNzYWdlIiwiZW5kIiwicm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUiLCJNYXAiLCJyb290U3BhbklkS2V5IiwiY3JlYXRlQ29udGV4dEtleSIsImxhc3RTcGFuSWQiLCJnZXRTcGFuSWQiLCJOZXh0VHJhY2VySW1wbCIsImdldFRyYWNlckluc3RhbmNlIiwiZ2V0VHJhY2VyIiwiZ2V0Q29udGV4dCIsImdldEFjdGl2ZVNjb3BlU3BhbiIsImdldFNwYW4iLCJhY3RpdmUiLCJ3aXRoUHJvcGFnYXRlZENvbnRleHQiLCJjYXJyaWVyIiwiZm4iLCJnZXR0ZXIiLCJhY3RpdmVDb250ZXh0IiwiZ2V0U3BhbkNvbnRleHQiLCJyZW1vdGVDb250ZXh0IiwiZXh0cmFjdCIsIndpdGgiLCJhcmdzIiwiX3RyYWNlX2dldFNwYW5Db250ZXh0IiwidHlwZSIsImZuT3JPcHRpb25zIiwiZm5PckVtcHR5Iiwib3B0aW9ucyIsImluY2x1ZGVzIiwiTkVYVF9PVEVMX1ZFUkJPU0UiLCJoaWRlU3BhbiIsInNwYW5OYW1lIiwic3BhbkNvbnRleHQiLCJwYXJlbnRTcGFuIiwiaXNSb290U3BhbiIsImlzUmVtb3RlIiwic3BhbklkIiwiYXR0cmlidXRlcyIsInNldFZhbHVlIiwic3RhcnRBY3RpdmVTcGFuIiwib25DbGVhbnVwIiwiZGVsZXRlIiwic2V0IiwiT2JqZWN0IiwiZW50cmllcyIsImxlbmd0aCIsInJlc3VsdCIsInJlcyIsImNhdGNoIiwiZmluYWxseSIsIndyYXAiLCJ0cmFjZXIiLCJuYW1lIiwib3B0aW9uc09iaiIsImFwcGx5IiwiYXJndW1lbnRzIiwibGFzdEFyZ0lkIiwiY2IiLCJzY29wZUJvdW5kQ2IiLCJiaW5kIiwiX3NwYW4iLCJkb25lIiwic3RhcnRTcGFuIiwic2V0U3BhbiIsInVuZGVmaW5lZCIsImdldFJvb3RTcGFuQXR0cmlidXRlcyIsImdldFZhbHVlIiwiZ2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/lib/trace/tracer.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/adapter.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/adapter.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adapter: () => (/* binding */ adapter)\n/* harmony export */ });\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./error */ \"(middleware)/./node_modules/next/dist/esm/server/web/error.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"(middleware)/./node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _spec_extension_fetch_event__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./spec-extension/fetch-event */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js\");\n/* harmony import */ var _spec_extension_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./spec-extension/request */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/request.js\");\n/* harmony import */ var _spec_extension_response__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./spec-extension/response */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/response.js\");\n/* harmony import */ var _shared_lib_router_utils_relativize_url__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/lib/router/utils/relativize-url */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js\");\n/* harmony import */ var _next_url__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./next-url */ \"(middleware)/./node_modules/next/dist/esm/server/web/next-url.js\");\n/* harmony import */ var _internal_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internal-utils */ \"(middleware)/./node_modules/next/dist/esm/server/internal-utils.js\");\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(middleware)/./node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../lib/constants */ \"(middleware)/./node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _globals__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./globals */ \"(middleware)/./node_modules/next/dist/esm/server/web/globals.js\");\n/* harmony import */ var _async_storage_request_async_storage_wrapper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../async-storage/request-async-storage-wrapper */ \"(middleware)/./node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js\");\n/* harmony import */ var _client_components_request_async_storage_external__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../client/components/request-async-storage.external */ \"(shared)/./node_modules/next/dist/esm/client/components/request-async-storage.external.js\");\n/* harmony import */ var _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../lib/trace/tracer */ \"(middleware)/./node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass NextRequestHint extends _spec_extension_request__WEBPACK_IMPORTED_MODULE_3__.NextRequest {\n constructor(params){\n super(params.input, params.init);\n this.sourcePage = params.page;\n }\n get request() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n respondWith() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n waitUntil() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n}\nconst headersGetter = {\n keys: (headers)=>Array.from(headers.keys()),\n get: (headers, key)=>headers.get(key) ?? undefined\n};\nlet propagator = (request, fn)=>{\n const tracer = (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_14__.getTracer)();\n return tracer.withPropagatedContext(request.headers, fn, headersGetter);\n};\nlet testApisIntercepted = false;\nfunction ensureTestApisIntercepted() {\n if (!testApisIntercepted) {\n testApisIntercepted = true;\n if (process.env.NEXT_PRIVATE_TEST_PROXY === \"true\") {\n const { interceptTestApis, wrapRequestHandler } = __webpack_require__(/*! next/dist/experimental/testmode/server-edge */ \"(middleware)/./node_modules/next/dist/experimental/testmode/server-edge.js\");\n interceptTestApis();\n propagator = wrapRequestHandler(propagator);\n }\n }\n}\nasync function adapter(params) {\n ensureTestApisIntercepted();\n await (0,_globals__WEBPACK_IMPORTED_MODULE_11__.ensureInstrumentationRegistered)();\n // TODO-APP: use explicit marker for this\n const isEdgeRendering = typeof self.__BUILD_MANIFEST !== \"undefined\";\n const prerenderManifest = typeof self.__PRERENDER_MANIFEST === \"string\" ? JSON.parse(self.__PRERENDER_MANIFEST) : undefined;\n params.request.url = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_8__.normalizeRscURL)(params.request.url);\n const requestUrl = new _next_url__WEBPACK_IMPORTED_MODULE_6__.NextURL(params.request.url, {\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n // Iterator uses an index to keep track of the current iteration. Because of deleting and appending below we can't just use the iterator.\n // Instead we use the keys before iteration.\n const keys = [\n ...requestUrl.searchParams.keys()\n ];\n for (const key of keys){\n const value = requestUrl.searchParams.getAll(key);\n if (key !== _lib_constants__WEBPACK_IMPORTED_MODULE_10__.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_lib_constants__WEBPACK_IMPORTED_MODULE_10__.NEXT_QUERY_PARAM_PREFIX)) {\n const normalizedKey = key.substring(_lib_constants__WEBPACK_IMPORTED_MODULE_10__.NEXT_QUERY_PARAM_PREFIX.length);\n requestUrl.searchParams.delete(normalizedKey);\n for (const val of value){\n requestUrl.searchParams.append(normalizedKey, val);\n }\n requestUrl.searchParams.delete(key);\n }\n }\n // Ensure users only see page requests, never data requests.\n const buildId = requestUrl.buildId;\n requestUrl.buildId = \"\";\n const isDataReq = params.request.headers[\"x-nextjs-data\"];\n if (isDataReq && requestUrl.pathname === \"/index\") {\n requestUrl.pathname = \"/\";\n }\n const requestHeaders = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.fromNodeOutgoingHttpHeaders)(params.request.headers);\n const flightHeaders = new Map();\n // Parameters should only be stripped for middleware\n if (!isEdgeRendering) {\n for (const param of _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_9__.FLIGHT_PARAMETERS){\n const key = param.toString().toLowerCase();\n const value = requestHeaders.get(key);\n if (value) {\n flightHeaders.set(key, requestHeaders.get(key));\n requestHeaders.delete(key);\n }\n }\n }\n const normalizeUrl = false ? 0 : requestUrl;\n const request = new NextRequestHint({\n page: params.page,\n // Strip internal query parameters off the request.\n input: (0,_internal_utils__WEBPACK_IMPORTED_MODULE_7__.stripInternalSearchParams)(normalizeUrl, true).toString(),\n init: {\n body: params.request.body,\n geo: params.request.geo,\n headers: requestHeaders,\n ip: params.request.ip,\n method: params.request.method,\n nextConfig: params.request.nextConfig,\n signal: params.request.signal\n }\n });\n /**\n * This allows to identify the request as a data request. The user doesn't\n * need to know about this property neither use it. We add it for testing\n * purposes.\n */ if (isDataReq) {\n Object.defineProperty(request, \"__isData\", {\n enumerable: false,\n value: true\n });\n }\n if (!globalThis.__incrementalCache && params.IncrementalCache) {\n globalThis.__incrementalCache = new params.IncrementalCache({\n appDir: true,\n fetchCache: true,\n minimalMode: \"development\" !== \"development\",\n fetchCacheKeyPrefix: undefined,\n dev: \"development\" === \"development\",\n requestHeaders: params.request.headers,\n requestProtocol: \"https\",\n getPrerenderManifest: ()=>{\n return {\n version: -1,\n routes: {},\n dynamicRoutes: {},\n notFoundRoutes: [],\n preview: {\n previewModeId: \"development-id\"\n }\n };\n }\n });\n }\n const event = new _spec_extension_fetch_event__WEBPACK_IMPORTED_MODULE_2__.NextFetchEvent({\n request,\n page: params.page\n });\n let response;\n let cookiesFromResponse;\n response = await propagator(request, ()=>{\n // we only care to make async storage available for middleware\n const isMiddleware = params.page === \"/middleware\" || params.page === \"/src/middleware\";\n if (isMiddleware) {\n return _async_storage_request_async_storage_wrapper__WEBPACK_IMPORTED_MODULE_12__.RequestAsyncStorageWrapper.wrap(_client_components_request_async_storage_external__WEBPACK_IMPORTED_MODULE_13__.requestAsyncStorage, {\n req: request,\n renderOpts: {\n onUpdateCookies: (cookies)=>{\n cookiesFromResponse = cookies;\n },\n // @ts-expect-error: TODO: investigate why previewProps isn't on RenderOpts\n previewProps: (prerenderManifest == null ? void 0 : prerenderManifest.preview) || {\n previewModeId: \"development-id\",\n previewModeEncryptionKey: \"\",\n previewModeSigningKey: \"\"\n }\n }\n }, ()=>params.handler(request, event));\n }\n return params.handler(request, event);\n });\n // check if response is a Response object\n if (response && !(response instanceof Response)) {\n throw new TypeError(\"Expected an instance of Response to be returned\");\n }\n if (response && cookiesFromResponse) {\n response.headers.set(\"set-cookie\", cookiesFromResponse);\n }\n /**\n * For rewrites we must always include the locale in the final pathname\n * so we re-create the NextURL forcing it to include it when the it is\n * an internal rewrite. Also we make sure the outgoing rewrite URL is\n * a data URL if the request was a data request.\n */ const rewrite = response == null ? void 0 : response.headers.get(\"x-middleware-rewrite\");\n if (response && rewrite) {\n const rewriteUrl = new _next_url__WEBPACK_IMPORTED_MODULE_6__.NextURL(rewrite, {\n forceLocale: true,\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n if (true) {\n if (rewriteUrl.host === request.nextUrl.host) {\n rewriteUrl.buildId = buildId || rewriteUrl.buildId;\n response.headers.set(\"x-middleware-rewrite\", String(rewriteUrl));\n }\n }\n /**\n * When the request is a data request we must show if there was a rewrite\n * with an internal header so the client knows which component to load\n * from the data request.\n */ const relativizedRewrite = (0,_shared_lib_router_utils_relativize_url__WEBPACK_IMPORTED_MODULE_5__.relativizeURL)(String(rewriteUrl), String(requestUrl));\n if (isDataReq && // if the rewrite is external and external rewrite\n // resolving config is enabled don't add this header\n // so the upstream app can set it instead\n !(undefined && 0)) {\n response.headers.set(\"x-nextjs-rewrite\", relativizedRewrite);\n }\n }\n /**\n * For redirects we will not include the locale in case when it is the\n * default and we must also make sure the outgoing URL is a data one if\n * the incoming request was a data request.\n */ const redirect = response == null ? void 0 : response.headers.get(\"Location\");\n if (response && redirect && !isEdgeRendering) {\n const redirectURL = new _next_url__WEBPACK_IMPORTED_MODULE_6__.NextURL(redirect, {\n forceLocale: false,\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n /**\n * Responses created from redirects have immutable headers so we have\n * to clone the response to be able to modify it.\n */ response = new Response(response.body, response);\n if (true) {\n if (redirectURL.host === request.nextUrl.host) {\n redirectURL.buildId = buildId || redirectURL.buildId;\n response.headers.set(\"Location\", String(redirectURL));\n }\n }\n /**\n * When the request is a data request we can't use the location header as\n * it may end up with CORS error. Instead we map to an internal header so\n * the client knows the destination.\n */ if (isDataReq) {\n response.headers.delete(\"Location\");\n response.headers.set(\"x-nextjs-redirect\", (0,_shared_lib_router_utils_relativize_url__WEBPACK_IMPORTED_MODULE_5__.relativizeURL)(String(redirectURL), String(requestUrl)));\n }\n }\n const finalResponse = response ? response : _spec_extension_response__WEBPACK_IMPORTED_MODULE_4__.NextResponse.next();\n // Flight headers are not overridable / removable so they are applied at the end.\n const middlewareOverrideHeaders = finalResponse.headers.get(\"x-middleware-override-headers\");\n const overwrittenHeaders = [];\n if (middlewareOverrideHeaders) {\n for (const [key, value] of flightHeaders){\n finalResponse.headers.set(`x-middleware-request-${key}`, value);\n overwrittenHeaders.push(key);\n }\n if (overwrittenHeaders.length > 0) {\n finalResponse.headers.set(\"x-middleware-override-headers\", middlewareOverrideHeaders + \",\" + overwrittenHeaders.join(\",\"));\n }\n }\n return {\n response: finalResponse,\n waitUntil: Promise.all(event[_spec_extension_fetch_event__WEBPACK_IMPORTED_MODULE_2__.waitUntilSymbol]),\n fetchMetrics: request.fetchMetrics\n };\n} //# sourceMappingURL=adapter.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9hZGFwdGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBNkM7QUFDUztBQUNRO0FBQ1A7QUFDRTtBQUNvQjtBQUNkO0FBQzFCO0FBQ3lCO0FBQ1k7QUFDSztBQUNqQjtBQUNGO0FBQ2dDO0FBQ0M7QUFDN0M7QUFDaEQsTUFBTWdCLHdCQUF3QmIsZ0VBQVdBO0lBQ3JDYyxZQUFZQyxNQUFNLENBQUM7UUFDZixLQUFLLENBQUNBLE9BQU9DLEtBQUssRUFBRUQsT0FBT0UsSUFBSTtRQUMvQixJQUFJLENBQUNDLFVBQVUsR0FBR0gsT0FBT0ksSUFBSTtJQUNqQztJQUNBLElBQUlDLFVBQVU7UUFDVixNQUFNLElBQUl2QixzREFBa0JBLENBQUM7WUFDekJzQixNQUFNLElBQUksQ0FBQ0QsVUFBVTtRQUN6QjtJQUNKO0lBQ0FHLGNBQWM7UUFDVixNQUFNLElBQUl4QixzREFBa0JBLENBQUM7WUFDekJzQixNQUFNLElBQUksQ0FBQ0QsVUFBVTtRQUN6QjtJQUNKO0lBQ0FJLFlBQVk7UUFDUixNQUFNLElBQUl6QixzREFBa0JBLENBQUM7WUFDekJzQixNQUFNLElBQUksQ0FBQ0QsVUFBVTtRQUN6QjtJQUNKO0FBQ0o7QUFDQSxNQUFNSyxnQkFBZ0I7SUFDbEJDLE1BQU0sQ0FBQ0MsVUFBVUMsTUFBTUMsSUFBSSxDQUFDRixRQUFRRCxJQUFJO0lBQ3hDSSxLQUFLLENBQUNILFNBQVNJLE1BQU1KLFFBQVFHLEdBQUcsQ0FBQ0MsUUFBUUM7QUFDN0M7QUFDQSxJQUFJQyxhQUFhLENBQUNYLFNBQVNZO0lBQ3ZCLE1BQU1DLFNBQVNyQiw2REFBU0E7SUFDeEIsT0FBT3FCLE9BQU9DLHFCQUFxQixDQUFDZCxRQUFRSyxPQUFPLEVBQUVPLElBQUlUO0FBQzdEO0FBQ0EsSUFBSVksc0JBQXNCO0FBQzFCLFNBQVNDO0lBQ0wsSUFBSSxDQUFDRCxxQkFBcUI7UUFDdEJBLHNCQUFzQjtRQUN0QixJQUFJRSxRQUFRQyxHQUFHLENBQUNDLHVCQUF1QixLQUFLLFFBQVE7WUFDaEQsTUFBTSxFQUFFQyxpQkFBaUIsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR0MsbUJBQU9BLENBQUMsK0hBQTZDO1lBQ3ZHRjtZQUNBVCxhQUFhVSxtQkFBbUJWO1FBQ3BDO0lBQ0o7QUFDSjtBQUNPLGVBQWVZLFFBQVE1QixNQUFNO0lBQ2hDcUI7SUFDQSxNQUFNM0IsMEVBQStCQTtJQUNyQyx5Q0FBeUM7SUFDekMsTUFBTW1DLGtCQUFrQixPQUFPQyxLQUFLQyxnQkFBZ0IsS0FBSztJQUN6RCxNQUFNQyxvQkFBb0IsT0FBT0YsS0FBS0csb0JBQW9CLEtBQUssV0FBV0MsS0FBS0MsS0FBSyxDQUFDTCxLQUFLRyxvQkFBb0IsSUFBSWxCO0lBQ2xIZixPQUFPSyxPQUFPLENBQUMrQixHQUFHLEdBQUc3QyxtRkFBZUEsQ0FBQ1MsT0FBT0ssT0FBTyxDQUFDK0IsR0FBRztJQUN2RCxNQUFNQyxhQUFhLElBQUloRCw4Q0FBT0EsQ0FBQ1csT0FBT0ssT0FBTyxDQUFDK0IsR0FBRyxFQUFFO1FBQy9DMUIsU0FBU1YsT0FBT0ssT0FBTyxDQUFDSyxPQUFPO1FBQy9CNEIsWUFBWXRDLE9BQU9LLE9BQU8sQ0FBQ2lDLFVBQVU7SUFDekM7SUFDQSx5SUFBeUk7SUFDekksNENBQTRDO0lBQzVDLE1BQU03QixPQUFPO1dBQ040QixXQUFXRSxZQUFZLENBQUM5QixJQUFJO0tBQ2xDO0lBQ0QsS0FBSyxNQUFNSyxPQUFPTCxLQUFLO1FBQ25CLE1BQU0rQixRQUFRSCxXQUFXRSxZQUFZLENBQUNFLE1BQU0sQ0FBQzNCO1FBQzdDLElBQUlBLFFBQVFyQixvRUFBdUJBLElBQUlxQixJQUFJNEIsVUFBVSxDQUFDakQsb0VBQXVCQSxHQUFHO1lBQzVFLE1BQU1rRCxnQkFBZ0I3QixJQUFJOEIsU0FBUyxDQUFDbkQsb0VBQXVCQSxDQUFDb0QsTUFBTTtZQUNsRVIsV0FBV0UsWUFBWSxDQUFDTyxNQUFNLENBQUNIO1lBQy9CLEtBQUssTUFBTUksT0FBT1AsTUFBTTtnQkFDcEJILFdBQVdFLFlBQVksQ0FBQ1MsTUFBTSxDQUFDTCxlQUFlSTtZQUNsRDtZQUNBVixXQUFXRSxZQUFZLENBQUNPLE1BQU0sQ0FBQ2hDO1FBQ25DO0lBQ0o7SUFDQSw0REFBNEQ7SUFDNUQsTUFBTW1DLFVBQVVaLFdBQVdZLE9BQU87SUFDbENaLFdBQVdZLE9BQU8sR0FBRztJQUNyQixNQUFNQyxZQUFZbEQsT0FBT0ssT0FBTyxDQUFDSyxPQUFPLENBQUMsZ0JBQWdCO0lBQ3pELElBQUl3QyxhQUFhYixXQUFXYyxRQUFRLEtBQUssVUFBVTtRQUMvQ2QsV0FBV2MsUUFBUSxHQUFHO0lBQzFCO0lBQ0EsTUFBTUMsaUJBQWlCckUsbUVBQTJCQSxDQUFDaUIsT0FBT0ssT0FBTyxDQUFDSyxPQUFPO0lBQ3pFLE1BQU0yQyxnQkFBZ0IsSUFBSUM7SUFDMUIsb0RBQW9EO0lBQ3BELElBQUksQ0FBQ3pCLGlCQUFpQjtRQUNsQixLQUFLLE1BQU0wQixTQUFTL0Qsb0ZBQWlCQSxDQUFDO1lBQ2xDLE1BQU1zQixNQUFNeUMsTUFBTUMsUUFBUSxHQUFHQyxXQUFXO1lBQ3hDLE1BQU1qQixRQUFRWSxlQUFldkMsR0FBRyxDQUFDQztZQUNqQyxJQUFJMEIsT0FBTztnQkFDUGEsY0FBY0ssR0FBRyxDQUFDNUMsS0FBS3NDLGVBQWV2QyxHQUFHLENBQUNDO2dCQUMxQ3NDLGVBQWVOLE1BQU0sQ0FBQ2hDO1lBQzFCO1FBQ0o7SUFDSjtJQUNBLE1BQU02QyxlQUFlckMsTUFBOEMsR0FBRyxDQUEyQixHQUFHZTtJQUNwRyxNQUFNaEMsVUFBVSxJQUFJUCxnQkFBZ0I7UUFDaENNLE1BQU1KLE9BQU9JLElBQUk7UUFDakIsbURBQW1EO1FBQ25ESCxPQUFPWCwwRUFBeUJBLENBQUNxRSxjQUFjLE1BQU1ILFFBQVE7UUFDN0R0RCxNQUFNO1lBQ0Y0RCxNQUFNOUQsT0FBT0ssT0FBTyxDQUFDeUQsSUFBSTtZQUN6QkMsS0FBSy9ELE9BQU9LLE9BQU8sQ0FBQzBELEdBQUc7WUFDdkJyRCxTQUFTMEM7WUFDVFksSUFBSWhFLE9BQU9LLE9BQU8sQ0FBQzJELEVBQUU7WUFDckJDLFFBQVFqRSxPQUFPSyxPQUFPLENBQUM0RCxNQUFNO1lBQzdCM0IsWUFBWXRDLE9BQU9LLE9BQU8sQ0FBQ2lDLFVBQVU7WUFDckM0QixRQUFRbEUsT0FBT0ssT0FBTyxDQUFDNkQsTUFBTTtRQUNqQztJQUNKO0lBQ0E7Ozs7R0FJRCxHQUFHLElBQUloQixXQUFXO1FBQ2JpQixPQUFPQyxjQUFjLENBQUMvRCxTQUFTLFlBQVk7WUFDdkNnRSxZQUFZO1lBQ1o3QixPQUFPO1FBQ1g7SUFDSjtJQUNBLElBQUksQ0FBQzhCLFdBQVdDLGtCQUFrQixJQUFJdkUsT0FBT3dFLGdCQUFnQixFQUFFO1FBQzNERixXQUFXQyxrQkFBa0IsR0FBRyxJQUFJdkUsT0FBT3dFLGdCQUFnQixDQUFDO1lBQ3hEQyxRQUFRO1lBQ1JDLFlBQVk7WUFDWkMsYUFBYXJELGtCQUF5QjtZQUN0Q3NELHFCQUFxQnRELFNBQXlDO1lBQzlEd0QsS0FBS3hELGtCQUF5QjtZQUM5QjhCLGdCQUFnQnBELE9BQU9LLE9BQU8sQ0FBQ0ssT0FBTztZQUN0Q3FFLGlCQUFpQjtZQUNqQkMsc0JBQXNCO2dCQUNsQixPQUFPO29CQUNIQyxTQUFTLENBQUM7b0JBQ1ZDLFFBQVEsQ0FBQztvQkFDVEMsZUFBZSxDQUFDO29CQUNoQkMsZ0JBQWdCLEVBQUU7b0JBQ2xCQyxTQUFTO3dCQUNMQyxlQUFlO29CQUNuQjtnQkFDSjtZQUNKO1FBQ0o7SUFDSjtJQUNBLE1BQU1DLFFBQVEsSUFBSXZHLHVFQUFjQSxDQUFDO1FBQzdCcUI7UUFDQUQsTUFBTUosT0FBT0ksSUFBSTtJQUNyQjtJQUNBLElBQUlvRjtJQUNKLElBQUlDO0lBQ0pELFdBQVcsTUFBTXhFLFdBQVdYLFNBQVM7UUFDakMsOERBQThEO1FBQzlELE1BQU1xRixlQUFlMUYsT0FBT0ksSUFBSSxLQUFLLGlCQUFpQkosT0FBT0ksSUFBSSxLQUFLO1FBQ3RFLElBQUlzRixjQUFjO1lBQ2QsT0FBTy9GLHFHQUEwQkEsQ0FBQ2dHLElBQUksQ0FBQy9GLG1HQUFtQkEsRUFBRTtnQkFDeERnRyxLQUFLdkY7Z0JBQ0x3RixZQUFZO29CQUNSQyxpQkFBaUIsQ0FBQ0M7d0JBQ2ROLHNCQUFzQk07b0JBQzFCO29CQUNBLDJFQUEyRTtvQkFDM0VDLGNBQWMsQ0FBQ2hFLHFCQUFxQixPQUFPLEtBQUssSUFBSUEsa0JBQWtCcUQsT0FBTyxLQUFLO3dCQUM5RUMsZUFBZTt3QkFDZlcsMEJBQTBCO3dCQUMxQkMsdUJBQXVCO29CQUMzQjtnQkFDSjtZQUNKLEdBQUcsSUFBSWxHLE9BQU9tRyxPQUFPLENBQUM5RixTQUFTa0Y7UUFDbkM7UUFDQSxPQUFPdkYsT0FBT21HLE9BQU8sQ0FBQzlGLFNBQVNrRjtJQUNuQztJQUNBLHlDQUF5QztJQUN6QyxJQUFJQyxZQUFZLENBQUVBLENBQUFBLG9CQUFvQlksUUFBTyxHQUFJO1FBQzdDLE1BQU0sSUFBSUMsVUFBVTtJQUN4QjtJQUNBLElBQUliLFlBQVlDLHFCQUFxQjtRQUNqQ0QsU0FBUzlFLE9BQU8sQ0FBQ2dELEdBQUcsQ0FBQyxjQUFjK0I7SUFDdkM7SUFDQTs7Ozs7R0FLRCxHQUFHLE1BQU1hLFVBQVVkLFlBQVksT0FBTyxLQUFLLElBQUlBLFNBQVM5RSxPQUFPLENBQUNHLEdBQUcsQ0FBQztJQUNuRSxJQUFJMkUsWUFBWWMsU0FBUztRQUNyQixNQUFNQyxhQUFhLElBQUlsSCw4Q0FBT0EsQ0FBQ2lILFNBQVM7WUFDcENFLGFBQWE7WUFDYjlGLFNBQVNWLE9BQU9LLE9BQU8sQ0FBQ0ssT0FBTztZQUMvQjRCLFlBQVl0QyxPQUFPSyxPQUFPLENBQUNpQyxVQUFVO1FBQ3pDO1FBQ0EsSUFBSSxJQUErQyxFQUFFO1lBQ2pELElBQUlpRSxXQUFXRSxJQUFJLEtBQUtwRyxRQUFRcUcsT0FBTyxDQUFDRCxJQUFJLEVBQUU7Z0JBQzFDRixXQUFXdEQsT0FBTyxHQUFHQSxXQUFXc0QsV0FBV3RELE9BQU87Z0JBQ2xEdUMsU0FBUzlFLE9BQU8sQ0FBQ2dELEdBQUcsQ0FBQyx3QkFBd0JpRCxPQUFPSjtZQUN4RDtRQUNKO1FBQ0E7Ozs7S0FJSCxHQUFHLE1BQU1LLHFCQUFxQnpILHNGQUFhQSxDQUFDd0gsT0FBT0osYUFBYUksT0FBT3RFO1FBQ3BFLElBQUlhLGFBQWEsa0RBQWtEO1FBQ25FLG9EQUFvRDtRQUNwRCx5Q0FBeUM7UUFDekMsQ0FBRTVCLENBQUFBLFNBQXNELElBQUlzRixDQUF3QyxHQUFJO1lBQ3BHcEIsU0FBUzlFLE9BQU8sQ0FBQ2dELEdBQUcsQ0FBQyxvQkFBb0JrRDtRQUM3QztJQUNKO0lBQ0E7Ozs7R0FJRCxHQUFHLE1BQU1HLFdBQVd2QixZQUFZLE9BQU8sS0FBSyxJQUFJQSxTQUFTOUUsT0FBTyxDQUFDRyxHQUFHLENBQUM7SUFDcEUsSUFBSTJFLFlBQVl1QixZQUFZLENBQUNsRixpQkFBaUI7UUFDMUMsTUFBTW1GLGNBQWMsSUFBSTNILDhDQUFPQSxDQUFDMEgsVUFBVTtZQUN0Q1AsYUFBYTtZQUNiOUYsU0FBU1YsT0FBT0ssT0FBTyxDQUFDSyxPQUFPO1lBQy9CNEIsWUFBWXRDLE9BQU9LLE9BQU8sQ0FBQ2lDLFVBQVU7UUFDekM7UUFDQTs7O0tBR0gsR0FBR2tELFdBQVcsSUFBSVksU0FBU1osU0FBUzFCLElBQUksRUFBRTBCO1FBQ3ZDLElBQUksSUFBK0MsRUFBRTtZQUNqRCxJQUFJd0IsWUFBWVAsSUFBSSxLQUFLcEcsUUFBUXFHLE9BQU8sQ0FBQ0QsSUFBSSxFQUFFO2dCQUMzQ08sWUFBWS9ELE9BQU8sR0FBR0EsV0FBVytELFlBQVkvRCxPQUFPO2dCQUNwRHVDLFNBQVM5RSxPQUFPLENBQUNnRCxHQUFHLENBQUMsWUFBWWlELE9BQU9LO1lBQzVDO1FBQ0o7UUFDQTs7OztLQUlILEdBQUcsSUFBSTlELFdBQVc7WUFDWHNDLFNBQVM5RSxPQUFPLENBQUNvQyxNQUFNLENBQUM7WUFDeEIwQyxTQUFTOUUsT0FBTyxDQUFDZ0QsR0FBRyxDQUFDLHFCQUFxQnZFLHNGQUFhQSxDQUFDd0gsT0FBT0ssY0FBY0wsT0FBT3RFO1FBQ3hGO0lBQ0o7SUFDQSxNQUFNNEUsZ0JBQWdCekIsV0FBV0EsV0FBV3RHLGtFQUFZQSxDQUFDZ0ksSUFBSTtJQUM3RCxpRkFBaUY7SUFDakYsTUFBTUMsNEJBQTRCRixjQUFjdkcsT0FBTyxDQUFDRyxHQUFHLENBQUM7SUFDNUQsTUFBTXVHLHFCQUFxQixFQUFFO0lBQzdCLElBQUlELDJCQUEyQjtRQUMzQixLQUFLLE1BQU0sQ0FBQ3JHLEtBQUswQixNQUFNLElBQUlhLGNBQWM7WUFDckM0RCxjQUFjdkcsT0FBTyxDQUFDZ0QsR0FBRyxDQUFDLENBQUMscUJBQXFCLEVBQUU1QyxJQUFJLENBQUMsRUFBRTBCO1lBQ3pENEUsbUJBQW1CQyxJQUFJLENBQUN2RztRQUM1QjtRQUNBLElBQUlzRyxtQkFBbUJ2RSxNQUFNLEdBQUcsR0FBRztZQUMvQm9FLGNBQWN2RyxPQUFPLENBQUNnRCxHQUFHLENBQUMsaUNBQWlDeUQsNEJBQTRCLE1BQU1DLG1CQUFtQkUsSUFBSSxDQUFDO1FBQ3pIO0lBQ0o7SUFDQSxPQUFPO1FBQ0g5QixVQUFVeUI7UUFDVjFHLFdBQVdnSCxRQUFRQyxHQUFHLENBQUNqQyxLQUFLLENBQUNuRyx3RUFBZUEsQ0FBQztRQUM3Q3FJLGNBQWNwSCxRQUFRb0gsWUFBWTtJQUN0QztBQUNKLEVBRUEsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvYWRhcHRlci5qcz83ZDQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VTaWduYXR1cmVFcnJvciB9IGZyb20gXCIuL2Vycm9yXCI7XG5pbXBvcnQgeyBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgTmV4dEZldGNoRXZlbnQgfSBmcm9tIFwiLi9zcGVjLWV4dGVuc2lvbi9mZXRjaC1ldmVudFwiO1xuaW1wb3J0IHsgTmV4dFJlcXVlc3QgfSBmcm9tIFwiLi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0XCI7XG5pbXBvcnQgeyBOZXh0UmVzcG9uc2UgfSBmcm9tIFwiLi9zcGVjLWV4dGVuc2lvbi9yZXNwb25zZVwiO1xuaW1wb3J0IHsgcmVsYXRpdml6ZVVSTCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZWxhdGl2aXplLXVybFwiO1xuaW1wb3J0IHsgd2FpdFVudGlsU3ltYm9sIH0gZnJvbSBcIi4vc3BlYy1leHRlbnNpb24vZmV0Y2gtZXZlbnRcIjtcbmltcG9ydCB7IE5leHRVUkwgfSBmcm9tIFwiLi9uZXh0LXVybFwiO1xuaW1wb3J0IHsgc3RyaXBJbnRlcm5hbFNlYXJjaFBhcmFtcyB9IGZyb20gXCIuLi9pbnRlcm5hbC11dGlsc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplUnNjVVJMIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiO1xuaW1wb3J0IHsgRkxJR0hUX1BBUkFNRVRFUlMgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCI7XG5pbXBvcnQgeyBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCB9IGZyb20gXCIuLi8uLi9saWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBlbnN1cmVJbnN0cnVtZW50YXRpb25SZWdpc3RlcmVkIH0gZnJvbSBcIi4vZ2xvYmFsc1wiO1xuaW1wb3J0IHsgUmVxdWVzdEFzeW5jU3RvcmFnZVdyYXBwZXIgfSBmcm9tIFwiLi4vYXN5bmMtc3RvcmFnZS9yZXF1ZXN0LWFzeW5jLXN0b3JhZ2Utd3JhcHBlclwiO1xuaW1wb3J0IHsgcmVxdWVzdEFzeW5jU3RvcmFnZSB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9yZXF1ZXN0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIjtcbmltcG9ydCB7IGdldFRyYWNlciB9IGZyb20gXCIuLi9saWIvdHJhY2UvdHJhY2VyXCI7XG5jbGFzcyBOZXh0UmVxdWVzdEhpbnQgZXh0ZW5kcyBOZXh0UmVxdWVzdCB7XG4gICAgY29uc3RydWN0b3IocGFyYW1zKXtcbiAgICAgICAgc3VwZXIocGFyYW1zLmlucHV0LCBwYXJhbXMuaW5pdCk7XG4gICAgICAgIHRoaXMuc291cmNlUGFnZSA9IHBhcmFtcy5wYWdlO1xuICAgIH1cbiAgICBnZXQgcmVxdWVzdCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhZ2VTaWduYXR1cmVFcnJvcih7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnNvdXJjZVBhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlc3BvbmRXaXRoKCkge1xuICAgICAgICB0aHJvdyBuZXcgUGFnZVNpZ25hdHVyZUVycm9yKHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMuc291cmNlUGFnZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgd2FpdFVudGlsKCkge1xuICAgICAgICB0aHJvdyBuZXcgUGFnZVNpZ25hdHVyZUVycm9yKHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMuc291cmNlUGFnZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5jb25zdCBoZWFkZXJzR2V0dGVyID0ge1xuICAgIGtleXM6IChoZWFkZXJzKT0+QXJyYXkuZnJvbShoZWFkZXJzLmtleXMoKSksXG4gICAgZ2V0OiAoaGVhZGVycywga2V5KT0+aGVhZGVycy5nZXQoa2V5KSA/PyB1bmRlZmluZWRcbn07XG5sZXQgcHJvcGFnYXRvciA9IChyZXF1ZXN0LCBmbik9PntcbiAgICBjb25zdCB0cmFjZXIgPSBnZXRUcmFjZXIoKTtcbiAgICByZXR1cm4gdHJhY2VyLndpdGhQcm9wYWdhdGVkQ29udGV4dChyZXF1ZXN0LmhlYWRlcnMsIGZuLCBoZWFkZXJzR2V0dGVyKTtcbn07XG5sZXQgdGVzdEFwaXNJbnRlcmNlcHRlZCA9IGZhbHNlO1xuZnVuY3Rpb24gZW5zdXJlVGVzdEFwaXNJbnRlcmNlcHRlZCgpIHtcbiAgICBpZiAoIXRlc3RBcGlzSW50ZXJjZXB0ZWQpIHtcbiAgICAgICAgdGVzdEFwaXNJbnRlcmNlcHRlZCA9IHRydWU7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1BSSVZBVEVfVEVTVF9QUk9YWSA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgaW50ZXJjZXB0VGVzdEFwaXMsIHdyYXBSZXF1ZXN0SGFuZGxlciB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvc2VydmVyLWVkZ2VcIik7XG4gICAgICAgICAgICBpbnRlcmNlcHRUZXN0QXBpcygpO1xuICAgICAgICAgICAgcHJvcGFnYXRvciA9IHdyYXBSZXF1ZXN0SGFuZGxlcihwcm9wYWdhdG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGFwdGVyKHBhcmFtcykge1xuICAgIGVuc3VyZVRlc3RBcGlzSW50ZXJjZXB0ZWQoKTtcbiAgICBhd2FpdCBlbnN1cmVJbnN0cnVtZW50YXRpb25SZWdpc3RlcmVkKCk7XG4gICAgLy8gVE9ETy1BUFA6IHVzZSBleHBsaWNpdCBtYXJrZXIgZm9yIHRoaXNcbiAgICBjb25zdCBpc0VkZ2VSZW5kZXJpbmcgPSB0eXBlb2Ygc2VsZi5fX0JVSUxEX01BTklGRVNUICE9PSBcInVuZGVmaW5lZFwiO1xuICAgIGNvbnN0IHByZXJlbmRlck1hbmlmZXN0ID0gdHlwZW9mIHNlbGYuX19QUkVSRU5ERVJfTUFOSUZFU1QgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKHNlbGYuX19QUkVSRU5ERVJfTUFOSUZFU1QpIDogdW5kZWZpbmVkO1xuICAgIHBhcmFtcy5yZXF1ZXN0LnVybCA9IG5vcm1hbGl6ZVJzY1VSTChwYXJhbXMucmVxdWVzdC51cmwpO1xuICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBuZXcgTmV4dFVSTChwYXJhbXMucmVxdWVzdC51cmwsIHtcbiAgICAgICAgaGVhZGVyczogcGFyYW1zLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgbmV4dENvbmZpZzogcGFyYW1zLnJlcXVlc3QubmV4dENvbmZpZ1xuICAgIH0pO1xuICAgIC8vIEl0ZXJhdG9yIHVzZXMgYW4gaW5kZXggdG8ga2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBpdGVyYXRpb24uIEJlY2F1c2Ugb2YgZGVsZXRpbmcgYW5kIGFwcGVuZGluZyBiZWxvdyB3ZSBjYW4ndCBqdXN0IHVzZSB0aGUgaXRlcmF0b3IuXG4gICAgLy8gSW5zdGVhZCB3ZSB1c2UgdGhlIGtleXMgYmVmb3JlIGl0ZXJhdGlvbi5cbiAgICBjb25zdCBrZXlzID0gW1xuICAgICAgICAuLi5yZXF1ZXN0VXJsLnNlYXJjaFBhcmFtcy5rZXlzKClcbiAgICBdO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpe1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJlcXVlc3RVcmwuc2VhcmNoUGFyYW1zLmdldEFsbChrZXkpO1xuICAgICAgICBpZiAoa2V5ICE9PSBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCAmJiBrZXkuc3RhcnRzV2l0aChORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSBrZXkuc3Vic3RyaW5nKE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLmxlbmd0aCk7XG4gICAgICAgICAgICByZXF1ZXN0VXJsLnNlYXJjaFBhcmFtcy5kZWxldGUobm9ybWFsaXplZEtleSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbCBvZiB2YWx1ZSl7XG4gICAgICAgICAgICAgICAgcmVxdWVzdFVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKG5vcm1hbGl6ZWRLZXksIHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXF1ZXN0VXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoa2V5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBFbnN1cmUgdXNlcnMgb25seSBzZWUgcGFnZSByZXF1ZXN0cywgbmV2ZXIgZGF0YSByZXF1ZXN0cy5cbiAgICBjb25zdCBidWlsZElkID0gcmVxdWVzdFVybC5idWlsZElkO1xuICAgIHJlcXVlc3RVcmwuYnVpbGRJZCA9IFwiXCI7XG4gICAgY29uc3QgaXNEYXRhUmVxID0gcGFyYW1zLnJlcXVlc3QuaGVhZGVyc1tcIngtbmV4dGpzLWRhdGFcIl07XG4gICAgaWYgKGlzRGF0YVJlcSAmJiByZXF1ZXN0VXJsLnBhdGhuYW1lID09PSBcIi9pbmRleFwiKSB7XG4gICAgICAgIHJlcXVlc3RVcmwucGF0aG5hbWUgPSBcIi9cIjtcbiAgICB9XG4gICAgY29uc3QgcmVxdWVzdEhlYWRlcnMgPSBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMocGFyYW1zLnJlcXVlc3QuaGVhZGVycyk7XG4gICAgY29uc3QgZmxpZ2h0SGVhZGVycyA9IG5ldyBNYXAoKTtcbiAgICAvLyBQYXJhbWV0ZXJzIHNob3VsZCBvbmx5IGJlIHN0cmlwcGVkIGZvciBtaWRkbGV3YXJlXG4gICAgaWYgKCFpc0VkZ2VSZW5kZXJpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBwYXJhbSBvZiBGTElHSFRfUEFSQU1FVEVSUyl7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBwYXJhbS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlcXVlc3RIZWFkZXJzLmdldChrZXkpO1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgZmxpZ2h0SGVhZGVycy5zZXQoa2V5LCByZXF1ZXN0SGVhZGVycy5nZXQoa2V5KSk7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsaXplVXJsID0gcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSA/IG5ldyBVUkwocGFyYW1zLnJlcXVlc3QudXJsKSA6IHJlcXVlc3RVcmw7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBOZXh0UmVxdWVzdEhpbnQoe1xuICAgICAgICBwYWdlOiBwYXJhbXMucGFnZSxcbiAgICAgICAgLy8gU3RyaXAgaW50ZXJuYWwgcXVlcnkgcGFyYW1ldGVycyBvZmYgdGhlIHJlcXVlc3QuXG4gICAgICAgIGlucHV0OiBzdHJpcEludGVybmFsU2VhcmNoUGFyYW1zKG5vcm1hbGl6ZVVybCwgdHJ1ZSkudG9TdHJpbmcoKSxcbiAgICAgICAgaW5pdDoge1xuICAgICAgICAgICAgYm9keTogcGFyYW1zLnJlcXVlc3QuYm9keSxcbiAgICAgICAgICAgIGdlbzogcGFyYW1zLnJlcXVlc3QuZ2VvLFxuICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdEhlYWRlcnMsXG4gICAgICAgICAgICBpcDogcGFyYW1zLnJlcXVlc3QuaXAsXG4gICAgICAgICAgICBtZXRob2Q6IHBhcmFtcy5yZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICAgIG5leHRDb25maWc6IHBhcmFtcy5yZXF1ZXN0Lm5leHRDb25maWcsXG4gICAgICAgICAgICBzaWduYWw6IHBhcmFtcy5yZXF1ZXN0LnNpZ25hbFxuICAgICAgICB9XG4gICAgfSk7XG4gICAgLyoqXG4gICAqIFRoaXMgYWxsb3dzIHRvIGlkZW50aWZ5IHRoZSByZXF1ZXN0IGFzIGEgZGF0YSByZXF1ZXN0LiBUaGUgdXNlciBkb2Vzbid0XG4gICAqIG5lZWQgdG8ga25vdyBhYm91dCB0aGlzIHByb3BlcnR5IG5laXRoZXIgdXNlIGl0LiBXZSBhZGQgaXQgZm9yIHRlc3RpbmdcbiAgICogcHVycG9zZXMuXG4gICAqLyBpZiAoaXNEYXRhUmVxKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXF1ZXN0LCBcIl9faXNEYXRhXCIsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmICghZ2xvYmFsVGhpcy5fX2luY3JlbWVudGFsQ2FjaGUgJiYgcGFyYW1zLkluY3JlbWVudGFsQ2FjaGUpIHtcbiAgICAgICAgZ2xvYmFsVGhpcy5fX2luY3JlbWVudGFsQ2FjaGUgPSBuZXcgcGFyYW1zLkluY3JlbWVudGFsQ2FjaGUoe1xuICAgICAgICAgICAgYXBwRGlyOiB0cnVlLFxuICAgICAgICAgICAgZmV0Y2hDYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgIG1pbmltYWxNb2RlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJkZXZlbG9wbWVudFwiLFxuICAgICAgICAgICAgZmV0Y2hDYWNoZUtleVByZWZpeDogcHJvY2Vzcy5lbnYuX19ORVhUX0ZFVENIX0NBQ0hFX0tFWV9QUkVGSVgsXG4gICAgICAgICAgICBkZXY6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIsXG4gICAgICAgICAgICByZXF1ZXN0SGVhZGVyczogcGFyYW1zLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgIHJlcXVlc3RQcm90b2NvbDogXCJodHRwc1wiLFxuICAgICAgICAgICAgZ2V0UHJlcmVuZGVyTWFuaWZlc3Q6ICgpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogLTEsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlczoge30sXG4gICAgICAgICAgICAgICAgICAgIGR5bmFtaWNSb3V0ZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFJvdXRlczogW10sXG4gICAgICAgICAgICAgICAgICAgIHByZXZpZXc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdNb2RlSWQ6IFwiZGV2ZWxvcG1lbnQtaWRcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50ID0gbmV3IE5leHRGZXRjaEV2ZW50KHtcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgcGFnZTogcGFyYW1zLnBhZ2VcbiAgICB9KTtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgbGV0IGNvb2tpZXNGcm9tUmVzcG9uc2U7XG4gICAgcmVzcG9uc2UgPSBhd2FpdCBwcm9wYWdhdG9yKHJlcXVlc3QsICgpPT57XG4gICAgICAgIC8vIHdlIG9ubHkgY2FyZSB0byBtYWtlIGFzeW5jIHN0b3JhZ2UgYXZhaWxhYmxlIGZvciBtaWRkbGV3YXJlXG4gICAgICAgIGNvbnN0IGlzTWlkZGxld2FyZSA9IHBhcmFtcy5wYWdlID09PSBcIi9taWRkbGV3YXJlXCIgfHwgcGFyYW1zLnBhZ2UgPT09IFwiL3NyYy9taWRkbGV3YXJlXCI7XG4gICAgICAgIGlmIChpc01pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXF1ZXN0QXN5bmNTdG9yYWdlV3JhcHBlci53cmFwKHJlcXVlc3RBc3luY1N0b3JhZ2UsIHtcbiAgICAgICAgICAgICAgICByZXE6IHJlcXVlc3QsXG4gICAgICAgICAgICAgICAgcmVuZGVyT3B0czoge1xuICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZUNvb2tpZXM6IChjb29raWVzKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29va2llc0Zyb21SZXNwb25zZSA9IGNvb2tpZXM7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFRPRE86IGludmVzdGlnYXRlIHdoeSBwcmV2aWV3UHJvcHMgaXNuJ3Qgb24gUmVuZGVyT3B0c1xuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3UHJvcHM6IChwcmVyZW5kZXJNYW5pZmVzdCA9PSBudWxsID8gdm9pZCAwIDogcHJlcmVuZGVyTWFuaWZlc3QucHJldmlldykgfHwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGVJZDogXCJkZXZlbG9wbWVudC1pZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGVFbmNyeXB0aW9uS2V5OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGVTaWduaW5nS2V5OiBcIlwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAoKT0+cGFyYW1zLmhhbmRsZXIocmVxdWVzdCwgZXZlbnQpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1zLmhhbmRsZXIocmVxdWVzdCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIC8vIGNoZWNrIGlmIHJlc3BvbnNlIGlzIGEgUmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHJlc3BvbnNlICYmICEocmVzcG9uc2UgaW5zdGFuY2VvZiBSZXNwb25zZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIFJlc3BvbnNlIHRvIGJlIHJldHVybmVkXCIpO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2UgJiYgY29va2llc0Zyb21SZXNwb25zZSkge1xuICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChcInNldC1jb29raWVcIiwgY29va2llc0Zyb21SZXNwb25zZSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBGb3IgcmV3cml0ZXMgd2UgbXVzdCBhbHdheXMgaW5jbHVkZSB0aGUgbG9jYWxlIGluIHRoZSBmaW5hbCBwYXRobmFtZVxuICAgKiBzbyB3ZSByZS1jcmVhdGUgdGhlIE5leHRVUkwgZm9yY2luZyBpdCB0byBpbmNsdWRlIGl0IHdoZW4gdGhlIGl0IGlzXG4gICAqIGFuIGludGVybmFsIHJld3JpdGUuIEFsc28gd2UgbWFrZSBzdXJlIHRoZSBvdXRnb2luZyByZXdyaXRlIFVSTCBpc1xuICAgKiBhIGRhdGEgVVJMIGlmIHRoZSByZXF1ZXN0IHdhcyBhIGRhdGEgcmVxdWVzdC5cbiAgICovIGNvbnN0IHJld3JpdGUgPSByZXNwb25zZSA9PSBudWxsID8gdm9pZCAwIDogcmVzcG9uc2UuaGVhZGVycy5nZXQoXCJ4LW1pZGRsZXdhcmUtcmV3cml0ZVwiKTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmV3cml0ZSkge1xuICAgICAgICBjb25zdCByZXdyaXRlVXJsID0gbmV3IE5leHRVUkwocmV3cml0ZSwge1xuICAgICAgICAgICAgZm9yY2VMb2NhbGU6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiBwYXJhbXMucmVxdWVzdC5oZWFkZXJzLFxuICAgICAgICAgICAgbmV4dENvbmZpZzogcGFyYW1zLnJlcXVlc3QubmV4dENvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFwcm9jZXNzLmVudi5fX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFKSB7XG4gICAgICAgICAgICBpZiAocmV3cml0ZVVybC5ob3N0ID09PSByZXF1ZXN0Lm5leHRVcmwuaG9zdCkge1xuICAgICAgICAgICAgICAgIHJld3JpdGVVcmwuYnVpbGRJZCA9IGJ1aWxkSWQgfHwgcmV3cml0ZVVybC5idWlsZElkO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KFwieC1taWRkbGV3YXJlLXJld3JpdGVcIiwgU3RyaW5nKHJld3JpdGVVcmwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgKiBXaGVuIHRoZSByZXF1ZXN0IGlzIGEgZGF0YSByZXF1ZXN0IHdlIG11c3Qgc2hvdyBpZiB0aGVyZSB3YXMgYSByZXdyaXRlXG4gICAgICogd2l0aCBhbiBpbnRlcm5hbCBoZWFkZXIgc28gdGhlIGNsaWVudCBrbm93cyB3aGljaCBjb21wb25lbnQgdG8gbG9hZFxuICAgICAqIGZyb20gdGhlIGRhdGEgcmVxdWVzdC5cbiAgICAgKi8gY29uc3QgcmVsYXRpdml6ZWRSZXdyaXRlID0gcmVsYXRpdml6ZVVSTChTdHJpbmcocmV3cml0ZVVybCksIFN0cmluZyhyZXF1ZXN0VXJsKSk7XG4gICAgICAgIGlmIChpc0RhdGFSZXEgJiYgLy8gaWYgdGhlIHJld3JpdGUgaXMgZXh0ZXJuYWwgYW5kIGV4dGVybmFsIHJld3JpdGVcbiAgICAgICAgLy8gcmVzb2x2aW5nIGNvbmZpZyBpcyBlbmFibGVkIGRvbid0IGFkZCB0aGlzIGhlYWRlclxuICAgICAgICAvLyBzbyB0aGUgdXBzdHJlYW0gYXBwIGNhbiBzZXQgaXQgaW5zdGVhZFxuICAgICAgICAhKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFRFUk5BTF9NSURETEVXQVJFX1JFV1JJVEVfUkVTT0xWRSAmJiByZWxhdGl2aXplZFJld3JpdGUubWF0Y2goL2h0dHAocyk/OlxcL1xcLy8pKSkge1xuICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoXCJ4LW5leHRqcy1yZXdyaXRlXCIsIHJlbGF0aXZpemVkUmV3cml0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAqIEZvciByZWRpcmVjdHMgd2Ugd2lsbCBub3QgaW5jbHVkZSB0aGUgbG9jYWxlIGluIGNhc2Ugd2hlbiBpdCBpcyB0aGVcbiAgICogZGVmYXVsdCBhbmQgd2UgbXVzdCBhbHNvIG1ha2Ugc3VyZSB0aGUgb3V0Z29pbmcgVVJMIGlzIGEgZGF0YSBvbmUgaWZcbiAgICogdGhlIGluY29taW5nIHJlcXVlc3Qgd2FzIGEgZGF0YSByZXF1ZXN0LlxuICAgKi8gY29uc3QgcmVkaXJlY3QgPSByZXNwb25zZSA9PSBudWxsID8gdm9pZCAwIDogcmVzcG9uc2UuaGVhZGVycy5nZXQoXCJMb2NhdGlvblwiKTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVkaXJlY3QgJiYgIWlzRWRnZVJlbmRlcmluZykge1xuICAgICAgICBjb25zdCByZWRpcmVjdFVSTCA9IG5ldyBOZXh0VVJMKHJlZGlyZWN0LCB7XG4gICAgICAgICAgICBmb3JjZUxvY2FsZTogZmFsc2UsXG4gICAgICAgICAgICBoZWFkZXJzOiBwYXJhbXMucmVxdWVzdC5oZWFkZXJzLFxuICAgICAgICAgICAgbmV4dENvbmZpZzogcGFyYW1zLnJlcXVlc3QubmV4dENvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICogUmVzcG9uc2VzIGNyZWF0ZWQgZnJvbSByZWRpcmVjdHMgaGF2ZSBpbW11dGFibGUgaGVhZGVycyBzbyB3ZSBoYXZlXG4gICAgICogdG8gY2xvbmUgdGhlIHJlc3BvbnNlIHRvIGJlIGFibGUgdG8gbW9kaWZ5IGl0LlxuICAgICAqLyByZXNwb25zZSA9IG5ldyBSZXNwb25zZShyZXNwb25zZS5ib2R5LCByZXNwb25zZSk7XG4gICAgICAgIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSkge1xuICAgICAgICAgICAgaWYgKHJlZGlyZWN0VVJMLmhvc3QgPT09IHJlcXVlc3QubmV4dFVybC5ob3N0KSB7XG4gICAgICAgICAgICAgICAgcmVkaXJlY3RVUkwuYnVpbGRJZCA9IGJ1aWxkSWQgfHwgcmVkaXJlY3RVUkwuYnVpbGRJZDtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChcIkxvY2F0aW9uXCIsIFN0cmluZyhyZWRpcmVjdFVSTCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAqIFdoZW4gdGhlIHJlcXVlc3QgaXMgYSBkYXRhIHJlcXVlc3Qgd2UgY2FuJ3QgdXNlIHRoZSBsb2NhdGlvbiBoZWFkZXIgYXNcbiAgICAgKiBpdCBtYXkgZW5kIHVwIHdpdGggQ09SUyBlcnJvci4gSW5zdGVhZCB3ZSBtYXAgdG8gYW4gaW50ZXJuYWwgaGVhZGVyIHNvXG4gICAgICogdGhlIGNsaWVudCBrbm93cyB0aGUgZGVzdGluYXRpb24uXG4gICAgICovIGlmIChpc0RhdGFSZXEpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZGVsZXRlKFwiTG9jYXRpb25cIik7XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChcIngtbmV4dGpzLXJlZGlyZWN0XCIsIHJlbGF0aXZpemVVUkwoU3RyaW5nKHJlZGlyZWN0VVJMKSwgU3RyaW5nKHJlcXVlc3RVcmwpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZmluYWxSZXNwb25zZSA9IHJlc3BvbnNlID8gcmVzcG9uc2UgOiBOZXh0UmVzcG9uc2UubmV4dCgpO1xuICAgIC8vIEZsaWdodCBoZWFkZXJzIGFyZSBub3Qgb3ZlcnJpZGFibGUgLyByZW1vdmFibGUgc28gdGhleSBhcmUgYXBwbGllZCBhdCB0aGUgZW5kLlxuICAgIGNvbnN0IG1pZGRsZXdhcmVPdmVycmlkZUhlYWRlcnMgPSBmaW5hbFJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwieC1taWRkbGV3YXJlLW92ZXJyaWRlLWhlYWRlcnNcIik7XG4gICAgY29uc3Qgb3ZlcndyaXR0ZW5IZWFkZXJzID0gW107XG4gICAgaWYgKG1pZGRsZXdhcmVPdmVycmlkZUhlYWRlcnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZmxpZ2h0SGVhZGVycyl7XG4gICAgICAgICAgICBmaW5hbFJlc3BvbnNlLmhlYWRlcnMuc2V0KGB4LW1pZGRsZXdhcmUtcmVxdWVzdC0ke2tleX1gLCB2YWx1ZSk7XG4gICAgICAgICAgICBvdmVyd3JpdHRlbkhlYWRlcnMucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdmVyd3JpdHRlbkhlYWRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmluYWxSZXNwb25zZS5oZWFkZXJzLnNldChcIngtbWlkZGxld2FyZS1vdmVycmlkZS1oZWFkZXJzXCIsIG1pZGRsZXdhcmVPdmVycmlkZUhlYWRlcnMgKyBcIixcIiArIG92ZXJ3cml0dGVuSGVhZGVycy5qb2luKFwiLFwiKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzcG9uc2U6IGZpbmFsUmVzcG9uc2UsXG4gICAgICAgIHdhaXRVbnRpbDogUHJvbWlzZS5hbGwoZXZlbnRbd2FpdFVudGlsU3ltYm9sXSksXG4gICAgICAgIGZldGNoTWV0cmljczogcmVxdWVzdC5mZXRjaE1ldHJpY3NcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGFwdGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJQYWdlU2lnbmF0dXJlRXJyb3IiLCJmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMiLCJOZXh0RmV0Y2hFdmVudCIsIk5leHRSZXF1ZXN0IiwiTmV4dFJlc3BvbnNlIiwicmVsYXRpdml6ZVVSTCIsIndhaXRVbnRpbFN5bWJvbCIsIk5leHRVUkwiLCJzdHJpcEludGVybmFsU2VhcmNoUGFyYW1zIiwibm9ybWFsaXplUnNjVVJMIiwiRkxJR0hUX1BBUkFNRVRFUlMiLCJORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCIsImVuc3VyZUluc3RydW1lbnRhdGlvblJlZ2lzdGVyZWQiLCJSZXF1ZXN0QXN5bmNTdG9yYWdlV3JhcHBlciIsInJlcXVlc3RBc3luY1N0b3JhZ2UiLCJnZXRUcmFjZXIiLCJOZXh0UmVxdWVzdEhpbnQiLCJjb25zdHJ1Y3RvciIsInBhcmFtcyIsImlucHV0IiwiaW5pdCIsInNvdXJjZVBhZ2UiLCJwYWdlIiwicmVxdWVzdCIsInJlc3BvbmRXaXRoIiwid2FpdFVudGlsIiwiaGVhZGVyc0dldHRlciIsImtleXMiLCJoZWFkZXJzIiwiQXJyYXkiLCJmcm9tIiwiZ2V0Iiwia2V5IiwidW5kZWZpbmVkIiwicHJvcGFnYXRvciIsImZuIiwidHJhY2VyIiwid2l0aFByb3BhZ2F0ZWRDb250ZXh0IiwidGVzdEFwaXNJbnRlcmNlcHRlZCIsImVuc3VyZVRlc3RBcGlzSW50ZXJjZXB0ZWQiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9QUklWQVRFX1RFU1RfUFJPWFkiLCJpbnRlcmNlcHRUZXN0QXBpcyIsIndyYXBSZXF1ZXN0SGFuZGxlciIsInJlcXVpcmUiLCJhZGFwdGVyIiwiaXNFZGdlUmVuZGVyaW5nIiwic2VsZiIsIl9fQlVJTERfTUFOSUZFU1QiLCJwcmVyZW5kZXJNYW5pZmVzdCIsIl9fUFJFUkVOREVSX01BTklGRVNUIiwiSlNPTiIsInBhcnNlIiwidXJsIiwicmVxdWVzdFVybCIsIm5leHRDb25maWciLCJzZWFyY2hQYXJhbXMiLCJ2YWx1ZSIsImdldEFsbCIsInN0YXJ0c1dpdGgiLCJub3JtYWxpemVkS2V5Iiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiZGVsZXRlIiwidmFsIiwiYXBwZW5kIiwiYnVpbGRJZCIsImlzRGF0YVJlcSIsInBhdGhuYW1lIiwicmVxdWVzdEhlYWRlcnMiLCJmbGlnaHRIZWFkZXJzIiwiTWFwIiwicGFyYW0iLCJ0b1N0cmluZyIsInRvTG93ZXJDYXNlIiwic2V0Iiwibm9ybWFsaXplVXJsIiwiX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSIsIlVSTCIsImJvZHkiLCJnZW8iLCJpcCIsIm1ldGhvZCIsInNpZ25hbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdsb2JhbFRoaXMiLCJfX2luY3JlbWVudGFsQ2FjaGUiLCJJbmNyZW1lbnRhbENhY2hlIiwiYXBwRGlyIiwiZmV0Y2hDYWNoZSIsIm1pbmltYWxNb2RlIiwiZmV0Y2hDYWNoZUtleVByZWZpeCIsIl9fTkVYVF9GRVRDSF9DQUNIRV9LRVlfUFJFRklYIiwiZGV2IiwicmVxdWVzdFByb3RvY29sIiwiZ2V0UHJlcmVuZGVyTWFuaWZlc3QiLCJ2ZXJzaW9uIiwicm91dGVzIiwiZHluYW1pY1JvdXRlcyIsIm5vdEZvdW5kUm91dGVzIiwicHJldmlldyIsInByZXZpZXdNb2RlSWQiLCJldmVudCIsInJlc3BvbnNlIiwiY29va2llc0Zyb21SZXNwb25zZSIsImlzTWlkZGxld2FyZSIsIndyYXAiLCJyZXEiLCJyZW5kZXJPcHRzIiwib25VcGRhdGVDb29raWVzIiwiY29va2llcyIsInByZXZpZXdQcm9wcyIsInByZXZpZXdNb2RlRW5jcnlwdGlvbktleSIsInByZXZpZXdNb2RlU2lnbmluZ0tleSIsImhhbmRsZXIiLCJSZXNwb25zZSIsIlR5cGVFcnJvciIsInJld3JpdGUiLCJyZXdyaXRlVXJsIiwiZm9yY2VMb2NhbGUiLCJob3N0IiwibmV4dFVybCIsIlN0cmluZyIsInJlbGF0aXZpemVkUmV3cml0ZSIsIl9fTkVYVF9FWFRFUk5BTF9NSURETEVXQVJFX1JFV1JJVEVfUkVTT0xWRSIsIm1hdGNoIiwicmVkaXJlY3QiLCJyZWRpcmVjdFVSTCIsImZpbmFsUmVzcG9uc2UiLCJuZXh0IiwibWlkZGxld2FyZU92ZXJyaWRlSGVhZGVycyIsIm92ZXJ3cml0dGVuSGVhZGVycyIsInB1c2giLCJqb2luIiwiUHJvbWlzZSIsImFsbCIsImZldGNoTWV0cmljcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/adapter.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/error.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/error.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PageSignatureError: () => (/* binding */ PageSignatureError),\n/* harmony export */ RemovedPageError: () => (/* binding */ RemovedPageError),\n/* harmony export */ RemovedUAError: () => (/* binding */ RemovedUAError)\n/* harmony export */ });\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n} //# sourceMappingURL=error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxNQUFNQSwyQkFBMkJDO0lBQ3BDQyxZQUFZLEVBQUVDLElBQUksRUFBRSxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFQSxLQUFLOzs7Ozs7O0VBT3BDLENBQUM7SUFDQztBQUNKO0FBQ08sTUFBTUMseUJBQXlCSDtJQUNsQ0MsYUFBYTtRQUNULEtBQUssQ0FBQyxDQUFDOztFQUViLENBQUM7SUFDQztBQUNKO0FBQ08sTUFBTUcsdUJBQXVCSjtJQUNoQ0MsYUFBYTtRQUNULEtBQUssQ0FBQyxDQUFDOztFQUViLENBQUM7SUFDQztBQUNKLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvZXJyb3IuanM/ZWFkMyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUGFnZVNpZ25hdHVyZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHsgcGFnZSB9KXtcbiAgICAgICAgc3VwZXIoYFRoZSBtaWRkbGV3YXJlIFwiJHtwYWdlfVwiIGFjY2VwdHMgYW4gYXN5bmMgQVBJIGRpcmVjdGx5IHdpdGggdGhlIGZvcm06XG4gIFxuICBleHBvcnQgZnVuY3Rpb24gbWlkZGxld2FyZShyZXF1ZXN0LCBldmVudCkge1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UucmVkaXJlY3QoJy9uZXctbG9jYXRpb24nKVxuICB9XG4gIFxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtbmV3LXNpZ25hdHVyZVxuICBgKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVtb3ZlZFBhZ2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihgVGhlIHJlcXVlc3QucGFnZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBcXGBVUkxQYXR0ZXJuXFxgLlxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVxdWVzdC1wYWdlXG4gIGApO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBSZW1vdmVkVUFFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihgVGhlIHJlcXVlc3QudWEgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgXFxgdXNlckFnZW50XFxgIGZ1bmN0aW9uLlxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcGFyc2UtdXNlci1hZ2VudFxuICBgKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJQYWdlU2lnbmF0dXJlRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwicGFnZSIsIlJlbW92ZWRQYWdlRXJyb3IiLCJSZW1vdmVkVUFFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/error.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/exports/next-response.js": +/*!************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/exports/next-response.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _spec_extension_response__WEBPACK_IMPORTED_MODULE_0__.NextResponse)\n/* harmony export */ });\n/* harmony import */ var _spec_extension_response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../spec-extension/response */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/response.js\");\n// This file is for modularized imports for next/server to get fully-treeshaking.\n //# sourceMappingURL=next-response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9leHBvcnRzL25leHQtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpRkFBaUY7QUFDWixDQUVyRSx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9leHBvcnRzL25leHQtcmVzcG9uc2UuanM/NjQxNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgaXMgZm9yIG1vZHVsYXJpemVkIGltcG9ydHMgZm9yIG5leHQvc2VydmVyIHRvIGdldCBmdWxseS10cmVlc2hha2luZy5cbmV4cG9ydCB7IE5leHRSZXNwb25zZSBhcyBkZWZhdWx0IH0gZnJvbSBcIi4uL3NwZWMtZXh0ZW5zaW9uL3Jlc3BvbnNlXCI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtcmVzcG9uc2UuanMubWFwIl0sIm5hbWVzIjpbIk5leHRSZXNwb25zZSIsImRlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/exports/next-response.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/globals.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/globals.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ensureInstrumentationRegistered: () => (/* binding */ ensureInstrumentationRegistered)\n/* harmony export */ });\nasync function registerInstrumentation() {\n if (\"_ENTRIES\" in globalThis && _ENTRIES.middleware_instrumentation && _ENTRIES.middleware_instrumentation.register) {\n try {\n await _ENTRIES.middleware_instrumentation.register();\n } catch (err) {\n err.message = `An error occurred while loading instrumentation hook: ${err.message}`;\n throw err;\n }\n }\n}\nlet registerInstrumentationPromise = null;\nfunction ensureInstrumentationRegistered() {\n if (!registerInstrumentationPromise) {\n registerInstrumentationPromise = registerInstrumentation();\n }\n return registerInstrumentationPromise;\n}\nfunction getUnsupportedModuleErrorMessage(module) {\n // warning: if you change these messages, you must adjust how react-dev-overlay's middleware detects modules not found\n return `The edge runtime does not support Node.js '${module}' module.\nLearn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;\n}\nfunction __import_unsupported(moduleName) {\n const proxy = new Proxy(function() {}, {\n get (_obj, prop) {\n if (prop === \"then\") {\n return {};\n }\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n },\n construct () {\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n },\n apply (_target, _this, args) {\n if (typeof args[0] === \"function\") {\n return args[0](proxy);\n }\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n }\n });\n return new Proxy({}, {\n get: ()=>proxy\n });\n}\nfunction enhanceGlobals() {\n // The condition is true when the \"process\" module is provided\n if (process !== __webpack_require__.g.process) {\n // prefer local process but global.process has correct \"env\"\n process.env = __webpack_require__.g.process.env;\n __webpack_require__.g.process = process;\n }\n // to allow building code that import but does not use node.js modules,\n // webpack will expect this function to exist in global scope\n Object.defineProperty(globalThis, \"__import_unsupported\", {\n value: __import_unsupported,\n enumerable: false,\n configurable: false\n });\n // Eagerly fire instrumentation hook to make the startup faster.\n void ensureInstrumentationRegistered();\n}\nenhanceGlobals(); //# sourceMappingURL=globals.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9nbG9iYWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFlQTtJQUNYLElBQUksY0FBY0MsY0FBY0MsU0FBU0MsMEJBQTBCLElBQUlELFNBQVNDLDBCQUEwQixDQUFDQyxRQUFRLEVBQUU7UUFDakgsSUFBSTtZQUNBLE1BQU1GLFNBQVNDLDBCQUEwQixDQUFDQyxRQUFRO1FBQ3RELEVBQUUsT0FBT0MsS0FBSztZQUNWQSxJQUFJQyxPQUFPLEdBQUcsQ0FBQyxzREFBc0QsRUFBRUQsSUFBSUMsT0FBTyxDQUFDLENBQUM7WUFDcEYsTUFBTUQ7UUFDVjtJQUNKO0FBQ0o7QUFDQSxJQUFJRSxpQ0FBaUM7QUFDOUIsU0FBU0M7SUFDWixJQUFJLENBQUNELGdDQUFnQztRQUNqQ0EsaUNBQWlDUDtJQUNyQztJQUNBLE9BQU9PO0FBQ1g7QUFDQSxTQUFTRSxpQ0FBaUNDLE1BQU07SUFDNUMsc0hBQXNIO0lBQ3RILE9BQU8sQ0FBQywyQ0FBMkMsRUFBRUEsT0FBTzt3RUFDUSxDQUFDO0FBQ3pFO0FBQ0EsU0FBU0MscUJBQXFCQyxVQUFVO0lBQ3BDLE1BQU1DLFFBQVEsSUFBSUMsTUFBTSxZQUFZLEdBQUc7UUFDbkNDLEtBQUtDLElBQUksRUFBRUMsSUFBSTtZQUNYLElBQUlBLFNBQVMsUUFBUTtnQkFDakIsT0FBTyxDQUFDO1lBQ1o7WUFDQSxNQUFNLElBQUlDLE1BQU1ULGlDQUFpQ0c7UUFDckQ7UUFDQU87WUFDSSxNQUFNLElBQUlELE1BQU1ULGlDQUFpQ0c7UUFDckQ7UUFDQVEsT0FBT0MsT0FBTyxFQUFFQyxLQUFLLEVBQUVDLElBQUk7WUFDdkIsSUFBSSxPQUFPQSxJQUFJLENBQUMsRUFBRSxLQUFLLFlBQVk7Z0JBQy9CLE9BQU9BLElBQUksQ0FBQyxFQUFFLENBQUNWO1lBQ25CO1lBQ0EsTUFBTSxJQUFJSyxNQUFNVCxpQ0FBaUNHO1FBQ3JEO0lBQ0o7SUFDQSxPQUFPLElBQUlFLE1BQU0sQ0FBQyxHQUFHO1FBQ2pCQyxLQUFLLElBQUlGO0lBQ2I7QUFDSjtBQUNBLFNBQVNXO0lBQ0wsOERBQThEO0lBQzlELElBQUlDLFlBQVlDLHFCQUFNQSxDQUFDRCxPQUFPLEVBQUU7UUFDNUIsNERBQTREO1FBQzVEQSxRQUFRRSxHQUFHLEdBQUdELHFCQUFNQSxDQUFDRCxPQUFPLENBQUNFLEdBQUc7UUFDaENELHFCQUFNQSxDQUFDRCxPQUFPLEdBQUdBO0lBQ3JCO0lBQ0EsdUVBQXVFO0lBQ3ZFLDZEQUE2RDtJQUM3REcsT0FBT0MsY0FBYyxDQUFDNUIsWUFBWSx3QkFBd0I7UUFDdEQ2QixPQUFPbkI7UUFDUG9CLFlBQVk7UUFDWkMsY0FBYztJQUNsQjtJQUNBLGdFQUFnRTtJQUNoRSxLQUFLeEI7QUFDVDtBQUNBZ0Isa0JBRUEsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvZ2xvYmFscy5qcz81YzZhIl0sInNvdXJjZXNDb250ZW50IjpbImFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVySW5zdHJ1bWVudGF0aW9uKCkge1xuICAgIGlmIChcIl9FTlRSSUVTXCIgaW4gZ2xvYmFsVGhpcyAmJiBfRU5UUklFUy5taWRkbGV3YXJlX2luc3RydW1lbnRhdGlvbiAmJiBfRU5UUklFUy5taWRkbGV3YXJlX2luc3RydW1lbnRhdGlvbi5yZWdpc3Rlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgX0VOVFJJRVMubWlkZGxld2FyZV9pbnN0cnVtZW50YXRpb24ucmVnaXN0ZXIoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBlcnIubWVzc2FnZSA9IGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIGluc3RydW1lbnRhdGlvbiBob29rOiAke2Vyci5tZXNzYWdlfWA7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9XG59XG5sZXQgcmVnaXN0ZXJJbnN0cnVtZW50YXRpb25Qcm9taXNlID0gbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVJbnN0cnVtZW50YXRpb25SZWdpc3RlcmVkKCkge1xuICAgIGlmICghcmVnaXN0ZXJJbnN0cnVtZW50YXRpb25Qcm9taXNlKSB7XG4gICAgICAgIHJlZ2lzdGVySW5zdHJ1bWVudGF0aW9uUHJvbWlzZSA9IHJlZ2lzdGVySW5zdHJ1bWVudGF0aW9uKCk7XG4gICAgfVxuICAgIHJldHVybiByZWdpc3Rlckluc3RydW1lbnRhdGlvblByb21pc2U7XG59XG5mdW5jdGlvbiBnZXRVbnN1cHBvcnRlZE1vZHVsZUVycm9yTWVzc2FnZShtb2R1bGUpIHtcbiAgICAvLyB3YXJuaW5nOiBpZiB5b3UgY2hhbmdlIHRoZXNlIG1lc3NhZ2VzLCB5b3UgbXVzdCBhZGp1c3QgaG93IHJlYWN0LWRldi1vdmVybGF5J3MgbWlkZGxld2FyZSBkZXRlY3RzIG1vZHVsZXMgbm90IGZvdW5kXG4gICAgcmV0dXJuIGBUaGUgZWRnZSBydW50aW1lIGRvZXMgbm90IHN1cHBvcnQgTm9kZS5qcyAnJHttb2R1bGV9JyBtb2R1bGUuXG5MZWFybiBNb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9ub2RlLW1vZHVsZS1pbi1lZGdlLXJ1bnRpbWVgO1xufVxuZnVuY3Rpb24gX19pbXBvcnRfdW5zdXBwb3J0ZWQobW9kdWxlTmFtZSkge1xuICAgIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KGZ1bmN0aW9uKCkge30sIHtcbiAgICAgICAgZ2V0IChfb2JqLCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gXCJ0aGVuXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZ2V0VW5zdXBwb3J0ZWRNb2R1bGVFcnJvck1lc3NhZ2UobW9kdWxlTmFtZSkpO1xuICAgICAgICB9LFxuICAgICAgICBjb25zdHJ1Y3QgKCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGdldFVuc3VwcG9ydGVkTW9kdWxlRXJyb3JNZXNzYWdlKG1vZHVsZU5hbWUpKTtcbiAgICAgICAgfSxcbiAgICAgICAgYXBwbHkgKF90YXJnZXQsIF90aGlzLCBhcmdzKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcmdzWzBdKHByb3h5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihnZXRVbnN1cHBvcnRlZE1vZHVsZUVycm9yTWVzc2FnZShtb2R1bGVOYW1lKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFByb3h5KHt9LCB7XG4gICAgICAgIGdldDogKCk9PnByb3h5XG4gICAgfSk7XG59XG5mdW5jdGlvbiBlbmhhbmNlR2xvYmFscygpIHtcbiAgICAvLyBUaGUgY29uZGl0aW9uIGlzIHRydWUgd2hlbiB0aGUgXCJwcm9jZXNzXCIgbW9kdWxlIGlzIHByb3ZpZGVkXG4gICAgaWYgKHByb2Nlc3MgIT09IGdsb2JhbC5wcm9jZXNzKSB7XG4gICAgICAgIC8vIHByZWZlciBsb2NhbCBwcm9jZXNzIGJ1dCBnbG9iYWwucHJvY2VzcyBoYXMgY29ycmVjdCBcImVudlwiXG4gICAgICAgIHByb2Nlc3MuZW52ID0gZ2xvYmFsLnByb2Nlc3MuZW52O1xuICAgICAgICBnbG9iYWwucHJvY2VzcyA9IHByb2Nlc3M7XG4gICAgfVxuICAgIC8vIHRvIGFsbG93IGJ1aWxkaW5nIGNvZGUgdGhhdCBpbXBvcnQgYnV0IGRvZXMgbm90IHVzZSBub2RlLmpzIG1vZHVsZXMsXG4gICAgLy8gd2VicGFjayB3aWxsIGV4cGVjdCB0aGlzIGZ1bmN0aW9uIHRvIGV4aXN0IGluIGdsb2JhbCBzY29wZVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCBcIl9faW1wb3J0X3Vuc3VwcG9ydGVkXCIsIHtcbiAgICAgICAgdmFsdWU6IF9faW1wb3J0X3Vuc3VwcG9ydGVkLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZVxuICAgIH0pO1xuICAgIC8vIEVhZ2VybHkgZmlyZSBpbnN0cnVtZW50YXRpb24gaG9vayB0byBtYWtlIHRoZSBzdGFydHVwIGZhc3Rlci5cbiAgICB2b2lkIGVuc3VyZUluc3RydW1lbnRhdGlvblJlZ2lzdGVyZWQoKTtcbn1cbmVuaGFuY2VHbG9iYWxzKCk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdsb2JhbHMuanMubWFwIl0sIm5hbWVzIjpbInJlZ2lzdGVySW5zdHJ1bWVudGF0aW9uIiwiZ2xvYmFsVGhpcyIsIl9FTlRSSUVTIiwibWlkZGxld2FyZV9pbnN0cnVtZW50YXRpb24iLCJyZWdpc3RlciIsImVyciIsIm1lc3NhZ2UiLCJyZWdpc3Rlckluc3RydW1lbnRhdGlvblByb21pc2UiLCJlbnN1cmVJbnN0cnVtZW50YXRpb25SZWdpc3RlcmVkIiwiZ2V0VW5zdXBwb3J0ZWRNb2R1bGVFcnJvck1lc3NhZ2UiLCJtb2R1bGUiLCJfX2ltcG9ydF91bnN1cHBvcnRlZCIsIm1vZHVsZU5hbWUiLCJwcm94eSIsIlByb3h5IiwiZ2V0IiwiX29iaiIsInByb3AiLCJFcnJvciIsImNvbnN0cnVjdCIsImFwcGx5IiwiX3RhcmdldCIsIl90aGlzIiwiYXJncyIsImVuaGFuY2VHbG9iYWxzIiwicHJvY2VzcyIsImdsb2JhbCIsImVudiIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/globals.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/next-url.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/next-url.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NextURL: () => (/* binding */ NextURL)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_i18n_detect_domain_locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js\");\n/* harmony import */ var _shared_lib_router_utils_format_next_pathname_info__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js\");\n/* harmony import */ var _shared_lib_get_hostname__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/get-hostname.js\");\n/* harmony import */ var _shared_lib_router_utils_get_next_pathname_info__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js\");\n\n\n\n\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, \"localhost\"), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, \"localhost\"));\n}\nconst Internal = Symbol(\"NextURLInternal\");\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === \"object\" && \"pathname\" in baseOrOpts || typeof baseOrOpts === \"string\") {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: \"\"\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0,_shared_lib_router_utils_get_next_pathname_info__WEBPACK_IMPORTED_MODULE_3__.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !undefined,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0,_shared_lib_get_hostname__WEBPACK_IMPORTED_MODULE_2__.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0,_shared_lib_i18n_detect_domain_locale__WEBPACK_IMPORTED_MODULE_0__.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? \"\";\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0,_shared_lib_router_utils_format_next_pathname_info__WEBPACK_IMPORTED_MODULE_1__.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? \"\";\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw new TypeError(`The NextURL configuration includes no locale \"${locale}\"`);\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith(\"/\") ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n} //# sourceMappingURL=next-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9uZXh0LXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFnRjtBQUNpQjtBQUNyQztBQUMrQjtBQUMzRixNQUFNSSwyQkFBMkI7QUFDakMsU0FBU0MsU0FBU0MsR0FBRyxFQUFFQyxJQUFJO0lBQ3ZCLE9BQU8sSUFBSUMsSUFBSUMsT0FBT0gsS0FBS0ksT0FBTyxDQUFDTiwwQkFBMEIsY0FBY0csUUFBUUUsT0FBT0YsTUFBTUcsT0FBTyxDQUFDTiwwQkFBMEI7QUFDdEk7QUFDQSxNQUFNTyxXQUFXQyxPQUFPO0FBQ2pCLE1BQU1DO0lBQ1RDLFlBQVlDLEtBQUssRUFBRUMsVUFBVSxFQUFFQyxJQUFJLENBQUM7UUFDaEMsSUFBSVY7UUFDSixJQUFJVztRQUNKLElBQUksT0FBT0YsZUFBZSxZQUFZLGNBQWNBLGNBQWMsT0FBT0EsZUFBZSxVQUFVO1lBQzlGVCxPQUFPUztZQUNQRSxVQUFVRCxRQUFRLENBQUM7UUFDdkIsT0FBTztZQUNIQyxVQUFVRCxRQUFRRCxjQUFjLENBQUM7UUFDckM7UUFDQSxJQUFJLENBQUNMLFNBQVMsR0FBRztZQUNiTCxLQUFLRCxTQUFTVSxPQUFPUixRQUFRVyxRQUFRWCxJQUFJO1lBQ3pDVyxTQUFTQTtZQUNUQyxVQUFVO1FBQ2Q7UUFDQSxJQUFJLENBQUNDLE9BQU87SUFDaEI7SUFDQUEsVUFBVTtRQUNOLElBQUlDLHdDQUF3Q0MsbUNBQW1DQyw2QkFBNkJDLHlDQUF5Q0M7UUFDckosTUFBTUMsT0FBT3ZCLG9HQUFtQkEsQ0FBQyxJQUFJLENBQUNRLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDcUIsUUFBUSxFQUFFO1lBQzFEQyxZQUFZLElBQUksQ0FBQ2pCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDVSxVQUFVO1lBQzdDQyxXQUFXLENBQUNDLFNBQThDO1lBQzFERyxjQUFjLElBQUksQ0FBQ3RCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDZSxZQUFZO1FBQ3JEO1FBQ0EsTUFBTUMsV0FBV2hDLHFFQUFXQSxDQUFDLElBQUksQ0FBQ1MsU0FBUyxDQUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDSyxTQUFTLENBQUNPLE9BQU8sQ0FBQ2lCLE9BQU87UUFDL0UsSUFBSSxDQUFDeEIsU0FBUyxDQUFDeUIsWUFBWSxHQUFHLElBQUksQ0FBQ3pCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDZSxZQUFZLEdBQUcsSUFBSSxDQUFDdEIsU0FBUyxDQUFDTyxPQUFPLENBQUNlLFlBQVksQ0FBQ2pDLGtCQUFrQixDQUFDa0MsWUFBWWxDLHlGQUFrQkEsQ0FBQyxDQUFDc0Isb0NBQW9DLElBQUksQ0FBQ1gsU0FBUyxDQUFDTyxPQUFPLENBQUNVLFVBQVUsS0FBSyxPQUFPLEtBQUssSUFBSSxDQUFDUCx5Q0FBeUNDLGtDQUFrQ2UsSUFBSSxLQUFLLE9BQU8sS0FBSyxJQUFJaEIsdUNBQXVDaUIsT0FBTyxFQUFFSjtRQUMxWSxNQUFNSyxnQkFBZ0IsQ0FBQyxDQUFDaEIsOEJBQThCLElBQUksQ0FBQ1osU0FBUyxDQUFDeUIsWUFBWSxLQUFLLE9BQU8sS0FBSyxJQUFJYiw0QkFBNEJnQixhQUFhLEtBQU0sRUFBQ2QscUNBQXFDLElBQUksQ0FBQ2QsU0FBUyxDQUFDTyxPQUFPLENBQUNVLFVBQVUsS0FBSyxPQUFPLEtBQUssSUFBSSxDQUFDSiwwQ0FBMENDLG1DQUFtQ1ksSUFBSSxLQUFLLE9BQU8sS0FBSyxJQUFJYix3Q0FBd0NlLGFBQWE7UUFDN1ksSUFBSSxDQUFDNUIsU0FBUyxDQUFDTCxHQUFHLENBQUNxQixRQUFRLEdBQUdELEtBQUtDLFFBQVE7UUFDM0MsSUFBSSxDQUFDaEIsU0FBUyxDQUFDNEIsYUFBYSxHQUFHQTtRQUMvQixJQUFJLENBQUM1QixTQUFTLENBQUNRLFFBQVEsR0FBR08sS0FBS1AsUUFBUSxJQUFJO1FBQzNDLElBQUksQ0FBQ1IsU0FBUyxDQUFDNkIsT0FBTyxHQUFHZCxLQUFLYyxPQUFPO1FBQ3JDLElBQUksQ0FBQzdCLFNBQVMsQ0FBQzhCLE1BQU0sR0FBR2YsS0FBS2UsTUFBTSxJQUFJRjtRQUN2QyxJQUFJLENBQUM1QixTQUFTLENBQUMrQixhQUFhLEdBQUdoQixLQUFLZ0IsYUFBYTtJQUNyRDtJQUNBQyxpQkFBaUI7UUFDYixPQUFPMUMsMEdBQXNCQSxDQUFDO1lBQzFCa0IsVUFBVSxJQUFJLENBQUNSLFNBQVMsQ0FBQ1EsUUFBUTtZQUNqQ3FCLFNBQVMsSUFBSSxDQUFDN0IsU0FBUyxDQUFDNkIsT0FBTztZQUMvQkQsZUFBZSxDQUFDLElBQUksQ0FBQzVCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDMEIsV0FBVyxHQUFHLElBQUksQ0FBQ2pDLFNBQVMsQ0FBQzRCLGFBQWEsR0FBR007WUFDcEZKLFFBQVEsSUFBSSxDQUFDOUIsU0FBUyxDQUFDOEIsTUFBTTtZQUM3QmQsVUFBVSxJQUFJLENBQUNoQixTQUFTLENBQUNMLEdBQUcsQ0FBQ3FCLFFBQVE7WUFDckNlLGVBQWUsSUFBSSxDQUFDL0IsU0FBUyxDQUFDK0IsYUFBYTtRQUMvQztJQUNKO0lBQ0FJLGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQ25DLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDeUMsTUFBTTtJQUNwQztJQUNBLElBQUlQLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQzdCLFNBQVMsQ0FBQzZCLE9BQU87SUFDakM7SUFDQSxJQUFJQSxRQUFRQSxPQUFPLEVBQUU7UUFDakIsSUFBSSxDQUFDN0IsU0FBUyxDQUFDNkIsT0FBTyxHQUFHQTtJQUM3QjtJQUNBLElBQUlDLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQzlCLFNBQVMsQ0FBQzhCLE1BQU0sSUFBSTtJQUNwQztJQUNBLElBQUlBLE9BQU9BLE1BQU0sRUFBRTtRQUNmLElBQUlwQix3Q0FBd0NDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUNYLFNBQVMsQ0FBQzhCLE1BQU0sSUFBSSxDQUFFLEVBQUNuQixvQ0FBb0MsSUFBSSxDQUFDWCxTQUFTLENBQUNPLE9BQU8sQ0FBQ1UsVUFBVSxLQUFLLE9BQU8sS0FBSyxJQUFJLENBQUNQLHlDQUF5Q0Msa0NBQWtDZSxJQUFJLEtBQUssT0FBTyxLQUFLLElBQUloQix1Q0FBdUMyQixPQUFPLENBQUNDLFFBQVEsQ0FBQ1IsT0FBTSxHQUFJO1lBQzlSLE1BQU0sSUFBSVMsVUFBVSxDQUFDLDhDQUE4QyxFQUFFVCxPQUFPLENBQUMsQ0FBQztRQUNsRjtRQUNBLElBQUksQ0FBQzlCLFNBQVMsQ0FBQzhCLE1BQU0sR0FBR0E7SUFDNUI7SUFDQSxJQUFJRixnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUM1QixTQUFTLENBQUM0QixhQUFhO0lBQ3ZDO0lBQ0EsSUFBSUgsZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDekIsU0FBUyxDQUFDeUIsWUFBWTtJQUN0QztJQUNBLElBQUllLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQ3hDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDNkMsWUFBWTtJQUMxQztJQUNBLElBQUlDLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQ3pDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDOEMsSUFBSTtJQUNsQztJQUNBLElBQUlBLEtBQUtDLEtBQUssRUFBRTtRQUNaLElBQUksQ0FBQzFDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDOEMsSUFBSSxHQUFHQztJQUM5QjtJQUNBLElBQUluQixXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUN2QixTQUFTLENBQUNMLEdBQUcsQ0FBQzRCLFFBQVE7SUFDdEM7SUFDQSxJQUFJQSxTQUFTbUIsS0FBSyxFQUFFO1FBQ2hCLElBQUksQ0FBQzFDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDNEIsUUFBUSxHQUFHbUI7SUFDbEM7SUFDQSxJQUFJQyxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMzQyxTQUFTLENBQUNMLEdBQUcsQ0FBQ2dELElBQUk7SUFDbEM7SUFDQSxJQUFJQSxLQUFLRCxLQUFLLEVBQUU7UUFDWixJQUFJLENBQUMxQyxTQUFTLENBQUNMLEdBQUcsQ0FBQ2dELElBQUksR0FBR0Q7SUFDOUI7SUFDQSxJQUFJRSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUM1QyxTQUFTLENBQUNMLEdBQUcsQ0FBQ2lELFFBQVE7SUFDdEM7SUFDQSxJQUFJQSxTQUFTRixLQUFLLEVBQUU7UUFDaEIsSUFBSSxDQUFDMUMsU0FBUyxDQUFDTCxHQUFHLENBQUNpRCxRQUFRLEdBQUdGO0lBQ2xDO0lBQ0EsSUFBSUcsT0FBTztRQUNQLE1BQU03QixXQUFXLElBQUksQ0FBQ2dCLGNBQWM7UUFDcEMsTUFBTUksU0FBUyxJQUFJLENBQUNELFlBQVk7UUFDaEMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDUyxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQ0gsSUFBSSxDQUFDLEVBQUV6QixTQUFTLEVBQUVvQixPQUFPLEVBQUUsSUFBSSxDQUFDVSxJQUFJLENBQUMsQ0FBQztJQUMzRTtJQUNBLElBQUlELEtBQUtsRCxHQUFHLEVBQUU7UUFDVixJQUFJLENBQUNLLFNBQVMsQ0FBQ0wsR0FBRyxHQUFHRCxTQUFTQztRQUM5QixJQUFJLENBQUNjLE9BQU87SUFDaEI7SUFDQSxJQUFJc0MsU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDL0MsU0FBUyxDQUFDTCxHQUFHLENBQUNvRCxNQUFNO0lBQ3BDO0lBQ0EsSUFBSS9CLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQ2hCLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDcUIsUUFBUTtJQUN0QztJQUNBLElBQUlBLFNBQVMwQixLQUFLLEVBQUU7UUFDaEIsSUFBSSxDQUFDMUMsU0FBUyxDQUFDTCxHQUFHLENBQUNxQixRQUFRLEdBQUcwQjtJQUNsQztJQUNBLElBQUlJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQzlDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDbUQsSUFBSTtJQUNsQztJQUNBLElBQUlBLEtBQUtKLEtBQUssRUFBRTtRQUNaLElBQUksQ0FBQzFDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDbUQsSUFBSSxHQUFHSjtJQUM5QjtJQUNBLElBQUlOLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQ3BDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDeUMsTUFBTTtJQUNwQztJQUNBLElBQUlBLE9BQU9NLEtBQUssRUFBRTtRQUNkLElBQUksQ0FBQzFDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDeUMsTUFBTSxHQUFHTTtJQUNoQztJQUNBLElBQUlNLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQ2hELFNBQVMsQ0FBQ0wsR0FBRyxDQUFDcUQsUUFBUTtJQUN0QztJQUNBLElBQUlBLFNBQVNOLEtBQUssRUFBRTtRQUNoQixJQUFJLENBQUMxQyxTQUFTLENBQUNMLEdBQUcsQ0FBQ3FELFFBQVEsR0FBR047SUFDbEM7SUFDQSxJQUFJTyxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUNqRCxTQUFTLENBQUNMLEdBQUcsQ0FBQ3NELFFBQVE7SUFDdEM7SUFDQSxJQUFJQSxTQUFTUCxLQUFLLEVBQUU7UUFDaEIsSUFBSSxDQUFDMUMsU0FBUyxDQUFDTCxHQUFHLENBQUNzRCxRQUFRLEdBQUdQO0lBQ2xDO0lBQ0EsSUFBSWxDLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQ1IsU0FBUyxDQUFDUSxRQUFRO0lBQ2xDO0lBQ0EsSUFBSUEsU0FBU2tDLEtBQUssRUFBRTtRQUNoQixJQUFJLENBQUMxQyxTQUFTLENBQUNRLFFBQVEsR0FBR2tDLE1BQU1RLFVBQVUsQ0FBQyxPQUFPUixRQUFRLENBQUMsQ0FBQyxFQUFFQSxNQUFNLENBQUM7SUFDekU7SUFDQVMsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDTixJQUFJO0lBQ3BCO0lBQ0FPLFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQ1AsSUFBSTtJQUNwQjtJQUNBLENBQUM1QyxPQUFPb0QsR0FBRyxDQUFDLCtCQUErQixHQUFHO1FBQzFDLE9BQU87WUFDSFIsTUFBTSxJQUFJLENBQUNBLElBQUk7WUFDZkUsUUFBUSxJQUFJLENBQUNBLE1BQU07WUFDbkJILFVBQVUsSUFBSSxDQUFDQSxRQUFRO1lBQ3ZCSyxVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2QkQsVUFBVSxJQUFJLENBQUNBLFFBQVE7WUFDdkJQLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2ZsQixVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2Qm9CLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2YzQixVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2Qm9CLFFBQVEsSUFBSSxDQUFDQSxNQUFNO1lBQ25CSSxjQUFjLElBQUksQ0FBQ0EsWUFBWTtZQUMvQk0sTUFBTSxJQUFJLENBQUNBLElBQUk7UUFDbkI7SUFDSjtJQUNBUSxRQUFRO1FBQ0osT0FBTyxJQUFJcEQsUUFBUUosT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDRSxTQUFTLENBQUNPLE9BQU87SUFDM0Q7QUFDSixFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL25leHQtdXJsLmpzPzZhNTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGV0ZWN0RG9tYWluTG9jYWxlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZVwiO1xuaW1wb3J0IHsgZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvXCI7XG5pbXBvcnQgeyBnZXRIb3N0bmFtZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2dldC1ob3N0bmFtZVwiO1xuaW1wb3J0IHsgZ2V0TmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbmV4dC1wYXRobmFtZS1pbmZvXCI7XG5jb25zdCBSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUgPSAvKD8hXmh0dHBzPzpcXC9cXC8pKDEyNyg/OlxcLig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykpezN9fFxcWzo6MVxcXXxsb2NhbGhvc3QpLztcbmZ1bmN0aW9uIHBhcnNlVVJMKHVybCwgYmFzZSkge1xuICAgIHJldHVybiBuZXcgVVJMKFN0cmluZyh1cmwpLnJlcGxhY2UoUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FLCBcImxvY2FsaG9zdFwiKSwgYmFzZSAmJiBTdHJpbmcoYmFzZSkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsIFwibG9jYWxob3N0XCIpKTtcbn1cbmNvbnN0IEludGVybmFsID0gU3ltYm9sKFwiTmV4dFVSTEludGVybmFsXCIpO1xuZXhwb3J0IGNsYXNzIE5leHRVUkwge1xuICAgIGNvbnN0cnVjdG9yKGlucHV0LCBiYXNlT3JPcHRzLCBvcHRzKXtcbiAgICAgICAgbGV0IGJhc2U7XG4gICAgICAgIGxldCBvcHRpb25zO1xuICAgICAgICBpZiAodHlwZW9mIGJhc2VPck9wdHMgPT09IFwib2JqZWN0XCIgJiYgXCJwYXRobmFtZVwiIGluIGJhc2VPck9wdHMgfHwgdHlwZW9mIGJhc2VPck9wdHMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGJhc2UgPSBiYXNlT3JPcHRzO1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdHMgfHwge307XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0cyB8fCBiYXNlT3JPcHRzIHx8IHt9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdID0ge1xuICAgICAgICAgICAgdXJsOiBwYXJzZVVSTChpbnB1dCwgYmFzZSA/PyBvcHRpb25zLmJhc2UpLFxuICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgICAgIGJhc2VQYXRoOiBcIlwiXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYW5hbHl6ZSgpO1xuICAgIH1cbiAgICBhbmFseXplKCkge1xuICAgICAgICB2YXIgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZywgX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEsIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzE7XG4gICAgICAgIGNvbnN0IGluZm8gPSBnZXROZXh0UGF0aG5hbWVJbmZvKHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSwge1xuICAgICAgICAgICAgbmV4dENvbmZpZzogdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnLFxuICAgICAgICAgICAgcGFyc2VEYXRhOiAhcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSxcbiAgICAgICAgICAgIGkxOG5Qcm92aWRlcjogdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhvc3RuYW1lID0gZ2V0SG9zdG5hbWUodGhpc1tJbnRlcm5hbF0udXJsLCB0aGlzW0ludGVybmFsXS5vcHRpb25zLmhlYWRlcnMpO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGUgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlciA/IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyLmRldGVjdERvbWFpbkxvY2FsZShob3N0bmFtZSkgOiBkZXRlY3REb21haW5Mb2NhbGUoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZyA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4uZG9tYWlucywgaG9zdG5hbWUpO1xuICAgICAgICBjb25zdCBkZWZhdWx0TG9jYWxlID0gKChfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUgPSB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGUpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUuZGVmYXVsdExvY2FsZSkgfHwgKChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMSA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzEuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMS5kZWZhdWx0TG9jYWxlKTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lID0gaW5mby5wYXRobmFtZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoID0gaW5mby5iYXNlUGF0aCA/PyBcIlwiO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5idWlsZElkID0gaW5mby5idWlsZElkO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5sb2NhbGUgPSBpbmZvLmxvY2FsZSA/PyBkZWZhdWx0TG9jYWxlO1xuICAgICAgICB0aGlzW0ludGVybmFsXS50cmFpbGluZ1NsYXNoID0gaW5mby50cmFpbGluZ1NsYXNoO1xuICAgIH1cbiAgICBmb3JtYXRQYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdE5leHRQYXRobmFtZUluZm8oe1xuICAgICAgICAgICAgYmFzZVBhdGg6IHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoLFxuICAgICAgICAgICAgYnVpbGRJZDogdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCxcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6ICF0aGlzW0ludGVybmFsXS5vcHRpb25zLmZvcmNlTG9jYWxlID8gdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxvY2FsZTogdGhpc1tJbnRlcm5hbF0ubG9jYWxlLFxuICAgICAgICAgICAgcGF0aG5hbWU6IHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSxcbiAgICAgICAgICAgIHRyYWlsaW5nU2xhc2g6IHRoaXNbSW50ZXJuYWxdLnRyYWlsaW5nU2xhc2hcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZvcm1hdFNlYXJjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2g7XG4gICAgfVxuICAgIGdldCBidWlsZElkKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uYnVpbGRJZDtcbiAgICB9XG4gICAgc2V0IGJ1aWxkSWQoYnVpbGRJZCkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS5idWlsZElkID0gYnVpbGRJZDtcbiAgICB9XG4gICAgZ2V0IGxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmxvY2FsZSA/PyBcIlwiO1xuICAgIH1cbiAgICBzZXQgbG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB2YXIgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZztcbiAgICAgICAgaWYgKCF0aGlzW0ludGVybmFsXS5sb2NhbGUgfHwgISgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5sb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUaGUgTmV4dFVSTCBjb25maWd1cmF0aW9uIGluY2x1ZGVzIG5vIGxvY2FsZSBcIiR7bG9jYWxlfVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpc1tJbnRlcm5hbF0ubG9jYWxlID0gbG9jYWxlO1xuICAgIH1cbiAgICBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGU7XG4gICAgfVxuICAgIGdldCBkb21haW5Mb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGU7XG4gICAgfVxuICAgIGdldCBzZWFyY2hQYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBnZXQgaG9zdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0O1xuICAgIH1cbiAgICBzZXQgaG9zdCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaG9zdCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaG9zdG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaG9zdG5hbWU7XG4gICAgfVxuICAgIHNldCBob3N0bmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaG9zdG5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHBvcnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucG9ydDtcbiAgICB9XG4gICAgc2V0IHBvcnQodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBvcnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHByb3RvY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnByb3RvY29sO1xuICAgIH1cbiAgICBzZXQgcHJvdG9jb2wodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnByb3RvY29sID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBocmVmKCkge1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHRoaXMuZm9ybWF0UGF0aG5hbWUoKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gdGhpcy5mb3JtYXRTZWFyY2goKTtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMucHJvdG9jb2x9Ly8ke3RoaXMuaG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7dGhpcy5oYXNofWA7XG4gICAgfVxuICAgIHNldCBocmVmKHVybCkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwgPSBwYXJzZVVSTCh1cmwpO1xuICAgICAgICB0aGlzLmFuYWx5emUoKTtcbiAgICB9XG4gICAgZ2V0IG9yaWdpbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5vcmlnaW47XG4gICAgfVxuICAgIGdldCBwYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZTtcbiAgICB9XG4gICAgc2V0IHBhdGhuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaGFzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5oYXNoO1xuICAgIH1cbiAgICBzZXQgaGFzaCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaGFzaCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaDtcbiAgICB9XG4gICAgc2V0IHNlYXJjaCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwYXNzd29yZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wYXNzd29yZDtcbiAgICB9XG4gICAgc2V0IHBhc3N3b3JkKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXNzd29yZCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgdXNlcm5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwudXNlcm5hbWU7XG4gICAgfVxuICAgIHNldCB1c2VybmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwudXNlcm5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGJhc2VQYXRoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGg7XG4gICAgfVxuICAgIHNldCBiYXNlUGF0aCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCA9IHZhbHVlLnN0YXJ0c1dpdGgoXCIvXCIpID8gdmFsdWUgOiBgLyR7dmFsdWV9YDtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhyZWY7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHJlZjtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaHJlZjogdGhpcy5ocmVmLFxuICAgICAgICAgICAgb3JpZ2luOiB0aGlzLm9yaWdpbixcbiAgICAgICAgICAgIHByb3RvY29sOiB0aGlzLnByb3RvY29sLFxuICAgICAgICAgICAgdXNlcm5hbWU6IHRoaXMudXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcbiAgICAgICAgICAgIGhvc3Q6IHRoaXMuaG9zdCxcbiAgICAgICAgICAgIGhvc3RuYW1lOiB0aGlzLmhvc3RuYW1lLFxuICAgICAgICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgICAgICAgcGF0aG5hbWU6IHRoaXMucGF0aG5hbWUsXG4gICAgICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoLFxuICAgICAgICAgICAgc2VhcmNoUGFyYW1zOiB0aGlzLnNlYXJjaFBhcmFtcyxcbiAgICAgICAgICAgIGhhc2g6IHRoaXMuaGFzaFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0VVJMKFN0cmluZyh0aGlzKSwgdGhpc1tJbnRlcm5hbF0ub3B0aW9ucyk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uZXh0LXVybC5qcy5tYXAiXSwibmFtZXMiOlsiZGV0ZWN0RG9tYWluTG9jYWxlIiwiZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyIsImdldEhvc3RuYW1lIiwiZ2V0TmV4dFBhdGhuYW1lSW5mbyIsIlJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSIsInBhcnNlVVJMIiwidXJsIiwiYmFzZSIsIlVSTCIsIlN0cmluZyIsInJlcGxhY2UiLCJJbnRlcm5hbCIsIlN5bWJvbCIsIk5leHRVUkwiLCJjb25zdHJ1Y3RvciIsImlucHV0IiwiYmFzZU9yT3B0cyIsIm9wdHMiLCJvcHRpb25zIiwiYmFzZVBhdGgiLCJhbmFseXplIiwiX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4iLCJfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWciLCJfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUiLCJfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEiLCJfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxIiwiaW5mbyIsInBhdGhuYW1lIiwibmV4dENvbmZpZyIsInBhcnNlRGF0YSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFIiwiaTE4blByb3ZpZGVyIiwiaG9zdG5hbWUiLCJoZWFkZXJzIiwiZG9tYWluTG9jYWxlIiwiaTE4biIsImRvbWFpbnMiLCJkZWZhdWx0TG9jYWxlIiwiYnVpbGRJZCIsImxvY2FsZSIsInRyYWlsaW5nU2xhc2giLCJmb3JtYXRQYXRobmFtZSIsImZvcmNlTG9jYWxlIiwidW5kZWZpbmVkIiwiZm9ybWF0U2VhcmNoIiwic2VhcmNoIiwibG9jYWxlcyIsImluY2x1ZGVzIiwiVHlwZUVycm9yIiwic2VhcmNoUGFyYW1zIiwiaG9zdCIsInZhbHVlIiwicG9ydCIsInByb3RvY29sIiwiaHJlZiIsImhhc2giLCJvcmlnaW4iLCJwYXNzd29yZCIsInVzZXJuYW1lIiwic3RhcnRzV2l0aCIsInRvU3RyaW5nIiwidG9KU09OIiwiZm9yIiwiY2xvbmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/next-url.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeadersAdapter: () => (/* binding */ HeadersAdapter),\n/* harmony export */ ReadonlyHeadersError: () => (/* binding */ ReadonlyHeadersError)\n/* harmony export */ });\n/* harmony import */ var _reflect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reflect */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\");\n\n/**\n * @internal\n */ class ReadonlyHeadersError extends Error {\n constructor(){\n super(\"Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers\");\n }\n static callable() {\n throw new ReadonlyHeadersError();\n }\n}\nclass HeadersAdapter extends Headers {\n constructor(headers){\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super();\n this.headers = new Proxy(headers, {\n get (target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === \"symbol\") {\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, prop, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return undefined.\n if (typeof original === \"undefined\") return;\n // If the original casing exists, return the value.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === \"symbol\") {\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.set(target, prop, value, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, use the prop as the key.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === \"symbol\") return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.has(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return false.\n if (typeof original === \"undefined\") return false;\n // If the original casing exists, return true.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === \"symbol\") return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.deleteProperty(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return true.\n if (typeof original === \"undefined\") return true;\n // If the original casing exists, delete the property.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.deleteProperty(target, original);\n }\n });\n }\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */ static seal(headers) {\n return new Proxy(headers, {\n get (target, prop, receiver) {\n switch(prop){\n case \"append\":\n case \"delete\":\n case \"set\":\n return ReadonlyHeadersError.callable;\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */ merge(value) {\n if (Array.isArray(value)) return value.join(\", \");\n return value;\n }\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */ static from(headers) {\n if (headers instanceof Headers) return headers;\n return new HeadersAdapter(headers);\n }\n append(name, value) {\n const existing = this.headers[name];\n if (typeof existing === \"string\") {\n this.headers[name] = [\n existing,\n value\n ];\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n this.headers[name] = value;\n }\n }\n delete(name) {\n delete this.headers[name];\n }\n get(name) {\n const value = this.headers[name];\n if (typeof value !== \"undefined\") return this.merge(value);\n return null;\n }\n has(name) {\n return typeof this.headers[name] !== \"undefined\";\n }\n set(name, value) {\n this.headers[name] = value;\n }\n forEach(callbackfn, thisArg) {\n for (const [name, value] of this.entries()){\n callbackfn.call(thisArg, value, name, this);\n }\n }\n *entries() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name);\n yield [\n name,\n value\n ];\n }\n }\n *keys() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n yield name;\n }\n }\n *values() {\n for (const key of Object.keys(this.headers)){\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key);\n yield value;\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n} //# sourceMappingURL=headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEyQztBQUMzQzs7Q0FFQyxHQUFVLE1BQU1DLDZCQUE2QkM7SUFDMUNDLGFBQWE7UUFDVCxLQUFLLENBQUM7SUFDVjtJQUNBLE9BQU9DLFdBQVc7UUFDZCxNQUFNLElBQUlIO0lBQ2Q7QUFDSjtBQUNPLE1BQU1JLHVCQUF1QkM7SUFDaENILFlBQVlJLE9BQU8sQ0FBQztRQUNoQiwyRUFBMkU7UUFDM0UsMkVBQTJFO1FBQzNFLEtBQUs7UUFDTCxJQUFJLENBQUNBLE9BQU8sR0FBRyxJQUFJQyxNQUFNRCxTQUFTO1lBQzlCRSxLQUFLQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUTtnQkFDdkIsc0VBQXNFO2dCQUN0RSxzRUFBc0U7Z0JBQ3RFLGNBQWM7Z0JBQ2QsSUFBSSxPQUFPRCxTQUFTLFVBQVU7b0JBQzFCLE9BQU9YLG9EQUFjQSxDQUFDUyxHQUFHLENBQUNDLFFBQVFDLE1BQU1DO2dCQUM1QztnQkFDQSxNQUFNQyxhQUFhRixLQUFLRyxXQUFXO2dCQUNuQyx3RUFBd0U7Z0JBQ3hFLHFFQUFxRTtnQkFDckUsa0JBQWtCO2dCQUNsQixNQUFNQyxXQUFXQyxPQUFPQyxJQUFJLENBQUNWLFNBQVNXLElBQUksQ0FBQyxDQUFDQyxJQUFJQSxFQUFFTCxXQUFXLE9BQU9EO2dCQUNwRSwwREFBMEQ7Z0JBQzFELElBQUksT0FBT0UsYUFBYSxhQUFhO2dCQUNyQyxtREFBbUQ7Z0JBQ25ELE9BQU9mLG9EQUFjQSxDQUFDUyxHQUFHLENBQUNDLFFBQVFLLFVBQVVIO1lBQ2hEO1lBQ0FRLEtBQUtWLE1BQU0sRUFBRUMsSUFBSSxFQUFFVSxLQUFLLEVBQUVULFFBQVE7Z0JBQzlCLElBQUksT0FBT0QsU0FBUyxVQUFVO29CQUMxQixPQUFPWCxvREFBY0EsQ0FBQ29CLEdBQUcsQ0FB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O1lBQzVCLE1BQU1jLFFBQVEsSUFBSSxDQUFDWixHQUFHLENBQUMrQjtZQUN2QixNQUFNbkI7UUFDVjtJQUNKO0lBQ0EsQ0FBQ3FCLE9BQU9DLFFBQVEsQ0FBQyxHQUFHO1FBQ2hCLE9BQU8sSUFBSSxDQUFDTCxPQUFPO0lBQ3ZCO0FBQ0osRUFFQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzLmpzPzFkYTgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmbGVjdEFkYXB0ZXIgfSBmcm9tIFwiLi9yZWZsZWN0XCI7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjbGFzcyBSZWFkb25seUhlYWRlcnNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihcIkhlYWRlcnMgY2Fubm90IGJlIG1vZGlmaWVkLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9oZWFkZXJzXCIpO1xuICAgIH1cbiAgICBzdGF0aWMgY2FsbGFibGUoKSB7XG4gICAgICAgIHRocm93IG5ldyBSZWFkb25seUhlYWRlcnNFcnJvcigpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBIZWFkZXJzQWRhcHRlciBleHRlbmRzIEhlYWRlcnMge1xuICAgIGNvbnN0cnVjdG9yKGhlYWRlcnMpe1xuICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IG92ZXJyaWRkZW4gdGhlIG1ldGhvZHMgdGhhdCB3b3VsZCBiZSBjYWxsZWQsIHNvIHdlJ3JlIGp1c3RcbiAgICAgICAgLy8gY2FsbGluZyB0aGUgc3VwZXIgY29uc3RydWN0b3IgdG8gZW5zdXJlIHRoYXQgdGhlIGluc3RhbmNlb2YgY2hlY2sgd29ya3MuXG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IG5ldyBQcm94eShoZWFkZXJzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoaXMgaXMganVzdCBhbiBvYmplY3QsIHdlIGV4cGVjdCB0aGF0IGFsbCBcImdldFwiIG9wZXJhdGlvbnNcbiAgICAgICAgICAgICAgICAvLyBhcmUgZm9yIHByb3BlcnRpZXMuIElmIGl0J3MgYSBcImdldFwiIGZvciBhIHN5bWJvbCwgd2UnbGwganVzdCByZXR1cm5cbiAgICAgICAgICAgICAgICAvLyB0aGUgc3ltYm9sLlxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzeW1ib2xcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBsb3dlcmNhc2VkID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIC8vIExldCdzIGZpbmQgdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUga2V5LiBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpc1xuICAgICAgICAgICAgICAgIC8vIG5vIG1peGVkIGNhc2Uga2V5cyAoZS5nLiBcIkNvbnRlbnQtVHlwZVwiIGFuZCBcImNvbnRlbnQtdHlwZVwiKSBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdC5cbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKG8pPT5vLnRvTG93ZXJDYXNlKCkgPT09IGxvd2VyY2FzZWQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZG9lc24ndCBleGlzdCwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBleGlzdHMsIHJldHVybiB0aGUgdmFsdWUuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIG9yaWdpbmFsLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzeW1ib2xcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbG93ZXJjYXNlZCA9IHByb3AudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAvLyBMZXQncyBmaW5kIHRoZSBvcmlnaW5hbCBjYXNpbmcgb2YgdGhlIGtleS4gVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAvLyBubyBtaXhlZCBjYXNlIGtleXMgKGUuZy4gXCJDb250ZW50LVR5cGVcIiBhbmQgXCJjb250ZW50LXR5cGVcIikgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaGVhZGVycyBvYmplY3QuXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBPYmplY3Qua2V5cyhoZWFkZXJzKS5maW5kKChvKT0+by50b0xvd2VyQ2FzZSgpID09PSBsb3dlcmNhc2VkKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGRvZXNuJ3QgZXhpc3QsIHVzZSB0aGUgcHJvcCBhcyB0aGUga2V5LlxuICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlci5zZXQodGFyZ2V0LCBvcmlnaW5hbCA/PyBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSBcInN5bWJvbFwiKSByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG93ZXJjYXNlZCA9IHByb3AudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAvLyBMZXQncyBmaW5kIHRoZSBvcmlnaW5hbCBjYXNpbmcgb2YgdGhlIGtleS4gVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAvLyBubyBtaXhlZCBjYXNlIGtleXMgKGUuZy4gXCJDb250ZW50LVR5cGVcIiBhbmQgXCJjb250ZW50LXR5cGVcIikgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaGVhZGVycyBvYmplY3QuXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBPYmplY3Qua2V5cyhoZWFkZXJzKS5maW5kKChvKT0+by50b0xvd2VyQ2FzZSgpID09PSBsb3dlcmNhc2VkKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGRvZXNuJ3QgZXhpc3QsIHJldHVybiBmYWxzZS5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBleGlzdHMsIHJldHVybiB0cnVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlci5oYXModGFyZ2V0LCBvcmlnaW5hbCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVsZXRlUHJvcGVydHkgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzeW1ib2xcIikgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG93ZXJjYXNlZCA9IHByb3AudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAvLyBMZXQncyBmaW5kIHRoZSBvcmlnaW5hbCBjYXNpbmcgb2YgdGhlIGtleS4gVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAvLyBubyBtaXhlZCBjYXNlIGtleXMgKGUuZy4gXCJDb250ZW50LVR5cGVcIiBhbmQgXCJjb250ZW50LXR5cGVcIikgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaGVhZGVycyBvYmplY3QuXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBPYmplY3Qua2V5cyhoZWFkZXJzKS5maW5kKChvKT0+by50b0xvd2VyQ2FzZSgpID09PSBsb3dlcmNhc2VkKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGRvZXNuJ3QgZXhpc3QsIHJldHVybiB0cnVlLlxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWwgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCBkZWxldGUgdGhlIHByb3BlcnR5LlxuICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlci5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIG9yaWdpbmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBTZWFscyBhIEhlYWRlcnMgaW5zdGFuY2UgdG8gcHJldmVudCBtb2RpZmljYXRpb24gYnkgdGhyb3dpbmcgYW4gZXJyb3Igd2hlblxuICAgKiBhbnkgbXV0YXRpbmcgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICovIHN0YXRpYyBzZWFsKGhlYWRlcnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm94eShoZWFkZXJzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJhcHBlbmRcIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImRlbGV0ZVwiOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic2V0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVhZG9ubHlIZWFkZXJzRXJyb3IuY2FsbGFibGU7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBNZXJnZXMgYSBoZWFkZXIgdmFsdWUgaW50byBhIHN0cmluZy4gVGhpcyBzdG9yZXMgbXVsdGlwbGUgdmFsdWVzIGFzIGFuXG4gICAqIGFycmF5LCBzbyB3ZSBuZWVkIHRvIG1lcmdlIHRoZW0gaW50byBhIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGEgaGVhZGVyIHZhbHVlXG4gICAqIEByZXR1cm5zIGEgbWVyZ2VkIGhlYWRlciB2YWx1ZSAoYSBzdHJpbmcpXG4gICAqLyBtZXJnZSh2YWx1ZSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZS5qb2luKFwiLCBcIik7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENyZWF0ZXMgYSBIZWFkZXJzIGluc3RhbmNlIGZyb20gYSBwbGFpbiBvYmplY3Qgb3IgYSBIZWFkZXJzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gaGVhZGVycyBhIHBsYWluIG9iamVjdCBvciBhIEhlYWRlcnMgaW5zdGFuY2VcbiAgICogQHJldHVybnMgYSBoZWFkZXJzIGluc3RhbmNlXG4gICAqLyBzdGF0aWMgZnJvbShoZWFkZXJzKSB7XG4gICAgICAgIGlmIChoZWFkZXJzIGluc3RhbmNlb2YgSGVhZGVycykgcmV0dXJuIGhlYWRlcnM7XG4gICAgICAgIHJldHVybiBuZXcgSGVhZGVyc0FkYXB0ZXIoaGVhZGVycyk7XG4gICAgfVxuICAgIGFwcGVuZChuYW1lLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuaGVhZGVyc1tuYW1lXTtcbiAgICAgICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzW25hbWVdID0gW1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpKSB7XG4gICAgICAgICAgICBleGlzdGluZy5wdXNoKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRlbGV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmhlYWRlcnNbbmFtZV07XG4gICAgfVxuICAgIGdldChuYW1lKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5oZWFkZXJzW25hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gdGhpcy5tZXJnZSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBoYXMobmFtZSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuaGVhZGVyc1tuYW1lXSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICB9XG4gICAgc2V0KG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cbiAgICBmb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIHRoaXMuZW50cmllcygpKXtcbiAgICAgICAgICAgIGNhbGxiYWNrZm4uY2FsbCh0aGlzQXJnLCB2YWx1ZSwgbmFtZSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmVudHJpZXMoKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuaGVhZGVycykpe1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgLy8gV2UgYXNzZXJ0IGhlcmUgdGhhdCB0aGlzIGlzIGEgc3RyaW5nIGJlY2F1c2Ugd2UgZ290IGl0IGZyb20gdGhlXG4gICAgICAgICAgICAvLyBPYmplY3Qua2V5cygpIGNhbGwgYWJvdmUuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0KG5hbWUpO1xuICAgICAgICAgICAgeWllbGQgW1xuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmtleXMoKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuaGVhZGVycykpe1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgeWllbGQgbmFtZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAqdmFsdWVzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIC8vIFdlIGFzc2VydCBoZXJlIHRoYXQgdGhpcyBpcyBhIHN0cmluZyBiZWNhdXNlIHdlIGdvdCBpdCBmcm9tIHRoZVxuICAgICAgICAgICAgLy8gT2JqZWN0LmtleXMoKSBjYWxsIGFib3ZlLlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChrZXkpO1xuICAgICAgICAgICAgeWllbGQgdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJpZXMoKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWRlcnMuanMubWFwIl0sIm5hbWVzIjpbIlJlZmxlY3RBZGFwdGVyIiwiUmVhZG9ubHlIZWFkZXJzRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwiY2FsbGFibGUiLCJIZWFkZXJzQWRhcHRlciIsIkhlYWRlcnMiLCJoZWFkZXJzIiwiUHJveHkiLCJnZXQiLCJ0YXJnZXQiLCJwcm9wIiwicmVjZWl2ZXIiLCJsb3dlcmNhc2VkIiwidG9Mb3dlckNhc2UiLCJvcmlnaW5hbCIsIk9iamVjdCIsImtleXMiLCJmaW5kIiwibyIsInNldCIsInZhbHVlIiwiaGFzIiwiZGVsZXRlUHJvcGVydHkiLCJzZWFsIiwibWVyZ2UiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwiZnJvbSIsImFwcGVuZCIsIm5hbWUiLCJleGlzdGluZyIsInB1c2giLCJkZWxldGUiLCJmb3JFYWNoIiwiY2FsbGJhY2tmbiIsInRoaXNBcmciLCJlbnRyaWVzIiwiY2FsbCIsImtleSIsInZhbHVlcyIsIlN5bWJvbCIsIml0ZXJhdG9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReflectAdapter: () => (/* binding */ ReflectAdapter)\n/* harmony export */ });\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n} //# sourceMappingURL=reflect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQTtJQUNULE9BQU9DLElBQUlDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUU7UUFDL0IsTUFBTUMsUUFBUUMsUUFBUUwsR0FBRyxDQUFDQyxRQUFRQyxNQUFNQztRQUN4QyxJQUFJLE9BQU9DLFVBQVUsWUFBWTtZQUM3QixPQUFPQSxNQUFNRSxJQUFJLENBQUNMO1FBQ3RCO1FBQ0EsT0FBT0c7SUFDWDtJQUNBLE9BQU9HLElBQUlOLE1BQU0sRUFBRUMsSUFBSSxFQUFFRSxLQUFLLEVBQUVELFFBQVEsRUFBRTtRQUN0QyxPQUFPRSxRQUFRRSxHQUFHLENBQUNOLFFBQVFDLE1BQU1FLE9BQU9EO0lBQzVDO0lBQ0EsT0FBT0ssSUFBSVAsTUFBTSxFQUFFQyxJQUFJLEVBQUU7UUFDckIsT0FBT0csUUFBUUcsR0FBRyxDQUFDUCxRQUFRQztJQUMvQjtJQUNBLE9BQU9PLGVBQWVSLE1BQU0sRUFBRUMsSUFBSSxFQUFFO1FBQ2hDLE9BQU9HLFFBQVFJLGNBQWMsQ0FBQ1IsUUFBUUM7SUFDMUM7QUFDSixFQUVBLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3QuanM/MjA2NyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUmVmbGVjdEFkYXB0ZXIge1xuICAgIHN0YXRpYyBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5iaW5kKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBzdGF0aWMgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgfVxuICAgIHN0YXRpYyBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgIH1cbiAgICBzdGF0aWMgZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWZsZWN0LmpzLm1hcCJdLCJuYW1lcyI6WyJSZWZsZWN0QWRhcHRlciIsImdldCIsInRhcmdldCIsInByb3AiLCJyZWNlaXZlciIsInZhbHVlIiwiUmVmbGVjdCIsImJpbmQiLCJzZXQiLCJoYXMiLCJkZWxldGVQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MutableRequestCookiesAdapter: () => (/* binding */ MutableRequestCookiesAdapter),\n/* harmony export */ ReadonlyRequestCookiesError: () => (/* binding */ ReadonlyRequestCookiesError),\n/* harmony export */ RequestCookiesAdapter: () => (/* binding */ RequestCookiesAdapter),\n/* harmony export */ appendMutableCookies: () => (/* binding */ appendMutableCookies),\n/* harmony export */ getModifiedCookieValues: () => (/* binding */ getModifiedCookieValues)\n/* harmony export */ });\n/* harmony import */ var _cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cookies */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n/* harmony import */ var _reflect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reflect */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\");\n\n\n/**\n * @internal\n */ class ReadonlyRequestCookiesError extends Error {\n constructor(){\n super(\"Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#cookiessetname-value-options\");\n }\n static callable() {\n throw new ReadonlyRequestCookiesError();\n }\n}\nclass RequestCookiesAdapter {\n static seal(cookies) {\n return new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case \"clear\":\n case \"delete\":\n case \"set\":\n return ReadonlyRequestCookiesError.callable;\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_1__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n}\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for(\"next.mutated.cookies\");\nfunction getModifiedCookieValues(cookies) {\n const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES];\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return [];\n }\n return modified;\n}\nfunction appendMutableCookies(headers, mutableCookies) {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies);\n if (modifiedCookieValues.length === 0) {\n return false;\n }\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(headers);\n const returnedCookies = resCookies.getAll();\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues){\n resCookies.set(cookie);\n }\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies){\n resCookies.set(cookie);\n }\n return true;\n}\nclass MutableRequestCookiesAdapter {\n static wrap(cookies, onUpdateCookies) {\n const responseCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(new Headers());\n for (const cookie of cookies.getAll()){\n responseCookies.set(cookie);\n }\n let modifiedValues = [];\n const modifiedCookies = new Set();\n const updateResponseCookies = ()=>{\n var _fetch___nextGetStaticStore;\n // TODO-APP: change method of getting staticGenerationAsyncStore\n const staticGenerationAsyncStore = fetch.__nextGetStaticStore == null ? void 0 : (_fetch___nextGetStaticStore = fetch.__nextGetStaticStore.call(fetch)) == null ? void 0 : _fetch___nextGetStaticStore.getStore();\n if (staticGenerationAsyncStore) {\n staticGenerationAsyncStore.pathWasRevalidated = true;\n }\n const allCookies = responseCookies.getAll();\n modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name));\n if (onUpdateCookies) {\n const serializedCookies = [];\n for (const cookie of modifiedValues){\n const tempCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(new Headers());\n tempCookies.set(cookie);\n serializedCookies.push(tempCookies.toString());\n }\n onUpdateCookies(serializedCookies);\n }\n };\n return new Proxy(responseCookies, {\n get (target, prop, receiver) {\n switch(prop){\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues;\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case \"delete\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n target.delete(...args);\n } finally{\n updateResponseCookies();\n }\n };\n case \"set\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n return target.set(...args);\n } finally{\n updateResponseCookies();\n }\n };\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_1__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n} //# sourceMappingURL=request-cookies.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZXF1ZXN0LWNvb2tpZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUE2QztBQUNGO0FBQzNDOztDQUVDLEdBQVUsTUFBTUUsb0NBQW9DQztJQUNqREMsYUFBYTtRQUNULEtBQUssQ0FBQztJQUNWO0lBQ0EsT0FBT0MsV0FBVztRQUNkLE1BQU0sSUFBSUg7SUFDZDtBQUNKO0FBQ08sTUFBTUk7SUFDVCxPQUFPQyxLQUFLQyxPQUFPLEVBQUU7UUFDakIsT0FBTyxJQUFJQyxNQUFNRCxTQUFTO1lBQ3RCRSxLQUFLQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUTtnQkFDdkIsT0FBT0Q7b0JBQ0gsS0FBSztvQkFDTCxLQUFLO29CQUNMLEtBQUs7d0JBQ0QsT0FBT1YsNEJBQTRCRyxRQUFRO29CQUMvQzt3QkFDSSxPQUFPSixvREFBY0EsQ0FBQ1MsR0FBRyxDQUFDQyxRQUFRQyxNQUFNQztnQkFDaEQ7WUFDSjtRQUNKO0lBQ0o7QUFDSjtBQUNBLE1BQU1DLDhCQUE4QkMsT0FBT0MsR0FBRyxDQUFDO0FBQ3hDLFNBQVNDLHdCQUF3QlQsT0FBTztJQUMzQyxNQUFNVSxXQUFXVixPQUFPLENBQUNNLDRCQUE0QjtJQUNyRCxJQUFJLENBQUNJLFlBQVksQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDRixhQUFhQSxTQUFTRyxNQUFNLEtBQUssR0FBRztRQUNoRSxPQUFPLEVBQUU7SUFDYjtJQUNBLE9BQU9IO0FBQ1g7QUFDTyxTQUFTSSxxQkFBcUJDLE9BQU8sRUFBRUMsY0FBYztJQUN4RCxNQUFNQyx1QkFBdUJSLHdCQUF3Qk87SUFDckQsSUFBSUMscUJBQXFCSixNQUFNLEtBQUssR0FBRztRQUNuQyxPQUFPO0lBQ1g7SUFDQSx1REFBdUQ7SUFDdkQsbURBQW1EO0lBQ25ELDhCQUE4QjtJQUM5QixNQUFNSyxhQUFhLElBQUkxQixxREFBZUEsQ0FBQ3VCO0lBQ3ZDLE1BQU1JLGtCQUFrQkQsV0FBV0UsTUFBTTtJQUN6Qyx5Q0FBeUM7SUFDekMsS0FBSyxNQUFNQyxVQUFVSixxQkFBcUI7UUFDdENDLFdBQVdJLEdBQUcsQ0FBQ0Q7SUFDbkI7SUFDQSxnREFBZ0Q7SUFDaEQsS0FBSyxNQUFNQSxVQUFVRixnQkFBZ0I7UUFDakNELFdBQVdJLEdBQUcsQ0FBQ0Q7SUFDbkI7SUFDQSxPQUFPO0FBQ1g7QUFDTyxNQUFNRTtJQUNULE9BQU9DLEtBQUt4QixPQUFPLEVBQUV5QixlQUFlLEVBQUU7UUFDbEMsTUFBTUMsa0JBQWtCLElBQUlsQyxxREFBZUEsQ0FBQyxJQUFJbUM7UUFDaEQsS0FBSyxNQUFNTixVQUFVckIsUUFBUW9CLE1BQU0sR0FBRztZQUNsQ00sZ0JBQWdCSixHQUFHLENBQUNEO1FBQ3hCO1FBQ0EsSUFBSU8saUJBQWlCLEVBQUU7UUFDdkIsTUFBTUMsa0JBQWtCLElBQUlDO1FBQzVCLE1BQU1DLHdCQUF3QjtZQUMxQixJQUFJQztZQUNKLGdFQUFnRTtZQUNoRSxNQUFNQyw2QkFBNkJDLE1BQU1DLG9CQUFvQixJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUNILDhCQUE4QkUsTUFBTUMsb0JBQW9CLENBQUNDLElBQUksQ0FBQ0YsTUFBSyxLQUFNLE9BQU8sS0FBSyxJQUFJRiw0QkFBNEJLLFFBQVE7WUFDL00sSUFBSUosNEJBQTRCO2dCQUM1QkEsMkJBQTJCSyxrQkFBa0IsR0FBRztZQUNwRDtZQUNBLE1BQU1DLGFBQWFiLGdCQUFnQk4sTUFBTTtZQUN6Q1EsaUJBQWlCVyxXQUFXQyxNQUFNLENBQUMsQ0FBQ0MsSUFBSVosZ0JBQWdCYSxHQUFHLENBQUNELEVBQUVFLElBQUk7WUFDbEUsSUFBSWxCLGlCQUFpQjtnQkFDakIsTUFBTW1CLG9CQUFvQixFQUFFO2dCQUM1QixLQUFLLE1BQU12QixVQUFVTyxlQUFlO29CQUNoQyxNQUFNaUIsY0FBYyxJQUFJckQscURBQWVBLENBQUMsSUFBSW1DO29CQUM1Q2tCLFlBQVl2QixHQUFHLENBQUNEO29CQUNoQnVCLGtCQUFrQkUsSUFBSSxDQUFDRCxZQUFZRSxRQUFRO2dCQUMvQztnQkFDQXRCLGdCQUFnQm1CO1lBQ3BCO1FBQ0o7UUFDQSxPQUFPLElBQUkzQyxNQUFNeUIsaUJBQWlCO1lBQzlCeEIsS0FBS0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFFBQVE7Z0JBQ3ZCLE9BQU9EO29CQUNILHFEQUFxRDtvQkFDckQsS0FBS0U7d0JBQ0QsT0FBT3NCO29CQUNYLGlFQUFpRTtvQkFDakUseUJBQXlCO29CQUN6QixLQUFLO3dCQUNELE9BQU8sU0FBUyxHQUFHb0IsSUFBSTs0QkFDbkJuQixnQkFBZ0JvQixHQUFHLENBQUMsT0FBT0QsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXQSxJQUFJLENBQUMsRUFBRSxHQUFHQSxJQUFJLENBQUMsRUFBRSxDQUFDTCxJQUFJOzRCQUN4RSxJQUFJO2dDQUNBeEMsT0FBTytDLE1BQU0sSUFBSUY7NEJBQ3JCLFNBQVM7Z0NBQ0xqQjs0QkFDSjt3QkFDSjtvQkFDSixLQUFLO3dCQUNELE9BQU8sU0FBUyxHQUFHaUIsSUFBSTs0QkFDbkJuQixnQkFBZ0JvQixHQUFHLENBQUMsT0FBT0QsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXQSxJQUFJLENBQUMsRUFBRSxHQUFHQSxJQUFJLENBQUMsRUFBRSxDQUFDTCxJQUFJOzRCQUN4RSxJQUFJO2dDQUNBLE9BQU94QyxPQUFPbUIsR0FBRyxJQUFJMEI7NEJBQ3pCLFNBQVM7Z0NBQ0xqQjs0QkFDSjt3QkFDSjtvQkFDSjt3QkFDSSxPQUFPdEMsb0RBQWNBLENBQUNTLEdBQUcsQ0FBQ0MsUUFBUUMsTUFBTUM7Z0JBQ2hEO1lBQ0o7UUFDSjtJQUNKO0FBQ0osRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZXF1ZXN0LWNvb2tpZXMuanM/MTYyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNwb25zZUNvb2tpZXMgfSBmcm9tIFwiLi4vY29va2llc1wiO1xuaW1wb3J0IHsgUmVmbGVjdEFkYXB0ZXIgfSBmcm9tIFwiLi9yZWZsZWN0XCI7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjbGFzcyBSZWFkb25seVJlcXVlc3RDb29raWVzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoXCJDb29raWVzIGNhbiBvbmx5IGJlIG1vZGlmaWVkIGluIGEgU2VydmVyIEFjdGlvbiBvciBSb3V0ZSBIYW5kbGVyLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9jb29raWVzI2Nvb2tpZXNzZXRuYW1lLXZhbHVlLW9wdGlvbnNcIik7XG4gICAgfVxuICAgIHN0YXRpYyBjYWxsYWJsZSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJlYWRvbmx5UmVxdWVzdENvb2tpZXNFcnJvcigpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0Q29va2llc0FkYXB0ZXIge1xuICAgIHN0YXRpYyBzZWFsKGNvb2tpZXMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm94eShjb29raWVzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJjbGVhclwiOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZGVsZXRlXCI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzZXRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFkb25seVJlcXVlc3RDb29raWVzRXJyb3IuY2FsbGFibGU7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuY29uc3QgU1lNQk9MX01PRElGWV9DT09LSUVfVkFMVUVTID0gU3ltYm9sLmZvcihcIm5leHQubXV0YXRlZC5jb29raWVzXCIpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGlmaWVkQ29va2llVmFsdWVzKGNvb2tpZXMpIHtcbiAgICBjb25zdCBtb2RpZmllZCA9IGNvb2tpZXNbU1lNQk9MX01PRElGWV9DT09LSUVfVkFMVUVTXTtcbiAgICBpZiAoIW1vZGlmaWVkIHx8ICFBcnJheS5pc0FycmF5KG1vZGlmaWVkKSB8fCBtb2RpZmllZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gbW9kaWZpZWQ7XG59XG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kTXV0YWJsZUNvb2tpZXMoaGVhZGVycywgbXV0YWJsZUNvb2tpZXMpIHtcbiAgICBjb25zdCBtb2RpZmllZENvb2tpZVZhbHVlcyA9IGdldE1vZGlmaWVkQ29va2llVmFsdWVzKG11dGFibGVDb29raWVzKTtcbiAgICBpZiAobW9kaWZpZWRDb29raWVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGEgbmV3IHJlc3BvbnNlIHRoYXQgZXh0ZW5kcyB0aGUgcmVzcG9uc2Ugd2l0aFxuICAgIC8vIHRoZSBtb2RpZmllZCBjb29raWVzIGFzIGZhbGxiYWNrcy4gYHJlc2AgY29va2llc1xuICAgIC8vIHdpbGwgc3RpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICAgIGNvbnN0IHJlc0Nvb2tpZXMgPSBuZXcgUmVzcG9uc2VDb29raWVzKGhlYWRlcnMpO1xuICAgIGNvbnN0IHJldHVybmVkQ29va2llcyA9IHJlc0Nvb2tpZXMuZ2V0QWxsKCk7XG4gICAgLy8gU2V0IHRoZSBtb2RpZmllZCBjb29raWVzIGFzIGZhbGxiYWNrcy5cbiAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiBtb2RpZmllZENvb2tpZVZhbHVlcyl7XG4gICAgICAgIHJlc0Nvb2tpZXMuc2V0KGNvb2tpZSk7XG4gICAgfVxuICAgIC8vIFNldCB0aGUgb3JpZ2luYWwgY29va2llcyBhcyB0aGUgZmluYWwgdmFsdWVzLlxuICAgIGZvciAoY29uc3QgY29va2llIG9mIHJldHVybmVkQ29va2llcyl7XG4gICAgICAgIHJlc0Nvb2tpZXMuc2V0KGNvb2tpZSk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZXhwb3J0IGNsYXNzIE11dGFibGVSZXF1ZXN0Q29va2llc0FkYXB0ZXIge1xuICAgIHN0YXRpYyB3cmFwKGNvb2tpZXMsIG9uVXBkYXRlQ29va2llcykge1xuICAgICAgICBjb25zdCByZXNwb25zZUNvb2tpZXMgPSBuZXcgUmVzcG9uc2VDb29raWVzKG5ldyBIZWFkZXJzKCkpO1xuICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiBjb29raWVzLmdldEFsbCgpKXtcbiAgICAgICAgICAgIHJlc3BvbnNlQ29va2llcy5zZXQoY29va2llKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbW9kaWZpZWRWYWx1ZXMgPSBbXTtcbiAgICAgICAgY29uc3QgbW9kaWZpZWRDb29raWVzID0gbmV3IFNldCgpO1xuICAgICAgICBjb25zdCB1cGRhdGVSZXNwb25zZUNvb2tpZXMgPSAoKT0+e1xuICAgICAgICAgICAgdmFyIF9mZXRjaF9fX25leHRHZXRTdGF0aWNTdG9yZTtcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBjaGFuZ2UgbWV0aG9kIG9mIGdldHRpbmcgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmVcbiAgICAgICAgICAgIGNvbnN0IHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JlID0gZmV0Y2guX19uZXh0R2V0U3RhdGljU3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IChfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmUgPSBmZXRjaC5fX25leHRHZXRTdGF0aWNTdG9yZS5jYWxsKGZldGNoKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9mZXRjaF9fX25leHRHZXRTdGF0aWNTdG9yZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgaWYgKHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmUucGF0aFdhc1JldmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFsbENvb2tpZXMgPSByZXNwb25zZUNvb2tpZXMuZ2V0QWxsKCk7XG4gICAgICAgICAgICBtb2RpZmllZFZhbHVlcyA9IGFsbENvb2tpZXMuZmlsdGVyKChjKT0+bW9kaWZpZWRDb29raWVzLmhhcyhjLm5hbWUpKTtcbiAgICAgICAgICAgIGlmIChvblVwZGF0ZUNvb2tpZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXJpYWxpemVkQ29va2llcyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29va2llIG9mIG1vZGlmaWVkVmFsdWVzKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGVtcENvb2tpZXMgPSBuZXcgUmVzcG9uc2VDb29raWVzKG5ldyBIZWFkZXJzKCkpO1xuICAgICAgICAgICAgICAgICAgICB0ZW1wQ29va2llcy5zZXQoY29va2llKTtcbiAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplZENvb2tpZXMucHVzaCh0ZW1wQ29va2llcy50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVDb29raWVzKHNlcmlhbGl6ZWRDb29raWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm94eShyZXNwb25zZUNvb2tpZXMsIHtcbiAgICAgICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICAgICAgLy8gQSBzcGVjaWFsIHN5bWJvbCB0byBnZXQgdGhlIG1vZGlmaWVkIGNvb2tpZSB2YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBTWU1CT0xfTU9ESUZZX0NPT0tJRV9WQUxVRVM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kaWZpZWRWYWx1ZXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IFRocm93IGVycm9yIGlmIHRyeWluZyB0byBzZXQgYSBjb29raWUgYWZ0ZXIgdGhlIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgaGF2ZSBiZWVuIHNldC5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImRlbGV0ZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZENvb2tpZXMuYWRkKHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IGFyZ3NbMF0ubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmRlbGV0ZSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVJlc3BvbnNlQ29va2llcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzZXRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRDb29raWVzLmFkZCh0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQuc2V0KC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlUmVzcG9uc2VDb29raWVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtY29va2llcy5qcy5tYXAiXSwibmFtZXMiOlsiUmVzcG9uc2VDb29raWVzIiwiUmVmbGVjdEFkYXB0ZXIiLCJSZWFkb25seVJlcXVlc3RDb29raWVzRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwiY2FsbGFibGUiLCJSZXF1ZXN0Q29va2llc0FkYXB0ZXIiLCJzZWFsIiwiY29va2llcyIsIlByb3h5IiwiZ2V0IiwidGFyZ2V0IiwicHJvcCIsInJlY2VpdmVyIiwiU1lNQk9MX01PRElGWV9DT09LSUVfVkFMVUVTIiwiU3ltYm9sIiwiZm9yIiwiZ2V0TW9kaWZpZWRDb29raWVWYWx1ZXMiLCJtb2RpZmllZCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImFwcGVuZE11dGFibGVDb29raWVzIiwiaGVhZGVycyIsIm11dGFibGVDb29raWVzIiwibW9kaWZpZWRDb29raWVWYWx1ZXMiLCJyZXNDb29raWVzIiwicmV0dXJuZWRDb29raWVzIiwiZ2V0QWxsIiwiY29va2llIiwic2V0IiwiTXV0YWJsZVJlcXVlc3RDb29raWVzQWRhcHRlciIsIndyYXAiLCJvblVwZGF0ZUNvb2tpZXMiLCJyZXNwb25zZUNvb2tpZXMiLCJIZWFkZXJzIiwibW9kaWZpZWRWYWx1ZXMiLCJtb2RpZmllZENvb2tpZXMiLCJTZXQiLCJ1cGRhdGVSZXNwb25zZUNvb2tpZXMiLCJfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmUiLCJzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yZSIsImZldGNoIiwiX19uZXh0R2V0U3RhdGljU3RvcmUiLCJjYWxsIiwiZ2V0U3RvcmUiLCJwYXRoV2FzUmV2YWxpZGF0ZWQiLCJhbGxDb29raWVzIiwiZmlsdGVyIiwiYyIsImhhcyIsIm5hbWUiLCJzZXJpYWxpemVkQ29va2llcyIsInRlbXBDb29raWVzIiwicHVzaCIsInRvU3RyaW5nIiwiYXJncyIsImFkZCIsImRlbGV0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/cookies.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/spec-extension/cookies.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RequestCookies: () => (/* reexport safe */ next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__.RequestCookies),\n/* harmony export */ ResponseCookies: () => (/* reexport safe */ next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(middleware)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n/* harmony import */ var next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__);\n //# sourceMappingURL=cookies.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMkYsQ0FFM0YsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vY29va2llcy5qcz84YzkzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFJlcXVlc3RDb29raWVzLCBSZXNwb25zZUNvb2tpZXMgfSBmcm9tIFwibmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llc1wiO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb29raWVzLmpzLm1hcCJdLCJuYW1lcyI6WyJSZXF1ZXN0Q29va2llcyIsIlJlc3BvbnNlQ29va2llcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/cookies.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NextFetchEvent: () => (/* binding */ NextFetchEvent),\n/* harmony export */ waitUntilSymbol: () => (/* binding */ waitUntilSymbol)\n/* harmony export */ });\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../error */ \"(middleware)/./node_modules/next/dist/esm/server/web/error.js\");\n\nconst responseSymbol = Symbol(\"response\");\nconst passThroughSymbol = Symbol(\"passThrough\");\nconst waitUntilSymbol = Symbol(\"waitUntil\");\nclass FetchEvent {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(_request){\n this[waitUntilSymbol] = [];\n this[passThroughSymbol] = false;\n }\n respondWith(response) {\n if (!this[responseSymbol]) {\n this[responseSymbol] = Promise.resolve(response);\n }\n }\n passThroughOnException() {\n this[passThroughSymbol] = true;\n }\n waitUntil(promise) {\n this[waitUntilSymbol].push(promise);\n }\n}\nclass NextFetchEvent extends FetchEvent {\n constructor(params){\n super(params.request);\n this.sourcePage = params.page;\n }\n /**\n * @deprecated The `request` is now the first parameter and the API is now async.\n *\n * Read more: https://nextjs.org/docs/messages/middleware-new-signature\n */ get request() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n /**\n * @deprecated Using `respondWith` is no longer needed.\n *\n * Read more: https://nextjs.org/docs/messages/middleware-new-signature\n */ respondWith() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n} //# sourceMappingURL=fetch-event.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9mZXRjaC1ldmVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBOEM7QUFDOUMsTUFBTUMsaUJBQWlCQyxPQUFPO0FBQzlCLE1BQU1DLG9CQUFvQkQsT0FBTztBQUMxQixNQUFNRSxrQkFBa0JGLE9BQU8sYUFBYTtBQUNuRCxNQUFNRztJQUNGLHFFQUFxRTtJQUNyRUMsWUFBWUMsUUFBUSxDQUFDO1FBQ2pCLElBQUksQ0FBQ0gsZ0JBQWdCLEdBQUcsRUFBRTtRQUMxQixJQUFJLENBQUNELGtCQUFrQixHQUFHO0lBQzlCO0lBQ0FLLFlBQVlDLFFBQVEsRUFBRTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDUixlQUFlLEVBQUU7WUFDdkIsSUFBSSxDQUFDQSxlQUFlLEdBQUdTLFFBQVFDLE9BQU8sQ0FBQ0Y7UUFDM0M7SUFDSjtJQUNBRyx5QkFBeUI7UUFDckIsSUFBSSxDQUFDVCxrQkFBa0IsR0FBRztJQUM5QjtJQUNBVSxVQUFVQyxPQUFPLEVBQUU7UUFDZixJQUFJLENBQUNWLGdCQUFnQixDQUFDVyxJQUFJLENBQUNEO0lBQy9CO0FBQ0o7QUFDTyxNQUFNRSx1QkFBdUJYO0lBQ2hDQyxZQUFZVyxNQUFNLENBQUM7UUFDZixLQUFLLENBQUNBLE9BQU9DLE9BQU87UUFDcEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdGLE9BQU9HLElBQUk7SUFDakM7SUFDQTs7OztHQUlELEdBQUcsSUFBSUYsVUFBVTtRQUNaLE1BQU0sSUFBSWxCLHNEQUFrQkEsQ0FBQztZQUN6Qm9CLE1BQU0sSUFBSSxDQUFDRCxVQUFVO1FBQ3pCO0lBQ0o7SUFDQTs7OztHQUlELEdBQUdYLGNBQWM7UUFDWixNQUFNLElBQUlSLHNEQUFrQkEsQ0FBQztZQUN6Qm9CLE1BQU0sSUFBSSxDQUFDRCxVQUFVO1FBQ3pCO0lBQ0o7QUFDSixFQUVBLHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2ZldGNoLWV2ZW50LmpzPzkyYmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZVNpZ25hdHVyZUVycm9yIH0gZnJvbSBcIi4uL2Vycm9yXCI7XG5jb25zdCByZXNwb25zZVN5bWJvbCA9IFN5bWJvbChcInJlc3BvbnNlXCIpO1xuY29uc3QgcGFzc1Rocm91Z2hTeW1ib2wgPSBTeW1ib2woXCJwYXNzVGhyb3VnaFwiKTtcbmV4cG9ydCBjb25zdCB3YWl0VW50aWxTeW1ib2wgPSBTeW1ib2woXCJ3YWl0VW50aWxcIik7XG5jbGFzcyBGZXRjaEV2ZW50IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgICBjb25zdHJ1Y3RvcihfcmVxdWVzdCl7XG4gICAgICAgIHRoaXNbd2FpdFVudGlsU3ltYm9sXSA9IFtdO1xuICAgICAgICB0aGlzW3Bhc3NUaHJvdWdoU3ltYm9sXSA9IGZhbHNlO1xuICAgIH1cbiAgICByZXNwb25kV2l0aChyZXNwb25zZSkge1xuICAgICAgICBpZiAoIXRoaXNbcmVzcG9uc2VTeW1ib2xdKSB7XG4gICAgICAgICAgICB0aGlzW3Jlc3BvbnNlU3ltYm9sXSA9IFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFzc1Rocm91Z2hPbkV4Y2VwdGlvbigpIHtcbiAgICAgICAgdGhpc1twYXNzVGhyb3VnaFN5bWJvbF0gPSB0cnVlO1xuICAgIH1cbiAgICB3YWl0VW50aWwocHJvbWlzZSkge1xuICAgICAgICB0aGlzW3dhaXRVbnRpbFN5bWJvbF0ucHVzaChwcm9taXNlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTmV4dEZldGNoRXZlbnQgZXh0ZW5kcyBGZXRjaEV2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihwYXJhbXMpe1xuICAgICAgICBzdXBlcihwYXJhbXMucmVxdWVzdCk7XG4gICAgICAgIHRoaXMuc291cmNlUGFnZSA9IHBhcmFtcy5wYWdlO1xuICAgIH1cbiAgICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhlIGByZXF1ZXN0YCBpcyBub3cgdGhlIGZpcnN0IHBhcmFtZXRlciBhbmQgdGhlIEFQSSBpcyBub3cgYXN5bmMuXG4gICAqXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1uZXctc2lnbmF0dXJlXG4gICAqLyBnZXQgcmVxdWVzdCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhZ2VTaWduYXR1cmVFcnJvcih7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnNvdXJjZVBhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2luZyBgcmVzcG9uZFdpdGhgIGlzIG5vIGxvbmdlciBuZWVkZWQuXG4gICAqXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1uZXctc2lnbmF0dXJlXG4gICAqLyByZXNwb25kV2l0aCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhZ2VTaWduYXR1cmVFcnJvcih7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnNvdXJjZVBhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mZXRjaC1ldmVudC5qcy5tYXAiXSwibmFtZXMiOlsiUGFnZVNpZ25hdHVyZUVycm9yIiwicmVzcG9uc2VTeW1ib2wiLCJTeW1ib2wiLCJwYXNzVGhyb3VnaFN5bWJvbCIsIndhaXRVbnRpbFN5bWJvbCIsIkZldGNoRXZlbnQiLCJjb25zdHJ1Y3RvciIsIl9yZXF1ZXN0IiwicmVzcG9uZFdpdGgiLCJyZXNwb25zZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicGFzc1Rocm91Z2hPbkV4Y2VwdGlvbiIsIndhaXRVbnRpbCIsInByb21pc2UiLCJwdXNoIiwiTmV4dEZldGNoRXZlbnQiLCJwYXJhbXMiLCJyZXF1ZXN0Iiwic291cmNlUGFnZSIsInBhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/request.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/spec-extension/request.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ INTERNALS: () => (/* binding */ INTERNALS),\n/* harmony export */ NextRequest: () => (/* binding */ NextRequest)\n/* harmony export */ });\n/* harmony import */ var _next_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../next-url */ \"(middleware)/./node_modules/next/dist/esm/server/web/next-url.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"(middleware)/./node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../error */ \"(middleware)/./node_modules/next/dist/esm/server/web/error.js\");\n/* harmony import */ var _cookies__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cookies */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n\n\n\n\nconst INTERNALS = Symbol(\"internal request\");\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== \"string\" && \"url\" in input ? input.url : String(input);\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.validateURL)(url);\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _next_url__WEBPACK_IMPORTED_MODULE_0__.NextURL(url, {\n headers: (0,_utils__WEBPACK_IMPORTED_MODULE_1__.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies__WEBPACK_IMPORTED_MODULE_3__.RequestCookies(this.headers),\n geo: init.geo || {},\n ip: init.ip,\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n geo: this.geo,\n ip: this.ip,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get geo() {\n return this[INTERNALS].geo;\n }\n get ip() {\n return this[INTERNALS].ip;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error__WEBPACK_IMPORTED_MODULE_2__.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error__WEBPACK_IMPORTED_MODULE_2__.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n} //# sourceMappingURL=request.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFzQztBQUM0QjtBQUNOO0FBQ2pCO0FBQ3BDLE1BQU1NLFlBQVlDLE9BQU8sb0JBQW9CO0FBQzdDLE1BQU1DLG9CQUFvQkM7SUFDN0JDLFlBQVlDLEtBQUssRUFBRUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNQyxNQUFNLE9BQU9GLFVBQVUsWUFBWSxTQUFTQSxRQUFRQSxNQUFNRSxHQUFHLEdBQUdDLE9BQU9IO1FBQzdFVCxtREFBV0EsQ0FBQ1c7UUFDWixJQUFJRixpQkFBaUJGLFNBQVMsS0FBSyxDQUFDRSxPQUFPQzthQUN0QyxLQUFLLENBQUNDLEtBQUtEO1FBQ2hCLE1BQU1HLFVBQVUsSUFBSWYsOENBQU9BLENBQUNhLEtBQUs7WUFDN0JHLFNBQVNmLGlFQUF5QkEsQ0FBQyxJQUFJLENBQUNlLE9BQU87WUFDL0NDLFlBQVlMLEtBQUtLLFVBQVU7UUFDL0I7UUFDQSxJQUFJLENBQUNYLFVBQVUsR0FBRztZQUNkWSxTQUFTLElBQUliLG9EQUFjQSxDQUFDLElBQUksQ0FBQ1csT0FBTztZQUN4Q0csS0FBS1AsS0FBS08sR0FBRyxJQUFJLENBQUM7WUFDbEJDLElBQUlSLEtBQUtRLEVBQUU7WUFDWEw7WUFDQUYsS0FBS1EsTUFBOEMsR0FBR1IsQ0FBR0EsR0FBR0UsUUFBUVMsUUFBUTtRQUNoRjtJQUNKO0lBQ0EsQ0FBQ2pCLE9BQU9rQixHQUFHLENBQUMsK0JBQStCLEdBQUc7UUFDMUMsT0FBTztZQUNIUCxTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUNyQkMsS0FBSyxJQUFJLENBQUNBLEdBQUc7WUFDYkMsSUFBSSxJQUFJLENBQUNBLEVBQUU7WUFDWEwsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJGLEtBQUssSUFBSSxDQUFDQSxHQUFHO1lBQ2Isa0NBQWtDO1lBQ2xDYSxVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2QkMsT0FBTyxJQUFJLENBQUNBLEtBQUs7WUFDakJDLGFBQWEsSUFBSSxDQUFDQSxXQUFXO1lBQzdCQyxhQUFhLElBQUksQ0FBQ0EsV0FBVztZQUM3QmIsU0FBU2MsT0FBT0MsV0FBVyxDQUFDLElBQUksQ0FBQ2YsT0FBTztZQUN4Q2dCLFdBQVcsSUFBSSxDQUFDQSxTQUFTO1lBQ3pCQyxXQUFXLElBQUksQ0FBQ0EsU0FBUztZQUN6QkMsUUFBUSxJQUFJLENBQUNBLE1BQU07WUFDbkJDLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2ZDLFVBQVUsSUFBSSxDQUFDQSxRQUFRO1lBQ3ZCQyxVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2QkMsZ0JBQWdCLElBQUksQ0FBQ0EsY0FBYztZQUNuQ0MsUUFBUSxJQUFJLENBQUNBLE1BQU07UUFDdkI7SUFDSjtJQUNBLElBQUlyQixVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUNaLFVBQVUsQ0FBQ1ksT0FBTztJQUNsQztJQUNBLElBQUlDLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQ2IsVUFBVSxDQUFDYSxHQUFHO0lBQzlCO0lBQ0EsSUFBSUMsS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDZCxVQUFVLENBQUNjLEVBQUU7SUFDN0I7SUFDQSxJQUFJTCxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUNULFVBQVUsQ0FBQ1MsT0FBTztJQUNsQztJQUNBOzs7O0dBSUQsR0FBRyxJQUFJeUIsT0FBTztRQUNULE1BQU0sSUFBSXBDLG9EQUFnQkE7SUFDOUI7SUFDQTs7OztHQUlELEdBQUcsSUFBSXFDLEtBQUs7UUFDUCxNQUFNLElBQUl0QyxrREFBY0E7SUFDNUI7SUFDQSxJQUFJVSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUNQLFVBQVUsQ0FBQ08sR0FBRztJQUM5QjtBQUNKLEVBRUEsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVxdWVzdC5qcz8xNWQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5leHRVUkwgfSBmcm9tIFwiLi4vbmV4dC11cmxcIjtcbmltcG9ydCB7IHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMsIHZhbGlkYXRlVVJMIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBSZW1vdmVkVUFFcnJvciwgUmVtb3ZlZFBhZ2VFcnJvciB9IGZyb20gXCIuLi9lcnJvclwiO1xuaW1wb3J0IHsgUmVxdWVzdENvb2tpZXMgfSBmcm9tIFwiLi9jb29raWVzXCI7XG5leHBvcnQgY29uc3QgSU5URVJOQUxTID0gU3ltYm9sKFwiaW50ZXJuYWwgcmVxdWVzdFwiKTtcbmV4cG9ydCBjbGFzcyBOZXh0UmVxdWVzdCBleHRlbmRzIFJlcXVlc3Qge1xuICAgIGNvbnN0cnVjdG9yKGlucHV0LCBpbml0ID0ge30pe1xuICAgICAgICBjb25zdCB1cmwgPSB0eXBlb2YgaW5wdXQgIT09IFwic3RyaW5nXCIgJiYgXCJ1cmxcIiBpbiBpbnB1dCA/IGlucHV0LnVybCA6IFN0cmluZyhpbnB1dCk7XG4gICAgICAgIHZhbGlkYXRlVVJMKHVybCk7XG4gICAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QpIHN1cGVyKGlucHV0LCBpbml0KTtcbiAgICAgICAgZWxzZSBzdXBlcih1cmwsIGluaXQpO1xuICAgICAgICBjb25zdCBuZXh0VXJsID0gbmV3IE5leHRVUkwodXJsLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBuZXh0Q29uZmlnOiBpbml0Lm5leHRDb25maWdcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXNbSU5URVJOQUxTXSA9IHtcbiAgICAgICAgICAgIGNvb2tpZXM6IG5ldyBSZXF1ZXN0Q29va2llcyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgZ2VvOiBpbml0LmdlbyB8fCB7fSxcbiAgICAgICAgICAgIGlwOiBpbml0LmlwLFxuICAgICAgICAgICAgbmV4dFVybCxcbiAgICAgICAgICAgIHVybDogcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSA/IHVybCA6IG5leHRVcmwudG9TdHJpbmcoKVxuICAgICAgICB9O1xuICAgIH1cbiAgICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICBnZW86IHRoaXMuZ2VvLFxuICAgICAgICAgICAgaXA6IHRoaXMuaXAsXG4gICAgICAgICAgICBuZXh0VXJsOiB0aGlzLm5leHRVcmwsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVxdWVzdFxuICAgICAgICAgICAgYm9keVVzZWQ6IHRoaXMuYm9keVVzZWQsXG4gICAgICAgICAgICBjYWNoZTogdGhpcy5jYWNoZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiB0aGlzLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZGVzdGluYXRpb24sXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIGludGVncml0eTogdGhpcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICBrZWVwYWxpdmU6IHRoaXMua2VlcGFsaXZlLFxuICAgICAgICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICAgIHJlZGlyZWN0OiB0aGlzLnJlZGlyZWN0LFxuICAgICAgICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXIsXG4gICAgICAgICAgICByZWZlcnJlclBvbGljeTogdGhpcy5yZWZlcnJlclBvbGljeSxcbiAgICAgICAgICAgIHNpZ25hbDogdGhpcy5zaWduYWxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgZ2V0IGdlbygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS5nZW87XG4gICAgfVxuICAgIGdldCBpcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS5pcDtcbiAgICB9XG4gICAgZ2V0IG5leHRVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10ubmV4dFVybDtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGBwYWdlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBgVVJMUGF0dGVybmAuXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZXF1ZXN0LXBhZ2VcbiAgICovIGdldCBwYWdlKCkge1xuICAgICAgICB0aHJvdyBuZXcgUmVtb3ZlZFBhZ2VFcnJvcigpO1xuICAgIH1cbiAgICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogYHVhYCBoYXMgYmVlbiByZW1vdmVkIGluIGZhdm91ciBvZiBcXGB1c2VyQWdlbnRcXGAgZnVuY3Rpb24uXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1wYXJzZS11c2VyLWFnZW50XG4gICAqLyBnZXQgdWEoKSB7XG4gICAgICAgIHRocm93IG5ldyBSZW1vdmVkVUFFcnJvcigpO1xuICAgIH1cbiAgICBnZXQgdXJsKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLnVybDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QuanMubWFwIl0sIm5hbWVzIjpbIk5leHRVUkwiLCJ0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzIiwidmFsaWRhdGVVUkwiLCJSZW1vdmVkVUFFcnJvciIsIlJlbW92ZWRQYWdlRXJyb3IiLCJSZXF1ZXN0Q29va2llcyIsIklOVEVSTkFMUyIsIlN5bWJvbCIsIk5leHRSZXF1ZXN0IiwiUmVxdWVzdCIsImNvbnN0cnVjdG9yIiwiaW5wdXQiLCJpbml0IiwidXJsIiwiU3RyaW5nIiwibmV4dFVybCIsImhlYWRlcnMiLCJuZXh0Q29uZmlnIiwiY29va2llcyIsImdlbyIsImlwIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUiLCJ0b1N0cmluZyIsImZvciIsImJvZHlVc2VkIiwiY2FjaGUiLCJjcmVkZW50aWFscyIsImRlc3RpbmF0aW9uIiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJpbnRlZ3JpdHkiLCJrZWVwYWxpdmUiLCJtZXRob2QiLCJtb2RlIiwicmVkaXJlY3QiLCJyZWZlcnJlciIsInJlZmVycmVyUG9saWN5Iiwic2lnbmFsIiwicGFnZSIsInVhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/request.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/response.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/spec-extension/response.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NextResponse: () => (/* binding */ NextResponse)\n/* harmony export */ });\n/* harmony import */ var _next_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../next-url */ \"(middleware)/./node_modules/next/dist/esm/server/web/next-url.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"(middleware)/./node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _cookies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cookies */ \"(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n\n\n\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 this[INTERNALS] = {\n cookies: new _cookies__WEBPACK_IMPORTED_MODULE_2__.ResponseCookies(this.headers),\n url: init.url ? new _next_url__WEBPACK_IMPORTED_MODULE_0__.NextURL(init.url, {\n headers: (0,_utils__WEBPACK_IMPORTED_MODULE_1__.toNodeOutgoingHttpHeaders)(this.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__WEBPACK_IMPORTED_MODULE_1__.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__WEBPACK_IMPORTED_MODULE_1__.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} //# sourceMappingURL=response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXNwb25zZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXNDO0FBQzRCO0FBQ3RCO0FBQzVDLE1BQU1JLFlBQVlDLE9BQU87QUFDekIsTUFBTUMsWUFBWSxJQUFJQyxJQUFJO0lBQ3RCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDSDtBQUNELFNBQVNDLHNCQUFzQkMsSUFBSSxFQUFFQyxPQUFPO0lBQ3hDLElBQUlDO0lBQ0osSUFBSUYsUUFBUSxPQUFPLEtBQUssSUFBSSxDQUFDRSxnQkFBZ0JGLEtBQUtHLE9BQU8sS0FBSyxPQUFPLEtBQUssSUFBSUQsY0FBY0QsT0FBTyxFQUFFO1FBQ2pHLElBQUksQ0FBRUQsQ0FBQUEsS0FBS0csT0FBTyxDQUFDRixPQUFPLFlBQVlHLE9BQU0sR0FBSTtZQUM1QyxNQUFNLElBQUlDLE1BQU07UUFDcEI7UUFDQSxNQUFNQyxPQUFPLEVBQUU7UUFDZixLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJUixLQUFLRyxPQUFPLENBQUNGLE9BQU8sQ0FBQztZQUM1Q0EsUUFBUVEsR0FBRyxDQUFDLDBCQUEwQkYsS0FBS0M7WUFDM0NGLEtBQUtJLElBQUksQ0FBQ0g7UUFDZDtRQUNBTixRQUFRUSxHQUFHLENBQUMsaUNBQWlDSCxLQUFLSyxJQUFJLENBQUM7SUFDM0Q7QUFDSjtBQUNPLE1BQU1DLHFCQUFxQkM7SUFDOUJDLFlBQVlDLElBQUksRUFBRWYsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4QixLQUFLLENBQUNlLE1BQU1mO1FBQ1osSUFBSSxDQUFDTCxVQUFVLEdBQUc7WUFDZHFCLFNBQVMsSUFBSXRCLHFEQUFlQSxDQUFDLElBQUksQ0FBQ08sT0FBTztZQUN6Q2dCLEtBQUtqQixLQUFLaUIsR0FBRyxHQUFHLElBQUkxQiw4Q0FBT0EsQ0FBQ1MsS0FBS2lCLEdBQUcsRUFBRTtnQkFDbENoQixTQUFTVCxpRUFBeUJBLENBQUMsSUFBSSxDQUFDUyxPQUFPO2dCQUMvQ2lCLFlBQVlsQixLQUFLa0IsVUFBVTtZQUMvQixLQUFLQztRQUNUO0lBQ0o7SUFDQSxDQUFDdkIsT0FBT3dCLEdBQUcsQ0FBQywrQkFBK0IsR0FBRztRQUMxQyxPQUFPO1lBQ0hKLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxLQUFLLElBQUksQ0FBQ0EsR0FBRztZQUNiLG1DQUFtQztZQUNuQ0YsTUFBTSxJQUFJLENBQUNBLElBQUk7WUFDZk0sVUFBVSxJQUFJLENBQUNBLFFBQVE7WUFDdkJwQixTQUFTcUIsT0FBT0MsV0FBVyxDQUFDLElBQUksQ0FBQ3RCLE9BQU87WUFDeEN1QixJQUFJLElBQUksQ0FBQ0EsRUFBRTtZQUNYQyxZQUFZLElBQUksQ0FBQ0EsVUFBVTtZQUMzQkMsUUFBUSxJQUFJLENBQUNBLE1BQU07WUFDbkJDLFlBQVksSUFBSSxDQUFDQSxVQUFVO1lBQzNCQyxNQUFNLElBQUksQ0FBQ0EsSUFBSTtRQUNuQjtJQUNKO0lBQ0EsSUFBSVosVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDckIsVUFBVSxDQUFDcUIsT0FBTztJQUNsQztJQUNBLE9BQU9hLEtBQUtkLElBQUksRUFBRWYsSUFBSSxFQUFFO1FBQ3BCLE1BQU04QixXQUFXakIsU0FBU2dCLElBQUksQ0FBQ2QsTUFBTWY7UUFDckMsT0FBTyxJQUFJWSxhQUFha0IsU0FBU2YsSUFBSSxFQUFFZTtJQUMzQztJQUNBLE9BQU9DLFNBQVNkLEdBQUcsRUFBRWpCLElBQUksRUFBRTtRQUN2QixNQUFNMEIsU0FBUyxPQUFPMUIsU0FBUyxXQUFXQSxPQUFPLENBQUNBLFFBQVEsT0FBTyxLQUFLLElBQUlBLEtBQUswQixNQUFNLEtBQUs7UUFDMUYsSUFBSSxDQUFDN0IsVUFBVW1DLEdBQUcsQ0FBQ04sU0FBUztZQUN4QixNQUFNLElBQUlPLFdBQVc7UUFDekI7UUFDQSxNQUFNQyxVQUFVLE9BQU9sQyxTQUFTLFdBQVdBLE9BQU8sQ0FBQztRQUNuRCxNQUFNQyxVQUFVLElBQUlHLFFBQVE4QixXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRakMsT0FBTztRQUN0RUEsUUFBUVEsR0FBRyxDQUFDLFlBQVloQixtREFBV0EsQ0FBQ3dCO1FBQ3BDLE9BQU8sSUFBSUwsYUFBYSxNQUFNO1lBQzFCLEdBQUdzQixPQUFPO1lBQ1ZqQztZQUNBeUI7UUFDSjtJQUNKO0lBQ0EsT0FBT1MsUUFBUUMsV0FBVyxFQUFFcEMsSUFBSSxFQUFFO1FBQzlCLE1BQU1DLFVBQVUsSUFBSUcsUUFBUUosUUFBUSxPQUFPLEtBQUssSUFBSUEsS0FBS0MsT0FBTztRQUNoRUEsUUFBUVEsR0FBRyxDQUFDLHdCQUF3QmhCLG1EQUFXQSxDQUFDMkM7UUFDaERyQyxzQkFBc0JDLE1BQU1DO1FBQzVCLE9BQU8sSUFBSVcsYUFBYSxNQUFNO1lBQzFCLEdBQUdaLElBQUk7WUFDUEM7UUFDSjtJQUNKO0lBQ0EsT0FBT29DLEtBQUtyQyxJQUFJLEVBQUU7UUFDZCxNQUFNQyxVQUFVLElBQUlHLFFBQVFKLFFBQVEsT0FBTyxLQUFLLElBQUlBLEtBQUtDLE9BQU87UUFDaEVBLFFBQVFRLEdBQUcsQ0FBQyxxQkFBcUI7UUFDakNWLHNCQUFzQkMsTUFBTUM7UUFDNUIsT0FBTyxJQUFJVyxhQUFhLE1BQU07WUFDMUIsR0FBR1osSUFBSTtZQUNQQztRQUNKO0lBQ0o7QUFDSixFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL3Jlc3BvbnNlLmpzPzNkYmYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV4dFVSTCB9IGZyb20gXCIuLi9uZXh0LXVybFwiO1xuaW1wb3J0IHsgdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycywgdmFsaWRhdGVVUkwgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IFJlc3BvbnNlQ29va2llcyB9IGZyb20gXCIuL2Nvb2tpZXNcIjtcbmNvbnN0IElOVEVSTkFMUyA9IFN5bWJvbChcImludGVybmFsIHJlc3BvbnNlXCIpO1xuY29uc3QgUkVESVJFQ1RTID0gbmV3IFNldChbXG4gICAgMzAxLFxuICAgIDMwMixcbiAgICAzMDMsXG4gICAgMzA3LFxuICAgIDMwOFxuXSk7XG5mdW5jdGlvbiBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgaGVhZGVycykge1xuICAgIHZhciBfaW5pdF9yZXF1ZXN0O1xuICAgIGlmIChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfcmVxdWVzdCA9IGluaXQucmVxdWVzdCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X3JlcXVlc3QuaGVhZGVycykge1xuICAgICAgICBpZiAoIShpbml0LnJlcXVlc3QuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZXF1ZXN0LmhlYWRlcnMgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIZWFkZXJzXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgaW5pdC5yZXF1ZXN0LmhlYWRlcnMpe1xuICAgICAgICAgICAgaGVhZGVycy5zZXQoXCJ4LW1pZGRsZXdhcmUtcmVxdWVzdC1cIiArIGtleSwgdmFsdWUpO1xuICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgaGVhZGVycy5zZXQoXCJ4LW1pZGRsZXdhcmUtb3ZlcnJpZGUtaGVhZGVyc1wiLCBrZXlzLmpvaW4oXCIsXCIpKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTmV4dFJlc3BvbnNlIGV4dGVuZHMgUmVzcG9uc2Uge1xuICAgIGNvbnN0cnVjdG9yKGJvZHksIGluaXQgPSB7fSl7XG4gICAgICAgIHN1cGVyKGJvZHksIGluaXQpO1xuICAgICAgICB0aGlzW0lOVEVSTkFMU10gPSB7XG4gICAgICAgICAgICBjb29raWVzOiBuZXcgUmVzcG9uc2VDb29raWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICB1cmw6IGluaXQudXJsID8gbmV3IE5leHRVUkwoaW5pdC51cmwsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICAgICAgbmV4dENvbmZpZzogaW5pdC5uZXh0Q29uZmlnXG4gICAgICAgICAgICB9KSA6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuICAgIH1cbiAgICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVzcG9uc2VcbiAgICAgICAgICAgIGJvZHk6IHRoaXMuYm9keSxcbiAgICAgICAgICAgIGJvZHlVc2VkOiB0aGlzLmJvZHlVc2VkLFxuICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBvazogdGhpcy5vayxcbiAgICAgICAgICAgIHJlZGlyZWN0ZWQ6IHRoaXMucmVkaXJlY3RlZCxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICBzdGF0dXNUZXh0OiB0aGlzLnN0YXR1c1RleHQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgc3RhdGljIGpzb24oYm9keSwgaW5pdCkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IFJlc3BvbnNlLmpzb24oYm9keSwgaW5pdCk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKHJlc3BvbnNlLmJvZHksIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgc3RhdGljIHJlZGlyZWN0KHVybCwgaW5pdCkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSB0eXBlb2YgaW5pdCA9PT0gXCJudW1iZXJcIiA/IGluaXQgOiAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdC5zdGF0dXMpID8/IDMwNztcbiAgICAgICAgaWYgKCFSRURJUkVDVFMuaGFzKHN0YXR1cykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdGYWlsZWQgdG8gZXhlY3V0ZSBcInJlZGlyZWN0XCIgb24gXCJyZXNwb25zZVwiOiBJbnZhbGlkIHN0YXR1cyBjb2RlJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5pdE9iaiA9IHR5cGVvZiBpbml0ID09PSBcIm9iamVjdFwiID8gaW5pdCA6IHt9O1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaW5pdE9iaiA9PSBudWxsID8gdm9pZCAwIDogaW5pdE9iai5oZWFkZXJzKTtcbiAgICAgICAgaGVhZGVycy5zZXQoXCJMb2NhdGlvblwiLCB2YWxpZGF0ZVVSTCh1cmwpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UobnVsbCwge1xuICAgICAgICAgICAgLi4uaW5pdE9iaixcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXNcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyByZXdyaXRlKGRlc3RpbmF0aW9uLCBpbml0KSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0LmhlYWRlcnMpO1xuICAgICAgICBoZWFkZXJzLnNldChcIngtbWlkZGxld2FyZS1yZXdyaXRlXCIsIHZhbGlkYXRlVVJMKGRlc3RpbmF0aW9uKSk7XG4gICAgICAgIGhhbmRsZU1pZGRsZXdhcmVGaWVsZChpbml0LCBoZWFkZXJzKTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UobnVsbCwge1xuICAgICAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgICAgIGhlYWRlcnNcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBuZXh0KGluaXQpIHtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuaGVhZGVycyk7XG4gICAgICAgIGhlYWRlcnMuc2V0KFwieC1taWRkbGV3YXJlLW5leHRcIiwgXCIxXCIpO1xuICAgICAgICBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgaGVhZGVycyk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzcG9uc2UuanMubWFwIl0sIm5hbWVzIjpbIk5leHRVUkwiLCJ0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzIiwidmFsaWRhdGVVUkwiLCJSZXNwb25zZUNvb2tpZXMiLCJJTlRFUk5BTFMiLCJTeW1ib2wiLCJSRURJUkVDVFMiLCJTZXQiLCJoYW5kbGVNaWRkbGV3YXJlRmllbGQiLCJpbml0IiwiaGVhZGVycyIsIl9pbml0X3JlcXVlc3QiLCJyZXF1ZXN0IiwiSGVhZGVycyIsIkVycm9yIiwia2V5cyIsImtleSIsInZhbHVlIiwic2V0IiwicHVzaCIsImpvaW4iLCJOZXh0UmVzcG9uc2UiLCJSZXNwb25zZSIsImNvbnN0cnVjdG9yIiwiYm9keSIsImNvb2tpZXMiLCJ1cmwiLCJuZXh0Q29uZmlnIiwidW5kZWZpbmVkIiwiZm9yIiwiYm9keVVzZWQiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsIm9rIiwicmVkaXJlY3RlZCIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJ0eXBlIiwianNvbiIsInJlc3BvbnNlIiwicmVkaXJlY3QiLCJoYXMiLCJSYW5nZUVycm9yIiwiaW5pdE9iaiIsInJld3JpdGUiLCJkZXN0aW5hdGlvbiIsIm5leHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/spec-extension/response.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/server/web/utils.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/esm/server/web/utils.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fromNodeOutgoingHttpHeaders: () => (/* binding */ fromNodeOutgoingHttpHeaders),\n/* harmony export */ splitCookiesString: () => (/* binding */ splitCookiesString),\n/* harmony export */ toNodeOutgoingHttpHeaders: () => (/* binding */ toNodeOutgoingHttpHeaders),\n/* harmony export */ validateURL: () => (/* binding */ validateURL)\n/* harmony export */ });\n/**\n * Converts a Node.js IncomingHttpHeaders object to a Headers object. Any\n * headers with multiple values will be joined with a comma and space. Any\n * headers that have an undefined value will be ignored and others will be\n * coerced to strings.\n *\n * @param nodeHeaders the headers object to convert\n * @returns the converted headers object\n */ function fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === \"undefined\") continue;\n if (typeof v === \"number\") {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n \n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/ function splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n/**\n * Converts a Headers object to a Node.js OutgoingHttpHeaders object. This is\n * required to support the set-cookie header, which may have multiple values.\n *\n * @param headers the headers object to convert\n * @returns the converted headers object\n */ function toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === \"set-cookie\") {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\n/**\n * Validate the correctness of a user-provided URL.\n */ function validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n });\n }\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTQSw0QkFBNEJDLFdBQVc7SUFDdkQsTUFBTUMsVUFBVSxJQUFJQztJQUNwQixLQUFLLElBQUksQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUNOLGFBQWE7UUFDakQsTUFBTU8sU0FBU0MsTUFBTUMsT0FBTyxDQUFDTCxTQUFTQSxRQUFRO1lBQzFDQTtTQUNIO1FBQ0QsS0FBSyxJQUFJTSxLQUFLSCxPQUFPO1lBQ2pCLElBQUksT0FBT0csTUFBTSxhQUFhO1lBQzlCLElBQUksT0FBT0EsTUFBTSxVQUFVO2dCQUN2QkEsSUFBSUEsRUFBRUMsUUFBUTtZQUNsQjtZQUNBVixRQUFRVyxNQUFNLENBQUNULEtBQUtPO1FBQ3hCO0lBQ0o7SUFDQSxPQUFPVDtBQUNYO0FBQ0E7Ozs7Ozs7OztBQVNBLEdBQVUsU0FBU1ksbUJBQW1CQyxhQUFhO0lBQy9DLElBQUlDLGlCQUFpQixFQUFFO0lBQ3ZCLElBQUlDLE1BQU07SUFDVixJQUFJQztJQUNKLElBQUlDO0lBQ0osSUFBSUM7SUFDSixJQUFJQztJQUNKLElBQUlDO0lBQ0osU0FBU0M7UUFDTCxNQUFNTixNQUFNRixjQUFjUyxNQUFNLElBQUksS0FBS0MsSUFBSSxDQUFDVixjQUFjVyxNQUFNLENBQUNULE1BQU07WUFDckVBLE9BQU87UUFDWDtRQUNBLE9BQU9BLE1BQU1GLGNBQWNTLE1BQU07SUFDckM7SUFDQSxTQUFTRztRQUNMUixLQUFLSixjQUFjVyxNQUFNLENBQUNUO1FBQzFCLE9BQU9FLE9BQU8sT0FBT0EsT0FBTyxPQUFPQSxPQUFPO0lBQzlDO0lBQ0EsTUFBTUYsTUFBTUYsY0FBY1MsTUFBTSxDQUFDO1FBQzdCTixRQUFRRDtRQUNSSyx3QkFBd0I7UUFDeEIsTUFBTUMsaUJBQWlCO1lBQ25CSixLQUFLSixjQUFjVyxNQUFNLENBQUNUO1lBQzFCLElBQUlFLE9BQU8sS0FBSztnQkFDWix1RUFBdUU7Z0JBQ3ZFQyxZQUFZSDtnQkFDWkEsT0FBTztnQkFDUE07Z0JBQ0FGLFlBQVlKO2dCQUNaLE1BQU1BLE1BQU1GLGNBQWNTLE1BQU0sSUFBSUcsaUJBQWlCO29CQUNqRFYsT0FBTztnQkFDWDtnQkFDQSw4QkFBOEI7Z0JBQzlCLElBQUlBLE1BQU1GLGNBQWNTLE1BQU0sSUFBSVQsY0FBY1csTUFBTSxDQUFDVCxTQUFTLEtBQUs7b0JBQ2pFLDZCQUE2QjtvQkFDN0JLLHdCQUF3QjtvQkFDeEIsMkRBQTJEO29CQUMzREwsTUFBTUk7b0JBQ05MLGVBQWVZLElBQUksQ0FBQ2IsY0FBY2MsU0FBUyxDQUFDWCxPQUFPRTtvQkFDbkRGLFFBQVFEO2dCQUNaLE9BQU87b0JBQ0gsdUNBQXVDO29CQUN2Qyw4QkFBOEI7b0JBQzlCQSxNQUFNRyxZQUFZO2dCQUN0QjtZQUNKLE9BQU87Z0JBQ0hILE9BQU87WUFDWDtRQUNKO1FBQ0EsSUFBSSxDQUFDSyx5QkFBeUJMLE9BQU9GLGNBQWNTLE1BQU0sRUFBRTtZQUN2RFIsZUFBZVksSUFBSSxDQUFDYixjQUFjYyxTQUFTLENBQUNYLE9BQU9ILGNBQWNTLE1BQU07UUFDM0U7SUFDSjtJQUNBLE9BQU9SO0FBQ1g7QUFDQTs7Ozs7O0NBTUMsR0FBVSxTQUFTYywwQkFBMEI1QixPQUFPO0lBQ2pELE1BQU1ELGNBQWMsQ0FBQztJQUNyQixNQUFNOEIsVUFBVSxFQUFFO0lBQ2xCLElBQUk3QixTQUFTO1FBQ1QsS0FBSyxNQUFNLENBQUNFLEtBQUtDLE1BQU0sSUFBSUgsUUFBUUssT0FBTyxHQUFHO1lBQ3pDLElBQUlILElBQUk0QixXQUFXLE9BQU8sY0FBYztnQkFDcEMsbUVBQW1FO2dCQUNuRSxrRUFBa0U7Z0JBQ2xFLGdDQUFnQztnQkFDaENELFFBQVFILElBQUksSUFBSWQsbUJBQW1CVDtnQkFDbkNKLFdBQVcsQ0FBQ0csSUFBSSxHQUFHMkIsUUFBUVAsTUFBTSxLQUFLLElBQUlPLE9BQU8sQ0FBQyxFQUFFLEdBQUdBO1lBQzNELE9BQU87Z0JBQ0g5QixXQUFXLENBQUNHLElBQUksR0FBR0M7WUFDdkI7UUFDSjtJQUNKO0lBQ0EsT0FBT0o7QUFDWDtBQUNBOztDQUVDLEdBQVUsU0FBU2dDLFlBQVlDLEdBQUc7SUFDL0IsSUFBSTtRQUNBLE9BQU9DLE9BQU8sSUFBSUMsSUFBSUQsT0FBT0Q7SUFDakMsRUFBRSxPQUFPRyxPQUFPO1FBQ1osTUFBTSxJQUFJQyxNQUFNLENBQUMsa0JBQWtCLEVBQUVILE9BQU9ELEtBQUssNEZBQTRGLENBQUMsRUFBRTtZQUM1SUssT0FBT0Y7UUFDWDtJQUNKO0FBQ0osRUFFQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi91dGlscy5qcz9mMjE0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYSBOb2RlLmpzIEluY29taW5nSHR0cEhlYWRlcnMgb2JqZWN0IHRvIGEgSGVhZGVycyBvYmplY3QuIEFueVxuICogaGVhZGVycyB3aXRoIG11bHRpcGxlIHZhbHVlcyB3aWxsIGJlIGpvaW5lZCB3aXRoIGEgY29tbWEgYW5kIHNwYWNlLiBBbnlcbiAqIGhlYWRlcnMgdGhhdCBoYXZlIGFuIHVuZGVmaW5lZCB2YWx1ZSB3aWxsIGJlIGlnbm9yZWQgYW5kIG90aGVycyB3aWxsIGJlXG4gKiBjb2VyY2VkIHRvIHN0cmluZ3MuXG4gKlxuICogQHBhcmFtIG5vZGVIZWFkZXJzIHRoZSBoZWFkZXJzIG9iamVjdCB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyB0aGUgY29udmVydGVkIGhlYWRlcnMgb2JqZWN0XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhub2RlSGVhZGVycykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub2RlSGVhZGVycykpe1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChsZXQgdiBvZiB2YWx1ZXMpe1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSBcInVuZGVmaW5lZFwiKSBjb250aW51ZTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIHYgPSB2LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzO1xufVxuLypcbiAgU2V0LUNvb2tpZSBoZWFkZXIgZmllbGQtdmFsdWVzIGFyZSBzb21ldGltZXMgY29tbWEgam9pbmVkIGluIG9uZSBzdHJpbmcuIFRoaXMgc3BsaXRzIHRoZW0gd2l0aG91dCBjaG9raW5nIG9uIGNvbW1hc1xuICB0aGF0IGFyZSB3aXRoaW4gYSBzaW5nbGUgc2V0LWNvb2tpZSBmaWVsZC12YWx1ZSwgc3VjaCBhcyBpbiB0aGUgRXhwaXJlcyBwb3J0aW9uLlxuICBUaGlzIGlzIHVuY29tbW9uLCBidXQgZXhwbGljaXRseSBhbGxvd2VkIC0gc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNjE2I3NlY3Rpb24tNC4yXG4gIE5vZGUuanMgZG9lcyB0aGlzIGZvciBldmVyeSBoZWFkZXIgKmV4Y2VwdCogc2V0LWNvb2tpZSAtIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi9kNWUzNjNiNzdlYmFmMWNhZjY3Y2Q3NTI4MjI0YjY1MWM4NjgxNWMxL2xpYi9faHR0cF9pbmNvbWluZy5qcyNMMTI4XG4gIFJlYWN0IE5hdGl2ZSdzIGZldGNoIGRvZXMgdGhpcyBmb3IgKmV2ZXJ5KiBoZWFkZXIsIGluY2x1ZGluZyBzZXQtY29va2llLlxuICBcbiAgQmFzZWQgb246IGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvajJvYmpjL2NvbW1pdC8xNjgyMGZkYmM4Zjc2Y2EwYzMzNDcyODEwY2UwY2IwM2QyMGVmZTI1XG4gIENyZWRpdHMgdG86IGh0dHBzOi8vZ2l0aHViLmNvbS90b21iYWxsIGZvciBvcmlnaW5hbCBhbmQgaHR0cHM6Ly9naXRodWIuY29tL2NocnVzYXJ0IGZvciBKYXZhU2NyaXB0IGltcGxlbWVudGF0aW9uXG4qLyBleHBvcnQgZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgICB2YXIgY29va2llc1N0cmluZ3MgPSBbXTtcbiAgICB2YXIgcG9zID0gMDtcbiAgICB2YXIgc3RhcnQ7XG4gICAgdmFyIGNoO1xuICAgIHZhciBsYXN0Q29tbWE7XG4gICAgdmFyIG5leHRTdGFydDtcbiAgICB2YXIgY29va2llc1NlcGFyYXRvckZvdW5kO1xuICAgIGZ1bmN0aW9uIHNraXBXaGl0ZXNwYWNlKCkge1xuICAgICAgICB3aGlsZShwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiAvXFxzLy50ZXN0KGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykpKXtcbiAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgICAgcmV0dXJuIGNoICE9PSBcIj1cIiAmJiBjaCAhPT0gXCI7XCIgJiYgY2ggIT09IFwiLFwiO1xuICAgIH1cbiAgICB3aGlsZShwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCl7XG4gICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICAgICAgd2hpbGUoc2tpcFdoaXRlc3BhY2UoKSl7XG4gICAgICAgICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICAgICAgICBpZiAoY2ggPT09IFwiLFwiKSB7XG4gICAgICAgICAgICAgICAgLy8gJywnIGlzIGEgY29va2llIHNlcGFyYXRvciBpZiB3ZSBoYXZlIGxhdGVyIGZpcnN0ICc9Jywgbm90ICc7JyBvciAnLCdcbiAgICAgICAgICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICAgICAgc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgICAgICAgICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgbm90U3BlY2lhbENoYXIoKSl7XG4gICAgICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50bHkgc3BlY2lhbCBjaGFyYWN0ZXJcbiAgICAgICAgICAgICAgICBpZiAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgY29va2llc1N0cmluZy5jaGFyQXQocG9zKSA9PT0gXCI9XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgZm91bmQgY29va2llcyBzZXBhcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcG9zIGlzIGluc2lkZSB0aGUgbmV4dCBjb29raWUsIHNvIGJhY2sgdXAgYW5kIHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbmV4dFN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBsYXN0Q29tbWEpKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaW4gcGFyYW0gJywnIG9yIHBhcmFtIHNlcGFyYXRvciAnOycsXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGNvbnRpbnVlIGZyb20gdGhhdCBjb21tYVxuICAgICAgICAgICAgICAgICAgICBwb3MgPSBsYXN0Q29tbWEgKyAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjb29raWVzU2VwYXJhdG9yRm91bmQgfHwgcG9zID49IGNvb2tpZXNTdHJpbmcubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBjb29raWVzU3RyaW5nLmxlbmd0aCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb29raWVzU3RyaW5ncztcbn1cbi8qKlxuICogQ29udmVydHMgYSBIZWFkZXJzIG9iamVjdCB0byBhIE5vZGUuanMgT3V0Z29pbmdIdHRwSGVhZGVycyBvYmplY3QuIFRoaXMgaXNcbiAqIHJlcXVpcmVkIHRvIHN1cHBvcnQgdGhlIHNldC1jb29raWUgaGVhZGVyLCB3aGljaCBtYXkgaGF2ZSBtdWx0aXBsZSB2YWx1ZXMuXG4gKlxuICogQHBhcmFtIGhlYWRlcnMgdGhlIGhlYWRlcnMgb2JqZWN0IHRvIGNvbnZlcnRcbiAqIEByZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaGVhZGVycyBvYmplY3RcbiAqLyBleHBvcnQgZnVuY3Rpb24gdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhoZWFkZXJzKSB7XG4gICAgY29uc3Qgbm9kZUhlYWRlcnMgPSB7fTtcbiAgICBjb25zdCBjb29raWVzID0gW107XG4gICAgaWYgKGhlYWRlcnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgaGVhZGVycy5lbnRyaWVzKCkpe1xuICAgICAgICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBcInNldC1jb29raWVcIikge1xuICAgICAgICAgICAgICAgIC8vIFdlIG1heSBoYXZlIGdvdHRlbiBhIGNvbW1hIGpvaW5lZCBzdHJpbmcgb2YgY29va2llcywgb3IgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAvLyBzZXQtY29va2llIGhlYWRlcnMuIFdlIG5lZWQgdG8gbWVyZ2UgdGhlbSBpbnRvIG9uZSBoZWFkZXIgYXJyYXlcbiAgICAgICAgICAgICAgICAvLyB0byByZXByZXNlbnQgYWxsIHRoZSBjb29raWVzLlxuICAgICAgICAgICAgICAgIGNvb2tpZXMucHVzaCguLi5zcGxpdENvb2tpZXNTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgICAgICBub2RlSGVhZGVyc1trZXldID0gY29va2llcy5sZW5ndGggPT09IDEgPyBjb29raWVzWzBdIDogY29va2llcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2RlSGVhZGVycztcbn1cbi8qKlxuICogVmFsaWRhdGUgdGhlIGNvcnJlY3RuZXNzIG9mIGEgdXNlci1wcm92aWRlZCBVUkwuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVVJMKHVybCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcobmV3IFVSTChTdHJpbmcodXJsKSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVVJMIGlzIG1hbGZvcm1lZCBcIiR7U3RyaW5nKHVybCl9XCIuIFBsZWFzZSB1c2Ugb25seSBhYnNvbHV0ZSBVUkxzIC0gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZWxhdGl2ZS11cmxzYCwge1xuICAgICAgICAgICAgY2F1c2U6IGVycm9yXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbImZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyIsIm5vZGVIZWFkZXJzIiwiaGVhZGVycyIsIkhlYWRlcnMiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJ2YWx1ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJ2IiwidG9TdHJpbmciLCJhcHBlbmQiLCJzcGxpdENvb2tpZXNTdHJpbmciLCJjb29raWVzU3RyaW5nIiwiY29va2llc1N0cmluZ3MiLCJwb3MiLCJzdGFydCIsImNoIiwibGFzdENvbW1hIiwibmV4dFN0YXJ0IiwiY29va2llc1NlcGFyYXRvckZvdW5kIiwic2tpcFdoaXRlc3BhY2UiLCJsZW5ndGgiLCJ0ZXN0IiwiY2hhckF0Iiwibm90U3BlY2lhbENoYXIiLCJwdXNoIiwic3Vic3RyaW5nIiwidG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyIsImNvb2tpZXMiLCJ0b0xvd2VyQ2FzZSIsInZhbGlkYXRlVVJMIiwidXJsIiwiU3RyaW5nIiwiVVJMIiwiZXJyb3IiLCJFcnJvciIsImNhdXNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/server/web/utils.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/constants.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/constants.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ APP_BUILD_MANIFEST: () => (/* binding */ APP_BUILD_MANIFEST),\n/* harmony export */ APP_CLIENT_INTERNALS: () => (/* binding */ APP_CLIENT_INTERNALS),\n/* harmony export */ APP_PATHS_MANIFEST: () => (/* binding */ APP_PATHS_MANIFEST),\n/* harmony export */ APP_PATH_ROUTES_MANIFEST: () => (/* binding */ APP_PATH_ROUTES_MANIFEST),\n/* harmony export */ BARREL_OPTIMIZATION_PREFIX: () => (/* binding */ BARREL_OPTIMIZATION_PREFIX),\n/* harmony export */ BLOCKED_PAGES: () => (/* binding */ BLOCKED_PAGES),\n/* harmony export */ BUILD_ID_FILE: () => (/* binding */ BUILD_ID_FILE),\n/* harmony export */ BUILD_MANIFEST: () => (/* binding */ BUILD_MANIFEST),\n/* harmony export */ CLIENT_PUBLIC_FILES_PATH: () => (/* binding */ CLIENT_PUBLIC_FILES_PATH),\n/* harmony export */ CLIENT_REFERENCE_MANIFEST: () => (/* binding */ CLIENT_REFERENCE_MANIFEST),\n/* harmony export */ CLIENT_STATIC_FILES_PATH: () => (/* binding */ CLIENT_STATIC_FILES_PATH),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_AMP: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_AMP),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_MAIN: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_MAIN),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_MAIN_APP),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_POLYFILLS),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_WEBPACK: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_WEBPACK),\n/* harmony export */ COMPILER_INDEXES: () => (/* binding */ COMPILER_INDEXES),\n/* harmony export */ COMPILER_NAMES: () => (/* binding */ COMPILER_NAMES),\n/* harmony export */ CONFIG_FILES: () => (/* binding */ CONFIG_FILES),\n/* harmony export */ DEFAULT_SANS_SERIF_FONT: () => (/* binding */ DEFAULT_SANS_SERIF_FONT),\n/* harmony export */ DEFAULT_SERIF_FONT: () => (/* binding */ DEFAULT_SERIF_FONT),\n/* harmony export */ DEV_CLIENT_PAGES_MANIFEST: () => (/* binding */ DEV_CLIENT_PAGES_MANIFEST),\n/* harmony export */ DEV_MIDDLEWARE_MANIFEST: () => (/* binding */ DEV_MIDDLEWARE_MANIFEST),\n/* harmony export */ EDGE_RUNTIME_WEBPACK: () => (/* binding */ EDGE_RUNTIME_WEBPACK),\n/* harmony export */ EDGE_UNSUPPORTED_NODE_APIS: () => (/* binding */ EDGE_UNSUPPORTED_NODE_APIS),\n/* harmony export */ EXPORT_DETAIL: () => (/* binding */ EXPORT_DETAIL),\n/* harmony export */ EXPORT_MARKER: () => (/* binding */ EXPORT_MARKER),\n/* harmony export */ FONT_MANIFEST: () => (/* binding */ FONT_MANIFEST),\n/* harmony export */ FUNCTIONS_CONFIG_MANIFEST: () => (/* binding */ FUNCTIONS_CONFIG_MANIFEST),\n/* harmony export */ GOOGLE_FONT_PROVIDER: () => (/* binding */ GOOGLE_FONT_PROVIDER),\n/* harmony export */ IMAGES_MANIFEST: () => (/* binding */ IMAGES_MANIFEST),\n/* harmony export */ INTERNAL_HEADERS: () => (/* binding */ INTERNAL_HEADERS),\n/* harmony export */ MIDDLEWARE_BUILD_MANIFEST: () => (/* binding */ MIDDLEWARE_BUILD_MANIFEST),\n/* harmony export */ MIDDLEWARE_MANIFEST: () => (/* binding */ MIDDLEWARE_MANIFEST),\n/* harmony export */ MIDDLEWARE_REACT_LOADABLE_MANIFEST: () => (/* binding */ MIDDLEWARE_REACT_LOADABLE_MANIFEST),\n/* harmony export */ MODERN_BROWSERSLIST_TARGET: () => (/* reexport default from dynamic */ _modern_browserslist_target__WEBPACK_IMPORTED_MODULE_0___default.a),\n/* harmony export */ NEXT_BUILTIN_DOCUMENT: () => (/* binding */ NEXT_BUILTIN_DOCUMENT),\n/* harmony export */ NEXT_FONT_MANIFEST: () => (/* binding */ NEXT_FONT_MANIFEST),\n/* harmony export */ OPTIMIZED_FONT_PROVIDERS: () => (/* binding */ OPTIMIZED_FONT_PROVIDERS),\n/* harmony export */ PAGES_MANIFEST: () => (/* binding */ PAGES_MANIFEST),\n/* harmony export */ PHASE_DEVELOPMENT_SERVER: () => (/* binding */ PHASE_DEVELOPMENT_SERVER),\n/* harmony export */ PHASE_EXPORT: () => (/* binding */ PHASE_EXPORT),\n/* harmony export */ PHASE_INFO: () => (/* binding */ PHASE_INFO),\n/* harmony export */ PHASE_PRODUCTION_BUILD: () => (/* binding */ PHASE_PRODUCTION_BUILD),\n/* harmony export */ PHASE_PRODUCTION_SERVER: () => (/* binding */ PHASE_PRODUCTION_SERVER),\n/* harmony export */ PHASE_TEST: () => (/* binding */ PHASE_TEST),\n/* harmony export */ PRERENDER_MANIFEST: () => (/* binding */ PRERENDER_MANIFEST),\n/* harmony export */ REACT_LOADABLE_MANIFEST: () => (/* binding */ REACT_LOADABLE_MANIFEST),\n/* harmony export */ ROUTES_MANIFEST: () => (/* binding */ ROUTES_MANIFEST),\n/* harmony export */ RSC_MODULE_TYPES: () => (/* binding */ RSC_MODULE_TYPES),\n/* harmony export */ SERVER_DIRECTORY: () => (/* binding */ SERVER_DIRECTORY),\n/* harmony export */ SERVER_FILES_MANIFEST: () => (/* binding */ SERVER_FILES_MANIFEST),\n/* harmony export */ SERVER_PROPS_ID: () => (/* binding */ SERVER_PROPS_ID),\n/* harmony export */ SERVER_REFERENCE_MANIFEST: () => (/* binding */ SERVER_REFERENCE_MANIFEST),\n/* harmony export */ STATIC_PROPS_ID: () => (/* binding */ STATIC_PROPS_ID),\n/* harmony export */ STATIC_STATUS_PAGES: () => (/* binding */ STATIC_STATUS_PAGES),\n/* harmony export */ STRING_LITERAL_DROP_BUNDLE: () => (/* binding */ STRING_LITERAL_DROP_BUNDLE),\n/* harmony export */ SUBRESOURCE_INTEGRITY_MANIFEST: () => (/* binding */ SUBRESOURCE_INTEGRITY_MANIFEST),\n/* harmony export */ SYSTEM_ENTRYPOINTS: () => (/* binding */ SYSTEM_ENTRYPOINTS),\n/* harmony export */ TRACE_OUTPUT_VERSION: () => (/* binding */ TRACE_OUTPUT_VERSION),\n/* harmony export */ TURBO_TRACE_DEFAULT_MEMORY_LIMIT: () => (/* binding */ TURBO_TRACE_DEFAULT_MEMORY_LIMIT)\n/* harmony export */ });\n/* harmony import */ var _modern_browserslist_target__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modern-browserslist-target */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/modern-browserslist-target.js\");\n/* harmony import */ var _modern_browserslist_target__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_modern_browserslist_target__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconst COMPILER_NAMES = {\n client: \"client\",\n server: \"server\",\n edgeServer: \"edge-server\"\n};\n/**\n * Headers that are set by the Next.js server and should be stripped from the\n * request headers going to the user's application.\n */ const INTERNAL_HEADERS = [\n \"x-invoke-error\",\n \"x-invoke-output\",\n \"x-invoke-path\",\n \"x-invoke-query\",\n \"x-invoke-status\",\n \"x-middleware-invoke\"\n];\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\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 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 DEV_MIDDLEWARE_MANIFEST = \"_devMiddlewareManifest.json\";\nconst REACT_LOADABLE_MANIFEST = \"react-loadable-manifest.json\";\nconst FONT_MANIFEST = \"font-manifest.json\";\nconst SERVER_DIRECTORY = \"server\";\nconst CONFIG_FILES = [\n \"next.config.js\",\n \"next.config.mjs\"\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__\";\n// server/[entry]/page_client-reference-manifest.js\nconst CLIENT_REFERENCE_MANIFEST = \"client-reference-manifest\";\n// server/server-reference-manifest\nconst SERVER_REFERENCE_MANIFEST = \"server-reference-manifest\";\n// server/middleware-build-manifest.js\nconst MIDDLEWARE_BUILD_MANIFEST = \"middleware-build-manifest\";\n// server/middleware-react-loadable-manifest.js\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = \"middleware-react-loadable-manifest\";\n// static/runtime/main.js\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\n// next internal client components chunk for layouts\nconst APP_CLIENT_INTERNALS = \"app-pages-internals\";\n// static/runtime/react-refresh.js\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\n// static/runtime/amp.js\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\n// static/runtime/webpack.js\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\n// static/runtime/polyfills.js\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = \"polyfills\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst EDGE_RUNTIME_WEBPACK = \"edge-runtime-webpack\";\nconst STATIC_PROPS_ID = \"__N_SSG\";\nconst SERVER_PROPS_ID = \"__N_SSP\";\nconst GOOGLE_FONT_PROVIDER = \"https://fonts.googleapis.com/\";\nconst OPTIMIZED_FONT_PROVIDERS = [\n {\n url: GOOGLE_FONT_PROVIDER,\n preconnect: \"https://fonts.gstatic.com\"\n },\n {\n url: \"https://use.typekit.net\",\n preconnect: \"https://use.typekit.net\"\n }\n];\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;\n// in `MB`\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: \"client\",\n server: \"server\"\n};\n// comparing\n// https://nextjs.org/docs/api-reference/edge-runtime\n// with\n// https://nodejs.org/docs/latest/api/globals.html\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]); //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc0U7QUFDaEM7QUFDL0IsTUFBTUMsaUJBQWlCO0lBQzFCQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsWUFBWTtBQUNoQixFQUFFO0FBQ0Y7OztDQUdDLEdBQVUsTUFBTUMsbUJBQW1CO0lBQ2hDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDSyxNQUFNQyxtQkFBbUI7SUFDNUIsQ0FBQ0wsZUFBZUMsTUFBTSxDQUFDLEVBQUU7SUFDekIsQ0FBQ0QsZUFBZUUsTUFBTSxDQUFDLEVBQUU7SUFDekIsQ0FBQ0YsZUFBZUcsVUFBVSxDQUFDLEVBQUU7QUFDakMsRUFBRTtBQUNLLE1BQU1HLGVBQWUsZUFBZTtBQUNwQyxNQUFNQyx5QkFBeUIseUJBQXlCO0FBQ3hELE1BQU1DLDBCQUEwQiwwQkFBMEI7QUFDMUQsTUFBTUMsMkJBQTJCLDJCQUEyQjtBQUM1RCxNQUFNQyxhQUFhLGFBQWE7QUFDaEMsTUFBTUMsYUFBYSxhQUFhO0FBQ2hDLE1BQU1DLGlCQUFpQixzQkFBc0I7QUFDN0MsTUFBTUMscUJBQXFCLDBCQUEwQjtBQUNyRCxNQUFNQywyQkFBMkIsZ0NBQWdDO0FBQ2pFLE1BQU1DLGlCQUFpQixzQkFBc0I7QUFDN0MsTUFBTUMscUJBQXFCLDBCQUEwQjtBQUNyRCxNQUFNQyw0QkFBNEIsaUNBQWlDO0FBQ25FLE1BQU1DLGlDQUFpQyxpQ0FBaUM7QUFDeEUsTUFBTUMscUJBQXFCLHFCQUFxQjtBQUNoRCxNQUFNQyxnQkFBZ0IscUJBQXFCO0FBQzNDLE1BQU1DLGdCQUFnQixxQkFBcUI7QUFDM0MsTUFBTUMscUJBQXFCLDBCQUEwQjtBQUNyRCxNQUFNQyxrQkFBa0IsdUJBQXVCO0FBQy9DLE1BQU1DLGtCQUFrQix1QkFBdUI7QUFDL0MsTUFBTUMsd0JBQXdCLDZCQUE2QjtBQUMzRCxNQUFNQyw0QkFBNEIseUJBQXlCO0FBQzNELE1BQU1DLHNCQUFzQiwyQkFBMkI7QUFDdkQsTUFBTUMsMEJBQTBCLDhCQUE4QjtBQUM5RCxNQUFNQywwQkFBMEIsK0JBQStCO0FBQy9ELE1BQU1DLGdCQUFnQixxQkFBcUI7QUFDM0MsTUFBTUMsbUJBQW1CLFNBQVM7QUFDbEMsTUFBTUMsZUFBZTtJQUN4QjtJQUNBO0NBQ0gsQ0FBQztBQUNLLE1BQU1DLGdCQUFnQixXQUFXO0FBQ2pDLE1BQU1DLGdCQUFnQjtJQUN6QjtJQUNBO0lBQ0E7Q0FDSCxDQUFDO0FBQ0ssTUFBTUMsMkJBQTJCLFNBQVM7QUFDMUMsTUFBTUMsMkJBQTJCLFNBQVM7QUFDMUMsTUFBTUMsNkJBQTZCLDRCQUE0QjtBQUMvRCxNQUFNQyx3QkFBd0IsNEJBQTRCO0FBQzFELE1BQU1DLDZCQUE2QixzQkFBc0I7QUFDaEUsbURBQW1EO0FBQzVDLE1BQU1DLDRCQUE0Qiw0QkFBNEI7QUFDckUsbUNBQW1DO0FBQzVCLE1BQU1DLDRCQUE0Qiw0QkFBNEI7QUFDckUsc0NBQXNDO0FBQy9CLE1BQU1DLDRCQUE0Qiw0QkFBNEI7QUFDckUsK0NBQStDO0FBQ3hDLE1BQU1DLHFDQUFxQyxxQ0FBcUM7QUFDdkYseUJBQXlCO0FBQ2xCLE1BQU1DLG1DQUFtQyxPQUFPO0FBQ2hELE1BQU1DLHVDQUF1QyxLQUFLRCxtQ0FBbUMsT0FBTztBQUNuRyxvREFBb0Q7QUFDN0MsTUFBTUUsdUJBQXVCLHNCQUFzQjtBQUMxRCxrQ0FBa0M7QUFDM0IsTUFBTUMsNENBQTRDLGdCQUFnQjtBQUN6RSx3QkFBd0I7QUFDakIsTUFBTUMsa0NBQWtDLE1BQU07QUFDckQsNEJBQTRCO0FBQ3JCLE1BQU1DLHNDQUFzQyxVQUFVO0FBQzdELDhCQUE4QjtBQUN2QixNQUFNQyx3Q0FBd0MsWUFBWTtBQUMxRCxNQUFNQywrQ0FBK0NDLE9BQU9GLHVDQUF1QztBQUNuRyxNQUFNRyx1QkFBdUIsdUJBQXVCO0FBQ3BELE1BQU1DLGtCQUFrQixVQUFVO0FBQ2xDLE1BQU1DLGtCQUFrQixVQUFVO0FBQ2xDLE1BQU1DLHVCQUF1QixnQ0FBZ0M7QUFDN0QsTUFBTUMsMkJBQTJCO0lBQ3BDO1FBQ0lDLEtBQUtGO1FBQ0xHLFlBQVk7SUFDaEI7SUFDQTtRQUNJRCxLQUFLO1FBQ0xDLFlBQVk7SUFDaEI7Q0FDSCxDQUFDO0FBQ0ssTUFBTUMscUJBQXFCO0lBQzlCQyxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2hCLEVBQUU7QUFDSyxNQUFNQywwQkFBMEI7SUFDbkNKLE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDaEIsRUFBRTtBQUNLLE1BQU1FLHNCQUFzQjtJQUMvQjtDQUNILENBQUM7QUFDSyxNQUFNQyx1QkFBdUIsRUFBRTtBQUN0QyxVQUFVO0FBQ0gsTUFBTUMsbUNBQW1DLEtBQUs7QUFDOUMsTUFBTUMsbUJBQW1CO0lBQzVCcEUsUUFBUTtJQUNSQyxRQUFRO0FBQ1osRUFBRTtBQUNGLFlBQVk7QUFDWixxREFBcUQ7QUFDckQsT0FBTztBQUNQLGtEQUFrRDtBQUMzQyxNQUFNb0UsNkJBQTZCO0lBQ3RDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0gsQ0FBQztBQUNLLE1BQU1DLHFCQUFxQixJQUFJQyxJQUFJO0lBQ3RDNUI7SUFDQUc7SUFDQUM7SUFDQUg7Q0FDSCxFQUFFLENBRUgscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvY29uc3RhbnRzLmpzPzJlMWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIGZyb20gXCIuL21vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0XCI7XG5leHBvcnQgeyBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCB9O1xuZXhwb3J0IGNvbnN0IENPTVBJTEVSX05BTUVTID0ge1xuICAgIGNsaWVudDogXCJjbGllbnRcIixcbiAgICBzZXJ2ZXI6IFwic2VydmVyXCIsXG4gICAgZWRnZVNlcnZlcjogXCJlZGdlLXNlcnZlclwiXG59O1xuLyoqXG4gKiBIZWFkZXJzIHRoYXQgYXJlIHNldCBieSB0aGUgTmV4dC5qcyBzZXJ2ZXIgYW5kIHNob3VsZCBiZSBzdHJpcHBlZCBmcm9tIHRoZVxuICogcmVxdWVzdCBoZWFkZXJzIGdvaW5nIHRvIHRoZSB1c2VyJ3MgYXBwbGljYXRpb24uXG4gKi8gZXhwb3J0IGNvbnN0IElOVEVSTkFMX0hFQURFUlMgPSBbXG4gICAgXCJ4LWludm9rZS1lcnJvclwiLFxuICAgIFwieC1pbnZva2Utb3V0cHV0XCIsXG4gICAgXCJ4LWludm9rZS1wYXRoXCIsXG4gICAgXCJ4LWludm9rZS1xdWVyeVwiLFxuICAgIFwieC1pbnZva2Utc3RhdHVzXCIsXG4gICAgXCJ4LW1pZGRsZXdhcmUtaW52b2tlXCJcbl07XG5leHBvcnQgY29uc3QgQ09NUElMRVJfSU5ERVhFUyA9IHtcbiAgICBbQ09NUElMRVJfTkFNRVMuY2xpZW50XTogMCxcbiAgICBbQ09NUElMRVJfTkFNRVMuc2VydmVyXTogMSxcbiAgICBbQ09NUElMRVJfTkFNRVMuZWRnZVNlcnZlcl06IDJcbn07XG5leHBvcnQgY29uc3QgUEhBU0VfRVhQT1JUID0gXCJwaGFzZS1leHBvcnRcIjtcbmV4cG9ydCBjb25zdCBQSEFTRV9QUk9EVUNUSU9OX0JVSUxEID0gXCJwaGFzZS1wcm9kdWN0aW9uLWJ1aWxkXCI7XG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIgPSBcInBoYXNlLXByb2R1Y3Rpb24tc2VydmVyXCI7XG5leHBvcnQgY29uc3QgUEhBU0VfREVWRUxPUE1FTlRfU0VSVkVSID0gXCJwaGFzZS1kZXZlbG9wbWVudC1zZXJ2ZXJcIjtcbmV4cG9ydCBjb25zdCBQSEFTRV9URVNUID0gXCJwaGFzZS10ZXN0XCI7XG5leHBvcnQgY29uc3QgUEhBU0VfSU5GTyA9IFwicGhhc2UtaW5mb1wiO1xuZXhwb3J0IGNvbnN0IFBBR0VTX01BTklGRVNUID0gXCJwYWdlcy1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgQVBQX1BBVEhTX01BTklGRVNUID0gXCJhcHAtcGF0aHMtbWFuaWZlc3QuanNvblwiO1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCA9IFwiYXBwLXBhdGgtcm91dGVzLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBCVUlMRF9NQU5JRkVTVCA9IFwiYnVpbGQtbWFuaWZlc3QuanNvblwiO1xuZXhwb3J0IGNvbnN0IEFQUF9CVUlMRF9NQU5JRkVTVCA9IFwiYXBwLWJ1aWxkLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBGVU5DVElPTlNfQ09ORklHX01BTklGRVNUID0gXCJmdW5jdGlvbnMtY29uZmlnLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QgPSBcInN1YnJlc291cmNlLWludGVncml0eS1tYW5pZmVzdFwiO1xuZXhwb3J0IGNvbnN0IE5FWFRfRk9OVF9NQU5JRkVTVCA9IFwibmV4dC1mb250LW1hbmlmZXN0XCI7XG5leHBvcnQgY29uc3QgRVhQT1JUX01BUktFUiA9IFwiZXhwb3J0LW1hcmtlci5qc29uXCI7XG5leHBvcnQgY29uc3QgRVhQT1JUX0RFVEFJTCA9IFwiZXhwb3J0LWRldGFpbC5qc29uXCI7XG5leHBvcnQgY29uc3QgUFJFUkVOREVSX01BTklGRVNUID0gXCJwcmVyZW5kZXItbWFuaWZlc3QuanNvblwiO1xuZXhwb3J0IGNvbnN0IFJPVVRFU19NQU5JRkVTVCA9IFwicm91dGVzLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBJTUFHRVNfTUFOSUZFU1QgPSBcImltYWdlcy1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgU0VSVkVSX0ZJTEVTX01BTklGRVNUID0gXCJyZXF1aXJlZC1zZXJ2ZXItZmlsZXMuanNvblwiO1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QgPSBcIl9kZXZQYWdlc01hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX01BTklGRVNUID0gXCJtaWRkbGV3YXJlLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBERVZfTUlERExFV0FSRV9NQU5JRkVTVCA9IFwiX2Rldk1pZGRsZXdhcmVNYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QgPSBcInJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBGT05UX01BTklGRVNUID0gXCJmb250LW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBTRVJWRVJfRElSRUNUT1JZID0gXCJzZXJ2ZXJcIjtcbmV4cG9ydCBjb25zdCBDT05GSUdfRklMRVMgPSBbXG4gICAgXCJuZXh0LmNvbmZpZy5qc1wiLFxuICAgIFwibmV4dC5jb25maWcubWpzXCJcbl07XG5leHBvcnQgY29uc3QgQlVJTERfSURfRklMRSA9IFwiQlVJTERfSURcIjtcbmV4cG9ydCBjb25zdCBCTE9DS0VEX1BBR0VTID0gW1xuICAgIFwiL19kb2N1bWVudFwiLFxuICAgIFwiL19hcHBcIixcbiAgICBcIi9fZXJyb3JcIlxuXTtcbmV4cG9ydCBjb25zdCBDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEggPSBcInB1YmxpY1wiO1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCA9IFwic3RhdGljXCI7XG5leHBvcnQgY29uc3QgU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUgPSBcIl9fTkVYVF9EUk9QX0NMSUVOVF9GSUxFX19cIjtcbmV4cG9ydCBjb25zdCBORVhUX0JVSUxUSU5fRE9DVU1FTlQgPSBcIl9fTkVYVF9CVUlMVElOX0RPQ1VNRU5UX19cIjtcbmV4cG9ydCBjb25zdCBCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCA9IFwiX19iYXJyZWxfb3B0aW1pemVfX1wiO1xuLy8gc2VydmVyL1tlbnRyeV0vcGFnZV9jbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCA9IFwiY2xpZW50LXJlZmVyZW5jZS1tYW5pZmVzdFwiO1xuLy8gc2VydmVyL3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3RcbmV4cG9ydCBjb25zdCBTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUID0gXCJzZXJ2ZXItcmVmZXJlbmNlLW1hbmlmZXN0XCI7XG4vLyBzZXJ2ZXIvbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QgPSBcIm1pZGRsZXdhcmUtYnVpbGQtbWFuaWZlc3RcIjtcbi8vIHNlcnZlci9taWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCA9IFwibWlkZGxld2FyZS1yZWFjdC1sb2FkYWJsZS1tYW5pZmVzdFwiO1xuLy8gc3RhdGljL3J1bnRpbWUvbWFpbi5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOID0gXCJtYWluXCI7XG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQID0gXCJcIiArIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOICsgXCItYXBwXCI7XG4vLyBuZXh0IGludGVybmFsIGNsaWVudCBjb21wb25lbnRzIGNodW5rIGZvciBsYXlvdXRzXG5leHBvcnQgY29uc3QgQVBQX0NMSUVOVF9JTlRFUk5BTFMgPSBcImFwcC1wYWdlcy1pbnRlcm5hbHNcIjtcbi8vIHN0YXRpYy9ydW50aW1lL3JlYWN0LXJlZnJlc2guanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCA9IFwicmVhY3QtcmVmcmVzaFwiO1xuLy8gc3RhdGljL3J1bnRpbWUvYW1wLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCA9IFwiYW1wXCI7XG4vLyBzdGF0aWMvcnVudGltZS93ZWJwYWNrLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1dFQlBBQ0sgPSBcIndlYnBhY2tcIjtcbi8vIHN0YXRpYy9ydW50aW1lL3BvbHlmaWxscy5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFMgPSBcInBvbHlmaWxsc1wiO1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFNfU1lNQk9MID0gU3ltYm9sKENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFMpO1xuZXhwb3J0IGNvbnN0IEVER0VfUlVOVElNRV9XRUJQQUNLID0gXCJlZGdlLXJ1bnRpbWUtd2VicGFja1wiO1xuZXhwb3J0IGNvbnN0IFNUQVRJQ19QUk9QU19JRCA9IFwiX19OX1NTR1wiO1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9QUk9QU19JRCA9IFwiX19OX1NTUFwiO1xuZXhwb3J0IGNvbnN0IEdPT0dMRV9GT05UX1BST1ZJREVSID0gXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL1wiO1xuZXhwb3J0IGNvbnN0IE9QVElNSVpFRF9GT05UX1BST1ZJREVSUyA9IFtcbiAgICB7XG4gICAgICAgIHVybDogR09PR0xFX0ZPTlRfUFJPVklERVIsXG4gICAgICAgIHByZWNvbm5lY3Q6IFwiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbVwiXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHVybDogXCJodHRwczovL3VzZS50eXBla2l0Lm5ldFwiLFxuICAgICAgICBwcmVjb25uZWN0OiBcImh0dHBzOi8vdXNlLnR5cGVraXQubmV0XCJcbiAgICB9XG5dO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VSSUZfRk9OVCA9IHtcbiAgICBuYW1lOiBcIlRpbWVzIE5ldyBSb21hblwiLFxuICAgIHhBdmdDaGFyV2lkdGg6IDgyMSxcbiAgICBhekF2Z1dpZHRoOiA4NTQuMzk1MzQ4ODM3MjA5MyxcbiAgICB1bml0c1BlckVtOiAyMDQ4XG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0FOU19TRVJJRl9GT05UID0ge1xuICAgIG5hbWU6IFwiQXJpYWxcIixcbiAgICB4QXZnQ2hhcldpZHRoOiA5MDQsXG4gICAgYXpBdmdXaWR0aDogOTM0LjUxMTYyNzkwNjk3NjcsXG4gICAgdW5pdHNQZXJFbTogMjA0OFxufTtcbmV4cG9ydCBjb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VTID0gW1xuICAgIFwiLzUwMFwiXG5dO1xuZXhwb3J0IGNvbnN0IFRSQUNFX09VVFBVVF9WRVJTSU9OID0gMTtcbi8vIGluIGBNQmBcbmV4cG9ydCBjb25zdCBUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCA9IDYwMDA7XG5leHBvcnQgY29uc3QgUlNDX01PRFVMRV9UWVBFUyA9IHtcbiAgICBjbGllbnQ6IFwiY2xpZW50XCIsXG4gICAgc2VydmVyOiBcInNlcnZlclwiXG59O1xuLy8gY29tcGFyaW5nXG4vLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2VkZ2UtcnVudGltZVxuLy8gd2l0aFxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0L2FwaS9nbG9iYWxzLmh0bWxcbmV4cG9ydCBjb25zdCBFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyA9IFtcbiAgICBcImNsZWFySW1tZWRpYXRlXCIsXG4gICAgXCJzZXRJbW1lZGlhdGVcIixcbiAgICBcIkJyb2FkY2FzdENoYW5uZWxcIixcbiAgICBcIkJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lcIixcbiAgICBcIkNvbXByZXNzaW9uU3RyZWFtXCIsXG4gICAgXCJDb3VudFF1ZXVpbmdTdHJhdGVneVwiLFxuICAgIFwiRGVjb21wcmVzc2lvblN0cmVhbVwiLFxuICAgIFwiRG9tRXhjZXB0aW9uXCIsXG4gICAgXCJNZXNzYWdlQ2hhbm5lbFwiLFxuICAgIFwiTWVzc2FnZUV2ZW50XCIsXG4gICAgXCJNZXNzYWdlUG9ydFwiLFxuICAgIFwiUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlclwiLFxuICAgIFwiUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdFwiLFxuICAgIFwiUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclwiLFxuICAgIFwiVHJhbnNmb3JtU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJcIixcbiAgICBcIldyaXRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJcIlxuXTtcbmV4cG9ydCBjb25zdCBTWVNURU1fRU5UUllQT0lOVFMgPSBuZXcgU2V0KFtcbiAgICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTixcbiAgICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCxcbiAgICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QLFxuICAgIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOX0FQUFxuXSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJDT01QSUxFUl9OQU1FUyIsImNsaWVudCIsInNlcnZlciIsImVkZ2VTZXJ2ZXIiLCJJTlRFUk5BTF9IRUFERVJTIiwiQ09NUElMRVJfSU5ERVhFUyIsIlBIQVNFX0VYUE9SVCIsIlBIQVNFX1BST0RVQ1RJT05fQlVJTEQiLCJQSEFTRV9QUk9EVUNUSU9OX1NFUlZFUiIsIlBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiIsIlBIQVNFX1RFU1QiLCJQSEFTRV9JTkZPIiwiUEFHRVNfTUFOSUZFU1QiLCJBUFBfUEFUSFNfTUFOSUZFU1QiLCJBUFBfUEFUSF9ST1VURVNfTUFOSUZFU1QiLCJCVUlMRF9NQU5JRkVTVCIsIkFQUF9CVUlMRF9NQU5JRkVTVCIsIkZVTkNUSU9OU19DT05GSUdfTUFOSUZFU1QiLCJTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QiLCJORVhUX0ZPTlRfTUFOSUZFU1QiLCJFWFBPUlRfTUFSS0VSIiwiRVhQT1JUX0RFVEFJTCIsIlBSRVJFTkRFUl9NQU5JRkVTVCIsIlJPVVRFU19NQU5JRkVTVCIsIklNQUdFU19NQU5JRkVTVCIsIlNFUlZFUl9GSUxFU19NQU5JRkVTVCIsIkRFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QiLCJNSURETEVXQVJFX01BTklGRVNUIiwiREVWX01JRERMRVdBUkVfTUFOSUZFU1QiLCJSRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCIsIkZPTlRfTUFOSUZFU1QiLCJTRVJWRVJfRElSRUNUT1JZIiwiQ09ORklHX0ZJTEVTIiwiQlVJTERfSURfRklMRSIsIkJMT0NLRURfUEFHRVMiLCJDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEgiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEgiLCJTVFJJTkdfTElURVJBTF9EUk9QX0JVTkRMRSIsIk5FWFRfQlVJTFRJTl9ET0NVTUVOVCIsIkJBUlJFTF9PUFRJTUlaQVRJT05fUFJFRklYIiwiQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCIsIlNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJNSURETEVXQVJFX0JVSUxEX01BTklGRVNUIiwiTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQIiwiQVBQX0NMSUVOVF9JTlRFUk5BTFMiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfV0VCUEFDSyIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFMiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCIsIlN5bWJvbCIsIkVER0VfUlVOVElNRV9XRUJQQUNLIiwiU1RBVElDX1BST1BTX0lEIiwiU0VSVkVSX1BST1BTX0lEIiwiR09PR0xFX0ZPTlRfUFJPVklERVIiLCJPUFRJTUlaRURfRk9OVF9QUk9WSURFUlMiLCJ1cmwiLCJwcmVjb25uZWN0IiwiREVGQVVMVF9TRVJJRl9GT05UIiwibmFtZSIsInhBdmdDaGFyV2lkdGgiLCJhekF2Z1dpZHRoIiwidW5pdHNQZXJFbSIsIkRFRkFVTFRfU0FOU19TRVJJRl9GT05UIiwiU1RBVElDX1NUQVRVU19QQUdFUyIsIlRSQUNFX09VVFBVVF9WRVJTSU9OIiwiVFVSQk9fVFJBQ0VfREVGQVVMVF9NRU1PUllfTElNSVQiLCJSU0NfTU9EVUxFX1RZUEVTIiwiRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMiLCJTWVNURU1fRU5UUllQT0lOVFMiLCJTZXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/constants.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/get-hostname.js": +/*!***************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/get-hostname.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getHostname: () => (/* binding */ getHostname)\n/* harmony export */ });\n/**\n * Takes an object with a hostname property (like a parsed URL) and some\n * headers that may contain Host and returns the preferred hostname.\n * @param parsed An object containing a hostname property.\n * @param headers A dictionary with headers containing a `host`.\n */ function getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(\":\", 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n} //# sourceMappingURL=get-hostname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7OztDQUtDLEdBQVUsU0FBU0EsWUFBWUMsTUFBTSxFQUFFQyxPQUFPO0lBQzNDLDJFQUEyRTtJQUMzRSxZQUFZO0lBQ1osSUFBSUM7SUFDSixJQUFJLENBQUNELFdBQVcsT0FBTyxLQUFLLElBQUlBLFFBQVFFLElBQUksS0FBSyxDQUFDQyxNQUFNQyxPQUFPLENBQUNKLFFBQVFFLElBQUksR0FBRztRQUMzRUQsV0FBV0QsUUFBUUUsSUFBSSxDQUFDRyxRQUFRLEdBQUdDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQ3ZELE9BQU8sSUFBSVAsT0FBT0UsUUFBUSxFQUFFO1FBQ3hCQSxXQUFXRixPQUFPRSxRQUFRO0lBQzlCLE9BQU87SUFDUCxPQUFPQSxTQUFTTSxXQUFXO0FBQy9CLEVBRUEsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLmpzPzc2MzEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUYWtlcyBhbiBvYmplY3Qgd2l0aCBhIGhvc3RuYW1lIHByb3BlcnR5IChsaWtlIGEgcGFyc2VkIFVSTCkgYW5kIHNvbWVcbiAqIGhlYWRlcnMgdGhhdCBtYXkgY29udGFpbiBIb3N0IGFuZCByZXR1cm5zIHRoZSBwcmVmZXJyZWQgaG9zdG5hbWUuXG4gKiBAcGFyYW0gcGFyc2VkIEFuIG9iamVjdCBjb250YWluaW5nIGEgaG9zdG5hbWUgcHJvcGVydHkuXG4gKiBAcGFyYW0gaGVhZGVycyBBIGRpY3Rpb25hcnkgd2l0aCBoZWFkZXJzIGNvbnRhaW5pbmcgYSBgaG9zdGAuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldEhvc3RuYW1lKHBhcnNlZCwgaGVhZGVycykge1xuICAgIC8vIEdldCB0aGUgaG9zdG5hbWUgZnJvbSB0aGUgaGVhZGVycyBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1c2UgdGhlIHBhcnNlZFxuICAgIC8vIGhvc3RuYW1lLlxuICAgIGxldCBob3N0bmFtZTtcbiAgICBpZiAoKGhlYWRlcnMgPT0gbnVsbCA/IHZvaWQgMCA6IGhlYWRlcnMuaG9zdCkgJiYgIUFycmF5LmlzQXJyYXkoaGVhZGVycy5ob3N0KSkge1xuICAgICAgICBob3N0bmFtZSA9IGhlYWRlcnMuaG9zdC50b1N0cmluZygpLnNwbGl0KFwiOlwiLCAxKVswXTtcbiAgICB9IGVsc2UgaWYgKHBhcnNlZC5ob3N0bmFtZSkge1xuICAgICAgICBob3N0bmFtZSA9IHBhcnNlZC5ob3N0bmFtZTtcbiAgICB9IGVsc2UgcmV0dXJuO1xuICAgIHJldHVybiBob3N0bmFtZS50b0xvd2VyQ2FzZSgpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtaG9zdG5hbWUuanMubWFwIl0sIm5hbWVzIjpbImdldEhvc3RuYW1lIiwicGFyc2VkIiwiaGVhZGVycyIsImhvc3RuYW1lIiwiaG9zdCIsIkFycmF5IiwiaXNBcnJheSIsInRvU3RyaW5nIiwic3BsaXQiLCJ0b0xvd2VyQ2FzZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/get-hostname.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ detectDomainLocale: () => (/* binding */ detectDomainLocale)\n/* harmony export */ });\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(\":\", 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n} //# sourceMappingURL=detect-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxTQUFTQSxtQkFBbUJDLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxjQUFjO0lBQ3BFLElBQUksQ0FBQ0YsYUFBYTtJQUNsQixJQUFJRSxnQkFBZ0I7UUFDaEJBLGlCQUFpQkEsZUFBZUMsV0FBVztJQUMvQztJQUNBLEtBQUssTUFBTUMsUUFBUUosWUFBWTtRQUMzQixJQUFJSyxjQUFjQztRQUNsQix5QkFBeUI7UUFDekIsTUFBTUMsaUJBQWlCLENBQUNGLGVBQWVELEtBQUtJLE1BQU0sS0FBSyxPQUFPLEtBQUssSUFBSUgsYUFBYUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQ04sV0FBVztRQUNoSCxJQUFJRixhQUFhTSxrQkFBa0JMLG1CQUFtQkUsS0FBS00sYUFBYSxDQUFDUCxXQUFXLE1BQU8sRUFBQ0csZ0JBQWdCRixLQUFLTyxPQUFPLEtBQUssT0FBTyxLQUFLLElBQUlMLGNBQWNNLElBQUksQ0FBQyxDQUFDQyxTQUFTQSxPQUFPVixXQUFXLE9BQU9ELGVBQWMsR0FBSTtZQUNqTixPQUFPRTtRQUNYO0lBQ0o7QUFDSixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUuanM/YmNhNyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZGV0ZWN0RG9tYWluTG9jYWxlKGRvbWFpbkl0ZW1zLCBob3N0bmFtZSwgZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICBpZiAoIWRvbWFpbkl0ZW1zKSByZXR1cm47XG4gICAgaWYgKGRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIGRldGVjdGVkTG9jYWxlID0gZGV0ZWN0ZWRMb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGRvbWFpbkl0ZW1zKXtcbiAgICAgICAgdmFyIF9pdGVtX2RvbWFpbiwgX2l0ZW1fbG9jYWxlcztcbiAgICAgICAgLy8gcmVtb3ZlIHBvcnQgaWYgcHJlc2VudFxuICAgICAgICBjb25zdCBkb21haW5Ib3N0bmFtZSA9IChfaXRlbV9kb21haW4gPSBpdGVtLmRvbWFpbikgPT0gbnVsbCA/IHZvaWQgMCA6IF9pdGVtX2RvbWFpbi5zcGxpdChcIjpcIiwgMSlbMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGhvc3RuYW1lID09PSBkb21haW5Ib3N0bmFtZSB8fCBkZXRlY3RlZExvY2FsZSA9PT0gaXRlbS5kZWZhdWx0TG9jYWxlLnRvTG93ZXJDYXNlKCkgfHwgKChfaXRlbV9sb2NhbGVzID0gaXRlbS5sb2NhbGVzKSA9PSBudWxsID8gdm9pZCAwIDogX2l0ZW1fbG9jYWxlcy5zb21lKChsb2NhbGUpPT5sb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gZGV0ZWN0ZWRMb2NhbGUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRldGVjdC1kb21haW4tbG9jYWxlLmpzLm1hcCJdLCJuYW1lcyI6WyJkZXRlY3REb21haW5Mb2NhbGUiLCJkb21haW5JdGVtcyIsImhvc3RuYW1lIiwiZGV0ZWN0ZWRMb2NhbGUiLCJ0b0xvd2VyQ2FzZSIsIml0ZW0iLCJfaXRlbV9kb21haW4iLCJfaXRlbV9sb2NhbGVzIiwiZG9tYWluSG9zdG5hbWUiLCJkb21haW4iLCJzcGxpdCIsImRlZmF1bHRMb2NhbGUiLCJsb2NhbGVzIiwic29tZSIsImxvY2FsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeLocalePath: () => (/* binding */ normalizeLocalePath)\n/* harmony export */ });\n/**\n * For a pathname that may include a locale from a list of locales, it\n * removes the locale from the pathname returning it alongside with the\n * detected locale.\n *\n * @param pathname A pathname that may include a locale.\n * @param locales A list of locales.\n * @returns The detected locale and pathname without locale\n */ function 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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTQSxvQkFBb0JDLFFBQVEsRUFBRUMsT0FBTztJQUNyRCxJQUFJQztJQUNKLCtEQUErRDtJQUMvRCxNQUFNQyxnQkFBZ0JILFNBQVNJLEtBQUssQ0FBQztJQUNwQ0gsQ0FBQUEsV0FBVyxFQUFFLEVBQUVJLElBQUksQ0FBQyxDQUFDQztRQUNsQixJQUFJSCxhQUFhLENBQUMsRUFBRSxJQUFJQSxhQUFhLENBQUMsRUFBRSxDQUFDSSxXQUFXLE9BQU9ELE9BQU9DLFdBQVcsSUFBSTtZQUM3RUwsaUJBQWlCSTtZQUNqQkgsY0FBY0ssTUFBTSxDQUFDLEdBQUc7WUFDeEJSLFdBQVdHLGNBQWNNLElBQUksQ0FBQyxRQUFRO1lBQ3RDLE9BQU87UUFDWDtRQUNBLE9BQU87SUFDWDtJQUNBLE9BQU87UUFDSFQ7UUFDQUU7SUFDSjtBQUNKLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanM/NmY4NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvciBhIHBhdGhuYW1lIHRoYXQgbWF5IGluY2x1ZGUgYSBsb2NhbGUgZnJvbSBhIGxpc3Qgb2YgbG9jYWxlcywgaXRcbiAqIHJlbW92ZXMgdGhlIGxvY2FsZSBmcm9tIHRoZSBwYXRobmFtZSByZXR1cm5pbmcgaXQgYWxvbmdzaWRlIHdpdGggdGhlXG4gKiBkZXRlY3RlZCBsb2NhbGUuXG4gKlxuICogQHBhcmFtIHBhdGhuYW1lIEEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZS5cbiAqIEBwYXJhbSBsb2NhbGVzIEEgbGlzdCBvZiBsb2NhbGVzLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIGxvY2FsZSBhbmQgcGF0aG5hbWUgd2l0aG91dCBsb2NhbGVcbiAqLyBleHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSwgbG9jYWxlcykge1xuICAgIGxldCBkZXRlY3RlZExvY2FsZTtcbiAgICAvLyBmaXJzdCBpdGVtIHdpbGwgYmUgZW1wdHkgc3RyaW5nIGZyb20gc3BsaXR0aW5nIGF0IGZpcnN0IGNoYXJcbiAgICBjb25zdCBwYXRobmFtZVBhcnRzID0gcGF0aG5hbWUuc3BsaXQoXCIvXCIpO1xuICAgIChsb2NhbGVzIHx8IFtdKS5zb21lKChsb2NhbGUpPT57XG4gICAgICAgIGlmIChwYXRobmFtZVBhcnRzWzFdICYmIHBhdGhuYW1lUGFydHNbMV0udG9Mb3dlckNhc2UoKSA9PT0gbG9jYWxlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGRldGVjdGVkTG9jYWxlID0gbG9jYWxlO1xuICAgICAgICAgICAgcGF0aG5hbWVQYXJ0cy5zcGxpY2UoMSwgMSk7XG4gICAgICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lUGFydHMuam9pbihcIi9cIikgfHwgXCIvXCI7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIGRldGVjdGVkTG9jYWxlXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJub3JtYWxpemVMb2NhbGVQYXRoIiwicGF0aG5hbWUiLCJsb2NhbGVzIiwiZGV0ZWN0ZWRMb2NhbGUiLCJwYXRobmFtZVBhcnRzIiwic3BsaXQiLCJzb21lIiwibG9jYWxlIiwidG9Mb3dlckNhc2UiLCJzcGxpY2UiLCJqb2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/modern-browserslist-target.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/next/dist/esm/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsa0VBQWtFO0FBQ2xFOzs7OztDQUtDLEdBQUc7QUFBQSxNQUFNQSw2QkFBNkI7SUFDbkM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNIO0FBQ0RDLE9BQU9DLE9BQU8sR0FBR0YsNEJBRWpCLHNEQUFzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL21vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0LmpzPzExMDMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTm90ZTogVGhpcyBmaWxlIGlzIEpTIGJlY2F1c2UgaXQncyB1c2VkIGJ5IHRoZSB0YXNrZmlsZS1zd2MuanMgZmlsZSwgd2hpY2ggaXMgSlMuXG4vLyBLZWVwIGZpbGUgY2hhbmdlcyBpbiBzeW5jIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYC5kLnRzYCBmaWxlcy5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBicm93c2VyIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBhbGwgb2YgdGhlIGZvbGxvd2luZzpcbiAqIHN0YXRpYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZVxuICogZHluYW1pYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZS1keW5hbWljLWltcG9ydFxuICogaW1wb3J0Lm1ldGE6IGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWphdmFzY3JpcHRfb3BlcmF0b3JzX2ltcG9ydF9tZXRhXG4gKi8gY29uc3QgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgPSBbXG4gICAgXCJjaHJvbWUgNjRcIixcbiAgICBcImVkZ2UgNzlcIixcbiAgICBcImZpcmVmb3ggNjdcIixcbiAgICBcIm9wZXJhIDUxXCIsXG4gICAgXCJzYWZhcmkgMTJcIlxuXTtcbm1vZHVsZS5leHBvcnRzID0gTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0LmpzLm1hcCJdLCJuYW1lcyI6WyJNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/modern-browserslist-target.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ensureLeadingSlash: () => (/* binding */ ensureLeadingSlash)\n/* harmony export */ });\n/**\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 */ function 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUFVLFNBQVNBLG1CQUFtQkMsSUFBSTtJQUN2QyxPQUFPQSxLQUFLQyxVQUFVLENBQUMsT0FBT0QsT0FBTyxNQUFNQTtBQUMvQyxFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaC5qcz8wNDY0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yIGEgZ2l2ZW4gcGFnZSBwYXRoLCB0aGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBhIGxlYWRpbmcgc2xhc2guXG4gKiBJZiB0aGVyZSBpcyBub3QgYSBsZWFkaW5nIHNsYXNoLCBvbmUgaXMgYWRkZWQsIG90aGVyd2lzZSBpdCBpcyBub29wLlxuICovIGV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aCkge1xuICAgIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpID8gcGF0aCA6IFwiL1wiICsgcGF0aDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZW5zdXJlLWxlYWRpbmctc2xhc2guanMubWFwIl0sIm5hbWVzIjpbImVuc3VyZUxlYWRpbmdTbGFzaCIsInBhdGgiLCJzdGFydHNXaXRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addLocale: () => (/* binding */ addLocale)\n/* harmony export */ });\n/* harmony import */ var _add_path_prefix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add-path-prefix */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\");\n/* harmony import */ var _path_has_prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path-has-prefix */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\");\n\n\n/**\n * For a given path and a locale, if the locale is given, it will prefix the\n * locale. The path shouldn't be an API path. If a default locale is given the\n * prefix will be omitted if the locale is already the default locale.\n */ function 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,_path_has_prefix__WEBPACK_IMPORTED_MODULE_1__.pathHasPrefix)(lower, \"/api\")) return path;\n if ((0,_path_has_prefix__WEBPACK_IMPORTED_MODULE_1__.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0,_add_path_prefix__WEBPACK_IMPORTED_MODULE_0__.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0Q7QUFDQTtBQUNsRDs7OztDQUlDLEdBQVUsU0FBU0UsVUFBVUMsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLGFBQWEsRUFBRUMsWUFBWTtJQUNuRSw0RUFBNEU7SUFDNUUsc0JBQXNCO0lBQ3RCLElBQUksQ0FBQ0YsVUFBVUEsV0FBV0MsZUFBZSxPQUFPRjtJQUNoRCxNQUFNSSxRQUFRSixLQUFLSyxXQUFXO0lBQzlCLDJFQUEyRTtJQUMzRSxpQ0FBaUM7SUFDakMsSUFBSSxDQUFDRixjQUFjO1FBQ2YsSUFBSUwsK0RBQWFBLENBQUNNLE9BQU8sU0FBUyxPQUFPSjtRQUN6QyxJQUFJRiwrREFBYUEsQ0FBQ00sT0FBTyxNQUFNSCxPQUFPSSxXQUFXLEtBQUssT0FBT0w7SUFDakU7SUFDQSxxQ0FBcUM7SUFDckMsT0FBT0gsK0RBQWFBLENBQUNHLE1BQU0sTUFBTUM7QUFDckMsRUFFQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS5qcz9mODMwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tIFwiLi9hZGQtcGF0aC1wcmVmaXhcIjtcbmltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tIFwiLi9wYXRoLWhhcy1wcmVmaXhcIjtcbi8qKlxuICogRm9yIGEgZ2l2ZW4gcGF0aCBhbmQgYSBsb2NhbGUsIGlmIHRoZSBsb2NhbGUgaXMgZ2l2ZW4sIGl0IHdpbGwgcHJlZml4IHRoZVxuICogbG9jYWxlLiBUaGUgcGF0aCBzaG91bGRuJ3QgYmUgYW4gQVBJIHBhdGguIElmIGEgZGVmYXVsdCBsb2NhbGUgaXMgZ2l2ZW4gdGhlXG4gKiBwcmVmaXggd2lsbCBiZSBvbWl0dGVkIGlmIHRoZSBsb2NhbGUgaXMgYWxyZWFkeSB0aGUgZGVmYXVsdCBsb2NhbGUuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGFkZExvY2FsZShwYXRoLCBsb2NhbGUsIGRlZmF1bHRMb2NhbGUsIGlnbm9yZVByZWZpeCkge1xuICAgIC8vIElmIG5vIGxvY2FsZSB3YXMgZ2l2ZW4gb3IgdGhlIGxvY2FsZSBpcyB0aGUgZGVmYXVsdCBsb2NhbGUsIHdlIGRvbid0IG5lZWRcbiAgICAvLyB0byBwcmVmaXggdGhlIHBhdGguXG4gICAgaWYgKCFsb2NhbGUgfHwgbG9jYWxlID09PSBkZWZhdWx0TG9jYWxlKSByZXR1cm4gcGF0aDtcbiAgICBjb25zdCBsb3dlciA9IHBhdGgudG9Mb3dlckNhc2UoKTtcbiAgICAvLyBJZiB0aGUgcGF0aCBpcyBhbiBBUEkgcGF0aCBvciB0aGUgcGF0aCBhbHJlYWR5IGhhcyB0aGUgbG9jYWxlIHByZWZpeCwgd2VcbiAgICAvLyBkb24ndCBuZWVkIHRvIHByZWZpeCB0aGUgcGF0aC5cbiAgICBpZiAoIWlnbm9yZVByZWZpeCkge1xuICAgICAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgXCIvYXBpXCIpKSByZXR1cm4gcGF0aDtcbiAgICAgICAgaWYgKHBhdGhIYXNQcmVmaXgobG93ZXIsIFwiL1wiICsgbG9jYWxlLnRvTG93ZXJDYXNlKCkpKSByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgLy8gQWRkIHRoZSBsb2NhbGUgcHJlZml4IHRvIHRoZSBwYXRoLlxuICAgIHJldHVybiBhZGRQYXRoUHJlZml4KHBhdGgsIFwiL1wiICsgbG9jYWxlKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiYWRkUGF0aFByZWZpeCIsInBhdGhIYXNQcmVmaXgiLCJhZGRMb2NhbGUiLCJwYXRoIiwibG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsImlnbm9yZVByZWZpeCIsImxvd2VyIiwidG9Mb3dlckNhc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPathPrefix: () => (/* binding */ addPathPrefix)\n/* harmony export */ });\n/* harmony import */ var _parse_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse-path */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\");\n\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */ function addPathPrefix(path, prefix) {\n if (!path.startsWith(\"/\") || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0,_parse_path__WEBPACK_IMPORTED_MODULE_0__.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDO0FBQ3pDOzs7Q0FHQyxHQUFVLFNBQVNDLGNBQWNDLElBQUksRUFBRUMsTUFBTTtJQUMxQyxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDbEMsT0FBT0Q7SUFDWDtJQUNBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHUCxzREFBU0EsQ0FBQ0U7SUFDNUMsT0FBTyxLQUFLQyxTQUFTRSxXQUFXQyxRQUFRQztBQUM1QyxFQUVBLDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtcGF0aC1wcmVmaXguanM/MTA3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tIFwiLi9wYXJzZS1wYXRoXCI7XG4vKipcbiAqIEFkZHMgdGhlIHByb3ZpZGVkIHByZWZpeCB0byB0aGUgZ2l2ZW4gcGF0aC4gSXQgZmlyc3QgZW5zdXJlcyB0aGF0IHRoZSBwYXRoXG4gKiBpcyBpbmRlZWQgc3RhcnRpbmcgd2l0aCBhIHNsYXNoLlxuICovIGV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoUHJlZml4KHBhdGgsIHByZWZpeCkge1xuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKFwiL1wiKSB8fCAhcHJlZml4KSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpO1xuICAgIHJldHVybiBcIlwiICsgcHJlZml4ICsgcGF0aG5hbWUgKyBxdWVyeSArIGhhc2g7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZC1wYXRoLXByZWZpeC5qcy5tYXAiXSwibmFtZXMiOlsicGFyc2VQYXRoIiwiYWRkUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPathSuffix: () => (/* binding */ addPathSuffix)\n/* harmony export */ });\n/* harmony import */ var _parse_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse-path */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\");\n\n/**\n * Similarly to `addPathPrefix`, this function adds a suffix at the end on the\n * provided path. It also works only for paths ensuring the argument starts\n * with a slash.\n */ function addPathSuffix(path, suffix) {\n if (!path.startsWith(\"/\") || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0,_parse_path__WEBPACK_IMPORTED_MODULE_0__.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDO0FBQ3pDOzs7O0NBSUMsR0FBVSxTQUFTQyxjQUFjQyxJQUFJLEVBQUVDLE1BQU07SUFDMUMsSUFBSSxDQUFDRCxLQUFLRSxVQUFVLENBQUMsUUFBUSxDQUFDRCxRQUFRO1FBQ2xDLE9BQU9EO0lBQ1g7SUFDQSxNQUFNLEVBQUVHLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBR1Asc0RBQVNBLENBQUNFO0lBQzVDLE9BQU8sS0FBS0csV0FBV0YsU0FBU0csUUFBUUM7QUFDNUMsRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LmpzP2RmY2MiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSBcIi4vcGFyc2UtcGF0aFwiO1xuLyoqXG4gKiBTaW1pbGFybHkgdG8gYGFkZFBhdGhQcmVmaXhgLCB0aGlzIGZ1bmN0aW9uIGFkZHMgYSBzdWZmaXggYXQgdGhlIGVuZCBvbiB0aGVcbiAqIHByb3ZpZGVkIHBhdGguIEl0IGFsc28gd29ya3Mgb25seSBmb3IgcGF0aHMgZW5zdXJpbmcgdGhlIGFyZ3VtZW50IHN0YXJ0c1xuICogd2l0aCBhIHNsYXNoLlxuICovIGV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoU3VmZml4KHBhdGgsIHN1ZmZpeCkge1xuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKFwiL1wiKSB8fCAhc3VmZml4KSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpO1xuICAgIHJldHVybiBcIlwiICsgcGF0aG5hbWUgKyBzdWZmaXggKyBxdWVyeSArIGhhc2g7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZC1wYXRoLXN1ZmZpeC5qcy5tYXAiXSwibmFtZXMiOlsicGFyc2VQYXRoIiwiYWRkUGF0aFN1ZmZpeCIsInBhdGgiLCJzdWZmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeAppPath: () => (/* binding */ normalizeAppPath),\n/* harmony export */ normalizeRscURL: () => (/* binding */ normalizeRscURL)\n/* harmony export */ });\n/* harmony import */ var _page_path_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\");\n/* harmony import */ var _segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../segment */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/segment.js\");\n\n\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */ function normalizeAppPath(route) {\n return (0,_page_path_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__.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__WEBPACK_IMPORTED_MODULE_1__.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}\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */ function 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMEU7QUFDM0I7QUFDL0M7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWtCQyxHQUFVLFNBQVNFLGlCQUFpQkMsS0FBSztJQUN0QyxPQUFPSCxtRkFBa0JBLENBQUNHLE1BQU1DLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDekUsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNWLE9BQU9EO1FBQ1g7UUFDQSxzQkFBc0I7UUFDdEIsSUFBSUwsd0RBQWNBLENBQUNNLFVBQVU7WUFDekIsT0FBT0Q7UUFDWDtRQUNBLGlDQUFpQztRQUNqQyxJQUFJQyxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUs7WUFDcEIsT0FBT0Q7UUFDWDtRQUNBLHVEQUF1RDtRQUN2RCxJQUFJLENBQUNDLFlBQVksVUFBVUEsWUFBWSxPQUFNLEtBQU1DLFVBQVVDLFNBQVNDLE1BQU0sR0FBRyxHQUFHO1lBQzlFLE9BQU9KO1FBQ1g7UUFDQSxPQUFPQSxXQUFXLE1BQU1DO0lBQzVCLEdBQUc7QUFDUDtBQUNBOzs7Q0FHQyxHQUFVLFNBQVNJLGdCQUFnQkMsR0FBRztJQUNuQyxPQUFPQSxJQUFJQyxPQUFPLENBQUMsZUFDbkI7QUFDSixFQUVBLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHMuanM/YjY4OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnN1cmVMZWFkaW5nU2xhc2ggfSBmcm9tIFwiLi4vLi4vcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoXCI7XG5pbXBvcnQgeyBpc0dyb3VwU2VnbWVudCB9IGZyb20gXCIuLi8uLi9zZWdtZW50XCI7XG4vKipcbiAqIE5vcm1hbGl6ZXMgYW4gYXBwIHJvdXRlIHNvIGl0IHJlcHJlc2VudHMgdGhlIGFjdHVhbCByZXF1ZXN0IHBhdGguIEVzc2VudGlhbGx5XG4gKiBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcgdHJhbnNmb3JtYXRpb25zOlxuICpcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcGFnZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvKGRhc2hib2FyZCkvYWNjb3VudC9wYWdlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3BhZ2VgIHRvIGAvYFxuICogLSBgLyhkYXNoYm9hcmQpL3VzZXIvW2lkXS9yb3V0ZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvKGRhc2hib2FyZCkvYWNjb3VudC9yb3V0ZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9yb3V0ZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvYWNjb3VudC9yb3V0ZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3JvdXRlYCB0byBgL2BcbiAqIC0gYC9gIHRvIGAvYFxuICpcbiAqIEBwYXJhbSByb3V0ZSB0aGUgYXBwIHJvdXRlIHRvIG5vcm1hbGl6ZVxuICogQHJldHVybnMgdGhlIG5vcm1hbGl6ZWQgcGF0aG5hbWVcbiAqLyBleHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQXBwUGF0aChyb3V0ZSkge1xuICAgIHJldHVybiBlbnN1cmVMZWFkaW5nU2xhc2gocm91dGUuc3BsaXQoXCIvXCIpLnJlZHVjZSgocGF0aG5hbWUsIHNlZ21lbnQsIGluZGV4LCBzZWdtZW50cyk9PntcbiAgICAgICAgLy8gRW1wdHkgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICAgIGlmICghc2VnbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIEdyb3VwcyBhcmUgaWdub3JlZC5cbiAgICAgICAgaWYgKGlzR3JvdXBTZWdtZW50KHNlZ21lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aG5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFyYWxsZWwgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICAgIGlmIChzZWdtZW50WzBdID09PSBcIkBcIikge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoZSBsYXN0IHNlZ21lbnQgKGlmIGl0J3MgYSBsZWFmKSBzaG91bGQgYmUgaWdub3JlZC5cbiAgICAgICAgaWYgKChzZWdtZW50ID09PSBcInBhZ2VcIiB8fCBzZWdtZW50ID09PSBcInJvdXRlXCIpICYmIGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aG5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lICsgXCIvXCIgKyBzZWdtZW50O1xuICAgIH0sIFwiXCIpKTtcbn1cbi8qKlxuICogU3RyaXBzIHRoZSBgLnJzY2AgZXh0ZW5zaW9uIGlmIGl0J3MgaW4gdGhlIHBhdGhuYW1lLlxuICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9uIGZ1bGwgdXJscyBpdCBjaGVja3MgYD9gIGZvciBzZWFyY2hQYXJhbXMgaGFuZGxpbmcuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJzY1VSTCh1cmwpIHtcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoL1xcLnJzYygkfFxcPykvLCAvLyAkMSBlbnN1cmVzIGA/YCBpcyBwcmVzZXJ2ZWRcbiAgICBcIiQxXCIpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcGF0aHMuanMubWFwIl0sIm5hbWVzIjpbImVuc3VyZUxlYWRpbmdTbGFzaCIsImlzR3JvdXBTZWdtZW50Iiwibm9ybWFsaXplQXBwUGF0aCIsInJvdXRlIiwic3BsaXQiLCJyZWR1Y2UiLCJwYXRobmFtZSIsInNlZ21lbnQiLCJpbmRleCIsInNlZ21lbnRzIiwibGVuZ3RoIiwibm9ybWFsaXplUnNjVVJMIiwidXJsIiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatNextPathnameInfo: () => (/* binding */ formatNextPathnameInfo)\n/* harmony export */ });\n/* harmony import */ var _remove_trailing_slash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./remove-trailing-slash */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n/* harmony import */ var _add_path_prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./add-path-prefix */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\");\n/* harmony import */ var _add_path_suffix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./add-path-suffix */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js\");\n/* harmony import */ var _add_locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./add-locale */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js\");\n\n\n\n\nfunction formatNextPathnameInfo(info) {\n let pathname = (0,_add_locale__WEBPACK_IMPORTED_MODULE_3__.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0,_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_0__.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0,_add_path_suffix__WEBPACK_IMPORTED_MODULE_2__.addPathSuffix)((0,_add_path_prefix__WEBPACK_IMPORTED_MODULE_1__.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === \"/\" ? \"index.json\" : \".json\");\n }\n pathname = (0,_add_path_prefix__WEBPACK_IMPORTED_MODULE_1__.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith(\"/\") ? (0,_add_path_suffix__WEBPACK_IMPORTED_MODULE_2__.addPathSuffix)(pathname, \"/\") : pathname : (0,_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_0__.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUE4RDtBQUNaO0FBQ0E7QUFDVDtBQUNsQyxTQUFTSSx1QkFBdUJDLElBQUk7SUFDdkMsSUFBSUMsV0FBV0gsc0RBQVNBLENBQUNFLEtBQUtDLFFBQVEsRUFBRUQsS0FBS0UsTUFBTSxFQUFFRixLQUFLRyxPQUFPLEdBQUdDLFlBQVlKLEtBQUtLLGFBQWEsRUFBRUwsS0FBS00sWUFBWTtJQUNySCxJQUFJTixLQUFLRyxPQUFPLElBQUksQ0FBQ0gsS0FBS08sYUFBYSxFQUFFO1FBQ3JDTixXQUFXTiwyRUFBbUJBLENBQUNNO0lBQ25DO0lBQ0EsSUFBSUQsS0FBS0csT0FBTyxFQUFFO1FBQ2RGLFdBQVdKLCtEQUFhQSxDQUFDRCwrREFBYUEsQ0FBQ0ssVUFBVSxpQkFBaUJELEtBQUtHLE9BQU8sR0FBR0gsS0FBS0MsUUFBUSxLQUFLLE1BQU0sZUFBZTtJQUM1SDtJQUNBQSxXQUFXTCwrREFBYUEsQ0FBQ0ssVUFBVUQsS0FBS1EsUUFBUTtJQUNoRCxPQUFPLENBQUNSLEtBQUtHLE9BQU8sSUFBSUgsS0FBS08sYUFBYSxHQUFHLENBQUNOLFNBQVNRLFFBQVEsQ0FBQyxPQUFPWiwrREFBYUEsQ0FBQ0ksVUFBVSxPQUFPQSxXQUFXTiwyRUFBbUJBLENBQUNNO0FBQ3pJLEVBRUEscURBQXFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8uanM/NTQ3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSBcIi4vcmVtb3ZlLXRyYWlsaW5nLXNsYXNoXCI7XG5pbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSBcIi4vYWRkLXBhdGgtcHJlZml4XCI7XG5pbXBvcnQgeyBhZGRQYXRoU3VmZml4IH0gZnJvbSBcIi4vYWRkLXBhdGgtc3VmZml4XCI7XG5pbXBvcnQgeyBhZGRMb2NhbGUgfSBmcm9tIFwiLi9hZGQtbG9jYWxlXCI7XG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyhpbmZvKSB7XG4gICAgbGV0IHBhdGhuYW1lID0gYWRkTG9jYWxlKGluZm8ucGF0aG5hbWUsIGluZm8ubG9jYWxlLCBpbmZvLmJ1aWxkSWQgPyB1bmRlZmluZWQgOiBpbmZvLmRlZmF1bHRMb2NhbGUsIGluZm8uaWdub3JlUHJlZml4KTtcbiAgICBpZiAoaW5mby5idWlsZElkIHx8ICFpbmZvLnRyYWlsaW5nU2xhc2gpIHtcbiAgICAgICAgcGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICB9XG4gICAgaWYgKGluZm8uYnVpbGRJZCkge1xuICAgICAgICBwYXRobmFtZSA9IGFkZFBhdGhTdWZmaXgoYWRkUGF0aFByZWZpeChwYXRobmFtZSwgXCIvX25leHQvZGF0YS9cIiArIGluZm8uYnVpbGRJZCksIGluZm8ucGF0aG5hbWUgPT09IFwiL1wiID8gXCJpbmRleC5qc29uXCIgOiBcIi5qc29uXCIpO1xuICAgIH1cbiAgICBwYXRobmFtZSA9IGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGluZm8uYmFzZVBhdGgpO1xuICAgIHJldHVybiAhaW5mby5idWlsZElkICYmIGluZm8udHJhaWxpbmdTbGFzaCA/ICFwYXRobmFtZS5lbmRzV2l0aChcIi9cIikgPyBhZGRQYXRoU3VmZml4KHBhdGhuYW1lLCBcIi9cIikgOiBwYXRobmFtZSA6IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvLmpzLm1hcCJdLCJuYW1lcyI6WyJyZW1vdmVUcmFpbGluZ1NsYXNoIiwiYWRkUGF0aFByZWZpeCIsImFkZFBhdGhTdWZmaXgiLCJhZGRMb2NhbGUiLCJmb3JtYXROZXh0UGF0aG5hbWVJbmZvIiwiaW5mbyIsInBhdGhuYW1lIiwibG9jYWxlIiwiYnVpbGRJZCIsInVuZGVmaW5lZCIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJ0cmFpbGluZ1NsYXNoIiwiYmFzZVBhdGgiLCJlbmRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getNextPathnameInfo: () => (/* binding */ getNextPathnameInfo)\n/* harmony export */ });\n/* harmony import */ var _i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js\");\n/* harmony import */ var _remove_path_prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./remove-path-prefix */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js\");\n/* harmony import */ var _path_has_prefix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path-has-prefix */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\");\n\n\n\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,_path_has_prefix__WEBPACK_IMPORTED_MODULE_2__.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0,_remove_path_prefix__WEBPACK_IMPORTED_MODULE_1__.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,_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_0__.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,_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_0__.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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVFO0FBQ2Y7QUFDTjtBQUMzQyxTQUFTRyxvQkFBb0JDLFFBQVEsRUFBRUMsT0FBTztJQUNqRCxJQUFJQztJQUNKLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLGFBQWEsRUFBRSxHQUFHLENBQUNILHNCQUFzQkQsUUFBUUssVUFBVSxLQUFLLE9BQU9KLHNCQUFzQixDQUFDO0lBQ3RILE1BQU1LLE9BQU87UUFDVFA7UUFDQUssZUFBZUwsYUFBYSxNQUFNQSxTQUFTUSxRQUFRLENBQUMsT0FBT0g7SUFDL0Q7SUFDQSxJQUFJRixZQUFZTCwrREFBYUEsQ0FBQ1MsS0FBS1AsUUFBUSxFQUFFRyxXQUFXO1FBQ3BESSxLQUFLUCxRQUFRLEdBQUdILHFFQUFnQkEsQ0FBQ1UsS0FBS1AsUUFBUSxFQUFFRztRQUNoREksS0FBS0osUUFBUSxHQUFHQTtJQUNwQjtJQUNBLElBQUlNLHVCQUF1QkYsS0FBS1AsUUFBUTtJQUN4QyxJQUFJTyxLQUFLUCxRQUFRLENBQUNVLFVBQVUsQ0FBQyxtQkFBbUJILEtBQUtQLFFBQVEsQ0FBQ1EsUUFBUSxDQUFDLFVBQVU7UUFDN0UsTUFBTUcsUUFBUUosS0FBS1AsUUFBUSxDQUFDWSxPQUFPLENBQUMsb0JBQW9CLElBQUlBLE9BQU8sQ0FBQyxXQUFXLElBQUlDLEtBQUssQ0FBQztRQUN6RixNQUFNQyxVQUFVSCxLQUFLLENBQUMsRUFBRTtRQUN4QkosS0FBS08sT0FBTyxHQUFHQTtRQUNmTCx1QkFBdUJFLEtBQUssQ0FBQyxFQUFFLEtBQUssVUFBVSxNQUFNQSxNQUFNSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQU87UUFDL0Usc0RBQXNEO1FBQ3RELGtEQUFrRDtRQUNsRCxJQUFJZixRQUFRZ0IsU0FBUyxLQUFLLE1BQU07WUFDNUJWLEtBQUtQLFFBQVEsR0FBR1M7UUFDcEI7SUFDSjtJQUNBLDRFQUE0RTtJQUM1RSx5QkFBeUI7SUFDekIsSUFBSUwsTUFBTTtRQUNOLElBQUljLFNBQVNqQixRQUFRa0IsWUFBWSxHQUFHbEIsUUFBUWtCLFlBQVksQ0FBQ0MsT0FBTyxDQUFDYixLQUFLUCxRQUFRLElBQUlKLGdGQUFtQkEsQ0FBQ1csS0FBS1AsUUFBUSxFQUFFSSxLQUFLaUIsT0FBTztRQUNqSWQsS0FBS2UsTUFBTSxHQUFHSixPQUFPSyxjQUFjO1FBQ25DLElBQUlDO1FBQ0pqQixLQUFLUCxRQUFRLEdBQUcsQ0FBQ3dCLG1CQUFtQk4sT0FBT2xCLFFBQVEsS0FBSyxPQUFPd0IsbUJBQW1CakIsS0FBS1AsUUFBUTtRQUMvRixJQUFJLENBQUNrQixPQUFPSyxjQUFjLElBQUloQixLQUFLTyxPQUFPLEVBQUU7WUFDeENJLFNBQVNqQixRQUFRa0IsWUFBWSxHQUFHbEIsUUFBUWtCLFlBQVksQ0FBQ0MsT0FBTyxDQUFDWCx3QkFBd0JiLGdGQUFtQkEsQ0FBQ2Esc0JBQXNCTCxLQUFLaUIsT0FBTztZQUMzSSxJQUFJSCxPQUFPSyxjQUFjLEVBQUU7Z0JBQ3ZCaEIsS0FBS2UsTUFBTSxHQUFHSixPQUFPSyxjQUFjO1lBQ3ZDO1FBQ0o7SUFDSjtJQUNBLE9BQU9oQjtBQUNYLEVBRUEsa0RBQWtEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm8uanM/MTQ1MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVMb2NhbGVQYXRoIH0gZnJvbSBcIi4uLy4uL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCI7XG5pbXBvcnQgeyByZW1vdmVQYXRoUHJlZml4IH0gZnJvbSBcIi4vcmVtb3ZlLXBhdGgtcHJlZml4XCI7XG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSBcIi4vcGF0aC1oYXMtcHJlZml4XCI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dFBhdGhuYW1lSW5mbyhwYXRobmFtZSwgb3B0aW9ucykge1xuICAgIHZhciBfb3B0aW9uc19uZXh0Q29uZmlnO1xuICAgIGNvbnN0IHsgYmFzZVBhdGgsIGkxOG4sIHRyYWlsaW5nU2xhc2ggfSA9IChfb3B0aW9uc19uZXh0Q29uZmlnID0gb3B0aW9ucy5uZXh0Q29uZmlnKSAhPSBudWxsID8gX29wdGlvbnNfbmV4dENvbmZpZyA6IHt9O1xuICAgIGNvbnN0IGluZm8gPSB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICB0cmFpbGluZ1NsYXNoOiBwYXRobmFtZSAhPT0gXCIvXCIgPyBwYXRobmFtZS5lbmRzV2l0aChcIi9cIikgOiB0cmFpbGluZ1NsYXNoXG4gICAgfTtcbiAgICBpZiAoYmFzZVBhdGggJiYgcGF0aEhhc1ByZWZpeChpbmZvLnBhdGhuYW1lLCBiYXNlUGF0aCkpIHtcbiAgICAgICAgaW5mby5wYXRobmFtZSA9IHJlbW92ZVBhdGhQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpO1xuICAgICAgICBpbmZvLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgfVxuICAgIGxldCBwYXRobmFtZU5vRGF0YVByZWZpeCA9IGluZm8ucGF0aG5hbWU7XG4gICAgaWYgKGluZm8ucGF0aG5hbWUuc3RhcnRzV2l0aChcIi9fbmV4dC9kYXRhL1wiKSAmJiBpbmZvLnBhdGhuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29uc3QgcGF0aHMgPSBpbmZvLnBhdGhuYW1lLnJlcGxhY2UoL15cXC9fbmV4dFxcL2RhdGFcXC8vLCBcIlwiKS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiXCIpLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgY29uc3QgYnVpbGRJZCA9IHBhdGhzWzBdO1xuICAgICAgICBpbmZvLmJ1aWxkSWQgPSBidWlsZElkO1xuICAgICAgICBwYXRobmFtZU5vRGF0YVByZWZpeCA9IHBhdGhzWzFdICE9PSBcImluZGV4XCIgPyBcIi9cIiArIHBhdGhzLnNsaWNlKDEpLmpvaW4oXCIvXCIpIDogXCIvXCI7XG4gICAgICAgIC8vIHVwZGF0ZSBwYXRobmFtZSB3aXRoIG5vcm1hbGl6ZWQgaWYgZW5hYmxlZCBhbHRob3VnaFxuICAgICAgICAvLyB3ZSB1c2Ugbm9ybWFsaXplZCB0byBwb3B1bGF0ZSBsb2NhbGUgaW5mbyBzdGlsbFxuICAgICAgICBpZiAob3B0aW9ucy5wYXJzZURhdGEgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGluZm8ucGF0aG5hbWUgPSBwYXRobmFtZU5vRGF0YVByZWZpeDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBJZiBwcm92aWRlZCwgdXNlIHRoZSBsb2NhbGUgcm91dGUgbm9ybWFsaXplciB0byBkZXRlY3QgdGhlIGxvY2FsZSBpbnN0ZWFkXG4gICAgLy8gb2YgdGhlIGZ1bmN0aW9uIGJlbG93LlxuICAgIGlmIChpMThuKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSBvcHRpb25zLmkxOG5Qcm92aWRlciA/IG9wdGlvbnMuaTE4blByb3ZpZGVyLmFuYWx5emUoaW5mby5wYXRobmFtZSkgOiBub3JtYWxpemVMb2NhbGVQYXRoKGluZm8ucGF0aG5hbWUsIGkxOG4ubG9jYWxlcyk7XG4gICAgICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICB2YXIgX3Jlc3VsdF9wYXRobmFtZTtcbiAgICAgICAgaW5mby5wYXRobmFtZSA9IChfcmVzdWx0X3BhdGhuYW1lID0gcmVzdWx0LnBhdGhuYW1lKSAhPSBudWxsID8gX3Jlc3VsdF9wYXRobmFtZSA6IGluZm8ucGF0aG5hbWU7XG4gICAgICAgIGlmICghcmVzdWx0LmRldGVjdGVkTG9jYWxlICYmIGluZm8uYnVpbGRJZCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXIgPyBvcHRpb25zLmkxOG5Qcm92aWRlci5hbmFseXplKHBhdGhuYW1lTm9EYXRhUHJlZml4KSA6IG5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWVOb0RhdGFQcmVmaXgsIGkxOG4ubG9jYWxlcyk7XG4gICAgICAgICAgICBpZiAocmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgaW5mby5sb2NhbGUgPSByZXN1bHQuZGV0ZWN0ZWRMb2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGluZm87XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1uZXh0LXBhdGhuYW1lLWluZm8uanMubWFwIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJyZW1vdmVQYXRoUHJlZml4IiwicGF0aEhhc1ByZWZpeCIsImdldE5leHRQYXRobmFtZUluZm8iLCJwYXRobmFtZSIsIm9wdGlvbnMiLCJfb3B0aW9uc19uZXh0Q29uZmlnIiwiYmFzZVBhdGgiLCJpMThuIiwidHJhaWxpbmdTbGFzaCIsIm5leHRDb25maWciLCJpbmZvIiwiZW5kc1dpdGgiLCJwYXRobmFtZU5vRGF0YVByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRocyIsInJlcGxhY2UiLCJzcGxpdCIsImJ1aWxkSWQiLCJzbGljZSIsImpvaW4iLCJwYXJzZURhdGEiLCJyZXN1bHQiLCJpMThuUHJvdmlkZXIiLCJhbmFseXplIiwibG9jYWxlcyIsImxvY2FsZSIsImRldGVjdGVkTG9jYWxlIiwiX3Jlc3VsdF9wYXRobmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parsePath: () => (/* binding */ parsePath)\n/* harmony export */ });\n/**\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 */ function 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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUFVLFNBQVNBLFVBQVVDLElBQUk7SUFDOUIsTUFBTUMsWUFBWUQsS0FBS0UsT0FBTyxDQUFDO0lBQy9CLE1BQU1DLGFBQWFILEtBQUtFLE9BQU8sQ0FBQztJQUNoQyxNQUFNRSxXQUFXRCxhQUFhLENBQUMsS0FBTUYsQ0FBQUEsWUFBWSxLQUFLRSxhQUFhRixTQUFRO0lBQzNFLElBQUlHLFlBQVlILFlBQVksQ0FBQyxHQUFHO1FBQzVCLE9BQU87WUFDSEksVUFBVUwsS0FBS00sU0FBUyxDQUFDLEdBQUdGLFdBQVdELGFBQWFGO1lBQ3BETSxPQUFPSCxXQUFXSixLQUFLTSxTQUFTLENBQUNILFlBQVlGLFlBQVksQ0FBQyxJQUFJQSxZQUFZTyxhQUFhO1lBQ3ZGQyxNQUFNUixZQUFZLENBQUMsSUFBSUQsS0FBS1UsS0FBSyxDQUFDVCxhQUFhO1FBQ25EO0lBQ0o7SUFDQSxPQUFPO1FBQ0hJLFVBQVVMO1FBQ1ZPLE9BQU87UUFDUEUsTUFBTTtJQUNWO0FBQ0osRUFFQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC5qcz9iM2M0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l2ZW4gYSBwYXRoIHRoaXMgZnVuY3Rpb24gd2lsbCBmaW5kIHRoZSBwYXRobmFtZSwgcXVlcnkgYW5kIGhhc2ggYW5kIHJldHVyblxuICogdGhlbS4gVGhpcyBpcyB1c2VmdWwgdG8gcGFyc2UgZnVsbCBwYXRocyBvbiB0aGUgY2xpZW50IHNpZGUuXG4gKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gcGFyc2UgZS5nLiAvZm9vL2Jhcj9pZD0xI2hhc2hcbiAqLyBleHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRoKHBhdGgpIHtcbiAgICBjb25zdCBoYXNoSW5kZXggPSBwYXRoLmluZGV4T2YoXCIjXCIpO1xuICAgIGNvbnN0IHF1ZXJ5SW5kZXggPSBwYXRoLmluZGV4T2YoXCI/XCIpO1xuICAgIGNvbnN0IGhhc1F1ZXJ5ID0gcXVlcnlJbmRleCA+IC0xICYmIChoYXNoSW5kZXggPCAwIHx8IHF1ZXJ5SW5kZXggPCBoYXNoSW5kZXgpO1xuICAgIGlmIChoYXNRdWVyeSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGF0aG5hbWU6IHBhdGguc3Vic3RyaW5nKDAsIGhhc1F1ZXJ5ID8gcXVlcnlJbmRleCA6IGhhc2hJbmRleCksXG4gICAgICAgICAgICBxdWVyeTogaGFzUXVlcnkgPyBwYXRoLnN1YnN0cmluZyhxdWVyeUluZGV4LCBoYXNoSW5kZXggPiAtMSA/IGhhc2hJbmRleCA6IHVuZGVmaW5lZCkgOiBcIlwiLFxuICAgICAgICAgICAgaGFzaDogaGFzaEluZGV4ID4gLTEgPyBwYXRoLnNsaWNlKGhhc2hJbmRleCkgOiBcIlwiXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lOiBwYXRoLFxuICAgICAgICBxdWVyeTogXCJcIixcbiAgICAgICAgaGFzaDogXCJcIlxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXBhdGguanMubWFwIl0sIm5hbWVzIjpbInBhcnNlUGF0aCIsInBhdGgiLCJoYXNoSW5kZXgiLCJpbmRleE9mIiwicXVlcnlJbmRleCIsImhhc1F1ZXJ5IiwicGF0aG5hbWUiLCJzdWJzdHJpbmciLCJxdWVyeSIsInVuZGVmaW5lZCIsImhhc2giLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ pathHasPrefix: () => (/* binding */ pathHasPrefix)\n/* harmony export */ });\n/* harmony import */ var _parse_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse-path */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\");\n\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */ function pathHasPrefix(path, prefix) {\n if (typeof path !== \"string\") {\n return false;\n }\n const { pathname } = (0,_parse_path__WEBPACK_IMPORTED_MODULE_0__.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + \"/\");\n} //# sourceMappingURL=path-has-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDO0FBQ3pDOzs7Ozs7Q0FNQyxHQUFVLFNBQVNDLGNBQWNDLElBQUksRUFBRUMsTUFBTTtJQUMxQyxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUMxQixPQUFPO0lBQ1g7SUFDQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHSixzREFBU0EsQ0FBQ0U7SUFDL0IsT0FBT0UsYUFBYUQsVUFBVUMsU0FBU0MsVUFBVSxDQUFDRixTQUFTO0FBQy9ELEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcz82NGJlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gXCIuL3BhcnNlLXBhdGhcIjtcbi8qKlxuICogQ2hlY2tzIGlmIGEgZ2l2ZW4gcGF0aCBzdGFydHMgd2l0aCBhIGdpdmVuIHByZWZpeC4gSXQgZW5zdXJlcyBpdCBtYXRjaGVzXG4gKiBleGFjdGx5IHdpdGhvdXQgY29udGFpbmluZyBleHRyYSBjaGFycy4gZS5nLiBwcmVmaXggL2RvY3Mgc2hvdWxkIHJlcGxhY2VcbiAqIGZvciAvZG9jcywgL2RvY3MvLCAvZG9jcy9hIGJ1dCBub3QgL2RvY3Nzc1xuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcGFyYW0gcHJlZml4IFRoZSBwcmVmaXggdG8gY2hlY2sgYWdhaW5zdC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gcGF0aEhhc1ByZWZpeChwYXRoLCBwcmVmaXgpIHtcbiAgICBpZiAodHlwZW9mIHBhdGggIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IHBhdGhuYW1lIH0gPSBwYXJzZVBhdGgocGF0aCk7XG4gICAgcmV0dXJuIHBhdGhuYW1lID09PSBwcmVmaXggfHwgcGF0aG5hbWUuc3RhcnRzV2l0aChwcmVmaXggKyBcIi9cIik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhdGgtaGFzLXByZWZpeC5qcy5tYXAiXSwibmFtZXMiOlsicGFyc2VQYXRoIiwicGF0aEhhc1ByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJwYXRobmFtZSIsInN0YXJ0c1dpdGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ relativizeURL: () => (/* binding */ relativizeURL)\n/* harmony export */ });\n/**\n * Given a URL as a string and a base URL it will make the URL relative\n * if the parsed protocol and host is the same as the one in the base\n * URL. Otherwise it returns the same URL string.\n */ function relativizeURL(url, base) {\n const baseURL = typeof base === \"string\" ? new URL(base) : base;\n const relative = new URL(url, base);\n const origin = baseURL.protocol + \"//\" + baseURL.host;\n return relative.protocol + \"//\" + relative.host === origin ? relative.toString().replace(origin, \"\") : relative.toString();\n} //# sourceMappingURL=relativize-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVsYXRpdml6ZS11cmwuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0NBSUMsR0FBVSxTQUFTQSxjQUFjQyxHQUFHLEVBQUVDLElBQUk7SUFDdkMsTUFBTUMsVUFBVSxPQUFPRCxTQUFTLFdBQVcsSUFBSUUsSUFBSUYsUUFBUUE7SUFDM0QsTUFBTUcsV0FBVyxJQUFJRCxJQUFJSCxLQUFLQztJQUM5QixNQUFNSSxTQUFTSCxRQUFRSSxRQUFRLEdBQUcsT0FBT0osUUFBUUssSUFBSTtJQUNyRCxPQUFPSCxTQUFTRSxRQUFRLEdBQUcsT0FBT0YsU0FBU0csSUFBSSxLQUFLRixTQUFTRCxTQUFTSSxRQUFRLEdBQUdDLE9BQU8sQ0FBQ0osUUFBUSxNQUFNRCxTQUFTSSxRQUFRO0FBQzVILEVBRUEsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbGF0aXZpemUtdXJsLmpzPzczZDIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHaXZlbiBhIFVSTCBhcyBhIHN0cmluZyBhbmQgYSBiYXNlIFVSTCBpdCB3aWxsIG1ha2UgdGhlIFVSTCByZWxhdGl2ZVxuICogaWYgdGhlIHBhcnNlZCBwcm90b2NvbCBhbmQgaG9zdCBpcyB0aGUgc2FtZSBhcyB0aGUgb25lIGluIHRoZSBiYXNlXG4gKiBVUkwuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBzYW1lIFVSTCBzdHJpbmcuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlbGF0aXZpemVVUkwodXJsLCBiYXNlKSB7XG4gICAgY29uc3QgYmFzZVVSTCA9IHR5cGVvZiBiYXNlID09PSBcInN0cmluZ1wiID8gbmV3IFVSTChiYXNlKSA6IGJhc2U7XG4gICAgY29uc3QgcmVsYXRpdmUgPSBuZXcgVVJMKHVybCwgYmFzZSk7XG4gICAgY29uc3Qgb3JpZ2luID0gYmFzZVVSTC5wcm90b2NvbCArIFwiLy9cIiArIGJhc2VVUkwuaG9zdDtcbiAgICByZXR1cm4gcmVsYXRpdmUucHJvdG9jb2wgKyBcIi8vXCIgKyByZWxhdGl2ZS5ob3N0ID09PSBvcmlnaW4gPyByZWxhdGl2ZS50b1N0cmluZygpLnJlcGxhY2Uob3JpZ2luLCBcIlwiKSA6IHJlbGF0aXZlLnRvU3RyaW5nKCk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbGF0aXZpemUtdXJsLmpzLm1hcCJdLCJuYW1lcyI6WyJyZWxhdGl2aXplVVJMIiwidXJsIiwiYmFzZSIsImJhc2VVUkwiLCJVUkwiLCJyZWxhdGl2ZSIsIm9yaWdpbiIsInByb3RvY29sIiwiaG9zdCIsInRvU3RyaW5nIiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removePathPrefix: () => (/* binding */ removePathPrefix)\n/* harmony export */ });\n/* harmony import */ var _path_has_prefix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./path-has-prefix */ \"(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\");\n\n/**\n * Given a path and a prefix it will remove the prefix when it exists in the\n * given path. It ensures it matches exactly without containing extra chars\n * and if the prefix is not there it will be noop.\n *\n * @param path The path to remove the prefix from.\n * @param prefix The prefix to be removed.\n */ function 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,_path_has_prefix__WEBPACK_IMPORTED_MODULE_0__.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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWtEO0FBQ2xEOzs7Ozs7O0NBT0MsR0FBVSxTQUFTQyxpQkFBaUJDLElBQUksRUFBRUMsTUFBTTtJQUM3Qyx5RUFBeUU7SUFDekUsMEVBQTBFO0lBQzFFLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0Ysb0JBQW9CO0lBQ3BCLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QixJQUFJLENBQUNILCtEQUFhQSxDQUFDRSxNQUFNQyxTQUFTO1FBQzlCLE9BQU9EO0lBQ1g7SUFDQSwrQ0FBK0M7SUFDL0MsTUFBTUUsZ0JBQWdCRixLQUFLRyxLQUFLLENBQUNGLE9BQU9HLE1BQU07SUFDOUMsMkVBQTJFO0lBQzNFLElBQUlGLGNBQWNHLFVBQVUsQ0FBQyxNQUFNO1FBQy9CLE9BQU9IO0lBQ1g7SUFDQSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELE9BQU8sTUFBTUE7QUFDakIsRUFFQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LmpzPzExYTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gXCIuL3BhdGgtaGFzLXByZWZpeFwiO1xuLyoqXG4gKiBHaXZlbiBhIHBhdGggYW5kIGEgcHJlZml4IGl0IHdpbGwgcmVtb3ZlIHRoZSBwcmVmaXggd2hlbiBpdCBleGlzdHMgaW4gdGhlXG4gKiBnaXZlbiBwYXRoLiBJdCBlbnN1cmVzIGl0IG1hdGNoZXMgZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnNcbiAqIGFuZCBpZiB0aGUgcHJlZml4IGlzIG5vdCB0aGVyZSBpdCB3aWxsIGJlIG5vb3AuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gcmVtb3ZlIHRoZSBwcmVmaXggZnJvbS5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBiZSByZW1vdmVkLlxuICovIGV4cG9ydCBmdW5jdGlvbiByZW1vdmVQYXRoUHJlZml4KHBhdGgsIHByZWZpeCkge1xuICAgIC8vIElmIHRoZSBwYXRoIGRvZXNuJ3Qgc3RhcnQgd2l0aCB0aGUgcHJlZml4IHdlIGNhbiByZXR1cm4gaXQgYXMgaXMuIFRoaXNcbiAgICAvLyBwcm90ZWN0cyB1cyBmcm9tIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHByZWZpeCBpcyBhIHN1YnN0cmluZyBvZiB0aGUgcGF0aFxuICAgIC8vIHByZWZpeCBzdWNoIGFzOlxuICAgIC8vXG4gICAgLy8gRm9yIHByZWZpeDogL2Jsb2dcbiAgICAvL1xuICAgIC8vICAgL2Jsb2cgLT4gdHJ1ZVxuICAgIC8vICAgL2Jsb2cvIC0+IHRydWVcbiAgICAvLyAgIC9ibG9nLzEgLT4gdHJ1ZVxuICAgIC8vICAgL2Jsb2dnaW5nIC0+IGZhbHNlXG4gICAgLy8gICAvYmxvZ2dpbmcvIC0+IGZhbHNlXG4gICAgLy8gICAvYmxvZ2dpbmcvMSAtPiBmYWxzZVxuICAgIGlmICghcGF0aEhhc1ByZWZpeChwYXRoLCBwcmVmaXgpKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICAvLyBSZW1vdmUgdGhlIHByZWZpeCBmcm9tIHRoZSBwYXRoIHZpYSBzbGljaW5nLlxuICAgIGNvbnN0IHdpdGhvdXRQcmVmaXggPSBwYXRoLnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICAgIC8vIElmIHRoZSBwYXRoIHdpdGhvdXQgdGhlIHByZWZpeCBzdGFydHMgd2l0aCBhIGAvYCB3ZSBjYW4gcmV0dXJuIGl0IGFzIGlzLlxuICAgIGlmICh3aXRob3V0UHJlZml4LnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgIHJldHVybiB3aXRob3V0UHJlZml4O1xuICAgIH1cbiAgICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggZG9lc24ndCBzdGFydCB3aXRoIGEgYC9gIHdlIG5lZWQgdG8gYWRkIGl0XG4gICAgLy8gYmFjayB0byB0aGUgcGF0aCB0byBtYWtlIHN1cmUgaXQncyBhIHZhbGlkIHBhdGguXG4gICAgcmV0dXJuIFwiL1wiICsgd2l0aG91dFByZWZpeDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVtb3ZlLXBhdGgtcHJlZml4LmpzLm1hcCJdLCJuYW1lcyI6WyJwYXRoSGFzUHJlZml4IiwicmVtb3ZlUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJ3aXRob3V0UHJlZml4Iiwic2xpY2UiLCJsZW5ndGgiLCJzdGFydHNXaXRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removeTrailingSlash: () => (/* binding */ removeTrailingSlash)\n/* harmony export */ });\n/**\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 */ function removeTrailingSlash(route) {\n return route.replace(/\\/$/, \"\") || \"/\";\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7O0NBTUMsR0FBVSxTQUFTQSxvQkFBb0JDLEtBQUs7SUFDekMsT0FBT0EsTUFBTUMsT0FBTyxDQUFDLE9BQU8sT0FBTztBQUN2QyxFQUVBLGlEQUFpRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2guanM/ODJmNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIGZvciBhIGdpdmVuIHJvdXRlIG9yIHBhZ2UgcGF0aC4gUHJlc2VydmVzIHRoZVxuICogcm9vdCBwYWdlLiBFeGFtcGxlczpcbiAqICAgLSBgL2Zvby9iYXIvYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9mb28vYmFyYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9gIC0+IGAvYFxuICovIGV4cG9ydCBmdW5jdGlvbiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlKSB7XG4gICAgcmV0dXJuIHJvdXRlLnJlcGxhY2UoL1xcLyQvLCBcIlwiKSB8fCBcIi9cIjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJyZW1vdmVUcmFpbGluZ1NsYXNoIiwicm91dGUiLCJyZXBsYWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/esm/shared/lib/segment.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/esm/shared/lib/segment.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_SEGMENT_KEY: () => (/* binding */ DEFAULT_SEGMENT_KEY),\n/* harmony export */ PAGE_SEGMENT_KEY: () => (/* binding */ PAGE_SEGMENT_KEY),\n/* harmony export */ isGroupSegment: () => (/* binding */ isGroupSegment)\n/* harmony export */ });\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === \"(\" && segment.endsWith(\")\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLFNBQVNBLGVBQWVDLE9BQU87SUFDbEMsc0NBQXNDO0lBQ3RDLE9BQU9BLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBT0EsUUFBUUMsUUFBUSxDQUFDO0FBQ2xEO0FBQ08sTUFBTUMsbUJBQW1CLFdBQVc7QUFDcEMsTUFBTUMsc0JBQXNCLGNBQWMsQ0FFakQsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvc2VnbWVudC5qcz9mY2Q2Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0dyb3VwU2VnbWVudChzZWdtZW50KSB7XG4gICAgLy8gVXNlIGFycmF5WzBdIGZvciBwZXJmb3JtYW50IHB1cnBvc2VcbiAgICByZXR1cm4gc2VnbWVudFswXSA9PT0gXCIoXCIgJiYgc2VnbWVudC5lbmRzV2l0aChcIilcIik7XG59XG5leHBvcnQgY29uc3QgUEFHRV9TRUdNRU5UX0tFWSA9IFwiX19QQUdFX19cIjtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFR01FTlRfS0VZID0gXCJfX0RFRkFVTFRfX1wiO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZWdtZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJpc0dyb3VwU2VnbWVudCIsInNlZ21lbnQiLCJlbmRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJERUZBVUxUX1NFR01FTlRfS0VZIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/esm/shared/lib/segment.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/experimental/testmode/context.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/experimental/testmode/context.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 withRequest: function() {\n return withRequest;\n },\n getTestReqInfo: function() {\n return getTestReqInfo;\n }\n});\nconst _nodeasync_hooks = __webpack_require__(/*! node:async_hooks */ \"node:async_hooks\");\nconst testStorage = new _nodeasync_hooks.AsyncLocalStorage();\nfunction extractTestInfoFromRequest(req, reader) {\n const proxyPortHeader = reader.header(req, \"next-test-proxy-port\");\n if (!proxyPortHeader) {\n return undefined;\n }\n const url = reader.url(req);\n const proxyPort = Number(proxyPortHeader);\n const testData = reader.header(req, \"next-test-data\") || \"\";\n return {\n url,\n proxyPort,\n testData\n };\n}\nfunction withRequest(req, reader, fn) {\n const testReqInfo = extractTestInfoFromRequest(req, reader);\n if (!testReqInfo) {\n return fn();\n }\n return testStorage.run(testReqInfo, fn);\n}\nfunction getTestReqInfo(req, reader) {\n const testReqInfo = testStorage.getStore();\n if (testReqInfo) {\n return testReqInfo;\n }\n if (req && reader) {\n return extractTestInfoFromRequest(req, reader);\n }\n return undefined;\n} //# sourceMappingURL=context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQUdOO0FBQ0EsU0FBU0csUUFBUUMsTUFBTSxFQUFFQyxHQUFHO0lBQ3hCLElBQUksSUFBSUMsUUFBUUQsSUFBSVQsT0FBT0MsY0FBYyxDQUFDTyxRQUFRRSxNQUFNO1FBQ3BEQyxZQUFZO1FBQ1pDLEtBQUtILEdBQUcsQ0FBQ0MsS0FBSztJQUNsQjtBQUNKO0FBQ0FILFFBQVFMLFNBQVM7SUFDYkcsYUFBYTtRQUNULE9BQU9BO0lBQ1g7SUFDQUMsZ0JBQWdCO1FBQ1osT0FBT0E7SUFDWDtBQUNKO0FBQ0EsTUFBTU8sbUJBQW1CQyxtQkFBT0EsQ0FBQywwQ0FBa0I7QUFDbkQsTUFBTUMsY0FBYyxJQUFJRixpQkFBaUJHLGlCQUFpQjtBQUMxRCxTQUFTQywyQkFBMkJDLEdBQUcsRUFBRUMsTUFBTTtJQUMzQyxNQUFNQyxrQkFBa0JELE9BQU9FLE1BQU0sQ0FBQ0gsS0FBSztJQUMzQyxJQUFJLENBQUNFLGlCQUFpQjtRQUNsQixPQUFPRTtJQUNYO0lBQ0EsTUFBTUMsTUFBTUosT0FBT0ksR0FBRyxDQUFDTDtJQUN2QixNQUFNTSxZQUFZQyxPQUFPTDtJQUN6QixNQUFNTSxXQUFXUCxPQUFPRSxNQUFNLENBQUNILEtBQUsscUJBQXFCO0lBQ3pELE9BQU87UUFDSEs7UUFDQUM7UUFDQUU7SUFDSjtBQUNKO0FBQ0EsU0FBU3JCLFlBQVlhLEdBQUcsRUFBRUMsTUFBTSxFQUFFUSxFQUFFO0lBQ2hDLE1BQU1DLGNBQWNYLDJCQUEyQkMsS0FBS0M7SUFDcEQsSUFBSSxDQUFDUyxhQUFhO1FBQ2QsT0FBT0Q7SUFDWDtJQUNBLE9BQU9aLFlBQVljLEdBQUcsQ0FBQ0QsYUFBYUQ7QUFDeEM7QUFDQSxTQUFTckIsZUFBZVksR0FBRyxFQUFFQyxNQUFNO0lBQy9CLE1BQU1TLGNBQWNiLFlBQVllLFFBQVE7SUFDeEMsSUFBSUYsYUFBYTtRQUNiLE9BQU9BO0lBQ1g7SUFDQSxJQUFJVixPQUFPQyxRQUFRO1FBQ2YsT0FBT0YsMkJBQTJCQyxLQUFLQztJQUMzQztJQUNBLE9BQU9HO0FBQ1gsRUFFQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvY29udGV4dC5qcz85MzU5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgd2l0aFJlcXVlc3Q6IG51bGwsXG4gICAgZ2V0VGVzdFJlcUluZm86IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgd2l0aFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2l0aFJlcXVlc3Q7XG4gICAgfSxcbiAgICBnZXRUZXN0UmVxSW5mbzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRUZXN0UmVxSW5mbztcbiAgICB9XG59KTtcbmNvbnN0IF9ub2RlYXN5bmNfaG9va3MgPSByZXF1aXJlKFwibm9kZTphc3luY19ob29rc1wiKTtcbmNvbnN0IHRlc3RTdG9yYWdlID0gbmV3IF9ub2RlYXN5bmNfaG9va3MuQXN5bmNMb2NhbFN0b3JhZ2UoKTtcbmZ1bmN0aW9uIGV4dHJhY3RUZXN0SW5mb0Zyb21SZXF1ZXN0KHJlcSwgcmVhZGVyKSB7XG4gICAgY29uc3QgcHJveHlQb3J0SGVhZGVyID0gcmVhZGVyLmhlYWRlcihyZXEsIFwibmV4dC10ZXN0LXByb3h5LXBvcnRcIik7XG4gICAgaWYgKCFwcm94eVBvcnRIZWFkZXIpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgdXJsID0gcmVhZGVyLnVybChyZXEpO1xuICAgIGNvbnN0IHByb3h5UG9ydCA9IE51bWJlcihwcm94eVBvcnRIZWFkZXIpO1xuICAgIGNvbnN0IHRlc3REYXRhID0gcmVhZGVyLmhlYWRlcihyZXEsIFwibmV4dC10ZXN0LWRhdGFcIikgfHwgXCJcIjtcbiAgICByZXR1cm4ge1xuICAgICAgICB1cmwsXG4gICAgICAgIHByb3h5UG9ydCxcbiAgICAgICAgdGVzdERhdGFcbiAgICB9O1xufVxuZnVuY3Rpb24gd2l0aFJlcXVlc3QocmVxLCByZWFkZXIsIGZuKSB7XG4gICAgY29uc3QgdGVzdFJlcUluZm8gPSBleHRyYWN0VGVzdEluZm9Gcm9tUmVxdWVzdChyZXEsIHJlYWRlcik7XG4gICAgaWYgKCF0ZXN0UmVxSW5mbykge1xuICAgICAgICByZXR1cm4gZm4oKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlc3RTdG9yYWdlLnJ1bih0ZXN0UmVxSW5mbywgZm4pO1xufVxuZnVuY3Rpb24gZ2V0VGVzdFJlcUluZm8ocmVxLCByZWFkZXIpIHtcbiAgICBjb25zdCB0ZXN0UmVxSW5mbyA9IHRlc3RTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHRlc3RSZXFJbmZvKSB7XG4gICAgICAgIHJldHVybiB0ZXN0UmVxSW5mbztcbiAgICB9XG4gICAgaWYgKHJlcSAmJiByZWFkZXIpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3RUZXN0SW5mb0Zyb21SZXF1ZXN0KHJlcSwgcmVhZGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJ3aXRoUmVxdWVzdCIsImdldFRlc3RSZXFJbmZvIiwiX2V4cG9ydCIsInRhcmdldCIsImFsbCIsIm5hbWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX25vZGVhc3luY19ob29rcyIsInJlcXVpcmUiLCJ0ZXN0U3RvcmFnZSIsIkFzeW5jTG9jYWxTdG9yYWdlIiwiZXh0cmFjdFRlc3RJbmZvRnJvbVJlcXVlc3QiLCJyZXEiLCJyZWFkZXIiLCJwcm94eVBvcnRIZWFkZXIiLCJoZWFkZXIiLCJ1bmRlZmluZWQiLCJ1cmwiLCJwcm94eVBvcnQiLCJOdW1iZXIiLCJ0ZXN0RGF0YSIsImZuIiwidGVzdFJlcUluZm8iLCJydW4iLCJnZXRTdG9yZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/experimental/testmode/context.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/experimental/testmode/fetch.js": +/*!***************************************************************!*\ + !*** ./node_modules/next/dist/experimental/testmode/fetch.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"buffer\")[\"Buffer\"];\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 reader: function() {\n return reader;\n },\n handleFetch: function() {\n return handleFetch;\n },\n interceptFetch: function() {\n return interceptFetch;\n }\n});\nconst _context = __webpack_require__(/*! ./context */ \"(middleware)/./node_modules/next/dist/experimental/testmode/context.js\");\nconst reader = {\n url (req) {\n return req.url;\n },\n header (req, name) {\n return req.headers.get(name);\n }\n};\nfunction getTestStack() {\n let stack = (new Error().stack ?? \"\").split(\"\\n\");\n // Skip the first line and find first non-empty line.\n for(let i = 1; i < stack.length; i++){\n if (stack[i].length > 0) {\n stack = stack.slice(i);\n break;\n }\n }\n // Filter out franmework lines.\n stack = stack.filter((f)=>!f.includes(\"/next/dist/\"));\n // At most 5 lines.\n stack = stack.slice(0, 5);\n // Cleanup some internal info and trim.\n stack = stack.map((s)=>s.replace(\"webpack-internal:///(rsc)/\", \"\").trim());\n return stack.join(\" \");\n}\nasync function buildProxyRequest(testData, request) {\n const { url, method, headers, body, cache, credentials, integrity, mode, redirect, referrer, referrerPolicy } = request;\n return {\n testData,\n api: \"fetch\",\n request: {\n url,\n method,\n headers: [\n ...Array.from(headers),\n [\n \"next-test-stack\",\n getTestStack()\n ]\n ],\n body: body ? Buffer.from(await request.arrayBuffer()).toString(\"base64\") : null,\n cache,\n credentials,\n integrity,\n mode,\n redirect,\n referrer,\n referrerPolicy\n }\n };\n}\nfunction buildResponse(proxyResponse) {\n const { status, headers, body } = proxyResponse.response;\n return new Response(body ? Buffer.from(body, \"base64\") : null, {\n status,\n headers: new Headers(headers)\n });\n}\nasync function handleFetch(originalFetch, request) {\n const testInfo = (0, _context.getTestReqInfo)(request, reader);\n if (!testInfo) {\n throw new Error(`No test info for ${request.method} ${request.url}`);\n }\n const { testData, proxyPort } = testInfo;\n const proxyRequest = await buildProxyRequest(testData, request);\n const resp = await originalFetch(`http://localhost:${proxyPort}`, {\n method: \"POST\",\n body: JSON.stringify(proxyRequest),\n next: {\n // @ts-ignore\n internal: true\n }\n });\n if (!resp.ok) {\n throw new Error(`Proxy request failed: ${resp.status}`);\n }\n const proxyResponse = await resp.json();\n const { api } = proxyResponse;\n switch(api){\n case \"continue\":\n return originalFetch(request);\n case \"abort\":\n case \"unhandled\":\n throw new Error(`Proxy request aborted [${request.method} ${request.url}]`);\n default:\n break;\n }\n return buildResponse(proxyResponse);\n}\nfunction interceptFetch(originalFetch) {\n __webpack_require__.g.fetch = function testFetch(input, init) {\n var _init_next;\n // Passthrough internal requests.\n // @ts-ignore\n if (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) {\n return originalFetch(input, init);\n }\n return handleFetch(originalFetch, new Request(input, init));\n };\n return ()=>{\n __webpack_require__.g.fetch = originalFetch;\n };\n} //# sourceMappingURL=fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvZmV0Y2guanMiLCJtYXBwaW5ncyI6IjtBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGLEtBQU1DLENBQUFBLENBSU47QUFDQSxTQUFTSSxRQUFRQyxNQUFNLEVBQUVDLEdBQUc7SUFDeEIsSUFBSSxJQUFJQyxRQUFRRCxJQUFJVixPQUFPQyxjQUFjLENBQUNRLFFBQVFFLE1BQU07UUFDcERDLFlBQVk7UUFDWkMsS0FBS0gsR0FBRyxDQUFDQyxLQUFLO0lBQ2xCO0FBQ0o7QUFDQUgsUUFBUU4sU0FBUztJQUNiRyxRQUFRO1FBQ0osT0FBT0E7SUFDWDtJQUNBQyxhQUFhO1FBQ1QsT0FBT0E7SUFDWDtJQUNBQyxnQkFBZ0I7UUFDWixPQUFPQTtJQUNYO0FBQ0o7QUFDQSxNQUFNTyxXQUFXQyxtQkFBT0EsQ0FBQyx5RkFBVztBQUNwQyxNQUFNVixTQUFTO0lBQ1hXLEtBQUtDLEdBQUc7UUFDSixPQUFPQSxJQUFJRCxHQUFHO0lBQ2xCO0lBQ0FFLFFBQVFELEdBQUcsRUFBRU4sSUFBSTtRQUNiLE9BQU9NLElBQUlFLE9BQU8sQ0FBQ04sR0FBRyxDQUFDRjtJQUMzQjtBQUNKO0FBQ0EsU0FBU1M7SUFDTCxJQUFJQyxRQUFRLENBQUMsSUFBSUMsUUFBUUQsS0FBSyxJQUFJLEVBQUMsRUFBR0UsS0FBSyxDQUFDO0lBQzVDLHFEQUFxRDtJQUNyRCxJQUFJLElBQUlDLElBQUksR0FBR0EsSUFBSUgsTUFBTUksTUFBTSxFQUFFRCxJQUFJO1FBQ2pDLElBQUlILEtBQUssQ0FBQ0csRUFBRSxDQUFDQyxNQUFNLEdBQUcsR0FBRztZQUNyQkosUUFBUUEsTUFBTUssS0FBSyxDQUFDRjtZQUNwQjtRQUNKO0lBQ0o7SUFDQSwrQkFBK0I7SUFDL0JILFFBQVFBLE1BQU1NLE1BQU0sQ0FBQyxDQUFDQyxJQUFJLENBQUNBLEVBQUVDLFFBQVEs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LEtBQUssSUFBSVMsV0FBV1IsUUFBUSxFQUFFO1lBQ3pGLE9BQU9ULGNBQWNlLE9BQU9DO1FBQ2hDO1FBQ0EsT0FBT3JFLFlBQVlxRCxlQUFlLElBQUlrQixRQUFRSCxPQUFPQztJQUN6RDtJQUNBLE9BQU87UUFDSEoscUJBQU1BLENBQUNDLEtBQUssR0FBR2I7SUFDbkI7QUFDSixFQUVBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2V4cGVyaW1lbnRhbC90ZXN0bW9kZS9mZXRjaC5qcz85NmYzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgcmVhZGVyOiBudWxsLFxuICAgIGhhbmRsZUZldGNoOiBudWxsLFxuICAgIGludGVyY2VwdEZldGNoOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHJlYWRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZWFkZXI7XG4gICAgfSxcbiAgICBoYW5kbGVGZXRjaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBoYW5kbGVGZXRjaDtcbiAgICB9LFxuICAgIGludGVyY2VwdEZldGNoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGludGVyY2VwdEZldGNoO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnRleHQgPSByZXF1aXJlKFwiLi9jb250ZXh0XCIpO1xuY29uc3QgcmVhZGVyID0ge1xuICAgIHVybCAocmVxKSB7XG4gICAgICAgIHJldHVybiByZXEudXJsO1xuICAgIH0sXG4gICAgaGVhZGVyIChyZXEsIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHJlcS5oZWFkZXJzLmdldChuYW1lKTtcbiAgICB9XG59O1xuZnVuY3Rpb24gZ2V0VGVzdFN0YWNrKCkge1xuICAgIGxldCBzdGFjayA9IChuZXcgRXJyb3IoKS5zdGFjayA/PyBcIlwiKS5zcGxpdChcIlxcblwiKTtcbiAgICAvLyBTa2lwIHRoZSBmaXJzdCBsaW5lIGFuZCBmaW5kIGZpcnN0IG5vbi1lbXB0eSBsaW5lLlxuICAgIGZvcihsZXQgaSA9IDE7IGkgPCBzdGFjay5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGlmIChzdGFja1tpXS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzdGFjayA9IHN0YWNrLnNsaWNlKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRmlsdGVyIG91dCBmcmFubWV3b3JrIGxpbmVzLlxuICAgIHN0YWNrID0gc3RhY2suZmlsdGVyKChmKT0+IWYuaW5jbHVkZXMoXCIvbmV4dC9kaXN0L1wiKSk7XG4gICAgLy8gQXQgbW9zdCA1IGxpbmVzLlxuICAgIHN0YWNrID0gc3RhY2suc2xpY2UoMCwgNSk7XG4gICAgLy8gQ2xlYW51cCBzb21lIGludGVybmFsIGluZm8gYW5kIHRyaW0uXG4gICAgc3RhY2sgPSBzdGFjay5tYXAoKHMpPT5zLnJlcGxhY2UoXCJ3ZWJwYWNrLWludGVybmFsOi8vLyhyc2MpL1wiLCBcIlwiKS50cmltKCkpO1xuICAgIHJldHVybiBzdGFjay5qb2luKFwiICAgIFwiKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGJ1aWxkUHJveHlSZXF1ZXN0KHRlc3REYXRhLCByZXF1ZXN0KSB7XG4gICAgY29uc3QgeyB1cmwsIG1ldGhvZCwgaGVhZGVycywgYm9keSwgY2FjaGUsIGNyZWRlbnRpYWxzLCBpbnRlZ3JpdHksIG1vZGUsIHJlZGlyZWN0LCByZWZlcnJlciwgcmVmZXJyZXJQb2xpY3kgfSA9IHJlcXVlc3Q7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGVzdERhdGEsXG4gICAgICAgIGFwaTogXCJmZXRjaFwiLFxuICAgICAgICByZXF1ZXN0OiB7XG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiBbXG4gICAgICAgICAgICAgICAgLi4uQXJyYXkuZnJvbShoZWFkZXJzKSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIFwibmV4dC10ZXN0LXN0YWNrXCIsXG4gICAgICAgICAgICAgICAgICAgIGdldFRlc3RTdGFjaygpXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGJvZHk6IGJvZHkgPyBCdWZmZXIuZnJvbShhd2FpdCByZXF1ZXN0LmFycmF5QnVmZmVyKCkpLnRvU3RyaW5nKFwiYmFzZTY0XCIpIDogbnVsbCxcbiAgICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgICAgICBpbnRlZ3JpdHksXG4gICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgcmVkaXJlY3QsXG4gICAgICAgICAgICByZWZlcnJlcixcbiAgICAgICAgICAgIHJlZmVycmVyUG9saWN5XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gYnVpbGRSZXNwb25zZShwcm94eVJlc3BvbnNlKSB7XG4gICAgY29uc3QgeyBzdGF0dXMsIGhlYWRlcnMsIGJvZHkgfSA9IHByb3h5UmVzcG9uc2UucmVzcG9uc2U7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShib2R5ID8gQnVmZmVyLmZyb20oYm9keSwgXCJiYXNlNjRcIikgOiBudWxsLCB7XG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMoaGVhZGVycylcbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZUZldGNoKG9yaWdpbmFsRmV0Y2gsIHJlcXVlc3QpIHtcbiAgICBjb25zdCB0ZXN0SW5mbyA9ICgwLCBfY29udGV4dC5nZXRUZXN0UmVxSW5mbykocmVxdWVzdCwgcmVhZGVyKTtcbiAgICBpZiAoIXRlc3RJbmZvKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gdGVzdCBpbmZvIGZvciAke3JlcXVlc3QubWV0aG9kfSAke3JlcXVlc3QudXJsfWApO1xuICAgIH1cbiAgICBjb25zdCB7IHRlc3REYXRhLCBwcm94eVBvcnQgfSA9IHRlc3RJbmZvO1xuICAgIGNvbnN0IHByb3h5UmVxdWVzdCA9IGF3YWl0IGJ1aWxkUHJveHlSZXF1ZXN0KHRlc3REYXRhLCByZXF1ZXN0KTtcbiAgICBjb25zdCByZXNwID0gYXdhaXQgb3JpZ2luYWxGZXRjaChgaHR0cDovL2xvY2FsaG9zdDoke3Byb3h5UG9ydH1gLCB7XG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHByb3h5UmVxdWVzdCksXG4gICAgICAgIG5leHQ6IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGludGVybmFsOiB0cnVlXG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIXJlc3Aub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm94eSByZXF1ZXN0IGZhaWxlZDogJHtyZXNwLnN0YXR1c31gKTtcbiAgICB9XG4gICAgY29uc3QgcHJveHlSZXNwb25zZSA9IGF3YWl0IHJlc3AuanNvbigpO1xuICAgIGNvbnN0IHsgYXBpIH0gPSBwcm94eVJlc3BvbnNlO1xuICAgIHN3aXRjaChhcGkpe1xuICAgICAgICBjYXNlIFwiY29udGludWVcIjpcbiAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEZldGNoKHJlcXVlc3QpO1xuICAgICAgICBjYXNlIFwiYWJvcnRcIjpcbiAgICAgICAgY2FzZSBcInVuaGFuZGxlZFwiOlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm94eSByZXF1ZXN0IGFib3J0ZWQgWyR7cmVxdWVzdC5tZXRob2R9ICR7cmVxdWVzdC51cmx9XWApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBidWlsZFJlc3BvbnNlKHByb3h5UmVzcG9uc2UpO1xufVxuZnVuY3Rpb24gaW50ZXJjZXB0RmV0Y2gob3JpZ2luYWxGZXRjaCkge1xuICAgIGdsb2JhbC5mZXRjaCA9IGZ1bmN0aW9uIHRlc3RGZXRjaChpbnB1dCwgaW5pdCkge1xuICAgICAgICB2YXIgX2luaXRfbmV4dDtcbiAgICAgICAgLy8gUGFzc3Rocm91Z2ggaW50ZXJuYWwgcmVxdWVzdHMuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9uZXh0ID0gaW5pdC5uZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX2luaXRfbmV4dC5pbnRlcm5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRmV0Y2goaW5wdXQsIGluaXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYW5kbGVGZXRjaChvcmlnaW5hbEZldGNoLCBuZXcgUmVxdWVzdChpbnB1dCwgaW5pdCkpO1xuICAgIH07XG4gICAgcmV0dXJuICgpPT57XG4gICAgICAgIGdsb2JhbC5mZXRjaCA9IG9yaWdpbmFsRmV0Y2g7XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmV0Y2guanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibW9kdWxlIiwicmVhZGVyIiwiaGFuZGxlRmV0Y2giLCJpbnRlcmNlcHRGZXRjaCIsIl9leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZW51bWVyYWJsZSIsImdldCIsIl9jb250ZXh0IiwicmVxdWlyZSIsInVybCIsInJlcSIsImhlYWRlciIsImhlYWRlcnMiLCJnZXRUZXN0U3RhY2siLCJzdGFjayIsIkVycm9yIiwic3BsaXQiLCJpIiwibGVuZ3RoIiwic2xpY2UiLCJmaWx0ZXIiLCJmIiwiaW5jbHVkZXMiLCJtYXAiLCJzIiwicmVwbGFjZSIsInRyaW0iLCJqb2luIiwiYnVpbGRQcm94eVJlcXVlc3QiLCJ0ZXN0RGF0YSIsInJlcXVlc3QiLCJtZXRob2QiLCJib2R5IiwiY2FjaGUiLCJjcmVkZW50aWFscyIsImludGVncml0eSIsIm1vZGUiLCJyZWRpcmVjdCIsInJlZmVycmVyIiwicmVmZXJyZXJQb2xpY3kiLCJhcGkiLCJBcnJheSIsImZyb20iLCJCdWZmZXIiLCJhcnJheUJ1ZmZlciIsInRvU3RyaW5nIiwiYnVpbGRSZXNwb25zZSIsInByb3h5UmVzcG9uc2UiLCJzdGF0dXMiLCJyZXNwb25zZSIsIlJlc3BvbnNlIiwiSGVhZGVycyIsIm9yaWdpbmFsRmV0Y2giLCJ0ZXN0SW5mbyIsImdldFRlc3RSZXFJbmZvIiwicHJveHlQb3J0IiwicHJveHlSZXF1ZXN0IiwicmVzcCIsIkpTT04iLCJzdHJpbmdpZnkiLCJuZXh0IiwiaW50ZXJuYWwiLCJvayIsImpzb24iLCJnbG9iYWwiLCJmZXRjaCIsInRlc3RGZXRjaCIsImlucHV0IiwiaW5pdCIsIl9pbml0X25leHQiLCJSZXF1ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/experimental/testmode/fetch.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/next/dist/experimental/testmode/server-edge.js": +/*!*********************************************************************!*\ + !*** ./node_modules/next/dist/experimental/testmode/server-edge.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 interceptTestApis: function() {\n return interceptTestApis;\n },\n wrapRequestHandler: function() {\n return wrapRequestHandler;\n }\n});\nconst _context = __webpack_require__(/*! ./context */ \"(middleware)/./node_modules/next/dist/experimental/testmode/context.js\");\nconst _fetch = __webpack_require__(/*! ./fetch */ \"(middleware)/./node_modules/next/dist/experimental/testmode/fetch.js\");\nfunction interceptTestApis() {\n return (0, _fetch.interceptFetch)(__webpack_require__.g.fetch);\n}\nfunction wrapRequestHandler(handler) {\n return (req, fn)=>(0, _context.withRequest)(req, _fetch.reader, ()=>handler(req, fn));\n} //# sourceMappingURL=server-edge.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvc2VydmVyLWVkZ2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0YsS0FBTUMsQ0FBQUEsQ0FHTjtBQUNBLFNBQVNHLFFBQVFDLE1BQU0sRUFBRUMsR0FBRztJQUN4QixJQUFJLElBQUlDLFFBQVFELElBQUlULE9BQU9DLGNBQWMsQ0FBQ08sUUFBUUUsTUFBTTtRQUNwREMsWUFBWTtRQUNaQyxLQUFLSCxHQUFHLENBQUNDLEtBQUs7SUFDbEI7QUFDSjtBQUNBSCxRQUFRTCxTQUFTO0lBQ2JHLG1CQUFtQjtRQUNmLE9BQU9BO0lBQ1g7SUFDQUMsb0JBQW9CO1FBQ2hCLE9BQU9BO0lBQ1g7QUFDSjtBQUNBLE1BQU1PLFdBQVdDLG1CQUFPQSxDQUFDLHlGQUFXO0FBQ3BDLE1BQU1DLFNBQVNELG1CQUFPQSxDQUFDLHFGQUFTO0FBQ2hDLFNBQVNUO0lBQ0wsT0FBTyxDQUFDLEdBQUdVLE9BQU9DLGNBQWMsRUFBRUMscUJBQU1BLENBQUNDLEtBQUs7QUFDbEQ7QUFDQSxTQUFTWixtQkFBbUJhLE9BQU87SUFDL0IsT0FBTyxDQUFDQyxLQUFLQyxLQUFLLENBQUMsR0FBR1IsU0FBU1MsV0FBVyxFQUFFRixLQUFLTCxPQUFPUSxNQUFNLEVBQUUsSUFBSUosUUFBUUMsS0FBS0M7QUFDckYsRUFFQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvc2VydmVyLWVkZ2UuanM/NDcxOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGludGVyY2VwdFRlc3RBcGlzOiBudWxsLFxuICAgIHdyYXBSZXF1ZXN0SGFuZGxlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpbnRlcmNlcHRUZXN0QXBpczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnRlcmNlcHRUZXN0QXBpcztcbiAgICB9LFxuICAgIHdyYXBSZXF1ZXN0SGFuZGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3cmFwUmVxdWVzdEhhbmRsZXI7XG4gICAgfVxufSk7XG5jb25zdCBfY29udGV4dCA9IHJlcXVpcmUoXCIuL2NvbnRleHRcIik7XG5jb25zdCBfZmV0Y2ggPSByZXF1aXJlKFwiLi9mZXRjaFwiKTtcbmZ1bmN0aW9uIGludGVyY2VwdFRlc3RBcGlzKCkge1xuICAgIHJldHVybiAoMCwgX2ZldGNoLmludGVyY2VwdEZldGNoKShnbG9iYWwuZmV0Y2gpO1xufVxuZnVuY3Rpb24gd3JhcFJlcXVlc3RIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICByZXR1cm4gKHJlcSwgZm4pPT4oMCwgX2NvbnRleHQud2l0aFJlcXVlc3QpKHJlcSwgX2ZldGNoLnJlYWRlciwgKCk9PmhhbmRsZXIocmVxLCBmbikpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItZWRnZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJpbnRlcmNlcHRUZXN0QXBpcyIsIndyYXBSZXF1ZXN0SGFuZGxlciIsIl9leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZW51bWVyYWJsZSIsImdldCIsIl9jb250ZXh0IiwicmVxdWlyZSIsIl9mZXRjaCIsImludGVyY2VwdEZldGNoIiwiZ2xvYmFsIiwiZmV0Y2giLCJoYW5kbGVyIiwicmVxIiwiZm4iLCJ3aXRoUmVxdWVzdCIsInJlYWRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/next/dist/experimental/testmode/server-edge.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ws/browser.js": +/*!************************************!*\ + !*** ./node_modules/ws/browser.js ***! + \************************************/ +/***/ ((module) => { + +"use strict"; +eval("\nmodule.exports = function() {\n throw new Error(\"ws does not work in the browser. Browser clients must use the native \" + \"WebSocket object\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3dzL2Jyb3dzZXIuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFFQUEsT0FBT0MsT0FBTyxHQUFHO0lBQ2YsTUFBTSxJQUFJQyxNQUNSLDBFQUNFO0FBRU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3dzL2Jyb3dzZXIuanM/MmMxZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ3dzIGRvZXMgbm90IHdvcmsgaW4gdGhlIGJyb3dzZXIuIEJyb3dzZXIgY2xpZW50cyBtdXN0IHVzZSB0aGUgbmF0aXZlICcgK1xuICAgICAgJ1dlYlNvY2tldCBvYmplY3QnXG4gICk7XG59O1xuIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ws/browser.js\n"); + +/***/ }), + +/***/ "(middleware)/./utils/supabase/middleware.ts": +/*!**************************************!*\ + !*** ./utils/supabase/middleware.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 */ createClient: () => (/* binding */ createClient)\n/* harmony export */ });\n/* harmony import */ var _supabase_ssr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/ssr */ \"(middleware)/./node_modules/@supabase/ssr/dist/index.mjs\");\n/* harmony import */ var next_dist_server_web_exports_next_response__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/web/exports/next-response */ \"(middleware)/./node_modules/next/dist/esm/server/web/exports/next-response.js\");\n\n\nconst createClient = (request)=>{\n // Create an unmodified response\n let response = next_dist_server_web_exports_next_response__WEBPACK_IMPORTED_MODULE_1__[\"default\"].next({\n request: {\n headers: request.headers\n }\n });\n const supabase = (0,_supabase_ssr__WEBPACK_IMPORTED_MODULE_0__.createServerClient)(\"https://xqnaddwvcfzffvygbikl.supabase.co\", \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InhxbmFkZHd2Y2Z6ZmZ2eWdiaWtsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDcyMDQyMjYsImV4cCI6MjAyMjc4MDIyNn0.5cAxDA5obebKSe8iiDkfVe7XtU9KAX5iOZsGMUoX99A\", {\n cookies: {\n get (name) {\n return request.cookies.get(name)?.value;\n },\n set (name, value, options) {\n // If the cookie is updated, update the cookies for the request and response\n request.cookies.set({\n name,\n value,\n ...options\n });\n response = next_dist_server_web_exports_next_response__WEBPACK_IMPORTED_MODULE_1__[\"default\"].next({\n request: {\n headers: request.headers\n }\n });\n response.cookies.set({\n name,\n value,\n ...options\n });\n },\n remove (name, options) {\n // If the cookie is removed, update the cookies for the request and response\n request.cookies.set({\n name,\n value: \"\",\n ...options\n });\n response = next_dist_server_web_exports_next_response__WEBPACK_IMPORTED_MODULE_1__[\"default\"].next({\n request: {\n headers: request.headers\n }\n });\n response.cookies.set({\n name,\n value: \"\",\n ...options\n });\n }\n }\n });\n return {\n supabase,\n response\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vdXRpbHMvc3VwYWJhc2UvbWlkZGxld2FyZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUU7QUFDVjtBQUV0RCxNQUFNRSxlQUFlLENBQUNDO0lBQzNCLGdDQUFnQztJQUNoQyxJQUFJQyxXQUFXSCxrRkFBWUEsQ0FBQ0ksSUFBSSxDQUFDO1FBQy9CRixTQUFTO1lBQ1BHLFNBQVNILFFBQVFHLE9BQU87UUFDMUI7SUFDRjtJQUVBLE1BQU1DLFdBQVdQLGlFQUFrQkEsQ0FDakNRLDBDQUFvQyxFQUNwQ0Esa05BQXlDLEVBQ3pDO1FBQ0VJLFNBQVM7WUFDUEMsS0FBSUMsSUFBWTtnQkFDZCxPQUFPWCxRQUFRUyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsT0FBT0M7WUFDcEM7WUFDQUMsS0FBSUYsSUFBWSxFQUFFQyxLQUFhLEVBQUVFLE9BQXNCO2dCQUNyRCw0RUFBNEU7Z0JBQzVFZCxRQUFRUyxPQUFPLENBQUNJLEdBQUcsQ0FBQztvQkFDbEJGO29CQUNBQztvQkFDQSxHQUFHRSxPQUFPO2dCQUNaO2dCQUNBYixXQUFXSCxrRkFBWUEsQ0FBQ0ksSUFBSSxDQUFDO29CQUMzQkYsU0FBUzt3QkFDUEcsU0FBU0gsUUFBUUcsT0FBTztvQkFDMUI7Z0JBQ0Y7Z0JBQ0FGLFNBQVNRLE9BQU8sQ0FBQ0ksR0FBRyxDQUFDO29CQUNuQkY7b0JBQ0FDO29CQUNBLEdBQUdFLE9BQU87Z0JBQ1o7WUFDRjtZQUNBQyxRQUFPSixJQUFZLEVBQUVHLE9BQXNCO2dCQUN6Qyw0RUFBNEU7Z0JBQzVFZCxRQUFRUyxPQUFPLENBQUNJLEdBQUcsQ0FBQztvQkFDbEJGO29CQUNBQyxPQUFPO29CQUNQLEdBQUdFLE9BQU87Z0JBQ1o7Z0JBQ0FiLFdBQVdILGtGQUFZQSxDQUFDSSxJQUFJLENBQUM7b0JBQzNCRixTQUFTO3dCQUNQRyxTQUFTSCxRQUFRRyxPQUFPO29CQUMxQjtnQkFDRjtnQkFDQUYsU0FBU1EsT0FBTyxDQUFDSSxHQUFHLENBQUM7b0JBQ25CRjtvQkFDQUMsT0FBTztvQkFDUCxHQUFHRSxPQUFPO2dCQUNaO1lBQ0Y7UUFDRjtJQUNGO0lBR0YsT0FBTztRQUFFVjtRQUFVSDtJQUFTO0FBQzlCLEVBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vdXRpbHMvc3VwYWJhc2UvbWlkZGxld2FyZS50cz9jZDlkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlcnZlckNsaWVudCwgdHlwZSBDb29raWVPcHRpb25zIH0gZnJvbSBcIkBzdXBhYmFzZS9zc3JcIjtcbmltcG9ydCB7IHR5cGUgTmV4dFJlcXVlc3QsIE5leHRSZXNwb25zZSB9IGZyb20gXCJuZXh0L3NlcnZlclwiO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQ2xpZW50ID0gKHJlcXVlc3Q6IE5leHRSZXF1ZXN0KSA9PiB7XG4gIC8vIENyZWF0ZSBhbiB1bm1vZGlmaWVkIHJlc3BvbnNlXG4gIGxldCByZXNwb25zZSA9IE5leHRSZXNwb25zZS5uZXh0KHtcbiAgICByZXF1ZXN0OiB7XG4gICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3Qgc3VwYWJhc2UgPSBjcmVhdGVTZXJ2ZXJDbGllbnQoXG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfU1VQQUJBU0VfVVJMISxcbiAgICBwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19TVVBBQkFTRV9BTk9OX0tFWSEsXG4gICAge1xuICAgICAgY29va2llczoge1xuICAgICAgICBnZXQobmFtZTogc3RyaW5nKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVlc3QuY29va2llcy5nZXQobmFtZSk/LnZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBDb29raWVPcHRpb25zKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGNvb2tpZSBpcyB1cGRhdGVkLCB1cGRhdGUgdGhlIGNvb2tpZXMgZm9yIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZVxuICAgICAgICAgIHJlcXVlc3QuY29va2llcy5zZXQoe1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNwb25zZSA9IE5leHRSZXNwb25zZS5uZXh0KHtcbiAgICAgICAgICAgIHJlcXVlc3Q6IHtcbiAgICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNwb25zZS5jb29raWVzLnNldCh7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICByZW1vdmUobmFtZTogc3RyaW5nLCBvcHRpb25zOiBDb29raWVPcHRpb25zKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGNvb2tpZSBpcyByZW1vdmVkLCB1cGRhdGUgdGhlIGNvb2tpZXMgZm9yIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZVxuICAgICAgICAgIHJlcXVlc3QuY29va2llcy5zZXQoe1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNwb25zZSA9IE5leHRSZXNwb25zZS5uZXh0KHtcbiAgICAgICAgICAgIHJlcXVlc3Q6IHtcbiAgICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNwb25zZS5jb29raWVzLnNldCh7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICApO1xuXG4gIHJldHVybiB7IHN1cGFiYXNlLCByZXNwb25zZSB9O1xufTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVTZXJ2ZXJDbGllbnQiLCJOZXh0UmVzcG9uc2UiLCJjcmVhdGVDbGllbnQiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJuZXh0IiwiaGVhZGVycyIsInN1cGFiYXNlIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFVCTElDX1NVUEFCQVNFX1VSTCIsIk5FWFRfUFVCTElDX1NVUEFCQVNFX0FOT05fS0VZIiwiY29va2llcyIsImdldCIsIm5hbWUiLCJ2YWx1ZSIsInNldCIsIm9wdGlvbnMiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./utils/supabase/middleware.ts\n"); + +/***/ }), + +/***/ "(shared)/./node_modules/next/dist/esm/client/components/async-local-storage.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/next/dist/esm/client/components/async-local-storage.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createAsyncLocalStorage: () => (/* binding */ createAsyncLocalStorage)\n/* harmony export */ });\nconst sharedAsyncLocalStorageNotAvailableError = new Error(\"Invariant: AsyncLocalStorage accessed in runtime where it is not available\");\nclass FakeAsyncLocalStorage {\n disable() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n getStore() {\n // This fake implementation of AsyncLocalStorage always returns `undefined`.\n return undefined;\n }\n run() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n exit() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n enterWith() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n}\nconst maybeGlobalAsyncLocalStorage = globalThis.AsyncLocalStorage;\nfunction createAsyncLocalStorage() {\n if (maybeGlobalAsyncLocalStorage) {\n return new maybeGlobalAsyncLocalStorage();\n }\n return new FakeAsyncLocalStorage();\n} //# sourceMappingURL=async-local-storage.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9hc3luYy1sb2NhbC1zdG9yYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSwyQ0FBMkMsSUFBSUMsTUFBTTtBQUMzRCxNQUFNQztJQUNGQyxVQUFVO1FBQ04sTUFBTUg7SUFDVjtJQUNBSSxXQUFXO1FBQ1AsNEVBQTRFO1FBQzVFLE9BQU9DO0lBQ1g7SUFDQUMsTUFBTTtRQUNGLE1BQU1OO0lBQ1Y7SUFDQU8sT0FBTztRQUNILE1BQU1QO0lBQ1Y7SUFDQVEsWUFBWTtRQUNSLE1BQU1SO0lBQ1Y7QUFDSjtBQUNBLE1BQU1TLCtCQUErQkMsV0FBV0MsaUJBQWlCO0FBQzFELFNBQVNDO0lBQ1osSUFBSUgsOEJBQThCO1FBQzlCLE9BQU8sSUFBSUE7SUFDZjtJQUNBLE9BQU8sSUFBSVA7QUFDZixFQUVBLCtDQUErQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9hc3luYy1sb2NhbC1zdG9yYWdlLmpzP2I0MmYiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc2hhcmVkQXN5bmNMb2NhbFN0b3JhZ2VOb3RBdmFpbGFibGVFcnJvciA9IG5ldyBFcnJvcihcIkludmFyaWFudDogQXN5bmNMb2NhbFN0b3JhZ2UgYWNjZXNzZWQgaW4gcnVudGltZSB3aGVyZSBpdCBpcyBub3QgYXZhaWxhYmxlXCIpO1xuY2xhc3MgRmFrZUFzeW5jTG9jYWxTdG9yYWdlIHtcbiAgICBkaXNhYmxlKCkge1xuICAgICAgICB0aHJvdyBzaGFyZWRBc3luY0xvY2FsU3RvcmFnZU5vdEF2YWlsYWJsZUVycm9yO1xuICAgIH1cbiAgICBnZXRTdG9yZSgpIHtcbiAgICAgICAgLy8gVGhpcyBmYWtlIGltcGxlbWVudGF0aW9uIG9mIEFzeW5jTG9jYWxTdG9yYWdlIGFsd2F5cyByZXR1cm5zIGB1bmRlZmluZWRgLlxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBydW4oKSB7XG4gICAgICAgIHRocm93IHNoYXJlZEFzeW5jTG9jYWxTdG9yYWdlTm90QXZhaWxhYmxlRXJyb3I7XG4gICAgfVxuICAgIGV4aXQoKSB7XG4gICAgICAgIHRocm93IHNoYXJlZEFzeW5jTG9jYWxTdG9yYWdlTm90QXZhaWxhYmxlRXJyb3I7XG4gICAgfVxuICAgIGVudGVyV2l0aCgpIHtcbiAgICAgICAgdGhyb3cgc2hhcmVkQXN5bmNMb2NhbFN0b3JhZ2VOb3RBdmFpbGFibGVFcnJvcjtcbiAgICB9XG59XG5jb25zdCBtYXliZUdsb2JhbEFzeW5jTG9jYWxTdG9yYWdlID0gZ2xvYmFsVGhpcy5Bc3luY0xvY2FsU3RvcmFnZTtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSgpIHtcbiAgICBpZiAobWF5YmVHbG9iYWxBc3luY0xvY2FsU3RvcmFnZSkge1xuICAgICAgICByZXR1cm4gbmV3IG1heWJlR2xvYmFsQXN5bmNMb2NhbFN0b3JhZ2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBGYWtlQXN5bmNMb2NhbFN0b3JhZ2UoKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXN5bmMtbG9jYWwtc3RvcmFnZS5qcy5tYXAiXSwibmFtZXMiOlsic2hhcmVkQXN5bmNMb2NhbFN0b3JhZ2VOb3RBdmFpbGFibGVFcnJvciIsIkVycm9yIiwiRmFrZUFzeW5jTG9jYWxTdG9yYWdlIiwiZGlzYWJsZSIsImdldFN0b3JlIiwidW5kZWZpbmVkIiwicnVuIiwiZXhpdCIsImVudGVyV2l0aCIsIm1heWJlR2xvYmFsQXN5bmNMb2NhbFN0b3JhZ2UiLCJnbG9iYWxUaGlzIiwiQXN5bmNMb2NhbFN0b3JhZ2UiLCJjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(shared)/./node_modules/next/dist/esm/client/components/async-local-storage.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/@supabase/ssr/dist/index.mjs": +/*!***************************************************!*\ + !*** ./node_modules/@supabase/ssr/dist/index.mjs ***! + \***************************************************/ +/***/ ((__unused_webpack___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_COOKIE_OPTIONS: () => (/* binding */ DEFAULT_COOKIE_OPTIONS),\n/* harmony export */ combineChunks: () => (/* binding */ combineChunks),\n/* harmony export */ createBrowserClient: () => (/* binding */ createBrowserClient),\n/* harmony export */ createChunks: () => (/* binding */ createChunks),\n/* harmony export */ createServerClient: () => (/* binding */ createServerClient),\n/* harmony export */ deleteChunks: () => (/* binding */ deleteChunks),\n/* harmony export */ isBrowser: () => (/* binding */ isBrowser),\n/* harmony export */ parse: () => (/* reexport safe */ cookie__WEBPACK_IMPORTED_MODULE_0__.parse),\n/* harmony export */ serialize: () => (/* reexport safe */ cookie__WEBPACK_IMPORTED_MODULE_0__.serialize)\n/* harmony export */ });\n/* harmony import */ var _supabase_supabase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/supabase-js */ \"(middleware)/./node_modules/@supabase/supabase-js/dist/module/index.js\");\n/* harmony import */ var _barrel_optimize_names_mergeDeepRight_ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=mergeDeepRight!=!ramda */ \"(middleware)/./node_modules/ramda/es/mergeDeepRight.js\");\n/* harmony import */ var cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cookie */ \"(middleware)/./node_modules/cookie/index.js\");\n// src/createBrowserClient.ts\n\n\n// src/utils/helpers.ts\n\nfunction isBrowser() {\n return false && 0;\n}\n// src/utils/constants.ts\nvar DEFAULT_COOKIE_OPTIONS = {\n path: \"/\",\n sameSite: \"lax\",\n httpOnly: false,\n maxAge: 60 * 60 * 24 * 365 * 1e3\n};\n// src/utils/chunker.ts\nvar MAX_CHUNK_SIZE = 3180;\nfunction createChunks(key, value, chunkSize) {\n const resolvedChunkSize = chunkSize ?? MAX_CHUNK_SIZE;\n let encodedValue = encodeURIComponent(value);\n if (encodedValue.length <= resolvedChunkSize) {\n return [\n {\n name: key,\n value\n }\n ];\n }\n const chunks = [];\n while(encodedValue.length > 0){\n let encodedChunkHead = encodedValue.slice(0, resolvedChunkSize);\n const lastEscapePos = encodedChunkHead.lastIndexOf(\"%\");\n if (lastEscapePos > resolvedChunkSize - 3) {\n encodedChunkHead = encodedChunkHead.slice(0, lastEscapePos);\n }\n let valueHead = \"\";\n while(encodedChunkHead.length > 0){\n try {\n valueHead = decodeURIComponent(encodedChunkHead);\n break;\n } catch (error) {\n if (error instanceof URIError && encodedChunkHead.at(-3) === \"%\" && encodedChunkHead.length > 3) {\n encodedChunkHead = encodedChunkHead.slice(0, encodedChunkHead.length - 3);\n } else {\n throw error;\n }\n }\n }\n chunks.push(valueHead);\n encodedValue = encodedValue.slice(encodedChunkHead.length);\n }\n return chunks.map((value2, i)=>({\n name: `${key}.${i}`,\n value: value2\n }));\n}\nasync function combineChunks(key, retrieveChunk) {\n const value = await retrieveChunk(key);\n if (value) {\n return value;\n }\n let values = [];\n for(let i = 0;; i++){\n const chunkName = `${key}.${i}`;\n const chunk = await retrieveChunk(chunkName);\n if (!chunk) {\n break;\n }\n values.push(chunk);\n }\n if (values.length > 0) {\n return values.join(\"\");\n }\n}\nasync function deleteChunks(key, retrieveChunk, removeChunk) {\n const value = await retrieveChunk(key);\n if (value) {\n await removeChunk(key);\n return;\n }\n for(let i = 0;; i++){\n const chunkName = `${key}.${i}`;\n const chunk = await retrieveChunk(chunkName);\n if (!chunk) {\n break;\n }\n await removeChunk(chunkName);\n }\n}\n// src/createBrowserClient.ts\n\nvar cachedBrowserClient;\nfunction createBrowserClient(supabaseUrl, supabaseKey, options) {\n if (!supabaseUrl || !supabaseKey) {\n throw new Error(`Your project's URL and Key are required to create a Supabase client!\n\nCheck your Supabase project's API settings to find these values\n\nhttps://supabase.com/dashboard/project/_/settings/api`);\n }\n let cookies = {};\n let isSingleton = true;\n let cookieOptions;\n let userDefinedClientOptions;\n if (options) {\n ({ cookies, isSingleton = true, cookieOptions, ...userDefinedClientOptions } = options);\n }\n const cookieClientOptions = {\n global: {\n headers: {\n \"X-Client-Info\": `${\"supabase-ssr\"}/${\"0.1.0\"}`\n }\n },\n auth: {\n flowType: \"pkce\",\n autoRefreshToken: isBrowser(),\n detectSessionInUrl: isBrowser(),\n persistSession: true,\n storage: {\n // this client is used on the browser so cookies can be trusted\n isServer: false,\n getItem: async (key)=>{\n const chunkedCookie = await combineChunks(key, async (chunkName)=>{\n if (typeof cookies.get === \"function\") {\n return await cookies.get(chunkName);\n }\n if (isBrowser()) {\n const cookie = (0,cookie__WEBPACK_IMPORTED_MODULE_0__.parse)(document.cookie);\n return cookie[chunkName];\n }\n });\n return chunkedCookie;\n },\n setItem: async (key, value)=>{\n const chunks = await createChunks(key, value);\n await Promise.all(chunks.map(async (chunk)=>{\n if (typeof cookies.set === \"function\") {\n await cookies.set(chunk.name, chunk.value, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: DEFAULT_COOKIE_OPTIONS.maxAge\n });\n } else {\n if (isBrowser()) {\n document.cookie = (0,cookie__WEBPACK_IMPORTED_MODULE_0__.serialize)(chunk.name, chunk.value, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: DEFAULT_COOKIE_OPTIONS.maxAge\n });\n }\n }\n }));\n },\n removeItem: async (key)=>{\n if (typeof cookies.remove === \"function\" && typeof cookies.get !== \"function\") {\n console.log(\"Removing chunked cookie without a `get` method is not supported.\\n\\n\tWhen you call the `createBrowserClient` function from the `@supabase/ssr` package, make sure you declare both a `get` and `remove` method on the `cookies` object.\\n\\nhttps://supabase.com/docs/guides/auth/server-side/creating-a-client\");\n return;\n }\n await deleteChunks(key, async (chunkName)=>{\n if (typeof cookies.get === \"function\") {\n return await cookies.get(chunkName);\n }\n if (isBrowser()) {\n const documentCookies = (0,cookie__WEBPACK_IMPORTED_MODULE_0__.parse)(document.cookie);\n return documentCookies[chunkName];\n }\n }, async (chunkName)=>{\n if (typeof cookies.remove === \"function\") {\n await cookies.remove(chunkName, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: 0\n });\n } else {\n if (isBrowser()) {\n document.cookie = (0,cookie__WEBPACK_IMPORTED_MODULE_0__.serialize)(chunkName, \"\", {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: 0\n });\n }\n }\n });\n }\n }\n }\n };\n const clientOptions = (0,_barrel_optimize_names_mergeDeepRight_ramda__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(cookieClientOptions, userDefinedClientOptions);\n if (isSingleton) {\n const browser = isBrowser();\n if (browser && cachedBrowserClient) {\n return cachedBrowserClient;\n }\n const client = (0,_supabase_supabase_js__WEBPACK_IMPORTED_MODULE_2__.createClient)(supabaseUrl, supabaseKey, clientOptions);\n if (browser) {\n cachedBrowserClient = client;\n }\n return client;\n }\n return (0,_supabase_supabase_js__WEBPACK_IMPORTED_MODULE_2__.createClient)(supabaseUrl, supabaseKey, clientOptions);\n}\n// src/createServerClient.ts\n\n\nfunction createServerClient(supabaseUrl, supabaseKey, options) {\n if (!supabaseUrl || !supabaseKey) {\n throw new Error(`Your project's URL and Key are required to create a Supabase client!\n\nCheck your Supabase project's API settings to find these values\n\nhttps://supabase.com/dashboard/project/_/settings/api`);\n }\n const { cookies, cookieOptions, ...userDefinedClientOptions } = options;\n if (cookieOptions == null ? void 0 : cookieOptions.name) {\n userDefinedClientOptions.auth = {\n ...userDefinedClientOptions.auth,\n storageKey: cookieOptions.name\n };\n }\n const cookieClientOptions = {\n global: {\n headers: {\n \"X-Client-Info\": `${\"supabase-ssr\"}/${\"0.1.0\"}`\n }\n },\n auth: {\n flowType: \"pkce\",\n autoRefreshToken: isBrowser(),\n detectSessionInUrl: isBrowser(),\n persistSession: true,\n storage: {\n // to signal to the libraries that these cookies are coming from a server environment and their value should not be trusted\n isServer: true,\n getItem: async (key)=>{\n const chunkedCookie = await combineChunks(key, async (chunkName)=>{\n if (typeof cookies.get === \"function\") {\n return await cookies.get(chunkName);\n }\n });\n return chunkedCookie;\n },\n setItem: async (key, value)=>{\n const chunks = createChunks(key, value);\n await Promise.all(chunks.map(async (chunk)=>{\n if (typeof cookies.set === \"function\") {\n await cookies.set(chunk.name, chunk.value, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: DEFAULT_COOKIE_OPTIONS.maxAge\n });\n }\n }));\n },\n removeItem: async (key)=>{\n if (typeof cookies.remove === \"function\" && typeof cookies.get !== \"function\") {\n console.log(\"Removing chunked cookie without a `get` method is not supported.\\n\\n\tWhen you call the `createServerClient` function from the `@supabase/ssr` package, make sure you declare both a `get` and `remove` method on the `cookies` object.\\n\\nhttps://supabase.com/docs/guides/auth/server-side/creating-a-client\");\n return;\n }\n deleteChunks(key, async (chunkName)=>{\n if (typeof cookies.get === \"function\") {\n return await cookies.get(chunkName);\n }\n }, async (chunkName)=>{\n if (typeof cookies.remove === \"function\") {\n return await cookies.remove(chunkName, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: 0\n });\n }\n });\n }\n }\n }\n };\n const clientOptions = (0,_barrel_optimize_names_mergeDeepRight_ramda__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(cookieClientOptions, userDefinedClientOptions);\n return (0,_supabase_supabase_js__WEBPACK_IMPORTED_MODULE_2__.createClient)(supabaseUrl, supabaseKey, clientOptions);\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zc3IvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBQ3dCO0FBQ2Q7QUFFdkMsdUJBQXVCO0FBQ21CO0FBQzFDLFNBQVNJO0lBQ1AsT0FBTyxNQUE2QixJQUFJLENBQXNDO0FBQ2hGO0FBRUEseUJBQXlCO0FBQ3pCLElBQUlHLHlCQUF5QjtJQUMzQkMsTUFBTTtJQUNOQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsUUFBUSxLQUFLLEtBQUssS0FBSyxNQUFNO0FBQy9CO0FBRUEsdUJBQXVCO0FBQ3ZCLElBQUlDLGlCQUFpQjtBQUNyQixTQUFTQyxhQUFhQyxHQUFHLEVBQUVDLEtBQUssRUFBRUMsU0FBUztJQUN6QyxNQUFNQyxvQkFBb0JELGFBQWFKO0lBQ3ZDLElBQUlNLGVBQWVDLG1CQUFtQko7SUFDdEMsSUFBSUcsYUFBYUUsTUFBTSxJQUFJSCxtQkFBbUI7UUFDNUMsT0FBTztZQUFDO2dCQUFFSSxNQUFNUDtnQkFBS0M7WUFBTTtTQUFFO0lBQy9CO0lBQ0EsTUFBTU8sU0FBUyxFQUFFO0lBQ2pCLE1BQU9KLGFBQWFFLE1BQU0sR0FBRyxFQUFHO1FBQzlCLElBQUlHLG1CQUFtQkwsYUFBYU0sS0FBSyxDQUFDLEdBQUdQO1FBQzdDLE1BQU1RLGdCQUFnQkYsaUJBQWlCRyxXQUFXLENBQUM7UUFDbkQsSUFBSUQsZ0JBQWdCUixvQkFBb0IsR0FBRztZQUN6Q00sbUJBQW1CQSxpQkFBaUJDLEtBQUssQ0FBQyxHQUFHQztRQUMvQztRQUNBLElBQUlFLFlBQVk7UUFDaEIsTUFBT0osaUJBQWlCSCxNQUFNLEdBQUcsRUFBRztZQUNsQyxJQUFJO2dCQUNGTyxZQUFZQyxtQkFBbUJMO2dCQUMvQjtZQUNGLEVBQUUsT0FBT00sT0FBTztnQkFDZCxJQUFJQSxpQkFBaUJDLFlBQVlQLGlCQUFpQlEsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPUixpQkFBaUJI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R0FDQSxPQUFPQTt3QkFDTCxJQUFJLE9BQU9hLFFBQVF1QixNQUFNLEtBQUssWUFBWTs0QkFDeEMsT0FBTyxNQUFNdkIsUUFBUXVCLE1BQU0sQ0FBQ3BDLFdBQVc7Z0NBQ3JDLEdBQUdoQyxzQkFBc0I7Z0NBQ3pCLEdBQUcrQyxhQUFhO2dDQUNoQjNDLFFBQVE7NEJBQ1Y7d0JBQ0Y7b0JBQ0Y7Z0JBRUo7WUFDRjtRQUNGO0lBQ0Y7SUFDQSxNQUFNb0UsZ0JBQWdCSSx1RkFBZUEsQ0FDbkMzQixxQkFDQUQ7SUFFRixPQUFPMkIsbUVBQWFBLENBQUNsQyxhQUFhQyxhQUFhOEI7QUFDakQ7QUFXRSxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Nzci9kaXN0L2luZGV4Lm1qcz9kMzM1Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9jcmVhdGVCcm93c2VyQ2xpZW50LnRzXG5pbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tIFwiQHN1cGFiYXNlL3N1cGFiYXNlLWpzXCI7XG5pbXBvcnQgeyBtZXJnZURlZXBSaWdodCB9IGZyb20gXCJyYW1kYVwiO1xuXG4vLyBzcmMvdXRpbHMvaGVscGVycy50c1xuaW1wb3J0IHsgcGFyc2UsIHNlcmlhbGl6ZSB9IGZyb20gXCJjb29raWVcIjtcbmZ1bmN0aW9uIGlzQnJvd3NlcigpIHtcbiAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIjtcbn1cblxuLy8gc3JjL3V0aWxzL2NvbnN0YW50cy50c1xudmFyIERFRkFVTFRfQ09PS0lFX09QVElPTlMgPSB7XG4gIHBhdGg6IFwiL1wiLFxuICBzYW1lU2l0ZTogXCJsYXhcIixcbiAgaHR0cE9ubHk6IGZhbHNlLFxuICBtYXhBZ2U6IDYwICogNjAgKiAyNCAqIDM2NSAqIDFlM1xufTtcblxuLy8gc3JjL3V0aWxzL2NodW5rZXIudHNcbnZhciBNQVhfQ0hVTktfU0laRSA9IDMxODA7XG5mdW5jdGlvbiBjcmVhdGVDaHVua3Moa2V5LCB2YWx1ZSwgY2h1bmtTaXplKSB7XG4gIGNvbnN0IHJlc29sdmVkQ2h1bmtTaXplID0gY2h1bmtTaXplID8/IE1BWF9DSFVOS19TSVpFO1xuICBsZXQgZW5jb2RlZFZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgaWYgKGVuY29kZWRWYWx1ZS5sZW5ndGggPD0gcmVzb2x2ZWRDaHVua1NpemUpIHtcbiAgICByZXR1cm4gW3sgbmFtZToga2V5LCB2YWx1ZSB9XTtcbiAgfVxuICBjb25zdCBjaHVua3MgPSBbXTtcbiAgd2hpbGUgKGVuY29kZWRWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgbGV0IGVuY29kZWRDaHVua0hlYWQgPSBlbmNvZGVkVmFsdWUuc2xpY2UoMCwgcmVzb2x2ZWRDaHVua1NpemUpO1xuICAgIGNvbnN0IGxhc3RFc2NhcGVQb3MgPSBlbmNvZGVkQ2h1bmtIZWFkLmxhc3RJbmRleE9mKFwiJVwiKTtcbiAgICBpZiAobGFzdEVzY2FwZVBvcyA+IHJlc29sdmVkQ2h1bmtTaXplIC0gMykge1xuICAgICAgZW5jb2RlZENodW5rSGVhZCA9IGVuY29kZWRDaHVua0hlYWQuc2xpY2UoMCwgbGFzdEVzY2FwZVBvcyk7XG4gICAgfVxuICAgIGxldCB2YWx1ZUhlYWQgPSBcIlwiO1xuICAgIHdoaWxlIChlbmNvZGVkQ2h1bmtIZWFkLmxlbmd0aCA+IDApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhbHVlSGVhZCA9IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkQ2h1bmtIZWFkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBVUklFcnJvciAmJiBlbmNvZGVkQ2h1bmtIZWFkLmF0KC0zKSA9PT0gXCIlXCIgJiYgZW5jb2RlZENodW5rSGVhZC5sZW5ndGggPiAzKSB7XG4gICAgICAgICAgZW5jb2RlZENodW5rSGVhZCA9IGVuY29kZWRDaHVua0hlYWQuc2xpY2UoMCwgZW5jb2RlZENodW5rSGVhZC5sZW5ndGggLSAzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBjaHVua3MucHVzaCh2YWx1ZUhlYWQpO1xuICAgIGVuY29kZWRWYWx1ZSA9IGVuY29kZWRWYWx1ZS5zbGljZShlbmNvZGVkQ2h1bmtIZWFkLmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIGNodW5rcy5tYXAoKHZhbHVlMiwgaSkgPT4gKHsgbmFtZTogYCR7a2V5fS4ke2l9YCwgdmFsdWU6IHZhbHVlMiB9KSk7XG59XG5hc3luYyBmdW5jdGlvbiBjb21iaW5lQ2h1bmtzKGtleSwgcmV0cmlldmVDaHVuaykge1xuICBjb25zdCB2YWx1ZSA9IGF3YWl0IHJldHJpZXZlQ2h1bmsoa2V5KTtcbiAgaWYgKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGxldCB2YWx1ZXMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IDsgaSsrKSB7XG4gICAgY29uc3QgY2h1bmtOYW1lID0gYCR7a2V5fS4ke2l9YDtcbiAgICBjb25zdCBjaHVuayA9IGF3YWl0IHJldHJpZXZlQ2h1bmsoY2h1bmtOYW1lKTtcbiAgICBpZiAoIWNodW5rKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgdmFsdWVzLnB1c2goY2h1bmspO1xuICB9XG4gIGlmICh2YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB2YWx1ZXMuam9pbihcIlwiKTtcbiAgfVxufVxuYXN5bmMgZnVuY3Rpb24gZGVsZXRlQ2h1bmtzKGtleSwgcmV0cmlldmVDaHVuaywgcmVtb3ZlQ2h1bmspIHtcbiAgY29uc3QgdmFsdWUgPSBhd2FpdCByZXRyaWV2ZUNodW5rKGtleSk7XG4gIGlmICh2YWx1ZSkge1xuICAgIGF3YWl0IHJlbW92ZUNodW5rKGtleSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAobGV0IGkgPSAwOyA7IGkrKykge1xuICAgIGNvbnN0IGNodW5rTmFtZSA9IGAke2tleX0uJHtpfWA7XG4gICAgY29uc3QgY2h1bmsgPSBhd2FpdCByZXRyaWV2ZUNodW5rKGNodW5rTmFtZSk7XG4gICAgaWYgKCFjaHVuaykge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGF3YWl0IHJlbW92ZUNodW5rKGNodW5rTmFtZSk7XG4gIH1cbn1cblxuLy8gc3JjL2NyZWF0ZUJyb3dzZXJDbGllbnQudHNcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlMiwgc2VyaWFsaXplIGFzIHNlcmlhbGl6ZTIgfSBmcm9tIFwiY29va2llXCI7XG52YXIgY2FjaGVkQnJvd3NlckNsaWVudDtcbmZ1bmN0aW9uIGNyZWF0ZUJyb3dzZXJDbGllbnQoc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5LCBvcHRpb25zKSB7XG4gIGlmICghc3VwYWJhc2VVcmwgfHwgIXN1cGFiYXNlS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFlvdXIgcHJvamVjdCdzIFVSTCBhbmQgS2V5IGFyZSByZXF1aXJlZCB0byBjcmVhdGUgYSBTdXBhYmFzZSBjbGllbnQhXG5cbkNoZWNrIHlvdXIgU3VwYWJhc2UgcHJvamVjdCdzIEFQSSBzZXR0aW5ncyB0byBmaW5kIHRoZXNlIHZhbHVlc1xuXG5odHRwczovL3N1cGFiYXNlLmNvbS9kYXNoYm9hcmQvcHJvamVjdC9fL3NldHRpbmdzL2FwaWBcbiAgICApO1xuICB9XG4gIGxldCBjb29raWVzID0ge307XG4gIGxldCBpc1NpbmdsZXRvbiA9IHRydWU7XG4gIGxldCBjb29raWVPcHRpb25zO1xuICBsZXQgdXNlckRlZmluZWRDbGllbnRPcHRpb25zO1xuICBpZiAob3B0aW9ucykge1xuICAgICh7IGNvb2tpZXMsIGlzU2luZ2xldG9uID0gdHJ1ZSwgY29va2llT3B0aW9ucywgLi4udXNlckRlZmluZWRDbGllbnRPcHRpb25zIH0gPSBvcHRpb25zKTtcbiAgfVxuICBjb25zdCBjb29raWVDbGllbnRPcHRpb25zID0ge1xuICAgIGdsb2JhbDoge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcIlgtQ2xpZW50LUluZm9cIjogYCR7XCJzdXBhYmFzZS1zc3JcIn0vJHtcIjAuMS4wXCJ9YFxuICAgICAgfVxuICAgIH0sXG4gICAgYXV0aDoge1xuICAgICAgZmxvd1R5cGU6IFwicGtjZVwiLFxuICAgICAgYXV0b1JlZnJlc2hUb2tlbjogaXNCcm93c2VyKCksXG4gICAgICBkZXRlY3RTZXNzaW9uSW5Vcmw6IGlzQnJvd3NlcigpLFxuICAgICAgcGVyc2lzdFNlc3Npb246IHRydWUsXG4gICAgICBzdG9yYWdlOiB7XG4gICAgICAgIC8vIHRoaXMgY2xpZW50IGlzIHVzZWQgb24gdGhlIGJyb3dzZXIgc28gY29va2llcyBjYW4gYmUgdHJ1c3RlZFxuICAgICAgICBpc1NlcnZlcjogZmFsc2UsXG4gICAgICAgIGdldEl0ZW06IGFzeW5jIChrZXkpID0+IHtcbiAgICAgICAgICBjb25zdCBjaHVua2VkQ29va2llID0gYXdhaXQgY29tYmluZUNodW5rcyhrZXksIGFzeW5jIChjaHVua05hbWUpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29va2llcy5nZXQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgY29va2llcy5nZXQoY2h1bmtOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgICBjb25zdCBjb29raWUgPSBwYXJzZTIoZG9jdW1lbnQuY29va2llKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvb2tpZVtjaHVua05hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBjaHVua2VkQ29va2llO1xuICAgICAgICB9LFxuICAgICAgICBzZXRJdGVtOiBhc3luYyAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNodW5rcyA9IGF3YWl0IGNyZWF0ZUNodW5rcyhrZXksIHZhbHVlKTtcbiAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGNodW5rcy5tYXAoYXN5bmMgKGNodW5rKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29va2llcy5zZXQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNvb2tpZXMuc2V0KGNodW5rLm5hbWUsIGNodW5rLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAuLi5ERUZBVUxUX0NPT0tJRV9PUFRJT05TLFxuICAgICAgICAgICAgICAgICAgLi4uY29va2llT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgIG1heEFnZTogREVGQVVMVF9DT09LSUVfT1BUSU9OUy5tYXhBZ2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNlcmlhbGl6ZTIoY2h1bmsubmFtZSwgY2h1bmsudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uREVGQVVMVF9DT09LSUVfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICAgICAgLi4uY29va2llT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgbWF4QWdlOiBERUZBVUxUX0NPT0tJRV9PUFRJT05TLm1heEFnZVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbW92ZUl0ZW06IGFzeW5jIChrZXkpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGNvb2tpZXMucmVtb3ZlID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIGNvb2tpZXMuZ2V0ICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICBcIlJlbW92aW5nIGNodW5rZWQgY29va2llIHdpdGhvdXQgYSBgZ2V0YCBtZXRob2QgaXMgbm90IHN1cHBvcnRlZC5cXG5cXG5cdFdoZW4geW91IGNhbGwgdGhlIGBjcmVhdGVCcm93c2VyQ2xpZW50YCBmdW5jdGlvbiBmcm9tIHRoZSBgQHN1cGFiYXNlL3NzcmAgcGFja2FnZSwgbWFrZSBzdXJlIHlvdSBkZWNsYXJlIGJvdGggYSBgZ2V0YCBhbmQgYHJlbW92ZWAgbWV0aG9kIG9uIHRoZSBgY29va2llc2Agb2JqZWN0Llxcblxcbmh0dHBzOi8vc3VwYWJhc2UuY29tL2RvY3MvZ3VpZGVzL2F1dGgvc2VydmVyLXNpZGUvY3JlYXRpbmctYS1jbGllbnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXdhaXQgZGVsZXRlQ2h1bmtzKFxuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgYXN5bmMgKGNodW5rTmFtZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvb2tpZXMuZ2V0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgY29va2llcy5nZXQoY2h1bmtOYW1lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudENvb2tpZXMgPSBwYXJzZTIoZG9jdW1lbnQuY29va2llKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnRDb29raWVzW2NodW5rTmFtZV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyAoY2h1bmtOYW1lKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29va2llcy5yZW1vdmUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNvb2tpZXMucmVtb3ZlKGNodW5rTmFtZSwge1xuICAgICAgICAgICAgICAgICAgLi4uREVGQVVMVF9DT09LSUVfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICAgIC4uLmNvb2tpZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICBtYXhBZ2U6IDBcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNlcmlhbGl6ZTIoY2h1bmtOYW1lLCBcIlwiLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLkRFRkFVTFRfQ09PS0lFX09QVElPTlMsXG4gICAgICAgICAgICAgICAgICAgIC4uLmNvb2tpZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIG1heEFnZTogMFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgY29uc3QgY2xpZW50T3B0aW9ucyA9IG1lcmdlRGVlcFJpZ2h0KFxuICAgIGNvb2tpZUNsaWVudE9wdGlvbnMsXG4gICAgdXNlckRlZmluZWRDbGllbnRPcHRpb25zXG4gICk7XG4gIGlmIChpc1NpbmdsZXRvbikge1xuICAgIGNvbnN0IGJyb3dzZXIgPSBpc0Jyb3dzZXIoKTtcbiAgICBpZiAoYnJvd3NlciAmJiBjYWNoZWRCcm93c2VyQ2xpZW50KSB7XG4gICAgICByZXR1cm4gY2FjaGVkQnJvd3NlckNsaWVudDtcbiAgICB9XG4gICAgY29uc3QgY2xpZW50ID0gY3JlYXRlQ2xpZW50KFxuICAgICAgc3VwYWJhc2VVcmwsXG4gICAgICBzdXBhYmFzZUtleSxcbiAgICAgIGNsaWVudE9wdGlvbnNcbiAgICApO1xuICAgIGlmIChicm93c2VyKSB7XG4gICAgICBjYWNoZWRCcm93c2VyQ2xpZW50ID0gY2xpZW50O1xuICAgIH1cbiAgICByZXR1cm4gY2xpZW50O1xuICB9XG4gIHJldHVybiBjcmVhdGVDbGllbnQoc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5LCBjbGllbnRPcHRpb25zKTtcbn1cblxuLy8gc3JjL2NyZWF0ZVNlcnZlckNsaWVudC50c1xuaW1wb3J0IHsgY3JlYXRlQ2xpZW50IGFzIGNyZWF0ZUNsaWVudDIgfSBmcm9tIFwiQHN1cGFiYXNlL3N1cGFiYXNlLWpzXCI7XG5pbXBvcnQgeyBtZXJnZURlZXBSaWdodCBhcyBtZXJnZURlZXBSaWdodDIgfSBmcm9tIFwicmFtZGFcIjtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlckNsaWVudChzdXBhYmFzZVVybCwgc3VwYWJhc2VLZXksIG9wdGlvbnMpIHtcbiAgaWYgKCFzdXBhYmFzZVVybCB8fCAhc3VwYWJhc2VLZXkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgWW91ciBwcm9qZWN0J3MgVVJMIGFuZCBLZXkgYXJlIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIFN1cGFiYXNlIGNsaWVudCFcblxuQ2hlY2sgeW91ciBTdXBhYmFzZSBwcm9qZWN0J3MgQVBJIHNldHRpbmdzIHRvIGZpbmQgdGhlc2UgdmFsdWVzXG5cbmh0dHBzOi8vc3VwYWJhc2UuY29tL2Rhc2hib2FyZC9wcm9qZWN0L18vc2V0dGluZ3MvYXBpYFxuICAgICk7XG4gIH1cbiAgY29uc3QgeyBjb29raWVzLCBjb29raWVPcHRpb25zLCAuLi51c2VyRGVmaW5lZENsaWVudE9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gIGlmIChjb29raWVPcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBjb29raWVPcHRpb25zLm5hbWUpIHtcbiAgICB1c2VyRGVmaW5lZENsaWVudE9wdGlvbnMuYXV0aCA9IHtcbiAgICAgIC4uLnVzZXJEZWZpbmVkQ2xpZW50T3B0aW9ucy5hdXRoLFxuICAgICAgc3RvcmFnZUtleTogY29va2llT3B0aW9ucy5uYW1lXG4gICAgfTtcbiAgfVxuICBjb25zdCBjb29raWVDbGllbnRPcHRpb25zID0ge1xuICAgIGdsb2JhbDoge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcIlgtQ2xpZW50LUluZm9cIjogYCR7XCJzdXBhYmFzZS1zc3JcIn0vJHtcIjAuMS4wXCJ9YFxuICAgICAgfVxuICAgIH0sXG4gICAgYXV0aDoge1xuICAgICAgZmxvd1R5cGU6IFwicGtjZVwiLFxuICAgICAgYXV0b1JlZnJlc2hUb2tlbjogaXNCcm93c2VyKCksXG4gICAgICBkZXRlY3RTZXNzaW9uSW5Vcmw6IGlzQnJvd3NlcigpLFxuICAgICAgcGVyc2lzdFNlc3Npb246IHRydWUsXG4gICAgICBzdG9yYWdlOiB7XG4gICAgICAgIC8vIHRvIHNpZ25hbCB0byB0aGUgbGlicmFyaWVzIHRoYXQgdGhlc2UgY29va2llcyBhcmUgY29taW5nIGZyb20gYSBzZXJ2ZXIgZW52aXJvbm1lbnQgYW5kIHRoZWlyIHZhbHVlIHNob3VsZCBub3QgYmUgdHJ1c3RlZFxuICAgICAgICBpc1NlcnZlcjogdHJ1ZSxcbiAgICAgICAgZ2V0SXRlbTogYXN5bmMgKGtleSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNodW5rZWRDb29raWUgPSBhd2FpdCBjb21iaW5lQ2h1bmtzKGtleSwgYXN5bmMgKGNodW5rTmFtZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb29raWVzLmdldCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBhd2FpdCBjb29raWVzLmdldChjaHVua05hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBjaHVua2VkQ29va2llO1xuICAgICAgICB9LFxuICAgICAgICBzZXRJdGVtOiBhc3luYyAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNodW5rcyA9IGNyZWF0ZUNodW5rcyhrZXksIHZhbHVlKTtcbiAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGNodW5rcy5tYXAoYXN5bmMgKGNodW5rKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29va2llcy5zZXQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNvb2tpZXMuc2V0KGNodW5rLm5hbWUsIGNodW5rLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAuLi5ERUZBVUxUX0NPT0tJRV9PUFRJT05TLFxuICAgICAgICAgICAgICAgICAgLi4uY29va2llT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgIG1heEFnZTogREVGQVVMVF9DT09LSUVfT1BUSU9OUy5tYXhBZ2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICByZW1vdmVJdGVtOiBhc3luYyAoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjb29raWVzLnJlbW92ZSA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBjb29raWVzLmdldCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgXCJSZW1vdmluZyBjaHVua2VkIGNvb2tpZSB3aXRob3V0IGEgYGdldGAgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQuXFxuXFxuXHRXaGVuIHlvdSBjYWxsIHRoZSBgY3JlYXRlU2VydmVyQ2xpZW50YCBmdW5jdGlvbiBmcm9tIHRoZSBgQHN1cGFiYXNlL3NzcmAgcGFja2FnZSwgbWFrZSBzdXJlIHlvdSBkZWNsYXJlIGJvdGggYSBgZ2V0YCBhbmQgYHJlbW92ZWAgbWV0aG9kIG9uIHRoZSBgY29va2llc2Agb2JqZWN0Llxcblxcbmh0dHBzOi8vc3VwYWJhc2UuY29tL2RvY3MvZ3VpZGVzL2F1dGgvc2VydmVyLXNpZGUvY3JlYXRpbmctYS1jbGllbnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVsZXRlQ2h1bmtzKFxuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgYXN5bmMgKGNodW5rTmFtZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvb2tpZXMuZ2V0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgY29va2llcy5nZXQoY2h1bmtOYW1lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIChjaHVua05hbWUpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb29raWVzLnJlbW92ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGNvb2tpZXMucmVtb3ZlKGNodW5rTmFtZSwge1xuICAgICAgICAgICAgICAgICAgLi4uREVGQVVMVF9DT09LSUVfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICAgIC4uLmNvb2tpZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICBtYXhBZ2U6IDBcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IGNsaWVudE9wdGlvbnMgPSBtZXJnZURlZXBSaWdodDIoXG4gICAgY29va2llQ2xpZW50T3B0aW9ucyxcbiAgICB1c2VyRGVmaW5lZENsaWVudE9wdGlvbnNcbiAgKTtcbiAgcmV0dXJuIGNyZWF0ZUNsaWVudDIoc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5LCBjbGllbnRPcHRpb25zKTtcbn1cbmV4cG9ydCB7XG4gIERFRkFVTFRfQ09PS0lFX09QVElPTlMsXG4gIGNvbWJpbmVDaHVua3MsXG4gIGNyZWF0ZUJyb3dzZXJDbGllbnQsXG4gIGNyZWF0ZUNodW5rcyxcbiAgY3JlYXRlU2VydmVyQ2xpZW50LFxuICBkZWxldGVDaHVua3MsXG4gIGlzQnJvd3NlcixcbiAgcGFyc2UsXG4gIHNlcmlhbGl6ZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlQ2xpZW50IiwibWVyZ2VEZWVwUmlnaHQiLCJwYXJzZSIsInNlcmlhbGl6ZSIsImlzQnJvd3NlciIsIndpbmRvdyIsImRvY3VtZW50IiwiREVGQVVMVF9DT09LSUVfT1BUSU9OUyIsInBhdGgiLCJzYW1lU2l0ZSIsImh0dHBPbmx5IiwibWF4QWdlIiwiTUFYX0NIVU5LX1NJWkUiLCJjcmVhdGVDaHVua3MiLCJrZXkiLCJ2YWx1ZSIsImNodW5rU2l6ZSIsInJlc29sdmVkQ2h1bmtTaXplIiwiZW5jb2RlZFZhbHVlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwibGVuZ3RoIiwibmFtZSIsImNodW5rcyIsImVuY29kZWRDaHVua0hlYWQiLCJzbGljZSIsImxhc3RFc2NhcGVQb3MiLCJsYXN0SW5kZXhPZiIsInZhbHVlSGVhZCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVycm9yIiwiVVJJRXJyb3IiLCJhdCIsInB1c2giLCJtYXAiLCJ2YWx1ZTIiLCJpIiwiY29tYmluZUNodW5rcyIsInJldHJpZXZlQ2h1bmsiLCJ2YWx1ZXMiLCJjaHVua05hbWUiLCJjaHVuayIsImpvaW4iLCJkZWxldGVDaHVua3MiLCJyZW1vdmVDaHVuayIsInBhcnNlMiIsInNlcmlhbGl6ZTIiLCJjYWNoZWRCcm93c2VyQ2xpZW50IiwiY3JlYXRlQnJvd3NlckNsaWVudCIsInN1cGFiYXNlVXJsIiwic3VwYWJhc2VLZXkiLCJvcHRpb25zIiwiRXJyb3IiLCJjb29raWVzIiwiaXNTaW5nbGV0b24iLCJjb29raWVPcHRpb25zIiwidXNlckRlZmluZWRDbGllbnRPcHRpb25zIiwiY29va2llQ2xpZW50T3B0aW9ucyIsImdsb2JhbCIsImhlYWRlcnMiLCJhdXRoIiwiZmxvd1R5cGUiLCJhdXRvUmVmcmVzaFRva2VuIiwiZGV0ZWN0U2Vzc2lvbkluVXJsIiwicGVyc2lzdFNlc3Npb24iLCJzdG9yYWdlIiwiaXNTZXJ2ZXIiLCJnZXRJdGVtIiwiY2h1bmtlZENvb2tpZSIsImdldCIsImNvb2tpZSIsInNldEl0ZW0iLCJQcm9taXNlIiwiYWxsIiwic2V0IiwicmVtb3ZlSXRlbSIsInJlbW92ZSIsImNvbnNvbGUiLCJsb2ciLCJkb2N1bWVudENvb2tpZXMiLCJjbGllbnRPcHRpb25zIiwiYnJvd3NlciIsImNsaWVudCIsImNyZWF0ZUNsaWVudDIiLCJtZXJnZURlZXBSaWdodDIiLCJjcmVhdGVTZXJ2ZXJDbGllbnQiLCJzdG9yYWdlS2V5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/@supabase/ssr/dist/index.mjs\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/internal/_curry1.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry1.js ***! + \***************************************************/ +/***/ ((__unused_webpack___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 */ _curry1)\n/* harmony export */ });\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"(middleware)/./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */ function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTEuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7QUFDakQ7Ozs7Ozs7Q0FPQyxHQUVjLFNBQVNDLFFBQVFDLEVBQUU7SUFDaEMsT0FBTyxTQUFTQyxHQUFHQyxDQUFDO1FBQ2xCLElBQUlDLFVBQVVDLE1BQU0sS0FBSyxLQUFLTiw2REFBY0EsQ0FBQ0ksSUFBSTtZQUMvQyxPQUFPRDtRQUNULE9BQU87WUFDTCxPQUFPRCxHQUFHSyxLQUFLLENBQUMsSUFBSSxFQUFFRjtRQUN4QjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTEuanM/ZmMxOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2lzUGxhY2Vob2xkZXIgZnJvbSBcIi4vX2lzUGxhY2Vob2xkZXIuanNcIjtcbi8qKlxuICogT3B0aW1pemVkIGludGVybmFsIG9uZS1hcml0eSBjdXJyeSBmdW5jdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gY3VycnkuXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gVGhlIGN1cnJpZWQgZnVuY3Rpb24uXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2N1cnJ5MShmbikge1xuICByZXR1cm4gZnVuY3Rpb24gZjEoYSkge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwIHx8IF9pc1BsYWNlaG9sZGVyKGEpKSB7XG4gICAgICByZXR1cm4gZjE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfTtcbn0iXSwibmFtZXMiOlsiX2lzUGxhY2Vob2xkZXIiLCJfY3VycnkxIiwiZm4iLCJmMSIsImEiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/internal/_curry1.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/internal/_curry2.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry2.js ***! + \***************************************************/ +/***/ ((__unused_webpack___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 */ _curry2)\n/* harmony export */ });\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry1.js */ \"(middleware)/./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"(middleware)/./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */ function _curry2(fn) {\n return function f2(a, b) {\n switch(arguments.length){\n case 0:\n return f2;\n case 1:\n return (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) ? f2 : (0,_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_b) {\n return fn(a, _b);\n });\n default:\n return (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) && (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b) ? f2 : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) ? (0,_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_a) {\n return fn(_a, b);\n }) : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b) ? (0,_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW1DO0FBQ2M7QUFDakQ7Ozs7Ozs7Q0FPQyxHQUVjLFNBQVNFLFFBQVFDLEVBQUU7SUFDaEMsT0FBTyxTQUFTQyxHQUFHQyxDQUFDLEVBQUVDLENBQUM7UUFDckIsT0FBUUMsVUFBVUMsTUFBTTtZQUN0QixLQUFLO2dCQUNILE9BQU9KO1lBRVQsS0FBSztnQkFDSCxPQUFPSCw2REFBY0EsQ0FBQ0ksS0FBS0QsS0FBS0osc0RBQU9BLENBQUMsU0FBVVMsRUFBRTtvQkFDbEQsT0FBT04sR0FBR0UsR0FBR0k7Z0JBQ2Y7WUFFRjtnQkFDRSxPQUFPUiw2REFBY0EsQ0FBQ0ksTUFBTUosNkRBQWNBLENBQUNLLEtBQUtGLEtBQUtILDZEQUFjQSxDQUFDSSxLQUFLTCxzREFBT0EsQ0FBQyxTQUFVVSxFQUFFO29CQUMzRixPQUFPUCxHQUFHTyxJQUFJSjtnQkFDaEIsS0FBS0wsNkRBQWNBLENBQUNLLEtBQUtOLHNEQUFPQSxDQUFDLFNBQVVTLEVBQUU7b0JBQzNDLE9BQU9OLEdBQUdFLEdBQUdJO2dCQUNmLEtBQUtOLEdBQUdFLEdBQUdDO1FBQ2Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY3VycnkyLmpzPzUxMzEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9jdXJyeTEgZnJvbSBcIi4vX2N1cnJ5MS5qc1wiO1xuaW1wb3J0IF9pc1BsYWNlaG9sZGVyIGZyb20gXCIuL19pc1BsYWNlaG9sZGVyLmpzXCI7XG4vKipcbiAqIE9wdGltaXplZCBpbnRlcm5hbCB0d28tYXJpdHkgY3VycnkgZnVuY3Rpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGN1cnJ5LlxuICogQHJldHVybiB7RnVuY3Rpb259IFRoZSBjdXJyaWVkIGZ1bmN0aW9uLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jdXJyeTIoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGYyKGEsIGIpIHtcbiAgICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgcmV0dXJuIGYyO1xuXG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBfaXNQbGFjZWhvbGRlcihhKSA/IGYyIDogX2N1cnJ5MShmdW5jdGlvbiAoX2IpIHtcbiAgICAgICAgICByZXR1cm4gZm4oYSwgX2IpO1xuICAgICAgICB9KTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIF9pc1BsYWNlaG9sZGVyKGEpICYmIF9pc1BsYWNlaG9sZGVyKGIpID8gZjIgOiBfaXNQbGFjZWhvbGRlcihhKSA/IF9jdXJyeTEoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKF9hLCBiKTtcbiAgICAgICAgfSkgOiBfaXNQbGFjZWhvbGRlcihiKSA/IF9jdXJyeTEoZnVuY3Rpb24gKF9iKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKGEsIF9iKTtcbiAgICAgICAgfSkgOiBmbihhLCBiKTtcbiAgICB9XG4gIH07XG59Il0sIm5hbWVzIjpbIl9jdXJyeTEiLCJfaXNQbGFjZWhvbGRlciIsIl9jdXJyeTIiLCJmbiIsImYyIiwiYSIsImIiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJfYiIsIl9hIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/internal/_curry2.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/internal/_curry3.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry3.js ***! + \***************************************************/ +/***/ ((__unused_webpack___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 */ _curry3)\n/* harmony export */ });\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_curry1.js */ \"(middleware)/./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"(middleware)/./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"(middleware)/./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */ function _curry3(fn) {\n return function f3(a, b, c) {\n switch(arguments.length){\n case 0:\n return f3;\n case 1:\n return (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) ? f3 : (0,_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) && (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b) ? f3 : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) ? (0,_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_a, _c) {\n return fn(_a, b, _c);\n }) : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b) ? (0,_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_b, _c) {\n return fn(a, _b, _c);\n }) : (0,_curry1_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function(_c) {\n return fn(a, b, _c);\n });\n default:\n return (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) && (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b) && (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(c) ? f3 : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) && (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b) ? (0,_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_a, _b) {\n return fn(_a, _b, c);\n }) : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) && (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(c) ? (0,_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_a, _c) {\n return fn(_a, b, _c);\n }) : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b) && (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(c) ? (0,_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(_b, _c) {\n return fn(a, _b, _c);\n }) : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a) ? (0,_curry1_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function(_a) {\n return fn(_a, b, c);\n }) : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b) ? (0,_curry1_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function(_b) {\n return fn(a, _b, c);\n }) : (0,_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(c) ? (0,_curry1_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function(_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFtQztBQUNBO0FBQ2M7QUFDakQ7Ozs7Ozs7Q0FPQyxHQUVjLFNBQVNHLFFBQVFDLEVBQUU7SUFDaEMsT0FBTyxTQUFTQyxHQUFHQyxDQUFDLEVBQUVDLENBQUMsRUFBRUMsQ0FBQztRQUN4QixPQUFRQyxVQUFVQyxNQUFNO1lBQ3RCLEtBQUs7Z0JBQ0gsT0FBT0w7WUFFVCxLQUFLO2dCQUNILE9BQU9ILDZEQUFjQSxDQUFDSSxLQUFLRCxLQUFLSixzREFBT0EsQ0FBQyxTQUFVVSxFQUFFLEVBQUVDLEVBQUU7b0JBQ3RELE9BQU9SLEdBQUdFLEdBQUdLLElBQUlDO2dCQUNuQjtZQUVGLEtBQUs7Z0JBQ0gsT0FBT1YsNkRBQWNBLENBQUNJLE1BQU1KLDZEQUFjQSxDQUFDSyxLQUFLRixLQUFLSCw2REFBY0EsQ0FBQ0ksS0FBS0wsc0RBQU9BLENBQUMsU0FBVVksRUFBRSxFQUFFRCxFQUFFO29CQUMvRixPQUFPUixHQUFHUyxJQUFJTixHQUFHSztnQkFDbkIsS0FBS1YsNkRBQWNBLENBQUNLLEtBQUtOLHNEQUFPQSxDQUFDLFNBQVVVLEVBQUUsRUFBRUMsRUFBRTtvQkFDL0MsT0FBT1IsR0FBR0UsR0FBR0ssSUFBSUM7Z0JBQ25CLEtBQUtaLHNEQUFPQSxDQUFDLFNBQVVZLEVBQUU7b0JBQ3ZCLE9BQU9SLEdBQUdFLEdBQUdDLEdBQUdLO2dCQUNsQjtZQUVGO2dCQUNFLE9BQU9WLDZEQUFjQSxDQUFDSSxNQUFNSiw2REFBY0EsQ0FBQ0ssTUFBTUwsNkRBQWNBLENBQUNNLEtBQUtILEtBQUtILDZEQUFjQSxDQUFDSSxNQUFNSiw2REFBY0EsQ0FBQ0ssS0FBS04sc0RBQU9BLENBQUMsU0FBVVksRUFBRSxFQUFFRixFQUFFO29CQUN6SSxPQUFPUCxHQUFHUyxJQUFJRixJQUFJSDtnQkFDcEIsS0FBS04sNkRBQWNBLENBQUNJLE1BQU1KLDZEQUFjQSxDQUFDTSxLQUFLUCxzREFBT0EsQ0FBQyxTQUFVWSxFQUFFLEVBQUVELEVBQUU7b0JBQ3BFLE9BQU9SLEdBQUdTLElBQUlOLEdBQUdLO2dCQUNuQixLQUFLViw2REFBY0EsQ0FBQ0ssTUFBTUwsNkRBQWNBLENBQUNNLEtBQUtQLHNEQUFPQSxDQUFDLFNBQVVVLEVBQUUsRUFBRUMsRUFBRTtvQkFDcEUsT0FBT1IsR0FBR0UsR0FBR0ssSUFBSUM7Z0JBQ25CLEtBQUtWLDZEQUFjQSxDQUFDSSxLQUFLTixzREFBT0EsQ0FBQyxTQUFVYSxFQUFFO29CQUMzQyxPQUFPVCxHQUFHUyxJQUFJTixHQUFHQztnQkFDbkIsS0FBS04sNkRBQWNBLENBQUNLLEtBQUtQLHNEQUFPQSxDQUFDLFNBQVVXLEVBQUU7b0JBQzNDLE9BQU9QLEdBQUdFLEdBQUdLLElBQUlIO2dCQUNuQixLQUFLTiw2REFBY0EsQ0FBQ00sS0FBS1Isc0RBQU9BLENBQUMsU0FBVVksRUFBRTtvQkFDM0MsT0FBT1IsR0FBR0UsR0FBR0MsR0FBR0s7Z0JBQ2xCLEtBQUtSLEdBQUdFLEdBQUdDLEdBQUdDO1FBQ2xCO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2N1cnJ5My5qcz9jNjliIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfY3VycnkxIGZyb20gXCIuL19jdXJyeTEuanNcIjtcbmltcG9ydCBfY3VycnkyIGZyb20gXCIuL19jdXJyeTIuanNcIjtcbmltcG9ydCBfaXNQbGFjZWhvbGRlciBmcm9tIFwiLi9faXNQbGFjZWhvbGRlci5qc1wiO1xuLyoqXG4gKiBPcHRpbWl6ZWQgaW50ZXJuYWwgdGhyZWUtYXJpdHkgY3VycnkgZnVuY3Rpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGN1cnJ5LlxuICogQHJldHVybiB7RnVuY3Rpb259IFRoZSBjdXJyaWVkIGZ1bmN0aW9uLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jdXJyeTMoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGYzKGEsIGIsIGMpIHtcbiAgICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgcmV0dXJuIGYzO1xuXG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBfaXNQbGFjZWhvbGRlcihhKSA/IGYzIDogX2N1cnJ5MihmdW5jdGlvbiAoX2IsIF9jKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKGEsIF9iLCBfYyk7XG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiBfaXNQbGFjZWhvbGRlcihhKSAmJiBfaXNQbGFjZWhvbGRlcihiKSA/IGYzIDogX2lzUGxhY2Vob2xkZXIoYSkgPyBfY3VycnkyKGZ1bmN0aW9uIChfYSwgX2MpIHtcbiAgICAgICAgICByZXR1cm4gZm4oX2EsIGIsIF9jKTtcbiAgICAgICAgfSkgOiBfaXNQbGFjZWhvbGRlcihiKSA/IF9jdXJyeTIoZnVuY3Rpb24gKF9iLCBfYykge1xuICAgICAgICAgIHJldHVybiBmbihhLCBfYiwgX2MpO1xuICAgICAgICB9KSA6IF9jdXJyeTEoZnVuY3Rpb24gKF9jKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKGEsIGIsIF9jKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBfaXNQbGFjZWhvbGRlcihhKSAmJiBfaXNQbGFjZWhvbGRlcihiKSAmJiBfaXNQbGFjZWhvbGRlcihjKSA/IGYzIDogX2lzUGxhY2Vob2xkZXIoYSkgJiYgX2lzUGxhY2Vob2xkZXIoYikgPyBfY3VycnkyKGZ1bmN0aW9uIChfYSwgX2IpIHtcbiAgICAgICAgICByZXR1cm4gZm4oX2EsIF9iLCBjKTtcbiAgICAgICAgfSkgOiBfaXNQbGFjZWhvbGRlcihhKSAmJiBfaXNQbGFjZWhvbGRlcihjKSA/IF9jdXJyeTIoZnVuY3Rpb24gKF9hLCBfYykge1xuICAgICAgICAgIHJldHVybiBmbihfYSwgYiwgX2MpO1xuICAgICAgICB9KSA6IF9pc1BsYWNlaG9sZGVyKGIpICYmIF9pc1BsYWNlaG9sZGVyKGMpID8gX2N1cnJ5MihmdW5jdGlvbiAoX2IsIF9jKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKGEsIF9iLCBfYyk7XG4gICAgICAgIH0pIDogX2lzUGxhY2Vob2xkZXIoYSkgPyBfY3VycnkxKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgIHJldHVybiBmbihfYSwgYiwgYyk7XG4gICAgICAgIH0pIDogX2lzUGxhY2Vob2xkZXIoYikgPyBfY3VycnkxKGZ1bmN0aW9uIChfYikge1xuICAgICAgICAgIHJldHVybiBmbihhLCBfYiwgYyk7XG4gICAgICAgIH0pIDogX2lzUGxhY2Vob2xkZXIoYykgPyBfY3VycnkxKGZ1bmN0aW9uIChfYykge1xuICAgICAgICAgIHJldHVybiBmbihhLCBiLCBfYyk7XG4gICAgICAgIH0pIDogZm4oYSwgYiwgYyk7XG4gICAgfVxuICB9O1xufSJdLCJuYW1lcyI6WyJfY3VycnkxIiwiX2N1cnJ5MiIsIl9pc1BsYWNlaG9sZGVyIiwiX2N1cnJ5MyIsImZuIiwiZjMiLCJhIiwiYiIsImMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJfYiIsIl9jIiwiX2EiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/internal/_curry3.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/internal/_has.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_has.js ***! + \************************************************/ +/***/ ((__unused_webpack___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 */ _has)\n/* harmony export */ });\nfunction _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19oYXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlLFNBQVNBLEtBQUtDLElBQUksRUFBRUMsR0FBRztJQUNwQyxPQUFPQyxPQUFPQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSixLQUFLRDtBQUNuRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2hhcy5qcz84NzhlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9oYXMocHJvcCwgb2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTtcbn0iXSwibmFtZXMiOlsiX2hhcyIsInByb3AiLCJvYmoiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/internal/_has.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/internal/_isObject.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isObject.js ***! + \*****************************************************/ +/***/ ((__unused_webpack___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 */ _isObject)\n/* harmony export */ });\nfunction _isObject(x) {\n return Object.prototype.toString.call(x) === \"[object Object]\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc09iamVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWUsU0FBU0EsVUFBVUMsQ0FBQztJQUNqQyxPQUFPQyxPQUFPQyxTQUFTLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDSixPQUFPO0FBQy9DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNPYmplY3QuanM/ZTE1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXNPYmplY3QoeCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHgpID09PSAnW29iamVjdCBPYmplY3RdJztcbn0iXSwibmFtZXMiOlsiX2lzT2JqZWN0IiwieCIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiY2FsbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/internal/_isObject.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/internal/_isPlaceholder.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isPlaceholder.js ***! + \**********************************************************/ +/***/ ((__unused_webpack___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 */ _isPlaceholder)\n/* harmony export */ });\nfunction _isPlaceholder(a) {\n return a != null && typeof a === \"object\" && a[\"@@functional/placeholder\"] === true;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc1BsYWNlaG9sZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZSxTQUFTQSxlQUFlQyxDQUFDO0lBQ3RDLE9BQU9BLEtBQUssUUFBUSxPQUFPQSxNQUFNLFlBQVlBLENBQUMsQ0FBQywyQkFBMkIsS0FBSztBQUNqRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzUGxhY2Vob2xkZXIuanM/NjRiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXNQbGFjZWhvbGRlcihhKSB7XG4gIHJldHVybiBhICE9IG51bGwgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnICYmIGFbJ0BAZnVuY3Rpb25hbC9wbGFjZWhvbGRlciddID09PSB0cnVlO1xufSJdLCJuYW1lcyI6WyJfaXNQbGFjZWhvbGRlciIsImEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/internal/_isPlaceholder.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/mergeDeepRight.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepRight.js ***! + \*************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"(middleware)/./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"(middleware)/./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */ var mergeDeepRight = /*#__PURE__*/ (0,_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepRight(lObj, rObj) {\n return (0,_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mergeDeepRight);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21lcmdlRGVlcFJpZ2h0LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QztBQUNTO0FBQ3JEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CQyxHQUVELElBQUlFLGlCQUNKLFdBQVcsR0FDWEYsK0RBQU9BLENBQUMsU0FBU0UsZUFBZUMsSUFBSSxFQUFFQyxJQUFJO0lBQ3hDLE9BQU9ILGdFQUFnQkEsQ0FBQyxTQUFVSSxDQUFDLEVBQUVDLElBQUksRUFBRUMsSUFBSTtRQUM3QyxPQUFPQTtJQUNULEdBQUdKLE1BQU1DO0FBQ1g7QUFFQSxpRUFBZUYsY0FBY0EsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbWVyZ2VEZWVwUmlnaHQuanM/YjlhMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG5pbXBvcnQgbWVyZ2VEZWVwV2l0aEtleSBmcm9tIFwiLi9tZXJnZURlZXBXaXRoS2V5LmpzXCI7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgb2JqZWN0IHdpdGggdGhlIG93biBwcm9wZXJ0aWVzIG9mIHRoZSBmaXJzdCBvYmplY3QgbWVyZ2VkIHdpdGhcbiAqIHRoZSBvd24gcHJvcGVydGllcyBvZiB0aGUgc2Vjb25kIG9iamVjdC4gSWYgYSBrZXkgZXhpc3RzIGluIGJvdGggb2JqZWN0czpcbiAqIC0gYW5kIGJvdGggdmFsdWVzIGFyZSBvYmplY3RzLCB0aGUgdHdvIHZhbHVlcyB3aWxsIGJlIHJlY3Vyc2l2ZWx5IG1lcmdlZFxuICogLSBvdGhlcndpc2UgdGhlIHZhbHVlIGZyb20gdGhlIHNlY29uZCBvYmplY3Qgd2lsbCBiZSB1c2VkLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjI0LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBzaWcge2F9IC0+IHthfSAtPiB7YX1cbiAqIEBwYXJhbSB7T2JqZWN0fSBsT2JqXG4gKiBAcGFyYW0ge09iamVjdH0gck9ialxuICogQHJldHVybiB7T2JqZWN0fVxuICogQHNlZSBSLm1lcmdlLCBSLm1lcmdlRGVlcExlZnQsIFIubWVyZ2VEZWVwV2l0aCwgUi5tZXJnZURlZXBXaXRoS2V5XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5tZXJnZURlZXBSaWdodCh7IG5hbWU6ICdmcmVkJywgYWdlOiAxMCwgY29udGFjdDogeyBlbWFpbDogJ21vb0BleGFtcGxlLmNvbScgfX0sXG4gKiAgICAgICAgICAgICAgICAgICAgICAgeyBhZ2U6IDQwLCBjb250YWN0OiB7IGVtYWlsOiAnYmFhQGV4YW1wbGUuY29tJyB9fSk7XG4gKiAgICAgIC8vPT4geyBuYW1lOiAnZnJlZCcsIGFnZTogNDAsIGNvbnRhY3Q6IHsgZW1haWw6ICdiYWFAZXhhbXBsZS5jb20nIH19XG4gKi9cblxudmFyIG1lcmdlRGVlcFJpZ2h0ID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoZnVuY3Rpb24gbWVyZ2VEZWVwUmlnaHQobE9iaiwgck9iaikge1xuICByZXR1cm4gbWVyZ2VEZWVwV2l0aEtleShmdW5jdGlvbiAoaywgbFZhbCwgclZhbCkge1xuICAgIHJldHVybiByVmFsO1xuICB9LCBsT2JqLCByT2JqKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBtZXJnZURlZXBSaWdodDsiXSwibmFtZXMiOlsiX2N1cnJ5MiIsIm1lcmdlRGVlcFdpdGhLZXkiLCJtZXJnZURlZXBSaWdodCIsImxPYmoiLCJyT2JqIiwiayIsImxWYWwiLCJyVmFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/mergeDeepRight.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/mergeDeepWithKey.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepWithKey.js ***! + \***************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"(middleware)/./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isObject.js */ \"(middleware)/./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeWithKey.js */ \"(middleware)/./node_modules/ramda/es/mergeWithKey.js\");\n\n\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */ var mergeDeepWithKey = /*#__PURE__*/ (0,_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepWithKey(fn, lObj, rObj) {\n return (0,_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function(k, lVal, rVal) {\n if ((0,_internal_isObject_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(lVal) && (0,_internal_isObject_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mergeDeepWithKey);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21lcmdlRGVlcFdpdGhLZXkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0QztBQUNJO0FBQ0g7QUFDN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTJCQyxHQUVELElBQUlHLG1CQUNKLFdBQVcsR0FDWEgsK0RBQU9BLENBQUMsU0FBU0csaUJBQWlCQyxFQUFFLEVBQUVDLElBQUksRUFBRUMsSUFBSTtJQUM5QyxPQUFPSiw0REFBWUEsQ0FBQyxTQUFVSyxDQUFDLEVBQUVDLElBQUksRUFBRUMsSUFBSTtRQUN6QyxJQUFJUixpRUFBU0EsQ0FBQ08sU0FBU1AsaUVBQVNBLENBQUNRLE9BQU87WUFDdEMsT0FBT04saUJBQWlCQyxJQUFJSSxNQUFNQztRQUNwQyxPQUFPO1lBQ0wsT0FBT0wsR0FBR0csR0FBR0MsTUFBTUM7UUFDckI7SUFDRixHQUFHSixNQUFNQztBQUNYO0FBRUEsaUVBQWVILGdCQUFnQkEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbWVyZ2VEZWVwV2l0aEtleS5qcz8zZjM2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfY3VycnkzIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTMuanNcIjtcbmltcG9ydCBfaXNPYmplY3QgZnJvbSBcIi4vaW50ZXJuYWwvX2lzT2JqZWN0LmpzXCI7XG5pbXBvcnQgbWVyZ2VXaXRoS2V5IGZyb20gXCIuL21lcmdlV2l0aEtleS5qc1wiO1xuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IG9iamVjdCB3aXRoIHRoZSBvd24gcHJvcGVydGllcyBvZiB0aGUgdHdvIHByb3ZpZGVkIG9iamVjdHMuXG4gKiBJZiBhIGtleSBleGlzdHMgaW4gYm90aCBvYmplY3RzOlxuICogLSBhbmQgYm90aCBhc3NvY2lhdGVkIHZhbHVlcyBhcmUgYWxzbyBvYmplY3RzIHRoZW4gdGhlIHZhbHVlcyB3aWxsIGJlXG4gKiAgIHJlY3Vyc2l2ZWx5IG1lcmdlZC5cbiAqIC0gb3RoZXJ3aXNlIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBpcyBhcHBsaWVkIHRvIHRoZSBrZXkgYW5kIGFzc29jaWF0ZWQgdmFsdWVzXG4gKiAgIHVzaW5nIHRoZSByZXN1bHRpbmcgdmFsdWUgYXMgdGhlIG5ldyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGtleS5cbiAqIElmIGEga2V5IG9ubHkgZXhpc3RzIGluIG9uZSBvYmplY3QsIHRoZSB2YWx1ZSB3aWxsIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5XG4gKiBvZiB0aGUgcmVzdWx0aW5nIG9iamVjdC5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4yNC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAc2lnICgoU3RyaW5nLCBhLCBhKSAtPiBhKSAtPiB7YX0gLT4ge2F9IC0+IHthfVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEBwYXJhbSB7T2JqZWN0fSBsT2JqXG4gKiBAcGFyYW0ge09iamVjdH0gck9ialxuICogQHJldHVybiB7T2JqZWN0fVxuICogQHNlZSBSLm1lcmdlV2l0aEtleSwgUi5tZXJnZURlZXBXaXRoXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgbGV0IGNvbmNhdFZhbHVlcyA9IChrLCBsLCByKSA9PiBrID09ICd2YWx1ZXMnID8gUi5jb25jYXQobCwgcikgOiByXG4gKiAgICAgIFIubWVyZ2VEZWVwV2l0aEtleShjb25jYXRWYWx1ZXMsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICB7IGE6IHRydWUsIGM6IHsgdGhpbmc6ICdmb28nLCB2YWx1ZXM6IFsxMCwgMjBdIH19LFxuICogICAgICAgICAgICAgICAgICAgICAgICAgeyBiOiB0cnVlLCBjOiB7IHRoaW5nOiAnYmFyJywgdmFsdWVzOiBbMTUsIDM1XSB9fSk7XG4gKiAgICAgIC8vPT4geyBhOiB0cnVlLCBiOiB0cnVlLCBjOiB7IHRoaW5nOiAnYmFyJywgdmFsdWVzOiBbMTAsIDIwLCAxNSwgMzVdIH19XG4gKi9cblxudmFyIG1lcmdlRGVlcFdpdGhLZXkgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MyhmdW5jdGlvbiBtZXJnZURlZXBXaXRoS2V5KGZuLCBsT2JqLCByT2JqKSB7XG4gIHJldHVybiBtZXJnZVdpdGhLZXkoZnVuY3Rpb24gKGssIGxWYWwsIHJWYWwpIHtcbiAgICBpZiAoX2lzT2JqZWN0KGxWYWwpICYmIF9pc09iamVjdChyVmFsKSkge1xuICAgICAgcmV0dXJuIG1lcmdlRGVlcFdpdGhLZXkoZm4sIGxWYWwsIHJWYWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZm4oaywgbFZhbCwgclZhbCk7XG4gICAgfVxuICB9LCBsT2JqLCByT2JqKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBtZXJnZURlZXBXaXRoS2V5OyJdLCJuYW1lcyI6WyJfY3VycnkzIiwiX2lzT2JqZWN0IiwibWVyZ2VXaXRoS2V5IiwibWVyZ2VEZWVwV2l0aEtleSIsImZuIiwibE9iaiIsInJPYmoiLCJrIiwibFZhbCIsInJWYWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/mergeDeepWithKey.js\n"); + +/***/ }), + +/***/ "(middleware)/./node_modules/ramda/es/mergeWithKey.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/mergeWithKey.js ***! + \***********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"(middleware)/./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"(middleware)/./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */ var mergeWithKey = /*#__PURE__*/ (0,_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n l = l || {};\n r = r || {};\n for(k in l){\n if ((0,_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, l)) {\n result[k] = (0,_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n for(k in r){\n if ((0,_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, r) && !(0,_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, result)) {\n result[k] = r[k];\n }\n }\n return result;\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mergeWithKey);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKG1pZGRsZXdhcmUpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21lcmdlV2l0aEtleS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEM7QUFDTjtBQUN0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBd0JDLEdBRUQsSUFBSUUsZUFDSixXQUFXLEdBQ1hGLCtEQUFPQSxDQUFDLFNBQVNFLGFBQWFDLEVBQUUsRUFBRUMsQ0FBQyxFQUFFQyxDQUFDO0lBQ3BDLElBQUlDLFNBQVMsQ0FBQztJQUNkLElBQUlDO0lBQ0pILElBQUlBLEtBQUssQ0FBQztJQUNWQyxJQUFJQSxLQUFLLENBQUM7SUFFVixJQUFLRSxLQUFLSCxFQUFHO1FBQ1gsSUFBSUgsNERBQUlBLENBQUNNLEdBQUdILElBQUk7WUFDZEUsTUFBTSxDQUFDQyxFQUFFLEdBQUdOLDREQUFJQSxDQUFDTSxHQUFHRixLQUFLRixHQUFHSSxHQUFHSCxDQUFDLENBQUNHLEVBQUUsRUFBRUYsQ0FBQyxDQUFDRSxFQUFFLElBQUlILENBQUMsQ0FBQ0csRUFBRTtRQUNuRDtJQUNGO0lBRUEsSUFBS0EsS0FBS0YsRUFBRztRQUNYLElBQUlKLDREQUFJQSxDQUFDTSxHQUFHRixNQUFNLENBQUNKLDREQUFJQSxDQUFDTSxHQUFHRCxTQUFTO1lBQ2xDQSxNQUFNLENBQUNDLEVBQUUsR0FBR0YsQ0FBQyxDQUFDRSxFQUFFO1FBQ2xCO0lBQ0Y7SUFFQSxPQUFPRDtBQUNUO0FBRUEsaUVBQWVKLFlBQVlBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21lcmdlV2l0aEtleS5qcz8zMzcxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfY3VycnkzIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTMuanNcIjtcbmltcG9ydCBfaGFzIGZyb20gXCIuL2ludGVybmFsL19oYXMuanNcIjtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBvYmplY3Qgd2l0aCB0aGUgb3duIHByb3BlcnRpZXMgb2YgdGhlIHR3byBwcm92aWRlZCBvYmplY3RzLiBJZlxuICogYSBrZXkgZXhpc3RzIGluIGJvdGggb2JqZWN0cywgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIGlzIGFwcGxpZWQgdG8gdGhlIGtleVxuICogYW5kIHRoZSB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgaW4gZWFjaCBvYmplY3QsIHdpdGggdGhlIHJlc3VsdCBiZWluZ1xuICogdXNlZCBhcyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgaW4gdGhlIHJldHVybmVkIG9iamVjdC5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xOS4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAc2lnICgoU3RyaW5nLCBhLCBhKSAtPiBhKSAtPiB7YX0gLT4ge2F9IC0+IHthfVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEBwYXJhbSB7T2JqZWN0fSBsXG4gKiBAcGFyYW0ge09iamVjdH0gclxuICogQHJldHVybiB7T2JqZWN0fVxuICogQHNlZSBSLm1lcmdlRGVlcFdpdGhLZXksIFIubWVyZ2UsIFIubWVyZ2VXaXRoXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgbGV0IGNvbmNhdFZhbHVlcyA9IChrLCBsLCByKSA9PiBrID09ICd2YWx1ZXMnID8gUi5jb25jYXQobCwgcikgOiByXG4gKiAgICAgIFIubWVyZ2VXaXRoS2V5KGNvbmNhdFZhbHVlcyxcbiAqICAgICAgICAgICAgICAgICAgICAgeyBhOiB0cnVlLCB0aGluZzogJ2ZvbycsIHZhbHVlczogWzEwLCAyMF0gfSxcbiAqICAgICAgICAgICAgICAgICAgICAgeyBiOiB0cnVlLCB0aGluZzogJ2JhcicsIHZhbHVlczogWzE1LCAzNV0gfSk7XG4gKiAgICAgIC8vPT4geyBhOiB0cnVlLCBiOiB0cnVlLCB0aGluZzogJ2JhcicsIHZhbHVlczogWzEwLCAyMCwgMTUsIDM1XSB9XG4gKiBAc3ltYiBSLm1lcmdlV2l0aEtleShmLCB7IHg6IDEsIHk6IDIgfSwgeyB5OiA1LCB6OiAzIH0pID0geyB4OiAxLCB5OiBmKCd5JywgMiwgNSksIHo6IDMgfVxuICovXG5cbnZhciBtZXJnZVdpdGhLZXkgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MyhmdW5jdGlvbiBtZXJnZVdpdGhLZXkoZm4sIGwsIHIpIHtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuICB2YXIgaztcbiAgbCA9IGwgfHwge307XG4gIHIgPSByIHx8IHt9O1xuXG4gIGZvciAoayBpbiBsKSB7XG4gICAgaWYgKF9oYXMoaywgbCkpIHtcbiAgICAgIHJlc3VsdFtrXSA9IF9oYXMoaywgcikgPyBmbihrLCBsW2tdLCByW2tdKSA6IGxba107XG4gICAgfVxuICB9XG5cbiAgZm9yIChrIGluIHIpIHtcbiAgICBpZiAoX2hhcyhrLCByKSAmJiAhX2hhcyhrLCByZXN1bHQpKSB7XG4gICAgICByZXN1bHRba10gPSByW2tdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgbWVyZ2VXaXRoS2V5OyJdLCJuYW1lcyI6WyJfY3VycnkzIiwiX2hhcyIsIm1lcmdlV2l0aEtleSIsImZuIiwibCIsInIiLCJyZXN1bHQiLCJrIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(middleware)/./node_modules/ramda/es/mergeWithKey.js\n"); + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ var __webpack_exports__ = (__webpack_exec__("(middleware)/./node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js?absolutePagePath=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fmiddleware.ts&page=%2Fmiddleware&rootDir=%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app&matchers=&preferredRegion=&middlewareConfig=e30%3D!")); +/******/ (_ENTRIES = typeof _ENTRIES === "undefined" ? {} : _ENTRIES).middleware_middleware = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/server/next-font-manifest.js b/.next/server/next-font-manifest.js new file mode 100644 index 0000000..26e37eb --- /dev/null +++ b/.next/server/next-font-manifest.js @@ -0,0 +1 @@ +self.__NEXT_FONT_MANIFEST="{\"pages\":{},\"app\":{\"/Users/pawanlive/Programming /timetable-app/app/layout\":[\"static/media/ec1a1eae803b668e-s.p.woff2\"]},\"appUsingSizeAdjust\":true,\"pagesUsingSizeAdjust\":false}" \ No newline at end of file diff --git a/.next/server/next-font-manifest.json b/.next/server/next-font-manifest.json new file mode 100644 index 0000000..c5aae0d --- /dev/null +++ b/.next/server/next-font-manifest.json @@ -0,0 +1 @@ +{"pages":{},"app":{"/Users/pawanlive/Programming /timetable-app/app/layout":["static/media/ec1a1eae803b668e-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false} \ No newline at end of file diff --git a/.next/server/pages-manifest.json b/.next/server/pages-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.next/server/pages-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.next/server/server-reference-manifest.js b/.next/server/server-reference-manifest.js new file mode 100644 index 0000000..78047da --- /dev/null +++ b/.next/server/server-reference-manifest.js @@ -0,0 +1 @@ +self.__RSC_SERVER_MANIFEST="{\n \"node\": {\n \"6a665cdd66eb4c3f8977ecc183c15fea4451156b\": {\n \"workers\": {\n \"app/page\": \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fcomponents%2FAuthButton.tsx%22%2C%5B%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!\"\n },\n \"layer\": {\n \"app/page\": \"rsc\"\n }\n },\n \"5986120908487f1e4fe1d12ab3757094bbf05b51\": {\n \"workers\": {\n \"app/login/page\": \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Flogin%2Fpage.tsx%22%2C%5B%22%24%24ACTION_3%22%2C%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!\"\n },\n \"layer\": {\n \"app/login/page\": \"rsc\"\n }\n },\n \"b5a660c38f9d3d2778a97dde9a098333a0362045\": {\n \"workers\": {\n \"app/login/page\": \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Flogin%2Fpage.tsx%22%2C%5B%22%24%24ACTION_3%22%2C%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!\"\n },\n \"layer\": {\n \"app/login/page\": \"rsc\"\n }\n }\n },\n \"edge\": {},\n \"encryptionKey\": \"8WvIlGS+SBcfFZ5o7sL7eQzlfMeuGGvq9WVBOUvhiAw=\"\n}" \ No newline at end of file diff --git a/.next/server/server-reference-manifest.json b/.next/server/server-reference-manifest.json new file mode 100644 index 0000000..8965467 --- /dev/null +++ b/.next/server/server-reference-manifest.json @@ -0,0 +1,30 @@ +{ + "node": { + "6a665cdd66eb4c3f8977ecc183c15fea4451156b": { + "workers": { + "app/page": "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fcomponents%2FAuthButton.tsx%22%2C%5B%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!" + }, + "layer": { + "app/page": "rsc" + } + }, + "5986120908487f1e4fe1d12ab3757094bbf05b51": { + "workers": { + "app/login/page": "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Flogin%2Fpage.tsx%22%2C%5B%22%24%24ACTION_3%22%2C%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!" + }, + "layer": { + "app/login/page": "rsc" + } + }, + "b5a660c38f9d3d2778a97dde9a098333a0362045": { + "workers": { + "app/login/page": "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2FUsers%2Fpawanlive%2FProgramming%20%2Ftimetable-app%2Fapp%2Flogin%2Fpage.tsx%22%2C%5B%22%24%24ACTION_3%22%2C%22%24%24ACTION_1%22%5D%5D%5D&__client_imported__=!" + }, + "layer": { + "app/login/page": "rsc" + } + } + }, + "edge": {}, + "encryptionKey": "8WvIlGS+SBcfFZ5o7sL7eQzlfMeuGGvq9WVBOUvhiAw=" +} \ No newline at end of file diff --git a/.next/server/static/webpack/633457081244afec._.hot-update.json b/.next/server/static/webpack/633457081244afec._.hot-update.json new file mode 100644 index 0000000..5a523f2 --- /dev/null +++ b/.next/server/static/webpack/633457081244afec._.hot-update.json @@ -0,0 +1 @@ +{"c":[],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/server/vendor-chunks/@supabase.js b/.next/server/vendor-chunks/@supabase.js new file mode 100644 index 0000000..546c9cc --- /dev/null +++ b/.next/server/vendor-chunks/@supabase.js @@ -0,0 +1,545 @@ +"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/@supabase"; +exports.ids = ["vendor-chunks/@supabase"]; +exports.modules = { + +/***/ "(rsc)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FunctionsClient: () => (/* binding */ FunctionsClient)\n/* harmony export */ });\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper */ \"(rsc)/./node_modules/@supabase/functions-js/dist/module/helper.js\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ \"(rsc)/./node_modules/@supabase/functions-js/dist/module/types.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\nclass FunctionsClient {\n constructor(url, { headers = {}, customFetch, region = _types__WEBPACK_IMPORTED_MODULE_0__.FunctionRegion.Any } = {}){\n this.url = url;\n this.headers = headers;\n this.region = region;\n this.fetch = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(customFetch);\n }\n /**\n * Updates the authorization header\n * @param token - the new jwt token sent in the authorisation header\n */ setAuth(token) {\n this.headers.Authorization = `Bearer ${token}`;\n }\n /**\n * Invokes a function\n * @param functionName - The name of the Function to invoke.\n * @param options - Options for invoking the Function.\n */ invoke(functionName, options = {}) {\n var _a;\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const { headers, method, body: functionArgs } = options;\n let _headers = {};\n let { region } = options;\n if (!region) {\n region = this.region;\n }\n if (region && region !== \"any\") {\n _headers[\"x-region\"] = region;\n }\n let body;\n if (functionArgs && (headers && !Object.prototype.hasOwnProperty.call(headers, \"Content-Type\") || !headers)) {\n if (typeof Blob !== \"undefined\" && functionArgs instanceof Blob || functionArgs instanceof ArrayBuffer) {\n // will work for File as File inherits Blob\n // also works for ArrayBuffer as it is the same underlying structure as a Blob\n _headers[\"Content-Type\"] = \"application/octet-stream\";\n body = functionArgs;\n } else if (typeof functionArgs === \"string\") {\n // plain string\n _headers[\"Content-Type\"] = \"text/plain\";\n body = functionArgs;\n } else if (typeof FormData !== \"undefined\" && functionArgs instanceof FormData) {\n // don't set content-type headers\n // Request will automatically add the right boundary value\n body = functionArgs;\n } else {\n // default, assume this is JSON\n _headers[\"Content-Type\"] = \"application/json\";\n body = JSON.stringify(functionArgs);\n }\n }\n const response = yield this.fetch(`${this.url}/${functionName}`, {\n method: method || \"POST\",\n // headers priority is (high to low):\n // 1. invoke-level headers\n // 2. client-level headers\n // 3. default Content-Type header\n headers: Object.assign(Object.assign(Object.assign({}, _headers), this.headers), headers),\n body\n }).catch((fetchError)=>{\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsFetchError(fetchError);\n });\n const isRelayError = response.headers.get(\"x-relay-error\");\n if (isRelayError && isRelayError === \"true\") {\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsRelayError(response);\n }\n if (!response.ok) {\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsHttpError(response);\n }\n let responseType = ((_a = response.headers.get(\"Content-Type\")) !== null && _a !== void 0 ? _a : \"text/plain\").split(\";\")[0].trim();\n let data;\n if (responseType === \"application/json\") {\n data = yield response.json();\n } else if (responseType === \"application/octet-stream\") {\n data = yield response.blob();\n } else if (responseType === \"multipart/form-data\") {\n data = yield response.formData();\n } else {\n // default to text\n data = yield response.text();\n }\n return {\n data,\n error: null\n };\n } catch (error) {\n return {\n data: null,\n error\n };\n }\n });\n }\n} //# sourceMappingURL=FunctionsClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcy9kaXN0L21vZHVsZS9GdW5jdGlvbnNDbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsWUFBWSxTQUFLLElBQUksU0FBSSxDQUFDQSxTQUFTLElBQUssU0FBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUztJQUNuRixTQUFTQyxNQUFNQyxLQUFLO1FBQUksT0FBT0EsaUJBQWlCSCxJQUFJRyxRQUFRLElBQUlILEVBQUUsU0FBVUksT0FBTztZQUFJQSxRQUFRRDtRQUFRO0lBQUk7SUFDM0csT0FBTyxJQUFLSCxDQUFBQSxLQUFNQSxDQUFBQSxJQUFJSyxPQUFNLENBQUMsRUFBRyxTQUFVRCxPQUFPLEVBQUVFLE1BQU07UUFDckQsU0FBU0MsVUFBVUosS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFVBQVVRLElBQUksQ0FBQ047WUFBUyxFQUFFLE9BQU9PLEdBQUc7Z0JBQUVKLE9BQU9JO1lBQUk7UUFBRTtRQUMxRixTQUFTQyxTQUFTUixLQUFLO1lBQUksSUFBSTtnQkFBRUssS0FBS1AsU0FBUyxDQUFDLFFBQVEsQ0FBQ0U7WUFBUyxFQUFFLE9BQU9PLEdBQUc7Z0JBQUVKLE9BQU9JO1lBQUk7UUFBRTtRQUM3RixTQUFTRixLQUFLSSxNQUFNO1lBQUlBLE9BQU9DLElBQUksR0FBR1QsUUFBUVEsT0FBT1QsS0FBSyxJQUFJRCxNQUFNVSxPQUFPVCxLQUFLLEVBQUVXLElBQUksQ0FBQ1AsV0FBV0k7UUFBVztRQUM3R0gsS0FBSyxDQUFDUCxZQUFZQSxVQUFVYyxLQUFLLENBQUNqQixTQUFTQyxjQUFjLEVBQUUsR0FBR1UsSUFBSTtJQUN0RTtBQUNKO0FBQ3dDO0FBQ2dFO0FBQ2pHLE1BQU1ZO0lBQ1RDLFlBQVlDLEdBQUcsRUFBRSxFQUFFQyxVQUFVLENBQUMsQ0FBQyxFQUFFQyxXQUFXLEVBQUVDLFNBQVNOLGtEQUFjQSxDQUFDTyxHQUFH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Q0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDQyxJQUFJO2dCQUNqSSxJQUFJQztnQkFDSixJQUFJSCxpQkFBaUIsb0JBQW9CO29CQUNyQ0csT0FBTyxNQUFNVixTQUFTVyxJQUFJO2dCQUM5QixPQUNLLElBQUlKLGlCQUFpQiw0QkFBNEI7b0JBQ2xERyxPQUFPLE1BQU1WLFNBQVNZLElBQUk7Z0JBQzlCLE9BQ0ssSUFBSUwsaUJBQWlCLHVCQUF1QjtvQkFDN0NHLE9BQU8sTUFBTVYsU0FBU2EsUUFBUTtnQkFDbEMsT0FDSztvQkFDRCxrQkFBa0I7b0JBQ2xCSCxPQUFPLE1BQU1WLFNBQVNjLElBQUk7Z0JBQzlCO2dCQUNBLE9BQU87b0JBQUVKO29CQUFNSyxPQUFPO2dCQUFLO1lBQy9CLEVBQ0EsT0FBT0EsT0FBTztnQkFDVixPQUFPO29CQUFFTCxNQUFNO29CQUFNSztnQkFBTTtZQUMvQjtRQUNKO0lBQ0o7QUFDSixFQUNBLDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZnVuY3Rpb25zLWpzL2Rpc3QvbW9kdWxlL0Z1bmN0aW9uc0NsaWVudC5qcz81YzM4Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgcmVzb2x2ZUZldGNoIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgRnVuY3Rpb25zRmV0Y2hFcnJvciwgRnVuY3Rpb25zSHR0cEVycm9yLCBGdW5jdGlvbnNSZWxheUVycm9yLCBGdW5jdGlvblJlZ2lvbiwgfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNDbGllbnQge1xuICAgIGNvbnN0cnVjdG9yKHVybCwgeyBoZWFkZXJzID0ge30sIGN1c3RvbUZldGNoLCByZWdpb24gPSBGdW5jdGlvblJlZ2lvbi5BbnksIH0gPSB7fSkge1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgICAgICAgdGhpcy5yZWdpb24gPSByZWdpb247XG4gICAgICAgIHRoaXMuZmV0Y2ggPSByZXNvbHZlRmV0Y2goY3VzdG9tRmV0Y2gpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBhdXRob3JpemF0aW9uIGhlYWRlclxuICAgICAqIEBwYXJhbSB0b2tlbiAtIHRoZSBuZXcgand0IHRva2VuIHNlbnQgaW4gdGhlIGF1dGhvcmlzYXRpb24gaGVhZGVyXG4gICAgICovXG4gICAgc2V0QXV0aCh0b2tlbikge1xuICAgICAgICB0aGlzLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbnZva2VzIGEgZnVuY3Rpb25cbiAgICAgKiBAcGFyYW0gZnVuY3Rpb25OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIEZ1bmN0aW9uIHRvIGludm9rZS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIGludm9raW5nIHRoZSBGdW5jdGlvbi5cbiAgICAgKi9cbiAgICBpbnZva2UoZnVuY3Rpb25OYW1lLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGhlYWRlcnMsIG1ldGhvZCwgYm9keTogZnVuY3Rpb25BcmdzIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIGxldCBfaGVhZGVycyA9IHt9O1xuICAgICAgICAgICAgICAgIGxldCB7IHJlZ2lvbiB9ID0gb3B0aW9ucztcbiAgICAgICAgICAgICAgICBpZiAoIXJlZ2lvbikge1xuICAgICAgICAgICAgICAgICAgICByZWdpb24gPSB0aGlzLnJlZ2lvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlZ2lvbiAmJiByZWdpb24gIT09ICdhbnknKSB7XG4gICAgICAgICAgICAgICAgICAgIF9oZWFkZXJzWyd4LXJlZ2lvbiddID0gcmVnaW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgYm9keTtcbiAgICAgICAgICAgICAgICBpZiAoZnVuY3Rpb25BcmdzICYmXG4gICAgICAgICAgICAgICAgICAgICgoaGVhZGVycyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhlYWRlcnMsICdDb250ZW50LVR5cGUnKSkgfHwgIWhlYWRlcnMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgodHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIGZ1bmN0aW9uQXJncyBpbnN0YW5jZW9mIEJsb2IpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbkFyZ3MgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCB3b3JrIGZvciBGaWxlIGFzIEZpbGUgaW5oZXJpdHMgQmxvYlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyB3b3JrcyBmb3IgQXJyYXlCdWZmZXIgYXMgaXQgaXMgdGhlIHNhbWUgdW5kZXJseWluZyBzdHJ1Y3R1cmUgYXMgYSBCbG9iXG4gICAgICAgICAgICAgICAgICAgICAgICBfaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBmdW5jdGlvbkFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGZ1bmN0aW9uQXJncyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBsYWluIHN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgX2hlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ3RleHQvcGxhaW4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA9IGZ1bmN0aW9uQXJncztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnICYmIGZ1bmN0aW9uQXJncyBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCBzZXQgY29udGVudC10eXBlIGhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcXVlc3Qgd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgcmlnaHQgYm91bmRhcnkgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBmdW5jdGlvbkFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWZhdWx0LCBhc3N1bWUgdGhpcyBpcyBKU09OXG4gICAgICAgICAgICAgICAgICAgICAgICBfaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoZnVuY3Rpb25BcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIHRoaXMuZmV0Y2goYCR7dGhpcy51cmx9LyR7ZnVuY3Rpb25OYW1lfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBtZXRob2QgfHwgJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIHByaW9yaXR5IGlzIChoaWdoIHRvIGxvdyk6XG4gICAgICAgICAgICAgICAgICAgIC8vIDEuIGludm9rZS1sZXZlbCBoZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgIC8vIDIuIGNsaWVudC1sZXZlbCBoZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgIC8vIDMuIGRlZmF1bHQgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgX2hlYWRlcnMpLCB0aGlzLmhlYWRlcnMpLCBoZWFkZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZmV0Y2hFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRnVuY3Rpb25zRmV0Y2hFcnJvcihmZXRjaEVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1JlbGF5RXJyb3IgPSByZXNwb25zZS5oZWFkZXJzLmdldCgneC1yZWxheS1lcnJvcicpO1xuICAgICAgICAgICAgICAgIGlmIChpc1JlbGF5RXJyb3IgJiYgaXNSZWxheUVycm9yID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZ1bmN0aW9uc1JlbGF5RXJyb3IocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGdW5jdGlvbnNIdHRwRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2VUeXBlID0gKChfYSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ3RleHQvcGxhaW4nKS5zcGxpdCgnOycpWzBdLnRyaW0oKTtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VUeXBlID09PSAnYXBwbGljYXRpb24vanNvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHlpZWxkIHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VUeXBlID09PSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJykge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0geWllbGQgcmVzcG9uc2UuYmxvYigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXNwb25zZVR5cGUgPT09ICdtdWx0aXBhcnQvZm9ybS1kYXRhJykge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0geWllbGQgcmVzcG9uc2UuZm9ybURhdGEoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gdGV4dFxuICAgICAgICAgICAgICAgICAgICBkYXRhID0geWllbGQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RnVuY3Rpb25zQ2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJyZXNvbHZlRmV0Y2giLCJGdW5jdGlvbnNGZXRjaEVycm9yIiwiRnVuY3Rpb25zSHR0cEVycm9yIiwiRnVuY3Rpb25zUmVsYXlFcnJvciIsIkZ1bmN0aW9uUmVnaW9uIiwiRnVuY3Rpb25zQ2xpZW50IiwiY29uc3RydWN0b3IiLCJ1cmwiLCJoZWFkZXJzIiwiY3VzdG9tRmV0Y2giLCJyZWdpb24iLCJBbnkiLCJmZXRjaCIsInNldEF1dGgiLCJ0b2tlbiIsIkF1dGhvcml6YXRpb24iLCJpbnZva2UiLCJmdW5jdGlvbk5hbWUiLCJvcHRpb25zIiwiX2EiLCJtZXRob2QiLCJib2R5IiwiZnVuY3Rpb25BcmdzIiwiX2hlYWRlcnMiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJCbG9iIiwiQXJyYXlCdWZmZXIiLCJGb3JtRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXNwb25zZSIsImFzc2lnbiIsImNhdGNoIiwiZmV0Y2hFcnJvciIsImlzUmVsYXlFcnJvciIsImdldCIsIm9rIiwicmVzcG9uc2VUeXBlIiwic3BsaXQiLCJ0cmltIiwiZGF0YSIsImpzb24iLCJibG9iIiwiZm9ybURhdGEiLCJ0ZXh0IiwiZXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/functions-js/dist/module/helper.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@supabase/functions-js/dist/module/helper.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveFetch: () => (/* binding */ resolveFetch)\n/* harmony export */ });\nconst resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (...args)=>Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(rsc)/./node_modules/@supabase/node-fetch/lib/index.js\", 23)).then(({ default: fetch1 })=>fetch1(...args));\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n}; //# sourceMappingURL=helper.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcy9kaXN0L21vZHVsZS9oZWxwZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLE1BQU1BLGVBQWUsQ0FBQ0M7SUFDekIsSUFBSUM7SUFDSixJQUFJRCxhQUFhO1FBQ2JDLFNBQVNEO0lBQ2IsT0FDSyxJQUFJLE9BQU9FLFVBQVUsYUFBYTtRQUNuQ0QsU0FBUyxDQUFDLEdBQUdFLE9BQVMsZ0xBQU8sQ0FBd0JDLElBQUksQ0FBQyxDQUFDLEVBQUVDLFNBQVNILE1BQUssRUFBRSxHQUFLQSxVQUFTQztJQUMvRixPQUNLO1FBQ0RGLFNBQVNDO0lBQ2I7SUFDQSxPQUFPLENBQUMsR0FBR0MsT0FBU0YsVUFBVUU7QUFDbEMsRUFBRSxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZnVuY3Rpb25zLWpzL2Rpc3QvbW9kdWxlL2hlbHBlci5qcz9iNjk1Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCByZXNvbHZlRmV0Y2ggPSAoY3VzdG9tRmV0Y2gpID0+IHtcbiAgICBsZXQgX2ZldGNoO1xuICAgIGlmIChjdXN0b21GZXRjaCkge1xuICAgICAgICBfZmV0Y2ggPSBjdXN0b21GZXRjaDtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGZldGNoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBfZmV0Y2ggPSAoLi4uYXJncykgPT4gaW1wb3J0KCdAc3VwYWJhc2Uvbm9kZS1mZXRjaCcpLnRoZW4oKHsgZGVmYXVsdDogZmV0Y2ggfSkgPT4gZmV0Y2goLi4uYXJncykpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgX2ZldGNoID0gZmV0Y2g7XG4gICAgfVxuICAgIHJldHVybiAoLi4uYXJncykgPT4gX2ZldGNoKC4uLmFyZ3MpO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlci5qcy5tYXAiXSwibmFtZXMiOlsicmVzb2x2ZUZldGNoIiwiY3VzdG9tRmV0Y2giLCJfZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJ0aGVuIiwiZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/functions-js/dist/module/helper.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/functions-js/dist/module/types.js": +/*!******************************************************************!*\ + !*** ./node_modules/@supabase/functions-js/dist/module/types.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FunctionRegion: () => (/* binding */ FunctionRegion),\n/* harmony export */ FunctionsError: () => (/* binding */ FunctionsError),\n/* harmony export */ FunctionsFetchError: () => (/* binding */ FunctionsFetchError),\n/* harmony export */ FunctionsHttpError: () => (/* binding */ FunctionsHttpError),\n/* harmony export */ FunctionsRelayError: () => (/* binding */ FunctionsRelayError)\n/* harmony export */ });\nclass FunctionsError extends Error {\n constructor(message, name = \"FunctionsError\", context){\n super(message);\n this.name = name;\n this.context = context;\n }\n}\nclass FunctionsFetchError extends FunctionsError {\n constructor(context){\n super(\"Failed to send a request to the Edge Function\", \"FunctionsFetchError\", context);\n }\n}\nclass FunctionsRelayError extends FunctionsError {\n constructor(context){\n super(\"Relay Error invoking the Edge Function\", \"FunctionsRelayError\", context);\n }\n}\nclass FunctionsHttpError extends FunctionsError {\n constructor(context){\n super(\"Edge Function returned a non-2xx status code\", \"FunctionsHttpError\", context);\n }\n}\n// Define the enum for the 'region' property\nvar FunctionRegion;\n(function(FunctionRegion) {\n FunctionRegion[\"Any\"] = \"any\";\n FunctionRegion[\"ApNortheast1\"] = \"ap-northeast-1\";\n FunctionRegion[\"ApNortheast2\"] = \"ap-northeast-2\";\n FunctionRegion[\"ApSouth1\"] = \"ap-south-1\";\n FunctionRegion[\"ApSoutheast1\"] = \"ap-southeast-1\";\n FunctionRegion[\"ApSoutheast2\"] = \"ap-southeast-2\";\n FunctionRegion[\"CaCentral1\"] = \"ca-central-1\";\n FunctionRegion[\"EuCentral1\"] = \"eu-central-1\";\n FunctionRegion[\"EuWest1\"] = \"eu-west-1\";\n FunctionRegion[\"EuWest2\"] = \"eu-west-2\";\n FunctionRegion[\"EuWest3\"] = \"eu-west-3\";\n FunctionRegion[\"SaEast1\"] = \"sa-east-1\";\n FunctionRegion[\"UsEast1\"] = \"us-east-1\";\n FunctionRegion[\"UsWest1\"] = \"us-west-1\";\n FunctionRegion[\"UsWest2\"] = \"us-west-2\";\n})(FunctionRegion || (FunctionRegion = {})); //# sourceMappingURL=types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcy9kaXN0L21vZHVsZS90eXBlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFPLE1BQU1BLHVCQUF1QkM7SUFDaENDLFlBQVlDLE9BQU8sRUFBRUMsT0FBTyxnQkFBZ0IsRUFBRUMsT0FBTyxDQUFFO1FBQ25ELEtBQUssQ0FBQ0Y7UUFDTixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE9BQU8sR0FBR0E7SUFDbkI7QUFDSjtBQUNPLE1BQU1DLDRCQUE0Qk47SUFDckNFLFlBQVlHLE9BQU8sQ0FBRTtRQUNqQixLQUFLLENBQUMsaURBQWlELHVCQUF1QkE7SUFDbEY7QUFDSjtBQUNPLE1BQU1FLDRCQUE0QlA7SUFDckNFLFlBQVlHLE9BQU8sQ0FBRTtRQUNqQixLQUFLLENBQUMsMENBQTBDLHVCQUF1QkE7SUFDM0U7QUFDSjtBQUNPLE1BQU1HLDJCQUEyQlI7SUFDcENFLFlBQVlHLE9BQU8sQ0FBRTtRQUNqQixLQUFLLENBQUMsZ0RBQWdELHNCQUFzQkE7SUFDaEY7QUFDSjtBQUNBLDRDQUE0QztBQUNyQyxJQUFJSSxlQUFlO0FBQ3pCLFVBQVVBLGNBQWM7SUFDckJBLGNBQWMsQ0FBQyxNQUFNLEdBQUc7SUFDeEJBLGNBQWMsQ0FBQyxlQUFlLEdBQUc7SUFDakNBLGNBQWMsQ0FBQyxlQUFlLEdBQUc7SUFDakNBLGNBQWMsQ0FBQyxXQUFXLEdBQUc7SUFDN0JBLGNBQWMsQ0FBQyxlQUFlLEdBQUc7SUFDakNBLGNBQWMsQ0FBQyxlQUFlLEdBQUc7SUFDakNBLGNBQWMsQ0FBQyxhQUFhLEdBQUc7SUFDL0JBLGNBQWMsQ0FBQyxhQUFhLEdBQUc7SUFDL0JBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7SUFDNUJBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7SUFDNUJBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7SUFDNUJBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7SUFDNUJBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7SUFDNUJBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7SUFDNUJBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7QUFDaEMsR0FBR0Esa0JBQW1CQSxDQUFBQSxpQkFBaUIsQ0FBQyxLQUN4QyxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcy9kaXN0L21vZHVsZS90eXBlcy5qcz82ODhlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGdW5jdGlvbnNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBuYW1lID0gJ0Z1bmN0aW9uc0Vycm9yJywgY29udGV4dCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRnVuY3Rpb25zRmV0Y2hFcnJvciBleHRlbmRzIEZ1bmN0aW9uc0Vycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250ZXh0KSB7XG4gICAgICAgIHN1cGVyKCdGYWlsZWQgdG8gc2VuZCBhIHJlcXVlc3QgdG8gdGhlIEVkZ2UgRnVuY3Rpb24nLCAnRnVuY3Rpb25zRmV0Y2hFcnJvcicsIGNvbnRleHQpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNSZWxheUVycm9yIGV4dGVuZHMgRnVuY3Rpb25zRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcbiAgICAgICAgc3VwZXIoJ1JlbGF5IEVycm9yIGludm9raW5nIHRoZSBFZGdlIEZ1bmN0aW9uJywgJ0Z1bmN0aW9uc1JlbGF5RXJyb3InLCBjb250ZXh0KTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRnVuY3Rpb25zSHR0cEVycm9yIGV4dGVuZHMgRnVuY3Rpb25zRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcbiAgICAgICAgc3VwZXIoJ0VkZ2UgRnVuY3Rpb24gcmV0dXJuZWQgYSBub24tMnh4IHN0YXR1cyBjb2RlJywgJ0Z1bmN0aW9uc0h0dHBFcnJvcicsIGNvbnRleHQpO1xuICAgIH1cbn1cbi8vIERlZmluZSB0aGUgZW51bSBmb3IgdGhlICdyZWdpb24nIHByb3BlcnR5XG5leHBvcnQgdmFyIEZ1bmN0aW9uUmVnaW9uO1xuKGZ1bmN0aW9uIChGdW5jdGlvblJlZ2lvbikge1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiQW55XCJdID0gXCJhbnlcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkFwTm9ydGhlYXN0MVwiXSA9IFwiYXAtbm9ydGhlYXN0LTFcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkFwTm9ydGhlYXN0MlwiXSA9IFwiYXAtbm9ydGhlYXN0LTJcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkFwU291dGgxXCJdID0gXCJhcC1zb3V0aC0xXCI7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJBcFNvdXRoZWFzdDFcIl0gPSBcImFwLXNvdXRoZWFzdC0xXCI7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJBcFNvdXRoZWFzdDJcIl0gPSBcImFwLXNvdXRoZWFzdC0yXCI7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJDYUNlbnRyYWwxXCJdID0gXCJjYS1jZW50cmFsLTFcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkV1Q2VudHJhbDFcIl0gPSBcImV1LWNlbnRyYWwtMVwiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiRXVXZXN0MVwiXSA9IFwiZXUtd2VzdC0xXCI7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJFdVdlc3QyXCJdID0gXCJldS13ZXN0LTJcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIkV1V2VzdDNcIl0gPSBcImV1LXdlc3QtM1wiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiU2FFYXN0MVwiXSA9IFwic2EtZWFzdC0xXCI7XG4gICAgRnVuY3Rpb25SZWdpb25bXCJVc0Vhc3QxXCJdID0gXCJ1cy1lYXN0LTFcIjtcbiAgICBGdW5jdGlvblJlZ2lvbltcIlVzV2VzdDFcIl0gPSBcInVzLXdlc3QtMVwiO1xuICAgIEZ1bmN0aW9uUmVnaW9uW1wiVXNXZXN0MlwiXSA9IFwidXMtd2VzdC0yXCI7XG59KShGdW5jdGlvblJlZ2lvbiB8fCAoRnVuY3Rpb25SZWdpb24gPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHlwZXMuanMubWFwIl0sIm5hbWVzIjpbIkZ1bmN0aW9uc0Vycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJuYW1lIiwiY29udGV4dCIsIkZ1bmN0aW9uc0ZldGNoRXJyb3IiLCJGdW5jdGlvbnNSZWxheUVycm9yIiwiRnVuY3Rpb25zSHR0cEVycm9yIiwiRnVuY3Rpb25SZWdpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/functions-js/dist/module/types.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/AuthAdminApi.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/AuthAdminApi.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js\");\n\nconst AuthAdminApi = _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AuthAdminApi); //# sourceMappingURL=AuthAdminApi.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9BdXRoQWRtaW5BcGkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBOEM7QUFDOUMsTUFBTUMsZUFBZUQsdURBQWNBO0FBQ25DLGlFQUFlQyxZQUFZQSxFQUFDLENBQzVCLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL0F1dGhBZG1pbkFwaS5qcz83NjYyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBHb1RydWVBZG1pbkFwaSBmcm9tICcuL0dvVHJ1ZUFkbWluQXBpJztcbmNvbnN0IEF1dGhBZG1pbkFwaSA9IEdvVHJ1ZUFkbWluQXBpO1xuZXhwb3J0IGRlZmF1bHQgQXV0aEFkbWluQXBpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QXV0aEFkbWluQXBpLmpzLm1hcCJdLCJuYW1lcyI6WyJHb1RydWVBZG1pbkFwaSIsIkF1dGhBZG1pbkFwaSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/AuthAdminApi.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/AuthClient.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/AuthClient.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _GoTrueClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueClient */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js\");\n\nconst AuthClient = _GoTrueClient__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AuthClient); //# sourceMappingURL=AuthClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9BdXRoQ2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTBDO0FBQzFDLE1BQU1DLGFBQWFELHFEQUFZQTtBQUMvQixpRUFBZUMsVUFBVUEsRUFBQyxDQUMxQixzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9BdXRoQ2xpZW50LmpzPzcxODciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdvVHJ1ZUNsaWVudCBmcm9tICcuL0dvVHJ1ZUNsaWVudCc7XG5jb25zdCBBdXRoQ2xpZW50ID0gR29UcnVlQ2xpZW50O1xuZXhwb3J0IGRlZmF1bHQgQXV0aENsaWVudDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUF1dGhDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIkdvVHJ1ZUNsaWVudCIsIkF1dGhDbGllbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/AuthClient.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js": +/*!************************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js ***! + \************************************************************************/ +/***/ ((__unused_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 */ GoTrueAdminApi)\n/* harmony export */ });\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/fetch */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/helpers */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/errors */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\");\nvar __rest = undefined && undefined.__rest || function(s, e) {\n var t = {};\n for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\nclass GoTrueAdminApi {\n constructor({ url = \"\", headers = {}, fetch }){\n this.url = url;\n this.headers = headers;\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(fetch);\n this.mfa = {\n listFactors: this._listFactors.bind(this),\n deleteFactor: this._deleteFactor.bind(this)\n };\n }\n /**\n * Removes a logged-in session.\n * @param jwt A valid, logged-in JWT.\n * @param scope The logout sope.\n */ async signOut(jwt, scope = \"global\") {\n try {\n await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"POST\", `${this.url}/logout?scope=${scope}`, {\n headers: this.headers,\n jwt,\n noResolveJson: true\n });\n return {\n data: null,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Sends an invite link to an email address.\n * @param email The email address of the user.\n * @param options Additional options to be included when inviting.\n */ async inviteUserByEmail(email, options = {}) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"POST\", `${this.url}/invite`, {\n body: {\n email,\n data: options.data\n },\n headers: this.headers,\n redirectTo: options.redirectTo,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Generates email links and OTPs to be sent via a custom email provider.\n * @param email The user's email.\n * @param options.password User password. For signup only.\n * @param options.data Optional user metadata. For signup only.\n * @param options.redirectTo The redirect url which should be appended to the generated link\n */ async generateLink(params) {\n try {\n const { options } = params, rest = __rest(params, [\n \"options\"\n ]);\n const body = Object.assign(Object.assign({}, rest), options);\n if (\"newEmail\" in rest) {\n // replace newEmail with new_email in request body\n body.new_email = rest === null || rest === void 0 ? void 0 : rest.newEmail;\n delete body[\"newEmail\"];\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"POST\", `${this.url}/admin/generate_link`, {\n body: body,\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._generateLinkResponse,\n redirectTo: options === null || options === void 0 ? void 0 : options.redirectTo\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n properties: null,\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n // User Admin API\n /**\n * Creates a new user.\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */ async createUser(attributes) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"POST\", `${this.url}/admin/users`, {\n body: attributes,\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Get a list of users.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n * @param params An object which supports `page` and `perPage` as numbers, to alter the paginated results.\n */ async listUsers(params) {\n var _a, _b, _c, _d, _e, _f, _g;\n try {\n const pagination = {\n nextPage: null,\n lastPage: 0,\n total: 0\n };\n const response = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"GET\", `${this.url}/admin/users`, {\n headers: this.headers,\n noResolveJson: true,\n query: {\n page: (_b = (_a = params === null || params === void 0 ? void 0 : params.page) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"\",\n per_page: (_d = (_c = params === null || params === void 0 ? void 0 : params.perPage) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : \"\"\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._noResolveJsonResponse\n });\n if (response.error) throw response.error;\n const users = await response.json();\n const total = (_e = response.headers.get(\"x-total-count\")) !== null && _e !== void 0 ? _e : 0;\n const links = (_g = (_f = response.headers.get(\"link\")) === null || _f === void 0 ? void 0 : _f.split(\",\")) !== null && _g !== void 0 ? _g : [];\n if (links.length > 0) {\n links.forEach((link)=>{\n const page = parseInt(link.split(\";\")[0].split(\"=\")[1].substring(0, 1));\n const rel = JSON.parse(link.split(\";\")[1].split(\"=\")[1]);\n pagination[`${rel}Page`] = page;\n });\n pagination.total = parseInt(total);\n }\n return {\n data: Object.assign(Object.assign({}, users), pagination),\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n users: []\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Get user by id.\n *\n * @param uid The user's unique identifier\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */ async getUserById(uid) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"GET\", `${this.url}/admin/users/${uid}`, {\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Updates the user data.\n *\n * @param attributes The data you want to update.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */ async updateUserById(uid, attributes) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"PUT\", `${this.url}/admin/users/${uid}`, {\n body: attributes,\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Delete a user. Requires a `service_role` key.\n *\n * @param id The user id you want to remove.\n * @param shouldSoftDelete If true, then the user will be soft-deleted (setting `deleted_at` to the current timestamp and disabling their account while preserving their data) from the auth schema.\n * Defaults to false for backward compatibility.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */ async deleteUser(id, shouldSoftDelete = false) {\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"DELETE\", `${this.url}/admin/users/${id}`, {\n headers: this.headers,\n body: {\n should_soft_delete: shouldSoftDelete\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n async _listFactors(params) {\n try {\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"GET\", `${this.url}/admin/users/${params.userId}/factors`, {\n headers: this.headers,\n xform: (factors)=>{\n return {\n data: {\n factors\n },\n error: null\n };\n }\n });\n return {\n data,\n error\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n async _deleteFactor(params) {\n try {\n const data = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, \"DELETE\", `${this.url}/admin/users/${params.userId}/factors/${params.id}`, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n} //# sourceMappingURL=GoTrueAdminApi.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9Hb1RydWVBZG1pbkFwaS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBSUEsU0FBUyxTQUFLLElBQUksU0FBSSxDQUFDQSxNQUFNLElBQUssU0FBVUMsQ0FBQyxFQUFFQyxDQUFDO0lBQ2hELElBQUlDLElBQUksQ0FBQztJQUNULElBQUssSUFBSUMsS0FBS0gsRUFBRyxJQUFJSSxPQUFPQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxHQUFHRyxNQUFNRixFQUFFTyxPQUFPLENBQUNMLEtBQUssR0FDOUVELENBQUMsQ0FBQ0MsRUFBRSxHQUFHSCxDQUFDLENBQUNHLEVBQUU7SUFDZixJQUFJSCxLQUFLLFFBQVEsT0FBT0ksT0FBT0sscUJBQXFCLEtBQUssWUFDckQsSUFBSyxJQUFJQyxJQUFJLEdBQUdQLElBQUlDLE9BQU9LLHFCQUFxQixDQUFDVCxJQUFJVSxJQUFJUCxFQUFFUSxNQUFNLEVBQUVELElBQUs7UUFDcEUsSUFBSVQsRUFBRU8sT0FBTyxDQUFDTCxDQUFDLENBQUNPLEVBQUUsSUFBSSxLQUFLTixPQUFPQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLEdBQUdHLENBQUMsQ0FBQ08sRUFBRSxHQUN6RVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLEVBQUUsQ0FBQyxHQUFHVixDQUFDLENBQUNHLENBQUMsQ0FBQ08sRUFBRSxDQUFDO0lBQ3pCO0lBQ0osT0FBT1I7QUFDWDtBQUNzRztBQUN6RDtBQUNGO0FBQzVCLE1BQU1pQjtJQUNqQkMsWUFBWSxFQUFFQyxNQUFNLEVBQUUsRUFBRUMsVUFBVSxDQUFDLENBQUMsRUFBRUMsS0FBSyxFQUFHLENBQUU7UUFDNUMsSUFBSSxDQUFDRixHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxLQUFLLEdBQUdOLDBEQUFZQSxDQUFDTTtRQUMxQixJQUFJLENBQUNDLEdBQUcsR0FBRztZQUNQQyxhQUFhLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxJQUFJLENBQUMsSUFBSTtZQUN4Q0MsY0FBYyxJQUFJLENBQUNDLGFBQWEsQ0FBQ0YsSUFBSSxDQUFDLElBQUk7UUFDOUM7SUFDSjtJQUNBOzs7O0tBSUMsR0FDRCxNQUFNRyxRQUFRQyxHQUFHLEVBQUVDLFFBQVEsUUFBUSxFQUFFO1FBQ2pDLElBQUk7WUFDQSxNQUFNakIsb0RBQVFBLENBQUMsSUFBSSxDQUFDUSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDRixHQUFHLENBQUMsY0FBYyxFQUFFVyxNQUFNLENBQUMsRUFBRTtnQkFDcEVWLFNBQVMsSUFBSSxDQUFDQSxPQUFPO2dCQUNyQlM7Z0JBQ0FFLGVBQWU7WUFDbkI7WUFDQSxPQUFPO2dCQUFFQyxNQUFNO2dCQUFNQyxPQUFPO1lBQUs7UUFDckMsRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSWpCLHdEQUFXQSxDQUFDaUIsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUQsTUFBTTtvQkFBTUM7Z0JBQU07WUFDL0I7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7OztLQUlDLEdBQ0QsTUFBTUMsa0JBQWtCQyxLQUFLLEVBQUVDLFVBQVUsQ0FBQyxDQUFDLEVBQUU7UUFDekMsSUFBSTtZQUNBLE9BQU8sTUFBTXZCLG9EQUFRQSxDQUFDLElBQUksQ0FBQ1EsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQ0YsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM1RGtCLE1BQU07b0JBQUVGO29CQUFPSCxNQUFNSSxRQUFRSixJQUFJO2dCQUFDO2dCQUNsQ1osU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQ3JCa0IsWUFBWUYsUUFBUUUsVUFBVTtnQkFDOUJDLE9BQU96QixxREFBYUE7WUFDeEI7UUFDSixFQUNBLE9BQU9tQixPQUFPO1lBQ1YsSUFBSWpCLHdEQUFXQSxDQUFDaUIsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUQsTUFBTTt3QkFBRVEsTUFBTTtvQkFBSztvQkFBR1A7Z0JBQU07WUFDekM7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7Ozs7O0tBTUMsR0FDRCxNQUFNUSxhQUFhQyxNQUFNLEVBQUU7UUFDdkIsSUFBSTtZQUNBLE1BQU0sRUFBRU4sT0FBTyxFQUFFLEdBQUdNLFFBQVFDLE9BQU85QyxPQUFPNkMsUUFBUTtnQkFBQzthQUFVO1lBQzdELE1BQU1MLE9BQU9uQyxPQUFPMEMsTUFBTSxDQUFDMUMsT0FBTzBDLE1BQU0sQ0FBQyxDQUFDLEdBQUdELE9BQU9QO1lBQ3BELElBQUksY0FBY08sTUFBTTtnQkFDcEIsa0RBQWtEO2dCQUNsRE4sS0FBS1EsU0FBUyxHQUFHRixTQUFTLFFBQVFBLFNBQVMsS0FBSyxJQUFJLEtBQUssSUFBSUEsS0FBS0csUUFBUTtnQkFDMUUsT0FBT1QsSUFBSSxDQUFDLFdBQVc7WUFDM0I7WUFDQSxPQUFPLE1BQU14QixvREFBUUEsQ0FBQyxJQUFJLENBQUNRLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUNGLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO2dCQUN6RWtCLE1BQU1BO2dCQUNOakIsU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQ3JCbUIsT0FBTzVCLDZEQUFxQkE7Z0JBQzVCMkIsWUFBWUYsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFFLFVBQVU7WUFDcEY7UUFDSixFQUNBLE9BQU9MLE9BQU87WUFDVixJQUFJakIsd0RBQVdBLENBQUNpQixRQUFRO2dCQUNwQixPQUFPO29CQUNIRCxNQUFNO3dCQUNGZSxZQUFZO3dCQUNaUCxNQUFNO29CQUNWO29CQUNBUDtnQkFDSjtZQUNKO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0EsaUJBQWlCO0lBQ2pCOzs7S0FHQyxHQUNELE1BQU1lLFdBQVdDLFVBQVUsRUFBRTtRQUN6QixJQUFJO1lBQ0EsT0FBTyxNQUFNcEMsb0RBQVFBLENBQUMsSUFBSSxDQUFDUSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDRixHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQ2pFa0IsTUFBTVk7Z0JBQ043QixTQUFTLElBQUksQ0FBQ0EsT0FBTztnQkFDckJtQixPQUFPekIscURBQWFBO1lBQ3hCO1FBQ0osRUFDQSxPQUFPbUIsT0FBTztZQUNWLElBQUlqQix3REFBV0EsQ0FBQ2lCLFFBQVE7Z0JBQ3BCLE9BQU87b0JBQUVELE1BQU07d0JBQUVRLE1BQU07b0JBQUs7b0JBQUdQO2dCQUFNO1lBQ3pDO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0E7Ozs7O0tBS0MsR0FDRCxNQUFNaUIsVUFBVVIsTUFBTSxFQUFFO1FBQ3BCLElBQUlTLElBQUlDLElBQUlDLElBQUlDLElBQUlDLElBQUlDLElBQUlDO1FBQzVCLElBQUk7WUFDQSxNQUFNQyxhQUFhO2dCQUFFQyxVQUFVO2dCQUFNQyxVQUFVO2dCQUFHQyxPQUFPO1lBQUU7WUFDM0QsTUFBTUMsV0FBVyxNQUFNakQsb0RBQVFBLENBQUMsSUFBSSxDQUFDUSxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDRixHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzFFQyxTQUFTLElBQUksQ0FBQ0EsT0FBTztnQkFDckJXLGVBQWU7Z0JBQ2ZnQyxPQUFPO29CQUNIQyxNQUFNLENBQUNaLEtBQUssQ0FBQ0QsS0FBS1QsV0FBVyxRQUFRQSxXQUFXLEtBQUssSUFBSSxLQUFLLElBQUlBLE9BQU9zQixJQUFJLE1BQU0sUUFBUWIsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHYyxRQUFRLEVBQUMsTUFBTyxRQUFRYixPQUFPLEtBQUssSUFBSUEsS0FBSztvQkFDcEtjLFVBQVUsQ0FBQ1osS0FBSyxDQUFDRCxLQUFLWCxXQUFXLFFBQVFBLFdBQVcsS0FBSyxJQUFJLEtBQUssSUFBSUEsT0FBT3lCLE9BQU8sTUFBTSxRQUFRZCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdZLFFBQVEsRUFBQyxNQUFPLFFBQVFYLE9BQU8sS0FBSyxJQUFJQSxLQUFLO2dCQUMvSztnQkFDQWYsT0FBTzNCLDhEQUFzQkE7WUFDakM7WUFDQSxJQUFJa0QsU0FBUzdCLEtBQUssRUFDZCxNQUFNNkIsU0FBUzdCLEtBQUs7WUFDeEIsTUFBTW1DLFFBQVEsTUFBTU4sU0FBU08sSUFBSTtZQUNqQyxNQUFNUixRQUFRLENBQUNOLEtBQUtPLFNBQVMxQyxPQUFPLENBQUNrRCxHQUFHLENBQUMsZ0JBQWUsTUFBTyxRQUFRZixPQUFPLEtBQUssSUFBSUEsS0FBSztZQUM1RixNQUFNZ0IsUUFBUSxDQUFDZCxLQUFLLENBQUNELEtBQUtNLFNBQVMxQyxPQUFPLENBQUNrRCxHQUFHLENBQUMsT0FBTSxNQUFPLFFBQVFkLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR2dCLEtBQUssQ0FBQyxJQUFHLE1BQU8sUUFBUWYsT0FBTyxLQUFLLElBQUlBLEtBQUssRUFBRTtZQUMvSSxJQUFJYyxNQUFNOUQsTUFBTSxHQUFHLEdBQUc7Z0JBQ2xCOEQsTUFBTUUsT0FBTyxDQUFDLENBQUNDO29CQUNYLE1BQU1WLE9BQU9XLFNBQVNELEtBQUtGLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDQSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQ0ksU0FBUyxDQUFDLEdBQUc7b0JBQ3BFLE1BQU1DLE1BQU1DLEtBQUtDLEtBQUssQ0FBQ0wsS0FBS0YsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUNBLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdkRkLFVBQVUsQ0FBQyxDQUFDLEVBQUVtQixJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUdiO2dCQUMvQjtnQkFDQU4sV0FBV0csS0FBSyxHQUFHYyxTQUFTZDtZQUNoQztZQUNBLE9BQU87Z0JBQUU3QixNQUFNOUIsT0FBTzBDLE1BQU0sQ0FBQzFDLE9BQU8wQyxNQUFNLENBQUMsQ0FBQyxHQUFHd0IsUUFBUVY7Z0JBQWF6QixPQUFPO1lBQUs7UUFDcEYsRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSWpCLHdEQUFXQSxDQUFDaUIsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUQsTUFBTTt3QkFBRW9DLE9BQU8sRUFBRTtvQkFBQztvQkFBR25DO2dCQUFNO1lBQ3hDO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0E7Ozs7OztLQU1DLEdBQ0QsTUFBTStDLFlBQVlDLEdBQUcsRUFBRTtRQUNuQixJQUFJO1lBQ0EsT0FBTyxNQUFNcEUsb0RBQVFBLENBQUMsSUFBSSxDQUFDUSxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDRixHQUFHLENBQUMsYUFBYSxFQUFFOEQsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZFN0QsU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQ3JCbUIsT0FBT3pCLHFEQUFhQTtZQUN4QjtRQUNKLEVBQ0EsT0FBT21CLE9BQU87WUFDVixJQUFJakIsd0RBQVdBLENBQUNpQixRQUFRO2dCQUNwQixPQUFPO29CQUFFRCxNQUFNO3dCQUFFUSxNQUFNO29CQUFLO29CQUFHUDtnQkFBTTtZQUN6QztZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOzs7Ozs7S0FNQyxHQUNELE1BQU1pRCxlQUFlRCxHQUFHLEVBQUVoQyxVQUFVLEVBQUU7UUFDbEMsSUFBSTtZQUNBLE9BQU8sTUFBTXBDLG9EQUFRQSxDQUFDLElBQUksQ0FBQ1EsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQ0YsR0FBRyxDQUFDLGFBQWEsRUFBRThELElBQUksQ0FBQyxFQUFFO2dCQUN2RTVDLE1BQU1ZO2dCQUNON0IsU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQ3JCbUIsT0FBT3pCLHFEQUFhQTtZQUN4QjtRQUNKLEVBQ0EsT0FBT21CLE9BQU87WUFDVixJQUFJakIsd0RBQVdBLENBQUNpQixRQUFRO2dCQUNwQixPQUFPO29CQUFFRCxNQUFNO3dCQUFFUSxNQUFNO29CQUFLO29CQUFHUDtnQkFBTTtZQUN6QztZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOzs7Ozs7OztLQVFDLEdBQ0QsTUFBTWtELFdBQVdDLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUMzQyxJQUFJO1lBQ0EsT0FBTyxNQUFNeEUsb0RBQVFBLENBQUMsSUFBSSxDQUFDUSxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDRixHQUFHLENBQUMsYUFBYSxFQUFFaUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pFaEUsU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQ3JCaUIsTUFBTTtvQkFDRmlELG9CQUFvQkQ7Z0JBQ3hCO2dCQUNBOUMsT0FBT3pCLHFEQUFhQTtZQUN4QjtRQUNKLEVBQ0EsT0FBT21CLE9BQU87WUFDVixJQUFJakIsd0RBQVdBLENBQUNpQixRQUFRO2dCQUNwQixPQUFPO29CQUFFRCxNQUFNO3dCQUFFUSxNQUFNO29CQUFLO29CQUFHUDtnQkFBTTtZQUN6QztZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBLE1BQU1ULGFBQWFrQixNQUFNLEVBQUU7UUFDdkIsSUFBSTtZQUNBLE1BQU0sRUFBRVYsSUFBSSxFQUFFQyxLQUFLLEVBQUUsR0FBRyxNQUFNcEIsb0RBQVFBLENBQUMsSUFBSSxDQUFDUSxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDRixHQUFHLENBQUMsYUFBYSxFQUFFdUIsT0FBTzZDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDMUduRSxTQUFTLElBQUksQ0FBQ0EsT0FBTztnQkFDckJtQixPQUFPLENBQUNpRDtvQkFDSixPQUFPO3dCQUFFeEQsTUFBTTs0QkFBRXdEO3dCQUFRO3dCQUFHdkQsT0FBTztvQkFBSztnQkFDNUM7WUFDSjtZQUNBLE9BQU87Z0JBQUVEO2dCQUFNQztZQUFNO1FBQ3pCLEVBQ0EsT0FBT0EsT0FBTztZQUNWLElBQUlqQix3REFBV0EsQ0FBQ2lCLFFBQVE7Z0JBQ3BCLE9BQU87b0JBQUVELE1BQU07b0JBQU1DO2dCQUFNO1lBQy9CO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0EsTUFBTU4sY0FBY2UsTUFBTSxFQUFFO1FBQ3hCLElBQUk7WUFDQSxNQUFNVixPQUFPLE1BQU1uQixvREFBUUEsQ0FBQyxJQUFJLENBQUNRLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUNGLEdBQUcsQ0FBQyxhQUFhLEVBQUV1QixPQUFPNkMsTUFBTSxDQUFDLFNBQVMsRUFBRTdDLE9BQU8wQyxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUMvR2hFLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3pCO1lBQ0EsT0FBTztnQkFBRVk7Z0JBQU1DLE9BQU87WUFBSztRQUMvQixFQUNBLE9BQU9BLE9BQU87WUFDVixJQUFJakIsd0RBQVdBLENBQUNpQixRQUFRO2dCQUNwQixPQUFPO29CQUFFRCxNQUFNO29CQUFNQztnQkFBTTtZQUMvQjtZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtBQUNKLEVBQ0EsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvR29UcnVlQWRtaW5BcGkuanM/ZDI5NiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBfZ2VuZXJhdGVMaW5rUmVzcG9uc2UsIF9ub1Jlc29sdmVKc29uUmVzcG9uc2UsIF9yZXF1ZXN0LCBfdXNlclJlc3BvbnNlLCB9IGZyb20gJy4vbGliL2ZldGNoJztcbmltcG9ydCB7IHJlc29sdmVGZXRjaCB9IGZyb20gJy4vbGliL2hlbHBlcnMnO1xuaW1wb3J0IHsgaXNBdXRoRXJyb3IgfSBmcm9tICcuL2xpYi9lcnJvcnMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR29UcnVlQWRtaW5BcGkge1xuICAgIGNvbnN0cnVjdG9yKHsgdXJsID0gJycsIGhlYWRlcnMgPSB7fSwgZmV0Y2gsIH0pIHtcbiAgICAgICAgdGhpcy51cmwgPSB1cmw7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IGhlYWRlcnM7XG4gICAgICAgIHRoaXMuZmV0Y2ggPSByZXNvbHZlRmV0Y2goZmV0Y2gpO1xuICAgICAgICB0aGlzLm1mYSA9IHtcbiAgICAgICAgICAgIGxpc3RGYWN0b3JzOiB0aGlzLl9saXN0RmFjdG9ycy5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZGVsZXRlRmFjdG9yOiB0aGlzLl9kZWxldGVGYWN0b3IuYmluZCh0aGlzKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIGxvZ2dlZC1pbiBzZXNzaW9uLlxuICAgICAqIEBwYXJhbSBqd3QgQSB2YWxpZCwgbG9nZ2VkLWluIEpXVC5cbiAgICAgKiBAcGFyYW0gc2NvcGUgVGhlIGxvZ291dCBzb3BlLlxuICAgICAqL1xuICAgIGFzeW5jIHNpZ25PdXQoand0LCBzY29wZSA9ICdnbG9iYWwnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9sb2dvdXQ/c2NvcGU9JHtzY29wZX1gLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIGp3dCxcbiAgICAgICAgICAgICAgICBub1Jlc29sdmVKc29uOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhbiBpbnZpdGUgbGluayB0byBhbiBlbWFpbCBhZGRyZXNzLlxuICAgICAqIEBwYXJhbSBlbWFpbCBUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgdXNlci5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gYmUgaW5jbHVkZWQgd2hlbiBpbnZpdGluZy5cbiAgICAgKi9cbiAgICBhc3luYyBpbnZpdGVVc2VyQnlFbWFpbChlbWFpbCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vaW52aXRlYCwge1xuICAgICAgICAgICAgICAgIGJvZHk6IHsgZW1haWwsIGRhdGE6IG9wdGlvbnMuZGF0YSB9LFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zLnJlZGlyZWN0VG8sXG4gICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBlbWFpbCBsaW5rcyBhbmQgT1RQcyB0byBiZSBzZW50IHZpYSBhIGN1c3RvbSBlbWFpbCBwcm92aWRlci5cbiAgICAgKiBAcGFyYW0gZW1haWwgVGhlIHVzZXIncyBlbWFpbC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5wYXNzd29yZCBVc2VyIHBhc3N3b3JkLiBGb3Igc2lnbnVwIG9ubHkuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZGF0YSBPcHRpb25hbCB1c2VyIG1ldGFkYXRhLiBGb3Igc2lnbnVwIG9ubHkuXG4gICAgICogQHBhcmFtIG9wdGlvbnMucmVkaXJlY3RUbyBUaGUgcmVkaXJlY3QgdXJsIHdoaWNoIHNob3VsZCBiZSBhcHBlbmRlZCB0byB0aGUgZ2VuZXJhdGVkIGxpbmtcbiAgICAgKi9cbiAgICBhc3luYyBnZW5lcmF0ZUxpbmsocGFyYW1zKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7IG9wdGlvbnMgfSA9IHBhcmFtcywgcmVzdCA9IF9fcmVzdChwYXJhbXMsIFtcIm9wdGlvbnNcIl0pO1xuICAgICAgICAgICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcmVzdCksIG9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKCduZXdFbWFpbCcgaW4gcmVzdCkge1xuICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgbmV3RW1haWwgd2l0aCBuZXdfZW1haWwgaW4gcmVxdWVzdCBib2R5XG4gICAgICAgICAgICAgICAgYm9keS5uZXdfZW1haWwgPSByZXN0ID09PSBudWxsIHx8IHJlc3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3QubmV3RW1haWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGJvZHlbJ25ld0VtYWlsJ107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vYWRtaW4vZ2VuZXJhdGVfbGlua2AsIHtcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICB4Zm9ybTogX2dlbmVyYXRlTGlua1Jlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yZWRpcmVjdFRvLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBVc2VyIEFkbWluIEFQSVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgdXNlci5cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiBhIHNlcnZlci4gTmV2ZXIgZXhwb3NlIHlvdXIgYHNlcnZpY2Vfcm9sZWAga2V5IGluIHRoZSBicm93c2VyLlxuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZVVzZXIoYXR0cmlidXRlcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzYCwge1xuICAgICAgICAgICAgICAgIGJvZHk6IGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgYSBsaXN0IG9mIHVzZXJzLlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gYSBzZXJ2ZXIuIE5ldmVyIGV4cG9zZSB5b3VyIGBzZXJ2aWNlX3JvbGVgIGtleSBpbiB0aGUgYnJvd3Nlci5cbiAgICAgKiBAcGFyYW0gcGFyYW1zIEFuIG9iamVjdCB3aGljaCBzdXBwb3J0cyBgcGFnZWAgYW5kIGBwZXJQYWdlYCBhcyBudW1iZXJzLCB0byBhbHRlciB0aGUgcGFnaW5hdGVkIHJlc3VsdHMuXG4gICAgICovXG4gICAgYXN5bmMgbGlzdFVzZXJzKHBhcmFtcykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2c7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYWdpbmF0aW9uID0geyBuZXh0UGFnZTogbnVsbCwgbGFzdFBhZ2U6IDAsIHRvdGFsOiAwIH07XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdHRVQnLCBgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnNgLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIG5vUmVzb2x2ZUpzb246IHRydWUsXG4gICAgICAgICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgcGFnZTogKF9iID0gKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBhZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgcGVyX3BhZ2U6IChfZCA9IChfYyA9IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5wZXJQYWdlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9TdHJpbmcoKSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogJycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB4Zm9ybTogX25vUmVzb2x2ZUpzb25SZXNwb25zZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yKVxuICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlLmVycm9yO1xuICAgICAgICAgICAgY29uc3QgdXNlcnMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IChfZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LXRvdGFsLWNvdW50JykpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IDA7XG4gICAgICAgICAgICBjb25zdCBsaW5rcyA9IChfZyA9IChfZiA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdsaW5rJykpID09PSBudWxsIHx8IF9mID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZi5zcGxpdCgnLCcpKSAhPT0gbnVsbCAmJiBfZyAhPT0gdm9pZCAwID8gX2cgOiBbXTtcbiAgICAgICAgICAgIGlmIChsaW5rcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQobGluay5zcGxpdCgnOycpWzBdLnNwbGl0KCc9JylbMV0uc3Vic3RyaW5nKDAsIDEpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVsID0gSlNPTi5wYXJzZShsaW5rLnNwbGl0KCc7JylbMV0uc3BsaXQoJz0nKVsxXSk7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb25bYCR7cmVsfVBhZ2VgXSA9IHBhZ2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbi50b3RhbCA9IHBhcnNlSW50KHRvdGFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXNlcnMpLCBwYWdpbmF0aW9uKSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXJzOiBbXSB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IHVzZXIgYnkgaWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdWlkIFRoZSB1c2VyJ3MgdW5pcXVlIGlkZW50aWZpZXJcbiAgICAgKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIGEgc2VydmVyLiBOZXZlciBleHBvc2UgeW91ciBgc2VydmljZV9yb2xlYCBrZXkgaW4gdGhlIGJyb3dzZXIuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0VXNlckJ5SWQodWlkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0dFVCcsIGAke3RoaXMudXJsfS9hZG1pbi91c2Vycy8ke3VpZH1gLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSB1c2VyIGRhdGEuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXR0cmlidXRlcyBUaGUgZGF0YSB5b3Ugd2FudCB0byB1cGRhdGUuXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiBhIHNlcnZlci4gTmV2ZXIgZXhwb3NlIHlvdXIgYHNlcnZpY2Vfcm9sZWAga2V5IGluIHRoZSBicm93c2VyLlxuICAgICAqL1xuICAgIGFzeW5jIHVwZGF0ZVVzZXJCeUlkKHVpZCwgYXR0cmlidXRlcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQVVQnLCBgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnMvJHt1aWR9YCwge1xuICAgICAgICAgICAgICAgIGJvZHk6IGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSB1c2VyLiBSZXF1aXJlcyBhIGBzZXJ2aWNlX3JvbGVgIGtleS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBUaGUgdXNlciBpZCB5b3Ugd2FudCB0byByZW1vdmUuXG4gICAgICogQHBhcmFtIHNob3VsZFNvZnREZWxldGUgSWYgdHJ1ZSwgdGhlbiB0aGUgdXNlciB3aWxsIGJlIHNvZnQtZGVsZXRlZCAoc2V0dGluZyBgZGVsZXRlZF9hdGAgdG8gdGhlIGN1cnJlbnQgdGltZXN0YW1wIGFuZCBkaXNhYmxpbmcgdGhlaXIgYWNjb3VudCB3aGlsZSBwcmVzZXJ2aW5nIHRoZWlyIGRhdGEpIGZyb20gdGhlIGF1dGggc2NoZW1hLlxuICAgICAqIERlZmF1bHRzIHRvIGZhbHNlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gYSBzZXJ2ZXIuIE5ldmVyIGV4cG9zZSB5b3VyIGBzZXJ2aWNlX3JvbGVgIGtleSBpbiB0aGUgYnJvd3Nlci5cbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGVVc2VyKGlkLCBzaG91bGRTb2Z0RGVsZXRlID0gZmFsc2UpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnREVMRVRFJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzLyR7aWR9YCwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgIHNob3VsZF9zb2Z0X2RlbGV0ZTogc2hvdWxkU29mdERlbGV0ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBfbGlzdEZhY3RvcnMocGFyYW1zKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnR0VUJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzLyR7cGFyYW1zLnVzZXJJZH0vZmFjdG9yc2AsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgeGZvcm06IChmYWN0b3JzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgZmFjdG9ycyB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIF9kZWxldGVGYWN0b3IocGFyYW1zKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0RFTEVURScsIGAke3RoaXMudXJsfS9hZG1pbi91c2Vycy8ke3BhcmFtcy51c2VySWR9L2ZhY3RvcnMvJHtwYXJhbXMuaWR9YCwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Hb1RydWVBZG1pbkFwaS5qcy5tYXAiXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJfZ2VuZXJhdGVMaW5rUmVzcG9uc2UiLCJfbm9SZXNvbHZlSnNvblJlc3BvbnNlIiwiX3JlcXVlc3QiLCJfdXNlclJlc3BvbnNlIiwicmVzb2x2ZUZldGNoIiwiaXNBdXRoRXJyb3IiLCJHb1RydWVBZG1pbkFwaSIsImNvbnN0cnVjdG9yIiwidXJsIiwiaGVhZGVycyIsImZldGNoIiwibWZhIiwibGlzdEZhY3RvcnMiLCJfbGlzdEZhY3RvcnMiLCJiaW5kIiwiZGVsZXRlRmFjdG9yIiwiX2RlbGV0ZUZhY3RvciIsInNpZ25PdXQiLCJqd3QiLCJzY29wZSIsIm5vUmVzb2x2ZUpzb24iLCJkYXRhIiwiZXJyb3IiLCJpbnZpdGVVc2VyQnlFbWFpbCIsImVtYWlsIiwib3B0aW9ucyIsImJvZHkiLCJyZWRpcmVjdFRvIiwieGZvcm0iLCJ1c2VyIiwiZ2VuZXJhdGVMaW5rIiwicGFyYW1zIiwicmVzdCIsImFzc2lnbiIsIm5ld19lbWFpbCIsIm5ld0VtYWlsIiwicHJvcGVydGllcyIsImNyZWF0ZVVzZXIiLCJhdHRyaWJ1dGVzIiwibGlzdFVzZXJzIiwiX2EiLCJfYiIsIl9jIiwiX2QiLCJfZSIsIl9mIiwiX2ciLCJwYWdpbmF0aW9uIiwibmV4dFBhZ2UiLCJsYXN0UGFnZSIsInRvdGFsIiwicmVzcG9uc2UiLCJxdWVyeSIsInBhZ2UiLCJ0b1N0cmluZyIsInBlcl9wYWdlIiwicGVyUGFnZSIsInVzZXJzIiwianNvbiIsImdldCIsImxpbmtzIiwic3BsaXQiLCJmb3JFYWNoIiwibGluayIsInBhcnNlSW50Iiwic3Vic3RyaW5nIiwicmVsIiwiSlNPTiIsInBhcnNlIiwiZ2V0VXNlckJ5SWQiLCJ1aWQiLCJ1cGRhdGVVc2VyQnlJZCIsImRlbGV0ZVVzZXIiLCJpZCIsInNob3VsZFNvZnREZWxldGUiLCJzaG91bGRfc29mdF9kZWxldGUiLCJ1c2VySWQiLCJmYWN0b3JzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js ***! + \**********************************************************************/ +/***/ ((__unused_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 */ GoTrueClient)\n/* harmony export */ });\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/constants */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/errors */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/fetch */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/helpers */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_local_storage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/local-storage */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/local-storage.js\");\n/* harmony import */ var _lib_polyfills__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/polyfills */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/polyfills.js\");\n/* harmony import */ var _lib_version__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/version */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/version.js\");\n/* harmony import */ var _lib_locks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/locks */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js\");\n\n\n\n\n\n\n\n\n\n(0,_lib_polyfills__WEBPACK_IMPORTED_MODULE_6__.polyfillGlobalThis)(); // Make \"globalThis\" available\nconst DEFAULT_OPTIONS = {\n url: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.GOTRUE_URL,\n storageKey: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEY,\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n headers: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_HEADERS,\n flowType: \"implicit\",\n debug: false\n};\n/** Current session will be checked for refresh at this interval. */ const AUTO_REFRESH_TICK_DURATION = 30 * 1000;\n/**\n * A token refresh will be attempted this many ticks before the current session expires. */ const AUTO_REFRESH_TICK_THRESHOLD = 3;\nasync function lockNoOp(name, acquireTimeout, fn) {\n return await fn();\n}\nclass GoTrueClient {\n /**\n * Create a new client for use in the browser.\n */ constructor(options){\n var _a, _b;\n this.memoryStorage = null;\n this.stateChangeEmitters = new Map();\n this.autoRefreshTicker = null;\n this.visibilityChangedCallback = null;\n this.refreshingDeferred = null;\n /**\n * Keeps track of the async client initialization.\n * When null or not yet resolved the auth state is `unknown`\n * Once resolved the the auth state is known and it's save to call any further client methods.\n * Keep extra care to never reject or throw uncaught errors\n */ this.initializePromise = null;\n this.detectSessionInUrl = true;\n this.lockAcquired = false;\n this.pendingInLock = [];\n /**\n * Used to broadcast state change events to other tabs listening.\n */ this.broadcastChannel = null;\n this.logger = console.log;\n this.instanceID = GoTrueClient.nextInstanceID;\n GoTrueClient.nextInstanceID += 1;\n if (this.instanceID > 0 && (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)()) {\n console.warn(\"Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.\");\n }\n const settings = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n this.logDebugMessages = !!settings.debug;\n if (typeof settings.debug === \"function\") {\n this.logger = settings.debug;\n }\n this.persistSession = settings.persistSession;\n this.storageKey = settings.storageKey;\n this.autoRefreshToken = settings.autoRefreshToken;\n this.admin = new _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n url: settings.url,\n headers: settings.headers,\n fetch: settings.fetch\n });\n this.url = settings.url;\n this.headers = settings.headers;\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.resolveFetch)(settings.fetch);\n this.lock = settings.lock || lockNoOp;\n this.detectSessionInUrl = settings.detectSessionInUrl;\n this.flowType = settings.flowType;\n if (settings.lock) {\n this.lock = settings.lock;\n } else if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && ((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.locks)) {\n this.lock = _lib_locks__WEBPACK_IMPORTED_MODULE_8__.navigatorLock;\n } else {\n this.lock = lockNoOp;\n }\n this.mfa = {\n verify: this._verify.bind(this),\n enroll: this._enroll.bind(this),\n unenroll: this._unenroll.bind(this),\n challenge: this._challenge.bind(this),\n listFactors: this._listFactors.bind(this),\n challengeAndVerify: this._challengeAndVerify.bind(this),\n getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this)\n };\n if (this.persistSession) {\n if (settings.storage) {\n this.storage = settings.storage;\n } else {\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.supportsLocalStorage)()) {\n this.storage = _lib_local_storage__WEBPACK_IMPORTED_MODULE_5__.localStorageAdapter;\n } else {\n this.memoryStorage = {};\n this.storage = (0,_lib_local_storage__WEBPACK_IMPORTED_MODULE_5__.memoryLocalStorageAdapter)(this.memoryStorage);\n }\n }\n } else {\n this.memoryStorage = {};\n this.storage = (0,_lib_local_storage__WEBPACK_IMPORTED_MODULE_5__.memoryLocalStorageAdapter)(this.memoryStorage);\n }\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && globalThis.BroadcastChannel && this.persistSession && this.storageKey) {\n try {\n this.broadcastChannel = new globalThis.BroadcastChannel(this.storageKey);\n } catch (e) {\n console.error(\"Failed to create a new BroadcastChannel, multi-tab state changes will not be available\", e);\n }\n (_b = this.broadcastChannel) === null || _b === void 0 ? void 0 : _b.addEventListener(\"message\", async (event)=>{\n this._debug(\"received broadcast notification from other tab or client\", event);\n await this._notifyAllSubscribers(event.data.event, event.data.session, false); // broadcast = false so we don't get an endless loop of messages\n });\n }\n this.initialize();\n }\n _debug(...args) {\n if (this.logDebugMessages) {\n this.logger(`GoTrueClient@${this.instanceID} (${_lib_version__WEBPACK_IMPORTED_MODULE_7__.version}) ${new Date().toISOString()}`, ...args);\n }\n return this;\n }\n /**\n * Initializes the client session either from the url or from storage.\n * This method is automatically called when instantiating the client, but should also be called\n * manually when checking for an error from an auth redirect (oauth, magiclink, password recovery, etc).\n */ async initialize() {\n if (this.initializePromise) {\n return await this.initializePromise;\n }\n this.initializePromise = (async ()=>{\n return await this._acquireLock(-1, async ()=>{\n return await this._initialize();\n });\n })();\n return await this.initializePromise;\n }\n /**\n * IMPORTANT:\n * 1. Never throw in this method, as it is called from the constructor\n * 2. Never return a session from this method as it would be cached over\n * the whole lifetime of the client\n */ async _initialize() {\n try {\n const isPKCEFlow = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() ? await this._isPKCEFlow() : false;\n this._debug(\"#_initialize()\", \"begin\", \"is PKCE flow\", isPKCEFlow);\n if (isPKCEFlow || this.detectSessionInUrl && this._isImplicitGrantFlow()) {\n const { data, error } = await this._getSessionFromURL(isPKCEFlow);\n if (error) {\n this._debug(\"#_initialize()\", \"error detecting session from URL\", error);\n // hacky workaround to keep the existing session if there's an error returned from identity linking\n // TODO: once error codes are ready, we should match against it instead of the message\n if ((error === null || error === void 0 ? void 0 : error.message) === \"Identity is already linked\" || (error === null || error === void 0 ? void 0 : error.message) === \"Identity is already linked to another user\") {\n return {\n error\n };\n }\n // failed login attempt via url,\n // remove old session as in verifyOtp, signUp and signInWith*\n await this._removeSession();\n return {\n error\n };\n }\n const { session, redirectType } = data;\n this._debug(\"#_initialize()\", \"detected session in URL\", session, \"redirect type\", redirectType);\n await this._saveSession(session);\n setTimeout(async ()=>{\n if (redirectType === \"recovery\") {\n await this._notifyAllSubscribers(\"PASSWORD_RECOVERY\", session);\n } else {\n await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n }\n }, 0);\n return {\n error: null\n };\n }\n // no login attempt via callback url try to recover session from storage\n await this._recoverAndRefresh();\n return {\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n error\n };\n }\n return {\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthUnknownError(\"Unexpected error during initialization\", error)\n };\n } finally{\n await this._handleVisibilityChange();\n this._debug(\"#_initialize()\", \"end\");\n }\n }\n /**\n * Creates a new user.\n *\n * Be aware that if a user account exists in the system you may get back an\n * error message that attempts to hide this information from the user.\n * This method has support for PKCE via email signups. The PKCE flow cannot be used when autoconfirm is enabled.\n *\n * @returns A logged-in session if the server has \"autoconfirm\" ON\n * @returns A user if the server has \"autoconfirm\" OFF\n */ async signUp(credentials) {\n var _a, _b, _c;\n try {\n await this._removeSession();\n let res;\n if (\"email\" in credentials) {\n const { email, password, options } = credentials;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/signup`, {\n headers: this.headers,\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n body: {\n email,\n password,\n data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n },\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n } else if (\"phone\" in credentials) {\n const { phone, password, options } = credentials;\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/signup`, {\n headers: this.headers,\n body: {\n phone,\n password,\n data: (_b = options === null || options === void 0 ? void 0 : options.data) !== null && _b !== void 0 ? _b : {},\n channel: (_c = options === null || options === void 0 ? void 0 : options.channel) !== null && _c !== void 0 ? _c : \"sms\",\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n } else {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError(\"You must provide either an email or phone number and a password\");\n }\n const { data, error } = res;\n if (error || !data) {\n return {\n data: {\n user: null,\n session: null\n },\n error: error\n };\n }\n const session = data.session;\n const user = data.user;\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n }\n return {\n data: {\n user,\n session\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Log in an existing user with an email and password or phone and password.\n *\n * Be aware that you may get back an error message that will not distinguish\n * between the cases where the account does not exist or that the\n * email/phone and password combination is wrong or that the account can only\n * be accessed via social login.\n */ async signInWithPassword(credentials) {\n try {\n await this._removeSession();\n let res;\n if (\"email\" in credentials) {\n const { email, password, options } = credentials;\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=password`, {\n headers: this.headers,\n body: {\n email,\n password,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponsePassword\n });\n } else if (\"phone\" in credentials) {\n const { phone, password, options } = credentials;\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=password`, {\n headers: this.headers,\n body: {\n phone,\n password,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponsePassword\n });\n } else {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError(\"You must provide either an email or phone number and a password\");\n }\n const { data, error } = res;\n if (error) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n } else if (!data || !data.session || !data.user) {\n return {\n data: {\n user: null,\n session: null\n },\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError()\n };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n }\n return {\n data: Object.assign({\n user: data.user,\n session: data.session\n }, data.weak_password ? {\n weakPassword: data.weak_password\n } : null),\n error\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Log in an existing user via a third-party provider.\n * This method supports the PKCE flow.\n */ async signInWithOAuth(credentials) {\n var _a, _b, _c, _d;\n await this._removeSession();\n return await this._handleProviderSignIn(credentials.provider, {\n redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\n scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\n queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\n skipBrowserRedirect: (_d = credentials.options) === null || _d === void 0 ? void 0 : _d.skipBrowserRedirect\n });\n }\n /**\n * Log in an existing user by exchanging an Auth Code issued during the PKCE flow.\n */ async exchangeCodeForSession(authCode) {\n await this.initializePromise;\n return this._acquireLock(-1, async ()=>{\n return this._exchangeCodeForSession(authCode);\n });\n }\n async _exchangeCodeForSession(authCode) {\n const storageItem = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\n const [codeVerifier, redirectType] = (storageItem !== null && storageItem !== void 0 ? storageItem : \"\").split(\"/\");\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=pkce`, {\n headers: this.headers,\n body: {\n auth_code: authCode,\n code_verifier: codeVerifier\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\n if (error) {\n return {\n data: {\n user: null,\n session: null,\n redirectType: null\n },\n error\n };\n } else if (!data || !data.session || !data.user) {\n return {\n data: {\n user: null,\n session: null,\n redirectType: null\n },\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError()\n };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n }\n return {\n data: Object.assign(Object.assign({}, data), {\n redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null\n }),\n error\n };\n }\n /**\n * Allows signing in with an OIDC ID token. The authentication provider used\n * should be enabled and configured.\n */ async signInWithIdToken(credentials) {\n await this._removeSession();\n try {\n const { options, provider, token, access_token, nonce } = credentials;\n const res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=id_token`, {\n headers: this.headers,\n body: {\n provider,\n id_token: token,\n access_token,\n nonce,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n const { data, error } = res;\n if (error) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n } else if (!data || !data.session || !data.user) {\n return {\n data: {\n user: null,\n session: null\n },\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError()\n };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n }\n return {\n data,\n error\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Log in a user using magiclink or a one-time password (OTP).\n *\n * If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent.\n * If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent.\n * If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins.\n *\n * Be aware that you may get back an error message that will not distinguish\n * between the cases where the account does not exist or, that the account\n * can only be accessed via social login.\n *\n * Do note that you will need to configure a Whatsapp sender on Twilio\n * if you are using phone sign in with the 'whatsapp' channel. The whatsapp\n * channel is not supported on other providers\n * at this time.\n * This method supports PKCE when an email is passed.\n */ async signInWithOtp(credentials) {\n var _a, _b, _c, _d, _e;\n try {\n await this._removeSession();\n if (\"email\" in credentials) {\n const { email, options } = credentials;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/otp`, {\n headers: this.headers,\n body: {\n email,\n data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\n create_user: (_b = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _b !== void 0 ? _b : true,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n },\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod\n },\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo\n });\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n if (\"phone\" in credentials) {\n const { phone, options } = credentials;\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/otp`, {\n headers: this.headers,\n body: {\n phone,\n data: (_c = options === null || options === void 0 ? void 0 : options.data) !== null && _c !== void 0 ? _c : {},\n create_user: (_d = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _d !== void 0 ? _d : true,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n },\n channel: (_e = options === null || options === void 0 ? void 0 : options.channel) !== null && _e !== void 0 ? _e : \"sms\"\n }\n });\n return {\n data: {\n user: null,\n session: null,\n messageId: data === null || data === void 0 ? void 0 : data.message_id\n },\n error\n };\n }\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError(\"You must provide either an email or phone number.\");\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Log in a user given a User supplied OTP or TokenHash received through mobile or email.\n */ async verifyOtp(params) {\n var _a, _b;\n try {\n if (params.type !== \"email_change\" && params.type !== \"phone_change\") {\n // we don't want to remove the authenticated session if the user is performing an email_change or phone_change verification\n await this._removeSession();\n }\n let redirectTo = undefined;\n let captchaToken = undefined;\n if (\"options\" in params) {\n redirectTo = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo;\n captchaToken = (_b = params.options) === null || _b === void 0 ? void 0 : _b.captchaToken;\n }\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/verify`, {\n headers: this.headers,\n body: Object.assign(Object.assign({}, params), {\n gotrue_meta_security: {\n captcha_token: captchaToken\n }\n }),\n redirectTo,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n if (error) {\n throw error;\n }\n if (!data) {\n throw new Error(\"An error occurred on token verification.\");\n }\n const session = data.session;\n const user = data.user;\n if (session === null || session === void 0 ? void 0 : session.access_token) {\n await this._saveSession(session);\n await this._notifyAllSubscribers(params.type == \"recovery\" ? \"PASSWORD_RECOVERY\" : \"SIGNED_IN\", session);\n }\n return {\n data: {\n user,\n session\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Attempts a single-sign on using an enterprise Identity Provider. A\n * successful SSO attempt will redirect the current page to the identity\n * provider authorization page. The redirect URL is implementation and SSO\n * protocol specific.\n *\n * You can use it by providing a SSO domain. Typically you can extract this\n * domain by asking users for their email address. If this domain is\n * registered on the Auth instance the redirect will use that organization's\n * currently active SSO Identity Provider for the login.\n *\n * If you have built an organization-specific login page, you can use the\n * organization's SSO Identity Provider UUID directly instead.\n */ async signInWithSSO(params) {\n var _a, _b, _c;\n try {\n await this._removeSession();\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/sso`, {\n body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, \"providerId\" in params ? {\n provider_id: params.providerId\n } : null), \"domain\" in params ? {\n domain: params.domain\n } : null), {\n redirect_to: (_b = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo) !== null && _b !== void 0 ? _b : undefined\n }), ((_c = params === null || params === void 0 ? void 0 : params.options) === null || _c === void 0 ? void 0 : _c.captchaToken) ? {\n gotrue_meta_security: {\n captcha_token: params.options.captchaToken\n }\n } : null), {\n skip_http_redirect: true,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod\n }),\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._ssoResponse\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Sends a reauthentication OTP to the user's email or phone number.\n * Requires the user to be signed-in.\n */ async reauthenticate() {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._reauthenticate();\n });\n }\n async _reauthenticate() {\n try {\n return await this._useSession(async (result)=>{\n const { data: { session }, error: sessionError } = result;\n if (sessionError) throw sessionError;\n if (!session) throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"GET\", `${this.url}/reauthenticate`, {\n headers: this.headers,\n jwt: session.access_token\n });\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Resends an existing signup confirmation email, email change email, SMS OTP or phone change OTP.\n */ async resend(credentials) {\n try {\n if (credentials.type != \"email_change\" && credentials.type != \"phone_change\") {\n await this._removeSession();\n }\n const endpoint = `${this.url}/resend`;\n if (\"email\" in credentials) {\n const { email, type, options } = credentials;\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", endpoint, {\n headers: this.headers,\n body: {\n email,\n type,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n },\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo\n });\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n } else if (\"phone\" in credentials) {\n const { phone, type, options } = credentials;\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", endpoint, {\n headers: this.headers,\n body: {\n phone,\n type,\n gotrue_meta_security: {\n captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken\n }\n }\n });\n return {\n data: {\n user: null,\n session: null,\n messageId: data === null || data === void 0 ? void 0 : data.message_id\n },\n error\n };\n }\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError(\"You must provide either an email or phone number and a type\");\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Returns the session, refreshing it if necessary.\n * The session returned can be null if the session is not detected which can happen in the event a user is not signed-in or has logged out.\n */ async getSession() {\n await this.initializePromise;\n return this._acquireLock(-1, async ()=>{\n return this._useSession(async (result)=>{\n return result;\n });\n });\n }\n /**\n * Acquires a global lock based on the storage key.\n */ async _acquireLock(acquireTimeout, fn) {\n this._debug(\"#_acquireLock\", \"begin\", acquireTimeout);\n try {\n if (this.lockAcquired) {\n const last = this.pendingInLock.length ? this.pendingInLock[this.pendingInLock.length - 1] : Promise.resolve();\n const result = (async ()=>{\n await last;\n return await fn();\n })();\n this.pendingInLock.push((async ()=>{\n try {\n await result;\n } catch (e) {\n // we just care if it finished\n }\n })());\n return result;\n }\n return await this.lock(`lock:${this.storageKey}`, acquireTimeout, async ()=>{\n this._debug(\"#_acquireLock\", \"lock acquired for storage key\", this.storageKey);\n try {\n this.lockAcquired = true;\n const result = fn();\n this.pendingInLock.push((async ()=>{\n try {\n await result;\n } catch (e) {\n // we just care if it finished\n }\n })());\n await result;\n // keep draining the queue until there's nothing to wait on\n while(this.pendingInLock.length){\n const waitOn = [\n ...this.pendingInLock\n ];\n await Promise.all(waitOn);\n this.pendingInLock.splice(0, waitOn.length);\n }\n return await result;\n } finally{\n this._debug(\"#_acquireLock\", \"lock released for storage key\", this.storageKey);\n this.lockAcquired = false;\n }\n });\n } finally{\n this._debug(\"#_acquireLock\", \"end\");\n }\n }\n /**\n * Use instead of {@link #getSession} inside the library. It is\n * semantically usually what you want, as getting a session involves some\n * processing afterwards that requires only one client operating on the\n * session at once across multiple tabs or processes.\n */ async _useSession(fn) {\n this._debug(\"#_useSession\", \"begin\");\n try {\n // the use of __loadSession here is the only correct use of the function!\n const result = await this.__loadSession();\n return await fn(result);\n } finally{\n this._debug(\"#_useSession\", \"end\");\n }\n }\n /**\n * NEVER USE DIRECTLY!\n *\n * Always use {@link #_useSession}.\n */ async __loadSession() {\n this._debug(\"#__loadSession()\", \"begin\");\n if (!this.lockAcquired) {\n this._debug(\"#__loadSession()\", \"used outside of an acquired lock!\", new Error().stack);\n }\n try {\n let currentSession = null;\n const maybeSession = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, this.storageKey);\n this._debug(\"#getSession()\", \"session from storage\", maybeSession);\n if (maybeSession !== null) {\n if (this._isValidSession(maybeSession)) {\n currentSession = maybeSession;\n } else {\n this._debug(\"#getSession()\", \"session from storage is not valid\");\n await this._removeSession();\n }\n }\n if (!currentSession) {\n return {\n data: {\n session: null\n },\n error: null\n };\n }\n const hasExpired = currentSession.expires_at ? currentSession.expires_at <= Date.now() / 1000 : false;\n this._debug(\"#__loadSession()\", `session has${hasExpired ? \"\" : \" not\"} expired`, \"expires_at\", currentSession.expires_at);\n if (!hasExpired) {\n return {\n data: {\n session: currentSession\n },\n error: null\n };\n }\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return {\n data: {\n session: null\n },\n error\n };\n }\n return {\n data: {\n session\n },\n error: null\n };\n } finally{\n this._debug(\"#__loadSession()\", \"end\");\n }\n }\n /**\n * Gets the current user details if there is an existing session.\n * @param jwt Takes in an optional access token jwt. If no jwt is provided, getUser() will attempt to get the jwt from the current session.\n */ async getUser(jwt) {\n if (jwt) {\n return await this._getUser(jwt);\n }\n await this.initializePromise;\n return this._acquireLock(-1, async ()=>{\n return await this._getUser();\n });\n }\n async _getUser(jwt) {\n try {\n if (jwt) {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"GET\", `${this.url}/user`, {\n headers: this.headers,\n jwt: jwt,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse\n });\n }\n return await this._useSession(async (result)=>{\n var _a, _b;\n const { data, error } = result;\n if (error) {\n throw error;\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"GET\", `${this.url}/user`, {\n headers: this.headers,\n jwt: (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : undefined,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse\n });\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Updates user data for a logged in user.\n */ async updateUser(attributes, options = {}) {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._updateUser(attributes, options);\n });\n }\n async _updateUser(attributes, options = {}) {\n try {\n return await this._useSession(async (result)=>{\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n throw sessionError;\n }\n if (!sessionData.session) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n }\n const session = sessionData.session;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\" && attributes.email != null) {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n const { data, error: userError } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"PUT\", `${this.url}/user`, {\n headers: this.headers,\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n body: Object.assign(Object.assign({}, attributes), {\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod\n }),\n jwt: session.access_token,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse\n });\n if (userError) throw userError;\n session.user = data.user;\n await this._saveSession(session);\n await this._notifyAllSubscribers(\"USER_UPDATED\", session);\n return {\n data: {\n user: session.user\n },\n error: null\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Decodes a JWT (without performing any validation).\n */ _decodeJWT(jwt) {\n return (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.decodeJWTPayload)(jwt);\n }\n /**\n * Sets the session data from the current session. If the current session is expired, setSession will take care of refreshing it to obtain a new session.\n * If the refresh token or access token in the current session is invalid, an error will be thrown.\n * @param currentSession The current session that minimally contains an access token and refresh token.\n */ async setSession(currentSession) {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._setSession(currentSession);\n });\n }\n async _setSession(currentSession) {\n try {\n if (!currentSession.access_token || !currentSession.refresh_token) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n }\n const timeNow = Date.now() / 1000;\n let expiresAt = timeNow;\n let hasExpired = true;\n let session = null;\n const payload = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.decodeJWTPayload)(currentSession.access_token);\n if (payload.exp) {\n expiresAt = payload.exp;\n hasExpired = expiresAt <= timeNow;\n }\n if (hasExpired) {\n const { session: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return {\n data: {\n user: null,\n session: null\n },\n error: error\n };\n }\n if (!refreshedSession) {\n return {\n data: {\n user: null,\n session: null\n },\n error: null\n };\n }\n session = refreshedSession;\n } else {\n const { data, error } = await this._getUser(currentSession.access_token);\n if (error) {\n throw error;\n }\n session = {\n access_token: currentSession.access_token,\n refresh_token: currentSession.refresh_token,\n user: data.user,\n token_type: \"bearer\",\n expires_in: expiresAt - timeNow,\n expires_at: expiresAt\n };\n await this._saveSession(session);\n await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n }\n return {\n data: {\n user: session.user,\n session\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n session: null,\n user: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Returns a new session, regardless of expiry status.\n * Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession().\n * If the current session's refresh token is invalid, an error will be thrown.\n * @param currentSession The current session. If passed in, it must contain a refresh token.\n */ async refreshSession(currentSession) {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._refreshSession(currentSession);\n });\n }\n async _refreshSession(currentSession) {\n try {\n return await this._useSession(async (result)=>{\n var _a;\n if (!currentSession) {\n const { data, error } = result;\n if (error) {\n throw error;\n }\n currentSession = (_a = data.session) !== null && _a !== void 0 ? _a : undefined;\n }\n if (!(currentSession === null || currentSession === void 0 ? void 0 : currentSession.refresh_token)) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n }\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return {\n data: {\n user: null,\n session: null\n },\n error: error\n };\n }\n if (!session) {\n return {\n data: {\n user: null,\n session: null\n },\n error: null\n };\n }\n return {\n data: {\n user: session.user,\n session\n },\n error: null\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n user: null,\n session: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Gets the session data from a URL string\n */ async _getSessionFromURL(isPKCEFlow) {\n try {\n if (!(0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)()) throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(\"No browser detected.\");\n if (this.flowType === \"implicit\" && !this._isImplicitGrantFlow()) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(\"Not a valid implicit grant flow url.\");\n } else if (this.flowType == \"pkce\" && !isPKCEFlow) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthPKCEGrantCodeExchangeError(\"Not a valid PKCE flow url.\");\n }\n const params = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.parseParametersFromURL)(window.location.href);\n if (isPKCEFlow) {\n if (!params.code) throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthPKCEGrantCodeExchangeError(\"No code detected.\");\n const { data, error } = await this._exchangeCodeForSession(params.code);\n if (error) throw error;\n const url = new URL(window.location.href);\n url.searchParams.delete(\"code\");\n window.history.replaceState(window.history.state, \"\", url.toString());\n return {\n data: {\n session: data.session,\n redirectType: null\n },\n error: null\n };\n }\n if (params.error || params.error_description || params.error_code) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(params.error_description || \"Error in URL with unspecified error_description\", {\n error: params.error || \"unspecified_error\",\n code: params.error_code || \"unspecified_code\"\n });\n }\n const { provider_token, provider_refresh_token, access_token, refresh_token, expires_in, expires_at, token_type } = params;\n if (!access_token || !expires_in || !refresh_token || !token_type) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(\"No session defined in URL\");\n }\n const timeNow = Math.round(Date.now() / 1000);\n const expiresIn = parseInt(expires_in);\n let expiresAt = timeNow + expiresIn;\n if (expires_at) {\n expiresAt = parseInt(expires_at);\n }\n const actuallyExpiresIn = expiresAt - timeNow;\n if (actuallyExpiresIn * 1000 <= AUTO_REFRESH_TICK_DURATION) {\n console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`);\n }\n const issuedAt = expiresAt - expiresIn;\n if (timeNow - issuedAt >= 120) {\n console.warn(\"@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale\", issuedAt, expiresAt, timeNow);\n } else if (timeNow - issuedAt < 0) {\n console.warn(\"@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clok for skew\", issuedAt, expiresAt, timeNow);\n }\n const { data, error } = await this._getUser(access_token);\n if (error) throw error;\n const session = {\n provider_token,\n provider_refresh_token,\n access_token,\n expires_in: expiresIn,\n expires_at: expiresAt,\n refresh_token,\n token_type,\n user: data.user\n };\n // Remove tokens from URL\n window.location.hash = \"\";\n this._debug(\"#_getSessionFromURL()\", \"clearing window.location.hash\");\n return {\n data: {\n session,\n redirectType: params.type\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n session: null,\n redirectType: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Checks if the current URL contains parameters given by an implicit oauth grant flow (https://www.rfc-editor.org/rfc/rfc6749.html#section-4.2)\n */ _isImplicitGrantFlow() {\n const params = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.parseParametersFromURL)(window.location.href);\n return !!((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && (params.access_token || params.error_description));\n }\n /**\n * Checks if the current URL and backing storage contain parameters given by a PKCE flow\n */ async _isPKCEFlow() {\n const params = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.parseParametersFromURL)(window.location.href);\n const currentStorageContent = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\n return !!(params.code && currentStorageContent);\n }\n /**\n * Inside a browser context, `signOut()` will remove the logged in user from the browser session and log them out - removing all items from localstorage and then trigger a `\"SIGNED_OUT\"` event.\n *\n * For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`.\n * There is no way to revoke a user's access token jwt until it expires. It is recommended to set a shorter expiry on the jwt for this reason.\n *\n * If using `others` scope, no `SIGNED_OUT` event is fired!\n */ async signOut(options = {\n scope: \"global\"\n }) {\n await this.initializePromise;\n return await this._acquireLock(-1, async ()=>{\n return await this._signOut(options);\n });\n }\n async _signOut({ scope } = {\n scope: \"global\"\n }) {\n return await this._useSession(async (result)=>{\n var _a;\n const { data, error: sessionError } = result;\n if (sessionError) {\n return {\n error: sessionError\n };\n }\n const accessToken = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token;\n if (accessToken) {\n const { error } = await this.admin.signOut(accessToken, scope);\n if (error) {\n // ignore 404s since user might not exist anymore\n // ignore 401s since an invalid or expired JWT should sign out the current session\n if (!((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthApiError)(error) && (error.status === 404 || error.status === 401))) {\n return {\n error\n };\n }\n }\n }\n if (scope !== \"others\") {\n await this._removeSession();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\n await this._notifyAllSubscribers(\"SIGNED_OUT\", null);\n }\n return {\n error: null\n };\n });\n }\n /**\n * Receive a notification every time an auth event happens.\n * @param callback A callback function to be invoked when an auth event happens.\n */ onAuthStateChange(callback) {\n const id = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.uuid)();\n const subscription = {\n id,\n callback,\n unsubscribe: ()=>{\n this._debug(\"#unsubscribe()\", \"state change callback with id removed\", id);\n this.stateChangeEmitters.delete(id);\n }\n };\n this._debug(\"#onAuthStateChange()\", \"registered callback with id\", id);\n this.stateChangeEmitters.set(id, subscription);\n (async ()=>{\n await this.initializePromise;\n await this._acquireLock(-1, async ()=>{\n this._emitInitialSession(id);\n });\n })();\n return {\n data: {\n subscription\n }\n };\n }\n async _emitInitialSession(id) {\n return await this._useSession(async (result)=>{\n var _a, _b;\n try {\n const { data: { session }, error } = result;\n if (error) throw error;\n await ((_a = this.stateChangeEmitters.get(id)) === null || _a === void 0 ? void 0 : _a.callback(\"INITIAL_SESSION\", session));\n this._debug(\"INITIAL_SESSION\", \"callback id\", id, \"session\", session);\n } catch (err) {\n await ((_b = this.stateChangeEmitters.get(id)) === null || _b === void 0 ? void 0 : _b.callback(\"INITIAL_SESSION\", null));\n this._debug(\"INITIAL_SESSION\", \"callback id\", id, \"error\", err);\n console.error(err);\n }\n });\n }\n /**\n * Sends a password reset request to an email address. This method supports the PKCE flow.\n *\n * @param email The email address of the user.\n * @param options.redirectTo The URL to send the user to after they click the password reset link.\n * @param options.captchaToken Verification token received when the user completes the captcha on the site.\n */ async resetPasswordForEmail(email, options = {}) {\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, `${codeVerifier}/PASSWORD_RECOVERY`);\n codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n }\n try {\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/recover`, {\n body: {\n email,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n gotrue_meta_security: {\n captcha_token: options.captchaToken\n }\n },\n headers: this.headers,\n redirectTo: options.redirectTo\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Gets all the identities linked to a user.\n */ async getUserIdentities() {\n var _a;\n try {\n const { data, error } = await this.getUser();\n if (error) throw error;\n return {\n data: {\n identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : []\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Links an oauth identity to an existing user.\n * This method supports the PKCE flow.\n */ async linkIdentity(credentials) {\n var _a;\n try {\n const { data, error } = await this._useSession(async (result)=>{\n var _a, _b, _c, _d, _e;\n const { data, error } = result;\n if (error) throw error;\n const url = await this._getUrlForProvider(`${this.url}/user/identities/authorize`, credentials.provider, {\n redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\n scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\n queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\n skipBrowserRedirect: true\n });\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"GET\", url, {\n headers: this.headers,\n jwt: (_e = (_d = data.session) === null || _d === void 0 ? void 0 : _d.access_token) !== null && _e !== void 0 ? _e : undefined\n });\n });\n if (error) throw error;\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && !((_a = credentials.options) === null || _a === void 0 ? void 0 : _a.skipBrowserRedirect)) {\n window.location.assign(data === null || data === void 0 ? void 0 : data.url);\n }\n return {\n data: {\n provider: credentials.provider,\n url: data === null || data === void 0 ? void 0 : data.url\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n provider: credentials.provider,\n url: null\n },\n error\n };\n }\n throw error;\n }\n }\n /**\n * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.\n */ async unlinkIdentity(identity) {\n try {\n return await this._useSession(async (result)=>{\n var _a, _b;\n const { data, error } = result;\n if (error) {\n throw error;\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"DELETE\", `${this.url}/user/identities/${identity.identity_id}`, {\n headers: this.headers,\n jwt: (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : undefined\n });\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * Generates a new JWT.\n * @param refreshToken A valid refresh token that was returned on login.\n */ async _refreshAccessToken(refreshToken) {\n const debugName = `#_refreshAccessToken(${refreshToken.substring(0, 5)}...)`;\n this._debug(debugName, \"begin\");\n try {\n const startedAt = Date.now();\n // will attempt to refresh the token with exponential backoff\n return await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.retryable)(async (attempt)=>{\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.sleep)(attempt * 200); // 0, 200, 400, 800, ...\n this._debug(debugName, \"refreshing attempt\", attempt);\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/token?grant_type=refresh_token`, {\n body: {\n refresh_token: refreshToken\n },\n headers: this.headers,\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse\n });\n }, (attempt, _, result)=>result && result.error && (0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(result.error) && // retryable only if the request can be sent before the backoff overflows the tick duration\n Date.now() + (attempt + 1) * 200 - startedAt < AUTO_REFRESH_TICK_DURATION);\n } catch (error) {\n this._debug(debugName, \"error\", error);\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: {\n session: null,\n user: null\n },\n error\n };\n }\n throw error;\n } finally{\n this._debug(debugName, \"end\");\n }\n }\n _isValidSession(maybeSession) {\n const isValidSession = typeof maybeSession === \"object\" && maybeSession !== null && \"access_token\" in maybeSession && \"refresh_token\" in maybeSession && \"expires_at\" in maybeSession;\n return isValidSession;\n }\n async _handleProviderSignIn(provider, options) {\n const url = await this._getUrlForProvider(`${this.url}/authorize`, provider, {\n redirectTo: options.redirectTo,\n scopes: options.scopes,\n queryParams: options.queryParams\n });\n this._debug(\"#_handleProviderSignIn()\", \"provider\", provider, \"options\", options, \"url\", url);\n // try to open on the browser\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && !options.skipBrowserRedirect) {\n window.location.assign(url);\n }\n return {\n data: {\n provider,\n url\n },\n error: null\n };\n }\n /**\n * Recovers the session from LocalStorage and refreshes\n * Note: this method is async to accommodate for AsyncStorage e.g. in React native.\n */ async _recoverAndRefresh() {\n var _a;\n const debugName = \"#_recoverAndRefresh()\";\n this._debug(debugName, \"begin\");\n try {\n const currentSession = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, this.storageKey);\n this._debug(debugName, \"session from storage\", currentSession);\n if (!this._isValidSession(currentSession)) {\n this._debug(debugName, \"session is not valid\");\n if (currentSession !== null) {\n await this._removeSession();\n }\n return;\n }\n const timeNow = Math.round(Date.now() / 1000);\n const expiresWithMargin = ((_a = currentSession.expires_at) !== null && _a !== void 0 ? _a : Infinity) < timeNow + _lib_constants__WEBPACK_IMPORTED_MODULE_1__.EXPIRY_MARGIN;\n this._debug(debugName, `session has${expiresWithMargin ? \"\" : \" not\"} expired with margin of ${_lib_constants__WEBPACK_IMPORTED_MODULE_1__.EXPIRY_MARGIN}s`);\n if (expiresWithMargin) {\n if (this.autoRefreshToken && currentSession.refresh_token) {\n const { error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n console.error(error);\n if (!(0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(error)) {\n this._debug(debugName, \"refresh failed with a non-retryable error, removing the session\", error);\n await this._removeSession();\n }\n }\n }\n } else {\n // no need to persist currentSession again, as we just loaded it from\n // local storage; persisting it again may overwrite a value saved by\n // another client with access to the same local storage\n await this._notifyAllSubscribers(\"SIGNED_IN\", currentSession);\n }\n } catch (err) {\n this._debug(debugName, \"error\", err);\n console.error(err);\n return;\n } finally{\n this._debug(debugName, \"end\");\n }\n }\n async _callRefreshToken(refreshToken) {\n var _a, _b;\n if (!refreshToken) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n }\n // refreshing is already in progress\n if (this.refreshingDeferred) {\n return this.refreshingDeferred.promise;\n }\n const debugName = `#_callRefreshToken(${refreshToken.substring(0, 5)}...)`;\n this._debug(debugName, \"begin\");\n try {\n this.refreshingDeferred = new _lib_helpers__WEBPACK_IMPORTED_MODULE_4__.Deferred();\n const { data, error } = await this._refreshAccessToken(refreshToken);\n if (error) throw error;\n if (!data.session) throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\n await this._saveSession(data.session);\n await this._notifyAllSubscribers(\"TOKEN_REFRESHED\", data.session);\n const result = {\n session: data.session,\n error: null\n };\n this.refreshingDeferred.resolve(result);\n return result;\n } catch (error) {\n this._debug(debugName, \"error\", error);\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n const result = {\n session: null,\n error\n };\n if (!(0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(error)) {\n await this._removeSession();\n await this._notifyAllSubscribers(\"SIGNED_OUT\", null);\n }\n (_a = this.refreshingDeferred) === null || _a === void 0 ? void 0 : _a.resolve(result);\n return result;\n }\n (_b = this.refreshingDeferred) === null || _b === void 0 ? void 0 : _b.reject(error);\n throw error;\n } finally{\n this.refreshingDeferred = null;\n this._debug(debugName, \"end\");\n }\n }\n async _notifyAllSubscribers(event, session, broadcast = true) {\n const debugName = `#_notifyAllSubscribers(${event})`;\n this._debug(debugName, \"begin\", session, `broadcast = ${broadcast}`);\n try {\n if (this.broadcastChannel && broadcast) {\n this.broadcastChannel.postMessage({\n event,\n session\n });\n }\n const errors = [];\n const promises = Array.from(this.stateChangeEmitters.values()).map(async (x)=>{\n try {\n await x.callback(event, session);\n } catch (e) {\n errors.push(e);\n }\n });\n await Promise.all(promises);\n if (errors.length > 0) {\n for(let i = 0; i < errors.length; i += 1){\n console.error(errors[i]);\n }\n throw errors[0];\n }\n } finally{\n this._debug(debugName, \"end\");\n }\n }\n /**\n * set currentSession and currentUser\n * process to _startAutoRefreshToken if possible\n */ async _saveSession(session) {\n this._debug(\"#_saveSession()\", session);\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, this.storageKey, session);\n }\n async _removeSession() {\n this._debug(\"#_removeSession()\");\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, this.storageKey);\n }\n /**\n * Removes any registered visibilitychange callback.\n *\n * {@see #startAutoRefresh}\n * {@see #stopAutoRefresh}\n */ _removeVisibilityChangedCallback() {\n this._debug(\"#_removeVisibilityChangedCallback()\");\n const callback = this.visibilityChangedCallback;\n this.visibilityChangedCallback = null;\n try {\n if (callback && (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && (window === null || window === void 0 ? void 0 : window.removeEventListener)) {\n window.removeEventListener(\"visibilitychange\", callback);\n }\n } catch (e) {\n console.error(\"removing visibilitychange callback failed\", e);\n }\n }\n /**\n * This is the private implementation of {@link #startAutoRefresh}. Use this\n * within the library.\n */ async _startAutoRefresh() {\n await this._stopAutoRefresh();\n this._debug(\"#_startAutoRefresh()\");\n const ticker = setInterval(()=>this._autoRefreshTokenTick(), AUTO_REFRESH_TICK_DURATION);\n this.autoRefreshTicker = ticker;\n if (ticker && typeof ticker === \"object\" && typeof ticker.unref === \"function\") {\n // ticker is a NodeJS Timeout object that has an `unref` method\n // https://nodejs.org/api/timers.html#timeoutunref\n // When auto refresh is used in NodeJS (like for testing) the\n // `setInterval` is preventing the process from being marked as\n // finished and tests run endlessly. This can be prevented by calling\n // `unref()` on the returned object.\n ticker.unref();\n // @ts-ignore\n } else if (typeof Deno !== \"undefined\" && typeof Deno.unrefTimer === \"function\") {\n // similar like for NodeJS, but with the Deno API\n // https://deno.land/api@latest?unstable&s=Deno.unrefTimer\n // @ts-ignore\n Deno.unrefTimer(ticker);\n }\n // run the tick immediately, but in the next pass of the event loop so that\n // #_initialize can be allowed to complete without recursively waiting on\n // itself\n setTimeout(async ()=>{\n await this.initializePromise;\n await this._autoRefreshTokenTick();\n }, 0);\n }\n /**\n * This is the private implementation of {@link #stopAutoRefresh}. Use this\n * within the library.\n */ async _stopAutoRefresh() {\n this._debug(\"#_stopAutoRefresh()\");\n const ticker = this.autoRefreshTicker;\n this.autoRefreshTicker = null;\n if (ticker) {\n clearInterval(ticker);\n }\n }\n /**\n * Starts an auto-refresh process in the background. The session is checked\n * every few seconds. Close to the time of expiration a process is started to\n * refresh the session. If refreshing fails it will be retried for as long as\n * necessary.\n *\n * If you set the {@link GoTrueClientOptions#autoRefreshToken} you don't need\n * to call this function, it will be called for you.\n *\n * On browsers the refresh process works only when the tab/window is in the\n * foreground to conserve resources as well as prevent race conditions and\n * flooding auth with requests. If you call this method any managed\n * visibility change callback will be removed and you must manage visibility\n * changes on your own.\n *\n * On non-browser platforms the refresh process works *continuously* in the\n * background, which may not be desirable. You should hook into your\n * platform's foreground indication mechanism and call these methods\n * appropriately to conserve resources.\n *\n * {@see #stopAutoRefresh}\n */ async startAutoRefresh() {\n this._removeVisibilityChangedCallback();\n await this._startAutoRefresh();\n }\n /**\n * Stops an active auto refresh process running in the background (if any).\n *\n * If you call this method any managed visibility change callback will be\n * removed and you must manage visibility changes on your own.\n *\n * See {@link #startAutoRefresh} for more details.\n */ async stopAutoRefresh() {\n this._removeVisibilityChangedCallback();\n await this._stopAutoRefresh();\n }\n /**\n * Runs the auto refresh token tick.\n */ async _autoRefreshTokenTick() {\n this._debug(\"#_autoRefreshTokenTick()\", \"begin\");\n try {\n await this._acquireLock(0, async ()=>{\n try {\n const now = Date.now();\n try {\n return await this._useSession(async (result)=>{\n const { data: { session } } = result;\n if (!session || !session.refresh_token || !session.expires_at) {\n this._debug(\"#_autoRefreshTokenTick()\", \"no session\");\n return;\n }\n // session will expire in this many ticks (or has already expired if <= 0)\n const expiresInTicks = Math.floor((session.expires_at * 1000 - now) / AUTO_REFRESH_TICK_DURATION);\n this._debug(\"#_autoRefreshTokenTick()\", `access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`);\n if (expiresInTicks <= AUTO_REFRESH_TICK_THRESHOLD) {\n await this._callRefreshToken(session.refresh_token);\n }\n });\n } catch (e) {\n console.error(\"Auto refresh tick failed with error. This is likely a transient error.\", e);\n }\n } finally{\n this._debug(\"#_autoRefreshTokenTick()\", \"end\");\n }\n });\n } catch (e) {\n if (e.isAcquireTimeout || e instanceof _lib_locks__WEBPACK_IMPORTED_MODULE_8__.LockAcquireTimeoutError) {\n this._debug(\"auto refresh token tick lock not available\");\n } else {\n throw e;\n }\n }\n }\n /**\n * Registers callbacks on the browser / platform, which in-turn run\n * algorithms when the browser window/tab are in foreground. On non-browser\n * platforms it assumes always foreground.\n */ async _handleVisibilityChange() {\n this._debug(\"#_handleVisibilityChange()\");\n if (!(0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() || !(window === null || window === void 0 ? void 0 : window.addEventListener)) {\n if (this.autoRefreshToken) {\n // in non-browser environments the refresh token ticker runs always\n this.startAutoRefresh();\n }\n return false;\n }\n try {\n this.visibilityChangedCallback = async ()=>await this._onVisibilityChanged(false);\n window === null || window === void 0 ? void 0 : window.addEventListener(\"visibilitychange\", this.visibilityChangedCallback);\n // now immediately call the visbility changed callback to setup with the\n // current visbility state\n await this._onVisibilityChanged(true); // initial call\n } catch (error) {\n console.error(\"_handleVisibilityChange\", error);\n }\n }\n /**\n * Callback registered with `window.addEventListener('visibilitychange')`.\n */ async _onVisibilityChanged(calledFromInitialize) {\n const methodName = `#_onVisibilityChanged(${calledFromInitialize})`;\n this._debug(methodName, \"visibilityState\", document.visibilityState);\n if (document.visibilityState === \"visible\") {\n if (this.autoRefreshToken) {\n // in browser environments the refresh token ticker runs only on focused tabs\n // which prevents race conditions\n this._startAutoRefresh();\n }\n if (!calledFromInitialize) {\n // called when the visibility has changed, i.e. the browser\n // transitioned from hidden -> visible so we need to see if the session\n // should be recovered immediately... but to do that we need to acquire\n // the lock first asynchronously\n await this.initializePromise;\n await this._acquireLock(-1, async ()=>{\n if (document.visibilityState !== \"visible\") {\n this._debug(methodName, \"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting\");\n // visibility has changed while waiting for the lock, abort\n return;\n }\n // recover the session\n await this._recoverAndRefresh();\n });\n }\n } else if (document.visibilityState === \"hidden\") {\n if (this.autoRefreshToken) {\n this._stopAutoRefresh();\n }\n }\n }\n /**\n * Generates the relevant login URL for a third-party provider.\n * @param options.redirectTo A URL or mobile address to send the user to after they are confirmed.\n * @param options.scopes A space-separated list of scopes granted to the OAuth application.\n * @param options.queryParams An object of key-value pairs containing query parameters granted to the OAuth application.\n */ async _getUrlForProvider(url, provider, options) {\n const urlParams = [\n `provider=${encodeURIComponent(provider)}`\n ];\n if (options === null || options === void 0 ? void 0 : options.redirectTo) {\n urlParams.push(`redirect_to=${encodeURIComponent(options.redirectTo)}`);\n }\n if (options === null || options === void 0 ? void 0 : options.scopes) {\n urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`);\n }\n if (this.flowType === \"pkce\") {\n const codeVerifier = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEVerifier)();\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, `${this.storageKey}-code-verifier`, codeVerifier);\n const codeChallenge = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.generatePKCEChallenge)(codeVerifier);\n const codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n this._debug(\"PKCE\", \"code verifier\", `${codeVerifier.substring(0, 5)}...`, \"code challenge\", codeChallenge, \"method\", codeChallengeMethod);\n const flowParams = new URLSearchParams({\n code_challenge: `${encodeURIComponent(codeChallenge)}`,\n code_challenge_method: `${encodeURIComponent(codeChallengeMethod)}`\n });\n urlParams.push(flowParams.toString());\n }\n if (options === null || options === void 0 ? void 0 : options.queryParams) {\n const query = new URLSearchParams(options.queryParams);\n urlParams.push(query.toString());\n }\n if (options === null || options === void 0 ? void 0 : options.skipBrowserRedirect) {\n urlParams.push(`skip_http_redirect=${options.skipBrowserRedirect}`);\n }\n return `${url}?${urlParams.join(\"&\")}`;\n }\n async _unenroll(params) {\n try {\n return await this._useSession(async (result)=>{\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"DELETE\", `${this.url}/factors/${params.factorId}`, {\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n });\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * {@see GoTrueMFAApi#enroll}\n */ async _enroll(params) {\n try {\n return await this._useSession(async (result)=>{\n var _a, _b;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/factors`, {\n body: {\n friendly_name: params.friendlyName,\n factor_type: params.factorType,\n issuer: params.issuer\n },\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n });\n if (error) {\n return {\n data: null,\n error\n };\n }\n if ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code) {\n data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;\n }\n return {\n data,\n error: null\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n }\n /**\n * {@see GoTrueMFAApi#verify}\n */ async _verify(params) {\n return this._acquireLock(-1, async ()=>{\n try {\n return await this._useSession(async (result)=>{\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/factors/${params.factorId}/verify`, {\n body: {\n code: params.code,\n challenge_id: params.challengeId\n },\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n });\n if (error) {\n return {\n data: null,\n error\n };\n }\n await this._saveSession(Object.assign({\n expires_at: Math.round(Date.now() / 1000) + data.expires_in\n }, data));\n await this._notifyAllSubscribers(\"MFA_CHALLENGE_VERIFIED\", data);\n return {\n data,\n error\n };\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * {@see GoTrueMFAApi#challenge}\n */ async _challenge(params) {\n return this._acquireLock(-1, async ()=>{\n try {\n return await this._useSession(async (result)=>{\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, \"POST\", `${this.url}/factors/${params.factorId}/challenge`, {\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n });\n });\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * {@see GoTrueMFAApi#challengeAndVerify}\n */ async _challengeAndVerify(params) {\n // both _challenge and _verify independently acquire the lock, so no need\n // to acquire it here\n const { data: challengeData, error: challengeError } = await this._challenge({\n factorId: params.factorId\n });\n if (challengeError) {\n return {\n data: null,\n error: challengeError\n };\n }\n return await this._verify({\n factorId: params.factorId,\n challengeId: challengeData.id,\n code: params.code\n });\n }\n /**\n * {@see GoTrueMFAApi#listFactors}\n */ async _listFactors() {\n // use #getUser instead of #_getUser as the former acquires a lock\n const { data: { user }, error: userError } = await this.getUser();\n if (userError) {\n return {\n data: null,\n error: userError\n };\n }\n const factors = (user === null || user === void 0 ? void 0 : user.factors) || [];\n const totp = factors.filter((factor)=>factor.factor_type === \"totp\" && factor.status === \"verified\");\n return {\n data: {\n all: factors,\n totp\n },\n error: null\n };\n }\n /**\n * {@see GoTrueMFAApi#getAuthenticatorAssuranceLevel}\n */ async _getAuthenticatorAssuranceLevel() {\n return this._acquireLock(-1, async ()=>{\n return await this._useSession(async (result)=>{\n var _a, _b;\n const { data: { session }, error: sessionError } = result;\n if (sessionError) {\n return {\n data: null,\n error: sessionError\n };\n }\n if (!session) {\n return {\n data: {\n currentLevel: null,\n nextLevel: null,\n currentAuthenticationMethods: []\n },\n error: null\n };\n }\n const payload = this._decodeJWT(session.access_token);\n let currentLevel = null;\n if (payload.aal) {\n currentLevel = payload.aal;\n }\n let nextLevel = currentLevel;\n const verifiedFactors = (_b = (_a = session.user.factors) === null || _a === void 0 ? void 0 : _a.filter((factor)=>factor.status === \"verified\")) !== null && _b !== void 0 ? _b : [];\n if (verifiedFactors.length > 0) {\n nextLevel = \"aal2\";\n }\n const currentAuthenticationMethods = payload.amr || [];\n return {\n data: {\n currentLevel,\n nextLevel,\n currentAuthenticationMethods\n },\n error: null\n };\n });\n });\n }\n}\nGoTrueClient.nextInstanceID = 0; //# sourceMappingURL=GoTrueClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9Hb1RydWVDbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUE4QztBQUM0QztBQUNvSztBQUM3STtBQUNvSTtBQUNoSztBQUNoQztBQUNiO0FBQzZCO0FBQ3JFbUMsa0VBQWtCQSxJQUFJLDhCQUE4QjtBQUNwRCxNQUFNSSxrQkFBa0I7SUFDcEJDLEtBQUtyQyxzREFBVUE7SUFDZnNDLFlBQVlyQyx1REFBV0E7SUFDdkJzQyxrQkFBa0I7SUFDbEJDLGdCQUFnQjtJQUNoQkMsb0JBQW9CO0lBQ3BCQyxTQUFTNUMsMkRBQWVBO0lBQ3hCNkMsVUFBVTtJQUNWQyxPQUFPO0FBQ1g7QUFDQSxrRUFBa0UsR0FDbEUsTUFBTUMsNkJBQTZCLEtBQUs7QUFDeEM7eUZBQ3lGLEdBQ3pGLE1BQU1DLDhCQUE4QjtBQUNwQyxlQUFlQyxTQUFTQyxJQUFJLEVBQUVDLGNBQWMsRUFBRUMsRUFBRTtJQUM1QyxPQUFPLE1BQU1BO0FBQ2pCO0FBQ2UsTUFBTUM7SUFDakI7O0tBRUMsR0FDREMsWUFBWUMsT0FBTyxDQUFFO1FBQ2pCLElBQUlDLElBQUlDO1FBQ1IsSUFBSSxDQUFDQyxhQUFhLEdBQUc7UUFDckIsSUFBSSxDQUFDQyxtQkFBbUIsR0FBRyxJQUFJQztRQUMvQixJQUFJLENBQUNDLGlCQUFpQixHQUFHO1FBQ3pCLElBQUksQ0FBQ0MseUJBQXlCLEdBQUc7UUFDakMsSUFBSSxDQUFDQyxrQkFBa0IsR0FBRztRQUMxQjs7Ozs7U0FLQyxHQUNELElBQUksQ0FBQ0MsaUJBQWlCLEdBQUc7UUFDekIsSUFBSSxDQUFDckIsa0JBQWtCLEdBQUc7UUFDMUIsSUFBSSxDQUFDc0IsWUFBWSxHQUFHO1FBQ3BCLElBQUksQ0FBQ0MsYUFBYSxHQUFHLEVBQUU7UUFDdkI7O1NBRUMsR0FDRCxJQUFJLENBQUNDLGdCQUFnQixHQUFHO1FBQ3hCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQyxRQUFRQyxHQUFHO1FBQ3pCLElBQUksQ0FBQ0MsVUFBVSxHQUFHbEIsYUFBYW1CLGNBQWM7UUFDN0NuQixhQUFhbUIsY0FBYyxJQUFJO1FBQy9CLElBQUksSUFBSSxDQUFDRCxVQUFVLEdBQUcsS0FBS2xELHVEQUFTQSxJQUFJO1lBQ3BDZ0QsUUFBUUksSUFBSSxDQUFDO1FBQ2pCO1FBQ0EsTUFBTUMsV0FBV0MsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHdEMsa0JBQWtCaUI7UUFDbkUsSUFBSSxDQUFDc0IsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDSCxTQUFTNUIsS0FBSztRQUN4QyxJQUFJLE9BQU80QixTQUFTNUIsS0FBSyxLQUFLLFlBQVk7WUFDdEMsSUFBSSxDQUFDc0IsTUFBTSxHQUFHTSxTQUFTNUIsS0FBSztRQUNoQztRQUNBLElBQUksQ0FBQ0osY0FBYyxHQUFHZ0MsU0FBU2hDLGNBQWM7UUFDN0MsSUFBSSxDQUFDRixVQUFVLEdBQUdrQyxTQUFTbEMsVUFBVTtRQUNyQyxJQUFJLENBQUNDLGdCQUFnQixHQUFHaUMsU0FBU2pDLGdCQUFnQjtRQUNqRCxJQUFJLENBQUNxQyxLQUFLLEdBQUcsSUFBSS9FLHVEQUFjQSxDQUFDO1lBQzVCd0MsS0FBS21DLFNBQVNuQyxHQUFHO1lBQ2pCSyxTQUFTOEIsU0FBUzlCLE9BQU87WUFDekJtQyxPQUFPTCxTQUFTSyxLQUFLO1FBQ3pCO1FBQ0EsSUFBSSxDQUFDeEMsR0FBRyxHQUFHbUMsU0FBU25DLEdBQUc7UUFDdkIsSUFBSSxDQUFDSyxPQUFPLEdBQUc4QixTQUFTOUIsT0FBTztRQUMvQixJQUFJLENBQUNtQyxLQUFLLEdBQUd4RCwwREFBWUEsQ0FBQ21ELFNBQVNLLEtBQUs7UUFDeEMsSUFBSSxDQUFDQyxJQUFJLEdBQUdOLFNBQVNNLElBQUksSUFBSS9CO1FBQzdCLElBQUksQ0FBQ04sa0JBQWtCLEdBQUcrQixTQUFTL0Isa0JBQWtCO1FBQ3JELElBQUksQ0FBQ0UsUUFBUSxHQUFHNkIsU0FBUzdCLFFBQVE7UUFDakMsSUFBSTZCLFNBQVNNLElBQUksRUFBRTtZQUNmLElBQUksQ0FBQ0EsSUFBSSxHQUFHTixTQUFTTSxJQUFJO1FBQzdCLE9BQ0ssSUFBSTNELHVEQUFTQSxNQUFPLEVBQUNtQyxLQUFLeUIsZUFBZSxRQUFRQSxlQUFlLEtBQUssSUFBSSxLQUFLLElBQUlBLFdBQVdDLFNBQVMsTUFBTSxRQUFRMUIsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHMkIsS0FBSyxHQUFHO1lBQ3pKLElBQUksQ0FBQ0gsSUFBSSxHQUFHM0MscURBQWFBO1FBQzdCLE9BQ0s7WUFDRCxJQUFJLENBQUMyQyxJQUFJLEdBQUcvQjtRQUNoQjtRQUNBLElBQUksQ0FBQ21DLEdBQUcsR0FBRztZQUNQQyxRQUFRLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyxJQUFJLENBQUMsSUFBSTtZQUM5QkMsUUFBUSxJQUFJLENBQUNDLE9BQU8sQ0FBQ0YsSUFBSSxDQUFDLElBQUk7WUFDOUJHLFVBQVUsSUFBSSxDQUFDQyxTQUFTLENBQUNKLElBQUksQ0FBQyxJQUFJO1lBQ2xDSyxXQUFXLElBQUksQ0FBQ0MsVUFBVSxDQUFDTixJQUFJLENBQUMsSUFBSTtZQUNwQ08sYUFBYSxJQUFJLENBQUNDLFlBQVksQ0FBQ1IsSUFBSSxDQUFDLElBQUk7WUFDeENTLG9CQUFvQixJQUFJLENBQUNDLG1CQUFtQixDQUFDVixJQUFJLENBQUMsSUFBSTtZQUN0RFcsZ0NBQWdDLElBQUksQ0FBQ0MsK0JBQStCLENBQUNaLElBQUksQ0FBQyxJQUFJO1FBQ2xGO1FBQ0EsSUFBSSxJQUFJLENBQUM3QyxjQUFjLEVBQUU7WUFDckIsSUFBSWdDLFNBQVMwQixPQUFPLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQ0EsT0FBTyxHQUFHMUIsU0FBUzBCLE9BQU87WUFDbkMsT0FDSztnQkFDRCxJQUFJdEUsa0VBQW9CQSxJQUFJO29CQUN4QixJQUFJLENBQUNzRSxPQUFPLEdBQUdwRSxtRUFBbUJBO2dCQUN0QyxPQUNLO29CQUNELElBQUksQ0FBQzBCLGFBQWEsR0FBRyxDQUFDO29CQUN0QixJQUFJLENBQUMwQyxPQUFPLEdBQUduRSw2RUFBeUJBLENBQUMsSUFBSSxDQUFDeUIsYUFBYTtnQkFDL0Q7WUFDSjtRQUNKLE9BQ0s7WUFDRCxJQUFJLENBQUNBLGFBQWEsR0FBRyxDQUFDO1lBQ3RCLElBQUksQ0FBQzBDLE9BQU8sR0FBR25FLDZFQUF5QkEsQ0FBQyxJQUFJLENBQUN5QixhQUFhO1FBQy9EO1FBQ0EsSUFBSXJDLHVEQUFTQSxNQUFNNEQsV0FBV29CLGdCQUFnQixJQUFJLElBQUksQ0FBQzNELGNBQWMsSUFBSSxJQUFJLENBQUNGLFVBQVUsRUFBRTtZQUN0RixJQUFJO2dCQUNBLElBQUksQ0FBQzJCLGdCQUFnQixHQUFHLElBQUljLFdBQVdvQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM3RCxVQUFVO1lBQzNFLEVBQ0EsT0FBTzhELEdBQUc7Z0JBQ05qQyxRQUFRa0MsS0FBSyxDQUFDLDBGQUEwRkQ7WUFDNUc7WUFDQzdDLENBQUFBLEtBQUssSUFBSSxDQUFDVSxnQkFBZ0IsTUFBTSxRQUFRVixPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcrQyxnQkFBZ0IsQ0FBQyxXQUFXLE9BQU9DO2dCQUNwRyxJQUFJLENBQUNDLE1BQU0sQ0FBQyw0REFBNEREO2dCQUN4RSxNQUFNLElBQUksQ0FBQ0UscUJBQXFCLENBQUNGLE1BQU1HLElBQUksQ0FBQ0gsS0FBSyxFQUFFQSxNQUFNRyxJQUFJLENBQUNDLE9BQU8sRUFBRSxRQUFRLGdFQUFnRTtZQUNuSjtRQUNKO1FBQ0EsSUFBSSxDQUFDQyxVQUFVO0lBQ25CO0lBQ0FKLE9BQU8sR0FBR0ssSUFBSSxFQUFFO1FBQ1osSUFBSSxJQUFJLENBQUNsQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUNULE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUNHLFVBQVUsQ0FBQyxFQUFFLEVBQUVwQyxpREFBT0EsQ0FBQyxFQUFFLEVBQUUsSUFBSTZFLE9BQU9DLFdBQVcsR0FBRyxDQUFDLEtBQUtGO1FBQy9GO1FBQ0EsT0FBTyxJQUFJO0lBQ2Y7SUFDQTs7OztLQUlDLEdBQ0QsTUFBTUQsYUFBYTtRQUNmLElBQUksSUFBSSxDQUFDOUMsaUJBQWlCLEVBQUU7WUFDeEIsT0FBTyxNQUFNLElBQUksQ0FBQ0EsaUJBQWlCO1FBQ3ZDO1FBQ0EsSUFBSSxDQUFDQSxpQkFBaUIsR0FBRyxDQUFDO1lBQ3RCLE9BQU8sTUFBTSxJQUFJLENBQUNrRCxZQUFZLENBQUMsQ0FBQyxHQUFHO2dCQUMvQixPQUFPLE1BQU0sSUFBSSxDQUFDQyxXQUFXO1lBQ2pDO1FBQ0o7UUFDQSxPQUFPLE1BQU0sSUFBSSxDQUFDbkQsaUJBQWlCO0lBQ3ZDO0lBQ0E7Ozs7O0tBS0MsR0FDRCxNQUFNbUQsY0FBYztRQUNoQixJQUFJO1lBQ0EsTUFBTUMsYUFBYS9GLHVEQUFTQSxLQUFLLE1BQU0sSUFBSSxDQUFDZ0csV0FBVyxLQUFLO1lBQzVELElBQUksQ0FBQ1gsTUFBTSxDQUFDLGtCQUFrQixTQUFTLGdCQUFnQlU7WUFDdkQsSUFBSUEsY0FBZSxJQUFJLENBQUN6RSxrQkFBa0IsSUFBSSxJQUFJLENBQUMyRSxvQkFBb0IsSUFBSztnQkFDeEUsTUFBTSxFQUFFVixJQUFJLEVBQUVMLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDZ0Isa0JBQWtCLENBQUNIO2dCQUN0RCxJQUFJYixPQUFPO29CQUNQLElBQUksQ0FBQ0csTUFBTSxDQUFDLGtCQUFrQixvQ0FBb0NIO29CQUNsRSxtR0FBbUc7b0JBQ25HLHNGQUFzRjtvQkFDdEYsSUFBSSxDQUFDQSxVQUFVLFFBQVFBLFVBQVUsS0FBSyxJQUFJLEtBQUssSUFBSUEsTUFBTWlCLE9BQU8sTUFBTSxnQ0FDbEUsQ0FBQ2pCLFVBQVUsUUFBUUEsVUFBVSxLQUFLLElBQUksS0FBSyxJQUFJQSxNQUFNaUIsT0FBTyxNQUFNLDhDQUE4Qzt3QkFDaEgsT0FBTzs0QkFBRWpCO3dCQUFNO29CQUNuQjtvQkFDQSxnQ0FBZ0M7b0JBQ2hDLDZEQUE2RDtvQkFDN0QsTUFBTSxJQUFJLENBQUNrQixjQUFjO29CQUN6QixPQUFPO3dCQUFFbEI7b0JBQU07Z0JBQ25CO2dCQUNBLE1BQU0sRUFBRU0sT0FBTyxFQUFFYSxZQUFZLEVBQUUsR0FBR2Q7Z0JBQ2xDLElBQUksQ0FBQ0YsTUFBTSxDQUFDLGtCQUFrQiwyQkFBMkJHLFNBQVMsaUJBQWlCYTtnQkFDbkYsTUFBTSxJQUFJLENBQUNDLFlBQVksQ0FBQ2Q7Z0JBQ3hCZSxXQUFXO29CQUNQLElBQUlGLGlCQUFpQixZQUFZO3dCQUM3QixNQUFNLElBQUksQ0FBQ2YscUJBQXFCLENBQUMscUJBQXFCRTtvQkFDMUQsT0FDSzt3QkFDRCxNQUFNLElBQUksQ0FBQ0YscUJBQXFCLENBQUMsYUFBYUU7b0JBQ2xEO2dCQUNKLEdBQUc7Z0JBQ0gsT0FBTztvQkFBRU4sT0FBTztnQkFBSztZQUN6QjtZQUNBLHdFQUF3RTtZQUN4RSxNQUFNLElBQUksQ0FBQ3NCLGtCQUFrQjtZQUM3QixPQUFPO2dCQUFFdEIsT0FBTztZQUFLO1FBQ3pCLEVBQ0EsT0FBT0EsT0FBTztZQUNWLElBQUk1Rix3REFBV0EsQ0FBQzRGLFFBQVE7Z0JBQ3BCLE9BQU87b0JBQUVBO2dCQUFNO1lBQ25CO1lBQ0EsT0FBTztnQkFDSEEsT0FBTyxJQUFJOUYseURBQWdCQSxDQUFDLDBDQUEwQzhGO1lBQzFFO1FBQ0osU0FDUTtZQUNKLE1BQU0sSUFBSSxDQUFDdUIsdUJBQXVCO1lBQ2xDLElBQUksQ0FBQ3BCLE1BQU0sQ0FBQyxrQkFBa0I7UUFDbEM7SUFDSjtJQUNBOzs7Ozs7Ozs7S0FTQyxHQUNELE1BQU1xQixPQUFPQyxXQUFXLEVBQUU7UUFDdEIsSUFBSXhFLElBQUlDLElBQUl3RTtRQUNaLElBQUk7WUFDQSxNQUFNLElBQUksQ0FBQ1IsY0FBYztZQUN6QixJQUFJUztZQUNKLElBQUksV0FBV0YsYUFBYTtnQkFDeEIsTUFBTSxFQUFFRyxLQUFLLEVBQUVDLFFBQVEsRUFBRTdFLE9BQU8sRUFBRSxHQUFHeUU7Z0JBQ3JDLElBQUlLLGdCQUFnQjtnQkFDcEIsSUFBSUMsc0JBQXNCO2dCQUMxQixJQUFJLElBQUksQ0FBQ3pGLFFBQVEsS0FBSyxRQUFRO29CQUMxQixNQUFNMEYsZUFBZTNHLGtFQUFvQkE7b0JBQ3pDLE1BQU1KLDBEQUFZQSxDQUFDLElBQUksQ0FBQzRFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDNUQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFK0Y7b0JBQ3JFRixnQkFBZ0IsTUFBTXhHLG1FQUFxQkEsQ0FBQzBHO29CQUM1Q0Qsc0JBQXNCQyxpQkFBaUJGLGdCQUFnQixVQUFVO2dCQUNyRTtnQkFDQUgsTUFBTSxNQUFNckgsb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDM0RLLFNBQVMsSUFBSSxDQUFDQSxPQUFPO29CQUNyQjRGLFlBQVlqRixZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUWtGLGVBQWU7b0JBQ3JGQyxNQUFNO3dCQUNGUDt3QkFDQUM7d0JBQ0F4QixNQUFNLENBQUNwRCxLQUFLRCxZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXFELElBQUksTUFBTSxRQUFRcEQsT0FBTyxLQUFLLElBQUlBLEtBQUssQ0FBQzt3QkFDOUdtRixzQkFBc0I7NEJBQUVDLGVBQWVyRixZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXNGLFlBQVk7d0JBQUM7d0JBQzlHQyxnQkFBZ0JUO3dCQUNoQlUsdUJBQXVCVDtvQkFDM0I7b0JBQ0FVLE9BQU9sSSx3REFBZ0JBO2dCQUMzQjtZQUNKLE9BQ0ssSUFBSSxXQUFXa0gsYUFBYTtnQkFDN0IsTUFBTSxFQUFFaUIsS0FBSyxFQUFFYixRQUFRLEVBQUU3RSxPQUFPLEVBQUUsR0FBR3lFO2dCQUNyQ0UsTUFBTSxNQUFNckgsb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDM0RLLFNBQVMsSUFBSSxDQUFDQSxPQUFPO29CQUNyQjhGLE1BQU07d0JBQ0ZPO3dCQUNBYjt3QkFDQXhCLE1BQU0sQ0FBQ25ELEtBQUtGLFlBQVksUUFBUUEsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJQSxRQUFRcUQsSUFBSSxNQUFNLFFBQVFuRCxPQUFPLEtBQUssSUFBSUEsS0FBSyxDQUFDO3dCQUM5R3lGLFNBQVMsQ0FBQ2pCLEtBQUsxRSxZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUTJGLE9BQU8sTUFBTSxRQUFRakIsT0FBTyxLQUFLLElBQUlBLEtBQUs7d0JBQ25IVSxzQkFBc0I7NEJBQUVDLGVBQWVyRixZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXNGLFlBQVk7d0JBQUM7b0JBQ2xIO29CQUNBRyxPQUFPbEksd0RBQWdCQTtnQkFDM0I7WUFDSixPQUNLO2dCQUNELE1BQU0sSUFBSVIsb0VBQTJCQSxDQUFDO1lBQzFDO1lBQ0EsTUFBTSxFQUFFc0csSUFBSSxFQUFFTCxLQUFLLEVBQUUsR0FBRzJCO1lBQ3hCLElBQUkzQixTQUFTLENBQUNLLE1BQU07Z0JBQ2hCLE9BQU87b0JBQUVBLE1BQU07d0JBQUV1QyxNQUFNO3dCQUFNdEMsU0FBUztvQkFBSztvQkFBR04sT0FBT0E7Z0JBQU07WUFDL0Q7WUFDQSxNQUFNTSxVQUFVRCxLQUFLQyxPQUFPO1lBQzVCLE1BQU1zQyxPQUFPdkMsS0FBS3VDLElBQUk7WUFDdEIsSUFBSXZDLEtBQUtDLE9BQU8sRUFBRTtnQkFDZCxNQUFNLElBQUksQ0FBQ2MsWUFBWSxDQUFDZixLQUFLQyxPQUFPO2dCQUNwQyxNQUFNLElBQUksQ0FBQ0YscUJBQXFCLENBQUMsYUFBYUU7WUFDbEQ7WUFDQSxPQUFPO2dCQUFFRCxNQUFNO29CQUFFdUM7b0JBQU10QztnQkFBUTtnQkFBR04sT0FBTztZQUFLO1FBQ2xELEVBQ0EsT0FBT0EsT0FBTztZQUNWLElBQUk1Rix3REFBV0EsQ0FBQzRGLFFBQVE7Z0JBQ3BCLE9BQU87b0JBQUVLLE1BQU07d0JBQUV1QyxNQUFNO3dCQUFNdEMsU0FBUztvQkFBSztvQkFBR047Z0JBQU07WUFDeEQ7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7Ozs7OztLQU9DLEdBQ0QsTUFBTTZDLG1CQUFtQnBCLFdBQVcsRUFBRTtRQUNsQyxJQUFJO1lBQ0EsTUFBTSxJQUFJLENBQUNQLGNBQWM7WUFDekIsSUFBSVM7WUFDSixJQUFJLFdBQVdGLGFBQWE7Z0JBQ3hCLE1BQU0sRUFBRUcsS0FBSyxFQUFFQyxRQUFRLEVBQUU3RSxPQUFPLEVBQUUsR0FBR3lFO2dCQUNyQ0UsTUFBTSxNQUFNckgsb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFO29CQUM5RUssU0FBUyxJQUFJLENBQUNBLE9BQU87b0JBQ3JCOEYsTUFBTTt3QkFDRlA7d0JBQ0FDO3dCQUNBTyxzQkFBc0I7NEJBQUVDLGVBQWVyRixZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXNGLFlBQVk7d0JBQUM7b0JBQ2xIO29CQUNBRyxPQUFPakksZ0VBQXdCQTtnQkFDbkM7WUFDSixPQUNLLElBQUksV0FBV2lILGFBQWE7Z0JBQzdCLE1BQU0sRUFBRWlCLEtBQUssRUFBRWIsUUFBUSxFQUFFN0UsT0FBTyxFQUFFLEdBQUd5RTtnQkFDckNFLE1BQU0sTUFBTXJILG9EQUFRQSxDQUFDLElBQUksQ0FBQ2tFLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUN4QyxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRTtvQkFDOUVLLFNBQVMsSUFBSSxDQUFDQSxPQUFPO29CQUNyQjhGLE1BQU07d0JBQ0ZPO3dCQUNBYjt3QkFDQU8sc0JBQXNCOzRCQUFFQyxlQUFlckYsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFzRixZQUFZO3dCQUFDO29CQUNsSDtvQkFDQUcsT0FBT2pJLGdFQUF3QkE7Z0JBQ25DO1lBQ0osT0FDSztnQkFDRCxNQUFNLElBQUlULG9FQUEyQkEsQ0FBQztZQUMxQztZQUNBLE1BQU0sRUFBRXNHLElBQUksRUFBRUwsS0FBSyxFQUFFLEdBQUcyQjtZQUN4QixJQUFJM0IsT0FBTztnQkFDUCxPQUFPO29CQUFFSyxNQUFNO3dCQUFFdUMsTUFBTTt3QkFBTXRDLFNBQVM7b0JBQUs7b0JBQUdOO2dCQUFNO1lBQ3hELE9BQ0ssSUFBSSxDQUFDSyxRQUFRLENBQUNBLEtBQUtDLE9BQU8sSUFBSSxDQUFDRCxLQUFLdUMsSUFBSSxFQUFFO2dCQUMzQyxPQUFPO29CQUFFdkMsTUFBTTt3QkFBRXVDLE1BQU07d0JBQU10QyxTQUFTO29CQUFLO29CQUFHTixPQUFPLElBQUkvRixzRUFBNkJBO2dCQUFHO1lBQzdGO1lBQ0EsSUFBSW9HLEtBQUtDLE9BQU8sRUFBRTtnQkFDZCxNQUFNLElBQUksQ0FBQ2MsWUFBWSxDQUFDZixLQUFLQyxPQUFPO2dCQUNwQyxNQUFNLElBQUksQ0FBQ0YscUJBQXFCLENBQUMsYUFBYUMsS0FBS0MsT0FBTztZQUM5RDtZQUNBLE9BQU87Z0JBQ0hELE1BQU1qQyxPQUFPQyxNQUFNLENBQUM7b0JBQUV1RSxNQUFNdkMsS0FBS3VDLElBQUk7b0JBQUV0QyxTQUFTRCxLQUFLQyxPQUFPO2dCQUFDLEdBQUlELEtBQUt5QyxhQUFhLEdBQUc7b0JBQUVDLGNBQWMxQyxLQUFLeUMsYUFBYTtnQkFBQyxJQUFJO2dCQUM3SDlDO1lBQ0o7UUFDSixFQUNBLE9BQU9BLE9BQU87WUFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixPQUFPO29CQUFFSyxNQUFNO3dCQUFFdUMsTUFBTTt3QkFBTXRDLFNBQVM7b0JBQUs7b0JBQUdOO2dCQUFNO1lBQ3hEO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0E7OztLQUdDLEdBQ0QsTUFBTWdELGdCQUFnQnZCLFdBQVcsRUFBRTtRQUMvQixJQUFJeEUsSUFBSUMsSUFBSXdFLElBQUl1QjtRQUNoQixNQUFNLElBQUksQ0FBQy9CLGNBQWM7UUFDekIsT0FBTyxNQUFNLElBQUksQ0FBQ2dDLHFCQUFxQixDQUFDekIsWUFBWTBCLFFBQVEsRUFBRTtZQUMxRGxCLFlBQVksQ0FBQ2hGLEtBQUt3RSxZQUFZekUsT0FBTyxNQUFNLFFBQVFDLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR2dGLFVBQVU7WUFDekZtQixRQUFRLENBQUNsRyxLQUFLdUUsWUFBWXpFLE9BQU8sTUFBTSxRQUFRRSxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdrRyxNQUFNO1lBQ2pGQyxhQUFhLENBQUMzQixLQUFLRCxZQUFZekUsT0FBTyxNQUFNLFFBQVEwRSxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcyQixXQUFXO1lBQzNGQyxxQkFBcUIsQ0FBQ0wsS0FBS3hCLFlBQVl6RSxPQUFPLE1BQU0sUUFBUWlHLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR0ssbUJBQW1CO1FBQy9HO0lBQ0o7SUFDQTs7S0FFQyxHQUNELE1BQU1DLHVCQUF1QkMsUUFBUSxFQUFFO1FBQ25DLE1BQU0sSUFBSSxDQUFDL0YsaUJBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDa0QsWUFBWSxDQUFDLENBQUMsR0FBRztZQUN6QixPQUFPLElBQUksQ0FBQzhDLHVCQUF1QixDQUFDRDtRQUN4QztJQUNKO0lBQ0EsTUFBTUMsd0JBQXdCRCxRQUFRLEVBQUU7UUFDcEMsTUFBTUUsY0FBYyxNQUFNN0ksMERBQVlBLENBQUMsSUFBSSxDQUFDZ0YsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM1RCxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQ3ZGLE1BQU0sQ0FBQytGLGNBQWNiLGFBQWEsR0FBRyxDQUFDdUMsZ0JBQWdCLFFBQVFBLGdCQUFnQixLQUFLLElBQUlBLGNBQWMsRUFBQyxFQUFHQyxLQUFLLENBQUM7UUFDL0csTUFBTSxFQUFFdEQsSUFBSSxFQUFFTCxLQUFLLEVBQUUsR0FBRyxNQUFNMUYsb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQzVGSyxTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUNyQjhGLE1BQU07Z0JBQ0Z5QixXQUFXSjtnQkFDWEssZUFBZTdCO1lBQ25CO1lBQ0FTLE9BQU9sSSx3REFBZ0JBO1FBQzNCO1FBQ0EsTUFBTVEsNkRBQWVBLENBQUMsSUFBSSxDQUFDOEUsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM1RCxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQ3RFLElBQUkrRCxPQUFPO1lBQ1AsT0FBTztnQkFBRUssTUFBTTtvQkFBRXVDLE1BQU07b0JBQU10QyxTQUFTO29CQUFNYSxjQUFjO2dCQUFLO2dCQUFHbkI7WUFBTTtRQUM1RSxPQUNLLElBQUksQ0FBQ0ssUUFBUSxDQUFDQSxLQUFLQyxPQUFPLElBQUksQ0FBQ0QsS0FBS3VDLElBQUksRUFBRTtZQUMzQyxPQUFPO2dCQUNIdkMsTUFBTTtvQkFBRXVDLE1BQU07b0JBQU10QyxTQUFTO29CQUFNYSxjQUFjO2dCQUFLO2dCQUN0RG5CLE9BQU8sSUFBSS9GLHNFQUE2QkE7WUFDNUM7UUFDSjtRQUNBLElBQUlvRyxLQUFLQyxPQUFPLEVBQUU7WUFDZCxNQUFNLElBQUksQ0FBQ2MsWUFBWSxDQUFDZixLQUFLQyxPQUFPO1lBQ3BDLE1BQU0sSUFBSSxDQUFDRixxQkFBcUIsQ0FBQyxhQUFhQyxLQUFLQyxPQUFPO1FBQzlEO1FBQ0EsT0FBTztZQUFFRCxNQUFNakMsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHZ0MsT0FBTztnQkFBRWMsY0FBY0EsaUJBQWlCLFFBQVFBLGlCQUFpQixLQUFLLElBQUlBLGVBQWU7WUFBSztZQUFJbkI7UUFBTTtJQUMzSjtJQUNBOzs7S0FHQyxHQUNELE1BQU04RCxrQkFBa0JyQyxXQUFXLEVBQUU7UUFDakMsTUFBTSxJQUFJLENBQUNQLGNBQWM7UUFDekIsSUFBSTtZQUNBLE1BQU0sRUFBRWxFLE9BQU8sRUFBRW1HLFFBQVEsRUFBRVksS0FBSyxFQUFFQyxZQUFZLEVBQUVDLEtBQUssRUFBRSxHQUFHeEM7WUFDMUQsTUFBTUUsTUFBTSxNQUFNckgsb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFO2dCQUNwRkssU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQ3JCOEYsTUFBTTtvQkFDRmdCO29CQUNBZSxVQUFVSDtvQkFDVkM7b0JBQ0FDO29CQUNBN0Isc0JBQXNCO3dCQUFFQyxlQUFlckYsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFzRixZQUFZO29CQUFDO2dCQUNsSDtnQkFDQUcsT0FBT2xJLHdEQUFnQkE7WUFDM0I7WUFDQSxNQUFNLEVBQUU4RixJQUFJLEVBQUVMLEtBQUssRUFBRSxHQUFHMkI7WUFDeEIsSUFBSTNCLE9BQU87Z0JBQ1AsT0FBTztvQkFBRUssTUFBTTt3QkFBRXVDLE1BQU07d0JBQU10QyxTQUFTO29CQUFLO29CQUFHTjtnQkFBTTtZQUN4RCxPQUNLLElBQUksQ0FBQ0ssUUFBUSxDQUFDQSxLQUFLQyxPQUFPLElBQUksQ0FBQ0QsS0FBS3VDLElBQUksRUFBRTtnQkFDM0MsT0FBTztvQkFDSHZDLE1BQU07d0JBQUV1QyxNQUFNO3dCQUFNdEMsU0FBUztvQkFBSztvQkFDbENOLE9BQU8sSUFBSS9GLHNFQUE2QkE7Z0JBQzVDO1lBQ0o7WUFDQSxJQUFJb0csS0FBS0MsT0FBTyxFQUFFO2dCQUNkLE1BQU0sSUFBSSxDQUFDYyxZQUFZLENBQUNmLEtBQUtDLE9BQU87Z0JBQ3BDLE1BQU0sSUFBSSxDQUFDRixxQkFBcUIsQ0FBQyxhQUFhQyxLQUFLQyxPQUFPO1lBQzlEO1lBQ0EsT0FBTztnQkFBRUQ7Z0JBQU1MO1lBQU07UUFDekIsRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTt3QkFBRXVDLE1BQU07d0JBQU10QyxTQUFTO29CQUFLO29CQUFHTjtnQkFBTTtZQUN4RDtZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JDLEdBQ0QsTUFBTW1FLGNBQWMxQyxXQUFXLEVBQUU7UUFDN0IsSUFBSXhFLElBQUlDLElBQUl3RSxJQUFJdUIsSUFBSW1CO1FBQ3BCLElBQUk7WUFDQSxNQUFNLElBQUksQ0FBQ2xELGNBQWM7WUFDekIsSUFBSSxXQUFXTyxhQUFhO2dCQUN4QixNQUFNLEVBQUVHLEtBQUssRUFBRTVFLE9BQU8sRUFBRSxHQUFHeUU7Z0JBQzNCLElBQUlLLGdCQUFnQjtnQkFDcEIsSUFBSUMsc0JBQXNCO2dCQUMxQixJQUFJLElBQUksQ0FBQ3pGLFFBQVEsS0FBSyxRQUFRO29CQUMxQixNQUFNMEYsZUFBZTNHLGtFQUFvQkE7b0JBQ3pDLE1BQU1KLDBEQUFZQSxDQUFDLElBQUksQ0FBQzRFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDNUQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFK0Y7b0JBQ3JFRixnQkFBZ0IsTUFBTXhHLG1FQUFxQkEsQ0FBQzBHO29CQUM1Q0Qsc0JBQXNCQyxpQkFBaUJGLGdCQUFnQixVQUFVO2dCQUNyRTtnQkFDQSxNQUFNLEVBQUU5QixLQUFLLEVBQUUsR0FBRyxNQUFNMUYsb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDcEVLLFNBQVMsSUFBSSxDQUFDQSxPQUFPO29CQUNyQjhGLE1BQU07d0JBQ0ZQO3dCQUNBdkIsTUFBTSxDQUFDcEQsS0FBS0QsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFxRCxJQUFJLE1BQU0sUUFBUXBELE9BQU8sS0FBSyxJQUFJQSxLQUFLLENBQUM7d0JBQzlHb0gsYUFBYSxDQUFDbkgsS0FBS0YsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFzSCxnQkFBZ0IsTUFBTSxRQUFRcEgsT0FBTyxLQUFLLElBQUlBLEtBQUs7d0JBQ2hJa0Ysc0JBQXNCOzRCQUFFQyxlQUFlckYsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFzRixZQUFZO3dCQUFDO3dCQUM5R0MsZ0JBQWdCVDt3QkFDaEJVLHVCQUF1QlQ7b0JBQzNCO29CQUNBRSxZQUFZakYsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFrRixlQUFlO2dCQUN6RjtnQkFDQSxPQUFPO29CQUFFN0IsTUFBTTt3QkFBRXVDLE1BQU07d0JBQU10QyxTQUFTO29CQUFLO29CQUFHTjtnQkFBTTtZQUN4RDtZQUNBLElBQUksV0FBV3lCLGFBQWE7Z0JBQ3hCLE1BQU0sRUFBRWlCLEtBQUssRUFBRTFGLE9BQU8sRUFBRSxHQUFHeUU7Z0JBQzNCLE1BQU0sRUFBRXBCLElBQUksRUFBRUwsS0FBSyxFQUFFLEdBQUcsTUFBTTFGLG9EQUFRQSxDQUFDLElBQUksQ0FBQ2tFLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUN4QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzFFSyxTQUFTLElBQUksQ0FBQ0EsT0FBTztvQkFDckI4RixNQUFNO3dCQUNGTzt3QkFDQXJDLE1BQU0sQ0FBQ3FCLEtBQUsxRSxZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXFELElBQUksTUFBTSxRQUFRcUIsT0FBTyxLQUFLLElBQUlBLEtBQUssQ0FBQzt3QkFDOUcyQyxhQUFhLENBQUNwQixLQUFLakcsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFzSCxnQkFBZ0IsTUFBTSxRQUFRckIsT0FBTyxLQUFLLElBQUlBLEtBQUs7d0JBQ2hJYixzQkFBc0I7NEJBQUVDLGVBQWVyRixZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXNGLFlBQVk7d0JBQUM7d0JBQzlHSyxTQUFTLENBQUN5QixLQUFLcEgsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVEyRixPQUFPLE1BQU0sUUFBUXlCLE9BQU8sS0FBSyxJQUFJQSxLQUFLO29CQUN2SDtnQkFDSjtnQkFDQSxPQUFPO29CQUFFL0QsTUFBTTt3QkFBRXVDLE1BQU07d0JBQU10QyxTQUFTO3dCQUFNaUUsV0FBV2xFLFNBQVMsUUFBUUEsU0FBUyxLQUFLLElBQUksS0FBSyxJQUFJQSxLQUFLbUUsVUFBVTtvQkFBQztvQkFBR3hFO2dCQUFNO1lBQ2hJO1lBQ0EsTUFBTSxJQUFJakcsb0VBQTJCQSxDQUFDO1FBQzFDLEVBQ0EsT0FBT2lHLE9BQU87WUFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixPQUFPO29CQUFFSyxNQUFNO3dCQUFFdUMsTUFBTTt3QkFBTXRDLFNBQVM7b0JBQUs7b0JBQUdOO2dCQUFNO1lBQ3hEO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0E7O0tBRUMsR0FDRCxNQUFNeUUsVUFBVUMsTUFBTSxFQUFFO1FBQ3BCLElBQUl6SCxJQUFJQztRQUNSLElBQUk7WUFDQSxJQUFJd0gsT0FBT0MsSUFBSSxLQUFLLGtCQUFrQkQsT0FBT0MsSUFBSSxLQUFLLGdCQUFnQjtnQkFDbEUsMkhBQTJIO2dCQUMzSCxNQUFNLElBQUksQ0FBQ3pELGNBQWM7WUFDN0I7WUFDQSxJQUFJZSxhQUFhMkM7WUFDakIsSUFBSXRDLGVBQWVzQztZQUNuQixJQUFJLGFBQWFGLFFBQVE7Z0JBQ3JCekMsYUFBYSxDQUFDaEYsS0FBS3lILE9BQU8xSCxPQUFPLE1BQU0sUUFBUUMsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHZ0YsVUFBVTtnQkFDckZLLGVBQWUsQ0FBQ3BGLEtBQUt3SCxPQUFPMUgsT0FBTyxNQUFNLFFBQVFFLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR29GLFlBQVk7WUFDN0Y7WUFDQSxNQUFNLEVBQUVqQyxJQUFJLEVBQUVMLEtBQUssRUFBRSxHQUFHLE1BQU0xRixvREFBUUEsQ0FBQyxJQUFJLENBQUNrRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDeEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM3RUssU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQ3JCOEYsTUFBTS9ELE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR3FHLFNBQVM7b0JBQUV0QyxzQkFBc0I7d0JBQUVDLGVBQWVDO29CQUFhO2dCQUFFO2dCQUN2R0w7Z0JBQ0FRLE9BQU9sSSx3REFBZ0JBO1lBQzNCO1lBQ0EsSUFBSXlGLE9BQU87Z0JBQ1AsTUFBTUE7WUFDVjtZQUNBLElBQUksQ0FBQ0ssTUFBTTtnQkFDUCxNQUFNLElBQUl3RSxNQUFNO1lBQ3BCO1lBQ0EsTUFBTXZFLFVBQVVELEtBQUtDLE9BQU87WUFDNUIsTUFBTXNDLE9BQU92QyxLQUFLdUMsSUFBSTtZQUN0QixJQUFJdEMsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVEwRCxZQUFZLEVBQUU7Z0JBQ3hFLE1BQU0sSUFBSSxDQUFDNUMsWUFBWSxDQUFDZDtnQkFDeEIsTUFBTSxJQUFJLENBQUNGLHFCQUFxQixDQUFDc0UsT0FBT0MsSUFBSSxJQUFJLGFBQWEsc0JBQXNCLGFBQWFyRTtZQUNwRztZQUNBLE9BQU87Z0JBQUVELE1BQU07b0JBQUV1QztvQkFBTXRDO2dCQUFRO2dCQUFHTixPQUFPO1lBQUs7UUFDbEQsRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTt3QkFBRXVDLE1BQU07d0JBQU10QyxTQUFTO29CQUFLO29CQUFHTjtnQkFBTTtZQUN4RDtZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOzs7Ozs7Ozs7Ozs7O0tBYUMsR0FDRCxNQUFNOEUsY0FBY0osTUFBTSxFQUFFO1FBQ3hCLElBQUl6SCxJQUFJQyxJQUFJd0U7UUFDWixJQUFJO1lBQ0EsTUFBTSxJQUFJLENBQUNSLGNBQWM7WUFDekIsSUFBSVksZ0JBQWdCO1lBQ3BCLElBQUlDLHNCQUFzQjtZQUMxQixJQUFJLElBQUksQ0FBQ3pGLFFBQVEsS0FBSyxRQUFRO2dCQUMxQixNQUFNMEYsZUFBZTNHLGtFQUFvQkE7Z0JBQ3pDLE1BQU1KLDBEQUFZQSxDQUFDLElBQUksQ0FBQzRFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDNUQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFK0Y7Z0JBQ3JFRixnQkFBZ0IsTUFBTXhHLG1FQUFxQkEsQ0FBQzBHO2dCQUM1Q0Qsc0JBQXNCQyxpQkFBaUJGLGdCQUFnQixVQUFVO1lBQ3JFO1lBQ0EsT0FBTyxNQUFNeEgsb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekRtRyxNQUFNL0QsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUNELE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFJLGdCQUFnQnFHLFNBQVM7b0JBQUVLLGFBQWFMLE9BQU9NLFVBQVU7Z0JBQUMsSUFBSSxPQUFTLFlBQVlOLFNBQVM7b0JBQUVPLFFBQVFQLE9BQU9PLE1BQU07Z0JBQUMsSUFBSSxPQUFRO29CQUFFQyxhQUFhLENBQUNoSSxLQUFLLENBQUNELEtBQUt5SCxPQUFPMUgsT0FBTyxNQUFNLFFBQVFDLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR2dGLFVBQVUsTUFBTSxRQUFRL0UsT0FBTyxLQUFLLElBQUlBLEtBQUswSDtnQkFBVSxJQUFLLENBQUMsQ0FBQ2xELEtBQUtnRCxXQUFXLFFBQVFBLFdBQVcsS0FBSyxJQUFJLEtBQUssSUFBSUEsT0FBTzFILE9BQU8sTUFBTSxRQUFRMEUsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHWSxZQUFZLElBQ3JkO29CQUFFRixzQkFBc0I7d0JBQUVDLGVBQWVxQyxPQUFPMUgsT0FBTyxDQUFDc0YsWUFBWTtvQkFBQztnQkFBRSxJQUN2RSxPQUFRO29CQUFFNkMsb0JBQW9CO29CQUFNNUMsZ0JBQWdCVDtvQkFBZVUsdUJBQXVCVDtnQkFBb0I7Z0JBQ3BIMUYsU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQ3JCb0csT0FBTy9ILG9EQUFZQTtZQUN2QjtRQUNKLEVBQ0EsT0FBT3NGLE9BQU87WUFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixPQUFPO29CQUFFSyxNQUFNO29CQUFNTDtnQkFBTTtZQUMvQjtZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOzs7S0FHQyxHQUNELE1BQU1vRixpQkFBaUI7UUFDbkIsTUFBTSxJQUFJLENBQUMzSCxpQkFBaUI7UUFDNUIsT0FBTyxNQUFNLElBQUksQ0FBQ2tELFlBQVksQ0FBQyxDQUFDLEdBQUc7WUFDL0IsT0FBTyxNQUFNLElBQUksQ0FBQzBFLGVBQWU7UUFDckM7SUFDSjtJQUNBLE1BQU1BLGtCQUFrQjtRQUNwQixJQUFJO1lBQ0EsT0FBTyxNQUFNLElBQUksQ0FBQ0MsV0FBVyxDQUFDLE9BQU9DO2dCQUNqQyxNQUFNLEVBQUVsRixNQUFNLEVBQUVDLE9BQU8sRUFBRSxFQUFFTixPQUFPd0YsWUFBWSxFQUFHLEdBQUdEO2dCQUNwRCxJQUFJQyxjQUNBLE1BQU1BO2dCQUNWLElBQUksQ0FBQ2xGLFNBQ0QsTUFBTSxJQUFJdEcsZ0VBQXVCQTtnQkFDckMsTUFBTSxFQUFFZ0csS0FBSyxFQUFFLEdBQUcsTUFBTTFGLG9EQUFRQSxDQUFDLElBQUksQ0FBQ2tFLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUN4QyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQzlFSyxTQUFTLElBQUksQ0FBQ0EsT0FBTztvQkFDckJvSixLQUFLbkYsUUFBUTBELFlBQVk7Z0JBQzdCO2dCQUNBLE9BQU87b0JBQUUzRCxNQUFNO3dCQUFFdUMsTUFBTTt3QkFBTXRDLFNBQVM7b0JBQUs7b0JBQUdOO2dCQUFNO1lBQ3hEO1FBQ0osRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTt3QkFBRXVDLE1BQU07d0JBQU10QyxTQUFTO29CQUFLO29CQUFHTjtnQkFBTTtZQUN4RDtZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOztLQUVDLEdBQ0QsTUFBTTBGLE9BQU9qRSxXQUFXLEVBQUU7UUFDdEIsSUFBSTtZQUNBLElBQUlBLFlBQVlrRCxJQUFJLElBQUksa0JBQWtCbEQsWUFBWWtELElBQUksSUFBSSxnQkFBZ0I7Z0JBQzFFLE1BQU0sSUFBSSxDQUFDekQsY0FBYztZQUM3QjtZQUNBLE1BQU15RSxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMzSixHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3JDLElBQUksV0FBV3lGLGFBQWE7Z0JBQ3hCLE1BQU0sRUFBRUcsS0FBSyxFQUFFK0MsSUFBSSxFQUFFM0gsT0FBTyxFQUFFLEdBQUd5RTtnQkFDakMsTUFBTSxFQUFFekIsS0FBSyxFQUFFLEdBQUcsTUFBTTFGLG9EQUFRQSxDQUFDLElBQUksQ0FBQ2tFLEtBQUssRUFBRSxRQUFRbUgsVUFBVTtvQkFDM0R0SixTQUFTLElBQUksQ0FBQ0EsT0FBTztvQkFDckI4RixNQUFNO3dCQUNGUDt3QkFDQStDO3dCQUNBdkMsc0JBQXNCOzRCQUFFQyxlQUFlckYsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFzRixZQUFZO3dCQUFDO29CQUNsSDtvQkFDQUwsWUFBWWpGLFlBQVksUUFBUUEsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJQSxRQUFRa0YsZUFBZTtnQkFDekY7Z0JBQ0EsT0FBTztvQkFBRTdCLE1BQU07d0JBQUV1QyxNQUFNO3dCQUFNdEMsU0FBUztvQkFBSztvQkFBR047Z0JBQU07WUFDeEQsT0FDSyxJQUFJLFdBQVd5QixhQUFhO2dCQUM3QixNQUFNLEVBQUVpQixLQUFLLEVBQUVpQyxJQUFJLEVBQUUzSCxPQUFPLEVBQUUsR0FBR3lFO2dCQUNqQyxNQUFNLEVBQUVwQixJQUFJLEVBQUVMLEtBQUssRUFBRSxHQUFHLE1BQU0xRixvREFBUUEsQ0FBQyxJQUFJLENBQUNrRSxLQUFLLEVBQUUsUUFBUW1ILFVBQVU7b0JBQ2pFdEosU0FBUyxJQUFJLENBQUNBLE9BQU87b0JBQ3JCOEYsTUFBTTt3QkFDRk87d0JBQ0FpQzt3QkFDQXZDLHNCQUFzQjs0QkFBRUMsZUFBZXJGLFlBQVksUUFBUUEsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJQSxRQUFRc0YsWUFBWTt3QkFBQztvQkFDbEg7Z0JBQ0o7Z0JBQ0EsT0FBTztvQkFBRWpDLE1BQU07d0JBQUV1QyxNQUFNO3dCQUFNdEMsU0FBUzt3QkFBTWlFLFdBQVdsRSxTQUFTLFFBQVFBLFNBQVMsS0FBSyxJQUFJLEtBQUssSUFBSUEsS0FBS21FLFVBQVU7b0JBQUM7b0JBQUd4RTtnQkFBTTtZQUNoSTtZQUNBLE1BQU0sSUFBSWpHLG9FQUEyQkEsQ0FBQztRQUMxQyxFQUNBLE9BQU9pRyxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTt3QkFBRXVDLE1BQU07d0JBQU10QyxTQUFTO29CQUFLO29CQUFHTjtnQkFBTTtZQUN4RDtZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOzs7S0FHQyxHQUNELE1BQU00RixhQUFhO1FBQ2YsTUFBTSxJQUFJLENBQUNuSSxpQkFBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUNrRCxZQUFZLENBQUMsQ0FBQyxHQUFHO1lBQ3pCLE9BQU8sSUFBSSxDQUFDMkUsV0FBVyxDQUFDLE9BQU9DO2dCQUMzQixPQUFPQTtZQUNYO1FBQ0o7SUFDSjtJQUNBOztLQUVDLEdBQ0QsTUFBTTVFLGFBQWEvRCxjQUFjLEVBQUVDLEVBQUUsRUFBRTtRQUNuQyxJQUFJLENBQUNzRCxNQUFNLENBQUMsaUJBQWlCLFNBQVN2RDtRQUN0QyxJQUFJO1lBQ0EsSUFBSSxJQUFJLENBQUNjLFlBQVksRUFBRTtnQkFDbkIsTUFBTW1JLE9BQU8sSUFBSSxDQUFDbEksYUFBYSxDQUFDbUksTUFBTSxHQUNoQyxJQUFJLENBQUNuSSxhQUFhLENBQUMsSUFBSSxDQUFDQSxhQUFhLENBQUNtSSxNQUFNLEdBQUcsRUFBRSxHQUNqREMsUUFBUUMsT0FBTztnQkFDckIsTUFBTVQsU0FBUyxDQUFDO29CQUNaLE1BQU1NO29CQUNOLE9BQU8sTUFBTWhKO2dCQUNqQjtnQkFDQSxJQUFJLENBQUNjLGFBQWEsQ0FBQ3NJLElBQUksQ0FBQyxDQUFDO29CQUNyQixJQUFJO3dCQUNBLE1BQU1WO29CQUNWLEVBQ0EsT0FBT3hGLEdBQUc7b0JBQ04sOEJBQThCO29CQUNsQztnQkFDSjtnQkFDQSxPQUFPd0Y7WUFDWDtZQUNBLE9BQU8sTUFBTSxJQUFJLENBQUM5RyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDeEMsVUFBVSxDQUFDLENBQUMsRUFBRVcsZ0JBQWdCO2dCQUM5RCxJQUFJLENBQUN1RCxNQUFNLENBQUMsaUJBQWlCLGlDQUFpQyxJQUFJLENBQUNsRSxVQUFVO2dCQUM3RSxJQUFJO29CQUNBLElBQUksQ0FBQ3lCLFlBQVksR0FBRztvQkFDcEIsTUFBTTZILFNBQVMxSTtvQkFDZixJQUFJLENBQUNjLGFBQWEsQ0FBQ3NJLElBQUksQ0FBQyxDQUFDO3dCQUNyQixJQUFJOzRCQUNBLE1BQU1WO3dCQUNWLEVBQ0EsT0FBT3hGLEdBQUc7d0JBQ04sOEJBQThCO3dCQUNsQztvQkFDSjtvQkFDQSxNQUFNd0Y7b0JBQ04sMkRBQTJEO29CQUMzRCxNQUFPLElBQUksQ0FBQzVILGFBQWEsQ0FBQ21JLE1BQU0sQ0FBRTt3QkFDOUIsTUFBTUksU0FBUzsrQkFBSSxJQUFJLENBQUN2SSxhQUFhO3lCQUFDO3dCQUN0QyxNQUFNb0ksUUFBUUksR0FBRyxDQUFDRDt3QkFDbEIsSUFBSSxDQUFDdkksYUFBYSxDQUFDeUksTUFBTSxDQUFDLEdBQUdGLE9BQU9KLE1BQU07b0JBQzlDO29CQUNBLE9BQU8sTUFBTVA7Z0JBQ2pCLFNBQ1E7b0JBQ0osSUFBSSxDQUFDcEYsTUFBTSxDQUFDLGlCQUFpQixpQ0FBaUMsSUFBSSxDQUFDbEUsVUFBVTtvQkFDN0UsSUFBSSxDQUFDeUIsWUFBWSxHQUFHO2dCQUN4QjtZQUNKO1FBQ0osU0FDUTtZQUNKLElBQUksQ0FBQ3lDLE1BQU0sQ0FBQyxpQkFBaUI7UUFDakM7SUFDSjtJQUNBOzs7OztLQUtDLEdBQ0QsTUFBTW1GLFlBQVl6SSxFQUFFLEVBQUU7UUFDbEIsSUFBSSxDQUFDc0QsTUFBTSxDQUFDLGdCQUFnQjtRQUM1QixJQUFJO1lBQ0EseUVBQXlFO1lBQ3pFLE1BQU1vRixTQUFTLE1BQU0sSUFBSSxDQUFDYyxhQUFhO1lBQ3ZDLE9BQU8sTUFBTXhKLEdBQUcwSTtRQUNwQixTQUNRO1lBQ0osSUFBSSxDQUFDcEYsTUFBTSxDQUFDLGdCQUFnQjtRQUNoQztJQUNKO0lBQ0E7Ozs7S0FJQyxHQUNELE1BQU1rRyxnQkFBZ0I7UUFDbEIsSUFBSSxDQUFDbEcsTUFBTSxDQUFDLG9CQUFvQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDekMsWUFBWSxFQUFFO1lBQ3BCLElBQUksQ0FBQ3lDLE1BQU0sQ0FBQyxvQkFBb0IscUNBQXFDLElBQUkwRSxRQUFReUIsS0FBSztRQUMxRjtRQUNBLElBQUk7WUFDQSxJQUFJQyxpQkFBaUI7WUFDckIsTUFBTUMsZUFBZSxNQUFNM0wsMERBQVlBLENBQUMsSUFBSSxDQUFDZ0YsT0FBTyxFQUFFLElBQUksQ0FBQzVELFVBQVU7WUFDckUsSUFBSSxDQUFDa0UsTUFBTSxDQUFDLGlCQUFpQix3QkFBd0JxRztZQUNyRCxJQUFJQSxpQkFBaUIsTUFBTTtnQkFDdkIsSUFBSSxJQUFJLENBQUNDLGVBQWUsQ0FBQ0QsZUFBZTtvQkFDcENELGlCQUFpQkM7Z0JBQ3JCLE9BQ0s7b0JBQ0QsSUFBSSxDQUFDckcsTUFBTSxDQUFDLGlCQUFpQjtvQkFDN0IsTUFBTSxJQUFJLENBQUNlLGNBQWM7Z0JBQzdCO1lBQ0o7WUFDQSxJQUFJLENBQUNxRixnQkFBZ0I7Z0JBQ2pCLE9BQU87b0JBQUVsRyxNQUFNO3dCQUFFQyxTQUFTO29CQUFLO29CQUFHTixPQUFPO2dCQUFLO1lBQ2xEO1lBQ0EsTUFBTTBHLGFBQWFILGVBQWVJLFVBQVUsR0FDdENKLGVBQWVJLFVBQVUsSUFBSWxHLEtBQUttRyxHQUFHLEtBQUssT0FDMUM7WUFDTixJQUFJLENBQUN6RyxNQUFNLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFdUcsYUFBYSxLQUFLLE9BQU8sUUFBUSxDQUFDLEVBQUUsY0FBY0gsZUFBZUksVUFBVTtZQUN6SCxJQUFJLENBQUNELFlBQVk7Z0JBQ2IsT0FBTztvQkFBRXJHLE1BQU07d0JBQUVDLFNBQVNpRztvQkFBZTtvQkFBR3ZHLE9BQU87Z0JBQUs7WUFDNUQ7WUFDQSxNQUFNLEVBQUVNLE9BQU8sRUFBRU4sS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUM2RyxpQkFBaUIsQ0FBQ04sZUFBZU8sYUFBYTtZQUNwRixJQUFJOUcsT0FBTztnQkFDUCxPQUFPO29CQUFFSyxNQUFNO3dCQUFFQyxTQUFTO29CQUFLO29CQUFHTjtnQkFBTTtZQUM1QztZQUNBLE9BQU87Z0JBQUVLLE1BQU07b0JBQUVDO2dCQUFRO2dCQUFHTixPQUFPO1lBQUs7UUFDNUMsU0FDUTtZQUNKLElBQUksQ0FBQ0csTUFBTSxDQUFDLG9CQUFvQjtRQUNwQztJQUNKO0lBQ0E7OztLQUdDLEdBQ0QsTUFBTTRHLFFBQVF0QixHQUFHLEVBQUU7UUFDZixJQUFJQSxLQUFLO1lBQ0wsT0FBTyxNQUFNLElBQUksQ0FBQ3VCLFFBQVEsQ0FBQ3ZCO1FBQy9CO1FBQ0EsTUFBTSxJQUFJLENBQUNoSSxpQkFBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUNrRCxZQUFZLENBQUMsQ0FBQyxHQUFHO1lBQ3pCLE9BQU8sTUFBTSxJQUFJLENBQUNxRyxRQUFRO1FBQzlCO0lBQ0o7SUFDQSxNQUFNQSxTQUFTdkIsR0FBRyxFQUFFO1FBQ2hCLElBQUk7WUFDQSxJQUFJQSxLQUFLO2dCQUNMLE9BQU8sTUFBTW5MLG9EQUFRQSxDQUFDLElBQUksQ0FBQ2tFLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUN4QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3pESyxTQUFTLElBQUksQ0FBQ0EsT0FBTztvQkFDckJvSixLQUFLQTtvQkFDTGhELE9BQU9oSSxxREFBYUE7Z0JBQ3hCO1lBQ0o7WUFDQSxPQUFPLE1BQU0sSUFBSSxDQUFDNkssV0FBVyxDQUFDLE9BQU9DO2dCQUNqQyxJQUFJdEksSUFBSUM7Z0JBQ1IsTUFBTSxFQUFFbUQsSUFBSSxFQUFFTCxLQUFLLEVBQUUsR0FBR3VGO2dCQUN4QixJQUFJdkYsT0FBTztvQkFDUCxNQUFNQTtnQkFDVjtnQkFDQSxPQUFPLE1BQU0xRixvREFBUUEsQ0FBQyxJQUFJLENBQUNrRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDeEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUN6REssU0FBUyxJQUFJLENBQUNBLE9BQU87b0JBQ3JCb0osS0FBSyxDQUFDdkksS0FBSyxDQUFDRCxLQUFLb0QsS0FBS0MsT0FBTyxNQUFNLFFBQVFyRCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcrRyxZQUFZLE1BQU0sUUFBUTlHLE9BQU8sS0FBSyxJQUFJQSxLQUFLMEg7b0JBQ3RIbkMsT0FBT2hJLHFEQUFhQTtnQkFDeEI7WUFDSjtRQUNKLEVBQ0EsT0FBT3VGLE9BQU87WUFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixPQUFPO29CQUFFSyxNQUFNO3dCQUFFdUMsTUFBTTtvQkFBSztvQkFBRzVDO2dCQUFNO1lBQ3pDO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0E7O0tBRUMsR0FDRCxNQUFNaUgsV0FBV0MsVUFBVSxFQUFFbEssVUFBVSxDQUFDLENBQUMsRUFBRTtRQUN2QyxNQUFNLElBQUksQ0FBQ1MsaUJBQWlCO1FBQzVCLE9BQU8sTUFBTSxJQUFJLENBQUNrRCxZQUFZLENBQUMsQ0FBQyxHQUFHO1lBQy9CLE9BQU8sTUFBTSxJQUFJLENBQUN3RyxXQUFXLENBQUNELFlBQVlsSztRQUM5QztJQUNKO0lBQ0EsTUFBTW1LLFlBQVlELFVBQVUsRUFBRWxLLFVBQVUsQ0FBQyxDQUFDLEVBQUU7UUFDeEMsSUFBSTtZQUNBLE9BQU8sTUFBTSxJQUFJLENBQUNzSSxXQUFXLENBQUMsT0FBT0M7Z0JBQ2pDLE1BQU0sRUFBRWxGLE1BQU0rRyxXQUFXLEVBQUVwSCxPQUFPd0YsWUFBWSxFQUFFLEdBQUdEO2dCQUNuRCxJQUFJQyxjQUFjO29CQUNkLE1BQU1BO2dCQUNWO2dCQUNBLElBQUksQ0FBQzRCLFlBQVk5RyxPQUFPLEVBQUU7b0JBQ3RCLE1BQU0sSUFBSXRHLGdFQUF1QkE7Z0JBQ3JDO2dCQUNBLE1BQU1zRyxVQUFVOEcsWUFBWTlHLE9BQU87Z0JBQ25DLElBQUl3QixnQkFBZ0I7Z0JBQ3BCLElBQUlDLHNCQUFzQjtnQkFDMUIsSUFBSSxJQUFJLENBQUN6RixRQUFRLEtBQUssVUFBVTRLLFdBQVd0RixLQUFLLElBQUksTUFBTTtvQkFDdEQsTUFBTUksZUFBZTNHLGtFQUFvQkE7b0JBQ3pDLE1BQU1KLDBEQUFZQSxDQUFDLElBQUksQ0FBQzRFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDNUQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFK0Y7b0JBQ3JFRixnQkFBZ0IsTUFBTXhHLG1FQUFxQkEsQ0FBQzBHO29CQUM1Q0Qsc0JBQXNCQyxpQkFBaUJGLGdCQUFnQixVQUFVO2dCQUNyRTtnQkFDQSxNQUFNLEVBQUV6QixJQUFJLEVBQUVMLE9BQU9xSCxTQUFTLEVBQUUsR0FBRyxNQUFNL00sb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDckZLLFNBQVMsSUFBSSxDQUFDQSxPQUFPO29CQUNyQjRGLFlBQVlqRixZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUWtGLGVBQWU7b0JBQ3JGQyxNQUFNL0QsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHNkksYUFBYTt3QkFBRTNFLGdCQUFnQlQ7d0JBQWVVLHVCQUF1QlQ7b0JBQW9CO29CQUMvSDBELEtBQUtuRixRQUFRMEQsWUFBWTtvQkFDekJ2QixPQUFPaEkscURBQWFBO2dCQUN4QjtnQkFDQSxJQUFJNE0sV0FDQSxNQUFNQTtnQkFDVi9HLFFBQVFzQyxJQUFJLEdBQUd2QyxLQUFLdUMsSUFBSTtnQkFDeEIsTUFBTSxJQUFJLENBQUN4QixZQUFZLENBQUNkO2dCQUN4QixNQUFNLElBQUksQ0FBQ0YscUJBQXFCLENBQUMsZ0JBQWdCRTtnQkFDakQsT0FBTztvQkFBRUQsTUFBTTt3QkFBRXVDLE1BQU10QyxRQUFRc0MsSUFBSTtvQkFBQztvQkFBRzVDLE9BQU87Z0JBQUs7WUFDdkQ7UUFDSixFQUNBLE9BQU9BLE9BQU87WUFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixPQUFPO29CQUFFSyxNQUFNO3dCQUFFdUMsTUFBTTtvQkFBSztvQkFBRzVDO2dCQUFNO1lBQ3pDO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0E7O0tBRUMsR0FDRHNILFdBQVc3QixHQUFHLEVBQUU7UUFDWixPQUFPOUssOERBQWdCQSxDQUFDOEs7SUFDNUI7SUFDQTs7OztLQUlDLEdBQ0QsTUFBTThCLFdBQVdoQixjQUFjLEVBQUU7UUFDN0IsTUFBTSxJQUFJLENBQUM5SSxpQkFBaUI7UUFDNUIsT0FBTyxNQUFNLElBQUksQ0FBQ2tELFlBQVksQ0FBQyxDQUFDLEdBQUc7WUFDL0IsT0FBTyxNQUFNLElBQUksQ0FBQzZHLFdBQVcsQ0FBQ2pCO1FBQ2xDO0lBQ0o7SUFDQSxNQUFNaUIsWUFBWWpCLGNBQWMsRUFBRTtRQUM5QixJQUFJO1lBQ0EsSUFBSSxDQUFDQSxlQUFldkMsWUFBWSxJQUFJLENBQUN1QyxlQUFlTyxhQUFhLEVBQUU7Z0JBQy9ELE1BQU0sSUFBSTlNLGdFQUF1QkE7WUFDckM7WUFDQSxNQUFNeU4sVUFBVWhILEtBQUttRyxHQUFHLEtBQUs7WUFDN0IsSUFBSWMsWUFBWUQ7WUFDaEIsSUFBSWYsYUFBYTtZQUNqQixJQUFJcEcsVUFBVTtZQUNkLE1BQU1xSCxVQUFVaE4sOERBQWdCQSxDQUFDNEwsZUFBZXZDLFlBQVk7WUFDNUQsSUFBSTJELFFBQVFDLEdBQUcsRUFBRTtnQkFDYkYsWUFBWUMsUUFBUUMsR0FBRztnQkFDdkJsQixhQUFhZ0IsYUFBYUQ7WUFDOUI7WUFDQSxJQUFJZixZQUFZO2dCQUNaLE1BQU0sRUFBRXBHLFNBQVN1SCxnQkFBZ0IsRUFBRTdILEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDNkcsaUJBQWlCLENBQUNOLGVBQWVPLGFBQWE7Z0JBQ3RHLElBQUk5RyxPQUFPO29CQUNQLE9BQU87d0JBQUVLLE1BQU07NEJBQUV1QyxNQUFNOzRCQUFNdEMsU0FBUzt3QkFBSzt3QkFBR04sT0FBT0E7b0JBQU07Z0JBQy9EO2dCQUNBLElBQUksQ0FBQzZILGtCQUFrQjtvQkFDbkIsT0FBTzt3QkFBRXhILE1BQU07NEJBQUV1QyxNQUFNOzRCQUFNdEMsU0FBUzt3QkFBSzt3QkFBR04sT0FBTztvQkFBSztnQkFDOUQ7Z0JBQ0FNLFVBQVV1SDtZQUNkLE9BQ0s7Z0JBQ0QsTUFBTSxFQUFFeEgsSUFBSSxFQUFFTCxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQ2dILFFBQVEsQ0FBQ1QsZUFBZXZDLFlBQVk7Z0JBQ3ZFLElBQUloRSxPQUFPO29CQUNQLE1BQU1BO2dCQUNWO2dCQUNBTSxVQUFVO29CQUNOMEQsY0FBY3VDLGVBQWV2QyxZQUFZO29CQUN6QzhDLGVBQWVQLGVBQWVPLGFBQWE7b0JBQzNDbEUsTUFBTXZDLEtBQUt1QyxJQUFJO29CQUNma0YsWUFBWTtvQkFDWkMsWUFBWUwsWUFBWUQ7b0JBQ3hCZCxZQUFZZTtnQkFDaEI7Z0JBQ0EsTUFBTSxJQUFJLENBQUN0RyxZQUFZLENBQUNkO2dCQUN4QixNQUFNLElBQUksQ0FBQ0YscUJBQXFCLENBQUMsYUFBYUU7WUFDbEQ7WUFDQSxPQUFPO2dCQUFFRCxNQUFNO29CQUFFdUMsTUFBTXRDLFFBQVFzQyxJQUFJO29CQUFFdEM7Z0JBQVE7Z0JBQUdOLE9BQU87WUFBSztRQUNoRSxFQUNBLE9BQU9BLE9BQU87WUFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixPQUFPO29CQUFFSyxNQUFNO3dCQUFFQyxTQUFTO3dCQUFNc0MsTUFBTTtvQkFBSztvQkFBRzVDO2dCQUFNO1lBQ3hEO1lBQ0EsTUFBTUE7UUFDVjtJQUNKO0lBQ0E7Ozs7O0tBS0MsR0FDRCxNQUFNZ0ksZUFBZXpCLGNBQWMsRUFBRTtRQUNqQyxNQUFNLElBQUksQ0FBQzlJLGlCQUFpQjtRQUM1QixPQUFPLE1BQU0sSUFBSSxDQUFDa0QsWUFBWSxDQUFDLENBQUMsR0FBRztZQUMvQixPQUFPLE1BQU0sSUFBSSxDQUFDc0gsZUFBZSxDQUFDMUI7UUFDdEM7SUFDSjtJQUNBLE1BQU0wQixnQkFBZ0IxQixjQUFjLEVBQUU7UUFDbEMsSUFBSTtZQUNBLE9BQU8sTUFBTSxJQUFJLENBQUNqQixXQUFXLENBQUMsT0FBT0M7Z0JBQ2pDLElBQUl0STtnQkFDSixJQUFJLENBQUNzSixnQkFBZ0I7b0JBQ2pCLE1BQU0sRUFBRWxHLElBQUksRUFBRUwsS0FBSyxFQUFFLEdBQUd1RjtvQkFDeEIsSUFBSXZGLE9BQU87d0JBQ1AsTUFBTUE7b0JBQ1Y7b0JBQ0F1RyxpQkFBaUIsQ0FBQ3RKLEtBQUtvRCxLQUFLQyxPQUFPLE1BQU0sUUFBUXJELE9BQU8sS0FBSyxJQUFJQSxLQUFLMkg7Z0JBQzFFO2dCQUNBLElBQUksQ0FBRTJCLENBQUFBLG1CQUFtQixRQUFRQSxtQkFBbUIsS0FBSyxJQUFJLEtBQUssSUFBSUEsZUFBZU8sYUFBYSxHQUFHO29CQUNqRyxNQUFNLElBQUk5TSxnRUFBdUJBO2dCQUNyQztnQkFDQSxNQUFNLEVBQUVzRyxPQUFPLEVBQUVOLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDNkcsaUJBQWlCLENBQUNOLGVBQWVPLGFBQWE7Z0JBQ3BGLElBQUk5RyxPQUFPO29CQUNQLE9BQU87d0JBQUVLLE1BQU07NEJBQUV1QyxNQUFNOzRCQUFNdEMsU0FBUzt3QkFBSzt3QkFBR04sT0FBT0E7b0JBQU07Z0JBQy9EO2dCQUNBLElBQUksQ0FBQ00sU0FBUztvQkFDVixPQUFPO3dCQUFFRCxNQUFNOzRCQUFFdUMsTUFBTTs0QkFBTXRDLFNBQVM7d0JBQUs7d0JBQUdOLE9BQU87b0JBQUs7Z0JBQzlEO2dCQUNBLE9BQU87b0JBQUVLLE1BQU07d0JBQUV1QyxNQUFNdEMsUUFBUXNDLElBQUk7d0JBQUV0QztvQkFBUTtvQkFBR04sT0FBTztnQkFBSztZQUNoRTtRQUNKLEVBQ0EsT0FBT0EsT0FBTztZQUNWLElBQUk1Rix3REFBV0EsQ0FBQzRGLFFBQVE7Z0JBQ3BCLE9BQU87b0JBQUVLLE1BQU07d0JBQUV1QyxNQUFNO3dCQUFNdEMsU0FBUztvQkFBSztvQkFBR047Z0JBQU07WUFDeEQ7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7S0FFQyxHQUNELE1BQU1nQixtQkFBbUJILFVBQVUsRUFBRTtRQUNqQyxJQUFJO1lBQ0EsSUFBSSxDQUFDL0YsdURBQVNBLElBQ1YsTUFBTSxJQUFJakIsdUVBQThCQSxDQUFDO1lBQzdDLElBQUksSUFBSSxDQUFDeUMsUUFBUSxLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUN5RSxvQkFBb0IsSUFBSTtnQkFDOUQsTUFBTSxJQUFJbEgsdUVBQThCQSxDQUFDO1lBQzdDLE9BQ0ssSUFBSSxJQUFJLENBQUN5QyxRQUFRLElBQUksVUFBVSxDQUFDdUUsWUFBWTtnQkFDN0MsTUFBTSxJQUFJL0csdUVBQThCQSxDQUFDO1lBQzdDO1lBQ0EsTUFBTTRLLFNBQVNsSixvRUFBc0JBLENBQUMwTSxPQUFPQyxRQUFRLENBQUNDLElBQUk7WUFDMUQsSUFBSXZILFlBQVk7Z0JBQ1osSUFBSSxDQUFDNkQsT0FBTzJELElBQUksRUFDWixNQUFNLElBQUl2Tyx1RUFBOEJBLENBQUM7Z0JBQzdDLE1BQU0sRUFBRXVHLElBQUksRUFBRUwsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUN5RCx1QkFBdUIsQ0FBQ2lCLE9BQU8yRCxJQUFJO2dCQUN0RSxJQUFJckksT0FDQSxNQUFNQTtnQkFDVixNQUFNaEUsTUFBTSxJQUFJc00sSUFBSUosT0FBT0MsUUFBUSxDQUFDQyxJQUFJO2dCQUN4Q3BNLElBQUl1TSxZQUFZLENBQUNDLE1BQU0sQ0FBQztnQkFDeEJOLE9BQU9PLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDUixPQUFPTyxPQUFPLENBQUNFLEtBQUssRUFBRSxJQUFJM00sSUFBSTRNLFFBQVE7Z0JBQ2xFLE9BQU87b0JBQUV2SSxNQUFNO3dCQUFFQyxTQUFTRCxLQUFLQyxPQUFPO3dCQUFFYSxjQUFjO29CQUFLO29CQUFHbkIsT0FBTztnQkFBSztZQUM5RTtZQUNBLElBQUkwRSxPQUFPMUUsS0FBSyxJQUFJMEUsT0FBT21FLGlCQUFpQixJQUFJbkUsT0FBT29FLFVBQVUsRUFBRTtnQkFDL0QsTUFBTSxJQUFJalAsdUVBQThCQSxDQUFDNkssT0FBT21FLGlCQUFpQixJQUFJLG1EQUFtRDtvQkFDcEg3SSxPQUFPMEUsT0FBTzFFLEtBQUssSUFBSTtvQkFDdkJxSSxNQUFNM0QsT0FBT29FLFVBQVUsSUFBSTtnQkFDL0I7WUFDSjtZQUNBLE1BQU0sRUFBRUMsY0FBYyxFQUFFQyxzQkFBc0IsRUFBRWhGLFlBQVksRUFBRThDLGFBQWEsRUFBRWlCLFVBQVUsRUFBRXBCLFVBQVUsRUFBRW1CLFVBQVUsRUFBRyxHQUFHcEQ7WUFDckgsSUFBSSxDQUFDVixnQkFBZ0IsQ0FBQytELGNBQWMsQ0FBQ2pCLGlCQUFpQixDQUFDZ0IsWUFBWTtnQkFDL0QsTUFBTSxJQUFJak8sdUVBQThCQSxDQUFDO1lBQzdDO1lBQ0EsTUFBTTROLFVBQVV3QixLQUFLQyxLQUFLLENBQUN6SSxLQUFLbUcsR0FBRyxLQUFLO1lBQ3hDLE1BQU11QyxZQUFZQyxTQUFTckI7WUFDM0IsSUFBSUwsWUFBWUQsVUFBVTBCO1lBQzFCLElBQUl4QyxZQUFZO2dCQUNaZSxZQUFZMEIsU0FBU3pDO1lBQ3pCO1lBQ0EsTUFBTTBDLG9CQUFvQjNCLFlBQVlEO1lBQ3RDLElBQUk0QixvQkFBb0IsUUFBUTdNLDRCQUE0QjtnQkFDeERzQixRQUFRSSxJQUFJLENBQUMsQ0FBQyw4REFBOEQsRUFBRW1MLGtCQUFrQiw4QkFBOEIsRUFBRUYsVUFBVSxDQUFDLENBQUM7WUFDaEo7WUFDQSxNQUFNRyxXQUFXNUIsWUFBWXlCO1lBQzdCLElBQUkxQixVQUFVNkIsWUFBWSxLQUFLO2dCQUMzQnhMLFFBQVFJLElBQUksQ0FBQyxtR0FBbUdvTCxVQUFVNUIsV0FBV0Q7WUFDekksT0FDSyxJQUFJQSxVQUFVNkIsV0FBVyxHQUFHO2dCQUM3QnhMLFFBQVFJLElBQUksQ0FBQywrR0FBK0dvTCxVQUFVNUIsV0FBV0Q7WUFDcko7WUFDQSxNQUFNLEVBQUVwSCxJQUFJLEVBQUVMLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDZ0gsUUFBUSxDQUFDaEQ7WUFDNUMsSUFBSWhFLE9BQ0EsTUFBTUE7WUFDVixNQUFNTSxVQUFVO2dCQUNaeUk7Z0JBQ0FDO2dCQUNBaEY7Z0JBQ0ErRCxZQUFZb0I7Z0JBQ1p4QyxZQUFZZTtnQkFDWlo7Z0JBQ0FnQjtnQkFDQWxGLE1BQU12QyxLQUFLdUMsSUFBSTtZQUNuQjtZQUNBLHlCQUF5QjtZQUN6QnNGLE9BQU9DLFFBQVEsQ0FBQ29CLElBQUksR0FBRztZQUN2QixJQUFJLENBQUNwSixNQUFNLENBQUMseUJBQXlCO1lBQ3JDLE9BQU87Z0JBQUVFLE1BQU07b0JBQUVDO29CQUFTYSxjQUFjdUQsT0FBT0MsSUFBSTtnQkFBQztnQkFBRzNFLE9BQU87WUFBSztRQUN2RSxFQUNBLE9BQU9BLE9BQU87WUFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixPQUFPO29CQUFFSyxNQUFNO3dCQUFFQyxTQUFTO3dCQUFNYSxjQUFjO29CQUFLO29CQUFHbkI7Z0JBQU07WUFDaEU7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7S0FFQyxHQUNEZSx1QkFBdUI7UUFDbkIsTUFBTTJELFNBQVNsSixvRUFBc0JBLENBQUMwTSxPQUFPQyxRQUFRLENBQUNDLElBQUk7UUFDMUQsT0FBTyxDQUFDLENBQUV0TixDQUFBQSx1REFBU0EsTUFBTzRKLENBQUFBLE9BQU9WLFlBQVksSUFBSVUsT0FBT21FLGlCQUFpQjtJQUM3RTtJQUNBOztLQUVDLEdBQ0QsTUFBTS9ILGNBQWM7UUFDaEIsTUFBTTRELFNBQVNsSixvRUFBc0JBLENBQUMwTSxPQUFPQyxRQUFRLENBQUNDLElBQUk7UUFDMUQsTUFBTW9CLHdCQUF3QixNQUFNM08sMERBQVlBLENBQUMsSUFBSSxDQUFDZ0YsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM1RCxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQ2pHLE9BQU8sQ0FBQyxDQUFFeUksQ0FBQUEsT0FBTzJELElBQUksSUFBSW1CLHFCQUFvQjtJQUNqRDtJQUNBOzs7Ozs7O0tBT0MsR0FDRCxNQUFNQyxRQUFRek0sVUFBVTtRQUFFME0sT0FBTztJQUFTLENBQUMsRUFBRTtRQUN6QyxNQUFNLElBQUksQ0FBQ2pNLGlCQUFpQjtRQUM1QixPQUFPLE1BQU0sSUFBSSxDQUFDa0QsWUFBWSxDQUFDLENBQUMsR0FBRztZQUMvQixPQUFPLE1BQU0sSUFBSSxDQUFDZ0osUUFBUSxDQUFDM007UUFDL0I7SUFDSjtJQUNBLE1BQU0yTSxTQUFTLEVBQUVELEtBQUssRUFBRSxHQUFHO1FBQUVBLE9BQU87SUFBUyxDQUFDLEVBQUU7UUFDNUMsT0FBTyxNQUFNLElBQUksQ0FBQ3BFLFdBQVcsQ0FBQyxPQUFPQztZQUNqQyxJQUFJdEk7WUFDSixNQUFNLEVBQUVvRCxJQUFJLEVBQUVMLE9BQU93RixZQUFZLEVBQUUsR0FBR0Q7WUFDdEMsSUFBSUMsY0FBYztnQkFDZCxPQUFPO29CQUFFeEYsT0FBT3dGO2dCQUFhO1lBQ2pDO1lBQ0EsTUFBTW9FLGNBQWMsQ0FBQzNNLEtBQUtvRCxLQUFLQyxPQUFPLE1BQU0sUUFBUXJELE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBRytHLFlBQVk7WUFDNUYsSUFBSTRGLGFBQWE7Z0JBQ2IsTUFBTSxFQUFFNUosS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUN6QixLQUFLLENBQUNrTCxPQUFPLENBQUNHLGFBQWFGO2dCQUN4RCxJQUFJMUosT0FBTztvQkFDUCxpREFBaUQ7b0JBQ2pELGtGQUFrRjtvQkFDbEYsSUFBSSxDQUFFN0YsQ0FBQUEsMkRBQWNBLENBQUM2RixVQUFXQSxDQUFBQSxNQUFNNkosTUFBTSxLQUFLLE9BQU83SixNQUFNNkosTUFBTSxLQUFLLEdBQUUsQ0FBQyxHQUFJO3dCQUM1RSxPQUFPOzRCQUFFN0o7d0JBQU07b0JBQ25CO2dCQUNKO1lBQ0o7WUFDQSxJQUFJMEosVUFBVSxVQUFVO2dCQUNwQixNQUFNLElBQUksQ0FBQ3hJLGNBQWM7Z0JBQ3pCLE1BQU1uRyw2REFBZUEsQ0FBQyxJQUFJLENBQUM4RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQzVELFVBQVUsQ0FBQyxjQUFjLENBQUM7Z0JBQ3RFLE1BQU0sSUFBSSxDQUFDbUUscUJBQXFCLENBQUMsY0FBYztZQUNuRDtZQUNBLE9BQU87Z0JBQUVKLE9BQU87WUFBSztRQUN6QjtJQUNKO0lBQ0E7OztLQUdDLEdBQ0Q4SixrQkFBa0JDLFFBQVEsRUFBRTtRQUN4QixNQUFNQyxLQUFLOU8sa0RBQUlBO1FBQ2YsTUFBTStPLGVBQWU7WUFDakJEO1lBQ0FEO1lBQ0FHLGFBQWE7Z0JBQ1QsSUFBSSxDQUFDL0osTUFBTSxDQUFDLGtCQUFrQix5Q0FBeUM2SjtnQkFDdkUsSUFBSSxDQUFDNU0sbUJBQW1CLENBQUNvTCxNQUFNLENBQUN3QjtZQUNwQztRQUNKO1FBQ0EsSUFBSSxDQUFDN0osTUFBTSxDQUFDLHdCQUF3QiwrQkFBK0I2SjtRQUNuRSxJQUFJLENBQUM1TSxtQkFBbUIsQ0FBQytNLEdBQUcsQ0FBQ0gsSUFBSUM7UUFDaEM7WUFDRyxNQUFNLElBQUksQ0FBQ3hNLGlCQUFpQjtZQUM1QixNQUFNLElBQUksQ0FBQ2tELFlBQVksQ0FBQyxDQUFDLEdBQUc7Z0JBQ3hCLElBQUksQ0FBQ3lKLG1CQUFtQixDQUFDSjtZQUM3QjtRQUNKO1FBQ0EsT0FBTztZQUFFM0osTUFBTTtnQkFBRTRKO1lBQWE7UUFBRTtJQUNwQztJQUNBLE1BQU1HLG9CQUFvQkosRUFBRSxFQUFFO1FBQzFCLE9BQU8sTUFBTSxJQUFJLENBQUMxRSxXQUFXLENBQUMsT0FBT0M7WUFDakMsSUFBSXRJLElBQUlDO1lBQ1IsSUFBSTtnQkFDQSxNQUFNLEVBQUVtRCxNQUFNLEVBQUVDLE9BQU8sRUFBRSxFQUFFTixLQUFLLEVBQUcsR0FBR3VGO2dCQUN0QyxJQUFJdkYsT0FDQSxNQUFNQTtnQkFDVixNQUFPLEVBQUMvQyxLQUFLLElBQUksQ0FBQ0csbUJBQW1CLENBQUNpTixHQUFHLENBQUNMLEdBQUUsTUFBTyxRQUFRL00sT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHOE0sUUFBUSxDQUFDLG1CQUFtQnpKLFFBQU87Z0JBQzFILElBQUksQ0FBQ0gsTUFBTSxDQUFDLG1CQUFtQixlQUFlNkosSUFBSSxXQUFXMUo7WUFDakUsRUFDQSxPQUFPZ0ssS0FBSztnQkFDUixNQUFPLEVBQUNwTixLQUFLLElBQUksQ0FBQ0UsbUJBQW1CLENBQUNpTixHQUFHLENBQUNMLEdBQUUsTUFBTyxRQUFROU0sT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHNk0sUUFBUSxDQUFDLG1CQUFtQixLQUFJO2dCQUN2SCxJQUFJLENBQUM1SixNQUFNLENBQUMsbUJBQW1CLGVBQWU2SixJQUFJLFNBQVNNO2dCQUMzRHhNLFFBQVFrQyxLQUFLLENBQUNzSztZQUNsQjtRQUNKO0lBQ0o7SUFDQTs7Ozs7O0tBTUMsR0FDRCxNQUFNQyxzQkFBc0IzSSxLQUFLLEVBQUU1RSxVQUFVLENBQUMsQ0FBQyxFQUFFO1FBQzdDLElBQUk4RSxnQkFBZ0I7UUFDcEIsSUFBSUMsc0JBQXNCO1FBQzFCLElBQUksSUFBSSxDQUFDekYsUUFBUSxLQUFLLFFBQVE7WUFDMUIsTUFBTTBGLGVBQWUzRyxrRUFBb0JBO1lBQ3pDLE1BQU1KLDBEQUFZQSxDQUFDLElBQUksQ0FBQzRFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDNUQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFBRStGLGFBQWEsa0JBQWtCLENBQUM7WUFDeEdGLGdCQUFnQixNQUFNeEcsbUVBQXFCQSxDQUFDMEc7WUFDNUNELHNCQUFzQkMsaUJBQWlCRixnQkFBZ0IsVUFBVTtRQUNyRTtRQUNBLElBQUk7WUFDQSxPQUFPLE1BQU14SCxvREFBUUEsQ0FBQyxJQUFJLENBQUNrRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDeEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM3RG1HLE1BQU07b0JBQ0ZQO29CQUNBVyxnQkFBZ0JUO29CQUNoQlUsdUJBQXVCVDtvQkFDdkJLLHNCQUFzQjt3QkFBRUMsZUFBZXJGLFFBQVFzRixZQUFZO29CQUFDO2dCQUNoRTtnQkFDQWpHLFNBQVMsSUFBSSxDQUFDQSxPQUFPO2dCQUNyQjRGLFlBQVlqRixRQUFRaUYsVUFBVTtZQUNsQztRQUNKLEVBQ0EsT0FBT2pDLE9BQU87WUFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixPQUFPO29CQUFFSyxNQUFNO29CQUFNTDtnQkFBTTtZQUMvQjtZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOztLQUVDLEdBQ0QsTUFBTXdLLG9CQUFvQjtRQUN0QixJQUFJdk47UUFDSixJQUFJO1lBQ0EsTUFBTSxFQUFFb0QsSUFBSSxFQUFFTCxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQytHLE9BQU87WUFDMUMsSUFBSS9HLE9BQ0EsTUFBTUE7WUFDVixPQUFPO2dCQUFFSyxNQUFNO29CQUFFb0ssWUFBWSxDQUFDeE4sS0FBS29ELEtBQUt1QyxJQUFJLENBQUM2SCxVQUFVLE1BQU0sUUFBUXhOLE9BQU8sS0FBSyxJQUFJQSxLQUFLLEVBQUU7Z0JBQUM7Z0JBQUcrQyxPQUFPO1lBQUs7UUFDaEgsRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTtvQkFBTUw7Z0JBQU07WUFDL0I7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7O0tBR0MsR0FDRCxNQUFNMEssYUFBYWpKLFdBQVcsRUFBRTtRQUM1QixJQUFJeEU7UUFDSixJQUFJO1lBQ0EsTUFBTSxFQUFFb0QsSUFBSSxFQUFFTCxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQ3NGLFdBQVcsQ0FBQyxPQUFPQztnQkFDbEQsSUFBSXRJLElBQUlDLElBQUl3RSxJQUFJdUIsSUFBSW1CO2dCQUNwQixNQUFNLEVBQUUvRCxJQUFJLEVBQUVMLEtBQUssRUFBRSxHQUFHdUY7Z0JBQ3hCLElBQUl2RixPQUNBLE1BQU1BO2dCQUNWLE1BQU1oRSxNQUFNLE1BQU0sSUFBSSxDQUFDMk8sa0JBQWtCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQzNPLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFeUYsWUFBWTBCLFFBQVEsRUFBRTtvQkFDckdsQixZQUFZLENBQUNoRixLQUFLd0UsWUFBWXpFLE9BQU8sTUFBTSxRQUFRQyxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdnRixVQUFVO29CQUN6Rm1CLFFBQVEsQ0FBQ2xHLEtBQUt1RSxZQUFZekUsT0FBTyxNQUFNLFFBQVFFLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR2tHLE1BQU07b0JBQ2pGQyxhQUFhLENBQUMzQixLQUFLRCxZQUFZekUsT0FBTyxNQUFNLFFBQVEwRSxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcyQixXQUFXO29CQUMzRkMscUJBQXFCO2dCQUN6QjtnQkFDQSxPQUFPLE1BQU1oSixvREFBUUEsQ0FBQyxJQUFJLENBQUNrRSxLQUFLLEVBQUUsT0FBT3hDLEtBQUs7b0JBQzFDSyxTQUFTLElBQUksQ0FBQ0EsT0FBTztvQkFDckJvSixLQUFLLENBQUNyQixLQUFLLENBQUNuQixLQUFLNUMsS0FBS0MsT0FBTyxNQUFNLFFBQVEyQyxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdlLFlBQVksTUFBTSxRQUFRSSxPQUFPLEtBQUssSUFBSUEsS0FBS1E7Z0JBQzFIO1lBQ0o7WUFDQSxJQUFJNUUsT0FDQSxNQUFNQTtZQUNWLElBQUlsRix1REFBU0EsTUFBTSxDQUFFLEVBQUNtQyxLQUFLd0UsWUFBWXpFLE9BQU8sTUFBTSxRQUFRQyxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdxRyxtQkFBbUIsR0FBRztnQkFDMUc0RSxPQUFPQyxRQUFRLENBQUM5SixNQUFNLENBQUNnQyxTQUFTLFFBQVFBLFNBQVMsS0FBSyxJQUFJLEtBQUssSUFBSUEsS0FBS3JFLEdBQUc7WUFDL0U7WUFDQSxPQUFPO2dCQUFFcUUsTUFBTTtvQkFBRThDLFVBQVUxQixZQUFZMEIsUUFBUTtvQkFBRW5ILEtBQUtxRSxTQUFTLFFBQVFBLFNBQVMsS0FBSyxJQUFJLEtBQUssSUFBSUEsS0FBS3JFLEdBQUc7Z0JBQUM7Z0JBQUdnRSxPQUFPO1lBQUs7UUFDOUgsRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTt3QkFBRThDLFVBQVUxQixZQUFZMEIsUUFBUTt3QkFBRW5ILEtBQUs7b0JBQUs7b0JBQUdnRTtnQkFBTTtZQUN4RTtZQUNBLE1BQU1BO1FBQ1Y7SUFDSjtJQUNBOztLQUVDLEdBQ0QsTUFBTTRLLGVBQWVDLFFBQVEsRUFBRTtRQUMzQixJQUFJO1lBQ0EsT0FBTyxNQUFNLElBQUksQ0FBQ3ZGLFdBQVcsQ0FBQyxPQUFPQztnQkFDakMsSUFBSXRJLElBQUlDO2dCQUNSLE1BQU0sRUFBRW1ELElBQUksRUFBRUwsS0FBSyxFQUFFLEdBQUd1RjtnQkFDeEIsSUFBSXZGLE9BQU87b0JBQ1AsTUFBTUE7Z0JBQ1Y7Z0JBQ0EsT0FBTyxNQUFNMUYsb0RBQVFBLENBQUMsSUFBSSxDQUFDa0UsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQ3hDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRTZPLFNBQVNDLFdBQVcsQ0FBQyxDQUFDLEVBQUU7b0JBQy9Gek8sU0FBUyxJQUFJLENBQUNBLE9BQU87b0JBQ3JCb0osS0FBSyxDQUFDdkksS0FBSyxDQUFDRCxLQUFLb0QsS0FBS0MsT0FBTyxNQUFNLFFBQVFyRCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcrRyxZQUFZLE1BQU0sUUFBUTlHLE9BQU8sS0FBSyxJQUFJQSxLQUFLMEg7Z0JBQzFIO1lBQ0o7UUFDSixFQUNBLE9BQU81RSxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTtvQkFBTUw7Z0JBQU07WUFDL0I7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7O0tBR0MsR0FDRCxNQUFNK0ssb0JBQW9CQyxZQUFZLEVBQUU7UUFDcEMsTUFBTUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFRCxhQUFhRSxTQUFTLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUM1RSxJQUFJLENBQUMvSyxNQUFNLENBQUM4SyxXQUFXO1FBQ3ZCLElBQUk7WUFDQSxNQUFNRSxZQUFZMUssS0FBS21HLEdBQUc7WUFDMUIsNkRBQTZEO1lBQzdELE9BQU8sTUFBTXpMLHVEQUFTQSxDQUFDLE9BQU9pUTtnQkFDMUIsTUFBTWhRLG1EQUFLQSxDQUFDZ1EsVUFBVSxNQUFNLHdCQUF3QjtnQkFDcEQsSUFBSSxDQUFDakwsTUFBTSxDQUFDOEssV0FBVyxzQkFBc0JHO2dCQUM3QyxPQUFPLE1BQU05USxvREFBUUEsQ0FBQyxJQUFJLENBQUNrRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDeEMsR0FBRyxDQUFDLCtCQUErQixDQUFDLEVBQUU7b0JBQ3BGbUcsTUFBTTt3QkFBRTJFLGVBQWVrRTtvQkFBYTtvQkFDcEMzTyxTQUFTLElBQUksQ0FBQ0EsT0FBTztvQkFDckJvRyxPQUFPbEksd0RBQWdCQTtnQkFDM0I7WUFDSixHQUFHLENBQUM2USxTQUFTQyxHQUFHOUYsU0FBV0EsVUFDdkJBLE9BQU92RixLQUFLLElBQ1ozRixzRUFBeUJBLENBQUNrTCxPQUFPdkYsS0FBSyxLQUN0QywyRkFBMkY7Z0JBQzNGUyxLQUFLbUcsR0FBRyxLQUFLLENBQUN3RSxVQUFVLEtBQUssTUFBTUQsWUFBWTNPO1FBQ3ZELEVBQ0EsT0FBT3dELE9BQU87WUFDVixJQUFJLENBQUNHLE1BQU0sQ0FBQzhLLFdBQVcsU0FBU2pMO1lBQ2hDLElBQUk1Rix3REFBV0EsQ0FBQzRGLFFBQVE7Z0JBQ3BCLE9BQU87b0JBQUVLLE1BQU07d0JBQUVDLFNBQVM7d0JBQU1zQyxNQUFNO29CQUFLO29CQUFHNUM7Z0JBQU07WUFDeEQ7WUFDQSxNQUFNQTtRQUNWLFNBQ1E7WUFDSixJQUFJLENBQUNHLE1BQU0sQ0FBQzhLLFdBQVc7UUFDM0I7SUFDSjtJQUNBeEUsZ0JBQWdCRCxZQUFZLEVBQUU7UUFDMUIsTUFBTThFLGlCQUFpQixPQUFPOUUsaUJBQWlCLFlBQzNDQSxpQkFBaUIsUUFDakIsa0JBQWtCQSxnQkFDbEIsbUJBQW1CQSxnQkFDbkIsZ0JBQWdCQTtRQUNwQixPQUFPOEU7SUFDWDtJQUNBLE1BQU1wSSxzQkFBc0JDLFFBQVEsRUFBRW5HLE9BQU8sRUFBRTtRQUMzQyxNQUFNaEIsTUFBTSxNQUFNLElBQUksQ0FBQzJPLGtCQUFrQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMzTyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUVtSCxVQUFVO1lBQ3pFbEIsWUFBWWpGLFFBQVFpRixVQUFVO1lBQzlCbUIsUUFBUXBHLFFBQVFvRyxNQUFNO1lBQ3RCQyxhQUFhckcsUUFBUXFHLFdBQVc7UUFDcEM7UUFDQSxJQUFJLENBQUNsRCxNQUFNLENBQUMsNEJBQTRCLFlBQVlnRCxVQUFVLFdBQVduRyxTQUFTLE9BQU9oQjtRQUN6Riw2QkFBNkI7UUFDN0IsSUFBSWxCLHVEQUFTQSxNQUFNLENBQUNrQyxRQUFRc0csbUJBQW1CLEVBQUU7WUFDN0M0RSxPQUFPQyxRQUFRLENBQUM5SixNQUFNLENBQUNyQztRQUMzQjtRQUNBLE9BQU87WUFBRXFFLE1BQU07Z0JBQUU4QztnQkFBVW5IO1lBQUk7WUFBR2dFLE9BQU87UUFBSztJQUNsRDtJQUNBOzs7S0FHQyxHQUNELE1BQU1zQixxQkFBcUI7UUFDdkIsSUFBSXJFO1FBQ0osTUFBTWdPLFlBQVk7UUFDbEIsSUFBSSxDQUFDOUssTUFBTSxDQUFDOEssV0FBVztRQUN2QixJQUFJO1lBQ0EsTUFBTTFFLGlCQUFpQixNQUFNMUwsMERBQVlBLENBQUMsSUFBSSxDQUFDZ0YsT0FBTyxFQUFFLElBQUksQ0FBQzVELFVBQVU7WUFDdkUsSUFBSSxDQUFDa0UsTUFBTSxDQUFDOEssV0FBVyx3QkFBd0IxRTtZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDRSxlQUFlLENBQUNGLGlCQUFpQjtnQkFDdkMsSUFBSSxDQUFDcEcsTUFBTSxDQUFDOEssV0FBVztnQkFDdkIsSUFBSTFFLG1CQUFtQixNQUFNO29CQUN6QixNQUFNLElBQUksQ0FBQ3JGLGNBQWM7Z0JBQzdCO2dCQUNBO1lBQ0o7WUFDQSxNQUFNdUcsVUFBVXdCLEtBQUtDLEtBQUssQ0FBQ3pJLEtBQUttRyxHQUFHLEtBQUs7WUFDeEMsTUFBTTJFLG9CQUFvQixDQUFDLENBQUN0TyxLQUFLc0osZUFBZUksVUFBVSxNQUFNLFFBQVExSixPQUFPLEtBQUssSUFBSUEsS0FBS3VPLFFBQU8sSUFBSy9ELFVBQVUvTix5REFBYUE7WUFDaEksSUFBSSxDQUFDeUcsTUFBTSxDQUFDOEssV0FBVyxDQUFDLFdBQVcsRUFBRU0sb0JBQW9CLEtBQUssT0FBTyx3QkFBd0IsRUFBRTdSLHlEQUFhQSxDQUFDLENBQUMsQ0FBQztZQUMvRyxJQUFJNlIsbUJBQW1CO2dCQUNuQixJQUFJLElBQUksQ0FBQ3JQLGdCQUFnQixJQUFJcUssZUFBZU8sYUFBYSxFQUFFO29CQUN2RCxNQUFNLEVBQUU5RyxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQzZHLGlCQUFpQixDQUFDTixlQUFlTyxhQUFhO29CQUMzRSxJQUFJOUcsT0FBTzt3QkFDUGxDLFFBQVFrQyxLQUFLLENBQUNBO3dCQUNkLElBQUksQ0FBQzNGLHNFQUF5QkEsQ0FBQzJGLFFBQVE7NEJBQ25DLElBQUksQ0FBQ0csTUFBTSxDQUFDOEssV0FBVyxtRUFBbUVqTDs0QkFDMUYsTUFBTSxJQUFJLENBQUNrQixjQUFjO3dCQUM3QjtvQkFDSjtnQkFDSjtZQUNKLE9BQ0s7Z0JBQ0QscUVBQXFFO2dCQUNyRSxvRUFBb0U7Z0JBQ3BFLHVEQUF1RDtnQkFDdkQsTUFBTSxJQUFJLENBQUNkLHFCQUFxQixDQUFDLGFBQWFtRztZQUNsRDtRQUNKLEVBQ0EsT0FBTytELEtBQUs7WUFDUixJQUFJLENBQUNuSyxNQUFNLENBQUM4SyxXQUFXLFNBQVNYO1lBQ2hDeE0sUUFBUWtDLEtBQUssQ0FBQ3NLO1lBQ2Q7UUFDSixTQUNRO1lBQ0osSUFBSSxDQUFDbkssTUFBTSxDQUFDOEssV0FBVztRQUMzQjtJQUNKO0lBQ0EsTUFBTXBFLGtCQUFrQm1FLFlBQVksRUFBRTtRQUNsQyxJQUFJL04sSUFBSUM7UUFDUixJQUFJLENBQUM4TixjQUFjO1lBQ2YsTUFBTSxJQUFJaFIsZ0VBQXVCQTtRQUNyQztRQUNBLG9DQUFvQztRQUNwQyxJQUFJLElBQUksQ0FBQ3dELGtCQUFrQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDQSxrQkFBa0IsQ0FBQ2lPLE9BQU87UUFDMUM7UUFDQSxNQUFNUixZQUFZLENBQUMsbUJBQW1CLEVBQUVELGFBQWFFLFNBQVMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQzFFLElBQUksQ0FBQy9LLE1BQU0sQ0FBQzhLLFdBQVc7UUFDdkIsSUFBSTtZQUNBLElBQUksQ0FBQ3pOLGtCQUFrQixHQUFHLElBQUk1QyxrREFBUUE7WUFDdEMsTUFBTSxFQUFFeUYsSUFBSSxFQUFFTCxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQytLLG1CQUFtQixDQUFDQztZQUN2RCxJQUFJaEwsT0FDQSxNQUFNQTtZQUNWLElBQUksQ0FBQ0ssS0FBS0MsT0FBTyxFQUNiLE1BQU0sSUFBSXRHLGdFQUF1QkE7WUFDckMsTUFBTSxJQUFJLENBQUNvSCxZQUFZLENBQUNmLEtBQUtDLE9BQU87WUFDcEMsTUFBTSxJQUFJLENBQUNGLHFCQUFxQixDQUFDLG1CQUFtQkMsS0FBS0MsT0FBTztZQUNoRSxNQUFNaUYsU0FBUztnQkFBRWpGLFNBQVNELEtBQUtDLE9BQU87Z0JBQUVOLE9BQU87WUFBSztZQUNwRCxJQUFJLENBQUN4QyxrQkFBa0IsQ0FBQ3dJLE9BQU8sQ0FBQ1Q7WUFDaEMsT0FBT0E7UUFDWCxFQUNBLE9BQU92RixPQUFPO1lBQ1YsSUFBSSxDQUFDRyxNQUFNLENBQUM4SyxXQUFXLFNBQVNqTDtZQUNoQyxJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO2dCQUNwQixNQUFNdUYsU0FBUztvQkFBRWpGLFNBQVM7b0JBQU1OO2dCQUFNO2dCQUN0QyxJQUFJLENBQUMzRixzRUFBeUJBLENBQUMyRixRQUFRO29CQUNuQyxNQUFNLElBQUksQ0FBQ2tCLGNBQWM7b0JBQ3pCLE1BQU0sSUFBSSxDQUFDZCxxQkFBcUIsQ0FBQyxjQUFjO2dCQUNuRDtnQkFDQ25ELENBQUFBLEtBQUssSUFBSSxDQUFDTyxrQkFBa0IsTUFBTSxRQUFRUCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcrSSxPQUFPLENBQUNUO2dCQUMvRSxPQUFPQTtZQUNYO1lBQ0NySSxDQUFBQSxLQUFLLElBQUksQ0FBQ00sa0JBQWtCLE1BQU0sUUFBUU4sT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHd08sTUFBTSxDQUFDMUw7WUFDOUUsTUFBTUE7UUFDVixTQUNRO1lBQ0osSUFBSSxDQUFDeEMsa0JBQWtCLEdBQUc7WUFDMUIsSUFBSSxDQUFDMkMsTUFBTSxDQUFDOEssV0FBVztRQUMzQjtJQUNKO0lBQ0EsTUFBTTdLLHNCQUFzQkYsS0FBSyxFQUFFSSxPQUFPLEVBQUVxTCxZQUFZLElBQUksRUFBRTtRQUMxRCxNQUFNVixZQUFZLENBQUMsdUJBQXVCLEVBQUUvSyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUNDLE1BQU0sQ0FBQzhLLFdBQVcsU0FBUzNLLFNBQVMsQ0FBQyxZQUFZLEVBQUVxTCxVQUFVLENBQUM7UUFDbkUsSUFBSTtZQUNBLElBQUksSUFBSSxDQUFDL04sZ0JBQWdCLElBQUkrTixXQUFXO2dCQUNwQyxJQUFJLENBQUMvTixnQkFBZ0IsQ0FBQ2dPLFdBQVcsQ0FBQztvQkFBRTFMO29CQUFPSTtnQkFBUTtZQUN2RDtZQUNBLE1BQU11TCxTQUFTLEVBQUU7WUFDakIsTUFBTUMsV0FBV0MsTUFBTUMsSUFBSSxDQUFDLElBQUksQ0FBQzVPLG1CQUFtQixDQUFDNk8sTUFBTSxJQUFJQyxHQUFHLENBQUMsT0FBT0M7Z0JBQ3RFLElBQUk7b0JBQ0EsTUFBTUEsRUFBRXBDLFFBQVEsQ0FBQzdKLE9BQU9JO2dCQUM1QixFQUNBLE9BQU9QLEdBQUc7b0JBQ044TCxPQUFPNUYsSUFBSSxDQUFDbEc7Z0JBQ2hCO1lBQ0o7WUFDQSxNQUFNZ0csUUFBUUksR0FBRyxDQUFDMkY7WUFDbEIsSUFBSUQsT0FBTy9GLE1BQU0sR0FBRyxHQUFHO2dCQUNuQixJQUFLLElBQUlzRyxJQUFJLEdBQUdBLElBQUlQLE9BQU8vRixNQUFNLEVBQUVzRyxLQUFLLEVBQUc7b0JBQ3ZDdE8sUUFBUWtDLEtBQUssQ0FBQzZMLE1BQU0sQ0FBQ08sRUFBRTtnQkFDM0I7Z0JBQ0EsTUFBTVAsTUFBTSxDQUFDLEVBQUU7WUFDbkI7UUFDSixTQUNRO1lBQ0osSUFBSSxDQUFDMUwsTUFBTSxDQUFDOEssV0FBVztRQUMzQjtJQUNKO0lBQ0E7OztLQUdDLEdBQ0QsTUFBTTdKLGFBQWFkLE9BQU8sRUFBRTtRQUN4QixJQUFJLENBQUNILE1BQU0sQ0FBQyxtQkFBbUJHO1FBQy9CLE1BQU1yRiwwREFBWUEsQ0FBQyxJQUFJLENBQUM0RSxPQUFPLEVBQUUsSUFBSSxDQUFDNUQsVUFBVSxFQUFFcUU7SUFDdEQ7SUFDQSxNQUFNWSxpQkFBaUI7UUFDbkIsSUFBSSxDQUFDZixNQUFNLENBQUM7UUFDWixNQUFNcEYsNkRBQWVBLENBQUMsSUFBSSxDQUFDOEUsT0FBTyxFQUFFLElBQUksQ0FBQzVELFVBQVU7SUFDdkQ7SUFDQTs7Ozs7S0FLQyxHQUNEb1EsbUNBQW1DO1FBQy9CLElBQUksQ0FBQ2xNLE1BQU0sQ0FBQztRQUNaLE1BQU00SixXQUFXLElBQUksQ0FBQ3hNLHlCQUF5QjtRQUMvQyxJQUFJLENBQUNBLHlCQUF5QixHQUFHO1FBQ2pDLElBQUk7WUFDQSxJQUFJd00sWUFBWWpQLHVEQUFTQSxNQUFPb04sQ0FBQUEsV0FBVyxRQUFRQSxXQUFXLEtBQUssSUFBSSxLQUFLLElBQUlBLE9BQU9vRSxtQkFBbUIsR0FBRztnQkFDekdwRSxPQUFPb0UsbUJBQW1CLENBQUMsb0JBQW9CdkM7WUFDbkQ7UUFDSixFQUNBLE9BQU9oSyxHQUFHO1lBQ05qQyxRQUFRa0MsS0FBSyxDQUFDLDZDQUE2Q0Q7UUFDL0Q7SUFDSjtJQUNBOzs7S0FHQyxHQUNELE1BQU13TSxvQkFBb0I7UUFDdEIsTUFBTSxJQUFJLENBQUNDLGdCQUFnQjtRQUMzQixJQUFJLENBQUNyTSxNQUFNLENBQUM7UUFDWixNQUFNc00sU0FBU0MsWUFBWSxJQUFNLElBQUksQ0FBQ0MscUJBQXFCLElBQUluUTtRQUMvRCxJQUFJLENBQUNjLGlCQUFpQixHQUFHbVA7UUFDekIsSUFBSUEsVUFBVSxPQUFPQSxXQUFXLFlBQVksT0FBT0EsT0FBT0csS0FBSyxLQUFLLFlBQVk7WUFDNUUsK0RBQStEO1lBQy9ELGtEQUFrRDtZQUNsRCw2REFBNkQ7WUFDN0QsK0RBQStEO1lBQy9ELHFFQUFxRTtZQUNyRSxvQ0FBb0M7WUFDcENILE9BQU9HLEtBQUs7UUFDWixhQUFhO1FBQ2pCLE9BQ0ssSUFBSSxPQUFPQyxTQUFTLGVBQWUsT0FBT0EsS0FBS0MsVUFBVSxLQUFLLFlBQVk7WUFDM0UsaURBQWlEO1lBQ2pELDBEQUEwRDtZQUMxRCxhQUFhO1lBQ2JELEtBQUtDLFVBQVUsQ0FBQ0w7UUFDcEI7UUFDQSwyRUFBMkU7UUFDM0UseUVBQXlFO1FBQ3pFLFNBQVM7UUFDVHBMLFdBQVc7WUFDUCxNQUFNLElBQUksQ0FBQzVELGlCQUFpQjtZQUM1QixNQUFNLElBQUksQ0FBQ2tQLHFCQUFxQjtRQUNwQyxHQUFHO0lBQ1A7SUFDQTs7O0tBR0MsR0FDRCxNQUFNSCxtQkFBbUI7UUFDckIsSUFBSSxDQUFDck0sTUFBTSxDQUFDO1FBQ1osTUFBTXNNLFNBQVMsSUFBSSxDQUFDblAsaUJBQWlCO1FBQ3JDLElBQUksQ0FBQ0EsaUJBQWlCLEdBQUc7UUFDekIsSUFBSW1QLFFBQVE7WUFDUk0sY0FBY047UUFDbEI7SUFDSjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FxQkMsR0FDRCxNQUFNTyxtQkFBbUI7UUFDckIsSUFBSSxDQUFDWCxnQ0FBZ0M7UUFDckMsTUFBTSxJQUFJLENBQUNFLGlCQUFpQjtJQUNoQztJQUNBOzs7Ozs7O0tBT0MsR0FDRCxNQUFNVSxrQkFBa0I7UUFDcEIsSUFBSSxDQUFDWixnQ0FBZ0M7UUFDckMsTUFBTSxJQUFJLENBQUNHLGdCQUFnQjtJQUMvQjtJQUNBOztLQUVDLEdBQ0QsTUFBTUcsd0JBQXdCO1FBQzFCLElBQUksQ0FBQ3hNLE1BQU0sQ0FBQyw0QkFBNEI7UUFDeEMsSUFBSTtZQUNBLE1BQU0sSUFBSSxDQUFDUSxZQUFZLENBQUMsR0FBRztnQkFDdkIsSUFBSTtvQkFDQSxNQUFNaUcsTUFBTW5HLEtBQUttRyxHQUFHO29CQUNwQixJQUFJO3dCQUNBLE9BQU8sTUFBTSxJQUFJLENBQUN0QixXQUFXLENBQUMsT0FBT0M7NEJBQ2pDLE1BQU0sRUFBRWxGLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEVBQUcsR0FBR2lGOzRCQUMvQixJQUFJLENBQUNqRixXQUFXLENBQUNBLFFBQVF3RyxhQUFhLElBQUksQ0FBQ3hHLFFBQVFxRyxVQUFVLEVBQUU7Z0NBQzNELElBQUksQ0FBQ3hHLE1BQU0sQ0FBQyw0QkFBNEI7Z0NBQ3hDOzRCQUNKOzRCQUNBLDBFQUEwRTs0QkFDMUUsTUFBTStNLGlCQUFpQmpFLEtBQUtrRSxLQUFLLENBQUMsQ0FBQzdNLFFBQVFxRyxVQUFVLEdBQUcsT0FBT0MsR0FBRSxJQUFLcEs7NEJBQ3RFLElBQUksQ0FBQzJELE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyx3QkFBd0IsRUFBRStNLGVBQWUscUJBQXFCLEVBQUUxUSwyQkFBMkIseUJBQXlCLEVBQUVDLDRCQUE0QixNQUFNLENBQUM7NEJBQ2xNLElBQUl5USxrQkFBa0J6USw2QkFBNkI7Z0NBQy9DLE1BQU0sSUFBSSxDQUFDb0ssaUJBQWlCLENBQUN2RyxRQUFRd0csYUFBYTs0QkFDdEQ7d0JBQ0o7b0JBQ0osRUFDQSxPQUFPL0csR0FBRzt3QkFDTmpDLFFBQVFrQyxLQUFLLENBQUMsMEVBQTBFRDtvQkFDNUY7Z0JBQ0osU0FDUTtvQkFDSixJQUFJLENBQUNJLE1BQU0sQ0FBQyw0QkFBNEI7Z0JBQzVDO1lBQ0o7UUFDSixFQUNBLE9BQU9KLEdBQUc7WUFDTixJQUFJQSxFQUFFcU4sZ0JBQWdCLElBQUlyTixhQUFhbEUsK0RBQXVCQSxFQUFFO2dCQUM1RCxJQUFJLENBQUNzRSxNQUFNLENBQUM7WUFDaEIsT0FDSztnQkFDRCxNQUFNSjtZQUNWO1FBQ0o7SUFDSjtJQUNBOzs7O0tBSUMsR0FDRCxNQUFNd0IsMEJBQTBCO1FBQzVCLElBQUksQ0FBQ3BCLE1BQU0sQ0FBQztRQUNaLElBQUksQ0FBQ3JGLHVEQUFTQSxNQUFNLENBQUVvTixDQUFBQSxXQUFXLFFBQVFBLFdBQVcsS0FBSyxJQUFJLEtBQUssSUFBSUEsT0FBT2pJLGdCQUFnQixHQUFHO1lBQzVGLElBQUksSUFBSSxDQUFDL0QsZ0JBQWdCLEVBQUU7Z0JBQ3ZCLG1FQUFtRTtnQkFDbkUsSUFBSSxDQUFDOFEsZ0JBQWdCO1lBQ3pCO1lBQ0EsT0FBTztRQUNYO1FBQ0EsSUFBSTtZQUNBLElBQUksQ0FBQ3pQLHlCQUF5QixHQUFHLFVBQVksTUFBTSxJQUFJLENBQUM4UCxvQkFBb0IsQ0FBQztZQUM3RW5GLFdBQVcsUUFBUUEsV0FBVyxLQUFLLElBQUksS0FBSyxJQUFJQSxPQUFPakksZ0JBQWdCLENBQUMsb0JBQW9CLElBQUksQ0FBQzFDLHlCQUF5QjtZQUMxSCx3RUFBd0U7WUFDeEUsMEJBQTBCO1lBQzFCLE1BQU0sSUFBSSxDQUFDOFAsb0JBQW9CLENBQUMsT0FBTyxlQUFlO1FBQzFELEVBQ0EsT0FBT3JOLE9BQU87WUFDVmxDLFFBQVFrQyxLQUFLLENBQUMsMkJBQTJCQTtRQUM3QztJQUNKO0lBQ0E7O0tBRUMsR0FDRCxNQUFNcU4scUJBQXFCQyxvQkFBb0IsRUFBRTtRQUM3QyxNQUFNQyxhQUFhLENBQUMsc0JBQXNCLEVBQUVELHFCQUFxQixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDbk4sTUFBTSxDQUFDb04sWUFBWSxtQkFBbUJDLFNBQVNDLGVBQWU7UUFDbkUsSUFBSUQsU0FBU0MsZUFBZSxLQUFLLFdBQVc7WUFDeEMsSUFBSSxJQUFJLENBQUN2UixnQkFBZ0IsRUFBRTtnQkFDdkIsNkVBQTZFO2dCQUM3RSxpQ0FBaUM7Z0JBQ2pDLElBQUksQ0FBQ3FRLGlCQUFpQjtZQUMxQjtZQUNBLElBQUksQ0FBQ2Usc0JBQXNCO2dCQUN2QiwyREFBMkQ7Z0JBQzNELHVFQUF1RTtnQkFDdkUsdUVBQXVFO2dCQUN2RSxnQ0FBZ0M7Z0JBQ2hDLE1BQU0sSUFBSSxDQUFDN1AsaUJBQWlCO2dCQUM1QixNQUFNLElBQUksQ0FBQ2tELFlBQVksQ0FBQyxDQUFDLEdBQUc7b0JBQ3hCLElBQUk2TSxTQUFTQyxlQUFlLEtBQUssV0FBVzt3QkFDeEMsSUFBSSxDQUFDdE4sTUFBTSxDQUFDb04sWUFBWTt3QkFDeEIsMkRBQTJEO3dCQUMzRDtvQkFDSjtvQkFDQSxzQkFBc0I7b0JBQ3RCLE1BQU0sSUFBSSxDQUFDak0sa0JBQWtCO2dCQUNqQztZQUNKO1FBQ0osT0FDSyxJQUFJa00sU0FBU0MsZUFBZSxLQUFLLFVBQVU7WUFDNUMsSUFBSSxJQUFJLENBQUN2UixnQkFBZ0IsRUFBRTtnQkFDdkIsSUFBSSxDQUFDc1EsZ0JBQWdCO1lBQ3pCO1FBQ0o7SUFDSjtJQUNBOzs7OztLQUtDLEdBQ0QsTUFBTTdCLG1CQUFtQjNPLEdBQUcsRUFBRW1ILFFBQVEsRUFBRW5HLE9BQU8sRUFBRTtRQUM3QyxNQUFNMFEsWUFBWTtZQUFDLENBQUMsU0FBUyxFQUFFQyxtQkFBbUJ4SyxVQUFVLENBQUM7U0FBQztRQUM5RCxJQUFJbkcsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVFpRixVQUFVLEVBQUU7WUFDdEV5TCxVQUFVekgsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFMEgsbUJBQW1CM1EsUUFBUWlGLFVBQVUsRUFBRSxDQUFDO1FBQzFFO1FBQ0EsSUFBSWpGLFlBQVksUUFBUUEsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJQSxRQUFRb0csTUFBTSxFQUFFO1lBQ2xFc0ssVUFBVXpILElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTBILG1CQUFtQjNRLFFBQVFvRyxNQUFNLEVBQUUsQ0FBQztRQUNqRTtRQUNBLElBQUksSUFBSSxDQUFDOUcsUUFBUSxLQUFLLFFBQVE7WUFDMUIsTUFBTTBGLGVBQWUzRyxrRUFBb0JBO1lBQ3pDLE1BQU1KLDBEQUFZQSxDQUFDLElBQUksQ0FBQzRFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDNUQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFK0Y7WUFDckUsTUFBTUYsZ0JBQWdCLE1BQU14RyxtRUFBcUJBLENBQUMwRztZQUNsRCxNQUFNRCxzQkFBc0JDLGlCQUFpQkYsZ0JBQWdCLFVBQVU7WUFDdkUsSUFBSSxDQUFDM0IsTUFBTSxDQUFDLFFBQVEsaUJBQWlCLENBQUMsRUFBRTZCLGFBQWFrSixTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLGtCQUFrQnBKLGVBQWUsVUFBVUM7WUFDdEgsTUFBTTZMLGFBQWEsSUFBSUMsZ0JBQWdCO2dCQUNuQ3RMLGdCQUFnQixDQUFDLEVBQUVvTCxtQkFBbUI3TCxlQUFlLENBQUM7Z0JBQ3REVSx1QkFBdUIsQ0FBQyxFQUFFbUwsbUJBQW1CNUwscUJBQXFCLENBQUM7WUFDdkU7WUFDQTJMLFVBQVV6SCxJQUFJLENBQUMySCxXQUFXaEYsUUFBUTtRQUN0QztRQUNBLElBQUk1TCxZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXFHLFdBQVcsRUFBRTtZQUN2RSxNQUFNeUssUUFBUSxJQUFJRCxnQkFBZ0I3USxRQUFRcUcsV0FBVztZQUNyRHFLLFVBQVV6SCxJQUFJLENBQUM2SCxNQUFNbEYsUUFBUTtRQUNqQztRQUNBLElBQUk1TCxZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXNHLG1CQUFtQixFQUFFO1lBQy9Fb0ssVUFBVXpILElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUFFakosUUFBUXNHLG1CQUFtQixDQUFDLENBQUM7UUFDdEU7UUFDQSxPQUFPLENBQUMsRUFBRXRILElBQUksQ0FBQyxFQUFFMFIsVUFBVUssSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMxQztJQUNBLE1BQU0zTyxVQUFVc0YsTUFBTSxFQUFFO1FBQ3BCLElBQUk7WUFDQSxPQUFPLE1BQU0sSUFBSSxDQUFDWSxXQUFXLENBQUMsT0FBT0M7Z0JBQ2pDLElBQUl0STtnQkFDSixNQUFNLEVBQUVvRCxNQUFNK0csV0FBVyxFQUFFcEgsT0FBT3dGLFlBQVksRUFBRSxHQUFHRDtnQkFDbkQsSUFBSUMsY0FBYztvQkFDZCxPQUFPO3dCQUFFbkYsTUFBTTt3QkFBTUwsT0FBT3dGO29CQUFhO2dCQUM3QztnQkFDQSxPQUFPLE1BQU1sTCxvREFBUUEsQ0FBQyxJQUFJLENBQUNrRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDeEMsR0FBRyxDQUFDLFNBQVMsRUFBRTBJLE9BQU9zSixRQUFRLENBQUMsQ0FBQyxFQUFFO29CQUNsRjNSLFNBQVMsSUFBSSxDQUFDQSxPQUFPO29CQUNyQm9KLEtBQUssQ0FBQ3hJLEtBQUttSyxnQkFBZ0IsUUFBUUEsZ0JBQWdCLEtBQUssSUFBSSxLQUFLLElBQUlBLFlBQVk5RyxPQUFPLE1BQU0sUUFBUXJELE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBRytHLFlBQVk7Z0JBQ2xKO1lBQ0o7UUFDSixFQUNBLE9BQU9oRSxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTtvQkFBTUw7Z0JBQU07WUFDL0I7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7S0FFQyxHQUNELE1BQU1kLFFBQVF3RixNQUFNLEVBQUU7UUFDbEIsSUFBSTtZQUNBLE9BQU8sTUFBTSxJQUFJLENBQUNZLFdBQVcsQ0FBQyxPQUFPQztnQkFDakMsSUFBSXRJLElBQUlDO2dCQUNSLE1BQU0sRUFBRW1ELE1BQU0rRyxXQUFXLEVBQUVwSCxPQUFPd0YsWUFBWSxFQUFFLEdBQUdEO2dCQUNuRCxJQUFJQyxjQUFjO29CQUNkLE9BQU87d0JBQUVuRixNQUFNO3dCQUFNTCxPQUFPd0Y7b0JBQWE7Z0JBQzdDO2dCQUNBLE1BQU0sRUFBRW5GLElBQUksRUFBRUwsS0FBSyxFQUFFLEdBQUcsTUFBTTFGLG9EQUFRQSxDQUFDLElBQUksQ0FBQ2tFLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUN4QyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzlFbUcsTUFBTTt3QkFDRjhMLGVBQWV2SixPQUFPd0osWUFBWTt3QkFDbENDLGFBQWF6SixPQUFPMEosVUFBVTt3QkFDOUJDLFFBQVEzSixPQUFPMkosTUFBTTtvQkFDekI7b0JBQ0FoUyxTQUFTLElBQUksQ0FBQ0EsT0FBTztvQkFDckJvSixLQUFLLENBQUN4SSxLQUFLbUssZ0JBQWdCLFFBQVFBLGdCQUFnQixLQUFLLElBQUksS0FBSyxJQUFJQSxZQUFZOUcsT0FBTyxNQUFNLFFBQVFyRCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcrRyxZQUFZO2dCQUNsSjtnQkFDQSxJQUFJaEUsT0FBTztvQkFDUCxPQUFPO3dCQUFFSyxNQUFNO3dCQUFNTDtvQkFBTTtnQkFDL0I7Z0JBQ0EsSUFBSSxDQUFDOUMsS0FBS21ELFNBQVMsUUFBUUEsU0FBUyxLQUFLLElBQUksS0FBSyxJQUFJQSxLQUFLaU8sSUFBSSxNQUFNLFFBQVFwUixPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdxUixPQUFPLEVBQUU7b0JBQzlHbE8sS0FBS2lPLElBQUksQ0FBQ0MsT0FBTyxHQUFHLENBQUMseUJBQXlCLEVBQUVsTyxLQUFLaU8sSUFBSSxDQUFDQyxPQUFPLENBQUMsQ0FBQztnQkFDdkU7Z0JBQ0EsT0FBTztvQkFBRWxPO29CQUFNTCxPQUFPO2dCQUFLO1lBQy9CO1FBQ0osRUFDQSxPQUFPQSxPQUFPO1lBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtnQkFDcEIsT0FBTztvQkFBRUssTUFBTTtvQkFBTUw7Z0JBQU07WUFDL0I7WUFDQSxNQUFNQTtRQUNWO0lBQ0o7SUFDQTs7S0FFQyxHQUNELE1BQU1qQixRQUFRMkYsTUFBTSxFQUFFO1FBQ2xCLE9BQU8sSUFBSSxDQUFDL0QsWUFBWSxDQUFDLENBQUMsR0FBRztZQUN6QixJQUFJO2dCQUNBLE9BQU8sTUFBTSxJQUFJLENBQUMyRSxXQUFXLENBQUMsT0FBT0M7b0JBQ2pDLElBQUl0STtvQkFDSixNQUFNLEVBQUVvRCxNQUFNK0csV0FBVyxFQUFFcEgsT0FBT3dGLFlBQVksRUFBRSxHQUFHRDtvQkFDbkQsSUFBSUMsY0FBYzt3QkFDZCxPQUFPOzRCQUFFbkYsTUFBTTs0QkFBTUwsT0FBT3dGO3dCQUFhO29CQUM3QztvQkFDQSxNQUFNLEVBQUVuRixJQUFJLEVBQUVMLEtBQUssRUFBRSxHQUFHLE1BQU0xRixvREFBUUEsQ0FBQyxJQUFJLENBQUNrRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDeEMsR0FBRyxDQUFDLFNBQVMsRUFBRTBJLE9BQU9zSixRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ3hHN0wsTUFBTTs0QkFBRWtHLE1BQU0zRCxPQUFPMkQsSUFBSTs0QkFBRW1HLGNBQWM5SixPQUFPK0osV0FBVzt3QkFBQzt3QkFDNURwUyxTQUFTLElBQUksQ0FBQ0EsT0FBTzt3QkFDckJvSixLQUFLLENBQUN4SSxLQUFLbUssZ0JBQWdCLFFBQVFBLGdCQUFnQixLQUFLLElBQUksS0FBSyxJQUFJQSxZQUFZOUcsT0FBTyxNQUFNLFFBQVFyRCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcrRyxZQUFZO29CQUNsSjtvQkFDQSxJQUFJaEUsT0FBTzt3QkFDUCxPQUFPOzRCQUFFSyxNQUFNOzRCQUFNTDt3QkFBTTtvQkFDL0I7b0JBQ0EsTUFBTSxJQUFJLENBQUNvQixZQUFZLENBQUNoRCxPQUFPQyxNQUFNLENBQUM7d0JBQUVzSSxZQUFZc0MsS0FBS0MsS0FBSyxDQUFDekksS0FBS21HLEdBQUcsS0FBSyxRQUFRdkcsS0FBSzBILFVBQVU7b0JBQUMsR0FBRzFIO29CQUN2RyxNQUFNLElBQUksQ0FBQ0QscUJBQXFCLENBQUMsMEJBQTBCQztvQkFDM0QsT0FBTzt3QkFBRUE7d0JBQU1MO29CQUFNO2dCQUN6QjtZQUNKLEVBQ0EsT0FBT0EsT0FBTztnQkFDVixJQUFJNUYsd0RBQVdBLENBQUM0RixRQUFRO29CQUNwQixPQUFPO3dCQUFFSyxNQUFNO3dCQUFNTDtvQkFBTTtnQkFDL0I7Z0JBQ0EsTUFBTUE7WUFDVjtRQUNKO0lBQ0o7SUFDQTs7S0FFQyxHQUNELE1BQU1WLFdBQVdvRixNQUFNLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUMvRCxZQUFZLENBQUMsQ0FBQyxHQUFHO1lBQ3pCLElBQUk7Z0JBQ0EsT0FBTyxNQUFNLElBQUksQ0FBQzJFLFdBQVcsQ0FBQyxPQUFPQztvQkFDakMsSUFBSXRJO29CQUNKLE1BQU0sRUFBRW9ELE1BQU0rRyxXQUFXLEVBQUVwSCxPQUFPd0YsWUFBWSxFQUFFLEdBQUdEO29CQUNuRCxJQUFJQyxjQUFjO3dCQUNkLE9BQU87NEJBQUVuRixNQUFNOzRCQUFNTCxPQUFPd0Y7d0JBQWE7b0JBQzdDO29CQUNBLE9BQU8sTUFBTWxMLG9EQUFRQSxDQUFDLElBQUksQ0FBQ2tFLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUN4QyxHQUFHLENBQUMsU0FBUyxFQUFFMEksT0FBT3NKLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTt3QkFDMUYzUixTQUFTLElBQUksQ0FBQ0EsT0FBTzt3QkFDckJvSixLQUFLLENBQUN4SSxLQUFLbUssZ0JBQWdCLFFBQVFBLGdCQUFnQixLQUFLLElBQUksS0FBSyxJQUFJQSxZQUFZOUcsT0FBTyxNQUFNLFFBQVFyRCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUcrRyxZQUFZO29CQUNsSjtnQkFDSjtZQUNKLEVBQ0EsT0FBT2hFLE9BQU87Z0JBQ1YsSUFBSTVGLHdEQUFXQSxDQUFDNEYsUUFBUTtvQkFDcEIsT0FBTzt3QkFBRUssTUFBTTt3QkFBTUw7b0JBQU07Z0JBQy9CO2dCQUNBLE1BQU1BO1lBQ1Y7UUFDSjtJQUNKO0lBQ0E7O0tBRUMsR0FDRCxNQUFNTixvQkFBb0JnRixNQUFNLEVBQUU7UUFDOUIseUVBQXlFO1FBQ3pFLHFCQUFxQjtRQUNyQixNQUFNLEVBQUVyRSxNQUFNcU8sYUFBYSxFQUFFMU8sT0FBTzJPLGNBQWMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDclAsVUFBVSxDQUFDO1lBQ3pFME8sVUFBVXRKLE9BQU9zSixRQUFRO1FBQzdCO1FBQ0EsSUFBSVcsZ0JBQWdCO1lBQ2hCLE9BQU87Z0JBQUV0TyxNQUFNO2dCQUFNTCxPQUFPMk87WUFBZTtRQUMvQztRQUNBLE9BQU8sTUFBTSxJQUFJLENBQUM1UCxPQUFPLENBQUM7WUFDdEJpUCxVQUFVdEosT0FBT3NKLFFBQVE7WUFDekJTLGFBQWFDLGNBQWMxRSxFQUFFO1lBQzdCM0IsTUFBTTNELE9BQU8yRCxJQUFJO1FBQ3JCO0lBQ0o7SUFDQTs7S0FFQyxHQUNELE1BQU03SSxlQUFlO1FBQ2pCLGtFQUFrRTtRQUNsRSxNQUFNLEVBQUVhLE1BQU0sRUFBRXVDLElBQUksRUFBRSxFQUFFNUMsT0FBT3FILFNBQVMsRUFBRyxHQUFHLE1BQU0sSUFBSSxDQUFDTixPQUFPO1FBQ2hFLElBQUlNLFdBQVc7WUFDWCxPQUFPO2dCQUFFaEgsTUFBTTtnQkFBTUwsT0FBT3FIO1lBQVU7UUFDMUM7UUFDQSxNQUFNdUgsVUFBVSxDQUFDaE0sU0FBUyxRQUFRQSxTQUFTLEtBQUssSUFBSSxLQUFLLElBQUlBLEtBQUtnTSxPQUFPLEtBQUssRUFBRTtRQUNoRixNQUFNTixPQUFPTSxRQUFRQyxNQUFNLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT1gsV0FBVyxLQUFLLFVBQVVXLE9BQU9qRixNQUFNLEtBQUs7UUFDM0YsT0FBTztZQUNIeEosTUFBTTtnQkFDRjhGLEtBQUt5STtnQkFDTE47WUFDSjtZQUNBdE8sT0FBTztRQUNYO0lBQ0o7SUFDQTs7S0FFQyxHQUNELE1BQU1KLGtDQUFrQztRQUNwQyxPQUFPLElBQUksQ0FBQ2UsWUFBWSxDQUFDLENBQUMsR0FBRztZQUN6QixPQUFPLE1BQU0sSUFBSSxDQUFDMkUsV0FBVyxDQUFDLE9BQU9DO2dCQUNqQyxJQUFJdEksSUFBSUM7Z0JBQ1IsTUFBTSxFQUFFbUQsTUFBTSxFQUFFQyxPQUFPLEVBQUUsRUFBRU4sT0FBT3dGLFlBQVksRUFBRyxHQUFHRDtnQkFDcEQsSUFBSUMsY0FBYztvQkFDZCxPQUFPO3dCQUFFbkYsTUFBTTt3QkFBTUwsT0FBT3dGO29CQUFhO2dCQUM3QztnQkFDQSxJQUFJLENBQUNsRixTQUFTO29CQUNWLE9BQU87d0JBQ0hELE1BQU07NEJBQUUwTyxjQUFjOzRCQUFNQyxXQUFXOzRCQUFNQyw4QkFBOEIsRUFBRTt3QkFBQzt3QkFDOUVqUCxPQUFPO29CQUNYO2dCQUNKO2dCQUNBLE1BQU0ySCxVQUFVLElBQUksQ0FBQ0wsVUFBVSxDQUFDaEgsUUFBUTBELFlBQVk7Z0JBQ3BELElBQUkrSyxlQUFlO2dCQUNuQixJQUFJcEgsUUFBUXVILEdBQUcsRUFBRTtvQkFDYkgsZUFBZXBILFFBQVF1SCxHQUFHO2dCQUM5QjtnQkFDQSxJQUFJRixZQUFZRDtnQkFDaEIsTUFBTUksa0JBQWtCLENBQUNqUyxLQUFLLENBQUNELEtBQUtxRCxRQUFRc0MsSUFBSSxDQUFDZ00sT0FBTyxNQUFNLFFBQVEzUixPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUc0UixNQUFNLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT2pGLE1BQU0sS0FBSyxXQUFVLE1BQU8sUUFBUTNNLE9BQU8sS0FBSyxJQUFJQSxLQUFLLEVBQUU7Z0JBQ3ZMLElBQUlpUyxnQkFBZ0JySixNQUFNLEdBQUcsR0FBRztvQkFDNUJrSixZQUFZO2dCQUNoQjtnQkFDQSxNQUFNQywrQkFBK0J0SCxRQUFReUgsR0FBRyxJQUFJLEVBQUU7Z0JBQ3RELE9BQU87b0JBQUUvTyxNQUFNO3dCQUFFME87d0JBQWNDO3dCQUFXQztvQkFBNkI7b0JBQUdqUCxPQUFPO2dCQUFLO1lBQzFGO1FBQ0o7SUFDSjtBQUNKO0FBQ0FsRCxhQUFhbUIsY0FBYyxHQUFHLEdBQzlCLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL0dvVHJ1ZUNsaWVudC5qcz80OWQyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBHb1RydWVBZG1pbkFwaSBmcm9tICcuL0dvVHJ1ZUFkbWluQXBpJztcbmltcG9ydCB7IERFRkFVTFRfSEVBREVSUywgRVhQSVJZX01BUkdJTiwgR09UUlVFX1VSTCwgU1RPUkFHRV9LRVkgfSBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yLCBBdXRoUEtDRUdyYW50Q29kZUV4Y2hhbmdlRXJyb3IsIEF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvciwgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IsIEF1dGhJbnZhbGlkVG9rZW5SZXNwb25zZUVycm9yLCBBdXRoVW5rbm93bkVycm9yLCBpc0F1dGhBcGlFcnJvciwgaXNBdXRoRXJyb3IsIGlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IsIH0gZnJvbSAnLi9saWIvZXJyb3JzJztcbmltcG9ydCB7IF9yZXF1ZXN0LCBfc2Vzc2lvblJlc3BvbnNlLCBfc2Vzc2lvblJlc3BvbnNlUGFzc3dvcmQsIF91c2VyUmVzcG9uc2UsIF9zc29SZXNwb25zZSwgfSBmcm9tICcuL2xpYi9mZXRjaCc7XG5pbXBvcnQgeyBkZWNvZGVKV1RQYXlsb2FkLCBEZWZlcnJlZCwgZ2V0SXRlbUFzeW5jLCBpc0Jyb3dzZXIsIHJlbW92ZUl0ZW1Bc3luYywgcmVzb2x2ZUZldGNoLCBzZXRJdGVtQXN5bmMsIHV1aWQsIHJldHJ5YWJsZSwgc2xlZXAsIGdlbmVyYXRlUEtDRVZlcmlmaWVyLCBnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UsIHN1cHBvcnRzTG9jYWxTdG9yYWdlLCBwYXJzZVBhcmFtZXRlcnNGcm9tVVJMLCB9IGZyb20gJy4vbGliL2hlbHBlcnMnO1xuaW1wb3J0IHsgbG9jYWxTdG9yYWdlQWRhcHRlciwgbWVtb3J5TG9jYWxTdG9yYWdlQWRhcHRlciB9IGZyb20gJy4vbGliL2xvY2FsLXN0b3JhZ2UnO1xuaW1wb3J0IHsgcG9seWZpbGxHbG9iYWxUaGlzIH0gZnJvbSAnLi9saWIvcG9seWZpbGxzJztcbmltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuL2xpYi92ZXJzaW9uJztcbmltcG9ydCB7IExvY2tBY3F1aXJlVGltZW91dEVycm9yLCBuYXZpZ2F0b3JMb2NrIH0gZnJvbSAnLi9saWIvbG9ja3MnO1xucG9seWZpbGxHbG9iYWxUaGlzKCk7IC8vIE1ha2UgXCJnbG9iYWxUaGlzXCIgYXZhaWxhYmxlXG5jb25zdCBERUZBVUxUX09QVElPTlMgPSB7XG4gICAgdXJsOiBHT1RSVUVfVVJMLFxuICAgIHN0b3JhZ2VLZXk6IFNUT1JBR0VfS0VZLFxuICAgIGF1dG9SZWZyZXNoVG9rZW46IHRydWUsXG4gICAgcGVyc2lzdFNlc3Npb246IHRydWUsXG4gICAgZGV0ZWN0U2Vzc2lvbkluVXJsOiB0cnVlLFxuICAgIGhlYWRlcnM6IERFRkFVTFRfSEVBREVSUyxcbiAgICBmbG93VHlwZTogJ2ltcGxpY2l0JyxcbiAgICBkZWJ1ZzogZmFsc2UsXG59O1xuLyoqIEN1cnJlbnQgc2Vzc2lvbiB3aWxsIGJlIGNoZWNrZWQgZm9yIHJlZnJlc2ggYXQgdGhpcyBpbnRlcnZhbC4gKi9cbmNvbnN0IEFVVE9fUkVGUkVTSF9USUNLX0RVUkFUSU9OID0gMzAgKiAxMDAwO1xuLyoqXG4gKiBBIHRva2VuIHJlZnJlc2ggd2lsbCBiZSBhdHRlbXB0ZWQgdGhpcyBtYW55IHRpY2tzIGJlZm9yZSB0aGUgY3VycmVudCBzZXNzaW9uIGV4cGlyZXMuICovXG5jb25zdCBBVVRPX1JFRlJFU0hfVElDS19USFJFU0hPTEQgPSAzO1xuYXN5bmMgZnVuY3Rpb24gbG9ja05vT3AobmFtZSwgYWNxdWlyZVRpbWVvdXQsIGZuKSB7XG4gICAgcmV0dXJuIGF3YWl0IGZuKCk7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHb1RydWVDbGllbnQge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBjbGllbnQgZm9yIHVzZSBpbiB0aGUgYnJvd3Nlci5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHRoaXMubWVtb3J5U3RvcmFnZSA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VFbWl0dGVycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5hdXRvUmVmcmVzaFRpY2tlciA9IG51bGw7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjayA9IG51bGw7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ0RlZmVycmVkID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEtlZXBzIHRyYWNrIG9mIHRoZSBhc3luYyBjbGllbnQgaW5pdGlhbGl6YXRpb24uXG4gICAgICAgICAqIFdoZW4gbnVsbCBvciBub3QgeWV0IHJlc29sdmVkIHRoZSBhdXRoIHN0YXRlIGlzIGB1bmtub3duYFxuICAgICAgICAgKiBPbmNlIHJlc29sdmVkIHRoZSB0aGUgYXV0aCBzdGF0ZSBpcyBrbm93biBhbmQgaXQncyBzYXZlIHRvIGNhbGwgYW55IGZ1cnRoZXIgY2xpZW50IG1ldGhvZHMuXG4gICAgICAgICAqIEtlZXAgZXh0cmEgY2FyZSB0byBuZXZlciByZWplY3Qgb3IgdGhyb3cgdW5jYXVnaHQgZXJyb3JzXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmluaXRpYWxpemVQcm9taXNlID0gbnVsbDtcbiAgICAgICAgdGhpcy5kZXRlY3RTZXNzaW9uSW5VcmwgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvY2tBY3F1aXJlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBlbmRpbmdJbkxvY2sgPSBbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZWQgdG8gYnJvYWRjYXN0IHN0YXRlIGNoYW5nZSBldmVudHMgdG8gb3RoZXIgdGFicyBsaXN0ZW5pbmcuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJyb2FkY2FzdENoYW5uZWwgPSBudWxsO1xuICAgICAgICB0aGlzLmxvZ2dlciA9IGNvbnNvbGUubG9nO1xuICAgICAgICB0aGlzLmluc3RhbmNlSUQgPSBHb1RydWVDbGllbnQubmV4dEluc3RhbmNlSUQ7XG4gICAgICAgIEdvVHJ1ZUNsaWVudC5uZXh0SW5zdGFuY2VJRCArPSAxO1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZUlEID4gMCAmJiBpc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdNdWx0aXBsZSBHb1RydWVDbGllbnQgaW5zdGFuY2VzIGRldGVjdGVkIGluIHRoZSBzYW1lIGJyb3dzZXIgY29udGV4dC4gSXQgaXMgbm90IGFuIGVycm9yLCBidXQgdGhpcyBzaG91bGQgYmUgYXZvaWRlZCBhcyBpdCBtYXkgcHJvZHVjZSB1bmRlZmluZWQgYmVoYXZpb3Igd2hlbiB1c2VkIGNvbmN1cnJlbnRseSB1bmRlciB0aGUgc2FtZSBzdG9yYWdlIGtleS4nKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9PUFRJT05TKSwgb3B0aW9ucyk7XG4gICAgICAgIHRoaXMubG9nRGVidWdNZXNzYWdlcyA9ICEhc2V0dGluZ3MuZGVidWc7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0dGluZ3MuZGVidWcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyID0gc2V0dGluZ3MuZGVidWc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wZXJzaXN0U2Vzc2lvbiA9IHNldHRpbmdzLnBlcnNpc3RTZXNzaW9uO1xuICAgICAgICB0aGlzLnN0b3JhZ2VLZXkgPSBzZXR0aW5ncy5zdG9yYWdlS2V5O1xuICAgICAgICB0aGlzLmF1dG9SZWZyZXNoVG9rZW4gPSBzZXR0aW5ncy5hdXRvUmVmcmVzaFRva2VuO1xuICAgICAgICB0aGlzLmFkbWluID0gbmV3IEdvVHJ1ZUFkbWluQXBpKHtcbiAgICAgICAgICAgIHVybDogc2V0dGluZ3MudXJsLFxuICAgICAgICAgICAgaGVhZGVyczogc2V0dGluZ3MuaGVhZGVycyxcbiAgICAgICAgICAgIGZldGNoOiBzZXR0aW5ncy5mZXRjaCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXJsID0gc2V0dGluZ3MudXJsO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBzZXR0aW5ncy5oZWFkZXJzO1xuICAgICAgICB0aGlzLmZldGNoID0gcmVzb2x2ZUZldGNoKHNldHRpbmdzLmZldGNoKTtcbiAgICAgICAgdGhpcy5sb2NrID0gc2V0dGluZ3MubG9jayB8fCBsb2NrTm9PcDtcbiAgICAgICAgdGhpcy5kZXRlY3RTZXNzaW9uSW5VcmwgPSBzZXR0aW5ncy5kZXRlY3RTZXNzaW9uSW5Vcmw7XG4gICAgICAgIHRoaXMuZmxvd1R5cGUgPSBzZXR0aW5ncy5mbG93VHlwZTtcbiAgICAgICAgaWYgKHNldHRpbmdzLmxvY2spIHtcbiAgICAgICAgICAgIHRoaXMubG9jayA9IHNldHRpbmdzLmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNCcm93c2VyKCkgJiYgKChfYSA9IGdsb2JhbFRoaXMgPT09IG51bGwgfHwgZ2xvYmFsVGhpcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2xvYmFsVGhpcy5uYXZpZ2F0b3IpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sb2NrcykpIHtcbiAgICAgICAgICAgIHRoaXMubG9jayA9IG5hdmlnYXRvckxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvY2sgPSBsb2NrTm9PcDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1mYSA9IHtcbiAgICAgICAgICAgIHZlcmlmeTogdGhpcy5fdmVyaWZ5LmJpbmQodGhpcyksXG4gICAgICAgICAgICBlbnJvbGw6IHRoaXMuX2Vucm9sbC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdW5lbnJvbGw6IHRoaXMuX3VuZW5yb2xsLmJpbmQodGhpcyksXG4gICAgICAgICAgICBjaGFsbGVuZ2U6IHRoaXMuX2NoYWxsZW5nZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgbGlzdEZhY3RvcnM6IHRoaXMuX2xpc3RGYWN0b3JzLmJpbmQodGhpcyksXG4gICAgICAgICAgICBjaGFsbGVuZ2VBbmRWZXJpZnk6IHRoaXMuX2NoYWxsZW5nZUFuZFZlcmlmeS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZ2V0QXV0aGVudGljYXRvckFzc3VyYW5jZUxldmVsOiB0aGlzLl9nZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWwuYmluZCh0aGlzKSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMucGVyc2lzdFNlc3Npb24pIHtcbiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5zdG9yYWdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlID0gc2V0dGluZ3Muc3RvcmFnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0c0xvY2FsU3RvcmFnZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZSA9IGxvY2FsU3RvcmFnZUFkYXB0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbW9yeVN0b3JhZ2UgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlID0gbWVtb3J5TG9jYWxTdG9yYWdlQWRhcHRlcih0aGlzLm1lbW9yeVN0b3JhZ2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVtb3J5U3RvcmFnZSA9IHt9O1xuICAgICAgICAgICAgdGhpcy5zdG9yYWdlID0gbWVtb3J5TG9jYWxTdG9yYWdlQWRhcHRlcih0aGlzLm1lbW9yeVN0b3JhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0Jyb3dzZXIoKSAmJiBnbG9iYWxUaGlzLkJyb2FkY2FzdENoYW5uZWwgJiYgdGhpcy5wZXJzaXN0U2Vzc2lvbiAmJiB0aGlzLnN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy5icm9hZGNhc3RDaGFubmVsID0gbmV3IGdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbCh0aGlzLnN0b3JhZ2VLZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IEJyb2FkY2FzdENoYW5uZWwsIG11bHRpLXRhYiBzdGF0ZSBjaGFuZ2VzIHdpbGwgbm90IGJlIGF2YWlsYWJsZScsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKF9iID0gdGhpcy5icm9hZGNhc3RDaGFubmVsKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCdyZWNlaXZlZCBicm9hZGNhc3Qgbm90aWZpY2F0aW9uIGZyb20gb3RoZXIgdGFiIG9yIGNsaWVudCcsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycyhldmVudC5kYXRhLmV2ZW50LCBldmVudC5kYXRhLnNlc3Npb24sIGZhbHNlKTsgLy8gYnJvYWRjYXN0ID0gZmFsc2Ugc28gd2UgZG9uJ3QgZ2V0IGFuIGVuZGxlc3MgbG9vcCBvZiBtZXNzYWdlc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuICAgIF9kZWJ1ZyguLi5hcmdzKSB7XG4gICAgICAgIGlmICh0aGlzLmxvZ0RlYnVnTWVzc2FnZXMpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyKGBHb1RydWVDbGllbnRAJHt0aGlzLmluc3RhbmNlSUR9ICgke3ZlcnNpb259KSAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgdGhlIGNsaWVudCBzZXNzaW9uIGVpdGhlciBmcm9tIHRoZSB1cmwgb3IgZnJvbSBzdG9yYWdlLlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGVkIHdoZW4gaW5zdGFudGlhdGluZyB0aGUgY2xpZW50LCBidXQgc2hvdWxkIGFsc28gYmUgY2FsbGVkXG4gICAgICogbWFudWFsbHkgd2hlbiBjaGVja2luZyBmb3IgYW4gZXJyb3IgZnJvbSBhbiBhdXRoIHJlZGlyZWN0IChvYXV0aCwgbWFnaWNsaW5rLCBwYXNzd29yZCByZWNvdmVyeSwgZXRjKS5cbiAgICAgKi9cbiAgICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplUHJvbWlzZSkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplUHJvbWlzZSA9IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pKCk7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJTVBPUlRBTlQ6XG4gICAgICogMS4gTmV2ZXIgdGhyb3cgaW4gdGhpcyBtZXRob2QsIGFzIGl0IGlzIGNhbGxlZCBmcm9tIHRoZSBjb25zdHJ1Y3RvclxuICAgICAqIDIuIE5ldmVyIHJldHVybiBhIHNlc3Npb24gZnJvbSB0aGlzIG1ldGhvZCBhcyBpdCB3b3VsZCBiZSBjYWNoZWQgb3ZlclxuICAgICAqICAgIHRoZSB3aG9sZSBsaWZldGltZSBvZiB0aGUgY2xpZW50XG4gICAgICovXG4gICAgYXN5bmMgX2luaXRpYWxpemUoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBpc1BLQ0VGbG93ID0gaXNCcm93c2VyKCkgPyBhd2FpdCB0aGlzLl9pc1BLQ0VGbG93KCkgOiBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2luaXRpYWxpemUoKScsICdiZWdpbicsICdpcyBQS0NFIGZsb3cnLCBpc1BLQ0VGbG93KTtcbiAgICAgICAgICAgIGlmIChpc1BLQ0VGbG93IHx8ICh0aGlzLmRldGVjdFNlc3Npb25JblVybCAmJiB0aGlzLl9pc0ltcGxpY2l0R3JhbnRGbG93KCkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fZ2V0U2Vzc2lvbkZyb21VUkwoaXNQS0NFRmxvdyk7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2luaXRpYWxpemUoKScsICdlcnJvciBkZXRlY3Rpbmcgc2Vzc2lvbiBmcm9tIFVSTCcsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gaGFja3kgd29ya2Fyb3VuZCB0byBrZWVwIHRoZSBleGlzdGluZyBzZXNzaW9uIGlmIHRoZXJlJ3MgYW4gZXJyb3IgcmV0dXJuZWQgZnJvbSBpZGVudGl0eSBsaW5raW5nXG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IG9uY2UgZXJyb3IgY29kZXMgYXJlIHJlYWR5LCB3ZSBzaG91bGQgbWF0Y2ggYWdhaW5zdCBpdCBpbnN0ZWFkIG9mIHRoZSBtZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgIGlmICgoZXJyb3IgPT09IG51bGwgfHwgZXJyb3IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9yLm1lc3NhZ2UpID09PSAnSWRlbnRpdHkgaXMgYWxyZWFkeSBsaW5rZWQnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgPT09IG51bGwgfHwgZXJyb3IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9yLm1lc3NhZ2UpID09PSAnSWRlbnRpdHkgaXMgYWxyZWFkeSBsaW5rZWQgdG8gYW5vdGhlciB1c2VyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBmYWlsZWQgbG9naW4gYXR0ZW1wdCB2aWEgdXJsLFxuICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgb2xkIHNlc3Npb24gYXMgaW4gdmVyaWZ5T3RwLCBzaWduVXAgYW5kIHNpZ25JbldpdGgqXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZXNzaW9uLCByZWRpcmVjdFR5cGUgfSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfaW5pdGlhbGl6ZSgpJywgJ2RldGVjdGVkIHNlc3Npb24gaW4gVVJMJywgc2Vzc2lvbiwgJ3JlZGlyZWN0IHR5cGUnLCByZWRpcmVjdFR5cGUpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKHNlc3Npb24pO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3RUeXBlID09PSAncmVjb3ZlcnknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnUEFTU1dPUkRfUkVDT1ZFUlknLCBzZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfSU4nLCBzZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBubyBsb2dpbiBhdHRlbXB0IHZpYSBjYWxsYmFjayB1cmwgdHJ5IHRvIHJlY292ZXIgc2Vzc2lvbiBmcm9tIHN0b3JhZ2VcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlY292ZXJBbmRSZWZyZXNoKCk7XG4gICAgICAgICAgICByZXR1cm4geyBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGVycm9yOiBuZXcgQXV0aFVua25vd25FcnJvcignVW5leHBlY3RlZCBlcnJvciBkdXJpbmcgaW5pdGlhbGl6YXRpb24nLCBlcnJvciksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5faGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpO1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfaW5pdGlhbGl6ZSgpJywgJ2VuZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgdXNlci5cbiAgICAgKlxuICAgICAqIEJlIGF3YXJlIHRoYXQgaWYgYSB1c2VyIGFjY291bnQgZXhpc3RzIGluIHRoZSBzeXN0ZW0geW91IG1heSBnZXQgYmFjayBhblxuICAgICAqIGVycm9yIG1lc3NhZ2UgdGhhdCBhdHRlbXB0cyB0byBoaWRlIHRoaXMgaW5mb3JtYXRpb24gZnJvbSB0aGUgdXNlci5cbiAgICAgKiBUaGlzIG1ldGhvZCBoYXMgc3VwcG9ydCBmb3IgUEtDRSB2aWEgZW1haWwgc2lnbnVwcy4gVGhlIFBLQ0UgZmxvdyBjYW5ub3QgYmUgdXNlZCB3aGVuIGF1dG9jb25maXJtIGlzIGVuYWJsZWQuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBIGxvZ2dlZC1pbiBzZXNzaW9uIGlmIHRoZSBzZXJ2ZXIgaGFzIFwiYXV0b2NvbmZpcm1cIiBPTlxuICAgICAqIEByZXR1cm5zIEEgdXNlciBpZiB0aGUgc2VydmVyIGhhcyBcImF1dG9jb25maXJtXCIgT0ZGXG4gICAgICovXG4gICAgYXN5bmMgc2lnblVwKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgbGV0IHJlcztcbiAgICAgICAgICAgIGlmICgnZW1haWwnIGluIGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQsIG9wdGlvbnMgfSA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgY29kZUNoYWxsZW5nZU1ldGhvZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmxvd1R5cGUgPT09ICdwa2NlJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBnZW5lcmF0ZVBLQ0VWZXJpZmllcigpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXRJdGVtQXN5bmModGhpcy5zdG9yYWdlLCBgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgLCBjb2RlVmVyaWZpZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb2RlQ2hhbGxlbmdlID0gYXdhaXQgZ2VuZXJhdGVQS0NFQ2hhbGxlbmdlKGNvZGVWZXJpZmllcik7XG4gICAgICAgICAgICAgICAgICAgIGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBjb2RlVmVyaWZpZXIgPT09IGNvZGVDaGFsbGVuZ2UgPyAncGxhaW4nIDogJ3MyNTYnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXMgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9zaWdudXBgLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RUbzogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmVtYWlsUmVkaXJlY3RUbyxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kYXRhKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OiB7IGNhcHRjaGFfdG9rZW46IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVfY2hhbGxlbmdlOiBjb2RlQ2hhbGxlbmdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiBjb2RlQ2hhbGxlbmdlTWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB4Zm9ybTogX3Nlc3Npb25SZXNwb25zZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCdwaG9uZScgaW4gY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBob25lLCBwYXNzd29yZCwgb3B0aW9ucyB9ID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICAgICAgcmVzID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vc2lnbnVwYCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBob25lLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiAoX2IgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZGF0YSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsOiAoX2MgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2hhbm5lbCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJ3NtcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2FwdGNoYVRva2VuIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcignWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgYW4gZW1haWwgb3IgcGhvbmUgbnVtYmVyIGFuZCBhIHBhc3N3b3JkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXM7XG4gICAgICAgICAgICBpZiAoZXJyb3IgfHwgIWRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3I6IGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gZGF0YS5zZXNzaW9uO1xuICAgICAgICAgICAgY29uc3QgdXNlciA9IGRhdGEudXNlcjtcbiAgICAgICAgICAgIGlmIChkYXRhLnNlc3Npb24pIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihkYXRhLnNlc3Npb24pO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfSU4nLCBzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlciwgc2Vzc2lvbiB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogTG9nIGluIGFuIGV4aXN0aW5nIHVzZXIgd2l0aCBhbiBlbWFpbCBhbmQgcGFzc3dvcmQgb3IgcGhvbmUgYW5kIHBhc3N3b3JkLlxuICAgICAqXG4gICAgICogQmUgYXdhcmUgdGhhdCB5b3UgbWF5IGdldCBiYWNrIGFuIGVycm9yIG1lc3NhZ2UgdGhhdCB3aWxsIG5vdCBkaXN0aW5ndWlzaFxuICAgICAqIGJldHdlZW4gdGhlIGNhc2VzIHdoZXJlIHRoZSBhY2NvdW50IGRvZXMgbm90IGV4aXN0IG9yIHRoYXQgdGhlXG4gICAgICogZW1haWwvcGhvbmUgYW5kIHBhc3N3b3JkIGNvbWJpbmF0aW9uIGlzIHdyb25nIG9yIHRoYXQgdGhlIGFjY291bnQgY2FuIG9ubHlcbiAgICAgKiBiZSBhY2Nlc3NlZCB2aWEgc29jaWFsIGxvZ2luLlxuICAgICAqL1xuICAgIGFzeW5jIHNpZ25JbldpdGhQYXNzd29yZChjcmVkZW50aWFscykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgbGV0IHJlcztcbiAgICAgICAgICAgIGlmICgnZW1haWwnIGluIGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQsIG9wdGlvbnMgfSA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgICAgIHJlcyA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L3Rva2VuP2dyYW50X3R5cGU9cGFzc3dvcmRgLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OiB7IGNhcHRjaGFfdG9rZW46IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2VQYXNzd29yZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCdwaG9uZScgaW4gY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBob25lLCBwYXNzd29yZCwgb3B0aW9ucyB9ID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICAgICAgcmVzID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1wYXNzd29yZGAsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB4Zm9ybTogX3Nlc3Npb25SZXNwb25zZVBhc3N3b3JkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcignWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgYW4gZW1haWwgb3IgcGhvbmUgbnVtYmVyIGFuZCBhIHBhc3N3b3JkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXM7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFkYXRhIHx8ICFkYXRhLnNlc3Npb24gfHwgIWRhdGEudXNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvcjogbmV3IEF1dGhJbnZhbGlkVG9rZW5SZXNwb25zZUVycm9yKCkgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLnNlc3Npb24pIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihkYXRhLnNlc3Npb24pO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfSU4nLCBkYXRhLnNlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRhOiBPYmplY3QuYXNzaWduKHsgdXNlcjogZGF0YS51c2VyLCBzZXNzaW9uOiBkYXRhLnNlc3Npb24gfSwgKGRhdGEud2Vha19wYXNzd29yZCA/IHsgd2Vha1Bhc3N3b3JkOiBkYXRhLndlYWtfcGFzc3dvcmQgfSA6IG51bGwpKSxcbiAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBMb2cgaW4gYW4gZXhpc3RpbmcgdXNlciB2aWEgYSB0aGlyZC1wYXJ0eSBwcm92aWRlci5cbiAgICAgKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyB0aGUgUEtDRSBmbG93LlxuICAgICAqL1xuICAgIGFzeW5jIHNpZ25JbldpdGhPQXV0aChjcmVkZW50aWFscykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2hhbmRsZVByb3ZpZGVyU2lnbkluKGNyZWRlbnRpYWxzLnByb3ZpZGVyLCB7XG4gICAgICAgICAgICByZWRpcmVjdFRvOiAoX2EgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVkaXJlY3RUbyxcbiAgICAgICAgICAgIHNjb3BlczogKF9iID0gY3JlZGVudGlhbHMub3B0aW9ucykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNjb3BlcyxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiAoX2MgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBza2lwQnJvd3NlclJlZGlyZWN0OiAoX2QgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Quc2tpcEJyb3dzZXJSZWRpcmVjdCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIExvZyBpbiBhbiBleGlzdGluZyB1c2VyIGJ5IGV4Y2hhbmdpbmcgYW4gQXV0aCBDb2RlIGlzc3VlZCBkdXJpbmcgdGhlIFBLQ0UgZmxvdy5cbiAgICAgKi9cbiAgICBhc3luYyBleGNoYW5nZUNvZGVGb3JTZXNzaW9uKGF1dGhDb2RlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2V4Y2hhbmdlQ29kZUZvclNlc3Npb24oYXV0aENvZGUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgX2V4Y2hhbmdlQ29kZUZvclNlc3Npb24oYXV0aENvZGUpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSBhd2FpdCBnZXRJdGVtQXN5bmModGhpcy5zdG9yYWdlLCBgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgKTtcbiAgICAgICAgY29uc3QgW2NvZGVWZXJpZmllciwgcmVkaXJlY3RUeXBlXSA9IChzdG9yYWdlSXRlbSAhPT0gbnVsbCAmJiBzdG9yYWdlSXRlbSAhPT0gdm9pZCAwID8gc3RvcmFnZUl0ZW0gOiAnJykuc3BsaXQoJy8nKTtcbiAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1wa2NlYCwge1xuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIGF1dGhfY29kZTogYXV0aENvZGUsXG4gICAgICAgICAgICAgICAgY29kZV92ZXJpZmllcjogY29kZVZlcmlmaWVyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlLFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgcmVtb3ZlSXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsLCByZWRpcmVjdFR5cGU6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghZGF0YSB8fCAhZGF0YS5zZXNzaW9uIHx8ICFkYXRhLnVzZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsLCByZWRpcmVjdFR5cGU6IG51bGwgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogbmV3IEF1dGhJbnZhbGlkVG9rZW5SZXNwb25zZUVycm9yKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNlc3Npb24pIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGRhdGEuc2Vzc2lvbik7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX0lOJywgZGF0YS5zZXNzaW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkYXRhOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGRhdGEpLCB7IHJlZGlyZWN0VHlwZTogcmVkaXJlY3RUeXBlICE9PSBudWxsICYmIHJlZGlyZWN0VHlwZSAhPT0gdm9pZCAwID8gcmVkaXJlY3RUeXBlIDogbnVsbCB9KSwgZXJyb3IgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxsb3dzIHNpZ25pbmcgaW4gd2l0aCBhbiBPSURDIElEIHRva2VuLiBUaGUgYXV0aGVudGljYXRpb24gcHJvdmlkZXIgdXNlZFxuICAgICAqIHNob3VsZCBiZSBlbmFibGVkIGFuZCBjb25maWd1cmVkLlxuICAgICAqL1xuICAgIGFzeW5jIHNpZ25JbldpdGhJZFRva2VuKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHsgb3B0aW9ucywgcHJvdmlkZXIsIHRva2VuLCBhY2Nlc3NfdG9rZW4sIG5vbmNlIH0gPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L3Rva2VuP2dyYW50X3R5cGU9aWRfdG9rZW5gLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIGlkX3Rva2VuOiB0b2tlbixcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuLFxuICAgICAgICAgICAgICAgICAgICBub25jZSxcbiAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IHJlcztcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoIWRhdGEgfHwgIWRhdGEuc2Vzc2lvbiB8fCAhZGF0YS51c2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBuZXcgQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3IoKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGRhdGEuc2Vzc2lvbik7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIGRhdGEuc2Vzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvciB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogTG9nIGluIGEgdXNlciB1c2luZyBtYWdpY2xpbmsgb3IgYSBvbmUtdGltZSBwYXNzd29yZCAoT1RQKS5cbiAgICAgKlxuICAgICAqIElmIHRoZSBge3sgLkNvbmZpcm1hdGlvblVSTCB9fWAgdmFyaWFibGUgaXMgc3BlY2lmaWVkIGluIHRoZSBlbWFpbCB0ZW1wbGF0ZSwgYSBtYWdpY2xpbmsgd2lsbCBiZSBzZW50LlxuICAgICAqIElmIHRoZSBge3sgLlRva2VuIH19YCB2YXJpYWJsZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGVtYWlsIHRlbXBsYXRlLCBhbiBPVFAgd2lsbCBiZSBzZW50LlxuICAgICAqIElmIHlvdSdyZSB1c2luZyBwaG9uZSBzaWduLWlucywgb25seSBhbiBPVFAgd2lsbCBiZSBzZW50LiBZb3Ugd29uJ3QgYmUgYWJsZSB0byBzZW5kIGEgbWFnaWNsaW5rIGZvciBwaG9uZSBzaWduLWlucy5cbiAgICAgKlxuICAgICAqIEJlIGF3YXJlIHRoYXQgeW91IG1heSBnZXQgYmFjayBhbiBlcnJvciBtZXNzYWdlIHRoYXQgd2lsbCBub3QgZGlzdGluZ3Vpc2hcbiAgICAgKiBiZXR3ZWVuIHRoZSBjYXNlcyB3aGVyZSB0aGUgYWNjb3VudCBkb2VzIG5vdCBleGlzdCBvciwgdGhhdCB0aGUgYWNjb3VudFxuICAgICAqIGNhbiBvbmx5IGJlIGFjY2Vzc2VkIHZpYSBzb2NpYWwgbG9naW4uXG4gICAgICpcbiAgICAgKiBEbyBub3RlIHRoYXQgeW91IHdpbGwgbmVlZCB0byBjb25maWd1cmUgYSBXaGF0c2FwcCBzZW5kZXIgb24gVHdpbGlvXG4gICAgICogaWYgeW91IGFyZSB1c2luZyBwaG9uZSBzaWduIGluIHdpdGggdGhlICd3aGF0c2FwcCcgY2hhbm5lbC4gVGhlIHdoYXRzYXBwXG4gICAgICogY2hhbm5lbCBpcyBub3Qgc3VwcG9ydGVkIG9uIG90aGVyIHByb3ZpZGVyc1xuICAgICAqIGF0IHRoaXMgdGltZS5cbiAgICAgKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBQS0NFIHdoZW4gYW4gZW1haWwgaXMgcGFzc2VkLlxuICAgICAqL1xuICAgIGFzeW5jIHNpZ25JbldpdGhPdHAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgICAgIGlmICgnZW1haWwnIGluIGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlbWFpbCwgb3B0aW9ucyB9ID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlTWV0aG9kID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mbG93VHlwZSA9PT0gJ3BrY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlUEtDRVZlcmlmaWVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmAsIGNvZGVWZXJpZmllcik7XG4gICAgICAgICAgICAgICAgICAgIGNvZGVDaGFsbGVuZ2UgPSBhd2FpdCBnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UoY29kZVZlcmlmaWVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29kZUNoYWxsZW5nZU1ldGhvZCA9IGNvZGVWZXJpZmllciA9PT0gY29kZUNoYWxsZW5nZSA/ICdwbGFpbicgOiAnczI1Nic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L290cGAsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kYXRhKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV91c2VyOiAoX2IgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2hvdWxkQ3JlYXRlVXNlcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OiB7IGNhcHRjaGFfdG9rZW46IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVfY2hhbGxlbmdlOiBjb2RlQ2hhbGxlbmdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiBjb2RlQ2hhbGxlbmdlTWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZW1haWxSZWRpcmVjdFRvLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCdwaG9uZScgaW4gY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBob25lLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9vdHBgLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiAoX2MgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZGF0YSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVfdXNlcjogKF9kID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnNob3VsZENyZWF0ZVVzZXIpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2FwdGNoYVRva2VuIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsOiAoX2UgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2hhbm5lbCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogJ3NtcycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsLCBtZXNzYWdlSWQ6IGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5tZXNzYWdlX2lkIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEludmFsaWRDcmVkZW50aWFsc0Vycm9yKCdZb3UgbXVzdCBwcm92aWRlIGVpdGhlciBhbiBlbWFpbCBvciBwaG9uZSBudW1iZXIuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBMb2cgaW4gYSB1c2VyIGdpdmVuIGEgVXNlciBzdXBwbGllZCBPVFAgb3IgVG9rZW5IYXNoIHJlY2VpdmVkIHRocm91Z2ggbW9iaWxlIG9yIGVtYWlsLlxuICAgICAqL1xuICAgIGFzeW5jIHZlcmlmeU90cChwYXJhbXMpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChwYXJhbXMudHlwZSAhPT0gJ2VtYWlsX2NoYW5nZScgJiYgcGFyYW1zLnR5cGUgIT09ICdwaG9uZV9jaGFuZ2UnKSB7XG4gICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byByZW1vdmUgdGhlIGF1dGhlbnRpY2F0ZWQgc2Vzc2lvbiBpZiB0aGUgdXNlciBpcyBwZXJmb3JtaW5nIGFuIGVtYWlsX2NoYW5nZSBvciBwaG9uZV9jaGFuZ2UgdmVyaWZpY2F0aW9uXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlZGlyZWN0VG8gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBsZXQgY2FwdGNoYVRva2VuID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCdvcHRpb25zJyBpbiBwYXJhbXMpIHtcbiAgICAgICAgICAgICAgICByZWRpcmVjdFRvID0gKF9hID0gcGFyYW1zLm9wdGlvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZWRpcmVjdFRvO1xuICAgICAgICAgICAgICAgIGNhcHRjaGFUb2tlbiA9IChfYiA9IHBhcmFtcy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FwdGNoYVRva2VuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdmVyaWZ5YCwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICBib2R5OiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHBhcmFtcyksIHsgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogY2FwdGNoYVRva2VuIH0gfSksXG4gICAgICAgICAgICAgICAgcmVkaXJlY3RUbyxcbiAgICAgICAgICAgICAgICB4Zm9ybTogX3Nlc3Npb25SZXNwb25zZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkIG9uIHRva2VuIHZlcmlmaWNhdGlvbi4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSBkYXRhLnNlc3Npb247XG4gICAgICAgICAgICBjb25zdCB1c2VyID0gZGF0YS51c2VyO1xuICAgICAgICAgICAgaWYgKHNlc3Npb24gPT09IG51bGwgfHwgc2Vzc2lvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvbi5hY2Nlc3NfdG9rZW4pIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihzZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycyhwYXJhbXMudHlwZSA9PSAncmVjb3ZlcnknID8gJ1BBU1NXT1JEX1JFQ09WRVJZJyA6ICdTSUdORURfSU4nLCBzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlciwgc2Vzc2lvbiB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQXR0ZW1wdHMgYSBzaW5nbGUtc2lnbiBvbiB1c2luZyBhbiBlbnRlcnByaXNlIElkZW50aXR5IFByb3ZpZGVyLiBBXG4gICAgICogc3VjY2Vzc2Z1bCBTU08gYXR0ZW1wdCB3aWxsIHJlZGlyZWN0IHRoZSBjdXJyZW50IHBhZ2UgdG8gdGhlIGlkZW50aXR5XG4gICAgICogcHJvdmlkZXIgYXV0aG9yaXphdGlvbiBwYWdlLiBUaGUgcmVkaXJlY3QgVVJMIGlzIGltcGxlbWVudGF0aW9uIGFuZCBTU09cbiAgICAgKiBwcm90b2NvbCBzcGVjaWZpYy5cbiAgICAgKlxuICAgICAqIFlvdSBjYW4gdXNlIGl0IGJ5IHByb3ZpZGluZyBhIFNTTyBkb21haW4uIFR5cGljYWxseSB5b3UgY2FuIGV4dHJhY3QgdGhpc1xuICAgICAqIGRvbWFpbiBieSBhc2tpbmcgdXNlcnMgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIElmIHRoaXMgZG9tYWluIGlzXG4gICAgICogcmVnaXN0ZXJlZCBvbiB0aGUgQXV0aCBpbnN0YW5jZSB0aGUgcmVkaXJlY3Qgd2lsbCB1c2UgdGhhdCBvcmdhbml6YXRpb24nc1xuICAgICAqIGN1cnJlbnRseSBhY3RpdmUgU1NPIElkZW50aXR5IFByb3ZpZGVyIGZvciB0aGUgbG9naW4uXG4gICAgICpcbiAgICAgKiBJZiB5b3UgaGF2ZSBidWlsdCBhbiBvcmdhbml6YXRpb24tc3BlY2lmaWMgbG9naW4gcGFnZSwgeW91IGNhbiB1c2UgdGhlXG4gICAgICogb3JnYW5pemF0aW9uJ3MgU1NPIElkZW50aXR5IFByb3ZpZGVyIFVVSUQgZGlyZWN0bHkgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBhc3luYyBzaWduSW5XaXRoU1NPKHBhcmFtcykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlID0gbnVsbDtcbiAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlTWV0aG9kID0gbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBnZW5lcmF0ZVBLQ0VWZXJpZmllcigpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHNldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmAsIGNvZGVWZXJpZmllcik7XG4gICAgICAgICAgICAgICAgY29kZUNoYWxsZW5nZSA9IGF3YWl0IGdlbmVyYXRlUEtDRUNoYWxsZW5nZShjb2RlVmVyaWZpZXIpO1xuICAgICAgICAgICAgICAgIGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBjb2RlVmVyaWZpZXIgPT09IGNvZGVDaGFsbGVuZ2UgPyAncGxhaW4nIDogJ3MyNTYnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L3Nzb2AsIHtcbiAgICAgICAgICAgICAgICBib2R5OiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sICgncHJvdmlkZXJJZCcgaW4gcGFyYW1zID8geyBwcm92aWRlcl9pZDogcGFyYW1zLnByb3ZpZGVySWQgfSA6IG51bGwpKSwgKCdkb21haW4nIGluIHBhcmFtcyA/IHsgZG9tYWluOiBwYXJhbXMuZG9tYWluIH0gOiBudWxsKSksIHsgcmVkaXJlY3RfdG86IChfYiA9IChfYSA9IHBhcmFtcy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVkaXJlY3RUbykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdW5kZWZpbmVkIH0pLCAoKChfYyA9IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FwdGNoYVRva2VuKVxuICAgICAgICAgICAgICAgICAgICA/IHsgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogcGFyYW1zLm9wdGlvbnMuY2FwdGNoYVRva2VuIH0gfVxuICAgICAgICAgICAgICAgICAgICA6IG51bGwpKSwgeyBza2lwX2h0dHBfcmVkaXJlY3Q6IHRydWUsIGNvZGVfY2hhbGxlbmdlOiBjb2RlQ2hhbGxlbmdlLCBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6IGNvZGVDaGFsbGVuZ2VNZXRob2QgfSksXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIHhmb3JtOiBfc3NvUmVzcG9uc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSByZWF1dGhlbnRpY2F0aW9uIE9UUCB0byB0aGUgdXNlcidzIGVtYWlsIG9yIHBob25lIG51bWJlci5cbiAgICAgKiBSZXF1aXJlcyB0aGUgdXNlciB0byBiZSBzaWduZWQtaW4uXG4gICAgICovXG4gICAgYXN5bmMgcmVhdXRoZW50aWNhdGUoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3JlYXV0aGVudGljYXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBfcmVhdXRoZW50aWNhdGUoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhOiB7IHNlc3Npb24gfSwgZXJyb3I6IHNlc3Npb25FcnJvciwgfSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBzZXNzaW9uRXJyb3I7XG4gICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnR0VUJywgYCR7dGhpcy51cmx9L3JlYXV0aGVudGljYXRlYCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGp3dDogc2Vzc2lvbi5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlc2VuZHMgYW4gZXhpc3Rpbmcgc2lnbnVwIGNvbmZpcm1hdGlvbiBlbWFpbCwgZW1haWwgY2hhbmdlIGVtYWlsLCBTTVMgT1RQIG9yIHBob25lIGNoYW5nZSBPVFAuXG4gICAgICovXG4gICAgYXN5bmMgcmVzZW5kKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoY3JlZGVudGlhbHMudHlwZSAhPSAnZW1haWxfY2hhbmdlJyAmJiBjcmVkZW50aWFscy50eXBlICE9ICdwaG9uZV9jaGFuZ2UnKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLnVybH0vcmVzZW5kYDtcbiAgICAgICAgICAgIGlmICgnZW1haWwnIGluIGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlbWFpbCwgdHlwZSwgb3B0aW9ucyB9ID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBlbmRwb2ludCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OiB7IGNhcHRjaGFfdG9rZW46IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RUbzogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmVtYWlsUmVkaXJlY3RUbyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCdwaG9uZScgaW4gY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBob25lLCB0eXBlLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGVuZHBvaW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCwgbWVzc2FnZUlkOiBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEubWVzc2FnZV9pZCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcignWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgYW4gZW1haWwgb3IgcGhvbmUgbnVtYmVyIGFuZCBhIHR5cGUnKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHNlc3Npb24sIHJlZnJlc2hpbmcgaXQgaWYgbmVjZXNzYXJ5LlxuICAgICAqIFRoZSBzZXNzaW9uIHJldHVybmVkIGNhbiBiZSBudWxsIGlmIHRoZSBzZXNzaW9uIGlzIG5vdCBkZXRlY3RlZCB3aGljaCBjYW4gaGFwcGVuIGluIHRoZSBldmVudCBhIHVzZXIgaXMgbm90IHNpZ25lZC1pbiBvciBoYXMgbG9nZ2VkIG91dC5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTZXNzaW9uKCkge1xuICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgICAgICByZXR1cm4gdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBY3F1aXJlcyBhIGdsb2JhbCBsb2NrIGJhc2VkIG9uIHRoZSBzdG9yYWdlIGtleS5cbiAgICAgKi9cbiAgICBhc3luYyBfYWNxdWlyZUxvY2soYWNxdWlyZVRpbWVvdXQsIGZuKSB7XG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX2FjcXVpcmVMb2NrJywgJ2JlZ2luJywgYWNxdWlyZVRpbWVvdXQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHRoaXMubG9ja0FjcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IHRoaXMucGVuZGluZ0luTG9jay5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnBlbmRpbmdJbkxvY2tbdGhpcy5wZW5kaW5nSW5Mb2NrLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgbGFzdDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGZuKCk7XG4gICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdJbkxvY2sucHVzaCgoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBqdXN0IGNhcmUgaWYgaXQgZmluaXNoZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pKCkpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NrKGBsb2NrOiR7dGhpcy5zdG9yYWdlS2V5fWAsIGFjcXVpcmVUaW1lb3V0LCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfYWNxdWlyZUxvY2snLCAnbG9jayBhY3F1aXJlZCBmb3Igc3RvcmFnZSBrZXknLCB0aGlzLnN0b3JhZ2VLZXkpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9ja0FjcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4oKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nSW5Mb2NrLnB1c2goKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBqdXN0IGNhcmUgaWYgaXQgZmluaXNoZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSkoKSk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgLy8ga2VlcCBkcmFpbmluZyB0aGUgcXVldWUgdW50aWwgdGhlcmUncyBub3RoaW5nIHRvIHdhaXQgb25cbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMucGVuZGluZ0luTG9jay5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRPbiA9IFsuLi50aGlzLnBlbmRpbmdJbkxvY2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwod2FpdE9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0luTG9jay5zcGxpY2UoMCwgd2FpdE9uLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2FjcXVpcmVMb2NrJywgJ2xvY2sgcmVsZWFzZWQgZm9yIHN0b3JhZ2Uga2V5JywgdGhpcy5zdG9yYWdlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NrQWNxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2FjcXVpcmVMb2NrJywgJ2VuZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVzZSBpbnN0ZWFkIG9mIHtAbGluayAjZ2V0U2Vzc2lvbn0gaW5zaWRlIHRoZSBsaWJyYXJ5LiBJdCBpc1xuICAgICAqIHNlbWFudGljYWxseSB1c3VhbGx5IHdoYXQgeW91IHdhbnQsIGFzIGdldHRpbmcgYSBzZXNzaW9uIGludm9sdmVzIHNvbWVcbiAgICAgKiBwcm9jZXNzaW5nIGFmdGVyd2FyZHMgdGhhdCByZXF1aXJlcyBvbmx5IG9uZSBjbGllbnQgb3BlcmF0aW5nIG9uIHRoZVxuICAgICAqIHNlc3Npb24gYXQgb25jZSBhY3Jvc3MgbXVsdGlwbGUgdGFicyBvciBwcm9jZXNzZXMuXG4gICAgICovXG4gICAgYXN5bmMgX3VzZVNlc3Npb24oZm4pIHtcbiAgICAgICAgdGhpcy5fZGVidWcoJyNfdXNlU2Vzc2lvbicsICdiZWdpbicpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gdGhlIHVzZSBvZiBfX2xvYWRTZXNzaW9uIGhlcmUgaXMgdGhlIG9ubHkgY29ycmVjdCB1c2Ugb2YgdGhlIGZ1bmN0aW9uIVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fX2xvYWRTZXNzaW9uKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX3VzZVNlc3Npb24nLCAnZW5kJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogTkVWRVIgVVNFIERJUkVDVExZIVxuICAgICAqXG4gICAgICogQWx3YXlzIHVzZSB7QGxpbmsgI191c2VTZXNzaW9ufS5cbiAgICAgKi9cbiAgICBhc3luYyBfX2xvYWRTZXNzaW9uKCkge1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI19fbG9hZFNlc3Npb24oKScsICdiZWdpbicpO1xuICAgICAgICBpZiAoIXRoaXMubG9ja0FjcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19fbG9hZFNlc3Npb24oKScsICd1c2VkIG91dHNpZGUgb2YgYW4gYWNxdWlyZWQgbG9jayEnLCBuZXcgRXJyb3IoKS5zdGFjayk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50U2Vzc2lvbiA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBtYXliZVNlc3Npb24gPSBhd2FpdCBnZXRJdGVtQXN5bmModGhpcy5zdG9yYWdlLCB0aGlzLnN0b3JhZ2VLZXkpO1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNnZXRTZXNzaW9uKCknLCAnc2Vzc2lvbiBmcm9tIHN0b3JhZ2UnLCBtYXliZVNlc3Npb24pO1xuICAgICAgICAgICAgaWYgKG1heWJlU2Vzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc1ZhbGlkU2Vzc2lvbihtYXliZVNlc3Npb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZXNzaW9uID0gbWF5YmVTZXNzaW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNnZXRTZXNzaW9uKCknLCAnc2Vzc2lvbiBmcm9tIHN0b3JhZ2UgaXMgbm90IHZhbGlkJyk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRTZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBzZXNzaW9uOiBudWxsIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFeHBpcmVkID0gY3VycmVudFNlc3Npb24uZXhwaXJlc19hdFxuICAgICAgICAgICAgICAgID8gY3VycmVudFNlc3Npb24uZXhwaXJlc19hdCA8PSBEYXRlLm5vdygpIC8gMTAwMFxuICAgICAgICAgICAgICAgIDogZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19fbG9hZFNlc3Npb24oKScsIGBzZXNzaW9uIGhhcyR7aGFzRXhwaXJlZCA/ICcnIDogJyBub3QnfSBleHBpcmVkYCwgJ2V4cGlyZXNfYXQnLCBjdXJyZW50U2Vzc2lvbi5leHBpcmVzX2F0KTtcbiAgICAgICAgICAgIGlmICghaGFzRXhwaXJlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbjogY3VycmVudFNlc3Npb24gfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgc2Vzc2lvbiwgZXJyb3IgfSA9IGF3YWl0IHRoaXMuX2NhbGxSZWZyZXNoVG9rZW4oY3VycmVudFNlc3Npb24ucmVmcmVzaF90b2tlbik7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbiB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfX2xvYWRTZXNzaW9uKCknLCAnZW5kJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY3VycmVudCB1c2VyIGRldGFpbHMgaWYgdGhlcmUgaXMgYW4gZXhpc3Rpbmcgc2Vzc2lvbi5cbiAgICAgKiBAcGFyYW0gand0IFRha2VzIGluIGFuIG9wdGlvbmFsIGFjY2VzcyB0b2tlbiBqd3QuIElmIG5vIGp3dCBpcyBwcm92aWRlZCwgZ2V0VXNlcigpIHdpbGwgYXR0ZW1wdCB0byBnZXQgdGhlIGp3dCBmcm9tIHRoZSBjdXJyZW50IHNlc3Npb24uXG4gICAgICovXG4gICAgYXN5bmMgZ2V0VXNlcihqd3QpIHtcbiAgICAgICAgaWYgKGp3dCkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2dldFVzZXIoand0KTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgICAgICByZXR1cm4gdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9nZXRVc2VyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBfZ2V0VXNlcihqd3QpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChqd3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0dFVCcsIGAke3RoaXMudXJsfS91c2VyYCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGp3dDogand0LFxuICAgICAgICAgICAgICAgICAgICB4Zm9ybTogX3VzZXJSZXNwb25zZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnR0VUJywgYCR7dGhpcy51cmx9L3VzZXJgLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgand0OiAoX2IgPSAoX2EgPSBkYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdXNlciBkYXRhIGZvciBhIGxvZ2dlZCBpbiB1c2VyLlxuICAgICAqL1xuICAgIGFzeW5jIHVwZGF0ZVVzZXIoYXR0cmlidXRlcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VwZGF0ZVVzZXIoYXR0cmlidXRlcywgb3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBfdXBkYXRlVXNlcihhdHRyaWJ1dGVzLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHNlc3Npb25EYXRhLCBlcnJvcjogc2Vzc2lvbkVycm9yIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBzZXNzaW9uRXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbkRhdGEuc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHNlc3Npb25EYXRhLnNlc3Npb247XG4gICAgICAgICAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlTWV0aG9kID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mbG93VHlwZSA9PT0gJ3BrY2UnICYmIGF0dHJpYnV0ZXMuZW1haWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBnZW5lcmF0ZVBLQ0VWZXJpZmllcigpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXRJdGVtQXN5bmModGhpcy5zdG9yYWdlLCBgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgLCBjb2RlVmVyaWZpZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb2RlQ2hhbGxlbmdlID0gYXdhaXQgZ2VuZXJhdGVQS0NFQ2hhbGxlbmdlKGNvZGVWZXJpZmllcik7XG4gICAgICAgICAgICAgICAgICAgIGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBjb2RlVmVyaWZpZXIgPT09IGNvZGVDaGFsbGVuZ2UgPyAncGxhaW4nIDogJ3MyNTYnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yOiB1c2VyRXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQVVQnLCBgJHt0aGlzLnVybH0vdXNlcmAsIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZW1haWxSZWRpcmVjdFRvLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGF0dHJpYnV0ZXMpLCB7IGNvZGVfY2hhbGxlbmdlOiBjb2RlQ2hhbGxlbmdlLCBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6IGNvZGVDaGFsbGVuZ2VNZXRob2QgfSksXG4gICAgICAgICAgICAgICAgICAgIGp3dDogc2Vzc2lvbi5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh1c2VyRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHVzZXJFcnJvcjtcbiAgICAgICAgICAgICAgICBzZXNzaW9uLnVzZXIgPSBkYXRhLnVzZXI7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oc2Vzc2lvbik7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1VTRVJfVVBEQVRFRCcsIHNlc3Npb24pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogc2Vzc2lvbi51c2VyIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlY29kZXMgYSBKV1QgKHdpdGhvdXQgcGVyZm9ybWluZyBhbnkgdmFsaWRhdGlvbikuXG4gICAgICovXG4gICAgX2RlY29kZUpXVChqd3QpIHtcbiAgICAgICAgcmV0dXJuIGRlY29kZUpXVFBheWxvYWQoand0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc2Vzc2lvbiBkYXRhIGZyb20gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gSWYgdGhlIGN1cnJlbnQgc2Vzc2lvbiBpcyBleHBpcmVkLCBzZXRTZXNzaW9uIHdpbGwgdGFrZSBjYXJlIG9mIHJlZnJlc2hpbmcgaXQgdG8gb2J0YWluIGEgbmV3IHNlc3Npb24uXG4gICAgICogSWYgdGhlIHJlZnJlc2ggdG9rZW4gb3IgYWNjZXNzIHRva2VuIGluIHRoZSBjdXJyZW50IHNlc3Npb24gaXMgaW52YWxpZCwgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uXG4gICAgICogQHBhcmFtIGN1cnJlbnRTZXNzaW9uIFRoZSBjdXJyZW50IHNlc3Npb24gdGhhdCBtaW5pbWFsbHkgY29udGFpbnMgYW4gYWNjZXNzIHRva2VuIGFuZCByZWZyZXNoIHRva2VuLlxuICAgICAqL1xuICAgIGFzeW5jIHNldFNlc3Npb24oY3VycmVudFNlc3Npb24pIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fc2V0U2Vzc2lvbihjdXJyZW50U2Vzc2lvbik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBfc2V0U2Vzc2lvbihjdXJyZW50U2Vzc2lvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCFjdXJyZW50U2Vzc2lvbi5hY2Nlc3NfdG9rZW4gfHwgIWN1cnJlbnRTZXNzaW9uLnJlZnJlc2hfdG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRpbWVOb3cgPSBEYXRlLm5vdygpIC8gMTAwMDtcbiAgICAgICAgICAgIGxldCBleHBpcmVzQXQgPSB0aW1lTm93O1xuICAgICAgICAgICAgbGV0IGhhc0V4cGlyZWQgPSB0cnVlO1xuICAgICAgICAgICAgbGV0IHNlc3Npb24gPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRlY29kZUpXVFBheWxvYWQoY3VycmVudFNlc3Npb24uYWNjZXNzX3Rva2VuKTtcbiAgICAgICAgICAgIGlmIChwYXlsb2FkLmV4cCkge1xuICAgICAgICAgICAgICAgIGV4cGlyZXNBdCA9IHBheWxvYWQuZXhwO1xuICAgICAgICAgICAgICAgIGhhc0V4cGlyZWQgPSBleHBpcmVzQXQgPD0gdGltZU5vdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNFeHBpcmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZXNzaW9uOiByZWZyZXNoZWRTZXNzaW9uLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yOiBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXJlZnJlc2hlZFNlc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNlc3Npb24gPSByZWZyZXNoZWRTZXNzaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fZ2V0VXNlcihjdXJyZW50U2Vzc2lvbi5hY2Nlc3NfdG9rZW4pO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2Vzc2lvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuOiBjdXJyZW50U2Vzc2lvbi5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hfdG9rZW46IGN1cnJlbnRTZXNzaW9uLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIHVzZXI6IGRhdGEudXNlcixcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5fdHlwZTogJ2JlYXJlcicsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZXNfaW46IGV4cGlyZXNBdCAtIHRpbWVOb3csXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZXNfYXQ6IGV4cGlyZXNBdCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKHNlc3Npb24pO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfSU4nLCBzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogc2Vzc2lvbi51c2VyLCBzZXNzaW9uIH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBzZXNzaW9uOiBudWxsLCB1c2VyOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbmV3IHNlc3Npb24sIHJlZ2FyZGxlc3Mgb2YgZXhwaXJ5IHN0YXR1cy5cbiAgICAgKiBUYWtlcyBpbiBhbiBvcHRpb25hbCBjdXJyZW50IHNlc3Npb24uIElmIG5vdCBwYXNzZWQgaW4sIHRoZW4gcmVmcmVzaFNlc3Npb24oKSB3aWxsIGF0dGVtcHQgdG8gcmV0cmlldmUgaXQgZnJvbSBnZXRTZXNzaW9uKCkuXG4gICAgICogSWYgdGhlIGN1cnJlbnQgc2Vzc2lvbidzIHJlZnJlc2ggdG9rZW4gaXMgaW52YWxpZCwgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uXG4gICAgICogQHBhcmFtIGN1cnJlbnRTZXNzaW9uIFRoZSBjdXJyZW50IHNlc3Npb24uIElmIHBhc3NlZCBpbiwgaXQgbXVzdCBjb250YWluIGEgcmVmcmVzaCB0b2tlbi5cbiAgICAgKi9cbiAgICBhc3luYyByZWZyZXNoU2Vzc2lvbihjdXJyZW50U2Vzc2lvbikge1xuICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9yZWZyZXNoU2Vzc2lvbihjdXJyZW50U2Vzc2lvbik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBfcmVmcmVzaFNlc3Npb24oY3VycmVudFNlc3Npb24pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50U2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlc3Npb24gPSAoX2EgPSBkYXRhLnNlc3Npb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCEoY3VycmVudFNlc3Npb24gPT09IG51bGwgfHwgY3VycmVudFNlc3Npb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRTZXNzaW9uLnJlZnJlc2hfdG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB7IHNlc3Npb24sIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9jYWxsUmVmcmVzaFRva2VuKGN1cnJlbnRTZXNzaW9uLnJlZnJlc2hfdG9rZW4pO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3I6IGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBzZXNzaW9uLnVzZXIsIHNlc3Npb24gfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc2Vzc2lvbiBkYXRhIGZyb20gYSBVUkwgc3RyaW5nXG4gICAgICovXG4gICAgYXN5bmMgX2dldFNlc3Npb25Gcm9tVVJMKGlzUEtDRUZsb3cpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghaXNCcm93c2VyKCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvcignTm8gYnJvd3NlciBkZXRlY3RlZC4nKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAnaW1wbGljaXQnICYmICF0aGlzLl9pc0ltcGxpY2l0R3JhbnRGbG93KCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yKCdOb3QgYSB2YWxpZCBpbXBsaWNpdCBncmFudCBmbG93IHVybC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZmxvd1R5cGUgPT0gJ3BrY2UnICYmICFpc1BLQ0VGbG93KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvcignTm90IGEgdmFsaWQgUEtDRSBmbG93IHVybC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHBhcnNlUGFyYW1ldGVyc0Zyb21VUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgICAgaWYgKGlzUEtDRUZsb3cpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXBhcmFtcy5jb2RlKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFBLQ0VHcmFudENvZGVFeGNoYW5nZUVycm9yKCdObyBjb2RlIGRldGVjdGVkLicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IHRoaXMuX2V4Y2hhbmdlQ29kZUZvclNlc3Npb24ocGFyYW1zLmNvZGUpO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoJ2NvZGUnKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUod2luZG93Lmhpc3Rvcnkuc3RhdGUsICcnLCB1cmwudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBzZXNzaW9uOiBkYXRhLnNlc3Npb24sIHJlZGlyZWN0VHlwZTogbnVsbCB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcmFtcy5lcnJvciB8fCBwYXJhbXMuZXJyb3JfZGVzY3JpcHRpb24gfHwgcGFyYW1zLmVycm9yX2NvZGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yKHBhcmFtcy5lcnJvcl9kZXNjcmlwdGlvbiB8fCAnRXJyb3IgaW4gVVJMIHdpdGggdW5zcGVjaWZpZWQgZXJyb3JfZGVzY3JpcHRpb24nLCB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBwYXJhbXMuZXJyb3IgfHwgJ3Vuc3BlY2lmaWVkX2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgY29kZTogcGFyYW1zLmVycm9yX2NvZGUgfHwgJ3Vuc3BlY2lmaWVkX2NvZGUnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBwcm92aWRlcl90b2tlbiwgcHJvdmlkZXJfcmVmcmVzaF90b2tlbiwgYWNjZXNzX3Rva2VuLCByZWZyZXNoX3Rva2VuLCBleHBpcmVzX2luLCBleHBpcmVzX2F0LCB0b2tlbl90eXBlLCB9ID0gcGFyYW1zO1xuICAgICAgICAgICAgaWYgKCFhY2Nlc3NfdG9rZW4gfHwgIWV4cGlyZXNfaW4gfHwgIXJlZnJlc2hfdG9rZW4gfHwgIXRva2VuX3R5cGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yKCdObyBzZXNzaW9uIGRlZmluZWQgaW4gVVJMJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0aW1lTm93ID0gTWF0aC5yb3VuZChEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgICAgICAgICBjb25zdCBleHBpcmVzSW4gPSBwYXJzZUludChleHBpcmVzX2luKTtcbiAgICAgICAgICAgIGxldCBleHBpcmVzQXQgPSB0aW1lTm93ICsgZXhwaXJlc0luO1xuICAgICAgICAgICAgaWYgKGV4cGlyZXNfYXQpIHtcbiAgICAgICAgICAgICAgICBleHBpcmVzQXQgPSBwYXJzZUludChleHBpcmVzX2F0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFjdHVhbGx5RXhwaXJlc0luID0gZXhwaXJlc0F0IC0gdGltZU5vdztcbiAgICAgICAgICAgIGlmIChhY3R1YWxseUV4cGlyZXNJbiAqIDEwMDAgPD0gQVVUT19SRUZSRVNIX1RJQ0tfRFVSQVRJT04pIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEBzdXBhYmFzZS9nb3RydWUtanM6IFNlc3Npb24gYXMgcmV0cmlldmVkIGZyb20gVVJMIGV4cGlyZXMgaW4gJHthY3R1YWxseUV4cGlyZXNJbn1zLCBzaG91bGQgaGF2ZSBiZWVuIGNsb3NlciB0byAke2V4cGlyZXNJbn1zYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc3N1ZWRBdCA9IGV4cGlyZXNBdCAtIGV4cGlyZXNJbjtcbiAgICAgICAgICAgIGlmICh0aW1lTm93IC0gaXNzdWVkQXQgPj0gMTIwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBTZXNzaW9uIGFzIHJldHJpZXZlZCBmcm9tIFVSTCB3YXMgaXNzdWVkIG92ZXIgMTIwcyBhZ28sIFVSTCBjb3VsZCBiZSBzdGFsZScsIGlzc3VlZEF0LCBleHBpcmVzQXQsIHRpbWVOb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGltZU5vdyAtIGlzc3VlZEF0IDwgMCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignQHN1cGFiYXNlL2dvdHJ1ZS1qczogU2Vzc2lvbiBhcyByZXRyaWV2ZWQgZnJvbSBVUkwgd2FzIGlzc3VlZCBpbiB0aGUgZnV0dXJlPyBDaGVjayB0aGUgZGV2aWNlIGNsb2sgZm9yIHNrZXcnLCBpc3N1ZWRBdCwgZXhwaXJlc0F0LCB0aW1lTm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IHRoaXMuX2dldFVzZXIoYWNjZXNzX3Rva2VuKTtcbiAgICAgICAgICAgIGlmIChlcnJvcilcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZXJfdG9rZW4sXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVmcmVzaF90b2tlbixcbiAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgZXhwaXJlc19pbjogZXhwaXJlc0luLFxuICAgICAgICAgICAgICAgIGV4cGlyZXNfYXQ6IGV4cGlyZXNBdCxcbiAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuLFxuICAgICAgICAgICAgICAgIHRva2VuX3R5cGUsXG4gICAgICAgICAgICAgICAgdXNlcjogZGF0YS51c2VyLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIFJlbW92ZSB0b2tlbnMgZnJvbSBVUkxcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyc7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19nZXRTZXNzaW9uRnJvbVVSTCgpJywgJ2NsZWFyaW5nIHdpbmRvdy5sb2NhdGlvbi5oYXNoJyk7XG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb24sIHJlZGlyZWN0VHlwZTogcGFyYW1zLnR5cGUgfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IG51bGwsIHJlZGlyZWN0VHlwZTogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IFVSTCBjb250YWlucyBwYXJhbWV0ZXJzIGdpdmVuIGJ5IGFuIGltcGxpY2l0IG9hdXRoIGdyYW50IGZsb3cgKGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM2NzQ5Lmh0bWwjc2VjdGlvbi00LjIpXG4gICAgICovXG4gICAgX2lzSW1wbGljaXRHcmFudEZsb3coKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHBhcnNlUGFyYW1ldGVyc0Zyb21VUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICByZXR1cm4gISEoaXNCcm93c2VyKCkgJiYgKHBhcmFtcy5hY2Nlc3NfdG9rZW4gfHwgcGFyYW1zLmVycm9yX2Rlc2NyaXB0aW9uKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBVUkwgYW5kIGJhY2tpbmcgc3RvcmFnZSBjb250YWluIHBhcmFtZXRlcnMgZ2l2ZW4gYnkgYSBQS0NFIGZsb3dcbiAgICAgKi9cbiAgICBhc3luYyBfaXNQS0NFRmxvdygpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gcGFyc2VQYXJhbWV0ZXJzRnJvbVVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdG9yYWdlQ29udGVudCA9IGF3YWl0IGdldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmApO1xuICAgICAgICByZXR1cm4gISEocGFyYW1zLmNvZGUgJiYgY3VycmVudFN0b3JhZ2VDb250ZW50KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5zaWRlIGEgYnJvd3NlciBjb250ZXh0LCBgc2lnbk91dCgpYCB3aWxsIHJlbW92ZSB0aGUgbG9nZ2VkIGluIHVzZXIgZnJvbSB0aGUgYnJvd3NlciBzZXNzaW9uIGFuZCBsb2cgdGhlbSBvdXQgLSByZW1vdmluZyBhbGwgaXRlbXMgZnJvbSBsb2NhbHN0b3JhZ2UgYW5kIHRoZW4gdHJpZ2dlciBhIGBcIlNJR05FRF9PVVRcImAgZXZlbnQuXG4gICAgICpcbiAgICAgKiBGb3Igc2VydmVyLXNpZGUgbWFuYWdlbWVudCwgeW91IGNhbiByZXZva2UgYWxsIHJlZnJlc2ggdG9rZW5zIGZvciBhIHVzZXIgYnkgcGFzc2luZyBhIHVzZXIncyBKV1QgdGhyb3VnaCB0byBgYXV0aC5hcGkuc2lnbk91dChKV1Q6IHN0cmluZylgLlxuICAgICAqIFRoZXJlIGlzIG5vIHdheSB0byByZXZva2UgYSB1c2VyJ3MgYWNjZXNzIHRva2VuIGp3dCB1bnRpbCBpdCBleHBpcmVzLiBJdCBpcyByZWNvbW1lbmRlZCB0byBzZXQgYSBzaG9ydGVyIGV4cGlyeSBvbiB0aGUgand0IGZvciB0aGlzIHJlYXNvbi5cbiAgICAgKlxuICAgICAqIElmIHVzaW5nIGBvdGhlcnNgIHNjb3BlLCBubyBgU0lHTkVEX09VVGAgZXZlbnQgaXMgZmlyZWQhXG4gICAgICovXG4gICAgYXN5bmMgc2lnbk91dChvcHRpb25zID0geyBzY29wZTogJ2dsb2JhbCcgfSkge1xuICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9zaWduT3V0KG9wdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgX3NpZ25PdXQoeyBzY29wZSB9ID0geyBzY29wZTogJ2dsb2JhbCcgfSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yOiBzZXNzaW9uRXJyb3IgfSA9IHJlc3VsdDtcbiAgICAgICAgICAgIGlmIChzZXNzaW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBlcnJvcjogc2Vzc2lvbkVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IChfYSA9IGRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2Vzc190b2tlbjtcbiAgICAgICAgICAgIGlmIChhY2Nlc3NUb2tlbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IHRoaXMuYWRtaW4uc2lnbk91dChhY2Nlc3NUb2tlbiwgc2NvcGUpO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgNDA0cyBzaW5jZSB1c2VyIG1pZ2h0IG5vdCBleGlzdCBhbnltb3JlXG4gICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSA0MDFzIHNpbmNlIGFuIGludmFsaWQgb3IgZXhwaXJlZCBKV1Qgc2hvdWxkIHNpZ24gb3V0IHRoZSBjdXJyZW50IHNlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEoaXNBdXRoQXBpRXJyb3IoZXJyb3IpICYmIChlcnJvci5zdGF0dXMgPT09IDQwNCB8fCBlcnJvci5zdGF0dXMgPT09IDQwMSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBlcnJvciB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNjb3BlICE9PSAnb3RoZXJzJykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgICAgICAgICBhd2FpdCByZW1vdmVJdGVtQXN5bmModGhpcy5zdG9yYWdlLCBgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX09VVCcsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlY2VpdmUgYSBub3RpZmljYXRpb24gZXZlcnkgdGltZSBhbiBhdXRoIGV2ZW50IGhhcHBlbnMuXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCB3aGVuIGFuIGF1dGggZXZlbnQgaGFwcGVucy5cbiAgICAgKi9cbiAgICBvbkF1dGhTdGF0ZUNoYW5nZShjYWxsYmFjaykge1xuICAgICAgICBjb25zdCBpZCA9IHV1aWQoKTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0ge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyN1bnN1YnNjcmliZSgpJywgJ3N0YXRlIGNoYW5nZSBjYWxsYmFjayB3aXRoIGlkIHJlbW92ZWQnLCBpZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUVtaXR0ZXJzLmRlbGV0ZShpZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI29uQXV0aFN0YXRlQ2hhbmdlKCknLCAncmVnaXN0ZXJlZCBjYWxsYmFjayB3aXRoIGlkJywgaWQpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMuc2V0KGlkLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEluaXRpYWxTZXNzaW9uKGlkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSgpO1xuICAgICAgICByZXR1cm4geyBkYXRhOiB7IHN1YnNjcmlwdGlvbiB9IH07XG4gICAgfVxuICAgIGFzeW5jIF9lbWl0SW5pdGlhbFNlc3Npb24oaWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhOiB7IHNlc3Npb24gfSwgZXJyb3IsIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICBhd2FpdCAoKF9hID0gdGhpcy5zdGF0ZUNoYW5nZUVtaXR0ZXJzLmdldChpZCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsYmFjaygnSU5JVElBTF9TRVNTSU9OJywgc2Vzc2lvbikpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCdJTklUSUFMX1NFU1NJT04nLCAnY2FsbGJhY2sgaWQnLCBpZCwgJ3Nlc3Npb24nLCBzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCAoKF9iID0gdGhpcy5zdGF0ZUNoYW5nZUVtaXR0ZXJzLmdldChpZCkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsYmFjaygnSU5JVElBTF9TRVNTSU9OJywgbnVsbCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCdJTklUSUFMX1NFU1NJT04nLCAnY2FsbGJhY2sgaWQnLCBpZCwgJ2Vycm9yJywgZXJyKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIHBhc3N3b3JkIHJlc2V0IHJlcXVlc3QgdG8gYW4gZW1haWwgYWRkcmVzcy4gVGhpcyBtZXRob2Qgc3VwcG9ydHMgdGhlIFBLQ0UgZmxvdy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbWFpbCBUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgdXNlci5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWRpcmVjdFRvIFRoZSBVUkwgdG8gc2VuZCB0aGUgdXNlciB0byBhZnRlciB0aGV5IGNsaWNrIHRoZSBwYXNzd29yZCByZXNldCBsaW5rLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNhcHRjaGFUb2tlbiBWZXJpZmljYXRpb24gdG9rZW4gcmVjZWl2ZWQgd2hlbiB0aGUgdXNlciBjb21wbGV0ZXMgdGhlIGNhcHRjaGEgb24gdGhlIHNpdGUuXG4gICAgICovXG4gICAgYXN5bmMgcmVzZXRQYXNzd29yZEZvckVtYWlsKGVtYWlsLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2UgPSBudWxsO1xuICAgICAgICBsZXQgY29kZUNoYWxsZW5nZU1ldGhvZCA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlUEtDRVZlcmlmaWVyKCk7XG4gICAgICAgICAgICBhd2FpdCBzZXRJdGVtQXN5bmModGhpcy5zdG9yYWdlLCBgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgLCBgJHtjb2RlVmVyaWZpZXJ9L1BBU1NXT1JEX1JFQ09WRVJZYCk7XG4gICAgICAgICAgICBjb2RlQ2hhbGxlbmdlID0gYXdhaXQgZ2VuZXJhdGVQS0NFQ2hhbGxlbmdlKGNvZGVWZXJpZmllcik7XG4gICAgICAgICAgICBjb2RlQ2hhbGxlbmdlTWV0aG9kID0gY29kZVZlcmlmaWVyID09PSBjb2RlQ2hhbGxlbmdlID8gJ3BsYWluJyA6ICdzMjU2JztcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L3JlY292ZXJgLCB7XG4gICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXG4gICAgICAgICAgICAgICAgICAgIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogY29kZUNoYWxsZW5nZU1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zLnJlZGlyZWN0VG8sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgdGhlIGlkZW50aXRpZXMgbGlua2VkIHRvIGEgdXNlci5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRVc2VySWRlbnRpdGllcygpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5nZXRVc2VyKCk7XG4gICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IGlkZW50aXRpZXM6IChfYSA9IGRhdGEudXNlci5pZGVudGl0aWVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBbXSB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBMaW5rcyBhbiBvYXV0aCBpZGVudGl0eSB0byBhbiBleGlzdGluZyB1c2VyLlxuICAgICAqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIHRoZSBQS0NFIGZsb3cuXG4gICAgICovXG4gICAgYXN5bmMgbGlua0lkZW50aXR5KGNyZWRlbnRpYWxzKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgdGhpcy5fZ2V0VXJsRm9yUHJvdmlkZXIoYCR7dGhpcy51cmx9L3VzZXIvaWRlbnRpdGllcy9hdXRob3JpemVgLCBjcmVkZW50aWFscy5wcm92aWRlciwge1xuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiAoX2EgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVkaXJlY3RUbyxcbiAgICAgICAgICAgICAgICAgICAgc2NvcGVzOiAoX2IgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iuc2NvcGVzLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogKF9jID0gY3JlZGVudGlhbHMub3B0aW9ucykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICBza2lwQnJvd3NlclJlZGlyZWN0OiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnR0VUJywgdXJsLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgand0OiAoX2UgPSAoX2QgPSBkYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5hY2Nlc3NfdG9rZW4pICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgaWYgKGlzQnJvd3NlcigpICYmICEoKF9hID0gY3JlZGVudGlhbHMub3B0aW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNraXBCcm93c2VyUmVkaXJlY3QpKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbihkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEudXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgcHJvdmlkZXI6IGNyZWRlbnRpYWxzLnByb3ZpZGVyLCB1cmw6IGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS51cmwgfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHByb3ZpZGVyOiBjcmVkZW50aWFscy5wcm92aWRlciwgdXJsOiBudWxsIH0sIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBVbmxpbmtzIGFuIGlkZW50aXR5IGZyb20gYSB1c2VyIGJ5IGRlbGV0aW5nIGl0LiBUaGUgdXNlciB3aWxsIG5vIGxvbmdlciBiZSBhYmxlIHRvIHNpZ24gaW4gd2l0aCB0aGF0IGlkZW50aXR5IG9uY2UgaXQncyB1bmxpbmtlZC5cbiAgICAgKi9cbiAgICBhc3luYyB1bmxpbmtJZGVudGl0eShpZGVudGl0eSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdERUxFVEUnLCBgJHt0aGlzLnVybH0vdXNlci9pZGVudGl0aWVzLyR7aWRlbnRpdHkuaWRlbnRpdHlfaWR9YCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGp3dDogKF9iID0gKF9hID0gZGF0YS5zZXNzaW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWNjZXNzX3Rva2VuKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgbmV3IEpXVC5cbiAgICAgKiBAcGFyYW0gcmVmcmVzaFRva2VuIEEgdmFsaWQgcmVmcmVzaCB0b2tlbiB0aGF0IHdhcyByZXR1cm5lZCBvbiBsb2dpbi5cbiAgICAgKi9cbiAgICBhc3luYyBfcmVmcmVzaEFjY2Vzc1Rva2VuKHJlZnJlc2hUb2tlbikge1xuICAgICAgICBjb25zdCBkZWJ1Z05hbWUgPSBgI19yZWZyZXNoQWNjZXNzVG9rZW4oJHtyZWZyZXNoVG9rZW4uc3Vic3RyaW5nKDAsIDUpfS4uLilgO1xuICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdiZWdpbicpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRlZEF0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIC8vIHdpbGwgYXR0ZW1wdCB0byByZWZyZXNoIHRoZSB0b2tlbiB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmZcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCByZXRyeWFibGUoYXN5bmMgKGF0dGVtcHQpID0+IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBzbGVlcChhdHRlbXB0ICogMjAwKTsgLy8gMCwgMjAwLCA0MDAsIDgwMCwgLi4uXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAncmVmcmVzaGluZyBhdHRlbXB0JywgYXR0ZW1wdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L3Rva2VuP2dyYW50X3R5cGU9cmVmcmVzaF90b2tlbmAsIHtcbiAgICAgICAgICAgICAgICAgICAgYm9keTogeyByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW4gfSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICB4Zm9ybTogX3Nlc3Npb25SZXNwb25zZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIChhdHRlbXB0LCBfLCByZXN1bHQpID0+IHJlc3VsdCAmJlxuICAgICAgICAgICAgICAgIHJlc3VsdC5lcnJvciAmJlxuICAgICAgICAgICAgICAgIGlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IocmVzdWx0LmVycm9yKSAmJlxuICAgICAgICAgICAgICAgIC8vIHJldHJ5YWJsZSBvbmx5IGlmIHRoZSByZXF1ZXN0IGNhbiBiZSBzZW50IGJlZm9yZSB0aGUgYmFja29mZiBvdmVyZmxvd3MgdGhlIHRpY2sgZHVyYXRpb25cbiAgICAgICAgICAgICAgICBEYXRlLm5vdygpICsgKGF0dGVtcHQgKyAxKSAqIDIwMCAtIHN0YXJ0ZWRBdCA8IEFVVE9fUkVGUkVTSF9USUNLX0RVUkFUSU9OKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2Vycm9yJywgZXJyb3IpO1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbjogbnVsbCwgdXNlcjogbnVsbCB9LCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdlbmQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfaXNWYWxpZFNlc3Npb24obWF5YmVTZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IGlzVmFsaWRTZXNzaW9uID0gdHlwZW9mIG1heWJlU2Vzc2lvbiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgIG1heWJlU2Vzc2lvbiAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgaW4gbWF5YmVTZXNzaW9uICYmXG4gICAgICAgICAgICAncmVmcmVzaF90b2tlbicgaW4gbWF5YmVTZXNzaW9uICYmXG4gICAgICAgICAgICAnZXhwaXJlc19hdCcgaW4gbWF5YmVTZXNzaW9uO1xuICAgICAgICByZXR1cm4gaXNWYWxpZFNlc3Npb247XG4gICAgfVxuICAgIGFzeW5jIF9oYW5kbGVQcm92aWRlclNpZ25Jbihwcm92aWRlciwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLl9nZXRVcmxGb3JQcm92aWRlcihgJHt0aGlzLnVybH0vYXV0aG9yaXplYCwgcHJvdmlkZXIsIHtcbiAgICAgICAgICAgIHJlZGlyZWN0VG86IG9wdGlvbnMucmVkaXJlY3RUbyxcbiAgICAgICAgICAgIHNjb3Blczogb3B0aW9ucy5zY29wZXMsXG4gICAgICAgICAgICBxdWVyeVBhcmFtczogb3B0aW9ucy5xdWVyeVBhcmFtcyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX2hhbmRsZVByb3ZpZGVyU2lnbkluKCknLCAncHJvdmlkZXInLCBwcm92aWRlciwgJ29wdGlvbnMnLCBvcHRpb25zLCAndXJsJywgdXJsKTtcbiAgICAgICAgLy8gdHJ5IHRvIG9wZW4gb24gdGhlIGJyb3dzZXJcbiAgICAgICAgaWYgKGlzQnJvd3NlcigpICYmICFvcHRpb25zLnNraXBCcm93c2VyUmVkaXJlY3QpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odXJsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkYXRhOiB7IHByb3ZpZGVyLCB1cmwgfSwgZXJyb3I6IG51bGwgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVjb3ZlcnMgdGhlIHNlc3Npb24gZnJvbSBMb2NhbFN0b3JhZ2UgYW5kIHJlZnJlc2hlc1xuICAgICAqIE5vdGU6IHRoaXMgbWV0aG9kIGlzIGFzeW5jIHRvIGFjY29tbW9kYXRlIGZvciBBc3luY1N0b3JhZ2UgZS5nLiBpbiBSZWFjdCBuYXRpdmUuXG4gICAgICovXG4gICAgYXN5bmMgX3JlY292ZXJBbmRSZWZyZXNoKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGRlYnVnTmFtZSA9ICcjX3JlY292ZXJBbmRSZWZyZXNoKCknO1xuICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdiZWdpbicpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFNlc3Npb24gPSBhd2FpdCBnZXRJdGVtQXN5bmModGhpcy5zdG9yYWdlLCB0aGlzLnN0b3JhZ2VLZXkpO1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnc2Vzc2lvbiBmcm9tIHN0b3JhZ2UnLCBjdXJyZW50U2Vzc2lvbik7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzVmFsaWRTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ3Nlc3Npb24gaXMgbm90IHZhbGlkJyk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTZXNzaW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGltZU5vdyA9IE1hdGgucm91bmQoRGF0ZS5ub3coKSAvIDEwMDApO1xuICAgICAgICAgICAgY29uc3QgZXhwaXJlc1dpdGhNYXJnaW4gPSAoKF9hID0gY3VycmVudFNlc3Npb24uZXhwaXJlc19hdCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogSW5maW5pdHkpIDwgdGltZU5vdyArIEVYUElSWV9NQVJHSU47XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsIGBzZXNzaW9uIGhhcyR7ZXhwaXJlc1dpdGhNYXJnaW4gPyAnJyA6ICcgbm90J30gZXhwaXJlZCB3aXRoIG1hcmdpbiBvZiAke0VYUElSWV9NQVJHSU59c2ApO1xuICAgICAgICAgICAgaWYgKGV4cGlyZXNXaXRoTWFyZ2luKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b1JlZnJlc2hUb2tlbiAmJiBjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IHRoaXMuX2NhbGxSZWZyZXNoVG9rZW4oY3VycmVudFNlc3Npb24ucmVmcmVzaF90b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAncmVmcmVzaCBmYWlsZWQgd2l0aCBhIG5vbi1yZXRyeWFibGUgZXJyb3IsIHJlbW92aW5nIHRoZSBzZXNzaW9uJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIG5vIG5lZWQgdG8gcGVyc2lzdCBjdXJyZW50U2Vzc2lvbiBhZ2FpbiwgYXMgd2UganVzdCBsb2FkZWQgaXQgZnJvbVxuICAgICAgICAgICAgICAgIC8vIGxvY2FsIHN0b3JhZ2U7IHBlcnNpc3RpbmcgaXQgYWdhaW4gbWF5IG92ZXJ3cml0ZSBhIHZhbHVlIHNhdmVkIGJ5XG4gICAgICAgICAgICAgICAgLy8gYW5vdGhlciBjbGllbnQgd2l0aCBhY2Nlc3MgdG8gdGhlIHNhbWUgbG9jYWwgc3RvcmFnZVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfSU4nLCBjdXJyZW50U2Vzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnZXJyb3InLCBlcnIpO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnZW5kJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgX2NhbGxSZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyByZWZyZXNoaW5nIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3NcbiAgICAgICAgaWYgKHRoaXMucmVmcmVzaGluZ0RlZmVycmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQucHJvbWlzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWJ1Z05hbWUgPSBgI19jYWxsUmVmcmVzaFRva2VuKCR7cmVmcmVzaFRva2VuLnN1YnN0cmluZygwLCA1KX0uLi4pYDtcbiAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnYmVnaW4nKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ0RlZmVycmVkID0gbmV3IERlZmVycmVkKCk7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9yZWZyZXNoQWNjZXNzVG9rZW4ocmVmcmVzaFRva2VuKTtcbiAgICAgICAgICAgIGlmIChlcnJvcilcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIGlmICghZGF0YS5zZXNzaW9uKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oZGF0YS5zZXNzaW9uKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdUT0tFTl9SRUZSRVNIRUQnLCBkYXRhLnNlc3Npb24pO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geyBzZXNzaW9uOiBkYXRhLnNlc3Npb24sIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZC5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geyBzZXNzaW9uOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIGlmICghaXNBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX09VVCcsIG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAoX2EgPSB0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKF9iID0gdGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5yZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdlbmQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBfbm90aWZ5QWxsU3Vic2NyaWJlcnMoZXZlbnQsIHNlc3Npb24sIGJyb2FkY2FzdCA9IHRydWUpIHtcbiAgICAgICAgY29uc3QgZGVidWdOYW1lID0gYCNfbm90aWZ5QWxsU3Vic2NyaWJlcnMoJHtldmVudH0pYDtcbiAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnYmVnaW4nLCBzZXNzaW9uLCBgYnJvYWRjYXN0ID0gJHticm9hZGNhc3R9YCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodGhpcy5icm9hZGNhc3RDaGFubmVsICYmIGJyb2FkY2FzdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSh7IGV2ZW50LCBzZXNzaW9uIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gW107XG4gICAgICAgICAgICBjb25zdCBwcm9taXNlcyA9IEFycmF5LmZyb20odGhpcy5zdGF0ZUNoYW5nZUVtaXR0ZXJzLnZhbHVlcygpKS5tYXAoYXN5bmMgKHgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB4LmNhbGxiYWNrKGV2ZW50LCBzZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzLnB1c2goZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVycm9ycy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yc1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yc1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2VuZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIHNldCBjdXJyZW50U2Vzc2lvbiBhbmQgY3VycmVudFVzZXJcbiAgICAgKiBwcm9jZXNzIHRvIF9zdGFydEF1dG9SZWZyZXNoVG9rZW4gaWYgcG9zc2libGVcbiAgICAgKi9cbiAgICBhc3luYyBfc2F2ZVNlc3Npb24oc2Vzc2lvbikge1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI19zYXZlU2Vzc2lvbigpJywgc2Vzc2lvbik7XG4gICAgICAgIGF3YWl0IHNldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSwgc2Vzc2lvbik7XG4gICAgfVxuICAgIGFzeW5jIF9yZW1vdmVTZXNzaW9uKCkge1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI19yZW1vdmVTZXNzaW9uKCknKTtcbiAgICAgICAgYXdhaXQgcmVtb3ZlSXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbnkgcmVnaXN0ZXJlZCB2aXNpYmlsaXR5Y2hhbmdlIGNhbGxiYWNrLlxuICAgICAqXG4gICAgICoge0BzZWUgI3N0YXJ0QXV0b1JlZnJlc2h9XG4gICAgICoge0BzZWUgI3N0b3BBdXRvUmVmcmVzaH1cbiAgICAgKi9cbiAgICBfcmVtb3ZlVmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaygpIHtcbiAgICAgICAgdGhpcy5fZGVidWcoJyNfcmVtb3ZlVmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaygpJyk7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrID0gdGhpcy52aXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrO1xuICAgICAgICB0aGlzLnZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2sgPSBudWxsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrICYmIGlzQnJvd3NlcigpICYmICh3aW5kb3cgPT09IG51bGwgfHwgd2luZG93ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcikpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcigncmVtb3ZpbmcgdmlzaWJpbGl0eWNoYW5nZSBjYWxsYmFjayBmYWlsZWQnLCBlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIHRoZSBwcml2YXRlIGltcGxlbWVudGF0aW9uIG9mIHtAbGluayAjc3RhcnRBdXRvUmVmcmVzaH0uIFVzZSB0aGlzXG4gICAgICogd2l0aGluIHRoZSBsaWJyYXJ5LlxuICAgICAqL1xuICAgIGFzeW5jIF9zdGFydEF1dG9SZWZyZXNoKCkge1xuICAgICAgICBhd2FpdCB0aGlzLl9zdG9wQXV0b1JlZnJlc2goKTtcbiAgICAgICAgdGhpcy5fZGVidWcoJyNfc3RhcnRBdXRvUmVmcmVzaCgpJyk7XG4gICAgICAgIGNvbnN0IHRpY2tlciA9IHNldEludGVydmFsKCgpID0+IHRoaXMuX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCksIEFVVE9fUkVGUkVTSF9USUNLX0RVUkFUSU9OKTtcbiAgICAgICAgdGhpcy5hdXRvUmVmcmVzaFRpY2tlciA9IHRpY2tlcjtcbiAgICAgICAgaWYgKHRpY2tlciAmJiB0eXBlb2YgdGlja2VyID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdGlja2VyLnVucmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyB0aWNrZXIgaXMgYSBOb2RlSlMgVGltZW91dCBvYmplY3QgdGhhdCBoYXMgYW4gYHVucmVmYCBtZXRob2RcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvdGltZXJzLmh0bWwjdGltZW91dHVucmVmXG4gICAgICAgICAgICAvLyBXaGVuIGF1dG8gcmVmcmVzaCBpcyB1c2VkIGluIE5vZGVKUyAobGlrZSBmb3IgdGVzdGluZykgdGhlXG4gICAgICAgICAgICAvLyBgc2V0SW50ZXJ2YWxgIGlzIHByZXZlbnRpbmcgdGhlIHByb2Nlc3MgZnJvbSBiZWluZyBtYXJrZWQgYXNcbiAgICAgICAgICAgIC8vIGZpbmlzaGVkIGFuZCB0ZXN0cyBydW4gZW5kbGVzc2x5LiBUaGlzIGNhbiBiZSBwcmV2ZW50ZWQgYnkgY2FsbGluZ1xuICAgICAgICAgICAgLy8gYHVucmVmKClgIG9uIHRoZSByZXR1cm5lZCBvYmplY3QuXG4gICAgICAgICAgICB0aWNrZXIudW5yZWYoKTtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgRGVubyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIERlbm8udW5yZWZUaW1lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgLy8gc2ltaWxhciBsaWtlIGZvciBOb2RlSlMsIGJ1dCB3aXRoIHRoZSBEZW5vIEFQSVxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZW5vLmxhbmQvYXBpQGxhdGVzdD91bnN0YWJsZSZzPURlbm8udW5yZWZUaW1lclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgRGVuby51bnJlZlRpbWVyKHRpY2tlcik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcnVuIHRoZSB0aWNrIGltbWVkaWF0ZWx5LCBidXQgaW4gdGhlIG5leHQgcGFzcyBvZiB0aGUgZXZlbnQgbG9vcCBzbyB0aGF0XG4gICAgICAgIC8vICNfaW5pdGlhbGl6ZSBjYW4gYmUgYWxsb3dlZCB0byBjb21wbGV0ZSB3aXRob3V0IHJlY3Vyc2l2ZWx5IHdhaXRpbmcgb25cbiAgICAgICAgLy8gaXRzZWxmXG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIHRoZSBwcml2YXRlIGltcGxlbWVudGF0aW9uIG9mIHtAbGluayAjc3RvcEF1dG9SZWZyZXNofS4gVXNlIHRoaXNcbiAgICAgKiB3aXRoaW4gdGhlIGxpYnJhcnkuXG4gICAgICovXG4gICAgYXN5bmMgX3N0b3BBdXRvUmVmcmVzaCgpIHtcbiAgICAgICAgdGhpcy5fZGVidWcoJyNfc3RvcEF1dG9SZWZyZXNoKCknKTtcbiAgICAgICAgY29uc3QgdGlja2VyID0gdGhpcy5hdXRvUmVmcmVzaFRpY2tlcjtcbiAgICAgICAgdGhpcy5hdXRvUmVmcmVzaFRpY2tlciA9IG51bGw7XG4gICAgICAgIGlmICh0aWNrZXIpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGlja2VyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdGFydHMgYW4gYXV0by1yZWZyZXNoIHByb2Nlc3MgaW4gdGhlIGJhY2tncm91bmQuIFRoZSBzZXNzaW9uIGlzIGNoZWNrZWRcbiAgICAgKiBldmVyeSBmZXcgc2Vjb25kcy4gQ2xvc2UgdG8gdGhlIHRpbWUgb2YgZXhwaXJhdGlvbiBhIHByb2Nlc3MgaXMgc3RhcnRlZCB0b1xuICAgICAqIHJlZnJlc2ggdGhlIHNlc3Npb24uIElmIHJlZnJlc2hpbmcgZmFpbHMgaXQgd2lsbCBiZSByZXRyaWVkIGZvciBhcyBsb25nIGFzXG4gICAgICogbmVjZXNzYXJ5LlxuICAgICAqXG4gICAgICogSWYgeW91IHNldCB0aGUge0BsaW5rIEdvVHJ1ZUNsaWVudE9wdGlvbnMjYXV0b1JlZnJlc2hUb2tlbn0geW91IGRvbid0IG5lZWRcbiAgICAgKiB0byBjYWxsIHRoaXMgZnVuY3Rpb24sIGl0IHdpbGwgYmUgY2FsbGVkIGZvciB5b3UuXG4gICAgICpcbiAgICAgKiBPbiBicm93c2VycyB0aGUgcmVmcmVzaCBwcm9jZXNzIHdvcmtzIG9ubHkgd2hlbiB0aGUgdGFiL3dpbmRvdyBpcyBpbiB0aGVcbiAgICAgKiBmb3JlZ3JvdW5kIHRvIGNvbnNlcnZlIHJlc291cmNlcyBhcyB3ZWxsIGFzIHByZXZlbnQgcmFjZSBjb25kaXRpb25zIGFuZFxuICAgICAqIGZsb29kaW5nIGF1dGggd2l0aCByZXF1ZXN0cy4gSWYgeW91IGNhbGwgdGhpcyBtZXRob2QgYW55IG1hbmFnZWRcbiAgICAgKiB2aXNpYmlsaXR5IGNoYW5nZSBjYWxsYmFjayB3aWxsIGJlIHJlbW92ZWQgYW5kIHlvdSBtdXN0IG1hbmFnZSB2aXNpYmlsaXR5XG4gICAgICogY2hhbmdlcyBvbiB5b3VyIG93bi5cbiAgICAgKlxuICAgICAqIE9uIG5vbi1icm93c2VyIHBsYXRmb3JtcyB0aGUgcmVmcmVzaCBwcm9jZXNzIHdvcmtzICpjb250aW51b3VzbHkqIGluIHRoZVxuICAgICAqIGJhY2tncm91bmQsIHdoaWNoIG1heSBub3QgYmUgZGVzaXJhYmxlLiBZb3Ugc2hvdWxkIGhvb2sgaW50byB5b3VyXG4gICAgICogcGxhdGZvcm0ncyBmb3JlZ3JvdW5kIGluZGljYXRpb24gbWVjaGFuaXNtIGFuZCBjYWxsIHRoZXNlIG1ldGhvZHNcbiAgICAgKiBhcHByb3ByaWF0ZWx5IHRvIGNvbnNlcnZlIHJlc291cmNlcy5cbiAgICAgKlxuICAgICAqIHtAc2VlICNzdG9wQXV0b1JlZnJlc2h9XG4gICAgICovXG4gICAgYXN5bmMgc3RhcnRBdXRvUmVmcmVzaCgpIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlVmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaygpO1xuICAgICAgICBhd2FpdCB0aGlzLl9zdGFydEF1dG9SZWZyZXNoKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0b3BzIGFuIGFjdGl2ZSBhdXRvIHJlZnJlc2ggcHJvY2VzcyBydW5uaW5nIGluIHRoZSBiYWNrZ3JvdW5kIChpZiBhbnkpLlxuICAgICAqXG4gICAgICogSWYgeW91IGNhbGwgdGhpcyBtZXRob2QgYW55IG1hbmFnZWQgdmlzaWJpbGl0eSBjaGFuZ2UgY2FsbGJhY2sgd2lsbCBiZVxuICAgICAqIHJlbW92ZWQgYW5kIHlvdSBtdXN0IG1hbmFnZSB2aXNpYmlsaXR5IGNoYW5nZXMgb24geW91ciBvd24uXG4gICAgICpcbiAgICAgKiBTZWUge0BsaW5rICNzdGFydEF1dG9SZWZyZXNofSBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqL1xuICAgIGFzeW5jIHN0b3BBdXRvUmVmcmVzaCgpIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlVmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaygpO1xuICAgICAgICBhd2FpdCB0aGlzLl9zdG9wQXV0b1JlZnJlc2goKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUnVucyB0aGUgYXV0byByZWZyZXNoIHRva2VuIHRpY2suXG4gICAgICovXG4gICAgYXN5bmMgX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCkge1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI19hdXRvUmVmcmVzaFRva2VuVGljaygpJywgJ2JlZ2luJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygwLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9LCB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbiB8fCAhc2Vzc2lvbi5yZWZyZXNoX3Rva2VuIHx8ICFzZXNzaW9uLmV4cGlyZXNfYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfYXV0b1JlZnJlc2hUb2tlblRpY2soKScsICdubyBzZXNzaW9uJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2Vzc2lvbiB3aWxsIGV4cGlyZSBpbiB0aGlzIG1hbnkgdGlja3MgKG9yIGhhcyBhbHJlYWR5IGV4cGlyZWQgaWYgPD0gMClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHBpcmVzSW5UaWNrcyA9IE1hdGguZmxvb3IoKHNlc3Npb24uZXhwaXJlc19hdCAqIDEwMDAgLSBub3cpIC8gQVVUT19SRUZSRVNIX1RJQ0tfRFVSQVRJT04pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCknLCBgYWNjZXNzIHRva2VuIGV4cGlyZXMgaW4gJHtleHBpcmVzSW5UaWNrc30gdGlja3MsIGEgdGljayBsYXN0cyAke0FVVE9fUkVGUkVTSF9USUNLX0RVUkFUSU9OfW1zLCByZWZyZXNoIHRocmVzaG9sZCBpcyAke0FVVE9fUkVGUkVTSF9USUNLX1RIUkVTSE9MRH0gdGlja3NgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwaXJlc0luVGlja3MgPD0gQVVUT19SRUZSRVNIX1RJQ0tfVEhSRVNIT0xEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2NhbGxSZWZyZXNoVG9rZW4oc2Vzc2lvbi5yZWZyZXNoX3Rva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignQXV0byByZWZyZXNoIHRpY2sgZmFpbGVkIHdpdGggZXJyb3IuIFRoaXMgaXMgbGlrZWx5IGEgdHJhbnNpZW50IGVycm9yLicsIGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19hdXRvUmVmcmVzaFRva2VuVGljaygpJywgJ2VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZS5pc0FjcXVpcmVUaW1lb3V0IHx8IGUgaW5zdGFuY2VvZiBMb2NrQWNxdWlyZVRpbWVvdXRFcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCdhdXRvIHJlZnJlc2ggdG9rZW4gdGljayBsb2NrIG5vdCBhdmFpbGFibGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGNhbGxiYWNrcyBvbiB0aGUgYnJvd3NlciAvIHBsYXRmb3JtLCB3aGljaCBpbi10dXJuIHJ1blxuICAgICAqIGFsZ29yaXRobXMgd2hlbiB0aGUgYnJvd3NlciB3aW5kb3cvdGFiIGFyZSBpbiBmb3JlZ3JvdW5kLiBPbiBub24tYnJvd3NlclxuICAgICAqIHBsYXRmb3JtcyBpdCBhc3N1bWVzIGFsd2F5cyBmb3JlZ3JvdW5kLlxuICAgICAqL1xuICAgIGFzeW5jIF9oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLl9kZWJ1ZygnI19oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKCknKTtcbiAgICAgICAgaWYgKCFpc0Jyb3dzZXIoKSB8fCAhKHdpbmRvdyA9PT0gbnVsbCB8fCB3aW5kb3cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b1JlZnJlc2hUb2tlbikge1xuICAgICAgICAgICAgICAgIC8vIGluIG5vbi1icm93c2VyIGVudmlyb25tZW50cyB0aGUgcmVmcmVzaCB0b2tlbiB0aWNrZXIgcnVucyBhbHdheXNcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b1JlZnJlc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrID0gYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5fb25WaXNpYmlsaXR5Q2hhbmdlZChmYWxzZSk7XG4gICAgICAgICAgICB3aW5kb3cgPT09IG51bGwgfHwgd2luZG93ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIHRoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjayk7XG4gICAgICAgICAgICAvLyBub3cgaW1tZWRpYXRlbHkgY2FsbCB0aGUgdmlzYmlsaXR5IGNoYW5nZWQgY2FsbGJhY2sgdG8gc2V0dXAgd2l0aCB0aGVcbiAgICAgICAgICAgIC8vIGN1cnJlbnQgdmlzYmlsaXR5IHN0YXRlXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9vblZpc2liaWxpdHlDaGFuZ2VkKHRydWUpOyAvLyBpbml0aWFsIGNhbGxcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ19oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlJywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHJlZ2lzdGVyZWQgd2l0aCBgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnKWAuXG4gICAgICovXG4gICAgYXN5bmMgX29uVmlzaWJpbGl0eUNoYW5nZWQoY2FsbGVkRnJvbUluaXRpYWxpemUpIHtcbiAgICAgICAgY29uc3QgbWV0aG9kTmFtZSA9IGAjX29uVmlzaWJpbGl0eUNoYW5nZWQoJHtjYWxsZWRGcm9tSW5pdGlhbGl6ZX0pYDtcbiAgICAgICAgdGhpcy5fZGVidWcobWV0aG9kTmFtZSwgJ3Zpc2liaWxpdHlTdGF0ZScsIGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSk7XG4gICAgICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICd2aXNpYmxlJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b1JlZnJlc2hUb2tlbikge1xuICAgICAgICAgICAgICAgIC8vIGluIGJyb3dzZXIgZW52aXJvbm1lbnRzIHRoZSByZWZyZXNoIHRva2VuIHRpY2tlciBydW5zIG9ubHkgb24gZm9jdXNlZCB0YWJzXG4gICAgICAgICAgICAgICAgLy8gd2hpY2ggcHJldmVudHMgcmFjZSBjb25kaXRpb25zXG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRBdXRvUmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFjYWxsZWRGcm9tSW5pdGlhbGl6ZSkge1xuICAgICAgICAgICAgICAgIC8vIGNhbGxlZCB3aGVuIHRoZSB2aXNpYmlsaXR5IGhhcyBjaGFuZ2VkLCBpLmUuIHRoZSBicm93c2VyXG4gICAgICAgICAgICAgICAgLy8gdHJhbnNpdGlvbmVkIGZyb20gaGlkZGVuIC0+IHZpc2libGUgc28gd2UgbmVlZCB0byBzZWUgaWYgdGhlIHNlc3Npb25cbiAgICAgICAgICAgICAgICAvLyBzaG91bGQgYmUgcmVjb3ZlcmVkIGltbWVkaWF0ZWx5Li4uIGJ1dCB0byBkbyB0aGF0IHdlIG5lZWQgdG8gYWNxdWlyZVxuICAgICAgICAgICAgICAgIC8vIHRoZSBsb2NrIGZpcnN0IGFzeW5jaHJvbm91c2x5XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlICE9PSAndmlzaWJsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKG1ldGhvZE5hbWUsICdhY3F1aXJlZCB0aGUgbG9jayB0byByZWNvdmVyIHRoZSBzZXNzaW9uLCBidXQgdGhlIGJyb3dzZXIgdmlzaWJpbGl0eVN0YXRlIGlzIG5vIGxvbmdlciB2aXNpYmxlLCBhYm9ydGluZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmlzaWJpbGl0eSBoYXMgY2hhbmdlZCB3aGlsZSB3YWl0aW5nIGZvciB0aGUgbG9jaywgYWJvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyByZWNvdmVyIHRoZSBzZXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlY292ZXJBbmRSZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b1JlZnJlc2hUb2tlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0b3BBdXRvUmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyB0aGUgcmVsZXZhbnQgbG9naW4gVVJMIGZvciBhIHRoaXJkLXBhcnR5IHByb3ZpZGVyLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlZGlyZWN0VG8gQSBVUkwgb3IgbW9iaWxlIGFkZHJlc3MgdG8gc2VuZCB0aGUgdXNlciB0byBhZnRlciB0aGV5IGFyZSBjb25maXJtZWQuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuc2NvcGVzIEEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2Ygc2NvcGVzIGdyYW50ZWQgdG8gdGhlIE9BdXRoIGFwcGxpY2F0aW9uLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnF1ZXJ5UGFyYW1zIEFuIG9iamVjdCBvZiBrZXktdmFsdWUgcGFpcnMgY29udGFpbmluZyBxdWVyeSBwYXJhbWV0ZXJzIGdyYW50ZWQgdG8gdGhlIE9BdXRoIGFwcGxpY2F0aW9uLlxuICAgICAqL1xuICAgIGFzeW5jIF9nZXRVcmxGb3JQcm92aWRlcih1cmwsIHByb3ZpZGVyLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IFtgcHJvdmlkZXI9JHtlbmNvZGVVUklDb21wb25lbnQocHJvdmlkZXIpfWBdO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnJlZGlyZWN0VG8pIHtcbiAgICAgICAgICAgIHVybFBhcmFtcy5wdXNoKGByZWRpcmVjdF90bz0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLnJlZGlyZWN0VG8pfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2NvcGVzKSB7XG4gICAgICAgICAgICB1cmxQYXJhbXMucHVzaChgc2NvcGVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuc2NvcGVzKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mbG93VHlwZSA9PT0gJ3BrY2UnKSB7XG4gICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBnZW5lcmF0ZVBLQ0VWZXJpZmllcigpO1xuICAgICAgICAgICAgYXdhaXQgc2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCwgY29kZVZlcmlmaWVyKTtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVDaGFsbGVuZ2UgPSBhd2FpdCBnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UoY29kZVZlcmlmaWVyKTtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBjb2RlVmVyaWZpZXIgPT09IGNvZGVDaGFsbGVuZ2UgPyAncGxhaW4nIDogJ3MyNTYnO1xuICAgICAgICAgICAgdGhpcy5fZGVidWcoJ1BLQ0UnLCAnY29kZSB2ZXJpZmllcicsIGAke2NvZGVWZXJpZmllci5zdWJzdHJpbmcoMCwgNSl9Li4uYCwgJ2NvZGUgY2hhbGxlbmdlJywgY29kZUNoYWxsZW5nZSwgJ21ldGhvZCcsIGNvZGVDaGFsbGVuZ2VNZXRob2QpO1xuICAgICAgICAgICAgY29uc3QgZmxvd1BhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgICAgIGNvZGVfY2hhbGxlbmdlOiBgJHtlbmNvZGVVUklDb21wb25lbnQoY29kZUNoYWxsZW5nZSl9YCxcbiAgICAgICAgICAgICAgICBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6IGAke2VuY29kZVVSSUNvbXBvbmVudChjb2RlQ2hhbGxlbmdlTWV0aG9kKX1gLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB1cmxQYXJhbXMucHVzaChmbG93UGFyYW1zLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhvcHRpb25zLnF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgIHVybFBhcmFtcy5wdXNoKHF1ZXJ5LnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2tpcEJyb3dzZXJSZWRpcmVjdCkge1xuICAgICAgICAgICAgdXJsUGFyYW1zLnB1c2goYHNraXBfaHR0cF9yZWRpcmVjdD0ke29wdGlvbnMuc2tpcEJyb3dzZXJSZWRpcmVjdH1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7dXJsfT8ke3VybFBhcmFtcy5qb2luKCcmJyl9YDtcbiAgICB9XG4gICAgYXN5bmMgX3VuZW5yb2xsKHBhcmFtcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHNlc3Npb25EYXRhLCBlcnJvcjogc2Vzc2lvbkVycm9yIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogc2Vzc2lvbkVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnREVMRVRFJywgYCR7dGhpcy51cmx9L2ZhY3RvcnMvJHtwYXJhbXMuZmFjdG9ySWR9YCwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGp3dDogKF9hID0gc2Vzc2lvbkRhdGEgPT09IG51bGwgfHwgc2Vzc2lvbkRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb25EYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICoge0BzZWUgR29UcnVlTUZBQXBpI2Vucm9sbH1cbiAgICAgKi9cbiAgICBhc3luYyBfZW5yb2xsKHBhcmFtcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhOiBzZXNzaW9uRGF0YSwgZXJyb3I6IHNlc3Npb25FcnJvciB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IHNlc3Npb25FcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9mYWN0b3JzYCwge1xuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcmllbmRseV9uYW1lOiBwYXJhbXMuZnJpZW5kbHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yX3R5cGU6IHBhcmFtcy5mYWN0b3JUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVyOiBwYXJhbXMuaXNzdWVyLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGp3dDogKF9hID0gc2Vzc2lvbkRhdGEgPT09IG51bGwgfHwgc2Vzc2lvbkRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb25EYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoX2IgPSBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEudG90cCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnFyX2NvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS50b3RwLnFyX2NvZGUgPSBgZGF0YTppbWFnZS9zdmcreG1sO3V0Zi04LCR7ZGF0YS50b3RwLnFyX2NvZGV9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiB7QHNlZSBHb1RydWVNRkFBcGkjdmVyaWZ5fVxuICAgICAqL1xuICAgIGFzeW5jIF92ZXJpZnkocGFyYW1zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhOiBzZXNzaW9uRGF0YSwgZXJyb3I6IHNlc3Npb25FcnJvciB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogc2Vzc2lvbkVycm9yIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vZmFjdG9ycy8ke3BhcmFtcy5mYWN0b3JJZH0vdmVyaWZ5YCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogeyBjb2RlOiBwYXJhbXMuY29kZSwgY2hhbGxlbmdlX2lkOiBwYXJhbXMuY2hhbGxlbmdlSWQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGp3dDogKF9hID0gc2Vzc2lvbkRhdGEgPT09IG51bGwgfHwgc2Vzc2lvbkRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb25EYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oT2JqZWN0LmFzc2lnbih7IGV4cGlyZXNfYXQ6IE1hdGgucm91bmQoRGF0ZS5ub3coKSAvIDEwMDApICsgZGF0YS5leHBpcmVzX2luIH0sIGRhdGEpKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ01GQV9DSEFMTEVOR0VfVkVSSUZJRUQnLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiB7QHNlZSBHb1RydWVNRkFBcGkjY2hhbGxlbmdlfVxuICAgICAqL1xuICAgIGFzeW5jIF9jaGFsbGVuZ2UocGFyYW1zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhOiBzZXNzaW9uRGF0YSwgZXJyb3I6IHNlc3Npb25FcnJvciB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogc2Vzc2lvbkVycm9yIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L2ZhY3RvcnMvJHtwYXJhbXMuZmFjdG9ySWR9L2NoYWxsZW5nZWAsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGp3dDogKF9hID0gc2Vzc2lvbkRhdGEgPT09IG51bGwgfHwgc2Vzc2lvbkRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb25EYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIHtAc2VlIEdvVHJ1ZU1GQUFwaSNjaGFsbGVuZ2VBbmRWZXJpZnl9XG4gICAgICovXG4gICAgYXN5bmMgX2NoYWxsZW5nZUFuZFZlcmlmeShwYXJhbXMpIHtcbiAgICAgICAgLy8gYm90aCBfY2hhbGxlbmdlIGFuZCBfdmVyaWZ5IGluZGVwZW5kZW50bHkgYWNxdWlyZSB0aGUgbG9jaywgc28gbm8gbmVlZFxuICAgICAgICAvLyB0byBhY3F1aXJlIGl0IGhlcmVcbiAgICAgICAgY29uc3QgeyBkYXRhOiBjaGFsbGVuZ2VEYXRhLCBlcnJvcjogY2hhbGxlbmdlRXJyb3IgfSA9IGF3YWl0IHRoaXMuX2NoYWxsZW5nZSh7XG4gICAgICAgICAgICBmYWN0b3JJZDogcGFyYW1zLmZhY3RvcklkLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNoYWxsZW5nZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogY2hhbGxlbmdlRXJyb3IgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdmVyaWZ5KHtcbiAgICAgICAgICAgIGZhY3RvcklkOiBwYXJhbXMuZmFjdG9ySWQsXG4gICAgICAgICAgICBjaGFsbGVuZ2VJZDogY2hhbGxlbmdlRGF0YS5pZCxcbiAgICAgICAgICAgIGNvZGU6IHBhcmFtcy5jb2RlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICoge0BzZWUgR29UcnVlTUZBQXBpI2xpc3RGYWN0b3JzfVxuICAgICAqL1xuICAgIGFzeW5jIF9saXN0RmFjdG9ycygpIHtcbiAgICAgICAgLy8gdXNlICNnZXRVc2VyIGluc3RlYWQgb2YgI19nZXRVc2VyIGFzIHRoZSBmb3JtZXIgYWNxdWlyZXMgYSBsb2NrXG4gICAgICAgIGNvbnN0IHsgZGF0YTogeyB1c2VyIH0sIGVycm9yOiB1c2VyRXJyb3IsIH0gPSBhd2FpdCB0aGlzLmdldFVzZXIoKTtcbiAgICAgICAgaWYgKHVzZXJFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IHVzZXJFcnJvciB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZhY3RvcnMgPSAodXNlciA9PT0gbnVsbCB8fCB1c2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiB1c2VyLmZhY3RvcnMpIHx8IFtdO1xuICAgICAgICBjb25zdCB0b3RwID0gZmFjdG9ycy5maWx0ZXIoKGZhY3RvcikgPT4gZmFjdG9yLmZhY3Rvcl90eXBlID09PSAndG90cCcgJiYgZmFjdG9yLnN0YXR1cyA9PT0gJ3ZlcmlmaWVkJyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgYWxsOiBmYWN0b3JzLFxuICAgICAgICAgICAgICAgIHRvdHAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIHtAc2VlIEdvVHJ1ZU1GQUFwaSNnZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWx9XG4gICAgICovXG4gICAgYXN5bmMgX2dldEF1dGhlbnRpY2F0b3JBc3N1cmFuY2VMZXZlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9LCBlcnJvcjogc2Vzc2lvbkVycm9yLCB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IHNlc3Npb25FcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXNlc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHsgY3VycmVudExldmVsOiBudWxsLCBuZXh0TGV2ZWw6IG51bGwsIGN1cnJlbnRBdXRoZW50aWNhdGlvbk1ldGhvZHM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMuX2RlY29kZUpXVChzZXNzaW9uLmFjY2Vzc190b2tlbik7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRMZXZlbCA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHBheWxvYWQuYWFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMZXZlbCA9IHBheWxvYWQuYWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgbmV4dExldmVsID0gY3VycmVudExldmVsO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkRmFjdG9ycyA9IChfYiA9IChfYSA9IHNlc3Npb24udXNlci5mYWN0b3JzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZmlsdGVyKChmYWN0b3IpID0+IGZhY3Rvci5zdGF0dXMgPT09ICd2ZXJpZmllZCcpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBbXTtcbiAgICAgICAgICAgICAgICBpZiAodmVyaWZpZWRGYWN0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dExldmVsID0gJ2FhbDInO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50QXV0aGVudGljYXRpb25NZXRob2RzID0gcGF5bG9hZC5hbXIgfHwgW107XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBjdXJyZW50TGV2ZWwsIG5leHRMZXZlbCwgY3VycmVudEF1dGhlbnRpY2F0aW9uTWV0aG9kcyB9LCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbkdvVHJ1ZUNsaWVudC5uZXh0SW5zdGFuY2VJRCA9IDA7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Hb1RydWVDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIkdvVHJ1ZUFkbWluQXBpIiwiREVGQVVMVF9IRUFERVJTIiwiRVhQSVJZX01BUkdJTiIsIkdPVFJVRV9VUkwiLCJTVE9SQUdFX0tFWSIsIkF1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvciIsIkF1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvciIsIkF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvciIsIkF1dGhTZXNzaW9uTWlzc2luZ0Vycm9yIiwiQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3IiLCJBdXRoVW5rbm93bkVycm9yIiwiaXNBdXRoQXBpRXJyb3IiLCJpc0F1dGhFcnJvciIsImlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IiLCJfcmVxdWVzdCIsIl9zZXNzaW9uUmVzcG9uc2UiLCJfc2Vzc2lvblJlc3BvbnNlUGFzc3dvcmQiLCJfdXNlclJlc3BvbnNlIiwiX3Nzb1Jlc3BvbnNlIiwiZGVjb2RlSldUUGF5bG9hZCIsIkRlZmVycmVkIiwiZ2V0SXRlbUFzeW5jIiwiaXNCcm93c2VyIiwicmVtb3ZlSXRlbUFzeW5jIiwicmVzb2x2ZUZldGNoIiwic2V0SXRlbUFzeW5jIiwidXVpZCIsInJldHJ5YWJsZSIsInNsZWVwIiwiZ2VuZXJhdGVQS0NFVmVyaWZpZXIiLCJnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UiLCJzdXBwb3J0c0xvY2FsU3RvcmFnZSIsInBhcnNlUGFyYW1ldGVyc0Zyb21VUkwiLCJsb2NhbFN0b3JhZ2VBZGFwdGVyIiwibWVtb3J5TG9jYWxTdG9yYWdlQWRhcHRlciIsInBvbHlmaWxsR2xvYmFsVGhpcyIsInZlcnNpb24iLCJMb2NrQWNxdWlyZVRpbWVvdXRFcnJvciIsIm5hdmlnYXRvckxvY2siLCJERUZBVUxUX09QVElPTlMiLCJ1cmwiLCJzdG9yYWdlS2V5IiwiYXV0b1JlZnJlc2hUb2tlbiIsInBlcnNpc3RTZXNzaW9uIiwiZGV0ZWN0U2Vzc2lvbkluVXJsIiwiaGVhZGVycyIsImZsb3dUeXBlIiwiZGVidWciLCJBVVRPX1JFRlJFU0hfVElDS19EVVJBVElPTiIsIkFVVE9fUkVGUkVTSF9USUNLX1RIUkVTSE9MRCIsImxvY2tOb09wIiwibmFtZSIsImFjcXVpcmVUaW1lb3V0IiwiZm4iLCJHb1RydWVDbGllbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfYSIsIl9iIiwibWVtb3J5U3RvcmFnZSIsInN0YXRlQ2hhbmdlRW1pdHRlcnMiLCJNYXAiLCJhdXRvUmVmcmVzaFRpY2tlciIsInZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2siLCJyZWZyZXNoaW5nRGVmZXJyZWQiLCJpbml0aWFsaXplUHJvbWlzZSIsImxvY2tBY3F1aXJlZCIsInBlbmRpbmdJbkxvY2siLCJicm9hZGNhc3RDaGFubmVsIiwibG9nZ2VyIiwiY29uc29sZSIsImxvZyIsImluc3RhbmNlSUQiLCJuZXh0SW5zdGFuY2VJRCIsIndhcm4iLCJzZXR0aW5ncyIsIk9iamVjdCIsImFzc2lnbiIsImxvZ0RlYnVnTWVzc2FnZXMiLCJhZG1pbiIsImZldGNoIiwibG9jayIsImdsb2JhbFRoaXMiLCJuYXZpZ2F0b3IiLCJsb2NrcyIsIm1mYSIsInZlcmlmeSIsIl92ZXJpZnkiLCJiaW5kIiwiZW5yb2xsIiwiX2Vucm9sbCIsInVuZW5yb2xsIiwiX3VuZW5yb2xsIiwiY2hhbGxlbmdlIiwiX2NoYWxsZW5nZSIsImxpc3RGYWN0b3JzIiwiX2xpc3RGYWN0b3JzIiwiY2hhbGxlbmdlQW5kVmVyaWZ5IiwiX2NoYWxsZW5nZUFuZFZlcmlmeSIsImdldEF1dGhlbnRpY2F0b3JBc3N1cmFuY2VMZXZlbCIsIl9nZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWwiLCJzdG9yYWdlIiwiQnJvYWRjYXN0Q2hhbm5lbCIsImUiLCJlcnJvciIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsIl9kZWJ1ZyIsIl9ub3RpZnlBbGxTdWJzY3JpYmVycyIsImRhdGEiLCJzZXNzaW9uIiwiaW5pdGlhbGl6ZSIsImFyZ3MiLCJEYXRlIiwidG9JU09TdHJpbmciLCJfYWNxdWlyZUxvY2siLCJfaW5pdGlhbGl6ZSIsImlzUEtDRUZsb3ciLCJfaXNQS0NFRmxvdyIsIl9pc0ltcGxpY2l0R3JhbnRGbG93IiwiX2dldFNlc3Npb25Gcm9tVVJMIiwibWVzc2FnZSIsIl9yZW1vdmVTZXNzaW9uIiwicmVkaXJlY3RUeXBlIiwiX3NhdmVTZXNzaW9uIiwic2V0VGltZW91dCIsIl9yZWNvdmVyQW5kUmVmcmVzaCIsIl9oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlIiwic2lnblVwIiwiY3JlZGVudGlhbHMiLCJfYyIsInJlcyIsImVtYWlsIiwicGFzc3dvcmQiLCJjb2RlQ2hhbGxlbmdlIiwiY29kZUNoYWxsZW5nZU1ldGhvZCIsImNvZGVWZXJpZmllciIsInJlZGlyZWN0VG8iLCJlbWFpbFJlZGlyZWN0VG8iLCJib2R5IiwiZ290cnVlX21ldGFfc2VjdXJpdHkiLCJjYXB0Y2hhX3Rva2VuIiwiY2FwdGNoYVRva2VuIiwiY29kZV9jaGFsbGVuZ2UiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiLCJ4Zm9ybSIsInBob25lIiwiY2hhbm5lbCIsInVzZXIiLCJzaWduSW5XaXRoUGFzc3dvcmQiLCJ3ZWFrX3Bhc3N3b3JkIiwid2Vha1Bhc3N3b3JkIiwic2lnbkluV2l0aE9BdXRoIiwiX2QiLCJfaGFuZGxlUHJvdmlkZXJTaWduSW4iLCJwcm92aWRlciIsInNjb3BlcyIsInF1ZXJ5UGFyYW1zIiwic2tpcEJyb3dzZXJSZWRpcmVjdCIsImV4Y2hhbmdlQ29kZUZvclNlc3Npb24iLCJhdXRoQ29kZSIsIl9leGNoYW5nZUNvZGVGb3JTZXNzaW9uIiwic3RvcmFnZUl0ZW0iLCJzcGxpdCIsImF1dGhfY29kZSIsImNvZGVfdmVyaWZpZXIiLCJzaWduSW5XaXRoSWRUb2tlbiIsInRva2VuIiwiYWNjZXNzX3Rva2VuIiwibm9uY2UiLCJpZF90b2tlbiIsInNpZ25JbldpdGhPdHAiLCJfZSIsImNyZWF0ZV91c2VyIiwic2hvdWxkQ3JlYXRlVXNlciIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2VfaWQiLCJ2ZXJpZnlPdHAiLCJwYXJhbXMiLCJ0eXBlIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJzaWduSW5XaXRoU1NPIiwicHJvdmlkZXJfaWQiLCJwcm92aWRlcklkIiwiZG9tYWluIiwicmVkaXJlY3RfdG8iLCJza2lwX2h0dHBfcmVkaXJlY3QiLCJyZWF1dGhlbnRpY2F0ZSIsIl9yZWF1dGhlbnRpY2F0ZSIsIl91c2VTZXNzaW9uIiwicmVzdWx0Iiwic2Vzc2lvbkVycm9yIiwiand0IiwicmVzZW5kIiwiZW5kcG9pbnQiLCJnZXRTZXNzaW9uIiwibGFzdCIsImxlbmd0aCIsIlByb21pc2UiLCJyZXNvbHZlIiwicHVzaCIsIndhaXRPbiIsImFsbCIsInNwbGljZSIsIl9fbG9hZFNlc3Npb24iLCJzdGFjayIsImN1cnJlbnRTZXNzaW9uIiwibWF5YmVTZXNzaW9uIiwiX2lzVmFsaWRTZXNzaW9uIiwiaGFzRXhwaXJlZCIsImV4cGlyZXNfYXQiLCJub3ciLCJfY2FsbFJlZnJlc2hUb2tlbiIsInJlZnJlc2hfdG9rZW4iLCJnZXRVc2VyIiwiX2dldFVzZXIiLCJ1cGRhdGVVc2VyIiwiYXR0cmlidXRlcyIsIl91cGRhdGVVc2VyIiwic2Vzc2lvbkRhdGEiLCJ1c2VyRXJyb3IiLCJfZGVjb2RlSldUIiwic2V0U2Vzc2lvbiIsIl9zZXRTZXNzaW9uIiwidGltZU5vdyIsImV4cGlyZXNBdCIsInBheWxvYWQiLCJleHAiLCJyZWZyZXNoZWRTZXNzaW9uIiwidG9rZW5fdHlwZSIsImV4cGlyZXNfaW4iLCJyZWZyZXNoU2Vzc2lvbiIsIl9yZWZyZXNoU2Vzc2lvbiIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsImNvZGUiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJkZWxldGUiLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwic3RhdGUiLCJ0b1N0cmluZyIsImVycm9yX2Rlc2NyaXB0aW9uIiwiZXJyb3JfY29kZSIsInByb3ZpZGVyX3Rva2VuIiwicHJvdmlkZXJfcmVmcmVzaF90b2tlbiIsIk1hdGgiLCJyb3VuZCIsImV4cGlyZXNJbiIsInBhcnNlSW50IiwiYWN0dWFsbHlFeHBpcmVzSW4iLCJpc3N1ZWRBdCIsImhhc2giLCJjdXJyZW50U3RvcmFnZUNvbnRlbnQiLCJzaWduT3V0Iiwic2NvcGUiLCJfc2lnbk91dCIsImFjY2Vzc1Rva2VuIiwic3RhdHVzIiwib25BdXRoU3RhdGVDaGFuZ2UiLCJjYWxsYmFjayIsImlkIiwic3Vic2NyaXB0aW9uIiwidW5zdWJzY3JpYmUiLCJzZXQiLCJfZW1pdEluaXRpYWxTZXNzaW9uIiwiZ2V0IiwiZXJyIiwicmVzZXRQYXNzd29yZEZvckVtYWlsIiwiZ2V0VXNlcklkZW50aXRpZXMiLCJpZGVudGl0aWVzIiwibGlua0lkZW50aXR5IiwiX2dldFVybEZvclByb3ZpZGVyIiwidW5saW5rSWRlbnRpdHkiLCJpZGVudGl0eSIsImlkZW50aXR5X2lkIiwiX3JlZnJlc2hBY2Nlc3NUb2tlbiIsInJlZnJlc2hUb2tlbiIsImRlYnVnTmFtZSIsInN1YnN0cmluZyIsInN0YXJ0ZWRBdCIsImF0dGVtcHQiLCJfIiwiaXNWYWxpZFNlc3Npb24iLCJleHBpcmVzV2l0aE1hcmdpbiIsIkluZmluaXR5IiwicHJvbWlzZSIsInJlamVjdCIsImJyb2FkY2FzdCIsInBvc3RNZXNzYWdlIiwiZXJyb3JzIiwicHJvbWlzZXMiLCJBcnJheSIsImZyb20iLCJ2YWx1ZXMiLCJtYXAiLCJ4IiwiaSIsIl9yZW1vdmVWaXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIl9zdGFydEF1dG9SZWZyZXNoIiwiX3N0b3BBdXRvUmVmcmVzaCIsInRpY2tlciIsInNldEludGVydmFsIiwiX2F1dG9SZWZyZXNoVG9rZW5UaWNrIiwidW5yZWYiLCJEZW5vIiwidW5yZWZUaW1lciIsImNsZWFySW50ZXJ2YWwiLCJzdGFydEF1dG9SZWZyZXNoIiwic3RvcEF1dG9SZWZyZXNoIiwiZXhwaXJlc0luVGlja3MiLCJmbG9vciIsImlzQWNxdWlyZVRpbWVvdXQiLCJfb25WaXNpYmlsaXR5Q2hhbmdlZCIsImNhbGxlZEZyb21Jbml0aWFsaXplIiwibWV0aG9kTmFtZSIsImRvY3VtZW50IiwidmlzaWJpbGl0eVN0YXRlIiwidXJsUGFyYW1zIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZmxvd1BhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInF1ZXJ5Iiwiam9pbiIsImZhY3RvcklkIiwiZnJpZW5kbHlfbmFtZSIsImZyaWVuZGx5TmFtZSIsImZhY3Rvcl90eXBlIiwiZmFjdG9yVHlwZSIsImlzc3VlciIsInRvdHAiLCJxcl9jb2RlIiwiY2hhbGxlbmdlX2lkIiwiY2hhbGxlbmdlSWQiLCJjaGFsbGVuZ2VEYXRhIiwiY2hhbGxlbmdlRXJyb3IiLCJmYWN0b3JzIiwiZmlsdGVyIiwiZmFjdG9yIiwiY3VycmVudExldmVsIiwibmV4dExldmVsIiwiY3VycmVudEF1dGhlbnRpY2F0aW9uTWV0aG9kcyIsImFhbCIsInZlcmlmaWVkRmFjdG9ycyIsImFtciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/index.js": +/*!***************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/index.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthAdminApi: () => (/* reexport safe */ _AuthAdminApi__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ AuthApiError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthApiError),\n/* harmony export */ AuthClient: () => (/* reexport safe */ _AuthClient__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ AuthError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthError),\n/* harmony export */ AuthImplicitGrantRedirectError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthImplicitGrantRedirectError),\n/* harmony export */ AuthInvalidCredentialsError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthInvalidCredentialsError),\n/* harmony export */ AuthInvalidTokenResponseError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthInvalidTokenResponseError),\n/* harmony export */ AuthPKCEGrantCodeExchangeError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthPKCEGrantCodeExchangeError),\n/* harmony export */ AuthRetryableFetchError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthRetryableFetchError),\n/* harmony export */ AuthSessionMissingError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthSessionMissingError),\n/* harmony export */ AuthUnknownError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthUnknownError),\n/* harmony export */ AuthWeakPasswordError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthWeakPasswordError),\n/* harmony export */ CustomAuthError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.CustomAuthError),\n/* harmony export */ GoTrueAdminApi: () => (/* reexport safe */ _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ GoTrueClient: () => (/* reexport safe */ _GoTrueClient__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ NavigatorLockAcquireTimeoutError: () => (/* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.NavigatorLockAcquireTimeoutError),\n/* harmony export */ isAuthApiError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthApiError),\n/* harmony export */ isAuthError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthError),\n/* harmony export */ isAuthRetryableFetchError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthRetryableFetchError),\n/* harmony export */ isAuthWeakPasswordError: () => (/* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthWeakPasswordError),\n/* harmony export */ lockInternals: () => (/* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.internals),\n/* harmony export */ navigatorLock: () => (/* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.navigatorLock)\n/* harmony export */ });\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueAdminApi.js\");\n/* harmony import */ var _GoTrueClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GoTrueClient */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.js\");\n/* harmony import */ var _AuthAdminApi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AuthAdminApi */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/AuthAdminApi.js\");\n/* harmony import */ var _AuthClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AuthClient */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/AuthClient.js\");\n/* harmony import */ var _lib_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/types */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/types.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/errors */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_locks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/locks */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js\");\n\n\n\n\n\n\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUE4QztBQUNKO0FBQ0E7QUFDSjtBQUM0QjtBQUN0QztBQUNDO0FBQzhFLENBQzNHLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL2luZGV4LmpzP2ViMTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdvVHJ1ZUFkbWluQXBpIGZyb20gJy4vR29UcnVlQWRtaW5BcGknO1xuaW1wb3J0IEdvVHJ1ZUNsaWVudCBmcm9tICcuL0dvVHJ1ZUNsaWVudCc7XG5pbXBvcnQgQXV0aEFkbWluQXBpIGZyb20gJy4vQXV0aEFkbWluQXBpJztcbmltcG9ydCBBdXRoQ2xpZW50IGZyb20gJy4vQXV0aENsaWVudCc7XG5leHBvcnQgeyBHb1RydWVBZG1pbkFwaSwgR29UcnVlQ2xpZW50LCBBdXRoQWRtaW5BcGksIEF1dGhDbGllbnQgfTtcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vycm9ycyc7XG5leHBvcnQgeyBuYXZpZ2F0b3JMb2NrLCBOYXZpZ2F0b3JMb2NrQWNxdWlyZVRpbWVvdXRFcnJvciwgaW50ZXJuYWxzIGFzIGxvY2tJbnRlcm5hbHMsIH0gZnJvbSAnLi9saWIvbG9ja3MnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIkdvVHJ1ZUFkbWluQXBpIiwiR29UcnVlQ2xpZW50IiwiQXV0aEFkbWluQXBpIiwiQXV0aENsaWVudCIsIm5hdmlnYXRvckxvY2siLCJOYXZpZ2F0b3JMb2NrQWNxdWlyZVRpbWVvdXRFcnJvciIsImludGVybmFscyIsImxvY2tJbnRlcm5hbHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/index.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/constants.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/constants.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AUDIENCE: () => (/* binding */ AUDIENCE),\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS),\n/* harmony export */ EXPIRY_MARGIN: () => (/* binding */ EXPIRY_MARGIN),\n/* harmony export */ GOTRUE_URL: () => (/* binding */ GOTRUE_URL),\n/* harmony export */ NETWORK_FAILURE: () => (/* binding */ NETWORK_FAILURE),\n/* harmony export */ STORAGE_KEY: () => (/* binding */ STORAGE_KEY)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/version.js\");\n\nconst GOTRUE_URL = \"http://localhost:9999\";\nconst STORAGE_KEY = \"supabase.auth.token\";\nconst AUDIENCE = \"\";\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `gotrue-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n};\nconst EXPIRY_MARGIN = 10; // in seconds\nconst NETWORK_FAILURE = {\n MAX_RETRIES: 10,\n RETRY_INTERVAL: 2\n}; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBb0M7QUFDN0IsTUFBTUMsYUFBYSx3QkFBd0I7QUFDM0MsTUFBTUMsY0FBYyxzQkFBc0I7QUFDMUMsTUFBTUMsV0FBVyxHQUFHO0FBQ3BCLE1BQU1DLGtCQUFrQjtJQUFFLGlCQUFpQixDQUFDLFVBQVUsRUFBRUosNkNBQU9BLENBQUMsQ0FBQztBQUFDLEVBQUU7QUFDcEUsTUFBTUssZ0JBQWdCLEdBQUcsQ0FBQyxhQUFhO0FBQ3ZDLE1BQU1DLGtCQUFrQjtJQUMzQkMsYUFBYTtJQUNiQyxnQkFBZ0I7QUFDcEIsRUFBRSxDQUNGLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL2xpYi9jb25zdGFudHMuanM/ZWY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9uJztcbmV4cG9ydCBjb25zdCBHT1RSVUVfVVJMID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6OTk5OSc7XG5leHBvcnQgY29uc3QgU1RPUkFHRV9LRVkgPSAnc3VwYWJhc2UuYXV0aC50b2tlbic7XG5leHBvcnQgY29uc3QgQVVESUVOQ0UgPSAnJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hFQURFUlMgPSB7ICdYLUNsaWVudC1JbmZvJzogYGdvdHJ1ZS1qcy8ke3ZlcnNpb259YCB9O1xuZXhwb3J0IGNvbnN0IEVYUElSWV9NQVJHSU4gPSAxMDsgLy8gaW4gc2Vjb25kc1xuZXhwb3J0IGNvbnN0IE5FVFdPUktfRkFJTFVSRSA9IHtcbiAgICBNQVhfUkVUUklFUzogMTAsXG4gICAgUkVUUllfSU5URVJWQUw6IDIsIC8vIGluIGRlY2lzZWNvbmRzXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJ2ZXJzaW9uIiwiR09UUlVFX1VSTCIsIlNUT1JBR0VfS0VZIiwiQVVESUVOQ0UiLCJERUZBVUxUX0hFQURFUlMiLCJFWFBJUllfTUFSR0lOIiwiTkVUV09SS19GQUlMVVJFIiwiTUFYX1JFVFJJRVMiLCJSRVRSWV9JTlRFUlZBTCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/constants.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthApiError: () => (/* binding */ AuthApiError),\n/* harmony export */ AuthError: () => (/* binding */ AuthError),\n/* harmony export */ AuthImplicitGrantRedirectError: () => (/* binding */ AuthImplicitGrantRedirectError),\n/* harmony export */ AuthInvalidCredentialsError: () => (/* binding */ AuthInvalidCredentialsError),\n/* harmony export */ AuthInvalidTokenResponseError: () => (/* binding */ AuthInvalidTokenResponseError),\n/* harmony export */ AuthPKCEGrantCodeExchangeError: () => (/* binding */ AuthPKCEGrantCodeExchangeError),\n/* harmony export */ AuthRetryableFetchError: () => (/* binding */ AuthRetryableFetchError),\n/* harmony export */ AuthSessionMissingError: () => (/* binding */ AuthSessionMissingError),\n/* harmony export */ AuthUnknownError: () => (/* binding */ AuthUnknownError),\n/* harmony export */ AuthWeakPasswordError: () => (/* binding */ AuthWeakPasswordError),\n/* harmony export */ CustomAuthError: () => (/* binding */ CustomAuthError),\n/* harmony export */ isAuthApiError: () => (/* binding */ isAuthApiError),\n/* harmony export */ isAuthError: () => (/* binding */ isAuthError),\n/* harmony export */ isAuthRetryableFetchError: () => (/* binding */ isAuthRetryableFetchError),\n/* harmony export */ isAuthWeakPasswordError: () => (/* binding */ isAuthWeakPasswordError)\n/* harmony export */ });\nclass AuthError extends Error {\n constructor(message, status){\n super(message);\n this.__isAuthError = true;\n this.name = \"AuthError\";\n this.status = status;\n }\n}\nfunction isAuthError(error) {\n return typeof error === \"object\" && error !== null && \"__isAuthError\" in error;\n}\nclass AuthApiError extends AuthError {\n constructor(message, status){\n super(message, status);\n this.name = \"AuthApiError\";\n this.status = status;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status\n };\n }\n}\nfunction isAuthApiError(error) {\n return isAuthError(error) && error.name === \"AuthApiError\";\n}\nclass AuthUnknownError extends AuthError {\n constructor(message, originalError){\n super(message);\n this.name = \"AuthUnknownError\";\n this.originalError = originalError;\n }\n}\nclass CustomAuthError extends AuthError {\n constructor(message, name, status){\n super(message);\n this.name = name;\n this.status = status;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status\n };\n }\n}\nclass AuthSessionMissingError extends CustomAuthError {\n constructor(){\n super(\"Auth session missing!\", \"AuthSessionMissingError\", 400);\n }\n}\nclass AuthInvalidTokenResponseError extends CustomAuthError {\n constructor(){\n super(\"Auth session or user missing\", \"AuthInvalidTokenResponseError\", 500);\n }\n}\nclass AuthInvalidCredentialsError extends CustomAuthError {\n constructor(message){\n super(message, \"AuthInvalidCredentialsError\", 400);\n }\n}\nclass AuthImplicitGrantRedirectError extends CustomAuthError {\n constructor(message, details = null){\n super(message, \"AuthImplicitGrantRedirectError\", 500);\n this.details = null;\n this.details = details;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n details: this.details\n };\n }\n}\nclass AuthPKCEGrantCodeExchangeError extends CustomAuthError {\n constructor(message, details = null){\n super(message, \"AuthPKCEGrantCodeExchangeError\", 500);\n this.details = null;\n this.details = details;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n details: this.details\n };\n }\n}\nclass AuthRetryableFetchError extends CustomAuthError {\n constructor(message, status){\n super(message, \"AuthRetryableFetchError\", status);\n }\n}\nfunction isAuthRetryableFetchError(error) {\n return isAuthError(error) && error.name === \"AuthRetryableFetchError\";\n}\n/**\n * This error is thrown on certain methods when the password used is deemed\n * weak. Inspect the reasons to identify what password strength rules are\n * inadequate.\n */ class AuthWeakPasswordError extends CustomAuthError {\n constructor(message, status, reasons){\n super(message, \"AuthWeakPasswordError\", status);\n this.reasons = reasons;\n }\n}\nfunction isAuthWeakPasswordError(error) {\n return isAuthError(error) && error.name === \"AuthWeakPasswordError\";\n} //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvZXJyb3JzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLE1BQU1BLGtCQUFrQkM7SUFDM0JDLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxDQUFFO1FBQ3pCLEtBQUssQ0FBQ0Q7UUFDTixJQUFJLENBQUNFLGFBQWEsR0FBRztRQUNyQixJQUFJLENBQUNDLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ0YsTUFBTSxHQUFHQTtJQUNsQjtBQUNKO0FBQ08sU0FBU0csWUFBWUMsS0FBSztJQUM3QixPQUFPLE9BQU9BLFVBQVUsWUFBWUEsVUFBVSxRQUFRLG1CQUFtQkE7QUFDN0U7QUFDTyxNQUFNQyxxQkFBcUJUO0lBQzlCRSxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sQ0FBRTtRQUN6QixLQUFLLENBQUNELFNBQVNDO1FBQ2YsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNGLE1BQU0sR0FBR0E7SUFDbEI7SUFDQU0sU0FBUztRQUNMLE9BQU87WUFDSEosTUFBTSxJQUFJLENBQUNBLElBQUk7WUFDZkgsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJDLFFBQVEsSUFBSSxDQUFDQSxNQUFNO1FBQ3ZCO0lBQ0o7QUFDSjtBQUNPLFNBQVNPLGVBQWVILEtBQUs7SUFDaEMsT0FBT0QsWUFBWUMsVUFBVUEsTUFBTUYsSUFBSSxLQUFLO0FBQ2hEO0FBQ08sTUFBTU0seUJBQXlCWjtJQUNsQ0UsWUFBWUMsT0FBTyxFQUFFVSxhQUFhLENBQUU7UUFDaEMsS0FBSyxDQUFDVjtRQUNOLElBQUksQ0FBQ0csSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDTyxhQUFhLEdBQUdBO0lBQ3pCO0FBQ0o7QUFDTyxNQUFNQyx3QkFBd0JkO0lBQ2pDRSxZQUFZQyxPQUFPLEVBQUVHLElBQUksRUFBRUYsTUFBTSxDQUFFO1FBQy9CLEtBQUssQ0FBQ0Q7UUFDTixJQUFJLENBQUNHLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNGLE1BQU0sR0FBR0E7SUFDbEI7SUFDQU0sU0FBUztRQUNMLE9BQU87WUFDSEosTUFBTSxJQUFJLENBQUNBLElBQUk7WUFDZkgsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJDLFFBQVEsSUFBSSxDQUFDQSxNQUFNO1FBQ3ZCO0lBQ0o7QUFDSjtBQUNPLE1BQU1XLGdDQUFnQ0Q7SUFDekNaLGFBQWM7UUFDVixLQUFLLENBQUMseUJBQXlCLDJCQUEyQjtJQUM5RDtBQUNKO0FBQ08sTUFBTWMsc0NBQXNDRjtJQUMvQ1osYUFBYztRQUNWLEtBQUssQ0FBQyxnQ0FBZ0MsaUNBQWlDO0lBQzNFO0FBQ0o7QUFDTyxNQUFNZSxvQ0FBb0NIO0lBQzdDWixZQUFZQyxPQUFPLENBQUU7UUFDakIsS0FBSyxDQUFDQSxTQUFTLCtCQUErQjtJQUNsRDtBQUNKO0FBQ08sTUFBTWUsdUNBQXVDSjtJQUNoRFosWUFBWUMsT0FBTyxFQUFFZ0IsVUFBVSxJQUFJLENBQUU7UUFDakMsS0FBSyxDQUFDaEIsU0FBUyxrQ0FBa0M7UUFDakQsSUFBSSxDQUFDZ0IsT0FBTyxHQUFHO1FBQ2YsSUFBSSxDQUFDQSxPQUFPLEdBQUdBO0lBQ25CO0lBQ0FULFNBQVM7UUFDTCxPQUFPO1lBQ0hKLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2ZILFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtZQUNuQmUsU0FBUyxJQUFJLENBQUNBLE9BQU87UUFDekI7SUFDSjtBQUNKO0FBQ08sTUFBTUMsdUNBQXVDTjtJQUNoRFosWUFBWUMsT0FBTyxFQUFFZ0IsVUFBVSxJQUFJLENBQUU7UUFDakMsS0FBSyxDQUFDaEIsU0FBUyxrQ0FBa0M7UUFDakQsSUFBSSxDQUFDZ0IsT0FBTyxHQUFHO1FBQ2YsSUFBSSxDQUFDQSxPQUFPLEdBQUdBO0lBQ25CO0lBQ0FULFNBQVM7UUFDTCxPQUFPO1lBQ0hKLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2ZILFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtZQUNuQmUsU0FBUyxJQUFJLENBQUNBLE9BQU87UUFDekI7SUFDSjtBQUNKO0FBQ08sTUFBTUUsZ0NBQWdDUDtJQUN6Q1osWUFBWUMsT0FBTyxFQUFFQyxNQUFNLENBQUU7UUFDekIsS0FBSyxDQUFDRCxTQUFTLDJCQUEyQkM7SUFDOUM7QUFDSjtBQUNPLFNBQVNrQiwwQkFBMEJkLEtBQUs7SUFDM0MsT0FBT0QsWUFBWUMsVUFBVUEsTUFBTUYsSUFBSSxLQUFLO0FBQ2hEO0FBQ0E7Ozs7Q0FJQyxHQUNNLE1BQU1pQiw4QkFBOEJUO0lBQ3ZDWixZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRW9CLE9BQU8sQ0FBRTtRQUNsQyxLQUFLLENBQUNyQixTQUFTLHlCQUF5QkM7UUFDeEMsSUFBSSxDQUFDb0IsT0FBTyxHQUFHQTtJQUNuQjtBQUNKO0FBQ08sU0FBU0Msd0JBQXdCakIsS0FBSztJQUN6QyxPQUFPRCxZQUFZQyxVQUFVQSxNQUFNRixJQUFJLEtBQUs7QUFDaEQsRUFDQSxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvZXJyb3JzLmpzPzI5MWIiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEF1dGhFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBzdGF0dXMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMuX19pc0F1dGhFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMubmFtZSA9ICdBdXRoRXJyb3InO1xuICAgICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaXNBdXRoRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiAnX19pc0F1dGhFcnJvcicgaW4gZXJyb3I7XG59XG5leHBvcnQgY2xhc3MgQXV0aEFwaUVycm9yIGV4dGVuZHMgQXV0aEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBzdGF0dXMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgc3RhdHVzKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ0F1dGhBcGlFcnJvcic7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICAgIH1cbiAgICB0b0pTT04oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhBcGlFcnJvcihlcnJvcikge1xuICAgIHJldHVybiBpc0F1dGhFcnJvcihlcnJvcikgJiYgZXJyb3IubmFtZSA9PT0gJ0F1dGhBcGlFcnJvcic7XG59XG5leHBvcnQgY2xhc3MgQXV0aFVua25vd25FcnJvciBleHRlbmRzIEF1dGhFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgb3JpZ2luYWxFcnJvcikge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ0F1dGhVbmtub3duRXJyb3InO1xuICAgICAgICB0aGlzLm9yaWdpbmFsRXJyb3IgPSBvcmlnaW5hbEVycm9yO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21BdXRoRXJyb3IgZXh0ZW5kcyBBdXRoRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIG5hbWUsIHN0YXR1cykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhTZXNzaW9uTWlzc2luZ0Vycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ0F1dGggc2Vzc2lvbiBtaXNzaW5nIScsICdBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcicsIDQwMCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhJbnZhbGlkVG9rZW5SZXNwb25zZUVycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ0F1dGggc2Vzc2lvbiBvciB1c2VyIG1pc3NpbmcnLCAnQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3InLCA1MDApO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBBdXRoSW52YWxpZENyZWRlbnRpYWxzRXJyb3IgZXh0ZW5kcyBDdXN0b21BdXRoRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcicsIDQwMCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvciBleHRlbmRzIEN1c3RvbUF1dGhFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgZGV0YWlscyA9IG51bGwpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvcicsIDUwMCk7XG4gICAgICAgIHRoaXMuZGV0YWlscyA9IG51bGw7XG4gICAgICAgIHRoaXMuZGV0YWlscyA9IGRldGFpbHM7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICBkZXRhaWxzOiB0aGlzLmRldGFpbHMsXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvciBleHRlbmRzIEN1c3RvbUF1dGhFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgZGV0YWlscyA9IG51bGwpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvcicsIDUwMCk7XG4gICAgICAgIHRoaXMuZGV0YWlscyA9IG51bGw7XG4gICAgICAgIHRoaXMuZGV0YWlscyA9IGRldGFpbHM7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICBkZXRhaWxzOiB0aGlzLmRldGFpbHMsXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhSZXRyeWFibGVGZXRjaEVycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBzdGF0dXMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhSZXRyeWFibGVGZXRjaEVycm9yJywgc3RhdHVzKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaXNBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihlcnJvcikge1xuICAgIHJldHVybiBpc0F1dGhFcnJvcihlcnJvcikgJiYgZXJyb3IubmFtZSA9PT0gJ0F1dGhSZXRyeWFibGVGZXRjaEVycm9yJztcbn1cbi8qKlxuICogVGhpcyBlcnJvciBpcyB0aHJvd24gb24gY2VydGFpbiBtZXRob2RzIHdoZW4gdGhlIHBhc3N3b3JkIHVzZWQgaXMgZGVlbWVkXG4gKiB3ZWFrLiBJbnNwZWN0IHRoZSByZWFzb25zIHRvIGlkZW50aWZ5IHdoYXQgcGFzc3dvcmQgc3RyZW5ndGggcnVsZXMgYXJlXG4gKiBpbmFkZXF1YXRlLlxuICovXG5leHBvcnQgY2xhc3MgQXV0aFdlYWtQYXNzd29yZEVycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBzdGF0dXMsIHJlYXNvbnMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhXZWFrUGFzc3dvcmRFcnJvcicsIHN0YXR1cyk7XG4gICAgICAgIHRoaXMucmVhc29ucyA9IHJlYXNvbnM7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aFdlYWtQYXNzd29yZEVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIGlzQXV0aEVycm9yKGVycm9yKSAmJiBlcnJvci5uYW1lID09PSAnQXV0aFdlYWtQYXNzd29yZEVycm9yJztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9ycy5qcy5tYXAiXSwibmFtZXMiOlsiQXV0aEVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJzdGF0dXMiLCJfX2lzQXV0aEVycm9yIiwibmFtZSIsImlzQXV0aEVycm9yIiwiZXJyb3IiLCJBdXRoQXBpRXJyb3IiLCJ0b0pTT04iLCJpc0F1dGhBcGlFcnJvciIsIkF1dGhVbmtub3duRXJyb3IiLCJvcmlnaW5hbEVycm9yIiwiQ3VzdG9tQXV0aEVycm9yIiwiQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IiLCJBdXRoSW52YWxpZFRva2VuUmVzcG9uc2VFcnJvciIsIkF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvciIsIkF1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvciIsImRldGFpbHMiLCJBdXRoUEtDRUdyYW50Q29kZUV4Y2hhbmdlRXJyb3IiLCJBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvciIsImlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IiLCJBdXRoV2Vha1Bhc3N3b3JkRXJyb3IiLCJyZWFzb25zIiwiaXNBdXRoV2Vha1Bhc3N3b3JkRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _generateLinkResponse: () => (/* binding */ _generateLinkResponse),\n/* harmony export */ _noResolveJsonResponse: () => (/* binding */ _noResolveJsonResponse),\n/* harmony export */ _request: () => (/* binding */ _request),\n/* harmony export */ _sessionResponse: () => (/* binding */ _sessionResponse),\n/* harmony export */ _sessionResponsePassword: () => (/* binding */ _sessionResponsePassword),\n/* harmony export */ _ssoResponse: () => (/* binding */ _ssoResponse),\n/* harmony export */ _userResponse: () => (/* binding */ _userResponse)\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./errors */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/errors.js\");\nvar __rest = undefined && undefined.__rest || function(s, e) {\n var t = {};\n for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\nconst _getErrorMessage = (err)=>err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\nconst NETWORK_ERROR_CODES = [\n 502,\n 503,\n 504\n];\nasync function handleError(error) {\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_0__.looksLikeFetchResponse)(error)) {\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthRetryableFetchError(_getErrorMessage(error), 0);\n }\n if (NETWORK_ERROR_CODES.includes(error.status)) {\n // status in 500...599 range - server had an error, request might be retryed.\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthRetryableFetchError(_getErrorMessage(error), error.status);\n }\n let data;\n try {\n data = await error.json();\n } catch (e) {\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthUnknownError(_getErrorMessage(e), e);\n }\n if (typeof data === \"object\" && data && typeof data.weak_password === \"object\" && data.weak_password && Array.isArray(data.weak_password.reasons) && data.weak_password.reasons.length && data.weak_password.reasons.reduce((a, i)=>a && typeof i === \"string\", true)) {\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthWeakPasswordError(_getErrorMessage(data), error.status, data.weak_password.reasons);\n }\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthApiError(_getErrorMessage(data), error.status || 500);\n}\nconst _getRequestParams = (method, options, parameters, body)=>{\n const params = {\n method,\n headers: (options === null || options === void 0 ? void 0 : options.headers) || {}\n };\n if (method === \"GET\") {\n return params;\n }\n params.headers = Object.assign({\n \"Content-Type\": \"application/json;charset=UTF-8\"\n }, options === null || options === void 0 ? void 0 : options.headers);\n params.body = JSON.stringify(body);\n return Object.assign(Object.assign({}, params), parameters);\n};\nasync function _request(fetcher, method, url, options) {\n var _a;\n const headers = Object.assign({}, options === null || options === void 0 ? void 0 : options.headers);\n if (options === null || options === void 0 ? void 0 : options.jwt) {\n headers[\"Authorization\"] = `Bearer ${options.jwt}`;\n }\n const qs = (_a = options === null || options === void 0 ? void 0 : options.query) !== null && _a !== void 0 ? _a : {};\n if (options === null || options === void 0 ? void 0 : options.redirectTo) {\n qs[\"redirect_to\"] = options.redirectTo;\n }\n const queryString = Object.keys(qs).length ? \"?\" + new URLSearchParams(qs).toString() : \"\";\n const data = await _handleRequest(fetcher, method, url + queryString, {\n headers,\n noResolveJson: options === null || options === void 0 ? void 0 : options.noResolveJson\n }, {}, options === null || options === void 0 ? void 0 : options.body);\n return (options === null || options === void 0 ? void 0 : options.xform) ? options === null || options === void 0 ? void 0 : options.xform(data) : {\n data: Object.assign({}, data),\n error: null\n };\n}\nasync function _handleRequest(fetcher, method, url, options, parameters, body) {\n const requestParams = _getRequestParams(method, options, parameters, body);\n let result;\n try {\n result = await fetcher(url, requestParams);\n } catch (e) {\n console.error(e);\n // fetch failed, likely due to a network or CORS error\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthRetryableFetchError(_getErrorMessage(e), 0);\n }\n if (!result.ok) {\n await handleError(result);\n }\n if (options === null || options === void 0 ? void 0 : options.noResolveJson) {\n return result;\n }\n try {\n return await result.json();\n } catch (e) {\n await handleError(e);\n }\n}\nfunction _sessionResponse(data) {\n var _a;\n let session = null;\n if (hasSession(data)) {\n session = Object.assign({}, data);\n if (!data.expires_at) {\n session.expires_at = (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.expiresAt)(data.expires_in);\n }\n }\n const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\n return {\n data: {\n session,\n user\n },\n error: null\n };\n}\nfunction _sessionResponsePassword(data) {\n const response = _sessionResponse(data);\n if (!response.error && data.weak_password && typeof data.weak_password === \"object\" && Array.isArray(data.weak_password.reasons) && data.weak_password.reasons.length && data.weak_password.message && typeof data.weak_password.message === \"string\" && data.weak_password.reasons.reduce((a, i)=>a && typeof i === \"string\", true)) {\n response.data.weak_password = data.weak_password;\n }\n return response;\n}\nfunction _userResponse(data) {\n var _a;\n const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\n return {\n data: {\n user\n },\n error: null\n };\n}\nfunction _ssoResponse(data) {\n return {\n data,\n error: null\n };\n}\nfunction _generateLinkResponse(data) {\n const { action_link, email_otp, hashed_token, redirect_to, verification_type } = data, rest = __rest(data, [\n \"action_link\",\n \"email_otp\",\n \"hashed_token\",\n \"redirect_to\",\n \"verification_type\"\n ]);\n const properties = {\n action_link,\n email_otp,\n hashed_token,\n redirect_to,\n verification_type\n };\n const user = Object.assign({}, rest);\n return {\n data: {\n properties,\n user\n },\n error: null\n };\n}\nfunction _noResolveJsonResponse(data) {\n return data;\n}\n/**\n * hasSession checks if the response object contains a valid session\n * @param data A response object\n * @returns true if a session is in the response\n */ function hasSession(data) {\n return data.access_token && data.refresh_token && data.expires_in;\n} //# sourceMappingURL=fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvZmV0Y2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSUEsU0FBUyxTQUFLLElBQUksU0FBSSxDQUFDQSxNQUFNLElBQUssU0FBVUMsQ0FBQyxFQUFFQyxDQUFDO0lBQ2hELElBQUlDLElBQUksQ0FBQztJQUNULElBQUssSUFBSUMsS0FBS0gsRUFBRyxJQUFJSSxPQUFPQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxHQUFHRyxNQUFNRixFQUFFTyxPQUFPLENBQUNMLEtBQUssR0FDOUVELENBQUMsQ0FBQ0MsRUFBRSxHQUFHSCxDQUFDLENBQUNHLEVBQUU7SUFDZixJQUFJSCxLQUFLLFFBQVEsT0FBT0ksT0FBT0sscUJBQXFCLEtBQUssWUFDckQsSUFBSyxJQUFJQyxJQUFJLEdBQUdQLElBQUlDLE9BQU9LLHFCQUFxQixDQUFDVCxJQUFJVSxJQUFJUCxFQUFFUSxNQUFNLEVBQUVELElBQUs7UUFDcEUsSUFBSVQsRUFBRU8sT0FBTyxDQUFDTCxDQUFDLENBQUNPLEVBQUUsSUFBSSxLQUFLTixPQUFPQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLEdBQUdHLENBQUMsQ0FBQ08sRUFBRSxHQUN6RVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLEVBQUUsQ0FBQyxHQUFHVixDQUFDLENBQUNHLENBQUMsQ0FBQ08sRUFBRSxDQUFDO0lBQ3pCO0lBQ0osT0FBT1I7QUFDWDtBQUM4RDtBQUM2QztBQUMzRyxNQUFNaUIsbUJBQW1CLENBQUNDLE1BQVFBLElBQUlDLEdBQUcsSUFBSUQsSUFBSUUsT0FBTyxJQUFJRixJQUFJRyxpQkFBaUIsSUFBSUgsSUFBSUksS0FBSyxJQUFJQyxLQUFLQyxTQUFTLENBQUNOO0FBQ2pILE1BQU1PLHNCQUFzQjtJQUFDO0lBQUs7SUFBSztDQUFJO0FBQzNDLGVBQWVDLFlBQVlKLEtBQUs7SUFD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TztRQUFFQSxNQUFNO1lBQUV3QztRQUFLO1FBQUcvQyxPQUFPO0lBQUs7QUFDekM7QUFDTyxTQUFTbUQsYUFBYTVDLElBQUk7SUFDN0IsT0FBTztRQUFFQTtRQUFNUCxPQUFPO0lBQUs7QUFDL0I7QUFDTyxTQUFTb0Qsc0JBQXNCN0MsSUFBSTtJQUN0QyxNQUFNLEVBQUU4QyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsWUFBWSxFQUFFQyxXQUFXLEVBQUVDLGlCQUFpQixFQUFFLEdBQUdsRCxNQUFNbUQsT0FBT25GLE9BQU9nQyxNQUFNO1FBQUM7UUFBZTtRQUFhO1FBQWdCO1FBQWU7S0FBb0I7SUFDM0wsTUFBTW9ELGFBQWE7UUFDZk47UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7SUFDSjtJQUNBLE1BQU1WLE9BQU9uRSxPQUFPMEMsTUFBTSxDQUFDLENBQUMsR0FBR29DO0lBQy9CLE9BQU87UUFDSG5ELE1BQU07WUFDRm9EO1lBQ0FaO1FBQ0o7UUFDQS9DLE9BQU87SUFDWDtBQUNKO0FBQ08sU0FBUzRELHVCQUF1QnJELElBQUk7SUFDdkMsT0FBT0E7QUFDWDtBQUNBOzs7O0NBSUMsR0FDRCxTQUFTcUMsV0FBV3JDLElBQUk7SUFDcEIsT0FBT0EsS0FBS3NELFlBQVksSUFBSXRELEtBQUt1RCxhQUFhLElBQUl2RCxLQUFLdUMsVUFBVTtBQUNyRSxFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL2xpYi9mZXRjaC5qcz8zNTY3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGV4cGlyZXNBdCwgbG9va3NMaWtlRmV0Y2hSZXNwb25zZSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBBdXRoQXBpRXJyb3IsIEF1dGhSZXRyeWFibGVGZXRjaEVycm9yLCBBdXRoV2Vha1Bhc3N3b3JkRXJyb3IsIEF1dGhVbmtub3duRXJyb3IsIH0gZnJvbSAnLi9lcnJvcnMnO1xuY29uc3QgX2dldEVycm9yTWVzc2FnZSA9IChlcnIpID0+IGVyci5tc2cgfHwgZXJyLm1lc3NhZ2UgfHwgZXJyLmVycm9yX2Rlc2NyaXB0aW9uIHx8IGVyci5lcnJvciB8fCBKU09OLnN0cmluZ2lmeShlcnIpO1xuY29uc3QgTkVUV09SS19FUlJPUl9DT0RFUyA9IFs1MDIsIDUwMywgNTA0XTtcbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycm9yKSB7XG4gICAgaWYgKCFsb29rc0xpa2VGZXRjaFJlc3BvbnNlKGVycm9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IoX2dldEVycm9yTWVzc2FnZShlcnJvciksIDApO1xuICAgIH1cbiAgICBpZiAoTkVUV09SS19FUlJPUl9DT0RFUy5pbmNsdWRlcyhlcnJvci5zdGF0dXMpKSB7XG4gICAgICAgIC8vIHN0YXR1cyBpbiA1MDAuLi41OTkgcmFuZ2UgLSBzZXJ2ZXIgaGFkIGFuIGVycm9yLCByZXF1ZXN0IG1pZ2h0IGJlIHJldHJ5ZWQuXG4gICAgICAgIHRocm93IG5ldyBBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSwgZXJyb3Iuc3RhdHVzKTtcbiAgICB9XG4gICAgbGV0IGRhdGE7XG4gICAgdHJ5IHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IGVycm9yLmpzb24oKTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEF1dGhVbmtub3duRXJyb3IoX2dldEVycm9yTWVzc2FnZShlKSwgZSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgZGF0YSAmJlxuICAgICAgICB0eXBlb2YgZGF0YS53ZWFrX3Bhc3N3b3JkID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBkYXRhLndlYWtfcGFzc3dvcmQgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShkYXRhLndlYWtfcGFzc3dvcmQucmVhc29ucykgJiZcbiAgICAgICAgZGF0YS53ZWFrX3Bhc3N3b3JkLnJlYXNvbnMubGVuZ3RoICYmXG4gICAgICAgIGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zLnJlZHVjZSgoYSwgaSkgPT4gYSAmJiB0eXBlb2YgaSA9PT0gJ3N0cmluZycsIHRydWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBBdXRoV2Vha1Bhc3N3b3JkRXJyb3IoX2dldEVycm9yTWVzc2FnZShkYXRhKSwgZXJyb3Iuc3RhdHVzLCBkYXRhLndlYWtfcGFzc3dvcmQucmVhc29ucyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBBdXRoQXBpRXJyb3IoX2dldEVycm9yTWVzc2FnZShkYXRhKSwgZXJyb3Iuc3RhdHVzIHx8IDUwMCk7XG59XG5jb25zdCBfZ2V0UmVxdWVzdFBhcmFtcyA9IChtZXRob2QsIG9wdGlvbnMsIHBhcmFtZXRlcnMsIGJvZHkpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IG1ldGhvZCwgaGVhZGVyczogKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWFkZXJzKSB8fCB7fSB9O1xuICAgIGlmIChtZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuICAgIHBhcmFtcy5oZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04JyB9LCBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVhZGVycyk7XG4gICAgcGFyYW1zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwYXJhbXMpLCBwYXJhbWV0ZXJzKTtcbn07XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gX3JlcXVlc3QoZmV0Y2hlciwgbWV0aG9kLCB1cmwsIG9wdGlvbnMpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWFkZXJzKTtcbiAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmp3dCkge1xuICAgICAgICBoZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSBgQmVhcmVyICR7b3B0aW9ucy5qd3R9YDtcbiAgICB9XG4gICAgY29uc3QgcXMgPSAoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucXVlcnkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHt9O1xuICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucmVkaXJlY3RUbykge1xuICAgICAgICBxc1sncmVkaXJlY3RfdG8nXSA9IG9wdGlvbnMucmVkaXJlY3RUbztcbiAgICB9XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3Qua2V5cyhxcykubGVuZ3RoID8gJz8nICsgbmV3IFVSTFNlYXJjaFBhcmFtcyhxcykudG9TdHJpbmcoKSA6ICcnO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBfaGFuZGxlUmVxdWVzdChmZXRjaGVyLCBtZXRob2QsIHVybCArIHF1ZXJ5U3RyaW5nLCB7IGhlYWRlcnMsIG5vUmVzb2x2ZUpzb246IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5ub1Jlc29sdmVKc29uIH0sIHt9LCBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuYm9keSk7XG4gICAgcmV0dXJuIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMueGZvcm0pID8gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnhmb3JtKGRhdGEpIDogeyBkYXRhOiBPYmplY3QuYXNzaWduKHt9LCBkYXRhKSwgZXJyb3I6IG51bGwgfTtcbn1cbmFzeW5jIGZ1bmN0aW9uIF9oYW5kbGVSZXF1ZXN0KGZldGNoZXIsIG1ldGhvZCwgdXJsLCBvcHRpb25zLCBwYXJhbWV0ZXJzLCBib2R5KSB7XG4gICAgY29uc3QgcmVxdWVzdFBhcmFtcyA9IF9nZXRSZXF1ZXN0UGFyYW1zKG1ldGhvZCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSk7XG4gICAgbGV0IHJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaGVyKHVybCwgcmVxdWVzdFBhcmFtcyk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIC8vIGZldGNoIGZhaWxlZCwgbGlrZWx5IGR1ZSB0byBhIG5ldHdvcmsgb3IgQ09SUyBlcnJvclxuICAgICAgICB0aHJvdyBuZXcgQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IoX2dldEVycm9yTWVzc2FnZShlKSwgMCk7XG4gICAgfVxuICAgIGlmICghcmVzdWx0Lm9rKSB7XG4gICAgICAgIGF3YWl0IGhhbmRsZUVycm9yKHJlc3VsdCk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubm9SZXNvbHZlSnNvbikge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgcmVzdWx0Lmpzb24oKTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgYXdhaXQgaGFuZGxlRXJyb3IoZSk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIF9zZXNzaW9uUmVzcG9uc2UoZGF0YSkge1xuICAgIHZhciBfYTtcbiAgICBsZXQgc2Vzc2lvbiA9IG51bGw7XG4gICAgaWYgKGhhc1Nlc3Npb24oZGF0YSkpIHtcbiAgICAgICAgc2Vzc2lvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRhdGEpO1xuICAgICAgICBpZiAoIWRhdGEuZXhwaXJlc19hdCkge1xuICAgICAgICAgICAgc2Vzc2lvbi5leHBpcmVzX2F0ID0gZXhwaXJlc0F0KGRhdGEuZXhwaXJlc19pbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdXNlciA9IChfYSA9IGRhdGEudXNlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YTtcbiAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb24sIHVzZXIgfSwgZXJyb3I6IG51bGwgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBfc2Vzc2lvblJlc3BvbnNlUGFzc3dvcmQoZGF0YSkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gX3Nlc3Npb25SZXNwb25zZShkYXRhKTtcbiAgICBpZiAoIXJlc3BvbnNlLmVycm9yICYmXG4gICAgICAgIGRhdGEud2Vha19wYXNzd29yZCAmJlxuICAgICAgICB0eXBlb2YgZGF0YS53ZWFrX3Bhc3N3b3JkID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zKSAmJlxuICAgICAgICBkYXRhLndlYWtfcGFzc3dvcmQucmVhc29ucy5sZW5ndGggJiZcbiAgICAgICAgZGF0YS53ZWFrX3Bhc3N3b3JkLm1lc3NhZ2UgJiZcbiAgICAgICAgdHlwZW9mIGRhdGEud2Vha19wYXNzd29yZC5tZXNzYWdlID09PSAnc3RyaW5nJyAmJlxuICAgICAgICBkYXRhLndlYWtfcGFzc3dvcmQucmVhc29ucy5yZWR1Y2UoKGEsIGkpID0+IGEgJiYgdHlwZW9mIGkgPT09ICdzdHJpbmcnLCB0cnVlKSkge1xuICAgICAgICByZXNwb25zZS5kYXRhLndlYWtfcGFzc3dvcmQgPSBkYXRhLndlYWtfcGFzc3dvcmQ7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBfdXNlclJlc3BvbnNlKGRhdGEpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgdXNlciA9IChfYSA9IGRhdGEudXNlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YTtcbiAgICByZXR1cm4geyBkYXRhOiB7IHVzZXIgfSwgZXJyb3I6IG51bGwgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBfc3NvUmVzcG9uc2UoZGF0YSkge1xuICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG59XG5leHBvcnQgZnVuY3Rpb24gX2dlbmVyYXRlTGlua1Jlc3BvbnNlKGRhdGEpIHtcbiAgICBjb25zdCB7IGFjdGlvbl9saW5rLCBlbWFpbF9vdHAsIGhhc2hlZF90b2tlbiwgcmVkaXJlY3RfdG8sIHZlcmlmaWNhdGlvbl90eXBlIH0gPSBkYXRhLCByZXN0ID0gX19yZXN0KGRhdGEsIFtcImFjdGlvbl9saW5rXCIsIFwiZW1haWxfb3RwXCIsIFwiaGFzaGVkX3Rva2VuXCIsIFwicmVkaXJlY3RfdG9cIiwgXCJ2ZXJpZmljYXRpb25fdHlwZVwiXSk7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IHtcbiAgICAgICAgYWN0aW9uX2xpbmssXG4gICAgICAgIGVtYWlsX290cCxcbiAgICAgICAgaGFzaGVkX3Rva2VuLFxuICAgICAgICByZWRpcmVjdF90byxcbiAgICAgICAgdmVyaWZpY2F0aW9uX3R5cGUsXG4gICAgfTtcbiAgICBjb25zdCB1c2VyID0gT2JqZWN0LmFzc2lnbih7fSwgcmVzdCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICAgIHVzZXIsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gX25vUmVzb2x2ZUpzb25SZXNwb25zZShkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vKipcbiAqIGhhc1Nlc3Npb24gY2hlY2tzIGlmIHRoZSByZXNwb25zZSBvYmplY3QgY29udGFpbnMgYSB2YWxpZCBzZXNzaW9uXG4gKiBAcGFyYW0gZGF0YSBBIHJlc3BvbnNlIG9iamVjdFxuICogQHJldHVybnMgdHJ1ZSBpZiBhIHNlc3Npb24gaXMgaW4gdGhlIHJlc3BvbnNlXG4gKi9cbmZ1bmN0aW9uIGhhc1Nlc3Npb24oZGF0YSkge1xuICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbiAmJiBkYXRhLnJlZnJlc2hfdG9rZW4gJiYgZGF0YS5leHBpcmVzX2luO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmV0Y2guanMubWFwIl0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiZXhwaXJlc0F0IiwibG9va3NMaWtlRmV0Y2hSZXNwb25zZSIsIkF1dGhBcGlFcnJvciIsIkF1dGhSZXRyeWFibGVGZXRjaEVycm9yIiwiQXV0aFdlYWtQYXNzd29yZEVycm9yIiwiQXV0aFVua25vd25FcnJvciIsIl9nZXRFcnJvck1lc3NhZ2UiLCJlcnIiLCJtc2ciLCJtZXNzYWdlIiwiZXJyb3JfZGVzY3JpcHRpb24iLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJORVRXT1JLX0VSUk9SX0NPREVTIiwiaGFuZGxlRXJyb3IiLCJpbmNsdWRlcyIsInN0YXR1cyIsImRhdGEiLCJqc29uIiwid2Vha19wYXNzd29yZCIsIkFycmF5IiwiaXNBcnJheSIsInJlYXNvbnMiLCJyZWR1Y2UiLCJhIiwiX2dldFJlcXVlc3RQYXJhbXMiLCJtZXRob2QiLCJvcHRpb25zIiwicGFyYW1ldGVycyIsImJvZHkiLCJwYXJhbXMiLCJoZWFkZXJzIiwiYXNzaWduIiwiX3JlcXVlc3QiLCJmZXRjaGVyIiwidXJsIiwiX2EiLCJqd3QiLCJxcyIsInF1ZXJ5IiwicmVkaXJlY3RUbyIsInF1ZXJ5U3RyaW5nIiwia2V5cyIsIlVSTFNlYXJjaFBhcmFtcyIsInRvU3RyaW5nIiwiX2hhbmRsZVJlcXVlc3QiLCJub1Jlc29sdmVKc29uIiwieGZvcm0iLCJyZXF1ZXN0UGFyYW1zIiwicmVzdWx0IiwiY29uc29sZSIsIm9rIiwiX3Nlc3Npb25SZXNwb25zZSIsInNlc3Npb24iLCJoYXNTZXNzaW9uIiwiZXhwaXJlc19hdCIsImV4cGlyZXNfaW4iLCJ1c2VyIiwiX3Nlc3Npb25SZXNwb25zZVBhc3N3b3JkIiwicmVzcG9uc2UiLCJfdXNlclJlc3BvbnNlIiwiX3Nzb1Jlc3BvbnNlIiwiX2dlbmVyYXRlTGlua1Jlc3BvbnNlIiwiYWN0aW9uX2xpbmsiLCJlbWFpbF9vdHAiLCJoYXNoZWRfdG9rZW4iLCJyZWRpcmVjdF90byIsInZlcmlmaWNhdGlvbl90eXBlIiwicmVzdCIsInByb3BlcnRpZXMiLCJfbm9SZXNvbHZlSnNvblJlc3BvbnNlIiwiYWNjZXNzX3Rva2VuIiwicmVmcmVzaF90b2tlbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/fetch.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Deferred: () => (/* binding */ Deferred),\n/* harmony export */ decodeBase64URL: () => (/* binding */ decodeBase64URL),\n/* harmony export */ decodeJWTPayload: () => (/* binding */ decodeJWTPayload),\n/* harmony export */ expiresAt: () => (/* binding */ expiresAt),\n/* harmony export */ generatePKCEChallenge: () => (/* binding */ generatePKCEChallenge),\n/* harmony export */ generatePKCEVerifier: () => (/* binding */ generatePKCEVerifier),\n/* harmony export */ getItemAsync: () => (/* binding */ getItemAsync),\n/* harmony export */ isBrowser: () => (/* binding */ isBrowser),\n/* harmony export */ looksLikeFetchResponse: () => (/* binding */ looksLikeFetchResponse),\n/* harmony export */ parseParametersFromURL: () => (/* binding */ parseParametersFromURL),\n/* harmony export */ removeItemAsync: () => (/* binding */ removeItemAsync),\n/* harmony export */ resolveFetch: () => (/* binding */ resolveFetch),\n/* harmony export */ retryable: () => (/* binding */ retryable),\n/* harmony export */ setItemAsync: () => (/* binding */ setItemAsync),\n/* harmony export */ sleep: () => (/* binding */ sleep),\n/* harmony export */ supportsLocalStorage: () => (/* binding */ supportsLocalStorage),\n/* harmony export */ uuid: () => (/* binding */ uuid)\n/* harmony export */ });\nfunction expiresAt(expiresIn) {\n const timeNow = Math.round(Date.now() / 1000);\n return timeNow + expiresIn;\n}\nfunction uuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n const r = Math.random() * 16 | 0, v = c == \"x\" ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\nconst isBrowser = ()=>typeof document !== \"undefined\";\nconst localStorageWriteTests = {\n tested: false,\n writable: false\n};\n/**\n * Checks whether localStorage is supported on this browser.\n */ const supportsLocalStorage = ()=>{\n if (!isBrowser()) {\n return false;\n }\n try {\n if (typeof globalThis.localStorage !== \"object\") {\n return false;\n }\n } catch (e) {\n // DOM exception when accessing `localStorage`\n return false;\n }\n if (localStorageWriteTests.tested) {\n return localStorageWriteTests.writable;\n }\n const randomKey = `lswt-${Math.random()}${Math.random()}`;\n try {\n globalThis.localStorage.setItem(randomKey, randomKey);\n globalThis.localStorage.removeItem(randomKey);\n localStorageWriteTests.tested = true;\n localStorageWriteTests.writable = true;\n } catch (e) {\n // localStorage can't be written to\n // https://www.chromium.org/for-testers/bug-reporting-guidelines/uncaught-securityerror-failed-to-read-the-localstorage-property-from-window-access-is-denied-for-this-document\n localStorageWriteTests.tested = true;\n localStorageWriteTests.writable = false;\n }\n return localStorageWriteTests.writable;\n};\n/**\n * Extracts parameters encoded in the URL both in the query and fragment.\n */ function parseParametersFromURL(href) {\n const result = {};\n const url = new URL(href);\n if (url.hash && url.hash[0] === \"#\") {\n try {\n const hashSearchParams = new URLSearchParams(url.hash.substring(1));\n hashSearchParams.forEach((value, key)=>{\n result[key] = value;\n });\n } catch (e) {\n // hash is not a query string\n }\n }\n // search parameters take precedence over hash parameters\n url.searchParams.forEach((value, key)=>{\n result[key] = value;\n });\n return result;\n}\nconst resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (...args)=>Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(rsc)/./node_modules/@supabase/node-fetch/lib/index.js\", 23)).then(({ default: fetch1 })=>fetch1(...args));\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n};\nconst looksLikeFetchResponse = (maybeResponse)=>{\n return typeof maybeResponse === \"object\" && maybeResponse !== null && \"status\" in maybeResponse && \"ok\" in maybeResponse && \"json\" in maybeResponse && typeof maybeResponse.json === \"function\";\n};\n// Storage helpers\nconst setItemAsync = async (storage, key, data)=>{\n await storage.setItem(key, JSON.stringify(data));\n};\nconst getItemAsync = async (storage, key)=>{\n const value = await storage.getItem(key);\n if (!value) {\n return null;\n }\n try {\n return JSON.parse(value);\n } catch (_a) {\n return value;\n }\n};\nconst removeItemAsync = async (storage, key)=>{\n await storage.removeItem(key);\n};\nfunction decodeBase64URL(value) {\n const key = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let base64 = \"\";\n let chr1, chr2, chr3;\n let enc1, enc2, enc3, enc4;\n let i = 0;\n value = value.replace(\"-\", \"+\").replace(\"_\", \"/\");\n while(i < value.length){\n enc1 = key.indexOf(value.charAt(i++));\n enc2 = key.indexOf(value.charAt(i++));\n enc3 = key.indexOf(value.charAt(i++));\n enc4 = key.indexOf(value.charAt(i++));\n chr1 = enc1 << 2 | enc2 >> 4;\n chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n chr3 = (enc3 & 3) << 6 | enc4;\n base64 = base64 + String.fromCharCode(chr1);\n if (enc3 != 64 && chr2 != 0) {\n base64 = base64 + String.fromCharCode(chr2);\n }\n if (enc4 != 64 && chr3 != 0) {\n base64 = base64 + String.fromCharCode(chr3);\n }\n }\n return base64;\n}\n/**\n * A deferred represents some asynchronous work that is not yet finished, which\n * may or may not culminate in a value.\n * Taken from: https://github.com/mike-north/types/blob/master/src/async.ts\n */ class Deferred {\n constructor(){\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n this.promise = new Deferred.promiseConstructor((res, rej)=>{\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\nDeferred.promiseConstructor = Promise;\n// Taken from: https://stackoverflow.com/questions/38552003/how-to-decode-jwt-token-in-javascript-without-using-a-library\nfunction decodeJWTPayload(token) {\n // Regex checks for base64url format\n const base64UrlRegex = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i;\n const parts = token.split(\".\");\n if (parts.length !== 3) {\n throw new Error(\"JWT is not valid: not a JWT structure\");\n }\n if (!base64UrlRegex.test(parts[1])) {\n throw new Error(\"JWT is not valid: payload is not in base64url format\");\n }\n const base64Url = parts[1];\n return JSON.parse(decodeBase64URL(base64Url));\n}\n/**\n * Creates a promise that resolves to null after some time.\n */ async function sleep(time) {\n return await new Promise((accept)=>{\n setTimeout(()=>accept(null), time);\n });\n}\n/**\n * Converts the provided async function into a retryable function. Each result\n * or thrown error is sent to the isRetryable function which should return true\n * if the function should run again.\n */ function retryable(fn, isRetryable) {\n const promise = new Promise((accept, reject)=>{\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n (async ()=>{\n for(let attempt = 0; attempt < Infinity; attempt++){\n try {\n const result = await fn(attempt);\n if (!isRetryable(attempt, null, result)) {\n accept(result);\n return;\n }\n } catch (e) {\n if (!isRetryable(attempt, e)) {\n reject(e);\n return;\n }\n }\n }\n })();\n });\n return promise;\n}\nfunction dec2hex(dec) {\n return (\"0\" + dec.toString(16)).substr(-2);\n}\n// Functions below taken from: https://stackoverflow.com/questions/63309409/creating-a-code-verifier-and-challenge-for-pkce-auth-on-spotify-api-in-reactjs\nfunction generatePKCEVerifier() {\n const verifierLength = 56;\n const array = new Uint32Array(verifierLength);\n if (typeof crypto === \"undefined\") {\n const charSet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\n const charSetLen = charSet.length;\n let verifier = \"\";\n for(let i = 0; i < verifierLength; i++){\n verifier += charSet.charAt(Math.floor(Math.random() * charSetLen));\n }\n return verifier;\n }\n crypto.getRandomValues(array);\n return Array.from(array, dec2hex).join(\"\");\n}\nasync function sha256(randomString) {\n const encoder = new TextEncoder();\n const encodedData = encoder.encode(randomString);\n const hash = await crypto.subtle.digest(\"SHA-256\", encodedData);\n const bytes = new Uint8Array(hash);\n return Array.from(bytes).map((c)=>String.fromCharCode(c)).join(\"\");\n}\nfunction base64urlencode(str) {\n return btoa(str).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nasync function generatePKCEChallenge(verifier) {\n const hasCryptoSupport = typeof crypto !== \"undefined\" && typeof crypto.subtle !== \"undefined\" && typeof TextEncoder !== \"undefined\";\n if (!hasCryptoSupport) {\n console.warn(\"WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.\");\n return verifier;\n }\n const hashed = await sha256(verifier);\n return base64urlencode(hashed);\n} //# sourceMappingURL=helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLFNBQVNBLFVBQVVDLFNBQVM7SUFDL0IsTUFBTUMsVUFBVUMsS0FBS0MsS0FBSyxDQUFDQyxLQUFLQyxHQUFHLEtBQUs7SUFDeEMsT0FBT0osVUFBVUQ7QUFDckI7QUFDTyxTQUFTTTtJQUNaLE9BQU8sdUNBQXVDQyxPQUFPLENBQUMsU0FBUyxTQUFVQyxDQUFDO1FBQ3RFLE1BQU1DLElBQUksS0FBTUMsTUFBTSxLQUFLLEtBQU0sR0FBR0MsSUFBSUgsS0FBSyxNQUFNQyxJQUFJLElBQUssTUFBTztRQUNuRSxPQUFPRSxFQUFFQyxRQUFRLENBQUM7SUFDdEI7QUFDSjtBQUNPLE1BQU1DLFlBQVksSUFBTSxPQUFPQyxhQUFhLFlBQVk7QUFDL0QsTUFBTUMseUJBQXlCO0lBQzNCQyxRQUFRO0lBQ1JDLFVBQVU7QUFDZDtBQUNBOztDQUVDLEdBQ00sTUFBTUMsdUJBQXVCO0lBQ2hDLElBQUksQ0FBQ0wsYUFBYTtRQUNkLE9BQU87SUFDWDtJQUNBLElBQUk7UUFDQSxJQUFJLE9BQU9NLFdBQVdDLFlBQVksS0FBSyxVQUFVO1lBQzdDLE9BQU87UUFDWDtJQUNKLEVBQ0EsT0FBT0MsR0FBRztRQUNOLDhDQUE4QztRQUM5QyxPQUFPO0lBQ1g7SUFDQSxJQUFJTix1QkFBdUJDLE1BQU0sRUFBRTtRQUMvQixPQUFPRCx1QkFBdUJFLFFBQVE7SUFDMUM7SUFDQSxNQUFNSyxZQUFZLENBQUMsS0FBSyxFQUFFcEIsS0FBS1EsTUFBTSxHQUFHLEVBQUVSLEtBQUtRLE1BQU0sR0FBRyxDQUFDO0lBQ3pELElBQUk7UUFDQVMsV0FBV0MsWUFBWSxDQUFDRyxPQUFPLENBQUNELFdBQVdBO1FBQzNDSCxXQUFXQyxZQUFZLENBQUNJLFVBQVUsQ0FBQ0Y7UUFDbkNQLHVCQUF1QkMsTUFBTSxHQUFHO1FB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Q1QsT0FBT0wsU0FBU2UsSUFBSSxDQUFDO0FBQzNDO0FBQ0EsZUFBZUMsT0FBT0MsWUFBWTtJQUM5QixNQUFNQyxVQUFVLElBQUlDO0lBQ3BCLE1BQU1DLGNBQWNGLFFBQVFHLE1BQU0sQ0FBQ0o7SUFDbkMsTUFBTXRGLE9BQU8sTUFBTTRFLE9BQU9lLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLFdBQVdIO0lBQ25ELE1BQU1JLFFBQVEsSUFBSUMsV0FBVzlGO0lBQzdCLE9BQU9rRixNQUFNQyxJQUFJLENBQUNVLE9BQ2JFLEdBQUcsQ0FBQyxDQUFDckgsSUFBTStELE9BQU9DLFlBQVksQ0FBQ2hFLElBQy9CMEcsSUFBSSxDQUFDO0FBQ2Q7QUFDQSxTQUFTWSxnQkFBZ0JDLEdBQUc7SUFDeEIsT0FBT0MsS0FBS0QsS0FBS3hILE9BQU8sQ0FBQyxPQUFPLEtBQUtBLE9BQU8sQ0FBQyxPQUFPLEtBQUtBLE9BQU8sQ0FBQyxPQUFPO0FBQzVFO0FBQ08sZUFBZTBILHNCQUFzQnBCLFFBQVE7SUFDaEQsTUFBTXFCLG1CQUFtQixPQUFPeEIsV0FBVyxlQUN2QyxPQUFPQSxPQUFPZSxNQUFNLEtBQUssZUFDekIsT0FBT0gsZ0JBQWdCO0lBQzNCLElBQUksQ0FBQ1ksa0JBQWtCO1FBQ25CQyxRQUFRQyxJQUFJLENBQUM7UUFDYixPQUFPdkI7SUFDWDtJQUNBLE1BQU13QixTQUFTLE1BQU1sQixPQUFPTjtJQUM1QixPQUFPaUIsZ0JBQWdCTztBQUMzQixFQUNBLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZ290cnVlLWpzL2Rpc3QvbW9kdWxlL2xpYi9oZWxwZXJzLmpzPzZiMmYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGV4cGlyZXNBdChleHBpcmVzSW4pIHtcbiAgICBjb25zdCB0aW1lTm93ID0gTWF0aC5yb3VuZChEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgcmV0dXJuIHRpbWVOb3cgKyBleHBpcmVzSW47XG59XG5leHBvcnQgZnVuY3Rpb24gdXVpZCgpIHtcbiAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xuICAgICAgICBjb25zdCByID0gKE1hdGgucmFuZG9tKCkgKiAxNikgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4O1xuICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XG4gICAgfSk7XG59XG5leHBvcnQgY29uc3QgaXNCcm93c2VyID0gKCkgPT4gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJztcbmNvbnN0IGxvY2FsU3RvcmFnZVdyaXRlVGVzdHMgPSB7XG4gICAgdGVzdGVkOiBmYWxzZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG59O1xuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBsb2NhbFN0b3JhZ2UgaXMgc3VwcG9ydGVkIG9uIHRoaXMgYnJvd3Nlci5cbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHBvcnRzTG9jYWxTdG9yYWdlID0gKCkgPT4ge1xuICAgIGlmICghaXNCcm93c2VyKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGdsb2JhbFRoaXMubG9jYWxTdG9yYWdlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIC8vIERPTSBleGNlcHRpb24gd2hlbiBhY2Nlc3NpbmcgYGxvY2FsU3RvcmFnZWBcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobG9jYWxTdG9yYWdlV3JpdGVUZXN0cy50ZXN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZVdyaXRlVGVzdHMud3JpdGFibGU7XG4gICAgfVxuICAgIGNvbnN0IHJhbmRvbUtleSA9IGBsc3d0LSR7TWF0aC5yYW5kb20oKX0ke01hdGgucmFuZG9tKCl9YDtcbiAgICB0cnkge1xuICAgICAgICBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKHJhbmRvbUtleSwgcmFuZG9tS2V5KTtcbiAgICAgICAgZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShyYW5kb21LZXkpO1xuICAgICAgICBsb2NhbFN0b3JhZ2VXcml0ZVRlc3RzLnRlc3RlZCA9IHRydWU7XG4gICAgICAgIGxvY2FsU3RvcmFnZVdyaXRlVGVzdHMud3JpdGFibGUgPSB0cnVlO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICAvLyBsb2NhbFN0b3JhZ2UgY2FuJ3QgYmUgd3JpdHRlbiB0b1xuICAgICAgICAvLyBodHRwczovL3d3dy5jaHJvbWl1bS5vcmcvZm9yLXRlc3RlcnMvYnVnLXJlcG9ydGluZy1ndWlkZWxpbmVzL3VuY2F1Z2h0LXNlY3VyaXR5ZXJyb3ItZmFpbGVkLXRvLXJlYWQtdGhlLWxvY2Fsc3RvcmFnZS1wcm9wZXJ0eS1mcm9tLXdpbmRvdy1hY2Nlc3MtaXMtZGVuaWVkLWZvci10aGlzLWRvY3VtZW50XG4gICAgICAgIGxvY2FsU3RvcmFnZVdyaXRlVGVzdHMudGVzdGVkID0gdHJ1ZTtcbiAgICAgICAgbG9jYWxTdG9yYWdlV3JpdGVUZXN0cy53cml0YWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlV3JpdGVUZXN0cy53cml0YWJsZTtcbn07XG4vKipcbiAqIEV4dHJhY3RzIHBhcmFtZXRlcnMgZW5jb2RlZCBpbiB0aGUgVVJMIGJvdGggaW4gdGhlIHF1ZXJ5IGFuZCBmcmFnbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFyYW1ldGVyc0Zyb21VUkwoaHJlZikge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoaHJlZik7XG4gICAgaWYgKHVybC5oYXNoICYmIHVybC5oYXNoWzBdID09PSAnIycpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGhhc2hTZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybC5oYXNoLnN1YnN0cmluZygxKSk7XG4gICAgICAgICAgICBoYXNoU2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGhhc2ggaXMgbm90IGEgcXVlcnkgc3RyaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gc2VhcmNoIHBhcmFtZXRlcnMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgaGFzaCBwYXJhbWV0ZXJzXG4gICAgdXJsLnNlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBjb25zdCByZXNvbHZlRmV0Y2ggPSAoY3VzdG9tRmV0Y2gpID0+IHtcbiAgICBsZXQgX2ZldGNoO1xuICAgIGlmIChjdXN0b21GZXRjaCkge1xuICAgICAgICBfZmV0Y2ggPSBjdXN0b21GZXRjaDtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGZldGNoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBfZmV0Y2ggPSAoLi4uYXJncykgPT4gaW1wb3J0KCdAc3VwYWJhc2Uvbm9kZS1mZXRjaCcpLnRoZW4oKHsgZGVmYXVsdDogZmV0Y2ggfSkgPT4gZmV0Y2goLi4uYXJncykpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgX2ZldGNoID0gZmV0Y2g7XG4gICAgfVxuICAgIHJldHVybiAoLi4uYXJncykgPT4gX2ZldGNoKC4uLmFyZ3MpO1xufTtcbmV4cG9ydCBjb25zdCBsb29rc0xpa2VGZXRjaFJlc3BvbnNlID0gKG1heWJlUmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gKHR5cGVvZiBtYXliZVJlc3BvbnNlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBtYXliZVJlc3BvbnNlICE9PSBudWxsICYmXG4gICAgICAgICdzdGF0dXMnIGluIG1heWJlUmVzcG9uc2UgJiZcbiAgICAgICAgJ29rJyBpbiBtYXliZVJlc3BvbnNlICYmXG4gICAgICAgICdqc29uJyBpbiBtYXliZVJlc3BvbnNlICYmXG4gICAgICAgIHR5cGVvZiBtYXliZVJlc3BvbnNlLmpzb24gPT09ICdmdW5jdGlvbicpO1xufTtcbi8vIFN0b3JhZ2UgaGVscGVyc1xuZXhwb3J0IGNvbnN0IHNldEl0ZW1Bc3luYyA9IGFzeW5jIChzdG9yYWdlLCBrZXksIGRhdGEpID0+IHtcbiAgICBhd2FpdCBzdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG59O1xuZXhwb3J0IGNvbnN0IGdldEl0ZW1Bc3luYyA9IGFzeW5jIChzdG9yYWdlLCBrZXkpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICB9XG4gICAgY2F0Y2ggKF9hKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59O1xuZXhwb3J0IGNvbnN0IHJlbW92ZUl0ZW1Bc3luYyA9IGFzeW5jIChzdG9yYWdlLCBrZXkpID0+IHtcbiAgICBhd2FpdCBzdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbn07XG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlQmFzZTY0VVJMKHZhbHVlKSB7XG4gICAgY29uc3Qga2V5ID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89JztcbiAgICBsZXQgYmFzZTY0ID0gJyc7XG4gICAgbGV0IGNocjEsIGNocjIsIGNocjM7XG4gICAgbGV0IGVuYzEsIGVuYzIsIGVuYzMsIGVuYzQ7XG4gICAgbGV0IGkgPSAwO1xuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnLScsICcrJykucmVwbGFjZSgnXycsICcvJyk7XG4gICAgd2hpbGUgKGkgPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgZW5jMSA9IGtleS5pbmRleE9mKHZhbHVlLmNoYXJBdChpKyspKTtcbiAgICAgICAgZW5jMiA9IGtleS5pbmRleE9mKHZhbHVlLmNoYXJBdChpKyspKTtcbiAgICAgICAgZW5jMyA9IGtleS5pbmRleE9mKHZhbHVlLmNoYXJBdChpKyspKTtcbiAgICAgICAgZW5jNCA9IGtleS5pbmRleE9mKHZhbHVlLmNoYXJBdChpKyspKTtcbiAgICAgICAgY2hyMSA9IChlbmMxIDw8IDIpIHwgKGVuYzIgPj4gNCk7XG4gICAgICAgIGNocjIgPSAoKGVuYzIgJiAxNSkgPDwgNCkgfCAoZW5jMyA+PiAyKTtcbiAgICAgICAgY2hyMyA9ICgoZW5jMyAmIDMpIDw8IDYpIHwgZW5jNDtcbiAgICAgICAgYmFzZTY0ID0gYmFzZTY0ICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaHIxKTtcbiAgICAgICAgaWYgKGVuYzMgIT0gNjQgJiYgY2hyMiAhPSAwKSB7XG4gICAgICAgICAgICBiYXNlNjQgPSBiYXNlNjQgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocjIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmM0ICE9IDY0ICYmIGNocjMgIT0gMCkge1xuICAgICAgICAgICAgYmFzZTY0ID0gYmFzZTY0ICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaHIzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYmFzZTY0O1xufVxuLyoqXG4gKiBBIGRlZmVycmVkIHJlcHJlc2VudHMgc29tZSBhc3luY2hyb25vdXMgd29yayB0aGF0IGlzIG5vdCB5ZXQgZmluaXNoZWQsIHdoaWNoXG4gKiBtYXkgb3IgbWF5IG5vdCBjdWxtaW5hdGUgaW4gYSB2YWx1ZS5cbiAqIFRha2VuIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9taWtlLW5vcnRoL3R5cGVzL2Jsb2IvbWFzdGVyL3NyYy9hc3luYy50c1xuICovXG5leHBvcnQgY2xhc3MgRGVmZXJyZWQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4dHJhLXNlbWlcbiAgICAgICAgO1xuICAgICAgICB0aGlzLnByb21pc2UgPSBuZXcgRGVmZXJyZWQucHJvbWlzZUNvbnN0cnVjdG9yKChyZXMsIHJlaikgPT4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHRyYS1zZW1pXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmUgPSByZXM7XG4gICAgICAgICAgICB0aGlzLnJlamVjdCA9IHJlajtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuRGVmZXJyZWQucHJvbWlzZUNvbnN0cnVjdG9yID0gUHJvbWlzZTtcbi8vIFRha2VuIGZyb206IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM4NTUyMDAzL2hvdy10by1kZWNvZGUtand0LXRva2VuLWluLWphdmFzY3JpcHQtd2l0aG91dC11c2luZy1hLWxpYnJhcnlcbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVKV1RQYXlsb2FkKHRva2VuKSB7XG4gICAgLy8gUmVnZXggY2hlY2tzIGZvciBiYXNlNjR1cmwgZm9ybWF0XG4gICAgY29uc3QgYmFzZTY0VXJsUmVnZXggPSAvXihbYS16MC05Xy1dezR9KSooJHxbYS16MC05Xy1dezN9PT8kfFthLXowLTlfLV17Mn0oPT0pPyQpJC9pO1xuICAgIGNvbnN0IHBhcnRzID0gdG9rZW4uc3BsaXQoJy4nKTtcbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSldUIGlzIG5vdCB2YWxpZDogbm90IGEgSldUIHN0cnVjdHVyZScpO1xuICAgIH1cbiAgICBpZiAoIWJhc2U2NFVybFJlZ2V4LnRlc3QocGFydHNbMV0pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSldUIGlzIG5vdCB2YWxpZDogcGF5bG9hZCBpcyBub3QgaW4gYmFzZTY0dXJsIGZvcm1hdCcpO1xuICAgIH1cbiAgICBjb25zdCBiYXNlNjRVcmwgPSBwYXJ0c1sxXTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVCYXNlNjRVUkwoYmFzZTY0VXJsKSk7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gbnVsbCBhZnRlciBzb21lIHRpbWUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzbGVlcCh0aW1lKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChhY2NlcHQpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBhY2NlcHQobnVsbCksIHRpbWUpO1xuICAgIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgcHJvdmlkZWQgYXN5bmMgZnVuY3Rpb24gaW50byBhIHJldHJ5YWJsZSBmdW5jdGlvbi4gRWFjaCByZXN1bHRcbiAqIG9yIHRocm93biBlcnJvciBpcyBzZW50IHRvIHRoZSBpc1JldHJ5YWJsZSBmdW5jdGlvbiB3aGljaCBzaG91bGQgcmV0dXJuIHRydWVcbiAqIGlmIHRoZSBmdW5jdGlvbiBzaG91bGQgcnVuIGFnYWluLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmV0cnlhYmxlKGZuLCBpc1JldHJ5YWJsZSkge1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgoYWNjZXB0LCByZWplY3QpID0+IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHRyYS1zZW1pXG4gICAgICAgIDtcbiAgICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDwgSW5maW5pdHk7IGF0dGVtcHQrKykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKGF0dGVtcHQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUmV0cnlhYmxlKGF0dGVtcHQsIG51bGwsIHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNSZXRyeWFibGUoYXR0ZW1wdCwgZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIGRlYzJoZXgoZGVjKSB7XG4gICAgcmV0dXJuICgnMCcgKyBkZWMudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTIpO1xufVxuLy8gRnVuY3Rpb25zIGJlbG93IHRha2VuIGZyb206IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYzMzA5NDA5L2NyZWF0aW5nLWEtY29kZS12ZXJpZmllci1hbmQtY2hhbGxlbmdlLWZvci1wa2NlLWF1dGgtb24tc3BvdGlmeS1hcGktaW4tcmVhY3Rqc1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlUEtDRVZlcmlmaWVyKCkge1xuICAgIGNvbnN0IHZlcmlmaWVyTGVuZ3RoID0gNTY7XG4gICAgY29uc3QgYXJyYXkgPSBuZXcgVWludDMyQXJyYXkodmVyaWZpZXJMZW5ndGgpO1xuICAgIGlmICh0eXBlb2YgY3J5cHRvID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zdCBjaGFyU2V0ID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LS5ffic7XG4gICAgICAgIGNvbnN0IGNoYXJTZXRMZW4gPSBjaGFyU2V0Lmxlbmd0aDtcbiAgICAgICAgbGV0IHZlcmlmaWVyID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmVyaWZpZXJMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmVyaWZpZXIgKz0gY2hhclNldC5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhclNldExlbikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2ZXJpZmllcjtcbiAgICB9XG4gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhcnJheSk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oYXJyYXksIGRlYzJoZXgpLmpvaW4oJycpO1xufVxuYXN5bmMgZnVuY3Rpb24gc2hhMjU2KHJhbmRvbVN0cmluZykge1xuICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICBjb25zdCBlbmNvZGVkRGF0YSA9IGVuY29kZXIuZW5jb2RlKHJhbmRvbVN0cmluZyk7XG4gICAgY29uc3QgaGFzaCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgZW5jb2RlZERhdGEpO1xuICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoaGFzaCk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oYnl0ZXMpXG4gICAgICAgIC5tYXAoKGMpID0+IFN0cmluZy5mcm9tQ2hhckNvZGUoYykpXG4gICAgICAgIC5qb2luKCcnKTtcbn1cbmZ1bmN0aW9uIGJhc2U2NHVybGVuY29kZShzdHIpIHtcbiAgICByZXR1cm4gYnRvYShzdHIpLnJlcGxhY2UoL1xcKy9nLCAnLScpLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoLz0rJC8sICcnKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UodmVyaWZpZXIpIHtcbiAgICBjb25zdCBoYXNDcnlwdG9TdXBwb3J0ID0gdHlwZW9mIGNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgdHlwZW9mIGNyeXB0by5zdWJ0bGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgIHR5cGVvZiBUZXh0RW5jb2RlciAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgaWYgKCFoYXNDcnlwdG9TdXBwb3J0KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignV2ViQ3J5cHRvIEFQSSBpcyBub3Qgc3VwcG9ydGVkLiBDb2RlIGNoYWxsZW5nZSBtZXRob2Qgd2lsbCBkZWZhdWx0IHRvIHVzZSBwbGFpbiBpbnN0ZWFkIG9mIHNoYTI1Ni4nKTtcbiAgICAgICAgcmV0dXJuIHZlcmlmaWVyO1xuICAgIH1cbiAgICBjb25zdCBoYXNoZWQgPSBhd2FpdCBzaGEyNTYodmVyaWZpZXIpO1xuICAgIHJldHVybiBiYXNlNjR1cmxlbmNvZGUoaGFzaGVkKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbImV4cGlyZXNBdCIsImV4cGlyZXNJbiIsInRpbWVOb3ciLCJNYXRoIiwicm91bmQiLCJEYXRlIiwibm93IiwidXVpZCIsInJlcGxhY2UiLCJjIiwiciIsInJhbmRvbSIsInYiLCJ0b1N0cmluZyIsImlzQnJvd3NlciIsImRvY3VtZW50IiwibG9jYWxTdG9yYWdlV3JpdGVUZXN0cyIsInRlc3RlZCIsIndyaXRhYmxlIiwic3VwcG9ydHNMb2NhbFN0b3JhZ2UiLCJnbG9iYWxUaGlzIiwibG9jYWxTdG9yYWdlIiwiZSIsInJhbmRvbUtleSIsInNldEl0ZW0iLCJyZW1vdmVJdGVtIiwicGFyc2VQYXJhbWV0ZXJzRnJvbVVSTCIsImhyZWYiLCJyZXN1bHQiLCJ1cmwiLCJVUkwiLCJoYXNoIiwiaGFzaFNlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInN1YnN0cmluZyIsImZvckVhY2giLCJ2YWx1ZSIsImtleSIsInNlYXJjaFBhcmFtcyIsInJlc29sdmVGZXRjaCIsImN1c3RvbUZldGNoIiwiX2ZldGNoIiwiZmV0Y2giLCJhcmdzIiwidGhlbiIsImRlZmF1bHQiLCJsb29rc0xpa2VGZXRjaFJlc3BvbnNlIiwibWF5YmVSZXNwb25zZSIsImpzb24iLCJzZXRJdGVtQXN5bmMiLCJzdG9yYWdlIiwiZGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXRJdGVtQXN5bmMiLCJnZXRJdGVtIiwicGFyc2UiLCJfYSIsInJlbW92ZUl0ZW1Bc3luYyIsImRlY29kZUJhc2U2NFVSTCIsImJhc2U2NCIsImNocjEiLCJjaHIyIiwiY2hyMyIsImVuYzEiLCJlbmMyIiwiZW5jMyIsImVuYzQiLCJpIiwibGVuZ3RoIiwiaW5kZXhPZiIsImNoYXJBdCIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIkRlZmVycmVkIiwiY29uc3RydWN0b3IiLCJwcm9taXNlIiwicHJvbWlzZUNvbnN0cnVjdG9yIiwicmVzIiwicmVqIiwicmVzb2x2ZSIsInJlamVjdCIsIlByb21pc2UiLCJkZWNvZGVKV1RQYXlsb2FkIiwidG9rZW4iLCJiYXNlNjRVcmxSZWdleCIsInBhcnRzIiwic3BsaXQiLCJFcnJvciIsInRlc3QiLCJiYXNlNjRVcmwiLCJzbGVlcCIsInRpbWUiLCJhY2NlcHQiLCJzZXRUaW1lb3V0IiwicmV0cnlhYmxlIiwiZm4iLCJpc1JldHJ5YWJsZSIsImF0dGVtcHQiLCJJbmZpbml0eSIsImRlYzJoZXgiLCJkZWMiLCJzdWJzdHIiLCJnZW5lcmF0ZVBLQ0VWZXJpZmllciIsInZlcmlmaWVyTGVuZ3RoIiwiYXJyYXkiLCJVaW50MzJBcnJheSIsImNyeXB0byIsImNoYXJTZXQiLCJjaGFyU2V0TGVuIiwidmVyaWZpZXIiLCJmbG9vciIsImdldFJhbmRvbVZhbHVlcyIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJzaGEyNTYiLCJyYW5kb21TdHJpbmciLCJlbmNvZGVyIiwiVGV4dEVuY29kZXIiLCJlbmNvZGVkRGF0YSIsImVuY29kZSIsInN1YnRsZSIsImRpZ2VzdCIsImJ5dGVzIiwiVWludDhBcnJheSIsIm1hcCIsImJhc2U2NHVybGVuY29kZSIsInN0ciIsImJ0b2EiLCJnZW5lcmF0ZVBLQ0VDaGFsbGVuZ2UiLCJoYXNDcnlwdG9TdXBwb3J0IiwiY29uc29sZSIsIndhcm4iLCJoYXNoZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/local-storage.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/local-storage.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ localStorageAdapter: () => (/* binding */ localStorageAdapter),\n/* harmony export */ memoryLocalStorageAdapter: () => (/* binding */ memoryLocalStorageAdapter)\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n\n/**\n * Provides safe access to the globalThis.localStorage property.\n */ const localStorageAdapter = {\n getItem: (key)=>{\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)()) {\n return null;\n }\n return globalThis.localStorage.getItem(key);\n },\n setItem: (key, value)=>{\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)()) {\n return;\n }\n globalThis.localStorage.setItem(key, value);\n },\n removeItem: (key)=>{\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)()) {\n return;\n }\n globalThis.localStorage.removeItem(key);\n }\n};\n/**\n * Returns a localStorage-like object that stores the key-value pairs in\n * memory.\n */ function memoryLocalStorageAdapter(store = {}) {\n return {\n getItem: (key)=>{\n return store[key] || null;\n },\n setItem: (key, value)=>{\n store[key] = value;\n },\n removeItem: (key)=>{\n delete store[key];\n }\n };\n} //# sourceMappingURL=local-storage.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvbG9jYWwtc3RvcmFnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBaUQ7QUFDakQ7O0NBRUMsR0FDTSxNQUFNQyxzQkFBc0I7SUFDL0JDLFNBQVMsQ0FBQ0M7UUFDTixJQUFJLENBQUNILDhEQUFvQkEsSUFBSTtZQUN6QixPQUFPO1FBQ1g7UUFDQSxPQUFPSSxXQUFXQyxZQUFZLENBQUNILE9BQU8sQ0FBQ0M7SUFDM0M7SUFDQUcsU0FBUyxDQUFDSCxLQUFLSTtRQUNYLElBQUksQ0FBQ1AsOERBQW9CQSxJQUFJO1lBQ3pCO1FBQ0o7UUFDQUksV0FBV0MsWUFBWSxDQUFDQyxPQUFPLENBQUNILEtBQUtJO0lBQ3pDO0lBQ0FDLFlBQVksQ0FBQ0w7UUFDVCxJQUFJLENBQUNILDhEQUFvQkEsSUFBSTtZQUN6QjtRQUNKO1FBQ0FJLFdBQVdDLFlBQVksQ0FBQ0csVUFBVSxDQUFDTDtJQUN2QztBQUNKLEVBQUU7QUFDRjs7O0NBR0MsR0FDTSxTQUFTTSwwQkFBMEJDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE9BQU87UUFDSFIsU0FBUyxDQUFDQztZQUNOLE9BQU9PLEtBQUssQ0FBQ1AsSUFBSSxJQUFJO1FBQ3pCO1FBQ0FHLFNBQVMsQ0FBQ0gsS0FBS0k7WUFDWEcsS0FBSyxDQUFDUCxJQUFJLEdBQUdJO1FBQ2pCO1FBQ0FDLFlBQVksQ0FBQ0w7WUFDVCxPQUFPTyxLQUFLLENBQUNQLElBQUk7UUFDckI7SUFDSjtBQUNKLEVBQ0EseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2xvY2FsLXN0b3JhZ2UuanM/MWJhNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdXBwb3J0c0xvY2FsU3RvcmFnZSB9IGZyb20gJy4vaGVscGVycyc7XG4vKipcbiAqIFByb3ZpZGVzIHNhZmUgYWNjZXNzIHRvIHRoZSBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZSBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGxvY2FsU3RvcmFnZUFkYXB0ZXIgPSB7XG4gICAgZ2V0SXRlbTogKGtleSkgPT4ge1xuICAgICAgICBpZiAoIXN1cHBvcnRzTG9jYWxTdG9yYWdlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgfSxcbiAgICBzZXRJdGVtOiAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIXN1cHBvcnRzTG9jYWxTdG9yYWdlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgIH0sXG4gICAgcmVtb3ZlSXRlbTogKGtleSkgPT4ge1xuICAgICAgICBpZiAoIXN1cHBvcnRzTG9jYWxTdG9yYWdlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgfSxcbn07XG4vKipcbiAqIFJldHVybnMgYSBsb2NhbFN0b3JhZ2UtbGlrZSBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIGtleS12YWx1ZSBwYWlycyBpblxuICogbWVtb3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtb3J5TG9jYWxTdG9yYWdlQWRhcHRlcihzdG9yZSA9IHt9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ2V0SXRlbTogKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JlW2tleV0gfHwgbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SXRlbTogKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgIHN0b3JlW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlSXRlbTogKGtleSkgPT4ge1xuICAgICAgICAgICAgZGVsZXRlIHN0b3JlW2tleV07XG4gICAgICAgIH0sXG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvY2FsLXN0b3JhZ2UuanMubWFwIl0sIm5hbWVzIjpbInN1cHBvcnRzTG9jYWxTdG9yYWdlIiwibG9jYWxTdG9yYWdlQWRhcHRlciIsImdldEl0ZW0iLCJrZXkiLCJnbG9iYWxUaGlzIiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsInZhbHVlIiwicmVtb3ZlSXRlbSIsIm1lbW9yeUxvY2FsU3RvcmFnZUFkYXB0ZXIiLCJzdG9yZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/local-storage.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LockAcquireTimeoutError: () => (/* binding */ LockAcquireTimeoutError),\n/* harmony export */ NavigatorLockAcquireTimeoutError: () => (/* binding */ NavigatorLockAcquireTimeoutError),\n/* harmony export */ internals: () => (/* binding */ internals),\n/* harmony export */ navigatorLock: () => (/* binding */ navigatorLock)\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/helpers.js\");\n\n/**\n * @experimental\n */ const internals = {\n /**\n * @experimental\n */ debug: !!(globalThis && (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)() && globalThis.localStorage && globalThis.localStorage.getItem(\"supabase.gotrue-js.locks.debug\") === \"true\")\n};\n/**\n * An error thrown when a lock cannot be acquired after some amount of time.\n *\n * Use the {@link #isAcquireTimeout} property instead of checking with `instanceof`.\n */ class LockAcquireTimeoutError extends Error {\n constructor(message){\n super(message);\n this.isAcquireTimeout = true;\n }\n}\nclass NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError {\n}\n/**\n * Implements a global exclusive lock using the Navigator LockManager API. It\n * is available on all browsers released after 2022-03-15 with Safari being the\n * last one to release support. If the API is not available, this function will\n * throw. Make sure you check availablility before configuring {@link\n * GoTrueClient}.\n *\n * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`\n * local storage item to `true`.\n *\n * Internals:\n *\n * Since the LockManager API does not preserve stack traces for the async\n * function passed in the `request` method, a trick is used where acquiring the\n * lock releases a previously started promise to run the operation in the `fn`\n * function. The lock waits for that promise to finish (with or without error),\n * while the function will finally wait for the result anyway.\n *\n * @param name Name of the lock to be acquired.\n * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if\n * the lock can't be acquired without waiting. If positive, the lock acquire\n * will time out after so many milliseconds. An error is\n * a timeout if it has `isAcquireTimeout` set to true.\n * @param fn The operation to run once the lock is acquired.\n */ async function navigatorLock(name, acquireTimeout, fn) {\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock: acquire lock\", name, acquireTimeout);\n }\n const abortController = new globalThis.AbortController();\n if (acquireTimeout > 0) {\n setTimeout(()=>{\n abortController.abort();\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock acquire timed out\", name);\n }\n }, acquireTimeout);\n }\n // MDN article: https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\n return await globalThis.navigator.locks.request(name, acquireTimeout === 0 ? {\n mode: \"exclusive\",\n ifAvailable: true\n } : {\n mode: \"exclusive\",\n signal: abortController.signal\n }, async (lock)=>{\n if (lock) {\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock: acquired\", name, lock.name);\n }\n try {\n return await fn();\n } finally{\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock: released\", name, lock.name);\n }\n }\n } else {\n if (acquireTimeout === 0) {\n if (internals.debug) {\n console.log(\"@supabase/gotrue-js: navigatorLock: not immediately available\", name);\n }\n throw new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock \"${name}\" immediately failed`);\n } else {\n if (internals.debug) {\n try {\n const result = await globalThis.navigator.locks.query();\n console.log(\"@supabase/gotrue-js: Navigator LockManager state\", JSON.stringify(result, null, \" \"));\n } catch (e) {\n console.warn(\"@supabase/gotrue-js: Error when querying Navigator LockManager state\", e);\n }\n }\n // Browser is not following the Navigator LockManager spec, it\n // returned a null lock when we didn't use ifAvailable. So we can\n // pretend the lock is acquired in the name of backward compatibility\n // and user experience and just run the function.\n console.warn(\"@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\");\n return await fn();\n }\n }\n });\n} //# sourceMappingURL=locks.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvbG9ja3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBaUQ7QUFDakQ7O0NBRUMsR0FDTSxNQUFNQyxZQUFZO0lBQ3JCOztLQUVDLEdBQ0RDLE9BQU8sQ0FBQyxDQUFFQyxDQUFBQSxjQUNOSCw4REFBb0JBLE1BQ3BCRyxXQUFXQyxZQUFZLElBQ3ZCRCxXQUFXQyxZQUFZLENBQUNDLE9BQU8sQ0FBQyxzQ0FBc0MsTUFBSztBQUNuRixFQUFFO0FBQ0Y7Ozs7Q0FJQyxHQUNNLE1BQU1DLGdDQUFnQ0M7SUFDekNDLFlBQVlDLE9BQU8sQ0FBRTtRQUNqQixLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDQyxnQkFBZ0IsR0FBRztJQUM1QjtBQUNKO0FBQ08sTUFBTUMseUNBQXlDTDtBQUN0RDtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F3QkMsR0FDTSxlQUFlTSxjQUFjQyxJQUFJLEVBQUVDLGNBQWMsRUFBRUMsRUFBRTtJQUN4RCxJQUFJZCxVQUFVQyxLQUFLLEVBQUU7UUFDakJjLFFBQVFDLEdBQUcsQ0FBQyxvREFBb0RKLE1BQU1DO0lBQzFFO0lBQ0EsTUFBTUksa0JBQWtCLElBQUlmLFdBQVdnQixlQUFlO0lBQ3RELElBQUlMLGlCQUFpQixHQUFHO1FBQ3BCTSxXQUFXO1lBQ1BGLGdCQUFnQkcsS0FBSztZQUNyQixJQUFJcEIsVUFBVUMsS0FBSyxFQUFFO2dCQUNqQmMsUUFBUUMsR0FBRyxDQUFDLHdEQUF3REo7WUFDeEU7UUFDSixHQUFHQztJQUNQO0lBQ0Esb0ZBQW9GO0lBQ3BGLE9BQU8sTUFBTVgsV0FBV21CLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNYLE1BQU1DLG1CQUFtQixJQUNuRTtRQUNFVyxNQUFNO1FBQ05DLGFBQWE7SUFDakIsSUFDRTtRQUNFRCxNQUFNO1FBQ05FLFFBQVFULGdCQUFnQlMsTUFBTTtJQUNsQyxHQUFHLE9BQU9DO1FBQ1YsSUFBSUEsTUFBTTtZQUNOLElBQUkzQixVQUFVQyxLQUFLLEVBQUU7Z0JBQ2pCYyxRQUFRQyxHQUFHLENBQUMsZ0RBQWdESixNQUFNZSxLQUFLZixJQUFJO1lBQy9FO1lBQ0EsSUFBSTtnQkFDQSxPQUFPLE1BQU1FO1lBQ2pCLFNBQ1E7Z0JBQ0osSUFBSWQsVUFBVUMsS0FBSyxFQUFFO29CQUNqQmMsUUFBUUMsR0FBRyxDQUFDLGdEQUFnREosTUFBTWUsS0FBS2YsSUFBSTtnQkFDL0U7WUFDSjtRQUNKLE9BQ0s7WUFDRCxJQUFJQyxtQkFBbUIsR0FBRztnQkFDdEIsSUFBSWIsVUFBVUMsS0FBSyxFQUFFO29CQUNqQmMsUUFBUUMsR0FBRyxDQUFDLGlFQUFpRUo7Z0JBQ2pGO2dCQUNBLE1BQU0sSUFBSUYsaUNBQWlDLENBQUMsbURBQW1ELEVBQUVFLEtBQUssb0JBQW9CLENBQUM7WUFDL0gsT0FDSztnQkFDRCxJQUFJWixVQUFVQyxLQUFLLEVBQUU7b0JBQ2pCLElBQUk7d0JBQ0EsTUFBTTJCLFNBQVMsTUFBTTFCLFdBQVdtQixTQUFTLENBQUNDLEtBQUssQ0FBQ08sS0FBSzt3QkFDckRkLFFBQVFDLEdBQUcsQ0FBQyxvREFBb0RjLEtBQUtDLFNBQVMsQ0FBQ0gsUUFBUSxNQUFNO29CQUNqRyxFQUNBLE9BQU9JLEdBQUc7d0JBQ05qQixRQUFRa0IsSUFBSSxDQUFDLHdFQUF3RUQ7b0JBQ3pGO2dCQUNKO2dCQUNBLDhEQUE4RDtnQkFDOUQsaUVBQWlFO2dCQUNqRSxxRUFBcUU7Z0JBQ3JFLGlEQUFpRDtnQkFDakRqQixRQUFRa0IsSUFBSSxDQUFDO2dCQUNiLE9BQU8sTUFBTW5CO1lBQ2pCO1FBQ0o7SUFDSjtBQUNKLEVBQ0EsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL2xvY2tzLmpzPzJjMmEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3VwcG9ydHNMb2NhbFN0b3JhZ2UgfSBmcm9tICcuL2hlbHBlcnMnO1xuLyoqXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjb25zdCBpbnRlcm5hbHMgPSB7XG4gICAgLyoqXG4gICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIGRlYnVnOiAhIShnbG9iYWxUaGlzICYmXG4gICAgICAgIHN1cHBvcnRzTG9jYWxTdG9yYWdlKCkgJiZcbiAgICAgICAgZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UgJiZcbiAgICAgICAgZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3VwYWJhc2UuZ290cnVlLWpzLmxvY2tzLmRlYnVnJykgPT09ICd0cnVlJyksXG59O1xuLyoqXG4gKiBBbiBlcnJvciB0aHJvd24gd2hlbiBhIGxvY2sgY2Fubm90IGJlIGFjcXVpcmVkIGFmdGVyIHNvbWUgYW1vdW50IG9mIHRpbWUuXG4gKlxuICogVXNlIHRoZSB7QGxpbmsgI2lzQWNxdWlyZVRpbWVvdXR9IHByb3BlcnR5IGluc3RlYWQgb2YgY2hlY2tpbmcgd2l0aCBgaW5zdGFuY2VvZmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2NrQWNxdWlyZVRpbWVvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLmlzQWNxdWlyZVRpbWVvdXQgPSB0cnVlO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JMb2NrQWNxdWlyZVRpbWVvdXRFcnJvciBleHRlbmRzIExvY2tBY3F1aXJlVGltZW91dEVycm9yIHtcbn1cbi8qKlxuICogSW1wbGVtZW50cyBhIGdsb2JhbCBleGNsdXNpdmUgbG9jayB1c2luZyB0aGUgTmF2aWdhdG9yIExvY2tNYW5hZ2VyIEFQSS4gSXRcbiAqIGlzIGF2YWlsYWJsZSBvbiBhbGwgYnJvd3NlcnMgcmVsZWFzZWQgYWZ0ZXIgMjAyMi0wMy0xNSB3aXRoIFNhZmFyaSBiZWluZyB0aGVcbiAqIGxhc3Qgb25lIHRvIHJlbGVhc2Ugc3VwcG9ydC4gSWYgdGhlIEFQSSBpcyBub3QgYXZhaWxhYmxlLCB0aGlzIGZ1bmN0aW9uIHdpbGxcbiAqIHRocm93LiBNYWtlIHN1cmUgeW91IGNoZWNrIGF2YWlsYWJsaWxpdHkgYmVmb3JlIGNvbmZpZ3VyaW5nIHtAbGlua1xuICogR29UcnVlQ2xpZW50fS5cbiAqXG4gKiBZb3UgY2FuIHR1cm4gb24gZGVidWdnaW5nIGJ5IHNldHRpbmcgdGhlIGBzdXBhYmFzZS5nb3RydWUtanMubG9ja3MuZGVidWdgXG4gKiBsb2NhbCBzdG9yYWdlIGl0ZW0gdG8gYHRydWVgLlxuICpcbiAqIEludGVybmFsczpcbiAqXG4gKiBTaW5jZSB0aGUgTG9ja01hbmFnZXIgQVBJIGRvZXMgbm90IHByZXNlcnZlIHN0YWNrIHRyYWNlcyBmb3IgdGhlIGFzeW5jXG4gKiBmdW5jdGlvbiBwYXNzZWQgaW4gdGhlIGByZXF1ZXN0YCBtZXRob2QsIGEgdHJpY2sgaXMgdXNlZCB3aGVyZSBhY3F1aXJpbmcgdGhlXG4gKiBsb2NrIHJlbGVhc2VzIGEgcHJldmlvdXNseSBzdGFydGVkIHByb21pc2UgdG8gcnVuIHRoZSBvcGVyYXRpb24gaW4gdGhlIGBmbmBcbiAqIGZ1bmN0aW9uLiBUaGUgbG9jayB3YWl0cyBmb3IgdGhhdCBwcm9taXNlIHRvIGZpbmlzaCAod2l0aCBvciB3aXRob3V0IGVycm9yKSxcbiAqIHdoaWxlIHRoZSBmdW5jdGlvbiB3aWxsIGZpbmFsbHkgd2FpdCBmb3IgdGhlIHJlc3VsdCBhbnl3YXkuXG4gKlxuICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgbG9jayB0byBiZSBhY3F1aXJlZC5cbiAqIEBwYXJhbSBhY3F1aXJlVGltZW91dCBJZiBuZWdhdGl2ZSwgbm8gdGltZW91dC4gSWYgMCBhbiBlcnJvciBpcyB0aHJvd24gaWZcbiAqICAgICAgICAgICAgICAgICAgICAgICB0aGUgbG9jayBjYW4ndCBiZSBhY3F1aXJlZCB3aXRob3V0IHdhaXRpbmcuIElmIHBvc2l0aXZlLCB0aGUgbG9jayBhY3F1aXJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgd2lsbCB0aW1lIG91dCBhZnRlciBzbyBtYW55IG1pbGxpc2Vjb25kcy4gQW4gZXJyb3IgaXNcbiAqICAgICAgICAgICAgICAgICAgICAgICBhIHRpbWVvdXQgaWYgaXQgaGFzIGBpc0FjcXVpcmVUaW1lb3V0YCBzZXQgdG8gdHJ1ZS5cbiAqIEBwYXJhbSBmbiBUaGUgb3BlcmF0aW9uIHRvIHJ1biBvbmNlIHRoZSBsb2NrIGlzIGFjcXVpcmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbmF2aWdhdG9yTG9jayhuYW1lLCBhY3F1aXJlVGltZW91dCwgZm4pIHtcbiAgICBpZiAoaW50ZXJuYWxzLmRlYnVnKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBuYXZpZ2F0b3JMb2NrOiBhY3F1aXJlIGxvY2snLCBuYW1lLCBhY3F1aXJlVGltZW91dCk7XG4gICAgfVxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBnbG9iYWxUaGlzLkFib3J0Q29udHJvbGxlcigpO1xuICAgIGlmIChhY3F1aXJlVGltZW91dCA+IDApIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgICAgICAgIGlmIChpbnRlcm5hbHMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQHN1cGFiYXNlL2dvdHJ1ZS1qczogbmF2aWdhdG9yTG9jayBhY3F1aXJlIHRpbWVkIG91dCcsIG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBhY3F1aXJlVGltZW91dCk7XG4gICAgfVxuICAgIC8vIE1ETiBhcnRpY2xlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTG9ja01hbmFnZXIvcmVxdWVzdFxuICAgIHJldHVybiBhd2FpdCBnbG9iYWxUaGlzLm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KG5hbWUsIGFjcXVpcmVUaW1lb3V0ID09PSAwXG4gICAgICAgID8ge1xuICAgICAgICAgICAgbW9kZTogJ2V4Y2x1c2l2ZScsXG4gICAgICAgICAgICBpZkF2YWlsYWJsZTogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIG1vZGU6ICdleGNsdXNpdmUnLFxuICAgICAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9LCBhc3luYyAobG9jaykgPT4ge1xuICAgICAgICBpZiAobG9jaykge1xuICAgICAgICAgICAgaWYgKGludGVybmFscy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBuYXZpZ2F0b3JMb2NrOiBhY3F1aXJlZCcsIG5hbWUsIGxvY2submFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBmbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKGludGVybmFscy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQHN1cGFiYXNlL2dvdHJ1ZS1qczogbmF2aWdhdG9yTG9jazogcmVsZWFzZWQnLCBuYW1lLCBsb2NrLm5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChhY3F1aXJlVGltZW91dCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbHMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0BzdXBhYmFzZS9nb3RydWUtanM6IG5hdmlnYXRvckxvY2s6IG5vdCBpbW1lZGlhdGVseSBhdmFpbGFibGUnLCBuYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5hdmlnYXRvckxvY2tBY3F1aXJlVGltZW91dEVycm9yKGBBY3F1aXJpbmcgYW4gZXhjbHVzaXZlIE5hdmlnYXRvciBMb2NrTWFuYWdlciBsb2NrIFwiJHtuYW1lfVwiIGltbWVkaWF0ZWx5IGZhaWxlZGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGludGVybmFscy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2xvYmFsVGhpcy5uYXZpZ2F0b3IubG9ja3MucXVlcnkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBOYXZpZ2F0b3IgTG9ja01hbmFnZXIgc3RhdGUnLCBKU09OLnN0cmluZ2lmeShyZXN1bHQsIG51bGwsICcgICcpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBFcnJvciB3aGVuIHF1ZXJ5aW5nIE5hdmlnYXRvciBMb2NrTWFuYWdlciBzdGF0ZScsIGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEJyb3dzZXIgaXMgbm90IGZvbGxvd2luZyB0aGUgTmF2aWdhdG9yIExvY2tNYW5hZ2VyIHNwZWMsIGl0XG4gICAgICAgICAgICAgICAgLy8gcmV0dXJuZWQgYSBudWxsIGxvY2sgd2hlbiB3ZSBkaWRuJ3QgdXNlIGlmQXZhaWxhYmxlLiBTbyB3ZSBjYW5cbiAgICAgICAgICAgICAgICAvLyBwcmV0ZW5kIHRoZSBsb2NrIGlzIGFjcXVpcmVkIGluIHRoZSBuYW1lIG9mIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgICAgICAvLyBhbmQgdXNlciBleHBlcmllbmNlIGFuZCBqdXN0IHJ1biB0aGUgZnVuY3Rpb24uXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBOYXZpZ2F0b3IgTG9ja01hbmFnZXIgcmV0dXJuZWQgYSBudWxsIGxvY2sgd2hlbiB1c2luZyAjcmVxdWVzdCB3aXRob3V0IGlmQXZhaWxhYmxlIHNldCB0byB0cnVlLCBpdCBhcHBlYXJzIHRoaXMgYnJvd3NlciBpcyBub3QgZm9sbG93aW5nIHRoZSBMb2NrTWFuYWdlciBzcGVjIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9Mb2NrTWFuYWdlci9yZXF1ZXN0Jyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGZuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvY2tzLmpzLm1hcCJdLCJuYW1lcyI6WyJzdXBwb3J0c0xvY2FsU3RvcmFnZSIsImludGVybmFscyIsImRlYnVnIiwiZ2xvYmFsVGhpcyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJMb2NrQWNxdWlyZVRpbWVvdXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwiaXNBY3F1aXJlVGltZW91dCIsIk5hdmlnYXRvckxvY2tBY3F1aXJlVGltZW91dEVycm9yIiwibmF2aWdhdG9yTG9jayIsIm5hbWUiLCJhY3F1aXJlVGltZW91dCIsImZuIiwiY29uc29sZSIsImxvZyIsImFib3J0Q29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsInNldFRpbWVvdXQiLCJhYm9ydCIsIm5hdmlnYXRvciIsImxvY2tzIiwicmVxdWVzdCIsIm1vZGUiLCJpZkF2YWlsYWJsZSIsInNpZ25hbCIsImxvY2siLCJyZXN1bHQiLCJxdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiLCJlIiwid2FybiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/locks.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/polyfills.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/polyfills.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ polyfillGlobalThis: () => (/* binding */ polyfillGlobalThis)\n/* harmony export */ });\n/**\n * https://mathiasbynens.be/notes/globalthis\n */ function polyfillGlobalThis() {\n if (typeof globalThis === \"object\") return;\n try {\n Object.defineProperty(Object.prototype, \"__magic__\", {\n get: function() {\n return this;\n },\n configurable: true\n });\n // @ts-expect-error 'Allow access to magic'\n __magic__.globalThis = __magic__;\n // @ts-expect-error 'Allow access to magic'\n delete Object.prototype.__magic__;\n } catch (e) {\n if (typeof self !== \"undefined\") {\n // @ts-expect-error 'Allow access to globals'\n self.globalThis = self;\n }\n }\n} //# sourceMappingURL=polyfills.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvcG9seWZpbGxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Q0FFQyxHQUNNLFNBQVNBO0lBQ1osSUFBSSxPQUFPQyxlQUFlLFVBQ3RCO0lBQ0osSUFBSTtRQUNBQyxPQUFPQyxjQUFjLENBQUNELE9BQU9FLFNBQVMsRUFBRSxhQUFhO1lBQ2pEQyxLQUFLO2dCQUNELE9BQU8sSUFBSTtZQUNmO1lBQ0FDLGNBQWM7UUFDbEI7UUFDQSwyQ0FBMkM7UUFDM0NDLFVBQVVOLFVBQVUsR0FBR007UUFDdkIsMkNBQTJDO1FBQzNDLE9BQU9MLE9BQU9FLFNBQVMsQ0FBQ0csU0FBUztJQUNyQyxFQUNBLE9BQU9DLEdBQUc7UUFDTixJQUFJLE9BQU9DLFNBQVMsYUFBYTtZQUM3Qiw2Q0FBNkM7WUFDN0NBLEtBQUtSLFVBQVUsR0FBR1E7UUFDdEI7SUFDSjtBQUNKLEVBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL3BvbHlmaWxscy5qcz9mNzAwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2dsb2JhbHRoaXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvbHlmaWxsR2xvYmFsVGhpcygpIHtcbiAgICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICdfX21hZ2ljX18nLCB7XG4gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yICdBbGxvdyBhY2Nlc3MgdG8gbWFnaWMnXG4gICAgICAgIF9fbWFnaWNfXy5nbG9iYWxUaGlzID0gX19tYWdpY19fO1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yICdBbGxvdyBhY2Nlc3MgdG8gbWFnaWMnXG4gICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlLl9fbWFnaWNfXztcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAnQWxsb3cgYWNjZXNzIHRvIGdsb2JhbHMnXG4gICAgICAgICAgICBzZWxmLmdsb2JhbFRoaXMgPSBzZWxmO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cG9seWZpbGxzLmpzLm1hcCJdLCJuYW1lcyI6WyJwb2x5ZmlsbEdsb2JhbFRoaXMiLCJnbG9iYWxUaGlzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJwcm90b3R5cGUiLCJnZXQiLCJjb25maWd1cmFibGUiLCJfX21hZ2ljX18iLCJlIiwic2VsZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/polyfills.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/types.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/types.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n //# sourceMappingURL=types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvdHlwZXMuanMiLCJtYXBwaW5ncyI6IjtBQUFVLENBQ1YsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9nb3RydWUtanMvZGlzdC9tb2R1bGUvbGliL3R5cGVzLmpzPzY2MTciXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHlwZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/types.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/version.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/gotrue-js/dist/module/lib/version.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\n// Generated by genversion.\nconst version = \"0.0.0\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkJBQTJCO0FBQ3BCLE1BQU1BLFVBQVUsUUFBUSxDQUMvQixtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2dvdHJ1ZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcz80NzI2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlZCBieSBnZW52ZXJzaW9uLlxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSAnMC4wLjAnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmVyc2lvbi5qcy5tYXAiXSwibmFtZXMiOlsidmVyc2lvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/gotrue-js/dist/module/lib/version.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/node-fetch/lib/index.js": +/*!********************************************************!*\ + !*** ./node_modules/@supabase/node-fetch/lib/index.js ***! + \********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nfunction _interopDefault(ex) {\n return ex && typeof ex === \"object\" && \"default\" in ex ? ex[\"default\"] : ex;\n}\nvar Stream = _interopDefault(__webpack_require__(/*! stream */ \"stream\"));\nvar http = _interopDefault(__webpack_require__(/*! http */ \"http\"));\nvar Url = _interopDefault(__webpack_require__(/*! url */ \"url\"));\nvar whatwgUrl = _interopDefault(__webpack_require__(/*! whatwg-url */ \"(rsc)/./node_modules/whatwg-url/lib/public-api.js\"));\nvar https = _interopDefault(__webpack_require__(/*! https */ \"https\"));\nvar zlib = _interopDefault(__webpack_require__(/*! zlib */ \"zlib\"));\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\nconst BUFFER = Symbol(\"buffer\");\nconst TYPE = Symbol(\"type\");\nclass Blob {\n constructor(){\n this[TYPE] = \"\";\n const blobParts = arguments[0];\n const options = arguments[1];\n const buffers = [];\n let size = 0;\n if (blobParts) {\n const a = blobParts;\n const length = Number(a.length);\n for(let i = 0; i < length; i++){\n const element = a[i];\n let buffer;\n if (element instanceof Buffer) {\n buffer = element;\n } else if (ArrayBuffer.isView(element)) {\n buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n } else if (element instanceof ArrayBuffer) {\n buffer = Buffer.from(element);\n } else if (element instanceof Blob) {\n buffer = element[BUFFER];\n } else {\n buffer = Buffer.from(typeof element === \"string\" ? element : String(element));\n }\n size += buffer.length;\n buffers.push(buffer);\n }\n }\n this[BUFFER] = Buffer.concat(buffers);\n let type = options && options.type !== undefined && String(options.type).toLowerCase();\n if (type && !/[^\\u0020-\\u007E]/.test(type)) {\n this[TYPE] = type;\n }\n }\n get size() {\n return this[BUFFER].length;\n }\n get type() {\n return this[TYPE];\n }\n text() {\n return Promise.resolve(this[BUFFER].toString());\n }\n arrayBuffer() {\n const buf = this[BUFFER];\n const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n return Promise.resolve(ab);\n }\n stream() {\n const readable = new Readable();\n readable._read = function() {};\n readable.push(this[BUFFER]);\n readable.push(null);\n return readable;\n }\n toString() {\n return \"[object Blob]\";\n }\n slice() {\n const size = this.size;\n const start = arguments[0];\n const end = arguments[1];\n let relativeStart, relativeEnd;\n if (start === undefined) {\n relativeStart = 0;\n } else if (start < 0) {\n relativeStart = Math.max(size + start, 0);\n } else {\n relativeStart = Math.min(start, size);\n }\n if (end === undefined) {\n relativeEnd = size;\n } else if (end < 0) {\n relativeEnd = Math.max(size + end, 0);\n } else {\n relativeEnd = Math.min(end, size);\n }\n const span = Math.max(relativeEnd - relativeStart, 0);\n const buffer = this[BUFFER];\n const slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n const blob = new Blob([], {\n type: arguments[2]\n });\n blob[BUFFER] = slicedBuffer;\n return blob;\n }\n}\nObject.defineProperties(Blob.prototype, {\n size: {\n enumerable: true\n },\n type: {\n enumerable: true\n },\n slice: {\n enumerable: true\n }\n});\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n value: \"Blob\",\n writable: false,\n enumerable: false,\n configurable: true\n});\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */ /**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */ function FetchError(message, type, systemError) {\n Error.call(this, message);\n this.message = message;\n this.type = type;\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = \"FetchError\";\nlet convert;\nconst INTERNALS = Symbol(\"Body internals\");\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */ function Body(body) {\n var _this = this;\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$size = _ref.size;\n let size = _ref$size === undefined ? 0 : _ref$size;\n var _ref$timeout = _ref.timeout;\n let timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n if (body == null) {\n // body is undefined or null\n body = null;\n } else if (isURLSearchParams(body)) {\n // body is a URLSearchParams\n body = Buffer.from(body.toString());\n } else if (isBlob(body)) ;\n else if (Buffer.isBuffer(body)) ;\n else if (Object.prototype.toString.call(body) === \"[object ArrayBuffer]\") {\n // body is ArrayBuffer\n body = Buffer.from(body);\n } else if (ArrayBuffer.isView(body)) {\n // body is ArrayBufferView\n body = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n } else if (body instanceof Stream) ;\n else {\n // none of the above\n // coerce to string then buffer\n body = Buffer.from(String(body));\n }\n this[INTERNALS] = {\n body,\n disturbed: false,\n error: null\n };\n this.size = size;\n this.timeout = timeout;\n if (body instanceof Stream) {\n body.on(\"error\", function(err) {\n const error = err.name === \"AbortError\" ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, \"system\", err);\n _this[INTERNALS].error = error;\n });\n }\n}\nBody.prototype = {\n get body () {\n return this[INTERNALS].body;\n },\n get bodyUsed () {\n return this[INTERNALS].disturbed;\n },\n /**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */ arrayBuffer () {\n return consumeBody.call(this).then(function(buf) {\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n });\n },\n /**\n * Return raw response as Blob\n *\n * @return Promise\n */ blob () {\n let ct = this.headers && this.headers.get(\"content-type\") || \"\";\n return consumeBody.call(this).then(function(buf) {\n return Object.assign(// Prevent copying\n new Blob([], {\n type: ct.toLowerCase()\n }), {\n [BUFFER]: buf\n });\n });\n },\n /**\n * Decode response as json\n *\n * @return Promise\n */ json () {\n var _this2 = this;\n return consumeBody.call(this).then(function(buffer) {\n try {\n return JSON.parse(buffer.toString());\n } catch (err) {\n return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, \"invalid-json\"));\n }\n });\n },\n /**\n * Decode response as text\n *\n * @return Promise\n */ text () {\n return consumeBody.call(this).then(function(buffer) {\n return buffer.toString();\n });\n },\n /**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */ buffer () {\n return consumeBody.call(this);\n },\n /**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */ textConverted () {\n var _this3 = this;\n return consumeBody.call(this).then(function(buffer) {\n return convertBody(buffer, _this3.headers);\n });\n }\n};\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n body: {\n enumerable: true\n },\n bodyUsed: {\n enumerable: true\n },\n arrayBuffer: {\n enumerable: true\n },\n blob: {\n enumerable: true\n },\n json: {\n enumerable: true\n },\n text: {\n enumerable: true\n }\n});\nBody.mixIn = function(proto) {\n for (const name of Object.getOwnPropertyNames(Body.prototype)){\n // istanbul ignore else: future proof\n if (!(name in proto)) {\n const desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n Object.defineProperty(proto, name, desc);\n }\n }\n};\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */ function consumeBody() {\n var _this4 = this;\n if (this[INTERNALS].disturbed) {\n return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n }\n this[INTERNALS].disturbed = true;\n if (this[INTERNALS].error) {\n return Body.Promise.reject(this[INTERNALS].error);\n }\n let body = this.body;\n // body is null\n if (body === null) {\n return Body.Promise.resolve(Buffer.alloc(0));\n }\n // body is blob\n if (isBlob(body)) {\n body = body.stream();\n }\n // body is buffer\n if (Buffer.isBuffer(body)) {\n return Body.Promise.resolve(body);\n }\n // istanbul ignore if: should never happen\n if (!(body instanceof Stream)) {\n return Body.Promise.resolve(Buffer.alloc(0));\n }\n // body is stream\n // get ready to actually consume the body\n let accum = [];\n let accumBytes = 0;\n let abort = false;\n return new Body.Promise(function(resolve, reject) {\n let resTimeout;\n // allow timeout on slow response body\n if (_this4.timeout) {\n resTimeout = setTimeout(function() {\n abort = true;\n reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, \"body-timeout\"));\n }, _this4.timeout);\n }\n // handle stream errors\n body.on(\"error\", function(err) {\n if (err.name === \"AbortError\") {\n // if the request was aborted, reject with this Error\n abort = true;\n reject(err);\n } else {\n // other errors, such as incorrect content-encoding\n reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, \"system\", err));\n }\n });\n body.on(\"data\", function(chunk) {\n if (abort || chunk === null) {\n return;\n }\n if (_this4.size && accumBytes + chunk.length > _this4.size) {\n abort = true;\n reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, \"max-size\"));\n return;\n }\n accumBytes += chunk.length;\n accum.push(chunk);\n });\n body.on(\"end\", function() {\n if (abort) {\n return;\n }\n clearTimeout(resTimeout);\n try {\n resolve(Buffer.concat(accum, accumBytes));\n } catch (err) {\n // handle streams that have accumulated too much data (issue #414)\n reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, \"system\", err));\n }\n });\n });\n}\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */ function convertBody(buffer, headers) {\n {\n throw new Error(\"The package `encoding` must be installed to use the textConverted() function\");\n }\n const ct = headers.get(\"content-type\");\n let charset = \"utf-8\";\n let res, str;\n // header\n if (ct) {\n res = /charset=([^;]*)/i.exec(ct);\n }\n // no charset in content type, peek at response body for at most 1024 bytes\n str = buffer.slice(0, 1024).toString();\n // html5\n if (!res && str) {\n res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n this[MAP] = Object.create(null);\n if (init instanceof Headers) {\n const rawHeaders = init.raw();\n const headerNames = Object.keys(rawHeaders);\n for (const headerName of headerNames){\n for (const value of rawHeaders[headerName]){\n this.append(headerName, value);\n }\n }\n return;\n }\n // We don't worry about converting prop to ByteString here as append()\n // will handle it.\n if (init == null) ;\n else if (typeof init === \"object\") {\n const method = init[Symbol.iterator];\n if (method != null) {\n if (typeof method !== \"function\") {\n throw new TypeError(\"Header pairs must be iterable\");\n }\n // sequence>\n // Note: per spec we have to first exhaust the lists then process them\n const pairs = [];\n for (const pair of init){\n if (typeof pair !== \"object\" || typeof pair[Symbol.iterator] !== \"function\") {\n throw new TypeError(\"Each header pair must be iterable\");\n }\n pairs.push(Array.from(pair));\n }\n for (const pair of pairs){\n if (pair.length !== 2) {\n throw new TypeError(\"Each header pair must be a name/value tuple\");\n }\n this.append(pair[0], pair[1]);\n }\n } else {\n // record\n for (const key of Object.keys(init)){\n const value = init[key];\n this.append(key, value);\n }\n }\n } else {\n throw new TypeError(\"Provided initializer must be an object\");\n }\n }\n /**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */ get(name) {\n name = `${name}`;\n validateName(name);\n const key = find(this[MAP], name);\n if (key === undefined) {\n return null;\n }\n return this[MAP][key].join(\", \");\n }\n /**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */ forEach(callback) {\n let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n let pairs = getHeaders(this);\n let i = 0;\n while(i < pairs.length){\n var _pairs$i = pairs[i];\n const name = _pairs$i[0], value = _pairs$i[1];\n callback.call(thisArg, value, name, this);\n pairs = getHeaders(this);\n i++;\n }\n }\n /**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */ set(name, value) {\n name = `${name}`;\n value = `${value}`;\n validateName(name);\n validateValue(value);\n const key = find(this[MAP], name);\n this[MAP][key !== undefined ? key : name] = [\n value\n ];\n }\n /**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */ append(name, value) {\n name = `${name}`;\n value = `${value}`;\n validateName(name);\n validateValue(value);\n const key = find(this[MAP], name);\n if (key !== undefined) {\n this[MAP][key].push(value);\n } else {\n this[MAP][name] = [\n value\n ];\n }\n }\n /**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */ has(name) {\n name = `${name}`;\n validateName(name);\n return find(this[MAP], name) !== undefined;\n }\n /**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */ delete(name) {\n name = `${name}`;\n validateName(name);\n const key = find(this[MAP], name);\n if (key !== undefined) {\n delete this[MAP][key];\n }\n }\n /**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */ raw() {\n return this[MAP];\n }\n /**\n * Get an iterator on keys.\n *\n * @return Iterator\n */ keys() {\n return createHeadersIterator(this, \"key\");\n }\n /**\n * Get an iterator on values.\n *\n * @return Iterator\n */ values() {\n return createHeadersIterator(this, \"value\");\n }\n /**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */ [Symbol.iterator]() {\n return createHeadersIterator(this, \"key+value\");\n }\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n value: \"Headers\",\n writable: false,\n enumerable: false,\n configurable: true\n});\nObject.defineProperties(Headers.prototype, {\n get: {\n enumerable: true\n },\n forEach: {\n enumerable: true\n },\n set: {\n enumerable: true\n },\n append: {\n enumerable: true\n },\n has: {\n enumerable: true\n },\n delete: {\n enumerable: true\n },\n keys: {\n enumerable: true\n },\n values: {\n enumerable: true\n },\n entries: {\n enumerable: true\n }\n});\nfunction getHeaders(headers) {\n let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"key+value\";\n const keys = Object.keys(headers[MAP]).sort();\n return keys.map(kind === \"key\" ? function(k) {\n return k.toLowerCase();\n } : kind === \"value\" ? function(k) {\n return headers[MAP][k].join(\", \");\n } : function(k) {\n return [\n k.toLowerCase(),\n headers[MAP][k].join(\", \")\n ];\n });\n}\nconst INTERNAL = Symbol(\"internal\");\nfunction createHeadersIterator(target, kind) {\n const iterator = Object.create(HeadersIteratorPrototype);\n iterator[INTERNAL] = {\n target,\n kind,\n index: 0\n };\n return iterator;\n}\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n next () {\n // istanbul ignore if\n if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n throw new TypeError(\"Value of `this` is not a HeadersIterator\");\n }\n var _INTERNAL = this[INTERNAL];\n const target = _INTERNAL.target, kind = _INTERNAL.kind, index = _INTERNAL.index;\n const values = getHeaders(target, kind);\n const len = values.length;\n if (index >= len) {\n return {\n value: undefined,\n done: true\n };\n }\n this[INTERNAL].index = index + 1;\n return {\n value: values[index],\n done: false\n };\n }\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n value: \"HeadersIterator\",\n writable: false,\n enumerable: false,\n configurable: true\n});\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */ function exportNodeCompatibleHeaders(headers) {\n const obj = Object.assign({\n __proto__: null\n }, headers[MAP]);\n // http.request() only supports string as Host header. This hack makes\n // specifying custom Host header possible.\n const hostHeaderKey = find(headers[MAP], \"Host\");\n if (hostHeaderKey !== undefined) {\n obj[hostHeaderKey] = obj[hostHeaderKey][0];\n }\n return obj;\n}\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */ function createHeadersLenient(obj) {\n const headers = new Headers();\n for (const name of Object.keys(obj)){\n if (invalidTokenRegex.test(name)) {\n continue;\n }\n if (Array.isArray(obj[name])) {\n for (const val of obj[name]){\n if (invalidHeaderCharRegex.test(val)) {\n continue;\n }\n if (headers[MAP][name] === undefined) {\n headers[MAP][name] = [\n val\n ];\n } else {\n headers[MAP][name].push(val);\n }\n }\n } else if (!invalidHeaderCharRegex.test(obj[name])) {\n headers[MAP][name] = [\n obj[name]\n ];\n }\n }\n return headers;\n}\nconst INTERNALS$1 = Symbol(\"Response internals\");\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */ class Response {\n constructor(){\n let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Body.call(this, body, opts);\n const status = opts.status || 200;\n const headers = new Headers(opts.headers);\n if (body != null && !headers.has(\"Content-Type\")) {\n const contentType = extractContentType(body);\n if (contentType) {\n headers.append(\"Content-Type\", contentType);\n }\n }\n this[INTERNALS$1] = {\n url: opts.url,\n status,\n statusText: opts.statusText || STATUS_CODES[status],\n headers,\n counter: opts.counter\n };\n }\n get url() {\n return this[INTERNALS$1].url || \"\";\n }\n get status() {\n return this[INTERNALS$1].status;\n }\n /**\n * Convenience property representing if the request ended normally\n */ get ok() {\n return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n }\n get redirected() {\n return this[INTERNALS$1].counter > 0;\n }\n get statusText() {\n return this[INTERNALS$1].statusText;\n }\n get headers() {\n return this[INTERNALS$1].headers;\n }\n /**\n * Clone this response\n *\n * @return Response\n */ clone() {\n return new Response(clone(this), {\n url: this.url,\n status: this.status,\n statusText: this.statusText,\n headers: this.headers,\n ok: this.ok,\n redirected: this.redirected\n });\n }\n}\nBody.mixIn(Response.prototype);\nObject.defineProperties(Response.prototype, {\n url: {\n enumerable: true\n },\n status: {\n enumerable: true\n },\n ok: {\n enumerable: true\n },\n redirected: {\n enumerable: true\n },\n statusText: {\n enumerable: true\n },\n headers: {\n enumerable: true\n },\n clone: {\n enumerable: true\n }\n});\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n value: \"Response\",\n writable: false,\n enumerable: false,\n configurable: true\n});\nconst INTERNALS$2 = Symbol(\"Request internals\");\nconst URL = Url.URL || whatwgUrl.URL;\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */ function parseURL(urlStr) {\n /*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */ if (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n urlStr = new URL(urlStr).toString();\n }\n // Fallback to old implementation for arbitrary URLs\n return parse_url(urlStr);\n}\nconst streamDestructionSupported = \"destroy\" in Stream.Readable.prototype;\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */ function isRequest(input) {\n return typeof input === \"object\" && typeof input[INTERNALS$2] === \"object\";\n}\nfunction isAbortSignal(signal) {\n const proto = signal && typeof signal === \"object\" && Object.getPrototypeOf(signal);\n return !!(proto && proto.constructor.name === \"AbortSignal\");\n}\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */ class Request {\n constructor(input){\n let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let parsedURL;\n // normalize input\n if (!isRequest(input)) {\n if (input && input.href) {\n // in order to support Node.js' Url objects; though WHATWG's URL objects\n // will fall into this branch also (since their `toString()` will return\n // `href` property anyway)\n parsedURL = parseURL(input.href);\n } else {\n // coerce input to a string before attempting to parse\n parsedURL = parseURL(`${input}`);\n }\n input = {};\n } else {\n parsedURL = parseURL(input.url);\n }\n let method = init.method || input.method || \"GET\";\n method = method.toUpperCase();\n if ((init.body != null || isRequest(input) && input.body !== null) && (method === \"GET\" || method === \"HEAD\")) {\n throw new TypeError(\"Request with GET/HEAD method cannot have body\");\n }\n let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n Body.call(this, inputBody, {\n timeout: init.timeout || input.timeout || 0,\n size: init.size || input.size || 0\n });\n const headers = new Headers(init.headers || input.headers || {});\n if (inputBody != null && !headers.has(\"Content-Type\")) {\n const contentType = extractContentType(inputBody);\n if (contentType) {\n headers.append(\"Content-Type\", contentType);\n }\n }\n let signal = isRequest(input) ? input.signal : null;\n if (\"signal\" in init) signal = init.signal;\n if (signal != null && !isAbortSignal(signal)) {\n throw new TypeError(\"Expected signal to be an instanceof AbortSignal\");\n }\n this[INTERNALS$2] = {\n method,\n redirect: init.redirect || input.redirect || \"follow\",\n headers,\n parsedURL,\n signal\n };\n // node-fetch-only options\n this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n this.counter = init.counter || input.counter || 0;\n this.agent = init.agent || input.agent;\n }\n get method() {\n return this[INTERNALS$2].method;\n }\n get url() {\n return format_url(this[INTERNALS$2].parsedURL);\n }\n get headers() {\n return this[INTERNALS$2].headers;\n }\n get redirect() {\n return this[INTERNALS$2].redirect;\n }\n get signal() {\n return this[INTERNALS$2].signal;\n }\n /**\n * Clone this request\n *\n * @return Request\n */ clone() {\n return new Request(this);\n }\n}\nBody.mixIn(Request.prototype);\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n value: \"Request\",\n writable: false,\n enumerable: false,\n configurable: true\n});\nObject.defineProperties(Request.prototype, {\n method: {\n enumerable: true\n },\n url: {\n enumerable: true\n },\n headers: {\n enumerable: true\n },\n redirect: {\n enumerable: true\n },\n clone: {\n enumerable: true\n },\n signal: {\n enumerable: true\n }\n});\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */ function getNodeRequestOptions(request) {\n const parsedURL = request[INTERNALS$2].parsedURL;\n const headers = new Headers(request[INTERNALS$2].headers);\n // fetch step 1.3\n if (!headers.has(\"Accept\")) {\n headers.set(\"Accept\", \"*/*\");\n }\n // Basic fetch\n if (!parsedURL.protocol || !parsedURL.hostname) {\n throw new TypeError(\"Only absolute URLs are supported\");\n }\n if (!/^https?:$/.test(parsedURL.protocol)) {\n throw new TypeError(\"Only HTTP(S) protocols are supported\");\n }\n if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n throw new Error(\"Cancellation of streamed requests with AbortSignal is not supported in node < 8\");\n }\n // HTTP-network-or-cache fetch steps 2.4-2.7\n let contentLengthValue = null;\n if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n contentLengthValue = \"0\";\n }\n if (request.body != null) {\n const totalBytes = getTotalBytes(request);\n if (typeof totalBytes === \"number\") {\n contentLengthValue = String(totalBytes);\n }\n }\n if (contentLengthValue) {\n headers.set(\"Content-Length\", contentLengthValue);\n }\n // HTTP-network-or-cache fetch step 2.11\n if (!headers.has(\"User-Agent\")) {\n headers.set(\"User-Agent\", \"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)\");\n }\n // HTTP-network-or-cache fetch step 2.15\n if (request.compress && !headers.has(\"Accept-Encoding\")) {\n headers.set(\"Accept-Encoding\", \"gzip,deflate\");\n }\n let agent = request.agent;\n if (typeof agent === \"function\") {\n agent = agent(parsedURL);\n }\n if (!headers.has(\"Connection\") && !agent) {\n headers.set(\"Connection\", \"close\");\n }\n // HTTP-network fetch step 4.2\n // chunked encoding is handled by Node.js\n return Object.assign({}, parsedURL, {\n method: request.method,\n headers: exportNodeCompatibleHeaders(headers),\n agent\n });\n}\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */ /**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */ function AbortError(message) {\n Error.call(this, message);\n this.type = \"aborted\";\n this.message = message;\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = \"AbortError\";\nconst URL$1 = Url.URL || whatwgUrl.URL;\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n const orig = new URL$1(original).hostname;\n const dest = new URL$1(destination).hostname;\n return orig === dest || orig[orig.length - dest.length - 1] === \".\" && orig.endsWith(dest);\n};\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */ const isSameProtocol = function isSameProtocol(destination, original) {\n const orig = new URL$1(original).protocol;\n const dest = new URL$1(destination).protocol;\n return orig === dest;\n};\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */ function fetch(url, opts) {\n // allow custom promise\n if (!fetch.Promise) {\n throw new Error(\"native promise missing, set fetch.Promise to your favorite alternative\");\n }\n Body.Promise = fetch.Promise;\n // wrap http.request into fetch\n return new fetch.Promise(function(resolve, reject) {\n // build request object\n const request = new Request(url, opts);\n const options = getNodeRequestOptions(request);\n const send = (options.protocol === \"https:\" ? https : http).request;\n const signal = request.signal;\n let response = null;\n const abort = function abort() {\n let error = new AbortError(\"The user aborted a request.\");\n reject(error);\n if (request.body && request.body instanceof Stream.Readable) {\n destroyStream(request.body, error);\n }\n if (!response || !response.body) return;\n response.body.emit(\"error\", error);\n };\n if (signal && signal.aborted) {\n abort();\n return;\n }\n const abortAndFinalize = function abortAndFinalize() {\n abort();\n finalize();\n };\n // send request\n const req = send(options);\n let reqTimeout;\n if (signal) {\n signal.addEventListener(\"abort\", abortAndFinalize);\n }\n function finalize() {\n req.abort();\n if (signal) signal.removeEventListener(\"abort\", abortAndFinalize);\n clearTimeout(reqTimeout);\n }\n if (request.timeout) {\n req.once(\"socket\", function(socket) {\n reqTimeout = setTimeout(function() {\n reject(new FetchError(`network timeout at: ${request.url}`, \"request-timeout\"));\n finalize();\n }, request.timeout);\n });\n }\n req.on(\"error\", function(err) {\n reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, \"system\", err));\n if (response && response.body) {\n destroyStream(response.body, err);\n }\n finalize();\n });\n fixResponseChunkedTransferBadEnding(req, function(err) {\n if (signal && signal.aborted) {\n return;\n }\n if (response && response.body) {\n destroyStream(response.body, err);\n }\n });\n /* c8 ignore next 18 */ if (parseInt(process.version.substring(1)) < 14) {\n // Before Node.js 14, pipeline() does not fully support async iterators and does not always\n // properly handle when the socket close/end events are out of order.\n req.on(\"socket\", function(s) {\n s.addListener(\"close\", function(hadError) {\n // if a data listener is still present we didn't end cleanly\n const hasDataListener = s.listenerCount(\"data\") > 0;\n // if end happened before close but the socket didn't emit an error, do it now\n if (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n const err = new Error(\"Premature close\");\n err.code = \"ERR_STREAM_PREMATURE_CLOSE\";\n response.body.emit(\"error\", err);\n }\n });\n });\n }\n req.on(\"response\", function(res) {\n clearTimeout(reqTimeout);\n const headers = createHeadersLenient(res.headers);\n // HTTP fetch step 5\n if (fetch.isRedirect(res.statusCode)) {\n // HTTP fetch step 5.2\n const location = headers.get(\"Location\");\n // HTTP fetch step 5.3\n let locationURL = null;\n try {\n locationURL = location === null ? null : new URL$1(location, request.url).toString();\n } catch (err) {\n // error here can only be invalid URL in Location: header\n // do not throw when options.redirect == manual\n // let the user extract the errorneous redirect URL\n if (request.redirect !== \"manual\") {\n reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, \"invalid-redirect\"));\n finalize();\n return;\n }\n }\n // HTTP fetch step 5.5\n switch(request.redirect){\n case \"error\":\n reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, \"no-redirect\"));\n finalize();\n return;\n case \"manual\":\n // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n if (locationURL !== null) {\n // handle corrupted header\n try {\n headers.set(\"Location\", locationURL);\n } catch (err) {\n // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n reject(err);\n }\n }\n break;\n case \"follow\":\n // HTTP-redirect fetch step 2\n if (locationURL === null) {\n break;\n }\n // HTTP-redirect fetch step 5\n if (request.counter >= request.follow) {\n reject(new FetchError(`maximum redirect reached at: ${request.url}`, \"max-redirect\"));\n finalize();\n return;\n }\n // HTTP-redirect fetch step 6 (counter increment)\n // Create a new Request object.\n const requestOpts = {\n headers: new Headers(request.headers),\n follow: request.follow,\n counter: request.counter + 1,\n agent: request.agent,\n compress: request.compress,\n method: request.method,\n body: request.body,\n signal: request.signal,\n timeout: request.timeout,\n size: request.size\n };\n if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n for (const name of [\n \"authorization\",\n \"www-authenticate\",\n \"cookie\",\n \"cookie2\"\n ]){\n requestOpts.headers.delete(name);\n }\n }\n // HTTP-redirect fetch step 9\n if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n reject(new FetchError(\"Cannot follow redirect with body being a readable stream\", \"unsupported-redirect\"));\n finalize();\n return;\n }\n // HTTP-redirect fetch step 11\n if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === \"POST\") {\n requestOpts.method = \"GET\";\n requestOpts.body = undefined;\n requestOpts.headers.delete(\"content-length\");\n }\n // HTTP-redirect fetch step 15\n resolve(fetch(new Request(locationURL, requestOpts)));\n finalize();\n return;\n }\n }\n // prepare response\n res.once(\"end\", function() {\n if (signal) signal.removeEventListener(\"abort\", abortAndFinalize);\n });\n let body = res.pipe(new PassThrough$1());\n const response_options = {\n url: request.url,\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: headers,\n size: request.size,\n timeout: request.timeout,\n counter: request.counter\n };\n // HTTP-network fetch step 12.1.1.3\n const codings = headers.get(\"Content-Encoding\");\n // HTTP-network fetch step 12.1.1.4: handle content codings\n // in following scenarios we ignore compression support\n // 1. compression support is disabled\n // 2. HEAD request\n // 3. no Content-Encoding header\n // 4. no content response (204)\n // 5. content not modified response (304)\n if (!request.compress || request.method === \"HEAD\" || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n response = new Response(body, response_options);\n resolve(response);\n return;\n }\n // For Node v6+\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n const zlibOptions = {\n flush: zlib.Z_SYNC_FLUSH,\n finishFlush: zlib.Z_SYNC_FLUSH\n };\n // for gzip\n if (codings == \"gzip\" || codings == \"x-gzip\") {\n body = body.pipe(zlib.createGunzip(zlibOptions));\n response = new Response(body, response_options);\n resolve(response);\n return;\n }\n // for deflate\n if (codings == \"deflate\" || codings == \"x-deflate\") {\n // handle the infamous raw deflate response from old servers\n // a hack for old IIS and Apache servers\n const raw = res.pipe(new PassThrough$1());\n raw.once(\"data\", function(chunk) {\n // see http://stackoverflow.com/questions/37519828\n if ((chunk[0] & 0x0F) === 0x08) {\n body = body.pipe(zlib.createInflate());\n } else {\n body = body.pipe(zlib.createInflateRaw());\n }\n response = new Response(body, response_options);\n resolve(response);\n });\n raw.on(\"end\", function() {\n // some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n if (!response) {\n response = new Response(body, response_options);\n resolve(response);\n }\n });\n return;\n }\n // for br\n if (codings == \"br\" && typeof zlib.createBrotliDecompress === \"function\") {\n body = body.pipe(zlib.createBrotliDecompress());\n response = new Response(body, response_options);\n resolve(response);\n return;\n }\n // otherwise, use response as-is\n response = new Response(body, response_options);\n resolve(response);\n });\n writeToStream(req, request);\n });\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n let socket;\n request.on(\"socket\", function(s) {\n socket = s;\n });\n request.on(\"response\", function(response) {\n const headers = response.headers;\n if (headers[\"transfer-encoding\"] === \"chunked\" && !headers[\"content-length\"]) {\n response.once(\"close\", function(hadError) {\n // tests for socket presence, as in some situations the\n // the 'socket' event is not triggered for the request\n // (happens in deno), avoids `TypeError`\n // if a data listener is still present we didn't end cleanly\n const hasDataListener = socket && socket.listenerCount(\"data\") > 0;\n if (hasDataListener && !hadError) {\n const err = new Error(\"Premature close\");\n err.code = \"ERR_STREAM_PREMATURE_CLOSE\";\n errorCallback(err);\n }\n });\n }\n });\n}\nfunction destroyStream(stream, err) {\n if (stream.destroy) {\n stream.destroy(err);\n } else {\n // node < 8\n stream.emit(\"error\", err);\n stream.end();\n }\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */ fetch.isRedirect = function(code) {\n return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n// expose Promise\nfetch.Promise = global.Promise;\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL25vZGUtZmV0Y2gvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBRUFBLDhDQUE2QztJQUFFRyxPQUFPO0FBQUssQ0FBQyxFQUFDO0FBRTdELFNBQVNDLGdCQUFpQkMsRUFBRTtJQUFJLE9BQU8sTUFBUSxPQUFPQSxPQUFPLFlBQWEsYUFBYUEsS0FBTUEsRUFBRSxDQUFDLFVBQVUsR0FBR0E7QUFBSTtBQUVqSCxJQUFJQyxTQUFTRixnQkFBZ0JHLG1CQUFPQSxDQUFDO0FBQ3JDLElBQUlDLE9BQU9KLGdCQUFnQkcsbUJBQU9BLENBQUM7QUFDbkMsSUFBSUUsTUFBTUwsZ0JBQWdCRyxtQkFBT0EsQ0FBQztBQUNsQyxJQUFJRyxZQUFZTixnQkFBZ0JHLG1CQUFPQSxDQUFDO0FBQ3hDLElBQUlJLFFBQVFQLGdCQUFnQkcsbUJBQU9BLENBQUM7QUFDcEMsSUFBSUssT0FBT1IsZ0JBQWdCRyxtQkFBT0EsQ0FBQztBQUVuQyxrSEFBa0g7QUFFbEgsZ0RBQWdEO0FBQ2hELE1BQU1NLFdBQVdQLE9BQU9PLFFBQVE7QUFFaEMsTUFBTUMsU0FBU0MsT0FBTztBQUN0QixNQUFNQyxPQUFPRCxPQUFPO0FBRXBCLE1BQU1FO0lBQ0xDLGFBQWM7UUFDYixJQUFJLENBQUNGLEtBQUssR0FBRztRQUViLE1BQU1HLFlBQVlDLFNBQVMsQ0FBQyxFQUFFO1FBQzlCLE1BQU1DLFVBQVVELFNBQVMsQ0FBQyxFQUFFO1FBRTVCLE1BQU1FLFVBQVUsRUFBRTtRQUNsQixJQUFJQyxPQUFPO1FBRVgsSUFBSUosV0FBVztZQUNkLE1BQU1LLElBQUlMO1lBQ1YsTUFBTU0sU0FBU0MsT0FBT0YsRUFBRUMsTUFBTTtZQUM5QixJQUFLLElBQUlFLElBQUksR0FBR0EsSUFBSUYsUUFBUUUsSUFBSztnQkFDaEMsTUFBTUMsVUFBVUosQ0FBQyxDQUFDRyxFQUFFO2dCQUNwQixJQUFJRTtnQkFDSixJQUFJRCxtQkFBbUJFLFFBQVE7b0JBQzlC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Q2pGO0FBRUEsaUJBQWlCO0FBQ2pCNkssTUFBTTVNLE9BQU8sR0FBRzhHLE9BQU85RyxPQUFPO0FBRTlCc1AsT0FBT2hTLE9BQU8sR0FBR0EsVUFBVXNQO0FBQzNCeFAsOENBQTZDO0lBQUVHLE9BQU87QUFBSyxDQUFDLEVBQUM7QUFDN0RELGtCQUFlLEdBQUdBO0FBQ2xCQSxlQUFlLEdBQUdpSztBQUNsQmpLLGVBQWUsR0FBRzhOO0FBQ2xCOU4sZ0JBQWdCLEdBQUcwTTtBQUNuQjFNLGtCQUFrQixHQUFHb0UiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL25vZGUtZmV0Y2gvbGliL2luZGV4LmpzP2VlMmIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcERlZmF1bHQgKGV4KSB7IHJldHVybiAoZXggJiYgKHR5cGVvZiBleCA9PT0gJ29iamVjdCcpICYmICdkZWZhdWx0JyBpbiBleCkgPyBleFsnZGVmYXVsdCddIDogZXg7IH1cblxudmFyIFN0cmVhbSA9IF9pbnRlcm9wRGVmYXVsdChyZXF1aXJlKCdzdHJlYW0nKSk7XG52YXIgaHR0cCA9IF9pbnRlcm9wRGVmYXVsdChyZXF1aXJlKCdodHRwJykpO1xudmFyIFVybCA9IF9pbnRlcm9wRGVmYXVsdChyZXF1aXJlKCd1cmwnKSk7XG52YXIgd2hhdHdnVXJsID0gX2ludGVyb3BEZWZhdWx0KHJlcXVpcmUoJ3doYXR3Zy11cmwnKSk7XG52YXIgaHR0cHMgPSBfaW50ZXJvcERlZmF1bHQocmVxdWlyZSgnaHR0cHMnKSk7XG52YXIgemxpYiA9IF9pbnRlcm9wRGVmYXVsdChyZXF1aXJlKCd6bGliJykpO1xuXG4vLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vdG1wdmFyL2pzZG9tL2Jsb2IvYWE4NWIyYWJmMDc3NjZmZjdiZjVjMWY2ZGFhZmIzNzI2ZjJmMmRiNS9saWIvanNkb20vbGl2aW5nL2Jsb2IuanNcblxuLy8gZml4IGZvciBcIlJlYWRhYmxlXCIgaXNuJ3QgYSBuYW1lZCBleHBvcnQgaXNzdWVcbmNvbnN0IFJlYWRhYmxlID0gU3RyZWFtLlJlYWRhYmxlO1xuXG5jb25zdCBCVUZGRVIgPSBTeW1ib2woJ2J1ZmZlcicpO1xuY29uc3QgVFlQRSA9IFN5bWJvbCgndHlwZScpO1xuXG5jbGFzcyBCbG9iIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpc1tUWVBFXSA9ICcnO1xuXG5cdFx0Y29uc3QgYmxvYlBhcnRzID0gYXJndW1lbnRzWzBdO1xuXHRcdGNvbnN0IG9wdGlvbnMgPSBhcmd1bWVudHNbMV07XG5cblx0XHRjb25zdCBidWZmZXJzID0gW107XG5cdFx0bGV0IHNpemUgPSAwO1xuXG5cdFx0aWYgKGJsb2JQYXJ0cykge1xuXHRcdFx0Y29uc3QgYSA9IGJsb2JQYXJ0cztcblx0XHRcdGNvbnN0IGxlbmd0aCA9IE51bWJlcihhLmxlbmd0aCk7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGVsZW1lbnQgPSBhW2ldO1xuXHRcdFx0XHRsZXQgYnVmZmVyO1xuXHRcdFx0XHRpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuXHRcdFx0XHRcdGJ1ZmZlciA9IGVsZW1lbnQ7XG5cdFx0XHRcdH0gZWxzZSBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGVsZW1lbnQpKSB7XG5cdFx0XHRcdFx0YnVmZmVyID0gQnVmZmVyLmZyb20oZWxlbWVudC5idWZmZXIsIGVsZW1lbnQuYnl0ZU9mZnNldCwgZWxlbWVudC5ieXRlTGVuZ3RoKTtcblx0XHRcdFx0fSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcblx0XHRcdFx0XHRidWZmZXIgPSBCdWZmZXIuZnJvbShlbGVtZW50KTtcblx0XHRcdFx0fSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgQmxvYikge1xuXHRcdFx0XHRcdGJ1ZmZlciA9IGVsZW1lbnRbQlVGRkVSXTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRidWZmZXIgPSBCdWZmZXIuZnJvbSh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycgPyBlbGVtZW50IDogU3RyaW5nKGVsZW1lbnQpKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRzaXplICs9IGJ1ZmZlci5sZW5ndGg7XG5cdFx0XHRcdGJ1ZmZlcnMucHVzaChidWZmZXIpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXNbQlVGRkVSXSA9IEJ1ZmZlci5jb25jYXQoYnVmZmVycyk7XG5cblx0XHRsZXQgdHlwZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy50eXBlICE9PSB1bmRlZmluZWQgJiYgU3RyaW5nKG9wdGlvbnMudHlwZSkudG9Mb3dlckNhc2UoKTtcblx0XHRpZiAodHlwZSAmJiAhL1teXFx1MDAyMC1cXHUwMDdFXS8udGVzdCh0eXBlKSkge1xuXHRcdFx0dGhpc1tUWVBFXSA9IHR5cGU7XG5cdFx0fVxuXHR9XG5cdGdldCBzaXplKCkge1xuXHRcdHJldHVybiB0aGlzW0JVRkZFUl0ubGVuZ3RoO1xuXHR9XG5cdGdldCB0eXBlKCkge1xuXHRcdHJldHVybiB0aGlzW1RZUEVdO1xuXHR9XG5cdHRleHQoKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzW0JVRkZFUl0udG9TdHJpbmcoKSk7XG5cdH1cblx0YXJyYXlCdWZmZXIoKSB7XG5cdFx0Y29uc3QgYnVmID0gdGhpc1tCVUZGRVJdO1xuXHRcdGNvbnN0IGFiID0gYnVmLmJ1ZmZlci5zbGljZShidWYuYnl0ZU9mZnNldCwgYnVmLmJ5dGVPZmZzZXQgKyBidWYuYnl0ZUxlbmd0aCk7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShhYik7XG5cdH1cblx0c3RyZWFtKCkge1xuXHRcdGNvbnN0IHJlYWRhYmxlID0gbmV3IFJlYWRhYmxlKCk7XG5cdFx0cmVhZGFibGUuX3JlYWQgPSBmdW5jdGlvbiAoKSB7fTtcblx0XHRyZWFkYWJsZS5wdXNoKHRoaXNbQlVGRkVSXSk7XG5cdFx0cmVhZGFibGUucHVzaChudWxsKTtcblx0XHRyZXR1cm4gcmVhZGFibGU7XG5cdH1cblx0dG9TdHJpbmcoKSB7XG5cdFx0cmV0dXJuICdbb2JqZWN0IEJsb2JdJztcblx0fVxuXHRzbGljZSgpIHtcblx0XHRjb25zdCBzaXplID0gdGhpcy5zaXplO1xuXG5cdFx0Y29uc3Qgc3RhcnQgPSBhcmd1bWVudHNbMF07XG5cdFx0Y29uc3QgZW5kID0gYXJndW1lbnRzWzFdO1xuXHRcdGxldCByZWxhdGl2ZVN0YXJ0LCByZWxhdGl2ZUVuZDtcblx0XHRpZiAoc3RhcnQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmVsYXRpdmVTdGFydCA9IDA7XG5cdFx0fSBlbHNlIGlmIChzdGFydCA8IDApIHtcblx0XHRcdHJlbGF0aXZlU3RhcnQgPSBNYXRoLm1heChzaXplICsgc3RhcnQsIDApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZWxhdGl2ZVN0YXJ0ID0gTWF0aC5taW4oc3RhcnQsIHNpemUpO1xuXHRcdH1cblx0XHRpZiAoZW5kID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHJlbGF0aXZlRW5kID0gc2l6ZTtcblx0XHR9IGVsc2UgaWYgKGVuZCA8IDApIHtcblx0XHRcdHJlbGF0aXZlRW5kID0gTWF0aC5tYXgoc2l6ZSArIGVuZCwgMCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlbGF0aXZlRW5kID0gTWF0aC5taW4oZW5kLCBzaXplKTtcblx0XHR9XG5cdFx0Y29uc3Qgc3BhbiA9IE1hdGgubWF4KHJlbGF0aXZlRW5kIC0gcmVsYXRpdmVTdGFydCwgMCk7XG5cblx0XHRjb25zdCBidWZmZXIgPSB0aGlzW0JVRkZFUl07XG5cdFx0Y29uc3Qgc2xpY2VkQnVmZmVyID0gYnVmZmVyLnNsaWNlKHJlbGF0aXZlU3RhcnQsIHJlbGF0aXZlU3RhcnQgKyBzcGFuKTtcblx0XHRjb25zdCBibG9iID0gbmV3IEJsb2IoW10sIHsgdHlwZTogYXJndW1lbnRzWzJdIH0pO1xuXHRcdGJsb2JbQlVGRkVSXSA9IHNsaWNlZEJ1ZmZlcjtcblx0XHRyZXR1cm4gYmxvYjtcblx0fVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhCbG9iLnByb3RvdHlwZSwge1xuXHRzaXplOiB7IGVudW1lcmFibGU6IHRydWUgfSxcblx0dHlwZTogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdHNsaWNlOiB7IGVudW1lcmFibGU6IHRydWUgfVxufSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCbG9iLnByb3RvdHlwZSwgU3ltYm9sLnRvU3RyaW5nVGFnLCB7XG5cdHZhbHVlOiAnQmxvYicsXG5cdHdyaXRhYmxlOiBmYWxzZSxcblx0ZW51bWVyYWJsZTogZmFsc2UsXG5cdGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbi8qKlxuICogZmV0Y2gtZXJyb3IuanNcbiAqXG4gKiBGZXRjaEVycm9yIGludGVyZmFjZSBmb3Igb3BlcmF0aW9uYWwgZXJyb3JzXG4gKi9cblxuLyoqXG4gKiBDcmVhdGUgRmV0Y2hFcnJvciBpbnN0YW5jZVxuICpcbiAqIEBwYXJhbSAgIFN0cmluZyAgICAgIG1lc3NhZ2UgICAgICBFcnJvciBtZXNzYWdlIGZvciBodW1hblxuICogQHBhcmFtICAgU3RyaW5nICAgICAgdHlwZSAgICAgICAgIEVycm9yIHR5cGUgZm9yIG1hY2hpbmVcbiAqIEBwYXJhbSAgIFN0cmluZyAgICAgIHN5c3RlbUVycm9yICBGb3IgTm9kZS5qcyBzeXN0ZW0gZXJyb3JcbiAqIEByZXR1cm4gIEZldGNoRXJyb3JcbiAqL1xuZnVuY3Rpb24gRmV0Y2hFcnJvcihtZXNzYWdlLCB0eXBlLCBzeXN0ZW1FcnJvcikge1xuICBFcnJvci5jYWxsKHRoaXMsIG1lc3NhZ2UpO1xuXG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gIHRoaXMudHlwZSA9IHR5cGU7XG5cbiAgLy8gd2hlbiBlcnIudHlwZSBpcyBgc3lzdGVtYCwgZXJyLmNvZGUgY29udGFpbnMgc3lzdGVtIGVycm9yIGNvZGVcbiAgaWYgKHN5c3RlbUVycm9yKSB7XG4gICAgdGhpcy5jb2RlID0gdGhpcy5lcnJubyA9IHN5c3RlbUVycm9yLmNvZGU7XG4gIH1cblxuICAvLyBoaWRlIGN1c3RvbSBlcnJvciBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGZyb20gZW5kLXVzZXJzXG4gIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xufVxuXG5GZXRjaEVycm9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKTtcbkZldGNoRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRmV0Y2hFcnJvcjtcbkZldGNoRXJyb3IucHJvdG90eXBlLm5hbWUgPSAnRmV0Y2hFcnJvcic7XG5cbmxldCBjb252ZXJ0O1xuXG5jb25zdCBJTlRFUk5BTFMgPSBTeW1ib2woJ0JvZHkgaW50ZXJuYWxzJyk7XG5cbi8vIGZpeCBhbiBpc3N1ZSB3aGVyZSBcIlBhc3NUaHJvdWdoXCIgaXNuJ3QgYSBuYW1lZCBleHBvcnQgZm9yIG5vZGUgPDEwXG5jb25zdCBQYXNzVGhyb3VnaCA9IFN0cmVhbS5QYXNzVGhyb3VnaDtcblxuLyoqXG4gKiBCb2R5IG1peGluXG4gKlxuICogUmVmOiBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keVxuICpcbiAqIEBwYXJhbSAgIFN0cmVhbSAgYm9keSAgUmVhZGFibGUgc3RyZWFtXG4gKiBAcGFyYW0gICBPYmplY3QgIG9wdHMgIFJlc3BvbnNlIG9wdGlvbnNcbiAqIEByZXR1cm4gIFZvaWRcbiAqL1xuZnVuY3Rpb24gQm9keShib2R5KSB7XG5cdHZhciBfdGhpcyA9IHRoaXM7XG5cblx0dmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9LFxuXHQgICAgX3JlZiRzaXplID0gX3JlZi5zaXplO1xuXG5cdGxldCBzaXplID0gX3JlZiRzaXplID09PSB1bmRlZmluZWQgPyAwIDogX3JlZiRzaXplO1xuXHR2YXIgX3JlZiR0aW1lb3V0ID0gX3JlZi50aW1lb3V0O1xuXHRsZXQgdGltZW91dCA9IF9yZWYkdGltZW91dCA9PT0gdW5kZWZpbmVkID8gMCA6IF9yZWYkdGltZW91dDtcblxuXHRpZiAoYm9keSA9PSBudWxsKSB7XG5cdFx0Ly8gYm9keSBpcyB1bmRlZmluZWQgb3IgbnVsbFxuXHRcdGJvZHkgPSBudWxsO1xuXHR9IGVsc2UgaWYgKGlzVVJMU2VhcmNoUGFyYW1zKGJvZHkpKSB7XG5cdFx0Ly8gYm9keSBpcyBhIFVSTFNlYXJjaFBhcmFtc1xuXHRcdGJvZHkgPSBCdWZmZXIuZnJvbShib2R5LnRvU3RyaW5nKCkpO1xuXHR9IGVsc2UgaWYgKGlzQmxvYihib2R5KSkgOyBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIoYm9keSkpIDsgZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGJvZHkpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nKSB7XG5cdFx0Ly8gYm9keSBpcyBBcnJheUJ1ZmZlclxuXHRcdGJvZHkgPSBCdWZmZXIuZnJvbShib2R5KTtcblx0fSBlbHNlIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcoYm9keSkpIHtcblx0XHQvLyBib2R5IGlzIEFycmF5QnVmZmVyVmlld1xuXHRcdGJvZHkgPSBCdWZmZXIuZnJvbShib2R5LmJ1ZmZlciwgYm9keS5ieXRlT2Zmc2V0LCBib2R5LmJ5dGVMZW5ndGgpO1xuXHR9IGVsc2UgaWYgKGJvZHkgaW5zdGFuY2VvZiBTdHJlYW0pIDsgZWxzZSB7XG5cdFx0Ly8gbm9uZSBvZiB0aGUgYWJvdmVcblx0XHQvLyBjb2VyY2UgdG8gc3RyaW5nIHRoZW4gYnVmZmVyXG5cdFx0Ym9keSA9IEJ1ZmZlci5mcm9tKFN0cmluZyhib2R5KSk7XG5cdH1cblx0dGhpc1tJTlRFUk5BTFNdID0ge1xuXHRcdGJvZHksXG5cdFx0ZGlzdHVyYmVkOiBmYWxzZSxcblx0XHRlcnJvcjogbnVsbFxuXHR9O1xuXHR0aGlzLnNpemUgPSBzaXplO1xuXHR0aGlzLnRpbWVvdXQgPSB0aW1lb3V0O1xuXG5cdGlmIChib2R5IGluc3RhbmNlb2YgU3RyZWFtKSB7XG5cdFx0Ym9keS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG5cdFx0XHRjb25zdCBlcnJvciA9IGVyci5uYW1lID09PSAnQWJvcnRFcnJvcicgPyBlcnIgOiBuZXcgRmV0Y2hFcnJvcihgSW52YWxpZCByZXNwb25zZSBib2R5IHdoaWxlIHRyeWluZyB0byBmZXRjaCAke190aGlzLnVybH06ICR7ZXJyLm1lc3NhZ2V9YCwgJ3N5c3RlbScsIGVycik7XG5cdFx0XHRfdGhpc1tJTlRFUk5BTFNdLmVycm9yID0gZXJyb3I7XG5cdFx0fSk7XG5cdH1cbn1cblxuQm9keS5wcm90b3R5cGUgPSB7XG5cdGdldCBib2R5KCkge1xuXHRcdHJldHVybiB0aGlzW0lOVEVSTkFMU10uYm9keTtcblx0fSxcblxuXHRnZXQgYm9keVVzZWQoKSB7XG5cdFx0cmV0dXJuIHRoaXNbSU5URVJOQUxTXS5kaXN0dXJiZWQ7XG5cdH0sXG5cblx0LyoqXG4gICogRGVjb2RlIHJlc3BvbnNlIGFzIEFycmF5QnVmZmVyXG4gICpcbiAgKiBAcmV0dXJuICBQcm9taXNlXG4gICovXG5cdGFycmF5QnVmZmVyKCkge1xuXHRcdHJldHVybiBjb25zdW1lQm9keS5jYWxsKHRoaXMpLnRoZW4oZnVuY3Rpb24gKGJ1Zikge1xuXHRcdFx0cmV0dXJuIGJ1Zi5idWZmZXIuc2xpY2UoYnVmLmJ5dGVPZmZzZXQsIGJ1Zi5ieXRlT2Zmc2V0ICsgYnVmLmJ5dGVMZW5ndGgpO1xuXHRcdH0pO1xuXHR9LFxuXG5cdC8qKlxuICAqIFJldHVybiByYXcgcmVzcG9uc2UgYXMgQmxvYlxuICAqXG4gICogQHJldHVybiBQcm9taXNlXG4gICovXG5cdGJsb2IoKSB7XG5cdFx0bGV0IGN0ID0gdGhpcy5oZWFkZXJzICYmIHRoaXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpIHx8ICcnO1xuXHRcdHJldHVybiBjb25zdW1lQm9keS5jYWxsKHRoaXMpLnRoZW4oZnVuY3Rpb24gKGJ1Zikge1xuXHRcdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24oXG5cdFx0XHQvLyBQcmV2ZW50IGNvcHlpbmdcblx0XHRcdG5ldyBCbG9iKFtdLCB7XG5cdFx0XHRcdHR5cGU6IGN0LnRvTG93ZXJDYXNlKClcblx0XHRcdH0pLCB7XG5cdFx0XHRcdFtCVUZGRVJdOiBidWZcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9LFxuXG5cdC8qKlxuICAqIERlY29kZSByZXNwb25zZSBhcyBqc29uXG4gICpcbiAgKiBAcmV0dXJuICBQcm9taXNlXG4gICovXG5cdGpzb24oKSB7XG5cdFx0dmFyIF90aGlzMiA9IHRoaXM7XG5cblx0XHRyZXR1cm4gY29uc3VtZUJvZHkuY2FsbCh0aGlzKS50aGVuKGZ1bmN0aW9uIChidWZmZXIpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHJldHVybiBKU09OLnBhcnNlKGJ1ZmZlci50b1N0cmluZygpKTtcblx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRyZXR1cm4gQm9keS5Qcm9taXNlLnJlamVjdChuZXcgRmV0Y2hFcnJvcihgaW52YWxpZCBqc29uIHJlc3BvbnNlIGJvZHkgYXQgJHtfdGhpczIudXJsfSByZWFzb246ICR7ZXJyLm1lc3NhZ2V9YCwgJ2ludmFsaWQtanNvbicpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHQvKipcbiAgKiBEZWNvZGUgcmVzcG9uc2UgYXMgdGV4dFxuICAqXG4gICogQHJldHVybiAgUHJvbWlzZVxuICAqL1xuXHR0ZXh0KCkge1xuXHRcdHJldHVybiBjb25zdW1lQm9keS5jYWxsKHRoaXMpLnRoZW4oZnVuY3Rpb24gKGJ1ZmZlcikge1xuXHRcdFx0cmV0dXJuIGJ1ZmZlci50b1N0cmluZygpO1xuXHRcdH0pO1xuXHR9LFxuXG5cdC8qKlxuICAqIERlY29kZSByZXNwb25zZSBhcyBidWZmZXIgKG5vbi1zcGVjIGFwaSlcbiAgKlxuICAqIEByZXR1cm4gIFByb21pc2VcbiAgKi9cblx0YnVmZmVyKCkge1xuXHRcdHJldHVybiBjb25zdW1lQm9keS5jYWxsKHRoaXMpO1xuXHR9LFxuXG5cdC8qKlxuICAqIERlY29kZSByZXNwb25zZSBhcyB0ZXh0LCB3aGlsZSBhdXRvbWF0aWNhbGx5IGRldGVjdGluZyB0aGUgZW5jb2RpbmcgYW5kXG4gICogdHJ5aW5nIHRvIGRlY29kZSB0byBVVEYtOCAobm9uLXNwZWMgYXBpKVxuICAqXG4gICogQHJldHVybiAgUHJvbWlzZVxuICAqL1xuXHR0ZXh0Q29udmVydGVkKCkge1xuXHRcdHZhciBfdGhpczMgPSB0aGlzO1xuXG5cdFx0cmV0dXJuIGNvbnN1bWVCb2R5LmNhbGwodGhpcykudGhlbihmdW5jdGlvbiAoYnVmZmVyKSB7XG5cdFx0XHRyZXR1cm4gY29udmVydEJvZHkoYnVmZmVyLCBfdGhpczMuaGVhZGVycyk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbi8vIEluIGJyb3dzZXJzLCBhbGwgcHJvcGVydGllcyBhcmUgZW51bWVyYWJsZS5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEJvZHkucHJvdG90eXBlLCB7XG5cdGJvZHk6IHsgZW51bWVyYWJsZTogdHJ1ZSB9LFxuXHRib2R5VXNlZDogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGFycmF5QnVmZmVyOiB7IGVudW1lcmFibGU6IHRydWUgfSxcblx0YmxvYjogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGpzb246IHsgZW51bWVyYWJsZTogdHJ1ZSB9LFxuXHR0ZXh0OiB7IGVudW1lcmFibGU6IHRydWUgfVxufSk7XG5cbkJvZHkubWl4SW4gPSBmdW5jdGlvbiAocHJvdG8pIHtcblx0Zm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEJvZHkucHJvdG90eXBlKSkge1xuXHRcdC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlOiBmdXR1cmUgcHJvb2Zcblx0XHRpZiAoIShuYW1lIGluIHByb3RvKSkge1xuXHRcdFx0Y29uc3QgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQm9keS5wcm90b3R5cGUsIG5hbWUpO1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBuYW1lLCBkZXNjKTtcblx0XHR9XG5cdH1cbn07XG5cbi8qKlxuICogQ29uc3VtZSBhbmQgY29udmVydCBhbiBlbnRpcmUgQm9keSB0byBhIEJ1ZmZlci5cbiAqXG4gKiBSZWY6IGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWJvZHktY29uc3VtZS1ib2R5XG4gKlxuICogQHJldHVybiAgUHJvbWlzZVxuICovXG5mdW5jdGlvbiBjb25zdW1lQm9keSgpIHtcblx0dmFyIF90aGlzNCA9IHRoaXM7XG5cblx0aWYgKHRoaXNbSU5URVJOQUxTXS5kaXN0dXJiZWQpIHtcblx0XHRyZXR1cm4gQm9keS5Qcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKGBib2R5IHVzZWQgYWxyZWFkeSBmb3I6ICR7dGhpcy51cmx9YCkpO1xuXHR9XG5cblx0dGhpc1tJTlRFUk5BTFNdLmRpc3R1cmJlZCA9IHRydWU7XG5cblx0aWYgKHRoaXNbSU5URVJOQUxTXS5lcnJvcikge1xuXHRcdHJldHVybiBCb2R5LlByb21pc2UucmVqZWN0KHRoaXNbSU5URVJOQUxTXS5lcnJvcik7XG5cdH1cblxuXHRsZXQgYm9keSA9IHRoaXMuYm9keTtcblxuXHQvLyBib2R5IGlzIG51bGxcblx0aWYgKGJvZHkgPT09IG51bGwpIHtcblx0XHRyZXR1cm4gQm9keS5Qcm9taXNlLnJlc29sdmUoQnVmZmVyLmFsbG9jKDApKTtcblx0fVxuXG5cdC8vIGJvZHkgaXMgYmxvYlxuXHRpZiAoaXNCbG9iKGJvZHkpKSB7XG5cdFx0Ym9keSA9IGJvZHkuc3RyZWFtKCk7XG5cdH1cblxuXHQvLyBib2R5IGlzIGJ1ZmZlclxuXHRpZiAoQnVmZmVyLmlzQnVmZmVyKGJvZHkpKSB7XG5cdFx0cmV0dXJuIEJvZHkuUHJvbWlzZS5yZXNvbHZlKGJvZHkpO1xuXHR9XG5cblx0Ly8gaXN0YW5idWwgaWdub3JlIGlmOiBzaG91bGQgbmV2ZXIgaGFwcGVuXG5cdGlmICghKGJvZHkgaW5zdGFuY2VvZiBTdHJlYW0pKSB7XG5cdFx0cmV0dXJuIEJvZHkuUHJvbWlzZS5yZXNvbHZlKEJ1ZmZlci5hbGxvYygwKSk7XG5cdH1cblxuXHQvLyBib2R5IGlzIHN0cmVhbVxuXHQvLyBnZXQgcmVhZHkgdG8gYWN0dWFsbHkgY29uc3VtZSB0aGUgYm9keVxuXHRsZXQgYWNjdW0gPSBbXTtcblx0bGV0IGFjY3VtQnl0ZXMgPSAwO1xuXHRsZXQgYWJvcnQgPSBmYWxzZTtcblxuXHRyZXR1cm4gbmV3IEJvZHkuUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG5cdFx0bGV0IHJlc1RpbWVvdXQ7XG5cblx0XHQvLyBhbGxvdyB0aW1lb3V0IG9uIHNsb3cgcmVzcG9uc2UgYm9keVxuXHRcdGlmIChfdGhpczQudGltZW91dCkge1xuXHRcdFx0cmVzVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRhYm9ydCA9IHRydWU7XG5cdFx0XHRcdHJlamVjdChuZXcgRmV0Y2hFcnJvcihgUmVzcG9uc2UgdGltZW91dCB3aGlsZSB0cnlpbmcgdG8gZmV0Y2ggJHtfdGhpczQudXJsfSAob3ZlciAke190aGlzNC50aW1lb3V0fW1zKWAsICdib2R5LXRpbWVvdXQnKSk7XG5cdFx0XHR9LCBfdGhpczQudGltZW91dCk7XG5cdFx0fVxuXG5cdFx0Ly8gaGFuZGxlIHN0cmVhbSBlcnJvcnNcblx0XHRib2R5Lm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcblx0XHRcdGlmIChlcnIubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG5cdFx0XHRcdC8vIGlmIHRoZSByZXF1ZXN0IHdhcyBhYm9ydGVkLCByZWplY3Qgd2l0aCB0aGlzIEVycm9yXG5cdFx0XHRcdGFib3J0ID0gdHJ1ZTtcblx0XHRcdFx0cmVqZWN0KGVycik7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBvdGhlciBlcnJvcnMsIHN1Y2ggYXMgaW5jb3JyZWN0IGNvbnRlbnQtZW5jb2Rpbmdcblx0XHRcdFx0cmVqZWN0KG5ldyBGZXRjaEVycm9yKGBJbnZhbGlkIHJlc3BvbnNlIGJvZHkgd2hpbGUgdHJ5aW5nIHRvIGZldGNoICR7X3RoaXM0LnVybH06ICR7ZXJyLm1lc3NhZ2V9YCwgJ3N5c3RlbScsIGVycikpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Ym9keS5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuaykge1xuXHRcdFx0aWYgKGFib3J0IHx8IGNodW5rID09PSBudWxsKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKF90aGlzNC5zaXplICYmIGFjY3VtQnl0ZXMgKyBjaHVuay5sZW5ndGggPiBfdGhpczQuc2l6ZSkge1xuXHRcdFx0XHRhYm9ydCA9IHRydWU7XG5cdFx0XHRcdHJlamVjdChuZXcgRmV0Y2hFcnJvcihgY29udGVudCBzaXplIGF0ICR7X3RoaXM0LnVybH0gb3ZlciBsaW1pdDogJHtfdGhpczQuc2l6ZX1gLCAnbWF4LXNpemUnKSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0YWNjdW1CeXRlcyArPSBjaHVuay5sZW5ndGg7XG5cdFx0XHRhY2N1bS5wdXNoKGNodW5rKTtcblx0XHR9KTtcblxuXHRcdGJvZHkub24oJ2VuZCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdGlmIChhYm9ydCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNsZWFyVGltZW91dChyZXNUaW1lb3V0KTtcblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0cmVzb2x2ZShCdWZmZXIuY29uY2F0KGFjY3VtLCBhY2N1bUJ5dGVzKSk7XG5cdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdFx0Ly8gaGFuZGxlIHN0cmVhbXMgdGhhdCBoYXZlIGFjY3VtdWxhdGVkIHRvbyBtdWNoIGRhdGEgKGlzc3VlICM0MTQpXG5cdFx0XHRcdHJlamVjdChuZXcgRmV0Y2hFcnJvcihgQ291bGQgbm90IGNyZWF0ZSBCdWZmZXIgZnJvbSByZXNwb25zZSBib2R5IGZvciAke190aGlzNC51cmx9OiAke2Vyci5tZXNzYWdlfWAsICdzeXN0ZW0nLCBlcnIpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSk7XG59XG5cbi8qKlxuICogRGV0ZWN0IGJ1ZmZlciBlbmNvZGluZyBhbmQgY29udmVydCB0byB0YXJnZXQgZW5jb2RpbmdcbiAqIHJlZjogaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9XRC1odG1sNS0yMDExMDExMy9wYXJzaW5nLmh0bWwjZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZ1xuICpcbiAqIEBwYXJhbSAgIEJ1ZmZlciAgYnVmZmVyICAgIEluY29taW5nIGJ1ZmZlclxuICogQHBhcmFtICAgU3RyaW5nICBlbmNvZGluZyAgVGFyZ2V0IGVuY29kaW5nXG4gKiBAcmV0dXJuICBTdHJpbmdcbiAqL1xuZnVuY3Rpb24gY29udmVydEJvZHkoYnVmZmVyLCBoZWFkZXJzKSB7XG5cdHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1RoZSBwYWNrYWdlIGBlbmNvZGluZ2AgbXVzdCBiZSBpbnN0YWxsZWQgdG8gdXNlIHRoZSB0ZXh0Q29udmVydGVkKCkgZnVuY3Rpb24nKTtcblx0fVxuXG5cdGNvbnN0IGN0ID0gaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpO1xuXHRsZXQgY2hhcnNldCA9ICd1dGYtOCc7XG5cdGxldCByZXMsIHN0cjtcblxuXHQvLyBoZWFkZXJcblx0aWYgKGN0KSB7XG5cdFx0cmVzID0gL2NoYXJzZXQ9KFteO10qKS9pLmV4ZWMoY3QpO1xuXHR9XG5cblx0Ly8gbm8gY2hhcnNldCBpbiBjb250ZW50IHR5cGUsIHBlZWsgYXQgcmVzcG9uc2UgYm9keSBmb3IgYXQgbW9zdCAxMDI0IGJ5dGVzXG5cdHN0ciA9IGJ1ZmZlci5zbGljZSgwLCAxMDI0KS50b1N0cmluZygpO1xuXG5cdC8vIGh0bWw1XG5cdGlmICghcmVzICYmIHN0cikge1xuXHRcdHJlcyA9IC88bWV0YS4rP2NoYXJzZXQ9KFsnXCJdKSguKz8pXFwxL2kuZXhlYyhzdHIpO1xuXHR9XG5cblx0Ly8gaHRtbDRcblx0aWYgKCFyZXMgJiYgc3RyKSB7XG5cdFx0cmVzID0gLzxtZXRhW1xcc10rP2h0dHAtZXF1aXY9KFsnXCJdKWNvbnRlbnQtdHlwZVxcMVtcXHNdKz9jb250ZW50PShbJ1wiXSkoLis/KVxcMi9pLmV4ZWMoc3RyKTtcblx0XHRpZiAoIXJlcykge1xuXHRcdFx0cmVzID0gLzxtZXRhW1xcc10rP2NvbnRlbnQ9KFsnXCJdKSguKz8pXFwxW1xcc10rP2h0dHAtZXF1aXY9KFsnXCJdKWNvbnRlbnQtdHlwZVxcMy9pLmV4ZWMoc3RyKTtcblx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0cmVzLnBvcCgpOyAvLyBkcm9wIGxhc3QgcXVvdGVcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAocmVzKSB7XG5cdFx0XHRyZXMgPSAvY2hhcnNldD0oLiopL2kuZXhlYyhyZXMucG9wKCkpO1xuXHRcdH1cblx0fVxuXG5cdC8vIHhtbFxuXHRpZiAoIXJlcyAmJiBzdHIpIHtcblx0XHRyZXMgPSAvPFxcP3htbC4rP2VuY29kaW5nPShbJ1wiXSkoLis/KVxcMS9pLmV4ZWMoc3RyKTtcblx0fVxuXG5cdC8vIGZvdW5kIGNoYXJzZXRcblx0aWYgKHJlcykge1xuXHRcdGNoYXJzZXQgPSByZXMucG9wKCk7XG5cblx0XHQvLyBwcmV2ZW50IGRlY29kZSBpc3N1ZXMgd2hlbiBzaXRlcyB1c2UgaW5jb3JyZWN0IGVuY29kaW5nXG5cdFx0Ly8gcmVmOiBodHRwczovL2hzaXZvbmVuLmZpL2VuY29kaW5nLW1lbnUvXG5cdFx0aWYgKGNoYXJzZXQgPT09ICdnYjIzMTInIHx8IGNoYXJzZXQgPT09ICdnYmsnKSB7XG5cdFx0XHRjaGFyc2V0ID0gJ2diMTgwMzAnO1xuXHRcdH1cblx0fVxuXG5cdC8vIHR1cm4gcmF3IGJ1ZmZlcnMgaW50byBhIHNpbmdsZSB1dGYtOCBidWZmZXJcblx0cmV0dXJuIGNvbnZlcnQoYnVmZmVyLCAnVVRGLTgnLCBjaGFyc2V0KS50b1N0cmluZygpO1xufVxuXG4vKipcbiAqIERldGVjdCBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3RcbiAqIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2JpdGlubi9ub2RlLWZldGNoL2lzc3Vlcy8yOTYjaXNzdWVjb21tZW50LTMwNzU5ODE0M1xuICpcbiAqIEBwYXJhbSAgIE9iamVjdCAgb2JqICAgICBPYmplY3QgdG8gZGV0ZWN0IGJ5IHR5cGUgb3IgYnJhbmRcbiAqIEByZXR1cm4gIFN0cmluZ1xuICovXG5mdW5jdGlvbiBpc1VSTFNlYXJjaFBhcmFtcyhvYmopIHtcblx0Ly8gRHVjay10eXBpbmcgYXMgYSBuZWNlc3NhcnkgY29uZGl0aW9uLlxuXHRpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIG9iai5hcHBlbmQgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG9iai5kZWxldGUgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG9iai5nZXQgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG9iai5nZXRBbGwgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG9iai5oYXMgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG9iai5zZXQgIT09ICdmdW5jdGlvbicpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvLyBCcmFuZC1jaGVja2luZyBhbmQgbW9yZSBkdWNrLXR5cGluZyBhcyBvcHRpb25hbCBjb25kaXRpb24uXG5cdHJldHVybiBvYmouY29uc3RydWN0b3IubmFtZSA9PT0gJ1VSTFNlYXJjaFBhcmFtcycgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IFVSTFNlYXJjaFBhcmFtc10nIHx8IHR5cGVvZiBvYmouc29ydCA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBgb2JqYCBpcyBhIFczQyBgQmxvYmAgb2JqZWN0ICh3aGljaCBgRmlsZWAgaW5oZXJpdHMgZnJvbSlcbiAqIEBwYXJhbSAgeyp9IG9ialxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNCbG9iKG9iaikge1xuXHRyZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9iai5hcnJheUJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnR5cGUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBvYmouc3RyZWFtID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5jb25zdHJ1Y3Rvci5uYW1lID09PSAnc3RyaW5nJyAmJiAvXihCbG9ifEZpbGUpJC8udGVzdChvYmouY29uc3RydWN0b3IubmFtZSkgJiYgL14oQmxvYnxGaWxlKSQvLnRlc3Qob2JqW1N5bWJvbC50b1N0cmluZ1RhZ10pO1xufVxuXG4vKipcbiAqIENsb25lIGJvZHkgZ2l2ZW4gUmVzL1JlcSBpbnN0YW5jZVxuICpcbiAqIEBwYXJhbSAgIE1peGVkICBpbnN0YW5jZSAgUmVzcG9uc2Ugb3IgUmVxdWVzdCBpbnN0YW5jZVxuICogQHJldHVybiAgTWl4ZWRcbiAqL1xuZnVuY3Rpb24gY2xvbmUoaW5zdGFuY2UpIHtcblx0bGV0IHAxLCBwMjtcblx0bGV0IGJvZHkgPSBpbnN0YW5jZS5ib2R5O1xuXG5cdC8vIGRvbid0IGFsbG93IGNsb25pbmcgYSB1c2VkIGJvZHlcblx0aWYgKGluc3RhbmNlLmJvZHlVc2VkKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdjYW5ub3QgY2xvbmUgYm9keSBhZnRlciBpdCBpcyB1c2VkJyk7XG5cdH1cblxuXHQvLyBjaGVjayB0aGF0IGJvZHkgaXMgYSBzdHJlYW0gYW5kIG5vdCBmb3JtLWRhdGEgb2JqZWN0XG5cdC8vIG5vdGU6IHdlIGNhbid0IGNsb25lIHRoZSBmb3JtLWRhdGEgb2JqZWN0IHdpdGhvdXQgaGF2aW5nIGl0IGFzIGEgZGVwZW5kZW5jeVxuXHRpZiAoYm9keSBpbnN0YW5jZW9mIFN0cmVhbSAmJiB0eXBlb2YgYm9keS5nZXRCb3VuZGFyeSAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdC8vIHRlZSBpbnN0YW5jZSBib2R5XG5cdFx0cDEgPSBuZXcgUGFzc1Rocm91Z2goKTtcblx0XHRwMiA9IG5ldyBQYXNzVGhyb3VnaCgpO1xuXHRcdGJvZHkucGlwZShwMSk7XG5cdFx0Ym9keS5waXBlKHAyKTtcblx0XHQvLyBzZXQgaW5zdGFuY2UgYm9keSB0byB0ZWVkIGJvZHkgYW5kIHJldHVybiB0aGUgb3RoZXIgdGVlZCBib2R5XG5cdFx0aW5zdGFuY2VbSU5URVJOQUxTXS5ib2R5ID0gcDE7XG5cdFx0Ym9keSA9IHAyO1xuXHR9XG5cblx0cmV0dXJuIGJvZHk7XG59XG5cbi8qKlxuICogUGVyZm9ybXMgdGhlIG9wZXJhdGlvbiBcImV4dHJhY3QgYSBgQ29udGVudC1UeXBlYCB2YWx1ZSBmcm9tIHxvYmplY3R8XCIgYXNcbiAqIHNwZWNpZmllZCBpbiB0aGUgc3BlY2lmaWNhdGlvbjpcbiAqIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWJvZHlpbml0LWV4dHJhY3RcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCBpbnN0YW5jZS5ib2R5IGlzIHByZXNlbnQuXG4gKlxuICogQHBhcmFtICAgTWl4ZWQgIGluc3RhbmNlICBBbnkgb3B0aW9ucy5ib2R5IGlucHV0XG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RDb250ZW50VHlwZShib2R5KSB7XG5cdGlmIChib2R5ID09PSBudWxsKSB7XG5cdFx0Ly8gYm9keSBpcyBudWxsXG5cdFx0cmV0dXJuIG51bGw7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG5cdFx0Ly8gYm9keSBpcyBzdHJpbmdcblx0XHRyZXR1cm4gJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCc7XG5cdH0gZWxzZSBpZiAoaXNVUkxTZWFyY2hQYXJhbXMoYm9keSkpIHtcblx0XHQvLyBib2R5IGlzIGEgVVJMU2VhcmNoUGFyYW1zXG5cdFx0cmV0dXJuICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCc7XG5cdH0gZWxzZSBpZiAoaXNCbG9iKGJvZHkpKSB7XG5cdFx0Ly8gYm9keSBpcyBibG9iXG5cdFx0cmV0dXJuIGJvZHkudHlwZSB8fCBudWxsO1xuXHR9IGVsc2UgaWYgKEJ1ZmZlci5pc0J1ZmZlcihib2R5KSkge1xuXHRcdC8vIGJvZHkgaXMgYnVmZmVyXG5cdFx0cmV0dXJuIG51bGw7XG5cdH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGJvZHkpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nKSB7XG5cdFx0Ly8gYm9keSBpcyBBcnJheUJ1ZmZlclxuXHRcdHJldHVybiBudWxsO1xuXHR9IGVsc2UgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhib2R5KSkge1xuXHRcdC8vIGJvZHkgaXMgQXJyYXlCdWZmZXJWaWV3XG5cdFx0cmV0dXJuIG51bGw7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuZ2V0Qm91bmRhcnkgPT09ICdmdW5jdGlvbicpIHtcblx0XHQvLyBkZXRlY3QgZm9ybSBkYXRhIGlucHV0IGZyb20gZm9ybS1kYXRhIG1vZHVsZVxuXHRcdHJldHVybiBgbXVsdGlwYXJ0L2Zvcm0tZGF0YTtib3VuZGFyeT0ke2JvZHkuZ2V0Qm91bmRhcnkoKX1gO1xuXHR9IGVsc2UgaWYgKGJvZHkgaW5zdGFuY2VvZiBTdHJlYW0pIHtcblx0XHQvLyBib2R5IGlzIHN0cmVhbVxuXHRcdC8vIGNhbid0IHJlYWxseSBkbyBtdWNoIGFib3V0IHRoaXNcblx0XHRyZXR1cm4gbnVsbDtcblx0fSBlbHNlIHtcblx0XHQvLyBCb2R5IGNvbnN0cnVjdG9yIGRlZmF1bHRzIG90aGVyIHRoaW5ncyB0byBzdHJpbmdcblx0XHRyZXR1cm4gJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCc7XG5cdH1cbn1cblxuLyoqXG4gKiBUaGUgRmV0Y2ggU3RhbmRhcmQgdHJlYXRzIHRoaXMgYXMgaWYgXCJ0b3RhbCBieXRlc1wiIGlzIGEgcHJvcGVydHkgb24gdGhlIGJvZHkuXG4gKiBGb3IgdXMsIHdlIGhhdmUgdG8gZXhwbGljaXRseSBnZXQgaXQgd2l0aCBhIGZ1bmN0aW9uLlxuICpcbiAqIHJlZjogaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtYm9keS10b3RhbC1ieXRlc1xuICpcbiAqIEBwYXJhbSAgIEJvZHkgICAgaW5zdGFuY2UgICBJbnN0YW5jZSBvZiBCb2R5XG4gKiBAcmV0dXJuICBOdW1iZXI/ICAgICAgICAgICAgTnVtYmVyIG9mIGJ5dGVzLCBvciBudWxsIGlmIG5vdCBwb3NzaWJsZVxuICovXG5mdW5jdGlvbiBnZXRUb3RhbEJ5dGVzKGluc3RhbmNlKSB7XG5cdGNvbnN0IGJvZHkgPSBpbnN0YW5jZS5ib2R5O1xuXG5cblx0aWYgKGJvZHkgPT09IG51bGwpIHtcblx0XHQvLyBib2R5IGlzIG51bGxcblx0XHRyZXR1cm4gMDtcblx0fSBlbHNlIGlmIChpc0Jsb2IoYm9keSkpIHtcblx0XHRyZXR1cm4gYm9keS5zaXplO1xuXHR9IGVsc2UgaWYgKEJ1ZmZlci5pc0J1ZmZlcihib2R5KSkge1xuXHRcdC8vIGJvZHkgaXMgYnVmZmVyXG5cdFx0cmV0dXJuIGJvZHkubGVuZ3RoO1xuXHR9IGVsc2UgaWYgKGJvZHkgJiYgdHlwZW9mIGJvZHkuZ2V0TGVuZ3RoU3luYyA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdC8vIGRldGVjdCBmb3JtIGRhdGEgaW5wdXQgZnJvbSBmb3JtLWRhdGEgbW9kdWxlXG5cdFx0aWYgKGJvZHkuX2xlbmd0aFJldHJpZXZlcnMgJiYgYm9keS5fbGVuZ3RoUmV0cmlldmVycy5sZW5ndGggPT0gMCB8fCAvLyAxLnhcblx0XHRib2R5Lmhhc0tub3duTGVuZ3RoICYmIGJvZHkuaGFzS25vd25MZW5ndGgoKSkge1xuXHRcdFx0Ly8gMi54XG5cdFx0XHRyZXR1cm4gYm9keS5nZXRMZW5ndGhTeW5jKCk7XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9IGVsc2Uge1xuXHRcdC8vIGJvZHkgaXMgc3RyZWFtXG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cbn1cblxuLyoqXG4gKiBXcml0ZSBhIEJvZHkgdG8gYSBOb2RlLmpzIFdyaXRhYmxlU3RyZWFtIChlLmcuIGh0dHAuUmVxdWVzdCkgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSAgIEJvZHkgICAgaW5zdGFuY2UgICBJbnN0YW5jZSBvZiBCb2R5XG4gKiBAcmV0dXJuICBWb2lkXG4gKi9cbmZ1bmN0aW9uIHdyaXRlVG9TdHJlYW0oZGVzdCwgaW5zdGFuY2UpIHtcblx0Y29uc3QgYm9keSA9IGluc3RhbmNlLmJvZHk7XG5cblxuXHRpZiAoYm9keSA9PT0gbnVsbCkge1xuXHRcdC8vIGJvZHkgaXMgbnVsbFxuXHRcdGRlc3QuZW5kKCk7XG5cdH0gZWxzZSBpZiAoaXNCbG9iKGJvZHkpKSB7XG5cdFx0Ym9keS5zdHJlYW0oKS5waXBlKGRlc3QpO1xuXHR9IGVsc2UgaWYgKEJ1ZmZlci5pc0J1ZmZlcihib2R5KSkge1xuXHRcdC8vIGJvZHkgaXMgYnVmZmVyXG5cdFx0ZGVzdC53cml0ZShib2R5KTtcblx0XHRkZXN0LmVuZCgpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIGJvZHkgaXMgc3RyZWFtXG5cdFx0Ym9keS5waXBlKGRlc3QpO1xuXHR9XG59XG5cbi8vIGV4cG9zZSBQcm9taXNlXG5Cb2R5LlByb21pc2UgPSBnbG9iYWwuUHJvbWlzZTtcblxuLyoqXG4gKiBoZWFkZXJzLmpzXG4gKlxuICogSGVhZGVycyBjbGFzcyBvZmZlcnMgY29udmVuaWVudCBoZWxwZXJzXG4gKi9cblxuY29uc3QgaW52YWxpZFRva2VuUmVnZXggPSAvW15cXF5fYGEtekEtWlxcLTAtOSEjJCUmJyorLnx+XS87XG5jb25zdCBpbnZhbGlkSGVhZGVyQ2hhclJlZ2V4ID0gL1teXFx0XFx4MjAtXFx4N2VcXHg4MC1cXHhmZl0vO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZU5hbWUobmFtZSkge1xuXHRuYW1lID0gYCR7bmFtZX1gO1xuXHRpZiAoaW52YWxpZFRva2VuUmVnZXgudGVzdChuYW1lKSB8fCBuYW1lID09PSAnJykge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYCR7bmFtZX0gaXMgbm90IGEgbGVnYWwgSFRUUCBoZWFkZXIgbmFtZWApO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlVmFsdWUodmFsdWUpIHtcblx0dmFsdWUgPSBgJHt2YWx1ZX1gO1xuXHRpZiAoaW52YWxpZEhlYWRlckNoYXJSZWdleC50ZXN0KHZhbHVlKSkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYCR7dmFsdWV9IGlzIG5vdCBhIGxlZ2FsIEhUVFAgaGVhZGVyIHZhbHVlYCk7XG5cdH1cbn1cblxuLyoqXG4gKiBGaW5kIHRoZSBrZXkgaW4gdGhlIG1hcCBvYmplY3QgZ2l2ZW4gYSBoZWFkZXIgbmFtZS5cbiAqXG4gKiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBub3QgZm91bmQuXG4gKlxuICogQHBhcmFtICAgU3RyaW5nICBuYW1lICBIZWFkZXIgbmFtZVxuICogQHJldHVybiAgU3RyaW5nfFVuZGVmaW5lZFxuICovXG5mdW5jdGlvbiBmaW5kKG1hcCwgbmFtZSkge1xuXHRuYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRmb3IgKGNvbnN0IGtleSBpbiBtYXApIHtcblx0XHRpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IG5hbWUpIHtcblx0XHRcdHJldHVybiBrZXk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IE1BUCA9IFN5bWJvbCgnbWFwJyk7XG5jbGFzcyBIZWFkZXJzIHtcblx0LyoqXG4gICogSGVhZGVycyBjbGFzc1xuICAqXG4gICogQHBhcmFtICAgT2JqZWN0ICBoZWFkZXJzICBSZXNwb25zZSBoZWFkZXJzXG4gICogQHJldHVybiAgVm9pZFxuICAqL1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRsZXQgaW5pdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkO1xuXG5cdFx0dGhpc1tNQVBdID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuXHRcdGlmIChpbml0IGluc3RhbmNlb2YgSGVhZGVycykge1xuXHRcdFx0Y29uc3QgcmF3SGVhZGVycyA9IGluaXQucmF3KCk7XG5cdFx0XHRjb25zdCBoZWFkZXJOYW1lcyA9IE9iamVjdC5rZXlzKHJhd0hlYWRlcnMpO1xuXG5cdFx0XHRmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgaGVhZGVyTmFtZXMpIHtcblx0XHRcdFx0Zm9yIChjb25zdCB2YWx1ZSBvZiByYXdIZWFkZXJzW2hlYWRlck5hbWVdKSB7XG5cdFx0XHRcdFx0dGhpcy5hcHBlbmQoaGVhZGVyTmFtZSwgdmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBXZSBkb24ndCB3b3JyeSBhYm91dCBjb252ZXJ0aW5nIHByb3AgdG8gQnl0ZVN0cmluZyBoZXJlIGFzIGFwcGVuZCgpXG5cdFx0Ly8gd2lsbCBoYW5kbGUgaXQuXG5cdFx0aWYgKGluaXQgPT0gbnVsbCkgOyBlbHNlIGlmICh0eXBlb2YgaW5pdCA9PT0gJ29iamVjdCcpIHtcblx0XHRcdGNvbnN0IG1ldGhvZCA9IGluaXRbU3ltYm9sLml0ZXJhdG9yXTtcblx0XHRcdGlmIChtZXRob2QgIT0gbnVsbCkge1xuXHRcdFx0XHRpZiAodHlwZW9mIG1ldGhvZCAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0hlYWRlciBwYWlycyBtdXN0IGJlIGl0ZXJhYmxlJyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBzZXF1ZW5jZTxzZXF1ZW5jZTxCeXRlU3RyaW5nPj5cblx0XHRcdFx0Ly8gTm90ZTogcGVyIHNwZWMgd2UgaGF2ZSB0byBmaXJzdCBleGhhdXN0IHRoZSBsaXN0cyB0aGVuIHByb2Nlc3MgdGhlbVxuXHRcdFx0XHRjb25zdCBwYWlycyA9IFtdO1xuXHRcdFx0XHRmb3IgKGNvbnN0IHBhaXIgb2YgaW5pdCkge1xuXHRcdFx0XHRcdGlmICh0eXBlb2YgcGFpciAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIHBhaXJbU3ltYm9sLml0ZXJhdG9yXSAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRWFjaCBoZWFkZXIgcGFpciBtdXN0IGJlIGl0ZXJhYmxlJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHBhaXJzLnB1c2goQXJyYXkuZnJvbShwYWlyKSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcblx0XHRcdFx0XHRpZiAocGFpci5sZW5ndGggIT09IDIpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0VhY2ggaGVhZGVyIHBhaXIgbXVzdCBiZSBhIG5hbWUvdmFsdWUgdHVwbGUnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGhpcy5hcHBlbmQocGFpclswXSwgcGFpclsxXSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIHJlY29yZDxCeXRlU3RyaW5nLCBCeXRlU3RyaW5nPlxuXHRcdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhpbml0KSkge1xuXHRcdFx0XHRcdGNvbnN0IHZhbHVlID0gaW5pdFtrZXldO1xuXHRcdFx0XHRcdHRoaXMuYXBwZW5kKGtleSwgdmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ1Byb3ZpZGVkIGluaXRpYWxpemVyIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG4gICogUmV0dXJuIGNvbWJpbmVkIGhlYWRlciB2YWx1ZSBnaXZlbiBuYW1lXG4gICpcbiAgKiBAcGFyYW0gICBTdHJpbmcgIG5hbWUgIEhlYWRlciBuYW1lXG4gICogQHJldHVybiAgTWl4ZWRcbiAgKi9cblx0Z2V0KG5hbWUpIHtcblx0XHRuYW1lID0gYCR7bmFtZX1gO1xuXHRcdHZhbGlkYXRlTmFtZShuYW1lKTtcblx0XHRjb25zdCBrZXkgPSBmaW5kKHRoaXNbTUFQXSwgbmFtZSk7XG5cdFx0aWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1tNQVBdW2tleV0uam9pbignLCAnKTtcblx0fVxuXG5cdC8qKlxuICAqIEl0ZXJhdGUgb3ZlciBhbGwgaGVhZGVyc1xuICAqXG4gICogQHBhcmFtICAgRnVuY3Rpb24gIGNhbGxiYWNrICBFeGVjdXRlZCBmb3IgZWFjaCBpdGVtIHdpdGggcGFyYW1ldGVycyAodmFsdWUsIG5hbWUsIHRoaXNBcmcpXG4gICogQHBhcmFtICAgQm9vbGVhbiAgIHRoaXNBcmcgICBgdGhpc2AgY29udGV4dCBmb3IgY2FsbGJhY2sgZnVuY3Rpb25cbiAgKiBAcmV0dXJuICBWb2lkXG4gICovXG5cdGZvckVhY2goY2FsbGJhY2spIHtcblx0XHRsZXQgdGhpc0FyZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuXG5cdFx0bGV0IHBhaXJzID0gZ2V0SGVhZGVycyh0aGlzKTtcblx0XHRsZXQgaSA9IDA7XG5cdFx0d2hpbGUgKGkgPCBwYWlycy5sZW5ndGgpIHtcblx0XHRcdHZhciBfcGFpcnMkaSA9IHBhaXJzW2ldO1xuXHRcdFx0Y29uc3QgbmFtZSA9IF9wYWlycyRpWzBdLFxuXHRcdFx0ICAgICAgdmFsdWUgPSBfcGFpcnMkaVsxXTtcblxuXHRcdFx0Y2FsbGJhY2suY2FsbCh0aGlzQXJnLCB2YWx1ZSwgbmFtZSwgdGhpcyk7XG5cdFx0XHRwYWlycyA9IGdldEhlYWRlcnModGhpcyk7XG5cdFx0XHRpKys7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG4gICogT3ZlcndyaXRlIGhlYWRlciB2YWx1ZXMgZ2l2ZW4gbmFtZVxuICAqXG4gICogQHBhcmFtICAgU3RyaW5nICBuYW1lICAgSGVhZGVyIG5hbWVcbiAgKiBAcGFyYW0gICBTdHJpbmcgIHZhbHVlICBIZWFkZXIgdmFsdWVcbiAgKiBAcmV0dXJuICBWb2lkXG4gICovXG5cdHNldChuYW1lLCB2YWx1ZSkge1xuXHRcdG5hbWUgPSBgJHtuYW1lfWA7XG5cdFx0dmFsdWUgPSBgJHt2YWx1ZX1gO1xuXHRcdHZhbGlkYXRlTmFtZShuYW1lKTtcblx0XHR2YWxpZGF0ZVZhbHVlKHZhbHVlKTtcblx0XHRjb25zdCBrZXkgPSBmaW5kKHRoaXNbTUFQXSwgbmFtZSk7XG5cdFx0dGhpc1tNQVBdW2tleSAhPT0gdW5kZWZpbmVkID8ga2V5IDogbmFtZV0gPSBbdmFsdWVdO1xuXHR9XG5cblx0LyoqXG4gICogQXBwZW5kIGEgdmFsdWUgb250byBleGlzdGluZyBoZWFkZXJcbiAgKlxuICAqIEBwYXJhbSAgIFN0cmluZyAgbmFtZSAgIEhlYWRlciBuYW1lXG4gICogQHBhcmFtICAgU3RyaW5nICB2YWx1ZSAgSGVhZGVyIHZhbHVlXG4gICogQHJldHVybiAgVm9pZFxuICAqL1xuXHRhcHBlbmQobmFtZSwgdmFsdWUpIHtcblx0XHRuYW1lID0gYCR7bmFtZX1gO1xuXHRcdHZhbHVlID0gYCR7dmFsdWV9YDtcblx0XHR2YWxpZGF0ZU5hbWUobmFtZSk7XG5cdFx0dmFsaWRhdGVWYWx1ZSh2YWx1ZSk7XG5cdFx0Y29uc3Qga2V5ID0gZmluZCh0aGlzW01BUF0sIG5hbWUpO1xuXHRcdGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhpc1tNQVBdW2tleV0ucHVzaCh2YWx1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXNbTUFQXVtuYW1lXSA9IFt2YWx1ZV07XG5cdFx0fVxuXHR9XG5cblx0LyoqXG4gICogQ2hlY2sgZm9yIGhlYWRlciBuYW1lIGV4aXN0ZW5jZVxuICAqXG4gICogQHBhcmFtICAgU3RyaW5nICAgbmFtZSAgSGVhZGVyIG5hbWVcbiAgKiBAcmV0dXJuICBCb29sZWFuXG4gICovXG5cdGhhcyhuYW1lKSB7XG5cdFx0bmFtZSA9IGAke25hbWV9YDtcblx0XHR2YWxpZGF0ZU5hbWUobmFtZSk7XG5cdFx0cmV0dXJuIGZpbmQodGhpc1tNQVBdLCBuYW1lKSAhPT0gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG4gICogRGVsZXRlIGFsbCBoZWFkZXIgdmFsdWVzIGdpdmVuIG5hbWVcbiAgKlxuICAqIEBwYXJhbSAgIFN0cmluZyAgbmFtZSAgSGVhZGVyIG5hbWVcbiAgKiBAcmV0dXJuICBWb2lkXG4gICovXG5cdGRlbGV0ZShuYW1lKSB7XG5cdFx0bmFtZSA9IGAke25hbWV9YDtcblx0XHR2YWxpZGF0ZU5hbWUobmFtZSk7XG5cdFx0Y29uc3Qga2V5ID0gZmluZCh0aGlzW01BUF0sIG5hbWUpO1xuXHRcdGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0ZGVsZXRlIHRoaXNbTUFQXVtrZXldO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuICAqIFJldHVybiByYXcgaGVhZGVycyAobm9uLXNwZWMgYXBpKVxuICAqXG4gICogQHJldHVybiAgT2JqZWN0XG4gICovXG5cdHJhdygpIHtcblx0XHRyZXR1cm4gdGhpc1tNQVBdO1xuXHR9XG5cblx0LyoqXG4gICogR2V0IGFuIGl0ZXJhdG9yIG9uIGtleXMuXG4gICpcbiAgKiBAcmV0dXJuICBJdGVyYXRvclxuICAqL1xuXHRrZXlzKCkge1xuXHRcdHJldHVybiBjcmVhdGVIZWFkZXJzSXRlcmF0b3IodGhpcywgJ2tleScpO1xuXHR9XG5cblx0LyoqXG4gICogR2V0IGFuIGl0ZXJhdG9yIG9uIHZhbHVlcy5cbiAgKlxuICAqIEByZXR1cm4gIEl0ZXJhdG9yXG4gICovXG5cdHZhbHVlcygpIHtcblx0XHRyZXR1cm4gY3JlYXRlSGVhZGVyc0l0ZXJhdG9yKHRoaXMsICd2YWx1ZScpO1xuXHR9XG5cblx0LyoqXG4gICogR2V0IGFuIGl0ZXJhdG9yIG9uIGVudHJpZXMuXG4gICpcbiAgKiBUaGlzIGlzIHRoZSBkZWZhdWx0IGl0ZXJhdG9yIG9mIHRoZSBIZWFkZXJzIG9iamVjdC5cbiAgKlxuICAqIEByZXR1cm4gIEl0ZXJhdG9yXG4gICovXG5cdFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuXHRcdHJldHVybiBjcmVhdGVIZWFkZXJzSXRlcmF0b3IodGhpcywgJ2tleSt2YWx1ZScpO1xuXHR9XG59XG5IZWFkZXJzLnByb3RvdHlwZS5lbnRyaWVzID0gSGVhZGVycy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlYWRlcnMucHJvdG90eXBlLCBTeW1ib2wudG9TdHJpbmdUYWcsIHtcblx0dmFsdWU6ICdIZWFkZXJzJyxcblx0d3JpdGFibGU6IGZhbHNlLFxuXHRlbnVtZXJhYmxlOiBmYWxzZSxcblx0Y29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoSGVhZGVycy5wcm90b3R5cGUsIHtcblx0Z2V0OiB7IGVudW1lcmFibGU6IHRydWUgfSxcblx0Zm9yRWFjaDogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdHNldDogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGFwcGVuZDogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGhhczogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGRlbGV0ZTogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGtleXM6IHsgZW51bWVyYWJsZTogdHJ1ZSB9LFxuXHR2YWx1ZXM6IHsgZW51bWVyYWJsZTogdHJ1ZSB9LFxuXHRlbnRyaWVzOiB7IGVudW1lcmFibGU6IHRydWUgfVxufSk7XG5cbmZ1bmN0aW9uIGdldEhlYWRlcnMoaGVhZGVycykge1xuXHRsZXQga2luZCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJ2tleSt2YWx1ZSc7XG5cblx0Y29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGhlYWRlcnNbTUFQXSkuc29ydCgpO1xuXHRyZXR1cm4ga2V5cy5tYXAoa2luZCA9PT0gJ2tleScgPyBmdW5jdGlvbiAoaykge1xuXHRcdHJldHVybiBrLnRvTG93ZXJDYXNlKCk7XG5cdH0gOiBraW5kID09PSAndmFsdWUnID8gZnVuY3Rpb24gKGspIHtcblx0XHRyZXR1cm4gaGVhZGVyc1tNQVBdW2tdLmpvaW4oJywgJyk7XG5cdH0gOiBmdW5jdGlvbiAoaykge1xuXHRcdHJldHVybiBbay50b0xvd2VyQ2FzZSgpLCBoZWFkZXJzW01BUF1ba10uam9pbignLCAnKV07XG5cdH0pO1xufVxuXG5jb25zdCBJTlRFUk5BTCA9IFN5bWJvbCgnaW50ZXJuYWwnKTtcblxuZnVuY3Rpb24gY3JlYXRlSGVhZGVyc0l0ZXJhdG9yKHRhcmdldCwga2luZCkge1xuXHRjb25zdCBpdGVyYXRvciA9IE9iamVjdC5jcmVhdGUoSGVhZGVyc0l0ZXJhdG9yUHJvdG90eXBlKTtcblx0aXRlcmF0b3JbSU5URVJOQUxdID0ge1xuXHRcdHRhcmdldCxcblx0XHRraW5kLFxuXHRcdGluZGV4OiAwXG5cdH07XG5cdHJldHVybiBpdGVyYXRvcjtcbn1cblxuY29uc3QgSGVhZGVyc0l0ZXJhdG9yUHJvdG90eXBlID0gT2JqZWN0LnNldFByb3RvdHlwZU9mKHtcblx0bmV4dCgpIHtcblx0XHQvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcblx0XHRpZiAoIXRoaXMgfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpICE9PSBIZWFkZXJzSXRlcmF0b3JQcm90b3R5cGUpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ1ZhbHVlIG9mIGB0aGlzYCBpcyBub3QgYSBIZWFkZXJzSXRlcmF0b3InKTtcblx0XHR9XG5cblx0XHR2YXIgX0lOVEVSTkFMID0gdGhpc1tJTlRFUk5BTF07XG5cdFx0Y29uc3QgdGFyZ2V0ID0gX0lOVEVSTkFMLnRhcmdldCxcblx0XHQgICAgICBraW5kID0gX0lOVEVSTkFMLmtpbmQsXG5cdFx0ICAgICAgaW5kZXggPSBfSU5URVJOQUwuaW5kZXg7XG5cblx0XHRjb25zdCB2YWx1ZXMgPSBnZXRIZWFkZXJzKHRhcmdldCwga2luZCk7XG5cdFx0Y29uc3QgbGVuID0gdmFsdWVzLmxlbmd0aDtcblx0XHRpZiAoaW5kZXggPj0gbGVuKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR2YWx1ZTogdW5kZWZpbmVkLFxuXHRcdFx0XHRkb25lOiB0cnVlXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdHRoaXNbSU5URVJOQUxdLmluZGV4ID0gaW5kZXggKyAxO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHZhbHVlOiB2YWx1ZXNbaW5kZXhdLFxuXHRcdFx0ZG9uZTogZmFsc2Vcblx0XHR9O1xuXHR9XG59LCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoT2JqZWN0LmdldFByb3RvdHlwZU9mKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkpKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlYWRlcnNJdGVyYXRvclByb3RvdHlwZSwgU3ltYm9sLnRvU3RyaW5nVGFnLCB7XG5cdHZhbHVlOiAnSGVhZGVyc0l0ZXJhdG9yJyxcblx0d3JpdGFibGU6IGZhbHNlLFxuXHRlbnVtZXJhYmxlOiBmYWxzZSxcblx0Y29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxuLyoqXG4gKiBFeHBvcnQgdGhlIEhlYWRlcnMgb2JqZWN0IGluIGEgZm9ybSB0aGF0IE5vZGUuanMgY2FuIGNvbnN1bWUuXG4gKlxuICogQHBhcmFtICAgSGVhZGVycyAgaGVhZGVyc1xuICogQHJldHVybiAgT2JqZWN0XG4gKi9cbmZ1bmN0aW9uIGV4cG9ydE5vZGVDb21wYXRpYmxlSGVhZGVycyhoZWFkZXJzKSB7XG5cdGNvbnN0IG9iaiA9IE9iamVjdC5hc3NpZ24oeyBfX3Byb3RvX186IG51bGwgfSwgaGVhZGVyc1tNQVBdKTtcblxuXHQvLyBodHRwLnJlcXVlc3QoKSBvbmx5IHN1cHBvcnRzIHN0cmluZyBhcyBIb3N0IGhlYWRlci4gVGhpcyBoYWNrIG1ha2VzXG5cdC8vIHNwZWNpZnlpbmcgY3VzdG9tIEhvc3QgaGVhZGVyIHBvc3NpYmxlLlxuXHRjb25zdCBob3N0SGVhZGVyS2V5ID0gZmluZChoZWFkZXJzW01BUF0sICdIb3N0Jyk7XG5cdGlmIChob3N0SGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcblx0XHRvYmpbaG9zdEhlYWRlcktleV0gPSBvYmpbaG9zdEhlYWRlcktleV1bMF07XG5cdH1cblxuXHRyZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIEhlYWRlcnMgb2JqZWN0IGZyb20gYW4gb2JqZWN0IG9mIGhlYWRlcnMsIGlnbm9yaW5nIHRob3NlIHRoYXQgZG9cbiAqIG5vdCBjb25mb3JtIHRvIEhUVFAgZ3JhbW1hciBwcm9kdWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0gICBPYmplY3QgIG9iaiAgT2JqZWN0IG9mIGhlYWRlcnNcbiAqIEByZXR1cm4gIEhlYWRlcnNcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSGVhZGVyc0xlbmllbnQob2JqKSB7XG5cdGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuXHRmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMob2JqKSkge1xuXHRcdGlmIChpbnZhbGlkVG9rZW5SZWdleC50ZXN0KG5hbWUpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkob2JqW25hbWVdKSkge1xuXHRcdFx0Zm9yIChjb25zdCB2YWwgb2Ygb2JqW25hbWVdKSB7XG5cdFx0XHRcdGlmIChpbnZhbGlkSGVhZGVyQ2hhclJlZ2V4LnRlc3QodmFsKSkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChoZWFkZXJzW01BUF1bbmFtZV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGhlYWRlcnNbTUFQXVtuYW1lXSA9IFt2YWxdO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGhlYWRlcnNbTUFQXVtuYW1lXS5wdXNoKHZhbCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKCFpbnZhbGlkSGVhZGVyQ2hhclJlZ2V4LnRlc3Qob2JqW25hbWVdKSkge1xuXHRcdFx0aGVhZGVyc1tNQVBdW25hbWVdID0gW29ialtuYW1lXV07XG5cdFx0fVxuXHR9XG5cdHJldHVybiBoZWFkZXJzO1xufVxuXG5jb25zdCBJTlRFUk5BTFMkMSA9IFN5bWJvbCgnUmVzcG9uc2UgaW50ZXJuYWxzJyk7XG5cbi8vIGZpeCBhbiBpc3N1ZSB3aGVyZSBcIlNUQVRVU19DT0RFU1wiIGFyZW4ndCBhIG5hbWVkIGV4cG9ydCBmb3Igbm9kZSA8MTBcbmNvbnN0IFNUQVRVU19DT0RFUyA9IGh0dHAuU1RBVFVTX0NPREVTO1xuXG4vKipcbiAqIFJlc3BvbnNlIGNsYXNzXG4gKlxuICogQHBhcmFtICAgU3RyZWFtICBib2R5ICBSZWFkYWJsZSBzdHJlYW1cbiAqIEBwYXJhbSAgIE9iamVjdCAgb3B0cyAgUmVzcG9uc2Ugb3B0aW9uc1xuICogQHJldHVybiAgVm9pZFxuICovXG5jbGFzcyBSZXNwb25zZSB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGxldCBib2R5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBudWxsO1xuXHRcdGxldCBvcHRzID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuXHRcdEJvZHkuY2FsbCh0aGlzLCBib2R5LCBvcHRzKTtcblxuXHRcdGNvbnN0IHN0YXR1cyA9IG9wdHMuc3RhdHVzIHx8IDIwMDtcblx0XHRjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0cy5oZWFkZXJzKTtcblxuXHRcdGlmIChib2R5ICE9IG51bGwgJiYgIWhlYWRlcnMuaGFzKCdDb250ZW50LVR5cGUnKSkge1xuXHRcdFx0Y29uc3QgY29udGVudFR5cGUgPSBleHRyYWN0Q29udGVudFR5cGUoYm9keSk7XG5cdFx0XHRpZiAoY29udGVudFR5cGUpIHtcblx0XHRcdFx0aGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsIGNvbnRlbnRUeXBlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0aGlzW0lOVEVSTkFMUyQxXSA9IHtcblx0XHRcdHVybDogb3B0cy51cmwsXG5cdFx0XHRzdGF0dXMsXG5cdFx0XHRzdGF0dXNUZXh0OiBvcHRzLnN0YXR1c1RleHQgfHwgU1RBVFVTX0NPREVTW3N0YXR1c10sXG5cdFx0XHRoZWFkZXJzLFxuXHRcdFx0Y291bnRlcjogb3B0cy5jb3VudGVyXG5cdFx0fTtcblx0fVxuXG5cdGdldCB1cmwoKSB7XG5cdFx0cmV0dXJuIHRoaXNbSU5URVJOQUxTJDFdLnVybCB8fCAnJztcblx0fVxuXG5cdGdldCBzdGF0dXMoKSB7XG5cdFx0cmV0dXJuIHRoaXNbSU5URVJOQUxTJDFdLnN0YXR1cztcblx0fVxuXG5cdC8qKlxuICAqIENvbnZlbmllbmNlIHByb3BlcnR5IHJlcHJlc2VudGluZyBpZiB0aGUgcmVxdWVzdCBlbmRlZCBub3JtYWxseVxuICAqL1xuXHRnZXQgb2soKSB7XG5cdFx0cmV0dXJuIHRoaXNbSU5URVJOQUxTJDFdLnN0YXR1cyA+PSAyMDAgJiYgdGhpc1tJTlRFUk5BTFMkMV0uc3RhdHVzIDwgMzAwO1xuXHR9XG5cblx0Z2V0IHJlZGlyZWN0ZWQoKSB7XG5cdFx0cmV0dXJuIHRoaXNbSU5URVJOQUxTJDFdLmNvdW50ZXIgPiAwO1xuXHR9XG5cblx0Z2V0IHN0YXR1c1RleHQoKSB7XG5cdFx0cmV0dXJuIHRoaXNbSU5URVJOQUxTJDFdLnN0YXR1c1RleHQ7XG5cdH1cblxuXHRnZXQgaGVhZGVycygpIHtcblx0XHRyZXR1cm4gdGhpc1tJTlRFUk5BTFMkMV0uaGVhZGVycztcblx0fVxuXG5cdC8qKlxuICAqIENsb25lIHRoaXMgcmVzcG9uc2VcbiAgKlxuICAqIEByZXR1cm4gIFJlc3BvbnNlXG4gICovXG5cdGNsb25lKCkge1xuXHRcdHJldHVybiBuZXcgUmVzcG9uc2UoY2xvbmUodGhpcyksIHtcblx0XHRcdHVybDogdGhpcy51cmwsXG5cdFx0XHRzdGF0dXM6IHRoaXMuc3RhdHVzLFxuXHRcdFx0c3RhdHVzVGV4dDogdGhpcy5zdGF0dXNUZXh0LFxuXHRcdFx0aGVhZGVyczogdGhpcy5oZWFkZXJzLFxuXHRcdFx0b2s6IHRoaXMub2ssXG5cdFx0XHRyZWRpcmVjdGVkOiB0aGlzLnJlZGlyZWN0ZWRcblx0XHR9KTtcblx0fVxufVxuXG5Cb2R5Lm1peEluKFJlc3BvbnNlLnByb3RvdHlwZSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFJlc3BvbnNlLnByb3RvdHlwZSwge1xuXHR1cmw6IHsgZW51bWVyYWJsZTogdHJ1ZSB9LFxuXHRzdGF0dXM6IHsgZW51bWVyYWJsZTogdHJ1ZSB9LFxuXHRvazogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdHJlZGlyZWN0ZWQ6IHsgZW51bWVyYWJsZTogdHJ1ZSB9LFxuXHRzdGF0dXNUZXh0OiB7IGVudW1lcmFibGU6IHRydWUgfSxcblx0aGVhZGVyczogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGNsb25lOiB7IGVudW1lcmFibGU6IHRydWUgfVxufSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZXNwb25zZS5wcm90b3R5cGUsIFN5bWJvbC50b1N0cmluZ1RhZywge1xuXHR2YWx1ZTogJ1Jlc3BvbnNlJyxcblx0d3JpdGFibGU6IGZhbHNlLFxuXHRlbnVtZXJhYmxlOiBmYWxzZSxcblx0Y29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxuY29uc3QgSU5URVJOQUxTJDIgPSBTeW1ib2woJ1JlcXVlc3QgaW50ZXJuYWxzJyk7XG5jb25zdCBVUkwgPSBVcmwuVVJMIHx8IHdoYXR3Z1VybC5VUkw7XG5cbi8vIGZpeCBhbiBpc3N1ZSB3aGVyZSBcImZvcm1hdFwiLCBcInBhcnNlXCIgYXJlbid0IGEgbmFtZWQgZXhwb3J0IGZvciBub2RlIDwxMFxuY29uc3QgcGFyc2VfdXJsID0gVXJsLnBhcnNlO1xuY29uc3QgZm9ybWF0X3VybCA9IFVybC5mb3JtYXQ7XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgYG5ldyBVUkxgIHRvIGhhbmRsZSBhcmJpdHJhcnkgVVJMc1xuICpcbiAqIEBwYXJhbSAge3N0cmluZ30gdXJsU3RyXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5mdW5jdGlvbiBwYXJzZVVSTCh1cmxTdHIpIHtcblx0LypcbiBcdENoZWNrIHdoZXRoZXIgdGhlIFVSTCBpcyBhYnNvbHV0ZSBvciBub3RcbiBcdFx0U2NoZW1lOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMVxuIFx0QWJzb2x1dGUgVVJMOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTQuM1xuICovXG5cdGlmICgvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo6Ly5leGVjKHVybFN0cikpIHtcblx0XHR1cmxTdHIgPSBuZXcgVVJMKHVybFN0cikudG9TdHJpbmcoKTtcblx0fVxuXG5cdC8vIEZhbGxiYWNrIHRvIG9sZCBpbXBsZW1lbnRhdGlvbiBmb3IgYXJiaXRyYXJ5IFVSTHNcblx0cmV0dXJuIHBhcnNlX3VybCh1cmxTdHIpO1xufVxuXG5jb25zdCBzdHJlYW1EZXN0cnVjdGlvblN1cHBvcnRlZCA9ICdkZXN0cm95JyBpbiBTdHJlYW0uUmVhZGFibGUucHJvdG90eXBlO1xuXG4vKipcbiAqIENoZWNrIGlmIGEgdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgUmVxdWVzdC5cbiAqXG4gKiBAcGFyYW0gICBNaXhlZCAgIGlucHV0XG4gKiBAcmV0dXJuICBCb29sZWFuXG4gKi9cbmZ1bmN0aW9uIGlzUmVxdWVzdChpbnB1dCkge1xuXHRyZXR1cm4gdHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgaW5wdXRbSU5URVJOQUxTJDJdID09PSAnb2JqZWN0Jztcbn1cblxuZnVuY3Rpb24gaXNBYm9ydFNpZ25hbChzaWduYWwpIHtcblx0Y29uc3QgcHJvdG8gPSBzaWduYWwgJiYgdHlwZW9mIHNpZ25hbCA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKHNpZ25hbCk7XG5cdHJldHVybiAhIShwcm90byAmJiBwcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSAnQWJvcnRTaWduYWwnKTtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IGNsYXNzXG4gKlxuICogQHBhcmFtICAgTWl4ZWQgICBpbnB1dCAgVXJsIG9yIFJlcXVlc3QgaW5zdGFuY2VcbiAqIEBwYXJhbSAgIE9iamVjdCAgaW5pdCAgIEN1c3RvbSBvcHRpb25zXG4gKiBAcmV0dXJuICBWb2lkXG4gKi9cbmNsYXNzIFJlcXVlc3Qge1xuXHRjb25zdHJ1Y3RvcihpbnB1dCkge1xuXHRcdGxldCBpbml0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuXHRcdGxldCBwYXJzZWRVUkw7XG5cblx0XHQvLyBub3JtYWxpemUgaW5wdXRcblx0XHRpZiAoIWlzUmVxdWVzdChpbnB1dCkpIHtcblx0XHRcdGlmIChpbnB1dCAmJiBpbnB1dC5ocmVmKSB7XG5cdFx0XHRcdC8vIGluIG9yZGVyIHRvIHN1cHBvcnQgTm9kZS5qcycgVXJsIG9iamVjdHM7IHRob3VnaCBXSEFUV0cncyBVUkwgb2JqZWN0c1xuXHRcdFx0XHQvLyB3aWxsIGZhbGwgaW50byB0aGlzIGJyYW5jaCBhbHNvIChzaW5jZSB0aGVpciBgdG9TdHJpbmcoKWAgd2lsbCByZXR1cm5cblx0XHRcdFx0Ly8gYGhyZWZgIHByb3BlcnR5IGFueXdheSlcblx0XHRcdFx0cGFyc2VkVVJMID0gcGFyc2VVUkwoaW5wdXQuaHJlZik7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBjb2VyY2UgaW5wdXQgdG8gYSBzdHJpbmcgYmVmb3JlIGF0dGVtcHRpbmcgdG8gcGFyc2Vcblx0XHRcdFx0cGFyc2VkVVJMID0gcGFyc2VVUkwoYCR7aW5wdXR9YCk7XG5cdFx0XHR9XG5cdFx0XHRpbnB1dCA9IHt9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRwYXJzZWRVUkwgPSBwYXJzZVVSTChpbnB1dC51cmwpO1xuXHRcdH1cblxuXHRcdGxldCBtZXRob2QgPSBpbml0Lm1ldGhvZCB8fCBpbnB1dC5tZXRob2QgfHwgJ0dFVCc7XG5cdFx0bWV0aG9kID0gbWV0aG9kLnRvVXBwZXJDYXNlKCk7XG5cblx0XHRpZiAoKGluaXQuYm9keSAhPSBudWxsIHx8IGlzUmVxdWVzdChpbnB1dCkgJiYgaW5wdXQuYm9keSAhPT0gbnVsbCkgJiYgKG1ldGhvZCA9PT0gJ0dFVCcgfHwgbWV0aG9kID09PSAnSEVBRCcpKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdSZXF1ZXN0IHdpdGggR0VUL0hFQUQgbWV0aG9kIGNhbm5vdCBoYXZlIGJvZHknKTtcblx0XHR9XG5cblx0XHRsZXQgaW5wdXRCb2R5ID0gaW5pdC5ib2R5ICE9IG51bGwgPyBpbml0LmJvZHkgOiBpc1JlcXVlc3QoaW5wdXQpICYmIGlucHV0LmJvZHkgIT09IG51bGwgPyBjbG9uZShpbnB1dCkgOiBudWxsO1xuXG5cdFx0Qm9keS5jYWxsKHRoaXMsIGlucHV0Qm9keSwge1xuXHRcdFx0dGltZW91dDogaW5pdC50aW1lb3V0IHx8IGlucHV0LnRpbWVvdXQgfHwgMCxcblx0XHRcdHNpemU6IGluaXQuc2l6ZSB8fCBpbnB1dC5zaXplIHx8IDBcblx0XHR9KTtcblxuXHRcdGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbml0LmhlYWRlcnMgfHwgaW5wdXQuaGVhZGVycyB8fCB7fSk7XG5cblx0XHRpZiAoaW5wdXRCb2R5ICE9IG51bGwgJiYgIWhlYWRlcnMuaGFzKCdDb250ZW50LVR5cGUnKSkge1xuXHRcdFx0Y29uc3QgY29udGVudFR5cGUgPSBleHRyYWN0Q29udGVudFR5cGUoaW5wdXRCb2R5KTtcblx0XHRcdGlmIChjb250ZW50VHlwZSkge1xuXHRcdFx0XHRoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgY29udGVudFR5cGUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGxldCBzaWduYWwgPSBpc1JlcXVlc3QoaW5wdXQpID8gaW5wdXQuc2lnbmFsIDogbnVsbDtcblx0XHRpZiAoJ3NpZ25hbCcgaW4gaW5pdCkgc2lnbmFsID0gaW5pdC5zaWduYWw7XG5cblx0XHRpZiAoc2lnbmFsICE9IG51bGwgJiYgIWlzQWJvcnRTaWduYWwoc2lnbmFsKSkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgc2lnbmFsIHRvIGJlIGFuIGluc3RhbmNlb2YgQWJvcnRTaWduYWwnKTtcblx0XHR9XG5cblx0XHR0aGlzW0lOVEVSTkFMUyQyXSA9IHtcblx0XHRcdG1ldGhvZCxcblx0XHRcdHJlZGlyZWN0OiBpbml0LnJlZGlyZWN0IHx8IGlucHV0LnJlZGlyZWN0IHx8ICdmb2xsb3cnLFxuXHRcdFx0aGVhZGVycyxcblx0XHRcdHBhcnNlZFVSTCxcblx0XHRcdHNpZ25hbFxuXHRcdH07XG5cblx0XHQvLyBub2RlLWZldGNoLW9ubHkgb3B0aW9uc1xuXHRcdHRoaXMuZm9sbG93ID0gaW5pdC5mb2xsb3cgIT09IHVuZGVmaW5lZCA/IGluaXQuZm9sbG93IDogaW5wdXQuZm9sbG93ICE9PSB1bmRlZmluZWQgPyBpbnB1dC5mb2xsb3cgOiAyMDtcblx0XHR0aGlzLmNvbXByZXNzID0gaW5pdC5jb21wcmVzcyAhPT0gdW5kZWZpbmVkID8gaW5pdC5jb21wcmVzcyA6IGlucHV0LmNvbXByZXNzICE9PSB1bmRlZmluZWQgPyBpbnB1dC5jb21wcmVzcyA6IHRydWU7XG5cdFx0dGhpcy5jb3VudGVyID0gaW5pdC5jb3VudGVyIHx8IGlucHV0LmNvdW50ZXIgfHwgMDtcblx0XHR0aGlzLmFnZW50ID0gaW5pdC5hZ2VudCB8fCBpbnB1dC5hZ2VudDtcblx0fVxuXG5cdGdldCBtZXRob2QoKSB7XG5cdFx0cmV0dXJuIHRoaXNbSU5URVJOQUxTJDJdLm1ldGhvZDtcblx0fVxuXG5cdGdldCB1cmwoKSB7XG5cdFx0cmV0dXJuIGZvcm1hdF91cmwodGhpc1tJTlRFUk5BTFMkMl0ucGFyc2VkVVJMKTtcblx0fVxuXG5cdGdldCBoZWFkZXJzKCkge1xuXHRcdHJldHVybiB0aGlzW0lOVEVSTkFMUyQyXS5oZWFkZXJzO1xuXHR9XG5cblx0Z2V0IHJlZGlyZWN0KCkge1xuXHRcdHJldHVybiB0aGlzW0lOVEVSTkFMUyQyXS5yZWRpcmVjdDtcblx0fVxuXG5cdGdldCBzaWduYWwoKSB7XG5cdFx0cmV0dXJuIHRoaXNbSU5URVJOQUxTJDJdLnNpZ25hbDtcblx0fVxuXG5cdC8qKlxuICAqIENsb25lIHRoaXMgcmVxdWVzdFxuICAqXG4gICogQHJldHVybiAgUmVxdWVzdFxuICAqL1xuXHRjbG9uZSgpIHtcblx0XHRyZXR1cm4gbmV3IFJlcXVlc3QodGhpcyk7XG5cdH1cbn1cblxuQm9keS5taXhJbihSZXF1ZXN0LnByb3RvdHlwZSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZXF1ZXN0LnByb3RvdHlwZSwgU3ltYm9sLnRvU3RyaW5nVGFnLCB7XG5cdHZhbHVlOiAnUmVxdWVzdCcsXG5cdHdyaXRhYmxlOiBmYWxzZSxcblx0ZW51bWVyYWJsZTogZmFsc2UsXG5cdGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFJlcXVlc3QucHJvdG90eXBlLCB7XG5cdG1ldGhvZDogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdHVybDogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGhlYWRlcnM6IHsgZW51bWVyYWJsZTogdHJ1ZSB9LFxuXHRyZWRpcmVjdDogeyBlbnVtZXJhYmxlOiB0cnVlIH0sXG5cdGNsb25lOiB7IGVudW1lcmFibGU6IHRydWUgfSxcblx0c2lnbmFsOiB7IGVudW1lcmFibGU6IHRydWUgfVxufSk7XG5cbi8qKlxuICogQ29udmVydCBhIFJlcXVlc3QgdG8gTm9kZS5qcyBodHRwIHJlcXVlc3Qgb3B0aW9ucy5cbiAqXG4gKiBAcGFyYW0gICBSZXF1ZXN0ICBBIFJlcXVlc3QgaW5zdGFuY2VcbiAqIEByZXR1cm4gIE9iamVjdCAgIFRoZSBvcHRpb25zIG9iamVjdCB0byBiZSBwYXNzZWQgdG8gaHR0cC5yZXF1ZXN0XG4gKi9cbmZ1bmN0aW9uIGdldE5vZGVSZXF1ZXN0T3B0aW9ucyhyZXF1ZXN0KSB7XG5cdGNvbnN0IHBhcnNlZFVSTCA9IHJlcXVlc3RbSU5URVJOQUxTJDJdLnBhcnNlZFVSTDtcblx0Y29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKHJlcXVlc3RbSU5URVJOQUxTJDJdLmhlYWRlcnMpO1xuXG5cdC8vIGZldGNoIHN0ZXAgMS4zXG5cdGlmICghaGVhZGVycy5oYXMoJ0FjY2VwdCcpKSB7XG5cdFx0aGVhZGVycy5zZXQoJ0FjY2VwdCcsICcqLyonKTtcblx0fVxuXG5cdC8vIEJhc2ljIGZldGNoXG5cdGlmICghcGFyc2VkVVJMLnByb3RvY29sIHx8ICFwYXJzZWRVUkwuaG9zdG5hbWUpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPbmx5IGFic29sdXRlIFVSTHMgYXJlIHN1cHBvcnRlZCcpO1xuXHR9XG5cblx0aWYgKCEvXmh0dHBzPzokLy50ZXN0KHBhcnNlZFVSTC5wcm90b2NvbCkpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPbmx5IEhUVFAoUykgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQnKTtcblx0fVxuXG5cdGlmIChyZXF1ZXN0LnNpZ25hbCAmJiByZXF1ZXN0LmJvZHkgaW5zdGFuY2VvZiBTdHJlYW0uUmVhZGFibGUgJiYgIXN0cmVhbURlc3RydWN0aW9uU3VwcG9ydGVkKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdDYW5jZWxsYXRpb24gb2Ygc3RyZWFtZWQgcmVxdWVzdHMgd2l0aCBBYm9ydFNpZ25hbCBpcyBub3Qgc3VwcG9ydGVkIGluIG5vZGUgPCA4Jyk7XG5cdH1cblxuXHQvLyBIVFRQLW5ldHdvcmstb3ItY2FjaGUgZmV0Y2ggc3RlcHMgMi40LTIuN1xuXHRsZXQgY29udGVudExlbmd0aFZhbHVlID0gbnVsbDtcblx0aWYgKHJlcXVlc3QuYm9keSA9PSBudWxsICYmIC9eKFBPU1R8UFVUKSQvaS50ZXN0KHJlcXVlc3QubWV0aG9kKSkge1xuXHRcdGNvbnRlbnRMZW5ndGhWYWx1ZSA9ICcwJztcblx0fVxuXHRpZiAocmVxdWVzdC5ib2R5ICE9IG51bGwpIHtcblx0XHRjb25zdCB0b3RhbEJ5dGVzID0gZ2V0VG90YWxCeXRlcyhyZXF1ZXN0KTtcblx0XHRpZiAodHlwZW9mIHRvdGFsQnl0ZXMgPT09ICdudW1iZXInKSB7XG5cdFx0XHRjb250ZW50TGVuZ3RoVmFsdWUgPSBTdHJpbmcodG90YWxCeXRlcyk7XG5cdFx0fVxuXHR9XG5cdGlmIChjb250ZW50TGVuZ3RoVmFsdWUpIHtcblx0XHRoZWFkZXJzLnNldCgnQ29udGVudC1MZW5ndGgnLCBjb250ZW50TGVuZ3RoVmFsdWUpO1xuXHR9XG5cblx0Ly8gSFRUUC1uZXR3b3JrLW9yLWNhY2hlIGZldGNoIHN0ZXAgMi4xMVxuXHRpZiAoIWhlYWRlcnMuaGFzKCdVc2VyLUFnZW50JykpIHtcblx0XHRoZWFkZXJzLnNldCgnVXNlci1BZ2VudCcsICdub2RlLWZldGNoLzEuMCAoK2h0dHBzOi8vZ2l0aHViLmNvbS9iaXRpbm4vbm9kZS1mZXRjaCknKTtcblx0fVxuXG5cdC8vIEhUVFAtbmV0d29yay1vci1jYWNoZSBmZXRjaCBzdGVwIDIuMTVcblx0aWYgKHJlcXVlc3QuY29tcHJlc3MgJiYgIWhlYWRlcnMuaGFzKCdBY2NlcHQtRW5jb2RpbmcnKSkge1xuXHRcdGhlYWRlcnMuc2V0KCdBY2NlcHQtRW5jb2RpbmcnLCAnZ3ppcCxkZWZsYXRlJyk7XG5cdH1cblxuXHRsZXQgYWdlbnQgPSByZXF1ZXN0LmFnZW50O1xuXHRpZiAodHlwZW9mIGFnZW50ID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0YWdlbnQgPSBhZ2VudChwYXJzZWRVUkwpO1xuXHR9XG5cblx0aWYgKCFoZWFkZXJzLmhhcygnQ29ubmVjdGlvbicpICYmICFhZ2VudCkge1xuXHRcdGhlYWRlcnMuc2V0KCdDb25uZWN0aW9uJywgJ2Nsb3NlJyk7XG5cdH1cblxuXHQvLyBIVFRQLW5ldHdvcmsgZmV0Y2ggc3RlcCA0LjJcblx0Ly8gY2h1bmtlZCBlbmNvZGluZyBpcyBoYW5kbGVkIGJ5IE5vZGUuanNcblxuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgcGFyc2VkVVJMLCB7XG5cdFx0bWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcblx0XHRoZWFkZXJzOiBleHBvcnROb2RlQ29tcGF0aWJsZUhlYWRlcnMoaGVhZGVycyksXG5cdFx0YWdlbnRcblx0fSk7XG59XG5cbi8qKlxuICogYWJvcnQtZXJyb3IuanNcbiAqXG4gKiBBYm9ydEVycm9yIGludGVyZmFjZSBmb3IgY2FuY2VsbGVkIHJlcXVlc3RzXG4gKi9cblxuLyoqXG4gKiBDcmVhdGUgQWJvcnRFcnJvciBpbnN0YW5jZVxuICpcbiAqIEBwYXJhbSAgIFN0cmluZyAgICAgIG1lc3NhZ2UgICAgICBFcnJvciBtZXNzYWdlIGZvciBodW1hblxuICogQHJldHVybiAgQWJvcnRFcnJvclxuICovXG5mdW5jdGlvbiBBYm9ydEVycm9yKG1lc3NhZ2UpIHtcbiAgRXJyb3IuY2FsbCh0aGlzLCBtZXNzYWdlKTtcblxuICB0aGlzLnR5cGUgPSAnYWJvcnRlZCc7XG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG5cbiAgLy8gaGlkZSBjdXN0b20gZXJyb3IgaW1wbGVtZW50YXRpb24gZGV0YWlscyBmcm9tIGVuZC11c2Vyc1xuICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbn1cblxuQWJvcnRFcnJvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7XG5BYm9ydEVycm9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEFib3J0RXJyb3I7XG5BYm9ydEVycm9yLnByb3RvdHlwZS5uYW1lID0gJ0Fib3J0RXJyb3InO1xuXG5jb25zdCBVUkwkMSA9IFVybC5VUkwgfHwgd2hhdHdnVXJsLlVSTDtcblxuLy8gZml4IGFuIGlzc3VlIHdoZXJlIFwiUGFzc1Rocm91Z2hcIiwgXCJyZXNvbHZlXCIgYXJlbid0IGEgbmFtZWQgZXhwb3J0IGZvciBub2RlIDwxMFxuY29uc3QgUGFzc1Rocm91Z2gkMSA9IFN0cmVhbS5QYXNzVGhyb3VnaDtcblxuY29uc3QgaXNEb21haW5PclN1YmRvbWFpbiA9IGZ1bmN0aW9uIGlzRG9tYWluT3JTdWJkb21haW4oZGVzdGluYXRpb24sIG9yaWdpbmFsKSB7XG5cdGNvbnN0IG9yaWcgPSBuZXcgVVJMJDEob3JpZ2luYWwpLmhvc3RuYW1lO1xuXHRjb25zdCBkZXN0ID0gbmV3IFVSTCQxKGRlc3RpbmF0aW9uKS5ob3N0bmFtZTtcblxuXHRyZXR1cm4gb3JpZyA9PT0gZGVzdCB8fCBvcmlnW29yaWcubGVuZ3RoIC0gZGVzdC5sZW5ndGggLSAxXSA9PT0gJy4nICYmIG9yaWcuZW5kc1dpdGgoZGVzdCk7XG59O1xuXG4vKipcbiAqIGlzU2FtZVByb3RvY29sIHJlcG9ydHMgd2hldGhlciB0aGUgdHdvIHByb3ZpZGVkIFVSTHMgdXNlIHRoZSBzYW1lIHByb3RvY29sLlxuICpcbiAqIEJvdGggZG9tYWlucyBtdXN0IGFscmVhZHkgYmUgaW4gY2Fub25pY2FsIGZvcm0uXG4gKiBAcGFyYW0ge3N0cmluZ3xVUkx9IG9yaWdpbmFsXG4gKiBAcGFyYW0ge3N0cmluZ3xVUkx9IGRlc3RpbmF0aW9uXG4gKi9cbmNvbnN0IGlzU2FtZVByb3RvY29sID0gZnVuY3Rpb24gaXNTYW1lUHJvdG9jb2woZGVzdGluYXRpb24sIG9yaWdpbmFsKSB7XG5cdGNvbnN0IG9yaWcgPSBuZXcgVVJMJDEob3JpZ2luYWwpLnByb3RvY29sO1xuXHRjb25zdCBkZXN0ID0gbmV3IFVSTCQxKGRlc3RpbmF0aW9uKS5wcm90b2NvbDtcblxuXHRyZXR1cm4gb3JpZyA9PT0gZGVzdDtcbn07XG5cbi8qKlxuICogRmV0Y2ggZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0gICBNaXhlZCAgICB1cmwgICBBYnNvbHV0ZSB1cmwgb3IgUmVxdWVzdCBpbnN0YW5jZVxuICogQHBhcmFtICAgT2JqZWN0ICAgb3B0cyAgRmV0Y2ggb3B0aW9uc1xuICogQHJldHVybiAgUHJvbWlzZVxuICovXG5mdW5jdGlvbiBmZXRjaCh1cmwsIG9wdHMpIHtcblxuXHQvLyBhbGxvdyBjdXN0b20gcHJvbWlzZVxuXHRpZiAoIWZldGNoLlByb21pc2UpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ25hdGl2ZSBwcm9taXNlIG1pc3NpbmcsIHNldCBmZXRjaC5Qcm9taXNlIHRvIHlvdXIgZmF2b3JpdGUgYWx0ZXJuYXRpdmUnKTtcblx0fVxuXG5cdEJvZHkuUHJvbWlzZSA9IGZldGNoLlByb21pc2U7XG5cblx0Ly8gd3JhcCBodHRwLnJlcXVlc3QgaW50byBmZXRjaFxuXHRyZXR1cm4gbmV3IGZldGNoLlByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuXHRcdC8vIGJ1aWxkIHJlcXVlc3Qgb2JqZWN0XG5cdFx0Y29uc3QgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHVybCwgb3B0cyk7XG5cdFx0Y29uc3Qgb3B0aW9ucyA9IGdldE5vZGVSZXF1ZXN0T3B0aW9ucyhyZXF1ZXN0KTtcblxuXHRcdGNvbnN0IHNlbmQgPSAob3B0aW9ucy5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyBodHRwcyA6IGh0dHApLnJlcXVlc3Q7XG5cdFx0Y29uc3Qgc2lnbmFsID0gcmVxdWVzdC5zaWduYWw7XG5cblx0XHRsZXQgcmVzcG9uc2UgPSBudWxsO1xuXG5cdFx0Y29uc3QgYWJvcnQgPSBmdW5jdGlvbiBhYm9ydCgpIHtcblx0XHRcdGxldCBlcnJvciA9IG5ldyBBYm9ydEVycm9yKCdUaGUgdXNlciBhYm9ydGVkIGEgcmVxdWVzdC4nKTtcblx0XHRcdHJlamVjdChlcnJvcik7XG5cdFx0XHRpZiAocmVxdWVzdC5ib2R5ICYmIHJlcXVlc3QuYm9keSBpbnN0YW5jZW9mIFN0cmVhbS5SZWFkYWJsZSkge1xuXHRcdFx0XHRkZXN0cm95U3RyZWFtKHJlcXVlc3QuYm9keSwgZXJyb3IpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2UuYm9keSkgcmV0dXJuO1xuXHRcdFx0cmVzcG9uc2UuYm9keS5lbWl0KCdlcnJvcicsIGVycm9yKTtcblx0XHR9O1xuXG5cdFx0aWYgKHNpZ25hbCAmJiBzaWduYWwuYWJvcnRlZCkge1xuXHRcdFx0YWJvcnQoKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBhYm9ydEFuZEZpbmFsaXplID0gZnVuY3Rpb24gYWJvcnRBbmRGaW5hbGl6ZSgpIHtcblx0XHRcdGFib3J0KCk7XG5cdFx0XHRmaW5hbGl6ZSgpO1xuXHRcdH07XG5cblx0XHQvLyBzZW5kIHJlcXVlc3Rcblx0XHRjb25zdCByZXEgPSBzZW5kKG9wdGlvbnMpO1xuXHRcdGxldCByZXFUaW1lb3V0O1xuXG5cdFx0aWYgKHNpZ25hbCkge1xuXHRcdFx0c2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgYWJvcnRBbmRGaW5hbGl6ZSk7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gZmluYWxpemUoKSB7XG5cdFx0XHRyZXEuYWJvcnQoKTtcblx0XHRcdGlmIChzaWduYWwpIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGFib3J0QW5kRmluYWxpemUpO1xuXHRcdFx0Y2xlYXJUaW1lb3V0KHJlcVRpbWVvdXQpO1xuXHRcdH1cblxuXHRcdGlmIChyZXF1ZXN0LnRpbWVvdXQpIHtcblx0XHRcdHJlcS5vbmNlKCdzb2NrZXQnLCBmdW5jdGlvbiAoc29ja2V0KSB7XG5cdFx0XHRcdHJlcVRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRyZWplY3QobmV3IEZldGNoRXJyb3IoYG5ldHdvcmsgdGltZW91dCBhdDogJHtyZXF1ZXN0LnVybH1gLCAncmVxdWVzdC10aW1lb3V0JykpO1xuXHRcdFx0XHRcdGZpbmFsaXplKCk7XG5cdFx0XHRcdH0sIHJlcXVlc3QudGltZW91dCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXEub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycikge1xuXHRcdFx0cmVqZWN0KG5ldyBGZXRjaEVycm9yKGByZXF1ZXN0IHRvICR7cmVxdWVzdC51cmx9IGZhaWxlZCwgcmVhc29uOiAke2Vyci5tZXNzYWdlfWAsICdzeXN0ZW0nLCBlcnIpKTtcblxuXHRcdFx0aWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmJvZHkpIHtcblx0XHRcdFx0ZGVzdHJveVN0cmVhbShyZXNwb25zZS5ib2R5LCBlcnIpO1xuXHRcdFx0fVxuXG5cdFx0XHRmaW5hbGl6ZSgpO1xuXHRcdH0pO1xuXG5cdFx0Zml4UmVzcG9uc2VDaHVua2VkVHJhbnNmZXJCYWRFbmRpbmcocmVxLCBmdW5jdGlvbiAoZXJyKSB7XG5cdFx0XHRpZiAoc2lnbmFsICYmIHNpZ25hbC5hYm9ydGVkKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmJvZHkpIHtcblx0XHRcdFx0ZGVzdHJveVN0cmVhbShyZXNwb25zZS5ib2R5LCBlcnIpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0LyogYzggaWdub3JlIG5leHQgMTggKi9cblx0XHRpZiAocGFyc2VJbnQocHJvY2Vzcy52ZXJzaW9uLnN1YnN0cmluZygxKSkgPCAxNCkge1xuXHRcdFx0Ly8gQmVmb3JlIE5vZGUuanMgMTQsIHBpcGVsaW5lKCkgZG9lcyBub3QgZnVsbHkgc3VwcG9ydCBhc3luYyBpdGVyYXRvcnMgYW5kIGRvZXMgbm90IGFsd2F5c1xuXHRcdFx0Ly8gcHJvcGVybHkgaGFuZGxlIHdoZW4gdGhlIHNvY2tldCBjbG9zZS9lbmQgZXZlbnRzIGFyZSBvdXQgb2Ygb3JkZXIuXG5cdFx0XHRyZXEub24oJ3NvY2tldCcsIGZ1bmN0aW9uIChzKSB7XG5cdFx0XHRcdHMuYWRkTGlzdGVuZXIoJ2Nsb3NlJywgZnVuY3Rpb24gKGhhZEVycm9yKSB7XG5cdFx0XHRcdFx0Ly8gaWYgYSBkYXRhIGxpc3RlbmVyIGlzIHN0aWxsIHByZXNlbnQgd2UgZGlkbid0IGVuZCBjbGVhbmx5XG5cdFx0XHRcdFx0Y29uc3QgaGFzRGF0YUxpc3RlbmVyID0gcy5saXN0ZW5lckNvdW50KCdkYXRhJykgPiAwO1xuXG5cdFx0XHRcdFx0Ly8gaWYgZW5kIGhhcHBlbmVkIGJlZm9yZSBjbG9zZSBidXQgdGhlIHNvY2tldCBkaWRuJ3QgZW1pdCBhbiBlcnJvciwgZG8gaXQgbm93XG5cdFx0XHRcdFx0aWYgKHJlc3BvbnNlICYmIGhhc0RhdGFMaXN0ZW5lciAmJiAhaGFkRXJyb3IgJiYgIShzaWduYWwgJiYgc2lnbmFsLmFib3J0ZWQpKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ1ByZW1hdHVyZSBjbG9zZScpO1xuXHRcdFx0XHRcdFx0ZXJyLmNvZGUgPSAnRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UnO1xuXHRcdFx0XHRcdFx0cmVzcG9uc2UuYm9keS5lbWl0KCdlcnJvcicsIGVycik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHJlcS5vbigncmVzcG9uc2UnLCBmdW5jdGlvbiAocmVzKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQocmVxVGltZW91dCk7XG5cblx0XHRcdGNvbnN0IGhlYWRlcnMgPSBjcmVhdGVIZWFkZXJzTGVuaWVudChyZXMuaGVhZGVycyk7XG5cblx0XHRcdC8vIEhUVFAgZmV0Y2ggc3RlcCA1XG5cdFx0XHRpZiAoZmV0Y2guaXNSZWRpcmVjdChyZXMuc3RhdHVzQ29kZSkpIHtcblx0XHRcdFx0Ly8gSFRUUCBmZXRjaCBzdGVwIDUuMlxuXHRcdFx0XHRjb25zdCBsb2NhdGlvbiA9IGhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpO1xuXG5cdFx0XHRcdC8vIEhUVFAgZmV0Y2ggc3RlcCA1LjNcblx0XHRcdFx0bGV0IGxvY2F0aW9uVVJMID0gbnVsbDtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRsb2NhdGlvblVSTCA9IGxvY2F0aW9uID09PSBudWxsID8gbnVsbCA6IG5ldyBVUkwkMShsb2NhdGlvbiwgcmVxdWVzdC51cmwpLnRvU3RyaW5nKCk7XG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdC8vIGVycm9yIGhlcmUgY2FuIG9ubHkgYmUgaW52YWxpZCBVUkwgaW4gTG9jYXRpb246IGhlYWRlclxuXHRcdFx0XHRcdC8vIGRvIG5vdCB0aHJvdyB3aGVuIG9wdGlvbnMucmVkaXJlY3QgPT0gbWFudWFsXG5cdFx0XHRcdFx0Ly8gbGV0IHRoZSB1c2VyIGV4dHJhY3QgdGhlIGVycm9ybmVvdXMgcmVkaXJlY3QgVVJMXG5cdFx0XHRcdFx0aWYgKHJlcXVlc3QucmVkaXJlY3QgIT09ICdtYW51YWwnKSB7XG5cdFx0XHRcdFx0XHRyZWplY3QobmV3IEZldGNoRXJyb3IoYHVyaSByZXF1ZXN0ZWQgcmVzcG9uZHMgd2l0aCBhbiBpbnZhbGlkIHJlZGlyZWN0IFVSTDogJHtsb2NhdGlvbn1gLCAnaW52YWxpZC1yZWRpcmVjdCcpKTtcblx0XHRcdFx0XHRcdGZpbmFsaXplKCk7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gSFRUUCBmZXRjaCBzdGVwIDUuNVxuXHRcdFx0XHRzd2l0Y2ggKHJlcXVlc3QucmVkaXJlY3QpIHtcblx0XHRcdFx0XHRjYXNlICdlcnJvcic6XG5cdFx0XHRcdFx0XHRyZWplY3QobmV3IEZldGNoRXJyb3IoYHVyaSByZXF1ZXN0ZWQgcmVzcG9uZHMgd2l0aCBhIHJlZGlyZWN0LCByZWRpcmVjdCBtb2RlIGlzIHNldCB0byBlcnJvcjogJHtyZXF1ZXN0LnVybH1gLCAnbm8tcmVkaXJlY3QnKSk7XG5cdFx0XHRcdFx0XHRmaW5hbGl6ZSgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdGNhc2UgJ21hbnVhbCc6XG5cdFx0XHRcdFx0XHQvLyBub2RlLWZldGNoLXNwZWNpZmljIHN0ZXA6IG1ha2UgbWFudWFsIHJlZGlyZWN0IGEgYml0IGVhc2llciB0byB1c2UgYnkgc2V0dGluZyB0aGUgTG9jYXRpb24gaGVhZGVyIHZhbHVlIHRvIHRoZSByZXNvbHZlZCBVUkwuXG5cdFx0XHRcdFx0XHRpZiAobG9jYXRpb25VUkwgIT09IG51bGwpIHtcblx0XHRcdFx0XHRcdFx0Ly8gaGFuZGxlIGNvcnJ1cHRlZCBoZWFkZXJcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRoZWFkZXJzLnNldCgnTG9jYXRpb24nLCBsb2NhdGlvblVSTCk7XG5cdFx0XHRcdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdFx0XHRcdC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0OiBub2RlanMgc2VydmVyIHByZXZlbnQgaW52YWxpZCByZXNwb25zZSBoZWFkZXJzLCB3ZSBjYW4ndCB0ZXN0IHRoaXMgdGhyb3VnaCBub3JtYWwgcmVxdWVzdFxuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdmb2xsb3cnOlxuXHRcdFx0XHRcdFx0Ly8gSFRUUC1yZWRpcmVjdCBmZXRjaCBzdGVwIDJcblx0XHRcdFx0XHRcdGlmIChsb2NhdGlvblVSTCA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gSFRUUC1yZWRpcmVjdCBmZXRjaCBzdGVwIDVcblx0XHRcdFx0XHRcdGlmIChyZXF1ZXN0LmNvdW50ZXIgPj0gcmVxdWVzdC5mb2xsb3cpIHtcblx0XHRcdFx0XHRcdFx0cmVqZWN0KG5ldyBGZXRjaEVycm9yKGBtYXhpbXVtIHJlZGlyZWN0IHJlYWNoZWQgYXQ6ICR7cmVxdWVzdC51cmx9YCwgJ21heC1yZWRpcmVjdCcpKTtcblx0XHRcdFx0XHRcdFx0ZmluYWxpemUoKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBIVFRQLXJlZGlyZWN0IGZldGNoIHN0ZXAgNiAoY291bnRlciBpbmNyZW1lbnQpXG5cdFx0XHRcdFx0XHQvLyBDcmVhdGUgYSBuZXcgUmVxdWVzdCBvYmplY3QuXG5cdFx0XHRcdFx0XHRjb25zdCByZXF1ZXN0T3B0cyA9IHtcblx0XHRcdFx0XHRcdFx0aGVhZGVyczogbmV3IEhlYWRlcnMocmVxdWVzdC5oZWFkZXJzKSxcblx0XHRcdFx0XHRcdFx0Zm9sbG93OiByZXF1ZXN0LmZvbGxvdyxcblx0XHRcdFx0XHRcdFx0Y291bnRlcjogcmVxdWVzdC5jb3VudGVyICsgMSxcblx0XHRcdFx0XHRcdFx0YWdlbnQ6IHJlcXVlc3QuYWdlbnQsXG5cdFx0XHRcdFx0XHRcdGNvbXByZXNzOiByZXF1ZXN0LmNvbXByZXNzLFxuXHRcdFx0XHRcdFx0XHRtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuXHRcdFx0XHRcdFx0XHRib2R5OiByZXF1ZXN0LmJvZHksXG5cdFx0XHRcdFx0XHRcdHNpZ25hbDogcmVxdWVzdC5zaWduYWwsXG5cdFx0XHRcdFx0XHRcdHRpbWVvdXQ6IHJlcXVlc3QudGltZW91dCxcblx0XHRcdFx0XHRcdFx0c2l6ZTogcmVxdWVzdC5zaXplXG5cdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHRpZiAoIWlzRG9tYWluT3JTdWJkb21haW4ocmVxdWVzdC51cmwsIGxvY2F0aW9uVVJMKSB8fCAhaXNTYW1lUHJvdG9jb2wocmVxdWVzdC51cmwsIGxvY2F0aW9uVVJMKSkge1xuXHRcdFx0XHRcdFx0XHRmb3IgKGNvbnN0IG5hbWUgb2YgWydhdXRob3JpemF0aW9uJywgJ3d3dy1hdXRoZW50aWNhdGUnLCAnY29va2llJywgJ2Nvb2tpZTInXSkge1xuXHRcdFx0XHRcdFx0XHRcdHJlcXVlc3RPcHRzLmhlYWRlcnMuZGVsZXRlKG5hbWUpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIEhUVFAtcmVkaXJlY3QgZmV0Y2ggc3RlcCA5XG5cdFx0XHRcdFx0XHRpZiAocmVzLnN0YXR1c0NvZGUgIT09IDMwMyAmJiByZXF1ZXN0LmJvZHkgJiYgZ2V0VG90YWxCeXRlcyhyZXF1ZXN0KSA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdFx0XHRyZWplY3QobmV3IEZldGNoRXJyb3IoJ0Nhbm5vdCBmb2xsb3cgcmVkaXJlY3Qgd2l0aCBib2R5IGJlaW5nIGEgcmVhZGFibGUgc3RyZWFtJywgJ3Vuc3VwcG9ydGVkLXJlZGlyZWN0JykpO1xuXHRcdFx0XHRcdFx0XHRmaW5hbGl6ZSgpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIEhUVFAtcmVkaXJlY3QgZmV0Y2ggc3RlcCAxMVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5zdGF0dXNDb2RlID09PSAzMDMgfHwgKHJlcy5zdGF0dXNDb2RlID09PSAzMDEgfHwgcmVzLnN0YXR1c0NvZGUgPT09IDMwMikgJiYgcmVxdWVzdC5tZXRob2QgPT09ICdQT1NUJykge1xuXHRcdFx0XHRcdFx0XHRyZXF1ZXN0T3B0cy5tZXRob2QgPSAnR0VUJztcblx0XHRcdFx0XHRcdFx0cmVxdWVzdE9wdHMuYm9keSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0cmVxdWVzdE9wdHMuaGVhZGVycy5kZWxldGUoJ2NvbnRlbnQtbGVuZ3RoJyk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIEhUVFAtcmVkaXJlY3QgZmV0Y2ggc3RlcCAxNVxuXHRcdFx0XHRcdFx0cmVzb2x2ZShmZXRjaChuZXcgUmVxdWVzdChsb2NhdGlvblVSTCwgcmVxdWVzdE9wdHMpKSk7XG5cdFx0XHRcdFx0XHRmaW5hbGl6ZSgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIHByZXBhcmUgcmVzcG9uc2Vcblx0XHRcdHJlcy5vbmNlKCdlbmQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdGlmIChzaWduYWwpIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGFib3J0QW5kRmluYWxpemUpO1xuXHRcdFx0fSk7XG5cdFx0XHRsZXQgYm9keSA9IHJlcy5waXBlKG5ldyBQYXNzVGhyb3VnaCQxKCkpO1xuXG5cdFx0XHRjb25zdCByZXNwb25zZV9vcHRpb25zID0ge1xuXHRcdFx0XHR1cmw6IHJlcXVlc3QudXJsLFxuXHRcdFx0XHRzdGF0dXM6IHJlcy5zdGF0dXNDb2RlLFxuXHRcdFx0XHRzdGF0dXNUZXh0OiByZXMuc3RhdHVzTWVzc2FnZSxcblx0XHRcdFx0aGVhZGVyczogaGVhZGVycyxcblx0XHRcdFx0c2l6ZTogcmVxdWVzdC5zaXplLFxuXHRcdFx0XHR0aW1lb3V0OiByZXF1ZXN0LnRpbWVvdXQsXG5cdFx0XHRcdGNvdW50ZXI6IHJlcXVlc3QuY291bnRlclxuXHRcdFx0fTtcblxuXHRcdFx0Ly8gSFRUUC1uZXR3b3JrIGZldGNoIHN0ZXAgMTIuMS4xLjNcblx0XHRcdGNvbnN0IGNvZGluZ3MgPSBoZWFkZXJzLmdldCgnQ29udGVudC1FbmNvZGluZycpO1xuXG5cdFx0XHQvLyBIVFRQLW5ldHdvcmsgZmV0Y2ggc3RlcCAxMi4xLjEuNDogaGFuZGxlIGNvbnRlbnQgY29kaW5nc1xuXG5cdFx0XHQvLyBpbiBmb2xsb3dpbmcgc2NlbmFyaW9zIHdlIGlnbm9yZSBjb21wcmVzc2lvbiBzdXBwb3J0XG5cdFx0XHQvLyAxLiBjb21wcmVzc2lvbiBzdXBwb3J0IGlzIGRpc2FibGVkXG5cdFx0XHQvLyAyLiBIRUFEIHJlcXVlc3Rcblx0XHRcdC8vIDMuIG5vIENvbnRlbnQtRW5jb2RpbmcgaGVhZGVyXG5cdFx0XHQvLyA0LiBubyBjb250ZW50IHJlc3BvbnNlICgyMDQpXG5cdFx0XHQvLyA1LiBjb250ZW50IG5vdCBtb2RpZmllZCByZXNwb25zZSAoMzA0KVxuXHRcdFx0aWYgKCFyZXF1ZXN0LmNvbXByZXNzIHx8IHJlcXVlc3QubWV0aG9kID09PSAnSEVBRCcgfHwgY29kaW5ncyA9PT0gbnVsbCB8fCByZXMuc3RhdHVzQ29kZSA9PT0gMjA0IHx8IHJlcy5zdGF0dXNDb2RlID09PSAzMDQpIHtcblx0XHRcdFx0cmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSwgcmVzcG9uc2Vfb3B0aW9ucyk7XG5cdFx0XHRcdHJlc29sdmUocmVzcG9uc2UpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZvciBOb2RlIHY2K1xuXHRcdFx0Ly8gQmUgbGVzcyBzdHJpY3Qgd2hlbiBkZWNvZGluZyBjb21wcmVzc2VkIHJlc3BvbnNlcywgc2luY2Ugc29tZXRpbWVzXG5cdFx0XHQvLyBzZXJ2ZXJzIHNlbmQgc2xpZ2h0bHkgaW52YWxpZCByZXNwb25zZXMgdGhhdCBhcmUgc3RpbGwgYWNjZXB0ZWRcblx0XHRcdC8vIGJ5IGNvbW1vbiBicm93c2Vycy5cblx0XHRcdC8vIEFsd2F5cyB1c2luZyBaX1NZTkNfRkxVU0ggaXMgd2hhdCBjVVJMIGRvZXMuXG5cdFx0XHRjb25zdCB6bGliT3B0aW9ucyA9IHtcblx0XHRcdFx0Zmx1c2g6IHpsaWIuWl9TWU5DX0ZMVVNILFxuXHRcdFx0XHRmaW5pc2hGbHVzaDogemxpYi5aX1NZTkNfRkxVU0hcblx0XHRcdH07XG5cblx0XHRcdC8vIGZvciBnemlwXG5cdFx0XHRpZiAoY29kaW5ncyA9PSAnZ3ppcCcgfHwgY29kaW5ncyA9PSAneC1nemlwJykge1xuXHRcdFx0XHRib2R5ID0gYm9keS5waXBlKHpsaWIuY3JlYXRlR3VuemlwKHpsaWJPcHRpb25zKSk7XG5cdFx0XHRcdHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKGJvZHksIHJlc3BvbnNlX29wdGlvbnMpO1xuXHRcdFx0XHRyZXNvbHZlKHJlc3BvbnNlKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBmb3IgZGVmbGF0ZVxuXHRcdFx0aWYgKGNvZGluZ3MgPT0gJ2RlZmxhdGUnIHx8IGNvZGluZ3MgPT0gJ3gtZGVmbGF0ZScpIHtcblx0XHRcdFx0Ly8gaGFuZGxlIHRoZSBpbmZhbW91cyByYXcgZGVmbGF0ZSByZXNwb25zZSBmcm9tIG9sZCBzZXJ2ZXJzXG5cdFx0XHRcdC8vIGEgaGFjayBmb3Igb2xkIElJUyBhbmQgQXBhY2hlIHNlcnZlcnNcblx0XHRcdFx0Y29uc3QgcmF3ID0gcmVzLnBpcGUobmV3IFBhc3NUaHJvdWdoJDEoKSk7XG5cdFx0XHRcdHJhdy5vbmNlKCdkYXRhJywgZnVuY3Rpb24gKGNodW5rKSB7XG5cdFx0XHRcdFx0Ly8gc2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzc1MTk4Mjhcblx0XHRcdFx0XHRpZiAoKGNodW5rWzBdICYgMHgwRikgPT09IDB4MDgpIHtcblx0XHRcdFx0XHRcdGJvZHkgPSBib2R5LnBpcGUoemxpYi5jcmVhdGVJbmZsYXRlKCkpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRib2R5ID0gYm9keS5waXBlKHpsaWIuY3JlYXRlSW5mbGF0ZVJhdygpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSwgcmVzcG9uc2Vfb3B0aW9ucyk7XG5cdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyYXcub24oJ2VuZCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHQvLyBzb21lIG9sZCBJSVMgc2VydmVycyByZXR1cm4gemVyby1sZW5ndGggT0sgZGVmbGF0ZSByZXNwb25zZXMsIHNvICdkYXRhJyBpcyBuZXZlciBlbWl0dGVkLlxuXHRcdFx0XHRcdGlmICghcmVzcG9uc2UpIHtcblx0XHRcdFx0XHRcdHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKGJvZHksIHJlc3BvbnNlX29wdGlvbnMpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBmb3IgYnJcblx0XHRcdGlmIChjb2RpbmdzID09ICdicicgJiYgdHlwZW9mIHpsaWIuY3JlYXRlQnJvdGxpRGVjb21wcmVzcyA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRib2R5ID0gYm9keS5waXBlKHpsaWIuY3JlYXRlQnJvdGxpRGVjb21wcmVzcygpKTtcblx0XHRcdFx0cmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSwgcmVzcG9uc2Vfb3B0aW9ucyk7XG5cdFx0XHRcdHJlc29sdmUocmVzcG9uc2UpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIG90aGVyd2lzZSwgdXNlIHJlc3BvbnNlIGFzLWlzXG5cdFx0XHRyZXNwb25zZSA9IG5ldyBSZXNwb25zZShib2R5LCByZXNwb25zZV9vcHRpb25zKTtcblx0XHRcdHJlc29sdmUocmVzcG9uc2UpO1xuXHRcdH0pO1xuXG5cdFx0d3JpdGVUb1N0cmVhbShyZXEsIHJlcXVlc3QpO1xuXHR9KTtcbn1cbmZ1bmN0aW9uIGZpeFJlc3BvbnNlQ2h1bmtlZFRyYW5zZmVyQmFkRW5kaW5nKHJlcXVlc3QsIGVycm9yQ2FsbGJhY2spIHtcblx0bGV0IHNvY2tldDtcblxuXHRyZXF1ZXN0Lm9uKCdzb2NrZXQnLCBmdW5jdGlvbiAocykge1xuXHRcdHNvY2tldCA9IHM7XG5cdH0pO1xuXG5cdHJlcXVlc3Qub24oJ3Jlc3BvbnNlJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG5cdFx0Y29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7XG5cblx0XHRpZiAoaGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXSA9PT0gJ2NodW5rZWQnICYmICFoZWFkZXJzWydjb250ZW50LWxlbmd0aCddKSB7XG5cdFx0XHRyZXNwb25zZS5vbmNlKCdjbG9zZScsIGZ1bmN0aW9uIChoYWRFcnJvcikge1xuXHRcdFx0XHQvLyB0ZXN0cyBmb3Igc29ja2V0IHByZXNlbmNlLCBhcyBpbiBzb21lIHNpdHVhdGlvbnMgdGhlXG5cdFx0XHRcdC8vIHRoZSAnc29ja2V0JyBldmVudCBpcyBub3QgdHJpZ2dlcmVkIGZvciB0aGUgcmVxdWVzdFxuXHRcdFx0XHQvLyAoaGFwcGVucyBpbiBkZW5vKSwgYXZvaWRzIGBUeXBlRXJyb3JgXG5cdFx0XHRcdC8vIGlmIGEgZGF0YSBsaXN0ZW5lciBpcyBzdGlsbCBwcmVzZW50IHdlIGRpZG4ndCBlbmQgY2xlYW5seVxuXHRcdFx0XHRjb25zdCBoYXNEYXRhTGlzdGVuZXIgPSBzb2NrZXQgJiYgc29ja2V0Lmxpc3RlbmVyQ291bnQoJ2RhdGEnKSA+IDA7XG5cblx0XHRcdFx0aWYgKGhhc0RhdGFMaXN0ZW5lciAmJiAhaGFkRXJyb3IpIHtcblx0XHRcdFx0XHRjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ1ByZW1hdHVyZSBjbG9zZScpO1xuXHRcdFx0XHRcdGVyci5jb2RlID0gJ0VSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFJztcblx0XHRcdFx0XHRlcnJvckNhbGxiYWNrKGVycik7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG59XG5cbmZ1bmN0aW9uIGRlc3Ryb3lTdHJlYW0oc3RyZWFtLCBlcnIpIHtcblx0aWYgKHN0cmVhbS5kZXN0cm95KSB7XG5cdFx0c3RyZWFtLmRlc3Ryb3koZXJyKTtcblx0fSBlbHNlIHtcblx0XHQvLyBub2RlIDwgOFxuXHRcdHN0cmVhbS5lbWl0KCdlcnJvcicsIGVycik7XG5cdFx0c3RyZWFtLmVuZCgpO1xuXHR9XG59XG5cbi8qKlxuICogUmVkaXJlY3QgY29kZSBtYXRjaGluZ1xuICpcbiAqIEBwYXJhbSAgIE51bWJlciAgIGNvZGUgIFN0YXR1cyBjb2RlXG4gKiBAcmV0dXJuICBCb29sZWFuXG4gKi9cbmZldGNoLmlzUmVkaXJlY3QgPSBmdW5jdGlvbiAoY29kZSkge1xuXHRyZXR1cm4gY29kZSA9PT0gMzAxIHx8IGNvZGUgPT09IDMwMiB8fCBjb2RlID09PSAzMDMgfHwgY29kZSA9PT0gMzA3IHx8IGNvZGUgPT09IDMwODtcbn07XG5cbi8vIGV4cG9zZSBQcm9taXNlXG5mZXRjaC5Qcm9taXNlID0gZ2xvYmFsLlByb21pc2U7XG5cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZldGNoO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gZXhwb3J0cztcbmV4cG9ydHMuSGVhZGVycyA9IEhlYWRlcnM7XG5leHBvcnRzLlJlcXVlc3QgPSBSZXF1ZXN0O1xuZXhwb3J0cy5SZXNwb25zZSA9IFJlc3BvbnNlO1xuZXhwb3J0cy5GZXRjaEVycm9yID0gRmV0Y2hFcnJvcjtcbiJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIl9pbnRlcm9wRGVmYXVsdCIsImV4IiwiU3RyZWFtIiwicmVxdWlyZSIsImh0dHAiLCJVcmwiLCJ3aGF0d2dVcmwiLCJodHRwcyIsInpsaWIiLCJSZWFkYWJsZSIsIkJVRkZFUiIsIlN5bWJvbCIsIlRZUEUiLCJCbG9iIiwiY29uc3RydWN0b3IiLCJibG9iUGFydHMiLCJhcmd1bWVudHMiLCJvcHRpb25zIiwiYnVmZmVycyIsInNpemUiLCJhIiwibGVuZ3RoIiwiTnVtYmVyIiwiaSIsImVsZW1lbnQiLCJidWZmZXIiLCJCdWZmZXIiLCJBcnJheUJ1ZmZlciIsImlzVmlldyIsImZyb20iLCJieXRlT2Zmc2V0IiwiYnl0ZUxlbmd0aCIsIlN0cmluZyIsInB1c2giLCJjb25jYXQiLCJ0eXBlIiwidW5kZWZpbmVkIiwidG9Mb3dlckNhc2UiLCJ0ZXN0IiwidGV4dCIsIlByb21pc2UiLCJyZXNvbHZlIiwidG9TdHJpbmciLCJhcnJheUJ1ZmZlciIsImJ1ZiIsImFiIiwic2xpY2UiLCJzdHJlYW0iLCJyZWFkYWJsZSIsIl9yZWFkIiwic3RhcnQiLCJlbmQiLCJyZWxhdGl2ZVN0YXJ0IiwicmVsYXRpdmVFbmQiLCJNYXRoIiwibWF4IiwibWluIiwic3BhbiIsInNsaWNlZEJ1ZmZlciIsImJsb2IiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJvdG90eXBlIiwiZW51bWVyYWJsZSIsInRvU3RyaW5nVGFnIiwid3JpdGFibGUiLCJjb25maWd1cmFibGUiLCJGZXRjaEVycm9yIiwibWVzc2FnZSIsInN5c3RlbUVycm9yIiwiRXJyb3IiLCJjYWxsIiwiY29kZSIsImVycm5vIiwiY2FwdHVyZVN0YWNrVHJhY2UiLCJjcmVhdGUiLCJuYW1lIiwiY29udmVydCIsIklOVEVSTkFMUyIsIlBhc3NUaHJvdWdoIiwiQm9keSIsImJvZHkiLCJfdGhpcyIsIl9yZWYiLCJfcmVmJHNpemUiLCJfcmVmJHRpbWVvdXQiLCJ0aW1lb3V0IiwiaXNVUkxTZWFyY2hQYXJhbXMiLCJpc0Jsb2IiLCJpc0J1ZmZlciIsImRpc3R1cmJlZCIsImVycm9yIiwib24iLCJlcnIiLCJ1cmwiLCJib2R5VXNlZCIsImNvbnN1bWVCb2R5IiwidGhlbiIsImN0IiwiaGVhZGVycyIsImdldCIsImFzc2lnbiIsImpzb24iLCJfdGhpczIiLCJKU09OIiwicGFyc2UiLCJyZWplY3QiLCJ0ZXh0Q29udmVydGVkIiwiX3RoaXMzIiwiY29udmVydEJvZHkiLCJtaXhJbiIsInByb3RvIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfdGhpczQiLCJUeXBlRXJyb3IiLCJhbGxvYyIsImFjY3VtIiwiYWNjdW1CeXRlcyIsImFib3J0IiwicmVzVGltZW91dCIsInNldFRpbWVvdXQiLCJjaHVuayIsImNsZWFyVGltZW91dCIsImNoYXJzZXQiLCJyZXMiLCJzdHIiLCJleGVjIiwicG9wIiwib2JqIiwiYXBwZW5kIiwiZGVsZXRlIiwiZ2V0QWxsIiwiaGFzIiwic2V0Iiwic29ydCIsImNsb25lIiwiaW5zdGFuY2UiLCJwMSIsInAyIiwiZ2V0Qm91bmRhcnkiLCJwaXBlIiwiZXh0cmFjdENvbnRlbnRUeXBlIiwiZ2V0VG90YWxCeXRlcyIsImdldExlbmd0aFN5bmMiLCJfbGVuZ3RoUmV0cmlldmVycyIsImhhc0tub3duTGVuZ3RoIiwid3JpdGVUb1N0cmVhbSIsImRlc3QiLCJ3cml0ZSIsImdsb2JhbCIsImludmFsaWRUb2tlblJlZ2V4IiwiaW52YWxpZEhlYWRlckNoYXJSZWdleCIsInZhbGlkYXRlTmFtZSIsInZhbGlkYXRlVmFsdWUiLCJmaW5kIiwibWFwIiwia2V5IiwiTUFQIiwiSGVhZGVycyIsImluaXQiLCJyYXdIZWFkZXJzIiwicmF3IiwiaGVhZGVyTmFtZXMiLCJrZXlzIiwiaGVhZGVyTmFtZSIsIm1ldGhvZCIsIml0ZXJhdG9yIiwicGFpcnMiLCJwYWlyIiwiQXJyYXkiLCJqb2luIiwiZm9yRWFjaCIsImNhbGxiYWNrIiwidGhpc0FyZyIsImdldEhlYWRlcnMiLCJfcGFpcnMkaSIsImNyZWF0ZUhlYWRlcnNJdGVyYXRvciIsInZhbHVlcyIsImVudHJpZXMiLCJraW5kIiwiayIsIklOVEVSTkFMIiwidGFyZ2V0IiwiSGVhZGVyc0l0ZXJhdG9yUHJvdG90eXBlIiwiaW5kZXgiLCJzZXRQcm90b3R5cGVPZiIsIm5leHQiLCJnZXRQcm90b3R5cGVPZiIsIl9JTlRFUk5BTCIsImxlbiIsImRvbmUiLCJleHBvcnROb2RlQ29tcGF0aWJsZUhlYWRlcnMiLCJfX3Byb3RvX18iLCJob3N0SGVhZGVyS2V5IiwiY3JlYXRlSGVhZGVyc0xlbmllbnQiLCJpc0FycmF5IiwidmFsIiwiSU5URVJOQUxTJDEiLCJTVEFUVVNfQ09ERVMiLCJSZXNwb25zZSIsIm9wdHMiLCJzdGF0dXMiLCJjb250ZW50VHlwZSIsInN0YXR1c1RleHQiLCJjb3VudGVyIiwib2siLCJyZWRpcmVjdGVkIiwiSU5URVJOQUxTJDIiLCJVUkwiLCJwYXJzZV91cmwiLCJmb3JtYXRfdXJsIiwiZm9ybWF0IiwicGFyc2VVUkwiLCJ1cmxTdHIiLCJzdHJlYW1EZXN0cnVjdGlvblN1cHBvcnRlZCIsImlzUmVxdWVzdCIsImlucHV0IiwiaXNBYm9ydFNpZ25hbCIsInNpZ25hbCIsIlJlcXVlc3QiLCJwYXJzZWRVUkwiLCJocmVmIiwidG9VcHBlckNhc2UiLCJpbnB1dEJvZHkiLCJyZWRpcmVjdCIsImZvbGxvdyIsImNvbXByZXNzIiwiYWdlbnQiLCJnZXROb2RlUmVxdWVzdE9wdGlvbnMiLCJyZXF1ZXN0IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsImNvbnRlbnRMZW5ndGhWYWx1ZSIsInRvdGFsQnl0ZXMiLCJBYm9ydEVycm9yIiwiVVJMJDEiLCJQYXNzVGhyb3VnaCQxIiwiaXNEb21haW5PclN1YmRvbWFpbiIsImRlc3RpbmF0aW9uIiwib3JpZ2luYWwiLCJvcmlnIiwiZW5kc1dpdGgiLCJpc1NhbWVQcm90b2NvbCIsImZldGNoIiwic2VuZCIsInJlc3BvbnNlIiwiZGVzdHJveVN0cmVhbSIsImVtaXQiLCJhYm9ydGVkIiwiYWJvcnRBbmRGaW5hbGl6ZSIsImZpbmFsaXplIiwicmVxIiwicmVxVGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25jZSIsInNvY2tldCIsImZpeFJlc3BvbnNlQ2h1bmtlZFRyYW5zZmVyQmFkRW5kaW5nIiwicGFyc2VJbnQiLCJwcm9jZXNzIiwidmVyc2lvbiIsInN1YnN0cmluZyIsInMiLCJhZGRMaXN0ZW5lciIsImhhZEVycm9yIiwiaGFzRGF0YUxpc3RlbmVyIiwibGlzdGVuZXJDb3VudCIsImlzUmVkaXJlY3QiLCJzdGF0dXNDb2RlIiwibG9jYXRpb24iLCJsb2NhdGlvblVSTCIsInJlcXVlc3RPcHRzIiwicmVzcG9uc2Vfb3B0aW9ucyIsInN0YXR1c01lc3NhZ2UiLCJjb2RpbmdzIiwiemxpYk9wdGlvbnMiLCJmbHVzaCIsIlpfU1lOQ19GTFVTSCIsImZpbmlzaEZsdXNoIiwiY3JlYXRlR3VuemlwIiwiY3JlYXRlSW5mbGF0ZSIsImNyZWF0ZUluZmxhdGVSYXciLCJjcmVhdGVCcm90bGlEZWNvbXByZXNzIiwiZXJyb3JDYWxsYmFjayIsImRlc3Ryb3kiLCJtb2R1bGUiLCJkZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/node-fetch/lib/index.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js ***! + \*****************************************************************************/ +/***/ ((__unused_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 */ PostgrestBuilder)\n/* harmony export */ });\n/* harmony import */ var _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/node-fetch */ \"(rsc)/./node_modules/@supabase/node-fetch/lib/index.js\");\n/* harmony import */ var _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _PostgrestError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PostgrestError */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestError.js\");\n// @ts-ignore\n\n\nclass PostgrestBuilder {\n constructor(builder){\n this.shouldThrowOnError = false;\n this.method = builder.method;\n this.url = builder.url;\n this.headers = builder.headers;\n this.schema = builder.schema;\n this.body = builder.body;\n this.shouldThrowOnError = builder.shouldThrowOnError;\n this.signal = builder.signal;\n this.isMaybeSingle = builder.isMaybeSingle;\n if (builder.fetch) {\n this.fetch = builder.fetch;\n } else if (typeof fetch === \"undefined\") {\n this.fetch = (_supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0___default());\n } else {\n this.fetch = fetch;\n }\n }\n /**\n * If there's an error with the query, throwOnError will reject the promise by\n * throwing the error instead of returning it as part of a successful response.\n *\n * {@link https://github.com/supabase/supabase-js/issues/92}\n */ throwOnError() {\n this.shouldThrowOnError = true;\n return this;\n }\n then(onfulfilled, onrejected) {\n // https://postgrest.org/en/stable/api.html#switching-schemas\n if (this.schema === undefined) {\n // skip\n } else if ([\n \"GET\",\n \"HEAD\"\n ].includes(this.method)) {\n this.headers[\"Accept-Profile\"] = this.schema;\n } else {\n this.headers[\"Content-Profile\"] = this.schema;\n }\n if (this.method !== \"GET\" && this.method !== \"HEAD\") {\n this.headers[\"Content-Type\"] = \"application/json\";\n }\n // NOTE: Invoke w/o `this` to avoid illegal invocation error.\n // https://github.com/supabase/postgrest-js/pull/247\n const _fetch = this.fetch;\n let res = _fetch(this.url.toString(), {\n method: this.method,\n headers: this.headers,\n body: JSON.stringify(this.body),\n signal: this.signal\n }).then(async (res)=>{\n var _a, _b, _c;\n let error = null;\n let data = null;\n let count = null;\n let status = res.status;\n let statusText = res.statusText;\n if (res.ok) {\n if (this.method !== \"HEAD\") {\n const body = await res.text();\n if (body === \"\") {\n // Prefer: return=minimal\n } else if (this.headers[\"Accept\"] === \"text/csv\") {\n data = body;\n } else if (this.headers[\"Accept\"] && this.headers[\"Accept\"].includes(\"application/vnd.pgrst.plan+text\")) {\n data = body;\n } else {\n data = JSON.parse(body);\n }\n }\n const countHeader = (_a = this.headers[\"Prefer\"]) === null || _a === void 0 ? void 0 : _a.match(/count=(exact|planned|estimated)/);\n const contentRange = (_b = res.headers.get(\"content-range\")) === null || _b === void 0 ? void 0 : _b.split(\"/\");\n if (countHeader && contentRange && contentRange.length > 1) {\n count = parseInt(contentRange[1]);\n }\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\n if (this.isMaybeSingle && this.method === \"GET\" && Array.isArray(data)) {\n if (data.length > 1) {\n error = {\n // https://github.com/PostgREST/postgrest/blob/a867d79c42419af16c18c3fb019eba8df992626f/src/PostgREST/Error.hs#L553\n code: \"PGRST116\",\n details: `Results contain ${data.length} rows, application/vnd.pgrst.object+json requires 1 row`,\n hint: null,\n message: \"JSON object requested, multiple (or no) rows returned\"\n };\n data = null;\n count = null;\n status = 406;\n statusText = \"Not Acceptable\";\n } else if (data.length === 1) {\n data = data[0];\n } else {\n data = null;\n }\n }\n } else {\n const body = await res.text();\n try {\n error = JSON.parse(body);\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\n if (Array.isArray(error) && res.status === 404) {\n data = [];\n error = null;\n status = 200;\n statusText = \"OK\";\n }\n } catch (_d) {\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\n if (res.status === 404 && body === \"\") {\n status = 204;\n statusText = \"No Content\";\n } else {\n error = {\n message: body\n };\n }\n }\n if (error && this.isMaybeSingle && ((_c = error === null || error === void 0 ? void 0 : error.details) === null || _c === void 0 ? void 0 : _c.includes(\"0 rows\"))) {\n error = null;\n status = 200;\n statusText = \"OK\";\n }\n if (error && this.shouldThrowOnError) {\n throw new _PostgrestError__WEBPACK_IMPORTED_MODULE_1__[\"default\"](error);\n }\n }\n const postgrestResponse = {\n error,\n data,\n count,\n status,\n statusText\n };\n return postgrestResponse;\n });\n if (!this.shouldThrowOnError) {\n res = res.catch((fetchError)=>{\n var _a, _b, _c;\n return {\n error: {\n message: `${(_a = fetchError === null || fetchError === void 0 ? void 0 : fetchError.name) !== null && _a !== void 0 ? _a : \"FetchError\"}: ${fetchError === null || fetchError === void 0 ? void 0 : fetchError.message}`,\n details: `${(_b = fetchError === null || fetchError === void 0 ? void 0 : fetchError.stack) !== null && _b !== void 0 ? _b : \"\"}`,\n hint: \"\",\n code: `${(_c = fetchError === null || fetchError === void 0 ? void 0 : fetchError.code) !== null && _c !== void 0 ? _c : \"\"}`\n },\n data: null,\n count: null,\n status: 0,\n statusText: \"\"\n };\n });\n }\n return res.then(onfulfilled, onrejected);\n }\n} //# sourceMappingURL=PostgrestBuilder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RCdWlsZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxhQUFhO0FBQ2dDO0FBQ0M7QUFDL0IsTUFBTUU7SUFDakJDLFlBQVlDLE9BQU8sQ0FBRTtRQUNqQixJQUFJLENBQUNDLGtCQUFrQixHQUFHO1FBQzFCLElBQUksQ0FBQ0MsTUFBTSxHQUFHRixRQUFRRSxNQUFNO1FBQzVCLElBQUksQ0FBQ0MsR0FBRyxHQUFHSCxRQUFRRyxHQUFHO1FBQ3RCLElBQUksQ0FBQ0MsT0FBTyxHQUFHSixRQUFRSSxPQUFPO1FBQzlCLElBQUksQ0FBQ0MsTUFBTSxHQUFHTCxRQUFRSyxNQUFNO1FBQzVCLElBQUksQ0FBQ0MsSUFBSSxHQUFHTixRQUFRTSxJQUFJO1FBQ3hCLElBQUksQ0FBQ0wsa0JBQWtCLEdBQUdELFFBQVFDLGtCQUFrQjtRQUNwRCxJQUFJLENBQUNNLE1BQU0sR0FBR1AsUUFBUU8sTUFBTTtRQUM1QixJQUFJLENBQUNDLGFBQWEsR0FBR1IsUUFBUVEsYUFBYTtRQUMxQyxJQUFJUixRQUFRUyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUNBLEtBQUssR0FBR1QsUUFBUVMsS0FBSztRQUM5QixPQUNLLElBQUksT0FBT0EsVUFBVSxhQUFhO1lBQ25DLElBQUksQ0FBQ0EsS0FBSyxHQUFHYiw2REFBU0E7UUFDMUIsT0FDSztZQUNELElBQUksQ0FBQ2EsS0FBSyxHQUFHQTtRQUNqQjtJQUNKO0lBQ0E7Ozs7O0tBS0MsR0FDREMsZUFBZTtRQUNYLElBQUksQ0FBQ1Qsa0JBQWtCLEdBQUc7UUFDMUIsT0FBTyxJQUFJO0lBQ2Y7SUFDQVUsS0FBS0MsV0FBVyxFQUFFQyxVQUFVLEVBQUU7UUFDMUIsNkRBQTZEO1FBQzdELElBQUksSUFBSSxDQUFDUixNQUFNLEtBQUtTLFdBQVc7UUFDM0IsT0FBTztRQUNYLE9BQ0ssSUFBSTtZQUFDO1lBQU87U0FBTyxD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S0FBSzJCLGVBQWUsUUFBUUEsZUFBZSxLQUFLLElBQUksS0FBSyxJQUFJQSxXQUFXQyxJQUFJLE1BQU0sUUFBUTVCLE9BQU8sS0FBSyxJQUFJQSxLQUFLLGFBQWEsRUFBRSxFQUFFMkIsZUFBZSxRQUFRQSxlQUFlLEtBQUssSUFBSSxLQUFLLElBQUlBLFdBQVdKLE9BQU8sQ0FBQyxDQUFDO3dCQUN6TkYsU0FBUyxDQUFDLEVBQUUsQ0FBQ3BCLEtBQUswQixlQUFlLFFBQVFBLGVBQWUsS0FBSyxJQUFJLEtBQUssSUFBSUEsV0FBV0UsS0FBSyxNQUFNLFFBQVE1QixPQUFPLEtBQUssSUFBSUEsS0FBSyxHQUFHLENBQUM7d0JBQ2pJcUIsTUFBTTt3QkFDTkYsTUFBTSxDQUFDLEVBQUUsQ0FBQ2xCLEtBQUt5QixlQUFlLFFBQVFBLGVBQWUsS0FBSyxJQUFJLEtBQUssSUFBSUEsV0FBV1AsSUFBSSxNQUFNLFFBQVFsQixPQUFPLEtBQUssSUFBSUEsS0FBSyxHQUFHLENBQUM7b0JBQ2pJO29CQUNBRSxNQUFNO29CQUNOQyxPQUFPO29CQUNQQyxRQUFRO29CQUNSQyxZQUFZO2dCQUNoQjtZQUNKO1FBQ0o7UUFDQSxPQUFPWCxJQUFJTixJQUFJLENBQUNDLGFBQWFDO0lBQ2pDO0FBQ0osRUFDQSw0Q0FBNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RCdWlsZGVyLmpzP2Y3NGYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IG5vZGVGZXRjaCBmcm9tICdAc3VwYWJhc2Uvbm9kZS1mZXRjaCc7XG5pbXBvcnQgUG9zdGdyZXN0RXJyb3IgZnJvbSAnLi9Qb3N0Z3Jlc3RFcnJvcic7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3N0Z3Jlc3RCdWlsZGVyIHtcbiAgICBjb25zdHJ1Y3RvcihidWlsZGVyKSB7XG4gICAgICAgIHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWV0aG9kID0gYnVpbGRlci5tZXRob2Q7XG4gICAgICAgIHRoaXMudXJsID0gYnVpbGRlci51cmw7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IGJ1aWxkZXIuaGVhZGVycztcbiAgICAgICAgdGhpcy5zY2hlbWEgPSBidWlsZGVyLnNjaGVtYTtcbiAgICAgICAgdGhpcy5ib2R5ID0gYnVpbGRlci5ib2R5O1xuICAgICAgICB0aGlzLnNob3VsZFRocm93T25FcnJvciA9IGJ1aWxkZXIuc2hvdWxkVGhyb3dPbkVycm9yO1xuICAgICAgICB0aGlzLnNpZ25hbCA9IGJ1aWxkZXIuc2lnbmFsO1xuICAgICAgICB0aGlzLmlzTWF5YmVTaW5nbGUgPSBidWlsZGVyLmlzTWF5YmVTaW5nbGU7XG4gICAgICAgIGlmIChidWlsZGVyLmZldGNoKSB7XG4gICAgICAgICAgICB0aGlzLmZldGNoID0gYnVpbGRlci5mZXRjaDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgZmV0Y2ggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmZldGNoID0gbm9kZUZldGNoO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mZXRjaCA9IGZldGNoO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHRoZXJlJ3MgYW4gZXJyb3Igd2l0aCB0aGUgcXVlcnksIHRocm93T25FcnJvciB3aWxsIHJlamVjdCB0aGUgcHJvbWlzZSBieVxuICAgICAqIHRocm93aW5nIHRoZSBlcnJvciBpbnN0ZWFkIG9mIHJldHVybmluZyBpdCBhcyBwYXJ0IG9mIGEgc3VjY2Vzc2Z1bCByZXNwb25zZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vc3VwYWJhc2Uvc3VwYWJhc2UtanMvaXNzdWVzLzkyfVxuICAgICAqL1xuICAgIHRocm93T25FcnJvcigpIHtcbiAgICAgICAgdGhpcy5zaG91bGRUaHJvd09uRXJyb3IgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGhlbihvbmZ1bGZpbGxlZCwgb25yZWplY3RlZCkge1xuICAgICAgICAvLyBodHRwczovL3Bvc3RncmVzdC5vcmcvZW4vc3RhYmxlL2FwaS5odG1sI3N3aXRjaGluZy1zY2hlbWFzXG4gICAgICAgIGlmICh0aGlzLnNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBza2lwXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoWydHRVQnLCAnSEVBRCddLmluY2x1ZGVzKHRoaXMubWV0aG9kKSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQtUHJvZmlsZSddID0gdGhpcy5zY2hlbWE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ0NvbnRlbnQtUHJvZmlsZSddID0gdGhpcy5zY2hlbWE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWV0aG9kICE9PSAnR0VUJyAmJiB0aGlzLm1ldGhvZCAhPT0gJ0hFQUQnKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5PVEU6IEludm9rZSB3L28gYHRoaXNgIHRvIGF2b2lkIGlsbGVnYWwgaW52b2NhdGlvbiBlcnJvci5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N1cGFiYXNlL3Bvc3RncmVzdC1qcy9wdWxsLzI0N1xuICAgICAgICBjb25zdCBfZmV0Y2ggPSB0aGlzLmZldGNoO1xuICAgICAgICBsZXQgcmVzID0gX2ZldGNoKHRoaXMudXJsLnRvU3RyaW5nKCksIHtcbiAgICAgICAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh0aGlzLmJvZHkpLFxuICAgICAgICAgICAgc2lnbmFsOiB0aGlzLnNpZ25hbCxcbiAgICAgICAgfSkudGhlbihhc3luYyAocmVzKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgIGxldCBlcnJvciA9IG51bGw7XG4gICAgICAgICAgICBsZXQgZGF0YSA9IG51bGw7XG4gICAgICAgICAgICBsZXQgY291bnQgPSBudWxsO1xuICAgICAgICAgICAgbGV0IHN0YXR1cyA9IHJlcy5zdGF0dXM7XG4gICAgICAgICAgICBsZXQgc3RhdHVzVGV4dCA9IHJlcy5zdGF0dXNUZXh0O1xuICAgICAgICAgICAgaWYgKHJlcy5vaykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1ldGhvZCAhPT0gJ0hFQUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBhd2FpdCByZXMudGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYm9keSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByZWZlcjogcmV0dXJuPW1pbmltYWxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID09PSAndGV4dC9jc3YnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYm9keTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmhlYWRlcnNbJ0FjY2VwdCddICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi92bmQucGdyc3QucGxhbit0ZXh0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBib2R5O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoYm9keSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnRIZWFkZXIgPSAoX2EgPSB0aGlzLmhlYWRlcnNbJ1ByZWZlciddKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubWF0Y2goL2NvdW50PShleGFjdHxwbGFubmVkfGVzdGltYXRlZCkvKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50UmFuZ2UgPSAoX2IgPSByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtcmFuZ2UnKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvdW50SGVhZGVyICYmIGNvbnRlbnRSYW5nZSAmJiBjb250ZW50UmFuZ2UubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb3VudCA9IHBhcnNlSW50KGNvbnRlbnRSYW5nZVsxXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFRlbXBvcmFyeSBwYXJ0aWFsIGZpeCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3N1cGFiYXNlL3Bvc3RncmVzdC1qcy9pc3N1ZXMvMzYxXG4gICAgICAgICAgICAgICAgLy8gSXNzdWUgcGVyc2lzdHMgZS5nLiBmb3IgYC5pbnNlcnQoWy4uLl0pLnNlbGVjdCgpLm1heWJlU2luZ2xlKClgXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNNYXliZVNpbmdsZSAmJiB0aGlzLm1ldGhvZCA9PT0gJ0dFVCcgJiYgQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vUG9zdGdSRVNUL3Bvc3RncmVzdC9ibG9iL2E4NjdkNzljNDI0MTlhZjE2YzE4YzNmYjAxOWViYThkZjk5MjYyNmYvc3JjL1Bvc3RnUkVTVC9FcnJvci5ocyNMNTUzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogJ1BHUlNUMTE2JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzOiBgUmVzdWx0cyBjb250YWluICR7ZGF0YS5sZW5ndGh9IHJvd3MsIGFwcGxpY2F0aW9uL3ZuZC5wZ3JzdC5vYmplY3QranNvbiByZXF1aXJlcyAxIHJvd2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnSlNPTiBvYmplY3QgcmVxdWVzdGVkLCBtdWx0aXBsZSAob3Igbm8pIHJvd3MgcmV0dXJuZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gNDA2O1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA9ICdOb3QgQWNjZXB0YWJsZSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGF0YS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhWzBdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVzLnRleHQoKTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IEpTT04ucGFyc2UoYm9keSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9wb3N0Z3Jlc3QtanMvaXNzdWVzLzI5NVxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlcnJvcikgJiYgcmVzLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAyMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0ID0gJ09LJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoX2QpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3N1cGFiYXNlL3Bvc3RncmVzdC1qcy9pc3N1ZXMvMjk1XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MDQgJiYgYm9keSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IDIwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgPSAnTm8gQ29udGVudCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBib2R5LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgJiYgdGhpcy5pc01heWJlU2luZ2xlICYmICgoX2MgPSBlcnJvciA9PT0gbnVsbCB8fCBlcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyb3IuZGV0YWlscykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmluY2x1ZGVzKCcwIHJvd3MnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAyMDA7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgPSAnT0snO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgJiYgdGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFBvc3RncmVzdEVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3N0Z3Jlc3RSZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGNvdW50LFxuICAgICAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBwb3N0Z3Jlc3RSZXNwb25zZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghdGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHtcbiAgICAgICAgICAgIHJlcyA9IHJlcy5jYXRjaCgoZmV0Y2hFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICAgICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7KF9hID0gZmV0Y2hFcnJvciA9PT0gbnVsbCB8fCBmZXRjaEVycm9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmZXRjaEVycm9yLm5hbWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdGZXRjaEVycm9yJ306ICR7ZmV0Y2hFcnJvciA9PT0gbnVsbCB8fCBmZXRjaEVycm9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmZXRjaEVycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHM6IGAkeyhfYiA9IGZldGNoRXJyb3IgPT09IG51bGwgfHwgZmV0Y2hFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmV0Y2hFcnJvci5zdGFjaykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJyd9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpbnQ6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogYCR7KF9jID0gZmV0Y2hFcnJvciA9PT0gbnVsbCB8fCBmZXRjaEVycm9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmZXRjaEVycm9yLmNvZGUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICcnfWAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IDAsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6ICcnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcy50aGVuKG9uZnVsZmlsbGVkLCBvbnJlamVjdGVkKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qb3N0Z3Jlc3RCdWlsZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJub2RlRmV0Y2giLCJQb3N0Z3Jlc3RFcnJvciIsIlBvc3RncmVzdEJ1aWxkZXIiLCJjb25zdHJ1Y3RvciIsImJ1aWxkZXIiLCJzaG91bGRUaHJvd09uRXJyb3IiLCJtZXRob2QiLCJ1cmwiLCJoZWFkZXJzIiwic2NoZW1hIiwiYm9keSIsInNpZ25hbCIsImlzTWF5YmVTaW5nbGUiLCJmZXRjaCIsInRocm93T25FcnJvciIsInRoZW4iLCJvbmZ1bGZpbGxlZCIsIm9ucmVqZWN0ZWQiLCJ1bmRlZmluZWQiLCJpbmNsdWRlcyIsIl9mZXRjaCIsInJlcyIsInRvU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsIl9hIiwiX2IiLCJfYyIsImVycm9yIiwiZGF0YSIsImNvdW50Iiwic3RhdHVzIiwic3RhdHVzVGV4dCIsIm9rIiwidGV4dCIsInBhcnNlIiwiY291bnRIZWFkZXIiLCJtYXRjaCIsImNvbnRlbnRSYW5nZSIsImdldCIsInNwbGl0IiwibGVuZ3RoIiwicGFyc2VJbnQiLCJBcnJheSIsImlzQXJyYXkiLCJjb2RlIiwiZGV0YWlscyIsImhpbnQiLCJtZXNzYWdlIiwiX2QiLCJwb3N0Z3Jlc3RSZXNwb25zZSIsImNhdGNoIiwiZmV0Y2hFcnJvciIsIm5hbWUiLCJzdGFjayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestClient.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestClient.js ***! + \****************************************************************************/ +/***/ ((__unused_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 */ PostgrestClient)\n/* harmony export */ });\n/* harmony import */ var _PostgrestQueryBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestQueryBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js\");\n/* harmony import */ var _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PostgrestFilterBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/constants.js\");\n\n\n\n/**\n * PostgREST client.\n *\n * @typeParam Database - Types for the schema from the [type\n * generator](https://supabase.com/docs/reference/javascript/next/typescript-support)\n *\n * @typeParam SchemaName - Postgres schema to switch to. Must be a string\n * literal, the same one passed to the constructor. If the schema is not\n * `\"public\"`, this must be supplied manually.\n */ class PostgrestClient {\n // TODO: Add back shouldThrowOnError once we figure out the typings\n /**\n * Creates a PostgREST client.\n *\n * @param url - URL of the PostgREST endpoint\n * @param options - Named parameters\n * @param options.headers - Custom headers\n * @param options.schema - Postgres schema to switch to\n * @param options.fetch - Custom fetch\n */ constructor(url, { headers = {}, schema, fetch } = {}){\n this.url = url;\n this.headers = Object.assign(Object.assign({}, _constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_HEADERS), headers);\n this.schemaName = schema;\n this.fetch = fetch;\n }\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */ from(relation) {\n const url = new URL(`${this.url}/${relation}`);\n return new _PostgrestQueryBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"](url, {\n headers: Object.assign({}, this.headers),\n schema: this.schemaName,\n fetch: this.fetch\n });\n }\n /**\n * Select a schema to query or perform an function (rpc) call.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The schema to query\n */ schema(schema) {\n return new PostgrestClient(this.url, {\n headers: this.headers,\n schema,\n fetch: this.fetch\n });\n }\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ rpc(fn, args = {}, { head = false, count } = {}) {\n let method;\n const url = new URL(`${this.url}/rpc/${fn}`);\n let body;\n if (head) {\n method = \"HEAD\";\n Object.entries(args).forEach(([name, value])=>{\n url.searchParams.append(name, `${value}`);\n });\n } else {\n method = \"POST\";\n body = args;\n }\n const headers = Object.assign({}, this.headers);\n if (count) {\n headers[\"Prefer\"] = `count=${count}`;\n }\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n method,\n url,\n headers,\n schema: this.schemaName,\n body,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n} //# sourceMappingURL=PostgrestClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RDbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0RDtBQUNFO0FBQ2hCO0FBQzlDOzs7Ozs7Ozs7Q0FTQyxHQUNjLE1BQU1HO0lBQ2pCLG1FQUFtRTtJQUNuRTs7Ozs7Ozs7S0FRQyxHQUNEQyxZQUFZQyxHQUFHLEVBQUUsRUFBRUMsVUFBVSxDQUFDLENBQUMsRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQUcsR0FBRyxDQUFDLENBQUMsQ0FBRTtRQUNwRCxJQUFJLENBQUNILEdBQUcsR0FBR0E7UUFDWCxJQUFJLENBQUNDLE9BQU8sR0FBR0csT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHUix1REFBZUEsR0FBR0k7UUFDakUsSUFBSSxDQUFDSyxVQUFVLEdBQUdKO1FBQ2xCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNqQjtJQUNBOzs7O0tBSUMsR0FDREksS0FBS0MsUUFBUSxFQUFFO1FBQ1gsTUFBTVIsTUFBTSxJQUFJUyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUNULEdBQUcsQ0FBQyxDQUFDLEVBQUVRLFNBQVMsQ0FBQztRQUM3QyxPQUFPLElBQUliLDhEQUFxQkEsQ0FBQ0ssS0FBSztZQUNsQ0MsU0FBU0csT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUNKLE9BQU87WUFDdkNDLFFBQVEsSUFBSSxDQUFDSSxVQUFVO1lBQ3ZCSCxPQUFPLElBQUksQ0FBQ0EsS0FBSztRQUNyQjtJQUNKO0lBQ0E7Ozs7OztLQU1DLEdBQ0RELE9BQU9BLE1BQU0sRUFBRTtRQUNYLE9BQU8sSUFBSUosZ0JBQWdCLElBQUksQ0FBQ0UsR0FBRyxFQUFFO1lBQ2pDQyxTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUNyQkM7WUFDQUMsT0FBTyxJQUFJLENBQUNBLEtBQUs7UUFDckI7SUFDSjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9CQyxHQUNETyxJQUFJQyxFQUFFLEVBQUVDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRUMsT0FBTyxLQUFLLEVBQUVDLEtBQUssRUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQzlDLElBQUlDO1FBQ0osTUFBTWYsTUFBTSxJQUFJUyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUNULEdBQUcsQ0FBQyxLQUFLLEVBQUVXLEdBQUcsQ0FBQztRQUMzQyxJQUFJSztRQUNKLElBQUlILE1BQU07WUFDTkUsU0FBUztZQUNUWCxPQUFPYSxPQUFPLENBQUNMLE1BQU1NLE9BQU8sQ0FBQyxDQUFDLENBQUNDLE1BQU1DLE1BQU07Z0JBQ3ZDcEIsSUFBSXFCLFlBQVksQ0FBQ0MsTUFBTSxDQUFDSCxNQUFNLENBQUMsRUFBRUMsTUFBTSxDQUFDO1lBQzVDO1FBQ0osT0FDSztZQUNETCxTQUFTO1lBQ1RDLE9BQU9KO1FBQ1g7UUFDQSxNQUFNWCxVQUFVRyxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQ0osT0FBTztRQUM5QyxJQUFJYSxPQUFPO1lBQ1BiLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUVhLE1BQU0sQ0FBQztRQUN4QztRQUNBLE9BQU8sSUFBSWxCLCtEQUFzQkEsQ0FBQztZQUM5Qm1CO1lBQ0FmO1lBQ0FDO1lBQ0FDLFFBQVEsSUFBSSxDQUFDSSxVQUFVO1lBQ3ZCVTtZQUNBYixPQUFPLElBQUksQ0FBQ0EsS0FBSztZQUNqQm9CLFlBQVk7UUFDaEI7SUFDSjtBQUNKLEVBQ0EsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0Q2xpZW50LmpzPzJlZjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBvc3RncmVzdFF1ZXJ5QnVpbGRlciBmcm9tICcuL1Bvc3RncmVzdFF1ZXJ5QnVpbGRlcic7XG5pbXBvcnQgUG9zdGdyZXN0RmlsdGVyQnVpbGRlciBmcm9tICcuL1Bvc3RncmVzdEZpbHRlckJ1aWxkZXInO1xuaW1wb3J0IHsgREVGQVVMVF9IRUFERVJTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuLyoqXG4gKiBQb3N0Z1JFU1QgY2xpZW50LlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0YWJhc2UgLSBUeXBlcyBmb3IgdGhlIHNjaGVtYSBmcm9tIHRoZSBbdHlwZVxuICogZ2VuZXJhdG9yXShodHRwczovL3N1cGFiYXNlLmNvbS9kb2NzL3JlZmVyZW5jZS9qYXZhc2NyaXB0L25leHQvdHlwZXNjcmlwdC1zdXBwb3J0KVxuICpcbiAqIEB0eXBlUGFyYW0gU2NoZW1hTmFtZSAtIFBvc3RncmVzIHNjaGVtYSB0byBzd2l0Y2ggdG8uIE11c3QgYmUgYSBzdHJpbmdcbiAqIGxpdGVyYWwsIHRoZSBzYW1lIG9uZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLiBJZiB0aGUgc2NoZW1hIGlzIG5vdFxuICogYFwicHVibGljXCJgLCB0aGlzIG11c3QgYmUgc3VwcGxpZWQgbWFudWFsbHkuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvc3RncmVzdENsaWVudCB7XG4gICAgLy8gVE9ETzogQWRkIGJhY2sgc2hvdWxkVGhyb3dPbkVycm9yIG9uY2Ugd2UgZmlndXJlIG91dCB0aGUgdHlwaW5nc1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBQb3N0Z1JFU1QgY2xpZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCAtIFVSTCBvZiB0aGUgUG9zdGdSRVNUIGVuZHBvaW50XG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXG4gICAgICogQHBhcmFtIG9wdGlvbnMuaGVhZGVycyAtIEN1c3RvbSBoZWFkZXJzXG4gICAgICogQHBhcmFtIG9wdGlvbnMuc2NoZW1hIC0gUG9zdGdyZXMgc2NoZW1hIHRvIHN3aXRjaCB0b1xuICAgICAqIEBwYXJhbSBvcHRpb25zLmZldGNoIC0gQ3VzdG9tIGZldGNoXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodXJsLCB7IGhlYWRlcnMgPSB7fSwgc2NoZW1hLCBmZXRjaCwgfSA9IHt9KSB7XG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfSEVBREVSUyksIGhlYWRlcnMpO1xuICAgICAgICB0aGlzLnNjaGVtYU5hbWUgPSBzY2hlbWE7XG4gICAgICAgIHRoaXMuZmV0Y2ggPSBmZXRjaDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGVyZm9ybSBhIHF1ZXJ5IG9uIGEgdGFibGUgb3IgYSB2aWV3LlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlbGF0aW9uIC0gVGhlIHRhYmxlIG9yIHZpZXcgbmFtZSB0byBxdWVyeVxuICAgICAqL1xuICAgIGZyb20ocmVsYXRpb24pIHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChgJHt0aGlzLnVybH0vJHtyZWxhdGlvbn1gKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIodXJsLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYU5hbWUsXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbGVjdCBhIHNjaGVtYSB0byBxdWVyeSBvciBwZXJmb3JtIGFuIGZ1bmN0aW9uIChycGMpIGNhbGwuXG4gICAgICpcbiAgICAgKiBUaGUgc2NoZW1hIG5lZWRzIHRvIGJlIG9uIHRoZSBsaXN0IG9mIGV4cG9zZWQgc2NoZW1hcyBpbnNpZGUgU3VwYWJhc2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2NoZW1hIC0gVGhlIHNjaGVtYSB0byBxdWVyeVxuICAgICAqL1xuICAgIHNjaGVtYShzY2hlbWEpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RDbGllbnQodGhpcy51cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGVyZm9ybSBhIGZ1bmN0aW9uIGNhbGwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm4gLSBUaGUgZnVuY3Rpb24gbmFtZSB0byBjYWxsXG4gICAgICogQHBhcmFtIGFyZ3MgLSBUaGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGZ1bmN0aW9uIGNhbGxcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5oZWFkIC0gV2hlbiBzZXQgdG8gYHRydWVgLCBgZGF0YWAgd2lsbCBub3QgYmUgcmV0dXJuZWQuXG4gICAgICogVXNlZnVsIGlmIHlvdSBvbmx5IG5lZWQgdGhlIGNvdW50LlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCByb3dzIHJldHVybmVkIGJ5IHRoZVxuICAgICAqIGZ1bmN0aW9uLiBPbmx5IGFwcGxpY2FibGUgZm9yIFtzZXQtcmV0dXJuaW5nXG4gICAgICogZnVuY3Rpb25zXShodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvZnVuY3Rpb25zLXNyZi5odG1sKS5cbiAgICAgKlxuICAgICAqIGBcImV4YWN0XCJgOiBFeGFjdCBidXQgc2xvdyBjb3VudCBhbGdvcml0aG0uIFBlcmZvcm1zIGEgYENPVU5UKCopYCB1bmRlciB0aGVcbiAgICAgKiBob29kLlxuICAgICAqXG4gICAgICogYFwicGxhbm5lZFwiYDogQXBwcm94aW1hdGVkIGJ1dCBmYXN0IGNvdW50IGFsZ29yaXRobS4gVXNlcyB0aGUgUG9zdGdyZXNcbiAgICAgKiBzdGF0aXN0aWNzIHVuZGVyIHRoZSBob29kLlxuICAgICAqXG4gICAgICogYFwiZXN0aW1hdGVkXCJgOiBVc2VzIGV4YWN0IGNvdW50IGZvciBsb3cgbnVtYmVycyBhbmQgcGxhbm5lZCBjb3VudCBmb3IgaGlnaFxuICAgICAqIG51bWJlcnMuXG4gICAgICovXG4gICAgcnBjKGZuLCBhcmdzID0ge30sIHsgaGVhZCA9IGZhbHNlLCBjb3VudCwgfSA9IHt9KSB7XG4gICAgICAgIGxldCBtZXRob2Q7XG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoYCR7dGhpcy51cmx9L3JwYy8ke2ZufWApO1xuICAgICAgICBsZXQgYm9keTtcbiAgICAgICAgaWYgKGhlYWQpIHtcbiAgICAgICAgICAgIG1ldGhvZCA9ICdIRUFEJztcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGFyZ3MpLmZvckVhY2goKFtuYW1lLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChuYW1lLCBgJHt2YWx1ZX1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWV0aG9kID0gJ1BPU1QnO1xuICAgICAgICAgICAgYm9keSA9IGFyZ3M7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaGVhZGVycyk7XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgaGVhZGVyc1snUHJlZmVyJ10gPSBgY291bnQ9JHtjb3VudH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcih7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYU5hbWUsXG4gICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgZmV0Y2g6IHRoaXMuZmV0Y2gsXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG9zdGdyZXN0Q2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIiLCJQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyIiwiREVGQVVMVF9IRUFERVJTIiwiUG9zdGdyZXN0Q2xpZW50IiwiY29uc3RydWN0b3IiLCJ1cmwiLCJoZWFkZXJzIiwic2NoZW1hIiwiZmV0Y2giLCJPYmplY3QiLCJhc3NpZ24iLCJzY2hlbWFOYW1lIiwiZnJvbSIsInJlbGF0aW9uIiwiVVJMIiwicnBjIiwiZm4iLCJhcmdzIiwiaGVhZCIsImNvdW50IiwibWV0aG9kIiwiYm9keSIsImVudHJpZXMiLCJmb3JFYWNoIiwibmFtZSIsInZhbHVlIiwic2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwiYWxsb3dFbXB0eSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestClient.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestError.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestError.js ***! + \***************************************************************************/ +/***/ ((__unused_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 */ PostgrestError)\n/* harmony export */ });\nclass PostgrestError extends Error {\n constructor(context){\n super(context.message);\n this.name = \"PostgrestError\";\n this.details = context.details;\n this.hint = context.hint;\n this.code = context.code;\n }\n} //# sourceMappingURL=PostgrestError.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RFcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWUsTUFBTUEsdUJBQXVCQztJQUN4Q0MsWUFBWUMsT0FBTyxDQUFFO1FBQ2pCLEtBQUssQ0FBQ0EsUUFBUUMsT0FBTztRQUNyQixJQUFJLENBQUNDLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHSCxRQUFRRyxPQUFPO1FBQzlCLElBQUksQ0FBQ0MsSUFBSSxHQUFHSixRQUFRSSxJQUFJO1FBQ3hCLElBQUksQ0FBQ0MsSUFBSSxHQUFHTCxRQUFRSyxJQUFJO0lBQzVCO0FBQ0osRUFDQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RFcnJvci5qcz9mZTg5Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvc3RncmVzdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcbiAgICAgICAgc3VwZXIoY29udGV4dC5tZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ1Bvc3RncmVzdEVycm9yJztcbiAgICAgICAgdGhpcy5kZXRhaWxzID0gY29udGV4dC5kZXRhaWxzO1xuICAgICAgICB0aGlzLmhpbnQgPSBjb250ZXh0LmhpbnQ7XG4gICAgICAgIHRoaXMuY29kZSA9IGNvbnRleHQuY29kZTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qb3N0Z3Jlc3RFcnJvci5qcy5tYXAiXSwibmFtZXMiOlsiUG9zdGdyZXN0RXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwiY29udGV4dCIsIm1lc3NhZ2UiLCJuYW1lIiwiZGV0YWlscyIsImhpbnQiLCJjb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestError.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js ***! + \***********************************************************************************/ +/***/ ((__unused_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 */ PostgrestFilterBuilder)\n/* harmony export */ });\n/* harmony import */ var _PostgrestTransformBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestTransformBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js\");\n\nclass PostgrestFilterBuilder extends _PostgrestTransformBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n /**\n * Match only rows where `column` is equal to `value`.\n *\n * To check if the value of `column` is NULL, you should use `.is()` instead.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ eq(column, value) {\n this.url.searchParams.append(column, `eq.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is not equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ neq(column, value) {\n this.url.searchParams.append(column, `neq.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is greater than `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ gt(column, value) {\n this.url.searchParams.append(column, `gt.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is greater than or equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ gte(column, value) {\n this.url.searchParams.append(column, `gte.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is less than `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ lt(column, value) {\n this.url.searchParams.append(column, `lt.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is less than or equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ lte(column, value) {\n this.url.searchParams.append(column, `lte.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` matches `pattern` case-sensitively.\n *\n * @param column - The column to filter on\n * @param pattern - The pattern to match with\n */ like(column, pattern) {\n this.url.searchParams.append(column, `like.${pattern}`);\n return this;\n }\n /**\n * Match only rows where `column` matches all of `patterns` case-sensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */ likeAllOf(column, patterns) {\n this.url.searchParams.append(column, `like(all).{${patterns.join(\",\")}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches any of `patterns` case-sensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */ likeAnyOf(column, patterns) {\n this.url.searchParams.append(column, `like(any).{${patterns.join(\",\")}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches `pattern` case-insensitively.\n *\n * @param column - The column to filter on\n * @param pattern - The pattern to match with\n */ ilike(column, pattern) {\n this.url.searchParams.append(column, `ilike.${pattern}`);\n return this;\n }\n /**\n * Match only rows where `column` matches all of `patterns` case-insensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */ ilikeAllOf(column, patterns) {\n this.url.searchParams.append(column, `ilike(all).{${patterns.join(\",\")}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches any of `patterns` case-insensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */ ilikeAnyOf(column, patterns) {\n this.url.searchParams.append(column, `ilike(any).{${patterns.join(\",\")}}`);\n return this;\n }\n /**\n * Match only rows where `column` IS `value`.\n *\n * For non-boolean columns, this is only relevant for checking if the value of\n * `column` is NULL by setting `value` to `null`.\n *\n * For boolean columns, you can also set `value` to `true` or `false` and it\n * will behave the same way as `.eq()`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */ is(column, value) {\n this.url.searchParams.append(column, `is.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is included in the `values` array.\n *\n * @param column - The column to filter on\n * @param values - The values array to filter with\n */ in(column, values) {\n const cleanedValues = values.map((s)=>{\n // handle postgrest reserved characters\n // https://postgrest.org/en/v7.0.0/api.html#reserved-characters\n if (typeof s === \"string\" && new RegExp(\"[,()]\").test(s)) return `\"${s}\"`;\n else return `${s}`;\n }).join(\",\");\n this.url.searchParams.append(column, `in.(${cleanedValues})`);\n return this;\n }\n /**\n * Only relevant for jsonb, array, and range columns. Match only rows where\n * `column` contains every element appearing in `value`.\n *\n * @param column - The jsonb, array, or range column to filter on\n * @param value - The jsonb, array, or range value to filter with\n */ contains(column, value) {\n if (typeof value === \"string\") {\n // range types can be inclusive '[', ']' or exclusive '(', ')' so just\n // keep it simple and accept a string\n this.url.searchParams.append(column, `cs.${value}`);\n } else if (Array.isArray(value)) {\n // array\n this.url.searchParams.append(column, `cs.{${value.join(\",\")}}`);\n } else {\n // json\n this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`);\n }\n return this;\n }\n /**\n * Only relevant for jsonb, array, and range columns. Match only rows where\n * every element appearing in `column` is contained by `value`.\n *\n * @param column - The jsonb, array, or range column to filter on\n * @param value - The jsonb, array, or range value to filter with\n */ containedBy(column, value) {\n if (typeof value === \"string\") {\n // range\n this.url.searchParams.append(column, `cd.${value}`);\n } else if (Array.isArray(value)) {\n // array\n this.url.searchParams.append(column, `cd.{${value.join(\",\")}}`);\n } else {\n // json\n this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`);\n }\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is greater than any element in `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeGt(column, range) {\n this.url.searchParams.append(column, `sr.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is either contained in `range` or greater than any element in\n * `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeGte(column, range) {\n this.url.searchParams.append(column, `nxl.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is less than any element in `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeLt(column, range) {\n this.url.searchParams.append(column, `sl.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is either contained in `range` or less than any element in\n * `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeLte(column, range) {\n this.url.searchParams.append(column, `nxr.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where `column` is\n * mutually exclusive to `range` and there can be no element between the two\n * ranges.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */ rangeAdjacent(column, range) {\n this.url.searchParams.append(column, `adj.${range}`);\n return this;\n }\n /**\n * Only relevant for array and range columns. Match only rows where\n * `column` and `value` have an element in common.\n *\n * @param column - The array or range column to filter on\n * @param value - The array or range value to filter with\n */ overlaps(column, value) {\n if (typeof value === \"string\") {\n // range\n this.url.searchParams.append(column, `ov.${value}`);\n } else {\n // array\n this.url.searchParams.append(column, `ov.{${value.join(\",\")}}`);\n }\n return this;\n }\n /**\n * Only relevant for text and tsvector columns. Match only rows where\n * `column` matches the query string in `query`.\n *\n * @param column - The text or tsvector column to filter on\n * @param query - The query text to match with\n * @param options - Named parameters\n * @param options.config - The text search configuration to use\n * @param options.type - Change how the `query` text is interpreted\n */ textSearch(column, query, { config, type } = {}) {\n let typePart = \"\";\n if (type === \"plain\") {\n typePart = \"pl\";\n } else if (type === \"phrase\") {\n typePart = \"ph\";\n } else if (type === \"websearch\") {\n typePart = \"w\";\n }\n const configPart = config === undefined ? \"\" : `(${config})`;\n this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`);\n return this;\n }\n /**\n * Match only rows where each column in `query` keys is equal to its\n * associated value. Shorthand for multiple `.eq()`s.\n *\n * @param query - The object to filter with, with column names as keys mapped\n * to their filter values\n */ match(query) {\n Object.entries(query).forEach(([column, value])=>{\n this.url.searchParams.append(column, `eq.${value}`);\n });\n return this;\n }\n /**\n * Match only rows which doesn't satisfy the filter.\n *\n * Unlike most filters, `opearator` and `value` are used as-is and need to\n * follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure they are properly sanitized.\n *\n * @param column - The column to filter on\n * @param operator - The operator to be negated to filter with, following\n * PostgREST syntax\n * @param value - The value to filter with, following PostgREST syntax\n */ not(column, operator, value) {\n this.url.searchParams.append(column, `not.${operator}.${value}`);\n return this;\n }\n /**\n * Match only rows which satisfy at least one of the filters.\n *\n * Unlike most filters, `filters` is used as-is and needs to follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure it's properly sanitized.\n *\n * It's currently not possible to do an `.or()` filter across multiple tables.\n *\n * @param filters - The filters to use, following PostgREST syntax\n * @param options - Named parameters\n * @param options.referencedTable - Set this to filter on referenced tables\n * instead of the parent table\n * @param options.foreignTable - Deprecated, use `referencedTable` instead\n */ or(filters, { foreignTable, referencedTable = foreignTable } = {}) {\n const key = referencedTable ? `${referencedTable}.or` : \"or\";\n this.url.searchParams.append(key, `(${filters})`);\n return this;\n }\n /**\n * Match only rows which satisfy the filter. This is an escape hatch - you\n * should use the specific filter methods wherever possible.\n *\n * Unlike most filters, `opearator` and `value` are used as-is and need to\n * follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure they are properly sanitized.\n *\n * @param column - The column to filter on\n * @param operator - The operator to filter with, following PostgREST syntax\n * @param value - The value to filter with, following PostgREST syntax\n */ filter(column, operator, value) {\n this.url.searchParams.append(column, `${operator}.${value}`);\n return this;\n }\n} //# sourceMappingURL=PostgrestFilterBuilder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW9FO0FBQ3JELE1BQU1DLCtCQUErQkQsa0VBQXlCQTtJQUN6RTs7Ozs7OztLQU9DLEdBQ0RFLEdBQUdDLE1BQU0sRUFBRUMsS0FBSyxFQUFFO1FBQ2QsSUFBSSxDQUFDQyxHQUFHLENBQUNDLFlBQVksQ0FBQ0MsTUFBTSxDQUFDSixRQUFRLENBQUMsR0FBRyxFQUFFQyxNQUFNLENBQUM7UUFDbEQsT0FBTyxJQUFJO0lBQ2Y7SUFDQTs7Ozs7S0FLQyxHQUNESSxJQUFJTCxNQUFNLEVBQUVDLEtBQUssRUFBRTtRQUNmLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxZQUFZLENBQUNDLE1BQU0sQ0FBQ0osUUFBUSxDQUFDLElBQUksRUFBRUMsTUFBTSxDQUFDO1FBQ25ELE9BQU8sSUFBSTtJQUNmO0lBQ0E7Ozs7O0tBS0MsR0FDREssR0FBR04sTUFBTSxFQUFFQyxLQUFLLEVBQUU7UUFDZCxJQUFJLENBQUNDLEdBQUcsQ0FBQ0MsWUFBWSxDQUFDQyxNQUFNLENBQUNKLFFBQVEsQ0FBQyxHQUFHLEVBQUVDLE1BQU0sQ0FBQztRQUNsRCxPQUFPLElBQUk7SUFDZjtJQUNBOzs7OztLQUtDLEdBQ0RNLElBQUlQLE1BQU0sRUFBRUMsS0FBSyxFQUFFO1FBQ2YsSUFBSSxDQUFDQyxHQUFHLENBQUNDLFlBQVksQ0FBQ0MsTUFBTSxDQUFDSixRQUFRLENBQUMsSUFBSSxFQUFFQyxNQUFNLENBQUM7UUFDbkQsT0FBTyxJQUFJO0lBQ2Y7SUFDQTs7Ozs7S0FLQyxHQUNETyxHQUFHUixNQUFNLEVBQUVDLEtBQUssRUFBRTtRQUNkLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxZQUFZLENBQUNDLE1BQU0sQ0FBQ0osUUFBUSxDQUFDLEdBQUcsRUFBRUMsTUFBTSxDQUFDO1FBQ2xELE9BQU8sSUFBSTtJQUNmO0lB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RCxPQUFPLElBQUk7SUFDZjtJQUNBOzs7Ozs7Ozs7Ozs7OztLQWNDLEdBQ0RvRCxHQUFHQyxPQUFPLEVBQUUsRUFBRUMsWUFBWSxFQUFFQyxrQkFBa0JELFlBQVksRUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ2hFLE1BQU1FLE1BQU1ELGtCQUFrQixDQUFDLEVBQUVBLGdCQUFnQixHQUFHLENBQUMsR0FBRztRQUN4RCxJQUFJLENBQUN0RCxHQUFHLENBQUNDLFlBQVksQ0FBQ0MsTUFBTSxDQUFDcUQsS0FBSyxDQUFDLENBQUMsRUFBRUgsUUFBUSxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJO0lBQ2Y7SUFDQTs7Ozs7Ozs7Ozs7O0tBWUMsR0FDREksT0FBTzFELE1BQU0sRUFBRW9ELFFBQVEsRUFBRW5ELEtBQUssRUFBRTtRQUM1QixJQUFJLENBQUNDLEdBQUcsQ0FBQ0MsWUFBWSxDQUFDQyxNQUFNLENBQUNKLFFBQVEsQ0FBQyxFQUFFb0QsU0FBUyxDQUFDLEVBQUVuRCxNQUFNLENBQUM7UUFDM0QsT0FBTyxJQUFJO0lBQ2Y7QUFDSixFQUNBLGtEQUFrRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvbW9kdWxlL1Bvc3RncmVzdEZpbHRlckJ1aWxkZXIuanM/NjYxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlciBmcm9tICcuL1Bvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXInO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9zdGdyZXN0RmlsdGVyQnVpbGRlciBleHRlbmRzIFBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXIge1xuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBpcyBlcXVhbCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogVG8gY2hlY2sgaWYgdGhlIHZhbHVlIG9mIGBjb2x1bW5gIGlzIE5VTEwsIHlvdSBzaG91bGQgdXNlIGAuaXMoKWAgaW5zdGVhZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIGVxKGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBlcS4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIG5vdCBlcXVhbCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgbmVxKGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBuZXEuJHt2YWx1ZX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBpcyBncmVhdGVyIHRoYW4gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIGd0KGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBndC4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgZ3RlKGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBndGUuJHt2YWx1ZX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBpcyBsZXNzIHRoYW4gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIGx0KGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBsdC4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgbHRlKGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBsdGUuJHt2YWx1ZX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBtYXRjaGVzIGBwYXR0ZXJuYCBjYXNlLXNlbnNpdGl2ZWx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHBhdHRlcm4gLSBUaGUgcGF0dGVybiB0byBtYXRjaCB3aXRoXG4gICAgICovXG4gICAgbGlrZShjb2x1bW4sIHBhdHRlcm4pIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBsaWtlLiR7cGF0dGVybn1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBtYXRjaGVzIGFsbCBvZiBgcGF0dGVybnNgIGNhc2Utc2Vuc2l0aXZlbHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gcGF0dGVybnMgLSBUaGUgcGF0dGVybnMgdG8gbWF0Y2ggd2l0aFxuICAgICAqL1xuICAgIGxpa2VBbGxPZihjb2x1bW4sIHBhdHRlcm5zKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgbGlrZShhbGwpLnske3BhdHRlcm5zLmpvaW4oJywnKX19YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgbWF0Y2hlcyBhbnkgb2YgYHBhdHRlcm5zYCBjYXNlLXNlbnNpdGl2ZWx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHBhdHRlcm5zIC0gVGhlIHBhdHRlcm5zIHRvIG1hdGNoIHdpdGhcbiAgICAgKi9cbiAgICBsaWtlQW55T2YoY29sdW1uLCBwYXR0ZXJucykge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGxpa2UoYW55KS57JHtwYXR0ZXJucy5qb2luKCcsJyl9fWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYHBhdHRlcm5gIGNhc2UtaW5zZW5zaXRpdmVseS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSBwYXR0ZXJuIC0gVGhlIHBhdHRlcm4gdG8gbWF0Y2ggd2l0aFxuICAgICAqL1xuICAgIGlsaWtlKGNvbHVtbiwgcGF0dGVybikge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGlsaWtlLiR7cGF0dGVybn1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBtYXRjaGVzIGFsbCBvZiBgcGF0dGVybnNgIGNhc2UtaW5zZW5zaXRpdmVseS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSBwYXR0ZXJucyAtIFRoZSBwYXR0ZXJucyB0byBtYXRjaCB3aXRoXG4gICAgICovXG4gICAgaWxpa2VBbGxPZihjb2x1bW4sIHBhdHRlcm5zKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgaWxpa2UoYWxsKS57JHtwYXR0ZXJucy5qb2luKCcsJyl9fWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYW55IG9mIGBwYXR0ZXJuc2AgY2FzZS1pbnNlbnNpdGl2ZWx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHBhdHRlcm5zIC0gVGhlIHBhdHRlcm5zIHRvIG1hdGNoIHdpdGhcbiAgICAgKi9cbiAgICBpbGlrZUFueU9mKGNvbHVtbiwgcGF0dGVybnMpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBpbGlrZShhbnkpLnske3BhdHRlcm5zLmpvaW4oJywnKX19YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgSVMgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEZvciBub24tYm9vbGVhbiBjb2x1bW5zLCB0aGlzIGlzIG9ubHkgcmVsZXZhbnQgZm9yIGNoZWNraW5nIGlmIHRoZSB2YWx1ZSBvZlxuICAgICAqIGBjb2x1bW5gIGlzIE5VTEwgYnkgc2V0dGluZyBgdmFsdWVgIHRvIGBudWxsYC5cbiAgICAgKlxuICAgICAqIEZvciBib29sZWFuIGNvbHVtbnMsIHlvdSBjYW4gYWxzbyBzZXQgYHZhbHVlYCB0byBgdHJ1ZWAgb3IgYGZhbHNlYCBhbmQgaXRcbiAgICAgKiB3aWxsIGJlaGF2ZSB0aGUgc2FtZSB3YXkgYXMgYC5lcSgpYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIGlzKGNvbHVtbiwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBpcy4ke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGluY2x1ZGVkIGluIHRoZSBgdmFsdWVzYCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSB2YWx1ZXMgLSBUaGUgdmFsdWVzIGFycmF5IHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgaW4oY29sdW1uLCB2YWx1ZXMpIHtcbiAgICAgICAgY29uc3QgY2xlYW5lZFZhbHVlcyA9IHZhbHVlc1xuICAgICAgICAgICAgLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgLy8gaGFuZGxlIHBvc3RncmVzdCByZXNlcnZlZCBjaGFyYWN0ZXJzXG4gICAgICAgICAgICAvLyBodHRwczovL3Bvc3RncmVzdC5vcmcvZW4vdjcuMC4wL2FwaS5odG1sI3Jlc2VydmVkLWNoYXJhY3RlcnNcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcyA9PT0gJ3N0cmluZycgJiYgbmV3IFJlZ0V4cCgnWywoKV0nKS50ZXN0KHMpKVxuICAgICAgICAgICAgICAgIHJldHVybiBgXCIke3N9XCJgO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtzfWA7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignLCcpO1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGluLigke2NsZWFuZWRWYWx1ZXN9KWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT25seSByZWxldmFudCBmb3IganNvbmIsIGFycmF5LCBhbmQgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlXG4gICAgICogYGNvbHVtbmAgY29udGFpbnMgZXZlcnkgZWxlbWVudCBhcHBlYXJpbmcgaW4gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUganNvbmIsIGFycmF5LCBvciByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGpzb25iLCBhcnJheSwgb3IgcmFuZ2UgdmFsdWUgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICBjb250YWlucyhjb2x1bW4sIHZhbHVlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyByYW5nZSB0eXBlcyBjYW4gYmUgaW5jbHVzaXZlICdbJywgJ10nIG9yIGV4Y2x1c2l2ZSAnKCcsICcpJyBzbyBqdXN0XG4gICAgICAgICAgICAvLyBrZWVwIGl0IHNpbXBsZSBhbmQgYWNjZXB0IGEgc3RyaW5nXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGNzLiR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIGFycmF5XG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGNzLnske3ZhbHVlLmpvaW4oJywnKX19YCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBqc29uXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGNzLiR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciBqc29uYiwgYXJyYXksIGFuZCByYW5nZSBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmVcbiAgICAgKiBldmVyeSBlbGVtZW50IGFwcGVhcmluZyBpbiBgY29sdW1uYCBpcyBjb250YWluZWQgYnkgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUganNvbmIsIGFycmF5LCBvciByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGpzb25iLCBhcnJheSwgb3IgcmFuZ2UgdmFsdWUgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICBjb250YWluZWRCeShjb2x1bW4sIHZhbHVlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyByYW5nZVxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBjZC4ke3ZhbHVlfWApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBhcnJheVxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBjZC57JHt2YWx1ZS5qb2luKCcsJyl9fWApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8ganNvblxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBjZC4ke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT25seSByZWxldmFudCBmb3IgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlIGV2ZXJ5IGVsZW1lbnQgaW5cbiAgICAgKiBgY29sdW1uYCBpcyBncmVhdGVyIHRoYW4gYW55IGVsZW1lbnQgaW4gYHJhbmdlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgcmFuZ2UgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSByYW5nZSAtIFRoZSByYW5nZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIHJhbmdlR3QoY29sdW1uLCByYW5nZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYHNyLiR7cmFuZ2V9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciByYW5nZSBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgZXZlcnkgZWxlbWVudCBpblxuICAgICAqIGBjb2x1bW5gIGlzIGVpdGhlciBjb250YWluZWQgaW4gYHJhbmdlYCBvciBncmVhdGVyIHRoYW4gYW55IGVsZW1lbnQgaW5cbiAgICAgKiBgcmFuZ2VgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHJhbmdlIC0gVGhlIHJhbmdlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgcmFuZ2VHdGUoY29sdW1uLCByYW5nZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG54bC4ke3JhbmdlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT25seSByZWxldmFudCBmb3IgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlIGV2ZXJ5IGVsZW1lbnQgaW5cbiAgICAgKiBgY29sdW1uYCBpcyBsZXNzIHRoYW4gYW55IGVsZW1lbnQgaW4gYHJhbmdlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgcmFuZ2UgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSByYW5nZSAtIFRoZSByYW5nZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIHJhbmdlTHQoY29sdW1uLCByYW5nZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYHNsLiR7cmFuZ2V9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciByYW5nZSBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgZXZlcnkgZWxlbWVudCBpblxuICAgICAqIGBjb2x1bW5gIGlzIGVpdGhlciBjb250YWluZWQgaW4gYHJhbmdlYCBvciBsZXNzIHRoYW4gYW55IGVsZW1lbnQgaW5cbiAgICAgKiBgcmFuZ2VgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXG4gICAgICogQHBhcmFtIHJhbmdlIC0gVGhlIHJhbmdlIHRvIGZpbHRlciB3aXRoXG4gICAgICovXG4gICAgcmFuZ2VMdGUoY29sdW1uLCByYW5nZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG54ci4ke3JhbmdlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT25seSByZWxldmFudCBmb3IgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzXG4gICAgICogbXV0dWFsbHkgZXhjbHVzaXZlIHRvIGByYW5nZWAgYW5kIHRoZXJlIGNhbiBiZSBubyBlbGVtZW50IGJldHdlZW4gdGhlIHR3b1xuICAgICAqIHJhbmdlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgcmFuZ2UgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSByYW5nZSAtIFRoZSByYW5nZSB0byBmaWx0ZXIgd2l0aFxuICAgICAqL1xuICAgIHJhbmdlQWRqYWNlbnQoY29sdW1uLCByYW5nZSkge1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGFkai4ke3JhbmdlfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT25seSByZWxldmFudCBmb3IgYXJyYXkgYW5kIHJhbmdlIGNvbHVtbnMuIE1hdGNoIG9ubHkgcm93cyB3aGVyZVxuICAgICAqIGBjb2x1bW5gIGFuZCBgdmFsdWVgIGhhdmUgYW4gZWxlbWVudCBpbiBjb21tb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGFycmF5IG9yIHJhbmdlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgYXJyYXkgb3IgcmFuZ2UgdmFsdWUgdG8gZmlsdGVyIHdpdGhcbiAgICAgKi9cbiAgICBvdmVybGFwcyhjb2x1bW4sIHZhbHVlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyByYW5nZVxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBvdi4ke3ZhbHVlfWApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gYXJyYXlcbiAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgb3YueyR7dmFsdWUuam9pbignLCcpfX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT25seSByZWxldmFudCBmb3IgdGV4dCBhbmQgdHN2ZWN0b3IgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlXG4gICAgICogYGNvbHVtbmAgbWF0Y2hlcyB0aGUgcXVlcnkgc3RyaW5nIGluIGBxdWVyeWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIHRleHQgb3IgdHN2ZWN0b3IgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSBxdWVyeSAtIFRoZSBxdWVyeSB0ZXh0IHRvIG1hdGNoIHdpdGhcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5jb25maWcgLSBUaGUgdGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiB0byB1c2VcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy50eXBlIC0gQ2hhbmdlIGhvdyB0aGUgYHF1ZXJ5YCB0ZXh0IGlzIGludGVycHJldGVkXG4gICAgICovXG4gICAgdGV4dFNlYXJjaChjb2x1bW4sIHF1ZXJ5LCB7IGNvbmZpZywgdHlwZSB9ID0ge30pIHtcbiAgICAgICAgbGV0IHR5cGVQYXJ0ID0gJyc7XG4gICAgICAgIGlmICh0eXBlID09PSAncGxhaW4nKSB7XG4gICAgICAgICAgICB0eXBlUGFydCA9ICdwbCc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ3BocmFzZScpIHtcbiAgICAgICAgICAgIHR5cGVQYXJ0ID0gJ3BoJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnd2Vic2VhcmNoJykge1xuICAgICAgICAgICAgdHlwZVBhcnQgPSAndyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29uZmlnUGFydCA9IGNvbmZpZyA9PT0gdW5kZWZpbmVkID8gJycgOiBgKCR7Y29uZmlnfSlgO1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYCR7dHlwZVBhcnR9ZnRzJHtjb25maWdQYXJ0fS4ke3F1ZXJ5fWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGVhY2ggY29sdW1uIGluIGBxdWVyeWAga2V5cyBpcyBlcXVhbCB0byBpdHNcbiAgICAgKiBhc3NvY2lhdGVkIHZhbHVlLiBTaG9ydGhhbmQgZm9yIG11bHRpcGxlIGAuZXEoKWBzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHF1ZXJ5IC0gVGhlIG9iamVjdCB0byBmaWx0ZXIgd2l0aCwgd2l0aCBjb2x1bW4gbmFtZXMgYXMga2V5cyBtYXBwZWRcbiAgICAgKiB0byB0aGVpciBmaWx0ZXIgdmFsdWVzXG4gICAgICovXG4gICAgbWF0Y2gocXVlcnkpIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocXVlcnkpLmZvckVhY2goKFtjb2x1bW4sIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBlcS4ke3ZhbHVlfWApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGljaCBkb2Vzbid0IHNhdGlzZnkgdGhlIGZpbHRlci5cbiAgICAgKlxuICAgICAqIFVubGlrZSBtb3N0IGZpbHRlcnMsIGBvcGVhcmF0b3JgIGFuZCBgdmFsdWVgIGFyZSB1c2VkIGFzLWlzIGFuZCBuZWVkIHRvXG4gICAgICogZm9sbG93IFtQb3N0Z1JFU1RcbiAgICAgKiBzeW50YXhdKGh0dHBzOi8vcG9zdGdyZXN0Lm9yZy9lbi9zdGFibGUvYXBpLmh0bWwjb3BlcmF0b3JzKS4gWW91IGFsc28gbmVlZFxuICAgICAqIHRvIG1ha2Ugc3VyZSB0aGV5IGFyZSBwcm9wZXJseSBzYW5pdGl6ZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgLSBUaGUgb3BlcmF0b3IgdG8gYmUgbmVnYXRlZCB0byBmaWx0ZXIgd2l0aCwgZm9sbG93aW5nXG4gICAgICogUG9zdGdSRVNUIHN5bnRheFxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aCwgZm9sbG93aW5nIFBvc3RnUkVTVCBzeW50YXhcbiAgICAgKi9cbiAgICBub3QoY29sdW1uLCBvcGVyYXRvciwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBub3QuJHtvcGVyYXRvcn0uJHt2YWx1ZX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGljaCBzYXRpc2Z5IGF0IGxlYXN0IG9uZSBvZiB0aGUgZmlsdGVycy5cbiAgICAgKlxuICAgICAqIFVubGlrZSBtb3N0IGZpbHRlcnMsIGBmaWx0ZXJzYCBpcyB1c2VkIGFzLWlzIGFuZCBuZWVkcyB0byBmb2xsb3cgW1Bvc3RnUkVTVFxuICAgICAqIHN5bnRheF0oaHR0cHM6Ly9wb3N0Z3Jlc3Qub3JnL2VuL3N0YWJsZS9hcGkuaHRtbCNvcGVyYXRvcnMpLiBZb3UgYWxzbyBuZWVkXG4gICAgICogdG8gbWFrZSBzdXJlIGl0J3MgcHJvcGVybHkgc2FuaXRpemVkLlxuICAgICAqXG4gICAgICogSXQncyBjdXJyZW50bHkgbm90IHBvc3NpYmxlIHRvIGRvIGFuIGAub3IoKWAgZmlsdGVyIGFjcm9zcyBtdWx0aXBsZSB0YWJsZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVycyAtIFRoZSBmaWx0ZXJzIHRvIHVzZSwgZm9sbG93aW5nIFBvc3RnUkVTVCBzeW50YXhcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWZlcmVuY2VkVGFibGUgLSBTZXQgdGhpcyB0byBmaWx0ZXIgb24gcmVmZXJlbmNlZCB0YWJsZXNcbiAgICAgKiBpbnN0ZWFkIG9mIHRoZSBwYXJlbnQgdGFibGVcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5mb3JlaWduVGFibGUgLSBEZXByZWNhdGVkLCB1c2UgYHJlZmVyZW5jZWRUYWJsZWAgaW5zdGVhZFxuICAgICAqL1xuICAgIG9yKGZpbHRlcnMsIHsgZm9yZWlnblRhYmxlLCByZWZlcmVuY2VkVGFibGUgPSBmb3JlaWduVGFibGUsIH0gPSB7fSkge1xuICAgICAgICBjb25zdCBrZXkgPSByZWZlcmVuY2VkVGFibGUgPyBgJHtyZWZlcmVuY2VkVGFibGV9Lm9yYCA6ICdvcic7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoa2V5LCBgKCR7ZmlsdGVyc30pYCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hpY2ggc2F0aXNmeSB0aGUgZmlsdGVyLiBUaGlzIGlzIGFuIGVzY2FwZSBoYXRjaCAtIHlvdVxuICAgICAqIHNob3VsZCB1c2UgdGhlIHNwZWNpZmljIGZpbHRlciBtZXRob2RzIHdoZXJldmVyIHBvc3NpYmxlLlxuICAgICAqXG4gICAgICogVW5saWtlIG1vc3QgZmlsdGVycywgYG9wZWFyYXRvcmAgYW5kIGB2YWx1ZWAgYXJlIHVzZWQgYXMtaXMgYW5kIG5lZWQgdG9cbiAgICAgKiBmb2xsb3cgW1Bvc3RnUkVTVFxuICAgICAqIHN5bnRheF0oaHR0cHM6Ly9wb3N0Z3Jlc3Qub3JnL2VuL3N0YWJsZS9hcGkuaHRtbCNvcGVyYXRvcnMpLiBZb3UgYWxzbyBuZWVkXG4gICAgICogdG8gbWFrZSBzdXJlIHRoZXkgYXJlIHByb3Blcmx5IHNhbml0aXplZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxuICAgICAqIEBwYXJhbSBvcGVyYXRvciAtIFRoZSBvcGVyYXRvciB0byBmaWx0ZXIgd2l0aCwgZm9sbG93aW5nIFBvc3RnUkVTVCBzeW50YXhcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZmlsdGVyIHdpdGgsIGZvbGxvd2luZyBQb3N0Z1JFU1Qgc3ludGF4XG4gICAgICovXG4gICAgZmlsdGVyKGNvbHVtbiwgb3BlcmF0b3IsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgJHtvcGVyYXRvcn0uJHt2YWx1ZX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG9zdGdyZXN0RmlsdGVyQnVpbGRlci5qcy5tYXAiXSwibmFtZXMiOlsiUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlciIsIlBvc3RncmVzdEZpbHRlckJ1aWxkZXIiLCJlcSIsImNvbHVtbiIsInZhbHVlIiwidXJsIiwic2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwibmVxIiwiZ3QiLCJndGUiLCJsdCIsImx0ZSIsImxpa2UiLCJwYXR0ZXJuIiwibGlrZUFsbE9mIiwicGF0dGVybnMiLCJqb2luIiwibGlrZUFueU9mIiwiaWxpa2UiLCJpbGlrZUFsbE9mIiwiaWxpa2VBbnlPZiIsImlzIiwiaW4iLCJ2YWx1ZXMiLCJjbGVhbmVkVmFsdWVzIiwibWFwIiwicyIsIlJlZ0V4cCIsInRlc3QiLCJjb250YWlucyIsIkFycmF5IiwiaXNBcnJheSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb250YWluZWRCeSIsInJhbmdlR3QiLCJyYW5nZSIsInJhbmdlR3RlIiwicmFuZ2VMdCIsInJhbmdlTHRlIiwicmFuZ2VBZGphY2VudCIsIm92ZXJsYXBzIiwidGV4dFNlYXJjaCIsInF1ZXJ5IiwiY29uZmlnIiwidHlwZSIsInR5cGVQYXJ0IiwiY29uZmlnUGFydCIsInVuZGVmaW5lZCIsIm1hdGNoIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJub3QiLCJvcGVyYXRvciIsIm9yIiwiZmlsdGVycyIsImZvcmVpZ25UYWJsZSIsInJlZmVyZW5jZWRUYWJsZSIsImtleSIsImZpbHRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js ***! + \**********************************************************************************/ +/***/ ((__unused_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 */ PostgrestQueryBuilder)\n/* harmony export */ });\n/* harmony import */ var _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestFilterBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js\");\n\nclass PostgrestQueryBuilder {\n constructor(url, { headers = {}, schema, fetch }){\n this.url = url;\n this.headers = headers;\n this.schema = schema;\n this.fetch = fetch;\n }\n /**\n * Perform a SELECT query on the table or view.\n *\n * @param columns - The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName`\n *\n * @param options - Named parameters\n *\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n *\n * @param options.count - Count algorithm to use to count rows in the table or view.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ select(columns, { head = false, count } = {}) {\n const method = head ? \"HEAD\" : \"GET\";\n // Remove whitespaces except when quoted\n let quoted = false;\n const cleanedColumns = (columns !== null && columns !== void 0 ? columns : \"*\").split(\"\").map((c)=>{\n if (/\\s/.test(c) && !quoted) {\n return \"\";\n }\n if (c === '\"') {\n quoted = !quoted;\n }\n return c;\n }).join(\"\");\n this.url.searchParams.set(\"select\", cleanedColumns);\n if (count) {\n this.headers[\"Prefer\"] = `count=${count}`;\n }\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n /**\n * Perform an INSERT into the table or view.\n *\n * By default, inserted rows are not returned. To return it, chain the call\n * with `.select()`.\n *\n * @param values - The values to insert. Pass an object to insert a single row\n * or an array to insert multiple rows.\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count inserted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n *\n * @param options.defaultToNull - Make missing fields default to `null`.\n * Otherwise, use the default value for the column. Only applies for bulk\n * inserts.\n */ insert(values, { count, defaultToNull = true } = {}) {\n const method = \"POST\";\n const prefersHeaders = [];\n if (this.headers[\"Prefer\"]) {\n prefersHeaders.push(this.headers[\"Prefer\"]);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (!defaultToNull) {\n prefersHeaders.push(\"missing=default\");\n }\n this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\n if (Array.isArray(values)) {\n const columns = values.reduce((acc, x)=>acc.concat(Object.keys(x)), []);\n if (columns.length > 0) {\n const uniqueColumns = [\n ...new Set(columns)\n ].map((column)=>`\"${column}\"`);\n this.url.searchParams.set(\"columns\", uniqueColumns.join(\",\"));\n }\n }\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n /**\n * Perform an UPSERT on the table or view. Depending on the column(s) passed\n * to `onConflict`, `.upsert()` allows you to perform the equivalent of\n * `.insert()` if a row with the corresponding `onConflict` columns doesn't\n * exist, or if it does exist, perform an alternative action depending on\n * `ignoreDuplicates`.\n *\n * By default, upserted rows are not returned. To return it, chain the call\n * with `.select()`.\n *\n * @param values - The values to upsert with. Pass an object to upsert a\n * single row or an array to upsert multiple rows.\n *\n * @param options - Named parameters\n *\n * @param options.onConflict - Comma-separated UNIQUE column(s) to specify how\n * duplicate rows are determined. Two rows are duplicates if all the\n * `onConflict` columns are equal.\n *\n * @param options.ignoreDuplicates - If `true`, duplicate rows are ignored. If\n * `false`, duplicate rows are merged with existing rows.\n *\n * @param options.count - Count algorithm to use to count upserted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n *\n * @param options.defaultToNull - Make missing fields default to `null`.\n * Otherwise, use the default value for the column. This only applies when\n * inserting new rows, not when merging with existing rows under\n * `ignoreDuplicates: false`. This also only applies when doing bulk upserts.\n */ upsert(values, { onConflict, ignoreDuplicates = false, count, defaultToNull = true } = {}) {\n const method = \"POST\";\n const prefersHeaders = [\n `resolution=${ignoreDuplicates ? \"ignore\" : \"merge\"}-duplicates`\n ];\n if (onConflict !== undefined) this.url.searchParams.set(\"on_conflict\", onConflict);\n if (this.headers[\"Prefer\"]) {\n prefersHeaders.push(this.headers[\"Prefer\"]);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (!defaultToNull) {\n prefersHeaders.push(\"missing=default\");\n }\n this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\n if (Array.isArray(values)) {\n const columns = values.reduce((acc, x)=>acc.concat(Object.keys(x)), []);\n if (columns.length > 0) {\n const uniqueColumns = [\n ...new Set(columns)\n ].map((column)=>`\"${column}\"`);\n this.url.searchParams.set(\"columns\", uniqueColumns.join(\",\"));\n }\n }\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n /**\n * Perform an UPDATE on the table or view.\n *\n * By default, updated rows are not returned. To return it, chain the call\n * with `.select()` after filters.\n *\n * @param values - The values to update with\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count updated rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ update(values, { count } = {}) {\n const method = \"PATCH\";\n const prefersHeaders = [];\n if (this.headers[\"Prefer\"]) {\n prefersHeaders.push(this.headers[\"Prefer\"]);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n /**\n * Perform a DELETE on the table or view.\n *\n * By default, deleted rows are not returned. To return it, chain the call\n * with `.select()` after filters.\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count deleted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ delete({ count } = {}) {\n const method = \"DELETE\";\n const prefersHeaders = [];\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (this.headers[\"Prefer\"]) {\n prefersHeaders.unshift(this.headers[\"Prefer\"]);\n }\n this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\n return new _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n fetch: this.fetch,\n allowEmpty: false\n });\n }\n} //# sourceMappingURL=PostgrestQueryBuilder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBOEQ7QUFDL0MsTUFBTUM7SUFDakJDLFlBQVlDLEdBQUcsRUFBRSxFQUFFQyxVQUFVLENBQUMsQ0FBQyxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBRyxDQUFFO1FBQy9DLElBQUksQ0FBQ0gsR0FBRyxHQUFHQTtRQUNYLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNqQjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9CQyxHQUNEQyxPQUFPQyxPQUFPLEVBQUUsRUFBRUMsT0FBTyxLQUFLLEVBQUVDLEtBQUssRUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQzNDLE1BQU1DLFNBQVNGLE9BQU8sU0FBUztRQUMvQix3Q0FBd0M7UUFDeEMsSUFBSUcsU0FBUztRQUNiLE1BQU1DLGlCQUFpQixDQUFDTCxZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJQSxVQUFVLEdBQUUsRUFDeEVNLEtBQUssQ0FBQyxJQUNOQyxHQUFHLENBQUMsQ0FBQ0M7WUFDTixJQUFJLEtBQUtDLElBQUksQ0FBQ0QsTUFBTSxDQUFDSixRQUFRO2dCQUN6QixPQUFPO1lBQ1g7WUFDQSxJQUFJSSxNQUFNLEtBQUs7Z0JBQ1hKLFNBQVMsQ0FBQ0E7WUFDZDtZQUNBLE9BQU9JO1FBQ1gsR0FDS0UsSUFBSSxDQUFDO1FBQ1YsSUFBSSxDQUFDZixHQUFHLENBQUNnQixZQUFZLENBQUNDLEdBQUcsQ0FBQyxVQUFVUDtRQUNwQyxJQUFJSCxPQUFPO1lBQ1AsSUFBSSxDQUFDTixPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFTSxNQUFNLENBQUM7UUFDN0M7UUFDQSxPQUFPLElBQUlWLCtEQUFzQkEsQ0FBQztZQUM5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SUFBSSxDQUFDQSxNQUFNO1lBQ25Ca0MsTUFBTWhCO1lBQ05qQixPQUFPLElBQUksQ0FBQ0EsS0FBSztZQUNqQmUsWUFBWTtRQUNoQjtJQUNKO0lBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQWtCQyxHQUNEd0IsT0FBTyxFQUFFbkMsS0FBSyxFQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDcEIsTUFBTUMsU0FBUztRQUNmLE1BQU1jLGlCQUFpQixFQUFFO1FBQ3pCLElBQUlmLE9BQU87WUFDUGUsZUFBZUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFaEIsTUFBTSxDQUFDO1FBQ3hDO1FBQ0EsSUFBSSxJQUFJLENBQUNOLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDeEJxQixlQUFlcUIsT0FBTyxDQUFDLElBQUksQ0FBQzFDLE9BQU8sQ0FBQyxTQUFTO1FBQ2pEO1FBQ0EsSUFBSSxDQUFDQSxPQUFPLENBQUMsU0FBUyxHQUFHcUIsZUFBZVAsSUFBSSxDQUFDO1FBQzdDLE9BQU8sSUFBSWxCLCtEQUFzQkEsQ0FBQztZQUM5Qlc7WUFDQVIsS0FBSyxJQUFJLENBQUNBLEdBQUc7WUFDYkMsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJDLFFBQVEsSUFBSSxDQUFDQSxNQUFNO1lBQ25CQyxPQUFPLElBQUksQ0FBQ0EsS0FBSztZQUNqQmUsWUFBWTtRQUNoQjtJQUNKO0FBQ0osRUFDQSxpREFBaUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIuanM/MzQ1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUG9zdGdyZXN0RmlsdGVyQnVpbGRlciBmcm9tICcuL1Bvc3RncmVzdEZpbHRlckJ1aWxkZXInO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9zdGdyZXN0UXVlcnlCdWlsZGVyIHtcbiAgICBjb25zdHJ1Y3Rvcih1cmwsIHsgaGVhZGVycyA9IHt9LCBzY2hlbWEsIGZldGNoLCB9KSB7XG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICAgICAgICB0aGlzLnNjaGVtYSA9IHNjaGVtYTtcbiAgICAgICAgdGhpcy5mZXRjaCA9IGZldGNoO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtIGEgU0VMRUNUIHF1ZXJ5IG9uIHRoZSB0YWJsZSBvciB2aWV3LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbnMgLSBUaGUgY29sdW1ucyB0byByZXRyaWV2ZSwgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gQ29sdW1ucyBjYW4gYmUgcmVuYW1lZCB3aGVuIHJldHVybmVkIHdpdGggYGN1c3RvbU5hbWU6Y29sdW1uTmFtZWBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuaGVhZCAtIFdoZW4gc2V0IHRvIGB0cnVlYCwgYGRhdGFgIHdpbGwgbm90IGJlIHJldHVybmVkLlxuICAgICAqIFVzZWZ1bCBpZiB5b3Ugb25seSBuZWVkIHRoZSBjb3VudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCByb3dzIGluIHRoZSB0YWJsZSBvciB2aWV3LlxuICAgICAqXG4gICAgICogYFwiZXhhY3RcImA6IEV4YWN0IGJ1dCBzbG93IGNvdW50IGFsZ29yaXRobS4gUGVyZm9ybXMgYSBgQ09VTlQoKilgIHVuZGVyIHRoZVxuICAgICAqIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJwbGFubmVkXCJgOiBBcHByb3hpbWF0ZWQgYnV0IGZhc3QgY291bnQgYWxnb3JpdGhtLiBVc2VzIHRoZSBQb3N0Z3Jlc1xuICAgICAqIHN0YXRpc3RpY3MgdW5kZXIgdGhlIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJlc3RpbWF0ZWRcImA6IFVzZXMgZXhhY3QgY291bnQgZm9yIGxvdyBudW1iZXJzIGFuZCBwbGFubmVkIGNvdW50IGZvciBoaWdoXG4gICAgICogbnVtYmVycy5cbiAgICAgKi9cbiAgICBzZWxlY3QoY29sdW1ucywgeyBoZWFkID0gZmFsc2UsIGNvdW50LCB9ID0ge30pIHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gaGVhZCA/ICdIRUFEJyA6ICdHRVQnO1xuICAgICAgICAvLyBSZW1vdmUgd2hpdGVzcGFjZXMgZXhjZXB0IHdoZW4gcXVvdGVkXG4gICAgICAgIGxldCBxdW90ZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY2xlYW5lZENvbHVtbnMgPSAoY29sdW1ucyAhPT0gbnVsbCAmJiBjb2x1bW5zICE9PSB2b2lkIDAgPyBjb2x1bW5zIDogJyonKVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgaWYgKC9cXHMvLnRlc3QoYykgJiYgIXF1b3RlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjID09PSAnXCInKSB7XG4gICAgICAgICAgICAgICAgcXVvdGVkID0gIXF1b3RlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oJycpO1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCdzZWxlY3QnLCBjbGVhbmVkQ29sdW1ucyk7XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydQcmVmZXInXSA9IGBjb3VudD0ke2NvdW50fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyKHtcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxuICAgICAgICAgICAgZmV0Y2g6IHRoaXMuZmV0Y2gsXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBlcmZvcm0gYW4gSU5TRVJUIGludG8gdGhlIHRhYmxlIG9yIHZpZXcuXG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0LCBpbnNlcnRlZCByb3dzIGFyZSBub3QgcmV0dXJuZWQuIFRvIHJldHVybiBpdCwgY2hhaW4gdGhlIGNhbGxcbiAgICAgKiB3aXRoIGAuc2VsZWN0KClgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlcyAtIFRoZSB2YWx1ZXMgdG8gaW5zZXJ0LiBQYXNzIGFuIG9iamVjdCB0byBpbnNlcnQgYSBzaW5nbGUgcm93XG4gICAgICogb3IgYW4gYXJyYXkgdG8gaW5zZXJ0IG11bHRpcGxlIHJvd3MuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCBpbnNlcnRlZCByb3dzLlxuICAgICAqXG4gICAgICogYFwiZXhhY3RcImA6IEV4YWN0IGJ1dCBzbG93IGNvdW50IGFsZ29yaXRobS4gUGVyZm9ybXMgYSBgQ09VTlQoKilgIHVuZGVyIHRoZVxuICAgICAqIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJwbGFubmVkXCJgOiBBcHByb3hpbWF0ZWQgYnV0IGZhc3QgY291bnQgYWxnb3JpdGhtLiBVc2VzIHRoZSBQb3N0Z3Jlc1xuICAgICAqIHN0YXRpc3RpY3MgdW5kZXIgdGhlIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJlc3RpbWF0ZWRcImA6IFVzZXMgZXhhY3QgY291bnQgZm9yIGxvdyBudW1iZXJzIGFuZCBwbGFubmVkIGNvdW50IGZvciBoaWdoXG4gICAgICogbnVtYmVycy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmRlZmF1bHRUb051bGwgLSBNYWtlIG1pc3NpbmcgZmllbGRzIGRlZmF1bHQgdG8gYG51bGxgLlxuICAgICAqIE90aGVyd2lzZSwgdXNlIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY29sdW1uLiBPbmx5IGFwcGxpZXMgZm9yIGJ1bGtcbiAgICAgKiBpbnNlcnRzLlxuICAgICAqL1xuICAgIGluc2VydCh2YWx1ZXMsIHsgY291bnQsIGRlZmF1bHRUb051bGwgPSB0cnVlLCB9ID0ge30pIHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gJ1BPU1QnO1xuICAgICAgICBjb25zdCBwcmVmZXJzSGVhZGVycyA9IFtdO1xuICAgICAgICBpZiAodGhpcy5oZWFkZXJzWydQcmVmZXInXSkge1xuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaCh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY291bnQpIHtcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2goYGNvdW50PSR7Y291bnR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFkZWZhdWx0VG9OdWxsKSB7XG4gICAgICAgICAgICBwcmVmZXJzSGVhZGVycy5wdXNoKCdtaXNzaW5nPWRlZmF1bHQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddID0gcHJlZmVyc0hlYWRlcnMuam9pbignLCcpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5zID0gdmFsdWVzLnJlZHVjZSgoYWNjLCB4KSA9PiBhY2MuY29uY2F0KE9iamVjdC5rZXlzKHgpKSwgW10pO1xuICAgICAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUNvbHVtbnMgPSBbLi4ubmV3IFNldChjb2x1bW5zKV0ubWFwKChjb2x1bW4pID0+IGBcIiR7Y29sdW1ufVwiYCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldCgnY29sdW1ucycsIHVuaXF1ZUNvbHVtbnMuam9pbignLCcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdEZpbHRlckJ1aWxkZXIoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXG4gICAgICAgICAgICBib2R5OiB2YWx1ZXMsXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcbiAgICAgICAgICAgIGFsbG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGVyZm9ybSBhbiBVUFNFUlQgb24gdGhlIHRhYmxlIG9yIHZpZXcuIERlcGVuZGluZyBvbiB0aGUgY29sdW1uKHMpIHBhc3NlZFxuICAgICAqIHRvIGBvbkNvbmZsaWN0YCwgYC51cHNlcnQoKWAgYWxsb3dzIHlvdSB0byBwZXJmb3JtIHRoZSBlcXVpdmFsZW50IG9mXG4gICAgICogYC5pbnNlcnQoKWAgaWYgYSByb3cgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBgb25Db25mbGljdGAgY29sdW1ucyBkb2Vzbid0XG4gICAgICogZXhpc3QsIG9yIGlmIGl0IGRvZXMgZXhpc3QsIHBlcmZvcm0gYW4gYWx0ZXJuYXRpdmUgYWN0aW9uIGRlcGVuZGluZyBvblxuICAgICAqIGBpZ25vcmVEdXBsaWNhdGVzYC5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIHVwc2VydGVkIHJvd3MgYXJlIG5vdCByZXR1cm5lZC4gVG8gcmV0dXJuIGl0LCBjaGFpbiB0aGUgY2FsbFxuICAgICAqIHdpdGggYC5zZWxlY3QoKWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWVzIC0gVGhlIHZhbHVlcyB0byB1cHNlcnQgd2l0aC4gUGFzcyBhbiBvYmplY3QgdG8gdXBzZXJ0IGFcbiAgICAgKiBzaW5nbGUgcm93IG9yIGFuIGFycmF5IHRvIHVwc2VydCBtdWx0aXBsZSByb3dzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5vbkNvbmZsaWN0IC0gQ29tbWEtc2VwYXJhdGVkIFVOSVFVRSBjb2x1bW4ocykgdG8gc3BlY2lmeSBob3dcbiAgICAgKiBkdXBsaWNhdGUgcm93cyBhcmUgZGV0ZXJtaW5lZC4gVHdvIHJvd3MgYXJlIGR1cGxpY2F0ZXMgaWYgYWxsIHRoZVxuICAgICAqIGBvbkNvbmZsaWN0YCBjb2x1bW5zIGFyZSBlcXVhbC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmlnbm9yZUR1cGxpY2F0ZXMgLSBJZiBgdHJ1ZWAsIGR1cGxpY2F0ZSByb3dzIGFyZSBpZ25vcmVkLiBJZlxuICAgICAqIGBmYWxzZWAsIGR1cGxpY2F0ZSByb3dzIGFyZSBtZXJnZWQgd2l0aCBleGlzdGluZyByb3dzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuY291bnQgLSBDb3VudCBhbGdvcml0aG0gdG8gdXNlIHRvIGNvdW50IHVwc2VydGVkIHJvd3MuXG4gICAgICpcbiAgICAgKiBgXCJleGFjdFwiYDogRXhhY3QgYnV0IHNsb3cgY291bnQgYWxnb3JpdGhtLiBQZXJmb3JtcyBhIGBDT1VOVCgqKWAgdW5kZXIgdGhlXG4gICAgICogaG9vZC5cbiAgICAgKlxuICAgICAqIGBcInBsYW5uZWRcImA6IEFwcHJveGltYXRlZCBidXQgZmFzdCBjb3VudCBhbGdvcml0aG0uIFVzZXMgdGhlIFBvc3RncmVzXG4gICAgICogc3RhdGlzdGljcyB1bmRlciB0aGUgaG9vZC5cbiAgICAgKlxuICAgICAqIGBcImVzdGltYXRlZFwiYDogVXNlcyBleGFjdCBjb3VudCBmb3IgbG93IG51bWJlcnMgYW5kIHBsYW5uZWQgY291bnQgZm9yIGhpZ2hcbiAgICAgKiBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZGVmYXVsdFRvTnVsbCAtIE1ha2UgbWlzc2luZyBmaWVsZHMgZGVmYXVsdCB0byBgbnVsbGAuXG4gICAgICogT3RoZXJ3aXNlLCB1c2UgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjb2x1bW4uIFRoaXMgb25seSBhcHBsaWVzIHdoZW5cbiAgICAgKiBpbnNlcnRpbmcgbmV3IHJvd3MsIG5vdCB3aGVuIG1lcmdpbmcgd2l0aCBleGlzdGluZyByb3dzIHVuZGVyXG4gICAgICogYGlnbm9yZUR1cGxpY2F0ZXM6IGZhbHNlYC4gVGhpcyBhbHNvIG9ubHkgYXBwbGllcyB3aGVuIGRvaW5nIGJ1bGsgdXBzZXJ0cy5cbiAgICAgKi9cbiAgICB1cHNlcnQodmFsdWVzLCB7IG9uQ29uZmxpY3QsIGlnbm9yZUR1cGxpY2F0ZXMgPSBmYWxzZSwgY291bnQsIGRlZmF1bHRUb051bGwgPSB0cnVlLCB9ID0ge30pIHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gJ1BPU1QnO1xuICAgICAgICBjb25zdCBwcmVmZXJzSGVhZGVycyA9IFtgcmVzb2x1dGlvbj0ke2lnbm9yZUR1cGxpY2F0ZXMgPyAnaWdub3JlJyA6ICdtZXJnZSd9LWR1cGxpY2F0ZXNgXTtcbiAgICAgICAgaWYgKG9uQ29uZmxpY3QgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoJ29uX2NvbmZsaWN0Jywgb25Db25mbGljdCk7XG4gICAgICAgIGlmICh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKSB7XG4gICAgICAgICAgICBwcmVmZXJzSGVhZGVycy5wdXNoKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaChgY291bnQ9JHtjb3VudH1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRlZmF1bHRUb051bGwpIHtcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2goJ21pc3Npbmc9ZGVmYXVsdCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gPSBwcmVmZXJzSGVhZGVycy5qb2luKCcsJyk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbnMgPSB2YWx1ZXMucmVkdWNlKChhY2MsIHgpID0+IGFjYy5jb25jYXQoT2JqZWN0LmtleXMoeCkpLCBbXSk7XG4gICAgICAgICAgICBpZiAoY29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pcXVlQ29sdW1ucyA9IFsuLi5uZXcgU2V0KGNvbHVtbnMpXS5tYXAoKGNvbHVtbikgPT4gYFwiJHtjb2x1bW59XCJgKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCdjb2x1bW5zJywgdW5pcXVlQ29sdW1ucy5qb2luKCcsJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcih7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxuICAgICAgICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSxcbiAgICAgICAgICAgIGJvZHk6IHZhbHVlcyxcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxuICAgICAgICAgICAgYWxsb3dFbXB0eTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtIGFuIFVQREFURSBvbiB0aGUgdGFibGUgb3Igdmlldy5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIHVwZGF0ZWQgcm93cyBhcmUgbm90IHJldHVybmVkLiBUbyByZXR1cm4gaXQsIGNoYWluIHRoZSBjYWxsXG4gICAgICogd2l0aCBgLnNlbGVjdCgpYCBhZnRlciBmaWx0ZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlcyAtIFRoZSB2YWx1ZXMgdG8gdXBkYXRlIHdpdGhcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuY291bnQgLSBDb3VudCBhbGdvcml0aG0gdG8gdXNlIHRvIGNvdW50IHVwZGF0ZWQgcm93cy5cbiAgICAgKlxuICAgICAqIGBcImV4YWN0XCJgOiBFeGFjdCBidXQgc2xvdyBjb3VudCBhbGdvcml0aG0uIFBlcmZvcm1zIGEgYENPVU5UKCopYCB1bmRlciB0aGVcbiAgICAgKiBob29kLlxuICAgICAqXG4gICAgICogYFwicGxhbm5lZFwiYDogQXBwcm94aW1hdGVkIGJ1dCBmYXN0IGNvdW50IGFsZ29yaXRobS4gVXNlcyB0aGUgUG9zdGdyZXNcbiAgICAgKiBzdGF0aXN0aWNzIHVuZGVyIHRoZSBob29kLlxuICAgICAqXG4gICAgICogYFwiZXN0aW1hdGVkXCJgOiBVc2VzIGV4YWN0IGNvdW50IGZvciBsb3cgbnVtYmVycyBhbmQgcGxhbm5lZCBjb3VudCBmb3IgaGlnaFxuICAgICAqIG51bWJlcnMuXG4gICAgICovXG4gICAgdXBkYXRlKHZhbHVlcywgeyBjb3VudCwgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IG1ldGhvZCA9ICdQQVRDSCc7XG4gICAgICAgIGNvbnN0IHByZWZlcnNIZWFkZXJzID0gW107XG4gICAgICAgIGlmICh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKSB7XG4gICAgICAgICAgICBwcmVmZXJzSGVhZGVycy5wdXNoKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaChgY291bnQ9JHtjb3VudH1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddID0gcHJlZmVyc0hlYWRlcnMuam9pbignLCcpO1xuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdEZpbHRlckJ1aWxkZXIoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXG4gICAgICAgICAgICBib2R5OiB2YWx1ZXMsXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcbiAgICAgICAgICAgIGFsbG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGVyZm9ybSBhIERFTEVURSBvbiB0aGUgdGFibGUgb3Igdmlldy5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIGRlbGV0ZWQgcm93cyBhcmUgbm90IHJldHVybmVkLiBUbyByZXR1cm4gaXQsIGNoYWluIHRoZSBjYWxsXG4gICAgICogd2l0aCBgLnNlbGVjdCgpYCBhZnRlciBmaWx0ZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5jb3VudCAtIENvdW50IGFsZ29yaXRobSB0byB1c2UgdG8gY291bnQgZGVsZXRlZCByb3dzLlxuICAgICAqXG4gICAgICogYFwiZXhhY3RcImA6IEV4YWN0IGJ1dCBzbG93IGNvdW50IGFsZ29yaXRobS4gUGVyZm9ybXMgYSBgQ09VTlQoKilgIHVuZGVyIHRoZVxuICAgICAqIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJwbGFubmVkXCJgOiBBcHByb3hpbWF0ZWQgYnV0IGZhc3QgY291bnQgYWxnb3JpdGhtLiBVc2VzIHRoZSBQb3N0Z3Jlc1xuICAgICAqIHN0YXRpc3RpY3MgdW5kZXIgdGhlIGhvb2QuXG4gICAgICpcbiAgICAgKiBgXCJlc3RpbWF0ZWRcImA6IFVzZXMgZXhhY3QgY291bnQgZm9yIGxvdyBudW1iZXJzIGFuZCBwbGFubmVkIGNvdW50IGZvciBoaWdoXG4gICAgICogbnVtYmVycy5cbiAgICAgKi9cbiAgICBkZWxldGUoeyBjb3VudCwgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IG1ldGhvZCA9ICdERUxFVEUnO1xuICAgICAgICBjb25zdCBwcmVmZXJzSGVhZGVycyA9IFtdO1xuICAgICAgICBpZiAoY291bnQpIHtcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2goYGNvdW50PSR7Y291bnR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pIHtcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnVuc2hpZnQodGhpcy5oZWFkZXJzWydQcmVmZXInXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oZWFkZXJzWydQcmVmZXInXSA9IHByZWZlcnNIZWFkZXJzLmpvaW4oJywnKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyKHtcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxuICAgICAgICAgICAgZmV0Y2g6IHRoaXMuZmV0Y2gsXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG9zdGdyZXN0UXVlcnlCdWlsZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyIiwiUG9zdGdyZXN0UXVlcnlCdWlsZGVyIiwiY29uc3RydWN0b3IiLCJ1cmwiLCJoZWFkZXJzIiwic2NoZW1hIiwiZmV0Y2giLCJzZWxlY3QiLCJjb2x1bW5zIiwiaGVhZCIsImNvdW50IiwibWV0aG9kIiwicXVvdGVkIiwiY2xlYW5lZENvbHVtbnMiLCJzcGxpdCIsIm1hcCIsImMiLCJ0ZXN0Iiwiam9pbiIsInNlYXJjaFBhcmFtcyIsInNldCIsImFsbG93RW1wdHkiLCJpbnNlcnQiLCJ2YWx1ZXMiLCJkZWZhdWx0VG9OdWxsIiwicHJlZmVyc0hlYWRlcnMiLCJwdXNoIiwiQXJyYXkiLCJpc0FycmF5IiwicmVkdWNlIiwiYWNjIiwieCIsImNvbmNhdCIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJ1bmlxdWVDb2x1bW5zIiwiU2V0IiwiY29sdW1uIiwiYm9keSIsInVwc2VydCIsIm9uQ29uZmxpY3QiLCJpZ25vcmVEdXBsaWNhdGVzIiwidW5kZWZpbmVkIiwidXBkYXRlIiwiZGVsZXRlIiwidW5zaGlmdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js ***! + \**************************************************************************************/ +/***/ ((__unused_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 */ PostgrestTransformBuilder)\n/* harmony export */ });\n/* harmony import */ var _PostgrestBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js\");\n\nclass PostgrestTransformBuilder extends _PostgrestBuilder__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n /**\n * Perform a SELECT on the query result.\n *\n * By default, `.insert()`, `.update()`, `.upsert()`, and `.delete()` do not\n * return modified rows. By calling this method, modified rows are returned in\n * `data`.\n *\n * @param columns - The columns to retrieve, separated by commas\n */ select(columns) {\n // Remove whitespaces except when quoted\n let quoted = false;\n const cleanedColumns = (columns !== null && columns !== void 0 ? columns : \"*\").split(\"\").map((c)=>{\n if (/\\s/.test(c) && !quoted) {\n return \"\";\n }\n if (c === '\"') {\n quoted = !quoted;\n }\n return c;\n }).join(\"\");\n this.url.searchParams.set(\"select\", cleanedColumns);\n if (this.headers[\"Prefer\"]) {\n this.headers[\"Prefer\"] += \",\";\n }\n this.headers[\"Prefer\"] += \"return=representation\";\n return this;\n }\n /**\n * Order the query result by `column`.\n *\n * You can call this method multiple times to order by multiple columns.\n *\n * You can order referenced tables, but it only affects the ordering of the\n * parent table if you use `!inner` in the query.\n *\n * @param column - The column to order by\n * @param options - Named parameters\n * @param options.ascending - If `true`, the result will be in ascending order\n * @param options.nullsFirst - If `true`, `null`s appear first. If `false`,\n * `null`s appear last.\n * @param options.referencedTable - Set this to order a referenced table by\n * its columns\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */ order(column, { ascending = true, nullsFirst, foreignTable, referencedTable = foreignTable } = {}) {\n const key = referencedTable ? `${referencedTable}.order` : \"order\";\n const existingOrder = this.url.searchParams.get(key);\n this.url.searchParams.set(key, `${existingOrder ? `${existingOrder},` : \"\"}${column}.${ascending ? \"asc\" : \"desc\"}${nullsFirst === undefined ? \"\" : nullsFirst ? \".nullsfirst\" : \".nullslast\"}`);\n return this;\n }\n /**\n * Limit the query result by `count`.\n *\n * @param count - The maximum number of rows to return\n * @param options - Named parameters\n * @param options.referencedTable - Set this to limit rows of referenced\n * tables instead of the parent table\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */ limit(count, { foreignTable, referencedTable = foreignTable } = {}) {\n const key = typeof referencedTable === \"undefined\" ? \"limit\" : `${referencedTable}.limit`;\n this.url.searchParams.set(key, `${count}`);\n return this;\n }\n /**\n * Limit the query result by starting at an offset (`from`) and ending at the offset (`from + to`).\n * Only records within this range are returned.\n * This respects the query order and if there is no order clause the range could behave unexpectedly.\n * The `from` and `to` values are 0-based and inclusive: `range(1, 3)` will include the second, third\n * and fourth rows of the query.\n *\n * @param from - The starting index from which to limit the result\n * @param to - The last index to which to limit the result\n * @param options - Named parameters\n * @param options.referencedTable - Set this to limit rows of referenced\n * tables instead of the parent table\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */ range(from, to, { foreignTable, referencedTable = foreignTable } = {}) {\n const keyOffset = typeof referencedTable === \"undefined\" ? \"offset\" : `${referencedTable}.offset`;\n const keyLimit = typeof referencedTable === \"undefined\" ? \"limit\" : `${referencedTable}.limit`;\n this.url.searchParams.set(keyOffset, `${from}`);\n // Range is inclusive, so add 1\n this.url.searchParams.set(keyLimit, `${to - from + 1}`);\n return this;\n }\n /**\n * Set the AbortSignal for the fetch request.\n *\n * @param signal - The AbortSignal to use for the fetch request\n */ abortSignal(signal) {\n this.signal = signal;\n return this;\n }\n /**\n * Return `data` as a single object instead of an array of objects.\n *\n * Query result must be one row (e.g. using `.limit(1)`), otherwise this\n * returns an error.\n */ single() {\n this.headers[\"Accept\"] = \"application/vnd.pgrst.object+json\";\n return this;\n }\n /**\n * Return `data` as a single object instead of an array of objects.\n *\n * Query result must be zero or one row (e.g. using `.limit(1)`), otherwise\n * this returns an error.\n */ maybeSingle() {\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\n if (this.method === \"GET\") {\n this.headers[\"Accept\"] = \"application/json\";\n } else {\n this.headers[\"Accept\"] = \"application/vnd.pgrst.object+json\";\n }\n this.isMaybeSingle = true;\n return this;\n }\n /**\n * Return `data` as a string in CSV format.\n */ csv() {\n this.headers[\"Accept\"] = \"text/csv\";\n return this;\n }\n /**\n * Return `data` as an object in [GeoJSON](https://geojson.org) format.\n */ geojson() {\n this.headers[\"Accept\"] = \"application/geo+json\";\n return this;\n }\n /**\n * Return `data` as the EXPLAIN plan for the query.\n *\n * You need to enable the\n * [db_plan_enabled](https://supabase.com/docs/guides/database/debugging-performance#enabling-explain)\n * setting before using this method.\n *\n * @param options - Named parameters\n *\n * @param options.analyze - If `true`, the query will be executed and the\n * actual run time will be returned\n *\n * @param options.verbose - If `true`, the query identifier will be returned\n * and `data` will include the output columns of the query\n *\n * @param options.settings - If `true`, include information on configuration\n * parameters that affect query planning\n *\n * @param options.buffers - If `true`, include information on buffer usage\n *\n * @param options.wal - If `true`, include information on WAL record generation\n *\n * @param options.format - The format of the output, can be `\"text\"` (default)\n * or `\"json\"`\n */ explain({ analyze = false, verbose = false, settings = false, buffers = false, wal = false, format = \"text\" } = {}) {\n var _a;\n const options = [\n analyze ? \"analyze\" : null,\n verbose ? \"verbose\" : null,\n settings ? \"settings\" : null,\n buffers ? \"buffers\" : null,\n wal ? \"wal\" : null\n ].filter(Boolean).join(\"|\");\n // An Accept header can carry multiple media types but postgrest-js always sends one\n const forMediatype = (_a = this.headers[\"Accept\"]) !== null && _a !== void 0 ? _a : \"application/json\";\n this.headers[\"Accept\"] = `application/vnd.pgrst.plan+${format}; for=\"${forMediatype}\"; options=${options};`;\n if (format === \"json\") return this;\n else return this;\n }\n /**\n * Rollback the query.\n *\n * `data` will still be returned, but the query is not committed.\n */ rollback() {\n var _a;\n if (((_a = this.headers[\"Prefer\"]) !== null && _a !== void 0 ? _a : \"\").trim().length > 0) {\n this.headers[\"Prefer\"] += \",tx=rollback\";\n } else {\n this.headers[\"Prefer\"] = \"tx=rollback\";\n }\n return this;\n }\n /**\n * Override the type of the returned `data`.\n *\n * @typeParam NewResult - The new result type to override with\n */ returns() {\n return this;\n }\n} //# sourceMappingURL=PostgrestTransformBuilder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9Qb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWtEO0FBQ25DLE1BQU1DLGtDQUFrQ0QseURBQWdCQTtJQUNuRTs7Ozs7Ozs7S0FRQyxHQUNERSxPQUFPQyxPQUFPLEVBQUU7UUFDWix3Q0FBd0M7UUFDeEMsSUFBSUMsU0FBUztRQUNiLE1BQU1DLGlCQUFpQixDQUFDRixZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJQSxVQUFVLEdBQUUsRUFDeEVHLEtBQUssQ0FBQyxJQUNOQyxHQUFHLENBQUMsQ0FBQ0M7WUFDTixJQUFJLEtBQUtDLElBQUksQ0FBQ0QsTUFBTSxDQUFDSixRQUFRO2dCQUN6QixPQUFPO1lBQ1g7WUFDQSxJQUFJSSxNQUFNLEtBQUs7Z0JBQ1hKLFNBQVMsQ0FBQ0E7WUFDZDtZQUNBLE9BQU9JO1FBQ1gsR0FDS0UsSUFBSSxDQUFDO1FBQ1YsSUFBSSxDQUFDQyxHQUFHLENBQUNDLFlBQVksQ0FBQ0MsR0FBRyxDQUFDLFVBQVVSO1FBQ3BDLElBQUksSUFBSSxDQUFDUyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hCLElBQUksQ0FBQ0EsT0FBTyxDQUFDLFNBQVMsSUFBSTtRQUM5QjtRQUNBLElBQUksQ0FBQ0EsT0FBTyxDQUFDLFNBQVMsSUFBSTtRQUMxQixPQUFPLElBQUk7SUFDZjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCQyxHQUNEQyxNQUFNQyxNQUFNLEVBQUUsRUFBRUMsWUFBWSxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxrQkFBa0JELFlBQVksRUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ2hHLE1BQU1FLE1BQU1ELGtCQUFrQixDQUFDLEVBQUVBLGdCQUFnQixNQUFNLENBQUMsR0FBRztRQUMzRCxNQUFNRSxnQkFBZ0IsSUFBSSxDQUFDWCxHQUFHLENBQUNDLFlBQVksQ0FBQ1cs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QUM7UUFDVixvRkFBb0Y7UUFDcEYsTUFBTXlDLGVBQWUsQ0FBQ0osS0FBSyxJQUFJLENBQUNqQyxPQUFPLENBQUMsU0FBUyxNQUFNLFFBQVFpQyxPQUFPLEtBQUssSUFBSUEsS0FBSztRQUNwRixJQUFJLENBQUNqQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsMkJBQTJCLEVBQUVnQyxPQUFPLE9BQU8sRUFBRUssYUFBYSxXQUFXLEVBQUVILFFBQVEsQ0FBQyxDQUFDO1FBQzNHLElBQUlGLFdBQVcsUUFDWCxPQUFPLElBQUk7YUFFWCxPQUFPLElBQUk7SUFDbkI7SUFDQTs7OztLQUlDLEdBQ0RNLFdBQVc7UUFDUCxJQUFJTDtRQUNKLElBQUksQ0FBQyxDQUFDQSxLQUFLLElBQUksQ0FBQ2pDLE9BQU8sQ0FBQyxTQUFTLE1BQU0sUUFBUWlDLE9BQU8sS0FBSyxJQUFJQSxLQUFLLEVBQUMsRUFBR00sSUFBSSxHQUFHQyxNQUFNLEdBQUcsR0FBRztZQUN2RixJQUFJLENBQUN4QyxPQUFPLENBQUMsU0FBUyxJQUFJO1FBQzlCLE9BQ0s7WUFDRCxJQUFJLENBQUNBLE9BQU8sQ0FBQyxTQUFTLEdBQUc7UUFDN0I7UUFDQSxPQUFPLElBQUk7SUFDZjtJQUNBOzs7O0tBSUMsR0FDRHlDLFVBQVU7UUFDTixPQUFPLElBQUk7SUFDZjtBQUNKLEVBQ0EscURBQXFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlci5qcz84NTkyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQb3N0Z3Jlc3RCdWlsZGVyIGZyb20gJy4vUG9zdGdyZXN0QnVpbGRlcic7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyIGV4dGVuZHMgUG9zdGdyZXN0QnVpbGRlciB7XG4gICAgLyoqXG4gICAgICogUGVyZm9ybSBhIFNFTEVDVCBvbiB0aGUgcXVlcnkgcmVzdWx0LlxuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgYC5pbnNlcnQoKWAsIGAudXBkYXRlKClgLCBgLnVwc2VydCgpYCwgYW5kIGAuZGVsZXRlKClgIGRvIG5vdFxuICAgICAqIHJldHVybiBtb2RpZmllZCByb3dzLiBCeSBjYWxsaW5nIHRoaXMgbWV0aG9kLCBtb2RpZmllZCByb3dzIGFyZSByZXR1cm5lZCBpblxuICAgICAqIGBkYXRhYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2x1bW5zIC0gVGhlIGNvbHVtbnMgdG8gcmV0cmlldmUsIHNlcGFyYXRlZCBieSBjb21tYXNcbiAgICAgKi9cbiAgICBzZWxlY3QoY29sdW1ucykge1xuICAgICAgICAvLyBSZW1vdmUgd2hpdGVzcGFjZXMgZXhjZXB0IHdoZW4gcXVvdGVkXG4gICAgICAgIGxldCBxdW90ZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY2xlYW5lZENvbHVtbnMgPSAoY29sdW1ucyAhPT0gbnVsbCAmJiBjb2x1bW5zICE9PSB2b2lkIDAgPyBjb2x1bW5zIDogJyonKVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgaWYgKC9cXHMvLnRlc3QoYykgJiYgIXF1b3RlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjID09PSAnXCInKSB7XG4gICAgICAgICAgICAgICAgcXVvdGVkID0gIXF1b3RlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oJycpO1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCdzZWxlY3QnLCBjbGVhbmVkQ29sdW1ucyk7XG4gICAgICAgIGlmICh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddICs9ICcsJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddICs9ICdyZXR1cm49cmVwcmVzZW50YXRpb24nO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT3JkZXIgdGhlIHF1ZXJ5IHJlc3VsdCBieSBgY29sdW1uYC5cbiAgICAgKlxuICAgICAqIFlvdSBjYW4gY2FsbCB0aGlzIG1ldGhvZCBtdWx0aXBsZSB0aW1lcyB0byBvcmRlciBieSBtdWx0aXBsZSBjb2x1bW5zLlxuICAgICAqXG4gICAgICogWW91IGNhbiBvcmRlciByZWZlcmVuY2VkIHRhYmxlcywgYnV0IGl0IG9ubHkgYWZmZWN0cyB0aGUgb3JkZXJpbmcgb2YgdGhlXG4gICAgICogcGFyZW50IHRhYmxlIGlmIHlvdSB1c2UgYCFpbm5lcmAgaW4gdGhlIHF1ZXJ5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gb3JkZXIgYnlcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5hc2NlbmRpbmcgLSBJZiBgdHJ1ZWAsIHRoZSByZXN1bHQgd2lsbCBiZSBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5udWxsc0ZpcnN0IC0gSWYgYHRydWVgLCBgbnVsbGBzIGFwcGVhciBmaXJzdC4gSWYgYGZhbHNlYCxcbiAgICAgKiBgbnVsbGBzIGFwcGVhciBsYXN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZSAtIFNldCB0aGlzIHRvIG9yZGVyIGEgcmVmZXJlbmNlZCB0YWJsZSBieVxuICAgICAqIGl0cyBjb2x1bW5zXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZm9yZWlnblRhYmxlIC0gRGVwcmVjYXRlZCwgdXNlIGBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZWBcbiAgICAgKiBpbnN0ZWFkXG4gICAgICovXG4gICAgb3JkZXIoY29sdW1uLCB7IGFzY2VuZGluZyA9IHRydWUsIG51bGxzRmlyc3QsIGZvcmVpZ25UYWJsZSwgcmVmZXJlbmNlZFRhYmxlID0gZm9yZWlnblRhYmxlLCB9ID0ge30pIHtcbiAgICAgICAgY29uc3Qga2V5ID0gcmVmZXJlbmNlZFRhYmxlID8gYCR7cmVmZXJlbmNlZFRhYmxlfS5vcmRlcmAgOiAnb3JkZXInO1xuICAgICAgICBjb25zdCBleGlzdGluZ09yZGVyID0gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmdldChrZXkpO1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KGtleSwgYCR7ZXhpc3RpbmdPcmRlciA/IGAke2V4aXN0aW5nT3JkZXJ9LGAgOiAnJ30ke2NvbHVtbn0uJHthc2NlbmRpbmcgPyAnYXNjJyA6ICdkZXNjJ30ke251bGxzRmlyc3QgPT09IHVuZGVmaW5lZCA/ICcnIDogbnVsbHNGaXJzdCA/ICcubnVsbHNmaXJzdCcgOiAnLm51bGxzbGFzdCd9YCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBMaW1pdCB0aGUgcXVlcnkgcmVzdWx0IGJ5IGBjb3VudGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY291bnQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2Ygcm93cyB0byByZXR1cm5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWZlcmVuY2VkVGFibGUgLSBTZXQgdGhpcyB0byBsaW1pdCByb3dzIG9mIHJlZmVyZW5jZWRcbiAgICAgKiB0YWJsZXMgaW5zdGVhZCBvZiB0aGUgcGFyZW50IHRhYmxlXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZm9yZWlnblRhYmxlIC0gRGVwcmVjYXRlZCwgdXNlIGBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZWBcbiAgICAgKiBpbnN0ZWFkXG4gICAgICovXG4gICAgbGltaXQoY291bnQsIHsgZm9yZWlnblRhYmxlLCByZWZlcmVuY2VkVGFibGUgPSBmb3JlaWduVGFibGUsIH0gPSB7fSkge1xuICAgICAgICBjb25zdCBrZXkgPSB0eXBlb2YgcmVmZXJlbmNlZFRhYmxlID09PSAndW5kZWZpbmVkJyA/ICdsaW1pdCcgOiBgJHtyZWZlcmVuY2VkVGFibGV9LmxpbWl0YDtcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldChrZXksIGAke2NvdW50fWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogTGltaXQgdGhlIHF1ZXJ5IHJlc3VsdCBieSBzdGFydGluZyBhdCBhbiBvZmZzZXQgKGBmcm9tYCkgYW5kIGVuZGluZyBhdCB0aGUgb2Zmc2V0IChgZnJvbSArIHRvYCkuXG4gICAgICogT25seSByZWNvcmRzIHdpdGhpbiB0aGlzIHJhbmdlIGFyZSByZXR1cm5lZC5cbiAgICAgKiBUaGlzIHJlc3BlY3RzIHRoZSBxdWVyeSBvcmRlciBhbmQgaWYgdGhlcmUgaXMgbm8gb3JkZXIgY2xhdXNlIHRoZSByYW5nZSBjb3VsZCBiZWhhdmUgdW5leHBlY3RlZGx5LlxuICAgICAqIFRoZSBgZnJvbWAgYW5kIGB0b2AgdmFsdWVzIGFyZSAwLWJhc2VkIGFuZCBpbmNsdXNpdmU6IGByYW5nZSgxLCAzKWAgd2lsbCBpbmNsdWRlIHRoZSBzZWNvbmQsIHRoaXJkXG4gICAgICogYW5kIGZvdXJ0aCByb3dzIG9mIHRoZSBxdWVyeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIHN0YXJ0aW5nIGluZGV4IGZyb20gd2hpY2ggdG8gbGltaXQgdGhlIHJlc3VsdFxuICAgICAqIEBwYXJhbSB0byAtIFRoZSBsYXN0IGluZGV4IHRvIHdoaWNoIHRvIGxpbWl0IHRoZSByZXN1bHRcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWZlcmVuY2VkVGFibGUgLSBTZXQgdGhpcyB0byBsaW1pdCByb3dzIG9mIHJlZmVyZW5jZWRcbiAgICAgKiB0YWJsZXMgaW5zdGVhZCBvZiB0aGUgcGFyZW50IHRhYmxlXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZm9yZWlnblRhYmxlIC0gRGVwcmVjYXRlZCwgdXNlIGBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZWBcbiAgICAgKiBpbnN0ZWFkXG4gICAgICovXG4gICAgcmFuZ2UoZnJvbSwgdG8sIHsgZm9yZWlnblRhYmxlLCByZWZlcmVuY2VkVGFibGUgPSBmb3JlaWduVGFibGUsIH0gPSB7fSkge1xuICAgICAgICBjb25zdCBrZXlPZmZzZXQgPSB0eXBlb2YgcmVmZXJlbmNlZFRhYmxlID09PSAndW5kZWZpbmVkJyA/ICdvZmZzZXQnIDogYCR7cmVmZXJlbmNlZFRhYmxlfS5vZmZzZXRgO1xuICAgICAgICBjb25zdCBrZXlMaW1pdCA9IHR5cGVvZiByZWZlcmVuY2VkVGFibGUgPT09ICd1bmRlZmluZWQnID8gJ2xpbWl0JyA6IGAke3JlZmVyZW5jZWRUYWJsZX0ubGltaXRgO1xuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KGtleU9mZnNldCwgYCR7ZnJvbX1gKTtcbiAgICAgICAgLy8gUmFuZ2UgaXMgaW5jbHVzaXZlLCBzbyBhZGQgMVxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KGtleUxpbWl0LCBgJHt0byAtIGZyb20gKyAxfWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBBYm9ydFNpZ25hbCBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2lnbmFsIC0gVGhlIEFib3J0U2lnbmFsIHRvIHVzZSBmb3IgdGhlIGZldGNoIHJlcXVlc3RcbiAgICAgKi9cbiAgICBhYm9ydFNpZ25hbChzaWduYWwpIHtcbiAgICAgICAgdGhpcy5zaWduYWwgPSBzaWduYWw7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYGRhdGFgIGFzIGEgc2luZ2xlIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5IG9mIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBRdWVyeSByZXN1bHQgbXVzdCBiZSBvbmUgcm93IChlLmcuIHVzaW5nIGAubGltaXQoMSlgKSwgb3RoZXJ3aXNlIHRoaXNcbiAgICAgKiByZXR1cm5zIGFuIGVycm9yLlxuICAgICAqL1xuICAgIHNpbmdsZSgpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQnXSA9ICdhcHBsaWNhdGlvbi92bmQucGdyc3Qub2JqZWN0K2pzb24nO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGBkYXRhYCBhcyBhIHNpbmdsZSBvYmplY3QgaW5zdGVhZCBvZiBhbiBhcnJheSBvZiBvYmplY3RzLlxuICAgICAqXG4gICAgICogUXVlcnkgcmVzdWx0IG11c3QgYmUgemVybyBvciBvbmUgcm93IChlLmcuIHVzaW5nIGAubGltaXQoMSlgKSwgb3RoZXJ3aXNlXG4gICAgICogdGhpcyByZXR1cm5zIGFuIGVycm9yLlxuICAgICAqL1xuICAgIG1heWJlU2luZ2xlKCkge1xuICAgICAgICAvLyBUZW1wb3JhcnkgcGFydGlhbCBmaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9wb3N0Z3Jlc3QtanMvaXNzdWVzLzM2MVxuICAgICAgICAvLyBJc3N1ZSBwZXJzaXN0cyBlLmcuIGZvciBgLmluc2VydChbLi4uXSkuc2VsZWN0KCkubWF5YmVTaW5nbGUoKWBcbiAgICAgICAgaWYgKHRoaXMubWV0aG9kID09PSAnR0VUJykge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQnXSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snQWNjZXB0J10gPSAnYXBwbGljYXRpb24vdm5kLnBncnN0Lm9iamVjdCtqc29uJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzTWF5YmVTaW5nbGUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGBkYXRhYCBhcyBhIHN0cmluZyBpbiBDU1YgZm9ybWF0LlxuICAgICAqL1xuICAgIGNzdigpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQnXSA9ICd0ZXh0L2Nzdic7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYGRhdGFgIGFzIGFuIG9iamVjdCBpbiBbR2VvSlNPTl0oaHR0cHM6Ly9nZW9qc29uLm9yZykgZm9ybWF0LlxuICAgICAqL1xuICAgIGdlb2pzb24oKSB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snQWNjZXB0J10gPSAnYXBwbGljYXRpb24vZ2VvK2pzb24nO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGBkYXRhYCBhcyB0aGUgRVhQTEFJTiBwbGFuIGZvciB0aGUgcXVlcnkuXG4gICAgICpcbiAgICAgKiBZb3UgbmVlZCB0byBlbmFibGUgdGhlXG4gICAgICogW2RiX3BsYW5fZW5hYmxlZF0oaHR0cHM6Ly9zdXBhYmFzZS5jb20vZG9jcy9ndWlkZXMvZGF0YWJhc2UvZGVidWdnaW5nLXBlcmZvcm1hbmNlI2VuYWJsaW5nLWV4cGxhaW4pXG4gICAgICogc2V0dGluZyBiZWZvcmUgdXNpbmcgdGhpcyBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmFuYWx5emUgLSBJZiBgdHJ1ZWAsIHRoZSBxdWVyeSB3aWxsIGJlIGV4ZWN1dGVkIGFuZCB0aGVcbiAgICAgKiBhY3R1YWwgcnVuIHRpbWUgd2lsbCBiZSByZXR1cm5lZFxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMudmVyYm9zZSAtIElmIGB0cnVlYCwgdGhlIHF1ZXJ5IGlkZW50aWZpZXIgd2lsbCBiZSByZXR1cm5lZFxuICAgICAqIGFuZCBgZGF0YWAgd2lsbCBpbmNsdWRlIHRoZSBvdXRwdXQgY29sdW1ucyBvZiB0aGUgcXVlcnlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnNldHRpbmdzIC0gSWYgYHRydWVgLCBpbmNsdWRlIGluZm9ybWF0aW9uIG9uIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBwYXJhbWV0ZXJzIHRoYXQgYWZmZWN0IHF1ZXJ5IHBsYW5uaW5nXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5idWZmZXJzIC0gSWYgYHRydWVgLCBpbmNsdWRlIGluZm9ybWF0aW9uIG9uIGJ1ZmZlciB1c2FnZVxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMud2FsIC0gSWYgYHRydWVgLCBpbmNsdWRlIGluZm9ybWF0aW9uIG9uIFdBTCByZWNvcmQgZ2VuZXJhdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZm9ybWF0IC0gVGhlIGZvcm1hdCBvZiB0aGUgb3V0cHV0LCBjYW4gYmUgYFwidGV4dFwiYCAoZGVmYXVsdClcbiAgICAgKiBvciBgXCJqc29uXCJgXG4gICAgICovXG4gICAgZXhwbGFpbih7IGFuYWx5emUgPSBmYWxzZSwgdmVyYm9zZSA9IGZhbHNlLCBzZXR0aW5ncyA9IGZhbHNlLCBidWZmZXJzID0gZmFsc2UsIHdhbCA9IGZhbHNlLCBmb3JtYXQgPSAndGV4dCcsIH0gPSB7fSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXG4gICAgICAgICAgICBhbmFseXplID8gJ2FuYWx5emUnIDogbnVsbCxcbiAgICAgICAgICAgIHZlcmJvc2UgPyAndmVyYm9zZScgOiBudWxsLFxuICAgICAgICAgICAgc2V0dGluZ3MgPyAnc2V0dGluZ3MnIDogbnVsbCxcbiAgICAgICAgICAgIGJ1ZmZlcnMgPyAnYnVmZmVycycgOiBudWxsLFxuICAgICAgICAgICAgd2FsID8gJ3dhbCcgOiBudWxsLFxuICAgICAgICBdXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAuam9pbignfCcpO1xuICAgICAgICAvLyBBbiBBY2NlcHQgaGVhZGVyIGNhbiBjYXJyeSBtdWx0aXBsZSBtZWRpYSB0eXBlcyBidXQgcG9zdGdyZXN0LWpzIGFsd2F5cyBzZW5kcyBvbmVcbiAgICAgICAgY29uc3QgZm9yTWVkaWF0eXBlID0gKF9hID0gdGhpcy5oZWFkZXJzWydBY2NlcHQnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID0gYGFwcGxpY2F0aW9uL3ZuZC5wZ3JzdC5wbGFuKyR7Zm9ybWF0fTsgZm9yPVwiJHtmb3JNZWRpYXR5cGV9XCI7IG9wdGlvbnM9JHtvcHRpb25zfTtgO1xuICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJvbGxiYWNrIHRoZSBxdWVyeS5cbiAgICAgKlxuICAgICAqIGBkYXRhYCB3aWxsIHN0aWxsIGJlIHJldHVybmVkLCBidXQgdGhlIHF1ZXJ5IGlzIG5vdCBjb21taXR0ZWQuXG4gICAgICovXG4gICAgcm9sbGJhY2soKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCgoX2EgPSB0aGlzLmhlYWRlcnNbJ1ByZWZlciddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJykudHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gKz0gJyx0eD1yb2xsYmFjayc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddID0gJ3R4PXJvbGxiYWNrJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGUgdGhlIHR5cGUgb2YgdGhlIHJldHVybmVkIGBkYXRhYC5cbiAgICAgKlxuICAgICAqIEB0eXBlUGFyYW0gTmV3UmVzdWx0IC0gVGhlIG5ldyByZXN1bHQgdHlwZSB0byBvdmVycmlkZSB3aXRoXG4gICAgICovXG4gICAgcmV0dXJucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlci5qcy5tYXAiXSwibmFtZXMiOlsiUG9zdGdyZXN0QnVpbGRlciIsIlBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXIiLCJzZWxlY3QiLCJjb2x1bW5zIiwicXVvdGVkIiwiY2xlYW5lZENvbHVtbnMiLCJzcGxpdCIsIm1hcCIsImMiLCJ0ZXN0Iiwiam9pbiIsInVybCIsInNlYXJjaFBhcmFtcyIsInNldCIsImhlYWRlcnMiLCJvcmRlciIsImNvbHVtbiIsImFzY2VuZGluZyIsIm51bGxzRmlyc3QiLCJmb3JlaWduVGFibGUiLCJyZWZlcmVuY2VkVGFibGUiLCJrZXkiLCJleGlzdGluZ09yZGVyIiwiZ2V0IiwidW5kZWZpbmVkIiwibGltaXQiLCJjb3VudCIsInJhbmdlIiwiZnJvbSIsInRvIiwia2V5T2Zmc2V0Iiwia2V5TGltaXQiLCJhYm9ydFNpZ25hbCIsInNpZ25hbCIsInNpbmdsZSIsIm1heWJlU2luZ2xlIiwibWV0aG9kIiwiaXNNYXliZVNpbmdsZSIsImNzdiIsImdlb2pzb24iLCJleHBsYWluIiwiYW5hbHl6ZSIsInZlcmJvc2UiLCJzZXR0aW5ncyIsImJ1ZmZlcnMiLCJ3YWwiLCJmb3JtYXQiLCJfYSIsIm9wdGlvbnMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZm9yTWVkaWF0eXBlIiwicm9sbGJhY2siLCJ0cmltIiwibGVuZ3RoIiwicmV0dXJucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/constants.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/constants.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/version.js\");\n\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `postgrest-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n}; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0M7QUFDN0IsTUFBTUMsa0JBQWtCO0lBQUUsaUJBQWlCLENBQUMsYUFBYSxFQUFFRCw2Q0FBT0EsQ0FBQyxDQUFDO0FBQUMsRUFBRSxDQUM5RSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9jb25zdGFudHMuanM/MDZmOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9uJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hFQURFUlMgPSB7ICdYLUNsaWVudC1JbmZvJzogYHBvc3RncmVzdC1qcy8ke3ZlcnNpb259YCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJ2ZXJzaW9uIiwiREVGQVVMVF9IRUFERVJTIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/constants.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/index.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PostgrestBuilder: () => (/* reexport safe */ _PostgrestBuilder__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ PostgrestClient: () => (/* reexport safe */ _PostgrestClient__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ PostgrestFilterBuilder: () => (/* reexport safe */ _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ PostgrestQueryBuilder: () => (/* reexport safe */ _PostgrestQueryBuilder__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ PostgrestTransformBuilder: () => (/* reexport safe */ _PostgrestTransformBuilder__WEBPACK_IMPORTED_MODULE_3__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _PostgrestClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostgrestClient */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestClient.js\");\n/* harmony import */ var _PostgrestQueryBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PostgrestQueryBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestQueryBuilder.js\");\n/* harmony import */ var _PostgrestFilterBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PostgrestFilterBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestFilterBuilder.js\");\n/* harmony import */ var _PostgrestTransformBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PostgrestTransformBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestTransformBuilder.js\");\n/* harmony import */ var _PostgrestBuilder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PostgrestBuilder */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/PostgrestBuilder.js\");\n\n\n\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQStEO0FBQ1k7QUFDRTtBQUNNO0FBQ2xCLENBQ2pFLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvbW9kdWxlL2luZGV4LmpzPzY2NGEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3N0Z3Jlc3RDbGllbnQgfSBmcm9tICcuL1Bvc3RncmVzdENsaWVudCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvc3RncmVzdFF1ZXJ5QnVpbGRlciB9IGZyb20gJy4vUG9zdGdyZXN0UXVlcnlCdWlsZGVyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9zdGdyZXN0RmlsdGVyQnVpbGRlciB9IGZyb20gJy4vUG9zdGdyZXN0RmlsdGVyQnVpbGRlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXIgfSBmcm9tICcuL1Bvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3N0Z3Jlc3RCdWlsZGVyIH0gZnJvbSAnLi9Qb3N0Z3Jlc3RCdWlsZGVyJztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiUG9zdGdyZXN0Q2xpZW50IiwiUG9zdGdyZXN0UXVlcnlCdWlsZGVyIiwiUG9zdGdyZXN0RmlsdGVyQnVpbGRlciIsIlBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXIiLCJQb3N0Z3Jlc3RCdWlsZGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/index.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/postgrest-js/dist/module/version.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/postgrest-js/dist/module/version.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\nconst version = \"1.9.2\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L21vZHVsZS92ZXJzaW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxVQUFVLFFBQVEsQ0FDL0IsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9tb2R1bGUvdmVyc2lvbi5qcz9iZTAwIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB2ZXJzaW9uID0gJzEuOS4yJztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZlcnNpb24uanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/postgrest-js/dist/module/version.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_CHANNEL_STATES: () => (/* binding */ REALTIME_CHANNEL_STATES),\n/* harmony export */ REALTIME_LISTEN_TYPES: () => (/* binding */ REALTIME_LISTEN_TYPES),\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: () => (/* binding */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT),\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: () => (/* binding */ REALTIME_SUBSCRIBE_STATES),\n/* harmony export */ \"default\": () => (/* binding */ RealtimeChannel)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/constants */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_push__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/push */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js\");\n/* harmony import */ var _lib_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/timer */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\");\n/* harmony import */ var _RealtimePresence__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RealtimePresence */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\");\n/* harmony import */ var _lib_transformers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/transformers */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js\");\n\n\n\n\n\nvar REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;\n(function(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT) {\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"ALL\"] = \"*\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"INSERT\"] = \"INSERT\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"UPDATE\"] = \"UPDATE\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"DELETE\"] = \"DELETE\";\n})(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT || (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT = {}));\nvar REALTIME_LISTEN_TYPES;\n(function(REALTIME_LISTEN_TYPES) {\n REALTIME_LISTEN_TYPES[\"BROADCAST\"] = \"broadcast\";\n REALTIME_LISTEN_TYPES[\"PRESENCE\"] = \"presence\";\n /**\n * listen to Postgres changes.\n */ REALTIME_LISTEN_TYPES[\"POSTGRES_CHANGES\"] = \"postgres_changes\";\n})(REALTIME_LISTEN_TYPES || (REALTIME_LISTEN_TYPES = {}));\nvar REALTIME_SUBSCRIBE_STATES;\n(function(REALTIME_SUBSCRIBE_STATES) {\n REALTIME_SUBSCRIBE_STATES[\"SUBSCRIBED\"] = \"SUBSCRIBED\";\n REALTIME_SUBSCRIBE_STATES[\"TIMED_OUT\"] = \"TIMED_OUT\";\n REALTIME_SUBSCRIBE_STATES[\"CLOSED\"] = \"CLOSED\";\n REALTIME_SUBSCRIBE_STATES[\"CHANNEL_ERROR\"] = \"CHANNEL_ERROR\";\n})(REALTIME_SUBSCRIBE_STATES || (REALTIME_SUBSCRIBE_STATES = {}));\nconst REALTIME_CHANNEL_STATES = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES;\n/** A channel is the basic building block of Realtime\n * and narrows the scope of data flow to subscribed clients.\n * You can think of a channel as a chatroom where participants are able to see who's online\n * and send and receive messages.\n */ class RealtimeChannel {\n constructor(/** Topic name can be any string. */ topic, params = {\n config: {}\n }, socket){\n this.topic = topic;\n this.params = params;\n this.socket = socket;\n this.bindings = {};\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\n this.joinedOnce = false;\n this.pushBuffer = [];\n this.subTopic = topic.replace(/^realtime:/i, \"\");\n this.params.config = Object.assign({\n broadcast: {\n ack: false,\n self: false\n },\n presence: {\n key: \"\"\n }\n }, params.config);\n this.timeout = this.socket.timeout;\n this.joinPush = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.join, this.params, this.timeout);\n this.rejoinTimer = new _lib_timer__WEBPACK_IMPORTED_MODULE_2__[\"default\"](()=>this._rejoinUntilConnected(), this.socket.reconnectAfterMs);\n this.joinPush.receive(\"ok\", ()=>{\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joined;\n this.rejoinTimer.reset();\n this.pushBuffer.forEach((pushEvent)=>pushEvent.send());\n this.pushBuffer = [];\n });\n this._onClose(()=>{\n this.rejoinTimer.reset();\n this.socket.log(\"channel\", `close ${this.topic} ${this._joinRef()}`);\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\n this.socket._remove(this);\n });\n this._onError((reason)=>{\n if (this._isLeaving() || this._isClosed()) {\n return;\n }\n this.socket.log(\"channel\", `error ${this.topic}`, reason);\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.errored;\n this.rejoinTimer.scheduleTimeout();\n });\n this.joinPush.receive(\"timeout\", ()=>{\n if (!this._isJoining()) {\n return;\n }\n this.socket.log(\"channel\", `timeout ${this.topic}`, this.joinPush.timeout);\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.errored;\n this.rejoinTimer.scheduleTimeout();\n });\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.reply, {}, (payload, ref)=>{\n this._trigger(this._replyEventName(ref), payload);\n });\n this.presence = new _RealtimePresence__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this);\n this.broadcastEndpointURL = this._broadcastEndpointURL();\n }\n /** Subscribe registers your client with the server */ subscribe(callback, timeout = this.timeout) {\n var _a, _b;\n if (!this.socket.isConnected()) {\n this.socket.connect();\n }\n if (this.joinedOnce) {\n throw `tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance`;\n } else {\n const { config: { broadcast, presence } } = this.params;\n this._onError((e)=>callback && callback(\"CHANNEL_ERROR\", e));\n this._onClose(()=>callback && callback(\"CLOSED\"));\n const accessTokenPayload = {};\n const config = {\n broadcast,\n presence,\n postgres_changes: (_b = (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.map((r)=>r.filter)) !== null && _b !== void 0 ? _b : []\n };\n if (this.socket.accessToken) {\n accessTokenPayload.access_token = this.socket.accessToken;\n }\n this.updateJoinPayload(Object.assign({\n config\n }, accessTokenPayload));\n this.joinedOnce = true;\n this._rejoin(timeout);\n this.joinPush.receive(\"ok\", ({ postgres_changes: serverPostgresFilters })=>{\n var _a;\n this.socket.accessToken && this.socket.setAuth(this.socket.accessToken);\n if (serverPostgresFilters === undefined) {\n callback && callback(\"SUBSCRIBED\");\n return;\n } else {\n const clientPostgresBindings = this.bindings.postgres_changes;\n const bindingsLen = (_a = clientPostgresBindings === null || clientPostgresBindings === void 0 ? void 0 : clientPostgresBindings.length) !== null && _a !== void 0 ? _a : 0;\n const newPostgresBindings = [];\n for(let i = 0; i < bindingsLen; i++){\n const clientPostgresBinding = clientPostgresBindings[i];\n const { filter: { event, schema, table, filter } } = clientPostgresBinding;\n const serverPostgresFilter = serverPostgresFilters && serverPostgresFilters[i];\n if (serverPostgresFilter && serverPostgresFilter.event === event && serverPostgresFilter.schema === schema && serverPostgresFilter.table === table && serverPostgresFilter.filter === filter) {\n newPostgresBindings.push(Object.assign(Object.assign({}, clientPostgresBinding), {\n id: serverPostgresFilter.id\n }));\n } else {\n this.unsubscribe();\n callback && callback(\"CHANNEL_ERROR\", new Error(\"mismatch between server and client bindings for postgres changes\"));\n return;\n }\n }\n this.bindings.postgres_changes = newPostgresBindings;\n callback && callback(\"SUBSCRIBED\");\n return;\n }\n }).receive(\"error\", (error)=>{\n callback && callback(\"CHANNEL_ERROR\", new Error(JSON.stringify(Object.values(error).join(\", \") || \"error\")));\n return;\n }).receive(\"timeout\", ()=>{\n callback && callback(\"TIMED_OUT\");\n return;\n });\n }\n return this;\n }\n presenceState() {\n return this.presence.state;\n }\n async track(payload, opts = {}) {\n return await this.send({\n type: \"presence\",\n event: \"track\",\n payload\n }, opts.timeout || this.timeout);\n }\n async untrack(opts = {}) {\n return await this.send({\n type: \"presence\",\n event: \"untrack\"\n }, opts);\n }\n on(type, filter, callback) {\n return this._on(type, filter, callback);\n }\n /**\n * Sends a message into the channel.\n *\n * @param args Arguments to send to channel\n * @param args.type The type of event to send\n * @param args.event The name of the event being sent\n * @param args.payload Payload to be sent\n * @param opts Options to be used during the send process\n */ async send(args, opts = {}) {\n var _a, _b;\n if (!this._canPush() && args.type === \"broadcast\") {\n const { event, payload: endpoint_payload } = args;\n const options = {\n method: \"POST\",\n headers: {\n apikey: (_a = this.socket.apiKey) !== null && _a !== void 0 ? _a : \"\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n messages: [\n {\n topic: this.subTopic,\n event,\n payload: endpoint_payload\n }\n ]\n })\n };\n try {\n const response = await this._fetchWithTimeout(this.broadcastEndpointURL, options, (_b = opts.timeout) !== null && _b !== void 0 ? _b : this.timeout);\n if (response.ok) {\n return \"ok\";\n } else {\n return \"error\";\n }\n } catch (error) {\n if (error.name === \"AbortError\") {\n return \"timed out\";\n } else {\n return \"error\";\n }\n }\n } else {\n return new Promise((resolve)=>{\n var _a, _b, _c;\n const push = this._push(args.type, args, opts.timeout || this.timeout);\n if (args.type === \"broadcast\" && !((_c = (_b = (_a = this.params) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.broadcast) === null || _c === void 0 ? void 0 : _c.ack)) {\n resolve(\"ok\");\n }\n push.receive(\"ok\", ()=>resolve(\"ok\"));\n push.receive(\"timeout\", ()=>resolve(\"timed out\"));\n });\n }\n }\n updateJoinPayload(payload) {\n this.joinPush.updatePayload(payload);\n }\n /**\n * Leaves the channel.\n *\n * Unsubscribes from server events, and instructs channel to terminate on server.\n * Triggers onClose() hooks.\n *\n * To receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\n * channel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n */ unsubscribe(timeout = this.timeout) {\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.leaving;\n const onClose = ()=>{\n this.socket.log(\"channel\", `leave ${this.topic}`);\n this._trigger(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.close, \"leave\", this._joinRef());\n };\n this.rejoinTimer.reset();\n // Destroy joinPush to avoid connection timeouts during unscription phase\n this.joinPush.destroy();\n return new Promise((resolve)=>{\n const leavePush = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.leave, {}, timeout);\n leavePush.receive(\"ok\", ()=>{\n onClose();\n resolve(\"ok\");\n }).receive(\"timeout\", ()=>{\n onClose();\n resolve(\"timed out\");\n }).receive(\"error\", ()=>{\n resolve(\"error\");\n });\n leavePush.send();\n if (!this._canPush()) {\n leavePush.trigger(\"ok\", {});\n }\n });\n }\n /** @internal */ _broadcastEndpointURL() {\n let url = this.socket.endPoint;\n url = url.replace(/^ws/i, \"http\");\n url = url.replace(/(\\/socket\\/websocket|\\/socket|\\/websocket)\\/?$/i, \"\");\n return url.replace(/\\/+$/, \"\") + \"/api/broadcast\";\n }\n async _fetchWithTimeout(url, options, timeout) {\n const controller = new AbortController();\n const id = setTimeout(()=>controller.abort(), timeout);\n const response = await this.socket.fetch(url, Object.assign(Object.assign({}, options), {\n signal: controller.signal\n }));\n clearTimeout(id);\n return response;\n }\n /** @internal */ _push(event, payload, timeout = this.timeout) {\n if (!this.joinedOnce) {\n throw `tried to push '${event}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;\n }\n let pushEvent = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, event, payload, timeout);\n if (this._canPush()) {\n pushEvent.send();\n } else {\n pushEvent.startTimeout();\n this.pushBuffer.push(pushEvent);\n }\n return pushEvent;\n }\n /**\n * Overridable message hook\n *\n * Receives all events for specialized message handling before dispatching to the channel callbacks.\n * Must return the payload, modified or unmodified.\n *\n * @internal\n */ _onMessage(_event, payload, _ref) {\n return payload;\n }\n /** @internal */ _isMember(topic) {\n return this.topic === topic;\n }\n /** @internal */ _joinRef() {\n return this.joinPush.ref;\n }\n /** @internal */ _trigger(type, payload, ref) {\n var _a, _b;\n const typeLower = type.toLocaleLowerCase();\n const { close, error, leave, join } = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS;\n const events = [\n close,\n error,\n leave,\n join\n ];\n if (ref && events.indexOf(typeLower) >= 0 && ref !== this._joinRef()) {\n return;\n }\n let handledPayload = this._onMessage(typeLower, payload, ref);\n if (payload && !handledPayload) {\n throw \"channel onMessage callbacks must return the payload, modified or unmodified\";\n }\n if ([\n \"insert\",\n \"update\",\n \"delete\"\n ].includes(typeLower)) {\n (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.filter((bind)=>{\n var _a, _b, _c;\n return ((_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event) === \"*\" || ((_c = (_b = bind.filter) === null || _b === void 0 ? void 0 : _b.event) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase()) === typeLower;\n }).map((bind)=>bind.callback(handledPayload, ref));\n } else {\n (_b = this.bindings[typeLower]) === null || _b === void 0 ? void 0 : _b.filter((bind)=>{\n var _a, _b, _c, _d, _e, _f;\n if ([\n \"broadcast\",\n \"presence\",\n \"postgres_changes\"\n ].includes(typeLower)) {\n if (\"id\" in bind) {\n const bindId = bind.id;\n const bindEvent = (_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event;\n return bindId && ((_b = payload.ids) === null || _b === void 0 ? void 0 : _b.includes(bindId)) && (bindEvent === \"*\" || (bindEvent === null || bindEvent === void 0 ? void 0 : bindEvent.toLocaleLowerCase()) === ((_c = payload.data) === null || _c === void 0 ? void 0 : _c.type.toLocaleLowerCase()));\n } else {\n const bindEvent = (_e = (_d = bind === null || bind === void 0 ? void 0 : bind.filter) === null || _d === void 0 ? void 0 : _d.event) === null || _e === void 0 ? void 0 : _e.toLocaleLowerCase();\n return bindEvent === \"*\" || bindEvent === ((_f = payload === null || payload === void 0 ? void 0 : payload.event) === null || _f === void 0 ? void 0 : _f.toLocaleLowerCase());\n }\n } else {\n return bind.type.toLocaleLowerCase() === typeLower;\n }\n }).map((bind)=>{\n if (typeof handledPayload === \"object\" && \"ids\" in handledPayload) {\n const postgresChanges = handledPayload.data;\n const { schema, table, commit_timestamp, type, errors } = postgresChanges;\n const enrichedPayload = {\n schema: schema,\n table: table,\n commit_timestamp: commit_timestamp,\n eventType: type,\n new: {},\n old: {},\n errors: errors\n };\n handledPayload = Object.assign(Object.assign({}, enrichedPayload), this._getPayloadRecords(postgresChanges));\n }\n bind.callback(handledPayload, ref);\n });\n }\n }\n /** @internal */ _isClosed() {\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\n }\n /** @internal */ _isJoined() {\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joined;\n }\n /** @internal */ _isJoining() {\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joining;\n }\n /** @internal */ _isLeaving() {\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.leaving;\n }\n /** @internal */ _replyEventName(ref) {\n return `chan_reply_${ref}`;\n }\n /** @internal */ _on(type, filter, callback) {\n const typeLower = type.toLocaleLowerCase();\n const binding = {\n type: typeLower,\n filter: filter,\n callback: callback\n };\n if (this.bindings[typeLower]) {\n this.bindings[typeLower].push(binding);\n } else {\n this.bindings[typeLower] = [\n binding\n ];\n }\n return this;\n }\n /** @internal */ _off(type, filter) {\n const typeLower = type.toLocaleLowerCase();\n this.bindings[typeLower] = this.bindings[typeLower].filter((bind)=>{\n var _a;\n return !(((_a = bind.type) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === typeLower && RealtimeChannel.isEqual(bind.filter, filter));\n });\n return this;\n }\n /** @internal */ static isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n }\n for(const k in obj1){\n if (obj1[k] !== obj2[k]) {\n return false;\n }\n }\n return true;\n }\n /** @internal */ _rejoinUntilConnected() {\n this.rejoinTimer.scheduleTimeout();\n if (this.socket.isConnected()) {\n this._rejoin();\n }\n }\n /**\n * Registers a callback that will be executed when the channel closes.\n *\n * @internal\n */ _onClose(callback) {\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.close, {}, callback);\n }\n /**\n * Registers a callback that will be executed when the channel encounteres an error.\n *\n * @internal\n */ _onError(callback) {\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.error, {}, (reason)=>callback(reason));\n }\n /**\n * Returns `true` if the socket is connected and the channel has been joined.\n *\n * @internal\n */ _canPush() {\n return this.socket.isConnected() && this._isJoined();\n }\n /** @internal */ _rejoin(timeout = this.timeout) {\n if (this._isLeaving()) {\n return;\n }\n this.socket._leaveOpenTopic(this.topic);\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joining;\n this.joinPush.resend(timeout);\n }\n /** @internal */ _getPayloadRecords(payload) {\n const records = {\n new: {},\n old: {}\n };\n if (payload.type === \"INSERT\" || payload.type === \"UPDATE\") {\n records.new = _lib_transformers__WEBPACK_IMPORTED_MODULE_4__.convertChangeData(payload.columns, payload.record);\n }\n if (payload.type === \"UPDATE\" || payload.type === \"DELETE\") {\n records.old = _lib_transformers__WEBPACK_IMPORTED_MODULE_4__.convertChangeData(payload.columns, payload.old_record);\n }\n return records;\n }\n} //# sourceMappingURL=RealtimeChannel.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL1JlYWx0aW1lQ2hhbm5lbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQWlFO0FBQ25DO0FBQ0U7QUFDa0I7QUFDQztBQUM1QyxJQUFJTSx1Q0FBdUM7QUFDakQsVUFBVUEsc0NBQXNDO0lBQzdDQSxzQ0FBc0MsQ0FBQyxNQUFNLEdBQUc7SUFDaERBLHNDQUFzQyxDQUFDLFNBQVMsR0FBRztJQUNuREEsc0NBQXNDLENBQUMsU0FBUyxHQUFHO0lBQ25EQSxzQ0FBc0MsQ0FBQyxTQUFTLEdBQUc7QUFDdkQsR0FBR0EsMENBQTJDQSxDQUFBQSx5Q0FBeUMsQ0FBQztBQUNqRixJQUFJQyxzQkFBc0I7QUFDaEMsVUFBVUEscUJBQXFCO0lBQzVCQSxxQkFBcUIsQ0FBQyxZQUFZLEdBQUc7SUFDckNBLHFCQUFxQixDQUFDLFdBQVcsR0FBRztJQUNwQzs7S0FFQyxHQUNEQSxxQkFBcUIsQ0FBQyxtQkFBbUIsR0FBRztBQUNoRCxHQUFHQSx5QkFBMEJBLENBQUFBLHdCQUF3QixDQUFDO0FBQy9DLElBQUlDLDBCQUEwQjtBQUNwQyxVQUFVQSx5QkFBeUI7SUFDaENBLHlCQUF5QixDQUFDLGFBQWEsR0FBRztJQUMxQ0EseUJBQXlCLENBQUMsWUFBWSxHQUFHO0lBQ3pDQSx5QkFBeUIsQ0FBQyxTQUFTLEdBQUc7SUFDdENBLHlCQUF5QixDQUFDLGdCQUFnQixHQUFHO0FBQ2pELEdBQUdBLDZCQUE4QkEsQ0FBQUEsNEJBQTRCLENBQUM7QUFDdkQsTUFBTUMsMEJBQTBCUiwwREFBY0EsQ0FBQztBQUN0RDs7OztDQUlDLEdBQ2MsTUFBTVM7SUFDakJDLFlBQ0Esa0NBQWtDLEdBQ2xDQyxLQUFLLEVBQUVDLFNBQVM7UUFBRUMsUUFBUSxDQUFDO0lBQUUsQ0FBQyxFQUFFQyxNQUFNLENBQUU7UUFDcEMsSUFBSSxDQUFDSCxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDRSxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxRQUFRLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUNDLEtBQUssR0FBR2hCLDBEQUFjQSxDQUFDaUIsTUFBTTtRQUNsQyxJQUFJLENBQUNDLFVBQVUsR0FBRztRQUNsQixJQUFJLENBQUNDLFVBQVUsR0FBRyxFQUFFO1FBQ3BCLElBQUksQ0FBQ0MsUUFBUSxHQUFHVCxNQUFNVSxPQUFPLENBQUMsZUFBZTtRQUM3QyxJQUFJLENBQUNULE1BQU0sQ0FBQ0MsTUFBTSxHQUFHUyxPQUFPQyxNQUFNLENBQUM7WUFDL0JDLFdBQVc7Z0JBQUVDLEtBQUs7Z0JBQU9DLE1BQU07WUFBTTtZQUNyQ0MsVUFBVTtnQkFBRUMsS0FBSztZQUFHO1FBQ3hCLEdBQUdoQixPQUFPQyxNQUFNO1FBQ2hCLElBQUksQ0FBQ2dCLE9BQU8sR0FBRyxJQUFJLENBQUNmLE1BQU0sQ0FBQ2UsT0FBTztRQUNsQyxJQUFJLENBQUNDLFFBQVEsR0FBRyxJQUFJN0IsaURBQUlBLENBQUMsSUFBSSxFQUFFRiwwREFBY0EsQ0FBQ2dDLElBQUksRUFBRSxJQUFJLENBQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDaUIsT0FBTztRQUM3RSxJQUFJLENBQUNHLFdBQVcsR0FBRyxJQUFJOUIsa0RBQUtBLENBQUMsSUFBTSxJQUFJLENBQUMrQixxQkFBcUIsSUFBSSxJQUFJLENBQUNuQixNQUFNLENBQUNvQixnQkFBZ0I7UUFDN0YsSUFBSSxDQUFDSixRQUFRLENBQUNLLE9BQU8sQ0FBQyxNQUFNO1lBQ3hCLElBQUksQ0FBQ25CLEtBQUssR0FBR2hCLDBEQUFjQSxDQUFDb0MsTUFBTTtZQUNsQyxJQUFJLENBQUNKLFdBQVcsQ0FBQ0ssS0FBSztZQUN0QixJQUFJLENBQUNsQixVQUFVLENBQUNtQixPQUFPLENBQUMsQ0FBQ0MsWUFBY0EsVUFBVUMsSUFBSTtZQUNyRCxJQUFJLENBQUNyQixVQUFVLEdBQUcsRUFBRTtRQUN4QjtRQUNBLElBQUksQ0FBQ3NCLFFBQVEsQ0FBQztZQUNWLElBQUksQ0FBQ1QsV0FBVyxDQUFDSyxLQUFLO1lBQ3RCLElBQUksQ0FBQ3ZCLE1BQU0sQ0FBQzRCLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQy9CLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDZ0MsUUFBUSxHQUFHLENBQUM7WUFDbkUsSUFBSSxDQUFDM0IsS0FBSyxHQUFHaEIsMERBQWNBLENBQUNpQixNQUFNO1lBQ2xDLElBQUksQ0FBQ0gsTUFBTSxDQUFDOEIsT0FBTyxDQUFDLElBQUk7UUFDNUI7UUFDQSxJQUFJLENBQUNDLFFBQVEsQ0FBQyxDQUFDQztZQUNYLElBQUksSUFBSSxDQUFDQyxVQUFVLE1BQU0sSUFBSSxDQUFDQyxTQUFTLElBQUk7Z0JBQ3ZDO1lBQ0o7WUFDQSxJQUFJLENBQUNsQyxNQUFNLENBQUM0QixHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMvQixLQUFLLENBQUMsQ0FBQyxFQUFFbUM7WUFDbEQsSUFBSSxDQUFDOUIsS0FBSyxHQUFHaEIsMERBQWNBLENBQUNpRCxPQUFPO1lBQ25DLElBQUksQ0FBQ2pCLFdBQVcsQ0FBQ2tCLGVBQWU7UUFDcEM7UUFDQSxJQUFJLENBQUNwQixRQUFRLENBQUNLLE9BQU8sQ0FBQyxXQUFXO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUNnQixVQUFVLElBQUk7Z0JBQ3BCO1lBQ0o7WUFDQSxJQUFJLENBQUNyQyxNQUFNLENBQUM0QixHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMvQixLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ21CLFFBQVEsQ0FBQ0QsT0FBTztZQUN6RSxJQUFJLENBQUNiLEtBQUssR0FBR2hCLDBEQUFjQSxDQUFDaUQsT0FBTztZQUNuQyxJQUFJLENBQUNqQixXQUFXLENBQUNrQixlQUFlO1FBQ3BDO1FBQ0EsSUFBSSxDQUFDRSxHQUFHLENBQUNyRCwwREFBY0EsQ0FBQ3NELEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQ0MsU0FBU0M7WUFDekMsSUFBSSxDQUFDQyxRQUFRLENBQUMsSUFBSSxDQUFDQyxlQUFlLENBQUNGLE1BQU1EO1FBQzdDO1FBQ0EsSUFBSSxDQUFDM0IsUUFBUSxHQUFHLElBQUl4Qix5REFBZ0JBLENBQUMsSUFBSTtRQUN6QyxJQUFJLENBQUN1RCxvQkFBb0IsR0FBRyxJQUFJLENBQUNDLHFCQUFxQjtJQUMxRDtJQUNBLG9EQUFvRCxHQUNwREMsVUFBVUMsUUFBUSxFQUFFaEMsVUFBVSxJQUFJLENBQUNBLE9BQU8sRUFBRTtRQUN4QyxJQUFJaUMsSUFBSUM7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDakQsTUFBTSxDQUFDa0QsV0FBVyxJQUFJO1lBQzVCLElBQUksQ0FBQ2xELE1BQU0sQ0FBQ21ELE9BQU87UUFDdkI7UUFDQSxJQUFJLElBQUksQ0FBQy9DLFVBQVUsRUFBRTtZQUNqQixNQUFNLENBQUMsb0dBQW9HLENBQUM7UUFDaEgsT0FDSztZQUNELE1BQU0sRUFBRUwsUUFBUSxFQUFFVyxTQUFTLEVBQUVHLFFBQVEsRUFBRSxFQUFHLEdBQUcsSUFBSSxDQUFDZixNQUFNO1lBQ3hELElBQUksQ0FBQ2lDLFFBQVEsQ0FBQyxDQUFDcUIsSUFBTUwsWUFBWUEsU0FBUyxpQkFBaUJLO1lBQzNELElBQUksQ0FBQ3pCLFFBQVEsQ0FBQyxJQUFNb0IsWUFBWUEsU0FBUztZQUN6QyxNQUFNTSxxQkFBcUIsQ0FBQztZQUM1QixNQUFNdEQsU0FBUztnQkFDWFc7Z0JBQ0FHO2dCQUNBeUMsa0JBQWtCLENBQUNMLEtBQUssQ0FBQ0QsS0FBSyxJQUFJLENBQUMvQyxRQUFRLENBQUNxRCxnQkFBZ0IsTUFBTSxRQUFRTixPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdPLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxNQUFNLE9BQU8sUUFBUVIsT0FBTyxLQUFLLElBQUlBLEtBQUssRUFBRTtZQUNuSztZQUNBLElBQUksSUFBSSxDQUFDakQsTUFBTSxDQUFDMEQsV0FBVyxFQUFFO2dCQUN6QkwsbUJBQW1CTSxZQUFZLEdBQUcsSUFBSSxDQUFDM0QsTUFBTSxDQUFDMEQsV0FBVztZQUM3RDtZQUNBLElBQUksQ0FBQ0UsaUJBQWlCLENBQUNwRCxPQUFPQyxNQUFNLENBQUM7Z0JBQUVWO1lBQU8sR0FBR3NEO1lBQ2pELElBQUksQ0FBQ2pELFVBQVUsR0FBRztZQUNsQixJQUFJLENBQUN5RCxPQUFPLENBQUM5QztZQUNiLElBQUksQ0FBQ0MsUUFBUSxDQUNSSyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUVpQyxrQkFBa0JRLHFCQUFxQixFQUFHO2dCQUM1RCxJQUFJZDtnQkFDSixJQUFJLENBQUNoRCxNQUFNLENBQUMwRCxXQUFXLElBQ25CLElBQUksQ0FBQzFELE1BQU0sQ0FBQytELE9BQU8sQ0FBQyxJQUFJLENBQUMvRCxNQUFNLENBQUMwRCxXQUFXO2dCQUMvQyxJQUFJSSwwQkFBMEJFLFdBQVc7b0JBQ3JDakIsWUFBWUEsU0FBUztvQkFDckI7Z0JBQ0osT0FDSztvQkFDRCxNQUFNa0IseUJBQXlCLElBQUksQ0FBQ2hFLFFBQVEsQ0FBQ3FELGdCQUFnQjtvQkFDN0QsTUFBTVksY0FBYyxDQUFDbEIsS0FBS2lCLDJCQUEyQixRQUFRQSwyQkFBMkIsS0FBSyxJQUFJLEtBQUssSUFBSUEsdUJBQXVCRSxNQUFNLE1BQU0sUUFBUW5CLE9BQU8sS0FBSyxJQUFJQSxLQUFLO29CQUMxSyxNQUFNb0Isc0JBQXNCLEVBQUU7b0JBQzlCLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJSCxhQUFhRyxJQUFLO3dCQUNsQyxNQUFNQyx3QkFBd0JMLHNCQUFzQixDQUFDSSxFQUFFO3dCQUN2RCxNQUFNLEVBQUVaLFFBQVEsRUFBRWMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBRWhCLE1BQU0sRUFBRSxFQUFHLEdBQUdhO3dCQUN0RCxNQUFNSSx1QkFBdUJaLHlCQUF5QkEscUJBQXFCLENBQUNPLEVBQUU7d0JBQzlFLElBQUlLLHdCQUNBQSxxQkFBcUJILEtBQUssS0FBS0EsU0FDL0JHLHFCQUFxQkYsTUFBTSxLQUFLQSxVQUNoQ0UscUJBQXFCRCxLQUFLLEtBQUtBLFNBQy9CQyxxQkFBcUJqQixNQUFNLEtBQUtBLFFBQVE7NEJBQ3hDVyxvQkFBb0JPLElBQUksQ0FBQ25FLE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBRzZELHdCQUF3QjtnQ0FBRU0sSUFBSUYscUJBQXFCRSxFQUFFOzRCQUFDO3dCQUNuSCxPQUNLOzRCQUNELElBQUksQ0FBQ0MsV0FBVzs0QkFDaEI5QixZQUNJQSxTQUFTLGlCQUFpQixJQUFJK0IsTUFBTTs0QkFDeEM7d0JBQ0o7b0JBQ0o7b0JBQ0EsSUFBSSxDQUFDN0UsUUFBUSxDQUFDcUQsZ0JBQWdCLEdBQUdjO29CQUNqQ3JCLFlBQVlBLFNBQVM7b0JBQ3JCO2dCQUNKO1lBQ0osR0FDSzFCLE9BQU8sQ0FBQyxTQUFTLENBQUMwRDtnQkFDbkJoQyxZQUNJQSxTQUFTLGlCQUFpQixJQUFJK0IsTUFBTUUsS0FBS0MsU0FBUyxDQUFDekUsT0FBTzBFLE1BQU0sQ0FBQ0gsT0FBTzlELElBQUksQ0FBQyxTQUFTO2dCQUMxRjtZQUNKLEdBQ0tJLE9BQU8sQ0FBQyxXQUFXO2dCQUNwQjBCLFlBQVlBLFNBQVM7Z0JBQ3JCO1lBQ0o7UUFDSjtRQUNBLE9BQU8sSUFBSTtJQUNmO0lBQ0FvQyxnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQ3RFLFFBQVEsQ0FBQ1gsS0FBSztJQUM5QjtJQUNBLE1BQU1rRixNQUFNNUMsT0FBTyxFQUFFNkMsT0FBTyxDQUFDLENBQUMsRUFBRTtRQUM1QixPQUFPLE1BQU0sSUFBSSxDQUFDM0QsSUFBSSxDQUFDO1lBQ25CNEQsTUFBTTtZQUNOZixPQUFPO1lBQ1AvQjtRQUNKLEdBQUc2QyxLQUFLdEUsT0FBTyxJQUFJLElBQUksQ0FBQ0EsT0FBTztJQUNuQztJQUNBLE1BQU13RSxRQUFRRixPQUFPLENBQUMsQ0FBQyxFQUFFO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMzRCxJQUFJLENBQUM7WUFDbkI0RCxNQUFNO1lBQ05mLE9BQU87UUFDWCxHQUFHYztJQUNQO0lBQ0FHLEdBQUdGLElBQUksRUFBRTdCLE1BQU0sRUFBRVYsUUFBUSxFQUFFO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDVCxHQUFHLENBQUNnRCxNQUFNN0IsUUFBUVY7SUFDbEM7SUFDQTs7Ozs7Ozs7S0FRQyxHQUNELE1BQU1yQixLQUFLK0QsSUFBSSxFQUFFSixPQUFPLENBQUMsQ0FBQyxFQUFFO1FBQ3hCLElBQUlyQyxJQUFJQztRQUNSLElBQUksQ0FBQyxJQUFJLENBQUN5QyxRQUFRLE1BQU1ELEtBQUtILElBQUksS0FBSyxhQUFhO1lBQy9DLE1BQU0sRUFBRWYsS0FBSyxFQUFFL0IsU0FBU21ELGdCQUFnQixFQUFFLEdBQUdGO1lBQzdDLE1BQU1HLFVBQVU7Z0JBQ1pDLFFBQVE7Z0JBQ1JDLFNBQVM7b0JBQ0xDLFFBQVEsQ0FBQy9DLEtBQUssSUFBSSxDQUFDaEQsTUFBTSxDQUFDZ0csTUFBTSxNQUFNLFFBQVFoRCxPQUFPLEtBQUssSUFBSUEsS0FBSztvQkFDbkUsZ0JBQWdCO2dCQUNwQjtnQkFDQWlELE1BQU1qQixLQUFLQyxTQUFTLENBQUM7b0JBQ2pCaUIsVUFBVTt3QkFDTjs0QkFBRXJHLE9BQU8sSUFBSSxDQUFDUyxRQUFROzRCQUFFaUU7NEJBQU8vQixTQUFTbUQ7d0JBQWlCO3FCQUM1RDtnQkFDTDtZQUNKO1lBQ0EsSUFBSTtnQkFDQSxNQUFNUSxXQUFXLE1BQU0sSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUN4RCxvQkFBb0IsRUFBRWdELFNBQVMsQ0FBQzNDLEtBQUtvQyxLQUFLdEUsT0FBTyxNQUFNLFFBQVFrQyxPQUFPLEtBQUssSUFBSUEsS0FBSyxJQUFJLENBQUNsQyxPQUFPO2dCQUNuSixJQUFJb0YsU0FBU0UsRUFBRSxFQUFFO29CQUNiLE9BQU87Z0JBQ1gsT0FDSztvQkFDRCxPQUFPO2dCQUNYO1lBQ0osRUFDQSxPQUFPdEIsT0FBTztnQkFDVixJQUFJQSxNQUFNdUIsSUFBSSxLQUFLLGNBQWM7b0JBQzdCLE9BQU87Z0JBQ1gsT0FDSztvQkFDRCxPQUFPO2dCQUNYO1lBQ0o7UUFDSixPQUNLO1lBQ0QsT0FBTyxJQUFJQyxRQUFRLENBQUNDO2dCQUNoQixJQUFJeEQsSUFBSUMsSUFBSXdEO2dCQUNaLE1BQU05QixPQUFPLElBQUksQ0FBQytCLEtBQUssQ0FBQ2pCLEtBQUtILElBQUksRUFBRUcsTUFBTUosS0FBS3RFLE9BQU8sSUFBSSxJQUFJLENBQUNBLE9BQU87Z0JBQ3JFLElBQUkwRSxLQUFLSCxJQUFJLEtBQUssZUFBZSxDQUFFLEVBQUNtQixLQUFLLENBQUN4RCxLQUFLLENBQUNELEtBQUssSUFBSSxDQUFDbEQsTUFBTSxNQUFNLFFBQVFrRCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdqRCxNQUFNLE1BQU0sUUFBUWtELE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR3ZDLFNBQVMsTUFBTSxRQUFRK0YsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHOUYsR0FBRyxHQUFHO29CQUMvTTZGLFFBQVE7Z0JBQ1o7Z0JBQ0E3QixLQUFLdEQsT0FBTyxDQUFDLE1BQU0sSUFBTW1GLFFBQVE7Z0JBQ2pDN0IsS0FBS3RELE9BQU8sQ0FBQyxXQUFXLElBQU1tRixRQUFRO1lBQzFDO1FBQ0o7SUFDSjtJQUNBNUMsa0JBQWtCcEIsT0FBTyxFQUFFO1FBQ3ZCLElBQUksQ0FBQ3hCLFFBQVEsQ0FBQzJGLGFBQWEsQ0FBQ25FO0lBQ2hDO0lBQ0E7Ozs7Ozs7O0tBUUMsR0FDRHFDLFlBQVk5RCxVQUFVLElBQUksQ0FBQ0EsT0FBTyxFQUFFO1FBQ2hDLElBQUksQ0FBQ2IsS0FBSyxHQUFHaEIsMERBQWNBLENBQUMwSCxPQUFPO1FBQ25DLE1BQU1DLFVBQVU7WUFDWixJQUFJLENBQUM3RyxNQUFNLENBQUM0QixHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMvQixLQUFLLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUM2QyxRQUFRLENBQUN6RCwwREFBY0EsQ0FBQzZILEtBQUssRUFBRSxTQUFTLElBQUksQ0FBQ2pGLFFBQVE7UUFDOUQ7UUFDQSxJQUFJLENBQUNYLFdBQVcsQ0FBQ0ssS0FBSztRQUN0Qix5RUFBeUU7UUFDekUsSUFBSSxDQUFDUCxRQUFRLENBQUMrRixPQUFPO1FBQ3JCLE9BQU8sSUFBSVIsUUFBUSxDQUFDQztZQUNoQixNQUFNUSxZQUFZLElBQUk3SCxpREFBSUEsQ0FBQyxJQUFJLEVBQUVGLDBEQUFjQSxDQUFDZ0ksS0FBSyxFQUFFLENBQUMsR0FBR2xHO1lBQzNEaUcsVUFDSzNGLE9BQU8sQ0FBQyxNQUFNO2dCQUNmd0Y7Z0JBQ0FMLFFBQVE7WUFDWixHQUNLbkYsT0FBTyxDQUFDLFdBQVc7Z0JBQ3BCd0Y7Z0JBQ0FMLFFBQVE7WUFDWixHQUNLbkYsT0FBTyxDQUFDLFNBQVM7Z0JBQ2xCbUYsUUFBUTtZQUNaO1lBQ0FRLFVBQVV0RixJQUFJO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQ2dFLFFBQVEsSUFBSTtnQkFDbEJzQixVQUFVRSxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzdCO1FBQ0o7SUFDSjtJQUNBLGNBQWMsR0FDZHJFLHdCQUF3QjtRQUNwQixJQUFJc0UsTUFBTSxJQUFJLENBQUNuSCxNQUFNLENBQUNvSCxRQUFRO1FBQzlCRCxNQUFNQSxJQUFJNUcsT0FBTyxDQUFDLFFBQVE7UUFDMUI0RyxNQUFNQSxJQUFJNUcsT0FBTyxDQUFDLG1EQUFtRDtRQUNyRSxPQUFPNEcsSUFBSTVHLE9BQU8sQ0FBQyxRQUFRLE1BQU07SUFDckM7SUFDQSxNQUFNNkYsa0JBQWtCZSxHQUFHLEVBQUV2QixPQUFPLEVBQUU3RSxPQUFPLEVBQUU7UUFDM0MsTUFBTXNHLGFBQWEsSUFBSUM7UUFDdkIsTUFBTTFDLEtBQUsyQyxXQUFXLElBQU1GLFdBQVdHLEtBQUssSUFBSXpHO1FBQ2hELE1BQU1vRixXQUFXLE1BQU0sSUFBSSxDQUFDbkcsTUFBTSxDQUFDeUgsS0FBSyxDQUFDTixLQUFLM0csT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHbUYsVUFBVTtZQUFFOEIsUUFBUUwsV0FBV0ssTUFBTTtRQUFDO1FBQ3BIQyxhQUFhL0M7UUFDYixPQUFPdUI7SUFDWDtJQUNBLGNBQWMsR0FDZE8sTUFBTW5DLEtBQUssRUFBRS9CLE9BQU8sRUFBRXpCLFVBQVUsSUFBSSxDQUFDQSxPQUFPLEVBQUU7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQ1gsVUFBVSxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxlQUFlLEVBQUVtRSxNQUFNLE1BQU0sRUFBRSxJQUFJLENBQUMxRSxLQUFLLENBQUMsK0RBQStELENBQUM7UUFDckg7UUFDQSxJQUFJNEIsWUFBWSxJQUFJdEMsaURBQUlBLENBQUMsSUFBSSxFQUFFb0YsT0FBTy9CLFNBQVN6QjtRQUMvQyxJQUFJLElBQUksQ0FBQzJFLFFBQVEsSUFBSTtZQUNqQmpFLFVBQVVDLElBQUk7UUFDbEIsT0FDSztZQUNERCxVQUFVbUcsWUFBWTtZQUN0QixJQUFJLENBQUN2SCxVQUFVLENBQUNzRSxJQUFJLENBQUNsRDtRQUN6QjtRQUNBLE9BQU9BO0lBQ1g7SUFDQTs7Ozs7OztLQU9DLEdBQ0RvRyxXQUFXQyxNQUFNLEVBQUV0RixPQUFPLEVBQUV1RixJQUFJLEVBQUU7UUFDOUIsT0FBT3ZGO0lBQ1g7SUFDQSxjQUFjLEdBQ2R3RixVQUFVbkksS0FBSyxFQUFFO1FBQ2IsT0FBTyxJQUFJLENBQUNBLEtBQUssS0FBS0E7SUFDMUI7SUFDQSxjQUFjLEdBQ2RnQyxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUNiLFFBQVEsQ0FBQ3lCLEdBQUc7SUFDNUI7SUFDQSxjQUFjLEdBQ2RDLFNBQVM0QyxJQUFJLEVBQUU5QyxPQUFPLEVBQUVDLEdBQUcsRUFBRTtRQUN6QixJQUFJTyxJQUFJQztRQUNSLE1BQU1nRixZQUFZM0MsS0FBSzRDLGlCQUFpQjtRQUN4QyxNQUFNLEVBQUVwQixLQUFLLEVBQUUvQixLQUFLLEVBQUVrQyxLQUFLLEVBQUVoRyxJQUFJLEVBQUUsR0FBR2hDLDBEQUFjQTtRQUNwRCxNQUFNa0osU0FBUztZQUFDckI7WUFBTy9CO1lBQU9rQztZQUFPaEc7U0FBSztRQUMxQyxJQUFJd0IsT0FBTzBGLE9BQU9DLE9BQU8sQ0FBQ0gsY0FBYyxLQUFLeEYsUUFBUSxJQUFJLENBQUNaLFFBQVEsSUFBSTtZQUNsRTtRQUNKO1FBQ0EsSUFBSXdHLGlCQUFpQixJQUFJLENBQUNSLFVBQVUsQ0FBQ0ksV0FBV3pGLFNBQVNDO1FBQ3pELElBQUlELFdBQVcsQ0FBQzZGLGdCQUFnQjtZQUM1QixNQUFNO1FBQ1Y7UUFDQSxJQUFJO1lBQUM7WUFBVTtZQUFVO1NBQVMsQ0FBQ0MsUUFBUSxDQUFDTCxZQUFZO1lBQ25EakYsQ0FBQUEsS0FBSyxJQUFJLENBQUMvQyxRQUFRLENBQUNxRCxnQkFBZ0IsTUFBTSxRQUFRTixPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdTLE1BQU0sQ0FBQyxDQUFDOEU7Z0JBQ2xGLElBQUl2RixJQUFJQyxJQUFJd0Q7Z0JBQ1osT0FBUSxDQUFDLENBQUN6RCxLQUFLdUYsS0FBSzlFLE1BQU0sTUFBTSxRQUFRVCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUd1QixLQUFLLE1BQU0sT0FDM0UsQ0FBQyxDQUFDa0MsS0FBSyxDQUFDeEQsS0FBS3NGLEtBQUs5RSxNQUFNLE1BQU0sUUFBUVIsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHc0IsS0FBSyxNQUFNLFFBQVFrQyxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUd5QixpQkFBaUIsRUFBQyxNQUFPRDtZQUNsSixHQUFHMUUsR0FBRyxDQUFDLENBQUNnRixPQUFTQSxLQUFLeEYsUUFBUSxDQUFDc0YsZ0JBQWdCNUY7UUFDbkQsT0FDSztZQUNBUSxDQUFBQSxLQUFLLElBQUksQ0FBQ2hELFFBQVEsQ0FBQ2dJLFVBQVUsTUFBTSxRQUFRaEYsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHUSxNQUFNLENBQUMsQ0FBQzhFO2dCQUM1RSxJQUFJdkYsSUFBSUMsSUFBSXdELElBQUkrQixJQUFJQyxJQUFJQztnQkFDeEIsSUFBSTtvQkFBQztvQkFBYTtvQkFBWTtpQkFBbUIsQ0FBQ0osUUFBUSxDQUFDTCxZQUFZO29CQUNuRSxJQUFJLFFBQVFNLE1BQU07d0JBQ2QsTUFBTUksU0FBU0osS0FBSzNELEVBQUU7d0JBQ3RCLE1BQU1nRSxZQUFZLENBQUM1RixLQUFLdUYsS0FBSzlFLE1BQU0sTUFBTSxRQUFRVCxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUd1QixLQUFLO3dCQUNsRixPQUFRb0UsVUFDSCxFQUFDMUYsS0FBS1QsUUFBUXFHLEdBQUcsTUFBTSxRQUFRNUYsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHcUYsUUFBUSxDQUFDSyxPQUFNLEtBQzFFQyxDQUFBQSxjQUFjLE9BQ1gsQ0FBQ0EsY0FBYyxRQUFRQSxjQUFjLEtBQUssSUFBSSxLQUFLLElBQUlBLFVBQVVWLGlCQUFpQixFQUFDLE1BQzlFLEVBQUN6QixLQUFLakUsUUFBUXNHLElBQUksTUFBTSxRQUFRckMsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHbkIsSUFBSSxDQUFDNEMsaUJBQWlCLEVBQUMsQ0FBQztvQkFDckcsT0FDSzt3QkFDRCxNQUFNVSxZQUFZLENBQUNILEtBQUssQ0FBQ0QsS0FBS0QsU0FBUyxRQUFRQSxTQUFTLEtBQUssSUFBSSxLQUFLLElBQUlBLEtBQUs5RSxNQUFNLE1BQU0sUUFBUStFLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSUEsR0FBR2pFLEtBQUssTUFBTSxRQUFRa0UsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHUCxpQkFBaUI7d0JBQy9MLE9BQVFVLGNBQWMsT0FDbEJBLGNBQWUsRUFBQ0YsS0FBS2xHLFlBQVksUUFBUUEsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJQSxRQUFRK0IsS0FBSyxNQUFNLFFBQVFtRSxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdSLGlCQUFpQixFQUFDO29CQUN4SjtnQkFDSixPQUNLO29CQUNELE9BQU9LLEtBQUtqRCxJQUFJLENBQUM0QyxpQkFBaUIsT0FBT0Q7Z0JBQzdDO1lBQ0osR0FBRzFFLEdBQUcsQ0FBQyxDQUFDZ0Y7Z0JBQ0osSUFBSSxPQUFPRixtQkFBbUIsWUFBWSxTQUFTQSxnQkFBZ0I7b0JBQy9ELE1BQU1VLGtCQUFrQlYsZUFBZVMsSUFBSTtvQkFDM0MsTUFBTSxFQUFFdEUsTUFBTSxFQUFFQyxLQUFLLEVBQUV1RSxnQkFBZ0IsRUFBRTFELElBQUksRUFBRTJELE1BQU0sRUFBRSxHQUFHRjtvQkFDMUQsTUFBTUcsa0JBQWtCO3dCQUNwQjFFLFFBQVFBO3dCQUNSQyxPQUFPQTt3QkFDUHVFLGtCQUFrQkE7d0JBQ2xCRyxXQUFXN0Q7d0JBQ1g4RCxLQUFLLENBQUM7d0JBQ05DLEtBQUssQ0FBQzt3QkFDTkosUUFBUUE7b0JBQ1o7b0JBQ0FaLGlCQUFpQjdILE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR3lJLGtCQUFrQixJQUFJLENBQUNJLGtCQUFrQixDQUFDUDtnQkFDL0Y7Z0JBQ0FSLEtBQUt4RixRQUFRLENBQUNzRixnQkFBZ0I1RjtZQUNsQztRQUNKO0lBQ0o7SUFDQSxjQUFjLEdBQ2RQLFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQ2hDLEtBQUssS0FBS2hCLDBEQUFjQSxDQUFDaUIsTUFBTTtJQUMvQztJQUNBLGNBQWMsR0FDZG9KLFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQ3JKLEtBQUssS0FBS2hCLDBEQUFjQSxDQUFDb0MsTUFBTTtJQUMvQztJQUNBLGNBQWMsR0FDZGUsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDbkMsS0FBSyxLQUFLaEIsMERBQWNBLENBQUNzSyxPQUFPO0lBQ2hEO0lBQ0EsY0FBYyxHQUNkdkgsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDL0IsS0FBSyxLQUFLaEIsMERBQWNBLENBQUMwSCxPQUFPO0lBQ2hEO0lBQ0EsY0FBYyxHQUNkakUsZ0JBQWdCRixHQUFHLEVBQUU7UUFDakIsT0FBTyxDQUFDLFdBQVcsRUFBRUEsSUFBSSxDQUFDO0lBQzlCO0lBQ0EsY0FBYyxHQUNkSCxJQUFJZ0QsSUFBSSxFQUFFN0IsTUFBTSxFQUFFVixRQUFRLEVBQUU7UUFDeEIsTUFBTWtGLFlBQVkzQyxLQUFLNEMsaUJBQWlCO1FBQ3hDLE1BQU11QixVQUFVO1lBQ1puRSxNQUFNMkM7WUFDTnhFLFFBQVFBO1lBQ1JWLFVBQVVBO1FBQ2Q7UUFDQSxJQUFJLElBQUksQ0FBQzlDLFFBQVEsQ0FBQ2dJLFVBQVUsRUFBRTtZQUMxQixJQUFJLENBQUNoSSxRQUFRLENBQUNnSSxVQUFVLENBQUN0RCxJQUFJLENBQUM4RTtRQUNsQyxPQUNLO1lBQ0QsSUFBSSxDQUFDeEosUUFBUSxDQUFDZ0ksVUFBVSxHQUFHO2dCQUFDd0I7YUFBUTtRQUN4QztRQUNBLE9BQU8sSUFBSTtJQUNmO0lBQ0EsY0FBYyxHQUNkQyxLQUFLcEUsSUFBSSxFQUFFN0IsTUFBTSxFQUFFO1FBQ2YsTUFBTXdFLFlBQVkzQyxLQUFLNEMsaUJBQWlCO1FBQ3hDLElBQUksQ0FBQ2pJLFFBQVEsQ0FBQ2dJLFVBQVUsR0FBRyxJQUFJLENBQUNoSSxRQUFRLENBQUNnSSxVQUFVLENBQUN4RSxNQUFNLENBQUMsQ0FBQzhFO1lBQ3hELElBQUl2RjtZQUNKLE9BQU8sQ0FBRSxFQUFDLENBQUNBLEtBQUt1RixLQUFLakQsSUFBSSxNQUFNLFFBQVF0QyxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUlBLEdBQUdrRixpQkFBaUIsRUFBQyxNQUFPRCxhQUN4RnRJLGdCQUFnQmdLLE9BQU8sQ0FBQ3BCLEtBQUs5RSxNQUFNLEVBQUVBLE9BQU07UUFDbkQ7UUFDQSxPQUFPLElBQUk7SUFDZjtJQUNBLGNBQWMsR0FDZCxPQUFPa0csUUFBUUMsSUFBSSxFQUFFQyxJQUFJLEVBQUU7UUFDdkIsSUFBSXJKLE9BQU9zSixJQUFJLENBQUNGLE1BQU16RixNQUFNLEtBQUszRCxPQUFPc0osSUFBSSxDQUFDRCxNQUFNMUYsTUFBTSxFQUFFO1lBQ3ZELE9BQU87UUFDWDtRQUNBLElBQUssTUFBTTRGLEtBQUtILEtBQU07WUFDbEIsSUFBSUEsSUFBSSxDQUFDRyxFQUFFLEtBQUtGLElBQUksQ0FBQ0UsRUFBRSxFQUFFO2dCQUNyQixPQUFPO1lBQ1g7UUFDSjtRQUNBLE9BQU87SUFDWDtJQUNBLGNBQWMsR0FDZDVJLHdCQUF3QjtRQUNwQixJQUFJLENBQUNELFdBQVcsQ0FBQ2tCLGVBQWU7UUFDaEMsSUFBSSxJQUFJLENBQUNwQyxNQUFNLENBQUNrRCxXQUFXLElBQUk7WUFDM0IsSUFBSSxDQUFDVyxPQUFPO1FBQ2hCO0lBQ0o7SUFDQTs7OztLQUlDLEdBQ0RsQyxTQUFTb0IsUUFBUSxFQUFFO1FBQ2YsSUFBSSxDQUFDVCxHQUFHLENBQUNyRCwwREFBY0EsQ0FBQzZILEtBQUssRUFBRSxDQUFDLEdBQUcvRDtJQUN2QztJQUNBOzs7O0tBSUMsR0FDRGhCLFNBQVNnQixRQUFRLEVBQUU7UUFDZixJQUFJLENBQUNULEdBQUcsQ0FBQ3JELDBEQUFjQSxDQUFDOEYsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDL0MsU0FBV2UsU0FBU2Y7SUFDNUQ7SUFDQTs7OztLQUlDLEdBQ0QwRCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMxRixNQUFNLENBQUNrRCxXQUFXLE1BQU0sSUFBSSxDQUFDcUcsU0FBUztJQUN0RDtJQUNBLGNBQWMsR0FDZDFGLFFBQVE5QyxVQUFVLElBQUksQ0FBQ0EsT0FBTyxFQUFFO1FBQzVCLElBQUksSUFBSSxDQUFDa0IsVUFBVSxJQUFJO1lBQ25CO1FBQ0o7UUFDQSxJQUFJLENBQUNqQyxNQUFNLENBQUNnSyxlQUFlLENBQUMsSUFBSSxDQUFDbkssS0FBSztRQUN0QyxJQUFJLENBQUNLLEtBQUssR0FBR2hCLDBEQUFjQSxDQUFDc0ssT0FBTztRQUNuQyxJQUFJLENBQUN4SSxRQUFRLENBQUNpSixNQUFNLENBQUNsSjtJQUN6QjtJQUNBLGNBQWMsR0FDZHVJLG1CQUFtQjlHLE9BQU8sRUFBRTtRQUN4QixNQUFNMEgsVUFBVTtZQUNaZCxLQUFLLENBQUM7WUFDTkMsS0FBSyxDQUFDO1FBQ1Y7UUFDQSxJQUFJN0csUUFBUThDLElBQUksS0FBSyxZQUFZOUMsUUFBUThDLElBQUksS0FBSyxVQUFVO1lBQ3hENEUsUUFBUWQsR0FBRyxHQUFHOUosZ0VBQThCLENBQUNrRCxRQUFRNEgsT0FBTyxFQUFFNUgsUUFBUTZILE1BQU07UUFDaEY7UUFDQSxJQUFJN0gsUUFBUThDLElBQUksS0FBSyxZQUFZOUMsUUFBUThDLElBQUksS0FBSyxVQUFVO1lBQ3hENEUsUUFBUWIsR0FBRyxHQUFHL0osZ0VBQThCLENBQUNrRCxRQUFRNEgsT0FBTyxFQUFFNUgsUUFBUThILFVBQVU7UUFDcEY7UUFDQSxPQUFPSjtJQUNYO0FBQ0osRUFDQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL1JlYWx0aW1lQ2hhbm5lbC5qcz9lYzRjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENIQU5ORUxfRVZFTlRTLCBDSEFOTkVMX1NUQVRFUyB9IGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgUHVzaCBmcm9tICcuL2xpYi9wdXNoJztcbmltcG9ydCBUaW1lciBmcm9tICcuL2xpYi90aW1lcic7XG5pbXBvcnQgUmVhbHRpbWVQcmVzZW5jZSBmcm9tICcuL1JlYWx0aW1lUHJlc2VuY2UnO1xuaW1wb3J0ICogYXMgVHJhbnNmb3JtZXJzIGZyb20gJy4vbGliL3RyYW5zZm9ybWVycyc7XG5leHBvcnQgdmFyIFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UO1xuKGZ1bmN0aW9uIChSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCkge1xuICAgIFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UW1wiQUxMXCJdID0gXCIqXCI7XG4gICAgUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlRbXCJJTlNFUlRcIl0gPSBcIklOU0VSVFwiO1xuICAgIFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UW1wiVVBEQVRFXCJdID0gXCJVUERBVEVcIjtcbiAgICBSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVFtcIkRFTEVURVwiXSA9IFwiREVMRVRFXCI7XG59KShSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCB8fCAoUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlQgPSB7fSkpO1xuZXhwb3J0IHZhciBSRUFMVElNRV9MSVNURU5fVFlQRVM7XG4oZnVuY3Rpb24gKFJFQUxUSU1FX0xJU1RFTl9UWVBFUykge1xuICAgIFJFQUxUSU1FX0xJU1RFTl9UWVBFU1tcIkJST0FEQ0FTVFwiXSA9IFwiYnJvYWRjYXN0XCI7XG4gICAgUkVBTFRJTUVfTElTVEVOX1RZUEVTW1wiUFJFU0VOQ0VcIl0gPSBcInByZXNlbmNlXCI7XG4gICAgLyoqXG4gICAgICogbGlzdGVuIHRvIFBvc3RncmVzIGNoYW5nZXMuXG4gICAgICovXG4gICAgUkVBTFRJTUVfTElTVEVOX1RZUEVTW1wiUE9TVEdSRVNfQ0hBTkdFU1wiXSA9IFwicG9zdGdyZXNfY2hhbmdlc1wiO1xufSkoUkVBTFRJTUVfTElTVEVOX1RZUEVTIHx8IChSRUFMVElNRV9MSVNURU5fVFlQRVMgPSB7fSkpO1xuZXhwb3J0IHZhciBSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTO1xuKGZ1bmN0aW9uIChSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTKSB7XG4gICAgUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFU1tcIlNVQlNDUklCRURcIl0gPSBcIlNVQlNDUklCRURcIjtcbiAgICBSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTW1wiVElNRURfT1VUXCJdID0gXCJUSU1FRF9PVVRcIjtcbiAgICBSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTW1wiQ0xPU0VEXCJdID0gXCJDTE9TRURcIjtcbiAgICBSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTW1wiQ0hBTk5FTF9FUlJPUlwiXSA9IFwiQ0hBTk5FTF9FUlJPUlwiO1xufSkoUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFUyB8fCAoUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgUkVBTFRJTUVfQ0hBTk5FTF9TVEFURVMgPSBDSEFOTkVMX1NUQVRFUztcbi8qKiBBIGNoYW5uZWwgaXMgdGhlIGJhc2ljIGJ1aWxkaW5nIGJsb2NrIG9mIFJlYWx0aW1lXG4gKiBhbmQgbmFycm93cyB0aGUgc2NvcGUgb2YgZGF0YSBmbG93IHRvIHN1YnNjcmliZWQgY2xpZW50cy5cbiAqIFlvdSBjYW4gdGhpbmsgb2YgYSBjaGFubmVsIGFzIGEgY2hhdHJvb20gd2hlcmUgcGFydGljaXBhbnRzIGFyZSBhYmxlIHRvIHNlZSB3aG8ncyBvbmxpbmVcbiAqIGFuZCBzZW5kIGFuZCByZWNlaXZlIG1lc3NhZ2VzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZWFsdGltZUNoYW5uZWwge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBUb3BpYyBuYW1lIGNhbiBiZSBhbnkgc3RyaW5nLiAqL1xuICAgIHRvcGljLCBwYXJhbXMgPSB7IGNvbmZpZzoge30gfSwgc29ja2V0KSB7XG4gICAgICAgIHRoaXMudG9waWMgPSB0b3BpYztcbiAgICAgICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgICAgIHRoaXMuc29ja2V0ID0gc29ja2V0O1xuICAgICAgICB0aGlzLmJpbmRpbmdzID0ge307XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDSEFOTkVMX1NUQVRFUy5jbG9zZWQ7XG4gICAgICAgIHRoaXMuam9pbmVkT25jZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnB1c2hCdWZmZXIgPSBbXTtcbiAgICAgICAgdGhpcy5zdWJUb3BpYyA9IHRvcGljLnJlcGxhY2UoL15yZWFsdGltZTovaSwgJycpO1xuICAgICAgICB0aGlzLnBhcmFtcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIGJyb2FkY2FzdDogeyBhY2s6IGZhbHNlLCBzZWxmOiBmYWxzZSB9LFxuICAgICAgICAgICAgcHJlc2VuY2U6IHsga2V5OiAnJyB9LFxuICAgICAgICB9LCBwYXJhbXMuY29uZmlnKTtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gdGhpcy5zb2NrZXQudGltZW91dDtcbiAgICAgICAgdGhpcy5qb2luUHVzaCA9IG5ldyBQdXNoKHRoaXMsIENIQU5ORUxfRVZFTlRTLmpvaW4sIHRoaXMucGFyYW1zLCB0aGlzLnRpbWVvdXQpO1xuICAgICAgICB0aGlzLnJlam9pblRpbWVyID0gbmV3IFRpbWVyKCgpID0+IHRoaXMuX3Jlam9pblVudGlsQ29ubmVjdGVkKCksIHRoaXMuc29ja2V0LnJlY29ubmVjdEFmdGVyTXMpO1xuICAgICAgICB0aGlzLmpvaW5QdXNoLnJlY2VpdmUoJ29rJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmpvaW5lZDtcbiAgICAgICAgICAgIHRoaXMucmVqb2luVGltZXIucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMucHVzaEJ1ZmZlci5mb3JFYWNoKChwdXNoRXZlbnQpID0+IHB1c2hFdmVudC5zZW5kKCkpO1xuICAgICAgICAgICAgdGhpcy5wdXNoQnVmZmVyID0gW107XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9vbkNsb3NlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVqb2luVGltZXIucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMuc29ja2V0LmxvZygnY2hhbm5lbCcsIGBjbG9zZSAke3RoaXMudG9waWN9ICR7dGhpcy5fam9pblJlZigpfWApO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmNsb3NlZDtcbiAgICAgICAgICAgIHRoaXMuc29ja2V0Ll9yZW1vdmUodGhpcyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9vbkVycm9yKChyZWFzb24pID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0xlYXZpbmcoKSB8fCB0aGlzLl9pc0Nsb3NlZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zb2NrZXQubG9nKCdjaGFubmVsJywgYGVycm9yICR7dGhpcy50b3BpY31gLCByZWFzb24pO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmVycm9yZWQ7XG4gICAgICAgICAgICB0aGlzLnJlam9pblRpbWVyLnNjaGVkdWxlVGltZW91dCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5qb2luUHVzaC5yZWNlaXZlKCd0aW1lb3V0JywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pc0pvaW5pbmcoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc29ja2V0LmxvZygnY2hhbm5lbCcsIGB0aW1lb3V0ICR7dGhpcy50b3BpY31gLCB0aGlzLmpvaW5QdXNoLnRpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmVycm9yZWQ7XG4gICAgICAgICAgICB0aGlzLnJlam9pblRpbWVyLnNjaGVkdWxlVGltZW91dCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fb24oQ0hBTk5FTF9FVkVOVFMucmVwbHksIHt9LCAocGF5bG9hZCwgcmVmKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyKHRoaXMuX3JlcGx5RXZlbnROYW1lKHJlZiksIHBheWxvYWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcmVzZW5jZSA9IG5ldyBSZWFsdGltZVByZXNlbmNlKHRoaXMpO1xuICAgICAgICB0aGlzLmJyb2FkY2FzdEVuZHBvaW50VVJMID0gdGhpcy5fYnJvYWRjYXN0RW5kcG9pbnRVUkwoKTtcbiAgICB9XG4gICAgLyoqIFN1YnNjcmliZSByZWdpc3RlcnMgeW91ciBjbGllbnQgd2l0aCB0aGUgc2VydmVyICovXG4gICAgc3Vic2NyaWJlKGNhbGxiYWNrLCB0aW1lb3V0ID0gdGhpcy50aW1lb3V0KSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghdGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5zb2NrZXQuY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmpvaW5lZE9uY2UpIHtcbiAgICAgICAgICAgIHRocm93IGB0cmllZCB0byBzdWJzY3JpYmUgbXVsdGlwbGUgdGltZXMuICdzdWJzY3JpYmUnIGNhbiBvbmx5IGJlIGNhbGxlZCBhIHNpbmdsZSB0aW1lIHBlciBjaGFubmVsIGluc3RhbmNlYDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29uZmlnOiB7IGJyb2FkY2FzdCwgcHJlc2VuY2UgfSwgfSA9IHRoaXMucGFyYW1zO1xuICAgICAgICAgICAgdGhpcy5fb25FcnJvcigoZSkgPT4gY2FsbGJhY2sgJiYgY2FsbGJhY2soJ0NIQU5ORUxfRVJST1InLCBlKSk7XG4gICAgICAgICAgICB0aGlzLl9vbkNsb3NlKCgpID0+IGNhbGxiYWNrICYmIGNhbGxiYWNrKCdDTE9TRUQnKSk7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlblBheWxvYWQgPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICBicm9hZGNhc3QsXG4gICAgICAgICAgICAgICAgcHJlc2VuY2UsXG4gICAgICAgICAgICAgICAgcG9zdGdyZXNfY2hhbmdlczogKF9iID0gKF9hID0gdGhpcy5iaW5kaW5ncy5wb3N0Z3Jlc19jaGFuZ2VzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubWFwKChyKSA9PiByLmZpbHRlcikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFtdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvY2tldC5hY2Nlc3NUb2tlbikge1xuICAgICAgICAgICAgICAgIGFjY2Vzc1Rva2VuUGF5bG9hZC5hY2Nlc3NfdG9rZW4gPSB0aGlzLnNvY2tldC5hY2Nlc3NUb2tlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudXBkYXRlSm9pblBheWxvYWQoT2JqZWN0LmFzc2lnbih7IGNvbmZpZyB9LCBhY2Nlc3NUb2tlblBheWxvYWQpKTtcbiAgICAgICAgICAgIHRoaXMuam9pbmVkT25jZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9yZWpvaW4odGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLmpvaW5QdXNoXG4gICAgICAgICAgICAgICAgLnJlY2VpdmUoJ29rJywgKHsgcG9zdGdyZXNfY2hhbmdlczogc2VydmVyUG9zdGdyZXNGaWx0ZXJzLCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHRoaXMuc29ja2V0LmFjY2Vzc1Rva2VuICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc29ja2V0LnNldEF1dGgodGhpcy5zb2NrZXQuYWNjZXNzVG9rZW4pO1xuICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygnU1VCU0NSSUJFRCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRQb3N0Z3Jlc0JpbmRpbmdzID0gdGhpcy5iaW5kaW5ncy5wb3N0Z3Jlc19jaGFuZ2VzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaW5kaW5nc0xlbiA9IChfYSA9IGNsaWVudFBvc3RncmVzQmluZGluZ3MgPT09IG51bGwgfHwgY2xpZW50UG9zdGdyZXNCaW5kaW5ncyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xpZW50UG9zdGdyZXNCaW5kaW5ncy5sZW5ndGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Bvc3RncmVzQmluZGluZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiaW5kaW5nc0xlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRQb3N0Z3Jlc0JpbmRpbmcgPSBjbGllbnRQb3N0Z3Jlc0JpbmRpbmdzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXI6IHsgZXZlbnQsIHNjaGVtYSwgdGFibGUsIGZpbHRlciB9LCB9ID0gY2xpZW50UG9zdGdyZXNCaW5kaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VydmVyUG9zdGdyZXNGaWx0ZXIgPSBzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlcnMgJiYgc2VydmVyUG9zdGdyZXNGaWx0ZXJzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlcnZlclBvc3RncmVzRmlsdGVyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyUG9zdGdyZXNGaWx0ZXIuZXZlbnQgPT09IGV2ZW50ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyUG9zdGdyZXNGaWx0ZXIuc2NoZW1hID09PSBzY2hlbWEgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlci50YWJsZSA9PT0gdGFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJQb3N0Z3Jlc0ZpbHRlci5maWx0ZXIgPT09IGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Bvc3RncmVzQmluZGluZ3MucHVzaChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGNsaWVudFBvc3RncmVzQmluZGluZyksIHsgaWQ6IHNlcnZlclBvc3RncmVzRmlsdGVyLmlkIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygnQ0hBTk5FTF9FUlJPUicsIG5ldyBFcnJvcignbWlzbWF0Y2ggYmV0d2VlbiBzZXJ2ZXIgYW5kIGNsaWVudCBiaW5kaW5ncyBmb3IgcG9zdGdyZXMgY2hhbmdlcycpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iaW5kaW5ncy5wb3N0Z3Jlc19jaGFuZ2VzID0gbmV3UG9zdGdyZXNCaW5kaW5ncztcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soJ1NVQlNDUklCRUQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlY2VpdmUoJ2Vycm9yJywgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2sgJiZcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soJ0NIQU5ORUxfRVJST1InLCBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LnZhbHVlcyhlcnJvcikuam9pbignLCAnKSB8fCAnZXJyb3InKSkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlY2VpdmUoJ3RpbWVvdXQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soJ1RJTUVEX09VVCcpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBwcmVzZW5jZVN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVzZW5jZS5zdGF0ZTtcbiAgICB9XG4gICAgYXN5bmMgdHJhY2socGF5bG9hZCwgb3B0cyA9IHt9KSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlbmQoe1xuICAgICAgICAgICAgdHlwZTogJ3ByZXNlbmNlJyxcbiAgICAgICAgICAgIGV2ZW50OiAndHJhY2snLFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSwgb3B0cy50aW1lb3V0IHx8IHRoaXMudGltZW91dCk7XG4gICAgfVxuICAgIGFzeW5jIHVudHJhY2sob3B0cyA9IHt9KSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlbmQoe1xuICAgICAgICAgICAgdHlwZTogJ3ByZXNlbmNlJyxcbiAgICAgICAgICAgIGV2ZW50OiAndW50cmFjaycsXG4gICAgICAgIH0sIG9wdHMpO1xuICAgIH1cbiAgICBvbih0eXBlLCBmaWx0ZXIsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vbih0eXBlLCBmaWx0ZXIsIGNhbGxiYWNrKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBtZXNzYWdlIGludG8gdGhlIGNoYW5uZWwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXJncyBBcmd1bWVudHMgdG8gc2VuZCB0byBjaGFubmVsXG4gICAgICogQHBhcmFtIGFyZ3MudHlwZSBUaGUgdHlwZSBvZiBldmVudCB0byBzZW5kXG4gICAgICogQHBhcmFtIGFyZ3MuZXZlbnQgVGhlIG5hbWUgb2YgdGhlIGV2ZW50IGJlaW5nIHNlbnRcbiAgICAgKiBAcGFyYW0gYXJncy5wYXlsb2FkIFBheWxvYWQgdG8gYmUgc2VudFxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIHNlbmQgcHJvY2Vzc1xuICAgICAqL1xuICAgIGFzeW5jIHNlbmQoYXJncywgb3B0cyA9IHt9KSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghdGhpcy5fY2FuUHVzaCgpICYmIGFyZ3MudHlwZSA9PT0gJ2Jyb2FkY2FzdCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZXZlbnQsIHBheWxvYWQ6IGVuZHBvaW50X3BheWxvYWQgfSA9IGFyZ3M7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgYXBpa2V5OiAoX2EgPSB0aGlzLnNvY2tldC5hcGlLZXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyB0b3BpYzogdGhpcy5zdWJUb3BpYywgZXZlbnQsIHBheWxvYWQ6IGVuZHBvaW50X3BheWxvYWQgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5fZmV0Y2hXaXRoVGltZW91dCh0aGlzLmJyb2FkY2FzdEVuZHBvaW50VVJMLCBvcHRpb25zLCAoX2IgPSBvcHRzLnRpbWVvdXQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMudGltZW91dCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnb2snO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RpbWVkIG91dCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgICAgICBjb25zdCBwdXNoID0gdGhpcy5fcHVzaChhcmdzLnR5cGUsIGFyZ3MsIG9wdHMudGltZW91dCB8fCB0aGlzLnRpbWVvdXQpO1xuICAgICAgICAgICAgICAgIGlmIChhcmdzLnR5cGUgPT09ICdicm9hZGNhc3QnICYmICEoKF9jID0gKF9iID0gKF9hID0gdGhpcy5wYXJhbXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb25maWcpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5icm9hZGNhc3QpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5hY2spKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoJ29rJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHB1c2gucmVjZWl2ZSgnb2snLCAoKSA9PiByZXNvbHZlKCdvaycpKTtcbiAgICAgICAgICAgICAgICBwdXNoLnJlY2VpdmUoJ3RpbWVvdXQnLCAoKSA9PiByZXNvbHZlKCd0aW1lZCBvdXQnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1cGRhdGVKb2luUGF5bG9hZChwYXlsb2FkKSB7XG4gICAgICAgIHRoaXMuam9pblB1c2gudXBkYXRlUGF5bG9hZChwYXlsb2FkKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTGVhdmVzIHRoZSBjaGFubmVsLlxuICAgICAqXG4gICAgICogVW5zdWJzY3JpYmVzIGZyb20gc2VydmVyIGV2ZW50cywgYW5kIGluc3RydWN0cyBjaGFubmVsIHRvIHRlcm1pbmF0ZSBvbiBzZXJ2ZXIuXG4gICAgICogVHJpZ2dlcnMgb25DbG9zZSgpIGhvb2tzLlxuICAgICAqXG4gICAgICogVG8gcmVjZWl2ZSBsZWF2ZSBhY2tub3dsZWRnZW1lbnRzLCB1c2UgdGhlIGEgYHJlY2VpdmVgIGhvb2sgdG8gYmluZCB0byB0aGUgc2VydmVyIGFjaywgaWU6XG4gICAgICogY2hhbm5lbC51bnN1YnNjcmliZSgpLnJlY2VpdmUoXCJva1wiLCAoKSA9PiBhbGVydChcImxlZnQhXCIpIClcbiAgICAgKi9cbiAgICB1bnN1YnNjcmliZSh0aW1lb3V0ID0gdGhpcy50aW1lb3V0KSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDSEFOTkVMX1NUQVRFUy5sZWF2aW5nO1xuICAgICAgICBjb25zdCBvbkNsb3NlID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zb2NrZXQubG9nKCdjaGFubmVsJywgYGxlYXZlICR7dGhpcy50b3BpY31gKTtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoQ0hBTk5FTF9FVkVOVFMuY2xvc2UsICdsZWF2ZScsIHRoaXMuX2pvaW5SZWYoKSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucmVqb2luVGltZXIucmVzZXQoKTtcbiAgICAgICAgLy8gRGVzdHJveSBqb2luUHVzaCB0byBhdm9pZCBjb25uZWN0aW9uIHRpbWVvdXRzIGR1cmluZyB1bnNjcmlwdGlvbiBwaGFzZVxuICAgICAgICB0aGlzLmpvaW5QdXNoLmRlc3Ryb3koKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsZWF2ZVB1c2ggPSBuZXcgUHVzaCh0aGlzLCBDSEFOTkVMX0VWRU5UUy5sZWF2ZSwge30sIHRpbWVvdXQpO1xuICAgICAgICAgICAgbGVhdmVQdXNoXG4gICAgICAgICAgICAgICAgLnJlY2VpdmUoJ29rJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCdvaycpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVjZWl2ZSgndGltZW91dCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICBvbkNsb3NlKCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgndGltZWQgb3V0Jyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZWNlaXZlKCdlcnJvcicsICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCdlcnJvcicpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZWF2ZVB1c2guc2VuZCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW5QdXNoKCkpIHtcbiAgICAgICAgICAgICAgICBsZWF2ZVB1c2gudHJpZ2dlcignb2snLCB7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2Jyb2FkY2FzdEVuZHBvaW50VVJMKCkge1xuICAgICAgICBsZXQgdXJsID0gdGhpcy5zb2NrZXQuZW5kUG9pbnQ7XG4gICAgICAgIHVybCA9IHVybC5yZXBsYWNlKC9ed3MvaSwgJ2h0dHAnKTtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoLyhcXC9zb2NrZXRcXC93ZWJzb2NrZXR8XFwvc29ja2V0fFxcL3dlYnNvY2tldClcXC8/JC9pLCAnJyk7XG4gICAgICAgIHJldHVybiB1cmwucmVwbGFjZSgvXFwvKyQvLCAnJykgKyAnL2FwaS9icm9hZGNhc3QnO1xuICAgIH1cbiAgICBhc3luYyBfZmV0Y2hXaXRoVGltZW91dCh1cmwsIG9wdGlvbnMsIHRpbWVvdXQpIHtcbiAgICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgdGltZW91dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zb2NrZXQuZmV0Y2godXJsLCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpLCB7IHNpZ25hbDogY29udHJvbGxlci5zaWduYWwgfSkpO1xuICAgICAgICBjbGVhclRpbWVvdXQoaWQpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfcHVzaChldmVudCwgcGF5bG9hZCwgdGltZW91dCA9IHRoaXMudGltZW91dCkge1xuICAgICAgICBpZiAoIXRoaXMuam9pbmVkT25jZSkge1xuICAgICAgICAgICAgdGhyb3cgYHRyaWVkIHRvIHB1c2ggJyR7ZXZlbnR9JyB0byAnJHt0aGlzLnRvcGljfScgYmVmb3JlIGpvaW5pbmcuIFVzZSBjaGFubmVsLnN1YnNjcmliZSgpIGJlZm9yZSBwdXNoaW5nIGV2ZW50c2A7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHB1c2hFdmVudCA9IG5ldyBQdXNoKHRoaXMsIGV2ZW50LCBwYXlsb2FkLCB0aW1lb3V0KTtcbiAgICAgICAgaWYgKHRoaXMuX2NhblB1c2goKSkge1xuICAgICAgICAgICAgcHVzaEV2ZW50LnNlbmQoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHB1c2hFdmVudC5zdGFydFRpbWVvdXQoKTtcbiAgICAgICAgICAgIHRoaXMucHVzaEJ1ZmZlci5wdXNoKHB1c2hFdmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHB1c2hFdmVudDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGFibGUgbWVzc2FnZSBob29rXG4gICAgICpcbiAgICAgKiBSZWNlaXZlcyBhbGwgZXZlbnRzIGZvciBzcGVjaWFsaXplZCBtZXNzYWdlIGhhbmRsaW5nIGJlZm9yZSBkaXNwYXRjaGluZyB0byB0aGUgY2hhbm5lbCBjYWxsYmFja3MuXG4gICAgICogTXVzdCByZXR1cm4gdGhlIHBheWxvYWQsIG1vZGlmaWVkIG9yIHVubW9kaWZpZWQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBfb25NZXNzYWdlKF9ldmVudCwgcGF5bG9hZCwgX3JlZikge1xuICAgICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9pc01lbWJlcih0b3BpYykge1xuICAgICAgICByZXR1cm4gdGhpcy50b3BpYyA9PT0gdG9waWM7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfam9pblJlZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuam9pblB1c2gucmVmO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX3RyaWdnZXIodHlwZSwgcGF5bG9hZCwgcmVmKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IHR5cGVMb3dlciA9IHR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgeyBjbG9zZSwgZXJyb3IsIGxlYXZlLCBqb2luIH0gPSBDSEFOTkVMX0VWRU5UUztcbiAgICAgICAgY29uc3QgZXZlbnRzID0gW2Nsb3NlLCBlcnJvciwgbGVhdmUsIGpvaW5dO1xuICAgICAgICBpZiAocmVmICYmIGV2ZW50cy5pbmRleE9mKHR5cGVMb3dlcikgPj0gMCAmJiByZWYgIT09IHRoaXMuX2pvaW5SZWYoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBoYW5kbGVkUGF5bG9hZCA9IHRoaXMuX29uTWVzc2FnZSh0eXBlTG93ZXIsIHBheWxvYWQsIHJlZik7XG4gICAgICAgIGlmIChwYXlsb2FkICYmICFoYW5kbGVkUGF5bG9hZCkge1xuICAgICAgICAgICAgdGhyb3cgJ2NoYW5uZWwgb25NZXNzYWdlIGNhbGxiYWNrcyBtdXN0IHJldHVybiB0aGUgcGF5bG9hZCwgbW9kaWZpZWQgb3IgdW5tb2RpZmllZCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFsnaW5zZXJ0JywgJ3VwZGF0ZScsICdkZWxldGUnXS5pbmNsdWRlcyh0eXBlTG93ZXIpKSB7XG4gICAgICAgICAgICAoX2EgPSB0aGlzLmJpbmRpbmdzLnBvc3RncmVzX2NoYW5nZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5maWx0ZXIoKGJpbmQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgICAgICByZXR1cm4gKCgoX2EgPSBiaW5kLmZpbHRlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV2ZW50KSA9PT0gJyonIHx8XG4gICAgICAgICAgICAgICAgICAgICgoX2MgPSAoX2IgPSBiaW5kLmZpbHRlcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmV2ZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9Mb2NhbGVMb3dlckNhc2UoKSkgPT09IHR5cGVMb3dlcik7XG4gICAgICAgICAgICB9KS5tYXAoKGJpbmQpID0+IGJpbmQuY2FsbGJhY2soaGFuZGxlZFBheWxvYWQsIHJlZikpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgKF9iID0gdGhpcy5iaW5kaW5nc1t0eXBlTG93ZXJdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZmlsdGVyKChiaW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2Y7XG4gICAgICAgICAgICAgICAgaWYgKFsnYnJvYWRjYXN0JywgJ3ByZXNlbmNlJywgJ3Bvc3RncmVzX2NoYW5nZXMnXS5pbmNsdWRlcyh0eXBlTG93ZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgnaWQnIGluIGJpbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpbmRJZCA9IGJpbmQuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiaW5kRXZlbnQgPSAoX2EgPSBiaW5kLmZpbHRlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChiaW5kSWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKF9iID0gcGF5bG9hZC5pZHMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5pbmNsdWRlcyhiaW5kSWQpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiaW5kRXZlbnQgPT09ICcqJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmluZEV2ZW50ID09PSBudWxsIHx8IGJpbmRFdmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYmluZEV2ZW50LnRvTG9jYWxlTG93ZXJDYXNlKCkpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfYyA9IHBheWxvYWQuZGF0YSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpbmRFdmVudCA9IChfZSA9IChfZCA9IGJpbmQgPT09IG51bGwgfHwgYmluZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYmluZC5maWx0ZXIpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5ldmVudCkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGJpbmRFdmVudCA9PT0gJyonIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZEV2ZW50ID09PSAoKF9mID0gcGF5bG9hZCA9PT0gbnVsbCB8fCBwYXlsb2FkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXlsb2FkLmV2ZW50KSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YudG9Mb2NhbGVMb3dlckNhc2UoKSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmluZC50eXBlLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IHR5cGVMb3dlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5tYXAoKGJpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGhhbmRsZWRQYXlsb2FkID09PSAnb2JqZWN0JyAmJiAnaWRzJyBpbiBoYW5kbGVkUGF5bG9hZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3N0Z3Jlc0NoYW5nZXMgPSBoYW5kbGVkUGF5bG9hZC5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHNjaGVtYSwgdGFibGUsIGNvbW1pdF90aW1lc3RhbXAsIHR5cGUsIGVycm9ycyB9ID0gcG9zdGdyZXNDaGFuZ2VzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnJpY2hlZFBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlOiB0YWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdF90aW1lc3RhbXA6IGNvbW1pdF90aW1lc3RhbXAsXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudFR5cGU6IHR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXc6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgb2xkOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVkUGF5bG9hZCA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZW5yaWNoZWRQYXlsb2FkKSwgdGhpcy5fZ2V0UGF5bG9hZFJlY29yZHMocG9zdGdyZXNDaGFuZ2VzKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJpbmQuY2FsbGJhY2soaGFuZGxlZFBheWxvYWQsIHJlZik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2lzQ2xvc2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gQ0hBTk5FTF9TVEFURVMuY2xvc2VkO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2lzSm9pbmVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gQ0hBTk5FTF9TVEFURVMuam9pbmVkO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2lzSm9pbmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmpvaW5pbmc7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfaXNMZWF2aW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gQ0hBTk5FTF9TVEFURVMubGVhdmluZztcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9yZXBseUV2ZW50TmFtZShyZWYpIHtcbiAgICAgICAgcmV0dXJuIGBjaGFuX3JlcGx5XyR7cmVmfWA7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfb24odHlwZSwgZmlsdGVyLCBjYWxsYmFjaykge1xuICAgICAgICBjb25zdCB0eXBlTG93ZXIgPSB0eXBlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGJpbmRpbmcgPSB7XG4gICAgICAgICAgICB0eXBlOiB0eXBlTG93ZXIsXG4gICAgICAgICAgICBmaWx0ZXI6IGZpbHRlcixcbiAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjayxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMuYmluZGluZ3NbdHlwZUxvd2VyXSkge1xuICAgICAgICAgICAgdGhpcy5iaW5kaW5nc1t0eXBlTG93ZXJdLnB1c2goYmluZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJpbmRpbmdzW3R5cGVMb3dlcl0gPSBbYmluZGluZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfb2ZmKHR5cGUsIGZpbHRlcikge1xuICAgICAgICBjb25zdCB0eXBlTG93ZXIgPSB0eXBlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIHRoaXMuYmluZGluZ3NbdHlwZUxvd2VyXSA9IHRoaXMuYmluZGluZ3NbdHlwZUxvd2VyXS5maWx0ZXIoKGJpbmQpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIHJldHVybiAhKCgoX2EgPSBiaW5kLnR5cGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b0xvY2FsZUxvd2VyQ2FzZSgpKSA9PT0gdHlwZUxvd2VyICYmXG4gICAgICAgICAgICAgICAgUmVhbHRpbWVDaGFubmVsLmlzRXF1YWwoYmluZC5maWx0ZXIsIGZpbHRlcikpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBzdGF0aWMgaXNFcXVhbChvYmoxLCBvYmoyKSB7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmoxKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKG9iajIpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgayBpbiBvYmoxKSB7XG4gICAgICAgICAgICBpZiAob2JqMVtrXSAhPT0gb2JqMltrXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9yZWpvaW5VbnRpbENvbm5lY3RlZCgpIHtcbiAgICAgICAgdGhpcy5yZWpvaW5UaW1lci5zY2hlZHVsZVRpbWVvdXQoKTtcbiAgICAgICAgaWYgKHRoaXMuc29ja2V0LmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlam9pbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZSBjaGFubmVsIGNsb3Nlcy5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9vbkNsb3NlKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuX29uKENIQU5ORUxfRVZFTlRTLmNsb3NlLCB7fSwgY2FsbGJhY2spO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgY2hhbm5lbCBlbmNvdW50ZXJlcyBhbiBlcnJvci5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9vbkVycm9yKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuX29uKENIQU5ORUxfRVZFTlRTLmVycm9yLCB7fSwgKHJlYXNvbikgPT4gY2FsbGJhY2socmVhc29uKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBzb2NrZXQgaXMgY29ubmVjdGVkIGFuZCB0aGUgY2hhbm5lbCBoYXMgYmVlbiBqb2luZWQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBfY2FuUHVzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ja2V0LmlzQ29ubmVjdGVkKCkgJiYgdGhpcy5faXNKb2luZWQoKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9yZWpvaW4odGltZW91dCA9IHRoaXMudGltZW91dCkge1xuICAgICAgICBpZiAodGhpcy5faXNMZWF2aW5nKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvY2tldC5fbGVhdmVPcGVuVG9waWModGhpcy50b3BpYyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDSEFOTkVMX1NUQVRFUy5qb2luaW5nO1xuICAgICAgICB0aGlzLmpvaW5QdXNoLnJlc2VuZCh0aW1lb3V0KTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9nZXRQYXlsb2FkUmVjb3JkcyhwYXlsb2FkKSB7XG4gICAgICAgIGNvbnN0IHJlY29yZHMgPSB7XG4gICAgICAgICAgICBuZXc6IHt9LFxuICAgICAgICAgICAgb2xkOiB7fSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHBheWxvYWQudHlwZSA9PT0gJ0lOU0VSVCcgfHwgcGF5bG9hZC50eXBlID09PSAnVVBEQVRFJykge1xuICAgICAgICAgICAgcmVjb3Jkcy5uZXcgPSBUcmFuc2Zvcm1lcnMuY29udmVydENoYW5nZURhdGEocGF5bG9hZC5jb2x1bW5zLCBwYXlsb2FkLnJlY29yZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBheWxvYWQudHlwZSA9PT0gJ1VQREFURScgfHwgcGF5bG9hZC50eXBlID09PSAnREVMRVRFJykge1xuICAgICAgICAgICAgcmVjb3Jkcy5vbGQgPSBUcmFuc2Zvcm1lcnMuY29udmVydENoYW5nZURhdGEocGF5bG9hZC5jb2x1bW5zLCBwYXlsb2FkLm9sZF9yZWNvcmQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWNvcmRzO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWx0aW1lQ2hhbm5lbC5qcy5tYXAiXSwibmFtZXMiOlsiQ0hBTk5FTF9FVkVOVFMiLCJDSEFOTkVMX1NUQVRFUyIsIlB1c2giLCJUaW1lciIsIlJlYWx0aW1lUHJlc2VuY2UiLCJUcmFuc2Zvcm1lcnMiLCJSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCIsIlJFQUxUSU1FX0xJU1RFTl9UWVBFUyIsIlJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMiLCJSRUFMVElNRV9DSEFOTkVMX1NUQVRFUyIsIlJlYWx0aW1lQ2hhbm5lbCIsImNvbnN0cnVjdG9yIiwidG9waWMiLCJwYXJhbXMiLCJjb25maWciLCJzb2NrZXQiLCJiaW5kaW5ncyIsInN0YXRlIiwiY2xvc2VkIiwiam9pbmVkT25jZSIsInB1c2hCdWZmZXIiLCJzdWJUb3BpYyIsInJlcGxhY2UiLCJPYmplY3QiLCJhc3NpZ24iLCJicm9hZGNhc3QiLCJhY2siLCJzZWxmIiwicHJlc2VuY2UiLCJrZXkiLCJ0aW1lb3V0Iiwiam9pblB1c2giLCJqb2luIiwicmVqb2luVGltZXIiLCJfcmVqb2luVW50aWxDb25uZWN0ZWQiLCJyZWNvbm5lY3RBZnRlck1zIiwicmVjZWl2ZSIsImpvaW5lZCIsInJlc2V0IiwiZm9yRWFjaCIsInB1c2hFdmVudCIsInNlbmQiLCJfb25DbG9zZSIsImxvZyIsIl9qb2luUmVmIiwiX3JlbW92ZSIsIl9vbkVycm9yIiwicmVhc29uIiwiX2lzTGVhdmluZyIsIl9pc0Nsb3NlZCIsImVycm9yZWQiLCJzY2hlZHVsZVRpbWVvdXQiLCJfaXNKb2luaW5nIiwiX29uIiwicmVwbHkiLCJwYXlsb2FkIiwicmVmIiwiX3RyaWdnZXIiLCJfcmVwbHlFdmVudE5hbWUiLCJicm9hZGNhc3RFbmRwb2ludFVSTCIsIl9icm9hZGNhc3RFbmRwb2ludFVSTCIsInN1YnNjcmliZSIsImNhbGxiYWNrIiwiX2EiLCJfYiIsImlzQ29ubmVjdGVkIiwiY29ubmVjdCIsImUiLCJhY2Nlc3NUb2tlblBheWxvYWQiLCJwb3N0Z3Jlc19jaGFuZ2VzIiwibWFwIiwiciIsImZpbHRlciIsImFjY2Vzc1Rva2VuIiwiYWNjZXNzX3Rva2VuIiwidXBkYXRlSm9pblBheWxvYWQiLCJfcmVqb2luIiwic2VydmVyUG9zdGdyZXNGaWx0ZXJzIiwic2V0QXV0aCIsInVuZGVmaW5lZCIsImNsaWVudFBvc3RncmVzQmluZGluZ3MiLCJiaW5kaW5nc0xlbiIsImxlbmd0aCIsIm5ld1Bvc3RncmVzQmluZGluZ3MiLCJpIiwiY2xpZW50UG9zdGdyZXNCaW5kaW5nIiwiZXZlbnQiLCJzY2hlbWEiLCJ0YWJsZSIsInNlcnZlclBvc3RncmVzRmlsdGVyIiwicHVzaCIsImlkIiwidW5zdWJzY3JpYmUiLCJFcnJvciIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInZhbHVlcyIsInByZXNlbmNlU3RhdGUiLCJ0cmFjayIsIm9wdHMiLCJ0eXBlIiwidW50cmFjayIsIm9uIiwiYXJncyIsIl9jYW5QdXNoIiwiZW5kcG9pbnRfcGF5bG9hZCIsIm9wdGlvbnMiLCJtZXRob2QiLCJoZWFkZXJzIiwiYXBpa2V5IiwiYXBpS2V5IiwiYm9keSIsIm1lc3NhZ2VzIiwicmVzcG9uc2UiLCJfZmV0Y2hXaXRoVGltZW91dCIsIm9rIiwibmFtZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiX2MiLCJfcHVzaCIsInVwZGF0ZVBheWxvYWQiLCJsZWF2aW5nIiwib25DbG9zZSIsImNsb3NlIiwiZGVzdHJveSIsImxlYXZlUHVzaCIsImxlYXZlIiwidHJpZ2dlciIsInVybCIsImVuZFBvaW50IiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsInNldFRpbWVvdXQiLCJhYm9ydCIsImZldGNoIiwic2lnbmFsIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnRUaW1lb3V0IiwiX29uTWVzc2FnZSIsIl9ldmVudCIsIl9yZWYiLCJfaXNNZW1iZXIiLCJ0eXBlTG93ZXIiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsImV2ZW50cyIsImluZGV4T2YiLCJoYW5kbGVkUGF5bG9hZCIsImluY2x1ZGVzIiwiYmluZCIsIl9kIiwiX2UiLCJfZiIsImJpbmRJZCIsImJpbmRFdmVudCIsImlkcyIsImRhdGEiLCJwb3N0Z3Jlc0NoYW5nZXMiLCJjb21taXRfdGltZXN0YW1wIiwiZXJyb3JzIiwiZW5yaWNoZWRQYXlsb2FkIiwiZXZlbnRUeXBlIiwibmV3Iiwib2xkIiwiX2dldFBheWxvYWRSZWNvcmRzIiwiX2lzSm9pbmVkIiwiam9pbmluZyIsImJpbmRpbmciLCJfb2ZmIiwiaXNFcXVhbCIsIm9iajEiLCJvYmoyIiwia2V5cyIsImsiLCJfbGVhdmVPcGVuVG9waWMiLCJyZXNlbmQiLCJyZWNvcmRzIiwiY29udmVydENoYW5nZURhdGEiLCJjb2x1bW5zIiwicmVjb3JkIiwib2xkX3JlY29yZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js ***! + \**************************************************************************/ +/***/ ((__unused_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 */ RealtimeClient)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/constants */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/timer */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\");\n/* harmony import */ var _lib_serializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/serializer */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js\");\n/* harmony import */ var _RealtimeChannel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RealtimeChannel */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\");\n\n\n\n\nconst noop = ()=>{};\nconst NATIVE_WEBSOCKET_AVAILABLE = typeof WebSocket !== \"undefined\";\nclass RealtimeClient {\n /**\n * Initializes the Socket.\n *\n * @param endPoint The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)\n * @param options.transport The Websocket Transport, for example WebSocket.\n * @param options.timeout The default timeout in milliseconds to trigger push timeouts.\n * @param options.params The optional params to pass when connecting.\n * @param options.headers The optional headers to pass when connecting.\n * @param options.heartbeatIntervalMs The millisec interval to send a heartbeat message.\n * @param options.logger The optional function for specialized logging, ie: logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }\n * @param options.encode The function to encode outgoing messages. Defaults to JSON: (payload, callback) => callback(JSON.stringify(payload))\n * @param options.decode The function to decode incoming messages. Defaults to Serializer's decode.\n * @param options.reconnectAfterMs he optional function that returns the millsec reconnect interval. Defaults to stepped backoff off.\n */ constructor(endPoint, options){\n var _a;\n this.accessToken = null;\n this.apiKey = null;\n this.channels = [];\n this.endPoint = \"\";\n this.headers = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_HEADERS;\n this.params = {};\n this.timeout = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_TIMEOUT;\n this.heartbeatIntervalMs = 30000;\n this.heartbeatTimer = undefined;\n this.pendingHeartbeatRef = null;\n this.ref = 0;\n this.logger = noop;\n this.conn = null;\n this.sendBuffer = [];\n this.serializer = new _lib_serializer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]();\n this.stateChangeCallbacks = {\n open: [],\n close: [],\n error: [],\n message: []\n };\n /**\n * Use either custom fetch, if provided, or default fetch to make HTTP requests\n *\n * @internal\n */ this._resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (...args)=>Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(rsc)/./node_modules/@supabase/node-fetch/lib/index.js\", 23)).then(({ default: fetch1 })=>fetch1(...args));\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n };\n this.endPoint = `${endPoint}/${_lib_constants__WEBPACK_IMPORTED_MODULE_0__.TRANSPORTS.websocket}`;\n if (options === null || options === void 0 ? void 0 : options.transport) {\n this.transport = options.transport;\n } else {\n this.transport = null;\n }\n if (options === null || options === void 0 ? void 0 : options.params) this.params = options.params;\n if (options === null || options === void 0 ? void 0 : options.headers) this.headers = Object.assign(Object.assign({}, this.headers), options.headers);\n if (options === null || options === void 0 ? void 0 : options.timeout) this.timeout = options.timeout;\n if (options === null || options === void 0 ? void 0 : options.logger) this.logger = options.logger;\n if (options === null || options === void 0 ? void 0 : options.heartbeatIntervalMs) this.heartbeatIntervalMs = options.heartbeatIntervalMs;\n const accessToken = (_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey;\n if (accessToken) {\n this.accessToken = accessToken;\n this.apiKey = accessToken;\n }\n this.reconnectAfterMs = (options === null || options === void 0 ? void 0 : options.reconnectAfterMs) ? options.reconnectAfterMs : (tries)=>{\n return [\n 1000,\n 2000,\n 5000,\n 10000\n ][tries - 1] || 10000;\n };\n this.encode = (options === null || options === void 0 ? void 0 : options.encode) ? options.encode : (payload, callback)=>{\n return callback(JSON.stringify(payload));\n };\n this.decode = (options === null || options === void 0 ? void 0 : options.decode) ? options.decode : this.serializer.decode.bind(this.serializer);\n this.reconnectTimer = new _lib_timer__WEBPACK_IMPORTED_MODULE_1__[\"default\"](async ()=>{\n this.disconnect();\n this.connect();\n }, this.reconnectAfterMs);\n this.fetch = this._resolveFetch(options === null || options === void 0 ? void 0 : options.fetch);\n }\n /**\n * Connects the socket, unless already connected.\n */ connect() {\n if (this.conn) {\n return;\n }\n if (this.transport) {\n this.conn = new this.transport(this._endPointURL(), undefined, {\n headers: this.headers\n });\n return;\n }\n if (NATIVE_WEBSOCKET_AVAILABLE) {\n this.conn = new WebSocket(this._endPointURL());\n this.setupConnection();\n return;\n }\n this.conn = new WSWebSocketDummy(this._endPointURL(), undefined, {\n close: ()=>{\n this.conn = null;\n }\n });\n Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/ws\"), __webpack_require__.e(\"_32c4-_66e9\")]).then(__webpack_require__.bind(__webpack_require__, /*! ws */ \"(rsc)/./node_modules/ws/wrapper.mjs\")).then(({ default: WS })=>{\n this.conn = new WS(this._endPointURL(), undefined, {\n headers: this.headers\n });\n this.setupConnection();\n });\n }\n /**\n * Disconnects the socket.\n *\n * @param code A numeric status code to send on disconnect.\n * @param reason A custom reason for the disconnect.\n */ disconnect(code, reason) {\n if (this.conn) {\n this.conn.onclose = function() {}; // noop\n if (code) {\n this.conn.close(code, reason !== null && reason !== void 0 ? reason : \"\");\n } else {\n this.conn.close();\n }\n this.conn = null;\n // remove open handles\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.reconnectTimer.reset();\n }\n }\n /**\n * Returns all created channels\n */ getChannels() {\n return this.channels;\n }\n /**\n * Unsubscribes and removes a single channel\n * @param channel A RealtimeChannel instance\n */ async removeChannel(channel) {\n const status = await channel.unsubscribe();\n if (this.channels.length === 0) {\n this.disconnect();\n }\n return status;\n }\n /**\n * Unsubscribes and removes all channels\n */ async removeAllChannels() {\n const values_1 = await Promise.all(this.channels.map((channel)=>channel.unsubscribe()));\n this.disconnect();\n return values_1;\n }\n /**\n * Logs the message.\n *\n * For customized logging, `this.logger` can be overridden.\n */ log(kind, msg, data) {\n this.logger(kind, msg, data);\n }\n /**\n * Returns the current state of the socket.\n */ connectionState() {\n switch(this.conn && this.conn.readyState){\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.connecting:\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Connecting;\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.open:\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Open;\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.closing:\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Closing;\n default:\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Closed;\n }\n }\n /**\n * Returns `true` is the connection is open.\n */ isConnected() {\n return this.connectionState() === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Open;\n }\n channel(topic, params = {\n config: {}\n }) {\n const chan = new _RealtimeChannel__WEBPACK_IMPORTED_MODULE_3__[\"default\"](`realtime:${topic}`, params, this);\n this.channels.push(chan);\n return chan;\n }\n /**\n * Push out a message if the socket is connected.\n *\n * If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n */ push(data) {\n const { topic, event, payload, ref } = data;\n const callback = ()=>{\n this.encode(data, (result)=>{\n var _a;\n (_a = this.conn) === null || _a === void 0 ? void 0 : _a.send(result);\n });\n };\n this.log(\"push\", `${topic} ${event} (${ref})`, payload);\n if (this.isConnected()) {\n callback();\n } else {\n this.sendBuffer.push(callback);\n }\n }\n /**\n * Sets the JWT access token used for channel subscription authorization and Realtime RLS.\n *\n * @param token A JWT string.\n */ setAuth(token) {\n this.accessToken = token;\n this.channels.forEach((channel)=>{\n token && channel.updateJoinPayload({\n access_token: token\n });\n if (channel.joinedOnce && channel._isJoined()) {\n channel._push(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.access_token, {\n access_token: token\n });\n }\n });\n }\n /**\n * Return the next message ref, accounting for overflows\n *\n * @internal\n */ _makeRef() {\n let newRef = this.ref + 1;\n if (newRef === this.ref) {\n this.ref = 0;\n } else {\n this.ref = newRef;\n }\n return this.ref.toString();\n }\n /**\n * Unsubscribe from channels with the specified topic.\n *\n * @internal\n */ _leaveOpenTopic(topic) {\n let dupChannel = this.channels.find((c)=>c.topic === topic && (c._isJoined() || c._isJoining()));\n if (dupChannel) {\n this.log(\"transport\", `leaving duplicate topic \"${topic}\"`);\n dupChannel.unsubscribe();\n }\n }\n /**\n * Removes a subscription from the socket.\n *\n * @param channel An open subscription.\n *\n * @internal\n */ _remove(channel) {\n this.channels = this.channels.filter((c)=>c._joinRef() !== channel._joinRef());\n }\n /**\n * Sets up connection handlers.\n *\n * @internal\n */ setupConnection() {\n if (this.conn) {\n this.conn.binaryType = \"arraybuffer\";\n this.conn.onopen = ()=>this._onConnOpen();\n this.conn.onerror = (error)=>this._onConnError(error);\n this.conn.onmessage = (event)=>this._onConnMessage(event);\n this.conn.onclose = (event)=>this._onConnClose(event);\n }\n }\n /**\n * Returns the URL of the websocket.\n *\n * @internal\n */ _endPointURL() {\n return this._appendParams(this.endPoint, Object.assign({}, this.params, {\n vsn: _lib_constants__WEBPACK_IMPORTED_MODULE_0__.VSN\n }));\n }\n /** @internal */ _onConnMessage(rawMessage) {\n this.decode(rawMessage.data, (msg)=>{\n let { topic, event, payload, ref } = msg;\n if (ref && ref === this.pendingHeartbeatRef || event === (payload === null || payload === void 0 ? void 0 : payload.type)) {\n this.pendingHeartbeatRef = null;\n }\n this.log(\"receive\", `${payload.status || \"\"} ${topic} ${event} ${ref && \"(\" + ref + \")\" || \"\"}`, payload);\n this.channels.filter((channel)=>channel._isMember(topic)).forEach((channel)=>channel._trigger(event, payload, ref));\n this.stateChangeCallbacks.message.forEach((callback)=>callback(msg));\n });\n }\n /** @internal */ _onConnOpen() {\n this.log(\"transport\", `connected to ${this._endPointURL()}`);\n this._flushSendBuffer();\n this.reconnectTimer.reset();\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = setInterval(()=>this._sendHeartbeat(), this.heartbeatIntervalMs);\n this.stateChangeCallbacks.open.forEach((callback)=>callback());\n }\n /** @internal */ _onConnClose(event) {\n this.log(\"transport\", \"close\", event);\n this._triggerChanError();\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.reconnectTimer.scheduleTimeout();\n this.stateChangeCallbacks.close.forEach((callback)=>callback(event));\n }\n /** @internal */ _onConnError(error) {\n this.log(\"transport\", error.message);\n this._triggerChanError();\n this.stateChangeCallbacks.error.forEach((callback)=>callback(error));\n }\n /** @internal */ _triggerChanError() {\n this.channels.forEach((channel)=>channel._trigger(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.error));\n }\n /** @internal */ _appendParams(url, params) {\n if (Object.keys(params).length === 0) {\n return url;\n }\n const prefix = url.match(/\\?/) ? \"&\" : \"?\";\n const query = new URLSearchParams(params);\n return `${url}${prefix}${query}`;\n }\n /** @internal */ _flushSendBuffer() {\n if (this.isConnected() && this.sendBuffer.length > 0) {\n this.sendBuffer.forEach((callback)=>callback());\n this.sendBuffer = [];\n }\n }\n /** @internal */ _sendHeartbeat() {\n var _a;\n if (!this.isConnected()) {\n return;\n }\n if (this.pendingHeartbeatRef) {\n this.pendingHeartbeatRef = null;\n this.log(\"transport\", \"heartbeat timeout. Attempting to re-establish connection\");\n (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.WS_CLOSE_NORMAL, \"hearbeat timeout\");\n return;\n }\n this.pendingHeartbeatRef = this._makeRef();\n this.push({\n topic: \"phoenix\",\n event: \"heartbeat\",\n payload: {},\n ref: this.pendingHeartbeatRef\n });\n this.setAuth(this.accessToken);\n }\n}\nclass WSWebSocketDummy {\n constructor(address, _protocols, options){\n this.binaryType = \"arraybuffer\";\n this.onclose = ()=>{};\n this.onerror = ()=>{};\n this.onmessage = ()=>{};\n this.onopen = ()=>{};\n this.readyState = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.connecting;\n this.send = ()=>{};\n this.url = null;\n this.url = address;\n this.close = options.close;\n }\n} //# sourceMappingURL=RealtimeClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL1JlYWx0aW1lQ2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXVKO0FBQ3ZIO0FBQ1U7QUFDTTtBQUNoRCxNQUFNVyxPQUFPLEtBQVE7QUFDckIsTUFBTUMsNkJBQTZCLE9BQU9DLGNBQWM7QUFDekMsTUFBTUM7SUFDakI7Ozs7Ozs7Ozs7Ozs7S0FhQyxHQUNEQyxZQUFZQyxRQUFRLEVBQUVDLE9BQU8sQ0FBRTtRQUMzQixJQUFJQztRQUNKLElBQUksQ0FBQ0MsV0FBVyxHQUFHO1FBQ25CLElBQUksQ0FBQ0MsTUFBTSxHQUFHO1FBQ2QsSUFBSSxDQUFDQyxRQUFRLEdBQUcsRUFBRTtRQUNsQixJQUFJLENBQUNMLFFBQVEsR0FBRztRQUNoQixJQUFJLENBQUNNLE9BQU8sR0FBR2hCLDJEQUFlQTtRQUM5QixJQUFJLENBQUNpQixNQUFNLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQ0MsT0FBTyxHQUFHcEIsMkRBQWVBO1FBQzlCLElBQUksQ0FBQ3FCLG1CQUFtQixHQUFHO1FBQzNCLElBQUksQ0FBQ0MsY0FBYyxHQUFHQztRQUN0QixJQUFJLENBQUNDLG1CQUFtQixHQUFHO1FBQzNCLElBQUksQ0FBQ0MsR0FBRyxHQUFHO1FBQ1gsSUFBSSxDQUFDQyxNQUFNLEdBQUduQjtRQUNkLElBQUksQ0FBQ29CLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ0MsVUFBVSxHQUFHLEVBQUU7UUFDcEIsSUFBSSxDQUFDQyxVQUFVLEdBQUcsSUFBSXhCLHVEQUFVQTtRQUNoQyxJQUFJLENBQUN5QixvQkFBb0IsR0FBRztZQUN4QkMsTUFBTSxFQUFFO1lBQ1JDLE9BQU8sRUFBRTtZQUNUQyxPQUFPLEVBQUU7WUFDVEMsU0FBUyxFQUFFO1FBQ2Y7UUFDQTs7OztTQUlDLEdBQ0QsSUFBSSxDQUFDQyxhQUFhLEdBQUcsQ0FBQ0M7WUFDbEIsSUFBSUM7WUFDSixJQUFJRCxhQUFhO2dC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QUssR0FBR25CLFFBQVFtQixLQUFLO0lBQzlCO0FBQ0osRUFDQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL1JlYWx0aW1lQ2xpZW50LmpzPzZiNmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVlNOLCBDSEFOTkVMX0VWRU5UUywgVFJBTlNQT1JUUywgU09DS0VUX1NUQVRFUywgREVGQVVMVF9USU1FT1VULCBXU19DTE9TRV9OT1JNQUwsIERFRkFVTFRfSEVBREVSUywgQ09OTkVDVElPTl9TVEFURSwgfSBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IFRpbWVyIGZyb20gJy4vbGliL3RpbWVyJztcbmltcG9ydCBTZXJpYWxpemVyIGZyb20gJy4vbGliL3NlcmlhbGl6ZXInO1xuaW1wb3J0IFJlYWx0aW1lQ2hhbm5lbCBmcm9tICcuL1JlYWx0aW1lQ2hhbm5lbCc7XG5jb25zdCBub29wID0gKCkgPT4geyB9O1xuY29uc3QgTkFUSVZFX1dFQlNPQ0tFVF9BVkFJTEFCTEUgPSB0eXBlb2YgV2ViU29ja2V0ICE9PSAndW5kZWZpbmVkJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlYWx0aW1lQ2xpZW50IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyB0aGUgU29ja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGVuZFBvaW50IFRoZSBzdHJpbmcgV2ViU29ja2V0IGVuZHBvaW50LCBpZSwgXCJ3czovL2V4YW1wbGUuY29tL3NvY2tldFwiLCBcIndzczovL2V4YW1wbGUuY29tXCIsIFwiL3NvY2tldFwiIChpbmhlcml0ZWQgaG9zdCAmIHByb3RvY29sKVxuICAgICAqIEBwYXJhbSBvcHRpb25zLnRyYW5zcG9ydCBUaGUgV2Vic29ja2V0IFRyYW5zcG9ydCwgZm9yIGV4YW1wbGUgV2ViU29ja2V0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnRpbWVvdXQgVGhlIGRlZmF1bHQgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gdHJpZ2dlciBwdXNoIHRpbWVvdXRzLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnBhcmFtcyBUaGUgb3B0aW9uYWwgcGFyYW1zIHRvIHBhc3Mgd2hlbiBjb25uZWN0aW5nLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmhlYWRlcnMgVGhlIG9wdGlvbmFsIGhlYWRlcnMgdG8gcGFzcyB3aGVuIGNvbm5lY3RpbmcuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuaGVhcnRiZWF0SW50ZXJ2YWxNcyBUaGUgbWlsbGlzZWMgaW50ZXJ2YWwgdG8gc2VuZCBhIGhlYXJ0YmVhdCBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmxvZ2dlciBUaGUgb3B0aW9uYWwgZnVuY3Rpb24gZm9yIHNwZWNpYWxpemVkIGxvZ2dpbmcsIGllOiBsb2dnZXI6IChraW5kLCBtc2csIGRhdGEpID0+IHsgY29uc29sZS5sb2coYCR7a2luZH06ICR7bXNnfWAsIGRhdGEpIH1cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5lbmNvZGUgVGhlIGZ1bmN0aW9uIHRvIGVuY29kZSBvdXRnb2luZyBtZXNzYWdlcy4gRGVmYXVsdHMgdG8gSlNPTjogKHBheWxvYWQsIGNhbGxiYWNrKSA9PiBjYWxsYmFjayhKU09OLnN0cmluZ2lmeShwYXlsb2FkKSlcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kZWNvZGUgVGhlIGZ1bmN0aW9uIHRvIGRlY29kZSBpbmNvbWluZyBtZXNzYWdlcy4gRGVmYXVsdHMgdG8gU2VyaWFsaXplcidzIGRlY29kZS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWNvbm5lY3RBZnRlck1zIGhlIG9wdGlvbmFsIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgbWlsbHNlYyByZWNvbm5lY3QgaW50ZXJ2YWwuIERlZmF1bHRzIHRvIHN0ZXBwZWQgYmFja29mZiBvZmYuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZW5kUG9pbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gbnVsbDtcbiAgICAgICAgdGhpcy5hcGlLZXkgPSBudWxsO1xuICAgICAgICB0aGlzLmNoYW5uZWxzID0gW107XG4gICAgICAgIHRoaXMuZW5kUG9pbnQgPSAnJztcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gREVGQVVMVF9IRUFERVJTO1xuICAgICAgICB0aGlzLnBhcmFtcyA9IHt9O1xuICAgICAgICB0aGlzLnRpbWVvdXQgPSBERUZBVUxUX1RJTUVPVVQ7XG4gICAgICAgIHRoaXMuaGVhcnRiZWF0SW50ZXJ2YWxNcyA9IDMwMDAwO1xuICAgICAgICB0aGlzLmhlYXJ0YmVhdFRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSBudWxsO1xuICAgICAgICB0aGlzLnJlZiA9IDA7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gbm9vcDtcbiAgICAgICAgdGhpcy5jb25uID0gbnVsbDtcbiAgICAgICAgdGhpcy5zZW5kQnVmZmVyID0gW107XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBTZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MgPSB7XG4gICAgICAgICAgICBvcGVuOiBbXSxcbiAgICAgICAgICAgIGNsb3NlOiBbXSxcbiAgICAgICAgICAgIGVycm9yOiBbXSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IFtdLFxuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogVXNlIGVpdGhlciBjdXN0b20gZmV0Y2gsIGlmIHByb3ZpZGVkLCBvciBkZWZhdWx0IGZldGNoIHRvIG1ha2UgSFRUUCByZXF1ZXN0c1xuICAgICAgICAgKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3Jlc29sdmVGZXRjaCA9IChjdXN0b21GZXRjaCkgPT4ge1xuICAgICAgICAgICAgbGV0IF9mZXRjaDtcbiAgICAgICAgICAgIGlmIChjdXN0b21GZXRjaCkge1xuICAgICAgICAgICAgICAgIF9mZXRjaCA9IGN1c3RvbUZldGNoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGZldGNoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIF9mZXRjaCA9ICguLi5hcmdzKSA9PiBpbXBvcnQoJ0BzdXBhYmFzZS9ub2RlLWZldGNoJykudGhlbigoeyBkZWZhdWx0OiBmZXRjaCB9KSA9PiBmZXRjaCguLi5hcmdzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfZmV0Y2ggPSBmZXRjaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoLi4uYXJncykgPT4gX2ZldGNoKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVuZFBvaW50ID0gYCR7ZW5kUG9pbnR9LyR7VFJBTlNQT1JUUy53ZWJzb2NrZXR9YDtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50cmFuc3BvcnQpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0ID0gb3B0aW9ucy50cmFuc3BvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zcG9ydCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wYXJhbXMpXG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IG9wdGlvbnMucGFyYW1zO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmhlYWRlcnMpXG4gICAgICAgICAgICB0aGlzLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaGVhZGVycyksIG9wdGlvbnMuaGVhZGVycyk7XG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMudGltZW91dClcbiAgICAgICAgICAgIHRoaXMudGltZW91dCA9IG9wdGlvbnMudGltZW91dDtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5sb2dnZXIpXG4gICAgICAgICAgICB0aGlzLmxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmhlYXJ0YmVhdEludGVydmFsTXMpXG4gICAgICAgICAgICB0aGlzLmhlYXJ0YmVhdEludGVydmFsTXMgPSBvcHRpb25zLmhlYXJ0YmVhdEludGVydmFsTXM7XG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gKF9hID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmFtcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFwaWtleTtcbiAgICAgICAgaWYgKGFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gYWNjZXNzVG9rZW47XG4gICAgICAgICAgICB0aGlzLmFwaUtleSA9IGFjY2Vzc1Rva2VuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVjb25uZWN0QWZ0ZXJNcyA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucmVjb25uZWN0QWZ0ZXJNcylcbiAgICAgICAgICAgID8gb3B0aW9ucy5yZWNvbm5lY3RBZnRlck1zXG4gICAgICAgICAgICA6ICh0cmllcykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbMTAwMCwgMjAwMCwgNTAwMCwgMTAwMDBdW3RyaWVzIC0gMV0gfHwgMTAwMDA7XG4gICAgICAgICAgICB9O1xuICAgICAgICB0aGlzLmVuY29kZSA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZW5jb2RlKVxuICAgICAgICAgICAgPyBvcHRpb25zLmVuY29kZVxuICAgICAgICAgICAgOiAocGF5bG9hZCwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZWNvZGUgPSAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRlY29kZSlcbiAgICAgICAgICAgID8gb3B0aW9ucy5kZWNvZGVcbiAgICAgICAgICAgIDogdGhpcy5zZXJpYWxpemVyLmRlY29kZS5iaW5kKHRoaXMuc2VyaWFsaXplcik7XG4gICAgICAgIHRoaXMucmVjb25uZWN0VGltZXIgPSBuZXcgVGltZXIoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3QoKTtcbiAgICAgICAgfSwgdGhpcy5yZWNvbm5lY3RBZnRlck1zKTtcbiAgICAgICAgdGhpcy5mZXRjaCA9IHRoaXMuX3Jlc29sdmVGZXRjaChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZmV0Y2gpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb25uZWN0cyB0aGUgc29ja2V0LCB1bmxlc3MgYWxyZWFkeSBjb25uZWN0ZWQuXG4gICAgICovXG4gICAgY29ubmVjdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29ubikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRyYW5zcG9ydCkge1xuICAgICAgICAgICAgdGhpcy5jb25uID0gbmV3IHRoaXMudHJhbnNwb3J0KHRoaXMuX2VuZFBvaW50VVJMKCksIHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChOQVRJVkVfV0VCU09DS0VUX0FWQUlMQUJMRSkge1xuICAgICAgICAgICAgdGhpcy5jb25uID0gbmV3IFdlYlNvY2tldCh0aGlzLl9lbmRQb2ludFVSTCgpKTtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBDb25uZWN0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb25uID0gbmV3IFdTV2ViU29ja2V0RHVtbXkodGhpcy5fZW5kUG9pbnRVUkwoKSwgdW5kZWZpbmVkLCB7XG4gICAgICAgICAgICBjbG9zZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubiA9IG51bGw7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaW1wb3J0KCd3cycpLnRoZW4oKHsgZGVmYXVsdDogV1MgfSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb25uID0gbmV3IFdTKHRoaXMuX2VuZFBvaW50VVJMKCksIHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXR1cENvbm5lY3Rpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERpc2Nvbm5lY3RzIHRoZSBzb2NrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29kZSBBIG51bWVyaWMgc3RhdHVzIGNvZGUgdG8gc2VuZCBvbiBkaXNjb25uZWN0LlxuICAgICAqIEBwYXJhbSByZWFzb24gQSBjdXN0b20gcmVhc29uIGZvciB0aGUgZGlzY29ubmVjdC5cbiAgICAgKi9cbiAgICBkaXNjb25uZWN0KGNvZGUsIHJlYXNvbikge1xuICAgICAgICBpZiAodGhpcy5jb25uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbm4ub25jbG9zZSA9IGZ1bmN0aW9uICgpIHsgfTsgLy8gbm9vcFxuICAgICAgICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm4uY2xvc2UoY29kZSwgcmVhc29uICE9PSBudWxsICYmIHJlYXNvbiAhPT0gdm9pZCAwID8gcmVhc29uIDogJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNvbm4gPSBudWxsO1xuICAgICAgICAgICAgLy8gcmVtb3ZlIG9wZW4gaGFuZGxlc1xuICAgICAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciAmJiBjbGVhckludGVydmFsKHRoaXMuaGVhcnRiZWF0VGltZXIpO1xuICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3RUaW1lci5yZXNldCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWxsIGNyZWF0ZWQgY2hhbm5lbHNcbiAgICAgKi9cbiAgICBnZXRDaGFubmVscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbm5lbHM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlcyBhbmQgcmVtb3ZlcyBhIHNpbmdsZSBjaGFubmVsXG4gICAgICogQHBhcmFtIGNoYW5uZWwgQSBSZWFsdGltZUNoYW5uZWwgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBhc3luYyByZW1vdmVDaGFubmVsKGNoYW5uZWwpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgY2hhbm5lbC51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5jaGFubmVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlcyBhbmQgcmVtb3ZlcyBhbGwgY2hhbm5lbHNcbiAgICAgKi9cbiAgICBhc3luYyByZW1vdmVBbGxDaGFubmVscygpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzXzEgPSBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmNoYW5uZWxzLm1hcCgoY2hhbm5lbCkgPT4gY2hhbm5lbC51bnN1YnNjcmliZSgpKSk7XG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgICAgICByZXR1cm4gdmFsdWVzXzE7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIExvZ3MgdGhlIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBGb3IgY3VzdG9taXplZCBsb2dnaW5nLCBgdGhpcy5sb2dnZXJgIGNhbiBiZSBvdmVycmlkZGVuLlxuICAgICAqL1xuICAgIGxvZyhraW5kLCBtc2csIGRhdGEpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIoa2luZCwgbXNnLCBkYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc29ja2V0LlxuICAgICAqL1xuICAgIGNvbm5lY3Rpb25TdGF0ZSgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmNvbm4gJiYgdGhpcy5jb25uLnJlYWR5U3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgU09DS0VUX1NUQVRFUy5jb25uZWN0aW5nOlxuICAgICAgICAgICAgICAgIHJldHVybiBDT05ORUNUSU9OX1NUQVRFLkNvbm5lY3Rpbmc7XG4gICAgICAgICAgICBjYXNlIFNPQ0tFVF9TVEFURVMub3BlbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ09OTkVDVElPTl9TVEFURS5PcGVuO1xuICAgICAgICAgICAgY2FzZSBTT0NLRVRfU1RBVEVTLmNsb3Npbmc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENPTk5FQ1RJT05fU1RBVEUuQ2xvc2luZztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENPTk5FQ1RJT05fU1RBVEUuQ2xvc2VkO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYHRydWVgIGlzIHRoZSBjb25uZWN0aW9uIGlzIG9wZW4uXG4gICAgICovXG4gICAgaXNDb25uZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25TdGF0ZSgpID09PSBDT05ORUNUSU9OX1NUQVRFLk9wZW47XG4gICAgfVxuICAgIGNoYW5uZWwodG9waWMsIHBhcmFtcyA9IHsgY29uZmlnOiB7fSB9KSB7XG4gICAgICAgIGNvbnN0IGNoYW4gPSBuZXcgUmVhbHRpbWVDaGFubmVsKGByZWFsdGltZToke3RvcGljfWAsIHBhcmFtcywgdGhpcyk7XG4gICAgICAgIHRoaXMuY2hhbm5lbHMucHVzaChjaGFuKTtcbiAgICAgICAgcmV0dXJuIGNoYW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFB1c2ggb3V0IGEgbWVzc2FnZSBpZiB0aGUgc29ja2V0IGlzIGNvbm5lY3RlZC5cbiAgICAgKlxuICAgICAqIElmIHRoZSBzb2NrZXQgaXMgbm90IGNvbm5lY3RlZCwgdGhlIG1lc3NhZ2UgZ2V0cyBlbnF1ZXVlZCB3aXRoaW4gYSBsb2NhbCBidWZmZXIsIGFuZCBzZW50IG91dCB3aGVuIGEgY29ubmVjdGlvbiBpcyBuZXh0IGVzdGFibGlzaGVkLlxuICAgICAqL1xuICAgIHB1c2goZGF0YSkge1xuICAgICAgICBjb25zdCB7IHRvcGljLCBldmVudCwgcGF5bG9hZCwgcmVmIH0gPSBkYXRhO1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW5jb2RlKGRhdGEsIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgKF9hID0gdGhpcy5jb25uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2VuZChyZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubG9nKCdwdXNoJywgYCR7dG9waWN9ICR7ZXZlbnR9ICgke3JlZn0pYCwgcGF5bG9hZCk7XG4gICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbmRCdWZmZXIucHVzaChjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgSldUIGFjY2VzcyB0b2tlbiB1c2VkIGZvciBjaGFubmVsIHN1YnNjcmlwdGlvbiBhdXRob3JpemF0aW9uIGFuZCBSZWFsdGltZSBSTFMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdG9rZW4gQSBKV1Qgc3RyaW5nLlxuICAgICAqL1xuICAgIHNldEF1dGgodG9rZW4pIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHRva2VuO1xuICAgICAgICB0aGlzLmNoYW5uZWxzLmZvckVhY2goKGNoYW5uZWwpID0+IHtcbiAgICAgICAgICAgIHRva2VuICYmIGNoYW5uZWwudXBkYXRlSm9pblBheWxvYWQoeyBhY2Nlc3NfdG9rZW46IHRva2VuIH0pO1xuICAgICAgICAgICAgaWYgKGNoYW5uZWwuam9pbmVkT25jZSAmJiBjaGFubmVsLl9pc0pvaW5lZCgpKSB7XG4gICAgICAgICAgICAgICAgY2hhbm5lbC5fcHVzaChDSEFOTkVMX0VWRU5UUy5hY2Nlc3NfdG9rZW4sIHsgYWNjZXNzX3Rva2VuOiB0b2tlbiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgbmV4dCBtZXNzYWdlIHJlZiwgYWNjb3VudGluZyBmb3Igb3ZlcmZsb3dzXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBfbWFrZVJlZigpIHtcbiAgICAgICAgbGV0IG5ld1JlZiA9IHRoaXMucmVmICsgMTtcbiAgICAgICAgaWYgKG5ld1JlZiA9PT0gdGhpcy5yZWYpIHtcbiAgICAgICAgICAgIHRoaXMucmVmID0gMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVmID0gbmV3UmVmO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlZi50b1N0cmluZygpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVbnN1YnNjcmliZSBmcm9tIGNoYW5uZWxzIHdpdGggdGhlIHNwZWNpZmllZCB0b3BpYy5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9sZWF2ZU9wZW5Ub3BpYyh0b3BpYykge1xuICAgICAgICBsZXQgZHVwQ2hhbm5lbCA9IHRoaXMuY2hhbm5lbHMuZmluZCgoYykgPT4gYy50b3BpYyA9PT0gdG9waWMgJiYgKGMuX2lzSm9pbmVkKCkgfHwgYy5faXNKb2luaW5nKCkpKTtcbiAgICAgICAgaWYgKGR1cENoYW5uZWwpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCd0cmFuc3BvcnQnLCBgbGVhdmluZyBkdXBsaWNhdGUgdG9waWMgXCIke3RvcGljfVwiYCk7XG4gICAgICAgICAgICBkdXBDaGFubmVsLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoZSBzb2NrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2hhbm5lbCBBbiBvcGVuIHN1YnNjcmlwdGlvbi5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9yZW1vdmUoY2hhbm5lbCkge1xuICAgICAgICB0aGlzLmNoYW5uZWxzID0gdGhpcy5jaGFubmVscy5maWx0ZXIoKGMpID0+IGMuX2pvaW5SZWYoKSAhPT0gY2hhbm5lbC5fam9pblJlZigpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB1cCBjb25uZWN0aW9uIGhhbmRsZXJzLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgc2V0dXBDb25uZWN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jb25uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbm4uYmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7XG4gICAgICAgICAgICB0aGlzLmNvbm4ub25vcGVuID0gKCkgPT4gdGhpcy5fb25Db25uT3BlbigpO1xuICAgICAgICAgICAgdGhpcy5jb25uLm9uZXJyb3IgPSAoZXJyb3IpID0+IHRoaXMuX29uQ29ubkVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuY29ubi5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHRoaXMuX29uQ29ubk1lc3NhZ2UoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5jb25uLm9uY2xvc2UgPSAoZXZlbnQpID0+IHRoaXMuX29uQ29ubkNsb3NlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBVUkwgb2YgdGhlIHdlYnNvY2tldC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9lbmRQb2ludFVSTCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGVuZFBhcmFtcyh0aGlzLmVuZFBvaW50LCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBhcmFtcywgeyB2c246IFZTTiB9KSk7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBfb25Db25uTWVzc2FnZShyYXdNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuZGVjb2RlKHJhd01lc3NhZ2UuZGF0YSwgKG1zZykgPT4ge1xuICAgICAgICAgICAgbGV0IHsgdG9waWMsIGV2ZW50LCBwYXlsb2FkLCByZWYgfSA9IG1zZztcbiAgICAgICAgICAgIGlmICgocmVmICYmIHJlZiA9PT0gdGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmKSB8fFxuICAgICAgICAgICAgICAgIGV2ZW50ID09PSAocGF5bG9hZCA9PT0gbnVsbCB8fCBwYXlsb2FkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXlsb2FkLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubG9nKCdyZWNlaXZlJywgYCR7cGF5bG9hZC5zdGF0dXMgfHwgJyd9ICR7dG9waWN9ICR7ZXZlbnR9ICR7KHJlZiAmJiAnKCcgKyByZWYgKyAnKScpIHx8ICcnfWAsIHBheWxvYWQpO1xuICAgICAgICAgICAgdGhpcy5jaGFubmVsc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNoYW5uZWwpID0+IGNoYW5uZWwuX2lzTWVtYmVyKHRvcGljKSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoY2hhbm5lbCkgPT4gY2hhbm5lbC5fdHJpZ2dlcihldmVudCwgcGF5bG9hZCwgcmVmKSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm1lc3NhZ2UuZm9yRWFjaCgoY2FsbGJhY2spID0+IGNhbGxiYWNrKG1zZykpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9vbkNvbm5PcGVuKCkge1xuICAgICAgICB0aGlzLmxvZygndHJhbnNwb3J0JywgYGNvbm5lY3RlZCB0byAke3RoaXMuX2VuZFBvaW50VVJMKCl9YCk7XG4gICAgICAgIHRoaXMuX2ZsdXNoU2VuZEJ1ZmZlcigpO1xuICAgICAgICB0aGlzLnJlY29ubmVjdFRpbWVyLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuaGVhcnRiZWF0VGltZXIgJiYgY2xlYXJJbnRlcnZhbCh0aGlzLmhlYXJ0YmVhdFRpbWVyKTtcbiAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IHNldEludGVydmFsKCgpID0+IHRoaXMuX3NlbmRIZWFydGJlYXQoKSwgdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5vcGVuLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjaygpKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9vbkNvbm5DbG9zZShldmVudCkge1xuICAgICAgICB0aGlzLmxvZygndHJhbnNwb3J0JywgJ2Nsb3NlJywgZXZlbnQpO1xuICAgICAgICB0aGlzLl90cmlnZ2VyQ2hhbkVycm9yKCk7XG4gICAgICAgIHRoaXMuaGVhcnRiZWF0VGltZXIgJiYgY2xlYXJJbnRlcnZhbCh0aGlzLmhlYXJ0YmVhdFRpbWVyKTtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3RUaW1lci5zY2hlZHVsZVRpbWVvdXQoKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5jbG9zZS5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2soZXZlbnQpKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9vbkNvbm5FcnJvcihlcnJvcikge1xuICAgICAgICB0aGlzLmxvZygndHJhbnNwb3J0JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDaGFuRXJyb3IoKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5lcnJvci5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2soZXJyb3IpKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF90cmlnZ2VyQ2hhbkVycm9yKCkge1xuICAgICAgICB0aGlzLmNoYW5uZWxzLmZvckVhY2goKGNoYW5uZWwpID0+IGNoYW5uZWwuX3RyaWdnZXIoQ0hBTk5FTF9FVkVOVFMuZXJyb3IpKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9hcHBlbmRQYXJhbXModXJsLCBwYXJhbXMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHBhcmFtcykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHVybC5tYXRjaCgvXFw/LykgPyAnJicgOiAnPyc7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xuICAgICAgICByZXR1cm4gYCR7dXJsfSR7cHJlZml4fSR7cXVlcnl9YDtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9mbHVzaFNlbmRCdWZmZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKCkgJiYgdGhpcy5zZW5kQnVmZmVyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZEJ1ZmZlci5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSk7XG4gICAgICAgICAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgX3NlbmRIZWFydGJlYXQoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5sb2coJ3RyYW5zcG9ydCcsICdoZWFydGJlYXQgdGltZW91dC4gQXR0ZW1wdGluZyB0byByZS1lc3RhYmxpc2ggY29ubmVjdGlvbicpO1xuICAgICAgICAgICAgKF9hID0gdGhpcy5jb25uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2xvc2UoV1NfQ0xPU0VfTk9STUFMLCAnaGVhcmJlYXQgdGltZW91dCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IHRoaXMuX21ha2VSZWYoKTtcbiAgICAgICAgdGhpcy5wdXNoKHtcbiAgICAgICAgICAgIHRvcGljOiAncGhvZW5peCcsXG4gICAgICAgICAgICBldmVudDogJ2hlYXJ0YmVhdCcsXG4gICAgICAgICAgICBwYXlsb2FkOiB7fSxcbiAgICAgICAgICAgIHJlZjogdGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRBdXRoKHRoaXMuYWNjZXNzVG9rZW4pO1xuICAgIH1cbn1cbmNsYXNzIFdTV2ViU29ja2V0RHVtbXkge1xuICAgIGNvbnN0cnVjdG9yKGFkZHJlc3MsIF9wcm90b2NvbHMsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5iaW5hcnlUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICAgICAgdGhpcy5vbmNsb3NlID0gKCkgPT4geyB9O1xuICAgICAgICB0aGlzLm9uZXJyb3IgPSAoKSA9PiB7IH07XG4gICAgICAgIHRoaXMub25tZXNzYWdlID0gKCkgPT4geyB9O1xuICAgICAgICB0aGlzLm9ub3BlbiA9ICgpID0+IHsgfTtcbiAgICAgICAgdGhpcy5yZWFkeVN0YXRlID0gU09DS0VUX1NUQVRFUy5jb25uZWN0aW5nO1xuICAgICAgICB0aGlzLnNlbmQgPSAoKSA9PiB7IH07XG4gICAgICAgIHRoaXMudXJsID0gbnVsbDtcbiAgICAgICAgdGhpcy51cmwgPSBhZGRyZXNzO1xuICAgICAgICB0aGlzLmNsb3NlID0gb3B0aW9ucy5jbG9zZTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1SZWFsdGltZUNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiVlNOIiwiQ0hBTk5FTF9FVkVOVFMiLCJUUkFOU1BPUlRTIiwiU09DS0VUX1NUQVRFUyIsIkRFRkFVTFRfVElNRU9VVCIsIldTX0NMT1NFX05PUk1BTCIsIkRFRkFVTFRfSEVBREVSUyIsIkNPTk5FQ1RJT05fU1RBVEUiLCJUaW1lciIsIlNlcmlhbGl6ZXIiLCJSZWFsdGltZUNoYW5uZWwiLCJub29wIiwiTkFUSVZFX1dFQlNPQ0tFVF9BVkFJTEFCTEUiLCJXZWJTb2NrZXQiLCJSZWFsdGltZUNsaWVudCIsImNvbnN0cnVjdG9yIiwiZW5kUG9pbnQiLCJvcHRpb25zIiwiX2EiLCJhY2Nlc3NUb2tlbiIsImFwaUtleSIsImNoYW5uZWxzIiwiaGVhZGVycyIsInBhcmFtcyIsInRpbWVvdXQiLCJoZWFydGJlYXRJbnRlcnZhbE1zIiwiaGVhcnRiZWF0VGltZXIiLCJ1bmRlZmluZWQiLCJwZW5kaW5nSGVhcnRiZWF0UmVmIiwicmVmIiwibG9nZ2VyIiwiY29ubiIsInNlbmRCdWZmZXIiLCJzZXJpYWxpemVyIiwic3RhdGVDaGFuZ2VDYWxsYmFja3MiLCJvcGVuIiwiY2xvc2UiLCJlcnJvciIsIm1lc3NhZ2UiLCJfcmVzb2x2ZUZldGNoIiwiY3VzdG9tRmV0Y2giLCJfZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJ0aGVuIiwiZGVmYXVsdCIsIndlYnNvY2tldCIsInRyYW5zcG9ydCIsIk9iamVjdCIsImFzc2lnbiIsImFwaWtleSIsInJlY29ubmVjdEFmdGVyTXMiLCJ0cmllcyIsImVuY29kZSIsInBheWxvYWQiLCJjYWxsYmFjayIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZWNvZGUiLCJiaW5kIiwicmVjb25uZWN0VGltZXIiLCJkaXNjb25uZWN0IiwiY29ubmVjdCIsIl9lbmRQb2ludFVSTCIsInNldHVwQ29ubmVjdGlvbiIsIldTV2ViU29ja2V0RHVtbXkiLCJXUyIsImNvZGUiLCJyZWFzb24iLCJvbmNsb3NlIiwiY2xlYXJJbnRlcnZhbCIsInJlc2V0IiwiZ2V0Q2hhbm5lbHMiLCJyZW1vdmVDaGFubmVsIiwiY2hhbm5lbCIsInN0YXR1cyIsInVuc3Vic2NyaWJlIiwibGVuZ3RoIiwicmVtb3ZlQWxsQ2hhbm5lbHMiLCJ2YWx1ZXNfMSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJsb2ciLCJraW5kIiwibXNnIiwiZGF0YSIsImNvbm5lY3Rpb25TdGF0ZSIsInJlYWR5U3RhdGUiLCJjb25uZWN0aW5nIiwiQ29ubmVjdGluZyIsIk9wZW4iLCJjbG9zaW5nIiwiQ2xvc2luZyIsIkNsb3NlZCIsImlzQ29ubmVjdGVkIiwidG9waWMiLCJjb25maWciLCJjaGFuIiwicHVzaCIsImV2ZW50IiwicmVzdWx0Iiwic2VuZCIsInNldEF1dGgiLCJ0b2tlbiIsImZvckVhY2giLCJ1cGRhdGVKb2luUGF5bG9hZCIsImFjY2Vzc190b2tlbiIsImpvaW5lZE9uY2UiLCJfaXNKb2luZWQiLCJfcHVzaCIsIl9tYWtlUmVmIiwibmV3UmVmIiwidG9TdHJpbmciLCJfbGVhdmVPcGVuVG9waWMiLCJkdXBDaGFubmVsIiwiZmluZCIsImMiLCJfaXNKb2luaW5nIiwiX3JlbW92ZSIsImZpbHRlciIsIl9qb2luUmVmIiwiYmluYXJ5VHlwZSIsIm9ub3BlbiIsIl9vbkNvbm5PcGVuIiwib25lcnJvciIsIl9vbkNvbm5FcnJvciIsIm9ubWVzc2FnZSIsIl9vbkNvbm5NZXNzYWdlIiwiX29uQ29ubkNsb3NlIiwiX2FwcGVuZFBhcmFtcyIsInZzbiIsInJhd01lc3NhZ2UiLCJ0eXBlIiwiX2lzTWVtYmVyIiwiX3RyaWdnZXIiLCJfZmx1c2hTZW5kQnVmZmVyIiwic2V0SW50ZXJ2YWwiLCJfc2VuZEhlYXJ0YmVhdCIsIl90cmlnZ2VyQ2hhbkVycm9yIiwic2NoZWR1bGVUaW1lb3V0IiwidXJsIiwia2V5cyIsInByZWZpeCIsIm1hdGNoIiwicXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJhZGRyZXNzIiwiX3Byb3RvY29scyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: () => (/* binding */ REALTIME_PRESENCE_LISTEN_EVENTS),\n/* harmony export */ \"default\": () => (/* binding */ RealtimePresence)\n/* harmony export */ });\n/*\n This file draws heavily from https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/assets/js/phoenix/presence.js\n License: https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/LICENSE.md\n*/ var REALTIME_PRESENCE_LISTEN_EVENTS;\n(function(REALTIME_PRESENCE_LISTEN_EVENTS) {\n REALTIME_PRESENCE_LISTEN_EVENTS[\"SYNC\"] = \"sync\";\n REALTIME_PRESENCE_LISTEN_EVENTS[\"JOIN\"] = \"join\";\n REALTIME_PRESENCE_LISTEN_EVENTS[\"LEAVE\"] = \"leave\";\n})(REALTIME_PRESENCE_LISTEN_EVENTS || (REALTIME_PRESENCE_LISTEN_EVENTS = {}));\nclass RealtimePresence {\n /**\n * Initializes the Presence.\n *\n * @param channel - The RealtimeChannel\n * @param opts - The options,\n * for example `{events: {state: 'state', diff: 'diff'}}`\n */ constructor(channel, opts){\n this.channel = channel;\n this.state = {};\n this.pendingDiffs = [];\n this.joinRef = null;\n this.caller = {\n onJoin: ()=>{},\n onLeave: ()=>{},\n onSync: ()=>{}\n };\n const events = (opts === null || opts === void 0 ? void 0 : opts.events) || {\n state: \"presence_state\",\n diff: \"presence_diff\"\n };\n this.channel._on(events.state, {}, (newState)=>{\n const { onJoin, onLeave, onSync } = this.caller;\n this.joinRef = this.channel._joinRef();\n this.state = RealtimePresence.syncState(this.state, newState, onJoin, onLeave);\n this.pendingDiffs.forEach((diff)=>{\n this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\n });\n this.pendingDiffs = [];\n onSync();\n });\n this.channel._on(events.diff, {}, (diff)=>{\n const { onJoin, onLeave, onSync } = this.caller;\n if (this.inPendingSyncState()) {\n this.pendingDiffs.push(diff);\n } else {\n this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\n onSync();\n }\n });\n this.onJoin((key, currentPresences, newPresences)=>{\n this.channel._trigger(\"presence\", {\n event: \"join\",\n key,\n currentPresences,\n newPresences\n });\n });\n this.onLeave((key, currentPresences, leftPresences)=>{\n this.channel._trigger(\"presence\", {\n event: \"leave\",\n key,\n currentPresences,\n leftPresences\n });\n });\n this.onSync(()=>{\n this.channel._trigger(\"presence\", {\n event: \"sync\"\n });\n });\n }\n /**\n * Used to sync the list of presences on the server with the\n * client's state.\n *\n * An optional `onJoin` and `onLeave` callback can be provided to\n * react to changes in the client's local presences across\n * disconnects and reconnects with the server.\n *\n * @internal\n */ static syncState(currentState, newState, onJoin, onLeave) {\n const state = this.cloneDeep(currentState);\n const transformedState = this.transformState(newState);\n const joins = {};\n const leaves = {};\n this.map(state, (key, presences)=>{\n if (!transformedState[key]) {\n leaves[key] = presences;\n }\n });\n this.map(transformedState, (key, newPresences)=>{\n const currentPresences = state[key];\n if (currentPresences) {\n const newPresenceRefs = newPresences.map((m)=>m.presence_ref);\n const curPresenceRefs = currentPresences.map((m)=>m.presence_ref);\n const joinedPresences = newPresences.filter((m)=>curPresenceRefs.indexOf(m.presence_ref) < 0);\n const leftPresences = currentPresences.filter((m)=>newPresenceRefs.indexOf(m.presence_ref) < 0);\n if (joinedPresences.length > 0) {\n joins[key] = joinedPresences;\n }\n if (leftPresences.length > 0) {\n leaves[key] = leftPresences;\n }\n } else {\n joins[key] = newPresences;\n }\n });\n return this.syncDiff(state, {\n joins,\n leaves\n }, onJoin, onLeave);\n }\n /**\n * Used to sync a diff of presence join and leave events from the\n * server, as they happen.\n *\n * Like `syncState`, `syncDiff` accepts optional `onJoin` and\n * `onLeave` callbacks to react to a user joining or leaving from a\n * device.\n *\n * @internal\n */ static syncDiff(state, diff, onJoin, onLeave) {\n const { joins, leaves } = {\n joins: this.transformState(diff.joins),\n leaves: this.transformState(diff.leaves)\n };\n if (!onJoin) {\n onJoin = ()=>{};\n }\n if (!onLeave) {\n onLeave = ()=>{};\n }\n this.map(joins, (key, newPresences)=>{\n var _a;\n const currentPresences = (_a = state[key]) !== null && _a !== void 0 ? _a : [];\n state[key] = this.cloneDeep(newPresences);\n if (currentPresences.length > 0) {\n const joinedPresenceRefs = state[key].map((m)=>m.presence_ref);\n const curPresences = currentPresences.filter((m)=>joinedPresenceRefs.indexOf(m.presence_ref) < 0);\n state[key].unshift(...curPresences);\n }\n onJoin(key, currentPresences, newPresences);\n });\n this.map(leaves, (key, leftPresences)=>{\n let currentPresences = state[key];\n if (!currentPresences) return;\n const presenceRefsToRemove = leftPresences.map((m)=>m.presence_ref);\n currentPresences = currentPresences.filter((m)=>presenceRefsToRemove.indexOf(m.presence_ref) < 0);\n state[key] = currentPresences;\n onLeave(key, currentPresences, leftPresences);\n if (currentPresences.length === 0) delete state[key];\n });\n return state;\n }\n /** @internal */ static map(obj, func) {\n return Object.getOwnPropertyNames(obj).map((key)=>func(key, obj[key]));\n }\n /**\n * Remove 'metas' key\n * Change 'phx_ref' to 'presence_ref'\n * Remove 'phx_ref' and 'phx_ref_prev'\n *\n * @example\n * // returns {\n * abc123: [\n * { presence_ref: '2', user_id: 1 },\n * { presence_ref: '3', user_id: 2 }\n * ]\n * }\n * RealtimePresence.transformState({\n * abc123: {\n * metas: [\n * { phx_ref: '2', phx_ref_prev: '1' user_id: 1 },\n * { phx_ref: '3', user_id: 2 }\n * ]\n * }\n * })\n *\n * @internal\n */ static transformState(state) {\n state = this.cloneDeep(state);\n return Object.getOwnPropertyNames(state).reduce((newState, key)=>{\n const presences = state[key];\n if (\"metas\" in presences) {\n newState[key] = presences.metas.map((presence)=>{\n presence[\"presence_ref\"] = presence[\"phx_ref\"];\n delete presence[\"phx_ref\"];\n delete presence[\"phx_ref_prev\"];\n return presence;\n });\n } else {\n newState[key] = presences;\n }\n return newState;\n }, {});\n }\n /** @internal */ static cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n /** @internal */ onJoin(callback) {\n this.caller.onJoin = callback;\n }\n /** @internal */ onLeave(callback) {\n this.caller.onLeave = callback;\n }\n /** @internal */ onSync(callback) {\n this.caller.onSync = callback;\n }\n /** @internal */ inPendingSyncState() {\n return !this.joinRef || this.joinRef !== this.channel._joinRef();\n }\n} //# sourceMappingURL=RealtimePresence.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL1JlYWx0aW1lUHJlc2VuY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7O0FBR0EsR0FDTyxJQUFJQSxnQ0FBZ0M7QUFDMUMsVUFBVUEsK0JBQStCO0lBQ3RDQSwrQkFBK0IsQ0FBQyxPQUFPLEdBQUc7SUFDMUNBLCtCQUErQixDQUFDLE9BQU8sR0FBRztJQUMxQ0EsK0JBQStCLENBQUMsUUFBUSxHQUFHO0FBQy9DLEdBQUdBLG1DQUFvQ0EsQ0FBQUEsa0NBQWtDLENBQUM7QUFDM0QsTUFBTUM7SUFDakI7Ozs7OztLQU1DLEdBQ0RDLFlBQVlDLE9BQU8sRUFBRUMsSUFBSSxDQUFFO1FBQ3ZCLElBQUksQ0FBQ0QsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0UsS0FBSyxHQUFHLENBQUM7UUFDZCxJQUFJLENBQUNDLFlBQVksR0FBRyxFQUFFO1FBQ3RCLElBQUksQ0FBQ0MsT0FBTyxHQUFHO1FBQ2YsSUFBSSxDQUFDQyxNQUFNLEdBQUc7WUFDVkMsUUFBUSxLQUFRO1lBQ2hCQyxTQUFTLEtBQVE7WUFDakJDLFFBQVEsS0FBUTtRQUNwQjtRQUNBLE1BQU1DLFNBQVMsQ0FBQ1IsU0FBUyxRQUFRQSxTQUFTLEtBQUssSUFBSSxLQUFLLElBQUlBLEtBQUtRLE1BQU0sS0FBSztZQUN4RVAsT0FBTztZQUNQUSxNQUFNO1FBQ1Y7UUFDQSxJQUFJLENBQUNWLE9BQU8sQ0FBQ1csR0FBRyxDQUFDRixPQUFPUCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUNVO1lBQ2hDLE1BQU0sRUFBRU4sTUFBTSxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQ0gsTUFBTTtZQUMvQyxJQUFJLENBQUNELE9BQU8sR0FBRyxJQUFJLENBQUNKLE9BQU8sQ0FBQ2EsUUFBUTtZQUNwQyxJQUFJLENBQUNYLEtBQUssR0FBR0osaUJBQWlCZ0IsU0FBUyxDQUFDLElBQUksQ0FB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b0JBQy9CLE9BQU9BO2dCQUNYO1lBQ0osT0FDSztnQkFDRHhDLFFBQVEsQ0FBQ08sSUFBSSxHQUFHYTtZQUNwQjtZQUNBLE9BQU9wQjtRQUNYLEdBQUcsQ0FBQztJQUNSO0lBQ0EsY0FBYyxHQUNkLE9BQU9jLFVBQVVvQixHQUFHLEVBQUU7UUFDbEIsT0FBT08sS0FBS0MsS0FBSyxDQUFDRCxLQUFLRSxTQUFTLENBQUNUO0lBQ3JDO0lBQ0EsY0FBYyxHQUNkeEMsT0FBT2tELFFBQVEsRUFBRTtRQUNiLElBQUksQ0FBQ25ELE1BQU0sQ0FBQ0MsTUFBTSxHQUFHa0Q7SUFDekI7SUFDQSxjQUFjLEdBQ2RqRCxRQUFRaUQsUUFBUSxFQUFFO1FBQ2QsSUFBSSxDQUFDbkQsTUFBTSxDQUFDRSxPQUFPLEdBQUdpRDtJQUMxQjtJQUNBLGNBQWMsR0FDZGhELE9BQU9nRCxRQUFRLEVBQUU7UUFDYixJQUFJLENBQUNuRCxNQUFNLENBQUNHLE1BQU0sR0FBR2dEO0lBQ3pCO0lBQ0EsY0FBYyxHQUNkdkMscUJBQXFCO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUNiLE9BQU8sSUFBSSxJQUFJLENBQUNBLE9BQU8sS0FBSyxJQUFJLENBQUNKLE9BQU8sQ0FBQ2EsUUFBUTtJQUNsRTtBQUNKLEVBQ0EsNENBQTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9SZWFsdGltZVByZXNlbmNlLmpzP2NlYzMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgVGhpcyBmaWxlIGRyYXdzIGhlYXZpbHkgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peGZyYW1ld29yay9waG9lbml4L2Jsb2IvZDM0NGVjMGE3MzJhYjRlZTIwNDIxNWIzMWRlNjljZjRiZTcyZTNiZi9hc3NldHMvanMvcGhvZW5peC9wcmVzZW5jZS5qc1xuICBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peGZyYW1ld29yay9waG9lbml4L2Jsb2IvZDM0NGVjMGE3MzJhYjRlZTIwNDIxNWIzMWRlNjljZjRiZTcyZTNiZi9MSUNFTlNFLm1kXG4qL1xuZXhwb3J0IHZhciBSRUFMVElNRV9QUkVTRU5DRV9MSVNURU5fRVZFTlRTO1xuKGZ1bmN0aW9uIChSRUFMVElNRV9QUkVTRU5DRV9MSVNURU5fRVZFTlRTKSB7XG4gICAgUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UU1tcIlNZTkNcIl0gPSBcInN5bmNcIjtcbiAgICBSRUFMVElNRV9QUkVTRU5DRV9MSVNURU5fRVZFTlRTW1wiSk9JTlwiXSA9IFwiam9pblwiO1xuICAgIFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFNbXCJMRUFWRVwiXSA9IFwibGVhdmVcIjtcbn0pKFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFMgfHwgKFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFMgPSB7fSkpO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVhbHRpbWVQcmVzZW5jZSB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgdGhlIFByZXNlbmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNoYW5uZWwgLSBUaGUgUmVhbHRpbWVDaGFubmVsXG4gICAgICogQHBhcmFtIG9wdHMgLSBUaGUgb3B0aW9ucyxcbiAgICAgKiAgICAgICAgZm9yIGV4YW1wbGUgYHtldmVudHM6IHtzdGF0ZTogJ3N0YXRlJywgZGlmZjogJ2RpZmYnfX1gXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoY2hhbm5lbCwgb3B0cykge1xuICAgICAgICB0aGlzLmNoYW5uZWwgPSBjaGFubmVsO1xuICAgICAgICB0aGlzLnN0YXRlID0ge307XG4gICAgICAgIHRoaXMucGVuZGluZ0RpZmZzID0gW107XG4gICAgICAgIHRoaXMuam9pblJlZiA9IG51bGw7XG4gICAgICAgIHRoaXMuY2FsbGVyID0ge1xuICAgICAgICAgICAgb25Kb2luOiAoKSA9PiB7IH0sXG4gICAgICAgICAgICBvbkxlYXZlOiAoKSA9PiB7IH0sXG4gICAgICAgICAgICBvblN5bmM6ICgpID0+IHsgfSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gKG9wdHMgPT09IG51bGwgfHwgb3B0cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0cy5ldmVudHMpIHx8IHtcbiAgICAgICAgICAgIHN0YXRlOiAncHJlc2VuY2Vfc3RhdGUnLFxuICAgICAgICAgICAgZGlmZjogJ3ByZXNlbmNlX2RpZmYnLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNoYW5uZWwuX29uKGV2ZW50cy5zdGF0ZSwge30sIChuZXdTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBvbkpvaW4sIG9uTGVhdmUsIG9uU3luYyB9ID0gdGhpcy5jYWxsZXI7XG4gICAgICAgICAgICB0aGlzLmpvaW5SZWYgPSB0aGlzLmNoYW5uZWwuX2pvaW5SZWYoKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBSZWFsdGltZVByZXNlbmNlLnN5bmNTdGF0ZSh0aGlzLnN0YXRlLCBuZXdTdGF0ZSwgb25Kb2luLCBvbkxlYXZlKTtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0RpZmZzLmZvckVhY2goKGRpZmYpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gUmVhbHRpbWVQcmVzZW5jZS5zeW5jRGlmZih0aGlzLnN0YXRlLCBkaWZmLCBvbkpvaW4sIG9uTGVhdmUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdEaWZmcyA9IFtdO1xuICAgICAgICAgICAgb25TeW5jKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNoYW5uZWwuX29uKGV2ZW50cy5kaWZmLCB7fSwgKGRpZmYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgb25Kb2luLCBvbkxlYXZlLCBvblN5bmMgfSA9IHRoaXMuY2FsbGVyO1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5QZW5kaW5nU3luY1N0YXRlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdEaWZmcy5wdXNoKGRpZmYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFJlYWx0aW1lUHJlc2VuY2Uuc3luY0RpZmYodGhpcy5zdGF0ZSwgZGlmZiwgb25Kb2luLCBvbkxlYXZlKTtcbiAgICAgICAgICAgICAgICBvblN5bmMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25Kb2luKChrZXksIGN1cnJlbnRQcmVzZW5jZXMsIG5ld1ByZXNlbmNlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGFubmVsLl90cmlnZ2VyKCdwcmVzZW5jZScsIHtcbiAgICAgICAgICAgICAgICBldmVudDogJ2pvaW4nLFxuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBjdXJyZW50UHJlc2VuY2VzLFxuICAgICAgICAgICAgICAgIG5ld1ByZXNlbmNlcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkxlYXZlKChrZXksIGN1cnJlbnRQcmVzZW5jZXMsIGxlZnRQcmVzZW5jZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hhbm5lbC5fdHJpZ2dlcigncHJlc2VuY2UnLCB7XG4gICAgICAgICAgICAgICAgZXZlbnQ6ICdsZWF2ZScsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQcmVzZW5jZXMsXG4gICAgICAgICAgICAgICAgbGVmdFByZXNlbmNlcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vblN5bmMoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGFubmVsLl90cmlnZ2VyKCdwcmVzZW5jZScsIHsgZXZlbnQ6ICdzeW5jJyB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gc3luYyB0aGUgbGlzdCBvZiBwcmVzZW5jZXMgb24gdGhlIHNlcnZlciB3aXRoIHRoZVxuICAgICAqIGNsaWVudCdzIHN0YXRlLlxuICAgICAqXG4gICAgICogQW4gb3B0aW9uYWwgYG9uSm9pbmAgYW5kIGBvbkxlYXZlYCBjYWxsYmFjayBjYW4gYmUgcHJvdmlkZWQgdG9cbiAgICAgKiByZWFjdCB0byBjaGFuZ2VzIGluIHRoZSBjbGllbnQncyBsb2NhbCBwcmVzZW5jZXMgYWNyb3NzXG4gICAgICogZGlzY29ubmVjdHMgYW5kIHJlY29ubmVjdHMgd2l0aCB0aGUgc2VydmVyLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgc3RhdGljIHN5bmNTdGF0ZShjdXJyZW50U3RhdGUsIG5ld1N0YXRlLCBvbkpvaW4sIG9uTGVhdmUpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmNsb25lRGVlcChjdXJyZW50U3RhdGUpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFN0YXRlID0gdGhpcy50cmFuc2Zvcm1TdGF0ZShuZXdTdGF0ZSk7XG4gICAgICAgIGNvbnN0IGpvaW5zID0ge307XG4gICAgICAgIGNvbnN0IGxlYXZlcyA9IHt9O1xuICAgICAgICB0aGlzLm1hcChzdGF0ZSwgKGtleSwgcHJlc2VuY2VzKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRyYW5zZm9ybWVkU3RhdGVba2V5XSkge1xuICAgICAgICAgICAgICAgIGxlYXZlc1trZXldID0gcHJlc2VuY2VzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXAodHJhbnNmb3JtZWRTdGF0ZSwgKGtleSwgbmV3UHJlc2VuY2VzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UHJlc2VuY2VzID0gc3RhdGVba2V5XTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UHJlc2VuY2VzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UHJlc2VuY2VSZWZzID0gbmV3UHJlc2VuY2VzLm1hcCgobSkgPT4gbS5wcmVzZW5jZV9yZWYpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1clByZXNlbmNlUmVmcyA9IGN1cnJlbnRQcmVzZW5jZXMubWFwKChtKSA9PiBtLnByZXNlbmNlX3JlZik7XG4gICAgICAgICAgICAgICAgY29uc3Qgam9pbmVkUHJlc2VuY2VzID0gbmV3UHJlc2VuY2VzLmZpbHRlcigobSkgPT4gY3VyUHJlc2VuY2VSZWZzLmluZGV4T2YobS5wcmVzZW5jZV9yZWYpIDwgMCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdFByZXNlbmNlcyA9IGN1cnJlbnRQcmVzZW5jZXMuZmlsdGVyKChtKSA9PiBuZXdQcmVzZW5jZVJlZnMuaW5kZXhPZihtLnByZXNlbmNlX3JlZikgPCAwKTtcbiAgICAgICAgICAgICAgICBpZiAoam9pbmVkUHJlc2VuY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgam9pbnNba2V5XSA9IGpvaW5lZFByZXNlbmNlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlZnRQcmVzZW5jZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBsZWF2ZXNba2V5XSA9IGxlZnRQcmVzZW5jZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgam9pbnNba2V5XSA9IG5ld1ByZXNlbmNlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLnN5bmNEaWZmKHN0YXRlLCB7IGpvaW5zLCBsZWF2ZXMgfSwgb25Kb2luLCBvbkxlYXZlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXNlZCB0byBzeW5jIGEgZGlmZiBvZiBwcmVzZW5jZSBqb2luIGFuZCBsZWF2ZSBldmVudHMgZnJvbSB0aGVcbiAgICAgKiBzZXJ2ZXIsIGFzIHRoZXkgaGFwcGVuLlxuICAgICAqXG4gICAgICogTGlrZSBgc3luY1N0YXRlYCwgYHN5bmNEaWZmYCBhY2NlcHRzIG9wdGlvbmFsIGBvbkpvaW5gIGFuZFxuICAgICAqIGBvbkxlYXZlYCBjYWxsYmFja3MgdG8gcmVhY3QgdG8gYSB1c2VyIGpvaW5pbmcgb3IgbGVhdmluZyBmcm9tIGFcbiAgICAgKiBkZXZpY2UuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBzdGF0aWMgc3luY0RpZmYoc3RhdGUsIGRpZmYsIG9uSm9pbiwgb25MZWF2ZSkge1xuICAgICAgICBjb25zdCB7IGpvaW5zLCBsZWF2ZXMgfSA9IHtcbiAgICAgICAgICAgIGpvaW5zOiB0aGlzLnRyYW5zZm9ybVN0YXRlKGRpZmYuam9pbnMpLFxuICAgICAgICAgICAgbGVhdmVzOiB0aGlzLnRyYW5zZm9ybVN0YXRlKGRpZmYubGVhdmVzKSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFvbkpvaW4pIHtcbiAgICAgICAgICAgIG9uSm9pbiA9ICgpID0+IHsgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9uTGVhdmUpIHtcbiAgICAgICAgICAgIG9uTGVhdmUgPSAoKSA9PiB7IH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tYXAoam9pbnMsIChrZXksIG5ld1ByZXNlbmNlcykgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFByZXNlbmNlcyA9IChfYSA9IHN0YXRlW2tleV0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFtdO1xuICAgICAgICAgICAgc3RhdGVba2V5XSA9IHRoaXMuY2xvbmVEZWVwKG5ld1ByZXNlbmNlcyk7XG4gICAgICAgICAgICBpZiAoY3VycmVudFByZXNlbmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgam9pbmVkUHJlc2VuY2VSZWZzID0gc3RhdGVba2V5XS5tYXAoKG0pID0+IG0ucHJlc2VuY2VfcmVmKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJQcmVzZW5jZXMgPSBjdXJyZW50UHJlc2VuY2VzLmZpbHRlcigobSkgPT4gam9pbmVkUHJlc2VuY2VSZWZzLmluZGV4T2YobS5wcmVzZW5jZV9yZWYpIDwgMCk7XG4gICAgICAgICAgICAgICAgc3RhdGVba2V5XS51bnNoaWZ0KC4uLmN1clByZXNlbmNlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkpvaW4oa2V5LCBjdXJyZW50UHJlc2VuY2VzLCBuZXdQcmVzZW5jZXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXAobGVhdmVzLCAoa2V5LCBsZWZ0UHJlc2VuY2VzKSA9PiB7XG4gICAgICAgICAgICBsZXQgY3VycmVudFByZXNlbmNlcyA9IHN0YXRlW2tleV07XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRQcmVzZW5jZXMpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgcHJlc2VuY2VSZWZzVG9SZW1vdmUgPSBsZWZ0UHJlc2VuY2VzLm1hcCgobSkgPT4gbS5wcmVzZW5jZV9yZWYpO1xuICAgICAgICAgICAgY3VycmVudFByZXNlbmNlcyA9IGN1cnJlbnRQcmVzZW5jZXMuZmlsdGVyKChtKSA9PiBwcmVzZW5jZVJlZnNUb1JlbW92ZS5pbmRleE9mKG0ucHJlc2VuY2VfcmVmKSA8IDApO1xuICAgICAgICAgICAgc3RhdGVba2V5XSA9IGN1cnJlbnRQcmVzZW5jZXM7XG4gICAgICAgICAgICBvbkxlYXZlKGtleSwgY3VycmVudFByZXNlbmNlcywgbGVmdFByZXNlbmNlcyk7XG4gICAgICAgICAgICBpZiAoY3VycmVudFByZXNlbmNlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICAgICAgZGVsZXRlIHN0YXRlW2tleV07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBzdGF0aWMgbWFwKG9iaiwgZnVuYykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5tYXAoKGtleSkgPT4gZnVuYyhrZXksIG9ialtrZXldKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlbW92ZSAnbWV0YXMnIGtleVxuICAgICAqIENoYW5nZSAncGh4X3JlZicgdG8gJ3ByZXNlbmNlX3JlZidcbiAgICAgKiBSZW1vdmUgJ3BoeF9yZWYnIGFuZCAncGh4X3JlZl9wcmV2J1xuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiAvLyByZXR1cm5zIHtcbiAgICAgKiAgYWJjMTIzOiBbXG4gICAgICogICAgeyBwcmVzZW5jZV9yZWY6ICcyJywgdXNlcl9pZDogMSB9LFxuICAgICAqICAgIHsgcHJlc2VuY2VfcmVmOiAnMycsIHVzZXJfaWQ6IDIgfVxuICAgICAqICBdXG4gICAgICogfVxuICAgICAqIFJlYWx0aW1lUHJlc2VuY2UudHJhbnNmb3JtU3RhdGUoe1xuICAgICAqICBhYmMxMjM6IHtcbiAgICAgKiAgICBtZXRhczogW1xuICAgICAqICAgICAgeyBwaHhfcmVmOiAnMicsIHBoeF9yZWZfcHJldjogJzEnIHVzZXJfaWQ6IDEgfSxcbiAgICAgKiAgICAgIHsgcGh4X3JlZjogJzMnLCB1c2VyX2lkOiAyIH1cbiAgICAgKiAgICBdXG4gICAgICogIH1cbiAgICAgKiB9KVxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgc3RhdGljIHRyYW5zZm9ybVN0YXRlKHN0YXRlKSB7XG4gICAgICAgIHN0YXRlID0gdGhpcy5jbG9uZURlZXAoc3RhdGUpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc3RhdGUpLnJlZHVjZSgobmV3U3RhdGUsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlc2VuY2VzID0gc3RhdGVba2V5XTtcbiAgICAgICAgICAgIGlmICgnbWV0YXMnIGluIHByZXNlbmNlcykge1xuICAgICAgICAgICAgICAgIG5ld1N0YXRlW2tleV0gPSBwcmVzZW5jZXMubWV0YXMubWFwKChwcmVzZW5jZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBwcmVzZW5jZVsncHJlc2VuY2VfcmVmJ10gPSBwcmVzZW5jZVsncGh4X3JlZiddO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcHJlc2VuY2VbJ3BoeF9yZWYnXTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHByZXNlbmNlWydwaHhfcmVmX3ByZXYnXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXNlbmNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3U3RhdGVba2V5XSA9IHByZXNlbmNlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgICAgfSwge30pO1xuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgc3RhdGljIGNsb25lRGVlcChvYmopIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSk7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBvbkpvaW4oY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5jYWxsZXIub25Kb2luID0gY2FsbGJhY2s7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBvbkxlYXZlKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuY2FsbGVyLm9uTGVhdmUgPSBjYWxsYmFjaztcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uU3luYyhjYWxsYmFjaykge1xuICAgICAgICB0aGlzLmNhbGxlci5vblN5bmMgPSBjYWxsYmFjaztcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIGluUGVuZGluZ1N5bmNTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmpvaW5SZWYgfHwgdGhpcy5qb2luUmVmICE9PSB0aGlzLmNoYW5uZWwuX2pvaW5SZWYoKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1SZWFsdGltZVByZXNlbmNlLmpzLm1hcCJdLCJuYW1lcyI6WyJSRUFMVElNRV9QUkVTRU5DRV9MSVNURU5fRVZFTlRTIiwiUmVhbHRpbWVQcmVzZW5jZSIsImNvbnN0cnVjdG9yIiwiY2hhbm5lbCIsIm9wdHMiLCJzdGF0ZSIsInBlbmRpbmdEaWZmcyIsImpvaW5SZWYiLCJjYWxsZXIiLCJvbkpvaW4iLCJvbkxlYXZlIiwib25TeW5jIiwiZXZlbnRzIiwiZGlmZiIsIl9vbiIsIm5ld1N0YXRlIiwiX2pvaW5SZWYiLCJzeW5jU3RhdGUiLCJmb3JFYWNoIiwic3luY0RpZmYiLCJpblBlbmRpbmdTeW5jU3RhdGUiLCJwdXNoIiwia2V5IiwiY3VycmVudFByZXNlbmNlcyIsIm5ld1ByZXNlbmNlcyIsIl90cmlnZ2VyIiwiZXZlbnQiLCJsZWZ0UHJlc2VuY2VzIiwiY3VycmVudFN0YXRlIiwiY2xvbmVEZWVwIiwidHJhbnNmb3JtZWRTdGF0ZSIsInRyYW5zZm9ybVN0YXRlIiwiam9pbnMiLCJsZWF2ZXMiLCJtYXAiLCJwcmVzZW5jZXMiLCJuZXdQcmVzZW5jZVJlZnMiLCJtIiwicHJlc2VuY2VfcmVmIiwiY3VyUHJlc2VuY2VSZWZzIiwiam9pbmVkUHJlc2VuY2VzIiwiZmlsdGVyIiwiaW5kZXhPZiIsImxlbmd0aCIsIl9hIiwiam9pbmVkUHJlc2VuY2VSZWZzIiwiY3VyUHJlc2VuY2VzIiwidW5zaGlmdCIsInByZXNlbmNlUmVmc1RvUmVtb3ZlIiwib2JqIiwiZnVuYyIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJyZWR1Y2UiLCJtZXRhcyIsInByZXNlbmNlIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiY2FsbGJhY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_CHANNEL_STATES: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_CHANNEL_STATES),\n/* harmony export */ REALTIME_LISTEN_TYPES: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_LISTEN_TYPES),\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT),\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: () => (/* reexport safe */ _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__.REALTIME_PRESENCE_LISTEN_EVENTS),\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_SUBSCRIBE_STATES),\n/* harmony export */ RealtimeChannel: () => (/* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ RealtimeClient: () => (/* reexport safe */ _RealtimeClient__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ RealtimePresence: () => (/* reexport safe */ _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _RealtimeClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RealtimeClient */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js\");\n/* harmony import */ var _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RealtimeChannel */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\");\n/* harmony import */ var _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RealtimePresence */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\");\n\n\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQThDO0FBQzBIO0FBQ2hGO0FBQzBILENBQ2xOLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvaW5kZXguanM/NTU1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhbHRpbWVDbGllbnQgZnJvbSAnLi9SZWFsdGltZUNsaWVudCc7XG5pbXBvcnQgUmVhbHRpbWVDaGFubmVsLCB7IFJFQUxUSU1FX0xJU1RFTl9UWVBFUywgUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlQsIFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMsIFJFQUxUSU1FX0NIQU5ORUxfU1RBVEVTLCB9IGZyb20gJy4vUmVhbHRpbWVDaGFubmVsJztcbmltcG9ydCBSZWFsdGltZVByZXNlbmNlLCB7IFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFMsIH0gZnJvbSAnLi9SZWFsdGltZVByZXNlbmNlJztcbmV4cG9ydCB7IFJlYWx0aW1lUHJlc2VuY2UsIFJlYWx0aW1lQ2hhbm5lbCwgUmVhbHRpbWVDbGllbnQsIFJFQUxUSU1FX0xJU1RFTl9UWVBFUywgUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlQsIFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFMsIFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMsIFJFQUxUSU1FX0NIQU5ORUxfU1RBVEVTLCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIlJlYWx0aW1lQ2xpZW50IiwiUmVhbHRpbWVDaGFubmVsIiwiUkVBTFRJTUVfTElTVEVOX1RZUEVTIiwiUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlQiLCJSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTIiwiUkVBTFRJTUVfQ0hBTk5FTF9TVEFURVMiLCJSZWFsdGltZVByZXNlbmNlIiwiUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/index.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/constants.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CHANNEL_EVENTS: () => (/* binding */ CHANNEL_EVENTS),\n/* harmony export */ CHANNEL_STATES: () => (/* binding */ CHANNEL_STATES),\n/* harmony export */ CONNECTION_STATE: () => (/* binding */ CONNECTION_STATE),\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS),\n/* harmony export */ DEFAULT_TIMEOUT: () => (/* binding */ DEFAULT_TIMEOUT),\n/* harmony export */ SOCKET_STATES: () => (/* binding */ SOCKET_STATES),\n/* harmony export */ TRANSPORTS: () => (/* binding */ TRANSPORTS),\n/* harmony export */ VSN: () => (/* binding */ VSN),\n/* harmony export */ WS_CLOSE_NORMAL: () => (/* binding */ WS_CLOSE_NORMAL)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js\");\n\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `realtime-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n};\nconst VSN = \"1.0.0\";\nconst DEFAULT_TIMEOUT = 10000;\nconst WS_CLOSE_NORMAL = 1000;\nvar SOCKET_STATES;\n(function(SOCKET_STATES) {\n SOCKET_STATES[SOCKET_STATES[\"connecting\"] = 0] = \"connecting\";\n SOCKET_STATES[SOCKET_STATES[\"open\"] = 1] = \"open\";\n SOCKET_STATES[SOCKET_STATES[\"closing\"] = 2] = \"closing\";\n SOCKET_STATES[SOCKET_STATES[\"closed\"] = 3] = \"closed\";\n})(SOCKET_STATES || (SOCKET_STATES = {}));\nvar CHANNEL_STATES;\n(function(CHANNEL_STATES) {\n CHANNEL_STATES[\"closed\"] = \"closed\";\n CHANNEL_STATES[\"errored\"] = \"errored\";\n CHANNEL_STATES[\"joined\"] = \"joined\";\n CHANNEL_STATES[\"joining\"] = \"joining\";\n CHANNEL_STATES[\"leaving\"] = \"leaving\";\n})(CHANNEL_STATES || (CHANNEL_STATES = {}));\nvar CHANNEL_EVENTS;\n(function(CHANNEL_EVENTS) {\n CHANNEL_EVENTS[\"close\"] = \"phx_close\";\n CHANNEL_EVENTS[\"error\"] = \"phx_error\";\n CHANNEL_EVENTS[\"join\"] = \"phx_join\";\n CHANNEL_EVENTS[\"reply\"] = \"phx_reply\";\n CHANNEL_EVENTS[\"leave\"] = \"phx_leave\";\n CHANNEL_EVENTS[\"access_token\"] = \"access_token\";\n})(CHANNEL_EVENTS || (CHANNEL_EVENTS = {}));\nvar TRANSPORTS;\n(function(TRANSPORTS) {\n TRANSPORTS[\"websocket\"] = \"websocket\";\n})(TRANSPORTS || (TRANSPORTS = {}));\nvar CONNECTION_STATE;\n(function(CONNECTION_STATE) {\n CONNECTION_STATE[\"Connecting\"] = \"connecting\";\n CONNECTION_STATE[\"Open\"] = \"open\";\n CONNECTION_STATE[\"Closing\"] = \"closing\";\n CONNECTION_STATE[\"Closed\"] = \"closed\";\n})(CONNECTION_STATE || (CONNECTION_STATE = {})); //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFvQztBQUM3QixNQUFNQyxrQkFBa0I7SUFBRSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUVELDZDQUFPQSxDQUFDLENBQUM7QUFBQyxFQUFFO0FBQ3RFLE1BQU1FLE1BQU0sUUFBUTtBQUNwQixNQUFNQyxrQkFBa0IsTUFBTTtBQUM5QixNQUFNQyxrQkFBa0IsS0FBSztBQUM3QixJQUFJQyxjQUFjO0FBQ3hCLFVBQVVBLGFBQWE7SUFDcEJBLGFBQWEsQ0FBQ0EsYUFBYSxDQUFDLGFBQWEsR0FBRyxFQUFFLEdBQUc7SUFDakRBLGFBQWEsQ0FBQ0EsYUFBYSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUc7SUFDM0NBLGFBQWEsQ0FBQ0EsYUFBYSxDQUFDLFVBQVUsR0FBRyxFQUFFLEdBQUc7SUFDOUNBLGFBQWEsQ0FBQ0EsYUFBYSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdBQUc7QUFDakQsR0FBR0EsaUJBQWtCQSxDQUFBQSxnQkFBZ0IsQ0FBQztBQUMvQixJQUFJQyxlQUFlO0FBQ3pCLFVBQVVBLGNBQWM7SUFDckJBLGNBQWMsQ0FBQyxTQUFTLEdBQUc7SUFDM0JBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7SUFDNUJBLGNBQWMsQ0FBQyxTQUFTLEdBQUc7SUFDM0JBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7SUFDNUJBLGNBQWMsQ0FBQyxVQUFVLEdBQUc7QUFDaEMsR0FBR0Esa0JBQW1CQSxDQUFBQSxpQkFBaUIsQ0FBQztBQUNqQyxJQUFJQyxlQUFlO0FBQ3pCLFVBQVVBLGNBQWM7SUFDckJBLGNBQWMsQ0FBQyxRQUFRLEdBQUc7SUFDMUJBLGNBQWMsQ0FBQyxRQUFRLEdBQUc7SUFDMUJBLGNBQWMsQ0FBQyxPQUFPLEdBQUc7SUFDekJBLGNBQWMsQ0FBQyxRQUFRLEdBQUc7SUFDMUJBLGNBQWMsQ0FBQyxRQUFRLEdBQUc7SUFDMUJBLGNBQWMsQ0FBQyxlQUFlLEdBQUc7QUFDckMsR0FBR0Esa0JBQW1CQSxDQUFBQSxpQkFBaUIsQ0FBQztBQUNqQyxJQUFJQyxXQUFXO0FBQ3JCLFVBQVVBLFVBQVU7SUFDakJBLFVBQVUsQ0FBQyxZQUFZLEdBQUc7QUFDOUIsR0FBR0EsY0FBZUEsQ0FBQUEsYUFBYSxDQUFDO0FBQ3pCLElBQUlDLGlCQUFpQjtBQUMzQixVQUFVQSxnQkFBZ0I7SUFDdkJBLGdCQUFnQixDQUFDLGFBQWEsR0FBRztJQUNqQ0EsZ0JBQWdCLENBQUMsT0FBTyxHQUFHO0lBQzNCQSxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUc7SUFDOUJBLGdCQUFnQixDQUFDLFNBQVMsR0FBRztBQUNqQyxHQUFHQSxvQkFBcUJBLENBQUFBLG1CQUFtQixDQUFDLEtBQzVDLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL2NvbnN0YW50cy5qcz9hYzEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24nO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVBREVSUyA9IHsgJ1gtQ2xpZW50LUluZm8nOiBgcmVhbHRpbWUtanMvJHt2ZXJzaW9ufWAgfTtcbmV4cG9ydCBjb25zdCBWU04gPSAnMS4wLjAnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRU9VVCA9IDEwMDAwO1xuZXhwb3J0IGNvbnN0IFdTX0NMT1NFX05PUk1BTCA9IDEwMDA7XG5leHBvcnQgdmFyIFNPQ0tFVF9TVEFURVM7XG4oZnVuY3Rpb24gKFNPQ0tFVF9TVEFURVMpIHtcbiAgICBTT0NLRVRfU1RBVEVTW1NPQ0tFVF9TVEFURVNbXCJjb25uZWN0aW5nXCJdID0gMF0gPSBcImNvbm5lY3RpbmdcIjtcbiAgICBTT0NLRVRfU1RBVEVTW1NPQ0tFVF9TVEFURVNbXCJvcGVuXCJdID0gMV0gPSBcIm9wZW5cIjtcbiAgICBTT0NLRVRfU1RBVEVTW1NPQ0tFVF9TVEFURVNbXCJjbG9zaW5nXCJdID0gMl0gPSBcImNsb3NpbmdcIjtcbiAgICBTT0NLRVRfU1RBVEVTW1NPQ0tFVF9TVEFURVNbXCJjbG9zZWRcIl0gPSAzXSA9IFwiY2xvc2VkXCI7XG59KShTT0NLRVRfU1RBVEVTIHx8IChTT0NLRVRfU1RBVEVTID0ge30pKTtcbmV4cG9ydCB2YXIgQ0hBTk5FTF9TVEFURVM7XG4oZnVuY3Rpb24gKENIQU5ORUxfU1RBVEVTKSB7XG4gICAgQ0hBTk5FTF9TVEFURVNbXCJjbG9zZWRcIl0gPSBcImNsb3NlZFwiO1xuICAgIENIQU5ORUxfU1RBVEVTW1wiZXJyb3JlZFwiXSA9IFwiZXJyb3JlZFwiO1xuICAgIENIQU5ORUxfU1RBVEVTW1wiam9pbmVkXCJdID0gXCJqb2luZWRcIjtcbiAgICBDSEFOTkVMX1NUQVRFU1tcImpvaW5pbmdcIl0gPSBcImpvaW5pbmdcIjtcbiAgICBDSEFOTkVMX1NUQVRFU1tcImxlYXZpbmdcIl0gPSBcImxlYXZpbmdcIjtcbn0pKENIQU5ORUxfU1RBVEVTIHx8IChDSEFOTkVMX1NUQVRFUyA9IHt9KSk7XG5leHBvcnQgdmFyIENIQU5ORUxfRVZFTlRTO1xuKGZ1bmN0aW9uIChDSEFOTkVMX0VWRU5UUykge1xuICAgIENIQU5ORUxfRVZFTlRTW1wiY2xvc2VcIl0gPSBcInBoeF9jbG9zZVwiO1xuICAgIENIQU5ORUxfRVZFTlRTW1wiZXJyb3JcIl0gPSBcInBoeF9lcnJvclwiO1xuICAgIENIQU5ORUxfRVZFTlRTW1wiam9pblwiXSA9IFwicGh4X2pvaW5cIjtcbiAgICBDSEFOTkVMX0VWRU5UU1tcInJlcGx5XCJdID0gXCJwaHhfcmVwbHlcIjtcbiAgICBDSEFOTkVMX0VWRU5UU1tcImxlYXZlXCJdID0gXCJwaHhfbGVhdmVcIjtcbiAgICBDSEFOTkVMX0VWRU5UU1tcImFjY2Vzc190b2tlblwiXSA9IFwiYWNjZXNzX3Rva2VuXCI7XG59KShDSEFOTkVMX0VWRU5UUyB8fCAoQ0hBTk5FTF9FVkVOVFMgPSB7fSkpO1xuZXhwb3J0IHZhciBUUkFOU1BPUlRTO1xuKGZ1bmN0aW9uIChUUkFOU1BPUlRTKSB7XG4gICAgVFJBTlNQT1JUU1tcIndlYnNvY2tldFwiXSA9IFwid2Vic29ja2V0XCI7XG59KShUUkFOU1BPUlRTIHx8IChUUkFOU1BPUlRTID0ge30pKTtcbmV4cG9ydCB2YXIgQ09OTkVDVElPTl9TVEFURTtcbihmdW5jdGlvbiAoQ09OTkVDVElPTl9TVEFURSkge1xuICAgIENPTk5FQ1RJT05fU1RBVEVbXCJDb25uZWN0aW5nXCJdID0gXCJjb25uZWN0aW5nXCI7XG4gICAgQ09OTkVDVElPTl9TVEFURVtcIk9wZW5cIl0gPSBcIm9wZW5cIjtcbiAgICBDT05ORUNUSU9OX1NUQVRFW1wiQ2xvc2luZ1wiXSA9IFwiY2xvc2luZ1wiO1xuICAgIENPTk5FQ1RJT05fU1RBVEVbXCJDbG9zZWRcIl0gPSBcImNsb3NlZFwiO1xufSkoQ09OTkVDVElPTl9TVEFURSB8fCAoQ09OTkVDVElPTl9TVEFURSA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iLCJERUZBVUxUX0hFQURFUlMiLCJWU04iLCJERUZBVUxUX1RJTUVPVVQiLCJXU19DTE9TRV9OT1JNQUwiLCJTT0NLRVRfU1RBVEVTIiwiQ0hBTk5FTF9TVEFURVMiLCJDSEFOTkVMX0VWRU5UUyIsIlRSQU5TUE9SVFMiLCJDT05ORUNUSU9OX1NUQVRFIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/push.js ***! + \********************************************************************/ +/***/ ((__unused_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 */ Push)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/constants */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n\nclass Push {\n /**\n * Initializes the Push\n *\n * @param channel The Channel\n * @param event The event, for example `\"phx_join\"`\n * @param payload The payload, for example `{user_id: 123}`\n * @param timeout The push timeout in milliseconds\n */ constructor(channel, event, payload = {}, timeout = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_TIMEOUT){\n this.channel = channel;\n this.event = event;\n this.payload = payload;\n this.timeout = timeout;\n this.sent = false;\n this.timeoutTimer = undefined;\n this.ref = \"\";\n this.receivedResp = null;\n this.recHooks = [];\n this.refEvent = null;\n }\n resend(timeout) {\n this.timeout = timeout;\n this._cancelRefEvent();\n this.ref = \"\";\n this.refEvent = null;\n this.receivedResp = null;\n this.sent = false;\n this.send();\n }\n send() {\n if (this._hasReceived(\"timeout\")) {\n return;\n }\n this.startTimeout();\n this.sent = true;\n this.channel.socket.push({\n topic: this.channel.topic,\n event: this.event,\n payload: this.payload,\n ref: this.ref,\n join_ref: this.channel._joinRef()\n });\n }\n updatePayload(payload) {\n this.payload = Object.assign(Object.assign({}, this.payload), payload);\n }\n receive(status, callback) {\n var _a;\n if (this._hasReceived(status)) {\n callback((_a = this.receivedResp) === null || _a === void 0 ? void 0 : _a.response);\n }\n this.recHooks.push({\n status,\n callback\n });\n return this;\n }\n startTimeout() {\n if (this.timeoutTimer) {\n return;\n }\n this.ref = this.channel.socket._makeRef();\n this.refEvent = this.channel._replyEventName(this.ref);\n const callback = (payload)=>{\n this._cancelRefEvent();\n this._cancelTimeout();\n this.receivedResp = payload;\n this._matchReceive(payload);\n };\n this.channel._on(this.refEvent, {}, callback);\n this.timeoutTimer = setTimeout(()=>{\n this.trigger(\"timeout\", {});\n }, this.timeout);\n }\n trigger(status, response) {\n if (this.refEvent) this.channel._trigger(this.refEvent, {\n status,\n response\n });\n }\n destroy() {\n this._cancelRefEvent();\n this._cancelTimeout();\n }\n _cancelRefEvent() {\n if (!this.refEvent) {\n return;\n }\n this.channel._off(this.refEvent, {});\n }\n _cancelTimeout() {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = undefined;\n }\n _matchReceive({ status, response }) {\n this.recHooks.filter((h)=>h.status === status).forEach((h)=>h.callback(response));\n }\n _hasReceived(status) {\n return this.receivedResp && this.receivedResp.status === status;\n }\n} //# sourceMappingURL=push.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi9wdXNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1EO0FBQ3BDLE1BQU1DO0lBQ2pCOzs7Ozs7O0tBT0MsR0FDREMsWUFBWUMsT0FBTyxFQUFFQyxLQUFLLEVBQUVDLFVBQVUsQ0FBQyxDQUFDLEVBQUVDLFVBQVVOLDJEQUFlLENBQUU7UUFDakUsSUFBSSxDQUFDRyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNDLFlBQVksR0FBR0M7UUFDcEIsSUFBSSxDQUFDQyxHQUFHLEdBQUc7UUFDWCxJQUFJLENBQUNDLFlBQVksR0FBRztRQUNwQixJQUFJLENBQUNDLFFBQVEsR0FBRyxFQUFFO1FBQ2xCLElBQUksQ0FBQ0MsUUFBUSxHQUFHO0lBQ3BCO0lBQ0FDLE9BQU9SLE9BQU8sRUFBRTtRQUNaLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ1MsZUFBZTtRQUNwQixJQUFJLENBQUNMLEdBQUcsR0FBRztRQUNYLElBQUksQ0FBQ0csUUFBUSxHQUFHO1FBQ2hCLElBQUksQ0FBQ0YsWUFBWSxHQUFHO1FBQ3BCLElBQUksQ0FBQ0osSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDUyxJQUFJO0lBQ2I7SUFDQUEsT0FBTztRQUNILElBQUksSUFBSSxDQUFDQyxZQUFZLENBQUMsWUFBWTtZQUM5QjtRQUNKO1FBQ0EsSUFBSSxDQUFDQyxZQUFZO1FBQ2pCLElBQUksQ0FBQ1gsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDSixPQUFPLENBQUNnQixNQUFNLENBQUNDLElBQUksQ0FBQztZQUNyQkMsT0FBTyxJQUFJLENBQUNsQixPQUFPLENBQUNrQixLQUFLO1lBQ3pCakIsT0FBTyxJQUFJLENBQUNBLEtBQUs7WUFDakJDLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCSyxLQUFLLElBQUksQ0FBQ0EsR0FBRztZQUNiWSxVQUFVLElBQUksQ0FBQ25CLE9BQU8sQ0FBQ29CLFFBQVE7UUFDbkM7SUFDSjtJQUNBQyxjQUFjbkIsT0FBTyxFQUFFO1FBQ25CLElBQUksQ0FBQ0EsT0FBTyxHQUFHb0IsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQ3JCLE9BQU8sR0FBR0E7SUFDbEU7SUFDQXNCLFFBQVFDLE1BQU0sRUFBRUMsUUFBUSxFQUFFO1FBQ3RCLElBQUlDO1FBQ0osSUFBSSxJQUFJLENBQUNiLFlBQVksQ0FBQ1csU0FBUztZQUMzQkMsU0FBUyxDQUFDQyxLQUFLLElBQUksQ0FBQ25CLFlBQVksTUFBTSxRQUFRbUIsT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJQSxHQUFHQyxRQUFRO1FBQ3RGO1FBQ0EsSUFBSSxDQUFDbkIsUUFBUSxDQUFDUSxJQUFJLENBQUM7WUFBRVE7WUFBUUM7UUFBUztRQUN0QyxPQUFPLElBQUk7SUFDZjtJQUNBWCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUNWLFlBQVksRUFBRTtZQUNuQjtRQUNKO1FBQ0EsSUFBSSxDQUFDRSxHQUFHLEdBQUcsSUFBSSxDQUFDUCxPQUFPLENBQUNnQixNQUFNLENBQUNhLFFBQVE7UUFDdkMsSUFBSSxDQUFDbkIsUUFBUSxHQUFHLElBQUksQ0FBQ1YsT0FBTyxDQUFDOEIsZUFBZSxDQUFDLElBQUksQ0FBQ3ZCLEdBQUc7UUFDckQsTUFBTW1CLFdBQVcsQ0FBQ3hCO1lBQ2QsSUFBSSxDQUFDVSxlQUFlO1lBQ3BCLElBQUksQ0FBQ21CLGNBQWM7WUFDbkIsSUFBSSxDQUFDdkIsWUFBWSxHQUFHTjtZQUNwQixJQUFJLENBQUM4QixhQUFhLENBQUM5QjtRQUN2QjtRQUNBLElBQUksQ0FBQ0YsT0FBTyxDQUFDaUMsR0FBRyxDQUFDLElBQUksQ0FBQ3ZCLFFBQVEsRUFBRSxDQUFDLEdBQUdnQjtRQUNwQyxJQUFJLENBQUNyQixZQUFZLEdBQUc2QixXQUFXO1lBQzNCLElBQUksQ0FBQ0MsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM3QixHQUFHLElBQUksQ0FBQ2hDLE9BQU87SUFDbkI7SUFDQWdDLFFBQVFWLE1BQU0sRUFBRUcsUUFBUSxFQUFFO1FBQ3RCLElBQUksSUFBSSxDQUFDbEIsUUFBUSxFQUNiLElBQUksQ0FBQ1YsT0FBTyxDQUFDb0MsUUFBUSxDQUFDLElBQUksQ0FBQzFCLFFBQVEsRUFBRTtZQUFFZTtZQUFRRztRQUFTO0lBQ2hFO0lBQ0FTLFVBQVU7UUFDTixJQUFJLENBQUN6QixlQUFlO1FBQ3BCLElBQUksQ0FBQ21CLGNBQWM7SUFDdkI7SUFDQW5CLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUNGLFFBQVEsRUFBRTtZQUNoQjtRQUNKO1FBQ0EsSUFBSSxDQUFDVixPQUFPLENBQUNzQyxJQUFJLENBQUMsSUFBSSxDQUFDNUIsUUFBUSxFQUFFLENBQUM7SUFDdEM7SUFDQXFCLGlCQUFpQjtRQUNiUSxhQUFhLElBQUksQ0FBQ2xDLFlBQVk7UUFDOUIsSUFBSSxDQUFDQSxZQUFZLEdBQUdDO0lBQ3hCO0lBQ0EwQixjQUFjLEVBQUVQLE1BQU0sRUFBRUcsUUFBUSxFQUFHLEVBQUU7UUFDakMsSUFBSSxDQUFDbkIsUUFBUSxDQUNSK0IsTUFBTSxDQUFDLENBQUNDLElBQU1BLEVBQUVoQixNQUFNLEtBQUtBLFFBQzNCaUIsT0FBTyxDQUFDLENBQUNELElBQU1BLEVBQUVmLFFBQVEsQ0FBQ0U7SUFDbkM7SUFDQWQsYUFBYVcsTUFBTSxFQUFFO1FBQ2pCLE9BQU8sSUFBSSxDQUFDakIsWUFBWSxJQUFJLElBQUksQ0FBQ0EsWUFBWSxDQUFDaUIsTUFBTSxLQUFLQTtJQUM3RDtBQUNKLEVBQ0EsZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvcHVzaC5qcz80NDhmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfVElNRU9VVCB9IGZyb20gJy4uL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHVzaCB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgdGhlIFB1c2hcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFubmVsIFRoZSBDaGFubmVsXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCwgZm9yIGV4YW1wbGUgYFwicGh4X2pvaW5cImBcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCwgZm9yIGV4YW1wbGUgYHt1c2VyX2lkOiAxMjN9YFxuICAgICAqIEBwYXJhbSB0aW1lb3V0IFRoZSBwdXNoIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoY2hhbm5lbCwgZXZlbnQsIHBheWxvYWQgPSB7fSwgdGltZW91dCA9IERFRkFVTFRfVElNRU9VVCkge1xuICAgICAgICB0aGlzLmNoYW5uZWwgPSBjaGFubmVsO1xuICAgICAgICB0aGlzLmV2ZW50ID0gZXZlbnQ7XG4gICAgICAgIHRoaXMucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgICAgIHRoaXMudGltZW91dCA9IHRpbWVvdXQ7XG4gICAgICAgIHRoaXMuc2VudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRpbWVvdXRUaW1lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5yZWYgPSAnJztcbiAgICAgICAgdGhpcy5yZWNlaXZlZFJlc3AgPSBudWxsO1xuICAgICAgICB0aGlzLnJlY0hvb2tzID0gW107XG4gICAgICAgIHRoaXMucmVmRXZlbnQgPSBudWxsO1xuICAgIH1cbiAgICByZXNlbmQodGltZW91dCkge1xuICAgICAgICB0aGlzLnRpbWVvdXQgPSB0aW1lb3V0O1xuICAgICAgICB0aGlzLl9jYW5jZWxSZWZFdmVudCgpO1xuICAgICAgICB0aGlzLnJlZiA9ICcnO1xuICAgICAgICB0aGlzLnJlZkV2ZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWNlaXZlZFJlc3AgPSBudWxsO1xuICAgICAgICB0aGlzLnNlbnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZW5kKCk7XG4gICAgfVxuICAgIHNlbmQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9oYXNSZWNlaXZlZCgndGltZW91dCcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFydFRpbWVvdXQoKTtcbiAgICAgICAgdGhpcy5zZW50ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGFubmVsLnNvY2tldC5wdXNoKHtcbiAgICAgICAgICAgIHRvcGljOiB0aGlzLmNoYW5uZWwudG9waWMsXG4gICAgICAgICAgICBldmVudDogdGhpcy5ldmVudCxcbiAgICAgICAgICAgIHBheWxvYWQ6IHRoaXMucGF5bG9hZCxcbiAgICAgICAgICAgIHJlZjogdGhpcy5yZWYsXG4gICAgICAgICAgICBqb2luX3JlZjogdGhpcy5jaGFubmVsLl9qb2luUmVmKCksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB1cGRhdGVQYXlsb2FkKHBheWxvYWQpIHtcbiAgICAgICAgdGhpcy5wYXlsb2FkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBheWxvYWQpLCBwYXlsb2FkKTtcbiAgICB9XG4gICAgcmVjZWl2ZShzdGF0dXMsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMuX2hhc1JlY2VpdmVkKHN0YXR1cykpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKChfYSA9IHRoaXMucmVjZWl2ZWRSZXNwKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVjSG9va3MucHVzaCh7IHN0YXR1cywgY2FsbGJhY2sgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBzdGFydFRpbWVvdXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVvdXRUaW1lcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVmID0gdGhpcy5jaGFubmVsLnNvY2tldC5fbWFrZVJlZigpO1xuICAgICAgICB0aGlzLnJlZkV2ZW50ID0gdGhpcy5jaGFubmVsLl9yZXBseUV2ZW50TmFtZSh0aGlzLnJlZik7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrID0gKHBheWxvYWQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NhbmNlbFJlZkV2ZW50KCk7XG4gICAgICAgICAgICB0aGlzLl9jYW5jZWxUaW1lb3V0KCk7XG4gICAgICAgICAgICB0aGlzLnJlY2VpdmVkUmVzcCA9IHBheWxvYWQ7XG4gICAgICAgICAgICB0aGlzLl9tYXRjaFJlY2VpdmUocGF5bG9hZCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2hhbm5lbC5fb24odGhpcy5yZWZFdmVudCwge30sIGNhbGxiYWNrKTtcbiAgICAgICAgdGhpcy50aW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlcigndGltZW91dCcsIHt9KTtcbiAgICAgICAgfSwgdGhpcy50aW1lb3V0KTtcbiAgICB9XG4gICAgdHJpZ2dlcihzdGF0dXMsIHJlc3BvbnNlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlZkV2ZW50KVxuICAgICAgICAgICAgdGhpcy5jaGFubmVsLl90cmlnZ2VyKHRoaXMucmVmRXZlbnQsIHsgc3RhdHVzLCByZXNwb25zZSB9KTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fY2FuY2VsUmVmRXZlbnQoKTtcbiAgICAgICAgdGhpcy5fY2FuY2VsVGltZW91dCgpO1xuICAgIH1cbiAgICBfY2FuY2VsUmVmRXZlbnQoKSB7XG4gICAgICAgIGlmICghdGhpcy5yZWZFdmVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbm5lbC5fb2ZmKHRoaXMucmVmRXZlbnQsIHt9KTtcbiAgICB9XG4gICAgX2NhbmNlbFRpbWVvdXQoKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRUaW1lcik7XG4gICAgICAgIHRoaXMudGltZW91dFRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBfbWF0Y2hSZWNlaXZlKHsgc3RhdHVzLCByZXNwb25zZSwgfSkge1xuICAgICAgICB0aGlzLnJlY0hvb2tzXG4gICAgICAgICAgICAuZmlsdGVyKChoKSA9PiBoLnN0YXR1cyA9PT0gc3RhdHVzKVxuICAgICAgICAgICAgLmZvckVhY2goKGgpID0+IGguY2FsbGJhY2socmVzcG9uc2UpKTtcbiAgICB9XG4gICAgX2hhc1JlY2VpdmVkKHN0YXR1cykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWNlaXZlZFJlc3AgJiYgdGhpcy5yZWNlaXZlZFJlc3Auc3RhdHVzID09PSBzdGF0dXM7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHVzaC5qcy5tYXAiXSwibmFtZXMiOlsiREVGQVVMVF9USU1FT1VUIiwiUHVzaCIsImNvbnN0cnVjdG9yIiwiY2hhbm5lbCIsImV2ZW50IiwicGF5bG9hZCIsInRpbWVvdXQiLCJzZW50IiwidGltZW91dFRpbWVyIiwidW5kZWZpbmVkIiwicmVmIiwicmVjZWl2ZWRSZXNwIiwicmVjSG9va3MiLCJyZWZFdmVudCIsInJlc2VuZCIsIl9jYW5jZWxSZWZFdmVudCIsInNlbmQiLCJfaGFzUmVjZWl2ZWQiLCJzdGFydFRpbWVvdXQiLCJzb2NrZXQiLCJwdXNoIiwidG9waWMiLCJqb2luX3JlZiIsIl9qb2luUmVmIiwidXBkYXRlUGF5bG9hZCIsIk9iamVjdCIsImFzc2lnbiIsInJlY2VpdmUiLCJzdGF0dXMiLCJjYWxsYmFjayIsIl9hIiwicmVzcG9uc2UiLCJfbWFrZVJlZiIsIl9yZXBseUV2ZW50TmFtZSIsIl9jYW5jZWxUaW1lb3V0IiwiX21hdGNoUmVjZWl2ZSIsIl9vbiIsInNldFRpbWVvdXQiLCJ0cmlnZ2VyIiwiX3RyaWdnZXIiLCJkZXN0cm95IiwiX29mZiIsImNsZWFyVGltZW91dCIsImZpbHRlciIsImgiLCJmb3JFYWNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js ***! + \**************************************************************************/ +/***/ ((__unused_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 */ Serializer)\n/* harmony export */ });\n// This file draws heavily from https://github.com/phoenixframework/phoenix/commit/cf098e9cf7a44ee6479d31d911a97d3c7430c6fe\n// License: https://github.com/phoenixframework/phoenix/blob/master/LICENSE.md\nclass Serializer {\n constructor(){\n this.HEADER_LENGTH = 1;\n }\n decode(rawPayload, callback) {\n if (rawPayload.constructor === ArrayBuffer) {\n return callback(this._binaryDecode(rawPayload));\n }\n if (typeof rawPayload === \"string\") {\n return callback(JSON.parse(rawPayload));\n }\n return callback({});\n }\n _binaryDecode(buffer) {\n const view = new DataView(buffer);\n const decoder = new TextDecoder();\n return this._decodeBroadcast(buffer, view, decoder);\n }\n _decodeBroadcast(buffer, view, decoder) {\n const topicSize = view.getUint8(1);\n const eventSize = view.getUint8(2);\n let offset = this.HEADER_LENGTH + 2;\n const topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n const event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n const data = JSON.parse(decoder.decode(buffer.slice(offset, buffer.byteLength)));\n return {\n ref: null,\n topic: topic,\n event: event,\n payload: data\n };\n }\n} //# sourceMappingURL=serializer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi9zZXJpYWxpemVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSwySEFBMkg7QUFDM0gsOEVBQThFO0FBQy9ELE1BQU1BO0lBQ2pCQyxhQUFjO1FBQ1YsSUFBSSxDQUFDQyxhQUFhLEdBQUc7SUFDekI7SUFDQUMsT0FBT0MsVUFBVSxFQUFFQyxRQUFRLEVBQUU7UUFDekIsSUFBSUQsV0FBV0gsV0FBVyxLQUFLSyxhQUFhO1lBQ3hDLE9BQU9ELFNBQVMsSUFBSSxDQUFDRSxhQUFhLENBQUNIO1FBQ3ZDO1FBQ0EsSUFBSSxPQUFPQSxlQUFlLFVBQVU7WUFDaEMsT0FBT0MsU0FBU0csS0FBS0MsS0FBSyxDQUFDTDtRQUMvQjtRQUNBLE9BQU9DLFNBQVMsQ0FBQztJQUNyQjtJQUNBRSxjQUFjRyxNQUFNLEVBQUU7UUFDbEIsTUFBTUMsT0FBTyxJQUFJQyxTQUFTRjtRQUMxQixNQUFNRyxVQUFVLElBQUlDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQ0wsUUFBUUMsTUFBTUU7SUFDL0M7SUFDQUUsaUJBQWlCTCxNQUFNLEVBQUVDLElBQUksRUFBRUUsT0FBTyxFQUFFO1FBQ3BDLE1BQU1HLFlBQVlMLEtBQUtNLFFBQVEsQ0FBQztRQUNoQyxNQUFNQyxZQUFZUCxLQUFLTSxRQUFRLENBQUM7UUFDaEMsSUFBSUUsU0FBUyxJQUFJLENBQUNqQixhQUFhLEdBQUc7UUFDbEMsTUFBTWtCLFFBQVFQLFFBQVFWLE1BQU0sQ0FBQ08sT0FBT1csS0FBSyxDQUFDRixRQUFRQSxTQUFTSDtRQUMzREcsU0FBU0EsU0FBU0g7UUFDbEIsTUFBTU0sUUFBUVQsUUFBUVYsTUFBTSxDQUFDTyxPQUFPVyxLQUFLLENBQUNGLFFBQVFBLFNBQVNEO1FBQzNEQyxTQUFTQSxTQUFTRDtRQUNsQixNQUFNSyxPQUFPZixLQUFLQyxLQUFLLENBQUNJLFFBQVFWLE1BQU0sQ0FBQ08sT0FBT1csS0FBSyxDQUFDRixRQUFRVCxPQUFPYyxVQUFVO1FBQzdFLE9BQU87WUFBRUMsS0FBSztZQUFNTCxPQUFPQTtZQUFPRSxPQUFPQTtZQUFPSSxTQUFTSDtRQUFLO0lBQ2xFO0FBQ0osRUFDQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi9zZXJpYWxpemVyLmpzPzgxZGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGRyYXdzIGhlYXZpbHkgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peGZyYW1ld29yay9waG9lbml4L2NvbW1pdC9jZjA5OGU5Y2Y3YTQ0ZWU2NDc5ZDMxZDkxMWE5N2QzYzc0MzBjNmZlXG4vLyBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peGZyYW1ld29yay9waG9lbml4L2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWRcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlcmlhbGl6ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLkhFQURFUl9MRU5HVEggPSAxO1xuICAgIH1cbiAgICBkZWNvZGUocmF3UGF5bG9hZCwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKHJhd1BheWxvYWQuY29uc3RydWN0b3IgPT09IEFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sodGhpcy5fYmluYXJ5RGVjb2RlKHJhd1BheWxvYWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJhd1BheWxvYWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSlNPTi5wYXJzZShyYXdQYXlsb2FkKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHt9KTtcbiAgICB9XG4gICAgX2JpbmFyeURlY29kZShidWZmZXIpIHtcbiAgICAgICAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpO1xuICAgICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWNvZGVCcm9hZGNhc3QoYnVmZmVyLCB2aWV3LCBkZWNvZGVyKTtcbiAgICB9XG4gICAgX2RlY29kZUJyb2FkY2FzdChidWZmZXIsIHZpZXcsIGRlY29kZXIpIHtcbiAgICAgICAgY29uc3QgdG9waWNTaXplID0gdmlldy5nZXRVaW50OCgxKTtcbiAgICAgICAgY29uc3QgZXZlbnRTaXplID0gdmlldy5nZXRVaW50OCgyKTtcbiAgICAgICAgbGV0IG9mZnNldCA9IHRoaXMuSEVBREVSX0xFTkdUSCArIDI7XG4gICAgICAgIGNvbnN0IHRvcGljID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgdG9waWNTaXplKSk7XG4gICAgICAgIG9mZnNldCA9IG9mZnNldCArIHRvcGljU2l6ZTtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBldmVudFNpemUpKTtcbiAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICsgZXZlbnRTaXplO1xuICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBidWZmZXIuYnl0ZUxlbmd0aCkpKTtcbiAgICAgICAgcmV0dXJuIHsgcmVmOiBudWxsLCB0b3BpYzogdG9waWMsIGV2ZW50OiBldmVudCwgcGF5bG9hZDogZGF0YSB9O1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcmlhbGl6ZXIuanMubWFwIl0sIm5hbWVzIjpbIlNlcmlhbGl6ZXIiLCJjb25zdHJ1Y3RvciIsIkhFQURFUl9MRU5HVEgiLCJkZWNvZGUiLCJyYXdQYXlsb2FkIiwiY2FsbGJhY2siLCJBcnJheUJ1ZmZlciIsIl9iaW5hcnlEZWNvZGUiLCJKU09OIiwicGFyc2UiLCJidWZmZXIiLCJ2aWV3IiwiRGF0YVZpZXciLCJkZWNvZGVyIiwiVGV4dERlY29kZXIiLCJfZGVjb2RlQnJvYWRjYXN0IiwidG9waWNTaXplIiwiZ2V0VWludDgiLCJldmVudFNpemUiLCJvZmZzZXQiLCJ0b3BpYyIsInNsaWNlIiwiZXZlbnQiLCJkYXRhIiwiYnl0ZUxlbmd0aCIsInJlZiIsInBheWxvYWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/timer.js ***! + \*********************************************************************/ +/***/ ((__unused_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 */ Timer)\n/* harmony export */ });\n/**\n * Creates a timer that accepts a `timerCalc` function to perform calculated timeout retries, such as exponential backoff.\n *\n * @example\n * let reconnectTimer = new Timer(() => this.connect(), function(tries){\n * return [1000, 5000, 10000][tries - 1] || 10000\n * })\n * reconnectTimer.scheduleTimeout() // fires after 1000\n * reconnectTimer.scheduleTimeout() // fires after 5000\n * reconnectTimer.reset()\n * reconnectTimer.scheduleTimeout() // fires after 1000\n */ class Timer {\n constructor(callback, timerCalc){\n this.callback = callback;\n this.timerCalc = timerCalc;\n this.timer = undefined;\n this.tries = 0;\n this.callback = callback;\n this.timerCalc = timerCalc;\n }\n reset() {\n this.tries = 0;\n clearTimeout(this.timer);\n }\n // Cancels any previous scheduleTimeout and schedules callback\n scheduleTimeout() {\n clearTimeout(this.timer);\n this.timer = setTimeout(()=>{\n this.tries = this.tries + 1;\n this.callback();\n }, this.timerCalc(this.tries + 1));\n }\n} //# sourceMappingURL=timer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi90aW1lci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7O0NBV0MsR0FDYyxNQUFNQTtJQUNqQkMsWUFBWUMsUUFBUSxFQUFFQyxTQUFTLENBQUU7UUFDN0IsSUFBSSxDQUFDRCxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLEtBQUssR0FBR0M7UUFDYixJQUFJLENBQUNDLEtBQUssR0FBRztRQUNiLElBQUksQ0FBQ0osUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDckI7SUFDQUksUUFBUTtRQUNKLElBQUksQ0FBQ0QsS0FBSyxHQUFHO1FBQ2JFLGFBQWEsSUFBSSxDQUFDSixLQUFLO0lBQzNCO0lBQ0EsOERBQThEO0lBQzlESyxrQkFBa0I7UUFDZEQsYUFBYSxJQUFJLENBQUNKLEtBQUs7UUFDdkIsSUFBSSxDQUFDQSxLQUFLLEdBQUdNLFdBQVc7WUFDcEIsSUFBSSxDQUFDSixLQUFLLEdBQUcsSUFBSSxDQUFDQSxLQUFLLEdBQUc7WUFDMUIsSUFBSSxDQUFDSixRQUFRO1FBQ2pCLEdBQUcsSUFBSSxDQUFDQyxTQUFTLENBQUMsSUFBSSxDQUFDRyxLQUFLLEdBQUc7SUFDbkM7QUFDSixFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL3RpbWVyLmpzPzExNWUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGVzIGEgdGltZXIgdGhhdCBhY2NlcHRzIGEgYHRpbWVyQ2FsY2AgZnVuY3Rpb24gdG8gcGVyZm9ybSBjYWxjdWxhdGVkIHRpbWVvdXQgcmV0cmllcywgc3VjaCBhcyBleHBvbmVudGlhbCBiYWNrb2ZmLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgICBsZXQgcmVjb25uZWN0VGltZXIgPSBuZXcgVGltZXIoKCkgPT4gdGhpcy5jb25uZWN0KCksIGZ1bmN0aW9uKHRyaWVzKXtcbiAqICAgICAgcmV0dXJuIFsxMDAwLCA1MDAwLCAxMDAwMF1bdHJpZXMgLSAxXSB8fCAxMDAwMFxuICogICAgfSlcbiAqICAgIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDEwMDBcbiAqICAgIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDUwMDBcbiAqICAgIHJlY29ubmVjdFRpbWVyLnJlc2V0KClcbiAqICAgIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDEwMDBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGltZXIge1xuICAgIGNvbnN0cnVjdG9yKGNhbGxiYWNrLCB0aW1lckNhbGMpIHtcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICB0aGlzLnRpbWVyQ2FsYyA9IHRpbWVyQ2FsYztcbiAgICAgICAgdGhpcy50aW1lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50cmllcyA9IDA7XG4gICAgICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgICAgdGhpcy50aW1lckNhbGMgPSB0aW1lckNhbGM7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLnRyaWVzID0gMDtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgIH1cbiAgICAvLyBDYW5jZWxzIGFueSBwcmV2aW91cyBzY2hlZHVsZVRpbWVvdXQgYW5kIHNjaGVkdWxlcyBjYWxsYmFja1xuICAgIHNjaGVkdWxlVGltZW91dCgpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRyaWVzID0gdGhpcy50cmllcyArIDE7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrKCk7XG4gICAgICAgIH0sIHRoaXMudGltZXJDYWxjKHRoaXMudHJpZXMgKyAxKSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGltZXIuanMubWFwIl0sIm5hbWVzIjpbIlRpbWVyIiwiY29uc3RydWN0b3IiLCJjYWxsYmFjayIsInRpbWVyQ2FsYyIsInRpbWVyIiwidW5kZWZpbmVkIiwidHJpZXMiLCJyZXNldCIsImNsZWFyVGltZW91dCIsInNjaGVkdWxlVGltZW91dCIsInNldFRpbWVvdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PostgresTypes: () => (/* binding */ PostgresTypes),\n/* harmony export */ convertCell: () => (/* binding */ convertCell),\n/* harmony export */ convertChangeData: () => (/* binding */ convertChangeData),\n/* harmony export */ convertColumn: () => (/* binding */ convertColumn),\n/* harmony export */ toArray: () => (/* binding */ toArray),\n/* harmony export */ toBoolean: () => (/* binding */ toBoolean),\n/* harmony export */ toJson: () => (/* binding */ toJson),\n/* harmony export */ toNumber: () => (/* binding */ toNumber),\n/* harmony export */ toTimestampString: () => (/* binding */ toTimestampString)\n/* harmony export */ });\n/**\n * Helpers to convert the change Payload into native JS types.\n */ // Adapted from epgsql (src/epgsql_binary.erl), this module licensed under\n// 3-clause BSD found here: https://raw.githubusercontent.com/epgsql/epgsql/devel/LICENSE\nvar PostgresTypes;\n(function(PostgresTypes) {\n PostgresTypes[\"abstime\"] = \"abstime\";\n PostgresTypes[\"bool\"] = \"bool\";\n PostgresTypes[\"date\"] = \"date\";\n PostgresTypes[\"daterange\"] = \"daterange\";\n PostgresTypes[\"float4\"] = \"float4\";\n PostgresTypes[\"float8\"] = \"float8\";\n PostgresTypes[\"int2\"] = \"int2\";\n PostgresTypes[\"int4\"] = \"int4\";\n PostgresTypes[\"int4range\"] = \"int4range\";\n PostgresTypes[\"int8\"] = \"int8\";\n PostgresTypes[\"int8range\"] = \"int8range\";\n PostgresTypes[\"json\"] = \"json\";\n PostgresTypes[\"jsonb\"] = \"jsonb\";\n PostgresTypes[\"money\"] = \"money\";\n PostgresTypes[\"numeric\"] = \"numeric\";\n PostgresTypes[\"oid\"] = \"oid\";\n PostgresTypes[\"reltime\"] = \"reltime\";\n PostgresTypes[\"text\"] = \"text\";\n PostgresTypes[\"time\"] = \"time\";\n PostgresTypes[\"timestamp\"] = \"timestamp\";\n PostgresTypes[\"timestamptz\"] = \"timestamptz\";\n PostgresTypes[\"timetz\"] = \"timetz\";\n PostgresTypes[\"tsrange\"] = \"tsrange\";\n PostgresTypes[\"tstzrange\"] = \"tstzrange\";\n})(PostgresTypes || (PostgresTypes = {}));\n/**\n * Takes an array of columns and an object of string values then converts each string value\n * to its mapped type.\n *\n * @param {{name: String, type: String}[]} columns\n * @param {Object} record\n * @param {Object} options The map of various options that can be applied to the mapper\n * @param {Array} options.skipTypes The array of types that should not be converted\n *\n * @example convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n * //=>{ first_name: 'Paul', age: 33 }\n */ const convertChangeData = (columns, record, options = {})=>{\n var _a;\n const skipTypes = (_a = options.skipTypes) !== null && _a !== void 0 ? _a : [];\n return Object.keys(record).reduce((acc, rec_key)=>{\n acc[rec_key] = convertColumn(rec_key, columns, record, skipTypes);\n return acc;\n }, {});\n};\n/**\n * Converts the value of an individual column.\n *\n * @param {String} columnName The column that you want to convert\n * @param {{name: String, type: String}[]} columns All of the columns\n * @param {Object} record The map of string values\n * @param {Array} skipTypes An array of types that should not be converted\n * @return {object} Useless information\n *\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n * //=> 33\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n * //=> \"33\"\n */ const convertColumn = (columnName, columns, record, skipTypes)=>{\n const column = columns.find((x)=>x.name === columnName);\n const colType = column === null || column === void 0 ? void 0 : column.type;\n const value = record[columnName];\n if (colType && !skipTypes.includes(colType)) {\n return convertCell(colType, value);\n }\n return noop(value);\n};\n/**\n * If the value of the cell is `null`, returns null.\n * Otherwise converts the string value to the correct type.\n * @param {String} type A postgres column type\n * @param {String} value The cell value\n *\n * @example convertCell('bool', 't')\n * //=> true\n * @example convertCell('int8', '10')\n * //=> 10\n * @example convertCell('_int4', '{1,2,3,4}')\n * //=> [1,2,3,4]\n */ const convertCell = (type, value)=>{\n // if data type is an array\n if (type.charAt(0) === \"_\") {\n const dataType = type.slice(1, type.length);\n return toArray(value, dataType);\n }\n // If not null, convert to correct type.\n switch(type){\n case PostgresTypes.bool:\n return toBoolean(value);\n case PostgresTypes.float4:\n case PostgresTypes.float8:\n case PostgresTypes.int2:\n case PostgresTypes.int4:\n case PostgresTypes.int8:\n case PostgresTypes.numeric:\n case PostgresTypes.oid:\n return toNumber(value);\n case PostgresTypes.json:\n case PostgresTypes.jsonb:\n return toJson(value);\n case PostgresTypes.timestamp:\n return toTimestampString(value); // Format to be consistent with PostgREST\n case PostgresTypes.abstime:\n case PostgresTypes.date:\n case PostgresTypes.daterange:\n case PostgresTypes.int4range:\n case PostgresTypes.int8range:\n case PostgresTypes.money:\n case PostgresTypes.reltime:\n case PostgresTypes.text:\n case PostgresTypes.time:\n case PostgresTypes.timestamptz:\n case PostgresTypes.timetz:\n case PostgresTypes.tsrange:\n case PostgresTypes.tstzrange:\n return noop(value);\n default:\n // Return the value for remaining types\n return noop(value);\n }\n};\nconst noop = (value)=>{\n return value;\n};\nconst toBoolean = (value)=>{\n switch(value){\n case \"t\":\n return true;\n case \"f\":\n return false;\n default:\n return value;\n }\n};\nconst toNumber = (value)=>{\n if (typeof value === \"string\") {\n const parsedValue = parseFloat(value);\n if (!Number.isNaN(parsedValue)) {\n return parsedValue;\n }\n }\n return value;\n};\nconst toJson = (value)=>{\n if (typeof value === \"string\") {\n try {\n return JSON.parse(value);\n } catch (error) {\n console.log(`JSON parse error: ${error}`);\n return value;\n }\n }\n return value;\n};\n/**\n * Converts a Postgres Array into a native JS array\n *\n * @example toArray('{}', 'int4')\n * //=> []\n * @example toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n * //=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']\n * @example toArray([1,2,3,4], 'int4')\n * //=> [1,2,3,4]\n */ const toArray = (value, type)=>{\n if (typeof value !== \"string\") {\n return value;\n }\n const lastIdx = value.length - 1;\n const closeBrace = value[lastIdx];\n const openBrace = value[0];\n // Confirm value is a Postgres array by checking curly brackets\n if (openBrace === \"{\" && closeBrace === \"}\") {\n let arr;\n const valTrim = value.slice(1, lastIdx);\n // TODO: find a better solution to separate Postgres array data\n try {\n arr = JSON.parse(\"[\" + valTrim + \"]\");\n } catch (_) {\n // WARNING: splitting on comma does not cover all edge cases\n arr = valTrim ? valTrim.split(\",\") : [];\n }\n return arr.map((val)=>convertCell(type, val));\n }\n return value;\n};\n/**\n * Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\n * See https://github.com/supabase/supabase/issues/18\n *\n * @example toTimestampString('2019-09-10 00:00:00')\n * //=> '2019-09-10T00:00:00'\n */ const toTimestampString = (value)=>{\n if (typeof value === \"string\") {\n return value.replace(\" \", \"T\");\n }\n return value;\n}; //# sourceMappingURL=transformers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi90cmFuc2Zvcm1lcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0NBRUMsR0FDRCwwRUFBMEU7QUFDMUUseUZBQXlGO0FBQ2xGLElBQUlBLGNBQWM7QUFDeEIsVUFBVUEsYUFBYTtJQUNwQkEsYUFBYSxDQUFDLFVBQVUsR0FBRztJQUMzQkEsYUFBYSxDQUFDLE9BQU8sR0FBRztJQUN4QkEsYUFBYSxDQUFDLE9BQU8sR0FBRztJQUN4QkEsYUFBYSxDQUFDLFlBQVksR0FBRztJQUM3QkEsYUFBYSxDQUFDLFNBQVMsR0FBRztJQUMxQkEsYUFBYSxDQUFDLFNBQVMsR0FBRztJQUMxQkEsYUFBYSxDQUFDLE9BQU8sR0FBRztJQUN4QkEsYUFBYSxDQUFDLE9BQU8sR0FBRztJQUN4QkEsYUFBYSxDQUFDLFlBQVksR0FBRztJQUM3QkEsYUFBYSxDQUFDLE9BQU8sR0FBRztJQUN4QkEsYUFBYSxDQUFDLFlBQVksR0FBRztJQUM3QkEsYUFBYSxDQUFDLE9BQU8sR0FBRztJQUN4QkEsYUFBYSxDQUFDLFFBQVEsR0FBRztJQUN6QkEsYUFBYSxDQUFDLFFBQVEsR0FBRztJQUN6QkEsYUFBYSxDQUFDLFVBQVUsR0FBRztJQUMzQkEsYUFBYSxDQUFDLE1BQU0sR0FBRztJQUN2QkEsYUFBYSxDQUFDLFVBQVUsR0FBRztJQUMzQkEsYUFBYSxDQUFDLE9BQU8sR0FBRztJQUN4QkEsYUFBYSxDQUFDLE9BQU8sR0FBRztJQUN4QkEsYUFBYSxDQUFDLFlBQVksR0FBRztJQUM3QkEsYUFBYSxDQUFDLGNBQWMsR0FBRztJQUMvQkEsYUFBYSxDQUFDLFNBQVMsR0FBRztJQUMxQkEsYUFBYSxDQUFDLFVBQVUsR0FBRztJQUMzQkEsYUFBYSxDQUFDLFlBQVksR0FBRztBQUNqQyxHQUFHQSxpQkFBa0JBLENBQUFBLGdCQUFnQixDQUFDO0FBQ3RDOzs7Ozs7Ozs7OztDQVdDLEdB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TXVELE9BQU8sQ0FBQyxLQUFLO0lBQzlCO0lBQ0EsT0FBT3ZEO0FBQ1gsRUFBRSxDQUNGLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL3RyYW5zZm9ybWVycy5qcz8zZmMwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSGVscGVycyB0byBjb252ZXJ0IHRoZSBjaGFuZ2UgUGF5bG9hZCBpbnRvIG5hdGl2ZSBKUyB0eXBlcy5cbiAqL1xuLy8gQWRhcHRlZCBmcm9tIGVwZ3NxbCAoc3JjL2VwZ3NxbF9iaW5hcnkuZXJsKSwgdGhpcyBtb2R1bGUgbGljZW5zZWQgdW5kZXJcbi8vIDMtY2xhdXNlIEJTRCBmb3VuZCBoZXJlOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZXBnc3FsL2VwZ3NxbC9kZXZlbC9MSUNFTlNFXG5leHBvcnQgdmFyIFBvc3RncmVzVHlwZXM7XG4oZnVuY3Rpb24gKFBvc3RncmVzVHlwZXMpIHtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiYWJzdGltZVwiXSA9IFwiYWJzdGltZVwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJib29sXCJdID0gXCJib29sXCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcImRhdGVcIl0gPSBcImRhdGVcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiZGF0ZXJhbmdlXCJdID0gXCJkYXRlcmFuZ2VcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiZmxvYXQ0XCJdID0gXCJmbG9hdDRcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiZmxvYXQ4XCJdID0gXCJmbG9hdDhcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiaW50MlwiXSA9IFwiaW50MlwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJpbnQ0XCJdID0gXCJpbnQ0XCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcImludDRyYW5nZVwiXSA9IFwiaW50NHJhbmdlXCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcImludDhcIl0gPSBcImludDhcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiaW50OHJhbmdlXCJdID0gXCJpbnQ4cmFuZ2VcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wianNvblwiXSA9IFwianNvblwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJqc29uYlwiXSA9IFwianNvbmJcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wibW9uZXlcIl0gPSBcIm1vbmV5XCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcIm51bWVyaWNcIl0gPSBcIm51bWVyaWNcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wib2lkXCJdID0gXCJvaWRcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1wicmVsdGltZVwiXSA9IFwicmVsdGltZVwiO1xuICAgIFBvc3RncmVzVHlwZXNbXCJ0ZXh0XCJdID0gXCJ0ZXh0XCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcInRpbWVcIl0gPSBcInRpbWVcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1widGltZXN0YW1wXCJdID0gXCJ0aW1lc3RhbXBcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1widGltZXN0YW1wdHpcIl0gPSBcInRpbWVzdGFtcHR6XCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcInRpbWV0elwiXSA9IFwidGltZXR6XCI7XG4gICAgUG9zdGdyZXNUeXBlc1tcInRzcmFuZ2VcIl0gPSBcInRzcmFuZ2VcIjtcbiAgICBQb3N0Z3Jlc1R5cGVzW1widHN0enJhbmdlXCJdID0gXCJ0c3R6cmFuZ2VcIjtcbn0pKFBvc3RncmVzVHlwZXMgfHwgKFBvc3RncmVzVHlwZXMgPSB7fSkpO1xuLyoqXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBjb2x1bW5zIGFuZCBhbiBvYmplY3Qgb2Ygc3RyaW5nIHZhbHVlcyB0aGVuIGNvbnZlcnRzIGVhY2ggc3RyaW5nIHZhbHVlXG4gKiB0byBpdHMgbWFwcGVkIHR5cGUuXG4gKlxuICogQHBhcmFtIHt7bmFtZTogU3RyaW5nLCB0eXBlOiBTdHJpbmd9W119IGNvbHVtbnNcbiAqIEBwYXJhbSB7T2JqZWN0fSByZWNvcmRcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFRoZSBtYXAgb2YgdmFyaW91cyBvcHRpb25zIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gdGhlIG1hcHBlclxuICogQHBhcmFtIHtBcnJheX0gb3B0aW9ucy5za2lwVHlwZXMgVGhlIGFycmF5IG9mIHR5cGVzIHRoYXQgc2hvdWxkIG5vdCBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAZXhhbXBsZSBjb252ZXJ0Q2hhbmdlRGF0YShbe25hbWU6ICdmaXJzdF9uYW1lJywgdHlwZTogJ3RleHQnfSwge25hbWU6ICdhZ2UnLCB0eXBlOiAnaW50NCd9XSwge2ZpcnN0X25hbWU6ICdQYXVsJywgYWdlOiczMyd9LCB7fSlcbiAqIC8vPT57IGZpcnN0X25hbWU6ICdQYXVsJywgYWdlOiAzMyB9XG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0Q2hhbmdlRGF0YSA9IChjb2x1bW5zLCByZWNvcmQsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBza2lwVHlwZXMgPSAoX2EgPSBvcHRpb25zLnNraXBUeXBlcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW107XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHJlY29yZCkucmVkdWNlKChhY2MsIHJlY19rZXkpID0+IHtcbiAgICAgICAgYWNjW3JlY19rZXldID0gY29udmVydENvbHVtbihyZWNfa2V5LCBjb2x1bW5zLCByZWNvcmQsIHNraXBUeXBlcyk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufTtcbi8qKlxuICogQ29udmVydHMgdGhlIHZhbHVlIG9mIGFuIGluZGl2aWR1YWwgY29sdW1uLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5OYW1lIFRoZSBjb2x1bW4gdGhhdCB5b3Ugd2FudCB0byBjb252ZXJ0XG4gKiBAcGFyYW0ge3tuYW1lOiBTdHJpbmcsIHR5cGU6IFN0cmluZ31bXX0gY29sdW1ucyBBbGwgb2YgdGhlIGNvbHVtbnNcbiAqIEBwYXJhbSB7T2JqZWN0fSByZWNvcmQgVGhlIG1hcCBvZiBzdHJpbmcgdmFsdWVzXG4gKiBAcGFyYW0ge0FycmF5fSBza2lwVHlwZXMgQW4gYXJyYXkgb2YgdHlwZXMgdGhhdCBzaG91bGQgbm90IGJlIGNvbnZlcnRlZFxuICogQHJldHVybiB7b2JqZWN0fSBVc2VsZXNzIGluZm9ybWF0aW9uXG4gKlxuICogQGV4YW1wbGUgY29udmVydENvbHVtbignYWdlJywgW3tuYW1lOiAnZmlyc3RfbmFtZScsIHR5cGU6ICd0ZXh0J30sIHtuYW1lOiAnYWdlJywgdHlwZTogJ2ludDQnfV0sIHtmaXJzdF9uYW1lOiAnUGF1bCcsIGFnZTogJzMzJ30sIFtdKVxuICogLy89PiAzM1xuICogQGV4YW1wbGUgY29udmVydENvbHVtbignYWdlJywgW3tuYW1lOiAnZmlyc3RfbmFtZScsIHR5cGU6ICd0ZXh0J30sIHtuYW1lOiAnYWdlJywgdHlwZTogJ2ludDQnfV0sIHtmaXJzdF9uYW1lOiAnUGF1bCcsIGFnZTogJzMzJ30sIFsnaW50NCddKVxuICogLy89PiBcIjMzXCJcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnRDb2x1bW4gPSAoY29sdW1uTmFtZSwgY29sdW1ucywgcmVjb3JkLCBza2lwVHlwZXMpID0+IHtcbiAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKHgpID0+IHgubmFtZSA9PT0gY29sdW1uTmFtZSk7XG4gICAgY29uc3QgY29sVHlwZSA9IGNvbHVtbiA9PT0gbnVsbCB8fCBjb2x1bW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbHVtbi50eXBlO1xuICAgIGNvbnN0IHZhbHVlID0gcmVjb3JkW2NvbHVtbk5hbWVdO1xuICAgIGlmIChjb2xUeXBlICYmICFza2lwVHlwZXMuaW5jbHVkZXMoY29sVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRDZWxsKGNvbFR5cGUsIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vb3AodmFsdWUpO1xufTtcbi8qKlxuICogSWYgdGhlIHZhbHVlIG9mIHRoZSBjZWxsIGlzIGBudWxsYCwgcmV0dXJucyBudWxsLlxuICogT3RoZXJ3aXNlIGNvbnZlcnRzIHRoZSBzdHJpbmcgdmFsdWUgdG8gdGhlIGNvcnJlY3QgdHlwZS5cbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlIEEgcG9zdGdyZXMgY29sdW1uIHR5cGVcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZSBUaGUgY2VsbCB2YWx1ZVxuICpcbiAqIEBleGFtcGxlIGNvbnZlcnRDZWxsKCdib29sJywgJ3QnKVxuICogLy89PiB0cnVlXG4gKiBAZXhhbXBsZSBjb252ZXJ0Q2VsbCgnaW50OCcsICcxMCcpXG4gKiAvLz0+IDEwXG4gKiBAZXhhbXBsZSBjb252ZXJ0Q2VsbCgnX2ludDQnLCAnezEsMiwzLDR9JylcbiAqIC8vPT4gWzEsMiwzLDRdXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0Q2VsbCA9ICh0eXBlLCB2YWx1ZSkgPT4ge1xuICAgIC8vIGlmIGRhdGEgdHlwZSBpcyBhbiBhcnJheVxuICAgIGlmICh0eXBlLmNoYXJBdCgwKSA9PT0gJ18nKSB7XG4gICAgICAgIGNvbnN0IGRhdGFUeXBlID0gdHlwZS5zbGljZSgxLCB0eXBlLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiB0b0FycmF5KHZhbHVlLCBkYXRhVHlwZSk7XG4gICAgfVxuICAgIC8vIElmIG5vdCBudWxsLCBjb252ZXJ0IHRvIGNvcnJlY3QgdHlwZS5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmJvb2w6XG4gICAgICAgICAgICByZXR1cm4gdG9Cb29sZWFuKHZhbHVlKTtcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmZsb2F0NDpcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmZsb2F0ODpcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmludDI6XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5pbnQ0OlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuaW50ODpcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLm51bWVyaWM6XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5vaWQ6XG4gICAgICAgICAgICByZXR1cm4gdG9OdW1iZXIodmFsdWUpO1xuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuanNvbjpcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmpzb25iOlxuICAgICAgICAgICAgcmV0dXJuIHRvSnNvbih2YWx1ZSk7XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50aW1lc3RhbXA6XG4gICAgICAgICAgICByZXR1cm4gdG9UaW1lc3RhbXBTdHJpbmcodmFsdWUpOyAvLyBGb3JtYXQgdG8gYmUgY29uc2lzdGVudCB3aXRoIFBvc3RnUkVTVFxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuYWJzdGltZTogLy8gVG8gYWxsb3cgdXNlcnMgdG8gY2FzdCBpdCBiYXNlZCBvbiBUaW1lem9uZVxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuZGF0ZTogLy8gVG8gYWxsb3cgdXNlcnMgdG8gY2FzdCBpdCBiYXNlZCBvbiBUaW1lem9uZVxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuZGF0ZXJhbmdlOlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuaW50NHJhbmdlOlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuaW50OHJhbmdlOlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMubW9uZXk6XG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5yZWx0aW1lOiAvLyBUbyBhbGxvdyB1c2VycyB0byBjYXN0IGl0IGJhc2VkIG9uIFRpbWV6b25lXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50ZXh0OlxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMudGltZTogLy8gVG8gYWxsb3cgdXNlcnMgdG8gY2FzdCBpdCBiYXNlZCBvbiBUaW1lem9uZVxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMudGltZXN0YW1wdHo6IC8vIFRvIGFsbG93IHVzZXJzIHRvIGNhc3QgaXQgYmFzZWQgb24gVGltZXpvbmVcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLnRpbWV0ejogLy8gVG8gYWxsb3cgdXNlcnMgdG8gY2FzdCBpdCBiYXNlZCBvbiBUaW1lem9uZVxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMudHNyYW5nZTpcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLnRzdHpyYW5nZTpcbiAgICAgICAgICAgIHJldHVybiBub29wKHZhbHVlKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIFJldHVybiB0aGUgdmFsdWUgZm9yIHJlbWFpbmluZyB0eXBlc1xuICAgICAgICAgICAgcmV0dXJuIG5vb3AodmFsdWUpO1xuICAgIH1cbn07XG5jb25zdCBub29wID0gKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCB0b0Jvb2xlYW4gPSAodmFsdWUpID0+IHtcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNhc2UgJ2YnOlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn07XG5leHBvcnQgY29uc3QgdG9OdW1iZXIgPSAodmFsdWUpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59O1xuZXhwb3J0IGNvbnN0IHRvSnNvbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgSlNPTiBwYXJzZSBlcnJvcjogJHtlcnJvcn1gKTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59O1xuLyoqXG4gKiBDb252ZXJ0cyBhIFBvc3RncmVzIEFycmF5IGludG8gYSBuYXRpdmUgSlMgYXJyYXlcbiAqXG4gKiBAZXhhbXBsZSB0b0FycmF5KCd7fScsICdpbnQ0JylcbiAqIC8vPT4gW11cbiAqIEBleGFtcGxlIHRvQXJyYXkoJ3tcIlsyMDIxLTAxLTAxLDIwMjEtMTItMzEpXCIsXCIoMjAyMS0wMS0wMSwyMDIxLTEyLTMyXVwifScsICdkYXRlcmFuZ2UnKVxuICogLy89PiBbJ1syMDIxLTAxLTAxLDIwMjEtMTItMzEpJywgJygyMDIxLTAxLTAxLDIwMjEtMTItMzJdJ11cbiAqIEBleGFtcGxlIHRvQXJyYXkoWzEsMiwzLDRdLCAnaW50NCcpXG4gKiAvLz0+IFsxLDIsMyw0XVxuICovXG5leHBvcnQgY29uc3QgdG9BcnJheSA9ICh2YWx1ZSwgdHlwZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgY29uc3QgbGFzdElkeCA9IHZhbHVlLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgY2xvc2VCcmFjZSA9IHZhbHVlW2xhc3RJZHhdO1xuICAgIGNvbnN0IG9wZW5CcmFjZSA9IHZhbHVlWzBdO1xuICAgIC8vIENvbmZpcm0gdmFsdWUgaXMgYSBQb3N0Z3JlcyBhcnJheSBieSBjaGVja2luZyBjdXJseSBicmFja2V0c1xuICAgIGlmIChvcGVuQnJhY2UgPT09ICd7JyAmJiBjbG9zZUJyYWNlID09PSAnfScpIHtcbiAgICAgICAgbGV0IGFycjtcbiAgICAgICAgY29uc3QgdmFsVHJpbSA9IHZhbHVlLnNsaWNlKDEsIGxhc3RJZHgpO1xuICAgICAgICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uIHRvIHNlcGFyYXRlIFBvc3RncmVzIGFycmF5IGRhdGFcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGFyciA9IEpTT04ucGFyc2UoJ1snICsgdmFsVHJpbSArICddJyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIC8vIFdBUk5JTkc6IHNwbGl0dGluZyBvbiBjb21tYSBkb2VzIG5vdCBjb3ZlciBhbGwgZWRnZSBjYXNlc1xuICAgICAgICAgICAgYXJyID0gdmFsVHJpbSA/IHZhbFRyaW0uc3BsaXQoJywnKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnIubWFwKCh2YWwpID0+IGNvbnZlcnRDZWxsKHR5cGUsIHZhbCkpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59O1xuLyoqXG4gKiBGaXhlcyB0aW1lc3RhbXAgdG8gYmUgSVNPLTg2MDEuIFN3YXBzIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBkYXRlIGFuZCB0aW1lIGZvciBhICdUJ1xuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9zdXBhYmFzZS9pc3N1ZXMvMThcbiAqXG4gKiBAZXhhbXBsZSB0b1RpbWVzdGFtcFN0cmluZygnMjAxOS0wOS0xMCAwMDowMDowMCcpXG4gKiAvLz0+ICcyMDE5LTA5LTEwVDAwOjAwOjAwJ1xuICovXG5leHBvcnQgY29uc3QgdG9UaW1lc3RhbXBTdHJpbmcgPSAodmFsdWUpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgnICcsICdUJyk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFuc2Zvcm1lcnMuanMubWFwIl0sIm5hbWVzIjpbIlBvc3RncmVzVHlwZXMiLCJjb252ZXJ0Q2hhbmdlRGF0YSIsImNvbHVtbnMiLCJyZWNvcmQiLCJvcHRpb25zIiwiX2EiLCJza2lwVHlwZXMiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwiYWNjIiwicmVjX2tleSIsImNvbnZlcnRDb2x1bW4iLCJjb2x1bW5OYW1lIiwiY29sdW1uIiwiZmluZCIsIngiLCJuYW1lIiwiY29sVHlwZSIsInR5cGUiLCJ2YWx1ZSIsImluY2x1ZGVzIiwiY29udmVydENlbGwiLCJub29wIiwiY2hhckF0IiwiZGF0YVR5cGUiLCJzbGljZSIsImxlbmd0aCIsInRvQXJyYXkiLCJib29sIiwidG9Cb29sZWFuIiwiZmxvYXQ0IiwiZmxvYXQ4IiwiaW50MiIsImludDQiLCJpbnQ4IiwibnVtZXJpYyIsIm9pZCIsInRvTnVtYmVyIiwianNvbiIsImpzb25iIiwidG9Kc29uIiwidGltZXN0YW1wIiwidG9UaW1lc3RhbXBTdHJpbmciLCJhYnN0aW1lIiwiZGF0ZSIsImRhdGVyYW5nZSIsImludDRyYW5nZSIsImludDhyYW5nZSIsIm1vbmV5IiwicmVsdGltZSIsInRleHQiLCJ0aW1lIiwidGltZXN0YW1wdHoiLCJ0aW1ldHoiLCJ0c3JhbmdlIiwidHN0enJhbmdlIiwicGFyc2VkVmFsdWUiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNOYU4iLCJKU09OIiwicGFyc2UiLCJlcnJvciIsImNvbnNvbGUiLCJsb2ciLCJsYXN0SWR4IiwiY2xvc2VCcmFjZSIsIm9wZW5CcmFjZSIsImFyciIsInZhbFRyaW0iLCJfIiwic3BsaXQiLCJtYXAiLCJ2YWwiLCJyZXBsYWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/realtime-js/dist/module/lib/version.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\nconst version = \"2.9.3\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi92ZXJzaW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxVQUFVLFFBQVEsQ0FDL0IsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcz8xZmQ1Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB2ZXJzaW9uID0gJzIuOS4zJztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZlcnNpb24uanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js": +/*!************************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/StorageClient.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StorageClient: () => (/* binding */ StorageClient)\n/* harmony export */ });\n/* harmony import */ var _packages_StorageFileApi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./packages/StorageFileApi */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js\");\n/* harmony import */ var _packages_StorageBucketApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./packages/StorageBucketApi */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js\");\n\n\nclass StorageClient extends _packages_StorageBucketApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n constructor(url, headers = {}, fetch){\n super(url, headers, fetch);\n }\n /**\n * Perform file operation in a bucket.\n *\n * @param id The bucket id to operate on.\n */ from(id) {\n return new _packages_StorageFileApi__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this.url, this.headers, id, this.fetch);\n }\n} //# sourceMappingURL=StorageClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvU3RvcmFnZUNsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUQ7QUFDSTtBQUNwRCxNQUFNRSxzQkFBc0JELGtFQUFnQkE7SUFDL0NFLFlBQVlDLEdBQUcsRUFBRUMsVUFBVSxDQUFDLENBQUMsRUFBRUMsS0FBSyxDQUFFO1FBQ2xDLEtBQUssQ0FBQ0YsS0FBS0MsU0FBU0M7SUFDeEI7SUFDQTs7OztLQUlDLEdBQ0RDLEtBQUtDLEVBQUUsRUFBRTtRQUNMLE9BQU8sSUFBSVIsZ0VBQWNBLENBQUMsSUFBSSxDQUFDSSxHQUFHLEVBQUUsSUFBSSxDQUFDQyxPQUFPLEVBQUVHLElBQUksSUFBSSxDQUFDRixLQUFLO0lBQ3BFO0FBQ0osRUFDQSx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvU3RvcmFnZUNsaWVudC5qcz9hOGNjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdG9yYWdlRmlsZUFwaSBmcm9tICcuL3BhY2thZ2VzL1N0b3JhZ2VGaWxlQXBpJztcbmltcG9ydCBTdG9yYWdlQnVja2V0QXBpIGZyb20gJy4vcGFja2FnZXMvU3RvcmFnZUJ1Y2tldEFwaSc7XG5leHBvcnQgY2xhc3MgU3RvcmFnZUNsaWVudCBleHRlbmRzIFN0b3JhZ2VCdWNrZXRBcGkge1xuICAgIGNvbnN0cnVjdG9yKHVybCwgaGVhZGVycyA9IHt9LCBmZXRjaCkge1xuICAgICAgICBzdXBlcih1cmwsIGhlYWRlcnMsIGZldGNoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGVyZm9ybSBmaWxlIG9wZXJhdGlvbiBpbiBhIGJ1Y2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBUaGUgYnVja2V0IGlkIHRvIG9wZXJhdGUgb24uXG4gICAgICovXG4gICAgZnJvbShpZCkge1xuICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VGaWxlQXBpKHRoaXMudXJsLCB0aGlzLmhlYWRlcnMsIGlkLCB0aGlzLmZldGNoKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdG9yYWdlQ2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJTdG9yYWdlRmlsZUFwaSIsIlN0b3JhZ2VCdWNrZXRBcGkiLCJTdG9yYWdlQ2xpZW50IiwiY29uc3RydWN0b3IiLCJ1cmwiLCJoZWFkZXJzIiwiZmV0Y2giLCJmcm9tIiwiaWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js": +/*!************************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/constants.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/version.js\");\n\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `storage-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n}; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvQztBQUM3QixNQUFNQyxrQkFBa0I7SUFBRSxpQkFBaUIsQ0FBQyxXQUFXLEVBQUVELDZDQUFPQSxDQUFDLENBQUM7QUFBQyxFQUFFLENBQzVFLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzPzc5OTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4vdmVyc2lvbic7XG5leHBvcnQgY29uc3QgREVGQVVMVF9IRUFERVJTID0geyAnWC1DbGllbnQtSW5mbyc6IGBzdG9yYWdlLWpzLyR7dmVyc2lvbn1gIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iLCJERUZBVUxUX0hFQURFUlMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/errors.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StorageApiError: () => (/* binding */ StorageApiError),\n/* harmony export */ StorageError: () => (/* binding */ StorageError),\n/* harmony export */ StorageUnknownError: () => (/* binding */ StorageUnknownError),\n/* harmony export */ isStorageError: () => (/* binding */ isStorageError)\n/* harmony export */ });\nclass StorageError extends Error {\n constructor(message){\n super(message);\n this.__isStorageError = true;\n this.name = \"StorageError\";\n }\n}\nfunction isStorageError(error) {\n return typeof error === \"object\" && error !== null && \"__isStorageError\" in error;\n}\nclass StorageApiError extends StorageError {\n constructor(message, status){\n super(message);\n this.name = \"StorageApiError\";\n this.status = status;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status\n };\n }\n}\nclass StorageUnknownError extends StorageError {\n constructor(message, originalError){\n super(message);\n this.name = \"StorageUnknownError\";\n this.originalError = originalError;\n }\n} //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL2Vycm9ycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQU8sTUFBTUEscUJBQXFCQztJQUM5QkMsWUFBWUMsT0FBTyxDQUFFO1FBQ2pCLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLGdCQUFnQixHQUFHO1FBQ3hCLElBQUksQ0FBQ0MsSUFBSSxHQUFHO0lBQ2hCO0FBQ0o7QUFDTyxTQUFTQyxlQUFlQyxLQUFLO0lBQ2hDLE9BQU8sT0FBT0EsVUFBVSxZQUFZQSxVQUFVLFFBQVEsc0JBQXNCQTtBQUNoRjtBQUNPLE1BQU1DLHdCQUF3QlI7SUFDakNFLFlBQVlDLE9BQU8sRUFBRU0sTUFBTSxDQUFFO1FBQ3pCLEtBQUssQ0FBQ047UUFDTixJQUFJLENBQUNFLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ0ksTUFBTSxHQUFHQTtJQUNsQjtJQUNBQyxTQUFTO1FBQ0wsT0FBTztZQUNITCxNQUFNLElBQUksQ0FBQ0EsSUFBSTtZQUNmRixTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUNyQk0sUUFBUSxJQUFJLENBQUNBLE1BQU07UUFDdkI7SUFDSjtBQUNKO0FBQ08sTUFBTUUsNEJBQTRCWDtJQUNyQ0UsWUFBWUMsT0FBTyxFQUFFUyxhQUFhLENBQUU7UUFDaEMsS0FBSyxDQUFDVDtRQUNOLElBQUksQ0FBQ0UsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDTyxhQUFhLEdBQUdBO0lBQ3pCO0FBQ0osRUFDQSxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL2Vycm9ycy5qcz80YTlhIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdG9yYWdlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5fX2lzU3RvcmFnZUVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ1N0b3JhZ2VFcnJvcic7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RvcmFnZUVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ19faXNTdG9yYWdlRXJyb3InIGluIGVycm9yO1xufVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VBcGlFcnJvciBleHRlbmRzIFN0b3JhZ2VFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgc3RhdHVzKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnU3RvcmFnZUFwaUVycm9yJztcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VVbmtub3duRXJyb3IgZXh0ZW5kcyBTdG9yYWdlRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIG9yaWdpbmFsRXJyb3IpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdTdG9yYWdlVW5rbm93bkVycm9yJztcbiAgICAgICAgdGhpcy5vcmlnaW5hbEVycm9yID0gb3JpZ2luYWxFcnJvcjtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvcnMuanMubWFwIl0sIm5hbWVzIjpbIlN0b3JhZ2VFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwiX19pc1N0b3JhZ2VFcnJvciIsIm5hbWUiLCJpc1N0b3JhZ2VFcnJvciIsImVycm9yIiwiU3RvcmFnZUFwaUVycm9yIiwic3RhdHVzIiwidG9KU09OIiwiU3RvcmFnZVVua25vd25FcnJvciIsIm9yaWdpbmFsRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js": +/*!********************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/fetch.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +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 */ put: () => (/* binding */ put),\n/* harmony export */ remove: () => (/* binding */ remove)\n/* harmony export */ });\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./errors */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\nconst _getErrorMessage = (err)=>err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\nconst handleError = (error, reject)=>__awaiter(void 0, void 0, void 0, function*() {\n const Res = yield (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.resolveResponse)();\n if (error instanceof Res) {\n error.json().then((err)=>{\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageApiError(_getErrorMessage(err), error.status || 500));\n }).catch((err)=>{\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageUnknownError(_getErrorMessage(err), err));\n });\n } else {\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageUnknownError(_getErrorMessage(error), error));\n }\n });\nconst _getRequestParams = (method, options, parameters, body)=>{\n const params = {\n method,\n headers: (options === null || options === void 0 ? void 0 : options.headers) || {}\n };\n if (method === \"GET\") {\n return params;\n }\n params.headers = Object.assign({\n \"Content-Type\": \"application/json\"\n }, options === null || options === void 0 ? void 0 : options.headers);\n params.body = JSON.stringify(body);\n return Object.assign(Object.assign({}, params), parameters);\n};\nfunction _handleRequest(fetcher, method, url, options, parameters, body) {\n return __awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve, reject)=>{\n fetcher(url, _getRequestParams(method, options, parameters, body)).then((result)=>{\n if (!result.ok) throw result;\n if (options === null || options === void 0 ? void 0 : options.noResolveJson) return result;\n return result.json();\n }).then((data)=>resolve(data)).catch((error)=>handleError(error, reject));\n });\n });\n}\nfunction get(fetcher, url, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n return _handleRequest(fetcher, \"GET\", url, options, parameters);\n });\n}\nfunction post(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n return _handleRequest(fetcher, \"POST\", url, options, parameters, body);\n });\n}\nfunction put(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n return _handleRequest(fetcher, \"PUT\", url, options, parameters, body);\n });\n}\nfunction remove(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n return _handleRequest(fetcher, \"DELETE\", url, options, parameters, body);\n });\n} //# sourceMappingURL=fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL2ZldGNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUlBLFlBQVksU0FBSyxJQUFJLFNBQUksQ0FBQ0EsU0FBUyxJQUFLLFNBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVM7SUFDbkYsU0FBU0MsTUFBTUMsS0FBSztRQUFJLE9BQU9BLGlCQUFpQkgsSUFBSUcsUUFBUSxJQUFJSCxFQUFFLFNBQVVJLE9BQU87WUFBSUEsUUFBUUQ7UUFBUTtJQUFJO0lBQzNHLE9BQU8sSUFBS0gsQ0FBQUEsS0FBTUEsQ0FBQUEsSUFBSUssT0FBTSxDQUFDLEVBQUcsU0FBVUQsT0FBTyxFQUFFRSxNQUFNO1FBQ3JELFNBQVNDLFVBQVVKLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxVQUFVUSxJQUFJLENBQUNOO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDMUYsU0FBU0MsU0FBU1IsS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFNBQVMsQ0FBQyxRQUFRLENBQUNFO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDN0YsU0FBU0YsS0FBS0ksTUFBTTtZQUFJQSxPQUFPQyxJQUFJLEdBQUdULFFBQVFRLE9BQU9ULEtBQUssSUFBSUQsTUFBTVUsT0FBT1QsS0FBSyxFQUFFVyxJQUFJLENBQUNQLFdBQVdJO1FBQVc7UUFDN0dILEtBQUssQ0FBQ1AsWUFBWUEsVUFBVWMsS0FBSyxDQUFDakIsU0FBU0MsY0FBYyxFQUFFLEdBQUdVLElBQUk7SUFDdEU7QUFDSjtBQUNnRTtBQUNwQjtBQUM1QyxNQUFNVSxtQkFBbUIsQ0FBQ0MsTUFBUUEsSUFBSUMsR0FBRyxJQUFJRCxJQUFJRSxPQUFPLElBQUlGLElBQUlHLGlCQUFpQixJQUFJSCxJQUFJSSxLQUFLLElBQUlD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LEVBQUVQLElBQUksRUFBRUYsT0FBTyxFQUFFQyxVQUFVO0lBQzFELE9BQU90QyxVQUFVLElBQUksRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHO1FBQ25DLE9BQU80QyxlQUFlQyxTQUFTLFVBQVVDLEtBQUtULFNBQVNDLFlBQVlDO0lBQ3ZFO0FBQ0osRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL2ZldGNoLmpzP2MwNDYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBTdG9yYWdlQXBpRXJyb3IsIFN0b3JhZ2VVbmtub3duRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyByZXNvbHZlUmVzcG9uc2UgfSBmcm9tICcuL2hlbHBlcnMnO1xuY29uc3QgX2dldEVycm9yTWVzc2FnZSA9IChlcnIpID0+IGVyci5tc2cgfHwgZXJyLm1lc3NhZ2UgfHwgZXJyLmVycm9yX2Rlc2NyaXB0aW9uIHx8IGVyci5lcnJvciB8fCBKU09OLnN0cmluZ2lmeShlcnIpO1xuY29uc3QgaGFuZGxlRXJyb3IgPSAoZXJyb3IsIHJlamVjdCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgY29uc3QgUmVzID0geWllbGQgcmVzb2x2ZVJlc3BvbnNlKCk7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgUmVzKSB7XG4gICAgICAgIGVycm9yXG4gICAgICAgICAgICAuanNvbigpXG4gICAgICAgICAgICAudGhlbigoZXJyKSA9PiB7XG4gICAgICAgICAgICByZWplY3QobmV3IFN0b3JhZ2VBcGlFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGVyciksIGVycm9yLnN0YXR1cyB8fCA1MDApKTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICByZWplY3QobmV3IFN0b3JhZ2VVbmtub3duRXJyb3IoX2dldEVycm9yTWVzc2FnZShlcnIpLCBlcnIpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZWplY3QobmV3IFN0b3JhZ2VVbmtub3duRXJyb3IoX2dldEVycm9yTWVzc2FnZShlcnJvciksIGVycm9yKSk7XG4gICAgfVxufSk7XG5jb25zdCBfZ2V0UmVxdWVzdFBhcmFtcyA9IChtZXRob2QsIG9wdGlvbnMsIHBhcmFtZXRlcnMsIGJvZHkpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IG1ldGhvZCwgaGVhZGVyczogKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWFkZXJzKSB8fCB7fSB9O1xuICAgIGlmIChtZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuICAgIHBhcmFtcy5oZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmhlYWRlcnMpO1xuICAgIHBhcmFtcy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyYW1zKSwgcGFyYW1ldGVycyk7XG59O1xuZnVuY3Rpb24gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgbWV0aG9kLCB1cmwsIG9wdGlvbnMsIHBhcmFtZXRlcnMsIGJvZHkpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgZmV0Y2hlcih1cmwsIF9nZXRSZXF1ZXN0UGFyYW1zKG1ldGhvZCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0Lm9rKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5ub1Jlc29sdmVKc29uKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuanNvbigpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gcmVzb2x2ZShkYXRhKSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiBoYW5kbGVFcnJvcihlcnJvciwgcmVqZWN0KSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldChmZXRjaGVyLCB1cmwsIG9wdGlvbnMsIHBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICByZXR1cm4gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgJ0dFVCcsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycyk7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcG9zdChmZXRjaGVyLCB1cmwsIGJvZHksIG9wdGlvbnMsIHBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICByZXR1cm4gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgJ1BPU1QnLCB1cmwsIG9wdGlvbnMsIHBhcmFtZXRlcnMsIGJvZHkpO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHB1dChmZXRjaGVyLCB1cmwsIGJvZHksIG9wdGlvbnMsIHBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICByZXR1cm4gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgJ1BVVCcsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSk7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlKGZldGNoZXIsIHVybCwgYm9keSwgb3B0aW9ucywgcGFyYW1ldGVycykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHJldHVybiBfaGFuZGxlUmVxdWVzdChmZXRjaGVyLCAnREVMRVRFJywgdXJsLCBvcHRpb25zLCBwYXJhbWV0ZXJzLCBib2R5KTtcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZldGNoLmpzLm1hcCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJTdG9yYWdlQXBpRXJyb3IiLCJTdG9yYWdlVW5rbm93bkVycm9yIiwicmVzb2x2ZVJlc3BvbnNlIiwiX2dldEVycm9yTWVzc2FnZSIsImVyciIsIm1zZyIsIm1lc3NhZ2UiLCJlcnJvcl9kZXNjcmlwdGlvbiIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImhhbmRsZUVycm9yIiwiUmVzIiwianNvbiIsInN0YXR1cyIsImNhdGNoIiwiX2dldFJlcXVlc3RQYXJhbXMiLCJtZXRob2QiLCJvcHRpb25zIiwicGFyYW1ldGVycyIsImJvZHkiLCJwYXJhbXMiLCJoZWFkZXJzIiwiT2JqZWN0IiwiYXNzaWduIiwiX2hhbmRsZVJlcXVlc3QiLCJmZXRjaGVyIiwidXJsIiwib2siLCJub1Jlc29sdmVKc29uIiwiZGF0YSIsImdldCIsInBvc3QiLCJwdXQiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/helpers.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveFetch: () => (/* binding */ resolveFetch),\n/* harmony export */ resolveResponse: () => (/* binding */ resolveResponse)\n/* harmony export */ });\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (...args)=>Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(rsc)/./node_modules/@supabase/node-fetch/lib/index.js\", 23)).then(({ default: fetch1 })=>fetch1(...args));\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n};\nconst resolveResponse = ()=>__awaiter(void 0, void 0, void 0, function*() {\n if (typeof Response === \"undefined\") {\n // @ts-ignore\n return (yield Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(rsc)/./node_modules/@supabase/node-fetch/lib/index.js\", 23))).Response;\n }\n return Response;\n }); //# sourceMappingURL=helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL2hlbHBlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFJQSxZQUFZLFNBQUssSUFBSSxTQUFJLENBQUNBLFNBQVMsSUFBSyxTQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTO0lBQ25GLFNBQVNDLE1BQU1DLEtBQUs7UUFBSSxPQUFPQSxpQkFBaUJILElBQUlHLFFBQVEsSUFBSUgsRUFBRSxTQUFVSSxPQUFPO1lBQUlBLFFBQVFEO1FBQVE7SUFBSTtJQUMzRyxPQUFPLElBQUtILENBQUFBLEtBQU1BLENBQUFBLElBQUlLLE9BQU0sQ0FBQyxFQUFHLFNBQVVELE9BQU8sRUFBRUUsTUFBTTtRQUNyRCxTQUFTQyxVQUFVSixLQUFLO1lBQUksSUFBSTtnQkFBRUssS0FBS1AsVUFBVVEsSUFBSSxDQUFDTjtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzFGLFNBQVNDLFNBQVNSLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxTQUFTLENBQUMsUUFBUSxDQUFDRTtZQUFTLEVBQUUsT0FBT08sR0FBRztnQkFBRUosT0FBT0k7WUFBSTtRQUFFO1FBQzdGLFNBQVNGLEtBQUtJLE1BQU07WUFBSUEsT0FBT0MsSUFBSSxHQUFHVCxRQUFRUSxPQUFPVCxLQUFLLElBQUlELE1BQU1VLE9BQU9ULEtBQUssRUFBRVcsSUFBSSxDQUFDUCxXQUFXSTtRQUFXO1FBQzdHSCxLQUFLLENBQUNQLFlBQVlBLFVBQVVjLEtBQUssQ0FBQ2pCLFNBQVNDLGNBQWMsRUFBRSxHQUFHVSxJQUFJO0lBQ3RFO0FBQ0o7QUFDTyxNQUFNTyxlQUFlLENBQUNDO0lBQ3pCLElBQUlDO0lBQ0osSUFBSUQsYUFBYTtRQUNiQyxTQUFTRDtJQUNiLE9BQ0ssSUFBSSxPQUFPRSxVQUFVLGFBQWE7UUFDbkNELFNBQVMsQ0FBQyxHQUFHRSxPQUFTLGdMQUFPLENBQXdCTixJQUFJLENBQUMsQ0FBQyxFQUFFTyxTQUFTRixNQUFLLEVBQUUsR0FBS0EsVUFBU0M7SUFDL0YsT0FDSztRQUNERixTQUFTQztJQUNiO0lBQ0EsT0FBTyxDQUFDLEdBQUdDLE9BQVNGLFVBQVVFO0FBQ2xDLEVBQUU7QUFDSyxNQUFNRSxrQkFBa0IsSUFBTXpCLFVBQVUsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUc7UUFDbkUsSUFBSSxPQUFPMEIsYUFBYSxhQUFhO1lBQ2pDLGFBQWE7WUFDYixPQUFPLENBQUMsTUFBTSxnTEFBNkIsRUFBR0EsUUFBUTtRQUMxRDtRQUNBLE9BQU9BO0lBQ1gsR0FBRyxDQUNILG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvaGVscGVycy5qcz9hNDdiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVGZXRjaCA9IChjdXN0b21GZXRjaCkgPT4ge1xuICAgIGxldCBfZmV0Y2g7XG4gICAgaWYgKGN1c3RvbUZldGNoKSB7XG4gICAgICAgIF9mZXRjaCA9IGN1c3RvbUZldGNoO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZmV0Y2ggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIF9mZXRjaCA9ICguLi5hcmdzKSA9PiBpbXBvcnQoJ0BzdXBhYmFzZS9ub2RlLWZldGNoJykudGhlbigoeyBkZWZhdWx0OiBmZXRjaCB9KSA9PiBmZXRjaCguLi5hcmdzKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBfZmV0Y2ggPSBmZXRjaDtcbiAgICB9XG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiBfZmV0Y2goLi4uYXJncyk7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSZXNwb25zZSA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgIGlmICh0eXBlb2YgUmVzcG9uc2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuICh5aWVsZCBpbXBvcnQoJ0BzdXBhYmFzZS9ub2RlLWZldGNoJykpLlJlc3BvbnNlO1xuICAgIH1cbiAgICByZXR1cm4gUmVzcG9uc2U7XG59KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInJlc29sdmVGZXRjaCIsImN1c3RvbUZldGNoIiwiX2ZldGNoIiwiZmV0Y2giLCJhcmdzIiwiZGVmYXVsdCIsInJlc29sdmVSZXNwb25zZSIsIlJlc3BvbnNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/version.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/lib/version.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\n// generated by genversion\nconst version = \"2.5.5\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL3ZlcnNpb24uanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBCQUEwQjtBQUNuQixNQUFNQSxVQUFVLFFBQVEsQ0FDL0IsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL2xpYi92ZXJzaW9uLmpzP2ZhMzkiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGJ5IGdlbnZlcnNpb25cbmV4cG9ydCBjb25zdCB2ZXJzaW9uID0gJzIuNS41Jztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZlcnNpb24uanMubWFwIl0sIm5hbWVzIjpbInZlcnNpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/version.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js": +/*!************************************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js ***! + \************************************************************************************/ +/***/ ((__unused_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 */ StorageBucketApi)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/constants */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/errors */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/fetch */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/helpers */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nclass StorageBucketApi {\n constructor(url, headers = {}, fetch){\n this.url = url;\n this.headers = Object.assign(Object.assign({}, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_HEADERS), headers);\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(fetch);\n }\n /**\n * Retrieves the details of all Storage buckets within an existing project.\n */ listBuckets() {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/bucket`, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Retrieves the details of an existing Storage bucket.\n *\n * @param id The unique identifier of the bucket you would like to retrieve.\n */ getBucket(id) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/bucket/${id}`, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a new Storage bucket\n *\n * @param id A unique identifier for the bucket you are creating.\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations. By default, buckets are private.\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n * The global file size limit takes precedence over this value.\n * The default value is null, which doesn't set a per bucket file size limit.\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n * The default value is null, which allows files with all mime types to be uploaded.\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n * @returns newly created bucket id\n */ createBucket(id, options = {\n public: false\n }) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/bucket`, {\n id,\n name: id,\n public: options.public,\n file_size_limit: options.fileSizeLimit,\n allowed_mime_types: options.allowedMimeTypes\n }, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Updates a Storage bucket\n *\n * @param id A unique identifier for the bucket you are updating.\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations.\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n * The global file size limit takes precedence over this value.\n * The default value is null, which doesn't set a per bucket file size limit.\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n * The default value is null, which allows files with all mime types to be uploaded.\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n */ updateBucket(id, options) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.put)(this.fetch, `${this.url}/bucket/${id}`, {\n id,\n name: id,\n public: options.public,\n file_size_limit: options.fileSizeLimit,\n allowed_mime_types: options.allowedMimeTypes\n }, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Removes all objects inside a single bucket.\n *\n * @param id The unique identifier of the bucket you would like to empty.\n */ emptyBucket(id) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/bucket/${id}/empty`, {}, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\n * You must first `empty()` the bucket.\n *\n * @param id The unique identifier of the bucket you would like to delete.\n */ deleteBucket(id) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.remove)(this.fetch, `${this.url}/bucket/${id}`, {}, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n} //# sourceMappingURL=StorageBucketApi.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvcGFja2FnZXMvU3RvcmFnZUJ1Y2tldEFwaS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUlBLFlBQVksU0FBSyxJQUFJLFNBQUksQ0FBQ0EsU0FBUyxJQUFLLFNBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVM7SUFDbkYsU0FBU0MsTUFBTUMsS0FBSztRQUFJLE9BQU9BLGlCQUFpQkgsSUFBSUcsUUFBUSxJQUFJSCxFQUFFLFNBQVVJLE9BQU87WUFBSUEsUUFBUUQ7UUFBUTtJQUFJO0lBQzNHLE9BQU8sSUFBS0gsQ0FBQUEsS0FBTUEsQ0FBQUEsSUFBSUssT0FBTSxDQUFDLEVBQUcsU0FBVUQsT0FBTyxFQUFFRSxNQUFNO1FBQ3JELFNBQVNDLFVBQVVKLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxVQUFVUSxJQUFJLENBQUNOO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDMUYsU0FBU0MsU0FBU1IsS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFNBQVMsQ0FBQyxRQUFRLENBQUNFO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDN0YsU0FBU0YsS0FBS0ksTUFBTTtZQUFJQSxPQUFPQyxJQUFJLEdBQUdULFFBQVFRLE9BQU9ULEtBQUssSUFBSUQsTUFBTVUsT0FBT1QsS0FBSyxFQUFFVyxJQUFJLENBQUNQLFdBQVdJO1FBQVc7UUFDN0dILEtBQUssQ0FBQ1AsWUFBWUEsVUFBVWMsS0FBSyxDQUFDakIsU0FBU0MsY0FBYyxFQUFFLEdBQUdVLElBQUk7SUFDdEU7QUFDSjtBQUNtRDtBQUNKO0FBQ087QUFDUjtBQUMvQixNQUFNYztJQUNqQkMsWUFBWUMsR0FBRyxFQUFFQyxVQUFVLENBQUMsQ0FBQyxFQUFFQyxLQUFLLENBQUU7UUFDbEMsSUFB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LE9BQU87Z0JBQUs7WUFDL0IsRUFDQSxPQUFPQSxPQUFPO2dCQUNWLElBQUlmLDJEQUFjQSxDQUFDZSxRQUFRO29CQUN2QixPQUFPO3dCQUFFRCxNQUFNO3dCQUFNQztvQkFBTTtnQkFDL0I7Z0JBQ0EsTUFBTUE7WUFDVjtRQUNKO0lBQ0o7QUFDSixFQUNBLDRDQUE0QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9wYWNrYWdlcy9TdG9yYWdlQnVja2V0QXBpLmpzP2I1MjUiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBERUZBVUxUX0hFQURFUlMgfSBmcm9tICcuLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IGlzU3RvcmFnZUVycm9yIH0gZnJvbSAnLi4vbGliL2Vycm9ycyc7XG5pbXBvcnQgeyBnZXQsIHBvc3QsIHB1dCwgcmVtb3ZlIH0gZnJvbSAnLi4vbGliL2ZldGNoJztcbmltcG9ydCB7IHJlc29sdmVGZXRjaCB9IGZyb20gJy4uL2xpYi9oZWxwZXJzJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0b3JhZ2VCdWNrZXRBcGkge1xuICAgIGNvbnN0cnVjdG9yKHVybCwgaGVhZGVycyA9IHt9LCBmZXRjaCkge1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX0hFQURFUlMpLCBoZWFkZXJzKTtcbiAgICAgICAgdGhpcy5mZXRjaCA9IHJlc29sdmVGZXRjaChmZXRjaCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgZGV0YWlscyBvZiBhbGwgU3RvcmFnZSBidWNrZXRzIHdpdGhpbiBhbiBleGlzdGluZyBwcm9qZWN0LlxuICAgICAqL1xuICAgIGxpc3RCdWNrZXRzKCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZ2V0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9idWNrZXRgLCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgZGV0YWlscyBvZiBhbiBleGlzdGluZyBTdG9yYWdlIGJ1Y2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGJ1Y2tldCB5b3Ugd291bGQgbGlrZSB0byByZXRyaWV2ZS5cbiAgICAgKi9cbiAgICBnZXRCdWNrZXQoaWQpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGdldCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vYnVja2V0LyR7aWR9YCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IFN0b3JhZ2UgYnVja2V0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGJ1Y2tldCB5b3UgYXJlIGNyZWF0aW5nLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnB1YmxpYyBUaGUgdmlzaWJpbGl0eSBvZiB0aGUgYnVja2V0LiBQdWJsaWMgYnVja2V0cyBkb24ndCByZXF1aXJlIGFuIGF1dGhvcml6YXRpb24gdG9rZW4gdG8gZG93bmxvYWQgb2JqZWN0cywgYnV0IHN0aWxsIHJlcXVpcmUgYSB2YWxpZCB0b2tlbiBmb3IgYWxsIG90aGVyIG9wZXJhdGlvbnMuIEJ5IGRlZmF1bHQsIGJ1Y2tldHMgYXJlIHByaXZhdGUuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZmlsZVNpemVMaW1pdCBzcGVjaWZpZXMgdGhlIG1heCBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCBjYW4gYmUgdXBsb2FkZWQgdG8gdGhpcyBidWNrZXQuXG4gICAgICogVGhlIGdsb2JhbCBmaWxlIHNpemUgbGltaXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoaXMgdmFsdWUuXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgbnVsbCwgd2hpY2ggZG9lc24ndCBzZXQgYSBwZXIgYnVja2V0IGZpbGUgc2l6ZSBsaW1pdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5hbGxvd2VkTWltZVR5cGVzIHNwZWNpZmllcyB0aGUgYWxsb3dlZCBtaW1lIHR5cGVzIHRoYXQgdGhpcyBidWNrZXQgY2FuIGFjY2VwdCBkdXJpbmcgdXBsb2FkLlxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG51bGwsIHdoaWNoIGFsbG93cyBmaWxlcyB3aXRoIGFsbCBtaW1lIHR5cGVzIHRvIGJlIHVwbG9hZGVkLlxuICAgICAqIEVhY2ggbWltZSB0eXBlIHNwZWNpZmllZCBjYW4gYmUgYSB3aWxkY2FyZCwgZS5nLiBpbWFnZS8qLCBvciBhIHNwZWNpZmljIG1pbWUgdHlwZSwgZS5nLiBpbWFnZS9wbmcuXG4gICAgICogQHJldHVybnMgbmV3bHkgY3JlYXRlZCBidWNrZXQgaWRcbiAgICAgKi9cbiAgICBjcmVhdGVCdWNrZXQoaWQsIG9wdGlvbnMgPSB7XG4gICAgICAgIHB1YmxpYzogZmFsc2UsXG4gICAgfSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcG9zdCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vYnVja2V0YCwge1xuICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogaWQsXG4gICAgICAgICAgICAgICAgICAgIHB1YmxpYzogb3B0aW9ucy5wdWJsaWMsXG4gICAgICAgICAgICAgICAgICAgIGZpbGVfc2l6ZV9saW1pdDogb3B0aW9ucy5maWxlU2l6ZUxpbWl0LFxuICAgICAgICAgICAgICAgICAgICBhbGxvd2VkX21pbWVfdHlwZXM6IG9wdGlvbnMuYWxsb3dlZE1pbWVUeXBlcyxcbiAgICAgICAgICAgICAgICB9LCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYSBTdG9yYWdlIGJ1Y2tldFxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBidWNrZXQgeW91IGFyZSB1cGRhdGluZy5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5wdWJsaWMgVGhlIHZpc2liaWxpdHkgb2YgdGhlIGJ1Y2tldC4gUHVibGljIGJ1Y2tldHMgZG9uJ3QgcmVxdWlyZSBhbiBhdXRob3JpemF0aW9uIHRva2VuIHRvIGRvd25sb2FkIG9iamVjdHMsIGJ1dCBzdGlsbCByZXF1aXJlIGEgdmFsaWQgdG9rZW4gZm9yIGFsbCBvdGhlciBvcGVyYXRpb25zLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmZpbGVTaXplTGltaXQgc3BlY2lmaWVzIHRoZSBtYXggZmlsZSBzaXplIGluIGJ5dGVzIHRoYXQgY2FuIGJlIHVwbG9hZGVkIHRvIHRoaXMgYnVja2V0LlxuICAgICAqIFRoZSBnbG9iYWwgZmlsZSBzaXplIGxpbWl0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGlzIHZhbHVlLlxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG51bGwsIHdoaWNoIGRvZXNuJ3Qgc2V0IGEgcGVyIGJ1Y2tldCBmaWxlIHNpemUgbGltaXQuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYWxsb3dlZE1pbWVUeXBlcyBzcGVjaWZpZXMgdGhlIGFsbG93ZWQgbWltZSB0eXBlcyB0aGF0IHRoaXMgYnVja2V0IGNhbiBhY2NlcHQgZHVyaW5nIHVwbG9hZC5cbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBudWxsLCB3aGljaCBhbGxvd3MgZmlsZXMgd2l0aCBhbGwgbWltZSB0eXBlcyB0byBiZSB1cGxvYWRlZC5cbiAgICAgKiBFYWNoIG1pbWUgdHlwZSBzcGVjaWZpZWQgY2FuIGJlIGEgd2lsZGNhcmQsIGUuZy4gaW1hZ2UvKiwgb3IgYSBzcGVjaWZpYyBtaW1lIHR5cGUsIGUuZy4gaW1hZ2UvcG5nLlxuICAgICAqL1xuICAgIHVwZGF0ZUJ1Y2tldChpZCwgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcHV0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9idWNrZXQvJHtpZH1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgcHVibGljOiBvcHRpb25zLnB1YmxpYyxcbiAgICAgICAgICAgICAgICAgICAgZmlsZV9zaXplX2xpbWl0OiBvcHRpb25zLmZpbGVTaXplTGltaXQsXG4gICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfbWltZV90eXBlczogb3B0aW9ucy5hbGxvd2VkTWltZVR5cGVzLFxuICAgICAgICAgICAgICAgIH0sIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgb2JqZWN0cyBpbnNpZGUgYSBzaW5nbGUgYnVja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYnVja2V0IHlvdSB3b3VsZCBsaWtlIHRvIGVtcHR5LlxuICAgICAqL1xuICAgIGVtcHR5QnVja2V0KGlkKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBwb3N0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9idWNrZXQvJHtpZH0vZW1wdHlgLCB7fSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGFuIGV4aXN0aW5nIGJ1Y2tldC4gQSBidWNrZXQgY2FuJ3QgYmUgZGVsZXRlZCB3aXRoIGV4aXN0aW5nIG9iamVjdHMgaW5zaWRlIGl0LlxuICAgICAqIFlvdSBtdXN0IGZpcnN0IGBlbXB0eSgpYCB0aGUgYnVja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYnVja2V0IHlvdSB3b3VsZCBsaWtlIHRvIGRlbGV0ZS5cbiAgICAgKi9cbiAgICBkZWxldGVCdWNrZXQoaWQpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlbW92ZSh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vYnVja2V0LyR7aWR9YCwge30sIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdG9yYWdlQnVja2V0QXBpLmpzLm1hcCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJERUZBVUxUX0hFQURFUlMiLCJpc1N0b3JhZ2VFcnJvciIsImdldCIsInBvc3QiLCJwdXQiLCJyZW1vdmUiLCJyZXNvbHZlRmV0Y2giLCJTdG9yYWdlQnVja2V0QXBpIiwiY29uc3RydWN0b3IiLCJ1cmwiLCJoZWFkZXJzIiwiZmV0Y2giLCJPYmplY3QiLCJhc3NpZ24iLCJsaXN0QnVja2V0cyIsImRhdGEiLCJlcnJvciIsImdldEJ1Y2tldCIsImlkIiwiY3JlYXRlQnVja2V0Iiwib3B0aW9ucyIsInB1YmxpYyIsIm5hbWUiLCJmaWxlX3NpemVfbGltaXQiLCJmaWxlU2l6ZUxpbWl0IiwiYWxsb3dlZF9taW1lX3R5cGVzIiwiYWxsb3dlZE1pbWVUeXBlcyIsInVwZGF0ZUJ1Y2tldCIsImVtcHR5QnVja2V0IiwiZGVsZXRlQnVja2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js ***! + \**********************************************************************************/ +/***/ ((__unused_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 */ StorageFileApi)\n/* harmony export */ });\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/errors */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/fetch */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/helpers */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nconst DEFAULT_SEARCH_OPTIONS = {\n limit: 100,\n offset: 0,\n sortBy: {\n column: \"name\",\n order: \"asc\"\n }\n};\nconst DEFAULT_FILE_OPTIONS = {\n cacheControl: \"3600\",\n contentType: \"text/plain;charset=UTF-8\",\n upsert: false\n};\nclass StorageFileApi {\n constructor(url, headers = {}, bucketId, fetch){\n this.url = url;\n this.headers = headers;\n this.bucketId = bucketId;\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_0__.resolveFetch)(fetch);\n }\n /**\n * Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one.\n *\n * @param method HTTP method.\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param fileBody The body of the file to be stored in the bucket.\n */ uploadOrUpdate(method, path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n let body;\n const options = Object.assign(Object.assign({}, DEFAULT_FILE_OPTIONS), fileOptions);\n const headers = Object.assign(Object.assign({}, this.headers), method === \"POST\" && {\n \"x-upsert\": String(options.upsert)\n });\n if (typeof Blob !== \"undefined\" && fileBody instanceof Blob) {\n body = new FormData();\n body.append(\"cacheControl\", options.cacheControl);\n body.append(\"\", fileBody);\n } else if (typeof FormData !== \"undefined\" && fileBody instanceof FormData) {\n body = fileBody;\n body.append(\"cacheControl\", options.cacheControl);\n } else {\n body = fileBody;\n headers[\"cache-control\"] = `max-age=${options.cacheControl}`;\n headers[\"content-type\"] = options.contentType;\n }\n const cleanPath = this._removeEmptyFolders(path);\n const _path = this._getFinalPath(cleanPath);\n const res = yield this.fetch(`${this.url}/object/${_path}`, Object.assign({\n method,\n body: body,\n headers\n }, (options === null || options === void 0 ? void 0 : options.duplex) ? {\n duplex: options.duplex\n } : {}));\n const data = yield res.json();\n if (res.ok) {\n return {\n data: {\n path: cleanPath,\n id: data.Id,\n fullPath: data.Key\n },\n error: null\n };\n } else {\n const error = data;\n return {\n data: null,\n error\n };\n }\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Uploads a file to an existing bucket.\n *\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param fileBody The body of the file to be stored in the bucket.\n */ upload(path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function*() {\n return this.uploadOrUpdate(\"POST\", path, fileBody, fileOptions);\n });\n }\n /**\n * Upload a file with a token generated from `createSignedUploadUrl`.\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param token The token generated from `createSignedUploadUrl`\n * @param fileBody The body of the file to be stored in the bucket.\n */ uploadToSignedUrl(path, token, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function*() {\n const cleanPath = this._removeEmptyFolders(path);\n const _path = this._getFinalPath(cleanPath);\n const url = new URL(this.url + `/object/upload/sign/${_path}`);\n url.searchParams.set(\"token\", token);\n try {\n let body;\n const options = Object.assign({\n upsert: DEFAULT_FILE_OPTIONS.upsert\n }, fileOptions);\n const headers = Object.assign(Object.assign({}, this.headers), {\n \"x-upsert\": String(options.upsert)\n });\n if (typeof Blob !== \"undefined\" && fileBody instanceof Blob) {\n body = new FormData();\n body.append(\"cacheControl\", options.cacheControl);\n body.append(\"\", fileBody);\n } else if (typeof FormData !== \"undefined\" && fileBody instanceof FormData) {\n body = fileBody;\n body.append(\"cacheControl\", options.cacheControl);\n } else {\n body = fileBody;\n headers[\"cache-control\"] = `max-age=${options.cacheControl}`;\n headers[\"content-type\"] = options.contentType;\n }\n const res = yield this.fetch(url.toString(), {\n method: \"PUT\",\n body: body,\n headers\n });\n const data = yield res.json();\n if (res.ok) {\n return {\n data: {\n path: cleanPath,\n fullPath: data.Key\n },\n error: null\n };\n } else {\n const error = data;\n return {\n data: null,\n error\n };\n }\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a signed upload URL.\n * Signed upload URLs can be used to upload files to the bucket without further authentication.\n * They are valid for 2 hours.\n * @param path The file path, including the current file name. For example `folder/image.png`.\n */ createSignedUploadUrl(path) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n let _path = this._getFinalPath(path);\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/upload/sign/${_path}`, {}, {\n headers: this.headers\n });\n const url = new URL(this.url + data.url);\n const token = url.searchParams.get(\"token\");\n if (!token) {\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_1__.StorageError(\"No token returned by API\");\n }\n return {\n data: {\n signedUrl: url.toString(),\n path,\n token\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Replaces an existing file at the specified path with a new one.\n *\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to update.\n * @param fileBody The body of the file to be stored in the bucket.\n */ update(path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function*() {\n return this.uploadOrUpdate(\"PUT\", path, fileBody, fileOptions);\n });\n }\n /**\n * Moves an existing file to a new path in the same bucket.\n *\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n * @param toPath The new file path, including the new file name. For example `folder/image-new.png`.\n */ move(fromPath, toPath) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/move`, {\n bucketId: this.bucketId,\n sourceKey: fromPath,\n destinationKey: toPath\n }, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Copies an existing file to a new path in the same bucket.\n *\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n * @param toPath The new file path, including the new file name. For example `folder/image-copy.png`.\n */ copy(fromPath, toPath) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/copy`, {\n bucketId: this.bucketId,\n sourceKey: fromPath,\n destinationKey: toPath\n }, {\n headers: this.headers\n });\n return {\n data: {\n path: data.Key\n },\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a signed URL. Use a signed URL to share a file for a fixed amount of time.\n *\n * @param path The file path, including the current file name. For example `folder/image.png`.\n * @param expiresIn The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n * @param options.transform Transform the asset before serving it to the client.\n */ createSignedUrl(path, expiresIn, options) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n let _path = this._getFinalPath(path);\n let data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/sign/${_path}`, Object.assign({\n expiresIn\n }, (options === null || options === void 0 ? void 0 : options.transform) ? {\n transform: options.transform\n } : {}), {\n headers: this.headers\n });\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `&download=${options.download === true ? \"\" : options.download}` : \"\";\n const signedUrl = encodeURI(`${this.url}${data.signedURL}${downloadQueryParam}`);\n data = {\n signedUrl\n };\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Creates multiple signed URLs. Use a signed URL to share a file for a fixed amount of time.\n *\n * @param paths The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`.\n * @param expiresIn The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n */ createSignedUrls(paths, expiresIn, options) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/sign/${this.bucketId}`, {\n expiresIn,\n paths\n }, {\n headers: this.headers\n });\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `&download=${options.download === true ? \"\" : options.download}` : \"\";\n return {\n data: data.map((datum)=>Object.assign(Object.assign({}, datum), {\n signedUrl: datum.signedURL ? encodeURI(`${this.url}${datum.signedURL}${downloadQueryParam}`) : null\n })),\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead.\n *\n * @param path The full path and file name of the file to be downloaded. For example `folder/image.png`.\n * @param options.transform Transform the asset before serving it to the client.\n */ download(path, options) {\n return __awaiter(this, void 0, void 0, function*() {\n const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== \"undefined\";\n const renderPath = wantsTransformation ? \"render/image/authenticated\" : \"object\";\n const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\n const queryString = transformationQuery ? `?${transformationQuery}` : \"\";\n try {\n const _path = this._getFinalPath(path);\n const res = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/${renderPath}/${_path}${queryString}`, {\n headers: this.headers,\n noResolveJson: true\n });\n const data = yield res.blob();\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * A simple convenience function to get the URL for an asset in a public bucket. If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset.\n * This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset.\n *\n * @param path The path and name of the file to generate the public URL for. For example `folder/image.png`.\n * @param options.download Triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n * @param options.transform Transform the asset before serving it to the client.\n */ getPublicUrl(path, options) {\n const _path = this._getFinalPath(path);\n const _queryString = [];\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `download=${options.download === true ? \"\" : options.download}` : \"\";\n if (downloadQueryParam !== \"\") {\n _queryString.push(downloadQueryParam);\n }\n const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== \"undefined\";\n const renderPath = wantsTransformation ? \"render/image\" : \"object\";\n const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\n if (transformationQuery !== \"\") {\n _queryString.push(transformationQuery);\n }\n let queryString = _queryString.join(\"&\");\n if (queryString !== \"\") {\n queryString = `?${queryString}`;\n }\n return {\n data: {\n publicUrl: encodeURI(`${this.url}/${renderPath}/public/${_path}${queryString}`)\n }\n };\n }\n /**\n * Deletes files within the same bucket\n *\n * @param paths An array of files to delete, including the path and file name. For example [`'folder/image.png'`].\n */ remove(paths) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.remove)(this.fetch, `${this.url}/object/${this.bucketId}`, {\n prefixes: paths\n }, {\n headers: this.headers\n });\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n /**\n * Get file metadata\n * @param id the file id to retrieve metadata\n */ // async getMetadata(\n // id: string\n // ): Promise<\n // | {\n // data: Metadata\n // error: null\n // }\n // | {\n // data: null\n // error: StorageError\n // }\n // > {\n // try {\n // const data = await get(this.fetch, `${this.url}/metadata/${id}`, { headers: this.headers })\n // return { data, error: null }\n // } catch (error) {\n // if (isStorageError(error)) {\n // return { data: null, error }\n // }\n // throw error\n // }\n // }\n /**\n * Update file metadata\n * @param id the file id to update metadata\n * @param meta the new file metadata\n */ // async updateMetadata(\n // id: string,\n // meta: Metadata\n // ): Promise<\n // | {\n // data: Metadata\n // error: null\n // }\n // | {\n // data: null\n // error: StorageError\n // }\n // > {\n // try {\n // const data = await post(\n // this.fetch,\n // `${this.url}/metadata/${id}`,\n // { ...meta },\n // { headers: this.headers }\n // )\n // return { data, error: null }\n // } catch (error) {\n // if (isStorageError(error)) {\n // return { data: null, error }\n // }\n // throw error\n // }\n // }\n /**\n * Lists all the files within a bucket.\n * @param path The folder path.\n */ list(path, options, parameters) {\n return __awaiter(this, void 0, void 0, function*() {\n try {\n const body = Object.assign(Object.assign(Object.assign({}, DEFAULT_SEARCH_OPTIONS), options), {\n prefix: path || \"\"\n });\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/list/${this.bucketId}`, body, {\n headers: this.headers\n }, parameters);\n return {\n data,\n error: null\n };\n } catch (error) {\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\n return {\n data: null,\n error\n };\n }\n throw error;\n }\n });\n }\n _getFinalPath(path) {\n return `${this.bucketId}/${path}`;\n }\n _removeEmptyFolders(path) {\n return path.replace(/^\\/|\\/$/g, \"\").replace(/\\/+/g, \"/\");\n }\n transformOptsToQueryString(transform) {\n const params = [];\n if (transform.width) {\n params.push(`width=${transform.width}`);\n }\n if (transform.height) {\n params.push(`height=${transform.height}`);\n }\n if (transform.resize) {\n params.push(`resize=${transform.resize}`);\n }\n if (transform.format) {\n params.push(`format=${transform.format}`);\n }\n if (transform.quality) {\n params.push(`quality=${transform.quality}`);\n }\n return params.join(\"&\");\n }\n} //# sourceMappingURL=StorageFileApi.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvcGFja2FnZXMvU3RvcmFnZUZpbGVBcGkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUlBLFlBQVksU0FBSyxJQUFJLFNBQUksQ0FBQ0EsU0FBUyxJQUFLLFNBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVM7SUFDbkYsU0FBU0MsTUFBTUMsS0FBSztRQUFJLE9BQU9BLGlCQUFpQkgsSUFBSUcsUUFBUSxJQUFJSCxFQUFFLFNBQVVJLE9BQU87WUFBSUEsUUFBUUQ7UUFBUTtJQUFJO0lBQzNHLE9BQU8sSUFBS0gsQ0FBQUEsS0FBTUEsQ0FBQUEsSUFBSUssT0FBTSxDQUFDLEVBQUcsU0FBVUQsT0FBTyxFQUFFRSxNQUFNO1FBQ3JELFNBQVNDLFVBQVVKLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxVQUFVUSxJQUFJLENBQUNOO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDMUYsU0FBU0MsU0FBU1IsS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFNBQVMsQ0FBQyxRQUFRLENBQUNFO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDN0YsU0FBU0YsS0FBS0ksTUFBTTtZQUFJQSxPQUFPQyxJQUFJLEdBQUdULFFBQVFRLE9BQU9ULEtBQUssSUFBSUQsTUFBTVUsT0FBT1QsS0FBSyxFQUFFVyxJQUFJLENBQUNQLFdBQVdJO1FBQVc7UUFDN0dILEtBQUssQ0FBQ1AsWUFBWUEsVUFBVWMsS0FBSyxDQUFDakIsU0FBU0MsY0FBYyxFQUFFLEdBQUdVLElBQUk7SUFDdEU7QUFDSjtBQUM2RDtBQUNaO0FBQ0g7QUFDOUMsTUFBTWEseUJBQXlCO0lBQzNCQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsUUFBUTtRQUNKQyxRQUFRO1FBQ1JDLE9BQU87SUFDWDtBQUNKO0FBQ0EsTUFBTUMsdUJBQXVCO0lBQ3pCQyxjQUFjO0lBQ2RDLGFBQWE7SUFDYkMsUUFBUTtBQUNaO0FBQ2UsTUFBTUM7SUFDakJDLFlBQVlDLEdBQUcsRUFBRUMsVUFBVSxDQUFDLENBQUMsRUFBRUMsUUFBUSxFQUFFQyxLQUFLLENBQUU7UUFDNUMsSUFBSSxDQUFDSCxHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsS0FBSyxHQUFHaEIsMERBQVlBLENBQUNnQjtJQUM5QjtJQUNBOzs7Ozs7S0FNQyxHQUNEQyxlQUFlQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUU7UUFDaEQsT0FBTzdDLFVBQVUsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUc7WUFDbkMsSUFBSTtnQkFDQSxJQUFJOEM7Z0JBQ0osTUFBTUMsVUFBVUMsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHbEIsdUJBQXVCYztnQkFDdkUsTUFBTVAsVUFBVVUsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQ1gsT0FBTyxHQUFJSSxXQUFXLFVBQVU7b0JBQUUsWUFBWVEsT0FBT0gsUUFBUWIsTUFBTTtnQkFBRTtnQkFDMUgsSUFBSSxPQUFPaUIsU0FBUyxlQUFlUCxvQkFBb0JPLE1BQU07b0JBQ3pETCxPQUFPLElBQUlNO29CQUNYTixLQUFLTyxNQUFNLENBQUMsZ0JBQWdCTixRQUFRZixZQUFZO29CQUNoRGMsS0FBS08sTUFBTSxDQUFDLElBQUlUO2dCQUNwQixPQUNLLElBQUksT0FBT1EsYUFBYSxlQUFlUixvQkFBb0JRLFVBQVU7b0JBQ3RFTixPQUFPRjtvQkFDUEUsS0FBS08sTUFBTSxDQUFDLGdCQUFnQk4sUUFBUWYsWUFBWTtnQkFDcEQsT0FDSztvQkFDRGMsT0FBT0Y7b0JBQ1BOLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLFFBQVEsRUFBRVMsUUFBUWYsWUFBWSxDQUFDLENBQUM7b0JBQzVETSxPQUFPLENBQUMsZUFBZSxHQUFHUyxRQUFRZCxXQUFXO2dCQUNqRDtnQkFDQSxNQUFNcUIsWUFBWSxJQUFJLENBQUNDLG1CQUFtQixDQUFDWjtnQkFDM0MsTUFBTWEsUUFBUSxJQUFJLENBQUNDLGFBQWEsQ0FBQ0g7Z0JBQ2pDLE1BQU1JLE1BQU0sTUFBTSxJQUFJLENBQUNsQixLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0gsR0FBRyxDQUFDLFFBQVEsRUFBRW1CLE1BQU0sQ0FBQyxFQUFFUixPQUFPQyxNQUFNLENBQUM7b0JBQUVQO29CQUFRSSxNQUFNQTtvQkFBTVI7Z0JBQVEsR0FBSSxDQUFDUyxZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUVksTUFBTSxJQUFJO29CQUFFQSxRQUFRWixRQUFRWSxNQUFNO2dCQUFDLElBQUksQ0FBQztnQkFDL00sTUFBTUMsT0FBTyxNQUFNRixJQUFJRyxJQUFJO2dCQUMzQixJQUFJSCxJQUFJSSxFQUFFLEVBQUU7b0JBQ1IsT0FBTzt3QkFDSEYsTUFBTTs0QkFBRWpCLE1BQU1XOzRCQUFXUyxJQUFJSCxLQUFLSSxFQUFFOzRCQUFFQyxVQUFVTCxLQUFLTSxHQUFHO3dCQUFDO3dCQUN6REMsT0FBTztvQkFDWDtnQkFDSixPQUNLO29CQUNELE1BQU1BLFFBQVFQO29CQUNkLE9BQU87d0JBQUVBLE1BQU07d0JBQU1PO29CQUFNO2dCQUMvQjtZQUNKLEVBQ0EsT0FBT0EsT0FBTztnQkFDVixJQUFJaEQsMkRBQWNBLENBQUNnRCxRQUFRO29CQUN2QixPQUFPO3dCQUFFUCxNQUFNO3dCQUFNTztvQkFBTTtnQkFDL0I7Z0JBQ0EsTUFBTUE7WUFDVjtRQUNKO0lBQ0o7SUFDQTs7Ozs7S0FLQyxHQUNEQyxPQUFPekIsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRTtRQUNoQyxPQUFPN0MsVUFBVSxJQUFJLEVBQUUsS0FBSyxHQUFHLEtBQUssR0FBRztZQUNuQyxPQUFPLElBQUksQ0FBQ3lDLGNBQWMsQ0FBQyxRQUFRRSxNQUFNQyxVQUFVQztRQUN2RDtJQUNKO0lBQ0E7Ozs7O0tBS0MsR0FDRHdCLGtCQUFrQjFCLElBQUksRUFBRTJCLEtBQUssRUFBRTFCLFFBQVEsRUFBRUMsV0FBVyxFQUFFO1FBQ2xELE9BQU83QyxVQUFVLElBQUksRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHO1lBQ25DLE1BQU1zRCxZQUFZLElBQUksQ0FBQ0MsbUJBQW1CLENBQUNaO1lBQzNDLE1BQU1hLFFBQVEsSUFBSSxDQUFDQyxhQUFhLENBQUNIO1lBQ2pDLE1BQU1qQixNQUFNLElBQUlrQyxJQUFJLElBQUksQ0FBQ2xDLEdBQUcsR0FBRyxDQUFDLG9CQUFvQixFQUFFbUIsTUFBTSxDQUFDO1lBQzdEbkIsSUFBSW1DLFlBQVksQ0FBQ0MsR0FBRyxDQUFDLFNBQVNIO1lBQzlCLElBQUk7Z0JBQ0EsSUFBSXhCO2dCQUNKLE1BQU1DLFVBQVVDLE9BQU9DLE1BQU0sQ0FBQztvQkFBRWYsUUFBUUgscUJBQXFCRyxNQUFNO2dCQUFDLEdBQUdXO2dCQUN2RSxNQUFNUCxVQUFVVSxPQUFPQyxNQUFNLENBQUNELE9BQU9DLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDWCxPQUFPLEdBQUc7b0JBQUUsWUFBWVksT0FBT0gsUUFBUWIsTUFBTTtnQkFBRTtnQkFDcEcsSUFBSSxPQUFPaUIsU0FBUyxlQUFlUCxvQkFBb0JPLE1BQU07b0JBQ3pETCxPQUFPLElBQUlNO29CQUNYTixLQUFLTyxNQUFNLENBQUMsZ0JBQWdCTixRQUFRZixZQUFZO29CQUNoRGMsS0FBS08sTUFBTSxDQUFDLElBQUlUO2dCQUNwQixPQUNLLElBQUksT0FBT1EsYUFBYSxlQUFlUixvQkFBb0JRLFVBQVU7b0JBQ3RFTixPQUFPRjtvQkFDUEUsS0FBS08sTUFBTSxDQUFDLGdCQUFnQk4sUUFBUWYsWUFBWTtnQkFDcEQsT0FDSztvQkFDRGMsT0FBT0Y7b0JBQ1BOLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLFFBQVEsRUFBRVMsUUFBUWYsWUFBWSxDQUFDLENBQUM7b0JBQzVETSxPQUFPLENBQUMsZUFBZSxHQUFHUyxRQUFRZCxXQUFXO2dCQUNqRDtnQkFDQSxNQUFNeUIsTUFBTSxNQUFNLElBQUksQ0FBQ2xCLEtBQUssQ0FBQ0gsSUFBSXFDLFFBQVEsSUFBSTtvQkFDekNoQyxRQUFRO29CQUNSSSxNQUFNQTtvQkFDTlI7Z0JBQ0o7Z0JBQ0EsTUFBTXNCLE9BQU8sTUFBTUYsSUFBSUcsSUFBSTtnQkFDM0IsSUFBSUgsSUFBSUksRUFBRSxFQUFFO29CQUNSLE9BQU87d0JBQ0hGLE1BQU07NEJBQUVqQixNQUFNVzs0QkFBV1csVUFBVUwsS0FBS00sR0FBRzt3QkFBQzt3QkFDNUNDLE9BQU87b0JBQ1g7Z0JBQ0osT0FDSztvQkFDRCxNQUFNQSxRQUFRUDtvQkFDZCxPQUFPO3dCQUFFQSxNQUFNO3dCQUFNTztvQkFBTTtnQkFDL0I7WUFDSixFQUNBLE9BQU9BLE9BQU87Z0JBQ1YsSUFBSWhELDJEQUFjQSxDQUFDZ0QsUUFBUTtvQkFDdkIsT0FBTzt3QkFBRVAsTUFBTTt3QkFBTU87b0JBQU07Z0JBQy9CO2dCQUNBLE1BQU1BO1lBQ1Y7UUFDSjtJQUNKO0lBQ0E7Ozs7O0tBS0MsR0FDRFEsc0JBQXNCaEMsSUFBSSxFQUFFO1FBQ3hCLE9BQU8zQyxVQUFVLElBQUksRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHO1lBQ25DLElBQUk7Z0JBQ0EsSUFBSXdELFFBQVEsSUFBSSxDQUFDQyxhQUFhLENBQUNkO2dCQUMvQixNQUFNaUIsT0FBTyxNQUFNdEMsZ0RBQUlBLENBQUMsSUFBSSxDQUFDa0IsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUNILEdBQUcsQ0FBQyxvQkFBb0IsRUFBRW1CLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRztvQkFBRWxCLFNBQVMsSUFBSSxDQUFDQSxPQUFPO2dCQUFDO2dCQUMzRyxNQUFNRCxNQUFNLElBQUlrQyxJQUFJLElBQUksQ0FBQ2xDLEdBQUcsR0FBR3VCLEtBQUt2QixHQUFHO2dCQUN2QyxNQUFNaUMsUUFBUWpDLElBQUltQyxZQUFZLENBQUNuRCxHQUFHLENBQUM7Z0JBQ25DLElBQUksQ0FBQ2lELE9BQU87b0JBQ1IsTUFBTSxJQUFJbEQscURBQVlBLENBQUM7Z0JBQzNCO2dCQUNBLE9BQU87b0JBQUV3QyxNQUFNO3dCQUFFZ0IsV0FBV3ZDLElBQUlxQyxRQUFRO3dCQUFJL0I7d0JBQU0yQjtvQkFBTTtvQkFBR0gsT0FBTztnQkFBSztZQUMzRSxFQUNBLE9BQU9BLE9BQU87Z0JBQ1YsSUFBSWhELDJEQUFjQSxDQUFDZ0QsUUFBUTtvQkFDdkIsT0FBTzt3QkFBRVAsTUFBTTt3QkFBTU87b0JBQU07Z0JBQy9CO2dCQUNBLE1BQU1BO1lBQ1Y7UUFDSjtJQUNKO0lBQ0E7Ozs7O0tBS0MsR0FDRFUsT0FBT2xDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUU7UUFDaEMsT0FBTzdDLFVBQVUsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUc7WUFDbkMsT0FBTyxJQUFJLENBQUN5QyxjQUFjLENBQUMsT0FBT0UsTUFBTUMsVUFBVUM7UUFDdEQ7SUFDSjtJQUNBOzs7OztLQUtDLEdBQ0RpQyxLQUFLQyxRQUFRLEVBQUVDLE1BQU0sRUFBRTtRQUNuQixPQUFPaEYsVUFBVSxJQUFJLEVBQUUsS0FBSyxHQUFHLEtBQUssR0FBRztZQUNuQyxJQUFJO2dCQUNBLE1BQU00RCxPQUFPLE1BQU10QyxnREFBSUEsQ0FBQyxJQUFJLENBQUNrQixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQ0gsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO29CQUFFRSxVQUFVLElBQUksQ0FBQ0EsUUFBUTtvQkFBRTBDLFdBQVdGO29CQUFVRyxnQkFBZ0JGO2dCQUFPLEdBQUc7b0JBQUUxQyxTQUFTLElBQUksQ0FBQ0EsT0FBTztnQkFBQztnQkFDakssT0FBTztvQkFBRXNCO29CQUFNTyxPQUFPO2dCQUFLO1lBQy9CLEVBQ0EsT0FBT0EsT0FBTztnQkFDVixJQUFJaEQsMkRBQWNBLENBQUNnRCxRQUFRO29CQUN2QixPQUFPO3dCQUFFUCxNQUFNO3dCQUFNTztvQkFBTTtnQkFDL0I7Z0JBQ0EsTUFBTUE7WUFDVjtRQUNKO0lBQ0o7SUFDQTs7Ozs7S0FLQyxHQUNEZ0IsS0FBS0osUUFBUSxFQUFFQyxNQUFNLEVBQUU7UUFDbkIsT0FBT2hGLFVBQVUsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUc7WUFDbkMsSUFBSTtnQkFDQSxNQUFNNEQsT0FBTyxNQUFNdEMsZ0RBQUlBLENBQUMsSUFBSSxDQUFDa0IsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUNILEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtvQkFBRUUsVUFBVSxJQUFJLENBQUNBLFFBQVE7b0JBQUUwQyxXQUFXRjtvQkFBVUcsZ0JBQWdCRjtnQkFBTyxHQUFHO29CQUFFMUMsU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQUM7Z0JBQ2pLLE9BQU87b0JBQUVzQixNQUFNO3dCQUFFakIsTUFBTWlCLEtBQUtNLEdBQUc7b0JBQUM7b0JBQUdDLE9BQU87Z0JBQUs7WUFDbkQsRUFDQSxPQUFPQSxPQUFPO2dCQUNWLElBQUloRCwyREFBY0EsQ0FBQ2dELFFBQVE7b0JBQ3ZCLE9BQU87d0JBQUVQLE1BQU07d0JBQU1PO29CQUFNO2dCQUMvQjtnQkFDQSxNQUFNQTtZQUNWO1FBQ0o7SUFDSjtJQUNBOzs7Ozs7O0tBT0MsR0FDRGlCLGdCQUFnQnpDLElBQUksRUFBRTBDLFNBQVMsRUFBRXRDLE9BQU8sRUFBRTtRQUN0QyxPQUFPL0MsVUFBVSxJQUFJLEVBQUUsS0FBSyxHQUFHLEtBQUssR0FBRztZQUNuQyxJQUFJO2dCQUNBLElBQUl3RCxRQUFRLElBQUksQ0FBQ0MsYUFBYSxDQUFDZDtnQkFDL0IsSUFBSWlCLE9BQU8sTUFBTXRDLGdEQUFJQSxDQUFDLElBQUksQ0FBQ2tCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDSCxHQUFHLENBQUMsYUFBYSxFQUFFbUIsTUFBTSxDQUFDLEVBQUVSLE9BQU9DLE1BQU0sQ0FBQztvQkFBRW9DO2dCQUFVLEdBQUksQ0FBQ3RDLFlBQVksUUFBUUEsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJQSxRQUFRdUMsU0FBUyxJQUFJO29CQUFFQSxXQUFXdkMsUUFBUXVDLFNBQVM7Z0JBQUMsSUFBSSxDQUFDLElBQUs7b0JBQUVoRCxTQUFTLElBQUksQ0FBQ0EsT0FBTztnQkFBQztnQkFDN08sTUFBTWlELHFCQUFxQixDQUFDeEMsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVF5QyxRQUFRLElBQ3hGLENBQUMsVUFBVSxFQUFFekMsUUFBUXlDLFFBQVEsS0FBSyxPQUFPLEtBQUt6QyxRQUFReUMsUUFBUSxDQUFDLENBQUMsR0FDaEU7Z0JBQ04sTUFBTVosWUFBWWEsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDcEQsR0FBRyxDQUFDLEVBQUV1QixLQUFLOEIsU0FBUyxDQUFDLEVBQUVILG1CQUFtQixDQUFDO2dCQUMvRTNCLE9BQU87b0JBQUVnQjtnQkFBVTtnQkFDbkIsT0FBTztvQkFBRWhCO29CQUFNTyxPQUFPO2dCQUFLO1lBQy9CLEVBQ0EsT0FBT0EsT0FBTztnQkFDVixJQUFJaEQsMkRBQWNBLENBQUNnRCxRQUFRO29CQUN2QixPQUFPO3dCQUFFUCxNQUFNO3dCQUFNTztvQkFBTTtnQkFDL0I7Z0JBQ0EsTUFBTUE7WUFDVjtRQUNKO0lBQ0o7SUFDQTs7Ozs7O0tBTUMsR0FDRHdCLGlCQUFpQkMsS0FBSyxFQUFFUCxTQUFTLEVBQUV0QyxPQUFPLEVBQUU7UUFDeEMsT0FBTy9DLFVBQVUsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUc7WUFDbkMsSUFBSTtnQkFDQSxNQUFNNEQsT0FBTyxNQUFNdEMsZ0RBQUlBLENBQUMsSUFBSSxDQUFDa0IsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUNILEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDRSxRQUFRLENBQUMsQ0FBQyxFQUFFO29CQUFFOEM7b0JBQVdPO2dCQUFNLEdBQUc7b0JBQUV0RCxTQUFTLElBQUksQ0FBQ0EsT0FBTztnQkFBQztnQkFDOUgsTUFBTWlELHFCQUFxQixDQUFDeEMsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVF5QyxRQUFRLElBQ3hGLENBQUMsVUFBVSxFQUFFekMsUUFBUXlDLFFBQVEsS0FBSyxPQUFPLEtBQUt6QyxRQUFReUMsUUFBUSxDQUFDLENBQUMsR0FDaEU7Z0JBQ04sT0FBTztvQkFDSDVCLE1BQU1BLEtBQUtpQyxHQUFHLENBQUMsQ0FBQ0MsUUFBVzlDLE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBRzZDLFFBQVE7NEJBQUVsQixXQUFXa0IsTUFBTUosU0FBUyxHQUNyRkQsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDcEQsR0FBRyxDQUFDLEVBQUV5RCxNQUFNSixTQUFTLENBQUMsRUFBRUgsbUJBQW1CLENBQUMsSUFDOUQ7d0JBQUs7b0JBQ2ZwQixPQUFPO2dCQUNYO1lBQ0osRUFDQSxPQUFPQSxPQUFPO2dCQUNWLElBQUloRCwyREFBY0EsQ0FBQ2dELFFBQVE7b0JBQ3ZCLE9BQU87d0JBQUVQLE1BQU07d0JBQU1PO29CQUFNO2dCQUMvQjtnQkFDQSxNQUFNQTtZQUNWO1FBQ0o7SUFDSjtJQUNBOzs7OztLQUtDLEdBQ0RxQixTQUFTN0MsSUFBSSxFQUFFSSxPQUFPLEVBQUU7UUFDcEIsT0FBTy9DLFVBQVUsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUc7WUFDbkMsTUFBTStGLHNCQUFzQixPQUFRaEQsQ0FBQUEsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVF1QyxTQUFTLE1BQU07WUFDN0csTUFBTVUsYUFBYUQsc0JBQXNCLCtCQUErQjtZQUN4RSxNQUFNRSxzQkFBc0IsSUFBSSxDQUFDQywwQkFBMEIsQ0FBQyxDQUFDbkQsWUFBWSxRQUFRQSxZQUFZLEtBQUssSUFBSSxLQUFLLElBQUlBLFFBQVF1QyxTQUFTLEtBQUssQ0FBQztZQUN0SSxNQUFNYSxjQUFjRixzQkFBc0IsQ0FBQyxDQUFDLEVBQUVBLG9CQUFvQixDQUFDLEdBQUc7WUFDdEUsSUFBSTtnQkFDQSxNQUFNekMsUUFBUSxJQUFJLENBQUNDLGFBQWEsQ0FBQ2Q7Z0JBQ2pDLE1BQU1lLE1BQU0sTUFBTXJDLCtDQUFHQSxDQUFDLElBQUksQ0FBQ21CLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDSCxHQUFHLENBQUMsQ0FBQyxFQUFFMkQsV0FBVyxDQUFDLEVBQUV4QyxNQUFNLEVBQUUyQyxZQUFZLENBQUMsRUFBRTtvQkFDbEY3RCxTQUFTLElBQUksQ0FBQ0EsT0FBTztvQkFDckI4RCxlQUFlO2dCQUNuQjtnQkFDQSxNQUFNeEMsT0FBTyxNQUFNRixJQUFJMkMsSUFBSTtnQkFDM0IsT0FBTztvQkFBRXpDO29CQUFNTyxPQUFPO2dCQUFLO1lBQy9CLEVBQ0EsT0FBT0EsT0FBTztnQkFDVixJQUFJaEQsMkRBQWNBLENBQUNnRCxRQUFRO29CQUN2QixPQUFPO3dCQUFFUCxNQUFNO3dCQUFNTztvQkFBTTtnQkFDL0I7Z0JBQ0EsTUFBTUE7WUFDVjtRQUNKO0lBQ0o7SUFDQTs7Ozs7OztLQU9DLEdBQ0RtQyxhQUFhM0QsSUFBSSxFQUFFSSxPQUFPLEVBQUU7UUFDeEIsTUFBTVMsUUFBUSxJQUFJLENBQUNDLGFBQWEsQ0FBQ2Q7UUFDakMsTUFBTTRELGVBQWUsRUFBRTtRQUN2QixNQUFNaEIscUJBQXFCLENBQUN4QyxZQUFZLFFBQVFBLFlBQVksS0FBSyxJQUFJLEtBQUssSUFBSUEsUUFBUXlDLFFBQVEsSUFDeEYsQ0FBQyxTQUFTLEVBQUV6QyxRQUFReUMsUUFBUSxLQUFLLE9BQU8sS0FBS3pDLFFBQVF5QyxRQUFRLENBQUMsQ0FBQyxHQUMvRDtRQUNOLElBQUlELHVCQUF1QixJQUFJO1lBQzNCZ0IsYUFBYUMsSUFBSSxDQUFDakI7UUFDdEI7UUFDQSxNQUFNUSxzQkFBc0IsT0FBUWhELENBQUFBLFlBQVksUUFBUUEsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJQSxRQUFRdUMsU0FBUyxNQUFNO1FBQzdHLE1BQU1VLGFBQWFELHNCQUFzQixpQkFBaUI7UUFDMUQsTUFBTUUsc0JBQXNCLElBQUksQ0FBQ0MsMEJBQTBCLENBQUMsQ0FBQ25ELFlBQVksUUFBUUEsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJQSxRQUFRdUMsU0FBUyxLQUFLLENBQUM7UUFDdEksSUFBSVcsd0JBQXdCLElBQUk7WUFDNUJNLGFBQWFDLElBQUksQ0FBQ1A7UUFDdEI7UUFDQSxJQUFJRSxjQUFjSSxhQUFhRSxJQUFJLENBQUM7UUFDcEMsSUFBSU4sZ0JBQWdCLElBQUk7WUFDcEJBLGNBQWMsQ0FBQyxDQUFDLEVBQUVBLFlBQVksQ0FBQztRQUNuQztRQUNBLE9BQU87WUFDSHZDLE1BQU07Z0JBQUU4QyxXQUFXakIsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDcEQsR0FBRyxDQUFDLENBQUMsRUFBRTJELFdBQVcsUUFBUSxFQUFFeEMsTUFBTSxFQUFFMkMsWUFBWSxDQUFDO1lBQUU7UUFDNUY7SUFDSjtJQUNBOzs7O0tBSUMsR0FDRDVFLE9BQU9xRSxLQUFLLEVBQUU7UUFDVixPQUFPNUYsVUFBVSxJQUFJLEVBQUUsS0FBSyxHQUFHLEtBQUssR0FBRztZQUNuQyxJQUFJO2dCQUNBLE1BQU00RCxPQUFPLE1BQU1yQyxrREFBTUEsQ0FBQyxJQUFJLENBQUNpQixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQ0gsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUNFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7b0JBQUVvRSxVQUFVZjtnQkFBTSxHQUFHO29CQUFFdEQsU0FBUyxJQUFJLENBQUNBLE9BQU87Z0JBQUM7Z0JBQzFILE9BQU87b0JBQUVzQjtvQkFBTU8sT0FBTztnQkFBSztZQUMvQixFQUNBLE9BQU9BLE9BQU87Z0JBQ1YsSUFBSWhELDJEQUFjQSxDQUFDZ0QsUUFBUTtvQkFDdkIsT0FBTzt3QkFBRVAsTUFBTTt3QkFBTU87b0JBQU07Z0JBQy9CO2dCQUNBLE1BQU1BO1lBQ1Y7UUFDSjtJQUNKO0lBQ0E7OztLQUdDLEdBQ0QscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixjQUFjO0lBQ2QsUUFBUTtJQUNSLHVCQUF1QjtJQUN2QixvQkFBb0I7SUFDcEIsUUFBUTtJQUNSLFFBQVE7SUFDUixtQkFBbUI7SUFDbkIsNEJBQTRCO0lBQzVCLFFBQVE7SUFDUixNQUFNO0lBQ04sVUFBVTtJQUNWLGtHQUFrRztJQUNsRyxtQ0FBbUM7SUFDbkMsc0JBQXNCO0lBQ3RCLG1DQUFtQztJQUNuQyxxQ0FBcUM7SUFDckMsUUFBUTtJQUNSLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sSUFBSTtJQUNKOzs7O0tBSUMsR0FDRCx3QkFBd0I7SUFDeEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsUUFBUTtJQUNSLHVCQUF1QjtJQUN2QixvQkFBb0I7SUFDcEIsUUFBUTtJQUNSLFFBQVE7SUFDUixtQkFBbUI7SUFDbkIsNEJBQTRCO0lBQzVCLFFBQVE7SUFDUixNQUFNO0lBQ04sVUFBVTtJQUNWLCtCQUErQjtJQUMvQixvQkFBb0I7SUFDcEIsc0NBQXNDO0lBQ3RDLHFCQUFxQjtJQUNyQixrQ0FBa0M7SUFDbEMsUUFBUTtJQUNSLG1DQUFtQztJQUNuQyxzQkFBc0I7SUFDdEIsbUNBQW1DO0lBQ25DLHFDQUFxQztJQUNyQyxRQUFRO0lBQ1Isa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixJQUFJO0lBQ0o7OztLQUdDLEdBQ0R5QyxLQUFLakUsSUFBSSxFQUFFSSxPQUFPLEVBQUU4RCxVQUFVLEVBQUU7UUFDNUIsT0FBTzdHLFVBQVUsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUc7WUFDbkMsSUFBSTtnQkFDQSxNQUFNOEMsT0FBT0UsT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUNELE9BQU9DLE1BQU0sQ0FBQyxDQUFDLEdBQUd4Qix5QkFBeUJzQixVQUFVO29CQUFFK0QsUUFBUW5FLFFBQVE7Z0JBQUc7Z0JBQ25ILE1BQU1pQixPQUFPLE1BQU10QyxnREFBSUEsQ0FBQyxJQUFJLENBQUNrQixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQ0gsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUNFLFFBQVEsQ0FBQyxDQUFDLEVBQUVPLE1BQU07b0JBQUVSLFNBQVMsSUFBSSxDQUFDQSxPQUFPO2dCQUFDLEdBQUd1RTtnQkFDakgsT0FBTztvQkFBRWpEO29CQUFNTyxPQUFPO2dCQUFLO1lBQy9CLEVBQ0EsT0FBT0EsT0FBTztnQkFDVixJQUFJaEQsMkRBQWNBLENBQUNnRCxRQUFRO29CQUN2QixPQUFPO3dCQUFFUCxNQUFNO3dCQUFNTztvQkFBTTtnQkFDL0I7Z0JBQ0EsTUFBTUE7WUFDVjtRQUNKO0lBQ0o7SUFDQVYsY0FBY2QsSUFBSSxFQUFFO1FBQ2hCLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQ0osUUFBUSxDQUFDLENBQUMsRUFBRUksS0FBSyxDQUFDO0lBQ3JDO0lBQ0FZLG9CQUFvQlosSUFBSSxFQUFFO1FBQ3RCLE9BQU9BLEtBQUtvRSxPQUFPLENBQUMsWUFBWSxJQUFJQSxPQUFPLENBQUMsUUFBUTtJQUN4RDtJQUNBYiwyQkFBMkJaLFNBQVMsRUFBRTtRQUNsQyxNQUFNMEIsU0FBUyxFQUFFO1FBQ2pCLElBQUkxQixVQUFVMkIsS0FBSyxFQUFFO1lBQ2pCRCxPQUFPUixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUVsQixVQUFVMkIsS0FBSyxDQUFDLENBQUM7UUFDMUM7UUFDQSxJQUFJM0IsVUFBVTRCLE1BQU0sRUFBRTtZQUNsQkYsT0FBT1IsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFbEIsVUFBVTRCLE1BQU0sQ0FBQyxDQUFDO1FBQzVDO1FBQ0EsSUFBSTVCLFVBQVU2QixNQUFNLEVBQUU7WUFDbEJILE9BQU9SLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRWxCLFVBQVU2QixNQUFNLENBQUMsQ0FBQztRQUM1QztRQUNBLElBQUk3QixVQUFVOEIsTUFBTSxFQUFFO1lBQ2xCSixPQUFPUixJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUVsQixVQUFVOEIsTUFBTSxDQUFDLENBQUM7UUFDNUM7UUFDQSxJQUFJOUIsVUFBVStCLE9BQU8sRUFBRTtZQUNuQkwsT0FBT1IsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFbEIsVUFBVStCLE9BQU8sQ0FBQyxDQUFDO1FBQzlDO1FBQ0EsT0FBT0wsT0FBT1AsSUFBSSxDQUFDO0lBQ3ZCO0FBQ0osRUFDQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvcGFja2FnZXMvU3RvcmFnZUZpbGVBcGkuanM/MTU4YSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGlzU3RvcmFnZUVycm9yLCBTdG9yYWdlRXJyb3IgfSBmcm9tICcuLi9saWIvZXJyb3JzJztcbmltcG9ydCB7IGdldCwgcG9zdCwgcmVtb3ZlIH0gZnJvbSAnLi4vbGliL2ZldGNoJztcbmltcG9ydCB7IHJlc29sdmVGZXRjaCB9IGZyb20gJy4uL2xpYi9oZWxwZXJzJztcbmNvbnN0IERFRkFVTFRfU0VBUkNIX09QVElPTlMgPSB7XG4gICAgbGltaXQ6IDEwMCxcbiAgICBvZmZzZXQ6IDAsXG4gICAgc29ydEJ5OiB7XG4gICAgICAgIGNvbHVtbjogJ25hbWUnLFxuICAgICAgICBvcmRlcjogJ2FzYycsXG4gICAgfSxcbn07XG5jb25zdCBERUZBVUxUX0ZJTEVfT1BUSU9OUyA9IHtcbiAgICBjYWNoZUNvbnRyb2w6ICczNjAwJyxcbiAgICBjb250ZW50VHlwZTogJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCcsXG4gICAgdXBzZXJ0OiBmYWxzZSxcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdG9yYWdlRmlsZUFwaSB7XG4gICAgY29uc3RydWN0b3IodXJsLCBoZWFkZXJzID0ge30sIGJ1Y2tldElkLCBmZXRjaCkge1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgICAgICAgdGhpcy5idWNrZXRJZCA9IGJ1Y2tldElkO1xuICAgICAgICB0aGlzLmZldGNoID0gcmVzb2x2ZUZldGNoKGZldGNoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBsb2FkcyBhIGZpbGUgdG8gYW4gZXhpc3RpbmcgYnVja2V0IG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGZpbGUgYXQgdGhlIHNwZWNpZmllZCBwYXRoIHdpdGggYSBuZXcgb25lLlxuICAgICAqXG4gICAgICogQHBhcmFtIG1ldGhvZCBIVFRQIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgcmVsYXRpdmUgZmlsZSBwYXRoLiBTaG91bGQgYmUgb2YgdGhlIGZvcm1hdCBgZm9sZGVyL3N1YmZvbGRlci9maWxlbmFtZS5wbmdgLiBUaGUgYnVja2V0IG11c3QgYWxyZWFkeSBleGlzdCBiZWZvcmUgYXR0ZW1wdGluZyB0byB1cGxvYWQuXG4gICAgICogQHBhcmFtIGZpbGVCb2R5IFRoZSBib2R5IG9mIHRoZSBmaWxlIHRvIGJlIHN0b3JlZCBpbiB0aGUgYnVja2V0LlxuICAgICAqL1xuICAgIHVwbG9hZE9yVXBkYXRlKG1ldGhvZCwgcGF0aCwgZmlsZUJvZHksIGZpbGVPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBib2R5O1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfRklMRV9PUFRJT05TKSwgZmlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaGVhZGVycyksIChtZXRob2QgPT09ICdQT1NUJyAmJiB7ICd4LXVwc2VydCc6IFN0cmluZyhvcHRpb25zLnVwc2VydCkgfSkpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgZmlsZUJvZHkgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgICAgICAgICAgYm9keS5hcHBlbmQoJ2NhY2hlQ29udHJvbCcsIG9wdGlvbnMuY2FjaGVDb250cm9sKTtcbiAgICAgICAgICAgICAgICAgICAgYm9keS5hcHBlbmQoJycsIGZpbGVCb2R5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIEZvcm1EYXRhICE9PSAndW5kZWZpbmVkJyAmJiBmaWxlQm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBmaWxlQm9keTtcbiAgICAgICAgICAgICAgICAgICAgYm9keS5hcHBlbmQoJ2NhY2hlQ29udHJvbCcsIG9wdGlvbnMuY2FjaGVDb250cm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBmaWxlQm9keTtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1snY2FjaGUtY29udHJvbCddID0gYG1heC1hZ2U9JHtvcHRpb25zLmNhY2hlQ29udHJvbH1gO1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzWydjb250ZW50LXR5cGUnXSA9IG9wdGlvbnMuY29udGVudFR5cGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuUGF0aCA9IHRoaXMuX3JlbW92ZUVtcHR5Rm9sZGVycyhwYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBfcGF0aCA9IHRoaXMuX2dldEZpbmFsUGF0aChjbGVhblBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IHlpZWxkIHRoaXMuZmV0Y2goYCR7dGhpcy51cmx9L29iamVjdC8ke19wYXRofWAsIE9iamVjdC5hc3NpZ24oeyBtZXRob2QsIGJvZHk6IGJvZHksIGhlYWRlcnMgfSwgKChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZHVwbGV4KSA/IHsgZHVwbGV4OiBvcHRpb25zLmR1cGxleCB9IDoge30pKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcy5qc29uKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogeyBwYXRoOiBjbGVhblBhdGgsIGlkOiBkYXRhLklkLCBmdWxsUGF0aDogZGF0YS5LZXkgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGxvYWRzIGEgZmlsZSB0byBhbiBleGlzdGluZyBidWNrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZmlsZSBwYXRoLCBpbmNsdWRpbmcgdGhlIGZpbGUgbmFtZS4gU2hvdWxkIGJlIG9mIHRoZSBmb3JtYXQgYGZvbGRlci9zdWJmb2xkZXIvZmlsZW5hbWUucG5nYC4gVGhlIGJ1Y2tldCBtdXN0IGFscmVhZHkgZXhpc3QgYmVmb3JlIGF0dGVtcHRpbmcgdG8gdXBsb2FkLlxuICAgICAqIEBwYXJhbSBmaWxlQm9keSBUaGUgYm9keSBvZiB0aGUgZmlsZSB0byBiZSBzdG9yZWQgaW4gdGhlIGJ1Y2tldC5cbiAgICAgKi9cbiAgICB1cGxvYWQocGF0aCwgZmlsZUJvZHksIGZpbGVPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRPclVwZGF0ZSgnUE9TVCcsIHBhdGgsIGZpbGVCb2R5LCBmaWxlT3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGxvYWQgYSBmaWxlIHdpdGggYSB0b2tlbiBnZW5lcmF0ZWQgZnJvbSBgY3JlYXRlU2lnbmVkVXBsb2FkVXJsYC5cbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZmlsZSBwYXRoLCBpbmNsdWRpbmcgdGhlIGZpbGUgbmFtZS4gU2hvdWxkIGJlIG9mIHRoZSBmb3JtYXQgYGZvbGRlci9zdWJmb2xkZXIvZmlsZW5hbWUucG5nYC4gVGhlIGJ1Y2tldCBtdXN0IGFscmVhZHkgZXhpc3QgYmVmb3JlIGF0dGVtcHRpbmcgdG8gdXBsb2FkLlxuICAgICAqIEBwYXJhbSB0b2tlbiBUaGUgdG9rZW4gZ2VuZXJhdGVkIGZyb20gYGNyZWF0ZVNpZ25lZFVwbG9hZFVybGBcbiAgICAgKiBAcGFyYW0gZmlsZUJvZHkgVGhlIGJvZHkgb2YgdGhlIGZpbGUgdG8gYmUgc3RvcmVkIGluIHRoZSBidWNrZXQuXG4gICAgICovXG4gICAgdXBsb2FkVG9TaWduZWRVcmwocGF0aCwgdG9rZW4sIGZpbGVCb2R5LCBmaWxlT3B0aW9ucykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5QYXRoID0gdGhpcy5fcmVtb3ZlRW1wdHlGb2xkZXJzKHBhdGgpO1xuICAgICAgICAgICAgY29uc3QgX3BhdGggPSB0aGlzLl9nZXRGaW5hbFBhdGgoY2xlYW5QYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGhpcy51cmwgKyBgL29iamVjdC91cGxvYWQvc2lnbi8ke19wYXRofWApO1xuICAgICAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3Rva2VuJywgdG9rZW4pO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgYm9keTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7IHVwc2VydDogREVGQVVMVF9GSUxFX09QVElPTlMudXBzZXJ0IH0sIGZpbGVPcHRpb25zKTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpLCB7ICd4LXVwc2VydCc6IFN0cmluZyhvcHRpb25zLnVwc2VydCkgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBCbG9iICE9PSAndW5kZWZpbmVkJyAmJiBmaWxlQm9keSBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnY2FjaGVDb250cm9sJywgb3B0aW9ucy5jYWNoZUNvbnRyb2wpO1xuICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnJywgZmlsZUJvZHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnICYmIGZpbGVCb2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IGZpbGVCb2R5O1xuICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnY2FjaGVDb250cm9sJywgb3B0aW9ucy5jYWNoZUNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IGZpbGVCb2R5O1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzWydjYWNoZS1jb250cm9sJ10gPSBgbWF4LWFnZT0ke29wdGlvbnMuY2FjaGVDb250cm9sfWA7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gb3B0aW9ucy5jb250ZW50VHlwZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0geWllbGQgdGhpcy5mZXRjaCh1cmwudG9TdHJpbmcoKSwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZXMuanNvbigpO1xuICAgICAgICAgICAgICAgIGlmIChyZXMub2spIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHsgcGF0aDogY2xlYW5QYXRoLCBmdWxsUGF0aDogZGF0YS5LZXkgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2lnbmVkIHVwbG9hZCBVUkwuXG4gICAgICogU2lnbmVkIHVwbG9hZCBVUkxzIGNhbiBiZSB1c2VkIHRvIHVwbG9hZCBmaWxlcyB0byB0aGUgYnVja2V0IHdpdGhvdXQgZnVydGhlciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBUaGV5IGFyZSB2YWxpZCBmb3IgMiBob3Vycy5cbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZmlsZSBwYXRoLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgZmlsZSBuYW1lLiBGb3IgZXhhbXBsZSBgZm9sZGVyL2ltYWdlLnBuZ2AuXG4gICAgICovXG4gICAgY3JlYXRlU2lnbmVkVXBsb2FkVXJsKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IF9wYXRoID0gdGhpcy5fZ2V0RmluYWxQYXRoKHBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBwb3N0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9vYmplY3QvdXBsb2FkL3NpZ24vJHtfcGF0aH1gLCB7fSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnVybCArIGRhdGEudXJsKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCd0b2tlbicpO1xuICAgICAgICAgICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcignTm8gdG9rZW4gcmV0dXJuZWQgYnkgQVBJJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2lnbmVkVXJsOiB1cmwudG9TdHJpbmcoKSwgcGF0aCwgdG9rZW4gfSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXBsYWNlcyBhbiBleGlzdGluZyBmaWxlIGF0IHRoZSBzcGVjaWZpZWQgcGF0aCB3aXRoIGEgbmV3IG9uZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSByZWxhdGl2ZSBmaWxlIHBhdGguIFNob3VsZCBiZSBvZiB0aGUgZm9ybWF0IGBmb2xkZXIvc3ViZm9sZGVyL2ZpbGVuYW1lLnBuZ2AuIFRoZSBidWNrZXQgbXVzdCBhbHJlYWR5IGV4aXN0IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVwZGF0ZS5cbiAgICAgKiBAcGFyYW0gZmlsZUJvZHkgVGhlIGJvZHkgb2YgdGhlIGZpbGUgdG8gYmUgc3RvcmVkIGluIHRoZSBidWNrZXQuXG4gICAgICovXG4gICAgdXBkYXRlKHBhdGgsIGZpbGVCb2R5LCBmaWxlT3B0aW9ucykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkT3JVcGRhdGUoJ1BVVCcsIHBhdGgsIGZpbGVCb2R5LCBmaWxlT3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhbiBleGlzdGluZyBmaWxlIHRvIGEgbmV3IHBhdGggaW4gdGhlIHNhbWUgYnVja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZyb21QYXRoIFRoZSBvcmlnaW5hbCBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgY3VycmVudCBmaWxlIG5hbWUuIEZvciBleGFtcGxlIGBmb2xkZXIvaW1hZ2UucG5nYC5cbiAgICAgKiBAcGFyYW0gdG9QYXRoIFRoZSBuZXcgZmlsZSBwYXRoLCBpbmNsdWRpbmcgdGhlIG5ldyBmaWxlIG5hbWUuIEZvciBleGFtcGxlIGBmb2xkZXIvaW1hZ2UtbmV3LnBuZ2AuXG4gICAgICovXG4gICAgbW92ZShmcm9tUGF0aCwgdG9QYXRoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBwb3N0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9vYmplY3QvbW92ZWAsIHsgYnVja2V0SWQ6IHRoaXMuYnVja2V0SWQsIHNvdXJjZUtleTogZnJvbVBhdGgsIGRlc3RpbmF0aW9uS2V5OiB0b1BhdGggfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgYW4gZXhpc3RpbmcgZmlsZSB0byBhIG5ldyBwYXRoIGluIHRoZSBzYW1lIGJ1Y2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmcm9tUGF0aCBUaGUgb3JpZ2luYWwgZmlsZSBwYXRoLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgZmlsZSBuYW1lLiBGb3IgZXhhbXBsZSBgZm9sZGVyL2ltYWdlLnBuZ2AuXG4gICAgICogQHBhcmFtIHRvUGF0aCBUaGUgbmV3IGZpbGUgcGF0aCwgaW5jbHVkaW5nIHRoZSBuZXcgZmlsZSBuYW1lLiBGb3IgZXhhbXBsZSBgZm9sZGVyL2ltYWdlLWNvcHkucG5nYC5cbiAgICAgKi9cbiAgICBjb3B5KGZyb21QYXRoLCB0b1BhdGgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC9jb3B5YCwgeyBidWNrZXRJZDogdGhpcy5idWNrZXRJZCwgc291cmNlS2V5OiBmcm9tUGF0aCwgZGVzdGluYXRpb25LZXk6IHRvUGF0aCB9LCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHBhdGg6IGRhdGEuS2V5IH0sIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNpZ25lZCBVUkwuIFVzZSBhIHNpZ25lZCBVUkwgdG8gc2hhcmUgYSBmaWxlIGZvciBhIGZpeGVkIGFtb3VudCBvZiB0aW1lLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggVGhlIGZpbGUgcGF0aCwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGZpbGUgbmFtZS4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS5wbmdgLlxuICAgICAqIEBwYXJhbSBleHBpcmVzSW4gVGhlIG51bWJlciBvZiBzZWNvbmRzIHVudGlsIHRoZSBzaWduZWQgVVJMIGV4cGlyZXMuIEZvciBleGFtcGxlLCBgNjBgIGZvciBhIFVSTCB3aGljaCBpcyB2YWxpZCBmb3Igb25lIG1pbnV0ZS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kb3dubG9hZCB0cmlnZ2VycyB0aGUgZmlsZSBhcyBhIGRvd25sb2FkIGlmIHNldCB0byB0cnVlLiBTZXQgdGhpcyBwYXJhbWV0ZXIgYXMgdGhlIG5hbWUgb2YgdGhlIGZpbGUgaWYgeW91IHdhbnQgdG8gdHJpZ2dlciB0aGUgZG93bmxvYWQgd2l0aCBhIGRpZmZlcmVudCBmaWxlbmFtZS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy50cmFuc2Zvcm0gVHJhbnNmb3JtIHRoZSBhc3NldCBiZWZvcmUgc2VydmluZyBpdCB0byB0aGUgY2xpZW50LlxuICAgICAqL1xuICAgIGNyZWF0ZVNpZ25lZFVybChwYXRoLCBleHBpcmVzSW4sIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IF9wYXRoID0gdGhpcy5fZ2V0RmluYWxQYXRoKHBhdGgpO1xuICAgICAgICAgICAgICAgIGxldCBkYXRhID0geWllbGQgcG9zdCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vb2JqZWN0L3NpZ24vJHtfcGF0aH1gLCBPYmplY3QuYXNzaWduKHsgZXhwaXJlc0luIH0sICgob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnRyYW5zZm9ybSkgPyB7IHRyYW5zZm9ybTogb3B0aW9ucy50cmFuc2Zvcm0gfSA6IHt9KSksIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvd25sb2FkUXVlcnlQYXJhbSA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZG93bmxvYWQpXG4gICAgICAgICAgICAgICAgICAgID8gYCZkb3dubG9hZD0ke29wdGlvbnMuZG93bmxvYWQgPT09IHRydWUgPyAnJyA6IG9wdGlvbnMuZG93bmxvYWR9YFxuICAgICAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpZ25lZFVybCA9IGVuY29kZVVSSShgJHt0aGlzLnVybH0ke2RhdGEuc2lnbmVkVVJMfSR7ZG93bmxvYWRRdWVyeVBhcmFtfWApO1xuICAgICAgICAgICAgICAgIGRhdGEgPSB7IHNpZ25lZFVybCB9O1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBtdWx0aXBsZSBzaWduZWQgVVJMcy4gVXNlIGEgc2lnbmVkIFVSTCB0byBzaGFyZSBhIGZpbGUgZm9yIGEgZml4ZWQgYW1vdW50IG9mIHRpbWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aHMgVGhlIGZpbGUgcGF0aHMgdG8gYmUgZG93bmxvYWRlZCwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGZpbGUgbmFtZXMuIEZvciBleGFtcGxlIGBbJ2ZvbGRlci9pbWFnZS5wbmcnLCAnZm9sZGVyMi9pbWFnZTIucG5nJ11gLlxuICAgICAqIEBwYXJhbSBleHBpcmVzSW4gVGhlIG51bWJlciBvZiBzZWNvbmRzIHVudGlsIHRoZSBzaWduZWQgVVJMcyBleHBpcmUuIEZvciBleGFtcGxlLCBgNjBgIGZvciBVUkxzIHdoaWNoIGFyZSB2YWxpZCBmb3Igb25lIG1pbnV0ZS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kb3dubG9hZCB0cmlnZ2VycyB0aGUgZmlsZSBhcyBhIGRvd25sb2FkIGlmIHNldCB0byB0cnVlLiBTZXQgdGhpcyBwYXJhbWV0ZXIgYXMgdGhlIG5hbWUgb2YgdGhlIGZpbGUgaWYgeW91IHdhbnQgdG8gdHJpZ2dlciB0aGUgZG93bmxvYWQgd2l0aCBhIGRpZmZlcmVudCBmaWxlbmFtZS5cbiAgICAgKi9cbiAgICBjcmVhdGVTaWduZWRVcmxzKHBhdGhzLCBleHBpcmVzSW4sIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC9zaWduLyR7dGhpcy5idWNrZXRJZH1gLCB7IGV4cGlyZXNJbiwgcGF0aHMgfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZG93bmxvYWRRdWVyeVBhcmFtID0gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kb3dubG9hZClcbiAgICAgICAgICAgICAgICAgICAgPyBgJmRvd25sb2FkPSR7b3B0aW9ucy5kb3dubG9hZCA9PT0gdHJ1ZSA/ICcnIDogb3B0aW9ucy5kb3dubG9hZH1gXG4gICAgICAgICAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YS5tYXAoKGRhdHVtKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBkYXR1bSksIHsgc2lnbmVkVXJsOiBkYXR1bS5zaWduZWRVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVuY29kZVVSSShgJHt0aGlzLnVybH0ke2RhdHVtLnNpZ25lZFVSTH0ke2Rvd25sb2FkUXVlcnlQYXJhbX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbCB9KSkpLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERvd25sb2FkcyBhIGZpbGUgZnJvbSBhIHByaXZhdGUgYnVja2V0LiBGb3IgcHVibGljIGJ1Y2tldHMsIG1ha2UgYSByZXF1ZXN0IHRvIHRoZSBVUkwgcmV0dXJuZWQgZnJvbSBgZ2V0UHVibGljVXJsYCBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggVGhlIGZ1bGwgcGF0aCBhbmQgZmlsZSBuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQuIEZvciBleGFtcGxlIGBmb2xkZXIvaW1hZ2UucG5nYC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy50cmFuc2Zvcm0gVHJhbnNmb3JtIHRoZSBhc3NldCBiZWZvcmUgc2VydmluZyBpdCB0byB0aGUgY2xpZW50LlxuICAgICAqL1xuICAgIGRvd25sb2FkKHBhdGgsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhbnRzVHJhbnNmb3JtYXRpb24gPSB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50cmFuc2Zvcm0pICE9PSAndW5kZWZpbmVkJztcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlclBhdGggPSB3YW50c1RyYW5zZm9ybWF0aW9uID8gJ3JlbmRlci9pbWFnZS9hdXRoZW50aWNhdGVkJyA6ICdvYmplY3QnO1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtYXRpb25RdWVyeSA9IHRoaXMudHJhbnNmb3JtT3B0c1RvUXVlcnlTdHJpbmcoKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50cmFuc2Zvcm0pIHx8IHt9KTtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gdHJhbnNmb3JtYXRpb25RdWVyeSA/IGA/JHt0cmFuc2Zvcm1hdGlvblF1ZXJ5fWAgOiAnJztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgX3BhdGggPSB0aGlzLl9nZXRGaW5hbFBhdGgocGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0geWllbGQgZ2V0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS8ke3JlbmRlclBhdGh9LyR7X3BhdGh9JHtxdWVyeVN0cmluZ31gLCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgbm9SZXNvbHZlSnNvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVzLmJsb2IoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgc2ltcGxlIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGdldCB0aGUgVVJMIGZvciBhbiBhc3NldCBpbiBhIHB1YmxpYyBidWNrZXQuIElmIHlvdSBkbyBub3Qgd2FudCB0byB1c2UgdGhpcyBmdW5jdGlvbiwgeW91IGNhbiBjb25zdHJ1Y3QgdGhlIHB1YmxpYyBVUkwgYnkgY29uY2F0ZW5hdGluZyB0aGUgYnVja2V0IFVSTCB3aXRoIHRoZSBwYXRoIHRvIHRoZSBhc3NldC5cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHZlcmlmeSBpZiB0aGUgYnVja2V0IGlzIHB1YmxpYy4gSWYgYSBwdWJsaWMgVVJMIGlzIGNyZWF0ZWQgZm9yIGEgYnVja2V0IHdoaWNoIGlzIG5vdCBwdWJsaWMsIHlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIGRvd25sb2FkIHRoZSBhc3NldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIGFuZCBuYW1lIG9mIHRoZSBmaWxlIHRvIGdlbmVyYXRlIHRoZSBwdWJsaWMgVVJMIGZvci4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS5wbmdgLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmRvd25sb2FkIFRyaWdnZXJzIHRoZSBmaWxlIGFzIGEgZG93bmxvYWQgaWYgc2V0IHRvIHRydWUuIFNldCB0aGlzIHBhcmFtZXRlciBhcyB0aGUgbmFtZSBvZiB0aGUgZmlsZSBpZiB5b3Ugd2FudCB0byB0cmlnZ2VyIHRoZSBkb3dubG9hZCB3aXRoIGEgZGlmZmVyZW50IGZpbGVuYW1lLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnRyYW5zZm9ybSBUcmFuc2Zvcm0gdGhlIGFzc2V0IGJlZm9yZSBzZXJ2aW5nIGl0IHRvIHRoZSBjbGllbnQuXG4gICAgICovXG4gICAgZ2V0UHVibGljVXJsKHBhdGgsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgX3BhdGggPSB0aGlzLl9nZXRGaW5hbFBhdGgocGF0aCk7XG4gICAgICAgIGNvbnN0IF9xdWVyeVN0cmluZyA9IFtdO1xuICAgICAgICBjb25zdCBkb3dubG9hZFF1ZXJ5UGFyYW0gPSAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRvd25sb2FkKVxuICAgICAgICAgICAgPyBgZG93bmxvYWQ9JHtvcHRpb25zLmRvd25sb2FkID09PSB0cnVlID8gJycgOiBvcHRpb25zLmRvd25sb2FkfWBcbiAgICAgICAgICAgIDogJyc7XG4gICAgICAgIGlmIChkb3dubG9hZFF1ZXJ5UGFyYW0gIT09ICcnKSB7XG4gICAgICAgICAgICBfcXVlcnlTdHJpbmcucHVzaChkb3dubG9hZFF1ZXJ5UGFyYW0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdhbnRzVHJhbnNmb3JtYXRpb24gPSB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50cmFuc2Zvcm0pICE9PSAndW5kZWZpbmVkJztcbiAgICAgICAgY29uc3QgcmVuZGVyUGF0aCA9IHdhbnRzVHJhbnNmb3JtYXRpb24gPyAncmVuZGVyL2ltYWdlJyA6ICdvYmplY3QnO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1hdGlvblF1ZXJ5ID0gdGhpcy50cmFuc2Zvcm1PcHRzVG9RdWVyeVN0cmluZygob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnRyYW5zZm9ybSkgfHwge30pO1xuICAgICAgICBpZiAodHJhbnNmb3JtYXRpb25RdWVyeSAhPT0gJycpIHtcbiAgICAgICAgICAgIF9xdWVyeVN0cmluZy5wdXNoKHRyYW5zZm9ybWF0aW9uUXVlcnkpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBxdWVyeVN0cmluZyA9IF9xdWVyeVN0cmluZy5qb2luKCcmJyk7XG4gICAgICAgIGlmIChxdWVyeVN0cmluZyAhPT0gJycpIHtcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nID0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHsgcHVibGljVXJsOiBlbmNvZGVVUkkoYCR7dGhpcy51cmx9LyR7cmVuZGVyUGF0aH0vcHVibGljLyR7X3BhdGh9JHtxdWVyeVN0cmluZ31gKSB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGZpbGVzIHdpdGhpbiB0aGUgc2FtZSBidWNrZXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRocyBBbiBhcnJheSBvZiBmaWxlcyB0byBkZWxldGUsIGluY2x1ZGluZyB0aGUgcGF0aCBhbmQgZmlsZSBuYW1lLiBGb3IgZXhhbXBsZSBbYCdmb2xkZXIvaW1hZ2UucG5nJ2BdLlxuICAgICAqL1xuICAgIHJlbW92ZShwYXRocykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVtb3ZlKHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9vYmplY3QvJHt0aGlzLmJ1Y2tldElkfWAsIHsgcHJlZml4ZXM6IHBhdGhzIH0sIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IGZpbGUgbWV0YWRhdGFcbiAgICAgKiBAcGFyYW0gaWQgdGhlIGZpbGUgaWQgdG8gcmV0cmlldmUgbWV0YWRhdGFcbiAgICAgKi9cbiAgICAvLyBhc3luYyBnZXRNZXRhZGF0YShcbiAgICAvLyAgIGlkOiBzdHJpbmdcbiAgICAvLyApOiBQcm9taXNlPFxuICAgIC8vICAgfCB7XG4gICAgLy8gICAgICAgZGF0YTogTWV0YWRhdGFcbiAgICAvLyAgICAgICBlcnJvcjogbnVsbFxuICAgIC8vICAgICB9XG4gICAgLy8gICB8IHtcbiAgICAvLyAgICAgICBkYXRhOiBudWxsXG4gICAgLy8gICAgICAgZXJyb3I6IFN0b3JhZ2VFcnJvclxuICAgIC8vICAgICB9XG4gICAgLy8gPiB7XG4gICAgLy8gICB0cnkge1xuICAgIC8vICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9tZXRhZGF0YS8ke2lkfWAsIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pXG4gICAgLy8gICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH1cbiAgICAvLyAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAvLyAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgdGhyb3cgZXJyb3JcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlIGZpbGUgbWV0YWRhdGFcbiAgICAgKiBAcGFyYW0gaWQgdGhlIGZpbGUgaWQgdG8gdXBkYXRlIG1ldGFkYXRhXG4gICAgICogQHBhcmFtIG1ldGEgdGhlIG5ldyBmaWxlIG1ldGFkYXRhXG4gICAgICovXG4gICAgLy8gYXN5bmMgdXBkYXRlTWV0YWRhdGEoXG4gICAgLy8gICBpZDogc3RyaW5nLFxuICAgIC8vICAgbWV0YTogTWV0YWRhdGFcbiAgICAvLyApOiBQcm9taXNlPFxuICAgIC8vICAgfCB7XG4gICAgLy8gICAgICAgZGF0YTogTWV0YWRhdGFcbiAgICAvLyAgICAgICBlcnJvcjogbnVsbFxuICAgIC8vICAgICB9XG4gICAgLy8gICB8IHtcbiAgICAvLyAgICAgICBkYXRhOiBudWxsXG4gICAgLy8gICAgICAgZXJyb3I6IFN0b3JhZ2VFcnJvclxuICAgIC8vICAgICB9XG4gICAgLy8gPiB7XG4gICAgLy8gICB0cnkge1xuICAgIC8vICAgICBjb25zdCBkYXRhID0gYXdhaXQgcG9zdChcbiAgICAvLyAgICAgICB0aGlzLmZldGNoLFxuICAgIC8vICAgICAgIGAke3RoaXMudXJsfS9tZXRhZGF0YS8ke2lkfWAsXG4gICAgLy8gICAgICAgeyAuLi5tZXRhIH0sXG4gICAgLy8gICAgICAgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfVxuICAgIC8vICAgICApXG4gICAgLy8gICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH1cbiAgICAvLyAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAvLyAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgdGhyb3cgZXJyb3JcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLyoqXG4gICAgICogTGlzdHMgYWxsIHRoZSBmaWxlcyB3aXRoaW4gYSBidWNrZXQuXG4gICAgICogQHBhcmFtIHBhdGggVGhlIGZvbGRlciBwYXRoLlxuICAgICAqL1xuICAgIGxpc3QocGF0aCwgb3B0aW9ucywgcGFyYW1ldGVycykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5ID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VBUkNIX09QVElPTlMpLCBvcHRpb25zKSwgeyBwcmVmaXg6IHBhdGggfHwgJycgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC9saXN0LyR7dGhpcy5idWNrZXRJZH1gLCBib2R5LCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9LCBwYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9nZXRGaW5hbFBhdGgocGF0aCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5idWNrZXRJZH0vJHtwYXRofWA7XG4gICAgfVxuICAgIF9yZW1vdmVFbXB0eUZvbGRlcnMocGF0aCkge1xuICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgJycpLnJlcGxhY2UoL1xcLysvZywgJy8nKTtcbiAgICB9XG4gICAgdHJhbnNmb3JtT3B0c1RvUXVlcnlTdHJpbmcodHJhbnNmb3JtKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IFtdO1xuICAgICAgICBpZiAodHJhbnNmb3JtLndpZHRoKSB7XG4gICAgICAgICAgICBwYXJhbXMucHVzaChgd2lkdGg9JHt0cmFuc2Zvcm0ud2lkdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyYW5zZm9ybS5oZWlnaHQpIHtcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKGBoZWlnaHQ9JHt0cmFuc2Zvcm0uaGVpZ2h0fWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0cmFuc2Zvcm0ucmVzaXplKSB7XG4gICAgICAgICAgICBwYXJhbXMucHVzaChgcmVzaXplPSR7dHJhbnNmb3JtLnJlc2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJhbnNmb3JtLmZvcm1hdCkge1xuICAgICAgICAgICAgcGFyYW1zLnB1c2goYGZvcm1hdD0ke3RyYW5zZm9ybS5mb3JtYXR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyYW5zZm9ybS5xdWFsaXR5KSB7XG4gICAgICAgICAgICBwYXJhbXMucHVzaChgcXVhbGl0eT0ke3RyYW5zZm9ybS5xdWFsaXR5fWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJhbXMuam9pbignJicpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN0b3JhZ2VGaWxlQXBpLmpzLm1hcCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJpc1N0b3JhZ2VFcnJvciIsIlN0b3JhZ2VFcnJvciIsImdldCIsInBvc3QiLCJyZW1vdmUiLCJyZXNvbHZlRmV0Y2giLCJERUZBVUxUX1NFQVJDSF9PUFRJT05TIiwibGltaXQiLCJvZmZzZXQiLCJzb3J0QnkiLCJjb2x1bW4iLCJvcmRlciIsIkRFRkFVTFRfRklMRV9PUFRJT05TIiwiY2FjaGVDb250cm9sIiwiY29udGVudFR5cGUiLCJ1cHNlcnQiLCJTdG9yYWdlRmlsZUFwaSIsImNvbnN0cnVjdG9yIiwidXJsIiwiaGVhZGVycyIsImJ1Y2tldElkIiwiZmV0Y2giLCJ1cGxvYWRPclVwZGF0ZSIsIm1ldGhvZCIsInBhdGgiLCJmaWxlQm9keSIsImZpbGVPcHRpb25zIiwiYm9keSIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJTdHJpbmciLCJCbG9iIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJjbGVhblBhdGgiLCJfcmVtb3ZlRW1wdHlGb2xkZXJzIiwiX3BhdGgiLCJfZ2V0RmluYWxQYXRoIiwicmVzIiwiZHVwbGV4IiwiZGF0YSIsImpzb24iLCJvayIsImlkIiwiSWQiLCJmdWxsUGF0aCIsIktleSIsImVycm9yIiwidXBsb2FkIiwidXBsb2FkVG9TaWduZWRVcmwiLCJ0b2tlbiIsIlVSTCIsInNlYXJjaFBhcmFtcyIsInNldCIsInRvU3RyaW5nIiwiY3JlYXRlU2lnbmVkVXBsb2FkVXJsIiwic2lnbmVkVXJsIiwidXBkYXRlIiwibW92ZSIsImZyb21QYXRoIiwidG9QYXRoIiwic291cmNlS2V5IiwiZGVzdGluYXRpb25LZXkiLCJjb3B5IiwiY3JlYXRlU2lnbmVkVXJsIiwiZXhwaXJlc0luIiwidHJhbnNmb3JtIiwiZG93bmxvYWRRdWVyeVBhcmFtIiwiZG93bmxvYWQiLCJlbmNvZGVVUkkiLCJzaWduZWRVUkwiLCJjcmVhdGVTaWduZWRVcmxzIiwicGF0aHMiLCJtYXAiLCJkYXR1bSIsIndhbnRzVHJhbnNmb3JtYXRpb24iLCJyZW5kZXJQYXRoIiwidHJhbnNmb3JtYXRpb25RdWVyeSIsInRyYW5zZm9ybU9wdHNUb1F1ZXJ5U3RyaW5nIiwicXVlcnlTdHJpbmciLCJub1Jlc29sdmVKc29uIiwiYmxvYiIsImdldFB1YmxpY1VybCIsIl9xdWVyeVN0cmluZyIsInB1c2giLCJqb2luIiwicHVibGljVXJsIiwicHJlZml4ZXMiLCJsaXN0IiwicGFyYW1ldGVycyIsInByZWZpeCIsInJlcGxhY2UiLCJwYXJhbXMiLCJ3aWR0aCIsImhlaWdodCIsInJlc2l6ZSIsImZvcm1hdCIsInF1YWxpdHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js ***! + \**************************************************************************/ +/***/ ((__unused_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 */ SupabaseClient)\n/* harmony export */ });\n/* harmony import */ var _supabase_functions_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @supabase/functions-js */ \"(rsc)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js\");\n/* harmony import */ var _supabase_postgrest_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/postgrest-js */ \"(rsc)/./node_modules/@supabase/postgrest-js/dist/module/index.js\");\n/* harmony import */ var _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @supabase/realtime-js */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/index.js\");\n/* harmony import */ var _supabase_storage_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @supabase/storage-js */ \"(rsc)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/constants */ \"(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/fetch */ \"(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/helpers */ \"(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_SupabaseAuthClient__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/SupabaseAuthClient */ \"(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js\");\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nconst DEFAULT_GLOBAL_OPTIONS = {\n headers: _lib_constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_HEADERS\n};\nconst DEFAULT_DB_OPTIONS = {\n schema: \"public\"\n};\nconst DEFAULT_AUTH_OPTIONS = {\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n flowType: \"implicit\"\n};\nconst DEFAULT_REALTIME_OPTIONS = {};\n/**\n * Supabase Client.\n *\n * An isomorphic Javascript client for interacting with Postgres.\n */ class SupabaseClient {\n /**\n * Create a new client for use in the browser.\n * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.\n * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.\n * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.\n * @param options.auth.autoRefreshToken Set to \"true\" if you want to automatically refresh the token before expiring.\n * @param options.auth.persistSession Set to \"true\" if you want to automatically save the user session into local storage.\n * @param options.auth.detectSessionInUrl Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user.\n * @param options.realtime Options passed along to realtime-js constructor.\n * @param options.global.fetch A custom fetch implementation.\n * @param options.global.headers Any additional headers to send with each network request.\n */ constructor(supabaseUrl, supabaseKey, options){\n var _a, _b, _c, _d, _e, _f, _g, _h;\n this.supabaseUrl = supabaseUrl;\n this.supabaseKey = supabaseKey;\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */ this.from = (relation)=>{\n return this.rest.from(relation);\n };\n /**\n * Perform a query on a schema distinct from the default schema supplied via\n * the `options.db.schema` constructor parameter.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The name of the schema to query\n */ this.schema = (schema)=>{\n return this.rest.schema(schema);\n };\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */ this.rpc = (fn, args = {}, options)=>{\n return this.rest.rpc(fn, args, options);\n };\n if (!supabaseUrl) throw new Error(\"supabaseUrl is required.\");\n if (!supabaseKey) throw new Error(\"supabaseKey is required.\");\n const _supabaseUrl = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_3__.stripTrailingSlash)(supabaseUrl);\n this.realtimeUrl = `${_supabaseUrl}/realtime/v1`.replace(/^http/i, \"ws\");\n this.authUrl = `${_supabaseUrl}/auth/v1`;\n this.storageUrl = `${_supabaseUrl}/storage/v1`;\n this.functionsUrl = `${_supabaseUrl}/functions/v1`;\n // default storage key uses the supabase project ref as a namespace\n const defaultStorageKey = `sb-${new URL(this.authUrl).hostname.split(\".\")[0]}-auth-token`;\n const DEFAULTS = {\n db: DEFAULT_DB_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), {\n storageKey: defaultStorageKey\n }),\n global: DEFAULT_GLOBAL_OPTIONS\n };\n const settings = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_3__.applySettingDefaults)(options !== null && options !== void 0 ? options : {}, DEFAULTS);\n this.storageKey = (_b = (_a = settings.auth) === null || _a === void 0 ? void 0 : _a.storageKey) !== null && _b !== void 0 ? _b : \"\";\n this.headers = (_d = (_c = settings.global) === null || _c === void 0 ? void 0 : _c.headers) !== null && _d !== void 0 ? _d : {};\n this.auth = this._initSupabaseAuthClient((_e = settings.auth) !== null && _e !== void 0 ? _e : {}, this.headers, (_f = settings.global) === null || _f === void 0 ? void 0 : _f.fetch);\n this.fetch = (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_4__.fetchWithAuth)(supabaseKey, this._getAccessToken.bind(this), (_g = settings.global) === null || _g === void 0 ? void 0 : _g.fetch);\n this.realtime = this._initRealtimeClient(Object.assign({\n headers: this.headers\n }, settings.realtime));\n this.rest = new _supabase_postgrest_js__WEBPACK_IMPORTED_MODULE_0__.PostgrestClient(`${_supabaseUrl}/rest/v1`, {\n headers: this.headers,\n schema: (_h = settings.db) === null || _h === void 0 ? void 0 : _h.schema,\n fetch: this.fetch\n });\n this._listenForAuthEvents();\n }\n /**\n * Supabase Functions allows you to deploy and invoke edge functions.\n */ get functions() {\n return new _supabase_functions_js__WEBPACK_IMPORTED_MODULE_5__.FunctionsClient(this.functionsUrl, {\n headers: this.headers,\n customFetch: this.fetch\n });\n }\n /**\n * Supabase Storage allows you to manage user-generated content, such as photos or videos.\n */ get storage() {\n return new _supabase_storage_js__WEBPACK_IMPORTED_MODULE_6__.StorageClient(this.storageUrl, this.headers, this.fetch);\n }\n /**\n * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.\n *\n * @param {string} name - The name of the Realtime channel.\n * @param {Object} opts - The options to pass to the Realtime channel.\n *\n */ channel(name, opts = {\n config: {}\n }) {\n return this.realtime.channel(name, opts);\n }\n /**\n * Returns all Realtime channels.\n */ getChannels() {\n return this.realtime.getChannels();\n }\n /**\n * Unsubscribes and removes Realtime channel from Realtime client.\n *\n * @param {RealtimeChannel} channel - The name of the Realtime channel.\n *\n */ removeChannel(channel) {\n return this.realtime.removeChannel(channel);\n }\n /**\n * Unsubscribes and removes all Realtime channels from Realtime client.\n */ removeAllChannels() {\n return this.realtime.removeAllChannels();\n }\n _getAccessToken() {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function*() {\n const { data } = yield this.auth.getSession();\n return (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : null;\n });\n }\n _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, storage, storageKey, flowType, debug }, headers, fetch) {\n const authHeaders = {\n Authorization: `Bearer ${this.supabaseKey}`,\n apikey: `${this.supabaseKey}`\n };\n return new _lib_SupabaseAuthClient__WEBPACK_IMPORTED_MODULE_7__.SupabaseAuthClient({\n url: this.authUrl,\n headers: Object.assign(Object.assign({}, authHeaders), headers),\n storageKey: storageKey,\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n flowType,\n debug,\n fetch\n });\n }\n _initRealtimeClient(options) {\n return new _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_1__.RealtimeClient(this.realtimeUrl, Object.assign(Object.assign({}, options), {\n params: Object.assign({\n apikey: this.supabaseKey\n }, options === null || options === void 0 ? void 0 : options.params)\n }));\n }\n _listenForAuthEvents() {\n let data = this.auth.onAuthStateChange((event, session)=>{\n this._handleTokenChanged(event, \"CLIENT\", session === null || session === void 0 ? void 0 : session.access_token);\n });\n return data;\n }\n _handleTokenChanged(event, source, token) {\n if ((event === \"TOKEN_REFRESHED\" || event === \"SIGNED_IN\") && this.changedAccessToken !== token) {\n // Token has changed\n this.realtime.setAuth(token !== null && token !== void 0 ? token : null);\n this.changedAccessToken = token;\n } else if (event === \"SIGNED_OUT\") {\n // Token is removed\n this.realtime.setAuth(this.supabaseKey);\n if (source == \"STORAGE\") this.auth.signOut();\n this.changedAccessToken = undefined;\n }\n }\n} //# sourceMappingURL=SupabaseClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL1N1cGFiYXNlQ2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLElBQUlBLFlBQVksU0FBSyxJQUFJLFNBQUksQ0FBQ0EsU0FBUyxJQUFLLFNBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVM7SUFDbkYsU0FBU0MsTUFBTUMsS0FBSztRQUFJLE9BQU9BLGlCQUFpQkgsSUFBSUcsUUFBUSxJQUFJSCxFQUFFLFNBQVVJLE9BQU87WUFBSUEsUUFBUUQ7UUFBUTtJQUFJO0lBQzNHLE9BQU8sSUFBS0gsQ0FBQUEsS0FBTUEsQ0FBQUEsSUFBSUssT0FBTSxDQUFDLEVBQUcsU0FBVUQsT0FBTyxFQUFFRSxNQUFNO1FBQ3JELFNBQVNDLFVBQVVKLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxVQUFVUSxJQUFJLENBQUNOO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDMUYsU0FBU0MsU0FBU1IsS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFNBQVMsQ0FBQyxRQUFRLENBQUNFO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDN0YsU0FBU0YsS0FBS0ksTUFBTTtZQUFJQSxPQUFPQyxJQUFJLEdBQUdULFFBQVFRLE9BQU9ULEtBQUssSUFBSUQsTUFBTVUsT0FBT1QsS0FBSyxFQUFFVyxJQUFJLENBQUNQLFdBQVdJO1FBQVc7UUFDN0dILEtBQUssQ0FBQ1AsWUFBWUEsVUFBVWMsS0FBSyxDQUFDakIsU0FBU0MsY0FBYyxFQUFFLEdBQUdVLElBQUk7SUFDdEU7QUFDSjtBQUN5RDtBQUNBO0FBQ0Q7QUFDc0I7QUFDNUI7QUFDTjtBQUM2QjtBQUNYO0FBQzlELE1BQU1pQix5QkFBeUI7SUFDM0JDLFNBQVNOLDJEQUFlQTtBQUM1QjtBQUNBLE1BQU1PLHFC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QUlILFVBQVUsY0FBYztZQUM3QixtQkFBbUI7WUFDbkIsSUFBSSxDQUFDbEMsUUFBUSxDQUFDdUMsT0FBTyxDQUFDLElBQUksQ0FBQ3BFLFdBQVc7WUFDdEMsSUFBSWlFLFVBQVUsV0FDVixJQUFJLENBQUNuQyxJQUFJLENBQUN1QyxPQUFPO1lBQ3JCLElBQUksQ0FBQ0Ysa0JBQWtCLEdBQUdHO1FBQzlCO0lBQ0o7QUFDSixFQUNBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvU3VwYWJhc2VDbGllbnQuanM/M2Y3MiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IEZ1bmN0aW9uc0NsaWVudCB9IGZyb20gJ0BzdXBhYmFzZS9mdW5jdGlvbnMtanMnO1xuaW1wb3J0IHsgUG9zdGdyZXN0Q2xpZW50IH0gZnJvbSAnQHN1cGFiYXNlL3Bvc3RncmVzdC1qcyc7XG5pbXBvcnQgeyBSZWFsdGltZUNsaWVudCwgfSBmcm9tICdAc3VwYWJhc2UvcmVhbHRpbWUtanMnO1xuaW1wb3J0IHsgU3RvcmFnZUNsaWVudCBhcyBTdXBhYmFzZVN0b3JhZ2VDbGllbnQgfSBmcm9tICdAc3VwYWJhc2Uvc3RvcmFnZS1qcyc7XG5pbXBvcnQgeyBERUZBVUxUX0hFQURFUlMgfSBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZmV0Y2hXaXRoQXV0aCB9IGZyb20gJy4vbGliL2ZldGNoJztcbmltcG9ydCB7IHN0cmlwVHJhaWxpbmdTbGFzaCwgYXBwbHlTZXR0aW5nRGVmYXVsdHMgfSBmcm9tICcuL2xpYi9oZWxwZXJzJztcbmltcG9ydCB7IFN1cGFiYXNlQXV0aENsaWVudCB9IGZyb20gJy4vbGliL1N1cGFiYXNlQXV0aENsaWVudCc7XG5jb25zdCBERUZBVUxUX0dMT0JBTF9PUFRJT05TID0ge1xuICAgIGhlYWRlcnM6IERFRkFVTFRfSEVBREVSUyxcbn07XG5jb25zdCBERUZBVUxUX0RCX09QVElPTlMgPSB7XG4gICAgc2NoZW1hOiAncHVibGljJyxcbn07XG5jb25zdCBERUZBVUxUX0FVVEhfT1BUSU9OUyA9IHtcbiAgICBhdXRvUmVmcmVzaFRva2VuOiB0cnVlLFxuICAgIHBlcnNpc3RTZXNzaW9uOiB0cnVlLFxuICAgIGRldGVjdFNlc3Npb25JblVybDogdHJ1ZSxcbiAgICBmbG93VHlwZTogJ2ltcGxpY2l0Jyxcbn07XG5jb25zdCBERUZBVUxUX1JFQUxUSU1FX09QVElPTlMgPSB7fTtcbi8qKlxuICogU3VwYWJhc2UgQ2xpZW50LlxuICpcbiAqIEFuIGlzb21vcnBoaWMgSmF2YXNjcmlwdCBjbGllbnQgZm9yIGludGVyYWN0aW5nIHdpdGggUG9zdGdyZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1cGFiYXNlQ2xpZW50IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgY2xpZW50IGZvciB1c2UgaW4gdGhlIGJyb3dzZXIuXG4gICAgICogQHBhcmFtIHN1cGFiYXNlVXJsIFRoZSB1bmlxdWUgU3VwYWJhc2UgVVJMIHdoaWNoIGlzIHN1cHBsaWVkIHdoZW4geW91IGNyZWF0ZSBhIG5ldyBwcm9qZWN0IGluIHlvdXIgcHJvamVjdCBkYXNoYm9hcmQuXG4gICAgICogQHBhcmFtIHN1cGFiYXNlS2V5IFRoZSB1bmlxdWUgU3VwYWJhc2UgS2V5IHdoaWNoIGlzIHN1cHBsaWVkIHdoZW4geW91IGNyZWF0ZSBhIG5ldyBwcm9qZWN0IGluIHlvdXIgcHJvamVjdCBkYXNoYm9hcmQuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZGIuc2NoZW1hIFlvdSBjYW4gc3dpdGNoIGluIGJldHdlZW4gc2NoZW1hcy4gVGhlIHNjaGVtYSBuZWVkcyB0byBiZSBvbiB0aGUgbGlzdCBvZiBleHBvc2VkIHNjaGVtYXMgaW5zaWRlIFN1cGFiYXNlLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmF1dGguYXV0b1JlZnJlc2hUb2tlbiBTZXQgdG8gXCJ0cnVlXCIgaWYgeW91IHdhbnQgdG8gYXV0b21hdGljYWxseSByZWZyZXNoIHRoZSB0b2tlbiBiZWZvcmUgZXhwaXJpbmcuXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYXV0aC5wZXJzaXN0U2Vzc2lvbiBTZXQgdG8gXCJ0cnVlXCIgaWYgeW91IHdhbnQgdG8gYXV0b21hdGljYWxseSBzYXZlIHRoZSB1c2VyIHNlc3Npb24gaW50byBsb2NhbCBzdG9yYWdlLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmF1dGguZGV0ZWN0U2Vzc2lvbkluVXJsIFNldCB0byBcInRydWVcIiBpZiB5b3Ugd2FudCB0byBhdXRvbWF0aWNhbGx5IGRldGVjdHMgT0F1dGggZ3JhbnRzIGluIHRoZSBVUkwgYW5kIHNpZ25zIGluIHRoZSB1c2VyLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlYWx0aW1lIE9wdGlvbnMgcGFzc2VkIGFsb25nIHRvIHJlYWx0aW1lLWpzIGNvbnN0cnVjdG9yLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmdsb2JhbC5mZXRjaCBBIGN1c3RvbSBmZXRjaCBpbXBsZW1lbnRhdGlvbi5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5nbG9iYWwuaGVhZGVycyBBbnkgYWRkaXRpb25hbCBoZWFkZXJzIHRvIHNlbmQgd2l0aCBlYWNoIG5ldHdvcmsgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzdXBhYmFzZVVybCwgc3VwYWJhc2VLZXksIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaDtcbiAgICAgICAgdGhpcy5zdXBhYmFzZVVybCA9IHN1cGFiYXNlVXJsO1xuICAgICAgICB0aGlzLnN1cGFiYXNlS2V5ID0gc3VwYWJhc2VLZXk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQZXJmb3JtIGEgcXVlcnkgb24gYSB0YWJsZSBvciBhIHZpZXcuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSByZWxhdGlvbiAtIFRoZSB0YWJsZSBvciB2aWV3IG5hbWUgdG8gcXVlcnlcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZnJvbSA9IChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzdC5mcm9tKHJlbGF0aW9uKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBlcmZvcm0gYSBxdWVyeSBvbiBhIHNjaGVtYSBkaXN0aW5jdCBmcm9tIHRoZSBkZWZhdWx0IHNjaGVtYSBzdXBwbGllZCB2aWFcbiAgICAgICAgICogdGhlIGBvcHRpb25zLmRiLnNjaGVtYWAgY29uc3RydWN0b3IgcGFyYW1ldGVyLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGUgc2NoZW1hIG5lZWRzIHRvIGJlIG9uIHRoZSBsaXN0IG9mIGV4cG9zZWQgc2NoZW1hcyBpbnNpZGUgU3VwYWJhc2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBzY2hlbWEgLSBUaGUgbmFtZSBvZiB0aGUgc2NoZW1hIHRvIHF1ZXJ5XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNjaGVtYSA9IChzY2hlbWEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlc3Quc2NoZW1hKHNjaGVtYSk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQZXJmb3JtIGEgZnVuY3Rpb24gY2FsbC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIG5hbWUgdG8gY2FsbFxuICAgICAgICAgKiBAcGFyYW0gYXJncyAtIFRoZSBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24gY2FsbFxuICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcbiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMuaGVhZCAtIFdoZW4gc2V0IHRvIGB0cnVlYCwgYGRhdGFgIHdpbGwgbm90IGJlIHJldHVybmVkLlxuICAgICAgICAgKiBVc2VmdWwgaWYgeW91IG9ubHkgbmVlZCB0aGUgY291bnQuXG4gICAgICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCByb3dzIHJldHVybmVkIGJ5IHRoZVxuICAgICAgICAgKiBmdW5jdGlvbi4gT25seSBhcHBsaWNhYmxlIGZvciBbc2V0LXJldHVybmluZ1xuICAgICAgICAgKiBmdW5jdGlvbnNdKGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9mdW5jdGlvbnMtc3JmLmh0bWwpLlxuICAgICAgICAgKlxuICAgICAgICAgKiBgXCJleGFjdFwiYDogRXhhY3QgYnV0IHNsb3cgY291bnQgYWxnb3JpdGhtLiBQZXJmb3JtcyBhIGBDT1VOVCgqKWAgdW5kZXIgdGhlXG4gICAgICAgICAqIGhvb2QuXG4gICAgICAgICAqXG4gICAgICAgICAqIGBcInBsYW5uZWRcImA6IEFwcHJveGltYXRlZCBidXQgZmFzdCBjb3VudCBhbGdvcml0aG0uIFVzZXMgdGhlIFBvc3RncmVzXG4gICAgICAgICAqIHN0YXRpc3RpY3MgdW5kZXIgdGhlIGhvb2QuXG4gICAgICAgICAqXG4gICAgICAgICAqIGBcImVzdGltYXRlZFwiYDogVXNlcyBleGFjdCBjb3VudCBmb3IgbG93IG51bWJlcnMgYW5kIHBsYW5uZWQgY291bnQgZm9yIGhpZ2hcbiAgICAgICAgICogbnVtYmVycy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucnBjID0gKGZuLCBhcmdzID0ge30sIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlc3QucnBjKGZuLCBhcmdzLCBvcHRpb25zKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFzdXBhYmFzZVVybClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc3VwYWJhc2VVcmwgaXMgcmVxdWlyZWQuJyk7XG4gICAgICAgIGlmICghc3VwYWJhc2VLZXkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N1cGFiYXNlS2V5IGlzIHJlcXVpcmVkLicpO1xuICAgICAgICBjb25zdCBfc3VwYWJhc2VVcmwgPSBzdHJpcFRyYWlsaW5nU2xhc2goc3VwYWJhc2VVcmwpO1xuICAgICAgICB0aGlzLnJlYWx0aW1lVXJsID0gYCR7X3N1cGFiYXNlVXJsfS9yZWFsdGltZS92MWAucmVwbGFjZSgvXmh0dHAvaSwgJ3dzJyk7XG4gICAgICAgIHRoaXMuYXV0aFVybCA9IGAke19zdXBhYmFzZVVybH0vYXV0aC92MWA7XG4gICAgICAgIHRoaXMuc3RvcmFnZVVybCA9IGAke19zdXBhYmFzZVVybH0vc3RvcmFnZS92MWA7XG4gICAgICAgIHRoaXMuZnVuY3Rpb25zVXJsID0gYCR7X3N1cGFiYXNlVXJsfS9mdW5jdGlvbnMvdjFgO1xuICAgICAgICAvLyBkZWZhdWx0IHN0b3JhZ2Uga2V5IHVzZXMgdGhlIHN1cGFiYXNlIHByb2plY3QgcmVmIGFzIGEgbmFtZXNwYWNlXG4gICAgICAgIGNvbnN0IGRlZmF1bHRTdG9yYWdlS2V5ID0gYHNiLSR7bmV3IFVSTCh0aGlzLmF1dGhVcmwpLmhvc3RuYW1lLnNwbGl0KCcuJylbMF19LWF1dGgtdG9rZW5gO1xuICAgICAgICBjb25zdCBERUZBVUxUUyA9IHtcbiAgICAgICAgICAgIGRiOiBERUZBVUxUX0RCX09QVElPTlMsXG4gICAgICAgICAgICByZWFsdGltZTogREVGQVVMVF9SRUFMVElNRV9PUFRJT05TLFxuICAgICAgICAgICAgYXV0aDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX0FVVEhfT1BUSU9OUyksIHsgc3RvcmFnZUtleTogZGVmYXVsdFN0b3JhZ2VLZXkgfSksXG4gICAgICAgICAgICBnbG9iYWw6IERFRkFVTFRfR0xPQkFMX09QVElPTlMsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gYXBwbHlTZXR0aW5nRGVmYXVsdHMob3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDoge30sIERFRkFVTFRTKTtcbiAgICAgICAgdGhpcy5zdG9yYWdlS2V5ID0gKF9iID0gKF9hID0gc2V0dGluZ3MuYXV0aCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN0b3JhZ2VLZXkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSAoX2QgPSAoX2MgPSBzZXR0aW5ncy5nbG9iYWwpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5oZWFkZXJzKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiB7fTtcbiAgICAgICAgdGhpcy5hdXRoID0gdGhpcy5faW5pdFN1cGFiYXNlQXV0aENsaWVudCgoX2UgPSBzZXR0aW5ncy5hdXRoKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiB7fSwgdGhpcy5oZWFkZXJzLCAoX2YgPSBzZXR0aW5ncy5nbG9iYWwpID09PSBudWxsIHx8IF9mID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZi5mZXRjaCk7XG4gICAgICAgIHRoaXMuZmV0Y2ggPSBmZXRjaFdpdGhBdXRoKHN1cGFiYXNlS2V5LCB0aGlzLl9nZXRBY2Nlc3NUb2tlbi5iaW5kKHRoaXMpLCAoX2cgPSBzZXR0aW5ncy5nbG9iYWwpID09PSBudWxsIHx8IF9nID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZy5mZXRjaCk7XG4gICAgICAgIHRoaXMucmVhbHRpbWUgPSB0aGlzLl9pbml0UmVhbHRpbWVDbGllbnQoT2JqZWN0LmFzc2lnbih7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9LCBzZXR0aW5ncy5yZWFsdGltZSkpO1xuICAgICAgICB0aGlzLnJlc3QgPSBuZXcgUG9zdGdyZXN0Q2xpZW50KGAke19zdXBhYmFzZVVybH0vcmVzdC92MWAsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIHNjaGVtYTogKF9oID0gc2V0dGluZ3MuZGIpID09PSBudWxsIHx8IF9oID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfaC5zY2hlbWEsXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2xpc3RlbkZvckF1dGhFdmVudHMoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU3VwYWJhc2UgRnVuY3Rpb25zIGFsbG93cyB5b3UgdG8gZGVwbG95IGFuZCBpbnZva2UgZWRnZSBmdW5jdGlvbnMuXG4gICAgICovXG4gICAgZ2V0IGZ1bmN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGdW5jdGlvbnNDbGllbnQodGhpcy5mdW5jdGlvbnNVcmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIGN1c3RvbUZldGNoOiB0aGlzLmZldGNoLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU3VwYWJhc2UgU3RvcmFnZSBhbGxvd3MgeW91IHRvIG1hbmFnZSB1c2VyLWdlbmVyYXRlZCBjb250ZW50LCBzdWNoIGFzIHBob3RvcyBvciB2aWRlb3MuXG4gICAgICovXG4gICAgZ2V0IHN0b3JhZ2UoKSB7XG4gICAgICAgIHJldHVybiBuZXcgU3VwYWJhc2VTdG9yYWdlQ2xpZW50KHRoaXMuc3RvcmFnZVVybCwgdGhpcy5oZWFkZXJzLCB0aGlzLmZldGNoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIFJlYWx0aW1lIGNoYW5uZWwgd2l0aCBCcm9hZGNhc3QsIFByZXNlbmNlLCBhbmQgUG9zdGdyZXMgQ2hhbmdlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIFJlYWx0aW1lIGNoYW5uZWwuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgb3B0aW9ucyB0byBwYXNzIHRvIHRoZSBSZWFsdGltZSBjaGFubmVsLlxuICAgICAqXG4gICAgICovXG4gICAgY2hhbm5lbChuYW1lLCBvcHRzID0geyBjb25maWc6IHt9IH0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhbHRpbWUuY2hhbm5lbChuYW1lLCBvcHRzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgUmVhbHRpbWUgY2hhbm5lbHMuXG4gICAgICovXG4gICAgZ2V0Q2hhbm5lbHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWx0aW1lLmdldENoYW5uZWxzKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlcyBhbmQgcmVtb3ZlcyBSZWFsdGltZSBjaGFubmVsIGZyb20gUmVhbHRpbWUgY2xpZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFsdGltZUNoYW5uZWx9IGNoYW5uZWwgLSBUaGUgbmFtZSBvZiB0aGUgUmVhbHRpbWUgY2hhbm5lbC5cbiAgICAgKlxuICAgICAqL1xuICAgIHJlbW92ZUNoYW5uZWwoY2hhbm5lbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFsdGltZS5yZW1vdmVDaGFubmVsKGNoYW5uZWwpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVbnN1YnNjcmliZXMgYW5kIHJlbW92ZXMgYWxsIFJlYWx0aW1lIGNoYW5uZWxzIGZyb20gUmVhbHRpbWUgY2xpZW50LlxuICAgICAqL1xuICAgIHJlbW92ZUFsbENoYW5uZWxzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFsdGltZS5yZW1vdmVBbGxDaGFubmVscygpO1xuICAgIH1cbiAgICBfZ2V0QWNjZXNzVG9rZW4oKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEgfSA9IHlpZWxkIHRoaXMuYXV0aC5nZXRTZXNzaW9uKCk7XG4gICAgICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gZGF0YS5zZXNzaW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWNjZXNzX3Rva2VuKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2luaXRTdXBhYmFzZUF1dGhDbGllbnQoeyBhdXRvUmVmcmVzaFRva2VuLCBwZXJzaXN0U2Vzc2lvbiwgZGV0ZWN0U2Vzc2lvbkluVXJsLCBzdG9yYWdlLCBzdG9yYWdlS2V5LCBmbG93VHlwZSwgZGVidWcsIH0sIGhlYWRlcnMsIGZldGNoKSB7XG4gICAgICAgIGNvbnN0IGF1dGhIZWFkZXJzID0ge1xuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuc3VwYWJhc2VLZXl9YCxcbiAgICAgICAgICAgIGFwaWtleTogYCR7dGhpcy5zdXBhYmFzZUtleX1gLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gbmV3IFN1cGFiYXNlQXV0aENsaWVudCh7XG4gICAgICAgICAgICB1cmw6IHRoaXMuYXV0aFVybCxcbiAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXV0aEhlYWRlcnMpLCBoZWFkZXJzKSxcbiAgICAgICAgICAgIHN0b3JhZ2VLZXk6IHN0b3JhZ2VLZXksXG4gICAgICAgICAgICBhdXRvUmVmcmVzaFRva2VuLFxuICAgICAgICAgICAgcGVyc2lzdFNlc3Npb24sXG4gICAgICAgICAgICBkZXRlY3RTZXNzaW9uSW5VcmwsXG4gICAgICAgICAgICBzdG9yYWdlLFxuICAgICAgICAgICAgZmxvd1R5cGUsXG4gICAgICAgICAgICBkZWJ1ZyxcbiAgICAgICAgICAgIGZldGNoLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2luaXRSZWFsdGltZUNsaWVudChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVhbHRpbWVDbGllbnQodGhpcy5yZWFsdGltZVVybCwgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKSwgeyBwYXJhbXM6IE9iamVjdC5hc3NpZ24oeyBhcGlrZXk6IHRoaXMuc3VwYWJhc2VLZXkgfSwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmFtcykgfSkpO1xuICAgIH1cbiAgICBfbGlzdGVuRm9yQXV0aEV2ZW50cygpIHtcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmF1dGgub25BdXRoU3RhdGVDaGFuZ2UoKGV2ZW50LCBzZXNzaW9uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb2tlbkNoYW5nZWQoZXZlbnQsICdDTElFTlQnLCBzZXNzaW9uID09PSBudWxsIHx8IHNlc3Npb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb24uYWNjZXNzX3Rva2VuKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBfaGFuZGxlVG9rZW5DaGFuZ2VkKGV2ZW50LCBzb3VyY2UsIHRva2VuKSB7XG4gICAgICAgIGlmICgoZXZlbnQgPT09ICdUT0tFTl9SRUZSRVNIRUQnIHx8IGV2ZW50ID09PSAnU0lHTkVEX0lOJykgJiZcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZEFjY2Vzc1Rva2VuICE9PSB0b2tlbikge1xuICAgICAgICAgICAgLy8gVG9rZW4gaGFzIGNoYW5nZWRcbiAgICAgICAgICAgIHRoaXMucmVhbHRpbWUuc2V0QXV0aCh0b2tlbiAhPT0gbnVsbCAmJiB0b2tlbiAhPT0gdm9pZCAwID8gdG9rZW4gOiBudWxsKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZEFjY2Vzc1Rva2VuID0gdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT09ICdTSUdORURfT1VUJykge1xuICAgICAgICAgICAgLy8gVG9rZW4gaXMgcmVtb3ZlZFxuICAgICAgICAgICAgdGhpcy5yZWFsdGltZS5zZXRBdXRoKHRoaXMuc3VwYWJhc2VLZXkpO1xuICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSAnU1RPUkFHRScpXG4gICAgICAgICAgICAgICAgdGhpcy5hdXRoLnNpZ25PdXQoKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZEFjY2Vzc1Rva2VuID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U3VwYWJhc2VDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIkZ1bmN0aW9uc0NsaWVudCIsIlBvc3RncmVzdENsaWVudCIsIlJlYWx0aW1lQ2xpZW50IiwiU3RvcmFnZUNsaWVudCIsIlN1cGFiYXNlU3RvcmFnZUNsaWVudCIsIkRFRkFVTFRfSEVBREVSUyIsImZldGNoV2l0aEF1dGgiLCJzdHJpcFRyYWlsaW5nU2xhc2giLCJhcHBseVNldHRpbmdEZWZhdWx0cyIsIlN1cGFiYXNlQXV0aENsaWVudCIsIkRFRkFVTFRfR0xPQkFMX09QVElPTlMiLCJoZWFkZXJzIiwiREVGQVVMVF9EQl9PUFRJT05TIiwic2NoZW1hIiwiREVGQVVMVF9BVVRIX09QVElPTlMiLCJhdXRvUmVmcmVzaFRva2VuIiwicGVyc2lzdFNlc3Npb24iLCJkZXRlY3RTZXNzaW9uSW5VcmwiLCJmbG93VHlwZSIsIkRFRkFVTFRfUkVBTFRJTUVfT1BUSU9OUyIsIlN1cGFiYXNlQ2xpZW50IiwiY29uc3RydWN0b3IiLCJzdXBhYmFzZVVybCIsInN1cGFiYXNlS2V5Iiwib3B0aW9ucyIsIl9hIiwiX2IiLCJfYyIsIl9kIiwiX2UiLCJfZiIsIl9nIiwiX2giLCJmcm9tIiwicmVsYXRpb24iLCJyZXN0IiwicnBjIiwiZm4iLCJhcmdzIiwiRXJyb3IiLCJfc3VwYWJhc2VVcmwiLCJyZWFsdGltZVVybCIsInJlcGxhY2UiLCJhdXRoVXJsIiwic3RvcmFnZVVybCIsImZ1bmN0aW9uc1VybCIsImRlZmF1bHRTdG9yYWdlS2V5IiwiVVJMIiwiaG9zdG5hbWUiLCJzcGxpdCIsIkRFRkFVTFRTIiwiZGIiLCJyZWFsdGltZSIsImF1dGgiLCJPYmplY3QiLCJhc3NpZ24iLCJzdG9yYWdlS2V5IiwiZ2xvYmFsIiwic2V0dGluZ3MiLCJfaW5pdFN1cGFiYXNlQXV0aENsaWVudCIsImZldGNoIiwiX2dldEFjY2Vzc1Rva2VuIiwiYmluZCIsIl9pbml0UmVhbHRpbWVDbGllbnQiLCJfbGlzdGVuRm9yQXV0aEV2ZW50cyIsImZ1bmN0aW9ucyIsImN1c3RvbUZldGNoIiwic3RvcmFnZSIsImNoYW5uZWwiLCJuYW1lIiwib3B0cyIsImNvbmZpZyIsImdldENoYW5uZWxzIiwicmVtb3ZlQ2hhbm5lbCIsInJlbW92ZUFsbENoYW5uZWxzIiwiZGF0YSIsImdldFNlc3Npb24iLCJzZXNzaW9uIiwiYWNjZXNzX3Rva2VuIiwiZGVidWciLCJhdXRoSGVhZGVycyIsIkF1dGhvcml6YXRpb24iLCJhcGlrZXkiLCJ1cmwiLCJwYXJhbXMiLCJvbkF1dGhTdGF0ZUNoYW5nZSIsImV2ZW50IiwiX2hhbmRsZVRva2VuQ2hhbmdlZCIsInNvdXJjZSIsInRva2VuIiwiY2hhbmdlZEFjY2Vzc1Rva2VuIiwic2V0QXV0aCIsInNpZ25PdXQiLCJ1bmRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/supabase-js/dist/module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthAdminApi: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthAdminApi),\n/* harmony export */ AuthApiError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthApiError),\n/* harmony export */ AuthClient: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthClient),\n/* harmony export */ AuthError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthError),\n/* harmony export */ AuthImplicitGrantRedirectError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthImplicitGrantRedirectError),\n/* harmony export */ AuthInvalidCredentialsError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthInvalidCredentialsError),\n/* harmony export */ AuthInvalidTokenResponseError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthInvalidTokenResponseError),\n/* harmony export */ AuthPKCEGrantCodeExchangeError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthPKCEGrantCodeExchangeError),\n/* harmony export */ AuthRetryableFetchError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthRetryableFetchError),\n/* harmony export */ AuthSessionMissingError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthSessionMissingError),\n/* harmony export */ AuthUnknownError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthUnknownError),\n/* harmony export */ AuthWeakPasswordError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.AuthWeakPasswordError),\n/* harmony export */ CustomAuthError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.CustomAuthError),\n/* harmony export */ FunctionsError: () => (/* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__.FunctionsError),\n/* harmony export */ FunctionsFetchError: () => (/* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__.FunctionsFetchError),\n/* harmony export */ FunctionsHttpError: () => (/* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__.FunctionsHttpError),\n/* harmony export */ FunctionsRelayError: () => (/* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__.FunctionsRelayError),\n/* harmony export */ GoTrueAdminApi: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.GoTrueAdminApi),\n/* harmony export */ GoTrueClient: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.GoTrueClient),\n/* harmony export */ NavigatorLockAcquireTimeoutError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.NavigatorLockAcquireTimeoutError),\n/* harmony export */ REALTIME_CHANNEL_STATES: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_CHANNEL_STATES),\n/* harmony export */ REALTIME_LISTEN_TYPES: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_LISTEN_TYPES),\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT),\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_PRESENCE_LISTEN_EVENTS),\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.REALTIME_SUBSCRIBE_STATES),\n/* harmony export */ RealtimeChannel: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.RealtimeChannel),\n/* harmony export */ RealtimeClient: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.RealtimeClient),\n/* harmony export */ RealtimePresence: () => (/* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__.RealtimePresence),\n/* harmony export */ SupabaseClient: () => (/* reexport safe */ _SupabaseClient__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ createClient: () => (/* binding */ createClient),\n/* harmony export */ isAuthApiError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.isAuthApiError),\n/* harmony export */ isAuthError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.isAuthError),\n/* harmony export */ isAuthRetryableFetchError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.isAuthRetryableFetchError),\n/* harmony export */ isAuthWeakPasswordError: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.isAuthWeakPasswordError),\n/* harmony export */ lockInternals: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.lockInternals),\n/* harmony export */ navigatorLock: () => (/* reexport safe */ _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.navigatorLock)\n/* harmony export */ });\n/* harmony import */ var _SupabaseClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SupabaseClient */ \"(rsc)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js\");\n/* harmony import */ var _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/gotrue-js */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/index.js\");\n/* harmony import */ var _supabase_functions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @supabase/functions-js */ \"(rsc)/./node_modules/@supabase/functions-js/dist/module/types.js\");\n/* harmony import */ var _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/realtime-js */ \"(rsc)/./node_modules/@supabase/realtime-js/dist/module/index.js\");\n\n\n\n\n\n/**\n * Creates a new Supabase Client.\n */ const createClient = (supabaseUrl, supabaseKey, options)=>{\n return new _SupabaseClient__WEBPACK_IMPORTED_MODULE_3__[\"default\"](supabaseUrl, supabaseKey, options);\n}; //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOEM7QUFDVjtBQUNtRjtBQUNqRjtBQUN1QjtBQUM3RDs7Q0FFQyxHQUNNLE1BQU1NLGVBQWUsQ0FBQ0MsYUFBYUMsYUFBYUM7SUFDbkQsT0FBTyxJQUFJVCx1REFBY0EsQ0FBQ08sYUFBYUMsYUFBYUM7QUFDeEQsRUFBRSxDQUNGLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvaW5kZXguanM/YjMyNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3VwYWJhc2VDbGllbnQgZnJvbSAnLi9TdXBhYmFzZUNsaWVudCc7XG5leHBvcnQgKiBmcm9tICdAc3VwYWJhc2UvZ290cnVlLWpzJztcbmV4cG9ydCB7IEZ1bmN0aW9uc0h0dHBFcnJvciwgRnVuY3Rpb25zRmV0Y2hFcnJvciwgRnVuY3Rpb25zUmVsYXlFcnJvciwgRnVuY3Rpb25zRXJyb3IsIH0gZnJvbSAnQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcyc7XG5leHBvcnQgKiBmcm9tICdAc3VwYWJhc2UvcmVhbHRpbWUtanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdXBhYmFzZUNsaWVudCB9IGZyb20gJy4vU3VwYWJhc2VDbGllbnQnO1xuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFN1cGFiYXNlIENsaWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaWVudCA9IChzdXBhYmFzZVVybCwgc3VwYWJhc2VLZXksIG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gbmV3IFN1cGFiYXNlQ2xpZW50KHN1cGFiYXNlVXJsLCBzdXBhYmFzZUtleSwgb3B0aW9ucyk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIlN1cGFiYXNlQ2xpZW50IiwiRnVuY3Rpb25zSHR0cEVycm9yIiwiRnVuY3Rpb25zRmV0Y2hFcnJvciIsIkZ1bmN0aW9uc1JlbGF5RXJyb3IiLCJGdW5jdGlvbnNFcnJvciIsImRlZmF1bHQiLCJjcmVhdGVDbGllbnQiLCJzdXBhYmFzZVVybCIsInN1cGFiYXNlS2V5Iiwib3B0aW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/supabase-js/dist/module/index.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SupabaseAuthClient: () => (/* binding */ SupabaseAuthClient)\n/* harmony export */ });\n/* harmony import */ var _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/gotrue-js */ \"(rsc)/./node_modules/@supabase/gotrue-js/dist/module/index.js\");\n\nclass SupabaseAuthClient extends _supabase_gotrue_js__WEBPACK_IMPORTED_MODULE_0__.GoTrueClient {\n constructor(options){\n super(options);\n }\n} //# sourceMappingURL=SupabaseAuthClient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9TdXBhYmFzZUF1dGhDbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBbUQ7QUFDNUMsTUFBTUMsMkJBQTJCRCw2REFBWUE7SUFDaERFLFlBQVlDLE9BQU8sQ0FBRTtRQUNqQixLQUFLLENBQUNBO0lBQ1Y7QUFDSixFQUNBLDhDQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL1N1cGFiYXNlQXV0aENsaWVudC5qcz8xZDI5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdvVHJ1ZUNsaWVudCB9IGZyb20gJ0BzdXBhYmFzZS9nb3RydWUtanMnO1xuZXhwb3J0IGNsYXNzIFN1cGFiYXNlQXV0aENsaWVudCBleHRlbmRzIEdvVHJ1ZUNsaWVudCB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdXBhYmFzZUF1dGhDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIkdvVHJ1ZUNsaWVudCIsIlN1cGFiYXNlQXV0aENsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/constants.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_HEADERS: () => (/* binding */ DEFAULT_HEADERS)\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js\");\n// constants.ts\n\nlet JS_ENV = \"\";\n// @ts-ignore\nif (typeof Deno !== \"undefined\") {\n JS_ENV = \"deno\";\n} else if (typeof document !== \"undefined\") {\n JS_ENV = \"web\";\n} else if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n JS_ENV = \"react-native\";\n} else {\n JS_ENV = \"node\";\n}\nconst DEFAULT_HEADERS = {\n \"X-Client-Info\": `supabase-js-${JS_ENV}/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`\n}; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxlQUFlO0FBQ3FCO0FBQ3BDLElBQUlDLFNBQVM7QUFDYixhQUFhO0FBQ2IsSUFBSSxPQUFPQyxTQUFTLGFBQWE7SUFDN0JELFNBQVM7QUFDYixPQUNLLElBQUksT0FBT0UsYUFBYSxhQUFhO0lBQ3RDRixTQUFTO0FBQ2IsT0FDSyxJQUFJLE9BQU9HLGNBQWMsZUFBZUEsVUFBVUMsT0FBTyxLQUFLLGVBQWU7SUFDOUVKLFNBQVM7QUFDYixPQUNLO0lBQ0RBLFNBQVM7QUFDYjtBQUNPLE1BQU1LLGtCQUFrQjtJQUFFLGlCQUFpQixDQUFDLFlBQVksRUFBRUwsT0FBTyxDQUFDLEVBQUVELDZDQUFPQSxDQUFDLENBQUM7QUFBQyxFQUFFLENBQ3ZGLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL2NvbnN0YW50cy5qcz9iZTcyIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0YW50cy50c1xuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4vdmVyc2lvbic7XG5sZXQgSlNfRU5WID0gJyc7XG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIERlbm8gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgSlNfRU5WID0gJ2Rlbm8nO1xufVxuZWxzZSBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgIEpTX0VOViA9ICd3ZWInO1xufVxuZWxzZSBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdSZWFjdE5hdGl2ZScpIHtcbiAgICBKU19FTlYgPSAncmVhY3QtbmF0aXZlJztcbn1cbmVsc2Uge1xuICAgIEpTX0VOViA9ICdub2RlJztcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX0hFQURFUlMgPSB7ICdYLUNsaWVudC1JbmZvJzogYHN1cGFiYXNlLWpzLSR7SlNfRU5WfS8ke3ZlcnNpb259YCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJ2ZXJzaW9uIiwiSlNfRU5WIiwiRGVubyIsImRvY3VtZW50IiwibmF2aWdhdG9yIiwicHJvZHVjdCIsIkRFRkFVTFRfSEVBREVSUyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fetchWithAuth: () => (/* binding */ fetchWithAuth),\n/* harmony export */ resolveFetch: () => (/* binding */ resolveFetch),\n/* harmony export */ resolveHeadersConstructor: () => (/* binding */ resolveHeadersConstructor)\n/* harmony export */ });\n/* harmony import */ var _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/node-fetch */ \"(rsc)/./node_modules/@supabase/node-fetch/lib/index.js\");\n/* harmony import */ var _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__);\nvar __awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// @ts-ignore\n\nconst resolveFetch = (customFetch)=>{\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n } else if (typeof fetch === \"undefined\") {\n _fetch = (_supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0___default());\n } else {\n _fetch = fetch;\n }\n return (...args)=>_fetch(...args);\n};\nconst resolveHeadersConstructor = ()=>{\n if (typeof Headers === \"undefined\") {\n return _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__.Headers;\n }\n return Headers;\n};\nconst fetchWithAuth = (supabaseKey, getAccessToken, customFetch)=>{\n const fetch1 = resolveFetch(customFetch);\n const HeadersConstructor = resolveHeadersConstructor();\n return (input, init)=>__awaiter(void 0, void 0, void 0, function*() {\n var _a;\n const accessToken = (_a = yield getAccessToken()) !== null && _a !== void 0 ? _a : supabaseKey;\n let headers = new HeadersConstructor(init === null || init === void 0 ? void 0 : init.headers);\n if (!headers.has(\"apikey\")) {\n headers.set(\"apikey\", supabaseKey);\n }\n if (!headers.has(\"Authorization\")) {\n headers.set(\"Authorization\", `Bearer ${accessToken}`);\n }\n return fetch1(input, Object.assign(Object.assign({}, init), {\n headers\n }));\n });\n}; //# sourceMappingURL=fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9mZXRjaC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUlBLFlBQVksU0FBSyxJQUFJLFNBQUksQ0FBQ0EsU0FBUyxJQUFLLFNBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVM7SUFDbkYsU0FBU0MsTUFBTUMsS0FBSztRQUFJLE9BQU9BLGlCQUFpQkgsSUFBSUcsUUFBUSxJQUFJSCxFQUFFLFNBQVVJLE9BQU87WUFBSUEsUUFBUUQ7UUFBUTtJQUFJO0lBQzNHLE9BQU8sSUFBS0gsQ0FBQUEsS0FBTUEsQ0FBQUEsSUFBSUssT0FBTSxDQUFDLEVBQUcsU0FBVUQsT0FBTyxFQUFFRSxNQUFNO1FBQ3JELFNBQVNDLFVBQVVKLEtBQUs7WUFBSSxJQUFJO2dCQUFFSyxLQUFLUCxVQUFVUSxJQUFJLENBQUNOO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDMUYsU0FBU0MsU0FBU1IsS0FBSztZQUFJLElBQUk7Z0JBQUVLLEtBQUtQLFNBQVMsQ0FBQyxRQUFRLENBQUNFO1lBQVMsRUFBRSxPQUFPTyxHQUFHO2dCQUFFSixPQUFPSTtZQUFJO1FBQUU7UUFDN0YsU0FBU0YsS0FBS0ksTUFBTTtZQUFJQSxPQUFPQyxJQUFJLEdBQUdULFFBQVFRLE9BQU9ULEtBQUssSUFBSUQsTUFBTVUsT0FBT1QsS0FBSyxFQUFFVyxJQUFJLENBQUNQLFdBQVdJO1FBQVc7UUFDN0dILEtBQUssQ0FBQ1AsWUFBWUEsVUFBVWMsS0FBSyxDQUFDakIsU0FBU0MsY0FBYyxFQUFFLEdBQUdVLElBQUk7SUFDdEU7QUFDSjtBQUNBLGFBQWE7QUFDaUU7QUFDdkUsTUFBTVUsZUFBZSxDQUFDQztJQUN6QixJQUFJQztJQUNKLElBQUlELGFBQWE7UUFDYkMsU0FBU0Q7SUFDYixPQUNLLElBQUksT0FBT0UsVUFBVSxhQUFhO1FBQ25DRCxTQUFTTCw2REFBU0E7SUFDdEIsT0FDSztRQUNESyxTQUFTQztJQUNiO0lBQ0EsT0FBTyxDQUFDLEdBQUdDLE9BQVNGLFVBQVVFO0FBQ2xDLEVBQUU7QUFDSyxNQUFNQyw0QkFBNEI7SUFDckMsSUFBSSxPQUFPUCxZQUFZLGFBQWE7UUFDaEMsT0FBT0MseURBQWdCQTtJQUMzQjtJQUNBLE9BQU9EO0FBQ1gsRUFBRTtBQUNLLE1BQU1RLGdCQUFnQixDQUFDQyxhQUFhQyxnQkFBZ0JQO0lBQ3ZELE1BQU1FLFNBQVFILGFBQWFDO0lBQzNCLE1BQU1RLHFCQUFxQko7SUFDM0IsT0FBTyxDQUFDSyxPQUFPQyxPQUFTakMsVUFBVSxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRztZQUN0RCxJQUFJa0M7WUFDSixNQUFNQyxjQUFjLENBQUNELEtBQU0sTUFBTUosZ0JBQWdCLE1BQU8sUUFBUUksT0FBTyxLQUFLLElBQUlBLEtBQUtMO1lBQ3JGLElBQUlPLFVBQVUsSUFBSUwsbUJBQW1CRSxTQUFTLFFBQVFBLFNBQVMsS0FBSyxJQUFJLEtBQUssSUFBSUEsS0FBS0csT0FBTztZQUM3RixJQUFJLENBQUNBLFFBQVFDLEdBQUcsQ0FBQyxXQUFXO2dCQUN4QkQsUUFBUUUsR0FBRyxDQUFDLFVBQVVUO1lBQzFCO1lBQ0EsSUFBSSxDQUFDTyxRQUFRQyxHQUFHLENBQUMsa0JBQWtCO2dCQUMvQkQsUUFBUUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRUgsWUFBWSxDQUFDO1lBQ3hEO1lBQ0EsT0FBT1YsT0FBTU8sT0FBT08sT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHUCxPQUFPO2dCQUFFRztZQUFRO1FBQ3pFO0FBQ0osRUFBRSxDQUNGLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL2ZldGNoLmpzPzI1NGMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgbm9kZUZldGNoLCB7IEhlYWRlcnMgYXMgTm9kZUZldGNoSGVhZGVycyB9IGZyb20gJ0BzdXBhYmFzZS9ub2RlLWZldGNoJztcbmV4cG9ydCBjb25zdCByZXNvbHZlRmV0Y2ggPSAoY3VzdG9tRmV0Y2gpID0+IHtcbiAgICBsZXQgX2ZldGNoO1xuICAgIGlmIChjdXN0b21GZXRjaCkge1xuICAgICAgICBfZmV0Y2ggPSBjdXN0b21GZXRjaDtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGZldGNoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBfZmV0Y2ggPSBub2RlRmV0Y2g7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBfZmV0Y2ggPSBmZXRjaDtcbiAgICB9XG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiBfZmV0Y2goLi4uYXJncyk7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIZWFkZXJzQ29uc3RydWN0b3IgPSAoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBIZWFkZXJzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gTm9kZUZldGNoSGVhZGVycztcbiAgICB9XG4gICAgcmV0dXJuIEhlYWRlcnM7XG59O1xuZXhwb3J0IGNvbnN0IGZldGNoV2l0aEF1dGggPSAoc3VwYWJhc2VLZXksIGdldEFjY2Vzc1Rva2VuLCBjdXN0b21GZXRjaCkgPT4ge1xuICAgIGNvbnN0IGZldGNoID0gcmVzb2x2ZUZldGNoKGN1c3RvbUZldGNoKTtcbiAgICBjb25zdCBIZWFkZXJzQ29uc3RydWN0b3IgPSByZXNvbHZlSGVhZGVyc0NvbnN0cnVjdG9yKCk7XG4gICAgcmV0dXJuIChpbnB1dCwgaW5pdCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSAoX2EgPSAoeWllbGQgZ2V0QWNjZXNzVG9rZW4oKSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHN1cGFiYXNlS2V5O1xuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIZWFkZXJzQ29uc3RydWN0b3IoaW5pdCA9PT0gbnVsbCB8fCBpbml0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbml0LmhlYWRlcnMpO1xuICAgICAgICBpZiAoIWhlYWRlcnMuaGFzKCdhcGlrZXknKSkge1xuICAgICAgICAgICAgaGVhZGVycy5zZXQoJ2FwaWtleScsIHN1cGFiYXNlS2V5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWhlYWRlcnMuaGFzKCdBdXRob3JpemF0aW9uJykpIHtcbiAgICAgICAgICAgIGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke2FjY2Vzc1Rva2VufWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaChpbnB1dCwgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0KSwgeyBoZWFkZXJzIH0pKTtcbiAgICB9KTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mZXRjaC5qcy5tYXAiXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5Iiwibm9kZUZldGNoIiwiSGVhZGVycyIsIk5vZGVGZXRjaEhlYWRlcnMiLCJyZXNvbHZlRmV0Y2giLCJjdXN0b21GZXRjaCIsIl9mZXRjaCIsImZldGNoIiwiYXJncyIsInJlc29sdmVIZWFkZXJzQ29uc3RydWN0b3IiLCJmZXRjaFdpdGhBdXRoIiwic3VwYWJhc2VLZXkiLCJnZXRBY2Nlc3NUb2tlbiIsIkhlYWRlcnNDb25zdHJ1Y3RvciIsImlucHV0IiwiaW5pdCIsIl9hIiwiYWNjZXNzVG9rZW4iLCJoZWFkZXJzIiwiaGFzIiwic2V0IiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applySettingDefaults: () => (/* binding */ applySettingDefaults),\n/* harmony export */ isBrowser: () => (/* binding */ isBrowser),\n/* harmony export */ stripTrailingSlash: () => (/* binding */ stripTrailingSlash),\n/* harmony export */ uuid: () => (/* binding */ uuid)\n/* harmony export */ });\nfunction uuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == \"x\" ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\nfunction stripTrailingSlash(url) {\n return url.replace(/\\/$/, \"\");\n}\nconst isBrowser = ()=>\"undefined\" !== \"undefined\";\nfunction applySettingDefaults(options, defaults) {\n const { db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions } = options;\n const { db: DEFAULT_DB_OPTIONS, auth: DEFAULT_AUTH_OPTIONS, realtime: DEFAULT_REALTIME_OPTIONS, global: DEFAULT_GLOBAL_OPTIONS } = defaults;\n return {\n db: Object.assign(Object.assign({}, DEFAULT_DB_OPTIONS), dbOptions),\n auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), authOptions),\n realtime: Object.assign(Object.assign({}, DEFAULT_REALTIME_OPTIONS), realtimeOptions),\n global: Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS), globalOptions)\n };\n} //# sourceMappingURL=helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTyxTQUFTQTtJQUNaLE9BQU8sdUNBQXVDQyxPQUFPLENBQUMsU0FBUyxTQUFVQyxDQUFDO1FBQ3RFLElBQUlDLElBQUksS0FBTUUsTUFBTSxLQUFLLEtBQU0sR0FBR0MsSUFBSUosS0FBSyxNQUFNQyxJQUFJLElBQUssTUFBTztRQUNqRSxPQUFPRyxFQUFFQyxRQUFRLENBQUM7SUFDdEI7QUFDSjtBQUNPLFNBQVNDLG1CQUFtQkMsR0FBRztJQUNsQyxPQUFPQSxJQUFJUixPQUFPLENBQUMsT0FBTztBQUM5QjtBQUNPLE1BQU1TLFlBQVksSUFBTSxnQkFBa0IsWUFBWTtBQUN0RCxTQUFTQyxxQkFBcUJDLE9BQU8sRUFBRUMsUUFBUTtJQUNsRCxNQUFNLEVBQUVDLElBQUlDLFNBQVMsRUFBRUMsTUFBTUMsV0FBVyxFQUFFQyxVQUFVQyxlQUFlLEVBQUVDLFFBQVFDLGFBQWEsRUFBRyxHQUFHVDtJQUNoRyxNQUFNLEVBQUVFLElBQUlRLGtCQUFrQixFQUFFTixNQUFNTyxvQkFBb0IsRUFBRUwsVUFBVU0sd0JBQXdCLEVBQUVKLFFBQVFLLHNCQUFzQixFQUFHLEdBQUdaO0lBQ3BJLE9BQU87UUFDSEMsSUFBSVksT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHTCxxQkFBcUJQO1FBQ3pEQyxNQUFNVSxPQUFPQyxNQUFNLENBQUNELE9BQU9DLE1BQU0sQ0FBQyxDQUFDLEdBQUdKLHVCQUF1Qk47UUFDN0RDLFVBQVVRLE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR0gsMkJBQTJCTDtRQUNyRUMsUUFBUU0sT0FBT0MsTUFBTSxDQUFDRCxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHRix5QkFBeUJKO0lBQ3JFO0FBQ0osRUFDQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9oZWxwZXJzLmpzPzlhNmQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHV1aWQoKSB7XG4gICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgdmFyIHIgPSAoTWF0aC5yYW5kb20oKSAqIDE2KSB8IDAsIHYgPSBjID09ICd4JyA/IHIgOiAociAmIDB4MykgfCAweDg7XG4gICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcFRyYWlsaW5nU2xhc2godXJsKSB7XG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKC9cXC8kLywgJycpO1xufVxuZXhwb3J0IGNvbnN0IGlzQnJvd3NlciA9ICgpID0+IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U2V0dGluZ0RlZmF1bHRzKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gICAgY29uc3QgeyBkYjogZGJPcHRpb25zLCBhdXRoOiBhdXRoT3B0aW9ucywgcmVhbHRpbWU6IHJlYWx0aW1lT3B0aW9ucywgZ2xvYmFsOiBnbG9iYWxPcHRpb25zLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IGRiOiBERUZBVUxUX0RCX09QVElPTlMsIGF1dGg6IERFRkFVTFRfQVVUSF9PUFRJT05TLCByZWFsdGltZTogREVGQVVMVF9SRUFMVElNRV9PUFRJT05TLCBnbG9iYWw6IERFRkFVTFRfR0xPQkFMX09QVElPTlMsIH0gPSBkZWZhdWx0cztcbiAgICByZXR1cm4ge1xuICAgICAgICBkYjogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX0RCX09QVElPTlMpLCBkYk9wdGlvbnMpLFxuICAgICAgICBhdXRoOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfQVVUSF9PUFRJT05TKSwgYXV0aE9wdGlvbnMpLFxuICAgICAgICByZWFsdGltZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX1JFQUxUSU1FX09QVElPTlMpLCByZWFsdGltZU9wdGlvbnMpLFxuICAgICAgICBnbG9iYWw6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9HTE9CQUxfT1BUSU9OUyksIGdsb2JhbE9wdGlvbnMpLFxuICAgIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6WyJ1dWlkIiwicmVwbGFjZSIsImMiLCJyIiwiTWF0aCIsInJhbmRvbSIsInYiLCJ0b1N0cmluZyIsInN0cmlwVHJhaWxpbmdTbGFzaCIsInVybCIsImlzQnJvd3NlciIsImFwcGx5U2V0dGluZ0RlZmF1bHRzIiwib3B0aW9ucyIsImRlZmF1bHRzIiwiZGIiLCJkYk9wdGlvbnMiLCJhdXRoIiwiYXV0aE9wdGlvbnMiLCJyZWFsdGltZSIsInJlYWx0aW1lT3B0aW9ucyIsImdsb2JhbCIsImdsb2JhbE9wdGlvbnMiLCJERUZBVUxUX0RCX09QVElPTlMiLCJERUZBVUxUX0FVVEhfT1BUSU9OUyIsIkRFRkFVTFRfUkVBTFRJTUVfT1BUSU9OUyIsIkRFRkFVTFRfR0xPQkFMX09QVElPTlMiLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@supabase/supabase-js/dist/module/lib/version.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: () => (/* binding */ version)\n/* harmony export */ });\nconst version = \"2.39.3\"; //# sourceMappingURL=version.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi92ZXJzaW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxVQUFVLFNBQVMsQ0FDaEMsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcz80ODI3Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB2ZXJzaW9uID0gJzIuMzkuMyc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZXJzaW9uLmpzLm1hcCJdLCJuYW1lcyI6WyJ2ZXJzaW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/@supabase/ssr/dist/index.mjs": +/*!***************************************************!*\ + !*** ./node_modules/@supabase/ssr/dist/index.mjs ***! + \***************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_COOKIE_OPTIONS: () => (/* binding */ DEFAULT_COOKIE_OPTIONS),\n/* harmony export */ combineChunks: () => (/* binding */ combineChunks),\n/* harmony export */ createBrowserClient: () => (/* binding */ createBrowserClient),\n/* harmony export */ createChunks: () => (/* binding */ createChunks),\n/* harmony export */ createServerClient: () => (/* binding */ createServerClient),\n/* harmony export */ deleteChunks: () => (/* binding */ deleteChunks),\n/* harmony export */ isBrowser: () => (/* binding */ isBrowser),\n/* harmony export */ parse: () => (/* reexport safe */ cookie__WEBPACK_IMPORTED_MODULE_0__.parse),\n/* harmony export */ serialize: () => (/* reexport safe */ cookie__WEBPACK_IMPORTED_MODULE_0__.serialize)\n/* harmony export */ });\n/* harmony import */ var _supabase_supabase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/supabase-js */ \"(rsc)/./node_modules/@supabase/supabase-js/dist/module/index.js\");\n/* harmony import */ var _barrel_optimize_names_mergeDeepRight_ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=mergeDeepRight!=!ramda */ \"(rsc)/./node_modules/ramda/es/mergeDeepRight.js\");\n/* harmony import */ var cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cookie */ \"(rsc)/./node_modules/cookie/index.js\");\n// src/createBrowserClient.ts\n\n\n// src/utils/helpers.ts\n\nfunction isBrowser() {\n return false && 0;\n}\n// src/utils/constants.ts\nvar DEFAULT_COOKIE_OPTIONS = {\n path: \"/\",\n sameSite: \"lax\",\n httpOnly: false,\n maxAge: 60 * 60 * 24 * 365 * 1e3\n};\n// src/utils/chunker.ts\nvar MAX_CHUNK_SIZE = 3180;\nfunction createChunks(key, value, chunkSize) {\n const resolvedChunkSize = chunkSize ?? MAX_CHUNK_SIZE;\n let encodedValue = encodeURIComponent(value);\n if (encodedValue.length <= resolvedChunkSize) {\n return [\n {\n name: key,\n value\n }\n ];\n }\n const chunks = [];\n while(encodedValue.length > 0){\n let encodedChunkHead = encodedValue.slice(0, resolvedChunkSize);\n const lastEscapePos = encodedChunkHead.lastIndexOf(\"%\");\n if (lastEscapePos > resolvedChunkSize - 3) {\n encodedChunkHead = encodedChunkHead.slice(0, lastEscapePos);\n }\n let valueHead = \"\";\n while(encodedChunkHead.length > 0){\n try {\n valueHead = decodeURIComponent(encodedChunkHead);\n break;\n } catch (error) {\n if (error instanceof URIError && encodedChunkHead.at(-3) === \"%\" && encodedChunkHead.length > 3) {\n encodedChunkHead = encodedChunkHead.slice(0, encodedChunkHead.length - 3);\n } else {\n throw error;\n }\n }\n }\n chunks.push(valueHead);\n encodedValue = encodedValue.slice(encodedChunkHead.length);\n }\n return chunks.map((value2, i)=>({\n name: `${key}.${i}`,\n value: value2\n }));\n}\nasync function combineChunks(key, retrieveChunk) {\n const value = await retrieveChunk(key);\n if (value) {\n return value;\n }\n let values = [];\n for(let i = 0;; i++){\n const chunkName = `${key}.${i}`;\n const chunk = await retrieveChunk(chunkName);\n if (!chunk) {\n break;\n }\n values.push(chunk);\n }\n if (values.length > 0) {\n return values.join(\"\");\n }\n}\nasync function deleteChunks(key, retrieveChunk, removeChunk) {\n const value = await retrieveChunk(key);\n if (value) {\n await removeChunk(key);\n return;\n }\n for(let i = 0;; i++){\n const chunkName = `${key}.${i}`;\n const chunk = await retrieveChunk(chunkName);\n if (!chunk) {\n break;\n }\n await removeChunk(chunkName);\n }\n}\n// src/createBrowserClient.ts\n\nvar cachedBrowserClient;\nfunction createBrowserClient(supabaseUrl, supabaseKey, options) {\n if (!supabaseUrl || !supabaseKey) {\n throw new Error(`Your project's URL and Key are required to create a Supabase client!\n\nCheck your Supabase project's API settings to find these values\n\nhttps://supabase.com/dashboard/project/_/settings/api`);\n }\n let cookies = {};\n let isSingleton = true;\n let cookieOptions;\n let userDefinedClientOptions;\n if (options) {\n ({ cookies, isSingleton = true, cookieOptions, ...userDefinedClientOptions } = options);\n }\n const cookieClientOptions = {\n global: {\n headers: {\n \"X-Client-Info\": `${\"supabase-ssr\"}/${\"0.1.0\"}`\n }\n },\n auth: {\n flowType: \"pkce\",\n autoRefreshToken: isBrowser(),\n detectSessionInUrl: isBrowser(),\n persistSession: true,\n storage: {\n // this client is used on the browser so cookies can be trusted\n isServer: false,\n getItem: async (key)=>{\n const chunkedCookie = await combineChunks(key, async (chunkName)=>{\n if (typeof cookies.get === \"function\") {\n return await cookies.get(chunkName);\n }\n if (isBrowser()) {\n const cookie = (0,cookie__WEBPACK_IMPORTED_MODULE_0__.parse)(document.cookie);\n return cookie[chunkName];\n }\n });\n return chunkedCookie;\n },\n setItem: async (key, value)=>{\n const chunks = await createChunks(key, value);\n await Promise.all(chunks.map(async (chunk)=>{\n if (typeof cookies.set === \"function\") {\n await cookies.set(chunk.name, chunk.value, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: DEFAULT_COOKIE_OPTIONS.maxAge\n });\n } else {\n if (isBrowser()) {\n document.cookie = (0,cookie__WEBPACK_IMPORTED_MODULE_0__.serialize)(chunk.name, chunk.value, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: DEFAULT_COOKIE_OPTIONS.maxAge\n });\n }\n }\n }));\n },\n removeItem: async (key)=>{\n if (typeof cookies.remove === \"function\" && typeof cookies.get !== \"function\") {\n console.log(\"Removing chunked cookie without a `get` method is not supported.\\n\\n\tWhen you call the `createBrowserClient` function from the `@supabase/ssr` package, make sure you declare both a `get` and `remove` method on the `cookies` object.\\n\\nhttps://supabase.com/docs/guides/auth/server-side/creating-a-client\");\n return;\n }\n await deleteChunks(key, async (chunkName)=>{\n if (typeof cookies.get === \"function\") {\n return await cookies.get(chunkName);\n }\n if (isBrowser()) {\n const documentCookies = (0,cookie__WEBPACK_IMPORTED_MODULE_0__.parse)(document.cookie);\n return documentCookies[chunkName];\n }\n }, async (chunkName)=>{\n if (typeof cookies.remove === \"function\") {\n await cookies.remove(chunkName, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: 0\n });\n } else {\n if (isBrowser()) {\n document.cookie = (0,cookie__WEBPACK_IMPORTED_MODULE_0__.serialize)(chunkName, \"\", {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: 0\n });\n }\n }\n });\n }\n }\n }\n };\n const clientOptions = (0,_barrel_optimize_names_mergeDeepRight_ramda__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(cookieClientOptions, userDefinedClientOptions);\n if (isSingleton) {\n const browser = isBrowser();\n if (browser && cachedBrowserClient) {\n return cachedBrowserClient;\n }\n const client = (0,_supabase_supabase_js__WEBPACK_IMPORTED_MODULE_2__.createClient)(supabaseUrl, supabaseKey, clientOptions);\n if (browser) {\n cachedBrowserClient = client;\n }\n return client;\n }\n return (0,_supabase_supabase_js__WEBPACK_IMPORTED_MODULE_2__.createClient)(supabaseUrl, supabaseKey, clientOptions);\n}\n// src/createServerClient.ts\n\n\nfunction createServerClient(supabaseUrl, supabaseKey, options) {\n if (!supabaseUrl || !supabaseKey) {\n throw new Error(`Your project's URL and Key are required to create a Supabase client!\n\nCheck your Supabase project's API settings to find these values\n\nhttps://supabase.com/dashboard/project/_/settings/api`);\n }\n const { cookies, cookieOptions, ...userDefinedClientOptions } = options;\n if (cookieOptions == null ? void 0 : cookieOptions.name) {\n userDefinedClientOptions.auth = {\n ...userDefinedClientOptions.auth,\n storageKey: cookieOptions.name\n };\n }\n const cookieClientOptions = {\n global: {\n headers: {\n \"X-Client-Info\": `${\"supabase-ssr\"}/${\"0.1.0\"}`\n }\n },\n auth: {\n flowType: \"pkce\",\n autoRefreshToken: isBrowser(),\n detectSessionInUrl: isBrowser(),\n persistSession: true,\n storage: {\n // to signal to the libraries that these cookies are coming from a server environment and their value should not be trusted\n isServer: true,\n getItem: async (key)=>{\n const chunkedCookie = await combineChunks(key, async (chunkName)=>{\n if (typeof cookies.get === \"function\") {\n return await cookies.get(chunkName);\n }\n });\n return chunkedCookie;\n },\n setItem: async (key, value)=>{\n const chunks = createChunks(key, value);\n await Promise.all(chunks.map(async (chunk)=>{\n if (typeof cookies.set === \"function\") {\n await cookies.set(chunk.name, chunk.value, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: DEFAULT_COOKIE_OPTIONS.maxAge\n });\n }\n }));\n },\n removeItem: async (key)=>{\n if (typeof cookies.remove === \"function\" && typeof cookies.get !== \"function\") {\n console.log(\"Removing chunked cookie without a `get` method is not supported.\\n\\n\tWhen you call the `createServerClient` function from the `@supabase/ssr` package, make sure you declare both a `get` and `remove` method on the `cookies` object.\\n\\nhttps://supabase.com/docs/guides/auth/server-side/creating-a-client\");\n return;\n }\n deleteChunks(key, async (chunkName)=>{\n if (typeof cookies.get === \"function\") {\n return await cookies.get(chunkName);\n }\n }, async (chunkName)=>{\n if (typeof cookies.remove === \"function\") {\n return await cookies.remove(chunkName, {\n ...DEFAULT_COOKIE_OPTIONS,\n ...cookieOptions,\n maxAge: 0\n });\n }\n });\n }\n }\n }\n };\n const clientOptions = (0,_barrel_optimize_names_mergeDeepRight_ramda__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(cookieClientOptions, userDefinedClientOptions);\n return (0,_supabase_supabase_js__WEBPACK_IMPORTED_MODULE_2__.createClient)(supabaseUrl, supabaseKey, clientOptions);\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Nzci9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2QkFBNkI7QUFDd0I7QUFDZDtBQUV2Qyx1QkFBdUI7QUFDbUI7QUFDMUMsU0FBU0k7SUFDUCxPQUFPLE1BQTZCLElBQUksQ0FBc0M7QUFDaEY7QUFFQSx5QkFBeUI7QUFDekIsSUFBSUcseUJBQXlCO0lBQzNCQyxNQUFNO0lBQ05DLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxRQUFRLEtBQUssS0FBSyxLQUFLLE1BQU07QUFDL0I7QUFFQSx1QkFBdUI7QUFDdkIsSUFBSUMsaUJBQWlCO0FBQ3JCLFNBQVNDLGFBQWFDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxTQUFTO0lBQ3pDLE1BQU1DLG9CQUFvQkQsYUFBYUo7SUFDdkMsSUFBSU0sZUFBZUMsbUJBQW1CSjtJQUN0QyxJQUFJRyxhQUFhRSxNQUFNLElBQUlILG1CQUFtQjtRQUM1QyxPQUFPO1lBQUM7Z0JBQUVJLE1BQU1QO2dCQUFLQztZQUFNO1NBQUU7SUFDL0I7SUFDQSxNQUFNTyxTQUFTLEVBQUU7SUFDakIsTUFBT0osYUFBYUUsTUFBTSxHQUFHLEVBQUc7UUFDOUIsSUFBSUcsbUJBQW1CTCxhQUFhTSxLQUFLLENBQUMsR0FBR1A7UUFDN0MsTUFBTVEsZ0JBQWdCRixpQkFBaUJHLFdBQVcsQ0FBQztRQUNuRCxJQUFJRCxnQkFBZ0JSLG9CQUFvQixHQUFHO1lBQ3pDTSxtQkFBbUJBLGlCQUFpQkMsS0FBSyxDQUFDLEdBQUdDO1FBQy9DO1FBQ0EsSUFBSUUsWUFBWTtRQUNoQixNQUFPSixpQkFBaUJILE1BQU0sR0FBRyxFQUFHO1lBQ2xDLElBQUk7Z0JBQ0ZPLFlBQVlDLG1CQUFtQkw7Z0JBQy9CO1lBQ0YsRUFBRSxPQUFPTSxPQUFPO2dCQUNkLElBQUlBLGlCQUFpQkMsWUFBWVAsaUJBQWlCUSxFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU9SLGlCQUFpQkgsTUFBTSxH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QU9BO3dCQUNMLElBQUksT0FBT2EsUUFBUXVCLE1BQU0sS0FBSyxZQUFZOzRCQUN4QyxPQUFPLE1BQU12QixRQUFRdUIsTUFBTSxDQUFDcEMsV0FBVztnQ0FDckMsR0FBR2hDLHNCQUFzQjtnQ0FDekIsR0FBRytDLGFBQWE7Z0NBQ2hCM0MsUUFBUTs0QkFDVjt3QkFDRjtvQkFDRjtnQkFFSjtZQUNGO1FBQ0Y7SUFDRjtJQUNBLE1BQU1vRSxnQkFBZ0JJLHVGQUFlQSxDQUNuQzNCLHFCQUNBRDtJQUVGLE9BQU8yQixtRUFBYUEsQ0FBQ2xDLGFBQWFDLGFBQWE4QjtBQUNqRDtBQVdFLENBQ0Ysa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zc3IvZGlzdC9pbmRleC5tanM/ZDMzNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvY3JlYXRlQnJvd3NlckNsaWVudC50c1xuaW1wb3J0IHsgY3JlYXRlQ2xpZW50IH0gZnJvbSBcIkBzdXBhYmFzZS9zdXBhYmFzZS1qc1wiO1xuaW1wb3J0IHsgbWVyZ2VEZWVwUmlnaHQgfSBmcm9tIFwicmFtZGFcIjtcblxuLy8gc3JjL3V0aWxzL2hlbHBlcnMudHNcbmltcG9ydCB7IHBhcnNlLCBzZXJpYWxpemUgfSBmcm9tIFwiY29va2llXCI7XG5mdW5jdGlvbiBpc0Jyb3dzZXIoKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCI7XG59XG5cbi8vIHNyYy91dGlscy9jb25zdGFudHMudHNcbnZhciBERUZBVUxUX0NPT0tJRV9PUFRJT05TID0ge1xuICBwYXRoOiBcIi9cIixcbiAgc2FtZVNpdGU6IFwibGF4XCIsXG4gIGh0dHBPbmx5OiBmYWxzZSxcbiAgbWF4QWdlOiA2MCAqIDYwICogMjQgKiAzNjUgKiAxZTNcbn07XG5cbi8vIHNyYy91dGlscy9jaHVua2VyLnRzXG52YXIgTUFYX0NIVU5LX1NJWkUgPSAzMTgwO1xuZnVuY3Rpb24gY3JlYXRlQ2h1bmtzKGtleSwgdmFsdWUsIGNodW5rU2l6ZSkge1xuICBjb25zdCByZXNvbHZlZENodW5rU2l6ZSA9IGNodW5rU2l6ZSA/PyBNQVhfQ0hVTktfU0laRTtcbiAgbGV0IGVuY29kZWRWYWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gIGlmIChlbmNvZGVkVmFsdWUubGVuZ3RoIDw9IHJlc29sdmVkQ2h1bmtTaXplKSB7XG4gICAgcmV0dXJuIFt7IG5hbWU6IGtleSwgdmFsdWUgfV07XG4gIH1cbiAgY29uc3QgY2h1bmtzID0gW107XG4gIHdoaWxlIChlbmNvZGVkVmFsdWUubGVuZ3RoID4gMCkge1xuICAgIGxldCBlbmNvZGVkQ2h1bmtIZWFkID0gZW5jb2RlZFZhbHVlLnNsaWNlKDAsIHJlc29sdmVkQ2h1bmtTaXplKTtcbiAgICBjb25zdCBsYXN0RXNjYXBlUG9zID0gZW5jb2RlZENodW5rSGVhZC5sYXN0SW5kZXhPZihcIiVcIik7XG4gICAgaWYgKGxhc3RFc2NhcGVQb3MgPiByZXNvbHZlZENodW5rU2l6ZSAtIDMpIHtcbiAgICAgIGVuY29kZWRDaHVua0hlYWQgPSBlbmNvZGVkQ2h1bmtIZWFkLnNsaWNlKDAsIGxhc3RFc2NhcGVQb3MpO1xuICAgIH1cbiAgICBsZXQgdmFsdWVIZWFkID0gXCJcIjtcbiAgICB3aGlsZSAoZW5jb2RlZENodW5rSGVhZC5sZW5ndGggPiAwKSB7XG4gICAgICB0cnkge1xuICAgICAgICB2YWx1ZUhlYWQgPSBkZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZENodW5rSGVhZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVVJJRXJyb3IgJiYgZW5jb2RlZENodW5rSGVhZC5hdCgtMykgPT09IFwiJVwiICYmIGVuY29kZWRDaHVua0hlYWQubGVuZ3RoID4gMykge1xuICAgICAgICAgIGVuY29kZWRDaHVua0hlYWQgPSBlbmNvZGVkQ2h1bmtIZWFkLnNsaWNlKDAsIGVuY29kZWRDaHVua0hlYWQubGVuZ3RoIC0gMyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY2h1bmtzLnB1c2godmFsdWVIZWFkKTtcbiAgICBlbmNvZGVkVmFsdWUgPSBlbmNvZGVkVmFsdWUuc2xpY2UoZW5jb2RlZENodW5rSGVhZC5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBjaHVua3MubWFwKCh2YWx1ZTIsIGkpID0+ICh7IG5hbWU6IGAke2tleX0uJHtpfWAsIHZhbHVlOiB2YWx1ZTIgfSkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY29tYmluZUNodW5rcyhrZXksIHJldHJpZXZlQ2h1bmspIHtcbiAgY29uc3QgdmFsdWUgPSBhd2FpdCByZXRyaWV2ZUNodW5rKGtleSk7XG4gIGlmICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBsZXQgdmFsdWVzID0gW107XG4gIGZvciAobGV0IGkgPSAwOyA7IGkrKykge1xuICAgIGNvbnN0IGNodW5rTmFtZSA9IGAke2tleX0uJHtpfWA7XG4gICAgY29uc3QgY2h1bmsgPSBhd2FpdCByZXRyaWV2ZUNodW5rKGNodW5rTmFtZSk7XG4gICAgaWYgKCFjaHVuaykge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhbHVlcy5wdXNoKGNodW5rKTtcbiAgfVxuICBpZiAodmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gdmFsdWVzLmpvaW4oXCJcIik7XG4gIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUNodW5rcyhrZXksIHJldHJpZXZlQ2h1bmssIHJlbW92ZUNodW5rKSB7XG4gIGNvbnN0IHZhbHVlID0gYXdhaXQgcmV0cmlldmVDaHVuayhrZXkpO1xuICBpZiAodmFsdWUpIHtcbiAgICBhd2FpdCByZW1vdmVDaHVuayhrZXkpO1xuICAgIHJldHVybjtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgOyBpKyspIHtcbiAgICBjb25zdCBjaHVua05hbWUgPSBgJHtrZXl9LiR7aX1gO1xuICAgIGNvbnN0IGNodW5rID0gYXdhaXQgcmV0cmlldmVDaHVuayhjaHVua05hbWUpO1xuICAgIGlmICghY2h1bmspIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBhd2FpdCByZW1vdmVDaHVuayhjaHVua05hbWUpO1xuICB9XG59XG5cbi8vIHNyYy9jcmVhdGVCcm93c2VyQ2xpZW50LnRzXG5pbXBvcnQgeyBwYXJzZSBhcyBwYXJzZTIsIHNlcmlhbGl6ZSBhcyBzZXJpYWxpemUyIH0gZnJvbSBcImNvb2tpZVwiO1xudmFyIGNhY2hlZEJyb3dzZXJDbGllbnQ7XG5mdW5jdGlvbiBjcmVhdGVCcm93c2VyQ2xpZW50KHN1cGFiYXNlVXJsLCBzdXBhYmFzZUtleSwgb3B0aW9ucykge1xuICBpZiAoIXN1cGFiYXNlVXJsIHx8ICFzdXBhYmFzZUtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBZb3VyIHByb2plY3QncyBVUkwgYW5kIEtleSBhcmUgcmVxdWlyZWQgdG8gY3JlYXRlIGEgU3VwYWJhc2UgY2xpZW50IVxuXG5DaGVjayB5b3VyIFN1cGFiYXNlIHByb2plY3QncyBBUEkgc2V0dGluZ3MgdG8gZmluZCB0aGVzZSB2YWx1ZXNcblxuaHR0cHM6Ly9zdXBhYmFzZS5jb20vZGFzaGJvYXJkL3Byb2plY3QvXy9zZXR0aW5ncy9hcGlgXG4gICAgKTtcbiAgfVxuICBsZXQgY29va2llcyA9IHt9O1xuICBsZXQgaXNTaW5nbGV0b24gPSB0cnVlO1xuICBsZXQgY29va2llT3B0aW9ucztcbiAgbGV0IHVzZXJEZWZpbmVkQ2xpZW50T3B0aW9ucztcbiAgaWYgKG9wdGlvbnMpIHtcbiAgICAoeyBjb29raWVzLCBpc1NpbmdsZXRvbiA9IHRydWUsIGNvb2tpZU9wdGlvbnMsIC4uLnVzZXJEZWZpbmVkQ2xpZW50T3B0aW9ucyB9ID0gb3B0aW9ucyk7XG4gIH1cbiAgY29uc3QgY29va2llQ2xpZW50T3B0aW9ucyA9IHtcbiAgICBnbG9iYWw6IHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJYLUNsaWVudC1JbmZvXCI6IGAke1wic3VwYWJhc2Utc3NyXCJ9LyR7XCIwLjEuMFwifWBcbiAgICAgIH1cbiAgICB9LFxuICAgIGF1dGg6IHtcbiAgICAgIGZsb3dUeXBlOiBcInBrY2VcIixcbiAgICAgIGF1dG9SZWZyZXNoVG9rZW46IGlzQnJvd3NlcigpLFxuICAgICAgZGV0ZWN0U2Vzc2lvbkluVXJsOiBpc0Jyb3dzZXIoKSxcbiAgICAgIHBlcnNpc3RTZXNzaW9uOiB0cnVlLFxuICAgICAgc3RvcmFnZToge1xuICAgICAgICAvLyB0aGlzIGNsaWVudCBpcyB1c2VkIG9uIHRoZSBicm93c2VyIHNvIGNvb2tpZXMgY2FuIGJlIHRydXN0ZWRcbiAgICAgICAgaXNTZXJ2ZXI6IGZhbHNlLFxuICAgICAgICBnZXRJdGVtOiBhc3luYyAoa2V5KSA9PiB7XG4gICAgICAgICAgY29uc3QgY2h1bmtlZENvb2tpZSA9IGF3YWl0IGNvbWJpbmVDaHVua3Moa2V5LCBhc3luYyAoY2h1bmtOYW1lKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvb2tpZXMuZ2V0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGNvb2tpZXMuZ2V0KGNodW5rTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgY29va2llID0gcGFyc2UyKGRvY3VtZW50LmNvb2tpZSk7XG4gICAgICAgICAgICAgIHJldHVybiBjb29raWVbY2h1bmtOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gY2h1bmtlZENvb2tpZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SXRlbTogYXN5bmMgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCBjcmVhdGVDaHVua3Moa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBjaHVua3MubWFwKGFzeW5jIChjaHVuaykgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvb2tpZXMuc2V0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBjb29raWVzLnNldChjaHVuay5uYW1lLCBjaHVuay52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgLi4uREVGQVVMVF9DT09LSUVfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICAgIC4uLmNvb2tpZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICBtYXhBZ2U6IERFRkFVTFRfQ09PS0lFX09QVElPTlMubWF4QWdlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXJpYWxpemUyKGNodW5rLm5hbWUsIGNodW5rLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLkRFRkFVTFRfQ09PS0lFX09QVElPTlMsXG4gICAgICAgICAgICAgICAgICAgIC4uLmNvb2tpZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIG1heEFnZTogREVGQVVMVF9DT09LSUVfT1BUSU9OUy5tYXhBZ2VcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICByZW1vdmVJdGVtOiBhc3luYyAoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjb29raWVzLnJlbW92ZSA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBjb29raWVzLmdldCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgXCJSZW1vdmluZyBjaHVua2VkIGNvb2tpZSB3aXRob3V0IGEgYGdldGAgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQuXFxuXFxuXHRXaGVuIHlvdSBjYWxsIHRoZSBgY3JlYXRlQnJvd3NlckNsaWVudGAgZnVuY3Rpb24gZnJvbSB0aGUgYEBzdXBhYmFzZS9zc3JgIHBhY2thZ2UsIG1ha2Ugc3VyZSB5b3UgZGVjbGFyZSBib3RoIGEgYGdldGAgYW5kIGByZW1vdmVgIG1ldGhvZCBvbiB0aGUgYGNvb2tpZXNgIG9iamVjdC5cXG5cXG5odHRwczovL3N1cGFiYXNlLmNvbS9kb2NzL2d1aWRlcy9hdXRoL3NlcnZlci1zaWRlL2NyZWF0aW5nLWEtY2xpZW50XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IGRlbGV0ZUNodW5rcyhcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGFzeW5jIChjaHVua05hbWUpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb29raWVzLmdldCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGNvb2tpZXMuZ2V0KGNodW5rTmFtZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRDb29raWVzID0gcGFyc2UyKGRvY3VtZW50LmNvb2tpZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50Q29va2llc1tjaHVua05hbWVdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgKGNodW5rTmFtZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvb2tpZXMucmVtb3ZlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBjb29raWVzLnJlbW92ZShjaHVua05hbWUsIHtcbiAgICAgICAgICAgICAgICAgIC4uLkRFRkFVTFRfQ09PS0lFX09QVElPTlMsXG4gICAgICAgICAgICAgICAgICAuLi5jb29raWVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgbWF4QWdlOiAwXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXJpYWxpemUyKGNodW5rTmFtZSwgXCJcIiwge1xuICAgICAgICAgICAgICAgICAgICAuLi5ERUZBVUxUX0NPT0tJRV9PUFRJT05TLFxuICAgICAgICAgICAgICAgICAgICAuLi5jb29raWVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICBtYXhBZ2U6IDBcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IGNsaWVudE9wdGlvbnMgPSBtZXJnZURlZXBSaWdodChcbiAgICBjb29raWVDbGllbnRPcHRpb25zLFxuICAgIHVzZXJEZWZpbmVkQ2xpZW50T3B0aW9uc1xuICApO1xuICBpZiAoaXNTaW5nbGV0b24pIHtcbiAgICBjb25zdCBicm93c2VyID0gaXNCcm93c2VyKCk7XG4gICAgaWYgKGJyb3dzZXIgJiYgY2FjaGVkQnJvd3NlckNsaWVudCkge1xuICAgICAgcmV0dXJuIGNhY2hlZEJyb3dzZXJDbGllbnQ7XG4gICAgfVxuICAgIGNvbnN0IGNsaWVudCA9IGNyZWF0ZUNsaWVudChcbiAgICAgIHN1cGFiYXNlVXJsLFxuICAgICAgc3VwYWJhc2VLZXksXG4gICAgICBjbGllbnRPcHRpb25zXG4gICAgKTtcbiAgICBpZiAoYnJvd3Nlcikge1xuICAgICAgY2FjaGVkQnJvd3NlckNsaWVudCA9IGNsaWVudDtcbiAgICB9XG4gICAgcmV0dXJuIGNsaWVudDtcbiAgfVxuICByZXR1cm4gY3JlYXRlQ2xpZW50KHN1cGFiYXNlVXJsLCBzdXBhYmFzZUtleSwgY2xpZW50T3B0aW9ucyk7XG59XG5cbi8vIHNyYy9jcmVhdGVTZXJ2ZXJDbGllbnQudHNcbmltcG9ydCB7IGNyZWF0ZUNsaWVudCBhcyBjcmVhdGVDbGllbnQyIH0gZnJvbSBcIkBzdXBhYmFzZS9zdXBhYmFzZS1qc1wiO1xuaW1wb3J0IHsgbWVyZ2VEZWVwUmlnaHQgYXMgbWVyZ2VEZWVwUmlnaHQyIH0gZnJvbSBcInJhbWRhXCI7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJDbGllbnQoc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5LCBvcHRpb25zKSB7XG4gIGlmICghc3VwYWJhc2VVcmwgfHwgIXN1cGFiYXNlS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFlvdXIgcHJvamVjdCdzIFVSTCBhbmQgS2V5IGFyZSByZXF1aXJlZCB0byBjcmVhdGUgYSBTdXBhYmFzZSBjbGllbnQhXG5cbkNoZWNrIHlvdXIgU3VwYWJhc2UgcHJvamVjdCdzIEFQSSBzZXR0aW5ncyB0byBmaW5kIHRoZXNlIHZhbHVlc1xuXG5odHRwczovL3N1cGFiYXNlLmNvbS9kYXNoYm9hcmQvcHJvamVjdC9fL3NldHRpbmdzL2FwaWBcbiAgICApO1xuICB9XG4gIGNvbnN0IHsgY29va2llcywgY29va2llT3B0aW9ucywgLi4udXNlckRlZmluZWRDbGllbnRPcHRpb25zIH0gPSBvcHRpb25zO1xuICBpZiAoY29va2llT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogY29va2llT3B0aW9ucy5uYW1lKSB7XG4gICAgdXNlckRlZmluZWRDbGllbnRPcHRpb25zLmF1dGggPSB7XG4gICAgICAuLi51c2VyRGVmaW5lZENsaWVudE9wdGlvbnMuYXV0aCxcbiAgICAgIHN0b3JhZ2VLZXk6IGNvb2tpZU9wdGlvbnMubmFtZVxuICAgIH07XG4gIH1cbiAgY29uc3QgY29va2llQ2xpZW50T3B0aW9ucyA9IHtcbiAgICBnbG9iYWw6IHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJYLUNsaWVudC1JbmZvXCI6IGAke1wic3VwYWJhc2Utc3NyXCJ9LyR7XCIwLjEuMFwifWBcbiAgICAgIH1cbiAgICB9LFxuICAgIGF1dGg6IHtcbiAgICAgIGZsb3dUeXBlOiBcInBrY2VcIixcbiAgICAgIGF1dG9SZWZyZXNoVG9rZW46IGlzQnJvd3NlcigpLFxuICAgICAgZGV0ZWN0U2Vzc2lvbkluVXJsOiBpc0Jyb3dzZXIoKSxcbiAgICAgIHBlcnNpc3RTZXNzaW9uOiB0cnVlLFxuICAgICAgc3RvcmFnZToge1xuICAgICAgICAvLyB0byBzaWduYWwgdG8gdGhlIGxpYnJhcmllcyB0aGF0IHRoZXNlIGNvb2tpZXMgYXJlIGNvbWluZyBmcm9tIGEgc2VydmVyIGVudmlyb25tZW50IGFuZCB0aGVpciB2YWx1ZSBzaG91bGQgbm90IGJlIHRydXN0ZWRcbiAgICAgICAgaXNTZXJ2ZXI6IHRydWUsXG4gICAgICAgIGdldEl0ZW06IGFzeW5jIChrZXkpID0+IHtcbiAgICAgICAgICBjb25zdCBjaHVua2VkQ29va2llID0gYXdhaXQgY29tYmluZUNodW5rcyhrZXksIGFzeW5jIChjaHVua05hbWUpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29va2llcy5nZXQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgY29va2llcy5nZXQoY2h1bmtOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gY2h1bmtlZENvb2tpZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SXRlbTogYXN5bmMgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjaHVua3MgPSBjcmVhdGVDaHVua3Moa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBjaHVua3MubWFwKGFzeW5jIChjaHVuaykgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvb2tpZXMuc2V0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBjb29raWVzLnNldChjaHVuay5uYW1lLCBjaHVuay52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgLi4uREVGQVVMVF9DT09LSUVfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICAgIC4uLmNvb2tpZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICBtYXhBZ2U6IERFRkFVTFRfQ09PS0lFX09QVElPTlMubWF4QWdlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlSXRlbTogYXN5bmMgKGtleSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgY29va2llcy5yZW1vdmUgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgY29va2llcy5nZXQgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgIFwiUmVtb3ZpbmcgY2h1bmtlZCBjb29raWUgd2l0aG91dCBhIGBnZXRgIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkLlxcblxcblx0V2hlbiB5b3UgY2FsbCB0aGUgYGNyZWF0ZVNlcnZlckNsaWVudGAgZnVuY3Rpb24gZnJvbSB0aGUgYEBzdXBhYmFzZS9zc3JgIHBhY2thZ2UsIG1ha2Ugc3VyZSB5b3UgZGVjbGFyZSBib3RoIGEgYGdldGAgYW5kIGByZW1vdmVgIG1ldGhvZCBvbiB0aGUgYGNvb2tpZXNgIG9iamVjdC5cXG5cXG5odHRwczovL3N1cGFiYXNlLmNvbS9kb2NzL2d1aWRlcy9hdXRoL3NlcnZlci1zaWRlL2NyZWF0aW5nLWEtY2xpZW50XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlbGV0ZUNodW5rcyhcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGFzeW5jIChjaHVua05hbWUpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb29raWVzLmdldCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGNvb2tpZXMuZ2V0KGNodW5rTmFtZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyAoY2h1bmtOYW1lKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29va2llcy5yZW1vdmUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBjb29raWVzLnJlbW92ZShjaHVua05hbWUsIHtcbiAgICAgICAgICAgICAgICAgIC4uLkRFRkFVTFRfQ09PS0lFX09QVElPTlMsXG4gICAgICAgICAgICAgICAgICAuLi5jb29raWVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgbWF4QWdlOiAwXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBjbGllbnRPcHRpb25zID0gbWVyZ2VEZWVwUmlnaHQyKFxuICAgIGNvb2tpZUNsaWVudE9wdGlvbnMsXG4gICAgdXNlckRlZmluZWRDbGllbnRPcHRpb25zXG4gICk7XG4gIHJldHVybiBjcmVhdGVDbGllbnQyKHN1cGFiYXNlVXJsLCBzdXBhYmFzZUtleSwgY2xpZW50T3B0aW9ucyk7XG59XG5leHBvcnQge1xuICBERUZBVUxUX0NPT0tJRV9PUFRJT05TLFxuICBjb21iaW5lQ2h1bmtzLFxuICBjcmVhdGVCcm93c2VyQ2xpZW50LFxuICBjcmVhdGVDaHVua3MsXG4gIGNyZWF0ZVNlcnZlckNsaWVudCxcbiAgZGVsZXRlQ2h1bmtzLFxuICBpc0Jyb3dzZXIsXG4gIHBhcnNlLFxuICBzZXJpYWxpemVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwIl0sIm5hbWVzIjpbImNyZWF0ZUNsaWVudCIsIm1lcmdlRGVlcFJpZ2h0IiwicGFyc2UiLCJzZXJpYWxpemUiLCJpc0Jyb3dzZXIiLCJ3aW5kb3ciLCJkb2N1bWVudCIsIkRFRkFVTFRfQ09PS0lFX09QVElPTlMiLCJwYXRoIiwic2FtZVNpdGUiLCJodHRwT25seSIsIm1heEFnZSIsIk1BWF9DSFVOS19TSVpFIiwiY3JlYXRlQ2h1bmtzIiwia2V5IiwidmFsdWUiLCJjaHVua1NpemUiLCJyZXNvbHZlZENodW5rU2l6ZSIsImVuY29kZWRWYWx1ZSIsImVuY29kZVVSSUNvbXBvbmVudCIsImxlbmd0aCIsIm5hbWUiLCJjaHVua3MiLCJlbmNvZGVkQ2h1bmtIZWFkIiwic2xpY2UiLCJsYXN0RXNjYXBlUG9zIiwibGFzdEluZGV4T2YiLCJ2YWx1ZUhlYWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlcnJvciIsIlVSSUVycm9yIiwiYXQiLCJwdXNoIiwibWFwIiwidmFsdWUyIiwiaSIsImNvbWJpbmVDaHVua3MiLCJyZXRyaWV2ZUNodW5rIiwidmFsdWVzIiwiY2h1bmtOYW1lIiwiY2h1bmsiLCJqb2luIiwiZGVsZXRlQ2h1bmtzIiwicmVtb3ZlQ2h1bmsiLCJwYXJzZTIiLCJzZXJpYWxpemUyIiwiY2FjaGVkQnJvd3NlckNsaWVudCIsImNyZWF0ZUJyb3dzZXJDbGllbnQiLCJzdXBhYmFzZVVybCIsInN1cGFiYXNlS2V5Iiwib3B0aW9ucyIsIkVycm9yIiwiY29va2llcyIsImlzU2luZ2xldG9uIiwiY29va2llT3B0aW9ucyIsInVzZXJEZWZpbmVkQ2xpZW50T3B0aW9ucyIsImNvb2tpZUNsaWVudE9wdGlvbnMiLCJnbG9iYWwiLCJoZWFkZXJzIiwiYXV0aCIsImZsb3dUeXBlIiwiYXV0b1JlZnJlc2hUb2tlbiIsImRldGVjdFNlc3Npb25JblVybCIsInBlcnNpc3RTZXNzaW9uIiwic3RvcmFnZSIsImlzU2VydmVyIiwiZ2V0SXRlbSIsImNodW5rZWRDb29raWUiLCJnZXQiLCJjb29raWUiLCJzZXRJdGVtIiwiUHJvbWlzZSIsImFsbCIsInNldCIsInJlbW92ZUl0ZW0iLCJyZW1vdmUiLCJjb25zb2xlIiwibG9nIiwiZG9jdW1lbnRDb29raWVzIiwiY2xpZW50T3B0aW9ucyIsImJyb3dzZXIiLCJjbGllbnQiLCJjcmVhdGVDbGllbnQyIiwibWVyZ2VEZWVwUmlnaHQyIiwiY3JlYXRlU2VydmVyQ2xpZW50Iiwic3RvcmFnZUtleSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@supabase/ssr/dist/index.mjs\n"); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/vendor-chunks/@swc.js b/.next/server/vendor-chunks/@swc.js new file mode 100644 index 0000000..b1305b9 --- /dev/null +++ b/.next/server/vendor-chunks/@swc.js @@ -0,0 +1,75 @@ +"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/@swc"; +exports.ids = ["vendor-chunks/@swc"]; +exports.modules = { + +/***/ "(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@swc/helpers/esm/_class_private_field_loose_base.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 */ _: () => (/* binding */ _class_private_field_loose_base),\n/* harmony export */ _class_private_field_loose_base: () => (/* binding */ _class_private_field_loose_base)\n/* harmony export */ });\nfunction _class_private_field_loose_base(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError(\"attempted to use private field on non-instance\");\n }\n return receiver;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sU0FBU0EsZ0NBQWdDQyxRQUFRLEVBQUVDLFVBQVU7SUFDaEUsSUFBSSxDQUFDQyxPQUFPQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDTCxVQUFVQyxhQUFhO1FBQzdELE1BQU0sSUFBSUssVUFBVTtJQUN4QjtJQUVBLE9BQU9OO0FBQ1g7QUFDZ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLmpzP2VjN2MiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UocmVjZWl2ZXIsIHByaXZhdGVLZXkpIHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWNlaXZlciwgcHJpdmF0ZUtleSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImF0dGVtcHRlZCB0byB1c2UgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2VcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY2VpdmVyO1xufVxuZXhwb3J0IHsgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSBhcyBfIH07XG4iXSwibmFtZXMiOlsiX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSIsInJlY2VpdmVyIiwicHJpdmF0ZUtleSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlR5cGVFcnJvciIsIl8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@swc/helpers/esm/_class_private_field_loose_key.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 */ _: () => (/* binding */ _class_private_field_loose_key),\n/* harmony export */ _class_private_field_loose_key: () => (/* binding */ _class_private_field_loose_key)\n/* harmony export */ });\nvar id = 0;\nfunction _class_private_field_loose_key(name) {\n return \"__private_\" + id++ + \"_\" + name;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFJQSxLQUFLO0FBRUYsU0FBU0MsK0JBQStCQyxJQUFJO0lBQy9DLE9BQU8sZUFBZUYsT0FBTyxNQUFNRTtBQUN2QztBQUMrQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL19jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleS5qcz83YzdkIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpZCA9IDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkobmFtZSkge1xuICAgIHJldHVybiBcIl9fcHJpdmF0ZV9cIiArIGlkKysgKyBcIl9cIiArIG5hbWU7XG59XG5leHBvcnQgeyBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkgYXMgXyB9O1xuIl0sIm5hbWVzIjpbImlkIiwiX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5IiwibmFtZSIsIl8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\n"); + +/***/ }), + +/***/ "(ssr)/./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__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _interop_require_default),\n/* harmony export */ _interop_require_default: () => (/* binding */ _interop_require_default)\n/* harmony export */ });\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTQSx5QkFBeUJDLEdBQUc7SUFDeEMsT0FBT0EsT0FBT0EsSUFBSUMsVUFBVSxHQUFHRCxNQUFNO1FBQUVFLFNBQVNGO0lBQUk7QUFDeEQ7QUFDeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanM/YjkzYSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuZXhwb3J0IHsgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IGFzIF8gfTtcbiJdLCJuYW1lcyI6WyJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\n"); + +/***/ }), + +/***/ "(ssr)/./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__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _interop_require_wildcard),\n/* harmony export */ _interop_require_wildcard: () => (/* binding */ _interop_require_wildcard)\n/* harmony export */ });\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) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return {\n default: obj\n };\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) return cache.get(obj);\n var newObj = {};\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)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n newObj.default = obj;\n if (cache) cache.set(obj, newObj);\n return newObj;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EseUJBQXlCQyxXQUFXO0lBQ3pDLElBQUksT0FBT0MsWUFBWSxZQUFZLE9BQU87SUFFMUMsSUFBSUMsb0JBQW9CLElBQUlEO0lBQzVCLElBQUlFLG1CQUFtQixJQUFJRjtJQUUzQixPQUFPLENBQUNGLDJCQUEyQixTQUFTQyxXQUFXO1FBQ25ELE9BQU9BLGNBQWNHLG1CQUFtQkQ7SUFDNUMsR0FBR0Y7QUFDUDtBQUNPLFNBQVNJLDBCQUEwQkMsR0FBRyxFQUFFTCxXQUFXO0lBQ3RELElBQUksQ0FBQ0EsZUFBZUssT0FBT0EsSUFBSUMsVUFBVSxFQUFFLE9BQU9EO0lBQ2xELElBQUlBLFFBQVEsUUFBUSxPQUFPQSxRQUFRLFlBQVksT0FBT0EsUUFBUSxZQUFZLE9BQU87UUFBRUUsU0FBU0Y7SUFBSTtJQUVoRyxJQUFJRyxRQUFRVCx5QkFBeUJDO0lBRXJDLElBQUlRLFNBQVNBLE1BQU1DLEdBQUcsQ0FBQ0osTUFBTSxPQUFPRyxNQUFNRSxHQUFHLENBQUNMO0lBRTlDLElBQUlNLFNBQVMsQ0FBQztJQUNkLElBQUlDLHdCQUF3QkMsT0FBT0MsY0FBYyxJQUFJRCxPQUFPRSx3QkFBd0I7SUFFcEYsSUFBSyxJQUFJQyxPQUFPWCxJQUFLO1FBQ2pCLElBQUlXLFFBQVEsYUFBYUgsT0FBT0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ2QsS0FBS1csTUFBTTtZQUNyRSxJQUFJSSxPQUFPUix3QkFBd0JDLE9BQU9FLHdCQUF3QixDQUFDVixLQUFLVyxPQUFPO1lBQy9FLElBQUlJLFFBQVNBLENBQUFBLEtBQUtWLEdBQUcsSUFBSVUsS0FBS0MsR0FBRyxHQUFHUixPQUFPQyxjQUFjLENBQUNILFFBQVFLLEtBQUtJO2lCQUNsRVQsTUFBTSxDQUFDSyxJQUFJLEdBQUdYLEdBQUcsQ0FBQ1csSUFBSTtRQUMvQjtJQUNKO0lBRUFMLE9BQU9KLE9BQU8sR0FBR0Y7SUFFakIsSUFBSUcsT0FBT0EsTUFBTWEsR0FBRyxDQUFDaEIsS0FBS007SUFFMUIsT0FBT0E7QUFDWDtBQUMwQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuanM/MjFhMCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG5cbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgcmV0dXJuIG9iajtcbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4geyBkZWZhdWx0OiBvYmogfTtcblxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG5cbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHJldHVybiBjYWNoZS5nZXQob2JqKTtcblxuICAgIHZhciBuZXdPYmogPSB7fTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIGVsc2UgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuXG4gICAgaWYgKGNhY2hlKSBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuXG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmV4cG9ydCB7IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgYXMgXyB9O1xuIl0sIm5hbWVzIjpbIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIl9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiXyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\n"); + +/***/ }), + +/***/ "(ssr)/./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__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _tagged_template_literal_loose),\n/* harmony export */ _tagged_template_literal_loose: () => (/* binding */ _tagged_template_literal_loose)\n/* harmony export */ });\nfunction _tagged_template_literal_loose(strings, raw) {\n if (!raw) raw = strings.slice(0);\n strings.raw = raw;\n return strings;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTQSwrQkFBK0JDLE9BQU8sRUFBRUMsR0FBRztJQUN2RCxJQUFJLENBQUNBLEtBQUtBLE1BQU1ELFFBQVFFLEtBQUssQ0FBQztJQUU5QkYsUUFBUUMsR0FBRyxHQUFHQTtJQUVkLE9BQU9EO0FBQ1g7QUFDK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UuanM/YzY5MyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlKHN0cmluZ3MsIHJhdykge1xuICAgIGlmICghcmF3KSByYXcgPSBzdHJpbmdzLnNsaWNlKDApO1xuXG4gICAgc3RyaW5ncy5yYXcgPSByYXc7XG5cbiAgICByZXR1cm4gc3RyaW5ncztcbn1cbmV4cG9ydCB7IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSBhcyBfIH07XG4iXSwibmFtZXMiOlsiX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIiwic3RyaW5ncyIsInJhdyIsInNsaWNlIiwiXyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\n"); + +/***/ }), + +/***/ "(rsc)/./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__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _interop_require_default),\n/* harmony export */ _interop_require_default: () => (/* binding */ _interop_require_default)\n/* harmony export */ });\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTQSx5QkFBeUJDLEdBQUc7SUFDeEMsT0FBT0EsT0FBT0EsSUFBSUMsVUFBVSxHQUFHRCxNQUFNO1FBQUVFLFNBQVNGO0lBQUk7QUFDeEQ7QUFDeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanM/YjkzYSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuZXhwb3J0IHsgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IGFzIF8gfTtcbiJdLCJuYW1lcyI6WyJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@swc/helpers/esm/_interop_require_default.js\n"); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/vendor-chunks/cookie.js b/.next/server/vendor-chunks/cookie.js new file mode 100644 index 0000000..cf3a9af --- /dev/null +++ b/.next/server/vendor-chunks/cookie.js @@ -0,0 +1,25 @@ +"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/cookie"; +exports.ids = ["vendor-chunks/cookie"]; +exports.modules = { + +/***/ "(rsc)/./node_modules/cookie/index.js": +/*!**************************************!*\ + !*** ./node_modules/cookie/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports) => { + +eval("/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */ \n/**\n * Module exports.\n * @public\n */ exports.parse = parse;\nexports.serialize = serialize;\n/**\n * Module variables.\n * @private\n */ var __toString = Object.prototype.toString;\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */ var fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */ function parse(str, options) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var obj = {};\n var opt = options || {};\n var dec = opt.decode || decode;\n var index = 0;\n while(index < str.length){\n var eqIdx = str.indexOf(\"=\", index);\n // no more cookie pairs\n if (eqIdx === -1) {\n break;\n }\n var endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n var key = str.slice(index, eqIdx).trim();\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim();\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1);\n }\n obj[key] = tryDecode(val, dec);\n }\n index = endIdx + 1;\n }\n return obj;\n}\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */ function serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n if (typeof enc !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var value = enc(val);\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var str = name + \"=\" + value;\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n str += \"; Max-Age=\" + Math.floor(maxAge);\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n str += \"; Domain=\" + opt.domain;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n str += \"; Path=\" + opt.path;\n }\n if (opt.expires) {\n var expires = opt.expires;\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError(\"option expires is invalid\");\n }\n str += \"; Expires=\" + expires.toUTCString();\n }\n if (opt.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (opt.secure) {\n str += \"; Secure\";\n }\n if (opt.priority) {\n var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n switch(priority){\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(\"option priority is invalid\");\n }\n }\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch(sameSite){\n case true:\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return str;\n}\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */ function decode(str) {\n return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n}\n/**\n * URL-encode value.\n *\n * @param {string} str\n * @returns {string}\n */ function encode(val) {\n return encodeURIComponent(val);\n}\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */ function isDate(val) {\n return __toString.call(val) === \"[object Date]\" || val instanceof Date;\n}\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */ function tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvY29va2llL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7OztDQUtDLEdBRUQ7QUFFQTs7O0NBR0MsR0FFREEsYUFBYSxHQUFHQztBQUNoQkQsaUJBQWlCLEdBQUdFO0FBRXBCOzs7Q0FHQyxHQUVELElBQUlDLGFBQWFDLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUTtBQUUxQzs7Ozs7O0NBTUMsR0FFRCxJQUFJQyxxQkFBcUI7QUFFekI7Ozs7Ozs7Ozs7Q0FVQyxHQUVELFNBQVNOLE1BQU1PLEdBQUcsRUFBRUMsT0FBTztJQUN6QixJQUFJLE9BQU9ELFFBQVEsVUFBVTtRQUMzQixNQUFNLElBQUlFLFVBQVU7SUFDdEI7SUFFQSxJQUFJQyxNQUFNLENBQUM7SUFDWCxJQUFJQyxNQUFNSCxXQUFXLENBQUM7SUFDdEIsSUFBSUksTUFBTUQsSUFBSUUsTUFBTSxJQUFJQTtJQUV4QixJQUFJQyxRQUFRO0lBQ1osTUFBT0EsUUFBUVAsSUFBSVEsTUFBTSxDQUFFO1FBQ3pCLElBQUlDLFFBQVFULElBQUlVLE9BQU8sQ0FBQyxLQUFLSDtRQUU3Qix1QkFBdUI7UUFDdkIsSUFBSUUsVUFBVSxDQUFDLEdBQUc7WUFDaEI7UUFDRjtRQUVBLElBQUlFLFNBQVNYLElBQUlVLE9BQU8sQ0FBQyxLQUFLSDtRQUU5QixJQUFJSSxXQUFXLENBQUMsR0FBRztZQUNqQkEsU0FBU1gsSUFBSVEsTUFBTTtRQUNyQixPQUFPLElBQUlHLFNBQVNGLE9BQU87WUFDekIsK0JBQStCO1lBQy9CRixRQUFRUCxJQUFJWSxXQUFXLENBQUMsS0FBS0gsUUFBUSxLQUFLO1lBQzFDO1FBQ0Y7UUFFQSxJQUFJSSxNQUFNYixJQUFJYyxLQUFLLENBQUNQLE9BQU9FLE9BQU9NLElBQUk7UUFFdEMsbUJBQW1CO1FBQ25CLElBQUlDLGNBQWNiLEdBQUcsQ0FBQ1UsSUFBSSxFQUFFO1lBQzFCLElBQUlJLE1BQU1qQixJQUFJYyxLQUFLLENBQUNMLFFBQVEsR0FBR0UsUUFBUUksSUFBSTtZQUUzQyxnQkFBZ0I7WUFDaEIsSUFBSUUsSUFBSUMsVUFBVSxDQUFDLE9BQU8sTUFBTTtnQkFDOUJELE1BQU1BLElBQUlILEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDdEI7WUFFQVgsR0FBRyxDQUFDVSxJQUFJLEdBQUdNLFVBQVVGLEtBQUtaO1FBQzVCO1FBRUFFLFFBQVFJLFNBQVM7SUFDbkI7SUFFQSxPQUFPUjtBQUNUO0FBRUE7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FFRCxTQUFTVCxVQUFVMEIsSUFBSSxFQUFFSCxHQUFHLEVBQUVoQixPQUFPO0lBQ25DLElBQUlHLE1BQU1ILFdBQVcsQ0FBQztJQUN0QixJQUFJb0IsTUFBTWpCLElBQUlrQixNQUFNLElBQUlBO0lBRXhCLElBQUksT0FBT0QsUUFBUSxZQUFZO1FBQzdCLE1BQU0sSUFBSW5CLFVBQVU7SUFDdEI7SUFFQSxJQUFJLENBQUNILG1CQUFtQndCLElBQUksQ0FBQ0gsT0FBTztRQUNsQyxNQUFNLElBQUlsQixVQUFVO0lBQ3RCO0lBRUEsSUFBSXNCLFFBQVFILElBQUlKO0lBRWhCLElBQUlPLFNBQVMsQ0FBQ3pCLG1CQUFtQndCLElBQUksQ0FBQ0MsUUFBUTtRQUM1QyxNQUFNLElBQUl0QixVQUFVO0lBQ3RCO0lBRUEsSUFBSUYsTUFBTW9CLE9BQU8sTUFBTUk7SUFFdkIsSUFBSSxRQUFRcEIsSUFBSXFCLE1BQU0sRUFBRTtRQUN0QixJQUFJQSxTQUFTckIsSUFBSXFCLE1BQU0sR0FBRztRQUUxQixJQUFJQyxNQUFNRCxXQUFXLENBQUNFLFNBQVNGLFNBQVM7WUFDdEMsTUFBTSxJQUFJdkIsVUFBVTtRQUN0QjtRQUVBRixPQUFPLGVBQWU0QixLQUFLQyxLQUFLLENBQUNKO0lBQ25DO0lBRUEsSUFBSXJCLElBQUkwQixNQUFNLEVBQUU7UUFDZCxJQUFJLENBQUMvQixtQkFBbUJ3QixJQUFJLENBQUNuQixJQUFJMEIsTUFBTSxHQUFHO1lBQ3hDLE1BQU0sSUFBSTVCLFVBQVU7UUFDdEI7UUFFQUYsT0FBTyxjQUFjSSxJQUFJMEIsTUFBTTtJQUNqQztJQUVBLElBQUkxQixJQUFJMkIsSUFBSSxFQUFFO1FBQ1osSUFBSSxDQUFDaEMsbUJBQW1Cd0IsSUFBSSxDQUFDbkIsSUFBSTJCLElBQUksR0FBRztZQUN0QyxNQUFNLElBQUk3QixVQUFVO1FBQ3RCO1FBRUFGLE9BQU8sWUFBWUksSUFBSTJCLElBQUk7SUFDN0I7SUFFQSxJQUFJM0IsSUFBSTRCLE9BQU8sRUFBRTtRQUNmLElBQUlBLFVBQVU1QixJQUFJNEIsT0FBTztRQUV6QixJQUFJLENBQUNDLE9BQU9ELFlBQVlOLE1BQU1NLFFBQVFFLE9BQU8sS0FBSztZQUNoRCxNQUFNLElBQUloQyxVQUFVO1FBQ3RCO1FBRUFGLE9BQU8sZUFBZWdDLFFBQVFHLFdBQVc7SUFDM0M7SUFFQSxJQUFJL0IsSUFBSWdDLFFBQVEsRUFBRTtRQUNoQnBDLE9BQU87SUFDVDtJQUVBLElBQUlJLElBQUlpQyxNQUFNLEVBQUU7UUFDZHJDLE9BQU87SUFDVDtJQUVBLElBQUlJLElBQUlrQyxRQUFRLEVBQUU7UUFDaEIsSUFBSUEsV0FBVyxPQUFPbEMsSUFBSWtDLFFBQVEsS0FBSyxXQUNuQ2xDLElBQUlrQyxRQUFRLENBQUNDLFdBQVcsS0FDeEJuQyxJQUFJa0MsUUFBUTtRQUVoQixPQUFRQTtZQUNOLEtBQUs7Z0JBQ0h0QyxPQUFPO2dCQUNQO1lBQ0YsS0FBSztnQkFDSEEsT0FBTztnQkFDUDtZQUNGLEtBQUs7Z0JBQ0hBLE9BQU87Z0JBQ1A7WUFDRjtnQkFDRSxNQUFNLElBQUlFLFVBQVU7UUFDeEI7SUFDRjtJQUVBLElBQUlFLElBQUlvQyxRQUFRLEVBQUU7UUFDaEIsSUFBSUEsV0FBVyxPQUFPcEMsSUFBSW9DLFFBQVEsS0FBSyxXQUNuQ3BDLElBQUlvQyxRQUFRLENBQUNELFdBQVcsS0FBS25DLElBQUlvQyxRQUFRO1FBRTdDLE9BQVFBO1lBQ04sS0FBSztnQkFDSHhDLE9BQU87Z0JBQ1A7WUFDRixLQUFLO2dCQUNIQSxPQUFPO2dCQUNQO1lBQ0YsS0FBSztnQkFDSEEsT0FBTztnQkFDUDtZQUNGLEtBQUs7Z0JBQ0hBLE9BQU87Z0JBQ1A7WUFDRjtnQkFDRSxNQUFNLElBQUlFLFVBQVU7UUFDeEI7SUFDRjtJQUVBLE9BQU9GO0FBQ1Q7QUFFQTs7Ozs7Q0FLQyxHQUVELFNBQVNNLE9BQVFOLEdBQUc7SUFDbEIsT0FBT0EsSUFBSVUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUN6QitCLG1CQUFtQnpDLE9BQ25CQTtBQUNOO0FBRUE7Ozs7O0NBS0MsR0FFRCxTQUFTc0IsT0FBUUwsR0FBRztJQUNsQixPQUFPeUIsbUJBQW1CekI7QUFDNUI7QUFFQTs7Ozs7Q0FLQyxHQUVELFNBQVNnQixPQUFRaEIsR0FBRztJQUNsQixPQUFPdEIsV0FBV2dELElBQUksQ0FBQzFCLFNBQVMsbUJBQzlCQSxlQUFlMkI7QUFDbkI7QUFFQTs7Ozs7O0NBTUMsR0FFRCxTQUFTekIsVUFBVW5CLEdBQUcsRUFBRU0sTUFBTTtJQUM1QixJQUFJO1FBQ0YsT0FBT0EsT0FBT047SUFDaEIsRUFBRSxPQUFPNkMsR0FBRztRQUNWLE9BQU83QztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29va2llL2luZGV4LmpzPzVkMzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBjb29raWVcbiAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgUm9tYW4gU2h0eWxtYW5cbiAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxuZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuZXhwb3J0cy5zZXJpYWxpemUgPSBzZXJpYWxpemU7XG5cbi8qKlxuICogTW9kdWxlIHZhcmlhYmxlcy5cbiAqIEBwcml2YXRlXG4gKi9cblxudmFyIF9fdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG5cbi8qKlxuICogUmVnRXhwIHRvIG1hdGNoIGZpZWxkLWNvbnRlbnQgaW4gUkZDIDcyMzAgc2VjIDMuMlxuICpcbiAqIGZpZWxkLWNvbnRlbnQgPSBmaWVsZC12Y2hhciBbIDEqKCBTUCAvIEhUQUIgKSBmaWVsZC12Y2hhciBdXG4gKiBmaWVsZC12Y2hhciAgID0gVkNIQVIgLyBvYnMtdGV4dFxuICogb2JzLXRleHQgICAgICA9ICV4ODAtRkZcbiAqL1xuXG52YXIgZmllbGRDb250ZW50UmVnRXhwID0gL15bXFx1MDAwOVxcdTAwMjAtXFx1MDA3ZVxcdTAwODAtXFx1MDBmZl0rJC87XG5cbi8qKlxuICogUGFyc2UgYSBjb29raWUgaGVhZGVyLlxuICpcbiAqIFBhcnNlIHRoZSBnaXZlbiBjb29raWUgaGVhZGVyIHN0cmluZyBpbnRvIGFuIG9iamVjdFxuICogVGhlIG9iamVjdCBoYXMgdGhlIHZhcmlvdXMgY29va2llcyBhcyBrZXlzKG5hbWVzKSA9PiB2YWx1ZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKiBAcHVibGljXG4gKi9cblxuZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FyZ3VtZW50IHN0ciBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gIH1cblxuICB2YXIgb2JqID0ge31cbiAgdmFyIG9wdCA9IG9wdGlvbnMgfHwge307XG4gIHZhciBkZWMgPSBvcHQuZGVjb2RlIHx8IGRlY29kZTtcblxuICB2YXIgaW5kZXggPSAwXG4gIHdoaWxlIChpbmRleCA8IHN0ci5sZW5ndGgpIHtcbiAgICB2YXIgZXFJZHggPSBzdHIuaW5kZXhPZignPScsIGluZGV4KVxuXG4gICAgLy8gbm8gbW9yZSBjb29raWUgcGFpcnNcbiAgICBpZiAoZXFJZHggPT09IC0xKSB7XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIHZhciBlbmRJZHggPSBzdHIuaW5kZXhPZignOycsIGluZGV4KVxuXG4gICAgaWYgKGVuZElkeCA9PT0gLTEpIHtcbiAgICAgIGVuZElkeCA9IHN0ci5sZW5ndGhcbiAgICB9IGVsc2UgaWYgKGVuZElkeCA8IGVxSWR4KSB7XG4gICAgICAvLyBiYWNrdHJhY2sgb24gcHJpb3Igc2VtaWNvbG9uXG4gICAgICBpbmRleCA9IHN0ci5sYXN0SW5kZXhPZignOycsIGVxSWR4IC0gMSkgKyAxXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIHZhciBrZXkgPSBzdHIuc2xpY2UoaW5kZXgsIGVxSWR4KS50cmltKClcblxuICAgIC8vIG9ubHkgYXNzaWduIG9uY2VcbiAgICBpZiAodW5kZWZpbmVkID09PSBvYmpba2V5XSkge1xuICAgICAgdmFyIHZhbCA9IHN0ci5zbGljZShlcUlkeCArIDEsIGVuZElkeCkudHJpbSgpXG5cbiAgICAgIC8vIHF1b3RlZCB2YWx1ZXNcbiAgICAgIGlmICh2YWwuY2hhckNvZGVBdCgwKSA9PT0gMHgyMikge1xuICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMSwgLTEpXG4gICAgICB9XG5cbiAgICAgIG9ialtrZXldID0gdHJ5RGVjb2RlKHZhbCwgZGVjKTtcbiAgICB9XG5cbiAgICBpbmRleCA9IGVuZElkeCArIDFcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogU2VyaWFsaXplIGRhdGEgaW50byBhIGNvb2tpZSBoZWFkZXIuXG4gKlxuICogU2VyaWFsaXplIHRoZSBhIG5hbWUgdmFsdWUgcGFpciBpbnRvIGEgY29va2llIHN0cmluZyBzdWl0YWJsZSBmb3JcbiAqIGh0dHAgaGVhZGVycy4gQW4gb3B0aW9uYWwgb3B0aW9ucyBvYmplY3Qgc3BlY2lmaWVkIGNvb2tpZSBwYXJhbWV0ZXJzLlxuICpcbiAqIHNlcmlhbGl6ZSgnZm9vJywgJ2JhcicsIHsgaHR0cE9ubHk6IHRydWUgfSlcbiAqICAgPT4gXCJmb289YmFyOyBodHRwT25seVwiXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc11cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBzZXJpYWxpemUobmFtZSwgdmFsLCBvcHRpb25zKSB7XG4gIHZhciBvcHQgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgZW5jID0gb3B0LmVuY29kZSB8fCBlbmNvZGU7XG5cbiAgaWYgKHR5cGVvZiBlbmMgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gZW5jb2RlIGlzIGludmFsaWQnKTtcbiAgfVxuXG4gIGlmICghZmllbGRDb250ZW50UmVnRXhwLnRlc3QobmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdhcmd1bWVudCBuYW1lIGlzIGludmFsaWQnKTtcbiAgfVxuXG4gIHZhciB2YWx1ZSA9IGVuYyh2YWwpO1xuXG4gIGlmICh2YWx1ZSAmJiAhZmllbGRDb250ZW50UmVnRXhwLnRlc3QodmFsdWUpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYXJndW1lbnQgdmFsIGlzIGludmFsaWQnKTtcbiAgfVxuXG4gIHZhciBzdHIgPSBuYW1lICsgJz0nICsgdmFsdWU7XG5cbiAgaWYgKG51bGwgIT0gb3B0Lm1heEFnZSkge1xuICAgIHZhciBtYXhBZ2UgPSBvcHQubWF4QWdlIC0gMDtcblxuICAgIGlmIChpc05hTihtYXhBZ2UpIHx8ICFpc0Zpbml0ZShtYXhBZ2UpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gbWF4QWdlIGlzIGludmFsaWQnKVxuICAgIH1cblxuICAgIHN0ciArPSAnOyBNYXgtQWdlPScgKyBNYXRoLmZsb29yKG1heEFnZSk7XG4gIH1cblxuICBpZiAob3B0LmRvbWFpbikge1xuICAgIGlmICghZmllbGRDb250ZW50UmVnRXhwLnRlc3Qob3B0LmRvbWFpbikpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBkb21haW4gaXMgaW52YWxpZCcpO1xuICAgIH1cblxuICAgIHN0ciArPSAnOyBEb21haW49JyArIG9wdC5kb21haW47XG4gIH1cblxuICBpZiAob3B0LnBhdGgpIHtcbiAgICBpZiAoIWZpZWxkQ29udGVudFJlZ0V4cC50ZXN0KG9wdC5wYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIHBhdGggaXMgaW52YWxpZCcpO1xuICAgIH1cblxuICAgIHN0ciArPSAnOyBQYXRoPScgKyBvcHQucGF0aDtcbiAgfVxuXG4gIGlmIChvcHQuZXhwaXJlcykge1xuICAgIHZhciBleHBpcmVzID0gb3B0LmV4cGlyZXNcblxuICAgIGlmICghaXNEYXRlKGV4cGlyZXMpIHx8IGlzTmFOKGV4cGlyZXMudmFsdWVPZigpKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIGV4cGlyZXMgaXMgaW52YWxpZCcpO1xuICAgIH1cblxuICAgIHN0ciArPSAnOyBFeHBpcmVzPScgKyBleHBpcmVzLnRvVVRDU3RyaW5nKClcbiAgfVxuXG4gIGlmIChvcHQuaHR0cE9ubHkpIHtcbiAgICBzdHIgKz0gJzsgSHR0cE9ubHknO1xuICB9XG5cbiAgaWYgKG9wdC5zZWN1cmUpIHtcbiAgICBzdHIgKz0gJzsgU2VjdXJlJztcbiAgfVxuXG4gIGlmIChvcHQucHJpb3JpdHkpIHtcbiAgICB2YXIgcHJpb3JpdHkgPSB0eXBlb2Ygb3B0LnByaW9yaXR5ID09PSAnc3RyaW5nJ1xuICAgICAgPyBvcHQucHJpb3JpdHkudG9Mb3dlckNhc2UoKVxuICAgICAgOiBvcHQucHJpb3JpdHlcblxuICAgIHN3aXRjaCAocHJpb3JpdHkpIHtcbiAgICAgIGNhc2UgJ2xvdyc6XG4gICAgICAgIHN0ciArPSAnOyBQcmlvcml0eT1Mb3cnXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICBzdHIgKz0gJzsgUHJpb3JpdHk9TWVkaXVtJ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnaGlnaCc6XG4gICAgICAgIHN0ciArPSAnOyBQcmlvcml0eT1IaWdoJ1xuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIHByaW9yaXR5IGlzIGludmFsaWQnKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHQuc2FtZVNpdGUpIHtcbiAgICB2YXIgc2FtZVNpdGUgPSB0eXBlb2Ygb3B0LnNhbWVTaXRlID09PSAnc3RyaW5nJ1xuICAgICAgPyBvcHQuc2FtZVNpdGUudG9Mb3dlckNhc2UoKSA6IG9wdC5zYW1lU2l0ZTtcblxuICAgIHN3aXRjaCAoc2FtZVNpdGUpIHtcbiAgICAgIGNhc2UgdHJ1ZTpcbiAgICAgICAgc3RyICs9ICc7IFNhbWVTaXRlPVN0cmljdCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGF4JzpcbiAgICAgICAgc3RyICs9ICc7IFNhbWVTaXRlPUxheCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RyaWN0JzpcbiAgICAgICAgc3RyICs9ICc7IFNhbWVTaXRlPVN0cmljdCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbm9uZSc6XG4gICAgICAgIHN0ciArPSAnOyBTYW1lU2l0ZT1Ob25lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gc2FtZVNpdGUgaXMgaW52YWxpZCcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdHI7XG59XG5cbi8qKlxuICogVVJMLWRlY29kZSBzdHJpbmcgdmFsdWUuIE9wdGltaXplZCB0byBza2lwIG5hdGl2ZSBjYWxsIHdoZW4gbm8gJS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5cbmZ1bmN0aW9uIGRlY29kZSAoc3RyKSB7XG4gIHJldHVybiBzdHIuaW5kZXhPZignJScpICE9PSAtMVxuICAgID8gZGVjb2RlVVJJQ29tcG9uZW50KHN0cilcbiAgICA6IHN0clxufVxuXG4vKipcbiAqIFVSTC1lbmNvZGUgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuXG5mdW5jdGlvbiBlbmNvZGUgKHZhbCkge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbClcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdmFsdWUgaXMgYSBEYXRlLlxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzRGF0ZSAodmFsKSB7XG4gIHJldHVybiBfX3RvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRGF0ZV0nIHx8XG4gICAgdmFsIGluc3RhbmNlb2YgRGF0ZVxufVxuXG4vKipcbiAqIFRyeSBkZWNvZGluZyBhIHN0cmluZyB1c2luZyBhIGRlY29kaW5nIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGRlY29kZVxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiB0cnlEZWNvZGUoc3RyLCBkZWNvZGUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZGVjb2RlKHN0cik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG59XG4iXSwibmFtZXMiOlsiZXhwb3J0cyIsInBhcnNlIiwic2VyaWFsaXplIiwiX190b1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiZmllbGRDb250ZW50UmVnRXhwIiwic3RyIiwib3B0aW9ucyIsIlR5cGVFcnJvciIsIm9iaiIsIm9wdCIsImRlYyIsImRlY29kZSIsImluZGV4IiwibGVuZ3RoIiwiZXFJZHgiLCJpbmRleE9mIiwiZW5kSWR4IiwibGFzdEluZGV4T2YiLCJrZXkiLCJzbGljZSIsInRyaW0iLCJ1bmRlZmluZWQiLCJ2YWwiLCJjaGFyQ29kZUF0IiwidHJ5RGVjb2RlIiwibmFtZSIsImVuYyIsImVuY29kZSIsInRlc3QiLCJ2YWx1ZSIsIm1heEFnZSIsImlzTmFOIiwiaXNGaW5pdGUiLCJNYXRoIiwiZmxvb3IiLCJkb21haW4iLCJwYXRoIiwiZXhwaXJlcyIsImlzRGF0ZSIsInZhbHVlT2YiLCJ0b1VUQ1N0cmluZyIsImh0dHBPbmx5Iiwic2VjdXJlIiwicHJpb3JpdHkiLCJ0b0xvd2VyQ2FzZSIsInNhbWVTaXRlIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiY2FsbCIsIkRhdGUiLCJlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/cookie/index.js\n"); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/vendor-chunks/geist.js b/.next/server/vendor-chunks/geist.js new file mode 100644 index 0000000..5f60446 --- /dev/null +++ b/.next/server/vendor-chunks/geist.js @@ -0,0 +1,25 @@ +"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/geist"; +exports.ids = ["vendor-chunks/geist"]; +exports.modules = { + +/***/ "(rsc)/./node_modules/geist/dist/sans.js": +/*!*****************************************!*\ + !*** ./node_modules/geist/dist/sans.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GeistSans: () => (/* reexport default from dynamic */ next_font_local_target_css_path_node_modules_geist_dist_sans_js_import_arguments_src_fonts_geist_sans_Geist_Variable_woff2_variable_font_geist_sans_weight_100_900_variableName_GeistSans___WEBPACK_IMPORTED_MODULE_0___default.a)\n/* harmony export */ });\n/* harmony import */ var next_font_local_target_css_path_node_modules_geist_dist_sans_js_import_arguments_src_fonts_geist_sans_Geist_Variable_woff2_variable_font_geist_sans_weight_100_900_variableName_GeistSans___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"} */ \"(rsc)/./node_modules/next/font/local/target.css?{\\\"path\\\":\\\"node_modules/geist/dist/sans.js\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":\\\"./fonts/geist-sans/Geist-Variable.woff2\\\",\\\"variable\\\":\\\"--font-geist-sans\\\",\\\"weight\\\":\\\"100 900\\\"}],\\\"variableName\\\":\\\"GeistSans\\\"}\");\n/* harmony import */ var next_font_local_target_css_path_node_modules_geist_dist_sans_js_import_arguments_src_fonts_geist_sans_Geist_Variable_woff2_variable_font_geist_sans_weight_100_900_variableName_GeistSans___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_font_local_target_css_path_node_modules_geist_dist_sans_js_import_arguments_src_fonts_geist_sans_Geist_Variable_woff2_variable_font_geist_sans_weight_100_900_variableName_GeistSans___WEBPACK_IMPORTED_MODULE_0__);\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZ2Vpc3QvZGlzdC9zYW5zLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUVhQTtBQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9nZWlzdC9kaXN0L3NhbnMuanM/ZTg1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9jYWxGb250IGZyb20gXCJuZXh0L2ZvbnQvbG9jYWxcIjtcblxuZXhwb3J0IGNvbnN0IEdlaXN0U2FucyA9IGxvY2FsRm9udCh7XG4gIHNyYzogXCIuL2ZvbnRzL2dlaXN0LXNhbnMvR2Vpc3QtVmFyaWFibGUud29mZjJcIixcbiAgdmFyaWFibGU6IFwiLS1mb250LWdlaXN0LXNhbnNcIixcbiAgd2VpZ2h0OiBcIjEwMCA5MDBcIixcbn0pO1xuIl0sIm5hbWVzIjpbIkdlaXN0U2FucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/geist/dist/sans.js\n"); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/vendor-chunks/next.js b/.next/server/vendor-chunks/next.js new file mode 100644 index 0000000..bff6e36 --- /dev/null +++ b/.next/server/vendor-chunks/next.js @@ -0,0 +1,2806 @@ +/* + * 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/next"; +exports.ids = ["vendor-chunks/next"]; +exports.modules = { + +/***/ "(rsc)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}": +/*!*****************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/font/local/target.css?{"path":"node_modules/geist/dist/sans.js","import":"","arguments":[{"src":"./fonts/geist-sans/Geist-Variable.woff2","variable":"--font-geist-sans","weight":"100 900"}],"variableName":"GeistSans"} ***! + \*****************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'__GeistSans_ac79ff', '__GeistSans_Fallback_ac79ff'\"},\n\t\"className\": \"__className_ac79ff\",\n\t\"variable\": \"__variable_ac79ff\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2xvY2FsL3RhcmdldC5jc3M/e1wicGF0aFwiOlwibm9kZV9tb2R1bGVzL2dlaXN0L2Rpc3Qvc2Fucy5qc1wiLFwiaW1wb3J0XCI6XCJcIixcImFyZ3VtZW50c1wiOlt7XCJzcmNcIjpcIi4vZm9udHMvZ2Vpc3Qtc2Fucy9HZWlzdC1WYXJpYWJsZS53b2ZmMlwiLFwidmFyaWFibGVcIjpcIi0tZm9udC1nZWlzdC1zYW5zXCIsXCJ3ZWlnaHRcIjpcIjEwMCA5MDBcIn1dLFwidmFyaWFibGVOYW1lXCI6XCJHZWlzdFNhbnNcIn0iLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLFdBQVcsbUVBQW1FO0FBQzlFO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2ZvbnQvbG9jYWwvdGFyZ2V0LmNzcz80YTRhIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEV4cG9ydHNcbm1vZHVsZS5leHBvcnRzID0ge1xuXHRcInN0eWxlXCI6IHtcImZvbnRGYW1pbHlcIjpcIidfX0dlaXN0U2Fuc19hYzc5ZmYnLCAnX19HZWlzdFNhbnNfRmFsbGJhY2tfYWM3OWZmJ1wifSxcblx0XCJjbGFzc05hbWVcIjogXCJfX2NsYXNzTmFtZV9hYzc5ZmZcIixcblx0XCJ2YXJpYWJsZVwiOiBcIl9fdmFyaWFibGVfYWM3OWZmXCJcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/font/local/target.css?{\"path\":\"node_modules/geist/dist/sans.js\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/geist-sans/Geist-Variable.woff2\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"GeistSans\"}\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(ssr)/./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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCwrQ0FBOEM7SUFDMUNJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNQyxpQkFBaUJDLG1CQUFPQSxDQUFDLDZIQUE0QztBQUMzRSxNQUFNQywwQkFBMEJELG1CQUFPQSxDQUFDLHFHQUE0QjtBQUNwRSxNQUFNRSxXQUFXQyxNQUFrQyxJQUFJO0FBQ3ZELFNBQVNMLFlBQVlRLElBQUksRUFBRUMsUUFBUTtJQUMvQixPQUFPLENBQUMsR0FBR04sd0JBQXdCTywwQkFBMEIsRUFBRUwsTUFBdURJLEdBQUdELENBQUlBLEdBQUcsQ0FBQyxHQUFHUCxlQUFlVyxhQUFhLEVBQUVKLE1BQU1KO0FBQzVLO0FBRUEsSUFBSSxDQUFDLE9BQU9SLFFBQVFpQixPQUFPLEtBQUssY0FBZSxPQUFPakIsUUFBUWlCLE9BQU8sS0FBSyxZQUFZakIsUUFBUWlCLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT2pCLFFBQVFpQixPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLcEIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRaUIsT0FBTyxFQUFFLGNBQWM7UUFBRWhCLE9BQU87SUFBSztJQUNuRUgsT0FBT3FCLE1BQU0sQ0FBQ25CLFFBQVFpQixPQUFPLEVBQUVqQjtJQUMvQm9CLE9BQU9wQixPQUFPLEdBQUdBLFFBQVFpQixPQUFPO0FBQ2xDLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvYWRkLWJhc2UtcGF0aC5qcz82MTMxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYWRkQmFzZVBhdGhcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFkZEJhc2VQYXRoO1xuICAgIH1cbn0pO1xuY29uc3QgX2FkZHBhdGhwcmVmaXggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCIpO1xuY29uc3QgX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2ggPSByZXF1aXJlKFwiLi9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2hcIik7XG5jb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggfHwgXCJcIjtcbmZ1bmN0aW9uIGFkZEJhc2VQYXRoKHBhdGgsIHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuICgwLCBfbm9ybWFsaXpldHJhaWxpbmdzbGFzaC5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCkocHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIICYmICFyZXF1aXJlZCA/IHBhdGggOiAoMCwgX2FkZHBhdGhwcmVmaXguYWRkUGF0aFByZWZpeCkocGF0aCwgYmFzZVBhdGgpKTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWJhc2UtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiYWRkQmFzZVBhdGgiLCJfYWRkcGF0aHByZWZpeCIsInJlcXVpcmUiLCJfbm9ybWFsaXpldHJhaWxpbmdzbGFzaCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicmVxdWlyZWQiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImFkZFBhdGhQcmVmaXgiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/add-base-path.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/add-locale.js": +/*!*****************************************************!*\ + !*** ./node_modules/next/dist/client/add-locale.js ***! + \*****************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("\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 */ \"(ssr)/./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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtbG9jYWxlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCw2Q0FBNEM7SUFDeENJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNQywwQkFBMEJDLG1CQUFPQSxDQUFDLHFHQUE0QjtBQUNwRSxNQUFNRixZQUFZLFNBQVNHLElBQUk7SUFDM0IsSUFBSSxJQUFJQyxPQUFPQyxVQUFVQyxNQUFNLEVBQUVDLE9BQU8sSUFBSUMsTUFBTUosT0FBTyxJQUFJQSxPQUFPLElBQUksSUFBSUssT0FBTyxHQUFHQSxPQUFPTCxNQUFNSyxPQUFPO1FBQ3RHRixJQUFJLENBQUNFLE9BQU8sRUFBRSxHQUFHSixTQUFTLENBQUNJLEtBQUs7SUFDcEM7SUFDQSxJQUFJQyxLQUErQixFQUFFLEVBRXBDO0lBQ0QsT0FBT1A7QUFDWDtBQUVBLElBQUksQ0FBQyxPQUFPUCxRQUFRa0IsT0FBTyxLQUFLLGNBQWUsT0FBT2xCLFFBQVFrQixPQUFPLEtBQUssWUFBWWxCLFFBQVFrQixPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9sQixRQUFRa0IsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS3JCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUWtCLE9BQU8sRUFBRSxjQUFjO1FBQUVqQixPQUFPO0lBQUs7SUFDbkVILE9BQU9zQixNQUFNLENBQUNwQixRQUFRa0IsT0FBTyxFQUFFbEI7SUFDL0JxQixPQUFPckIsT0FBTyxHQUFHQSxRQUFRa0IsT0FBTztBQUNsQyxFQUVBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1sb2NhbGUuanM/ZTJkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImFkZExvY2FsZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWRkTG9jYWxlO1xuICAgIH1cbn0pO1xuY29uc3QgX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2ggPSByZXF1aXJlKFwiLi9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2hcIik7XG5jb25zdCBhZGRMb2NhbGUgPSBmdW5jdGlvbihwYXRoKSB7XG4gICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcbiAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2gubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2gpKHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtbG9jYWxlXCIpLmFkZExvY2FsZShwYXRoLCAuLi5hcmdzKSk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiYWRkTG9jYWxlIiwiX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2giLCJyZXF1aXJlIiwicGF0aCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/add-locale.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/app-call-server.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/client/app-call-server.js ***! + \**********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"callServer\", ({\n enumerable: true,\n get: function() {\n return callServer;\n }\n}));\nconst _approuter = __webpack_require__(/*! ./components/app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nasync function callServer(actionId, actionArgs) {\n const actionDispatcher = (0, _approuter.getServerActionDispatcher)();\n if (!actionDispatcher) {\n throw new Error(\"Invariant: missing action dispatcher.\");\n }\n return new Promise((resolve, reject)=>{\n actionDispatcher({\n actionId,\n actionArgs,\n resolve,\n reject\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=app-call-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtY2FsbC1zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILDhDQUE2QztJQUN6Q0ksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLGFBQWFDLG1CQUFPQSxDQUFDLCtGQUF5QjtBQUNwRCxlQUFlRixXQUFXRyxRQUFRLEVBQUVDLFVBQVU7SUFDMUMsTUFBTUMsbUJBQW1CLENBQUMsR0FBR0osV0FBV0sseUJBQXlCO0lBQ2pFLElBQUksQ0FBQ0Qsa0JBQWtCO1FBQ25CLE1BQU0sSUFBSUUsTUFBTTtJQUNwQjtJQUNBLE9BQU8sSUFBSUMsUUFBUSxDQUFDQyxTQUFTQztRQUN6QkwsaUJBQWlCO1lBQ2JGO1lBQ0FDO1lBQ0FLO1lBQ0FDO1FBQ0o7SUFDSjtBQUNKO0FBRUEsSUFBSSxDQUFDLE9BQU9kLFFBQVFlLE9BQU8sS0FBSyxjQUFlLE9BQU9mLFFBQVFlLE9BQU8sS0FBSyxZQUFZZixRQUFRZSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9mLFFBQVFlLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktsQixPQUFPQyxjQUFjLENBQUNDLFFBQVFlLE9BQU8sRUFBRSxjQUFjO1FBQUVkLE9BQU87SUFBSztJQUNuRUgsT0FBT21CLE1BQU0sQ0FBQ2pCLFFBQVFlLE9BQU8sRUFBRWY7SUFDL0JrQixPQUFPbEIsT0FBTyxHQUFHQSxRQUFRZSxPQUFPO0FBQ2xDLEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvYXBwLWNhbGwtc2VydmVyLmpzP2YzZjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjYWxsU2VydmVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjYWxsU2VydmVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2FwcHJvdXRlciA9IHJlcXVpcmUoXCIuL2NvbXBvbmVudHMvYXBwLXJvdXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGNhbGxTZXJ2ZXIoYWN0aW9uSWQsIGFjdGlvbkFyZ3MpIHtcbiAgICBjb25zdCBhY3Rpb25EaXNwYXRjaGVyID0gKDAsIF9hcHByb3V0ZXIuZ2V0U2VydmVyQWN0aW9uRGlzcGF0Y2hlcikoKTtcbiAgICBpZiAoIWFjdGlvbkRpc3BhdGNoZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiBtaXNzaW5nIGFjdGlvbiBkaXNwYXRjaGVyLlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIGFjdGlvbkRpc3BhdGNoZXIoe1xuICAgICAgICAgICAgYWN0aW9uSWQsXG4gICAgICAgICAgICBhY3Rpb25BcmdzLFxuICAgICAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgICAgIHJlamVjdFxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLWNhbGwtc2VydmVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJjYWxsU2VydmVyIiwiX2FwcHJvdXRlciIsInJlcXVpcmUiLCJhY3Rpb25JZCIsImFjdGlvbkFyZ3MiLCJhY3Rpb25EaXNwYXRjaGVyIiwiZ2V0U2VydmVyQWN0aW9uRGlzcGF0Y2hlciIsIkVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-call-server.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/app-router-announcer.js ***! + \**************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AppRouterAnnouncer\", ({\n enumerable: true,\n get: function() {\n return AppRouterAnnouncer;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\nconst _reactdom = __webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-dom.js\");\nconst ANNOUNCER_TYPE = \"next-route-announcer\";\nconst ANNOUNCER_ID = \"__next-route-announcer__\";\nfunction getAnnouncerNode() {\n var _existingAnnouncer_shadowRoot;\n const existingAnnouncer = document.getElementsByName(ANNOUNCER_TYPE)[0];\n if (existingAnnouncer == null ? void 0 : (_existingAnnouncer_shadowRoot = existingAnnouncer.shadowRoot) == null ? void 0 : _existingAnnouncer_shadowRoot.childNodes[0]) {\n return existingAnnouncer.shadowRoot.childNodes[0];\n } else {\n const container = document.createElement(ANNOUNCER_TYPE);\n container.style.cssText = \"position:absolute\";\n const announcer = document.createElement(\"div\");\n announcer.ariaLive = \"assertive\";\n announcer.id = ANNOUNCER_ID;\n announcer.role = \"alert\";\n announcer.style.cssText = \"position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal\";\n // Use shadow DOM here to avoid any potential CSS bleed\n const shadow = container.attachShadow({\n mode: \"open\"\n });\n shadow.appendChild(announcer);\n document.body.appendChild(container);\n return announcer;\n }\n}\nfunction AppRouterAnnouncer(param) {\n let { tree } = param;\n const [portalNode, setPortalNode] = (0, _react.useState)(null);\n (0, _react.useEffect)(()=>{\n const announcer = getAnnouncerNode();\n setPortalNode(announcer);\n return ()=>{\n const container = document.getElementsByTagName(ANNOUNCER_TYPE)[0];\n if (container == null ? void 0 : container.isConnected) {\n document.body.removeChild(container);\n }\n };\n }, []);\n const [routeAnnouncement, setRouteAnnouncement] = (0, _react.useState)(\"\");\n const previousTitle = (0, _react.useRef)();\n (0, _react.useEffect)(()=>{\n let currentTitle = \"\";\n if (document.title) {\n currentTitle = document.title;\n } else {\n const pageHeader = document.querySelector(\"h1\");\n if (pageHeader) {\n currentTitle = pageHeader.innerText || pageHeader.textContent || \"\";\n }\n }\n // Only announce the title change, but not for the first load because screen\n // readers do that automatically.\n if (previousTitle.current !== undefined && previousTitle.current !== currentTitle) {\n setRouteAnnouncement(currentTitle);\n }\n previousTitle.current = currentTitle;\n }, [\n tree\n ]);\n return portalNode ? /*#__PURE__*/ (0, _reactdom.createPortal)(routeAnnouncement, portalNode) : null;\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=app-router-announcer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItYW5ub3VuY2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCxzREFBcUQ7SUFDakRJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNQyxTQUFTQyxtQkFBT0EsQ0FBQyx3R0FBTztBQUM5QixNQUFNQyxZQUFZRCxtQkFBT0EsQ0FBQyxnSEFBVztBQUNyQyxNQUFNRSxpQkFBaUI7QUFDdkIsTUFBTUMsZUFBZTtBQUNyQixTQUFTQztJQUNMLElBQUlDO0lBQ0osTUFBTUMsb0JBQW9CQyxTQUFTQyxpQkFBaUIsQ0FBQ04sZUFBZSxDQUFDLEVBQUU7SUFDdkUsSUFBSUkscUJBQXFCLE9BQU8sS0FBSyxJQUFJLENBQUNELGdDQUFnQ0Msa0JBQWtCRyxVQUFVLEtBQUssT0FBTyxLQUFLLElBQUlKLDhCQUE4QkssVUFBVSxDQUFDLEVBQUUsRUFBRTtRQUNwSyxPQUFPSixrQkFBa0JHLFVBQVUsQ0FBQ0MsVUFBVSxDQUFDLEVBQUU7SUFDckQsT0FBTztRQUNILE1BQU1DLFlBQVlKLFNBQVNLLGFBQWEsQ0FBQ1Y7UUFDekNTLFVBQVVFLEtBQUssQ0FBQ0MsT0FBTyxHQUFHO1FBQzFCLE1BQU1DLFlBQVlSLFNBQVNLLGFBQWEsQ0FBQztRQUN6Q0csVUFBVUMsUUFBUSxHQUFHO1FBQ3JCRCxVQUFVRSxFQUFFLEdBQUdkO1FBQ2ZZLFVBQVVHLElBQUksR0FBRztRQUNqQkgsVUFBVUYsS0FBSyxDQUFDQyxPQUFPLEdBQUc7UUFDMUIsdURBQXVEO1FBQ3ZELE1BQU1LLFNBQVNSLFVBQVVTLFlBQVksQ0FBQztZQUNsQ0MsTUFBTTtRQUNWO1FBQ0FGLE9BQU9HLFdBQVcsQ0FBQ1A7UUFDbkJSLFNBQVNnQixJQUFJLENBQUNELFdBQVcsQ0FBQ1g7UUFDMUIsT0FBT0k7SUFDWDtBQUNKO0FBQ0EsU0FBU2pCLG1CQUFtQjBCLEtBQUs7SUFDN0IsSUFBSSxFQUFFQyxJQUFJLEVBQUUsR0FBR0Q7SUFDZixNQUFNLENBQUNFLFlBQVlDLGNBQWMsR0FBRyxDQUFDLEdBQUc1QixPQUFPNkIsUUFBUSxFQUFFO0lBQ3hELElBQUc3QixPQUFPOEIsU0FBUyxFQUFFO1FBQ2xCLE1BQU1kLFlBQVlYO1FBQ2xCdUIsY0FBY1o7UUFDZCxPQUFPO1lBQ0gsTUFBTUosWUFBWUosU0FBU3VCLG9CQUFvQixDQUFDNUIsZUFBZSxDQUFDLEVBQUU7WUFDbEUsSUFBSVMsYUFBYSxPQUFPLEtBQUssSUFBSUEsVUFBVW9CLFdBQVcsRUFBRTtnQkFDcER4QixTQUFTZ0IsSUFBSSxDQUFDUyxXQUFXLENBQUNyQjtZQUM5QjtRQUNKO0lBQ0osR0FBRyxFQUFFO0lBQ0wsTUFBTSxDQUFDc0IsbUJBQW1CQyxxQkFBcUIsR0FBRyxDQUFDLEdBQUduQyxPQUFPNkIsUUFBUSxFQUFFO0lBQ3ZFLE1BQU1PLGdCQUFnQixDQUFDLEdBQUdwQyxPQUFPcUMsTUFBTTtJQUN0QyxJQUFHckMsT0FBTzhCLFNBQVMsRUFBRTtRQUNsQixJQUFJUSxlQUFlO1FBQ25CLElBQUk5QixTQUFTK0IsS0FBSyxFQUFFO1lBQ2hCRCxlQUFlOUIsU0FBUytCLEtBQUs7UUFDakMsT0FBTztZQUNILE1BQU1DLGFBQWFoQyxTQUFTaUMsYUFBYSxDQUFDO1lBQzFDLElBQUlELFlBQVk7Z0JBQ1pGLGVBQWVFLFdBQVdFLFNBQVMsSUFBSUYsV0FBV0csV0FBVyxJQUFJO1lBQ3JFO1FBQ0o7UUFDQSw0RUFBNEU7UUFDNUUsaUNBQWlDO1FBQ2pDLElBQUlQLGNBQWNRLE9BQU8sS0FBS0MsYUFBYVQsY0FBY1EsT0FBTyxLQUFLTixjQUFjO1lBQy9FSCxxQkFBcUJHO1FBQ3pCO1FBQ0FGLGNBQWNRLE9BQU8sR0FBR047SUFDNUIsR0FBRztRQUNDWjtLQUNIO0lBQ0QsT0FBT0MsYUFBMkIsV0FBSCxHQUFJLElBQUd6QixVQUFVNEMsWUFBWSxFQUFFWixtQkFBbUJQLGNBQWM7QUFDbkc7QUFFQSxJQUFJLENBQUMsT0FBT2hDLFFBQVFvRCxPQUFPLEtBQUssY0FBZSxPQUFPcEQsUUFBUW9ELE9BQU8sS0FBSyxZQUFZcEQsUUFBUW9ELE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT3BELFFBQVFvRCxPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLdkQsT0FBT0MsY0FBYyxDQUFDQyxRQUFRb0QsT0FBTyxFQUFFLGNBQWM7UUFBRW5ELE9BQU87SUFBSztJQUNuRUgsT0FBT3dELE1BQU0sQ0FBQ3RELFFBQVFvRCxPQUFPLEVBQUVwRDtJQUMvQnVELE9BQU92RCxPQUFPLEdBQUdBLFFBQVFvRCxPQUFPO0FBQ2xDLEVBRUEsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWFubm91bmNlci5qcz82ZTAyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQXBwUm91dGVyQW5ub3VuY2VyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBSb3V0ZXJBbm5vdW5jZXI7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfcmVhY3Rkb20gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuY29uc3QgQU5OT1VOQ0VSX1RZUEUgPSBcIm5leHQtcm91dGUtYW5ub3VuY2VyXCI7XG5jb25zdCBBTk5PVU5DRVJfSUQgPSBcIl9fbmV4dC1yb3V0ZS1hbm5vdW5jZXJfX1wiO1xuZnVuY3Rpb24gZ2V0QW5ub3VuY2VyTm9kZSgpIHtcbiAgICB2YXIgX2V4aXN0aW5nQW5ub3VuY2VyX3NoYWRvd1Jvb3Q7XG4gICAgY29uc3QgZXhpc3RpbmdBbm5vdW5jZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShBTk5PVU5DRVJfVFlQRSlbMF07XG4gICAgaWYgKGV4aXN0aW5nQW5ub3VuY2VyID09IG51bGwgPyB2b2lkIDAgOiAoX2V4aXN0aW5nQW5ub3VuY2VyX3NoYWRvd1Jvb3QgPSBleGlzdGluZ0Fubm91bmNlci5zaGFkb3dSb290KSA9PSBudWxsID8gdm9pZCAwIDogX2V4aXN0aW5nQW5ub3VuY2VyX3NoYWRvd1Jvb3QuY2hpbGROb2Rlc1swXSkge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdBbm5vdW5jZXIuc2hhZG93Um9vdC5jaGlsZE5vZGVzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoQU5OT1VOQ0VSX1RZUEUpO1xuICAgICAgICBjb250YWluZXIuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246YWJzb2x1dGVcIjtcbiAgICAgICAgY29uc3QgYW5ub3VuY2VyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgYW5ub3VuY2VyLmFyaWFMaXZlID0gXCJhc3NlcnRpdmVcIjtcbiAgICAgICAgYW5ub3VuY2VyLmlkID0gQU5OT1VOQ0VSX0lEO1xuICAgICAgICBhbm5vdW5jZXIucm9sZSA9IFwiYWxlcnRcIjtcbiAgICAgICAgYW5ub3VuY2VyLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7cGFkZGluZzowO3dpZHRoOjFweDtjbGlwOnJlY3QoMCAwIDAgMCk7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsXCI7XG4gICAgICAgIC8vIFVzZSBzaGFkb3cgRE9NIGhlcmUgdG8gYXZvaWQgYW55IHBvdGVudGlhbCBDU1MgYmxlZWRcbiAgICAgICAgY29uc3Qgc2hhZG93ID0gY29udGFpbmVyLmF0dGFjaFNoYWRvdyh7XG4gICAgICAgICAgICBtb2RlOiBcIm9wZW5cIlxuICAgICAgICB9KTtcbiAgICAgICAgc2hhZG93LmFwcGVuZENoaWxkKGFubm91bmNlcik7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcbiAgICAgICAgcmV0dXJuIGFubm91bmNlcjtcbiAgICB9XG59XG5mdW5jdGlvbiBBcHBSb3V0ZXJBbm5vdW5jZXIocGFyYW0pIHtcbiAgICBsZXQgeyB0cmVlIH0gPSBwYXJhbTtcbiAgICBjb25zdCBbcG9ydGFsTm9kZSwgc2V0UG9ydGFsTm9kZV0gPSAoMCwgX3JlYWN0LnVzZVN0YXRlKShudWxsKTtcbiAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgY29uc3QgYW5ub3VuY2VyID0gZ2V0QW5ub3VuY2VyTm9kZSgpO1xuICAgICAgICBzZXRQb3J0YWxOb2RlKGFubm91bmNlcik7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoQU5OT1VOQ0VSX1RZUEUpWzBdO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lciA9PSBudWxsID8gdm9pZCAwIDogY29udGFpbmVyLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjb250YWluZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBbcm91dGVBbm5vdW5jZW1lbnQsIHNldFJvdXRlQW5ub3VuY2VtZW50XSA9ICgwLCBfcmVhY3QudXNlU3RhdGUpKFwiXCIpO1xuICAgIGNvbnN0IHByZXZpb3VzVGl0bGUgPSAoMCwgX3JlYWN0LnVzZVJlZikoKTtcbiAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgbGV0IGN1cnJlbnRUaXRsZSA9IFwiXCI7XG4gICAgICAgIGlmIChkb2N1bWVudC50aXRsZSkge1xuICAgICAgICAgICAgY3VycmVudFRpdGxlID0gZG9jdW1lbnQudGl0bGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYWdlSGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImgxXCIpO1xuICAgICAgICAgICAgaWYgKHBhZ2VIZWFkZXIpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGl0bGUgPSBwYWdlSGVhZGVyLmlubmVyVGV4dCB8fCBwYWdlSGVhZGVyLnRleHRDb250ZW50IHx8IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gT25seSBhbm5vdW5jZSB0aGUgdGl0bGUgY2hhbmdlLCBidXQgbm90IGZvciB0aGUgZmlyc3QgbG9hZCBiZWNhdXNlIHNjcmVlblxuICAgICAgICAvLyByZWFkZXJzIGRvIHRoYXQgYXV0b21hdGljYWxseS5cbiAgICAgICAgaWYgKHByZXZpb3VzVGl0bGUuY3VycmVudCAhPT0gdW5kZWZpbmVkICYmIHByZXZpb3VzVGl0bGUuY3VycmVudCAhPT0gY3VycmVudFRpdGxlKSB7XG4gICAgICAgICAgICBzZXRSb3V0ZUFubm91bmNlbWVudChjdXJyZW50VGl0bGUpO1xuICAgICAgICB9XG4gICAgICAgIHByZXZpb3VzVGl0bGUuY3VycmVudCA9IGN1cnJlbnRUaXRsZTtcbiAgICB9LCBbXG4gICAgICAgIHRyZWVcbiAgICBdKTtcbiAgICByZXR1cm4gcG9ydGFsTm9kZSA/IC8qI19fUFVSRV9fKi8gKDAsIF9yZWFjdGRvbS5jcmVhdGVQb3J0YWwpKHJvdXRlQW5ub3VuY2VtZW50LCBwb3J0YWxOb2RlKSA6IG51bGw7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZXItYW5ub3VuY2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJBcHBSb3V0ZXJBbm5vdW5jZXIiLCJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0ZG9tIiwiQU5OT1VOQ0VSX1RZUEUiLCJBTk5PVU5DRVJfSUQiLCJnZXRBbm5vdW5jZXJOb2RlIiwiX2V4aXN0aW5nQW5ub3VuY2VyX3NoYWRvd1Jvb3QiLCJleGlzdGluZ0Fubm91bmNlciIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJzaGFkb3dSb290IiwiY2hpbGROb2RlcyIsImNvbnRhaW5lciIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsImNzc1RleHQiLCJhbm5vdW5jZXIiLCJhcmlhTGl2ZSIsImlkIiwicm9sZSIsInNoYWRvdyIsImF0dGFjaFNoYWRvdyIsIm1vZGUiLCJhcHBlbmRDaGlsZCIsImJvZHkiLCJwYXJhbSIsInRyZWUiLCJwb3J0YWxOb2RlIiwic2V0UG9ydGFsTm9kZSIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJpc0Nvbm5lY3RlZCIsInJlbW92ZUNoaWxkIiwicm91dGVBbm5vdW5jZW1lbnQiLCJzZXRSb3V0ZUFubm91bmNlbWVudCIsInByZXZpb3VzVGl0bGUiLCJ1c2VSZWYiLCJjdXJyZW50VGl0bGUiLCJ0aXRsZSIsInBhZ2VIZWFkZXIiLCJxdWVyeVNlbGVjdG9yIiwiaW5uZXJUZXh0IiwidGV4dENvbnRlbnQiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwiY3JlYXRlUG9ydGFsIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/app-router-headers.js": +/*!************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/app-router-headers.js ***! + \************************************************************************/ +/***/ ((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 RSC_HEADER: function() {\n return RSC_HEADER;\n },\n ACTION: function() {\n return ACTION;\n },\n NEXT_ROUTER_STATE_TREE: function() {\n return NEXT_ROUTER_STATE_TREE;\n },\n NEXT_ROUTER_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_PREFETCH_HEADER;\n },\n NEXT_URL: function() {\n return NEXT_URL;\n },\n RSC_CONTENT_TYPE_HEADER: function() {\n return RSC_CONTENT_TYPE_HEADER;\n },\n RSC_VARY_HEADER: function() {\n return RSC_VARY_HEADER;\n },\n FLIGHT_PARAMETERS: function() {\n return FLIGHT_PARAMETERS;\n },\n NEXT_RSC_UNION_QUERY: function() {\n return NEXT_RSC_UNION_QUERY;\n },\n NEXT_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\n }\n});\nconst RSC_HEADER = \"RSC\";\nconst ACTION = \"Next-Action\";\nconst NEXT_ROUTER_STATE_TREE = \"Next-Router-State-Tree\";\nconst NEXT_ROUTER_PREFETCH_HEADER = \"Next-Router-Prefetch\";\nconst NEXT_URL = \"Next-Url\";\nconst RSC_CONTENT_TYPE_HEADER = \"text/x-component\";\nconst RSC_VARY_HEADER = RSC_HEADER + \", \" + NEXT_ROUTER_STATE_TREE + \", \" + NEXT_ROUTER_PREFETCH_HEADER + \", \" + NEXT_URL;\nconst FLIGHT_PARAMETERS = [\n [\n RSC_HEADER\n ],\n [\n NEXT_ROUTER_STATE_TREE\n ],\n [\n NEXT_ROUTER_PREFETCH_HEADER\n ]\n];\nconst NEXT_RSC_UNION_QUERY = \"_rsc\";\nconst NEXT_DID_POSTPONE_HEADER = \"x-nextjs-postponed\";\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-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQVdOO0FBQ0EsU0FBU1csUUFBUUMsTUFBTSxFQUFFQyxHQUFHO0lBQ3hCLElBQUksSUFBSUMsUUFBUUQsSUFBSWpCLE9BQU9DLGNBQWMsQ0FBQ2UsUUFBUUUsTUFBTTtRQUNwREMsWUFBWTtRQUNaQyxLQUFLSCxHQUFHLENBQUNDLEtBQUs7SUFDbEI7QUFDSjtBQUNBSCxRQUFRYixTQUFTO0lBQ2JHLFlBQVk7UUFDUixPQUFPQTtJQUNYO0lBQ0FDLFFBQVE7UUFDSixPQUFPQTtJQUNYO0lBQ0FDLHdCQUF3QjtRQUNwQixPQUFPQTtJQUNYO0lBQ0FDLDZCQUE2QjtRQUN6QixPQUFPQTtJQUNYO0lBQ0FDLFVBQVU7UUFDTixPQUFPQTtJQUNYO0lBQ0FDLHlCQUF5QjtRQUNyQixPQUFPQTtJQUNYO0lBQ0FDLGlCQUFpQjtRQUNiLE9BQU9BO0lBQ1g7SUFDQUMsbUJBQW1CO1FBQ2YsT0FBT0E7SUFDWDtJQUNBQyxzQkFBc0I7UUFDbEIsT0FBT0E7SUFDWDtJQUNBQywwQkFBMEI7UUFDdEIsT0FBT0E7SUFDWDtBQUNKO0FBQ0EsTUFBTVQsYUFBYTtBQUNuQixNQUFNQyxTQUFTO0FBQ2YsTUFBTUMseUJBQXlCO0FBQy9CLE1BQU1DLDhCQUE4QjtBQUNwQyxNQUFNQyxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUNoQyxNQUFNQyxrQkFBa0JOLGFBQWEsT0FBT0UseUJBQXlCLE9BQU9DLDhCQUE4QixPQUFPQztBQUNqSCxNQUFNRyxvQkFBb0I7SUFDdEI7UUFDSVA7S0FDSDtJQUNEO1FBQ0lFO0tBQ0g7SUFDRDtRQUNJQztLQUNIO0NBQ0o7QUFDRCxNQUFNSyx1QkFBdUI7QUFDN0IsTUFBTUMsMkJBQTJCO0FBRWpDLElBQUksQ0FBQyxPQUFPWixRQUFRbUIsT0FBTyxLQUFLLGNBQWUsT0FBT25CLFFBQVFtQixPQUFPLEtBQUssWUFBWW5CLFFBQVFtQixPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9uQixRQUFRbUIsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS3RCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUW1CLE9BQU8sRUFBRSxjQUFjO1FBQUVsQixPQUFPO0lBQUs7SUFDbkVILE9BQU91QixNQUFNLENBQUNyQixRQUFRbUIsT0FBTyxFQUFFbkI7SUFDL0JFLE9BQU9GLE9BQU8sR0FBR0EsUUFBUW1CLE9BQU87QUFDbEMsRUFFQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcz8zNTZmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUlNDX0hFQURFUjogbnVsbCxcbiAgICBBQ1RJT046IG51bGwsXG4gICAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRTogbnVsbCxcbiAgICBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVI6IG51bGwsXG4gICAgTkVYVF9VUkw6IG51bGwsXG4gICAgUlNDX0NPTlRFTlRfVFlQRV9IRUFERVI6IG51bGwsXG4gICAgUlNDX1ZBUllfSEVBREVSOiBudWxsLFxuICAgIEZMSUdIVF9QQVJBTUVURVJTOiBudWxsLFxuICAgIE5FWFRfUlNDX1VOSU9OX1FVRVJZOiBudWxsLFxuICAgIE5FWFRfRElEX1BPU1RQT05FX0hFQURFUjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBSU0NfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19IRUFERVI7XG4gICAgfSxcbiAgICBBQ1RJT046IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQUNUSU9OO1xuICAgIH0sXG4gICAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1JPVVRFUl9TVEFURV9UUkVFO1xuICAgIH0sXG4gICAgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfVVJMOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfVVJMO1xuICAgIH0sXG4gICAgUlNDX0NPTlRFTlRfVFlQRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0NPTlRFTlRfVFlQRV9IRUFERVI7XG4gICAgfSxcbiAgICBSU0NfVkFSWV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1ZBUllfSEVBREVSO1xuICAgIH0sXG4gICAgRkxJR0hUX1BBUkFNRVRFUlM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRkxJR0hUX1BBUkFNRVRFUlM7XG4gICAgfSxcbiAgICBORVhUX1JTQ19VTklPTl9RVUVSWTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1JTQ19VTklPTl9RVUVSWTtcbiAgICB9LFxuICAgIE5FWFRfRElEX1BPU1RQT05FX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0RJRF9QT1NUUE9ORV9IRUFERVI7XG4gICAgfVxufSk7XG5jb25zdCBSU0NfSEVBREVSID0gXCJSU0NcIjtcbmNvbnN0IEFDVElPTiA9IFwiTmV4dC1BY3Rpb25cIjtcbmNvbnN0IE5FWFRfUk9VVEVSX1NUQVRFX1RSRUUgPSBcIk5leHQtUm91dGVyLVN0YXRlLVRyZWVcIjtcbmNvbnN0IE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiA9IFwiTmV4dC1Sb3V0ZXItUHJlZmV0Y2hcIjtcbmNvbnN0IE5FWFRfVVJMID0gXCJOZXh0LVVybFwiO1xuY29uc3QgUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIgPSBcInRleHQveC1jb21wb25lbnRcIjtcbmNvbnN0IFJTQ19WQVJZX0hFQURFUiA9IFJTQ19IRUFERVIgKyBcIiwgXCIgKyBORVhUX1JPVVRFUl9TVEFURV9UUkVFICsgXCIsIFwiICsgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSICsgXCIsIFwiICsgTkVYVF9VUkw7XG5jb25zdCBGTElHSFRfUEFSQU1FVEVSUyA9IFtcbiAgICBbXG4gICAgICAgIFJTQ19IRUFERVJcbiAgICBdLFxuICAgIFtcbiAgICAgICAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRVxuICAgIF0sXG4gICAgW1xuICAgICAgICBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVJcbiAgICBdXG5dO1xuY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSBcIl9yc2NcIjtcbmNvbnN0IE5FWFRfRElEX1BPU1RQT05FX0hFQURFUiA9IFwieC1uZXh0anMtcG9zdHBvbmVkXCI7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZXItaGVhZGVycy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJSU0NfSEVBREVSIiwiQUNUSU9OIiwiTkVYVF9ST1VURVJfU1RBVEVfVFJFRSIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfVVJMIiwiUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIiLCJSU0NfVkFSWV9IRUFERVIiLCJGTElHSFRfUEFSQU1FVEVSUyIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSIiwiX2V4cG9ydCIsInRhcmdldCIsImFsbCIsIm5hbWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/app-router.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/components/app-router.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 getServerActionDispatcher: function() {\n return getServerActionDispatcher;\n },\n urlToUrlWithoutFlightMarker: function() {\n return urlToUrlWithoutFlightMarker;\n },\n createEmptyCacheNode: function() {\n return createEmptyCacheNode;\n },\n default: function() {\n return AppRouter;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _createhreffromurl = __webpack_require__(/*! ./router-reducer/create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\nconst _usereducerwithdevtools = __webpack_require__(/*! ./use-reducer-with-devtools */ \"(ssr)/./node_modules/next/dist/client/components/use-reducer-with-devtools.js\");\nconst _errorboundary = __webpack_require__(/*! ./error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _createinitialrouterstate = __webpack_require__(/*! ./router-reducer/create-initial-router-state */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js\");\nconst _isbot = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _addbasepath = __webpack_require__(/*! ../add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nconst _approuterannouncer = __webpack_require__(/*! ./app-router-announcer */ \"(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js\");\nconst _redirectboundary = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\");\nconst _findheadincache = __webpack_require__(/*! ./router-reducer/reducers/find-head-in-cache */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js\");\nconst _infinitepromise = __webpack_require__(/*! ./infinite-promise */ \"(ssr)/./node_modules/next/dist/client/components/infinite-promise.js\");\nconst _approuterheaders = __webpack_require__(/*! ./app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _removebasepath = __webpack_require__(/*! ../remove-base-path */ \"(ssr)/./node_modules/next/dist/client/remove-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ../has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\nconst isServer = \"undefined\" === \"undefined\";\n// Ensure the initialParallelRoutes are not combined because of double-rendering in the browser with Strict Mode.\nlet initialParallelRoutes = isServer ? null : new Map();\nlet globalServerActionDispatcher = null;\nfunction getServerActionDispatcher() {\n return globalServerActionDispatcher;\n}\nconst globalMutable = {};\nfunction urlToUrlWithoutFlightMarker(url) {\n const urlWithoutFlightParameters = new URL(url, location.origin);\n urlWithoutFlightParameters.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n if (false) {}\n return urlWithoutFlightParameters;\n}\nfunction isExternalURL(url) {\n return url.origin !== window.location.origin;\n}\nfunction HistoryUpdater(param) {\n let { appRouterState, sync } = param;\n (0, _react.useInsertionEffect)(()=>{\n const { tree, pushRef, canonicalUrl } = appRouterState;\n const historyState = {\n ...pushRef.preserveCustomHistoryState ? window.history.state : {},\n // Identifier is shortened intentionally.\n // __NA is used to identify if the history entry can be handled by the app-router.\n // __N is used to identify if the history entry can be handled by the old router.\n __NA: true,\n __PRIVATE_NEXTJS_INTERNALS_TREE: tree\n };\n if (pushRef.pendingPush && // Skip pushing an additional history entry if the canonicalUrl is the same as the current url.\n // This mirrors the browser behavior for normal navigation.\n (0, _createhreffromurl.createHrefFromUrl)(new URL(window.location.href)) !== canonicalUrl) {\n // This intentionally mutates React state, pushRef is overwritten to ensure additional push/replace calls do not trigger an additional history entry.\n pushRef.pendingPush = false;\n window.history.pushState(historyState, \"\", canonicalUrl);\n } else {\n window.history.replaceState(historyState, \"\", canonicalUrl);\n }\n sync(appRouterState);\n }, [\n appRouterState,\n sync\n ]);\n return null;\n}\nfunction createEmptyCacheNode() {\n return {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n parallelRoutes: new Map()\n };\n}\nfunction useServerActionDispatcher(dispatch) {\n const serverActionDispatcher = (0, _react.useCallback)((actionPayload)=>{\n (0, _react.startTransition)(()=>{\n dispatch({\n ...actionPayload,\n type: _routerreducertypes.ACTION_SERVER_ACTION\n });\n });\n }, [\n dispatch\n ]);\n globalServerActionDispatcher = serverActionDispatcher;\n}\n/**\n * Server response that only patches the cache and tree.\n */ function useChangeByServerResponse(dispatch) {\n return (0, _react.useCallback)((previousTree, flightData, overrideCanonicalUrl)=>{\n (0, _react.startTransition)(()=>{\n dispatch({\n type: _routerreducertypes.ACTION_SERVER_PATCH,\n flightData,\n previousTree,\n overrideCanonicalUrl\n });\n });\n }, [\n dispatch\n ]);\n}\nfunction useNavigate(dispatch) {\n return (0, _react.useCallback)((href, navigateType, shouldScroll)=>{\n const url = new URL((0, _addbasepath.addBasePath)(href), location.href);\n return dispatch({\n type: _routerreducertypes.ACTION_NAVIGATE,\n url,\n isExternalUrl: isExternalURL(url),\n locationSearch: location.search,\n shouldScroll: shouldScroll != null ? shouldScroll : true,\n navigateType\n });\n }, [\n dispatch\n ]);\n}\nfunction copyNextJsInternalHistoryState(data) {\n if (data == null) data = {};\n const currentState = window.history.state;\n const __NA = currentState == null ? void 0 : currentState.__NA;\n if (__NA) {\n data.__NA = __NA;\n }\n const __PRIVATE_NEXTJS_INTERNALS_TREE = currentState == null ? void 0 : currentState.__PRIVATE_NEXTJS_INTERNALS_TREE;\n if (__PRIVATE_NEXTJS_INTERNALS_TREE) {\n data.__PRIVATE_NEXTJS_INTERNALS_TREE = __PRIVATE_NEXTJS_INTERNALS_TREE;\n }\n return data;\n}\nfunction Head(param) {\n let { headCacheNode } = param;\n // If this segment has a `prefetchHead`, it's the statically prefetched data.\n // We should use that on initial render instead of `head`. Then we'll switch\n // to `head` when the dynamic response streams in.\n const head = headCacheNode !== null ? headCacheNode.head : null;\n const prefetchHead = headCacheNode !== null ? headCacheNode.prefetchHead : null;\n // If no prefetch data is available, then we go straight to rendering `head`.\n const resolvedPrefetchRsc = prefetchHead !== null ? prefetchHead : head;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n //\n // @ts-expect-error The second argument to `useDeferredValue` is only\n // available in the experimental builds. When its disabled, it will always\n // return `head`.\n return (0, _react.useDeferredValue)(head, resolvedPrefetchRsc);\n}\n/**\n * The global router that wraps the application components.\n */ function Router(param) {\n let { buildId, initialHead, initialTree, initialCanonicalUrl, initialSeedData, assetPrefix, missingSlots } = param;\n const initialState = (0, _react.useMemo)(()=>(0, _createinitialrouterstate.createInitialRouterState)({\n buildId,\n initialSeedData,\n initialCanonicalUrl,\n initialTree,\n initialParallelRoutes,\n isServer,\n location: !isServer ? window.location : null,\n initialHead\n }), [\n buildId,\n initialSeedData,\n initialCanonicalUrl,\n initialTree,\n initialHead\n ]);\n const [reducerState, dispatch, sync] = (0, _usereducerwithdevtools.useReducerWithReduxDevtools)(initialState);\n (0, _react.useEffect)(()=>{\n // Ensure initialParallelRoutes is cleaned up from memory once it's used.\n initialParallelRoutes = null;\n }, []);\n const { canonicalUrl } = (0, _usereducerwithdevtools.useUnwrapState)(reducerState);\n // Add memoized pathname/query for useSearchParams and usePathname.\n const { searchParams, pathname } = (0, _react.useMemo)(()=>{\n const url = new URL(canonicalUrl, true ? \"http://n\" : 0);\n return {\n // This is turned into a readonly class in `useSearchParams`\n searchParams: url.searchParams,\n pathname: (0, _hasbasepath.hasBasePath)(url.pathname) ? (0, _removebasepath.removeBasePath)(url.pathname) : url.pathname\n };\n }, [\n canonicalUrl\n ]);\n const changeByServerResponse = useChangeByServerResponse(dispatch);\n const navigate = useNavigate(dispatch);\n useServerActionDispatcher(dispatch);\n /**\n * The app router that is exposed through `useRouter`. It's only concerned with dispatching actions to the reducer, does not hold state.\n */ const appRouter = (0, _react.useMemo)(()=>{\n const routerInstance = {\n back: ()=>window.history.back(),\n forward: ()=>window.history.forward(),\n prefetch: (href, options)=>{\n // Don't prefetch for bots as they don't navigate.\n // Don't prefetch during development (improves compilation performance)\n if ((0, _isbot.isBot)(window.navigator.userAgent) || \"development\" === \"development\") {\n return;\n }\n const url = new URL((0, _addbasepath.addBasePath)(href), window.location.href);\n // External urls can't be prefetched in the same way.\n if (isExternalURL(url)) {\n return;\n }\n (0, _react.startTransition)(()=>{\n var _options_kind;\n dispatch({\n type: _routerreducertypes.ACTION_PREFETCH,\n url,\n kind: (_options_kind = options == null ? void 0 : options.kind) != null ? _options_kind : _routerreducertypes.PrefetchKind.FULL\n });\n });\n },\n replace: (href, options)=>{\n if (options === void 0) options = {};\n (0, _react.startTransition)(()=>{\n var _options_scroll;\n navigate(href, \"replace\", (_options_scroll = options.scroll) != null ? _options_scroll : true);\n });\n },\n push: (href, options)=>{\n if (options === void 0) options = {};\n (0, _react.startTransition)(()=>{\n var _options_scroll;\n navigate(href, \"push\", (_options_scroll = options.scroll) != null ? _options_scroll : true);\n });\n },\n refresh: ()=>{\n (0, _react.startTransition)(()=>{\n dispatch({\n type: _routerreducertypes.ACTION_REFRESH,\n origin: window.location.origin\n });\n });\n },\n // @ts-ignore we don't want to expose this method at all\n fastRefresh: ()=>{\n if (false) {} else {\n (0, _react.startTransition)(()=>{\n dispatch({\n type: _routerreducertypes.ACTION_FAST_REFRESH,\n origin: window.location.origin\n });\n });\n }\n }\n };\n return routerInstance;\n }, [\n dispatch,\n navigate\n ]);\n (0, _react.useEffect)(()=>{\n // Exists for debugging purposes. Don't use in application code.\n if (window.next) {\n window.next.router = appRouter;\n }\n }, [\n appRouter\n ]);\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { cache, prefetchCache, tree } = (0, _usereducerwithdevtools.useUnwrapState)(reducerState);\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, _react.useEffect)(()=>{\n // Add `window.nd` for debugging purposes.\n // This is not meant for use in applications as concurrent rendering will affect the cache/tree/router.\n // @ts-ignore this is for debugging\n window.nd = {\n router: appRouter,\n cache,\n prefetchCache,\n tree\n };\n }, [\n appRouter,\n cache,\n prefetchCache,\n tree\n ]);\n }\n (0, _react.useEffect)(()=>{\n // If the app is restored from bfcache, it's possible that\n // pushRef.mpaNavigation is true, which would mean that any re-render of this component\n // would trigger the mpa navigation logic again from the lines below.\n // This will restore the router to the initial state in the event that the app is restored from bfcache.\n function handlePageShow(event) {\n var _window_history_state;\n if (!event.persisted || !((_window_history_state = window.history.state) == null ? void 0 : _window_history_state.__PRIVATE_NEXTJS_INTERNALS_TREE)) {\n return;\n }\n dispatch({\n type: _routerreducertypes.ACTION_RESTORE,\n url: new URL(window.location.href),\n tree: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE\n });\n }\n window.addEventListener(\"pageshow\", handlePageShow);\n return ()=>{\n window.removeEventListener(\"pageshow\", handlePageShow);\n };\n }, [\n dispatch\n ]);\n // When mpaNavigation flag is set do a hard navigation to the new url.\n // Infinitely suspend because we don't actually want to rerender any child\n // components with the new URL and any entangled state updates shouldn't\n // commit either (eg: useTransition isPending should stay true until the page\n // unloads).\n //\n // This is a side effect in render. Don't try this at home, kids. It's\n // probably safe because we know this is a singleton component and it's never\n // in . At least I hope so. (It will run twice in dev strict mode,\n // but that's... fine?)\n const { pushRef } = (0, _usereducerwithdevtools.useUnwrapState)(reducerState);\n if (pushRef.mpaNavigation) {\n // if there's a re-render, we don't want to trigger another redirect if one is already in flight to the same URL\n if (globalMutable.pendingMpaPath !== canonicalUrl) {\n const location1 = window.location;\n if (pushRef.pendingPush) {\n location1.assign(canonicalUrl);\n } else {\n location1.replace(canonicalUrl);\n }\n globalMutable.pendingMpaPath = canonicalUrl;\n }\n // TODO-APP: Should we listen to navigateerror here to catch failed\n // navigations somehow? And should we call window.stop() if a SPA navigation\n // should interrupt an MPA one?\n (0, _react.use)((0, _infinitepromise.createInfinitePromise)());\n }\n (0, _react.useEffect)(()=>{\n const originalPushState = window.history.pushState.bind(window.history);\n const originalReplaceState = window.history.replaceState.bind(window.history);\n // Ensure the canonical URL in the Next.js Router is updated when the URL is changed so that `usePathname` and `useSearchParams` hold the pushed values.\n const applyUrlFromHistoryPushReplace = (url)=>{\n const href = window.location.href;\n (0, _react.startTransition)(()=>{\n dispatch({\n type: _routerreducertypes.ACTION_RESTORE,\n url: new URL(url != null ? url : href, href),\n tree: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE\n });\n });\n };\n /**\n * Patch pushState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */ window.history.pushState = function pushState(data, _unused, url) {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if ((data == null ? void 0 : data.__NA) || (data == null ? void 0 : data._N)) {\n return originalPushState(data, _unused, url);\n }\n data = copyNextJsInternalHistoryState(data);\n if (url) {\n applyUrlFromHistoryPushReplace(url);\n }\n return originalPushState(data, _unused, url);\n };\n /**\n * Patch replaceState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */ window.history.replaceState = function replaceState(data, _unused, url) {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if ((data == null ? void 0 : data.__NA) || (data == null ? void 0 : data._N)) {\n return originalReplaceState(data, _unused, url);\n }\n data = copyNextJsInternalHistoryState(data);\n if (url) {\n applyUrlFromHistoryPushReplace(url);\n }\n return originalReplaceState(data, _unused, url);\n };\n /**\n * Handle popstate event, this is used to handle back/forward in the browser.\n * By default dispatches ACTION_RESTORE, however if the history entry was not pushed/replaced by app-router it will reload the page.\n * That case can happen when the old router injected the history entry.\n */ const onPopState = (param)=>{\n let { state } = param;\n if (!state) {\n // TODO-APP: this case only happens when pushState/replaceState was called outside of Next.js. It should probably reload the page in this case.\n return;\n }\n // This case happens when the history entry was pushed by the `pages` router.\n if (!state.__NA) {\n window.location.reload();\n return;\n }\n // @ts-ignore useTransition exists\n // TODO-APP: Ideally the back button should not use startTransition as it should apply the updates synchronously\n // Without startTransition works if the cache is there for this path\n (0, _react.startTransition)(()=>{\n dispatch({\n type: _routerreducertypes.ACTION_RESTORE,\n url: new URL(window.location.href),\n tree: state.__PRIVATE_NEXTJS_INTERNALS_TREE\n });\n });\n };\n // Register popstate event to call onPopstate.\n window.addEventListener(\"popstate\", onPopState);\n return ()=>{\n window.history.pushState = originalPushState;\n window.history.replaceState = originalReplaceState;\n window.removeEventListener(\"popstate\", onPopState);\n };\n }, [\n dispatch\n ]);\n const { cache, tree, nextUrl, focusAndScrollRef } = (0, _usereducerwithdevtools.useUnwrapState)(reducerState);\n const matchingHead = (0, _react.useMemo)(()=>{\n return (0, _findheadincache.findHeadInCache)(cache, tree[1]);\n }, [\n cache,\n tree\n ]);\n let head;\n if (matchingHead !== null) {\n // The head is wrapped in an extra component so we can use\n // `useDeferredValue` to swap between the prefetched and final versions of\n // the head. (This is what LayoutRouter does for segment data, too.)\n //\n // The `key` is used to remount the component whenever the head moves to\n // a different segment.\n const [headCacheNode, headKey] = matchingHead;\n head = /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n headCacheNode: headCacheNode\n }, headKey);\n } else {\n head = null;\n }\n let content = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_redirectboundary.RedirectBoundary, {\n children: [\n head,\n cache.rsc,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_approuterannouncer.AppRouterAnnouncer, {\n tree: tree\n })\n ]\n });\n if (true) {\n if (false) {}\n const HotReloader = (__webpack_require__(/*! ./react-dev-overlay/hot-reloader-client */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/hot-reloader-client.js\")[\"default\"]);\n content = /*#__PURE__*/ (0, _jsxruntime.jsx)(HotReloader, {\n assetPrefix: assetPrefix,\n children: content\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(HistoryUpdater, {\n appRouterState: (0, _usereducerwithdevtools.useUnwrapState)(reducerState),\n sync: sync\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathnameContext.Provider, {\n value: pathname,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.SearchParamsContext.Provider, {\n value: searchParams,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.GlobalLayoutRouterContext.Provider, {\n value: {\n buildId,\n changeByServerResponse,\n tree,\n focusAndScrollRef,\n nextUrl\n },\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.AppRouterContext.Provider, {\n value: appRouter,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: {\n childNodes: cache.parallelRoutes,\n tree,\n // Root node always has `url`\n // Provided in AppTreeContext to ensure it can be overwritten in layout-router\n url: canonicalUrl\n },\n children: content\n })\n })\n })\n })\n })\n ]\n });\n}\nfunction AppRouter(props) {\n const { globalErrorComponent, ...rest } = props;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {\n errorComponent: globalErrorComponent,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Router, {\n ...rest\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=app-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6InFEQUVhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGLEtBQU1DLENBQUFBLENBS047QUFDQSxTQUFTSyxRQUFRQyxNQUFNLEVBQUVDLEdBQUc7SUFDeEIsSUFBSSxJQUFJQyxRQUFRRCxJQUFJWCxPQUFPQyxjQUFjLENBQUNTLFFBQVFFLE1BQU07UUFDcERDLFlBQVk7UUFDWkMsS0FBS0gsR0FBRyxDQUFDQyxLQUFLO0lBQ2xCO0FBQ0o7QUFDQUgsUUFBUVAsU0FBUztJQUNiRywyQkFBMkI7UUFDdkIsT0FBT0E7SUFDWDtJQUNBQyw2QkFBNkI7UUFDekIsT0FBT0E7SUFDWDtJQUNBQyxzQkFBc0I7UUFDbEIsT0FBT0E7SUFDWDtJQUNBQyxTQUFTO1FBQ0wsT0FBT087SUFDWDtBQUNKO0FBQ0EsTUFBTUMsNEJBQTRCQyxtQkFBT0EsQ0FBQyxvSEFBMEM7QUFDcEYsTUFBTUMsY0FBY0QsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1FLFNBQVMsV0FBVyxHQUFHSCwwQkFBMEJJLENBQUMsQ0FBQ0gsbUJBQU9BLENBQUMsd0dBQU87QUFDeEUsTUFBTUksaUNBQWlDSixtQkFBT0EsQ0FBQyx1S0FBb0Q7QUFDbkcsTUFBTUssc0JBQXNCTCxtQkFBT0EsQ0FBQyxzSUFBdUM7QUFDM0UsTUFBTU0scUJBQXFCTixtQkFBT0EsQ0FBQyxzSUFBdUM7QUFDMUUsTUFBTU8sbUNBQW1DUCxtQkFBT0EsQ0FBQywyS0FBc0Q7QUFDdkcsTUFBTVEsMEJBQTBCUixtQkFBT0EsQ0FBQyxrSEFBNkI7QUFDckUsTUFBTVMsaUJBQWlCVCxtQkFBT0EsQ0FBQyw0RkFBa0I7QUFDakQsTUFBTVUsNEJBQTRCVixtQkFBT0EsQ0FBQyxvSkFBOEM7QUFDeEYsTUFBTVcsU0FBU1gsbUJBQU9BLENBQUMsOEdBQXNDO0FBQzdE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QSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIuanM/NDE1OSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyOiBudWxsLFxuICAgIHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcjogbnVsbCxcbiAgICBjcmVhdGVFbXB0eUNhY2hlTm9kZTogbnVsbCxcbiAgICBkZWZhdWx0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldFNlcnZlckFjdGlvbkRpc3BhdGNoZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0U2VydmVyQWN0aW9uRGlzcGF0Y2hlcjtcbiAgICB9LFxuICAgIHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXI7XG4gICAgfSxcbiAgICBjcmVhdGVFbXB0eUNhY2hlTm9kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVFbXB0eUNhY2hlTm9kZTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwUm91dGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkXCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX2FwcHJvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCIpO1xuY29uc3QgX3JvdXRlcnJlZHVjZXJ0eXBlcyA9IHJlcXVpcmUoXCIuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzXCIpO1xuY29uc3QgX2NyZWF0ZWhyZWZmcm9tdXJsID0gcmVxdWlyZShcIi4vcm91dGVyLXJlZHVjZXIvY3JlYXRlLWhyZWYtZnJvbS11cmxcIik7XG5jb25zdCBfaG9va3NjbGllbnRjb250ZXh0c2hhcmVkcnVudGltZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCIpO1xuY29uc3QgX3VzZXJlZHVjZXJ3aXRoZGV2dG9vbHMgPSByZXF1aXJlKFwiLi91c2UtcmVkdWNlci13aXRoLWRldnRvb2xzXCIpO1xuY29uc3QgX2Vycm9yYm91bmRhcnkgPSByZXF1aXJlKFwiLi9lcnJvci1ib3VuZGFyeVwiKTtcbmNvbnN0IF9jcmVhdGVpbml0aWFscm91dGVyc3RhdGUgPSByZXF1aXJlKFwiLi9yb3V0ZXItcmVkdWNlci9jcmVhdGUtaW5pdGlhbC1yb3V0ZXItc3RhdGVcIik7XG5jb25zdCBfaXNib3QgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90XCIpO1xuY29uc3QgX2FkZGJhc2VwYXRoID0gcmVxdWlyZShcIi4uL2FkZC1iYXNlLXBhdGhcIik7XG5jb25zdCBfYXBwcm91dGVyYW5ub3VuY2VyID0gcmVxdWlyZShcIi4vYXBwLXJvdXRlci1hbm5vdW5jZXJcIik7XG5jb25zdCBfcmVkaXJlY3Rib3VuZGFyeSA9IHJlcXVpcmUoXCIuL3JlZGlyZWN0LWJvdW5kYXJ5XCIpO1xuY29uc3QgX2ZpbmRoZWFkaW5jYWNoZSA9IHJlcXVpcmUoXCIuL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2ZpbmQtaGVhZC1pbi1jYWNoZVwiKTtcbmNvbnN0IF9pbmZpbml0ZXByb21pc2UgPSByZXF1aXJlKFwiLi9pbmZpbml0ZS1wcm9taXNlXCIpO1xuY29uc3QgX2FwcHJvdXRlcmhlYWRlcnMgPSByZXF1aXJlKFwiLi9hcHAtcm91dGVyLWhlYWRlcnNcIik7XG5jb25zdCBfcmVtb3ZlYmFzZXBhdGggPSByZXF1aXJlKFwiLi4vcmVtb3ZlLWJhc2UtcGF0aFwiKTtcbmNvbnN0IF9oYXNiYXNlcGF0aCA9IHJlcXVpcmUoXCIuLi9oYXMtYmFzZS1wYXRoXCIpO1xuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiO1xuLy8gRW5zdXJlIHRoZSBpbml0aWFsUGFyYWxsZWxSb3V0ZXMgYXJlIG5vdCBjb21iaW5lZCBiZWNhdXNlIG9mIGRvdWJsZS1yZW5kZXJpbmcgaW4gdGhlIGJyb3dzZXIgd2l0aCBTdHJpY3QgTW9kZS5cbmxldCBpbml0aWFsUGFyYWxsZWxSb3V0ZXMgPSBpc1NlcnZlciA/IG51bGwgOiBuZXcgTWFwKCk7XG5sZXQgZ2xvYmFsU2VydmVyQWN0aW9uRGlzcGF0Y2hlciA9IG51bGw7XG5mdW5jdGlvbiBnZXRTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyKCkge1xuICAgIHJldHVybiBnbG9iYWxTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyO1xufVxuY29uc3QgZ2xvYmFsTXV0YWJsZSA9IHt9O1xuZnVuY3Rpb24gdXJsVG9VcmxXaXRob3V0RmxpZ2h0TWFya2VyKHVybCkge1xuICAgIGNvbnN0IHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uLm9yaWdpbik7XG4gICAgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMuc2VhcmNoUGFyYW1zLmRlbGV0ZShfYXBwcm91dGVyaGVhZGVycy5ORVhUX1JTQ19VTklPTl9RVUVSWSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NPTkZJR19PVVRQVVQgPT09IFwiZXhwb3J0XCIgJiYgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMucGF0aG5hbWUuZW5kc1dpdGgoXCIudHh0XCIpKSB7XG4gICAgICAgICAgICBjb25zdCB7IHBhdGhuYW1lIH0gPSB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycztcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHBhdGhuYW1lLmVuZHNXaXRoKFwiL2luZGV4LnR4dFwiKSA/IDEwIDogNDtcbiAgICAgICAgICAgIC8vIFNsaWNlIG9mZiBgL2luZGV4LnR4dGAgb3IgYC50eHRgIGZyb20gdGhlIGVuZCBvZiB0aGUgcGF0aG5hbWVcbiAgICAgICAgICAgIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzLnBhdGhuYW1lID0gcGF0aG5hbWUuc2xpY2UoMCwgLWxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gaXNFeHRlcm5hbFVSTCh1cmwpIHtcbiAgICByZXR1cm4gdXJsLm9yaWdpbiAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbn1cbmZ1bmN0aW9uIEhpc3RvcnlVcGRhdGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgYXBwUm91dGVyU3RhdGUsIHN5bmMgfSA9IHBhcmFtO1xuICAgICgwLCBfcmVhY3QudXNlSW5zZXJ0aW9uRWZmZWN0KSgoKT0+e1xuICAgICAgICBjb25zdCB7IHRyZWUsIHB1c2hSZWYsIGNhbm9uaWNhbFVybCB9ID0gYXBwUm91dGVyU3RhdGU7XG4gICAgICAgIGNvbnN0IGhpc3RvcnlTdGF0ZSA9IHtcbiAgICAgICAgICAgIC4uLnB1c2hSZWYucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUgPyB3aW5kb3cuaGlzdG9yeS5zdGF0ZSA6IHt9LFxuICAgICAgICAgICAgLy8gSWRlbnRpZmllciBpcyBzaG9ydGVuZWQgaW50ZW50aW9uYWxseS5cbiAgICAgICAgICAgIC8vIF9fTkEgaXMgdXNlZCB0byBpZGVudGlmeSBpZiB0aGUgaGlzdG9yeSBlbnRyeSBjYW4gYmUgaGFuZGxlZCBieSB0aGUgYXBwLXJvdXRlci5cbiAgICAgICAgICAgIC8vIF9fTiBpcyB1c2VkIHRvIGlkZW50aWZ5IGlmIHRoZSBoaXN0b3J5IGVudHJ5IGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBvbGQgcm91dGVyLlxuICAgICAgICAgICAgX19OQTogdHJ1ZSxcbiAgICAgICAgICAgIF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU6IHRyZWVcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHB1c2hSZWYucGVuZGluZ1B1c2ggJiYgLy8gU2tpcCBwdXNoaW5nIGFuIGFkZGl0aW9uYWwgaGlzdG9yeSBlbnRyeSBpZiB0aGUgY2Fub25pY2FsVXJsIGlzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHVybC5cbiAgICAgICAgLy8gVGhpcyBtaXJyb3JzIHRoZSBicm93c2VyIGJlaGF2aW9yIGZvciBub3JtYWwgbmF2aWdhdGlvbi5cbiAgICAgICAgKDAsIF9jcmVhdGVocmVmZnJvbXVybC5jcmVhdGVIcmVmRnJvbVVybCkobmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikpICE9PSBjYW5vbmljYWxVcmwpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaW50ZW50aW9uYWxseSBtdXRhdGVzIFJlYWN0IHN0YXRlLCBwdXNoUmVmIGlzIG92ZXJ3cml0dGVuIHRvIGVuc3VyZSBhZGRpdGlvbmFsIHB1c2gvcmVwbGFjZSBjYWxscyBkbyBub3QgdHJpZ2dlciBhbiBhZGRpdGlvbmFsIGhpc3RvcnkgZW50cnkuXG4gICAgICAgICAgICBwdXNoUmVmLnBlbmRpbmdQdXNoID0gZmFsc2U7XG4gICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoaGlzdG9yeVN0YXRlLCBcIlwiLCBjYW5vbmljYWxVcmwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3RvcnlTdGF0ZSwgXCJcIiwgY2Fub25pY2FsVXJsKTtcbiAgICAgICAgfVxuICAgICAgICBzeW5jKGFwcFJvdXRlclN0YXRlKTtcbiAgICB9LCBbXG4gICAgICAgIGFwcFJvdXRlclN0YXRlLFxuICAgICAgICBzeW5jXG4gICAgXSk7XG4gICAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBjcmVhdGVFbXB0eUNhY2hlTm9kZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgcnNjOiBudWxsLFxuICAgICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKVxuICAgIH07XG59XG5mdW5jdGlvbiB1c2VTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyKGRpc3BhdGNoKSB7XG4gICAgY29uc3Qgc2VydmVyQWN0aW9uRGlzcGF0Y2hlciA9ICgwLCBfcmVhY3QudXNlQ2FsbGJhY2spKChhY3Rpb25QYXlsb2FkKT0+e1xuICAgICAgICAoMCwgX3JlYWN0LnN0YXJ0VHJhbnNpdGlvbikoKCk9PntcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAuLi5hY3Rpb25QYXlsb2FkLFxuICAgICAgICAgICAgICAgIHR5cGU6IF9yb3V0ZXJyZWR1Y2VydHlwZXMuQUNUSU9OX1NFUlZFUl9BQ1RJT05cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9LCBbXG4gICAgICAgIGRpc3BhdGNoXG4gICAgXSk7XG4gICAgZ2xvYmFsU2VydmVyQWN0aW9uRGlzcGF0Y2hlciA9IHNlcnZlckFjdGlvbkRpc3BhdGNoZXI7XG59XG4vKipcbiAqIFNlcnZlciByZXNwb25zZSB0aGF0IG9ubHkgcGF0Y2hlcyB0aGUgY2FjaGUgYW5kIHRyZWUuXG4gKi8gZnVuY3Rpb24gdXNlQ2hhbmdlQnlTZXJ2ZXJSZXNwb25zZShkaXNwYXRjaCkge1xuICAgIHJldHVybiAoMCwgX3JlYWN0LnVzZUNhbGxiYWNrKSgocHJldmlvdXNUcmVlLCBmbGlnaHREYXRhLCBvdmVycmlkZUNhbm9uaWNhbFVybCk9PntcbiAgICAgICAgKDAsIF9yZWFjdC5zdGFydFRyYW5zaXRpb24pKCgpPT57XG4gICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogX3JvdXRlcnJlZHVjZXJ0eXBlcy5BQ1RJT05fU0VSVkVSX1BBVENILFxuICAgICAgICAgICAgICAgIGZsaWdodERhdGEsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNUcmVlLFxuICAgICAgICAgICAgICAgIG92ZXJyaWRlQ2Fub25pY2FsVXJsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBkaXNwYXRjaFxuICAgIF0pO1xufVxuZnVuY3Rpb24gdXNlTmF2aWdhdGUoZGlzcGF0Y2gpIHtcbiAgICByZXR1cm4gKDAsIF9yZWFjdC51c2VDYWxsYmFjaykoKGhyZWYsIG5hdmlnYXRlVHlwZSwgc2hvdWxkU2Nyb2xsKT0+e1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKCgwLCBfYWRkYmFzZXBhdGguYWRkQmFzZVBhdGgpKGhyZWYpLCBsb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgcmV0dXJuIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6IF9yb3V0ZXJyZWR1Y2VydHlwZXMuQUNUSU9OX05BVklHQVRFLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgaXNFeHRlcm5hbFVybDogaXNFeHRlcm5hbFVSTCh1cmwpLFxuICAgICAgICAgICAgbG9jYXRpb25TZWFyY2g6IGxvY2F0aW9uLnNlYXJjaCxcbiAgICAgICAgICAgIHNob3VsZFNjcm9sbDogc2hvdWxkU2Nyb2xsICE9IG51bGwgPyBzaG91bGRTY3JvbGwgOiB0cnVlLFxuICAgICAgICAgICAgbmF2aWdhdGVUeXBlXG4gICAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgICAgZGlzcGF0Y2hcbiAgICBdKTtcbn1cbmZ1bmN0aW9uIGNvcHlOZXh0SnNJbnRlcm5hbEhpc3RvcnlTdGF0ZShkYXRhKSB7XG4gICAgaWYgKGRhdGEgPT0gbnVsbCkgZGF0YSA9IHt9O1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHdpbmRvdy5oaXN0b3J5LnN0YXRlO1xuICAgIGNvbnN0IF9fTkEgPSBjdXJyZW50U3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IGN1cnJlbnRTdGF0ZS5fX05BO1xuICAgIGlmIChfX05BKSB7XG4gICAgICAgIGRhdGEuX19OQSA9IF9fTkE7XG4gICAgfVxuICAgIGNvbnN0IF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUUgPSBjdXJyZW50U3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IGN1cnJlbnRTdGF0ZS5fX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFO1xuICAgIGlmIChfX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFKSB7XG4gICAgICAgIGRhdGEuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSA9IF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xufVxuZnVuY3Rpb24gSGVhZChwYXJhbSkge1xuICAgIGxldCB7IGhlYWRDYWNoZU5vZGUgfSA9IHBhcmFtO1xuICAgIC8vIElmIHRoaXMgc2VnbWVudCBoYXMgYSBgcHJlZmV0Y2hIZWFkYCwgaXQncyB0aGUgc3RhdGljYWxseSBwcmVmZXRjaGVkIGRhdGEuXG4gICAgLy8gV2Ugc2hvdWxkIHVzZSB0aGF0IG9uIGluaXRpYWwgcmVuZGVyIGluc3RlYWQgb2YgYGhlYWRgLiBUaGVuIHdlJ2xsIHN3aXRjaFxuICAgIC8vIHRvIGBoZWFkYCB3aGVuIHRoZSBkeW5hbWljIHJlc3BvbnNlIHN0cmVhbXMgaW4uXG4gICAgY29uc3QgaGVhZCA9IGhlYWRDYWNoZU5vZGUgIT09IG51bGwgPyBoZWFkQ2FjaGVOb2RlLmhlYWQgOiBudWxsO1xuICAgIGNvbnN0IHByZWZldGNoSGVhZCA9IGhlYWRDYWNoZU5vZGUgIT09IG51bGwgPyBoZWFkQ2FjaGVOb2RlLnByZWZldGNoSGVhZCA6IG51bGw7XG4gICAgLy8gSWYgbm8gcHJlZmV0Y2ggZGF0YSBpcyBhdmFpbGFibGUsIHRoZW4gd2UgZ28gc3RyYWlnaHQgdG8gcmVuZGVyaW5nIGBoZWFkYC5cbiAgICBjb25zdCByZXNvbHZlZFByZWZldGNoUnNjID0gcHJlZmV0Y2hIZWFkICE9PSBudWxsID8gcHJlZmV0Y2hIZWFkIDogaGVhZDtcbiAgICAvLyBXZSB1c2UgYHVzZURlZmVycmVkVmFsdWVgIHRvIGhhbmRsZSBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgcHJlZmV0Y2hlZCBhbmRcbiAgICAvLyBmaW5hbCB2YWx1ZXMuIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgcmV0dXJuZWQgb24gaW5pdGlhbCByZW5kZXIsIHRoZW4gaXRcbiAgICAvLyByZS1yZW5kZXJzIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50LlxuICAgIC8vXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGB1c2VEZWZlcnJlZFZhbHVlYCBpcyBvbmx5XG4gICAgLy8gYXZhaWxhYmxlIGluIHRoZSBleHBlcmltZW50YWwgYnVpbGRzLiBXaGVuIGl0cyBkaXNhYmxlZCwgaXQgd2lsbCBhbHdheXNcbiAgICAvLyByZXR1cm4gYGhlYWRgLlxuICAgIHJldHVybiAoMCwgX3JlYWN0LnVzZURlZmVycmVkVmFsdWUpKGhlYWQsIHJlc29sdmVkUHJlZmV0Y2hSc2MpO1xufVxuLyoqXG4gKiBUaGUgZ2xvYmFsIHJvdXRlciB0aGF0IHdyYXBzIHRoZSBhcHBsaWNhdGlvbiBjb21wb25lbnRzLlxuICovIGZ1bmN0aW9uIFJvdXRlcihwYXJhbSkge1xuICAgIGxldCB7IGJ1aWxkSWQsIGluaXRpYWxIZWFkLCBpbml0aWFsVHJlZSwgaW5pdGlhbENhbm9uaWNhbFVybCwgaW5pdGlhbFNlZWREYXRhLCBhc3NldFByZWZpeCwgbWlzc2luZ1Nsb3RzIH0gPSBwYXJhbTtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSAoMCwgX3JlYWN0LnVzZU1lbW8pKCgpPT4oMCwgX2NyZWF0ZWluaXRpYWxyb3V0ZXJzdGF0ZS5jcmVhdGVJbml0aWFsUm91dGVyU3RhdGUpKHtcbiAgICAgICAgICAgIGJ1aWxkSWQsXG4gICAgICAgICAgICBpbml0aWFsU2VlZERhdGEsXG4gICAgICAgICAgICBpbml0aWFsQ2Fub25pY2FsVXJsLFxuICAgICAgICAgICAgaW5pdGlhbFRyZWUsXG4gICAgICAgICAgICBpbml0aWFsUGFyYWxsZWxSb3V0ZXMsXG4gICAgICAgICAgICBpc1NlcnZlcixcbiAgICAgICAgICAgIGxvY2F0aW9uOiAhaXNTZXJ2ZXIgPyB3aW5kb3cubG9jYXRpb24gOiBudWxsLFxuICAgICAgICAgICAgaW5pdGlhbEhlYWRcbiAgICAgICAgfSksIFtcbiAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgaW5pdGlhbFNlZWREYXRhLFxuICAgICAgICBpbml0aWFsQ2Fub25pY2FsVXJsLFxuICAgICAgICBpbml0aWFsVHJlZSxcbiAgICAgICAgaW5pdGlhbEhlYWRcbiAgICBdKTtcbiAgICBjb25zdCBbcmVkdWNlclN0YXRlLCBkaXNwYXRjaCwgc3luY10gPSAoMCwgX3VzZXJlZHVjZXJ3aXRoZGV2dG9vbHMudXNlUmVkdWNlcldpdGhSZWR1eERldnRvb2xzKShpbml0aWFsU3RhdGUpO1xuICAgICgwLCBfcmVhY3QudXNlRWZmZWN0KSgoKT0+e1xuICAgICAgICAvLyBFbnN1cmUgaW5pdGlhbFBhcmFsbGVsUm91dGVzIGlzIGNsZWFuZWQgdXAgZnJvbSBtZW1vcnkgb25jZSBpdCdzIHVzZWQuXG4gICAgICAgIGluaXRpYWxQYXJhbGxlbFJvdXRlcyA9IG51bGw7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IHsgY2Fub25pY2FsVXJsIH0gPSAoMCwgX3VzZXJlZHVjZXJ3aXRoZGV2dG9vbHMudXNlVW53cmFwU3RhdGUpKHJlZHVjZXJTdGF0ZSk7XG4gICAgLy8gQWRkIG1lbW9pemVkIHBhdGhuYW1lL3F1ZXJ5IGZvciB1c2VTZWFyY2hQYXJhbXMgYW5kIHVzZVBhdGhuYW1lLlxuICAgIGNvbnN0IHsgc2VhcmNoUGFyYW1zLCBwYXRobmFtZSB9ID0gKDAsIF9yZWFjdC51c2VNZW1vKSgoKT0+e1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGNhbm9uaWNhbFVybCwgdHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiA/IFwiaHR0cDovL25cIiA6IHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgdHVybmVkIGludG8gYSByZWFkb25seSBjbGFzcyBpbiBgdXNlU2VhcmNoUGFyYW1zYFxuICAgICAgICAgICAgc2VhcmNoUGFyYW1zOiB1cmwuc2VhcmNoUGFyYW1zLFxuICAgICAgICAgICAgcGF0aG5hbWU6ICgwLCBfaGFzYmFzZXBhdGguaGFzQmFzZVBhdGgpKHVybC5wYXRobmFtZSkgPyAoMCwgX3JlbW92ZWJhc2VwYXRoLnJlbW92ZUJhc2VQYXRoKSh1cmwucGF0aG5hbWUpIDogdXJsLnBhdGhuYW1lXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBjYW5vbmljYWxVcmxcbiAgICBdKTtcbiAgICBjb25zdCBjaGFuZ2VCeVNlcnZlclJlc3BvbnNlID0gdXNlQ2hhbmdlQnlTZXJ2ZXJSZXNwb25zZShkaXNwYXRjaCk7XG4gICAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZShkaXNwYXRjaCk7XG4gICAgdXNlU2VydmVyQWN0aW9uRGlzcGF0Y2hlcihkaXNwYXRjaCk7XG4gICAgLyoqXG4gICAqIFRoZSBhcHAgcm91dGVyIHRoYXQgaXMgZXhwb3NlZCB0aHJvdWdoIGB1c2VSb3V0ZXJgLiBJdCdzIG9ubHkgY29uY2VybmVkIHdpdGggZGlzcGF0Y2hpbmcgYWN0aW9ucyB0byB0aGUgcmVkdWNlciwgZG9lcyBub3QgaG9sZCBzdGF0ZS5cbiAgICovIGNvbnN0IGFwcFJvdXRlciA9ICgwLCBfcmVhY3QudXNlTWVtbykoKCk9PntcbiAgICAgICAgY29uc3Qgcm91dGVySW5zdGFuY2UgPSB7XG4gICAgICAgICAgICBiYWNrOiAoKT0+d2luZG93Lmhpc3RvcnkuYmFjaygpLFxuICAgICAgICAgICAgZm9yd2FyZDogKCk9PndpbmRvdy5oaXN0b3J5LmZvcndhcmQoKSxcbiAgICAgICAgICAgIHByZWZldGNoOiAoaHJlZiwgb3B0aW9ucyk9PntcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBwcmVmZXRjaCBmb3IgYm90cyBhcyB0aGV5IGRvbid0IG5hdmlnYXRlLlxuICAgICAgICAgICAgICAgIC8vIERvbid0IHByZWZldGNoIGR1cmluZyBkZXZlbG9wbWVudCAoaW1wcm92ZXMgY29tcGlsYXRpb24gcGVyZm9ybWFuY2UpXG4gICAgICAgICAgICAgICAgaWYgKCgwLCBfaXNib3QuaXNCb3QpKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCgoMCwgX2FkZGJhc2VwYXRoLmFkZEJhc2VQYXRoKShocmVmKSwgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgICAgICAgIC8vIEV4dGVybmFsIHVybHMgY2FuJ3QgYmUgcHJlZmV0Y2hlZCBpbiB0aGUgc2FtZSB3YXkuXG4gICAgICAgICAgICAgICAgaWYgKGlzRXh0ZXJuYWxVUkwodXJsKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICgwLCBfcmVhY3Quc3RhcnRUcmFuc2l0aW9uKSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICB2YXIgX29wdGlvbnNfa2luZDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogX3JvdXRlcnJlZHVjZXJ0eXBlcy5BQ1RJT05fUFJFRkVUQ0gsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAoX29wdGlvbnNfa2luZCA9IG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMua2luZCkgIT0gbnVsbCA/IF9vcHRpb25zX2tpbmQgOiBfcm91dGVycmVkdWNlcnR5cGVzLlByZWZldGNoS2luZC5GVUxMXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcGxhY2U6IChocmVmLCBvcHRpb25zKT0+e1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgICAgICAgICAoMCwgX3JlYWN0LnN0YXJ0VHJhbnNpdGlvbikoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9vcHRpb25zX3Njcm9sbDtcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGUoaHJlZiwgXCJyZXBsYWNlXCIsIChfb3B0aW9uc19zY3JvbGwgPSBvcHRpb25zLnNjcm9sbCkgIT0gbnVsbCA/IF9vcHRpb25zX3Njcm9sbCA6IHRydWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHB1c2g6IChocmVmLCBvcHRpb25zKT0+e1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgICAgICAgICAoMCwgX3JlYWN0LnN0YXJ0VHJhbnNpdGlvbikoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9vcHRpb25zX3Njcm9sbDtcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGUoaHJlZiwgXCJwdXNoXCIsIChfb3B0aW9uc19zY3JvbGwgPSBvcHRpb25zLnNjcm9sbCkgIT0gbnVsbCA/IF9vcHRpb25zX3Njcm9sbCA6IHRydWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2g6ICgpPT57XG4gICAgICAgICAgICAgICAgKDAsIF9yZWFjdC5zdGFydFRyYW5zaXRpb24pKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IF9yb3V0ZXJyZWR1Y2VydHlwZXMuQUNUSU9OX1JFRlJFU0gsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW46IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSB3ZSBkb24ndCB3YW50IHRvIGV4cG9zZSB0aGlzIG1ldGhvZCBhdCBhbGxcbiAgICAgICAgICAgIGZhc3RSZWZyZXNoOiAoKT0+e1xuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImZhc3RSZWZyZXNoIGNhbiBvbmx5IGJlIHVzZWQgaW4gZGV2ZWxvcG1lbnQgbW9kZS4gUGxlYXNlIHVzZSByZWZyZXNoIGluc3RlYWQuXCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfcmVhY3Quc3RhcnRUcmFuc2l0aW9uKSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IF9yb3V0ZXJyZWR1Y2VydHlwZXMuQUNUSU9OX0ZBU1RfUkVGUkVTSCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW46IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByb3V0ZXJJbnN0YW5jZTtcbiAgICB9LCBbXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBuYXZpZ2F0ZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QudXNlRWZmZWN0KSgoKT0+e1xuICAgICAgICAvLyBFeGlzdHMgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gRG9uJ3QgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGUuXG4gICAgICAgIGlmICh3aW5kb3cubmV4dCkge1xuICAgICAgICAgICAgd2luZG93Lm5leHQucm91dGVyID0gYXBwUm91dGVyO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhcHBSb3V0ZXJcbiAgICBdKTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBjb25zdCB7IGNhY2hlLCBwcmVmZXRjaENhY2hlLCB0cmVlIH0gPSAoMCwgX3VzZXJlZHVjZXJ3aXRoZGV2dG9vbHMudXNlVW53cmFwU3RhdGUpKHJlZHVjZXJTdGF0ZSk7XG4gICAgICAgIC8vIFRoaXMgaG9vayBpcyBpbiBhIGNvbmRpdGlvbmFsIGJ1dCB0aGF0IGlzIG9rIGJlY2F1c2UgYHByb2Nlc3MuZW52Lk5PREVfRU5WYCBuZXZlciBjaGFuZ2VzXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgICAgIC8vIEFkZCBgd2luZG93Lm5kYCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuICAgICAgICAgICAgLy8gVGhpcyBpcyBub3QgbWVhbnQgZm9yIHVzZSBpbiBhcHBsaWNhdGlvbnMgYXMgY29uY3VycmVudCByZW5kZXJpbmcgd2lsbCBhZmZlY3QgdGhlIGNhY2hlL3RyZWUvcm91dGVyLlxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSB0aGlzIGlzIGZvciBkZWJ1Z2dpbmdcbiAgICAgICAgICAgIHdpbmRvdy5uZCA9IHtcbiAgICAgICAgICAgICAgICByb3V0ZXI6IGFwcFJvdXRlcixcbiAgICAgICAgICAgICAgICBjYWNoZSxcbiAgICAgICAgICAgICAgICBwcmVmZXRjaENhY2hlLFxuICAgICAgICAgICAgICAgIHRyZWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIFtcbiAgICAgICAgICAgIGFwcFJvdXRlcixcbiAgICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgICAgcHJlZmV0Y2hDYWNoZSxcbiAgICAgICAgICAgIHRyZWVcbiAgICAgICAgXSk7XG4gICAgfVxuICAgICgwLCBfcmVhY3QudXNlRWZmZWN0KSgoKT0+e1xuICAgICAgICAvLyBJZiB0aGUgYXBwIGlzIHJlc3RvcmVkIGZyb20gYmZjYWNoZSwgaXQncyBwb3NzaWJsZSB0aGF0XG4gICAgICAgIC8vIHB1c2hSZWYubXBhTmF2aWdhdGlvbiBpcyB0cnVlLCB3aGljaCB3b3VsZCBtZWFuIHRoYXQgYW55IHJlLXJlbmRlciBvZiB0aGlzIGNvbXBvbmVudFxuICAgICAgICAvLyB3b3VsZCB0cmlnZ2VyIHRoZSBtcGEgbmF2aWdhdGlvbiBsb2dpYyBhZ2FpbiBmcm9tIHRoZSBsaW5lcyBiZWxvdy5cbiAgICAgICAgLy8gVGhpcyB3aWxsIHJlc3RvcmUgdGhlIHJvdXRlciB0byB0aGUgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgZXZlbnQgdGhhdCB0aGUgYXBwIGlzIHJlc3RvcmVkIGZyb20gYmZjYWNoZS5cbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlUGFnZVNob3coZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciBfd2luZG93X2hpc3Rvcnlfc3RhdGU7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCB8fCAhKChfd2luZG93X2hpc3Rvcnlfc3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5zdGF0ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF93aW5kb3dfaGlzdG9yeV9zdGF0ZS5fX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBfcm91dGVycmVkdWNlcnR5cGVzLkFDVElPTl9SRVNUT1JFLFxuICAgICAgICAgICAgICAgIHVybDogbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZiksXG4gICAgICAgICAgICAgICAgdHJlZTogd2luZG93Lmhpc3Rvcnkuc3RhdGUuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwYWdlc2hvd1wiLCBoYW5kbGVQYWdlU2hvdyk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwYWdlc2hvd1wiLCBoYW5kbGVQYWdlU2hvdyk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBkaXNwYXRjaFxuICAgIF0pO1xuICAgIC8vIFdoZW4gbXBhTmF2aWdhdGlvbiBmbGFnIGlzIHNldCBkbyBhIGhhcmQgbmF2aWdhdGlvbiB0byB0aGUgbmV3IHVybC5cbiAgICAvLyBJbmZpbml0ZWx5IHN1c3BlbmQgYmVjYXVzZSB3ZSBkb24ndCBhY3R1YWxseSB3YW50IHRvIHJlcmVuZGVyIGFueSBjaGlsZFxuICAgIC8vIGNvbXBvbmVudHMgd2l0aCB0aGUgbmV3IFVSTCBhbmQgYW55IGVudGFuZ2xlZCBzdGF0ZSB1cGRhdGVzIHNob3VsZG4ndFxuICAgIC8vIGNvbW1pdCBlaXRoZXIgKGVnOiB1c2VUcmFuc2l0aW9uIGlzUGVuZGluZyBzaG91bGQgc3RheSB0cnVlIHVudGlsIHRoZSBwYWdlXG4gICAgLy8gdW5sb2FkcykuXG4gICAgLy9cbiAgICAvLyBUaGlzIGlzIGEgc2lkZSBlZmZlY3QgaW4gcmVuZGVyLiBEb24ndCB0cnkgdGhpcyBhdCBob21lLCBraWRzLiBJdCdzXG4gICAgLy8gcHJvYmFibHkgc2FmZSBiZWNhdXNlIHdlIGtub3cgdGhpcyBpcyBhIHNpbmdsZXRvbiBjb21wb25lbnQgYW5kIGl0J3MgbmV2ZXJcbiAgICAvLyBpbiA8T2Zmc2NyZWVuPi4gQXQgbGVhc3QgSSBob3BlIHNvLiAoSXQgd2lsbCBydW4gdHdpY2UgaW4gZGV2IHN0cmljdCBtb2RlLFxuICAgIC8vIGJ1dCB0aGF0J3MuLi4gZmluZT8pXG4gICAgY29uc3QgeyBwdXNoUmVmIH0gPSAoMCwgX3VzZXJlZHVjZXJ3aXRoZGV2dG9vbHMudXNlVW53cmFwU3RhdGUpKHJlZHVjZXJTdGF0ZSk7XG4gICAgaWYgKHB1c2hSZWYubXBhTmF2aWdhdGlvbikge1xuICAgICAgICAvLyBpZiB0aGVyZSdzIGEgcmUtcmVuZGVyLCB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYW5vdGhlciByZWRpcmVjdCBpZiBvbmUgaXMgYWxyZWFkeSBpbiBmbGlnaHQgdG8gdGhlIHNhbWUgVVJMXG4gICAgICAgIGlmIChnbG9iYWxNdXRhYmxlLnBlbmRpbmdNcGFQYXRoICE9PSBjYW5vbmljYWxVcmwpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uMSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICAgICAgICAgIGlmIChwdXNoUmVmLnBlbmRpbmdQdXNoKSB7XG4gICAgICAgICAgICAgICAgbG9jYXRpb24xLmFzc2lnbihjYW5vbmljYWxVcmwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjEucmVwbGFjZShjYW5vbmljYWxVcmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ2xvYmFsTXV0YWJsZS5wZW5kaW5nTXBhUGF0aCA9IGNhbm9uaWNhbFVybDtcbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPLUFQUDogU2hvdWxkIHdlIGxpc3RlbiB0byBuYXZpZ2F0ZWVycm9yIGhlcmUgdG8gY2F0Y2ggZmFpbGVkXG4gICAgICAgIC8vIG5hdmlnYXRpb25zIHNvbWVob3c/IEFuZCBzaG91bGQgd2UgY2FsbCB3aW5kb3cuc3RvcCgpIGlmIGEgU1BBIG5hdmlnYXRpb25cbiAgICAgICAgLy8gc2hvdWxkIGludGVycnVwdCBhbiBNUEEgb25lP1xuICAgICAgICAoMCwgX3JlYWN0LnVzZSkoKDAsIF9pbmZpbml0ZXByb21pc2UuY3JlYXRlSW5maW5pdGVQcm9taXNlKSgpKTtcbiAgICB9XG4gICAgKDAsIF9yZWFjdC51c2VFZmZlY3QpKCgpPT57XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsUHVzaFN0YXRlID0gd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlLmJpbmQod2luZG93Lmhpc3RvcnkpO1xuICAgICAgICBjb25zdCBvcmlnaW5hbFJlcGxhY2VTdGF0ZSA9IHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZS5iaW5kKHdpbmRvdy5oaXN0b3J5KTtcbiAgICAgICAgLy8gRW5zdXJlIHRoZSBjYW5vbmljYWwgVVJMIGluIHRoZSBOZXh0LmpzIFJvdXRlciBpcyB1cGRhdGVkIHdoZW4gdGhlIFVSTCBpcyBjaGFuZ2VkIHNvIHRoYXQgYHVzZVBhdGhuYW1lYCBhbmQgYHVzZVNlYXJjaFBhcmFtc2AgaG9sZCB0aGUgcHVzaGVkIHZhbHVlcy5cbiAgICAgICAgY29uc3QgYXBwbHlVcmxGcm9tSGlzdG9yeVB1c2hSZXBsYWNlID0gKHVybCk9PntcbiAgICAgICAgICAgIGNvbnN0IGhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgICAgICAgICgwLCBfcmVhY3Quc3RhcnRUcmFuc2l0aW9uKSgoKT0+e1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogX3JvdXRlcnJlZHVjZXJ0eXBlcy5BQ1RJT05fUkVTVE9SRSxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBuZXcgVVJMKHVybCAhPSBudWxsID8gdXJsIDogaHJlZiwgaHJlZiksXG4gICAgICAgICAgICAgICAgICAgIHRyZWU6IHdpbmRvdy5oaXN0b3J5LnN0YXRlLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgKiBQYXRjaCBwdXNoU3RhdGUgdG8gZW5zdXJlIGV4dGVybmFsIGNoYW5nZXMgdG8gdGhlIGhpc3RvcnkgYXJlIHJlZmxlY3RlZCBpbiB0aGUgTmV4dC5qcyBSb3V0ZXIuXG4gICAgICogRW5zdXJlcyBOZXh0LmpzIGludGVybmFsIGhpc3Rvcnkgc3RhdGUgaXMgY29waWVkIHRvIHRoZSBuZXcgaGlzdG9yeSBlbnRyeS5cbiAgICAgKiBFbnN1cmVzIHVzZVBhdGhuYW1lIGFuZCB1c2VTZWFyY2hQYXJhbXMgaG9sZCB0aGUgbmV3bHkgcHJvdmlkZWQgdXJsLlxuICAgICAqLyB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUgPSBmdW5jdGlvbiBwdXNoU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKSB7XG4gICAgICAgICAgICAvLyBBdm9pZCBhIGxvb3Agd2hlbiBOZXh0LmpzIGludGVybmFscyB0cmlnZ2VyIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGVcbiAgICAgICAgICAgIGlmICgoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogZGF0YS5fX05BKSB8fCAoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogZGF0YS5fTikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxQdXNoU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEgPSBjb3B5TmV4dEpzSW50ZXJuYWxIaXN0b3J5U3RhdGUoZGF0YSk7XG4gICAgICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgICAgICAgYXBwbHlVcmxGcm9tSGlzdG9yeVB1c2hSZXBsYWNlKHVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxQdXNoU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICogUGF0Y2ggcmVwbGFjZVN0YXRlIHRvIGVuc3VyZSBleHRlcm5hbCBjaGFuZ2VzIHRvIHRoZSBoaXN0b3J5IGFyZSByZWZsZWN0ZWQgaW4gdGhlIE5leHQuanMgUm91dGVyLlxuICAgICAqIEVuc3VyZXMgTmV4dC5qcyBpbnRlcm5hbCBoaXN0b3J5IHN0YXRlIGlzIGNvcGllZCB0byB0aGUgbmV3IGhpc3RvcnkgZW50cnkuXG4gICAgICogRW5zdXJlcyB1c2VQYXRobmFtZSBhbmQgdXNlU2VhcmNoUGFyYW1zIGhvbGQgdGhlIG5ld2x5IHByb3ZpZGVkIHVybC5cbiAgICAgKi8gd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlID0gZnVuY3Rpb24gcmVwbGFjZVN0YXRlKGRhdGEsIF91bnVzZWQsIHVybCkge1xuICAgICAgICAgICAgLy8gQXZvaWQgYSBsb29wIHdoZW4gTmV4dC5qcyBpbnRlcm5hbHMgdHJpZ2dlciBwdXNoU3RhdGUvcmVwbGFjZVN0YXRlXG4gICAgICAgICAgICBpZiAoKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGRhdGEuX19OQSkgfHwgKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGRhdGEuX04pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVwbGFjZVN0YXRlKGRhdGEsIF91bnVzZWQsIHVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhID0gY29weU5leHRKc0ludGVybmFsSGlzdG9yeVN0YXRlKGRhdGEpO1xuICAgICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAgICAgIGFwcGx5VXJsRnJvbUhpc3RvcnlQdXNoUmVwbGFjZSh1cmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVwbGFjZVN0YXRlKGRhdGEsIF91bnVzZWQsIHVybCk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAqIEhhbmRsZSBwb3BzdGF0ZSBldmVudCwgdGhpcyBpcyB1c2VkIHRvIGhhbmRsZSBiYWNrL2ZvcndhcmQgaW4gdGhlIGJyb3dzZXIuXG4gICAgICogQnkgZGVmYXVsdCBkaXNwYXRjaGVzIEFDVElPTl9SRVNUT1JFLCBob3dldmVyIGlmIHRoZSBoaXN0b3J5IGVudHJ5IHdhcyBub3QgcHVzaGVkL3JlcGxhY2VkIGJ5IGFwcC1yb3V0ZXIgaXQgd2lsbCByZWxvYWQgdGhlIHBhZ2UuXG4gICAgICogVGhhdCBjYXNlIGNhbiBoYXBwZW4gd2hlbiB0aGUgb2xkIHJvdXRlciBpbmplY3RlZCB0aGUgaGlzdG9yeSBlbnRyeS5cbiAgICAgKi8gY29uc3Qgb25Qb3BTdGF0ZSA9IChwYXJhbSk9PntcbiAgICAgICAgICAgIGxldCB7IHN0YXRlIH0gPSBwYXJhbTtcbiAgICAgICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPLUFQUDogdGhpcyBjYXNlIG9ubHkgaGFwcGVucyB3aGVuIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUgd2FzIGNhbGxlZCBvdXRzaWRlIG9mIE5leHQuanMuIEl0IHNob3VsZCBwcm9iYWJseSByZWxvYWQgdGhlIHBhZ2UgaW4gdGhpcyBjYXNlLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoaXMgY2FzZSBoYXBwZW5zIHdoZW4gdGhlIGhpc3RvcnkgZW50cnkgd2FzIHB1c2hlZCBieSB0aGUgYHBhZ2VzYCByb3V0ZXIuXG4gICAgICAgICAgICBpZiAoIXN0YXRlLl9fTkEpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSB1c2VUcmFuc2l0aW9uIGV4aXN0c1xuICAgICAgICAgICAgLy8gVE9ETy1BUFA6IElkZWFsbHkgdGhlIGJhY2sgYnV0dG9uIHNob3VsZCBub3QgdXNlIHN0YXJ0VHJhbnNpdGlvbiBhcyBpdCBzaG91bGQgYXBwbHkgdGhlIHVwZGF0ZXMgc3luY2hyb25vdXNseVxuICAgICAgICAgICAgLy8gV2l0aG91dCBzdGFydFRyYW5zaXRpb24gd29ya3MgaWYgdGhlIGNhY2hlIGlzIHRoZXJlIGZvciB0aGlzIHBhdGhcbiAgICAgICAgICAgICgwLCBfcmVhY3Quc3RhcnRUcmFuc2l0aW9uKSgoKT0+e1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogX3JvdXRlcnJlZHVjZXJ0eXBlcy5BQ1RJT05fUkVTVE9SRSxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxcbiAgICAgICAgICAgICAgICAgICAgdHJlZTogc3RhdGUuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFJlZ2lzdGVyIHBvcHN0YXRlIGV2ZW50IHRvIGNhbGwgb25Qb3BzdGF0ZS5cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb3BzdGF0ZVwiLCBvblBvcFN0YXRlKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUgPSBvcmlnaW5hbFB1c2hTdGF0ZTtcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSA9IG9yaWdpbmFsUmVwbGFjZVN0YXRlO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb3BzdGF0ZVwiLCBvblBvcFN0YXRlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGRpc3BhdGNoXG4gICAgXSk7XG4gICAgY29uc3QgeyBjYWNoZSwgdHJlZSwgbmV4dFVybCwgZm9jdXNBbmRTY3JvbGxSZWYgfSA9ICgwLCBfdXNlcmVkdWNlcndpdGhkZXZ0b29scy51c2VVbndyYXBTdGF0ZSkocmVkdWNlclN0YXRlKTtcbiAgICBjb25zdCBtYXRjaGluZ0hlYWQgPSAoMCwgX3JlYWN0LnVzZU1lbW8pKCgpPT57XG4gICAgICAgIHJldHVybiAoMCwgX2ZpbmRoZWFkaW5jYWNoZS5maW5kSGVhZEluQ2FjaGUpKGNhY2hlLCB0cmVlWzFdKTtcbiAgICB9LCBbXG4gICAgICAgIGNhY2hlLFxuICAgICAgICB0cmVlXG4gICAgXSk7XG4gICAgbGV0IGhlYWQ7XG4gICAgaWYgKG1hdGNoaW5nSGVhZCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBUaGUgaGVhZCBpcyB3cmFwcGVkIGluIGFuIGV4dHJhIGNvbXBvbmVudCBzbyB3ZSBjYW4gdXNlXG4gICAgICAgIC8vIGB1c2VEZWZlcnJlZFZhbHVlYCB0byBzd2FwIGJldHdlZW4gdGhlIHByZWZldGNoZWQgYW5kIGZpbmFsIHZlcnNpb25zIG9mXG4gICAgICAgIC8vIHRoZSBoZWFkLiAoVGhpcyBpcyB3aGF0IExheW91dFJvdXRlciBkb2VzIGZvciBzZWdtZW50IGRhdGEsIHRvby4pXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoZSBga2V5YCBpcyB1c2VkIHRvIHJlbW91bnQgdGhlIGNvbXBvbmVudCB3aGVuZXZlciB0aGUgaGVhZCBtb3ZlcyB0b1xuICAgICAgICAvLyBhIGRpZmZlcmVudCBzZWdtZW50LlxuICAgICAgICBjb25zdCBbaGVhZENhY2hlTm9kZSwgaGVhZEtleV0gPSBtYXRjaGluZ0hlYWQ7XG4gICAgICAgIGhlYWQgPSAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKEhlYWQsIHtcbiAgICAgICAgICAgIGhlYWRDYWNoZU5vZGU6IGhlYWRDYWNoZU5vZGVcbiAgICAgICAgfSwgaGVhZEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaGVhZCA9IG51bGw7XG4gICAgfVxuICAgIGxldCBjb250ZW50ID0gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4cykoX3JlZGlyZWN0Ym91bmRhcnkuUmVkaXJlY3RCb3VuZGFyeSwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgaGVhZCxcbiAgICAgICAgICAgIGNhY2hlLnJzYyxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2FwcHJvdXRlcmFubm91bmNlci5BcHBSb3V0ZXJBbm5vdW5jZXIsIHtcbiAgICAgICAgICAgICAgICB0cmVlOiB0cmVlXG4gICAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgfSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgY29uc3QgRGV2Um9vdE5vdEZvdW5kQm91bmRhcnkgPSByZXF1aXJlKFwiLi9kZXYtcm9vdC1ub3QtZm91bmQtYm91bmRhcnlcIikuRGV2Um9vdE5vdEZvdW5kQm91bmRhcnk7XG4gICAgICAgICAgICBjb250ZW50ID0gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShEZXZSb290Tm90Rm91bmRCb3VuZGFyeSwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZS5NaXNzaW5nU2xvdENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG1pc3NpbmdTbG90cyxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGNvbnRlbnRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgSG90UmVsb2FkZXIgPSByZXF1aXJlKFwiLi9yZWFjdC1kZXYtb3ZlcmxheS9ob3QtcmVsb2FkZXItY2xpZW50XCIpLmRlZmF1bHQ7XG4gICAgICAgIGNvbnRlbnQgPSAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKEhvdFJlbG9hZGVyLCB7XG4gICAgICAgICAgICBhc3NldFByZWZpeDogYXNzZXRQcmVmaXgsXG4gICAgICAgICAgICBjaGlsZHJlbjogY29udGVudFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKEhpc3RvcnlVcGRhdGVyLCB7XG4gICAgICAgICAgICAgICAgYXBwUm91dGVyU3RhdGU6ICgwLCBfdXNlcmVkdWNlcndpdGhkZXZ0b29scy51c2VVbndyYXBTdGF0ZSkocmVkdWNlclN0YXRlKSxcbiAgICAgICAgICAgICAgICBzeW5jOiBzeW5jXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2hvb2tzY2xpZW50Y29udGV4dHNoYXJlZHJ1bnRpbWUuUGF0aG5hbWVDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHBhdGhuYW1lLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9ob29rc2NsaWVudGNvbnRleHRzaGFyZWRydW50aW1lLlNlYXJjaFBhcmFtc0NvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlYXJjaFBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2FwcHJvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lLkdsb2JhbExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VCeVNlcnZlclJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNBbmRTY3JvbGxSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFVybFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZS5BcHBSb3V0ZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFwcFJvdXRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfYXBwcm91dGVyY29udGV4dHNoYXJlZHJ1bnRpbWUuTGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGROb2RlczogY2FjaGUucGFyYWxsZWxSb3V0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUm9vdCBub2RlIGFsd2F5cyBoYXMgYHVybGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByb3ZpZGVkIGluIEFwcFRyZWVDb250ZXh0IHRvIGVuc3VyZSBpdCBjYW4gYmUgb3ZlcndyaXR0ZW4gaW4gbGF5b3V0LXJvdXRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBjYW5vbmljYWxVcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgIH0pO1xufVxuZnVuY3Rpb24gQXBwUm91dGVyKHByb3BzKSB7XG4gICAgY29uc3QgeyBnbG9iYWxFcnJvckNvbXBvbmVudCwgLi4ucmVzdCB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2Vycm9yYm91bmRhcnkuRXJyb3JCb3VuZGFyeSwge1xuICAgICAgICBlcnJvckNvbXBvbmVudDogZ2xvYmFsRXJyb3JDb21wb25lbnQsXG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFJvdXRlciwge1xuICAgICAgICAgICAgLi4ucmVzdFxuICAgICAgICB9KVxuICAgIH0pO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm1vZHVsZSIsImdldFNlcnZlckFjdGlvbkRpc3BhdGNoZXIiLCJ1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIiLCJjcmVhdGVFbXB0eUNhY2hlTm9kZSIsImRlZmF1bHQiLCJfZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImVudW1lcmFibGUiLCJnZXQiLCJBcHBSb3V0ZXIiLCJfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIiwicmVxdWlyZSIsIl9qc3hydW50aW1lIiwiX3JlYWN0IiwiXyIsIl9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZSIsIl9yb3V0ZXJyZWR1Y2VydHlwZXMiLCJfY3JlYXRlaHJlZmZyb211cmwiLCJfaG9va3NjbGllbnRjb250ZXh0c2hhcmVkcnVudGltZSIsIl91c2VyZWR1Y2Vyd2l0aGRldnRvb2xzIiwiX2Vycm9yYm91bmRhcnkiLCJfY3JlYXRlaW5pdGlhbHJvdXRlcnN0YXRlIiwiX2lzYm90IiwiX2FkZGJhc2VwYXRoIiwiX2FwcHJvdXRlcmFubm91bmNlciIsIl9yZWRpcmVjdGJvdW5kYXJ5IiwiX2ZpbmRoZWFkaW5jYWNoZSIsIl9pbmZpbml0ZXByb21pc2UiLCJfYXBwcm91dGVyaGVhZGVycyIsIl9yZW1vdmViYXNlcGF0aCIsIl9oYXNiYXNlcGF0aCIsImlzU2VydmVyIiwiaW5pdGlhbFBhcmFsbGVsUm91dGVzIiwiTWFwIiwiZ2xvYmFsU2VydmVyQWN0aW9uRGlzcGF0Y2hlciIsImdsb2JhbE11dGFibGUiLCJ1cmwiLCJ1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycyIsIlVSTCIsImxvY2F0aW9uIiwib3JpZ2luIiwic2VhcmNoUGFyYW1zIiwiZGVsZXRlIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0NPTkZJR19PVVRQVVQiLCJwYXRobmFtZSIsImVuZHNXaXRoIiwibGVuZ3RoIiwic2xpY2UiLCJpc0V4dGVybmFsVVJMIiwid2luZG93IiwiSGlzdG9yeVVwZGF0ZXIiLCJwYXJhbSIsImFwcFJvdXRlclN0YXRlIiwic3luYyIsInVzZUluc2VydGlvbkVmZmVjdCIsInRyZWUiLCJwdXNoUmVmIiwiY2Fub25pY2FsVXJsIiwiaGlzdG9yeVN0YXRlIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJoaXN0b3J5Iiwic3RhdGUiLCJfX05BIiwiX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSIsInBlbmRpbmdQdXNoIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJocmVmIiwicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIiwibGF6eURhdGEiLCJyc2MiLCJwcmVmZXRjaFJzYyIsInBhcmFsbGVsUm91dGVzIiwidXNlU2VydmVyQWN0aW9uRGlzcGF0Y2hlciIsImRpc3BhdGNoIiwic2VydmVyQWN0aW9uRGlzcGF0Y2hlciIsInVzZUNhbGxiYWNrIiwiYWN0aW9uUGF5bG9hZCIsInN0YXJ0VHJhbnNpdGlvbiIsInR5cGUiLCJBQ1RJT05fU0VSVkVSX0FDVElPTiIsInVzZUNoYW5nZUJ5U2VydmVyUmVzcG9uc2UiLCJwcmV2aW91c1RyZWUiLCJmbGlnaHREYXRhIiwib3ZlcnJpZGVDYW5vbmljYWxVcmwiLCJBQ1RJT05fU0VSVkVSX1BBVENIIiwidXNlTmF2aWdhdGUiLCJuYXZpZ2F0ZVR5cGUiLCJzaG91bGRTY3JvbGwiLCJhZGRCYXNlUGF0aCIsIkFDVElPTl9OQVZJR0FURSIsImlzRXh0ZXJuYWxVcmwiLCJsb2NhdGlvblNlYXJjaCIsInNlYXJjaCIsImNvcHlOZXh0SnNJbnRlcm5hbEhpc3RvcnlTdGF0ZSIsImRhdGEiLCJjdXJyZW50U3RhdGUiLCJIZWFkIiwiaGVhZENhY2hlTm9kZSIsImhlYWQiLCJwcmVmZXRjaEhlYWQiLCJyZXNvbHZlZFByZWZldGNoUnNjIiwidXNlRGVmZXJyZWRWYWx1ZSIsIlJvdXRlciIsImJ1aWxkSWQiLCJpbml0aWFsSGVhZCIsImluaXRpYWxUcmVlIiwiaW5pdGlhbENhbm9uaWNhbFVybCIsImluaXRpYWxTZWVkRGF0YSIsImFzc2V0UHJlZml4IiwibWlzc2luZ1Nsb3RzIiwiaW5pdGlhbFN0YXRlIiwidXNlTWVtbyIsImNyZWF0ZUluaXRpYWxSb3V0ZXJTdGF0ZSIsInJlZHVjZXJTdGF0ZSIsInVzZVJlZHVjZXJXaXRoUmVkdXhEZXZ0b29scyIsInVzZUVmZmVjdCIsInVzZVVud3JhcFN0YXRlIiwiaGFzQmFzZVBhdGgiLCJyZW1vdmVCYXNlUGF0aCIsImNoYW5nZUJ5U2VydmVyUmVzcG9uc2UiLCJuYXZpZ2F0ZSIsImFwcFJvdXRlciIsInJvdXRlckluc3RhbmNlIiwiYmFjayIsImZvcndhcmQiLCJwcmVmZXRjaCIsIm9wdGlvbnMiLCJpc0JvdCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsIl9vcHRpb25zX2tpbmQiLCJBQ1RJT05fUFJFRkVUQ0giLCJraW5kIiwiUHJlZmV0Y2hLaW5kIiwiRlVMTCIsInJlcGxhY2UiLCJfb3B0aW9uc19zY3JvbGwiLCJzY3JvbGwiLCJwdXNoIiwicmVmcmVzaCIsIkFDVElPTl9SRUZSRVNIIiwiZmFzdFJlZnJlc2giLCJFcnJvciIsIkFDVElPTl9GQVNUX1JFRlJFU0giLCJuZXh0Iiwicm91dGVyIiwiY2FjaGUiLCJwcmVmZXRjaENhY2hlIiwibmQiLCJoYW5kbGVQYWdlU2hvdyIsImV2ZW50IiwiX3dpbmRvd19oaXN0b3J5X3N0YXRlIiwicGVyc2lzdGVkIiwiQUNUSU9OX1JFU1RPUkUiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1wYU5hdmlnYXRpb24iLCJwZW5kaW5nTXBhUGF0aCIsImxvY2F0aW9uMSIsImFzc2lnbiIsInVzZSIsImNyZWF0ZUluZmluaXRlUHJvbWlzZSIsIm9yaWdpbmFsUHVzaFN0YXRlIiwiYmluZCIsIm9yaWdpbmFsUmVwbGFjZVN0YXRlIiwiYXBwbHlVcmxGcm9tSGlzdG9yeVB1c2hSZXBsYWNlIiwiX3VudXNlZCIsIl9OIiwib25Qb3BTdGF0ZSIsInJlbG9hZCIsIm5leHRVcmwiLCJmb2N1c0FuZFNjcm9sbFJlZiIsIm1hdGNoaW5nSGVhZCIsImZpbmRIZWFkSW5DYWNoZSIsImhlYWRLZXkiLCJqc3giLCJjb250ZW50IiwianN4cyIsIlJlZGlyZWN0Qm91bmRhcnkiLCJjaGlsZHJlbiIsIkFwcFJvdXRlckFubm91bmNlciIsIkRldlJvb3ROb3RGb3VuZEJvdW5kYXJ5IiwiTWlzc2luZ1Nsb3RDb250ZXh0IiwiUHJvdmlkZXIiLCJIb3RSZWxvYWRlciIsIkZyYWdtZW50IiwiUGF0aG5hbWVDb250ZXh0IiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJBcHBSb3V0ZXJDb250ZXh0IiwiTGF5b3V0Um91dGVyQ29udGV4dCIsImNoaWxkTm9kZXMiLCJwcm9wcyIsImdsb2JhbEVycm9yQ29tcG9uZW50IiwicmVzdCIsIkVycm9yQm91bmRhcnkiLCJlcnJvckNvbXBvbmVudCIsIl9fZXNNb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/bailout-to-client-rendering.js ***! + \*********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"bailoutToClientRendering\", ({\n enumerable: true,\n get: function() {\n return bailoutToClientRendering;\n }\n}));\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _staticgenerationasyncstorageexternal = __webpack_require__(/*! ./static-generation-async-storage.external */ \"./static-generation-async-storage.external\");\nfunction bailoutToClientRendering(reason) {\n const staticGenerationStore = _staticgenerationasyncstorageexternal.staticGenerationAsyncStorage.getStore();\n if (staticGenerationStore == null ? void 0 : staticGenerationStore.forceStatic) return;\n if (staticGenerationStore == null ? void 0 : staticGenerationStore.isStaticGeneration) throw new _bailouttocsr.BailoutToCSRError(reason);\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=bailout-to-client-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsNERBQTJEO0lBQ3ZESSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsZ0JBQWdCQyxtQkFBT0EsQ0FBQyw4SEFBOEM7QUFDNUUsTUFBTUMsd0NBQXdDRCxtQkFBT0EsQ0FBQyw4RkFBNEM7QUFDbEcsU0FBU0YseUJBQXlCSSxNQUFNO0lBQ3BDLE1BQU1DLHdCQUF3QkYsc0NBQXNDRyw0QkFBNEIsQ0FBQ0MsUUFBUTtJQUN6RyxJQUFJRix5QkFBeUIsT0FBTyxLQUFLLElBQUlBLHNCQUFzQkcsV0FBVyxFQUFFO0lBQ2hGLElBQUlILHlCQUF5QixPQUFPLEtBQUssSUFBSUEsc0JBQXNCSSxrQkFBa0IsRUFBRSxNQUFNLElBQUlSLGNBQWNTLGlCQUFpQixDQUFDTjtBQUNySTtBQUVBLElBQUksQ0FBQyxPQUFPUixRQUFRZSxPQUFPLEtBQUssY0FBZSxPQUFPZixRQUFRZSxPQUFPLEtBQUssWUFBWWYsUUFBUWUsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPZixRQUFRZSxPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLbEIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRZSxPQUFPLEVBQUUsY0FBYztRQUFFZCxPQUFPO0lBQUs7SUFDbkVILE9BQU9tQixNQUFNLENBQUNqQixRQUFRZSxPQUFPLEVBQUVmO0lBQy9Ca0IsT0FBT2xCLE9BQU8sR0FBR0EsUUFBUWUsT0FBTztBQUNsQyxFQUVBLHVEQUF1RCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nLmpzP2IxNzciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmdcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJhaWxvdXRUb0NsaWVudFJlbmRlcmluZztcbiAgICB9XG59KTtcbmNvbnN0IF9iYWlsb3V0dG9jc3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3JcIik7XG5jb25zdCBfc3RhdGljZ2VuZXJhdGlvbmFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4vc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmZ1bmN0aW9uIGJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyhyZWFzb24pIHtcbiAgICBjb25zdCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUgPSBfc3RhdGljZ2VuZXJhdGlvbmFzeW5jc3RvcmFnZWV4dGVybmFsLnN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoc3RhdGljR2VuZXJhdGlvblN0b3JlID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZm9yY2VTdGF0aWMpIHJldHVybjtcbiAgICBpZiAoc3RhdGljR2VuZXJhdGlvblN0b3JlID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uKSB0aHJvdyBuZXcgX2JhaWxvdXR0b2Nzci5CYWlsb3V0VG9DU1JFcnJvcihyZWFzb24pO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYWlsb3V0LXRvLWNsaWVudC1yZW5kZXJpbmcuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsImJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyIsIl9iYWlsb3V0dG9jc3IiLCJyZXF1aXJlIiwiX3N0YXRpY2dlbmVyYXRpb25hc3luY3N0b3JhZ2VleHRlcm5hbCIsInJlYXNvbiIsInN0YXRpY0dlbmVyYXRpb25TdG9yZSIsInN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UiLCJnZXRTdG9yZSIsImZvcmNlU3RhdGljIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwiQmFpbG91dFRvQ1NSRXJyb3IiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/client-hook-in-server-component-error.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/client-hook-in-server-component-error.js ***! + \*******************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"clientHookInServerComponentError\", ({\n enumerable: true,\n get: function() {\n return clientHookInServerComponentError;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nfunction clientHookInServerComponentError(hookName) {\n if (true) {\n // If useState is undefined we're in a server component\n if (!_react.default.useState) {\n throw new Error(\"\" + hookName + ' only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component');\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=client-hook-in-server-component-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1ob29rLWluLXNlcnZlci1jb21wb25lbnQtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILG9FQUFtRTtJQUMvREksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLDJCQUEyQkMsbUJBQU9BLENBQUMsa0hBQXlDO0FBQ2xGLE1BQU1DLFNBQVMsV0FBVyxHQUFHRix5QkFBeUJHLENBQUMsQ0FBQ0YsbUJBQU9BLENBQUMsd0dBQU87QUFDdkUsU0FBU0YsaUNBQWlDSyxRQUFRO0lBQzlDLElBQUlDLElBQXFDLEVBQUU7UUFDdkMsdURBQXVEO1FBQ3ZELElBQUksQ0FBQ0gsT0FBT0ksT0FBTyxDQUFDQyxRQUFRLEVBQUU7WUFDMUIsTUFBTSxJQUFJQyxNQUFNLEtBQUtKLFdBQVc7UUFDcEM7SUFDSjtBQUNKO0FBRUEsSUFBSSxDQUFDLE9BQU9ULFFBQVFXLE9BQU8sS0FBSyxjQUFlLE9BQU9YLFFBQVFXLE9BQU8sS0FBSyxZQUFZWCxRQUFRVyxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9YLFFBQVFXLE9BQU8sQ0FBQ0csVUFBVSxLQUFLLGFBQWE7SUFDcktoQixPQUFPQyxjQUFjLENBQUNDLFFBQVFXLE9BQU8sRUFBRSxjQUFjO1FBQUVWLE9BQU87SUFBSztJQUNuRUgsT0FBT2lCLE1BQU0sQ0FBQ2YsUUFBUVcsT0FBTyxFQUFFWDtJQUMvQmdCLE9BQU9oQixPQUFPLEdBQUdBLFFBQVFXLE9BQU87QUFDbEMsRUFFQSxpRUFBaUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1ob29rLWluLXNlcnZlci1jb21wb25lbnQtZXJyb3IuanM/M2RhYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHRcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBjbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcihob29rTmFtZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgLy8gSWYgdXNlU3RhdGUgaXMgdW5kZWZpbmVkIHdlJ3JlIGluIGEgc2VydmVyIGNvbXBvbmVudFxuICAgICAgICBpZiAoIV9yZWFjdC5kZWZhdWx0LnVzZVN0YXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJcIiArIGhvb2tOYW1lICsgJyBvbmx5IHdvcmtzIGluIENsaWVudCBDb21wb25lbnRzLiBBZGQgdGhlIFwidXNlIGNsaWVudFwiIGRpcmVjdGl2ZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlIHRvIHVzZSBpdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9yZWFjdC1jbGllbnQtaG9vay1pbi1zZXJ2ZXItY29tcG9uZW50Jyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsaWVudC1ob29rLWluLXNlcnZlci1jb21wb25lbnQtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsImNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yIiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdCIsIl8iLCJob29rTmFtZSIsInByb2Nlc3MiLCJkZWZhdWx0IiwidXNlU3RhdGUiLCJFcnJvciIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/client-hook-in-server-component-error.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/error-boundary.js": +/*!********************************************************************!*\ + !*** ./node_modules/next/dist/client/components/error-boundary.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 ErrorBoundaryHandler: function() {\n return ErrorBoundaryHandler;\n },\n GlobalError: function() {\n return GlobalError;\n },\n // Exported so that the import signature in the loaders can be identical to user\n // supplied custom global error signatures.\n default: function() {\n return _default;\n },\n ErrorBoundary: function() {\n return ErrorBoundary;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigation = __webpack_require__(/*! ./navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _isnextroutererror = __webpack_require__(/*! ./is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\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 text: {\n fontSize: \"14px\",\n fontWeight: 400,\n lineHeight: \"28px\",\n margin: \"0 8px\"\n }\n};\n// if we are revalidating we want to re-throw the error so the\n// function crashes so we can maintain our previous cache\n// instead of caching the error page\nfunction HandleISRError(param) {\n let { error } = param;\n if (typeof fetch.__nextGetStaticStore === \"function\") {\n var _fetch___nextGetStaticStore;\n const store = (_fetch___nextGetStaticStore = fetch.__nextGetStaticStore()) == null ? void 0 : _fetch___nextGetStaticStore.getStore();\n if ((store == null ? void 0 : store.isRevalidate) || (store == null ? void 0 : store.isStaticGeneration)) {\n console.error(error);\n throw error;\n }\n }\n return null;\n}\nclass ErrorBoundaryHandler extends _react.default.Component {\n static getDerivedStateFromError(error) {\n if ((0, _isnextroutererror.isNextRouterError)(error)) {\n // Re-throw if an expected internal Next.js router error occurs\n // this means it should be handled by a different boundary (such as a NotFound boundary in a parent segment)\n throw error;\n }\n return {\n error\n };\n }\n static getDerivedStateFromProps(props, state) {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */ if (props.pathname !== state.previousPathname && state.error) {\n return {\n error: null,\n previousPathname: props.pathname\n };\n }\n return {\n error: state.error,\n previousPathname: props.pathname\n };\n }\n render() {\n if (this.state.error) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(HandleISRError, {\n error: this.state.error\n }),\n this.props.errorStyles,\n this.props.errorScripts,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(this.props.errorComponent, {\n error: this.state.error,\n reset: this.reset\n })\n ]\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.reset = ()=>{\n this.setState({\n error: null\n });\n };\n this.state = {\n error: null,\n previousPathname: this.props.pathname\n };\n }\n}\nfunction GlobalError(param) {\n let { error } = param;\n const digest = error == null ? void 0 : error.digest;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n id: \"__next_error__\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(HandleISRError, {\n error: error\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n style: styles.text,\n children: \"Application error: a \" + (digest ? \"server\" : \"client\") + \"-side exception has occurred (see the \" + (digest ? \"server logs\" : \"browser console\") + \" for more information).\"\n }),\n digest ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n style: styles.text,\n children: \"Digest: \" + digest\n }) : null\n ]\n })\n })\n ]\n })\n ]\n });\n}\nconst _default = GlobalError;\nfunction ErrorBoundary(param) {\n let { errorComponent, errorStyles, errorScripts, children } = param;\n const pathname = (0, _navigation.usePathname)();\n if (errorComponent) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorBoundaryHandler, {\n pathname: pathname,\n errorComponent: errorComponent,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\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=error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiJxREFFYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQUtOO0FBQ0EsU0FBU0ssUUFBUUMsTUFBTSxFQUFFQyxHQUFHO0lBQ3hCLElBQUksSUFBSUMsUUFBUUQsSUFBSVgsT0FBT0MsY0FBYyxDQUFDUyxRQUFRRSxNQUFNO1FBQ3BEQyxZQUFZO1FBQ1pDLEtBQUtILEdBQUcsQ0FBQ0MsS0FBSztJQUNsQjtBQUNKO0FBQ0FILFFBQVFQLFNBQVM7SUFDYkcsc0JBQXNCO1FBQ2xCLE9BQU9BO0lBQ1g7SUFDQUMsYUFBYTtRQUNULE9BQU9BO0lBQ1g7SUFDQSxnRkFBZ0Y7SUFDaEYsMkNBQTJDO0lBQzNDQyxTQUFTO1FBQ0wsT0FBT1E7SUFDWDtJQUNBUCxlQUFlO1FBQ1gsT0FBT0E7SUFDWDtBQUNKO0FBQ0EsTUFBTVEsMkJBQTJCQyxtQkFBT0EsQ0FBQyxrSEFBeUM7QUFDbEYsTUFBTUMsY0FBY0QsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1FLFNBQVMsV0FBVyxHQUFHSCx5QkFBeUJJLENBQUMsQ0FBQ0gsbUJBQU9BLENBQUMsd0dBQU87QUFDdkUsTUFBTUksY0FBY0osbUJBQU9BLENBQUMsb0ZBQWM7QUFDMUMsTUFBTUsscUJBQXFCTCxtQkFBT0EsQ0FBQyx3R0FBd0I7QUFDM0QsTUFBTU0sU0FBUztJQUNYQyxPQUFPO1FBQ0gsMEZBQTBGO1FBQzFGQyxZQUFZO1FBQ1pDLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGVBQWU7UUFDZkMsWUFBWTtRQUNaQyxnQkFBZ0I7SUFDcEI7SUFDQUMsTUFBTTtRQUNGQyxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsWUFBWTtRQUNaQyxRQUFRO0lBQ1o7QUFDSjtBQUNBLDhEQUE4RDtBQUM5RCx5REFBeUQ7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QUFRLEVBQUU7UUFDNURDLFVBQVVBO0lBQ2Q7QUFDSjtBQUVBLElBQUksQ0FBQyxPQUFPeEQsUUFBUUssT0FBTyxLQUFLLGNBQWUsT0FBT0wsUUFBUUssT0FBTyxLQUFLLFlBQVlMLFFBQVFLLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT0wsUUFBUUssT0FBTyxDQUFDK0QsVUFBVSxLQUFLLGFBQWE7SUFDckt0RSxPQUFPQyxjQUFjLENBQUNDLFFBQVFLLE9BQU8sRUFBRSxjQUFjO1FBQUVKLE9BQU87SUFBSztJQUNuRUgsT0FBT3VFLE1BQU0sQ0FBQ3JFLFFBQVFLLE9BQU8sRUFBRUw7SUFDL0JFLE9BQU9GLE9BQU8sR0FBR0EsUUFBUUssT0FBTztBQUNsQyxFQUVBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanM/NzY5NyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBFcnJvckJvdW5kYXJ5SGFuZGxlcjogbnVsbCxcbiAgICBHbG9iYWxFcnJvcjogbnVsbCxcbiAgICBkZWZhdWx0OiBudWxsLFxuICAgIEVycm9yQm91bmRhcnk6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgRXJyb3JCb3VuZGFyeUhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRXJyb3JCb3VuZGFyeUhhbmRsZXI7XG4gICAgfSxcbiAgICBHbG9iYWxFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHbG9iYWxFcnJvcjtcbiAgICB9LFxuICAgIC8vIEV4cG9ydGVkIHNvIHRoYXQgdGhlIGltcG9ydCBzaWduYXR1cmUgaW4gdGhlIGxvYWRlcnMgY2FuIGJlIGlkZW50aWNhbCB0byB1c2VyXG4gICAgLy8gc3VwcGxpZWQgY3VzdG9tIGdsb2JhbCBlcnJvciBzaWduYXR1cmVzLlxuICAgIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2RlZmF1bHQ7XG4gICAgfSxcbiAgICBFcnJvckJvdW5kYXJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEVycm9yQm91bmRhcnk7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfbmF2aWdhdGlvbiA9IHJlcXVpcmUoXCIuL25hdmlnYXRpb25cIik7XG5jb25zdCBfaXNuZXh0cm91dGVyZXJyb3IgPSByZXF1aXJlKFwiLi9pcy1uZXh0LXJvdXRlci1lcnJvclwiKTtcbmNvbnN0IHN0eWxlcyA9IHtcbiAgICBlcnJvcjoge1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvYmxvYi9tYWluL21vZGVybi1ub3JtYWxpemUuY3NzI0wzOC1MNTJcbiAgICAgICAgZm9udEZhbWlseTogJ3N5c3RlbS11aSxcIlNlZ29lIFVJXCIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCInLFxuICAgICAgICBoZWlnaHQ6IFwiMTAwdmhcIixcbiAgICAgICAgdGV4dEFsaWduOiBcImNlbnRlclwiLFxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCJcbiAgICB9LFxuICAgIHRleHQ6IHtcbiAgICAgICAgZm9udFNpemU6IFwiMTRweFwiLFxuICAgICAgICBmb250V2VpZ2h0OiA0MDAsXG4gICAgICAgIGxpbmVIZWlnaHQ6IFwiMjhweFwiLFxuICAgICAgICBtYXJnaW46IFwiMCA4cHhcIlxuICAgIH1cbn07XG4vLyBpZiB3ZSBhcmUgcmV2YWxpZGF0aW5nIHdlIHdhbnQgdG8gcmUtdGhyb3cgdGhlIGVycm9yIHNvIHRoZVxuLy8gZnVuY3Rpb24gY3Jhc2hlcyBzbyB3ZSBjYW4gbWFpbnRhaW4gb3VyIHByZXZpb3VzIGNhY2hlXG4vLyBpbnN0ZWFkIG9mIGNhY2hpbmcgdGhlIGVycm9yIHBhZ2VcbmZ1bmN0aW9uIEhhbmRsZUlTUkVycm9yKHBhcmFtKSB7XG4gICAgbGV0IHsgZXJyb3IgfSA9IHBhcmFtO1xuICAgIGlmICh0eXBlb2YgZmV0Y2guX19uZXh0R2V0U3RhdGljU3RvcmUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB2YXIgX2ZldGNoX19fbmV4dEdldFN0YXRpY1N0b3JlO1xuICAgICAgICBjb25zdCBzdG9yZSA9IChfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmUgPSBmZXRjaC5fX25leHRHZXRTdGF0aWNTdG9yZSgpKSA9PSBudWxsID8gdm9pZCAwIDogX2ZldGNoX19fbmV4dEdldFN0YXRpY1N0b3JlLmdldFN0b3JlKCk7XG4gICAgICAgIGlmICgoc3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IHN0b3JlLmlzUmV2YWxpZGF0ZSkgfHwgKHN0b3JlID09IG51bGwgPyB2b2lkIDAgOiBzdG9yZS5pc1N0YXRpY0dlbmVyYXRpb24pKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuY2xhc3MgRXJyb3JCb3VuZGFyeUhhbmRsZXIgZXh0ZW5kcyBfcmVhY3QuZGVmYXVsdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgaWYgKCgwLCBfaXNuZXh0cm91dGVyZXJyb3IuaXNOZXh0Um91dGVyRXJyb3IpKGVycm9yKSkge1xuICAgICAgICAgICAgLy8gUmUtdGhyb3cgaWYgYW4gZXhwZWN0ZWQgaW50ZXJuYWwgTmV4dC5qcyByb3V0ZXIgZXJyb3Igb2NjdXJzXG4gICAgICAgICAgICAvLyB0aGlzIG1lYW5zIGl0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IGEgZGlmZmVyZW50IGJvdW5kYXJ5IChzdWNoIGFzIGEgTm90Rm91bmQgYm91bmRhcnkgaW4gYSBwYXJlbnQgc2VnbWVudClcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlcnJvclxuICAgICAgICB9O1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKHByb3BzLCBzdGF0ZSkge1xuICAgICAgICAvKipcbiAgICAgKiBIYW5kbGVzIHJlc2V0IG9mIHRoZSBlcnJvciBib3VuZGFyeSB3aGVuIGEgbmF2aWdhdGlvbiBoYXBwZW5zLlxuICAgICAqIEVuc3VyZXMgdGhlIGVycm9yIGJvdW5kYXJ5IGRvZXMgbm90IHN0YXkgZW5hYmxlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS5cbiAgICAgKiBBcHByb2FjaCBvZiBzZXRTdGF0ZSBpbiByZW5kZXIgaXMgc2FmZSBhcyBpdCBjaGVja3MgdGhlIHByZXZpb3VzIHBhdGhuYW1lIGFuZCB0aGVuIG92ZXJyaWRlc1xuICAgICAqIGl0IGFzIG91dGxpbmVkIGluIGh0dHBzOi8vcmVhY3QuZGV2L3JlZmVyZW5jZS9yZWFjdC91c2VTdGF0ZSNzdG9yaW5nLWluZm9ybWF0aW9uLWZyb20tcHJldmlvdXMtcmVuZGVyc1xuICAgICAqLyBpZiAocHJvcHMucGF0aG5hbWUgIT09IHN0YXRlLnByZXZpb3VzUGF0aG5hbWUgJiYgc3RhdGUuZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yOiBzdGF0ZS5lcnJvcixcbiAgICAgICAgICAgIHByZXZpb3VzUGF0aG5hbWU6IHByb3BzLnBhdGhuYW1lXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShfanN4cnVudGltZS5GcmFnbWVudCwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoSGFuZGxlSVNSRXJyb3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiB0aGlzLnN0YXRlLmVycm9yXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmVycm9yU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmVycm9yU2NyaXB0cyxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KSh0aGlzLnByb3BzLmVycm9yQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogdGhpcy5zdGF0ZS5lcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0OiB0aGlzLnJlc2V0XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHByb3BzKXtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLnJlc2V0ID0gKCk9PntcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgcHJldmlvdXNQYXRobmFtZTogdGhpcy5wcm9wcy5wYXRobmFtZVxuICAgICAgICB9O1xuICAgIH1cbn1cbmZ1bmN0aW9uIEdsb2JhbEVycm9yKHBhcmFtKSB7XG4gICAgbGV0IHsgZXJyb3IgfSA9IHBhcmFtO1xuICAgIGNvbnN0IGRpZ2VzdCA9IGVycm9yID09IG51bGwgPyB2b2lkIDAgOiBlcnJvci5kaWdlc3Q7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwiaHRtbFwiLCB7XG4gICAgICAgIGlkOiBcIl9fbmV4dF9lcnJvcl9fXCIsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiaGVhZFwiLCB7fSksXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShcImJvZHlcIiwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoSGFuZGxlSVNSRXJyb3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGVzLmVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiaDJcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy50ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFwiQXBwbGljYXRpb24gZXJyb3I6IGEgXCIgKyAoZGlnZXN0ID8gXCJzZXJ2ZXJcIiA6IFwiY2xpZW50XCIpICsgXCItc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkIChzZWUgdGhlIFwiICsgKGRpZ2VzdCA/IFwic2VydmVyIGxvZ3NcIiA6IFwiYnJvd3NlciBjb25zb2xlXCIpICsgXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24pLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWdlc3QgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwicFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGVzLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogXCJEaWdlc3Q6IFwiICsgZGlnZXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgIH0pO1xufVxuY29uc3QgX2RlZmF1bHQgPSBHbG9iYWxFcnJvcjtcbmZ1bmN0aW9uIEVycm9yQm91bmRhcnkocGFyYW0pIHtcbiAgICBsZXQgeyBlcnJvckNvbXBvbmVudCwgZXJyb3JTdHlsZXMsIGVycm9yU2NyaXB0cywgY2hpbGRyZW4gfSA9IHBhcmFtO1xuICAgIGNvbnN0IHBhdGhuYW1lID0gKDAsIF9uYXZpZ2F0aW9uLnVzZVBhdGhuYW1lKSgpO1xuICAgIGlmIChlcnJvckNvbXBvbmVudCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShFcnJvckJvdW5kYXJ5SGFuZGxlciwge1xuICAgICAgICAgICAgcGF0aG5hbWU6IHBhdGhuYW1lLFxuICAgICAgICAgICAgZXJyb3JDb21wb25lbnQ6IGVycm9yQ29tcG9uZW50LFxuICAgICAgICAgICAgZXJyb3JTdHlsZXM6IGVycm9yU3R5bGVzLFxuICAgICAgICAgICAgZXJyb3JTY3JpcHRzOiBlcnJvclNjcmlwdHMsXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci1ib3VuZGFyeS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJFcnJvckJvdW5kYXJ5SGFuZGxlciIsIkdsb2JhbEVycm9yIiwiZGVmYXVsdCIsIkVycm9yQm91bmRhcnkiLCJfZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImVudW1lcmFibGUiLCJnZXQiLCJfZGVmYXVsdCIsIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsInJlcXVpcmUiLCJfanN4cnVudGltZSIsIl9yZWFjdCIsIl8iLCJfbmF2aWdhdGlvbiIsIl9pc25leHRyb3V0ZXJlcnJvciIsInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwidGV4dCIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImxpbmVIZWlnaHQiLCJtYXJnaW4iLCJIYW5kbGVJU1JFcnJvciIsInBhcmFtIiwiZmV0Y2giLCJfX25leHRHZXRTdGF0aWNTdG9yZSIsIl9mZXRjaF9fX25leHRHZXRTdGF0aWNTdG9yZSIsInN0b3JlIiwiZ2V0U3RvcmUiLCJpc1JldmFsaWRhdGUiLCJpc1N0YXRpY0dlbmVyYXRpb24iLCJjb25zb2xlIiwiQ29tcG9uZW50IiwiZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIiwiaXNOZXh0Um91dGVyRXJyb3IiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJwcm9wcyIsInN0YXRlIiwicGF0aG5hbWUiLCJwcmV2aW91c1BhdGhuYW1lIiwicmVuZGVyIiwianN4cyIsIkZyYWdtZW50IiwiY2hpbGRyZW4iLCJqc3giLCJlcnJvclN0eWxlcyIsImVycm9yU2NyaXB0cyIsImVycm9yQ29tcG9uZW50IiwicmVzZXQiLCJjb25zdHJ1Y3RvciIsInNldFN0YXRlIiwiZGlnZXN0IiwiaWQiLCJzdHlsZSIsInVzZVBhdGhuYW1lIiwiX19lc01vZHVsZSIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/error-boundary.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/hooks-server-context.js ***! + \**************************************************************************/ +/***/ ((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 DynamicServerError: function() {\n return DynamicServerError;\n },\n isDynamicServerError: function() {\n return isDynamicServerError;\n }\n});\nconst DYNAMIC_ERROR_CODE = \"DYNAMIC_SERVER_USAGE\";\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description);\n this.description = description;\n this.digest = DYNAMIC_ERROR_CODE;\n }\n}\nfunction isDynamicServerError(err) {\n if (typeof err !== \"object\" || err === null || !(\"digest\" in err) || typeof err.digest !== \"string\") {\n return false;\n }\n return err.digest === DYNAMIC_ERROR_CODE;\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=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGLEtBQU1DLENBQUFBLENBR047QUFDQSxTQUFTRyxRQUFRQyxNQUFNLEVBQUVDLEdBQUc7SUFDeEIsSUFBSSxJQUFJQyxRQUFRRCxJQUFJVCxPQUFPQyxjQUFjLENBQUNPLFFBQVFFLE1BQU07UUFDcERDLFlBQVk7UUFDWkMsS0FBS0gsR0FBRyxDQUFDQyxLQUFLO0lBQ2xCO0FBQ0o7QUFDQUgsUUFBUUwsU0FBUztJQUNiRyxvQkFBb0I7UUFDaEIsT0FBT0E7SUFDWDtJQUNBQyxzQkFBc0I7UUFDbEIsT0FBT0E7SUFDWDtBQUNKO0FBQ0EsTUFBTU8scUJBQXFCO0FBQzNCLE1BQU1SLDJCQUEyQlM7SUFDN0JDLFlBQVlDLFdBQVcsQ0FBQztRQUNwQixLQUFLLENBQUMsMkJBQTJCQTtRQUNqQyxJQUFJLENBQUNBLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxNQUFNLEdBQUdKO0lBQ2xCO0FBQ0o7QUFDQSxTQUFTUCxxQkFBcUJZLEdBQUc7SUFDN0IsSUFBSSxPQUFPQSxRQUFRLFlBQVlBLFFBQVEsUUFBUSxDQUFFLGFBQVlBLEdBQUUsS0FBTSxPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFBVTtRQUNqRyxPQUFPO0lBQ1g7SUFDQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQzFCO0FBRUEsSUFBSSxDQUFDLE9BQU9YLFFBQVFpQixPQUFPLEtBQUssY0FBZSxPQUFPakIsUUFBUWlCLE9BQU8sS0FBSyxZQUFZakIsUUFBUWlCLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT2pCLFFBQVFpQixPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLcEIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRaUIsT0FBTyxFQUFFLGNBQWM7UUFBRWhCLE9BQU87SUFBSztJQUNuRUgsT0FBT3FCLE1BQU0sQ0FBQ25CLFFBQVFpQixPQUFPLEVBQUVqQjtJQUMvQkUsT0FBT0YsT0FBTyxHQUFHQSxRQUFRaUIsT0FBTztBQUNsQyxFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQuanM/MDA5YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIER5bmFtaWNTZXJ2ZXJFcnJvcjogbnVsbCxcbiAgICBpc0R5bmFtaWNTZXJ2ZXJFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBEeW5hbWljU2VydmVyRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRHluYW1pY1NlcnZlckVycm9yO1xuICAgIH0sXG4gICAgaXNEeW5hbWljU2VydmVyRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNEeW5hbWljU2VydmVyRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBEWU5BTUlDX0VSUk9SX0NPREUgPSBcIkRZTkFNSUNfU0VSVkVSX1VTQUdFXCI7XG5jbGFzcyBEeW5hbWljU2VydmVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoZGVzY3JpcHRpb24pe1xuICAgICAgICBzdXBlcihcIkR5bmFtaWMgc2VydmVyIHVzYWdlOiBcIiArIGRlc2NyaXB0aW9uKTtcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgICB0aGlzLmRpZ2VzdCA9IERZTkFNSUNfRVJST1JfQ09ERTtcbiAgICB9XG59XG5mdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciAhPT0gXCJvYmplY3RcIiB8fCBlcnIgPT09IG51bGwgfHwgIShcImRpZ2VzdFwiIGluIGVycikgfHwgdHlwZW9mIGVyci5kaWdlc3QgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXJyLmRpZ2VzdCA9PT0gRFlOQU1JQ19FUlJPUl9DT0RFO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy1zZXJ2ZXItY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJEeW5hbWljU2VydmVyRXJyb3IiLCJpc0R5bmFtaWNTZXJ2ZXJFcnJvciIsIl9leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZW51bWVyYWJsZSIsImdldCIsIkRZTkFNSUNfRVJST1JfQ09ERSIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJkZXNjcmlwdGlvbiIsImRpZ2VzdCIsImVyciIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/infinite-promise.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/client/components/infinite-promise.js ***! + \**********************************************************************/ +/***/ ((module, exports) => { + +"use strict"; +eval("/**\n * Used to cache in createInfinitePromise\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createInfinitePromise\", ({\n enumerable: true,\n get: function() {\n return createInfinitePromise;\n }\n}));\nlet infinitePromise;\nfunction createInfinitePromise() {\n if (!infinitePromise) {\n // Only create the Promise once\n infinitePromise = new Promise(()=>{\n // This is used to debug when the rendering is never updated.\n // setTimeout(() => {\n // infinitePromise = new Error('Infinite promise')\n // resolve()\n // }, 5000)\n });\n }\n return infinitePromise;\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=infinite-promise.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2luZmluaXRlLXByb21pc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7O0NBRUMsR0FBZ0I7QUFDakJBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCx5REFBd0Q7SUFDcERJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixJQUFJQztBQUNKLFNBQVNEO0lBQ0wsSUFBSSxDQUFDQyxpQkFBaUI7UUFDbEIsK0JBQStCO1FBQy9CQSxrQkFBa0IsSUFBSUMsUUFBUTtRQUM5Qiw2REFBNkQ7UUFDN0QscUJBQXFCO1FBQ3JCLG9EQUFvRDtRQUNwRCxjQUFjO1FBQ2QsV0FBVztRQUNYO0lBQ0o7SUFDQSxPQUFPRDtBQUNYO0FBRUEsSUFBSSxDQUFDLE9BQU9MLFFBQVFPLE9BQU8sS0FBSyxjQUFlLE9BQU9QLFFBQVFPLE9BQU8sS0FBSyxZQUFZUCxRQUFRTyxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9QLFFBQVFPLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktWLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUU8sT0FBTyxFQUFFLGNBQWM7UUFBRU4sT0FBTztJQUFLO0lBQ25FSCxPQUFPVyxNQUFNLENBQUNULFFBQVFPLE9BQU8sRUFBRVA7SUFDL0JVLE9BQU9WLE9BQU8sR0FBR0EsUUFBUU8sT0FBTztBQUNsQyxFQUVBLDRDQUE0QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaW5maW5pdGUtcHJvbWlzZS5qcz83MmZmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlZCB0byBjYWNoZSBpbiBjcmVhdGVJbmZpbml0ZVByb21pc2VcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZUluZmluaXRlUHJvbWlzZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlSW5maW5pdGVQcm9taXNlO1xuICAgIH1cbn0pO1xubGV0IGluZmluaXRlUHJvbWlzZTtcbmZ1bmN0aW9uIGNyZWF0ZUluZmluaXRlUHJvbWlzZSgpIHtcbiAgICBpZiAoIWluZmluaXRlUHJvbWlzZSkge1xuICAgICAgICAvLyBPbmx5IGNyZWF0ZSB0aGUgUHJvbWlzZSBvbmNlXG4gICAgICAgIGluZmluaXRlUHJvbWlzZSA9IG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBkZWJ1ZyB3aGVuIHRoZSByZW5kZXJpbmcgaXMgbmV2ZXIgdXBkYXRlZC5cbiAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vICAgaW5maW5pdGVQcm9taXNlID0gbmV3IEVycm9yKCdJbmZpbml0ZSBwcm9taXNlJylcbiAgICAgICAgLy8gICByZXNvbHZlKClcbiAgICAgICAgLy8gfSwgNTAwMClcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpbmZpbml0ZVByb21pc2U7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZmluaXRlLXByb21pc2UuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsImNyZWF0ZUluZmluaXRlUHJvbWlzZSIsImluZmluaXRlUHJvbWlzZSIsIlByb21pc2UiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/infinite-promise.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _notfound = __webpack_require__(/*! ./not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nfunction isNextRouterError(error) {\n return error && error.digest && ((0, _redirect.isRedirectError)(error) || (0, _notfound.isNotFoundError)(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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCxxREFBb0Q7SUFDaERJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNQyxZQUFZQyxtQkFBT0EsQ0FBQyxrRkFBYTtBQUN2QyxNQUFNQyxZQUFZRCxtQkFBT0EsQ0FBQyxnRkFBWTtBQUN0QyxTQUFTRixrQkFBa0JJLEtBQUs7SUFDNUIsT0FBT0EsU0FBU0EsTUFBTUMsTUFBTSxJQUFLLEVBQUMsR0FBR0YsVUFBVUcsZUFBZSxFQUFFRixVQUFVLENBQUMsR0FBR0gsVUFBVU0sZUFBZSxFQUFFSCxNQUFLO0FBQ2xIO0FBRUEsSUFBSSxDQUFDLE9BQU9SLFFBQVFZLE9BQU8sS0FBSyxjQUFlLE9BQU9aLFFBQVFZLE9BQU8sS0FBSyxZQUFZWixRQUFRWSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9aLFFBQVFZLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktmLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUVksT0FBTyxFQUFFLGNBQWM7UUFBRVgsT0FBTztJQUFLO0lBQ25FSCxPQUFPZ0IsTUFBTSxDQUFDZCxRQUFRWSxPQUFPLEVBQUVaO0lBQy9CZSxPQUFPZixPQUFPLEdBQUdBLFFBQVFZLE9BQU87QUFDbEMsRUFFQSxnREFBZ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzP2Q5MDciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc05leHRSb3V0ZXJFcnJvclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNOZXh0Um91dGVyRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfbm90Zm91bmQgPSByZXF1aXJlKFwiLi9ub3QtZm91bmRcIik7XG5jb25zdCBfcmVkaXJlY3QgPSByZXF1aXJlKFwiLi9yZWRpcmVjdFwiKTtcbmZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yICYmIGVycm9yLmRpZ2VzdCAmJiAoKDAsIF9yZWRpcmVjdC5pc1JlZGlyZWN0RXJyb3IpKGVycm9yKSB8fCAoMCwgX25vdGZvdW5kLmlzTm90Rm91bmRFcnJvcikoZXJyb3IpKTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtbmV4dC1yb3V0ZXItZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsImlzTmV4dFJvdXRlckVycm9yIiwiX25vdGZvdW5kIiwicmVxdWlyZSIsIl9yZWRpcmVjdCIsImVycm9yIiwiZGlnZXN0IiwiaXNSZWRpcmVjdEVycm9yIiwiaXNOb3RGb3VuZEVycm9yIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/layout-router.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/components/layout-router.js ***! + \*******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return OuterLayoutRouter;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-dom.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _fetchserverresponse = __webpack_require__(/*! ./router-reducer/fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _infinitepromise = __webpack_require__(/*! ./infinite-promise */ \"(ssr)/./node_modules/next/dist/client/components/infinite-promise.js\");\nconst _errorboundary = __webpack_require__(/*! ./error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _matchsegments = __webpack_require__(/*! ./match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst _handlesmoothscroll = __webpack_require__(/*! ../../shared/lib/router/utils/handle-smooth-scroll */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js\");\nconst _redirectboundary = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\");\nconst _notfoundboundary = __webpack_require__(/*! ./not-found-boundary */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\");\nconst _getsegmentvalue = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./router-reducer/create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\n/**\n * Add refetch marker to router state at the point of the current layout segment.\n * This ensures the response returned is not further down than the current layout segment.\n */ function walkAddRefetch(segmentPathToWalk, treeToRecreate) {\n if (segmentPathToWalk) {\n const [segment, parallelRouteKey] = segmentPathToWalk;\n const isLast = segmentPathToWalk.length === 2;\n if ((0, _matchsegments.matchSegment)(treeToRecreate[0], segment)) {\n if (treeToRecreate[1].hasOwnProperty(parallelRouteKey)) {\n if (isLast) {\n const subTree = walkAddRefetch(undefined, treeToRecreate[1][parallelRouteKey]);\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: [\n subTree[0],\n subTree[1],\n subTree[2],\n \"refetch\"\n ]\n }\n ];\n }\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: walkAddRefetch(segmentPathToWalk.slice(2), treeToRecreate[1][parallelRouteKey])\n }\n ];\n }\n }\n }\n return treeToRecreate;\n}\n// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available\n/**\n * Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning\n */ function findDOMNode(instance) {\n // Tree-shake for server bundle\n if (true) return null;\n // Only apply strict mode warning when not in production\n if (true) {\n const originalConsoleError = console.error;\n try {\n console.error = function() {\n for(var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++){\n messages[_key] = arguments[_key];\n }\n // Ignore strict mode warning for the findDomNode call below\n if (!messages[0].includes(\"Warning: %s is deprecated in StrictMode.\")) {\n originalConsoleError(...messages);\n }\n };\n return _reactdom.default.findDOMNode(instance);\n } finally{\n console.error = originalConsoleError;\n }\n }\n return _reactdom.default.findDOMNode(instance);\n}\nconst rectProperties = [\n \"bottom\",\n \"height\",\n \"left\",\n \"right\",\n \"top\",\n \"width\",\n \"x\",\n \"y\"\n];\n/**\n * Check if a HTMLElement is hidden or fixed/sticky position\n */ function shouldSkipElement(element) {\n // we ignore fixed or sticky positioned elements since they'll likely pass the \"in-viewport\" check\n // and will result in a situation we bail on scroll because of something like a fixed nav,\n // even though the actual page content is offscreen\n if ([\n \"sticky\",\n \"fixed\"\n ].includes(getComputedStyle(element).position)) {\n if (true) {\n console.warn(\"Skipping auto-scroll behavior due to `position: sticky` or `position: fixed` on element:\", element);\n }\n return true;\n }\n // Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`\n // because `offsetParent` doesn't consider document/body\n const rect = element.getBoundingClientRect();\n return rectProperties.every((item)=>rect[item] === 0);\n}\n/**\n * Check if the top corner of the HTMLElement is in the viewport.\n */ function topOfElementInViewport(element, viewportHeight) {\n const rect = element.getBoundingClientRect();\n return rect.top >= 0 && rect.top <= viewportHeight;\n}\n/**\n * Find the DOM node for a hash fragment.\n * If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.\n * If the hash fragment is an id, the page has to scroll to the element with that id.\n * If the hash fragment is a name, the page has to scroll to the first element with that name.\n */ function getHashFragmentDomNode(hashFragment) {\n // If the hash fragment is `top` the page has to scroll to the top of the page.\n if (hashFragment === \"top\") {\n return document.body;\n }\n var _document_getElementById;\n // If the hash fragment is an id, the page has to scroll to the element with that id.\n return (_document_getElementById = document.getElementById(hashFragment)) != null ? _document_getElementById : document.getElementsByName(hashFragment)[0];\n}\nclass InnerScrollAndFocusHandler extends _react.default.Component {\n componentDidMount() {\n this.handlePotentialScroll();\n }\n componentDidUpdate() {\n // Because this property is overwritten in handlePotentialScroll it's fine to always run it when true as it'll be set to false for subsequent renders.\n if (this.props.focusAndScrollRef.apply) {\n this.handlePotentialScroll();\n }\n }\n render() {\n return this.props.children;\n }\n constructor(...args){\n super(...args);\n this.handlePotentialScroll = ()=>{\n // Handle scroll and focus, it's only applied once in the first useEffect that triggers that changed.\n const { focusAndScrollRef, segmentPath } = this.props;\n if (focusAndScrollRef.apply) {\n // segmentPaths is an array of segment paths that should be scrolled to\n // if the current segment path is not in the array, the scroll is not applied\n // unless the array is empty, in which case the scroll is always applied\n if (focusAndScrollRef.segmentPaths.length !== 0 && !focusAndScrollRef.segmentPaths.some((scrollRefSegmentPath)=>segmentPath.every((segment, index)=>(0, _matchsegments.matchSegment)(segment, scrollRefSegmentPath[index])))) {\n return;\n }\n let domNode = null;\n const hashFragment = focusAndScrollRef.hashFragment;\n if (hashFragment) {\n domNode = getHashFragmentDomNode(hashFragment);\n }\n // `findDOMNode` is tricky because it returns just the first child if the component is a fragment.\n // This already caused a bug where the first child was a in head.\n if (!domNode) {\n domNode = findDOMNode(this);\n }\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (!(domNode instanceof Element)) {\n return;\n }\n // Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.\n // If the element is skipped, try to select the next sibling and try again.\n while(!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)){\n // No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.\n if (domNode.nextElementSibling === null) {\n return;\n }\n domNode = domNode.nextElementSibling;\n }\n // State is mutated to ensure that the focus and scroll is applied only once.\n focusAndScrollRef.apply = false;\n focusAndScrollRef.hashFragment = null;\n focusAndScrollRef.segmentPaths = [];\n (0, _handlesmoothscroll.handleSmoothScroll)(()=>{\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n domNode.scrollIntoView();\n return;\n }\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n const htmlElement = document.documentElement;\n const viewportHeight = htmlElement.clientHeight;\n // If the element's top edge is already in the viewport, exit early.\n if (topOfElementInViewport(domNode, viewportHeight)) {\n return;\n }\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0;\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (!topOfElementInViewport(domNode, viewportHeight)) {\n domNode.scrollIntoView();\n }\n }, {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: focusAndScrollRef.onlyHashChange\n });\n // Mutate after scrolling so that it can be read by `handleSmoothScroll`\n focusAndScrollRef.onlyHashChange = false;\n // Set focus on the element\n domNode.focus();\n }\n };\n }\n}\nfunction ScrollAndFocusHandler(param) {\n let { segmentPath, children } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw new Error(\"invariant global layout router not mounted\");\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerScrollAndFocusHandler, {\n segmentPath: segmentPath,\n focusAndScrollRef: context.focusAndScrollRef,\n children: children\n });\n}\n/**\n * InnerLayoutRouter handles rendering the provided segment based on the cache.\n */ function InnerLayoutRouter(param) {\n let { parallelRouterKey, url, childNodes, segmentPath, tree, // isActive,\n cacheKey } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw new Error(\"invariant global layout router not mounted\");\n }\n const { buildId, changeByServerResponse, tree: fullTree } = context;\n // Read segment path from the parallel router cache node.\n let childNode = childNodes.get(cacheKey);\n // When data is not available during rendering client-side we need to fetch\n // it from the server.\n if (childNode === undefined) {\n const newLazyCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n parallelRoutes: new Map()\n };\n /**\n * Flight data fetch kicked off during render and put into the cache.\n */ childNode = newLazyCacheNode;\n childNodes.set(cacheKey, newLazyCacheNode);\n }\n // `rsc` represents the renderable node for this segment.\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc = childNode.prefetchRsc !== null ? childNode.prefetchRsc : childNode.rsc;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n //\n // @ts-expect-error The second argument to `useDeferredValue` is only\n // available in the experimental builds. When its disabled, it will always\n // return `rsc`.\n const rsc = (0, _react.useDeferredValue)(childNode.rsc, resolvedPrefetchRsc);\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n const resolvedRsc = typeof rsc === \"object\" && rsc !== null && typeof rsc.then === \"function\" ? (0, _react.use)(rsc) : rsc;\n if (!resolvedRsc) {\n // The data for this segment is not available, and there's no pending\n // navigation that will be able to fulfill it. We need to fetch more from\n // the server and patch the cache.\n // Check if there's already a pending request.\n let lazyData = childNode.lazyData;\n if (lazyData === null) {\n /**\n * Router state with refetch marker added\n */ // TODO-APP: remove ''\n const refetchTree = walkAddRefetch([\n \"\",\n ...segmentPath\n ], fullTree);\n childNode.lazyData = lazyData = (0, _fetchserverresponse.fetchServerResponse)(new URL(url, location.origin), refetchTree, context.nextUrl, buildId);\n }\n /**\n * Flight response data\n */ // When the data has not resolved yet `use` will suspend here.\n const [flightData, overrideCanonicalUrl] = (0, _react.use)(lazyData);\n // segmentPath from the server does not match the layout's segmentPath\n childNode.lazyData = null;\n // setTimeout is used to start a new transition during render, this is an intentional hack around React.\n setTimeout(()=>{\n (0, _react.startTransition)(()=>{\n changeByServerResponse(fullTree, flightData, overrideCanonicalUrl);\n });\n });\n // Suspend infinitely as `changeByServerResponse` will cause a different part of the tree to be rendered.\n (0, _react.use)((0, _infinitepromise.createInfinitePromise)());\n }\n // If we get to this point, then we know we have something we can render.\n const subtree = /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: {\n tree: tree[1][parallelRouterKey],\n childNodes: childNode.parallelRoutes,\n // TODO-APP: overriding of url for parallel routes\n url: url\n },\n children: resolvedRsc\n });\n // Ensure root layout is not wrapped in a div as the root layout renders ``\n return subtree;\n}\n/**\n * Renders suspense boundary with the provided \"loading\" property as the fallback.\n * If no loading property is provided it renders the children without a suspense boundary.\n */ function LoadingBoundary(param) {\n let { children, loading, loadingStyles, loadingScripts, hasLoading } = param;\n if (hasLoading) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n loadingStyles,\n loadingScripts,\n loading\n ]\n }),\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nfunction OuterLayoutRouter(param) {\n let { parallelRouterKey, segmentPath, error, errorStyles, errorScripts, templateStyles, templateScripts, loading, loadingStyles, loadingScripts, hasLoading, template, notFound, notFoundStyles, styles } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n if (!context) {\n throw new Error(\"invariant expected layout router to be mounted\");\n }\n const { childNodes, tree, url } = context;\n // Get the current parallelRouter cache node\n let childNodesForParallelRouter = childNodes.get(parallelRouterKey);\n // If the parallel router cache node does not exist yet, create it.\n // This writes to the cache when there is no item in the cache yet. It never *overwrites* existing cache items which is why it's safe in concurrent mode.\n if (!childNodesForParallelRouter) {\n childNodesForParallelRouter = new Map();\n childNodes.set(parallelRouterKey, childNodesForParallelRouter);\n }\n // Get the active segment in the tree\n // The reason arrays are used in the data format is that these are transferred from the server to the browser so it's optimized to save bytes.\n const treeSegment = tree[1][parallelRouterKey][0];\n // If segment is an array it's a dynamic route and we want to read the dynamic route value as the segment to get from the cache.\n const currentChildSegmentValue = (0, _getsegmentvalue.getSegmentValue)(treeSegment);\n /**\n * Decides which segments to keep rendering, all segments that are not active will be wrapped in ``.\n */ // TODO-APP: Add handling of `` when it's available.\n const preservedSegments = [\n treeSegment\n ];\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n styles,\n preservedSegments.map((preservedSegment)=>{\n const preservedSegmentValue = (0, _getsegmentvalue.getSegmentValue)(preservedSegment);\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(preservedSegment);\n return(/*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_approutercontextsharedruntime.TemplateContext.Provider, {\n value: /*#__PURE__*/ (0, _jsxruntime.jsx)(ScrollAndFocusHandler, {\n segmentPath: segmentPath,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {\n errorComponent: error,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingBoundary, {\n hasLoading: hasLoading,\n loading: loading,\n loadingStyles: loadingStyles,\n loadingScripts: loadingScripts,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_notfoundboundary.NotFoundBoundary, {\n notFound: notFound,\n notFoundStyles: notFoundStyles,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_redirectboundary.RedirectBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerLayoutRouter, {\n parallelRouterKey: parallelRouterKey,\n url: url,\n tree: tree,\n childNodes: childNodesForParallelRouter,\n segmentPath: segmentPath,\n cacheKey: cacheKey,\n isActive: currentChildSegmentValue === preservedSegmentValue\n })\n })\n })\n })\n })\n }),\n children: [\n templateStyles,\n templateScripts,\n template\n ]\n }, (0, _createroutercachekey.createRouterCacheKey)(preservedSegment, true)));\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=layout-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6InFEQUVhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCwyQ0FHZTtJQUNYSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsMkJBQTJCQyxtQkFBT0EsQ0FBQyxrSEFBeUM7QUFDbEYsTUFBTUMsNEJBQTRCRCxtQkFBT0EsQ0FBQyxvSEFBMEM7QUFDcEYsTUFBTUUsY0FBY0YsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1HLFNBQVMsV0FBVyxHQUFHRiwwQkFBMEJHLENBQUMsQ0FBQ0osbUJBQU9BLENBQUMsd0dBQU87QUFDeEUsTUFBTUssWUFBWSxXQUFXLEdBQUdOLHlCQUF5QkssQ0FBQyxDQUFDSixtQkFBT0EsQ0FBQyxnSEFBVztBQUM5RSxNQUFNTSxpQ0FBaUNOLG1CQUFPQSxDQUFDLHVLQUFvRDtBQUNuRyxNQUFNTyx1QkFBdUJQLG1CQUFPQSxDQUFDLHdJQUF3QztBQUM3RSxNQUFNUSxtQkFBbUJSLG1CQUFPQSxDQUFDLGdHQUFvQjtBQUNyRCxNQUFNUyxpQkFBaUJULG1CQUFPQSxDQUFDLDRGQUFrQjtBQUNqRCxNQUFNVSxpQkFBaUJWLG1CQUFPQSxDQUFDLDRGQUFrQjtBQUNqRCxNQUFNVyxzQkFBc0JYLG1CQUFPQSxDQUFDLDBJQUFvRDtBQUN4RixNQUFNWSxvQkFBb0JaLG1CQUFPQSxDQUFDLGtHQUFxQjtBQUN2RCxNQUFNYSxvQkFBb0JiLG1CQUFPQSxDQUFDLG9HQUFzQjtBQUN4RCxNQUFNYyxtQkFBbUJkLG1CQUFPQSxDQUFDLGtKQUE2QztBQUM5RSxNQUFNZSx3QkFBd0JmLG1CQUFPQSxDQUFDLDRJQUEwQztBQUNoRjs7O0NBR0MsR0FBRyxTQUFTZ0IsZUFBZUMsaUJBQWlCLEVBQUVDLGNBQWM7SUFDekQs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K0QsVUFBVVosNkJBQTZCSzt3Q0FDM0M7b0NBQ0o7Z0NBQ0o7NEJBQ0o7d0JBQ0o7b0JBQ0o7b0JBQ0F6RixVQUFVO3dCQUNONEU7d0JBQ0FDO3dCQUNBQztxQkFDSDtnQkFDTCxHQUFHLENBQUMsR0FBR3JJLHNCQUFzQmlKLG9CQUFvQixFQUFFRixrQkFBa0I7WUFDekU7U0FDSDtJQUNMO0FBQ0o7QUFFQSxJQUFJLENBQUMsT0FBT3BLLFFBQVE4QyxPQUFPLEtBQUssY0FBZSxPQUFPOUMsUUFBUThDLE9BQU8sS0FBSyxZQUFZOUMsUUFBUThDLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBTzlDLFFBQVE4QyxPQUFPLENBQUMrSCxVQUFVLEtBQUssYUFBYTtJQUNySy9LLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUThDLE9BQU8sRUFBRSxjQUFjO1FBQUU3QyxPQUFPO0lBQUs7SUFDbkVILE9BQU9nTCxNQUFNLENBQUM5SyxRQUFROEMsT0FBTyxFQUFFOUM7SUFDL0IrSyxPQUFPL0ssT0FBTyxHQUFHQSxRQUFROEMsT0FBTztBQUNsQyxFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qcz8wYmZhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAvKipcbiAqIE91dGVyTGF5b3V0Um91dGVyIGhhbmRsZXMgdGhlIGN1cnJlbnQgc2VnbWVudCBhcyB3ZWxsIGFzIDxPZmZzY3JlZW4+IHJlbmRlcmluZyBvZiBvdGhlciBzZWdtZW50cy5cbiAqIEl0IGNhbiBiZSByZW5kZXJlZCBuZXh0IHRvIGVhY2ggb3RoZXIgd2l0aCBhIGRpZmZlcmVudCBgcGFyYWxsZWxSb3V0ZXJLZXlgLCBhbGxvd2luZyBmb3IgUGFyYWxsZWwgcm91dGVzLlxuICovIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gT3V0ZXJMYXlvdXRSb3V0ZXI7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkXCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX3JlYWN0ZG9tID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcbmNvbnN0IF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiKTtcbmNvbnN0IF9mZXRjaHNlcnZlcnJlc3BvbnNlID0gcmVxdWlyZShcIi4vcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlXCIpO1xuY29uc3QgX2luZmluaXRlcHJvbWlzZSA9IHJlcXVpcmUoXCIuL2luZmluaXRlLXByb21pc2VcIik7XG5jb25zdCBfZXJyb3Jib3VuZGFyeSA9IHJlcXVpcmUoXCIuL2Vycm9yLWJvdW5kYXJ5XCIpO1xuY29uc3QgX21hdGNoc2VnbWVudHMgPSByZXF1aXJlKFwiLi9tYXRjaC1zZWdtZW50c1wiKTtcbmNvbnN0IF9oYW5kbGVzbW9vdGhzY3JvbGwgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaGFuZGxlLXNtb290aC1zY3JvbGxcIik7XG5jb25zdCBfcmVkaXJlY3Rib3VuZGFyeSA9IHJlcXVpcmUoXCIuL3JlZGlyZWN0LWJvdW5kYXJ5XCIpO1xuY29uc3QgX25vdGZvdW5kYm91bmRhcnkgPSByZXF1aXJlKFwiLi9ub3QtZm91bmQtYm91bmRhcnlcIik7XG5jb25zdCBfZ2V0c2VnbWVudHZhbHVlID0gcmVxdWlyZShcIi4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWVcIik7XG5jb25zdCBfY3JlYXRlcm91dGVyY2FjaGVrZXkgPSByZXF1aXJlKFwiLi9yb3V0ZXItcmVkdWNlci9jcmVhdGUtcm91dGVyLWNhY2hlLWtleVwiKTtcbi8qKlxuICogQWRkIHJlZmV0Y2ggbWFya2VyIHRvIHJvdXRlciBzdGF0ZSBhdCB0aGUgcG9pbnQgb2YgdGhlIGN1cnJlbnQgbGF5b3V0IHNlZ21lbnQuXG4gKiBUaGlzIGVuc3VyZXMgdGhlIHJlc3BvbnNlIHJldHVybmVkIGlzIG5vdCBmdXJ0aGVyIGRvd24gdGhhbiB0aGUgY3VycmVudCBsYXlvdXQgc2VnbWVudC5cbiAqLyBmdW5jdGlvbiB3YWxrQWRkUmVmZXRjaChzZWdtZW50UGF0aFRvV2FsaywgdHJlZVRvUmVjcmVhdGUpIHtcbiAgICBpZiAoc2VnbWVudFBhdGhUb1dhbGspIHtcbiAgICAgICAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVLZXldID0gc2VnbWVudFBhdGhUb1dhbGs7XG4gICAgICAgIGNvbnN0IGlzTGFzdCA9IHNlZ21lbnRQYXRoVG9XYWxrLmxlbmd0aCA9PT0gMjtcbiAgICAgICAgaWYgKCgwLCBfbWF0Y2hzZWdtZW50cy5tYXRjaFNlZ21lbnQpKHRyZWVUb1JlY3JlYXRlWzBdLCBzZWdtZW50KSkge1xuICAgICAgICAgICAgaWYgKHRyZWVUb1JlY3JlYXRlWzFdLmhhc093blByb3BlcnR5KHBhcmFsbGVsUm91dGVLZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTGFzdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJUcmVlID0gd2Fsa0FkZFJlZmV0Y2godW5kZWZpbmVkLCB0cmVlVG9SZWNyZWF0ZVsxXVtwYXJhbGxlbFJvdXRlS2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlVG9SZWNyZWF0ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50cmVlVG9SZWNyZWF0ZVsxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyYWxsZWxSb3V0ZUtleV06IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViVHJlZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViVHJlZVsxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViVHJlZVsyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWZldGNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzBdLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50cmVlVG9SZWNyZWF0ZVsxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJhbGxlbFJvdXRlS2V5XTogd2Fsa0FkZFJlZmV0Y2goc2VnbWVudFBhdGhUb1dhbGsuc2xpY2UoMiksIHRyZWVUb1JlY3JlYXRlWzFdW3BhcmFsbGVsUm91dGVLZXldKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJlZVRvUmVjcmVhdGU7XG59XG4vLyBUT0RPLUFQUDogUmVwbGFjZSB3aXRoIG5ldyBSZWFjdCBBUEkgZm9yIGZpbmRpbmcgZG9tIG5vZGVzIHdpdGhvdXQgYSBgcmVmYCB3aGVuIGF2YWlsYWJsZVxuLyoqXG4gKiBXcmFwcyBSZWFjdERPTS5maW5kRE9NTm9kZSB3aXRoIGFkZGl0aW9uYWwgbG9naWMgdG8gaGlkZSBSZWFjdCBTdHJpY3QgTW9kZSB3YXJuaW5nXG4gKi8gZnVuY3Rpb24gZmluZERPTU5vZGUoaW5zdGFuY2UpIHtcbiAgICAvLyBUcmVlLXNoYWtlIGZvciBzZXJ2ZXIgYnVuZGxlXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBudWxsO1xuICAgIC8vIE9ubHkgYXBwbHkgc3RyaWN0IG1vZGUgd2FybmluZyB3aGVuIG5vdCBpbiBwcm9kdWN0aW9uXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBjb25zdCBvcmlnaW5hbENvbnNvbGVFcnJvciA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgbWVzc2FnZXMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElnbm9yZSBzdHJpY3QgbW9kZSB3YXJuaW5nIGZvciB0aGUgZmluZERvbU5vZGUgY2FsbCBiZWxvd1xuICAgICAgICAgICAgICAgIGlmICghbWVzc2FnZXNbMF0uaW5jbHVkZXMoXCJXYXJuaW5nOiAlcyBpcyBkZXByZWNhdGVkIGluIFN0cmljdE1vZGUuXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsQ29uc29sZUVycm9yKC4uLm1lc3NhZ2VzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdGRvbS5kZWZhdWx0LmZpbmRET01Ob2RlKGluc3RhbmNlKTtcbiAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgY29uc29sZS5lcnJvciA9IG9yaWdpbmFsQ29uc29sZUVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBfcmVhY3Rkb20uZGVmYXVsdC5maW5kRE9NTm9kZShpbnN0YW5jZSk7XG59XG5jb25zdCByZWN0UHJvcGVydGllcyA9IFtcbiAgICBcImJvdHRvbVwiLFxuICAgIFwiaGVpZ2h0XCIsXG4gICAgXCJsZWZ0XCIsXG4gICAgXCJyaWdodFwiLFxuICAgIFwidG9wXCIsXG4gICAgXCJ3aWR0aFwiLFxuICAgIFwieFwiLFxuICAgIFwieVwiXG5dO1xuLyoqXG4gKiBDaGVjayBpZiBhIEhUTUxFbGVtZW50IGlzIGhpZGRlbiBvciBmaXhlZC9zdGlja3kgcG9zaXRpb25cbiAqLyBmdW5jdGlvbiBzaG91bGRTa2lwRWxlbWVudChlbGVtZW50KSB7XG4gICAgLy8gd2UgaWdub3JlIGZpeGVkIG9yIHN0aWNreSBwb3NpdGlvbmVkIGVsZW1lbnRzIHNpbmNlIHRoZXknbGwgbGlrZWx5IHBhc3MgdGhlIFwiaW4tdmlld3BvcnRcIiBjaGVja1xuICAgIC8vIGFuZCB3aWxsIHJlc3VsdCBpbiBhIHNpdHVhdGlvbiB3ZSBiYWlsIG9uIHNjcm9sbCBiZWNhdXNlIG9mIHNvbWV0aGluZyBsaWtlIGEgZml4ZWQgbmF2LFxuICAgIC8vIGV2ZW4gdGhvdWdoIHRoZSBhY3R1YWwgcGFnZSBjb250ZW50IGlzIG9mZnNjcmVlblxuICAgIGlmIChbXG4gICAgICAgIFwic3RpY2t5XCIsXG4gICAgICAgIFwiZml4ZWRcIlxuICAgIF0uaW5jbHVkZXMoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbikpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlNraXBwaW5nIGF1dG8tc2Nyb2xsIGJlaGF2aW9yIGR1ZSB0byBgcG9zaXRpb246IHN0aWNreWAgb3IgYHBvc2l0aW9uOiBmaXhlZGAgb24gZWxlbWVudDpcIiwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIFVzZXMgYGdldEJvdW5kaW5nQ2xpZW50UmVjdGAgdG8gY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgaGlkZGVuIGluc3RlYWQgb2YgYG9mZnNldFBhcmVudGBcbiAgICAvLyBiZWNhdXNlIGBvZmZzZXRQYXJlbnRgIGRvZXNuJ3QgY29uc2lkZXIgZG9jdW1lbnQvYm9keVxuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiByZWN0UHJvcGVydGllcy5ldmVyeSgoaXRlbSk9PnJlY3RbaXRlbV0gPT09IDApO1xufVxuLyoqXG4gKiBDaGVjayBpZiB0aGUgdG9wIGNvcm5lciBvZiB0aGUgSFRNTEVsZW1lbnQgaXMgaW4gdGhlIHZpZXdwb3J0LlxuICovIGZ1bmN0aW9uIHRvcE9mRWxlbWVudEluVmlld3BvcnQoZWxlbWVudCwgdmlld3BvcnRIZWlnaHQpIHtcbiAgICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4gcmVjdC50b3AgPj0gMCAmJiByZWN0LnRvcCA8PSB2aWV3cG9ydEhlaWdodDtcbn1cbi8qKlxuICogRmluZCB0aGUgRE9NIG5vZGUgZm9yIGEgaGFzaCBmcmFnbWVudC5cbiAqIElmIGB0b3BgIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgcGFnZS4gVGhpcyBtaXJyb3JzIHRoZSBicm93c2VyJ3MgYmVoYXZpb3IuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhIG5hbWUsIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIGZpcnN0IGVsZW1lbnQgd2l0aCB0aGF0IG5hbWUuXG4gKi8gZnVuY3Rpb24gZ2V0SGFzaEZyYWdtZW50RG9tTm9kZShoYXNoRnJhZ21lbnQpIHtcbiAgICAvLyBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBgdG9wYCB0aGUgcGFnZSBoYXMgdG8gc2Nyb2xsIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2UuXG4gICAgaWYgKGhhc2hGcmFnbWVudCA9PT0gXCJ0b3BcIikge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keTtcbiAgICB9XG4gICAgdmFyIF9kb2N1bWVudF9nZXRFbGVtZW50QnlJZDtcbiAgICAvLyBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gICAgcmV0dXJuIChfZG9jdW1lbnRfZ2V0RWxlbWVudEJ5SWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoYXNoRnJhZ21lbnQpKSAhPSBudWxsID8gX2RvY3VtZW50X2dldEVsZW1lbnRCeUlkIDogLy8gSWYgdGhlIGhhc2ggZnJhZ21lbnQgaXMgYSBuYW1lLCB0aGUgcGFnZSBoYXMgdG8gc2Nyb2xsIHRvIHRoZSBmaXJzdCBlbGVtZW50IHdpdGggdGhhdCBuYW1lLlxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKGhhc2hGcmFnbWVudClbMF07XG59XG5jbGFzcyBJbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlUG90ZW50aWFsU2Nyb2xsKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgLy8gQmVjYXVzZSB0aGlzIHByb3BlcnR5IGlzIG92ZXJ3cml0dGVuIGluIGhhbmRsZVBvdGVudGlhbFNjcm9sbCBpdCdzIGZpbmUgdG8gYWx3YXlzIHJ1biBpdCB3aGVuIHRydWUgYXMgaXQnbGwgYmUgc2V0IHRvIGZhbHNlIGZvciBzdWJzZXF1ZW50IHJlbmRlcnMuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5KSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3Mpe1xuICAgICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVQb3RlbnRpYWxTY3JvbGwgPSAoKT0+e1xuICAgICAgICAgICAgLy8gSGFuZGxlIHNjcm9sbCBhbmQgZm9jdXMsIGl0J3Mgb25seSBhcHBsaWVkIG9uY2UgaW4gdGhlIGZpcnN0IHVzZUVmZmVjdCB0aGF0IHRyaWdnZXJzIHRoYXQgY2hhbmdlZC5cbiAgICAgICAgICAgIGNvbnN0IHsgZm9jdXNBbmRTY3JvbGxSZWYsIHNlZ21lbnRQYXRoIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICAgICAgaWYgKGZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5KSB7XG4gICAgICAgICAgICAgICAgLy8gc2VnbWVudFBhdGhzIGlzIGFuIGFycmF5IG9mIHNlZ21lbnQgcGF0aHMgdGhhdCBzaG91bGQgYmUgc2Nyb2xsZWQgdG9cbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgY3VycmVudCBzZWdtZW50IHBhdGggaXMgbm90IGluIHRoZSBhcnJheSwgdGhlIHNjcm9sbCBpcyBub3QgYXBwbGllZFxuICAgICAgICAgICAgICAgIC8vIHVubGVzcyB0aGUgYXJyYXkgaXMgZW1wdHksIGluIHdoaWNoIGNhc2UgdGhlIHNjcm9sbCBpcyBhbHdheXMgYXBwbGllZFxuICAgICAgICAgICAgICAgIGlmIChmb2N1c0FuZFNjcm9sbFJlZi5zZWdtZW50UGF0aHMubGVuZ3RoICE9PSAwICYmICFmb2N1c0FuZFNjcm9sbFJlZi5zZWdtZW50UGF0aHMuc29tZSgoc2Nyb2xsUmVmU2VnbWVudFBhdGgpPT5zZWdtZW50UGF0aC5ldmVyeSgoc2VnbWVudCwgaW5kZXgpPT4oMCwgX21hdGNoc2VnbWVudHMubWF0Y2hTZWdtZW50KShzZWdtZW50LCBzY3JvbGxSZWZTZWdtZW50UGF0aFtpbmRleF0pKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzaEZyYWdtZW50ID0gZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50O1xuICAgICAgICAgICAgICAgIGlmIChoYXNoRnJhZ21lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9tTm9kZSA9IGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYGZpbmRET01Ob2RlYCBpcyB0cmlja3kgYmVjYXVzZSBpdCByZXR1cm5zIGp1c3QgdGhlIGZpcnN0IGNoaWxkIGlmIHRoZSBjb21wb25lbnQgaXMgYSBmcmFnbWVudC5cbiAgICAgICAgICAgICAgICAvLyBUaGlzIGFscmVhZHkgY2F1c2VkIGEgYnVnIHdoZXJlIHRoZSBmaXJzdCBjaGlsZCB3YXMgYSA8bGluay8+IGluIGhlYWQuXG4gICAgICAgICAgICAgICAgaWYgKCFkb21Ob2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbU5vZGUgPSBmaW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gRE9NIG5vZGUgdGhpcyBsYXlvdXQtcm91dGVyIGxldmVsIGlzIHNraXBwZWQuIEl0J2xsIGJlIGhhbmRsZWQgaGlnaGVyLXVwIGluIHRoZSB0cmVlLlxuICAgICAgICAgICAgICAgIGlmICghKGRvbU5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFZlcmlmeSBpZiB0aGUgZWxlbWVudCBpcyBhIEhUTUxFbGVtZW50IGFuZCBpZiB3ZSB3YW50IHRvIGNvbnNpZGVyIGl0IGZvciBzY3JvbGwgYmVoYXZpb3IuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgc2tpcHBlZCwgdHJ5IHRvIHNlbGVjdCB0aGUgbmV4dCBzaWJsaW5nIGFuZCB0cnkgYWdhaW4uXG4gICAgICAgICAgICAgICAgd2hpbGUoIShkb21Ob2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHx8IHNob3VsZFNraXBFbGVtZW50KGRvbU5vZGUpKXtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm8gc2libGluZ3MgZm91bmQgdGhhdCBtYXRjaCB0aGUgY3JpdGVyaWEgYXJlIGZvdW5kLCBzbyBoYW5kbGUgc2Nyb2xsIGhpZ2hlciB1cCBpbiB0aGUgdHJlZSBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgICAgICBpZiAoZG9tTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkb21Ob2RlID0gZG9tTm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFN0YXRlIGlzIG11dGF0ZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGZvY3VzIGFuZCBzY3JvbGwgaXMgYXBwbGllZCBvbmx5IG9uY2UuXG4gICAgICAgICAgICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBmb2N1c0FuZFNjcm9sbFJlZi5oYXNoRnJhZ21lbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLnNlZ21lbnRQYXRocyA9IFtdO1xuICAgICAgICAgICAgICAgICgwLCBfaGFuZGxlc21vb3Roc2Nyb2xsLmhhbmRsZVNtb290aFNjcm9sbCkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gY2FzZSBvZiBoYXNoIHNjcm9sbCwgd2Ugb25seSBuZWVkIHRvIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXdcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc2hGcmFnbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9tTm9kZS5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSBjdXJyZW50IHZpZXdwb3J0IGhlaWdodCBiZWNhdXNlIHJlYWRpbmcgYGNsaWVudEhlaWdodGAgY2F1c2VzIGEgcmVmbG93LFxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgaXQgd29uJ3QgY2hhbmdlIGR1cmluZyB0aGlzIGZ1bmN0aW9uLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSBodG1sRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBlbGVtZW50J3MgdG9wIGVkZ2UgaXMgYWxyZWFkeSBpbiB0aGUgdmlld3BvcnQsIGV4aXQgZWFybHkuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3BPZkVsZW1lbnRJblZpZXdwb3J0KGRvbU5vZGUsIHZpZXdwb3J0SGVpZ2h0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgdHJ5IHNjcm9sbGluZyBnbyB0aGUgdG9wIG9mIHRoZSBkb2N1bWVudCB0byBiZSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggcGFnZXNcbiAgICAgICAgICAgICAgICAgICAgLy8gc2Nyb2xsSW50b1ZpZXcoKSBjYWxsZWQgb24gYDxodG1sLz5gIGVsZW1lbnQgc2Nyb2xscyBob3Jpem9udGFsbHkgb24gY2hyb21lIGFuZCBmaXJlZm94ICh0aGF0IHNob3VsZG4ndCBoYXBwZW4pXG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGNvdWxkIHVzZSBpdCB0byBzY3JvbGwgaG9yaXpvbnRhbGx5IGZvbGxvd2luZyBSVEwgYnV0IHRoYXQgYWxzbyBzZWVtcyB0byBiZSBicm9rZW4gLSBpdCB3aWxsIGFsd2F5cyBzY3JvbGwgbGVmdFxuICAgICAgICAgICAgICAgICAgICAvLyBzY3JvbGxMZWZ0ID0gMCBhbHNvIHNlZW1zIHRvIGlnbm9yZSBSVEwgYW5kIG1hbnVhbGx5IGNoZWNraW5nIGZvciBSVEwgaXMgdG9vIG11Y2ggaGFzc2xlIHNvIHdlIHdpbGwgc2Nyb2xsIGp1c3QgdmVydGljYWxseVxuICAgICAgICAgICAgICAgICAgICBodG1sRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgICAgICAgICAvLyBTY3JvbGwgdG8gZG9tTm9kZSBpZiBkb21Ob2RlIGlzIG5vdCBpbiB2aWV3cG9ydCB3aGVuIHNjcm9sbGVkIHRvIHRvcCBvZiBkb2N1bWVudFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRvcE9mRWxlbWVudEluVmlld3BvcnQoZG9tTm9kZSwgdmlld3BvcnRIZWlnaHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb21Ob2RlLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIHdpbGwgZm9yY2UgbGF5b3V0IGJ5IHF1ZXJ5aW5nIGRvbU5vZGUgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgZG9udEZvcmNlTGF5b3V0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBvbmx5SGFzaENoYW5nZTogZm9jdXNBbmRTY3JvbGxSZWYub25seUhhc2hDaGFuZ2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyBNdXRhdGUgYWZ0ZXIgc2Nyb2xsaW5nIHNvIHRoYXQgaXQgY2FuIGJlIHJlYWQgYnkgYGhhbmRsZVNtb290aFNjcm9sbGBcbiAgICAgICAgICAgICAgICBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIFNldCBmb2N1cyBvbiB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgIGRvbU5vZGUuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59XG5mdW5jdGlvbiBTY3JvbGxBbmRGb2N1c0hhbmRsZXIocGFyYW0pIHtcbiAgICBsZXQgeyBzZWdtZW50UGF0aCwgY2hpbGRyZW4gfSA9IHBhcmFtO1xuICAgIGNvbnN0IGNvbnRleHQgPSAoMCwgX3JlYWN0LnVzZUNvbnRleHQpKF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZS5HbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0KTtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YXJpYW50IGdsb2JhbCBsYXlvdXQgcm91dGVyIG5vdCBtb3VudGVkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShJbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlciwge1xuICAgICAgICBzZWdtZW50UGF0aDogc2VnbWVudFBhdGgsXG4gICAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmOiBjb250ZXh0LmZvY3VzQW5kU2Nyb2xsUmVmLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KTtcbn1cbi8qKlxuICogSW5uZXJMYXlvdXRSb3V0ZXIgaGFuZGxlcyByZW5kZXJpbmcgdGhlIHByb3ZpZGVkIHNlZ21lbnQgYmFzZWQgb24gdGhlIGNhY2hlLlxuICovIGZ1bmN0aW9uIElubmVyTGF5b3V0Um91dGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgcGFyYWxsZWxSb3V0ZXJLZXksIHVybCwgY2hpbGROb2Rlcywgc2VnbWVudFBhdGgsIHRyZWUsIC8vIFRPRE8tQVBQOiBpbXBsZW1lbnQgYDxPZmZzY3JlZW4+YCB3aGVuIGF2YWlsYWJsZS5cbiAgICAvLyBpc0FjdGl2ZSxcbiAgICBjYWNoZUtleSB9ID0gcGFyYW07XG4gICAgY29uc3QgY29udGV4dCA9ICgwLCBfcmVhY3QudXNlQ29udGV4dCkoX2FwcHJvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lLkdsb2JhbExheW91dFJvdXRlckNvbnRleHQpO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhcmlhbnQgZ2xvYmFsIGxheW91dCByb3V0ZXIgbm90IG1vdW50ZWRcIik7XG4gICAgfVxuICAgIGNvbnN0IHsgYnVpbGRJZCwgY2hhbmdlQnlTZXJ2ZXJSZXNwb25zZSwgdHJlZTogZnVsbFRyZWUgfSA9IGNvbnRleHQ7XG4gICAgLy8gUmVhZCBzZWdtZW50IHBhdGggZnJvbSB0aGUgcGFyYWxsZWwgcm91dGVyIGNhY2hlIG5vZGUuXG4gICAgbGV0IGNoaWxkTm9kZSA9IGNoaWxkTm9kZXMuZ2V0KGNhY2hlS2V5KTtcbiAgICAvLyBXaGVuIGRhdGEgaXMgbm90IGF2YWlsYWJsZSBkdXJpbmcgcmVuZGVyaW5nIGNsaWVudC1zaWRlIHdlIG5lZWQgdG8gZmV0Y2hcbiAgICAvLyBpdCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgaWYgKGNoaWxkTm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG5ld0xhenlDYWNoZU5vZGUgPSB7XG4gICAgICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgICAgIHJzYzogbnVsbCxcbiAgICAgICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICAgICAgaGVhZDogbnVsbCxcbiAgICAgICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKClcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICogRmxpZ2h0IGRhdGEgZmV0Y2gga2lja2VkIG9mZiBkdXJpbmcgcmVuZGVyIGFuZCBwdXQgaW50byB0aGUgY2FjaGUuXG4gICAgICovIGNoaWxkTm9kZSA9IG5ld0xhenlDYWNoZU5vZGU7XG4gICAgICAgIGNoaWxkTm9kZXMuc2V0KGNhY2hlS2V5LCBuZXdMYXp5Q2FjaGVOb2RlKTtcbiAgICB9XG4gICAgLy8gYHJzY2AgcmVwcmVzZW50cyB0aGUgcmVuZGVyYWJsZSBub2RlIGZvciB0aGlzIHNlZ21lbnQuXG4gICAgLy8gSWYgdGhpcyBzZWdtZW50IGhhcyBhIGBwcmVmZXRjaFJzY2AsIGl0J3MgdGhlIHN0YXRpY2FsbHkgcHJlZmV0Y2hlZCBkYXRhLlxuICAgIC8vIFdlIHNob3VsZCB1c2UgdGhhdCBvbiBpbml0aWFsIHJlbmRlciBpbnN0ZWFkIG9mIGByc2NgLiBUaGVuIHdlJ2xsIHN3aXRjaFxuICAgIC8vIHRvIGByc2NgIHdoZW4gdGhlIGR5bmFtaWMgcmVzcG9uc2Ugc3RyZWFtcyBpbi5cbiAgICAvL1xuICAgIC8vIElmIG5vIHByZWZldGNoIGRhdGEgaXMgYXZhaWxhYmxlLCB0aGVuIHdlIGdvIHN0cmFpZ2h0IHRvIHJlbmRlcmluZyBgcnNjYC5cbiAgICBjb25zdCByZXNvbHZlZFByZWZldGNoUnNjID0gY2hpbGROb2RlLnByZWZldGNoUnNjICE9PSBudWxsID8gY2hpbGROb2RlLnByZWZldGNoUnNjIDogY2hpbGROb2RlLnJzYztcbiAgICAvLyBXZSB1c2UgYHVzZURlZmVycmVkVmFsdWVgIHRvIGhhbmRsZSBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgcHJlZmV0Y2hlZCBhbmRcbiAgICAvLyBmaW5hbCB2YWx1ZXMuIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgcmV0dXJuZWQgb24gaW5pdGlhbCByZW5kZXIsIHRoZW4gaXRcbiAgICAvLyByZS1yZW5kZXJzIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50LlxuICAgIC8vXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGB1c2VEZWZlcnJlZFZhbHVlYCBpcyBvbmx5XG4gICAgLy8gYXZhaWxhYmxlIGluIHRoZSBleHBlcmltZW50YWwgYnVpbGRzLiBXaGVuIGl0cyBkaXNhYmxlZCwgaXQgd2lsbCBhbHdheXNcbiAgICAvLyByZXR1cm4gYHJzY2AuXG4gICAgY29uc3QgcnNjID0gKDAsIF9yZWFjdC51c2VEZWZlcnJlZFZhbHVlKShjaGlsZE5vZGUucnNjLCByZXNvbHZlZFByZWZldGNoUnNjKTtcbiAgICAvLyBgcnNjYCBpcyBlaXRoZXIgYSBSZWFjdCBub2RlIG9yIGEgcHJvbWlzZSBmb3IgYSBSZWFjdCBub2RlLCBleGNlcHQgd2VcbiAgICAvLyBzcGVjaWFsIGNhc2UgYG51bGxgIHRvIHJlcHJlc2VudCB0aGF0IHRoaXMgc2VnbWVudCdzIGRhdGEgaXMgbWlzc2luZy4gSWZcbiAgICAvLyBpdCdzIGEgcHJvbWlzZSwgd2UgbmVlZCB0byB1bndyYXAgaXQgc28gd2UgY2FuIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGVcbiAgICAvLyBkYXRhIGlzIG1pc3NpbmcuXG4gICAgY29uc3QgcmVzb2x2ZWRSc2MgPSB0eXBlb2YgcnNjID09PSBcIm9iamVjdFwiICYmIHJzYyAhPT0gbnVsbCAmJiB0eXBlb2YgcnNjLnRoZW4gPT09IFwiZnVuY3Rpb25cIiA/ICgwLCBfcmVhY3QudXNlKShyc2MpIDogcnNjO1xuICAgIGlmICghcmVzb2x2ZWRSc2MpIHtcbiAgICAgICAgLy8gVGhlIGRhdGEgZm9yIHRoaXMgc2VnbWVudCBpcyBub3QgYXZhaWxhYmxlLCBhbmQgdGhlcmUncyBubyBwZW5kaW5nXG4gICAgICAgIC8vIG5hdmlnYXRpb24gdGhhdCB3aWxsIGJlIGFibGUgdG8gZnVsZmlsbCBpdC4gV2UgbmVlZCB0byBmZXRjaCBtb3JlIGZyb21cbiAgICAgICAgLy8gdGhlIHNlcnZlciBhbmQgcGF0Y2ggdGhlIGNhY2hlLlxuICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGFscmVhZHkgYSBwZW5kaW5nIHJlcXVlc3QuXG4gICAgICAgIGxldCBsYXp5RGF0YSA9IGNoaWxkTm9kZS5sYXp5RGF0YTtcbiAgICAgICAgaWYgKGxhenlEYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAqIFJvdXRlciBzdGF0ZSB3aXRoIHJlZmV0Y2ggbWFya2VyIGFkZGVkXG4gICAgICAgKi8gLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgICAgY29uc3QgcmVmZXRjaFRyZWUgPSB3YWxrQWRkUmVmZXRjaChbXG4gICAgICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgICAgICAuLi5zZWdtZW50UGF0aFxuICAgICAgICAgICAgXSwgZnVsbFRyZWUpO1xuICAgICAgICAgICAgY2hpbGROb2RlLmxhenlEYXRhID0gbGF6eURhdGEgPSAoMCwgX2ZldGNoc2VydmVycmVzcG9uc2UuZmV0Y2hTZXJ2ZXJSZXNwb25zZSkobmV3IFVSTCh1cmwsIGxvY2F0aW9uLm9yaWdpbiksIHJlZmV0Y2hUcmVlLCBjb250ZXh0Lm5leHRVcmwsIGJ1aWxkSWQpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAqIEZsaWdodCByZXNwb25zZSBkYXRhXG4gICAgICovIC8vIFdoZW4gdGhlIGRhdGEgaGFzIG5vdCByZXNvbHZlZCB5ZXQgYHVzZWAgd2lsbCBzdXNwZW5kIGhlcmUuXG4gICAgICAgIGNvbnN0IFtmbGlnaHREYXRhLCBvdmVycmlkZUNhbm9uaWNhbFVybF0gPSAoMCwgX3JlYWN0LnVzZSkobGF6eURhdGEpO1xuICAgICAgICAvLyBzZWdtZW50UGF0aCBmcm9tIHRoZSBzZXJ2ZXIgZG9lcyBub3QgbWF0Y2ggdGhlIGxheW91dCdzIHNlZ21lbnRQYXRoXG4gICAgICAgIGNoaWxkTm9kZS5sYXp5RGF0YSA9IG51bGw7XG4gICAgICAgIC8vIHNldFRpbWVvdXQgaXMgdXNlZCB0byBzdGFydCBhIG5ldyB0cmFuc2l0aW9uIGR1cmluZyByZW5kZXIsIHRoaXMgaXMgYW4gaW50ZW50aW9uYWwgaGFjayBhcm91bmQgUmVhY3QuXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICgwLCBfcmVhY3Quc3RhcnRUcmFuc2l0aW9uKSgoKT0+e1xuICAgICAgICAgICAgICAgIGNoYW5nZUJ5U2VydmVyUmVzcG9uc2UoZnVsbFRyZWUsIGZsaWdodERhdGEsIG92ZXJyaWRlQ2Fub25pY2FsVXJsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gU3VzcGVuZCBpbmZpbml0ZWx5IGFzIGBjaGFuZ2VCeVNlcnZlclJlc3BvbnNlYCB3aWxsIGNhdXNlIGEgZGlmZmVyZW50IHBhcnQgb2YgdGhlIHRyZWUgdG8gYmUgcmVuZGVyZWQuXG4gICAgICAgICgwLCBfcmVhY3QudXNlKSgoMCwgX2luZmluaXRlcHJvbWlzZS5jcmVhdGVJbmZpbml0ZVByb21pc2UpKCkpO1xuICAgIH1cbiAgICAvLyBJZiB3ZSBnZXQgdG8gdGhpcyBwb2ludCwgdGhlbiB3ZSBrbm93IHdlIGhhdmUgc29tZXRoaW5nIHdlIGNhbiByZW5kZXIuXG4gICAgY29uc3Qgc3VidHJlZSA9IC8vIFRoZSBsYXlvdXQgcm91dGVyIGNvbnRleHQgbmFycm93cyBkb3duIHRyZWUgYW5kIGNoaWxkTm9kZXMgYXQgZWFjaCBsZXZlbC5cbiAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZS5MYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICB0cmVlOiB0cmVlWzFdW3BhcmFsbGVsUm91dGVyS2V5XSxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IGNoaWxkTm9kZS5wYXJhbGxlbFJvdXRlcyxcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBvdmVycmlkaW5nIG9mIHVybCBmb3IgcGFyYWxsZWwgcm91dGVzXG4gICAgICAgICAgICB1cmw6IHVybFxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogcmVzb2x2ZWRSc2NcbiAgICB9KTtcbiAgICAvLyBFbnN1cmUgcm9vdCBsYXlvdXQgaXMgbm90IHdyYXBwZWQgaW4gYSBkaXYgYXMgdGhlIHJvb3QgbGF5b3V0IHJlbmRlcnMgYDxodG1sPmBcbiAgICByZXR1cm4gc3VidHJlZTtcbn1cbi8qKlxuICogUmVuZGVycyBzdXNwZW5zZSBib3VuZGFyeSB3aXRoIHRoZSBwcm92aWRlZCBcImxvYWRpbmdcIiBwcm9wZXJ0eSBhcyB0aGUgZmFsbGJhY2suXG4gKiBJZiBubyBsb2FkaW5nIHByb3BlcnR5IGlzIHByb3ZpZGVkIGl0IHJlbmRlcnMgdGhlIGNoaWxkcmVuIHdpdGhvdXQgYSBzdXNwZW5zZSBib3VuZGFyeS5cbiAqLyBmdW5jdGlvbiBMb2FkaW5nQm91bmRhcnkocGFyYW0pIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgbG9hZGluZywgbG9hZGluZ1N0eWxlcywgbG9hZGluZ1NjcmlwdHMsIGhhc0xvYWRpbmcgfSA9IHBhcmFtO1xuICAgIGlmIChoYXNMb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9yZWFjdC5TdXNwZW5zZSwge1xuICAgICAgICAgICAgZmFsbGJhY2s6IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0eWxlcyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1NjcmlwdHMsXG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmdcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2pzeHJ1bnRpbWUuRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgfSk7XG59XG5mdW5jdGlvbiBPdXRlckxheW91dFJvdXRlcihwYXJhbSkge1xuICAgIGxldCB7IHBhcmFsbGVsUm91dGVyS2V5LCBzZWdtZW50UGF0aCwgZXJyb3IsIGVycm9yU3R5bGVzLCBlcnJvclNjcmlwdHMsIHRlbXBsYXRlU3R5bGVzLCB0ZW1wbGF0ZVNjcmlwdHMsIGxvYWRpbmcsIGxvYWRpbmdTdHlsZXMsIGxvYWRpbmdTY3JpcHRzLCBoYXNMb2FkaW5nLCB0ZW1wbGF0ZSwgbm90Rm91bmQsIG5vdEZvdW5kU3R5bGVzLCBzdHlsZXMgfSA9IHBhcmFtO1xuICAgIGNvbnN0IGNvbnRleHQgPSAoMCwgX3JlYWN0LnVzZUNvbnRleHQpKF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZS5MYXlvdXRSb3V0ZXJDb250ZXh0KTtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YXJpYW50IGV4cGVjdGVkIGxheW91dCByb3V0ZXIgdG8gYmUgbW91bnRlZFwiKTtcbiAgICB9XG4gICAgY29uc3QgeyBjaGlsZE5vZGVzLCB0cmVlLCB1cmwgfSA9IGNvbnRleHQ7XG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IHBhcmFsbGVsUm91dGVyIGNhY2hlIG5vZGVcbiAgICBsZXQgY2hpbGROb2Rlc0ZvclBhcmFsbGVsUm91dGVyID0gY2hpbGROb2Rlcy5nZXQocGFyYWxsZWxSb3V0ZXJLZXkpO1xuICAgIC8vIElmIHRoZSBwYXJhbGxlbCByb3V0ZXIgY2FjaGUgbm9kZSBkb2VzIG5vdCBleGlzdCB5ZXQsIGNyZWF0ZSBpdC5cbiAgICAvLyBUaGlzIHdyaXRlcyB0byB0aGUgY2FjaGUgd2hlbiB0aGVyZSBpcyBubyBpdGVtIGluIHRoZSBjYWNoZSB5ZXQuIEl0IG5ldmVyICpvdmVyd3JpdGVzKiBleGlzdGluZyBjYWNoZSBpdGVtcyB3aGljaCBpcyB3aHkgaXQncyBzYWZlIGluIGNvbmN1cnJlbnQgbW9kZS5cbiAgICBpZiAoIWNoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlcikge1xuICAgICAgICBjaGlsZE5vZGVzRm9yUGFyYWxsZWxSb3V0ZXIgPSBuZXcgTWFwKCk7XG4gICAgICAgIGNoaWxkTm9kZXMuc2V0KHBhcmFsbGVsUm91dGVyS2V5LCBjaGlsZE5vZGVzRm9yUGFyYWxsZWxSb3V0ZXIpO1xuICAgIH1cbiAgICAvLyBHZXQgdGhlIGFjdGl2ZSBzZWdtZW50IGluIHRoZSB0cmVlXG4gICAgLy8gVGhlIHJlYXNvbiBhcnJheXMgYXJlIHVzZWQgaW4gdGhlIGRhdGEgZm9ybWF0IGlzIHRoYXQgdGhlc2UgYXJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHNlcnZlciB0byB0aGUgYnJvd3NlciBzbyBpdCdzIG9wdGltaXplZCB0byBzYXZlIGJ5dGVzLlxuICAgIGNvbnN0IHRyZWVTZWdtZW50ID0gdHJlZVsxXVtwYXJhbGxlbFJvdXRlcktleV1bMF07XG4gICAgLy8gSWYgc2VnbWVudCBpcyBhbiBhcnJheSBpdCdzIGEgZHluYW1pYyByb3V0ZSBhbmQgd2Ugd2FudCB0byByZWFkIHRoZSBkeW5hbWljIHJvdXRlIHZhbHVlIGFzIHRoZSBzZWdtZW50IHRvIGdldCBmcm9tIHRoZSBjYWNoZS5cbiAgICBjb25zdCBjdXJyZW50Q2hpbGRTZWdtZW50VmFsdWUgPSAoMCwgX2dldHNlZ21lbnR2YWx1ZS5nZXRTZWdtZW50VmFsdWUpKHRyZWVTZWdtZW50KTtcbiAgICAvKipcbiAgICogRGVjaWRlcyB3aGljaCBzZWdtZW50cyB0byBrZWVwIHJlbmRlcmluZywgYWxsIHNlZ21lbnRzIHRoYXQgYXJlIG5vdCBhY3RpdmUgd2lsbCBiZSB3cmFwcGVkIGluIGA8T2Zmc2NyZWVuPmAuXG4gICAqLyAvLyBUT0RPLUFQUDogQWRkIGhhbmRsaW5nIG9mIGA8T2Zmc2NyZWVuPmAgd2hlbiBpdCdzIGF2YWlsYWJsZS5cbiAgICBjb25zdCBwcmVzZXJ2ZWRTZWdtZW50cyA9IFtcbiAgICAgICAgdHJlZVNlZ21lbnRcbiAgICBdO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShfanN4cnVudGltZS5GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgc3R5bGVzLFxuICAgICAgICAgICAgcHJlc2VydmVkU2VnbWVudHMubWFwKChwcmVzZXJ2ZWRTZWdtZW50KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXNlcnZlZFNlZ21lbnRWYWx1ZSA9ICgwLCBfZ2V0c2VnbWVudHZhbHVlLmdldFNlZ21lbnRWYWx1ZSkocHJlc2VydmVkU2VnbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGVLZXkgPSAoMCwgX2NyZWF0ZXJvdXRlcmNhY2hla2V5LmNyZWF0ZVJvdXRlckNhY2hlS2V5KShwcmVzZXJ2ZWRTZWdtZW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm4oLypcbiAgICAgICAgICAgIC0gRXJyb3IgYm91bmRhcnlcbiAgICAgICAgICAgICAgLSBPbmx5IHJlbmRlcnMgZXJyb3IgYm91bmRhcnkgaWYgZXJyb3IgY29tcG9uZW50IGlzIHByb3ZpZGVkLlxuICAgICAgICAgICAgICAtIFJlbmRlcmVkIGZvciBlYWNoIHNlZ21lbnQgdG8gZW5zdXJlIHRoZXkgaGF2ZSB0aGVpciBvd24gZXJyb3Igc3RhdGUuXG4gICAgICAgICAgICAtIExvYWRpbmcgYm91bmRhcnlcbiAgICAgICAgICAgICAgLSBPbmx5IHJlbmRlcnMgc3VzcGVuc2UgYm91bmRhcnkgaWYgbG9hZGluZyBjb21wb25lbnRzIGlzIHByb3ZpZGVkLlxuICAgICAgICAgICAgICAtIFJlbmRlcmVkIGZvciBlYWNoIHNlZ21lbnQgdG8gZW5zdXJlIHRoZXkgaGF2ZSB0aGVpciBvd24gbG9hZGluZyBzdGF0ZS5cbiAgICAgICAgICAgICAgLSBQYXNzZWQgdG8gdGhlIHJvdXRlciBkdXJpbmcgcmVuZGVyaW5nIHRvIGVuc3VyZSBpdCBjYW4gYmUgaW1tZWRpYXRlbHkgcmVuZGVyZWQgd2hlbiBzdXNwZW5kaW5nIG9uIGEgRmxpZ2h0IGZldGNoLlxuICAgICAgICAgICovIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZS5UZW1wbGF0ZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoU2Nyb2xsQW5kRm9jdXNIYW5kbGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50UGF0aDogc2VnbWVudFBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfZXJyb3Jib3VuZGFyeS5FcnJvckJvdW5kYXJ5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb21wb25lbnQ6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yU3R5bGVzOiBlcnJvclN0eWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclNjcmlwdHM6IGVycm9yU2NyaXB0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShMb2FkaW5nQm91bmRhcnksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTG9hZGluZzogaGFzTG9hZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogbG9hZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0eWxlczogbG9hZGluZ1N0eWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1NjcmlwdHM6IGxvYWRpbmdTY3JpcHRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfbm90Zm91bmRib3VuZGFyeS5Ob3RGb3VuZEJvdW5kYXJ5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZDogbm90Rm91bmQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFN0eWxlczogbm90Rm91bmRTdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfcmVkaXJlY3Rib3VuZGFyeS5SZWRpcmVjdEJvdW5kYXJ5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoSW5uZXJMYXlvdXRSb3V0ZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXJLZXk6IHBhcmFsbGVsUm91dGVyS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZTogdHJlZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGROb2RlczogY2hpbGROb2Rlc0ZvclBhcmFsbGVsUm91dGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50UGF0aDogc2VnbWVudFBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5OiBjYWNoZUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmU6IGN1cnJlbnRDaGlsZFNlZ21lbnRWYWx1ZSA9PT0gcHJlc2VydmVkU2VnbWVudFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVTdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZVNjcmlwdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSwgKDAsIF9jcmVhdGVyb3V0ZXJjYWNoZWtleS5jcmVhdGVSb3V0ZXJDYWNoZUtleSkocHJlc2VydmVkU2VnbWVudCwgdHJ1ZSkpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGF5b3V0LXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiT3V0ZXJMYXlvdXRSb3V0ZXIiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJyZXF1aXJlIiwiX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCIsIl9qc3hydW50aW1lIiwiX3JlYWN0IiwiXyIsIl9yZWFjdGRvbSIsIl9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZSIsIl9mZXRjaHNlcnZlcnJlc3BvbnNlIiwiX2luZmluaXRlcHJvbWlzZSIsIl9lcnJvcmJvdW5kYXJ5IiwiX21hdGNoc2VnbWVudHMiLCJfaGFuZGxlc21vb3Roc2Nyb2xsIiwiX3JlZGlyZWN0Ym91bmRhcnkiLCJfbm90Zm91bmRib3VuZGFyeSIsIl9nZXRzZWdtZW50dmFsdWUiLCJfY3JlYXRlcm91dGVyY2FjaGVrZXkiLCJ3YWxrQWRkUmVmZXRjaCIsInNlZ21lbnRQYXRoVG9XYWxrIiwidHJlZVRvUmVjcmVhdGUiLCJzZWdtZW50IiwicGFyYWxsZWxSb3V0ZUtleSIsImlzTGFzdCIsImxlbmd0aCIsIm1hdGNoU2VnbWVudCIsImhhc093blByb3BlcnR5Iiwic3ViVHJlZSIsInVuZGVmaW5lZCIsInNsaWNlIiwiZmluZERPTU5vZGUiLCJpbnN0YW5jZSIsInByb2Nlc3MiLCJvcmlnaW5hbENvbnNvbGVFcnJvciIsImNvbnNvbGUiLCJlcnJvciIsIl9sZW4iLCJhcmd1bWVudHMiLCJtZXNzYWdlcyIsIkFycmF5IiwiX2tleSIsImluY2x1ZGVzIiwiZGVmYXVsdCIsInJlY3RQcm9wZXJ0aWVzIiwic2hvdWxkU2tpcEVsZW1lbnQiLCJlbGVtZW50IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInBvc2l0aW9uIiwid2FybiIsInJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJldmVyeSIsIml0ZW0iLCJ0b3BPZkVsZW1lbnRJblZpZXdwb3J0Iiwidmlld3BvcnRIZWlnaHQiLCJ0b3AiLCJnZXRIYXNoRnJhZ21lbnREb21Ob2RlIiwiaGFzaEZyYWdtZW50IiwiZG9jdW1lbnQiLCJib2R5IiwiX2RvY3VtZW50X2dldEVsZW1lbnRCeUlkIiwiZ2V0RWxlbWVudEJ5SWQiLCJnZXRFbGVtZW50c0J5TmFtZSIsIklubmVyU2Nyb2xsQW5kRm9jdXNIYW5kbGVyIiwiQ29tcG9uZW50IiwiY29tcG9uZW50RGlkTW91bnQiLCJoYW5kbGVQb3RlbnRpYWxTY3JvbGwiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcm9wcyIsImZvY3VzQW5kU2Nyb2xsUmVmIiwiYXBwbHkiLCJyZW5kZXIiLCJjaGlsZHJlbiIsImNvbnN0cnVjdG9yIiwiYXJncyIsInNlZ21lbnRQYXRoIiwic2VnbWVudFBhdGhzIiwic29tZSIsInNjcm9sbFJlZlNlZ21lbnRQYXRoIiwiaW5kZXgiLCJkb21Ob2RlIiwiRWxlbWVudCIsIkhUTUxFbGVtZW50IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaGFuZGxlU21vb3RoU2Nyb2xsIiwic2Nyb2xsSW50b1ZpZXciLCJodG1sRWxlbWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudEhlaWdodCIsInNjcm9sbFRvcCIsImRvbnRGb3JjZUxheW91dCIsIm9ubHlIYXNoQ2hhbmdlIiwiZm9jdXMiLCJTY3JvbGxBbmRGb2N1c0hhbmRsZXIiLCJwYXJhbSIsImNvbnRleHQiLCJ1c2VDb250ZXh0IiwiR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCIsIkVycm9yIiwianN4IiwiSW5uZXJMYXlvdXRSb3V0ZXIiLCJwYXJhbGxlbFJvdXRlcktleSIsInVybCIsImNoaWxkTm9kZXMiLCJ0cmVlIiwiY2FjaGVLZXkiLCJidWlsZElkIiwiY2hhbmdlQnlTZXJ2ZXJSZXNwb25zZSIsImZ1bGxUcmVlIiwiY2hpbGROb2RlIiwibmV3TGF6eUNhY2hlTm9kZSIsImxhenlEYXRhIiwicnNjIiwicHJlZmV0Y2hSc2MiLCJoZWFkIiwicGFyYWxsZWxSb3V0ZXMiLCJNYXAiLCJzZXQiLCJyZXNvbHZlZFByZWZldGNoUnNjIiwidXNlRGVmZXJyZWRWYWx1ZSIsInJlc29sdmVkUnNjIiwidGhlbiIsInVzZSIsInJlZmV0Y2hUcmVlIiwiZmV0Y2hTZXJ2ZXJSZXNwb25zZSIsIlVSTCIsImxvY2F0aW9uIiwib3JpZ2luIiwibmV4dFVybCIsImZsaWdodERhdGEiLCJvdmVycmlkZUNhbm9uaWNhbFVybCIsInNldFRpbWVvdXQiLCJzdGFydFRyYW5zaXRpb24iLCJjcmVhdGVJbmZpbml0ZVByb21pc2UiLCJzdWJ0cmVlIiwiTGF5b3V0Um91dGVyQ29udGV4dCIsIlByb3ZpZGVyIiwiTG9hZGluZ0JvdW5kYXJ5IiwibG9hZGluZyIsImxvYWRpbmdTdHlsZXMiLCJsb2FkaW5nU2NyaXB0cyIsImhhc0xvYWRpbmciLCJTdXNwZW5zZSIsImZhbGxiYWNrIiwianN4cyIsIkZyYWdtZW50IiwiZXJyb3JTdHlsZXMiLCJlcnJvclNjcmlwdHMiLCJ0ZW1wbGF0ZVN0eWxlcyIsInRlbXBsYXRlU2NyaXB0cyIsInRlbXBsYXRlIiwibm90Rm91bmQiLCJub3RGb3VuZFN0eWxlcyIsInN0eWxlcyIsImNoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlciIsInRyZWVTZWdtZW50IiwiY3VycmVudENoaWxkU2VnbWVudFZhbHVlIiwiZ2V0U2VnbWVudFZhbHVlIiwicHJlc2VydmVkU2VnbWVudHMiLCJtYXAiLCJwcmVzZXJ2ZWRTZWdtZW50IiwicHJlc2VydmVkU2VnbWVudFZhbHVlIiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJUZW1wbGF0ZUNvbnRleHQiLCJFcnJvckJvdW5kYXJ5IiwiZXJyb3JDb21wb25lbnQiLCJOb3RGb3VuZEJvdW5kYXJ5IiwiUmVkaXJlY3RCb3VuZGFyeSIsImlzQWN0aXZlIiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/layout-router.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/match-segments.js": +/*!********************************************************************!*\ + !*** ./node_modules/next/dist/client/components/match-segments.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 matchSegment: function() {\n return matchSegment;\n },\n canSegmentBeOverridden: function() {\n return canSegmentBeOverridden;\n }\n});\nconst _getsegmentparam = __webpack_require__(/*! ../../server/app-render/get-segment-param */ \"(ssr)/./node_modules/next/dist/server/app-render/get-segment-param.js\");\nconst matchSegment = (existingSegment, segment)=>{\n // segment is either Array or string\n if (typeof existingSegment === \"string\") {\n if (typeof segment === \"string\") {\n // Common case: segment is just a string\n return existingSegment === segment;\n }\n return false;\n }\n if (typeof segment === \"string\") {\n return false;\n }\n return existingSegment[0] === segment[0] && existingSegment[1] === segment[1];\n};\nconst canSegmentBeOverridden = (existingSegment, segment)=>{\n var _getSegmentParam;\n if (Array.isArray(existingSegment) || !Array.isArray(segment)) {\n return false;\n }\n return ((_getSegmentParam = (0, _getsegmentparam.getSegmentParam)(existingSegment)) == null ? void 0 : _getSegmentParam.param) === segment[0];\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=match-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21hdGNoLXNlZ21lbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGLEtBQU1DLENBQUFBLENBR047QUFDQSxTQUFTRyxRQUFRQyxNQUFNLEVBQUVDLEdBQUc7SUFDeEIsSUFBSSxJQUFJQyxRQUFRRCxJQUFJVCxPQUFPQyxjQUFjLENBQUNPLFFBQVFFLE1BQU07UUFDcERDLFlBQVk7UUFDWkMsS0FBS0gsR0FBRyxDQUFDQyxLQUFLO0lBQ2xCO0FBQ0o7QUFDQUgsUUFBUUwsU0FBUztJQUNiRyxjQUFjO1FBQ1YsT0FBT0E7SUFDWDtJQUNBQyx3QkFBd0I7UUFDcEIsT0FBT0E7SUFDWDtBQUNKO0FBQ0EsTUFBTU8sbUJBQW1CQyxtQkFBT0EsQ0FBQyx3SEFBMkM7QUFDNUUsTUFBTVQsZUFBZSxDQUFDVSxpQkFBaUJDO0lBQ25DLG9DQUFvQztJQUNwQyxJQUFJLE9BQU9ELG9CQUFvQixVQUFVO1FBQ3JDLElBQUksT0FBT0MsWUFBWSxVQUFVO1lBQzdCLHdDQUF3QztZQUN4QyxPQUFPRCxvQkFBb0JDO1FBQy9CO1FBQ0EsT0FBTztJQUNYO0lBQ0EsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDN0IsT0FBTztJQUNYO0lBQ0EsT0FBT0QsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUUsSUFBSUQsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUU7QUFDakY7QUFDQSxNQUFNVix5QkFBeUIsQ0FBQ1MsaUJBQWlCQztJQUM3QyxJQUFJQztJQUNKLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0osb0JBQW9CLENBQUNHLE1BQU1DLE9BQU8sQ0FBQ0gsVUFBVTtRQUMzRCxPQUFPO0lBQ1g7SUFDQSxPQUFPLENBQUMsQ0FBQ0MsbUJBQW1CLENBQUMsR0FBR0osaUJBQWlCTyxlQUFlLEVBQUVMLGdCQUFlLEtBQU0sT0FBTyxLQUFLLElBQUlFLGlCQUFpQkksS0FBSyxNQUFNTCxPQUFPLENBQUMsRUFBRTtBQUNqSjtBQUVBLElBQUksQ0FBQyxPQUFPZCxRQUFRb0IsT0FBTyxLQUFLLGNBQWUsT0FBT3BCLFFBQVFvQixPQUFPLEtBQUssWUFBWXBCLFFBQVFvQixPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9wQixRQUFRb0IsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS3ZCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUW9CLE9BQU8sRUFBRSxjQUFjO1FBQUVuQixPQUFPO0lBQUs7SUFDbkVILE9BQU93QixNQUFNLENBQUN0QixRQUFRb0IsT0FBTyxFQUFFcEI7SUFDL0JFLE9BQU9GLE9BQU8sR0FBR0EsUUFBUW9CLE9BQU87QUFDbEMsRUFFQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21hdGNoLXNlZ21lbnRzLmpzP2JjYjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBtYXRjaFNlZ21lbnQ6IG51bGwsXG4gICAgY2FuU2VnbWVudEJlT3ZlcnJpZGRlbjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBtYXRjaFNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbWF0Y2hTZWdtZW50O1xuICAgIH0sXG4gICAgY2FuU2VnbWVudEJlT3ZlcnJpZGRlbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjYW5TZWdtZW50QmVPdmVycmlkZGVuO1xuICAgIH1cbn0pO1xuY29uc3QgX2dldHNlZ21lbnRwYXJhbSA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9nZXQtc2VnbWVudC1wYXJhbVwiKTtcbmNvbnN0IG1hdGNoU2VnbWVudCA9IChleGlzdGluZ1NlZ21lbnQsIHNlZ21lbnQpPT57XG4gICAgLy8gc2VnbWVudCBpcyBlaXRoZXIgQXJyYXkgb3Igc3RyaW5nXG4gICAgaWYgKHR5cGVvZiBleGlzdGluZ1NlZ21lbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAvLyBDb21tb24gY2FzZTogc2VnbWVudCBpcyBqdXN0IGEgc3RyaW5nXG4gICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdTZWdtZW50ID09PSBzZWdtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nU2VnbWVudFswXSA9PT0gc2VnbWVudFswXSAmJiBleGlzdGluZ1NlZ21lbnRbMV0gPT09IHNlZ21lbnRbMV07XG59O1xuY29uc3QgY2FuU2VnbWVudEJlT3ZlcnJpZGRlbiA9IChleGlzdGluZ1NlZ21lbnQsIHNlZ21lbnQpPT57XG4gICAgdmFyIF9nZXRTZWdtZW50UGFyYW07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmdTZWdtZW50KSB8fCAhQXJyYXkuaXNBcnJheShzZWdtZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAoKF9nZXRTZWdtZW50UGFyYW0gPSAoMCwgX2dldHNlZ21lbnRwYXJhbS5nZXRTZWdtZW50UGFyYW0pKGV4aXN0aW5nU2VnbWVudCkpID09IG51bGwgPyB2b2lkIDAgOiBfZ2V0U2VnbWVudFBhcmFtLnBhcmFtKSA9PT0gc2VnbWVudFswXTtcbn07XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1hdGNoLXNlZ21lbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm1vZHVsZSIsIm1hdGNoU2VnbWVudCIsImNhblNlZ21lbnRCZU92ZXJyaWRkZW4iLCJfZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImVudW1lcmFibGUiLCJnZXQiLCJfZ2V0c2VnbWVudHBhcmFtIiwicmVxdWlyZSIsImV4aXN0aW5nU2VnbWVudCIsInNlZ21lbnQiLCJfZ2V0U2VnbWVudFBhcmFtIiwiQXJyYXkiLCJpc0FycmF5IiwiZ2V0U2VnbWVudFBhcmFtIiwicGFyYW0iLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/match-segments.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/navigation.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/components/navigation.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 ReadonlyURLSearchParams: function() {\n return ReadonlyURLSearchParams;\n },\n useSearchParams: function() {\n return useSearchParams;\n },\n usePathname: function() {\n return usePathname;\n },\n ServerInsertedHTMLContext: function() {\n return _serverinsertedhtmlsharedruntime.ServerInsertedHTMLContext;\n },\n useServerInsertedHTML: function() {\n return _serverinsertedhtmlsharedruntime.useServerInsertedHTML;\n },\n useRouter: function() {\n return useRouter;\n },\n useParams: function() {\n return useParams;\n },\n useSelectedLayoutSegments: function() {\n return useSelectedLayoutSegments;\n },\n useSelectedLayoutSegment: function() {\n return useSelectedLayoutSegment;\n },\n redirect: function() {\n return _redirect.redirect;\n },\n permanentRedirect: function() {\n return _redirect.permanentRedirect;\n },\n RedirectType: function() {\n return _redirect.RedirectType;\n },\n notFound: function() {\n return _notfound.notFound;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\nconst _clienthookinservercomponenterror = __webpack_require__(/*! ./client-hook-in-server-component-error */ \"(ssr)/./node_modules/next/dist/client/components/client-hook-in-server-component-error.js\");\nconst _getsegmentvalue = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _serverinsertedhtmlsharedruntime = __webpack_require__(/*! ../../shared/lib/server-inserted-html.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js\");\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _notfound = __webpack_require__(/*! ./not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst INTERNAL_URLSEARCHPARAMS_INSTANCE = Symbol(\"internal for urlsearchparams readonly\");\nfunction readonlyURLSearchParamsError() {\n return new Error(\"ReadonlyURLSearchParams cannot be modified\");\n}\nclass ReadonlyURLSearchParams {\n [Symbol.iterator]() {\n return this[INTERNAL_URLSEARCHPARAMS_INSTANCE][Symbol.iterator]();\n }\n append() {\n throw readonlyURLSearchParamsError();\n }\n delete() {\n throw readonlyURLSearchParamsError();\n }\n set() {\n throw readonlyURLSearchParamsError();\n }\n sort() {\n throw readonlyURLSearchParamsError();\n }\n constructor(urlSearchParams){\n this[INTERNAL_URLSEARCHPARAMS_INSTANCE] = urlSearchParams;\n this.entries = urlSearchParams.entries.bind(urlSearchParams);\n this.forEach = urlSearchParams.forEach.bind(urlSearchParams);\n this.get = urlSearchParams.get.bind(urlSearchParams);\n this.getAll = urlSearchParams.getAll.bind(urlSearchParams);\n this.has = urlSearchParams.has.bind(urlSearchParams);\n this.keys = urlSearchParams.keys.bind(urlSearchParams);\n this.values = urlSearchParams.values.bind(urlSearchParams);\n this.toString = urlSearchParams.toString.bind(urlSearchParams);\n this.size = urlSearchParams.size;\n }\n}\nfunction useSearchParams() {\n (0, _clienthookinservercomponenterror.clientHookInServerComponentError)(\"useSearchParams\");\n const searchParams = (0, _react.useContext)(_hooksclientcontextsharedruntime.SearchParamsContext);\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = (0, _react.useMemo)(()=>{\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null;\n }\n return new ReadonlyURLSearchParams(searchParams);\n }, [\n searchParams\n ]);\n if (true) {\n // AsyncLocalStorage should not be included in the client bundle.\n const { bailoutToClientRendering } = __webpack_require__(/*! ./bailout-to-client-rendering */ \"(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js\");\n // TODO-APP: handle dynamic = 'force-static' here and on the client\n bailoutToClientRendering(\"useSearchParams()\");\n }\n return readonlySearchParams;\n}\nfunction usePathname() {\n (0, _clienthookinservercomponenterror.clientHookInServerComponentError)(\"usePathname\");\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathnameContext);\n}\nfunction useRouter() {\n (0, _clienthookinservercomponenterror.clientHookInServerComponentError)(\"useRouter\");\n const router = (0, _react.useContext)(_approutercontextsharedruntime.AppRouterContext);\n if (router === null) {\n throw new Error(\"invariant expected app router to be mounted\");\n }\n return router;\n}\n// this function performs a depth-first search of the tree to find the selected\n// params\nfunction getSelectedParams(tree, params) {\n if (params === void 0) params = {};\n const parallelRoutes = tree[1];\n for (const parallelRoute of Object.values(parallelRoutes)){\n const segment = parallelRoute[0];\n const isDynamicParameter = Array.isArray(segment);\n const segmentValue = isDynamicParameter ? segment[1] : segment;\n if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue;\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll = isDynamicParameter && (segment[2] === \"c\" || segment[2] === \"oc\");\n if (isCatchAll) {\n params[segment[0]] = segment[1].split(\"/\");\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1];\n }\n params = getSelectedParams(parallelRoute, params);\n }\n return params;\n}\nfunction useParams() {\n (0, _clienthookinservercomponenterror.clientHookInServerComponentError)(\"useParams\");\n const globalLayoutRouter = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n const pathParams = (0, _react.useContext)(_hooksclientcontextsharedruntime.PathParamsContext);\n return (0, _react.useMemo)(()=>{\n // When it's under app router\n if (globalLayoutRouter == null ? void 0 : globalLayoutRouter.tree) {\n return getSelectedParams(globalLayoutRouter.tree);\n }\n // When it's under client side pages router\n return pathParams;\n }, [\n globalLayoutRouter == null ? void 0 : globalLayoutRouter.tree,\n pathParams\n ]);\n}\n// TODO-APP: handle parallel routes\n/**\n * Get the canonical parameters from the current level to the leaf node.\n */ function getSelectedLayoutSegmentPath(tree, parallelRouteKey, first, segmentPath) {\n if (first === void 0) first = true;\n if (segmentPath === void 0) segmentPath = [];\n let node;\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey];\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1];\n var _parallelRoutes_children;\n node = (_parallelRoutes_children = parallelRoutes.children) != null ? _parallelRoutes_children : Object.values(parallelRoutes)[0];\n }\n if (!node) return segmentPath;\n const segment = node[0];\n const segmentValue = (0, _getsegmentvalue.getSegmentValue)(segment);\n if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n return segmentPath;\n }\n segmentPath.push(segmentValue);\n return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath);\n}\nfunction useSelectedLayoutSegments(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = \"children\";\n (0, _clienthookinservercomponenterror.clientHookInServerComponentError)(\"useSelectedLayoutSegments\");\n const { tree } = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n return getSelectedLayoutSegmentPath(tree, parallelRouteKey);\n}\nfunction useSelectedLayoutSegment(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = \"children\";\n (0, _clienthookinservercomponenterror.clientHookInServerComponentError)(\"useSelectedLayoutSegment\");\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);\n if (selectedLayoutSegments.length === 0) {\n return null;\n }\n return selectedLayoutSegments[0];\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=navigation.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0YsS0FBTUMsQ0FBQUEsQ0FjTjtBQUNBLFNBQVNjLFFBQVFDLE1BQU0sRUFBRUMsR0FBRztJQUN4QixJQUFJLElBQUlDLFFBQVFELElBQUlwQixPQUFPQyxjQUFjLENBQUNrQixRQUFRRSxNQUFNO1FBQ3BEQyxZQUFZO1FBQ1pDLEtBQUtILEdBQUcsQ0FBQ0MsS0FBSztJQUNsQjtBQUNKO0FBQ0FILFFBQVFoQixTQUFTO0lBQ2JHLHlCQUF5QjtRQUNyQixPQUFPQTtJQUNYO0lBQ0FDLGlCQUFpQjtRQUNiLE9BQU9BO0lBQ1g7SUFDQUMsYUFBYTtRQUNULE9BQU9BO0lBQ1g7SUFDQUMsMkJBQTJCO1FBQ3ZCLE9BQU9nQixpQ0FBaUNoQix5QkFBeUI7SUFDckU7SUFDQUMsdUJBQXVCO1FBQ25CLE9BQU9lLGlDQUFpQ2YscUJBQXFCO0lBQ2pFO0lBQ0FDLFdBQVc7UUFDUCxPQUFPQTtJQUNYO0lBQ0FDLFdBQVc7UUFDUCxPQUFPQTtJQUNYO0lBQ0FDLDJCQUEyQjtRQUN2QixPQUFPQTtJQUNYO0lBQ0FDLDBCQUEwQjtRQUN0QixPQUFPQTtJQUNYO0lBQ0FDLFVBQVU7UUFDTixPQUFPVyxVQUFVWCxRQUFRO0lBQzdCO0lBQ0FDLG1CQUFtQjtRQUNmLE9BQU9VLFVBQVVWLGlCQUFpQjtJQUN0QztJQUNBQyxjQUFjO1FBQ1YsT0FBT1MsVUFBVVQsWUFBWTtJQUNqQztJQUNBQyxVQUFVO1FBQ04sT0FBT1MsVUFBVVQsUUFBUTtJQUM3QjtBQUNKO0FBQ0EsTUFBTVUsU0FBU0MsbUJBQU9BLENBQUMsd0dBQU87QUFDOUIsTUFBTUMsaUNBQWlDRCxtQkFBT0EsQ0FBQyx1S0FBb0Q7QUFDbkcsTUFBTUUsbUNBQW1DRixtQkFBT0EsQ0FBQywyS0FBc0Q7QUFD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U0FBU3pFLDBCQUEwQnVFLGdCQUFnQjtJQUMvQyxJQUFJQSxxQkFBcUIsS0FBSyxHQUFHQSxtQkFBbUI7SUFDbkQsSUFBR3BELGtDQUFrQ3VCLGdDQUFnQyxFQUFFO0lBQ3hFLE1BQU0sRUFBRVcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHdEMsT0FBTzZCLFVBQVUsRUFBRTNCLCtCQUErQjhELG1CQUFtQjtJQUMxRixPQUFPVCw2QkFBNkJqQixNQUFNa0I7QUFDOUM7QUFDQSxTQUFTdEUseUJBQXlCc0UsZ0JBQWdCO0lBQzlDLElBQUlBLHFCQUFxQixLQUFLLEdBQUdBLG1CQUFtQjtJQUNuRCxJQUFHcEQsa0NBQWtDdUIsZ0NBQWdDLEVBQUU7SUFDeEUsTUFBTXNDLHlCQUF5QmhGLDBCQUEwQnVFO0lBQ3pELElBQUlTLHVCQUF1QkMsTUFBTSxLQUFLLEdBQUc7UUFDckMsT0FBTztJQUNYO0lBQ0EsT0FBT0Qsc0JBQXNCLENBQUMsRUFBRTtBQUNwQztBQUVBLElBQUksQ0FBQyxPQUFPMUYsUUFBUTRGLE9BQU8sS0FBSyxjQUFlLE9BQU81RixRQUFRNEYsT0FBTyxLQUFLLFlBQVk1RixRQUFRNEYsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPNUYsUUFBUTRGLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcksvRixPQUFPQyxjQUFjLENBQUNDLFFBQVE0RixPQUFPLEVBQUUsY0FBYztRQUFFM0YsT0FBTztJQUFLO0lBQ25FSCxPQUFPZ0csTUFBTSxDQUFDOUYsUUFBUTRGLE9BQU8sRUFBRTVGO0lBQy9CRSxPQUFPRixPQUFPLEdBQUdBLFFBQVE0RixPQUFPO0FBQ2xDLEVBRUEsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uLmpzPzM0ODIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBSZWFkb25seVVSTFNlYXJjaFBhcmFtczogbnVsbCxcbiAgICB1c2VTZWFyY2hQYXJhbXM6IG51bGwsXG4gICAgdXNlUGF0aG5hbWU6IG51bGwsXG4gICAgU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dDogbnVsbCxcbiAgICB1c2VTZXJ2ZXJJbnNlcnRlZEhUTUw6IG51bGwsXG4gICAgdXNlUm91dGVyOiBudWxsLFxuICAgIHVzZVBhcmFtczogbnVsbCxcbiAgICB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzOiBudWxsLFxuICAgIHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudDogbnVsbCxcbiAgICByZWRpcmVjdDogbnVsbCxcbiAgICBwZXJtYW5lbnRSZWRpcmVjdDogbnVsbCxcbiAgICBSZWRpcmVjdFR5cGU6IG51bGwsXG4gICAgbm90Rm91bmQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXM7XG4gICAgfSxcbiAgICB1c2VTZWFyY2hQYXJhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdXNlU2VhcmNoUGFyYW1zO1xuICAgIH0sXG4gICAgdXNlUGF0aG5hbWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdXNlUGF0aG5hbWU7XG4gICAgfSxcbiAgICBTZXJ2ZXJJbnNlcnRlZEhUTUxDb250ZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXJpbnNlcnRlZGh0bWxzaGFyZWRydW50aW1lLlNlcnZlckluc2VydGVkSFRNTENvbnRleHQ7XG4gICAgfSxcbiAgICB1c2VTZXJ2ZXJJbnNlcnRlZEhUTUw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlcmluc2VydGVkaHRtbHNoYXJlZHJ1bnRpbWUudXNlU2VydmVySW5zZXJ0ZWRIVE1MO1xuICAgIH0sXG4gICAgdXNlUm91dGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVzZVJvdXRlcjtcbiAgICB9LFxuICAgIHVzZVBhcmFtczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB1c2VQYXJhbXM7XG4gICAgfSxcbiAgICB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHM7XG4gICAgfSxcbiAgICB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50O1xuICAgIH0sXG4gICAgcmVkaXJlY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3JlZGlyZWN0LnJlZGlyZWN0O1xuICAgIH0sXG4gICAgcGVybWFuZW50UmVkaXJlY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3JlZGlyZWN0LnBlcm1hbmVudFJlZGlyZWN0O1xuICAgIH0sXG4gICAgUmVkaXJlY3RUeXBlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9yZWRpcmVjdC5SZWRpcmVjdFR5cGU7XG4gICAgfSxcbiAgICBub3RGb3VuZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfbm90Zm91bmQubm90Rm91bmQ7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfYXBwcm91dGVyY29udGV4dHNoYXJlZHJ1bnRpbWUgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIik7XG5jb25zdCBfaG9va3NjbGllbnRjb250ZXh0c2hhcmVkcnVudGltZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCIpO1xuY29uc3QgX2NsaWVudGhvb2tpbnNlcnZlcmNvbXBvbmVudGVycm9yID0gcmVxdWlyZShcIi4vY2xpZW50LWhvb2staW4tc2VydmVyLWNvbXBvbmVudC1lcnJvclwiKTtcbmNvbnN0IF9nZXRzZWdtZW50dmFsdWUgPSByZXF1aXJlKFwiLi9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9nZXQtc2VnbWVudC12YWx1ZVwiKTtcbmNvbnN0IF9zZWdtZW50ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiKTtcbmNvbnN0IF9zZXJ2ZXJpbnNlcnRlZGh0bWxzaGFyZWRydW50aW1lID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvc2VydmVyLWluc2VydGVkLWh0bWwuc2hhcmVkLXJ1bnRpbWVcIik7XG5jb25zdCBfcmVkaXJlY3QgPSByZXF1aXJlKFwiLi9yZWRpcmVjdFwiKTtcbmNvbnN0IF9ub3Rmb3VuZCA9IHJlcXVpcmUoXCIuL25vdC1mb3VuZFwiKTtcbmNvbnN0IElOVEVSTkFMX1VSTFNFQVJDSFBBUkFNU19JTlNUQU5DRSA9IFN5bWJvbChcImludGVybmFsIGZvciB1cmxzZWFyY2hwYXJhbXMgcmVhZG9ubHlcIik7XG5mdW5jdGlvbiByZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKCkge1xuICAgIHJldHVybiBuZXcgRXJyb3IoXCJSZWFkb25seVVSTFNlYXJjaFBhcmFtcyBjYW5ub3QgYmUgbW9kaWZpZWRcIik7XG59XG5jbGFzcyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyB7XG4gICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMX1VSTFNFQVJDSFBBUkFNU19JTlNUQU5DRV1bU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgIH1cbiAgICBhcHBlbmQoKSB7XG4gICAgICAgIHRocm93IHJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKTtcbiAgICB9XG4gICAgZGVsZXRlKCkge1xuICAgICAgICB0aHJvdyByZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKCk7XG4gICAgfVxuICAgIHNldCgpIHtcbiAgICAgICAgdGhyb3cgcmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvcigpO1xuICAgIH1cbiAgICBzb3J0KCkge1xuICAgICAgICB0aHJvdyByZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHVybFNlYXJjaFBhcmFtcyl7XG4gICAgICAgIHRoaXNbSU5URVJOQUxfVVJMU0VBUkNIUEFSQU1TX0lOU1RBTkNFXSA9IHVybFNlYXJjaFBhcmFtcztcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gdXJsU2VhcmNoUGFyYW1zLmVudHJpZXMuYmluZCh1cmxTZWFyY2hQYXJhbXMpO1xuICAgICAgICB0aGlzLmZvckVhY2ggPSB1cmxTZWFyY2hQYXJhbXMuZm9yRWFjaC5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuZ2V0ID0gdXJsU2VhcmNoUGFyYW1zLmdldC5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuZ2V0QWxsID0gdXJsU2VhcmNoUGFyYW1zLmdldEFsbC5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuaGFzID0gdXJsU2VhcmNoUGFyYW1zLmhhcy5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMua2V5cyA9IHVybFNlYXJjaFBhcmFtcy5rZXlzLmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB1cmxTZWFyY2hQYXJhbXMudmFsdWVzLmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy50b1N0cmluZyA9IHVybFNlYXJjaFBhcmFtcy50b1N0cmluZy5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHVybFNlYXJjaFBhcmFtcy5zaXplO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHVzZVNlYXJjaFBhcmFtcygpIHtcbiAgICAoMCwgX2NsaWVudGhvb2tpbnNlcnZlcmNvbXBvbmVudGVycm9yLmNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yKShcInVzZVNlYXJjaFBhcmFtc1wiKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSAoMCwgX3JlYWN0LnVzZUNvbnRleHQpKF9ob29rc2NsaWVudGNvbnRleHRzaGFyZWRydW50aW1lLlNlYXJjaFBhcmFtc0NvbnRleHQpO1xuICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoaXMgaXMgYG51bGxgLCB0aGUgY29tcGF0IHR5cGVzIGFkZGVkIGluXG4gICAgLy8gYG5leHQtZW52LmQudHNgIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG9cbiAgICAvLyBpbmNsdWRlIGBudWxsYC5cbiAgICBjb25zdCByZWFkb25seVNlYXJjaFBhcmFtcyA9ICgwLCBfcmVhY3QudXNlTWVtbykoKCk9PntcbiAgICAgICAgaWYgKCFzZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgICAgIC8vIFdoZW4gdGhlIHJvdXRlciBpcyBub3QgcmVhZHkgaW4gcGFnZXMsIHdlIHdvbid0IGhhdmUgdGhlIHNlYXJjaCBwYXJhbXNcbiAgICAgICAgICAgIC8vIGF2YWlsYWJsZS5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMoc2VhcmNoUGFyYW1zKTtcbiAgICB9LCBbXG4gICAgICAgIHNlYXJjaFBhcmFtc1xuICAgIF0pO1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgICAgIGNvbnN0IHsgYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nIH0gPSByZXF1aXJlKFwiLi9iYWlsb3V0LXRvLWNsaWVudC1yZW5kZXJpbmdcIik7XG4gICAgICAgIC8vIFRPRE8tQVBQOiBoYW5kbGUgZHluYW1pYyA9ICdmb3JjZS1zdGF0aWMnIGhlcmUgYW5kIG9uIHRoZSBjbGllbnRcbiAgICAgICAgYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nKFwidXNlU2VhcmNoUGFyYW1zKClcIik7XG4gICAgfVxuICAgIHJldHVybiByZWFkb25seVNlYXJjaFBhcmFtcztcbn1cbmZ1bmN0aW9uIHVzZVBhdGhuYW1lKCkge1xuICAgICgwLCBfY2xpZW50aG9va2luc2VydmVyY29tcG9uZW50ZXJyb3IuY2xpZW50SG9va0luU2VydmVyQ29tcG9uZW50RXJyb3IpKFwidXNlUGF0aG5hbWVcIik7XG4gICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW4gYG5leHQtZW52LmQudHNgXG4gICAgLy8gd2lsbCBhZGQgYSBuZXcgb3ZlcmxvYWQgdGhhdCBjaGFuZ2VzIHRoZSByZXR1cm4gdHlwZSB0byBpbmNsdWRlIGBudWxsYC5cbiAgICByZXR1cm4gKDAsIF9yZWFjdC51c2VDb250ZXh0KShfaG9va3NjbGllbnRjb250ZXh0c2hhcmVkcnVudGltZS5QYXRobmFtZUNvbnRleHQpO1xufVxuZnVuY3Rpb24gdXNlUm91dGVyKCkge1xuICAgICgwLCBfY2xpZW50aG9va2luc2VydmVyY29tcG9uZW50ZXJyb3IuY2xpZW50SG9va0luU2VydmVyQ29tcG9uZW50RXJyb3IpKFwidXNlUm91dGVyXCIpO1xuICAgIGNvbnN0IHJvdXRlciA9ICgwLCBfcmVhY3QudXNlQ29udGV4dCkoX2FwcHJvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lLkFwcFJvdXRlckNvbnRleHQpO1xuICAgIGlmIChyb3V0ZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YXJpYW50IGV4cGVjdGVkIGFwcCByb3V0ZXIgdG8gYmUgbW91bnRlZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlcjtcbn1cbi8vIHRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBkZXB0aC1maXJzdCBzZWFyY2ggb2YgdGhlIHRyZWUgdG8gZmluZCB0aGUgc2VsZWN0ZWRcbi8vIHBhcmFtc1xuZnVuY3Rpb24gZ2V0U2VsZWN0ZWRQYXJhbXModHJlZSwgcGFyYW1zKSB7XG4gICAgaWYgKHBhcmFtcyA9PT0gdm9pZCAwKSBwYXJhbXMgPSB7fTtcbiAgICBjb25zdCBwYXJhbGxlbFJvdXRlcyA9IHRyZWVbMV07XG4gICAgZm9yIChjb25zdCBwYXJhbGxlbFJvdXRlIG9mIE9iamVjdC52YWx1ZXMocGFyYWxsZWxSb3V0ZXMpKXtcbiAgICAgICAgY29uc3Qgc2VnbWVudCA9IHBhcmFsbGVsUm91dGVbMF07XG4gICAgICAgIGNvbnN0IGlzRHluYW1pY1BhcmFtZXRlciA9IEFycmF5LmlzQXJyYXkoc2VnbWVudCk7XG4gICAgICAgIGNvbnN0IHNlZ21lbnRWYWx1ZSA9IGlzRHluYW1pY1BhcmFtZXRlciA/IHNlZ21lbnRbMV0gOiBzZWdtZW50O1xuICAgICAgICBpZiAoIXNlZ21lbnRWYWx1ZSB8fCBzZWdtZW50VmFsdWUuc3RhcnRzV2l0aChfc2VnbWVudC5QQUdFX1NFR01FTlRfS0VZKSkgY29udGludWU7XG4gICAgICAgIC8vIEVuc3VyZSBjYXRjaEFsbCBhbmQgb3B0aW9uYWwgY2F0Y2hhbGwgYXJlIHR1cm5lZCBpbnRvIGFuIGFycmF5XG4gICAgICAgIGNvbnN0IGlzQ2F0Y2hBbGwgPSBpc0R5bmFtaWNQYXJhbWV0ZXIgJiYgKHNlZ21lbnRbMl0gPT09IFwiY1wiIHx8IHNlZ21lbnRbMl0gPT09IFwib2NcIik7XG4gICAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgICAgICBwYXJhbXNbc2VnbWVudFswXV0gPSBzZWdtZW50WzFdLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0R5bmFtaWNQYXJhbWV0ZXIpIHtcbiAgICAgICAgICAgIHBhcmFtc1tzZWdtZW50WzBdXSA9IHNlZ21lbnRbMV07XG4gICAgICAgIH1cbiAgICAgICAgcGFyYW1zID0gZ2V0U2VsZWN0ZWRQYXJhbXMocGFyYWxsZWxSb3V0ZSwgcGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIHVzZVBhcmFtcygpIHtcbiAgICAoMCwgX2NsaWVudGhvb2tpbnNlcnZlcmNvbXBvbmVudGVycm9yLmNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yKShcInVzZVBhcmFtc1wiKTtcbiAgICBjb25zdCBnbG9iYWxMYXlvdXRSb3V0ZXIgPSAoMCwgX3JlYWN0LnVzZUNvbnRleHQpKF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZS5HbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0KTtcbiAgICBjb25zdCBwYXRoUGFyYW1zID0gKDAsIF9yZWFjdC51c2VDb250ZXh0KShfaG9va3NjbGllbnRjb250ZXh0c2hhcmVkcnVudGltZS5QYXRoUGFyYW1zQ29udGV4dCk7XG4gICAgcmV0dXJuICgwLCBfcmVhY3QudXNlTWVtbykoKCk9PntcbiAgICAgICAgLy8gV2hlbiBpdCdzIHVuZGVyIGFwcCByb3V0ZXJcbiAgICAgICAgaWYgKGdsb2JhbExheW91dFJvdXRlciA9PSBudWxsID8gdm9pZCAwIDogZ2xvYmFsTGF5b3V0Um91dGVyLnRyZWUpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRTZWxlY3RlZFBhcmFtcyhnbG9iYWxMYXlvdXRSb3V0ZXIudHJlZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2hlbiBpdCdzIHVuZGVyIGNsaWVudCBzaWRlIHBhZ2VzIHJvdXRlclxuICAgICAgICByZXR1cm4gcGF0aFBhcmFtcztcbiAgICB9LCBbXG4gICAgICAgIGdsb2JhbExheW91dFJvdXRlciA9PSBudWxsID8gdm9pZCAwIDogZ2xvYmFsTGF5b3V0Um91dGVyLnRyZWUsXG4gICAgICAgIHBhdGhQYXJhbXNcbiAgICBdKTtcbn1cbi8vIFRPRE8tQVBQOiBoYW5kbGUgcGFyYWxsZWwgcm91dGVzXG4vKipcbiAqIEdldCB0aGUgY2Fub25pY2FsIHBhcmFtZXRlcnMgZnJvbSB0aGUgY3VycmVudCBsZXZlbCB0byB0aGUgbGVhZiBub2RlLlxuICovIGZ1bmN0aW9uIGdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgodHJlZSwgcGFyYWxsZWxSb3V0ZUtleSwgZmlyc3QsIHNlZ21lbnRQYXRoKSB7XG4gICAgaWYgKGZpcnN0ID09PSB2b2lkIDApIGZpcnN0ID0gdHJ1ZTtcbiAgICBpZiAoc2VnbWVudFBhdGggPT09IHZvaWQgMCkgc2VnbWVudFBhdGggPSBbXTtcbiAgICBsZXQgbm9kZTtcbiAgICBpZiAoZmlyc3QpIHtcbiAgICAgICAgLy8gVXNlIHRoZSBwcm92aWRlZCBwYXJhbGxlbCByb3V0ZSBrZXkgb24gdGhlIGZpcnN0IHBhcmFsbGVsIHJvdXRlXG4gICAgICAgIG5vZGUgPSB0cmVlWzFdW3BhcmFsbGVsUm91dGVLZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFmdGVyIGZpcnN0IHBhcmFsbGVsIHJvdXRlIHByZWZlciBjaGlsZHJlbiwgaWYgdGhlcmUncyBubyBjaGlsZHJlbiBwaWNrIHRoZSBmaXJzdCBwYXJhbGxlbCByb3V0ZS5cbiAgICAgICAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSB0cmVlWzFdO1xuICAgICAgICB2YXIgX3BhcmFsbGVsUm91dGVzX2NoaWxkcmVuO1xuICAgICAgICBub2RlID0gKF9wYXJhbGxlbFJvdXRlc19jaGlsZHJlbiA9IHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuKSAhPSBudWxsID8gX3BhcmFsbGVsUm91dGVzX2NoaWxkcmVuIDogT2JqZWN0LnZhbHVlcyhwYXJhbGxlbFJvdXRlcylbMF07XG4gICAgfVxuICAgIGlmICghbm9kZSkgcmV0dXJuIHNlZ21lbnRQYXRoO1xuICAgIGNvbnN0IHNlZ21lbnQgPSBub2RlWzBdO1xuICAgIGNvbnN0IHNlZ21lbnRWYWx1ZSA9ICgwLCBfZ2V0c2VnbWVudHZhbHVlLmdldFNlZ21lbnRWYWx1ZSkoc2VnbWVudCk7XG4gICAgaWYgKCFzZWdtZW50VmFsdWUgfHwgc2VnbWVudFZhbHVlLnN0YXJ0c1dpdGgoX3NlZ21lbnQuUEFHRV9TRUdNRU5UX0tFWSkpIHtcbiAgICAgICAgcmV0dXJuIHNlZ21lbnRQYXRoO1xuICAgIH1cbiAgICBzZWdtZW50UGF0aC5wdXNoKHNlZ21lbnRWYWx1ZSk7XG4gICAgcmV0dXJuIGdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgobm9kZSwgcGFyYWxsZWxSb3V0ZUtleSwgZmFsc2UsIHNlZ21lbnRQYXRoKTtcbn1cbmZ1bmN0aW9uIHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMocGFyYWxsZWxSb3V0ZUtleSkge1xuICAgIGlmIChwYXJhbGxlbFJvdXRlS2V5ID09PSB2b2lkIDApIHBhcmFsbGVsUm91dGVLZXkgPSBcImNoaWxkcmVuXCI7XG4gICAgKDAsIF9jbGllbnRob29raW5zZXJ2ZXJjb21wb25lbnRlcnJvci5jbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcikoXCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzXCIpO1xuICAgIGNvbnN0IHsgdHJlZSB9ID0gKDAsIF9yZWFjdC51c2VDb250ZXh0KShfYXBwcm91dGVyY29udGV4dHNoYXJlZHJ1bnRpbWUuTGF5b3V0Um91dGVyQ29udGV4dCk7XG4gICAgcmV0dXJuIGdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgodHJlZSwgcGFyYWxsZWxSb3V0ZUtleSk7XG59XG5mdW5jdGlvbiB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQocGFyYWxsZWxSb3V0ZUtleSkge1xuICAgIGlmIChwYXJhbGxlbFJvdXRlS2V5ID09PSB2b2lkIDApIHBhcmFsbGVsUm91dGVLZXkgPSBcImNoaWxkcmVuXCI7XG4gICAgKDAsIF9jbGllbnRob29raW5zZXJ2ZXJjb21wb25lbnRlcnJvci5jbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcikoXCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnRcIik7XG4gICAgY29uc3Qgc2VsZWN0ZWRMYXlvdXRTZWdtZW50cyA9IHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMocGFyYWxsZWxSb3V0ZUtleSk7XG4gICAgaWYgKHNlbGVjdGVkTGF5b3V0U2VnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWRMYXlvdXRTZWdtZW50c1swXTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmF2aWdhdGlvbi5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJSZWFkb25seVVSTFNlYXJjaFBhcmFtcyIsInVzZVNlYXJjaFBhcmFtcyIsInVzZVBhdGhuYW1lIiwiU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCIsInVzZVNlcnZlckluc2VydGVkSFRNTCIsInVzZVJvdXRlciIsInVzZVBhcmFtcyIsInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMiLCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnQiLCJyZWRpcmVjdCIsInBlcm1hbmVudFJlZGlyZWN0IiwiUmVkaXJlY3RUeXBlIiwibm90Rm91bmQiLCJfZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImVudW1lcmFibGUiLCJnZXQiLCJfc2VydmVyaW5zZXJ0ZWRodG1sc2hhcmVkcnVudGltZSIsIl9yZWRpcmVjdCIsIl9ub3Rmb3VuZCIsIl9yZWFjdCIsInJlcXVpcmUiLCJfYXBwcm91dGVyY29udGV4dHNoYXJlZHJ1bnRpbWUiLCJfaG9va3NjbGllbnRjb250ZXh0c2hhcmVkcnVudGltZSIsIl9jbGllbnRob29raW5zZXJ2ZXJjb21wb25lbnRlcnJvciIsIl9nZXRzZWdtZW50dmFsdWUiLCJfc2VnbWVudCIsIklOVEVSTkFMX1VSTFNFQVJDSFBBUkFNU19JTlNUQU5DRSIsIlN5bWJvbCIsInJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IiLCJFcnJvciIsIml0ZXJhdG9yIiwiYXBwZW5kIiwiZGVsZXRlIiwic2V0Iiwic29ydCIsImNvbnN0cnVjdG9yIiwidXJsU2VhcmNoUGFyYW1zIiwiZW50cmllcyIsImJpbmQiLCJmb3JFYWNoIiwiZ2V0QWxsIiwiaGFzIiwia2V5cyIsInZhbHVlcyIsInRvU3RyaW5nIiwic2l6ZSIsImNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yIiwic2VhcmNoUGFyYW1zIiwidXNlQ29udGV4dCIsIlNlYXJjaFBhcmFtc0NvbnRleHQiLCJyZWFkb25seVNlYXJjaFBhcmFtcyIsInVzZU1lbW8iLCJiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmciLCJQYXRobmFtZUNvbnRleHQiLCJyb3V0ZXIiLCJBcHBSb3V0ZXJDb250ZXh0IiwiZ2V0U2VsZWN0ZWRQYXJhbXMiLCJ0cmVlIiwicGFyYW1zIiwicGFyYWxsZWxSb3V0ZXMiLCJwYXJhbGxlbFJvdXRlIiwic2VnbWVudCIsImlzRHluYW1pY1BhcmFtZXRlciIsIkFycmF5IiwiaXNBcnJheSIsInNlZ21lbnRWYWx1ZSIsInN0YXJ0c1dpdGgiLCJQQUdFX1NFR01FTlRfS0VZIiwiaXNDYXRjaEFsbCIsInNwbGl0IiwiZ2xvYmFsTGF5b3V0Um91dGVyIiwiR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCIsInBhdGhQYXJhbXMiLCJQYXRoUGFyYW1zQ29udGV4dCIsImdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgiLCJwYXJhbGxlbFJvdXRlS2V5IiwiZmlyc3QiLCJzZWdtZW50UGF0aCIsIm5vZGUiLCJfcGFyYWxsZWxSb3V0ZXNfY2hpbGRyZW4iLCJjaGlsZHJlbiIsImdldFNlZ21lbnRWYWx1ZSIsInB1c2giLCJMYXlvdXRSb3V0ZXJDb250ZXh0Iiwic2VsZWN0ZWRMYXlvdXRTZWdtZW50cyIsImxlbmd0aCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js": +/*!************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/not-found-boundary.js ***! + \************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NotFoundBoundary\", ({\n enumerable: true,\n get: function() {\n return NotFoundBoundary;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigation = __webpack_require__(/*! ./navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _notfound = __webpack_require__(/*! ./not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst _warnonce = __webpack_require__(/*! ../../shared/lib/utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js\");\nclass NotFoundErrorBoundary extends _react.default.Component {\n componentDidCatch() {\n if ( true && // A missing children slot is the typical not-found case, so no need to warn\n !this.props.missingSlots.has(\"children\")) {\n let warningMessage = \"No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\\n\" + \"Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\\n\\n\";\n if (this.props.missingSlots.size > 0) {\n const formattedSlots = Array.from(this.props.missingSlots).sort((a, b)=>a.localeCompare(b)).map((slot)=>\"@\" + slot).join(\", \");\n warningMessage += \"Missing slots: \" + formattedSlots;\n }\n (0, _warnonce.warnOnce)(warningMessage);\n }\n }\n static getDerivedStateFromError(error) {\n if ((0, _notfound.isNotFoundError)(error)) {\n return {\n notFoundTriggered: true\n };\n }\n // Re-throw if error is not for 404\n throw error;\n }\n static getDerivedStateFromProps(props, state) {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */ if (props.pathname !== state.previousPathname && state.notFoundTriggered) {\n return {\n notFoundTriggered: false,\n previousPathname: props.pathname\n };\n }\n return {\n notFoundTriggered: state.notFoundTriggered,\n previousPathname: props.pathname\n };\n }\n render() {\n if (this.state.notFoundTriggered) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }),\n true && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"next-error\",\n content: \"not-found\"\n }),\n this.props.notFoundStyles,\n this.props.notFound\n ]\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.state = {\n notFoundTriggered: !!props.asNotFound,\n previousPathname: props.pathname\n };\n }\n}\nfunction NotFoundBoundary(param) {\n let { notFound, notFoundStyles, asNotFound, children } = param;\n const pathname = (0, _navigation.usePathname)();\n const missingSlots = (0, _react.useContext)(_approutercontextsharedruntime.MissingSlotContext);\n return notFound ? /*#__PURE__*/ (0, _jsxruntime.jsx)(NotFoundErrorBoundary, {\n pathname: pathname,\n notFound: notFound,\n notFoundStyles: notFoundStyles,\n asNotFound: asNotFound,\n missingSlots: missingSlots,\n children: children\n }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\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=not-found-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qcyIsIm1hcHBpbmdzIjoicURBRWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILG9EQUFtRDtJQUMvQ0ksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLDRCQUE0QkMsbUJBQU9BLENBQUMsb0hBQTBDO0FBQ3BGLE1BQU1DLGNBQWNELG1CQUFPQSxDQUFDLGdJQUFtQjtBQUMvQyxNQUFNRSxTQUFTLFdBQVcsR0FBR0gsMEJBQTBCSSxDQUFDLENBQUNILG1CQUFPQSxDQUFDLHdHQUFPO0FBQ3hFLE1BQU1JLGNBQWNKLG1CQUFPQSxDQUFDLG9GQUFjO0FBQzFDLE1BQU1LLFlBQVlMLG1CQUFPQSxDQUFDLGtGQUFhO0FBQ3ZDLE1BQU1NLFlBQVlOLG1CQUFPQSxDQUFDLHNHQUFrQztBQUM1RCxNQUFNTyxpQ0FBaUNQLG1CQUFPQSxDQUFDLHVLQUFvRDtBQUNuRyxNQUFNUSw4QkFBOEJOLE9BQU9PLE9BQU8sQ0FBQ0MsU0FBUztJQUN4REMsb0JBQW9CO1FBQ2hCLElBQUlDLEtBQXNDLElBQUksNEVBQTRFO1FBQzFILENBQUMsSUFBSSxDQUFDQyxLQUFLLENBQUNDLFlBQVksQ0FBQ0MsR0FBRyxDQUFDLGFBQWE7WUFDdEMsSUFBSUMsaUJBQWlCLDRIQUE0SDtZQUNqSixJQUFJLElBQUksQ0FBQ0gsS0FBSyxDQUFDQyxZQUFZLENBQUNHLElBQUksR0FBRyxHQUFHO2dCQUNsQyxNQUFNQyxpQkFBaUJDLE1BQU1DLElBQUksQ0FBQyxJQUFJLENBQUNQLEtBQUssQ0FBQ0MsWUFBWSxFQUFFTyxJQUFJLENBQUMsQ0FBQ0MsR0FBR0MsSUFBSUQsRUFBRUUsYUFBYSxDQUFDRCxJQUFJRSxHQUFHLENBQUMsQ0FBQ0MsT0FBTyxNQUFNQSxNQUFNQyxJQUFJLENBQUM7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bm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtYm91bmRhcnkuanM/MzJjOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOb3RGb3VuZEJvdW5kYXJ5XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOb3RGb3VuZEJvdW5kYXJ5O1xuICAgIH1cbn0pO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkXCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX25hdmlnYXRpb24gPSByZXF1aXJlKFwiLi9uYXZpZ2F0aW9uXCIpO1xuY29uc3QgX25vdGZvdW5kID0gcmVxdWlyZShcIi4vbm90LWZvdW5kXCIpO1xuY29uc3QgX3dhcm5vbmNlID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlXCIpO1xuY29uc3QgX2FwcHJvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCIpO1xuY2xhc3MgTm90Rm91bmRFcnJvckJvdW5kYXJ5IGV4dGVuZHMgX3JlYWN0LmRlZmF1bHQuQ29tcG9uZW50IHtcbiAgICBjb21wb25lbnREaWRDYXRjaCgpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIgJiYgLy8gQSBtaXNzaW5nIGNoaWxkcmVuIHNsb3QgaXMgdGhlIHR5cGljYWwgbm90LWZvdW5kIGNhc2UsIHNvIG5vIG5lZWQgdG8gd2FyblxuICAgICAgICAhdGhpcy5wcm9wcy5taXNzaW5nU2xvdHMuaGFzKFwiY2hpbGRyZW5cIikpIHtcbiAgICAgICAgICAgIGxldCB3YXJuaW5nTWVzc2FnZSA9IFwiTm8gZGVmYXVsdCBjb21wb25lbnQgd2FzIGZvdW5kIGZvciBhIHBhcmFsbGVsIHJvdXRlIHJlbmRlcmVkIG9uIHRoaXMgcGFnZS4gRmFsbGluZyBiYWNrIHRvIG5lYXJlc3QgTm90Rm91bmQgYm91bmRhcnkuXFxuXCIgKyBcIkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvcGFyYWxsZWwtcm91dGVzI2RlZmF1bHRqc1xcblxcblwiO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMubWlzc2luZ1Nsb3RzLnNpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkU2xvdHMgPSBBcnJheS5mcm9tKHRoaXMucHJvcHMubWlzc2luZ1Nsb3RzKS5zb3J0KChhLCBiKT0+YS5sb2NhbGVDb21wYXJlKGIpKS5tYXAoKHNsb3QpPT5cIkBcIiArIHNsb3QpLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgICAgICAgICB3YXJuaW5nTWVzc2FnZSArPSBcIk1pc3Npbmcgc2xvdHM6IFwiICsgZm9ybWF0dGVkU2xvdHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAoMCwgX3dhcm5vbmNlLndhcm5PbmNlKSh3YXJuaW5nTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcikge1xuICAgICAgICBpZiAoKDAsIF9ub3Rmb3VuZC5pc05vdEZvdW5kRXJyb3IpKGVycm9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBub3RGb3VuZFRyaWdnZXJlZDogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZS10aHJvdyBpZiBlcnJvciBpcyBub3QgZm9yIDQwNFxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICAgICAgLyoqXG4gICAgICogSGFuZGxlcyByZXNldCBvZiB0aGUgZXJyb3IgYm91bmRhcnkgd2hlbiBhIG5hdmlnYXRpb24gaGFwcGVucy5cbiAgICAgKiBFbnN1cmVzIHRoZSBlcnJvciBib3VuZGFyeSBkb2VzIG5vdCBzdGF5IGVuYWJsZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UuXG4gICAgICogQXBwcm9hY2ggb2Ygc2V0U3RhdGUgaW4gcmVuZGVyIGlzIHNhZmUgYXMgaXQgY2hlY2tzIHRoZSBwcmV2aW91cyBwYXRobmFtZSBhbmQgdGhlbiBvdmVycmlkZXNcbiAgICAgKiBpdCBhcyBvdXRsaW5lZCBpbiBodHRwczovL3JlYWN0LmRldi9yZWZlcmVuY2UvcmVhY3QvdXNlU3RhdGUjc3RvcmluZy1pbmZvcm1hdGlvbi1mcm9tLXByZXZpb3VzLXJlbmRlcnNcbiAgICAgKi8gaWYgKHByb3BzLnBhdGhuYW1lICE9PSBzdGF0ZS5wcmV2aW91c1BhdGhuYW1lICYmIHN0YXRlLm5vdEZvdW5kVHJpZ2dlcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5vdEZvdW5kVHJpZ2dlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm90Rm91bmRUcmlnZ2VyZWQ6IHN0YXRlLm5vdEZvdW5kVHJpZ2dlcmVkLFxuICAgICAgICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5ub3RGb3VuZFRyaWdnZXJlZCkge1xuICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJyb2JvdHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwibm9pbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJtZXRhXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibmV4dC1lcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJub3QtZm91bmRcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5ub3RGb3VuZFN0eWxlcyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5ub3RGb3VuZFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcyl7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIG5vdEZvdW5kVHJpZ2dlcmVkOiAhIXByb3BzLmFzTm90Rm91bmQsXG4gICAgICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZVxuICAgICAgICB9O1xuICAgIH1cbn1cbmZ1bmN0aW9uIE5vdEZvdW5kQm91bmRhcnkocGFyYW0pIHtcbiAgICBsZXQgeyBub3RGb3VuZCwgbm90Rm91bmRTdHlsZXMsIGFzTm90Rm91bmQsIGNoaWxkcmVuIH0gPSBwYXJhbTtcbiAgICBjb25zdCBwYXRobmFtZSA9ICgwLCBfbmF2aWdhdGlvbi51c2VQYXRobmFtZSkoKTtcbiAgICBjb25zdCBtaXNzaW5nU2xvdHMgPSAoMCwgX3JlYWN0LnVzZUNvbnRleHQpKF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZS5NaXNzaW5nU2xvdENvbnRleHQpO1xuICAgIHJldHVybiBub3RGb3VuZCA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoTm90Rm91bmRFcnJvckJvdW5kYXJ5LCB7XG4gICAgICAgIHBhdGhuYW1lOiBwYXRobmFtZSxcbiAgICAgICAgbm90Rm91bmQ6IG5vdEZvdW5kLFxuICAgICAgICBub3RGb3VuZFN0eWxlczogbm90Rm91bmRTdHlsZXMsXG4gICAgICAgIGFzTm90Rm91bmQ6IGFzTm90Rm91bmQsXG4gICAgICAgIG1pc3NpbmdTbG90czogbWlzc2luZ1Nsb3RzLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KSA6IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2pzeHJ1bnRpbWUuRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgfSk7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vdC1mb3VuZC1ib3VuZGFyeS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiTm90Rm91bmRCb3VuZGFyeSIsIl9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQiLCJyZXF1aXJlIiwiX2pzeHJ1bnRpbWUiLCJfcmVhY3QiLCJfIiwiX25hdmlnYXRpb24iLCJfbm90Zm91bmQiLCJfd2Fybm9uY2UiLCJfYXBwcm91dGVyY29udGV4dHNoYXJlZHJ1bnRpbWUiLCJOb3RGb3VuZEVycm9yQm91bmRhcnkiLCJkZWZhdWx0IiwiQ29tcG9uZW50IiwiY29tcG9uZW50RGlkQ2F0Y2giLCJwcm9jZXNzIiwicHJvcHMiLCJtaXNzaW5nU2xvdHMiLCJoYXMiLCJ3YXJuaW5nTWVzc2FnZSIsInNpemUiLCJmb3JtYXR0ZWRTbG90cyIsIkFycmF5IiwiZnJvbSIsInNvcnQiLCJhIiwiYiIsImxvY2FsZUNvbXBhcmUiLCJtYXAiLCJzbG90Iiwiam9pbiIsIndhcm5PbmNlIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIiwiZXJyb3IiLCJpc05vdEZvdW5kRXJyb3IiLCJub3RGb3VuZFRyaWdnZXJlZCIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsInN0YXRlIiwicGF0aG5hbWUiLCJwcmV2aW91c1BhdGhuYW1lIiwicmVuZGVyIiwianN4cyIsIkZyYWdtZW50IiwiY2hpbGRyZW4iLCJqc3giLCJuYW1lIiwiY29udGVudCIsIm5vdEZvdW5kU3R5bGVzIiwibm90Rm91bmQiLCJjb25zdHJ1Y3RvciIsImFzTm90Rm91bmQiLCJwYXJhbSIsInVzZVBhdGhuYW1lIiwidXNlQ29udGV4dCIsIk1pc3NpbmdTbG90Q29udGV4dCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/not-found.js": +/*!***************************************************************!*\ + !*** ./node_modules/next/dist/client/components/not-found.js ***! + \***************************************************************/ +/***/ ((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 notFound: function() {\n return notFound;\n },\n isNotFoundError: function() {\n return isNotFoundError;\n }\n});\nconst NOT_FOUND_ERROR_CODE = \"NEXT_NOT_FOUND\";\nfunction notFound() {\n // eslint-disable-next-line no-throw-literal\n const error = new Error(NOT_FOUND_ERROR_CODE);\n error.digest = NOT_FOUND_ERROR_CODE;\n throw error;\n}\nfunction isNotFoundError(error) {\n if (typeof error !== \"object\" || error === null || !(\"digest\" in error)) {\n return false;\n }\n return error.digest === NOT_FOUND_ERROR_CODE;\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=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQUdOO0FBQ0EsU0FBU0csUUFBUUMsTUFBTSxFQUFFQyxHQUFHO0lBQ3hCLElBQUksSUFBSUMsUUFBUUQsSUFBSVQsT0FBT0MsY0FBYyxDQUFDTyxRQUFRRSxNQUFNO1FBQ3BEQyxZQUFZO1FBQ1pDLEtBQUtILEdBQUcsQ0FBQ0MsS0FBSztJQUNsQjtBQUNKO0FBQ0FILFFBQVFMLFNBQVM7SUFDYkcsVUFBVTtRQUNOLE9BQU9BO0lBQ1g7SUFDQUMsaUJBQWlCO1FBQ2IsT0FBT0E7SUFDWDtBQUNKO0FBQ0EsTUFBTU8sdUJBQXVCO0FBQzdCLFNBQVNSO0lBQ0wsNENBQTRDO0lBQzVDLE1BQU1TLFFBQVEsSUFBSUMsTUFBTUY7SUFDeEJDLE1BQU1FLE1BQU0sR0FBR0g7SUFDZixNQUFNQztBQUNWO0FBQ0EsU0FBU1IsZ0JBQWdCUSxLQUFLO0lBQzFCLElBQUksT0FBT0EsVUFBVSxZQUFZQSxVQUFVLFFBQVEsQ0FBRSxhQUFZQSxLQUFJLEdBQUk7UUFDckUsT0FBTztJQUNYO0lBQ0EsT0FBT0EsTUFBTUUsTUFBTSxLQUFLSDtBQUM1QjtBQUVBLElBQUksQ0FBQyxPQUFPWCxRQUFRZSxPQUFPLEtBQUssY0FBZSxPQUFPZixRQUFRZSxPQUFPLEtBQUssWUFBWWYsUUFBUWUsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPZixRQUFRZSxPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLbEIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRZSxPQUFPLEVBQUUsY0FBYztRQUFFZCxPQUFPO0lBQUs7SUFDbkVILE9BQU9tQixNQUFNLENBQUNqQixRQUFRZSxPQUFPLEVBQUVmO0lBQy9CRSxPQUFPRixPQUFPLEdBQUdBLFFBQVFlLE9BQU87QUFDbEMsRUFFQSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC5qcz80MjAzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgbm90Rm91bmQ6IG51bGwsXG4gICAgaXNOb3RGb3VuZEVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIG5vdEZvdW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vdEZvdW5kO1xuICAgIH0sXG4gICAgaXNOb3RGb3VuZEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTm90Rm91bmRFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IE5PVF9GT1VORF9FUlJPUl9DT0RFID0gXCJORVhUX05PVF9GT1VORFwiO1xuZnVuY3Rpb24gbm90Rm91bmQoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWxcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihOT1RfRk9VTkRfRVJST1JfQ09ERSk7XG4gICAgZXJyb3IuZGlnZXN0ID0gTk9UX0ZPVU5EX0VSUk9SX0NPREU7XG4gICAgdGhyb3cgZXJyb3I7XG59XG5mdW5jdGlvbiBpc05vdEZvdW5kRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIGVycm9yICE9PSBcIm9iamVjdFwiIHx8IGVycm9yID09PSBudWxsIHx8ICEoXCJkaWdlc3RcIiBpbiBlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3IuZGlnZXN0ID09PSBOT1RfRk9VTkRfRVJST1JfQ09ERTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm90LWZvdW5kLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm1vZHVsZSIsIm5vdEZvdW5kIiwiaXNOb3RGb3VuZEVycm9yIiwiX2V4cG9ydCIsInRhcmdldCIsImFsbCIsIm5hbWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiTk9UX0ZPVU5EX0VSUk9SX0NPREUiLCJlcnJvciIsIkVycm9yIiwiZGlnZXN0IiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/not-found.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/promise-queue.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/components/promise-queue.js ***! + \*******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("/*\n This is a simple promise queue that allows you to limit the number of concurrent promises\n that are running at any given time. It's used to limit the number of concurrent\n prefetch requests that are being made to the server but could be used for other\n things as well.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"PromiseQueue\", ({\n enumerable: true,\n get: function() {\n return PromiseQueue;\n }\n}));\nconst _class_private_field_loose_base = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_base */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\");\nconst _class_private_field_loose_key = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_key */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\");\nvar _maxConcurrency = /*#__PURE__*/ _class_private_field_loose_key._(\"_maxConcurrency\"), _runningCount = /*#__PURE__*/ _class_private_field_loose_key._(\"_runningCount\"), _queue = /*#__PURE__*/ _class_private_field_loose_key._(\"_queue\"), _processNext = /*#__PURE__*/ _class_private_field_loose_key._(\"_processNext\");\nclass PromiseQueue {\n enqueue(promiseFn) {\n let taskResolve;\n let taskReject;\n const taskPromise = new Promise((resolve, reject)=>{\n taskResolve = resolve;\n taskReject = reject;\n });\n const task = async ()=>{\n try {\n _class_private_field_loose_base._(this, _runningCount)[_runningCount]++;\n const result = await promiseFn();\n taskResolve(result);\n } catch (error) {\n taskReject(error);\n } finally{\n _class_private_field_loose_base._(this, _runningCount)[_runningCount]--;\n _class_private_field_loose_base._(this, _processNext)[_processNext]();\n }\n };\n const enqueueResult = {\n promiseFn: taskPromise,\n task\n };\n // wonder if we should take a LIFO approach here\n _class_private_field_loose_base._(this, _queue)[_queue].push(enqueueResult);\n _class_private_field_loose_base._(this, _processNext)[_processNext]();\n return taskPromise;\n }\n bump(promiseFn) {\n const index = _class_private_field_loose_base._(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn);\n if (index > -1) {\n const bumpedItem = _class_private_field_loose_base._(this, _queue)[_queue].splice(index, 1)[0];\n _class_private_field_loose_base._(this, _queue)[_queue].unshift(bumpedItem);\n _class_private_field_loose_base._(this, _processNext)[_processNext](true);\n }\n }\n constructor(maxConcurrency = 5){\n Object.defineProperty(this, _processNext, {\n value: processNext\n });\n Object.defineProperty(this, _maxConcurrency, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _runningCount, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _queue, {\n writable: true,\n value: void 0\n });\n _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency;\n _class_private_field_loose_base._(this, _runningCount)[_runningCount] = 0;\n _class_private_field_loose_base._(this, _queue)[_queue] = [];\n }\n}\nfunction processNext(forced) {\n if (forced === void 0) forced = false;\n if ((_class_private_field_loose_base._(this, _runningCount)[_runningCount] < _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] || forced) && _class_private_field_loose_base._(this, _queue)[_queue].length > 0) {\n var _class_private_field_loose_base__queue_shift;\n (_class_private_field_loose_base__queue_shift = _class_private_field_loose_base._(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task();\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=promise-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Byb21pc2UtcXVldWUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBS0EsR0FBZ0I7QUFDaEJBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCxnREFBK0M7SUFDM0NJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNQyxrQ0FBa0NDLG1CQUFPQSxDQUFDLGdJQUFnRDtBQUNoRyxNQUFNQyxpQ0FBaUNELG1CQUFPQSxDQUFDLDhIQUErQztBQUM5RixJQUFJRSxrQkFBa0IsV0FBVyxHQUFHRCwrQkFBK0JFLENBQUMsQ0FBQyxvQkFBb0JDLGdCQUFnQixXQUFXLEdBQUdILCtCQUErQkUsQ0FBQyxDQUFDLGtCQUFrQkUsU0FBUyxXQUFXLEdBQUdKLCtCQUErQkUsQ0FBQyxDQUFDLFdBQVdHLGVBQWUsV0FBVyxHQUFHTCwrQkFBK0JFLENBQUMsQ0FBQztBQUMzUyxNQUFNTDtJQUNGUyxRQUFRQyxTQUFTLEVBQUU7UUFDZixJQUFJQztRQUNKLElBQUlDO1FBQ0osTUFBTUMsY0FBYyxJQUFJQyxRQUFRLENBQUNDLFNBQVNDO1lBQ3RDTCxjQUFjSTtZQUNkSCxhQUFhSTtRQUNqQjtRQUNBLE1BQU1DLE9BQU87WUFDVCxJQUFJO2dCQUNBaEIsZ0NBQWdDSSxDQUFDLENBQUMsSUFBSSxFQUFFQyxjQUFjLENBQUNBLGNBQWM7Z0JBQ3JFLE1BQU1ZLFNBQVMsTUFBTVI7Z0JBQ3JCQyxZQUFZTztZQUNoQixFQUFFLE9BQU9DLE9BQU87Z0JBQ1pQLFdBQVdPO1lBQ2YsU0FBUztnQkFDTGxCLGdDQUFnQ0ksQ0FBQyxDQUFDLElBQUksRUFBRUMsY0FBYyxDQUFDQSxjQUFjO2dCQUNyRUwsZ0NBQWdDSSxDQUFDLENBQUMsSUFBSSxFQUFFRyxhQUFhLENBQUNBLGFBQWE7WUFDdkU7UUFDSjtRQUNBLE1BQU1ZLGdCQUFn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cyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9wcm9taXNlLXF1ZXVlLmpzPzgxNjciXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBUaGlzIGlzIGEgc2ltcGxlIHByb21pc2UgcXVldWUgdGhhdCBhbGxvd3MgeW91IHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgY29uY3VycmVudCBwcm9taXNlc1xuICAgIHRoYXQgYXJlIHJ1bm5pbmcgYXQgYW55IGdpdmVuIHRpbWUuIEl0J3MgdXNlZCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnRcbiAgICBwcmVmZXRjaCByZXF1ZXN0cyB0aGF0IGFyZSBiZWluZyBtYWRlIHRvIHRoZSBzZXJ2ZXIgYnV0IGNvdWxkIGJlIHVzZWQgZm9yIG90aGVyXG4gICAgdGhpbmdzIGFzIHdlbGwuXG4qLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlByb21pc2VRdWV1ZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZVF1ZXVlO1xuICAgIH1cbn0pO1xuY29uc3QgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9fY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlXCIpO1xuY29uc3QgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleVwiKTtcbnZhciBfbWF4Q29uY3VycmVuY3kgPSAvKiNfX1BVUkVfXyovIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleS5fKFwiX21heENvbmN1cnJlbmN5XCIpLCBfcnVubmluZ0NvdW50ID0gLyojX19QVVJFX18qLyBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkuXyhcIl9ydW5uaW5nQ291bnRcIiksIF9xdWV1ZSA9IC8qI19fUFVSRV9fKi8gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5Ll8oXCJfcXVldWVcIiksIF9wcm9jZXNzTmV4dCA9IC8qI19fUFVSRV9fKi8gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5Ll8oXCJfcHJvY2Vzc05leHRcIik7XG5jbGFzcyBQcm9taXNlUXVldWUge1xuICAgIGVucXVldWUocHJvbWlzZUZuKSB7XG4gICAgICAgIGxldCB0YXNrUmVzb2x2ZTtcbiAgICAgICAgbGV0IHRhc2tSZWplY3Q7XG4gICAgICAgIGNvbnN0IHRhc2tQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgICAgIHRhc2tSZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgICAgIHRhc2tSZWplY3QgPSByZWplY3Q7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB0YXNrID0gYXN5bmMgKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9ydW5uaW5nQ291bnQpW19ydW5uaW5nQ291bnRdKys7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZUZuKCk7XG4gICAgICAgICAgICAgICAgdGFza1Jlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGFza1JlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9ydW5uaW5nQ291bnQpW19ydW5uaW5nQ291bnRdLS07XG4gICAgICAgICAgICAgICAgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9wcm9jZXNzTmV4dClbX3Byb2Nlc3NOZXh0XSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBlbnF1ZXVlUmVzdWx0ID0ge1xuICAgICAgICAgICAgcHJvbWlzZUZuOiB0YXNrUHJvbWlzZSxcbiAgICAgICAgICAgIHRhc2tcbiAgICAgICAgfTtcbiAgICAgICAgLy8gd29uZGVyIGlmIHdlIHNob3VsZCB0YWtlIGEgTElGTyBhcHByb2FjaCBoZXJlXG4gICAgICAgIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UuXyh0aGlzLCBfcXVldWUpW19xdWV1ZV0ucHVzaChlbnF1ZXVlUmVzdWx0KTtcbiAgICAgICAgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9wcm9jZXNzTmV4dClbX3Byb2Nlc3NOZXh0XSgpO1xuICAgICAgICByZXR1cm4gdGFza1Byb21pc2U7XG4gICAgfVxuICAgIGJ1bXAocHJvbWlzZUZuKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9xdWV1ZSlbX3F1ZXVlXS5maW5kSW5kZXgoKGl0ZW0pPT5pdGVtLnByb21pc2VGbiA9PT0gcHJvbWlzZUZuKTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ1bXBlZEl0ZW0gPSBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLl8odGhpcywgX3F1ZXVlKVtfcXVldWVdLnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgICAgICAgICBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLl8odGhpcywgX3F1ZXVlKVtfcXVldWVdLnVuc2hpZnQoYnVtcGVkSXRlbSk7XG4gICAgICAgICAgICBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLl8odGhpcywgX3Byb2Nlc3NOZXh0KVtfcHJvY2Vzc05leHRdKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG1heENvbmN1cnJlbmN5ID0gNSl7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBfcHJvY2Vzc05leHQsIHtcbiAgICAgICAgICAgIHZhbHVlOiBwcm9jZXNzTmV4dFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIF9tYXhDb25jdXJyZW5jeSwge1xuICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogdm9pZCAwXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgX3J1bm5pbmdDb3VudCwge1xuICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogdm9pZCAwXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgX3F1ZXVlLCB7XG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlOiB2b2lkIDBcbiAgICAgICAgfSk7XG4gICAgICAgIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UuXyh0aGlzLCBfbWF4Q29uY3VycmVuY3kpW19tYXhDb25jdXJyZW5jeV0gPSBtYXhDb25jdXJyZW5jeTtcbiAgICAgICAgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9ydW5uaW5nQ291bnQpW19ydW5uaW5nQ291bnRdID0gMDtcbiAgICAgICAgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9xdWV1ZSlbX3F1ZXVlXSA9IFtdO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHByb2Nlc3NOZXh0KGZvcmNlZCkge1xuICAgIGlmIChmb3JjZWQgPT09IHZvaWQgMCkgZm9yY2VkID0gZmFsc2U7XG4gICAgaWYgKChfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLl8odGhpcywgX3J1bm5pbmdDb3VudClbX3J1bm5pbmdDb3VudF0gPCBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLl8odGhpcywgX21heENvbmN1cnJlbmN5KVtfbWF4Q29uY3VycmVuY3ldIHx8IGZvcmNlZCkgJiYgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9xdWV1ZSlbX3F1ZXVlXS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHZhciBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlX19xdWV1ZV9zaGlmdDtcbiAgICAgICAgKF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2VfX3F1ZXVlX3NoaWZ0ID0gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5fKHRoaXMsIF9xdWV1ZSlbX3F1ZXVlXS5zaGlmdCgpKSA9PSBudWxsID8gdm9pZCAwIDogX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZV9fcXVldWVfc2hpZnQudGFzaygpO1xuICAgIH1cbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJvbWlzZS1xdWV1ZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiUHJvbWlzZVF1ZXVlIiwiX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSIsInJlcXVpcmUiLCJfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkiLCJfbWF4Q29uY3VycmVuY3kiLCJfIiwiX3J1bm5pbmdDb3VudCIsIl9xdWV1ZSIsIl9wcm9jZXNzTmV4dCIsImVucXVldWUiLCJwcm9taXNlRm4iLCJ0YXNrUmVzb2x2ZSIsInRhc2tSZWplY3QiLCJ0YXNrUHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwidGFzayIsInJlc3VsdCIsImVycm9yIiwiZW5xdWV1ZVJlc3VsdCIsInB1c2giLCJidW1wIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJpdGVtIiwiYnVtcGVkSXRlbSIsInNwbGljZSIsInVuc2hpZnQiLCJjb25zdHJ1Y3RvciIsIm1heENvbmN1cnJlbmN5IiwicHJvY2Vzc05leHQiLCJ3cml0YWJsZSIsImZvcmNlZCIsImxlbmd0aCIsIl9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2VfX3F1ZXVlX3NoaWZ0Iiwic2hpZnQiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/promise-queue.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/hot-reloader-client.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/hot-reloader-client.js ***! + \*******************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return HotReload;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _formatwebpackmessages = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../dev/error-overlay/format-webpack-messages */ \"(ssr)/./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js\"));\nconst _navigation = __webpack_require__(/*! ../navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _erroroverlayreducer = __webpack_require__(/*! ./internal/error-overlay-reducer */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/error-overlay-reducer.js\");\nconst _parseStack = __webpack_require__(/*! ./internal/helpers/parseStack */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js\");\nconst _ReactDevOverlay = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./internal/ReactDevOverlay */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/ReactDevOverlay.js\"));\nconst _useerrorhandler = __webpack_require__(/*! ./internal/helpers/use-error-handler */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-error-handler.js\");\nconst _usewebsocket = __webpack_require__(/*! ./internal/helpers/use-websocket */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-websocket.js\");\nconst _parsecomponentstack = __webpack_require__(/*! ./internal/helpers/parse-component-stack */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js\");\nconst _hotreloadertypes = __webpack_require__(/*! ../../../server/dev/hot-reloader-types */ \"(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nlet mostRecentCompilationHash = null;\nlet __nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet reloading = false;\nlet startLatency = null;\nfunction onBeforeFastRefresh(dispatcher, hasUpdates) {\n if (hasUpdates) {\n dispatcher.onBeforeRefresh();\n }\n}\nfunction onFastRefresh(dispatcher, sendMessage, updatedModules) {\n let endLatency = Date.now();\n dispatcher.onBuildOk();\n 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 (updatedModules.length > 0) {\n dispatcher.onRefresh();\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/**\n * Is there a newer version of this code available?\n * For webpack: Check if the hash changed compared to __webpack_hash__\n * For Turbopack: Always true because it doesn't have __webpack_hash__\n */ function isUpdateAvailable() {\n if (false) {}\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 module.hot exists\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 module.hot exists\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n // @ts-expect-error module.hot exists\n module.hot.addStatusHandler(handler);\n }\n}\nfunction performFullReload(err, sendMessage) {\n const stackTrace = err && (err.stack && err.stack.split(\"\\n\").slice(0, 5).join(\"\\n\") || err.message || err + \"\");\n sendMessage(JSON.stringify({\n event: \"client-full-reload\",\n stackTrace,\n hadRuntimeError: !!_useerrorhandler.RuntimeErrorHandler.hadRuntimeError\n }));\n if (reloading) return;\n reloading = true;\n window.location.reload();\n}\n// Attempt to update code on the fly, fall back to a hard reload.\nfunction tryApplyUpdates(onBeforeUpdate, onHotUpdateSuccess, sendMessage, dispatcher) {\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n dispatcher.onBuildOk();\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || _useerrorhandler.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 (_useerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(\"[Fast Refresh] performing full reload because your application had an unrecoverable error\");\n }\n performFullReload(err, sendMessage);\n return;\n }\n const hasUpdates = Boolean(updatedModules.length);\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 tryApplyUpdates(hasUpdates ? ()=>{} : onBeforeUpdate, hasUpdates ? ()=>dispatcher.onBuildOk() : onHotUpdateSuccess, sendMessage, dispatcher);\n } else {\n dispatcher.onBuildOk();\n if (false) {}\n }\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n // @ts-expect-error module.hot exists\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (!updatedModules) {\n return null;\n }\n if (typeof onBeforeUpdate === \"function\") {\n const hasUpdates = Boolean(updatedModules.length);\n onBeforeUpdate(hasUpdates);\n }\n // https://webpack.js.org/api/hot-module-replacement/#apply\n // @ts-expect-error module.hot exists\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\nfunction processMessage(obj, sendMessage, router, dispatcher) {\n if (!(\"action\" in obj)) {\n return;\n }\n function handleErrors(errors) {\n // \"Massage\" webpack messages.\n const formatted = (0, _formatwebpackmessages.default)({\n errors: errors,\n warnings: []\n });\n // Only show the first error.\n dispatcher.onBuildError(formatted.errors[0]);\n // Also log them to the console.\n for(let i = 0; i < formatted.errors.length; i++){\n console.error((0, _stripansi.default)(formatted.errors[i]));\n }\n // Do not attempt to reload now.\n // We will reload on next success instead.\n if (false) {}\n }\n function handleHotUpdate(updatedModules) {\n if (false) {} else {\n tryApplyUpdates(function onBeforeHotUpdate(hasUpdates) {\n onBeforeFastRefresh(dispatcher, hasUpdates);\n }, function onSuccessfulHotUpdate(webpackUpdatedModules) {\n // Only dismiss it when we're sure it's a hot update.\n // Otherwise it would flicker right before the reload.\n onFastRefresh(dispatcher, sendMessage, webpackUpdatedModules);\n }, sendMessage, dispatcher);\n }\n }\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.FINISH_BUILDING:\n {\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) {\n handleAvailableHash(obj.hash);\n }\n const { errors, warnings } = obj;\n // Is undefined when it's a 'built' event\n if (\"versionInfo\" in obj) {\n dispatcher.onVersionInfo(obj.versionInfo);\n }\n const hasErrors = Boolean(errors && errors.length);\n // Compilation with errors (e.g. syntax error or missing modules).\n if (hasErrors) {\n sendMessage(JSON.stringify({\n event: \"client-error\",\n errorCount: errors.length,\n clientId: __nextDevClientId\n }));\n handleErrors(errors);\n return;\n }\n const hasWarnings = Boolean(warnings && warnings.length);\n if (hasWarnings) {\n sendMessage(JSON.stringify({\n event: \"client-warning\",\n warningCount: warnings.length,\n clientId: __nextDevClientId\n }));\n // Print warnings to the console.\n const formattedMessages = (0, _formatwebpackmessages.default)({\n warnings: warnings,\n errors: []\n });\n for(let i = 0; i < formattedMessages.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)(formattedMessages.warnings[i]));\n }\n // No early return here as we need to apply modules in the same way between warnings only and compiles without warnings\n }\n sendMessage(JSON.stringify({\n event: \"client-success\",\n clientId: __nextDevClientId\n }));\n if (obj.action === _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT) {\n // Handle hot updates\n handleHotUpdate(obj.updatedModules);\n }\n return;\n }\n // TODO-APP: make server component change more granular\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES:\n {\n sendMessage(JSON.stringify({\n event: \"server-component-reload-page\",\n clientId: __nextDevClientId\n }));\n if (_useerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n (0, _react.startTransition)(()=>{\n // @ts-ignore it exists, it's just hidden\n router.fastRefresh();\n dispatcher.onRefresh();\n });\n if (false) {}\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE:\n {\n sendMessage(JSON.stringify({\n event: \"client-reload-page\",\n clientId: __nextDevClientId\n }));\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.REMOVED_PAGE:\n {\n // TODO-APP: potentially only refresh if the currently viewed page was removed.\n // @ts-ignore it exists, it's just hidden\n router.fastRefresh();\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ADDED_PAGE:\n {\n // TODO-APP: potentially only refresh if the currently viewed page was added.\n // @ts-ignore it exists, it's just hidden\n router.fastRefresh();\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.DEV_PAGES_MANIFEST_UPDATE:\n {\n return;\n }\n default:\n {}\n }\n}\nfunction HotReload(param) {\n let { assetPrefix, children } = param;\n const [state, dispatch] = (0, _react.useReducer)(_erroroverlayreducer.errorOverlayReducer, _erroroverlayreducer.INITIAL_OVERLAY_STATE);\n const dispatcher = (0, _react.useMemo)(()=>{\n return {\n onBuildOk () {\n dispatch({\n type: _erroroverlayreducer.ACTION_BUILD_OK\n });\n },\n onBuildError (message) {\n dispatch({\n type: _erroroverlayreducer.ACTION_BUILD_ERROR,\n message\n });\n },\n onBeforeRefresh () {\n dispatch({\n type: _erroroverlayreducer.ACTION_BEFORE_REFRESH\n });\n },\n onRefresh () {\n dispatch({\n type: _erroroverlayreducer.ACTION_REFRESH\n });\n },\n onVersionInfo (versionInfo) {\n dispatch({\n type: _erroroverlayreducer.ACTION_VERSION_INFO,\n versionInfo\n });\n }\n };\n }, [\n dispatch\n ]);\n const handleOnUnhandledError = (0, _react.useCallback)((error)=>{\n // Component stack is added to the error in use-error-handler in case there was a hydration errror\n const componentStack = error._componentStack;\n dispatch({\n type: _erroroverlayreducer.ACTION_UNHANDLED_ERROR,\n reason: error,\n frames: (0, _parseStack.parseStack)(error.stack),\n componentStackFrames: componentStack && (0, _parsecomponentstack.parseComponentStack)(componentStack)\n });\n }, []);\n const handleOnUnhandledRejection = (0, _react.useCallback)((reason)=>{\n dispatch({\n type: _erroroverlayreducer.ACTION_UNHANDLED_REJECTION,\n reason: reason,\n frames: (0, _parseStack.parseStack)(reason.stack)\n });\n }, []);\n const handleOnReactError = (0, _react.useCallback)(()=>{\n _useerrorhandler.RuntimeErrorHandler.hadRuntimeError = true;\n }, []);\n (0, _useerrorhandler.useErrorHandler)(handleOnUnhandledError, handleOnUnhandledRejection);\n const webSocketRef = (0, _usewebsocket.useWebsocket)(assetPrefix);\n (0, _usewebsocket.useWebsocketPing)(webSocketRef);\n const sendMessage = (0, _usewebsocket.useSendMessage)(webSocketRef);\n const processTurbopackMessage = (0, _usewebsocket.useTurbopack)(sendMessage);\n const router = (0, _navigation.useRouter)();\n (0, _react.useEffect)(()=>{\n const handler = (event)=>{\n try {\n const obj = JSON.parse(event.data);\n const handledByTurbopack = processTurbopackMessage == null ? void 0 : processTurbopackMessage(obj);\n if (!handledByTurbopack) {\n processMessage(obj, sendMessage, router, dispatcher);\n }\n } catch (err) {\n var _err_stack;\n console.warn(\"[HMR] Invalid message: \" + event.data + \"\\n\" + ((_err_stack = err == null ? void 0 : err.stack) != null ? _err_stack : \"\"));\n }\n };\n const websocket = webSocketRef.current;\n if (websocket) {\n websocket.addEventListener(\"message\", handler);\n }\n return ()=>websocket && websocket.removeEventListener(\"message\", handler);\n }, [\n sendMessage,\n router,\n webSocketRef,\n dispatcher,\n processTurbopackMessage\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_ReactDevOverlay.default, {\n onReactError: handleOnReactError,\n state: state,\n children: children\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=hot-reloader-client.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2hvdC1yZWxvYWRlci1jbGllbnQuanMiLCJtYXBwaW5ncyI6IjtBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCwyQ0FBMEM7SUFDdENJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNQywyQkFBMkJDLG1CQUFPQSxDQUFDLGtIQUF5QztBQUNsRixNQUFNQyw0QkFBNEJELG1CQUFPQSxDQUFDLG9IQUEwQztBQUNwRixNQUFNRSxjQUFjRixtQkFBT0EsQ0FBQyxnSUFBbUI7QUFDL0MsTUFBTUcsU0FBUyxXQUFXLEdBQUdGLDBCQUEwQkcsQ0FBQyxDQUFDSixtQkFBT0EsQ0FBQyx3R0FBTztBQUN4RSxNQUFNSyxhQUFhLFdBQVcsR0FBR04seUJBQXlCSyxDQUFDLENBQUNKLG1CQUFPQSxDQUFDLGtHQUErQjtBQUNuRyxNQUFNTSx5QkFBeUIsV0FBVyxHQUFHUCx5QkFBeUJLLENBQUMsQ0FBQ0osbUJBQU9BLENBQUMsMklBQWlEO0FBQ2pJLE1BQU1PLGNBQWNQLG1CQUFPQSxDQUFDLHFGQUFlO0FBQzNDLE1BQU1RLHVCQUF1QlIsbUJBQU9BLENBQUMsOElBQWtDO0FBQ3ZFLE1BQU1TLGNBQWNULG1CQUFPQSxDQUFDLHdJQUErQjtBQUMzRCxNQUFNVSxtQkFBbUIsV0FBVyxHQUFHWCx5QkFBeUJLLENBQUMsQ0FBQ0osbUJBQU9BLENBQUMsa0lBQTRCO0FBQ3RHLE1BQU1XLG1CQUFtQlgsbUJBQU9BLENBQUMsc0pBQXNDO0FBQ3ZFLE1BQU1ZLGdCQUFnQlosbUJBQU9BLENBQUMsOElBQWtDO0FBQ2hFLE1BQU1hLHVCQUF1QmIsbUJBQU9BLENBQUMsOEpBQTBDO0FBQy9FLE1BQU1jLG9CQUFvQmQsbUJBQU9BLENBQUMsK0dBQXdDO0FBQzFFLElBQUllLDRC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QUFPLEVBQUVwRztJQUMvQjhELE9BQU85RCxPQUFPLEdBQUdBLFFBQVFvRyxPQUFPO0FBQ2xDLEVBRUEsK0NBQStDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9ob3QtcmVsb2FkZXItY2xpZW50LmpzPzA2OGIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBIb3RSZWxvYWQ7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkXCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX3N0cmlwYW5zaSA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0Ll8ocmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpXCIpKTtcbmNvbnN0IF9mb3JtYXR3ZWJwYWNrbWVzc2FnZXMgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCIuLi8uLi9kZXYvZXJyb3Itb3ZlcmxheS9mb3JtYXQtd2VicGFjay1tZXNzYWdlc1wiKSk7XG5jb25zdCBfbmF2aWdhdGlvbiA9IHJlcXVpcmUoXCIuLi9uYXZpZ2F0aW9uXCIpO1xuY29uc3QgX2Vycm9yb3ZlcmxheXJlZHVjZXIgPSByZXF1aXJlKFwiLi9pbnRlcm5hbC9lcnJvci1vdmVybGF5LXJlZHVjZXJcIik7XG5jb25zdCBfcGFyc2VTdGFjayA9IHJlcXVpcmUoXCIuL2ludGVybmFsL2hlbHBlcnMvcGFyc2VTdGFja1wiKTtcbmNvbnN0IF9SZWFjdERldk92ZXJsYXkgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCIuL2ludGVybmFsL1JlYWN0RGV2T3ZlcmxheVwiKSk7XG5jb25zdCBfdXNlZXJyb3JoYW5kbGVyID0gcmVxdWlyZShcIi4vaW50ZXJuYWwvaGVscGVycy91c2UtZXJyb3ItaGFuZGxlclwiKTtcbmNvbnN0IF91c2V3ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi9pbnRlcm5hbC9oZWxwZXJzL3VzZS13ZWJzb2NrZXRcIik7XG5jb25zdCBfcGFyc2Vjb21wb25lbnRzdGFjayA9IHJlcXVpcmUoXCIuL2ludGVybmFsL2hlbHBlcnMvcGFyc2UtY29tcG9uZW50LXN0YWNrXCIpO1xuY29uc3QgX2hvdHJlbG9hZGVydHlwZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXNcIik7XG5sZXQgbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCA9IG51bGw7XG5sZXQgX19uZXh0RGV2Q2xpZW50SWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAgKyBEYXRlLm5vdygpKTtcbmxldCByZWxvYWRpbmcgPSBmYWxzZTtcbmxldCBzdGFydExhdGVuY3kgPSBudWxsO1xuZnVuY3Rpb24gb25CZWZvcmVGYXN0UmVmcmVzaChkaXNwYXRjaGVyLCBoYXNVcGRhdGVzKSB7XG4gICAgaWYgKGhhc1VwZGF0ZXMpIHtcbiAgICAgICAgZGlzcGF0Y2hlci5vbkJlZm9yZVJlZnJlc2goKTtcbiAgICB9XG59XG5mdW5jdGlvbiBvbkZhc3RSZWZyZXNoKGRpc3BhdGNoZXIsIHNlbmRNZXNzYWdlLCB1cGRhdGVkTW9kdWxlcykge1xuICAgIGxldCBlbmRMYXRlbmN5ID0gRGF0ZS5ub3coKTtcbiAgICBkaXNwYXRjaGVyLm9uQnVpbGRPaygpO1xuICAgIHNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgZXZlbnQ6IFwiY2xpZW50LWhtci1sYXRlbmN5XCIsXG4gICAgICAgIGlkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgIHN0YXJ0VGltZTogc3RhcnRMYXRlbmN5LFxuICAgICAgICBlbmRUaW1lOiBlbmRMYXRlbmN5LFxuICAgICAgICBwYWdlOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICAgIHVwZGF0ZWRNb2R1bGVzLFxuICAgICAgICAvLyBXaGV0aGVyIHRoZSBwYWdlICh0YWIpIHdhcyBoaWRkZW4gYXQgdGhlIHRpbWUgdGhlIGV2ZW50IG9jY3VycmVkLlxuICAgICAgICAvLyBUaGlzIGNhbiBpbXBhY3QgdGhlIGFjY3VyYWN5IG9mIHRoZSBldmVudCdzIHRpbWluZy5cbiAgICAgICAgaXNQYWdlSGlkZGVuOiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwiaGlkZGVuXCJcbiAgICB9KSk7XG4gICAgaWYgKHVwZGF0ZWRNb2R1bGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZGlzcGF0Y2hlci5vblJlZnJlc2goKTtcbiAgICB9XG59XG4vLyBUaGVyZSBpcyBhIG5ld2VyIHZlcnNpb24gb2YgdGhlIGNvZGUgYXZhaWxhYmxlLlxuZnVuY3Rpb24gaGFuZGxlQXZhaWxhYmxlSGFzaChoYXNoKSB7XG4gICAgLy8gVXBkYXRlIGxhc3Qga25vd24gY29tcGlsYXRpb24gaGFzaC5cbiAgICBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoID0gaGFzaDtcbn1cbi8qKlxuICogSXMgdGhlcmUgYSBuZXdlciB2ZXJzaW9uIG9mIHRoaXMgY29kZSBhdmFpbGFibGU/XG4gKiBGb3Igd2VicGFjazogQ2hlY2sgaWYgdGhlIGhhc2ggY2hhbmdlZCBjb21wYXJlZCB0byBfX3dlYnBhY2tfaGFzaF9fXG4gKiBGb3IgVHVyYm9wYWNrOiBBbHdheXMgdHJ1ZSBiZWNhdXNlIGl0IGRvZXNuJ3QgaGF2ZSBfX3dlYnBhY2tfaGFzaF9fXG4gKi8gZnVuY3Rpb24gaXNVcGRhdGVBdmFpbGFibGUoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyogZ2xvYmFscyBfX3dlYnBhY2tfaGFzaF9fICovIC8vIF9fd2VicGFja19oYXNoX18gaXMgdGhlIGhhc2ggb2YgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24uXG4gICAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICAgIHJldHVybiBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoICE9PSBfX3dlYnBhY2tfaGFzaF9fO1xufVxuLy8gV2VicGFjayBkaXNhbGxvd3MgdXBkYXRlcyBpbiBvdGhlciBzdGF0ZXMuXG5mdW5jdGlvbiBjYW5BcHBseVVwZGF0ZXMoKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBtb2R1bGUuaG90IGV4aXN0c1xuICAgIHJldHVybiBtb2R1bGUuaG90LnN0YXR1cygpID09PSBcImlkbGVcIjtcbn1cbmZ1bmN0aW9uIGFmdGVyQXBwbHlVcGRhdGVzKGZuKSB7XG4gICAgaWYgKGNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgICAgIGZuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihzdGF0dXMpIHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFwiaWRsZVwiKSB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBtb2R1bGUuaG90IGV4aXN0c1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgbW9kdWxlLmhvdCBleGlzdHNcbiAgICAgICAgbW9kdWxlLmhvdC5hZGRTdGF0dXNIYW5kbGVyKGhhbmRsZXIpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHBlcmZvcm1GdWxsUmVsb2FkKGVyciwgc2VuZE1lc3NhZ2UpIHtcbiAgICBjb25zdCBzdGFja1RyYWNlID0gZXJyICYmIChlcnIuc3RhY2sgJiYgZXJyLnN0YWNrLnNwbGl0KFwiXFxuXCIpLnNsaWNlKDAsIDUpLmpvaW4oXCJcXG5cIikgfHwgZXJyLm1lc3NhZ2UgfHwgZXJyICsgXCJcIik7XG4gICAgc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBldmVudDogXCJjbGllbnQtZnVsbC1yZWxvYWRcIixcbiAgICAgICAgc3RhY2tUcmFjZSxcbiAgICAgICAgaGFkUnVudGltZUVycm9yOiAhIV91c2VlcnJvcmhhbmRsZXIuUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3JcbiAgICB9KSk7XG4gICAgaWYgKHJlbG9hZGluZykgcmV0dXJuO1xuICAgIHJlbG9hZGluZyA9IHRydWU7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xufVxuLy8gQXR0ZW1wdCB0byB1cGRhdGUgY29kZSBvbiB0aGUgZmx5LCBmYWxsIGJhY2sgdG8gYSBoYXJkIHJlbG9hZC5cbmZ1bmN0aW9uIHRyeUFwcGx5VXBkYXRlcyhvbkJlZm9yZVVwZGF0ZSwgb25Ib3RVcGRhdGVTdWNjZXNzLCBzZW5kTWVzc2FnZSwgZGlzcGF0Y2hlcikge1xuICAgIGlmICghaXNVcGRhdGVBdmFpbGFibGUoKSB8fCAhY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICAgICAgZGlzcGF0Y2hlci5vbkJ1aWxkT2soKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVBcHBseVVwZGF0ZXMoZXJyLCB1cGRhdGVkTW9kdWxlcykge1xuICAgICAgICBpZiAoZXJyIHx8IF91c2VlcnJvcmhhbmRsZXIuUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IgfHwgIXVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZFxcblxcblwiICsgXCJGYXN0IFJlZnJlc2ggd2lsbCBwZXJmb3JtIGEgZnVsbCByZWxvYWQgd2hlbiB5b3UgZWRpdCBhIGZpbGUgdGhhdCdzIGltcG9ydGVkIGJ5IG1vZHVsZXMgb3V0c2lkZSBvZiB0aGUgUmVhY3QgcmVuZGVyaW5nIHRyZWUuXFxuXCIgKyBcIllvdSBtaWdodCBoYXZlIGEgZmlsZSB3aGljaCBleHBvcnRzIGEgUmVhY3QgY29tcG9uZW50IGJ1dCBhbHNvIGV4cG9ydHMgYSB2YWx1ZSB0aGF0IGlzIGltcG9ydGVkIGJ5IGEgbm9uLVJlYWN0IGNvbXBvbmVudCBmaWxlLlxcblwiICsgXCJDb25zaWRlciBtaWdyYXRpbmcgdGhlIG5vbi1SZWFjdCBjb21wb25lbnQgZXhwb3J0IHRvIGEgc2VwYXJhdGUgZmlsZSBhbmQgaW1wb3J0aW5nIGl0IGludG8gYm90aCBmaWxlcy5cXG5cXG5cIiArIFwiSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGUgcGFyZW50IGNvbXBvbmVudCBvZiB0aGUgY29tcG9uZW50IHlvdSBlZGl0ZWQgaXMgYSBjbGFzcyBjb21wb25lbnQsIHdoaWNoIGRpc2FibGVzIEZhc3QgUmVmcmVzaC5cXG5cIiArIFwiRmFzdCBSZWZyZXNoIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJlbnQgZnVuY3Rpb24gY29tcG9uZW50IGluIHlvdXIgUmVhY3QgdHJlZS5cIik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKF91c2VlcnJvcmhhbmRsZXIuUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJbRmFzdCBSZWZyZXNoXSBwZXJmb3JtaW5nIGZ1bGwgcmVsb2FkIGJlY2F1c2UgeW91ciBhcHBsaWNhdGlvbiBoYWQgYW4gdW5yZWNvdmVyYWJsZSBlcnJvclwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKGVyciwgc2VuZE1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhhc1VwZGF0ZXMgPSBCb29sZWFuKHVwZGF0ZWRNb2R1bGVzLmxlbmd0aCk7XG4gICAgICAgIGlmICh0eXBlb2Ygb25Ib3RVcGRhdGVTdWNjZXNzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIC8vIE1heWJlIHdlIHdhbnQgdG8gZG8gc29tZXRoaW5nLlxuICAgICAgICAgICAgb25Ib3RVcGRhdGVTdWNjZXNzKHVwZGF0ZWRNb2R1bGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNVcGRhdGVBdmFpbGFibGUoKSkge1xuICAgICAgICAgICAgLy8gV2hpbGUgd2Ugd2VyZSB1cGRhdGluZywgdGhlcmUgd2FzIGEgbmV3IHVwZGF0ZSEgRG8gaXQgYWdhaW4uXG4gICAgICAgICAgICB0cnlBcHBseVVwZGF0ZXMoaGFzVXBkYXRlcyA/ICgpPT57fSA6IG9uQmVmb3JlVXBkYXRlLCBoYXNVcGRhdGVzID8gKCk9PmRpc3BhdGNoZXIub25CdWlsZE9rKCkgOiBvbkhvdFVwZGF0ZVN1Y2Nlc3MsIHNlbmRNZXNzYWdlLCBkaXNwYXRjaGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKCk7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICAgICAgICAgIGFmdGVyQXBwbHlVcGRhdGVzKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2NoZWNrXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBtb2R1bGUuaG90IGV4aXN0c1xuICAgIG1vZHVsZS5ob3QuY2hlY2soLyogYXV0b0FwcGx5ICovIGZhbHNlKS50aGVuKCh1cGRhdGVkTW9kdWxlcyk9PntcbiAgICAgICAgaWYgKCF1cGRhdGVkTW9kdWxlcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBvbkJlZm9yZVVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVcGRhdGVzID0gQm9vbGVhbih1cGRhdGVkTW9kdWxlcy5sZW5ndGgpO1xuICAgICAgICAgICAgb25CZWZvcmVVcGRhdGUoaGFzVXBkYXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9hcGkvaG90LW1vZHVsZS1yZXBsYWNlbWVudC8jYXBwbHlcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBtb2R1bGUuaG90IGV4aXN0c1xuICAgICAgICByZXR1cm4gbW9kdWxlLmhvdC5hcHBseSgpO1xuICAgIH0pLnRoZW4oKHVwZGF0ZWRNb2R1bGVzKT0+e1xuICAgICAgICBoYW5kbGVBcHBseVVwZGF0ZXMobnVsbCwgdXBkYXRlZE1vZHVsZXMpO1xuICAgIH0sIChlcnIpPT57XG4gICAgICAgIGhhbmRsZUFwcGx5VXBkYXRlcyhlcnIsIG51bGwpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gcHJvY2Vzc01lc3NhZ2Uob2JqLCBzZW5kTWVzc2FnZSwgcm91dGVyLCBkaXNwYXRjaGVyKSB7XG4gICAgaWYgKCEoXCJhY3Rpb25cIiBpbiBvYmopKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlRXJyb3JzKGVycm9ycykge1xuICAgICAgICAvLyBcIk1hc3NhZ2VcIiB3ZWJwYWNrIG1lc3NhZ2VzLlxuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSAoMCwgX2Zvcm1hdHdlYnBhY2ttZXNzYWdlcy5kZWZhdWx0KSh7XG4gICAgICAgICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgICAgICAgIHdhcm5pbmdzOiBbXVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvci5cbiAgICAgICAgZGlzcGF0Y2hlci5vbkJ1aWxkRXJyb3IoZm9ybWF0dGVkLmVycm9yc1swXSk7XG4gICAgICAgIC8vIEFsc28gbG9nIHRoZW0gdG8gdGhlIGNvbnNvbGUuXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWQuZXJyb3JzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoKDAsIF9zdHJpcGFuc2kuZGVmYXVsdCkoZm9ybWF0dGVkLmVycm9yc1tpXSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHJlbG9hZCBub3cuXG4gICAgICAgIC8vIFdlIHdpbGwgcmVsb2FkIG9uIG5leHQgc3VjY2VzcyBpbnN0ZWFkLlxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQihmb3JtYXR0ZWQuZXJyb3JzWzBdKTtcbiAgICAgICAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvdFVwZGF0ZSh1cGRhdGVkTW9kdWxlcykge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICBvbkZhc3RSZWZyZXNoKGRpc3BhdGNoZXIsIHNlbmRNZXNzYWdlLCB1cGRhdGVkTW9kdWxlcyB8fCBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnlBcHBseVVwZGF0ZXMoZnVuY3Rpb24gb25CZWZvcmVIb3RVcGRhdGUoaGFzVXBkYXRlcykge1xuICAgICAgICAgICAgICAgIG9uQmVmb3JlRmFzdFJlZnJlc2goZGlzcGF0Y2hlciwgaGFzVXBkYXRlcyk7XG4gICAgICAgICAgICB9LCBmdW5jdGlvbiBvblN1Y2Nlc3NmdWxIb3RVcGRhdGUod2VicGFja1VwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICAgICAgICAgICAgLy8gT25seSBkaXNtaXNzIGl0IHdoZW4gd2UncmUgc3VyZSBpdCdzIGEgaG90IHVwZGF0ZS5cbiAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UgaXQgd291bGQgZmxpY2tlciByaWdodCBiZWZvcmUgdGhlIHJlbG9hZC5cbiAgICAgICAgICAgICAgICBvbkZhc3RSZWZyZXNoKGRpc3BhdGNoZXIsIHNlbmRNZXNzYWdlLCB3ZWJwYWNrVXBkYXRlZE1vZHVsZXMpO1xuICAgICAgICAgICAgfSwgc2VuZE1lc3NhZ2UsIGRpc3BhdGNoZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN3aXRjaChvYmouYWN0aW9uKXtcbiAgICAgICAgY2FzZSBfaG90cmVsb2FkZXJ0eXBlcy5ITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQlVJTERJTkc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3RhcnRMYXRlbmN5ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIltGYXN0IFJlZnJlc2hdIHJlYnVpbGRpbmdcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgX2hvdHJlbG9hZGVydHlwZXMuSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkZJTklTSF9CVUlMRElORzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBfaG90cmVsb2FkZXJ0eXBlcy5ITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQlVJTFQ6XG4gICAgICAgIGNhc2UgX2hvdHJlbG9hZGVydHlwZXMuSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNZTkM6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWYgKG9iai5oYXNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZUF2YWlsYWJsZUhhc2gob2JqLmhhc2gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9ycywgd2FybmluZ3MgfSA9IG9iajtcbiAgICAgICAgICAgICAgICAvLyBJcyB1bmRlZmluZWQgd2hlbiBpdCdzIGEgJ2J1aWx0JyBldmVudFxuICAgICAgICAgICAgICAgIGlmIChcInZlcnNpb25JbmZvXCIgaW4gb2JqKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIub25WZXJzaW9uSW5mbyhvYmoudmVyc2lvbkluZm8pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNFcnJvcnMgPSBCb29sZWFuKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAvLyBDb21waWxhdGlvbiB3aXRoIGVycm9ycyAoZS5nLiBzeW50YXggZXJyb3Igb3IgbWlzc2luZyBtb2R1bGVzKS5cbiAgICAgICAgICAgICAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50OiBcImNsaWVudC1lcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudDogZXJyb3JzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZUVycm9ycyhlcnJvcnMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc1dhcm5pbmdzID0gQm9vbGVhbih3YXJuaW5ncyAmJiB3YXJuaW5ncy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGlmIChoYXNXYXJuaW5ncykge1xuICAgICAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudDogXCJjbGllbnQtd2FybmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2FybmluZ0NvdW50OiB3YXJuaW5ncy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAvLyBQcmludCB3YXJuaW5ncyB0byB0aGUgY29uc29sZS5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkTWVzc2FnZXMgPSAoMCwgX2Zvcm1hdHdlYnBhY2ttZXNzYWdlcy5kZWZhdWx0KSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nczogd2FybmluZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IFtdXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkTWVzc2FnZXMud2FybmluZ3MubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJUaGVyZSB3ZXJlIG1vcmUgd2FybmluZ3MgaW4gb3RoZXIgZmlsZXMuXFxuXCIgKyBcIllvdSBjYW4gZmluZCBhIGNvbXBsZXRlIGxvZyBpbiB0aGUgdGVybWluYWwuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCgwLCBfc3RyaXBhbnNpLmRlZmF1bHQpKGZvcm1hdHRlZE1lc3NhZ2VzLndhcm5pbmdzW2ldKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBObyBlYXJseSByZXR1cm4gaGVyZSBhcyB3ZSBuZWVkIHRvIGFwcGx5IG1vZHVsZXMgaW4gdGhlIHNhbWUgd2F5IGJldHdlZW4gd2FybmluZ3Mgb25seSBhbmQgY29tcGlsZXMgd2l0aG91dCB3YXJuaW5nc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiBcImNsaWVudC1zdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICBpZiAob2JqLmFjdGlvbiA9PT0gX2hvdHJlbG9hZGVydHlwZXMuSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxUKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBob3QgdXBkYXRlc1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVIb3RVcGRhdGUob2JqLnVwZGF0ZWRNb2R1bGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAvLyBUT0RPLUFQUDogbWFrZSBzZXJ2ZXIgY29tcG9uZW50IGNoYW5nZSBtb3JlIGdyYW51bGFyXG4gICAgICAgIGNhc2UgX2hvdHJlbG9hZGVydHlwZXMuSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFUzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiBcInNlcnZlci1jb21wb25lbnQtcmVsb2FkLXBhZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQ6IF9fbmV4dERldkNsaWVudElkXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIGlmIChfdXNlZXJyb3JoYW5kbGVyLlJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWxvYWRpbmcpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgcmVsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKDAsIF9yZWFjdC5zdGFydFRyYW5zaXRpb24pKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgaXQgZXhpc3RzLCBpdCdzIGp1c3QgaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlci5mYXN0UmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgX2hvdHJlbG9hZGVydHlwZXMuSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlJFTE9BRF9QQUdFOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6IFwiY2xpZW50LXJlbG9hZC1wYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICBpZiAocmVsb2FkaW5nKSByZXR1cm47XG4gICAgICAgICAgICAgICAgcmVsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIF9ob3RyZWxvYWRlcnR5cGVzLkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5SRU1PVkVEX1BBR0U6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETy1BUFA6IHBvdGVudGlhbGx5IG9ubHkgcmVmcmVzaCBpZiB0aGUgY3VycmVudGx5IHZpZXdlZCBwYWdlIHdhcyByZW1vdmVkLlxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgaXQgZXhpc3RzLCBpdCdzIGp1c3QgaGlkZGVuXG4gICAgICAgICAgICAgICAgcm91dGVyLmZhc3RSZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIF9ob3RyZWxvYWRlcnR5cGVzLkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5BRERFRF9QQUdFOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBwb3RlbnRpYWxseSBvbmx5IHJlZnJlc2ggaWYgdGhlIGN1cnJlbnRseSB2aWV3ZWQgcGFnZSB3YXMgYWRkZWQuXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBpdCBleGlzdHMsIGl0J3MganVzdCBoaWRkZW5cbiAgICAgICAgICAgICAgICByb3V0ZXIuZmFzdFJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgX2hvdHJlbG9hZGVydHlwZXMuSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9FUlJPUjpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9ySlNPTiB9ID0gb2JqO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvckpTT04pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCBzdGFjayB9ID0gSlNPTi5wYXJzZShlcnJvckpTT04pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3Iuc3RhY2sgPSBzdGFjaztcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXJyb3JzKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgX2hvdHJlbG9hZGVydHlwZXMuSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkRFVl9QQUdFU19NQU5JRkVTVF9VUERBVEU6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAge31cbiAgICB9XG59XG5mdW5jdGlvbiBIb3RSZWxvYWQocGFyYW0pIHtcbiAgICBsZXQgeyBhc3NldFByZWZpeCwgY2hpbGRyZW4gfSA9IHBhcmFtO1xuICAgIGNvbnN0IFtzdGF0ZSwgZGlzcGF0Y2hdID0gKDAsIF9yZWFjdC51c2VSZWR1Y2VyKShfZXJyb3JvdmVybGF5cmVkdWNlci5lcnJvck92ZXJsYXlSZWR1Y2VyLCBfZXJyb3JvdmVybGF5cmVkdWNlci5JTklUSUFMX09WRVJMQVlfU1RBVEUpO1xuICAgIGNvbnN0IGRpc3BhdGNoZXIgPSAoMCwgX3JlYWN0LnVzZU1lbW8pKCgpPT57XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvbkJ1aWxkT2sgKCkge1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogX2Vycm9yb3ZlcmxheXJlZHVjZXIuQUNUSU9OX0JVSUxEX09LXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25CdWlsZEVycm9yIChtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBfZXJyb3JvdmVybGF5cmVkdWNlci5BQ1RJT05fQlVJTERfRVJST1IsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkJlZm9yZVJlZnJlc2ggKCkge1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogX2Vycm9yb3ZlcmxheXJlZHVjZXIuQUNUSU9OX0JFRk9SRV9SRUZSRVNIXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25SZWZyZXNoICgpIHtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IF9lcnJvcm92ZXJsYXlyZWR1Y2VyLkFDVElPTl9SRUZSRVNIXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25WZXJzaW9uSW5mbyAodmVyc2lvbkluZm8pIHtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IF9lcnJvcm92ZXJsYXlyZWR1Y2VyLkFDVElPTl9WRVJTSU9OX0lORk8sXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb25JbmZvXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBkaXNwYXRjaFxuICAgIF0pO1xuICAgIGNvbnN0IGhhbmRsZU9uVW5oYW5kbGVkRXJyb3IgPSAoMCwgX3JlYWN0LnVzZUNhbGxiYWNrKSgoZXJyb3IpPT57XG4gICAgICAgIC8vIENvbXBvbmVudCBzdGFjayBpcyBhZGRlZCB0byB0aGUgZXJyb3IgaW4gdXNlLWVycm9yLWhhbmRsZXIgaW4gY2FzZSB0aGVyZSB3YXMgYSBoeWRyYXRpb24gZXJycm9yXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFN0YWNrID0gZXJyb3IuX2NvbXBvbmVudFN0YWNrO1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiBfZXJyb3JvdmVybGF5cmVkdWNlci5BQ1RJT05fVU5IQU5ETEVEX0VSUk9SLFxuICAgICAgICAgICAgcmVhc29uOiBlcnJvcixcbiAgICAgICAgICAgIGZyYW1lczogKDAsIF9wYXJzZVN0YWNrLnBhcnNlU3RhY2spKGVycm9yLnN0YWNrKSxcbiAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrRnJhbWVzOiBjb21wb25lbnRTdGFjayAmJiAoMCwgX3BhcnNlY29tcG9uZW50c3RhY2sucGFyc2VDb21wb25lbnRTdGFjaykoY29tcG9uZW50U3RhY2spXG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbiA9ICgwLCBfcmVhY3QudXNlQ2FsbGJhY2spKChyZWFzb24pPT57XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6IF9lcnJvcm92ZXJsYXlyZWR1Y2VyLkFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OLFxuICAgICAgICAgICAgcmVhc29uOiByZWFzb24sXG4gICAgICAgICAgICBmcmFtZXM6ICgwLCBfcGFyc2VTdGFjay5wYXJzZVN0YWNrKShyZWFzb24uc3RhY2spXG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVPblJlYWN0RXJyb3IgPSAoMCwgX3JlYWN0LnVzZUNhbGxiYWNrKSgoKT0+e1xuICAgICAgICBfdXNlZXJyb3JoYW5kbGVyLlJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yID0gdHJ1ZTtcbiAgICB9LCBbXSk7XG4gICAgKDAsIF91c2VlcnJvcmhhbmRsZXIudXNlRXJyb3JIYW5kbGVyKShoYW5kbGVPblVuaGFuZGxlZEVycm9yLCBoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbik7XG4gICAgY29uc3Qgd2ViU29ja2V0UmVmID0gKDAsIF91c2V3ZWJzb2NrZXQudXNlV2Vic29ja2V0KShhc3NldFByZWZpeCk7XG4gICAgKDAsIF91c2V3ZWJzb2NrZXQudXNlV2Vic29ja2V0UGluZykod2ViU29ja2V0UmVmKTtcbiAgICBjb25zdCBzZW5kTWVzc2FnZSA9ICgwLCBfdXNld2Vic29ja2V0LnVzZVNlbmRNZXNzYWdlKSh3ZWJTb2NrZXRSZWYpO1xuICAgIGNvbnN0IHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlID0gKDAsIF91c2V3ZWJzb2NrZXQudXNlVHVyYm9wYWNrKShzZW5kTWVzc2FnZSk7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9uYXZpZ2F0aW9uLnVzZVJvdXRlcikoKTtcbiAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChldmVudCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcbiAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVkQnlUdXJib3BhY2sgPSBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSA9PSBudWxsID8gdm9pZCAwIDogcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2Uob2JqKTtcbiAgICAgICAgICAgICAgICBpZiAoIWhhbmRsZWRCeVR1cmJvcGFjaykge1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzTWVzc2FnZShvYmosIHNlbmRNZXNzYWdlLCByb3V0ZXIsIGRpc3BhdGNoZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHZhciBfZXJyX3N0YWNrO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIltITVJdIEludmFsaWQgbWVzc2FnZTogXCIgKyBldmVudC5kYXRhICsgXCJcXG5cIiArICgoX2Vycl9zdGFjayA9IGVyciA9PSBudWxsID8gdm9pZCAwIDogZXJyLnN0YWNrKSAhPSBudWxsID8gX2Vycl9zdGFjayA6IFwiXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgd2Vic29ja2V0ID0gd2ViU29ja2V0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICh3ZWJzb2NrZXQpIHtcbiAgICAgICAgICAgIHdlYnNvY2tldC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCk9PndlYnNvY2tldCAmJiB3ZWJzb2NrZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgfSwgW1xuICAgICAgICBzZW5kTWVzc2FnZSxcbiAgICAgICAgcm91dGVyLFxuICAgICAgICB3ZWJTb2NrZXRSZWYsXG4gICAgICAgIGRpc3BhdGNoZXIsXG4gICAgICAgIHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlXG4gICAgXSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX1JlYWN0RGV2T3ZlcmxheS5kZWZhdWx0LCB7XG4gICAgICAgIG9uUmVhY3RFcnJvcjogaGFuZGxlT25SZWFjdEVycm9yLFxuICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3QtcmVsb2FkZXItY2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJIb3RSZWxvYWQiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJyZXF1aXJlIiwiX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCIsIl9qc3hydW50aW1lIiwiX3JlYWN0IiwiXyIsIl9zdHJpcGFuc2kiLCJfZm9ybWF0d2VicGFja21lc3NhZ2VzIiwiX25hdmlnYXRpb24iLCJfZXJyb3JvdmVybGF5cmVkdWNlciIsIl9wYXJzZVN0YWNrIiwiX1JlYWN0RGV2T3ZlcmxheSIsIl91c2VlcnJvcmhhbmRsZXIiLCJfdXNld2Vic29ja2V0IiwiX3BhcnNlY29tcG9uZW50c3RhY2siLCJfaG90cmVsb2FkZXJ0eXBlcyIsIm1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2giLCJfX25leHREZXZDbGllbnRJZCIsIk1hdGgiLCJyb3VuZCIsInJhbmRvbSIsIkRhdGUiLCJub3ciLCJyZWxvYWRpbmciLCJzdGFydExhdGVuY3kiLCJvbkJlZm9yZUZhc3RSZWZyZXNoIiwiZGlzcGF0Y2hlciIsImhhc1VwZGF0ZXMiLCJvbkJlZm9yZVJlZnJlc2giLCJvbkZhc3RSZWZyZXNoIiwic2VuZE1lc3NhZ2UiLCJ1cGRhdGVkTW9kdWxlcyIsImVuZExhdGVuY3kiLCJvbkJ1aWxkT2siLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJpZCIsIndpbmRvdyIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJwYWdlIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImlzUGFnZUhpZGRlbiIsImRvY3VtZW50IiwidmlzaWJpbGl0eVN0YXRlIiwibGVuZ3RoIiwib25SZWZyZXNoIiwiaGFuZGxlQXZhaWxhYmxlSGFzaCIsImhhc2giLCJpc1VwZGF0ZUF2YWlsYWJsZSIsInByb2Nlc3MiLCJlbnYiLCJUVVJCT1BBQ0siLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsImhhbmRsZXIiLCJyZW1vdmVTdGF0dXNIYW5kbGVyIiwiYWRkU3RhdHVzSGFuZGxlciIsInBlcmZvcm1GdWxsUmVsb2FkIiwiZXJyIiwic3RhY2tUcmFjZSIsInN0YWNrIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJtZXNzYWdlIiwiaGFkUnVudGltZUVycm9yIiwiUnVudGltZUVycm9ySGFuZGxlciIsInJlbG9hZCIsInRyeUFwcGx5VXBkYXRlcyIsIm9uQmVmb3JlVXBkYXRlIiwib25Ib3RVcGRhdGVTdWNjZXNzIiwiaGFuZGxlQXBwbHlVcGRhdGVzIiwiY29uc29sZSIsIndhcm4iLCJCb29sZWFuIiwiX19ORVhUX1RFU1RfTU9ERSIsInNlbGYiLCJfX05FWFRfSE1SX0NCIiwiY2hlY2siLCJ0aGVuIiwiYXBwbHkiLCJwcm9jZXNzTWVzc2FnZSIsIm9iaiIsInJvdXRlciIsImhhbmRsZUVycm9ycyIsImVycm9ycyIsImZvcm1hdHRlZCIsImRlZmF1bHQiLCJ3YXJuaW5ncyIsIm9uQnVpbGRFcnJvciIsImkiLCJlcnJvciIsImhhbmRsZUhvdFVwZGF0ZSIsIm9uQmVmb3JlSG90VXBkYXRlIiwib25TdWNjZXNzZnVsSG90VXBkYXRlIiwid2VicGFja1VwZGF0ZWRNb2R1bGVzIiwiYWN0aW9uIiwiSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIiwiQlVJTERJTkciLCJsb2ciLCJGSU5JU0hfQlVJTERJTkciLCJCVUlMVCIsIlNZTkMiLCJvblZlcnNpb25JbmZvIiwidmVyc2lvbkluZm8iLCJoYXNFcnJvcnMiLCJlcnJvckNvdW50IiwiY2xpZW50SWQiLCJoYXNXYXJuaW5ncyIsIndhcm5pbmdDb3VudCIsImZvcm1hdHRlZE1lc3NhZ2VzIiwiU0VSVkVSX0NPTVBPTkVOVF9DSEFOR0VTIiwic3RhcnRUcmFuc2l0aW9uIiwiZmFzdFJlZnJlc2giLCJSRUxPQURfUEFHRSIsIlJFTU9WRURfUEFHRSIsIkFEREVEX1BBR0UiLCJTRVJWRVJfRVJST1IiLCJlcnJvckpTT04iLCJwYXJzZSIsIkVycm9yIiwiREVWX1BBR0VTX01BTklGRVNUX1VQREFURSIsInBhcmFtIiwiYXNzZXRQcmVmaXgiLCJjaGlsZHJlbiIsInN0YXRlIiwiZGlzcGF0Y2giLCJ1c2VSZWR1Y2VyIiwiZXJyb3JPdmVybGF5UmVkdWNlciIsIklOSVRJQUxfT1ZFUkxBWV9TVEFURSIsInVzZU1lbW8iLCJ0eXBlIiwiQUNUSU9OX0JVSUxEX09LIiwiQUNUSU9OX0JVSUxEX0VSUk9SIiwiQUNUSU9OX0JFRk9SRV9SRUZSRVNIIiwiQUNUSU9OX1JFRlJFU0giLCJBQ1RJT05fVkVSU0lPTl9JTkZPIiwiaGFuZGxlT25VbmhhbmRsZWRFcnJvciIsInVzZUNhbGxiYWNrIiwiY29tcG9uZW50U3RhY2siLCJfY29tcG9uZW50U3RhY2siLCJBQ1RJT05fVU5IQU5ETEVEX0VSUk9SIiwicmVhc29uIiwiZnJhbWVzIiwicGFyc2VTdGFjayIsImNvbXBvbmVudFN0YWNrRnJhbWVzIiwicGFyc2VDb21wb25lbnRTdGFjayIsImhhbmRsZU9uVW5oYW5kbGVkUmVqZWN0aW9uIiwiQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04iLCJoYW5kbGVPblJlYWN0RXJyb3IiLCJ1c2VFcnJvckhhbmRsZXIiLCJ3ZWJTb2NrZXRSZWYiLCJ1c2VXZWJzb2NrZXQiLCJ1c2VXZWJzb2NrZXRQaW5nIiwidXNlU2VuZE1lc3NhZ2UiLCJwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSIsInVzZVR1cmJvcGFjayIsInVzZVJvdXRlciIsInVzZUVmZmVjdCIsImRhdGEiLCJoYW5kbGVkQnlUdXJib3BhY2siLCJfZXJyX3N0YWNrIiwid2Vic29ja2V0IiwiY3VycmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwianN4Iiwib25SZWFjdEVycm9yIiwiX19lc01vZHVsZSIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/hot-reloader-client.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/ReactDevOverlay.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/ReactDevOverlay.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 _default;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _erroroverlayreducer = __webpack_require__(/*! ./error-overlay-reducer */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/error-overlay-reducer.js\");\nconst _ShadowPortal = __webpack_require__(/*! ./components/ShadowPortal */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js\");\nconst _BuildError = __webpack_require__(/*! ./container/BuildError */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js\");\nconst _Errors = __webpack_require__(/*! ./container/Errors */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js\");\nconst _RootLayoutError = __webpack_require__(/*! ./container/RootLayoutError */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RootLayoutError.js\");\nconst _parseStack = __webpack_require__(/*! ./helpers/parseStack */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js\");\nconst _Base = __webpack_require__(/*! ./styles/Base */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js\");\nconst _ComponentStyles = __webpack_require__(/*! ./styles/ComponentStyles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js\");\nconst _CssReset = __webpack_require__(/*! ./styles/CssReset */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js\");\nclass ReactDevOverlay extends _react.PureComponent {\n static getDerivedStateFromError(error) {\n const e = error;\n const event = {\n type: _erroroverlayreducer.ACTION_UNHANDLED_ERROR,\n reason: error,\n frames: (0, _parseStack.parseStack)(e.stack)\n };\n const errorEvent = {\n id: 0,\n event\n };\n return {\n reactError: errorEvent\n };\n }\n componentDidCatch(componentErr) {\n this.props.onReactError(componentErr);\n }\n render() {\n const { state, children } = this.props;\n const { reactError } = this.state;\n const hasBuildError = state.buildError != null;\n const hasRuntimeErrors = Boolean(state.errors.length);\n const rootLayoutMissingTagsError = state.rootLayoutMissingTagsError;\n const isMounted = hasBuildError || hasRuntimeErrors || reactError || rootLayoutMissingTagsError;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n reactError ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"body\", {})\n ]\n }) : children,\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 rootLayoutMissingTagsError ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_RootLayoutError.RootLayoutError, {\n missingTags: rootLayoutMissingTagsError.missingTags\n }) : hasBuildError ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_BuildError.BuildError, {\n message: state.buildError,\n versionInfo: state.versionInfo\n }) : reactError ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_Errors.Errors, {\n versionInfo: state.versionInfo,\n initialDisplayState: \"fullscreen\",\n errors: [\n reactError\n ]\n }) : hasRuntimeErrors ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_Errors.Errors, {\n initialDisplayState: \"minimized\",\n errors: state.errors,\n versionInfo: state.versionInfo\n }) : undefined\n ]\n }) : undefined\n ]\n });\n }\n constructor(...args){\n super(...args);\n this.state = {\n reactError: null\n };\n }\n}\nconst _default = 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\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL1JlYWN0RGV2T3ZlcmxheS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsMkNBQTBDO0lBQ3RDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsNEJBQTRCQyxtQkFBT0EsQ0FBQyxvSEFBMEM7QUFDcEYsTUFBTUMsY0FBY0QsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1FLFNBQVMsV0FBVyxHQUFHSCwwQkFBMEJJLENBQUMsQ0FBQ0gsbUJBQU9BLENBQUMsd0dBQU87QUFDeEUsTUFBTUksdUJBQXVCSixtQkFBT0EsQ0FBQyxxSUFBeUI7QUFDOUQsTUFBTUssZ0JBQWdCTCxtQkFBT0EsQ0FBQyx5SUFBMkI7QUFDekQsTUFBTU0sY0FBY04sbUJBQU9BLENBQUMsbUlBQXdCO0FBQ3BELE1BQU1PLFVBQVVQLG1CQUFPQSxDQUFDLDJIQUFvQjtBQUM1QyxNQUFNUSxtQkFBbUJSLG1CQUFPQSxDQUFDLDZJQUE2QjtBQUM5RCxNQUFNUyxjQUFjVCxtQkFBT0EsQ0FBQywrSEFBc0I7QUFDbEQsTUFBTVUsUUFBUVYsbUJBQU9BLENBQUMsaUhBQWU7QUFDckMsTUFBTVcsbUJBQW1CWCxtQkFBT0EsQ0FBQyx1SUFBMEI7QUFDM0QsTUFBTVksWUFBWVosbUJBQU9BLENBQUMseUhBQW1CO0FBQzdDLE1BQU1hLHdCQUF3QlgsT0FBT1ksYUFBYTtJQUM5QyxPQUFPQyx5QkFBeUJDLEtBQUssRUFBRTtRQUNuQyxNQUFNQyxJQUFJRDtRQUNWLE1BQU1FLFFBQVE7WUFDVkMsTUFBTWYscUJBQXFCZ0Isc0JBQXNCO1lBQ2pEQyxRQUFRTDtZQUNSTSxRQUFRLENBQUMsR0FBR2IsWUFBWWMsVUFBVSxFQUFFTixFQUFF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LFFBQVFrRSxPQUFPLEVBQUUsY0FBYztRQUFFakUsT0FBTztJQUFLO0lBQ25FSCxPQUFPc0UsTUFBTSxDQUFDcEUsUUFBUWtFLE9BQU8sRUFBRWxFO0lBQy9CcUUsT0FBT3JFLE9BQU8sR0FBR0EsUUFBUWtFLE9BQU87QUFDbEMsRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL1JlYWN0RGV2T3ZlcmxheS5qcz9kMmM3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2RlZmF1bHQ7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9fL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmRcIik7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZC5fKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfZXJyb3JvdmVybGF5cmVkdWNlciA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXktcmVkdWNlclwiKTtcbmNvbnN0IF9TaGFkb3dQb3J0YWwgPSByZXF1aXJlKFwiLi9jb21wb25lbnRzL1NoYWRvd1BvcnRhbFwiKTtcbmNvbnN0IF9CdWlsZEVycm9yID0gcmVxdWlyZShcIi4vY29udGFpbmVyL0J1aWxkRXJyb3JcIik7XG5jb25zdCBfRXJyb3JzID0gcmVxdWlyZShcIi4vY29udGFpbmVyL0Vycm9yc1wiKTtcbmNvbnN0IF9Sb290TGF5b3V0RXJyb3IgPSByZXF1aXJlKFwiLi9jb250YWluZXIvUm9vdExheW91dEVycm9yXCIpO1xuY29uc3QgX3BhcnNlU3RhY2sgPSByZXF1aXJlKFwiLi9oZWxwZXJzL3BhcnNlU3RhY2tcIik7XG5jb25zdCBfQmFzZSA9IHJlcXVpcmUoXCIuL3N0eWxlcy9CYXNlXCIpO1xuY29uc3QgX0NvbXBvbmVudFN0eWxlcyA9IHJlcXVpcmUoXCIuL3N0eWxlcy9Db21wb25lbnRTdHlsZXNcIik7XG5jb25zdCBfQ3NzUmVzZXQgPSByZXF1aXJlKFwiLi9zdHlsZXMvQ3NzUmVzZXRcIik7XG5jbGFzcyBSZWFjdERldk92ZXJsYXkgZXh0ZW5kcyBfcmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcikge1xuICAgICAgICBjb25zdCBlID0gZXJyb3I7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgICAgICAgdHlwZTogX2Vycm9yb3ZlcmxheXJlZHVjZXIuQUNUSU9OX1VOSEFORExFRF9FUlJPUixcbiAgICAgICAgICAgIHJlYXNvbjogZXJyb3IsXG4gICAgICAgICAgICBmcmFtZXM6ICgwLCBfcGFyc2VTdGFjay5wYXJzZVN0YWNrKShlLnN0YWNrKVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBlcnJvckV2ZW50ID0ge1xuICAgICAgICAgICAgaWQ6IDAsXG4gICAgICAgICAgICBldmVudFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVhY3RFcnJvcjogZXJyb3JFdmVudFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb21wb25lbnREaWRDYXRjaChjb21wb25lbnRFcnIpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblJlYWN0RXJyb3IoY29tcG9uZW50RXJyKTtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHN0YXRlLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgeyByZWFjdEVycm9yIH0gPSB0aGlzLnN0YXRlO1xuICAgICAgICBjb25zdCBoYXNCdWlsZEVycm9yID0gc3RhdGUuYnVpbGRFcnJvciAhPSBudWxsO1xuICAgICAgICBjb25zdCBoYXNSdW50aW1lRXJyb3JzID0gQm9vbGVhbihzdGF0ZS5lcnJvcnMubGVuZ3RoKTtcbiAgICAgICAgY29uc3Qgcm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3IgPSBzdGF0ZS5yb290TGF5b3V0TWlzc2luZ1RhZ3NFcnJvcjtcbiAgICAgICAgY29uc3QgaXNNb3VudGVkID0gaGFzQnVpbGRFcnJvciB8fCBoYXNSdW50aW1lRXJyb3JzIHx8IHJlYWN0RXJyb3IgfHwgcm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3I7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShfanN4cnVudGltZS5GcmFnbWVudCwge1xuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICByZWFjdEVycm9yID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4cykoXCJodG1sXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJoZWFkXCIsIHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJib2R5XCIsIHt9KVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSkgOiBjaGlsZHJlbixcbiAgICAgICAgICAgICAgICBpc01vdW50ZWQgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShfU2hhZG93UG9ydGFsLlNoYWRvd1BvcnRhbCwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfQ3NzUmVzZXQuQ3NzUmVzZXQsIHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX0Jhc2UuQmFzZSwge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfQ29tcG9uZW50U3R5bGVzLkNvbXBvbmVudFN0eWxlcywge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3IgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9Sb290TGF5b3V0RXJyb3IuUm9vdExheW91dEVycm9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZ1RhZ3M6IHJvb3RMYXlvdXRNaXNzaW5nVGFnc0Vycm9yLm1pc3NpbmdUYWdzXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSA6IGhhc0J1aWxkRXJyb3IgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9CdWlsZEVycm9yLkJ1aWxkRXJyb3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBzdGF0ZS5idWlsZEVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb25JbmZvOiBzdGF0ZS52ZXJzaW9uSW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkgOiByZWFjdEVycm9yID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfRXJyb3JzLkVycm9ycywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb25JbmZvOiBzdGF0ZS52ZXJzaW9uSW5mbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRGlzcGxheVN0YXRlOiBcImZ1bGxzY3JlZW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhY3RFcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pIDogaGFzUnVudGltZUVycm9ycyA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX0Vycm9ycy5FcnJvcnMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRGlzcGxheVN0YXRlOiBcIm1pbmltaXplZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogc3RhdGUuZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb25JbmZvOiBzdGF0ZS52ZXJzaW9uSW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0pIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKXtcbiAgICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICByZWFjdEVycm9yOiBudWxsXG4gICAgICAgIH07XG4gICAgfVxufVxuY29uc3QgX2RlZmF1bHQgPSBSZWFjdERldk92ZXJsYXk7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWN0RGV2T3ZlcmxheS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX2RlZmF1bHQiLCJfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIiwicmVxdWlyZSIsIl9qc3hydW50aW1lIiwiX3JlYWN0IiwiXyIsIl9lcnJvcm92ZXJsYXlyZWR1Y2VyIiwiX1NoYWRvd1BvcnRhbCIsIl9CdWlsZEVycm9yIiwiX0Vycm9ycyIsIl9Sb290TGF5b3V0RXJyb3IiLCJfcGFyc2VTdGFjayIsIl9CYXNlIiwiX0NvbXBvbmVudFN0eWxlcyIsIl9Dc3NSZXNldCIsIlJlYWN0RGV2T3ZlcmxheSIsIlB1cmVDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImUiLCJldmVudCIsInR5cGUiLCJBQ1RJT05fVU5IQU5ETEVEX0VSUk9SIiwicmVhc29uIiwiZnJhbWVzIiwicGFyc2VTdGFjayIsInN0YWNrIiwiZXJyb3JFdmVudCIsImlkIiwicmVhY3RFcnJvciIsImNvbXBvbmVudERpZENhdGNoIiwiY29tcG9uZW50RXJyIiwicHJvcHMiLCJvblJlYWN0RXJyb3IiLCJyZW5kZXIiLCJzdGF0ZSIsImNoaWxkcmVuIiwiaGFzQnVpbGRFcnJvciIsImJ1aWxkRXJyb3IiLCJoYXNSdW50aW1lRXJyb3JzIiwiQm9vbGVhbiIsImVycm9ycyIsImxlbmd0aCIsInJvb3RMYXlvdXRNaXNzaW5nVGFnc0Vycm9yIiwiaXNNb3VudGVkIiwianN4cyIsIkZyYWdtZW50IiwianN4IiwiU2hhZG93UG9ydGFsIiwiQ3NzUmVzZXQiLCJCYXNlIiwiQ29tcG9uZW50U3R5bGVzIiwiUm9vdExheW91dEVycm9yIiwibWlzc2luZ1RhZ3MiLCJCdWlsZEVycm9yIiwibWVzc2FnZSIsInZlcnNpb25JbmZvIiwiRXJyb3JzIiwiaW5pdGlhbERpc3BsYXlTdGF0ZSIsInVuZGVmaW5lZCIsImNvbnN0cnVjdG9yIiwiYXJncyIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/ReactDevOverlay.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _anser = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/anser */ \"(ssr)/./node_modules/next/dist/compiled/anser/index.js\"));\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _stackframe = __webpack_require__(/*! ../../helpers/stack-frame */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\nconst _useopenineditor = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\nconst CodeFrame = function CodeFrame(param) {\n let { stackFrame, codeFrame } = param;\n // Strip leading spaces out of the code frame:\n const formattedFrame = _react.useMemo(()=>{\n const lines = codeFrame.split(/\\r?\\n/g);\n const prefixLength = lines.map((line)=>/^>? +\\d+ +\\| [ ]+/.exec((0, _stripansi.default)(line)) === null ? null : /^>? +\\d+ +\\| ( *)/.exec((0, _stripansi.default)(line))).filter(Boolean).map((v)=>v.pop()).reduce((c, n)=>isNaN(c) ? n.length : Math.min(c, n.length), NaN);\n if (prefixLength > 1) {\n const p = \" \".repeat(prefixLength);\n return lines.map((line, a)=>~(a = line.indexOf(\"|\")) ? line.substring(0, a) + line.substring(a).replace(p, \"\") : line).join(\"\\n\");\n }\n return lines.join(\"\\n\");\n }, [\n codeFrame\n ]);\n const decoded = _react.useMemo(()=>{\n return _anser.default.ansiToJson(formattedFrame, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }, [\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 stackFrame.methodName\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};\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\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL0NvZGVGcmFtZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsNkNBQTRDO0lBQ3hDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsMkJBQTJCQyxtQkFBT0EsQ0FBQyxrSEFBeUM7QUFDbEYsTUFBTUMsNEJBQTRCRCxtQkFBT0EsQ0FBQyxvSEFBMEM7QUFDcEYsTUFBTUUsY0FBY0YsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1HLFNBQVMsV0FBVyxHQUFHSix5QkFBeUJLLENBQUMsQ0FBQ0osbUJBQU9BLENBQUMsd0ZBQTBCO0FBQzFGLE1BQU1LLFNBQVMsV0FBVyxHQUFHSiwwQkFBMEJHLENBQUMsQ0FBQ0osbUJBQU9BLENBQUMsd0dBQU87QUFDeEUsTUFBTU0sYUFBYSxXQUFXLEdBQUdQLHlCQUF5QkssQ0FBQyxDQUFDSixtQkFBT0EsQ0FBQyxrR0FBK0I7QUFDbkcsTUFBTU8sY0FBY1AsbUJBQU9BLENBQUMscUlBQTJCO0FBQ3ZELE1BQU1RLG1CQUFtQlIsbUJBQU9BLENBQUMsbUpBQWtDO0FBQ25FLE1BQU1GLFlBQVksU0FBU0EsVUFBVVcsS0FBSztJQUN0QyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFLEdBQUdGO0lBQ2hDLDhDQUE4QztJQUM5QyxNQUFNRyxpQkFBaUJQLE9BQU9RLE9BQU8sQ0FBQztRQUNsQyxNQUFNQyxRQUFRSCxVQUFVSSxLQUFLLENBQUM7UUFDOUIsTUFBTUMsZUFBZUYsTUFBTUcsR0FBRyxDQUFDLENBQUNDLE9BQU8sb0JBQW9CQyxJQUFJLENBQUMsQ0FBQyxHQUFHYixXQUFXYyxPQUFPLEVBQUVGLFdBQVcs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TU0sVUFBVSxLQUFLLFNBQVM7Z0NBQzdCQyxZQUFZOzRCQUNoQixJQUFJUCxNQUFNTSxVQUFVLEtBQUssV0FBVztnQ0FDaENFLFdBQVc7NEJBQ2YsSUFBSUgsU0FBUzt3QkFDakI7d0JBQ0ExQixVQUFVcUIsTUFBTVMsT0FBTztvQkFDM0IsR0FBRyxXQUFXUjtZQUN0QjtTQUNIO0lBQ0w7QUFDSjtBQUVBLElBQUksQ0FBQyxPQUFPL0UsUUFBUTBCLE9BQU8sS0FBSyxjQUFlLE9BQU8xQixRQUFRMEIsT0FBTyxLQUFLLFlBQVkxQixRQUFRMEIsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPMUIsUUFBUTBCLE9BQU8sQ0FBQzhELFVBQVUsS0FBSyxhQUFhO0lBQ3JLMUYsT0FBT0MsY0FBYyxDQUFDQyxRQUFRMEIsT0FBTyxFQUFFLGNBQWM7UUFBRXpCLE9BQU87SUFBSztJQUNuRUgsT0FBTzJGLE1BQU0sQ0FBQ3pGLFFBQVEwQixPQUFPLEVBQUUxQjtJQUMvQjBGLE9BQU8xRixPQUFPLEdBQUdBLFFBQVEwQixPQUFPO0FBQ2xDLEVBRUEscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0NvZGVGcmFtZS9Db2RlRnJhbWUuanM/ZjYyMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNvZGVGcmFtZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQ29kZUZyYW1lO1xuICAgIH1cbn0pO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9fL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdFwiKTtcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZFwiKTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX2Fuc2VyID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2Fuc2VyXCIpKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZC5fKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfc3RyaXBhbnNpID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIikpO1xuY29uc3QgX3N0YWNrZnJhbWUgPSByZXF1aXJlKFwiLi4vLi4vaGVscGVycy9zdGFjay1mcmFtZVwiKTtcbmNvbnN0IF91c2VvcGVuaW5lZGl0b3IgPSByZXF1aXJlKFwiLi4vLi4vaGVscGVycy91c2Utb3Blbi1pbi1lZGl0b3JcIik7XG5jb25zdCBDb2RlRnJhbWUgPSBmdW5jdGlvbiBDb2RlRnJhbWUocGFyYW0pIHtcbiAgICBsZXQgeyBzdGFja0ZyYW1lLCBjb2RlRnJhbWUgfSA9IHBhcmFtO1xuICAgIC8vIFN0cmlwIGxlYWRpbmcgc3BhY2VzIG91dCBvZiB0aGUgY29kZSBmcmFtZTpcbiAgICBjb25zdCBmb3JtYXR0ZWRGcmFtZSA9IF9yZWFjdC51c2VNZW1vKCgpPT57XG4gICAgICAgIGNvbnN0IGxpbmVzID0gY29kZUZyYW1lLnNwbGl0KC9cXHI/XFxuL2cpO1xuICAgICAgICBjb25zdCBwcmVmaXhMZW5ndGggPSBsaW5lcy5tYXAoKGxpbmUpPT4vXj4/ICtcXGQrICtcXHwgWyBdKy8uZXhlYygoMCwgX3N0cmlwYW5zaS5kZWZhdWx0KShsaW5lKSkgPT09IG51bGwgPyBudWxsIDogL14+PyArXFxkKyArXFx8ICggKikvLmV4ZWMoKDAsIF9zdHJpcGFuc2kuZGVmYXVsdCkobGluZSkpKS5maWx0ZXIoQm9vbGVhbikubWFwKCh2KT0+di5wb3AoKSkucmVkdWNlKChjLCBuKT0+aXNOYU4oYykgPyBuLmxlbmd0aCA6IE1hdGgubWluKGMsIG4ubGVuZ3RoKSwgTmFOKTtcbiAgICAgICAgaWYgKHByZWZpeExlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHAgPSBcIiBcIi5yZXBlYXQocHJlZml4TGVuZ3RoKTtcbiAgICAgICAgICAgIHJldHVybiBsaW5lcy5tYXAoKGxpbmUsIGEpPT5+KGEgPSBsaW5lLmluZGV4T2YoXCJ8XCIpKSA/IGxpbmUuc3Vic3RyaW5nKDAsIGEpICsgbGluZS5zdWJzdHJpbmcoYSkucmVwbGFjZShwLCBcIlwiKSA6IGxpbmUpLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpbmVzLmpvaW4oXCJcXG5cIik7XG4gICAgfSwgW1xuICAgICAgICBjb2RlRnJhbWVcbiAgICBdKTtcbiAgICBjb25zdCBkZWNvZGVkID0gX3JlYWN0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgcmV0dXJuIF9hbnNlci5kZWZhdWx0LmFuc2lUb0pzb24oZm9ybWF0dGVkRnJhbWUsIHtcbiAgICAgICAgICAgIGpzb246IHRydWUsXG4gICAgICAgICAgICB1c2VfY2xhc3NlczogdHJ1ZSxcbiAgICAgICAgICAgIHJlbW92ZV9lbXB0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9LCBbXG4gICAgICAgIGZvcm1hdHRlZEZyYW1lXG4gICAgXSk7XG4gICAgY29uc3Qgb3BlbiA9ICgwLCBfdXNlb3BlbmluZWRpdG9yLnVzZU9wZW5JbkVkaXRvcikoe1xuICAgICAgICBmaWxlOiBzdGFja0ZyYW1lLmZpbGUsXG4gICAgICAgIGxpbmVOdW1iZXI6IHN0YWNrRnJhbWUubGluZU51bWJlcixcbiAgICAgICAgY29sdW1uOiBzdGFja0ZyYW1lLmNvbHVtblxuICAgIH0pO1xuICAgIC8vIFRPRE86IG1ha2UgdGhlIGNhcmV0IGFic29sdXRlXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwiZGl2XCIsIHtcbiAgICAgICAgXCJkYXRhLW5leHRqcy1jb2RlZnJhbWVcIjogdHJ1ZSxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShcInBcIiwge1xuICAgICAgICAgICAgICAgICAgICByb2xlOiBcImxpbmtcIixcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogb3BlbixcbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg6IDEsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkNsaWNrIHRvIG9wZW4gaW4geW91ciBlZGl0b3JcIixcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9zdGFja2ZyYW1lLmdldEZyYW1lU291cmNlKShzdGFja0ZyYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgQCBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tGcmFtZS5tZXRob2ROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShcInN2Z1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogXCIyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcInBhdGhcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZDogXCJNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwicG9seWxpbmVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBcIjE1IDMgMjEgMyAyMSA5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5lXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgxOiBcIjEwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MTogXCIxNFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDI6IFwiMjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkyOiBcIjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwicHJlXCIsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogZGVjb2RlZC5tYXAoKGVudHJ5LCBpbmRleCk9Pi8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGVudHJ5LmZnID8gXCJ2YXIoLS1jb2xvci1cIiArIGVudHJ5LmZnICsgXCIpXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZW50cnkuZGVjb3JhdGlvbiA9PT0gXCJib2xkXCIgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDgwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiBlbnRyeS5kZWNvcmF0aW9uID09PSBcIml0YWxpY1wiID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U3R5bGU6IFwiaXRhbGljXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGVudHJ5LmNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgfSwgXCJmcmFtZS1cIiArIGluZGV4KSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvZGVGcmFtZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiQ29kZUZyYW1lIiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQiLCJfanN4cnVudGltZSIsIl9hbnNlciIsIl8iLCJfcmVhY3QiLCJfc3RyaXBhbnNpIiwiX3N0YWNrZnJhbWUiLCJfdXNlb3BlbmluZWRpdG9yIiwicGFyYW0iLCJzdGFja0ZyYW1lIiwiY29kZUZyYW1lIiwiZm9ybWF0dGVkRnJhbWUiLCJ1c2VNZW1vIiwibGluZXMiLCJzcGxpdCIsInByZWZpeExlbmd0aCIsIm1hcCIsImxpbmUiLCJleGVjIiwiZGVmYXVsdCIsImZpbHRlciIsIkJvb2xlYW4iLCJ2IiwicG9wIiwicmVkdWNlIiwiYyIsIm4iLCJpc05hTiIsImxlbmd0aCIsIk1hdGgiLCJtaW4iLCJOYU4iLCJwIiwicmVwZWF0IiwiYSIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJyZXBsYWNlIiwiam9pbiIsImRlY29kZWQiLCJhbnNpVG9Kc29uIiwianNvbiIsInVzZV9jbGFzc2VzIiwicmVtb3ZlX2VtcHR5Iiwib3BlbiIsInVzZU9wZW5JbkVkaXRvciIsImZpbGUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwianN4cyIsImNoaWxkcmVuIiwianN4Iiwicm9sZSIsIm9uQ2xpY2siLCJ0YWJJbmRleCIsInRpdGxlIiwiZ2V0RnJhbWVTb3VyY2UiLCJtZXRob2ROYW1lIiwieG1sbnMiLCJ2aWV3Qm94IiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiZCIsInBvaW50cyIsIngxIiwieTEiLCJ4MiIsInkyIiwiZW50cnkiLCJpbmRleCIsInN0eWxlIiwiY29sb3IiLCJmZyIsInVuZGVmaW5lZCIsImRlY29yYXRpb24iLCJmb250V2VpZ2h0IiwiZm9udFN0eWxlIiwiY29udGVudCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCw2Q0FBNEM7SUFDeENJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DLFdBQVdDLFNBQVM7SUFDL0I7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNRCxhQUFhRSxtQkFBT0EsQ0FBQyxrSUFBYTtBQUV4QyxJQUFJLENBQUMsT0FBT04sUUFBUU8sT0FBTyxLQUFLLGNBQWUsT0FBT1AsUUFBUU8sT0FBTyxLQUFLLFlBQVlQLFFBQVFPLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT1AsUUFBUU8sT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS1YsT0FBT0MsY0FBYyxDQUFDQyxRQUFRTyxPQUFPLEVBQUUsY0FBYztRQUFFTixPQUFPO0lBQUs7SUFDbkVILE9BQU9XLE1BQU0sQ0FBQ1QsUUFBUU8sT0FBTyxFQUFFUDtJQUMvQlUsT0FBT1YsT0FBTyxHQUFHQSxRQUFRTyxPQUFPO0FBQ2xDLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0NvZGVGcmFtZS9pbmRleC5qcz83MGY4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ29kZUZyYW1lXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfQ29kZUZyYW1lLkNvZGVGcmFtZTtcbiAgICB9XG59KTtcbmNvbnN0IF9Db2RlRnJhbWUgPSByZXF1aXJlKFwiLi9Db2RlRnJhbWVcIik7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJfQ29kZUZyYW1lIiwiQ29kZUZyYW1lIiwicmVxdWlyZSIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./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 }\\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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsMENBQXlDO0lBQ3JDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsaUNBQWlDQyxtQkFBT0EsQ0FBQyw4SEFBK0M7QUFDOUYsTUFBTUMsZ0JBQWdCRCxtQkFBT0EsQ0FBQyx5SUFBNkI7QUFDM0QsU0FBU0U7SUFDTCxNQUFNQyxPQUFPSiwrQkFBK0JLLENBQUMsQ0FBQztRQUMxQztLQUNIO0lBQ0RGLGtCQUFrQjtRQUNkLE9BQU9DO0lBQ1g7SUFDQSxPQUFPQTtBQUNYO0FBQ0EsTUFBTUwsU0FBUyxDQUFDLEdBQUdHLGNBQWNJLElBQUksRUFBRUg7QUFFdkMsSUFBSSxDQUFDLE9BQU9SLFFBQVFZLE9BQU8sS0FBSyxjQUFlLE9BQU9aLFFBQVFZLE9BQU8sS0FBSyxZQUFZWixRQUFRWSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9aLFFBQVFZLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktmLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUVksT0FBTyxFQUFFLGNBQWM7UUFBRVgsT0FBTztJQUFLO0lBQ25FSCxPQUFPZ0IsTUFBTSxDQUFDZCxRQUFRWSxPQUFPLEVBQUVaO0lBQy9CZSxPQUFPZixPQUFPLEdBQUdBLFFBQVFZLE9BQU87QUFDbEMsRUFFQSxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL3N0eWxlcy5qcz9kYmFiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwic3R5bGVzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgfVxufSk7XG5jb25zdCBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlXCIpO1xuY29uc3QgX25vb3B0ZW1wbGF0ZSA9IHJlcXVpcmUoXCIuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG5mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKSB7XG4gICAgY29uc3QgZGF0YSA9IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZS5fKFtcbiAgICAgICAgXCJcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIHtcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJnKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZmcpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6OnNlbGVjdGlvbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktc2VsZWN0aW9uKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICoge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXFxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjayk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiA+IHAge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYgPiBwOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcCA+IHN2ZyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBoZWlnaHQ6IDFlbTtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIGRpdiA+IHByZSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG5cIlxuICAgIF0pO1xuICAgIF90ZW1wbGF0ZU9iamVjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xufVxuY29uc3Qgc3R5bGVzID0gKDAsIF9ub29wdGVtcGxhdGUubm9vcCkoX3RlbXBsYXRlT2JqZWN0KCkpO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsInN0eWxlcyIsIl90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSIsInJlcXVpcmUiLCJfbm9vcHRlbXBsYXRlIiwiX3RlbXBsYXRlT2JqZWN0IiwiZGF0YSIsIl8iLCJub29wIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _useonclickoutside = __webpack_require__(/*! ../../hooks/use-on-click-outside */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js\");\nconst Dialog = function Dialog(param) {\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((node)=>{\n setDialog(node);\n }, []);\n (0, _useonclickoutside.useOnClickOutside)(dialog, onClose);\n // Make HTMLElements with `role=link` accessible to be triggered by the\n // keyboard, i.e. [Enter].\n _react.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 shadowRoot.removeEventListener(\"keydown\", handler);\n window.removeEventListener(\"focus\", handleFocus);\n window.removeEventListener(\"blur\", handleFocus);\n };\n }, [\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};\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\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsMENBQXlDO0lBQ3JDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsNEJBQTRCQyxtQkFBT0EsQ0FBQyxvSEFBMEM7QUFDcEYsTUFBTUMsY0FBY0QsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1FLFNBQVMsV0FBVyxHQUFHSCwwQkFBMEJJLENBQUMsQ0FBQ0gsbUJBQU9BLENBQUMsd0dBQU87QUFDeEUsTUFBTUkscUJBQXFCSixtQkFBT0EsQ0FBQyxtSkFBa0M7QUFDckUsTUFBTUYsU0FBUyxTQUFTQSxPQUFPTyxLQUFLO0lBQ2hDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRSxHQUFHQyxPQUFPLEdBQUdKO0lBQzVDLE1BQU0sQ0FBQ0ssUUFBUUMsVUFBVSxHQUFHVCxPQUFPVSxRQUFRLENBQUM7SUFDNUMsTUFBTSxDQUFDQyxNQUFNQyxRQUFRLEdBQUdaLE9BQU9VLFFBQVEsQ0FBQyxPQUFPRyxhQUFhLGVBQWVBLFNBQVNDLFFBQVEsS0FBSyxXQUFXQztJQUM1RyxNQUFNQyxXQUFXaEIsT0FBT2lCLFdBQVcsQ0FBQyxDQUFDQztRQUNqQ1QsVUFBVVM7SUFDZCxHQUFHLEVBQUU7SUFDSixJQUFHaEIsbUJBQW1CaUIsaUJBQWlCLEVBQUVYLFFBQVFGO0lBQ2xELHVFQUF1RTtJQUN2RSwwQkFBMEI7SUFDMUJOLE9BQU9vQixTQUFTLENBQUM7UUFDYixJQUFJWixVQUFVLE1BQU07WUFDaEI7UUFDSjtRQUNBLE1BQU1hLE9BQU9iLE9BQU9jLFdBQVc7UUFDL0IsOENBQThDO1FBQzlDLElBQUksQ0FBRUQsQ0FBQUEsZ0JBQWdCRSxVQUFTLEdBQUk7WUFDL0I7UUFDSjtRQUNBLE1BQU1DLGFBQWFIO1FBQ25CLFNBQVNJLFFBQVFDLENBQUM7WUFDZCxNQUFNQyxLQUFLSCxXQUFXSSxhQUFhO1lBQ25DLElBQUlGLEVBQUVHLEdBQUcsS0FBSyxXQUFXRixjQUFjRyxlQUFlSCxHQUFHSSxZQUFZLENBQUMsWUFBWSxRQUFRO2dCQUN0RkwsRUFBRU0sY0FBYztnQkFDaEJOLEVBQUVPLGVBQWU7Z0JBQ2pCTixHQUFHTyxLQUFLO1lBQ1o7UUFDSjtRQUNBLFNBQVNDO1lBQ0wsMkdBQTJHO1lBQzNHLDZFQUE2RTtZQUM3RXZCLFFBQVFDLFNBQVNDLFFBQVEsS0FBSyxXQUFXQztRQUM3QztRQUNBUyxXQUFXWSxnQkFBZ0IsQ0FBQyxXQUFXWDtRQUN2Q1ksT0FBT0QsZ0JBQWdCLENBQUMsU0FBU0Q7UUFDakNFLE9BQU9ELGdCQUFnQixDQUFDLFFBQVFEO1FBQ2hDLE9BQU87WUFDSFgsV0FBV2MsbUJBQW1CLENBQUMsV0FBV2I7WUFDMUNZLE9BQU9DLG1CQUFtQixDQUFDLFNBQVNIO1lBQ3BDRSxPQUFPQyxtQkFBbUIsQ0FBQyxRQUFRSDtRQUN2QztJQUNKLEdBQUc7UUFDQzNCO0tBQ0g7SUFDRCxPQUFxQixXQUFILEdBQUksSUFBR1QsWUFBWXdDLElBQUksRUFBRSxPQUFPO1FBQzlDQyxLQUFLeEI7UUFDTCxzQkFBc0I7UUFDdEJ5QixVQUFVLENBQUM7UUFDWDlCLE1BQU1BO1FBQ04sbUJBQW1CSixLQUFLLENBQUMsa0JBQWtCO1FBQzNDLG9CQUFvQkEsS0FBSyxDQUFDLG1CQUFtQjtRQUM3QyxjQUFjO1FBQ2RILFVBQVU7WUFDTixXQUFXLEdBQUksSUFBR0wsWUFBWTJDLEdBQUcsRUFBRSxPQUFPO2dCQUN0Qyw2QkFBNkI7Z0JBQzdCQyxXQUFXLFlBQVl0QztZQUMzQjtZQUNBRDtTQUNIO0lBQ0w7QUFDSjtBQUVBLElBQUksQ0FBQyxPQUFPWixRQUFRb0QsT0FBTyxLQUFLLGNBQWUsT0FBT3BELFFBQVFvRCxPQUFPLEtBQUssWUFBWXBELFFBQVFvRCxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9wRCxRQUFRb0QsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS3ZELE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUW9ELE9BQU8sRUFBRSxjQUFjO1FBQUVuRCxPQUFPO0lBQUs7SUFDbkVILE9BQU93RCxNQUFNLENBQUN0RCxRQUFRb0QsT0FBTyxFQUFFcEQ7SUFDL0J1RCxPQUFPdkQsT0FBTyxHQUFHQSxRQUFRb0QsT0FBTztBQUNsQyxFQUVBLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzP2ZkOTMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEaWFsb2dcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIERpYWxvZztcbiAgICB9XG59KTtcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZFwiKTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLl8ocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF91c2VvbmNsaWNrb3V0c2lkZSA9IHJlcXVpcmUoXCIuLi8uLi9ob29rcy91c2Utb24tY2xpY2stb3V0c2lkZVwiKTtcbmNvbnN0IERpYWxvZyA9IGZ1bmN0aW9uIERpYWxvZyhwYXJhbSkge1xuICAgIGxldCB7IGNoaWxkcmVuLCB0eXBlLCBvbkNsb3NlLCAuLi5wcm9wcyB9ID0gcGFyYW07XG4gICAgY29uc3QgW2RpYWxvZywgc2V0RGlhbG9nXSA9IF9yZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbcm9sZSwgc2V0Um9sZV0gPSBfcmVhY3QudXNlU3RhdGUodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50Lmhhc0ZvY3VzKCkgPyBcImRpYWxvZ1wiIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBvbkRpYWxvZyA9IF9yZWFjdC51c2VDYWxsYmFjaygobm9kZSk9PntcbiAgICAgICAgc2V0RGlhbG9nKG5vZGUpO1xuICAgIH0sIFtdKTtcbiAgICAoMCwgX3VzZW9uY2xpY2tvdXRzaWRlLnVzZU9uQ2xpY2tPdXRzaWRlKShkaWFsb2csIG9uQ2xvc2UpO1xuICAgIC8vIE1ha2UgSFRNTEVsZW1lbnRzIHdpdGggYHJvbGU9bGlua2AgYWNjZXNzaWJsZSB0byBiZSB0cmlnZ2VyZWQgYnkgdGhlXG4gICAgLy8ga2V5Ym9hcmQsIGkuZS4gW0VudGVyXS5cbiAgICBfcmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChkaWFsb2cgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvb3QgPSBkaWFsb2cuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgLy8gQWx3YXlzIHRydWUsIGJ1dCB3ZSBkbyB0aGlzIGZvciBUeXBlU2NyaXB0OlxuICAgICAgICBpZiAoIShyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaGFkb3dSb290ID0gcm9vdDtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihlKSB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiICYmIGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgZWwuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSA9PT0gXCJsaW5rXCIpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlbC5jbGljaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZUZvY3VzKCkge1xuICAgICAgICAgICAgLy8gc2FmYXJpIHdpbGwgZm9yY2UgaXRzZWxmIGFzIHRoZSBhY3RpdmUgYXBwbGljYXRpb24gd2hlbiBhIGJhY2tncm91bmQgcGFnZSB0cmlnZ2VycyBhbnkgc29ydCBvZiBhdXRvZm9jdXNcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIG9ubHkgc2V0IHRoZSBkaWFsb2cgcm9sZSBpZiB0aGUgZG9jdW1lbnQgaGFzIGZvY3VzXG4gICAgICAgICAgICBzZXRSb2xlKGRvY3VtZW50Lmhhc0ZvY3VzKCkgPyBcImRpYWxvZ1wiIDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICBzaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZXIpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIGhhbmRsZUZvY3VzKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsIGhhbmRsZUZvY3VzKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBzaGFkb3dSb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCBoYW5kbGVGb2N1cyk7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgaGFuZGxlRm9jdXMpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgZGlhbG9nXG4gICAgXSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwiZGl2XCIsIHtcbiAgICAgICAgcmVmOiBvbkRpYWxvZyxcbiAgICAgICAgXCJkYXRhLW5leHRqcy1kaWFsb2dcIjogdHJ1ZSxcbiAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICByb2xlOiByb2xlLFxuICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiBwcm9wc1tcImFyaWEtbGFiZWxsZWRieVwiXSxcbiAgICAgICAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IHByb3BzW1wiYXJpYS1kZXNjcmliZWRieVwiXSxcbiAgICAgICAgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiLFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgXCJkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImJhbm5lci1cIiArIHR5cGVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgXVxuICAgIH0pO1xufTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlhbG9nLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJEaWFsb2ciLCJfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIiwicmVxdWlyZSIsIl9qc3hydW50aW1lIiwiX3JlYWN0IiwiXyIsIl91c2VvbmNsaWNrb3V0c2lkZSIsInBhcmFtIiwiY2hpbGRyZW4iLCJ0eXBlIiwib25DbG9zZSIsInByb3BzIiwiZGlhbG9nIiwic2V0RGlhbG9nIiwidXNlU3RhdGUiLCJyb2xlIiwic2V0Um9sZSIsImRvY3VtZW50IiwiaGFzRm9jdXMiLCJ1bmRlZmluZWQiLCJvbkRpYWxvZyIsInVzZUNhbGxiYWNrIiwibm9kZSIsInVzZU9uQ2xpY2tPdXRzaWRlIiwidXNlRWZmZWN0Iiwicm9vdCIsImdldFJvb3ROb2RlIiwiU2hhZG93Um9vdCIsInNoYWRvd1Jvb3QiLCJoYW5kbGVyIiwiZSIsImVsIiwiYWN0aXZlRWxlbWVudCIsImtleSIsIkhUTUxFbGVtZW50IiwiZ2V0QXR0cmlidXRlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJjbGljayIsImhhbmRsZUZvY3VzIiwiYWRkRXZlbnRMaXN0ZW5lciIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJqc3hzIiwicmVmIiwidGFiSW5kZXgiLCJqc3giLCJjbGFzc05hbWUiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.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};\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\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0JvZHkuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILDhDQUE2QztJQUN6Q0ksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLDRCQUE0QkMsbUJBQU9BLENBQUMsb0hBQTBDO0FBQ3BGLE1BQU1DLGNBQWNELG1CQUFPQSxDQUFDLGdJQUFtQjtBQUMvQyxNQUFNRSxTQUFTLFdBQVcsR0FBR0gsMEJBQTBCSSxDQUFDLENBQUNILG1CQUFPQSxDQUFDLHdHQUFPO0FBQ3hFLE1BQU1GLGFBQWEsU0FBU0EsV0FBV00sS0FBSztJQUN4QyxJQUFJLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFLEdBQUdGO0lBQzlCLE9BQXFCLFdBQUgsR0FBSSxJQUFHSCxZQUFZTSxHQUFHLEVBQUUsT0FBTztRQUM3QywyQkFBMkI7UUFDM0JELFdBQVdBO1FBQ1hELFVBQVVBO0lBQ2Q7QUFDSjtBQUVBLElBQUksQ0FBQyxPQUFPWCxRQUFRYyxPQUFPLEtBQUssY0FBZSxPQUFPZCxRQUFRYyxPQUFPLEtBQUssWUFBWWQsUUFBUWMsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPZCxRQUFRYyxPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLakIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRYyxPQUFPLEVBQUUsY0FBYztRQUFFYixPQUFPO0lBQUs7SUFDbkVILE9BQU9rQixNQUFNLENBQUNoQixRQUFRYyxPQUFPLEVBQUVkO0lBQy9CaUIsT0FBT2pCLE9BQU8sR0FBR0EsUUFBUWMsT0FBTztBQUNsQyxFQUVBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nQm9keS5qcz9hMTBhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGlhbG9nQm9keVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRGlhbG9nQm9keTtcbiAgICB9XG59KTtcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZFwiKTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLl8ocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IERpYWxvZ0JvZHkgPSBmdW5jdGlvbiBEaWFsb2dCb2R5KHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSB9ID0gcGFyYW07XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJkaXZcIiwge1xuICAgICAgICBcImRhdGEtbmV4dGpzLWRpYWxvZy1ib2R5XCI6IHRydWUsXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KTtcbn07XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURpYWxvZ0JvZHkuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsIkRpYWxvZ0JvZHkiLCJfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIiwicmVxdWlyZSIsIl9qc3hydW50aW1lIiwiX3JlYWN0IiwiXyIsInBhcmFtIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJqc3giLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.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};\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\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILGlEQUFnRDtJQUM1Q0ksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLDRCQUE0QkMsbUJBQU9BLENBQUMsb0hBQTBDO0FBQ3BGLE1BQU1DLGNBQWNELG1CQUFPQSxDQUFDLGdJQUFtQjtBQUMvQyxNQUFNRSxTQUFTLFdBQVcsR0FBR0gsMEJBQTBCSSxDQUFDLENBQUNILG1CQUFPQSxDQUFDLHdHQUFPO0FBQ3hFLE1BQU1GLGdCQUFnQixTQUFTQSxjQUFjTSxLQUFLO0lBQzlDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUUsR0FBR0Y7SUFDOUIsT0FBcUIsV0FBSCxHQUFJLElBQUdILFlBQVlNLEdBQUcsRUFBRSxPQUFPO1FBQzdDLDhCQUE4QjtRQUM5QkQsV0FBV0E7UUFDWEQsVUFBVUE7SUFDZDtBQUNKO0FBRUEsSUFBSSxDQUFDLE9BQU9YLFFBQVFjLE9BQU8sS0FBSyxjQUFlLE9BQU9kLFFBQVFjLE9BQU8sS0FBSyxZQUFZZCxRQUFRYyxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9kLFFBQVFjLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktqQixPQUFPQyxjQUFjLENBQUNDLFFBQVFjLE9BQU8sRUFBRSxjQUFjO1FBQUViLE9BQU87SUFBSztJQUNuRUgsT0FBT2tCLE1BQU0sQ0FBQ2hCLFFBQVFjLE9BQU8sRUFBRWQ7SUFDL0JpQixPQUFPakIsT0FBTyxHQUFHQSxRQUFRYyxPQUFPO0FBQ2xDLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dDb250ZW50LmpzPzk1MzYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEaWFsb2dDb250ZW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBEaWFsb2dDb250ZW50O1xuICAgIH1cbn0pO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkXCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgRGlhbG9nQ29udGVudCA9IGZ1bmN0aW9uIERpYWxvZ0NvbnRlbnQocGFyYW0pIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgY2xhc3NOYW1lIH0gPSBwYXJhbTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImRpdlwiLCB7XG4gICAgICAgIFwiZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRcIjogdHJ1ZSxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pO1xufTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlhbG9nQ29udGVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiRGlhbG9nQ29udGVudCIsIl9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQiLCJyZXF1aXJlIiwiX2pzeHJ1bnRpbWUiLCJfcmVhY3QiLCJfIiwicGFyYW0iLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImpzeCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.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};\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\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0hlYWRlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsZ0RBQStDO0lBQzNDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsNEJBQTRCQyxtQkFBT0EsQ0FBQyxvSEFBMEM7QUFDcEYsTUFBTUMsY0FBY0QsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1FLFNBQVMsV0FBVyxHQUFHSCwwQkFBMEJJLENBQUMsQ0FBQ0gsbUJBQU9BLENBQUMsd0dBQU87QUFDeEUsTUFBTUYsZUFBZSxTQUFTQSxhQUFhTSxLQUFLO0lBQzVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUUsR0FBR0Y7SUFDOUIsT0FBcUIsV0FBSCxHQUFJLElBQUdILFlBQVlNLEdBQUcsRUFBRSxPQUFPO1FBQzdDLDZCQUE2QjtRQUM3QkQsV0FBV0E7UUFDWEQsVUFBVUE7SUFDZDtBQUNKO0FBRUEsSUFBSSxDQUFDLE9BQU9YLFFBQVFjLE9BQU8sS0FBSyxjQUFlLE9BQU9kLFFBQVFjLE9BQU8sS0FBSyxZQUFZZCxRQUFRYyxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9kLFFBQVFjLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktqQixPQUFPQyxjQUFjLENBQUNDLFFBQVFjLE9BQU8sRUFBRSxjQUFjO1FBQUViLE9BQU87SUFBSztJQUNuRUgsT0FBT2tCLE1BQU0sQ0FBQ2hCLFFBQVFjLE9BQU8sRUFBRWQ7SUFDL0JpQixPQUFPakIsT0FBTyxHQUFHQSxRQUFRYyxPQUFPO0FBQ2xDLEVBRUEsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dIZWFkZXIuanM/ZmJlZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRpYWxvZ0hlYWRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRGlhbG9nSGVhZGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkXCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgRGlhbG9nSGVhZGVyID0gZnVuY3Rpb24gRGlhbG9nSGVhZGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSB9ID0gcGFyYW07XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJkaXZcIiwge1xuICAgICAgICBcImRhdGEtbmV4dGpzLWRpYWxvZy1oZWFkZXJcIjogdHJ1ZSxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pO1xufTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlhbG9nSGVhZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJEaWFsb2dIZWFkZXIiLCJfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIiwicmVxdWlyZSIsIl9qc3hydW50aW1lIiwiX3JlYWN0IiwiXyIsInBhcmFtIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJqc3giLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js\");\nconst _DialogBody = __webpack_require__(/*! ./DialogBody */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js\");\nconst _DialogContent = __webpack_require__(/*! ./DialogContent */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js\");\nconst _DialogHeader = __webpack_require__(/*! ./DialogHeader */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js\");\nconst _styles = __webpack_require__(/*! ./styles */ \"(ssr)/./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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGLEtBQU1DLENBQUFBLENBTU47QUFDQSxTQUFTTSxRQUFRQyxNQUFNLEVBQUVDLEdBQUc7SUFDeEIsSUFBSSxJQUFJQyxRQUFRRCxJQUFJWixPQUFPQyxjQUFjLENBQUNVLFFBQVFFLE1BQU07UUFDcERDLFlBQVk7UUFDWkMsS0FBS0gsR0FBRyxDQUFDQyxLQUFLO0lBQ2xCO0FBQ0o7QUFDQUgsUUFBUVIsU0FBUztJQUNiRyxRQUFRO1FBQ0osT0FBT1csUUFBUVgsTUFBTTtJQUN6QjtJQUNBQyxZQUFZO1FBQ1IsT0FBT1csWUFBWVgsVUFBVTtJQUNqQztJQUNBQyxlQUFlO1FBQ1gsT0FBT1csZUFBZVgsYUFBYTtJQUN2QztJQUNBQyxjQUFjO1FBQ1YsT0FBT1csY0FBY1gsWUFBWTtJQUNyQztJQUNBQyxRQUFRO1FBQ0osT0FBT1csUUFBUVgsTUFBTTtJQUN6QjtBQUNKO0FBQ0EsTUFBTU8sVUFBVUssbUJBQU9BLENBQUMseUhBQVU7QUFDbEMsTUFBTUosY0FBY0ksbUJBQU9BLENBQUMsaUlBQWM7QUFDMUMsTUFBTUgsaUJBQWlCRyxtQkFBT0EsQ0FBQyx1SUFBaUI7QUFDaEQsTUFBTUYsZ0JBQWdCRSxtQkFBT0EsQ0FBQyxxSUFBZ0I7QUFDOUMsTUFBTUQsVUFBVUMsbUJBQU9BLENBQUMseUhBQVU7QUFFbEMsSUFBSSxDQUFDLE9BQU9uQixRQUFRb0IsT0FBTyxLQUFLLGNBQWUsT0FBT3BCLFFBQVFvQixPQUFPLEtBQUssWUFBWXBCLFFBQVFvQixPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9wQixRQUFRb0IsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS3ZCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUW9CLE9BQU8sRUFBRSxjQUFjO1FBQUVuQixPQUFPO0lBQUs7SUFDbkVILE9BQU93QixNQUFNLENBQUN0QixRQUFRb0IsT0FBTyxFQUFFcEI7SUFDL0JFLE9BQU9GLE9BQU8sR0FBR0EsUUFBUW9CLE9BQU87QUFDbEMsRUFFQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL2luZGV4LmpzPzIzOTMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBEaWFsb2c6IG51bGwsXG4gICAgRGlhbG9nQm9keTogbnVsbCxcbiAgICBEaWFsb2dDb250ZW50OiBudWxsLFxuICAgIERpYWxvZ0hlYWRlcjogbnVsbCxcbiAgICBzdHlsZXM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgRGlhbG9nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9EaWFsb2cuRGlhbG9nO1xuICAgIH0sXG4gICAgRGlhbG9nQm9keTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfRGlhbG9nQm9keS5EaWFsb2dCb2R5O1xuICAgIH0sXG4gICAgRGlhbG9nQ29udGVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfRGlhbG9nQ29udGVudC5EaWFsb2dDb250ZW50O1xuICAgIH0sXG4gICAgRGlhbG9nSGVhZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9EaWFsb2dIZWFkZXIuRGlhbG9nSGVhZGVyO1xuICAgIH0sXG4gICAgc3R5bGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zdHlsZXMuc3R5bGVzO1xuICAgIH1cbn0pO1xuY29uc3QgX0RpYWxvZyA9IHJlcXVpcmUoXCIuL0RpYWxvZ1wiKTtcbmNvbnN0IF9EaWFsb2dCb2R5ID0gcmVxdWlyZShcIi4vRGlhbG9nQm9keVwiKTtcbmNvbnN0IF9EaWFsb2dDb250ZW50ID0gcmVxdWlyZShcIi4vRGlhbG9nQ29udGVudFwiKTtcbmNvbnN0IF9EaWFsb2dIZWFkZXIgPSByZXF1aXJlKFwiLi9EaWFsb2dIZWFkZXJcIik7XG5jb25zdCBfc3R5bGVzID0gcmVxdWlyZShcIi4vc3R5bGVzXCIpO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJEaWFsb2ciLCJEaWFsb2dCb2R5IiwiRGlhbG9nQ29udGVudCIsIkRpYWxvZ0hlYWRlciIsInN0eWxlcyIsIl9leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZW51bWVyYWJsZSIsImdldCIsIl9EaWFsb2ciLCJfRGlhbG9nQm9keSIsIl9EaWFsb2dDb250ZW50IiwiX0RpYWxvZ0hlYWRlciIsIl9zdHlsZXMiLCJyZXF1aXJlIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./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: white;\\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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsMENBQXlDO0lBQ3JDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsaUNBQWlDQyxtQkFBT0EsQ0FBQyw4SEFBK0M7QUFDOUYsTUFBTUMsZ0JBQWdCRCxtQkFBT0EsQ0FBQyx5SUFBNkI7QUFDM0QsU0FBU0U7SUFDTCxNQUFNQyxPQUFPSiwrQkFBK0JLLENBQUMsQ0FBQztRQUMxQztLQUNIO0lBQ0RGLGtCQUFrQjtRQUNkLE9BQU9DO0lBQ1g7SUFDQSxPQUFPQTtBQUNYO0FBQ0EsTUFBTUwsU0FBUyxDQUFDLEdBQUdHLGNBQWNJLElBQUksRUFBRUg7QUFFdkMsSUFBSSxDQUFDLE9BQU9SLFFBQVFZLE9BQU8sS0FBSyxjQUFlLE9BQU9aLFFBQVFZLE9BQU8sS0FBSyxZQUFZWixRQUFRWSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9aLFFBQVFZLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktmLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUVksT0FBTyxFQUFFLGNBQWM7UUFBRVgsT0FBTztJQUFLO0lBQ25FSCxPQUFPZ0IsTUFBTSxDQUFDZCxRQUFRWSxPQUFPLEVBQUVaO0lBQy9CZSxPQUFPZixPQUFPLEdBQUdBLFFBQVFZLE9BQU87QUFDbEMsRUFFQSxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL3N0eWxlcy5qcz82OGI5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwic3R5bGVzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgfVxufSk7XG5jb25zdCBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlXCIpO1xuY29uc3QgX25vb3B0ZW1wbGF0ZSA9IHJlcXVpcmUoXCIuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG5mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKSB7XG4gICAgY29uc3QgZGF0YSA9IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZS5fKFtcbiAgICAgICAgXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcCk7XFxuICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tc2l6ZS1nYXAtaGFsZikgdmFyKC0tc2l6ZS1nYXAtZG91YmxlKVxcbiAgICAgIHJnYmEoMCwgMCwgMCwgMC4yNSk7XFxuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDU2cHgpO1xcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDE1cHgpO1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICAgIG1heC13aWR0aDogNTQwcHg7XFxuICAgICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLWdhcCkgdmFyKC0tc2l6ZS1nYXAtcXVhZCkgcmdiYSgwLCAwLCAwLCAwLjI1KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcXG4gICAgICBtYXgtd2lkdGg6IDcyMHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICAgIG1heC13aWR0aDogOTYwcHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXS5iYW5uZXItd2FybmluZyB7XFxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS15ZWxsb3cpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdLmJhbm5lci1lcnJvciB7XFxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdOjphZnRlciB7XFxuICAgIHotaW5kZXg6IDI7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICAvKiBiYW5uZXIgd2lkdGg6ICovXFxuICAgIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XFxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSB7XFxuICAgIG92ZXJmbG93LXk6IGF1dG87XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICAvKiBjYWxjKHBhZGRpbmcgKyBiYW5uZXIgd2lkdGggb2Zmc2V0KSAqL1xcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSlcXG4gICAgICB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdID4gW2RhdGEtbmV4dGpzLWRpYWxvZy1oZWFkZXJdIHtcXG4gICAgZmxleC1zaHJpbms6IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdID4gW2RhdGEtbmV4dGpzLWRpYWxvZy1ib2R5XSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxuXCJcbiAgICBdKTtcbiAgICBfdGVtcGxhdGVPYmplY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcbiAgICByZXR1cm4gZGF0YTtcbn1cbmNvbnN0IHN0eWxlcyA9ICgwLCBfbm9vcHRlbXBsYXRlLm5vb3ApKF90ZW1wbGF0ZU9iamVjdCgpKTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGVzLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJzdHlsZXMiLCJfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UiLCJyZXF1aXJlIiwiX25vb3B0ZW1wbGF0ZSIsIl90ZW1wbGF0ZU9iamVjdCIsImRhdGEiLCJfIiwibm9vcCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _CloseIcon = __webpack_require__(/*! ../../icons/CloseIcon */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js\");\nconst LeftRightDialogHeader = function LeftRightDialogHeader(param) {\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((el)=>{\n setNav(el);\n }, []);\n _react.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.stopPropagation();\n if (buttonLeft.current) {\n buttonLeft.current.focus();\n }\n previous && previous();\n } else if (e.key === \"ArrowRight\") {\n e.stopPropagation();\n if (buttonRight.current) {\n buttonRight.current.focus();\n }\n next && next();\n } else if (e.key === \"Escape\") {\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 if (close) {\n close();\n }\n }\n }\n root.addEventListener(\"keydown\", handler);\n if (root !== d) {\n d.addEventListener(\"keydown\", handler);\n }\n return function() {\n root.removeEventListener(\"keydown\", handler);\n if (root !== d) {\n d.removeEventListener(\"keydown\", handler);\n }\n };\n }, [\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 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 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 \"\\xa0\",\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};\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\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL0xlZnRSaWdodERpYWxvZ0hlYWRlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgseURBQXdEO0lBQ3BESSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsNEJBQTRCQyxtQkFBT0EsQ0FBQyxvSEFBMEM7QUFDcEYsTUFBTUMsY0FBY0QsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1FLFNBQVMsV0FBVyxHQUFHSCwwQkFBMEJJLENBQUMsQ0FBQ0gsbUJBQU9BLENBQUMsd0dBQU87QUFDeEUsTUFBTUksYUFBYUosbUJBQU9BLENBQUMsNkhBQXVCO0FBQ2xELE1BQU1GLHdCQUF3QixTQUFTQSxzQkFBc0JPLEtBQUs7SUFDOUQsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRSxHQUFHTDtJQUNyRCxNQUFNTSxhQUFhVCxPQUFPVSxNQUFNLENBQUM7SUFDakMsTUFBTUMsY0FBY1gsT0FBT1UsTUFBTSxDQUFDO0lBQ2xDLE1BQU1FLGNBQWNaLE9BQU9VLE1BQU0sQ0FBQztJQUNsQyxNQUFNLENBQUNHLEtBQUtDLE9BQU8sR0FBR2QsT0FBT2UsUUFBUSxDQUFDO0lBQ3RDLE1BQU1DLFFBQVFoQixPQUFPaUIsV0FBVyxDQUFDLENBQUNDO1FBQzlCSixPQUFPSTtJQUNYLEdBQUcsRUFBRTtJQUNMbEIsT0FBT21CLFNBQVMsQ0FBQztRQUNiLElBQUlOLE9BQU8sTUFBTTtZQUNiO1FBQ0o7UUFDQSxNQUFNTyxPQUFPUCxJQUFJUSxXQUFXO1FBQzVCLE1BQU1DLElBQUlDLEtBQUtD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RCxRQUFRNkQsT0FBTyxLQUFLLFlBQVk3RCxRQUFRNkQsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPN0QsUUFBUTZELE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktoRSxPQUFPQyxjQUFjLENBQUNDLFFBQVE2RCxPQUFPLEVBQUUsY0FBYztRQUFFNUQsT0FBTztJQUFLO0lBQ25FSCxPQUFPaUUsTUFBTSxDQUFDL0QsUUFBUTZELE9BQU8sRUFBRTdEO0lBQy9CZ0UsT0FBT2hFLE9BQU8sR0FBR0EsUUFBUTZELE9BQU87QUFDbEMsRUFFQSxpREFBaUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL0xlZnRSaWdodERpYWxvZ0hlYWRlci5qcz9iMzA2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTGVmdFJpZ2h0RGlhbG9nSGVhZGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBMZWZ0UmlnaHREaWFsb2dIZWFkZXI7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9fL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmRcIik7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZC5fKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfQ2xvc2VJY29uID0gcmVxdWlyZShcIi4uLy4uL2ljb25zL0Nsb3NlSWNvblwiKTtcbmNvbnN0IExlZnRSaWdodERpYWxvZ0hlYWRlciA9IGZ1bmN0aW9uIExlZnRSaWdodERpYWxvZ0hlYWRlcihwYXJhbSkge1xuICAgIGxldCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHByZXZpb3VzLCBuZXh0LCBjbG9zZSB9ID0gcGFyYW07XG4gICAgY29uc3QgYnV0dG9uTGVmdCA9IF9yZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgYnV0dG9uUmlnaHQgPSBfcmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGJ1dHRvbkNsb3NlID0gX3JlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbbmF2LCBzZXROYXZdID0gX3JlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG9uTmF2ID0gX3JlYWN0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgc2V0TmF2KGVsKTtcbiAgICB9LCBbXSk7XG4gICAgX3JlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAobmF2ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb290ID0gbmF2LmdldFJvb3ROb2RlKCk7XG4gICAgICAgIGNvbnN0IGQgPSBzZWxmLmRvY3VtZW50O1xuICAgICAgICBmdW5jdGlvbiBoYW5kbGVyKGUpIHtcbiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJBcnJvd0xlZnRcIikge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGJ1dHRvbkxlZnQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBidXR0b25MZWZ0LmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcHJldmlvdXMgJiYgcHJldmlvdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09IFwiQXJyb3dSaWdodFwiKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoYnV0dG9uUmlnaHQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBidXR0b25SaWdodC5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5leHQgJiYgbmV4dCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gXCJFc2NhcGVcIikge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSByb290LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhICYmIGEgIT09IGJ1dHRvbkNsb3NlLmN1cnJlbnQgJiYgYSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhLmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2xvc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVyKTtcbiAgICAgICAgaWYgKHJvb3QgIT09IGQpIHtcbiAgICAgICAgICAgIGQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIGlmIChyb290ICE9PSBkKSB7XG4gICAgICAgICAgICAgICAgZC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGNsb3NlLFxuICAgICAgICBuYXYsXG4gICAgICAgIG5leHQsXG4gICAgICAgIHByZXZpb3VzXG4gICAgXSk7XG4gICAgLy8gVW5sb2NrIGZvY3VzIGZvciBicm93c2VycyBsaWtlIEZpcmVmb3gsIHRoYXQgYnJlYWsgYWxsIHVzZXIgZm9jdXMgaWYgdGhlXG4gICAgLy8gY3VycmVudGx5IGZvY3VzZWQgaXRlbSBiZWNvbWVzIGRpc2FibGVkLlxuICAgIF9yZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKG5hdiA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm9vdCA9IG5hdi5nZXRSb290Tm9kZSgpO1xuICAgICAgICAvLyBBbHdheXMgdHJ1ZSwgYnV0IHdlIGRvIHRoaXMgZm9yIFR5cGVTY3JpcHQ6XG4gICAgICAgIGlmIChyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICAgICAgY29uc3QgYSA9IHJvb3QuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChwcmV2aW91cyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGJ1dHRvbkxlZnQuY3VycmVudCAmJiBhID09PSBidXR0b25MZWZ0LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uTGVmdC5jdXJyZW50LmJsdXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChidXR0b25SaWdodC5jdXJyZW50ICYmIGEgPT09IGJ1dHRvblJpZ2h0LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uUmlnaHQuY3VycmVudC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBuYXYsXG4gICAgICAgIG5leHQsXG4gICAgICAgIHByZXZpb3VzXG4gICAgXSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwiZGl2XCIsIHtcbiAgICAgICAgXCJkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodFwiOiB0cnVlLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwibmF2XCIsIHtcbiAgICAgICAgICAgICAgICByZWY6IG9uTmF2LFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJidXR0b25cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBidXR0b25MZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBwcmV2aW91cyA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1kaXNhYmxlZFwiOiBwcmV2aW91cyA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHByZXZpb3VzICE9IG51bGwgPyBwcmV2aW91cyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShcInN2Z1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveDogXCIwIDAgMTQgMTRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJ0aXRsZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogXCJwcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwicGF0aFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkOiBcIk02Ljk5OTk2IDEuMTY2NjZMMS4xNjY2MyA2Ljk5OTk5TDYuOTk5OTYgMTIuODMzM00xMi44MzMzIDYuOTk5OTlIMS45OTk5NkgxMi44MzMzWlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IFwiMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogYnV0dG9uUmlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG5leHQgPT0gbnVsbCA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogbmV4dCA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG5leHQgIT0gbnVsbCA/IG5leHQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4cykoXCJzdmdcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g6IFwiMCAwIDE0IDE0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwidGl0bGVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFwibmV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwicGF0aFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkOiBcIk02Ljk5OTk2IDEuMTY2NjZMMTIuODMzMyA2Ljk5OTk5TDYuOTk5OTYgMTIuODMzM00xLjE2NjYzIDYuOTk5OTlIMTJIMS4xNjY2M1pcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBcIjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgXCJcXHhhMFwiLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2xvc2UgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICAgICAgICBcImRhdGEtbmV4dGpzLWVycm9ycy1kaWFsb2ctbGVmdC1yaWdodC1jbG9zZS1idXR0b25cIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICByZWY6IGJ1dHRvbkNsb3NlLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgb25DbGljazogY2xvc2UsXG4gICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiQ2xvc2VcIixcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcInNwYW5cIiwge1xuICAgICAgICAgICAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfQ2xvc2VJY29uLkNsb3NlSWNvbiwge30pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pIDogbnVsbFxuICAgICAgICBdXG4gICAgfSk7XG59O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1MZWZ0UmlnaHREaWFsb2dIZWFkZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsIkxlZnRSaWdodERpYWxvZ0hlYWRlciIsIl9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQiLCJyZXF1aXJlIiwiX2pzeHJ1bnRpbWUiLCJfcmVhY3QiLCJfIiwiX0Nsb3NlSWNvbiIsInBhcmFtIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJwcmV2aW91cyIsIm5leHQiLCJjbG9zZSIsImJ1dHRvbkxlZnQiLCJ1c2VSZWYiLCJidXR0b25SaWdodCIsImJ1dHRvbkNsb3NlIiwibmF2Iiwic2V0TmF2IiwidXNlU3RhdGUiLCJvbk5hdiIsInVzZUNhbGxiYWNrIiwiZWwiLCJ1c2VFZmZlY3QiLCJyb290IiwiZ2V0Um9vdE5vZGUiLCJkIiwic2VsZiIsImRvY3VtZW50IiwiaGFuZGxlciIsImUiLCJrZXkiLCJzdG9wUHJvcGFnYXRpb24iLCJjdXJyZW50IiwiZm9jdXMiLCJTaGFkb3dSb290IiwiYSIsImFjdGl2ZUVsZW1lbnQiLCJIVE1MRWxlbWVudCIsImJsdXIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImpzeHMiLCJyZWYiLCJqc3giLCJ0eXBlIiwiZGlzYWJsZWQiLCJ1bmRlZmluZWQiLCJvbkNsaWNrIiwidmlld0JveCIsImZpbGwiLCJ4bWxucyIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiQ2xvc2VJY29uIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\");\nconst _styles = __webpack_require__(/*! ./styles */ \"(ssr)/./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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGLEtBQU1DLENBQUFBLENBR047QUFDQSxTQUFTRyxRQUFRQyxNQUFNLEVBQUVDLEdBQUc7SUFDeEIsSUFBSSxJQUFJQyxRQUFRRCxJQUFJVCxPQUFPQyxjQUFjLENBQUNPLFFBQVFFLE1BQU07UUFDcERDLFlBQVk7UUFDWkMsS0FBS0gsR0FBRyxDQUFDQyxLQUFLO0lBQ2xCO0FBQ0o7QUFDQUgsUUFBUUwsU0FBUztJQUNiRyx1QkFBdUI7UUFDbkIsT0FBT1EsdUJBQXVCUixxQkFBcUI7SUFDdkQ7SUFDQUMsUUFBUTtRQUNKLE9BQU9RLFFBQVFSLE1BQU07SUFDekI7QUFDSjtBQUNBLE1BQU1PLHlCQUF5QkUsbUJBQU9BLENBQUMsc0tBQXlCO0FBQ2hFLE1BQU1ELFVBQVVDLG1CQUFPQSxDQUFDLHdJQUFVO0FBRWxDLElBQUksQ0FBQyxPQUFPYixRQUFRYyxPQUFPLEtBQUssY0FBZSxPQUFPZCxRQUFRYyxPQUFPLEtBQUssWUFBWWQsUUFBUWMsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPZCxRQUFRYyxPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLakIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRYyxPQUFPLEVBQUUsY0FBYztRQUFFYixPQUFPO0lBQUs7SUFDbkVILE9BQU9rQixNQUFNLENBQUNoQixRQUFRYyxPQUFPLEVBQUVkO0lBQy9CRSxPQUFPRixPQUFPLEdBQUdBLFFBQVFjLE9BQU87QUFDbEMsRUFFQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL2luZGV4LmpzPzJhYzIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBMZWZ0UmlnaHREaWFsb2dIZWFkZXI6IG51bGwsXG4gICAgc3R5bGVzOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIExlZnRSaWdodERpYWxvZ0hlYWRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfTGVmdFJpZ2h0RGlhbG9nSGVhZGVyLkxlZnRSaWdodERpYWxvZ0hlYWRlcjtcbiAgICB9LFxuICAgIHN0eWxlczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc3R5bGVzLnN0eWxlcztcbiAgICB9XG59KTtcbmNvbnN0IF9MZWZ0UmlnaHREaWFsb2dIZWFkZXIgPSByZXF1aXJlKFwiLi9MZWZ0UmlnaHREaWFsb2dIZWFkZXJcIik7XG5jb25zdCBfc3R5bGVzID0gcmVxdWlyZShcIi4vc3R5bGVzXCIpO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJMZWZ0UmlnaHREaWFsb2dIZWFkZXIiLCJzdHlsZXMiLCJfZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImVudW1lcmFibGUiLCJnZXQiLCJfTGVmdFJpZ2h0RGlhbG9nSGVhZGVyIiwiX3N0eWxlcyIsInJlcXVpcmUiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./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 [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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsMENBQXlDO0lBQ3JDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsaUNBQWlDQyxtQkFBT0EsQ0FBQyw4SEFBK0M7QUFDOUYsTUFBTUMsZ0JBQWdCRCxtQkFBT0EsQ0FBQyx5SUFBNkI7QUFDM0QsU0FBU0U7SUFDTCxNQUFNQyxPQUFPSiwrQkFBK0JLLENBQUMsQ0FBQztRQUMxQztLQUNIO0lBQ0RGLGtCQUFrQjtRQUNkLE9BQU9DO0lBQ1g7SUFDQSxPQUFPQTtBQUNYO0FBQ0EsTUFBTUwsU0FBUyxDQUFDLEdBQUdHLGNBQWNJLElBQUksRUFBRUg7QUFFdkMsSUFBSSxDQUFDLE9BQU9SLFFBQVFZLE9BQU8sS0FBSyxjQUFlLE9BQU9aLFFBQVFZLE9BQU8sS0FBSyxZQUFZWixRQUFRWSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9aLFFBQVFZLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktmLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUVksT0FBTyxFQUFFLGNBQWM7UUFBRVgsT0FBTztJQUFLO0lBQ25FSCxPQUFPZ0IsTUFBTSxDQUFDZCxRQUFRWSxPQUFPLEVBQUVaO0lBQy9CZSxPQUFPZixPQUFPLEdBQUdBLFFBQVFZLE9BQU87QUFDbEMsRUFFQSxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcy5qcz9kYjczIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwic3R5bGVzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgfVxufSk7XG5jb25zdCBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlXCIpO1xuY29uc3QgX25vb3B0ZW1wbGF0ZSA9IHJlcXVpcmUoXCIuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG5mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKSB7XG4gICAgY29uc3QgZGF0YSA9IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZS5fKFtcbiAgICAgICAgXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYge1xcbiAgICBmbGV4OiAxO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNpemUtZ2FwKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcCkpO1xcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjEpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24gPiBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjIpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMSk7XFxuICAgIGNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjQpO1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZikgMCAwIHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246bGFzdC1vZi10eXBlIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1oYWxmKSAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGUge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBhcHBlYXJhbmNlOiBub25lO1xcblxcbiAgICBvcGFjaXR5OiAwLjQ7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBidXR0b246bGFzdC1vZi10eXBlOmhvdmVyIHtcXG4gICAgb3BhY2l0eTogMC43O1xcbiAgfVxcblwiXG4gICAgXSk7XG4gICAgX3RlbXBsYXRlT2JqZWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH07XG4gICAgcmV0dXJuIGRhdGE7XG59XG5jb25zdCBzdHlsZXMgPSAoMCwgX25vb3B0ZW1wbGF0ZS5ub29wKShfdGVtcGxhdGVPYmplY3QoKSk7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwic3R5bGVzIiwiX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIiwicmVxdWlyZSIsIl9ub29wdGVtcGxhdGUiLCJfdGVtcGxhdGVPYmplY3QiLCJkYXRhIiwiXyIsIm5vb3AiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("// @ts-ignore\n\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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _maintaintabfocus = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./maintain--tab-focus */ \"(ssr)/./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 */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\"));\nconst _bodylocker = __webpack_require__(/*! ./body-locker */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js\");\nconst Overlay = function Overlay(param) {\n let { className, children, fixed } = param;\n _react.useEffect(()=>{\n (0, _bodylocker.lock)();\n return ()=>{\n (0, _bodylocker.unlock)();\n };\n }, []);\n const [overlay, setOverlay] = _react.useState(null);\n const onOverlay = _react.useCallback((el)=>{\n setOverlay(el);\n }, []);\n _react.useEffect(()=>{\n if (overlay == null) {\n return;\n }\n const handle2 = (0, _maintaintabfocus.default)({\n context: overlay\n });\n return ()=>{\n handle2.disengage();\n };\n }, [\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};\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\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LmpzIiwibWFwcGluZ3MiOiJBQUFBLGFBQWE7QUFDQTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsMkNBQTBDO0lBQ3RDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsMkJBQTJCQyxtQkFBT0EsQ0FBQyxrSEFBeUM7QUFDbEYsTUFBTUMsNEJBQTRCRCxtQkFBT0EsQ0FBQyxvSEFBMEM7QUFDcEYsTUFBTUUsY0FBY0YsbUJBQU9BLENBQUMsZ0lBQW1CO0FBQy9DLE1BQU1HLG9CQUFvQixXQUFXLEdBQUdKLHlCQUF5QkssQ0FBQyxDQUFDSixtQkFBT0EsQ0FBQyxvSkFBdUI7QUFDbEcsTUFBTUssU0FBUyxXQUFXLEdBQUdKLDBCQUEwQkcsQ0FBQyxDQUFDSixtQkFBT0EsQ0FBQyx3R0FBTztBQUN4RSxNQUFNTSxjQUFjTixtQkFBT0EsQ0FBQyxvSUFBZTtBQUMzQyxNQUFNRixVQUFVLFNBQVNBLFFBQVFTLEtBQUs7SUFDbEMsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsRUFBRUMsS0FBSyxFQUFFLEdBQUdIO0lBQ3JDRixPQUFPTSxTQUFTLENBQUM7UUFDWixJQUFHTCxZQUFZTSxJQUFJO1FBQ3BCLE9BQU87WUFDRixJQUFHTixZQUFZTyxNQUFNO1FBQzFCO0lBQ0osR0FBRyxFQUFFO0lBQ0wsTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdWLE9BQU9XLFFBQVEsQ0FBQztJQUM5QyxNQUFNQyxZQUFZWixPQUFPYSxXQUFXLENBQUMsQ0FBQ0M7UUFDbENKLFdBQVdJO0lBQ2YsR0FBRyxFQUFFO0lBQ0xkLE9BQU9NLFNBQVMsQ0FBQztRQUNiLElBQUlHLFdBQVcsTUFBTTtZQUNqQjtRQUNKO1FBQ0EsTUFBTU0sVUFBVSxDQUFDLEdBQUdqQixrQkFBa0JrQixPQUFPLEVBQUU7WUFDM0NDLFNBQVNSO1FBQ2I7UUFDQSxPQUFPO1lBQ0hNLFFBQVFHLFNBQVM7UUFDckI7SUFDSixHQUFHO1FBQ0NUO0tBQ0g7SUFDRCxPQUFxQixXQUFILEdBQUksSUFBR1osWUFBWXNCLElBQUksRUFBRSxPQUFPO1FBQzlDLDhCQUE4QjtRQUM5QmhCLFdBQVdBO1FBQ1hpQixLQUFLUjtRQUNMUixVQUFVO1lBQ04sV0FBVyxHQUFJLElBQUdQLFlBQVl3QixHQUFHLEVBQUUsT0FBTztnQkFDdEMsK0JBQStCO2dCQUMvQixxQ0FBcUNoQixRQUFRLE9BQU9pQjtZQUN4RDtZQUNBbEI7U0FDSDtJQUNMO0FBQ0o7QUFFQSxJQUFJLENBQUMsT0FBT2YsUUFBUTJCLE9BQU8sS0FBSyxjQUFlLE9BQU8zQixRQUFRMkIsT0FBTyxLQUFLLFlBQVkzQixRQUFRMkIsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPM0IsUUFBUTJCLE9BQU8sQ0FBQ08sVUFBVSxLQUFLLGFBQWE7SUFDcktwQyxPQUFPQyxjQUFjLENBQUNDLFFBQVEyQixPQUFPLEVBQUUsY0FBYztRQUFFMUIsT0FBTztJQUFLO0lBQ25FSCxPQUFPcUMsTUFBTSxDQUFDbkMsUUFBUTJCLE9BQU8sRUFBRTNCO0lBQy9Cb0MsT0FBT3BDLE9BQU8sR0FBR0EsUUFBUTJCLE9BQU87QUFDbEMsRUFFQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LmpzP2FjMjMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJPdmVybGF5XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBPdmVybGF5O1xuICAgIH1cbn0pO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9fL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdFwiKTtcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZFwiKTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX21haW50YWludGFiZm9jdXMgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCIuL21haW50YWluLS10YWItZm9jdXNcIikpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLl8ocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF9ib2R5bG9ja2VyID0gcmVxdWlyZShcIi4vYm9keS1sb2NrZXJcIik7XG5jb25zdCBPdmVybGF5ID0gZnVuY3Rpb24gT3ZlcmxheShwYXJhbSkge1xuICAgIGxldCB7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIGZpeGVkIH0gPSBwYXJhbTtcbiAgICBfcmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgICgwLCBfYm9keWxvY2tlci5sb2NrKSgpO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgICgwLCBfYm9keWxvY2tlci51bmxvY2spKCk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IFtvdmVybGF5LCBzZXRPdmVybGF5XSA9IF9yZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBvbk92ZXJsYXkgPSBfcmVhY3QudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBzZXRPdmVybGF5KGVsKTtcbiAgICB9LCBbXSk7XG4gICAgX3JlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAob3ZlcmxheSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFuZGxlMiA9ICgwLCBfbWFpbnRhaW50YWJmb2N1cy5kZWZhdWx0KSh7XG4gICAgICAgICAgICBjb250ZXh0OiBvdmVybGF5XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIGhhbmRsZTIuZGlzZW5nYWdlKCk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBvdmVybGF5XG4gICAgXSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeHMpKFwiZGl2XCIsIHtcbiAgICAgICAgXCJkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheVwiOiB0cnVlLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgcmVmOiBvbk92ZXJsYXksXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICBcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgIFwiZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wLWZpeGVkXCI6IGZpeGVkID8gdHJ1ZSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICBdXG4gICAgfSk7XG59O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1PdmVybGF5LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJPdmVybGF5IiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQiLCJfanN4cnVudGltZSIsIl9tYWludGFpbnRhYmZvY3VzIiwiXyIsIl9yZWFjdCIsIl9ib2R5bG9ja2VyIiwicGFyYW0iLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsImZpeGVkIiwidXNlRWZmZWN0IiwibG9jayIsInVubG9jayIsIm92ZXJsYXkiLCJzZXRPdmVybGF5IiwidXNlU3RhdGUiLCJvbk92ZXJsYXkiLCJ1c2VDYWxsYmFjayIsImVsIiwiaGFuZGxlMiIsImRlZmF1bHQiLCJjb250ZXh0IiwiZGlzZW5nYWdlIiwianN4cyIsInJlZiIsImpzeCIsInVuZGVmaW5lZCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js\n"); + +/***/ }), + +/***/ "(ssr)/./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) => { + +"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 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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9ib2R5LWxvY2tlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQUdOO0FBQ0EsU0FBU0csUUFBUUMsTUFBTSxFQUFFQyxHQUFHO0lBQ3hCLElBQUksSUFBSUMsUUFBUUQsSUFBSVQsT0FBT0MsY0FBYyxDQUFDTyxRQUFRRSxNQUFNO1FBQ3BEQyxZQUFZO1FBQ1pDLEtBQUtILEdBQUcsQ0FBQ0MsS0FBSztJQUNsQjtBQUNKO0FBQ0FILFFBQVFMLFNBQVM7SUFDYkcsTUFBTTtRQUNGLE9BQU9BO0lBQ1g7SUFDQUMsUUFBUTtRQUNKLE9BQU9BO0lBQ1g7QUFDSjtBQUNBLElBQUlPO0FBQ0osSUFBSUM7QUFDSixJQUFJQyxjQUFjO0FBQ2xCLFNBQVNWO0lBQ0xXLFdBQVc7UUFDUCxJQUFJRCxnQkFBZ0IsR0FBRztZQUNuQjtRQUNKO1FBQ0EsTUFBTUUsZUFBZUMsT0FBT0MsVUFBVSxHQUFHQyxTQUFTQyxlQUFlLENBQUNDLFdBQVc7UUFDN0UsSUFBSUwsZUFBZSxHQUFHO1lBQ2xCSiwyQkFBMkJPLFNBQVNHLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxZQUFZO1lBQzNETCxTQUFTRyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsWUFBWSxHQUFHLEtBQUtSLGVBQWU7UUFDM0Q7UUFDQUgsOEJBQThCTSxTQUFTRyxJQUFJLENBQUNDLEtBQUssQ0FBQ0UsUUFBUTtRQUMxRE4sU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNFLFFBQVEsR0FBRztJQUNuQztBQUNKO0FBQ0EsU0FBU3BCO0lBQ0xVLFdBQVc7UUFDUCxJQUFJRCxnQkFBZ0IsS0FBSyxFQUFFQSxnQkFBZ0IsR0FBRztZQUMxQztRQUNKO1FBQ0EsSUFBSUYsNkJBQTZCYyxXQUFXO1lBQ3hDUCxTQUFTRyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsWUFBWSxHQUFHWjtZQUNuQ0EsMkJBQTJCYztRQUMvQjtRQUNBLElBQUliLGdDQUFnQ2EsV0FBVztZQUMzQ1AsU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNFLFFBQVEsR0FBR1o7WUFDL0JBLDhCQUE4QmE7UUFDbEM7SUFDSjtBQUNKO0FBRUEsSUFBSSxDQUFDLE9BQU96QixRQUFRMEIsT0FBTyxLQUFLLGNBQWUsT0FBTzFCLFFBQVEwQixPQUFPLEtBQUssWUFBWTFCLFFBQVEwQixPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU8xQixRQUFRMEIsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNySzdCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUTBCLE9BQU8sRUFBRSxjQUFjO1FBQUV6QixPQUFPO0lBQUs7SUFDbkVILE9BQU84QixNQUFNLENBQUM1QixRQUFRMEIsT0FBTyxFQUFFMUI7SUFDL0JFLE9BQU9GLE9BQU8sR0FBR0EsUUFBUTBCLE9BQU87QUFDbEMsRUFFQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9ib2R5LWxvY2tlci5qcz84ZDFkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgbG9jazogbnVsbCxcbiAgICB1bmxvY2s6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgbG9jazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBsb2NrO1xuICAgIH0sXG4gICAgdW5sb2NrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVubG9jaztcbiAgICB9XG59KTtcbmxldCBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQ7XG5sZXQgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nO1xubGV0IGFjdGl2ZUxvY2tzID0gMDtcbmZ1bmN0aW9uIGxvY2soKSB7XG4gICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICBpZiAoYWN0aXZlTG9ja3MrKyA+IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3JvbGxCYXJHYXAgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgaWYgKHNjcm9sbEJhckdhcCA+IDApIHtcbiAgICAgICAgICAgIHByZXZpb3VzQm9keVBhZGRpbmdSaWdodCA9IGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0O1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBcIlwiICsgc2Nyb2xsQmFyR2FwICsgXCJweFwiO1xuICAgICAgICB9XG4gICAgICAgIHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gdW5sb2NrKCkge1xuICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgaWYgKGFjdGl2ZUxvY2tzID09PSAwIHx8IC0tYWN0aXZlTG9ja3MgIT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gcHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0O1xuICAgICAgICAgICAgcHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2aW91c0JvZHlPdmVyZmxvd1NldHRpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZztcbiAgICAgICAgICAgIHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib2R5LWxvY2tlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJsb2NrIiwidW5sb2NrIiwiX2V4cG9ydCIsInRhcmdldCIsImFsbCIsIm5hbWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwicHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0IiwicHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nIiwiYWN0aXZlTG9ja3MiLCJzZXRUaW1lb3V0Iiwic2Nyb2xsQmFyR2FwIiwid2luZG93IiwiaW5uZXJXaWR0aCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiY2xpZW50V2lkdGgiLCJib2R5Iiwic3R5bGUiLCJwYWRkaW5nUmlnaHQiLCJvdmVyZmxvdyIsInVuZGVmaW5lZCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("\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 */ \"(ssr)/./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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsMkNBQTBDO0lBQ3RDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQyxTQUFTQyxPQUFPO0lBQzNCO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUQsV0FBV0UsbUJBQU9BLENBQUMsNEhBQVc7QUFFcEMsSUFBSSxDQUFDLE9BQU9OLFFBQVFPLE9BQU8sS0FBSyxjQUFlLE9BQU9QLFFBQVFPLE9BQU8sS0FBSyxZQUFZUCxRQUFRTyxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9QLFFBQVFPLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktWLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUU8sT0FBTyxFQUFFLGNBQWM7UUFBRU4sT0FBTztJQUFLO0lBQ25FSCxPQUFPVyxNQUFNLENBQUNULFFBQVFPLE9BQU8sRUFBRVA7SUFDL0JVLE9BQU9WLE9BQU8sR0FBR0EsUUFBUU8sT0FBTztBQUNsQyxFQUVBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L2luZGV4LmpzP2E4OGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJPdmVybGF5XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfT3ZlcmxheS5PdmVybGF5O1xuICAgIH1cbn0pO1xuY29uc3QgX092ZXJsYXkgPSByZXF1aXJlKFwiLi9PdmVybGF5XCIpO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX092ZXJsYXkiLCJPdmVybGF5IiwicmVxdWlyZSIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js\n"); + +/***/ }), + +/***/ "(ssr)/./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("/* 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 */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _platform = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/platform */ \"(ssr)/./node_modules/next/dist/compiled/platform/platform.js\"));\nconst _cssescape = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/css.escape */ \"(ssr)/./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 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 = false || \"\";\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 = '' + '' + '\"\"';\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 = '' + '' + '\"\"';\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 = '' + '' + '\"\"';\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 = '' + '\"\"';\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 = 'hello';\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

content

\";\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 = 'hello';\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 = '\"\"';\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 = '' + '\"\"';\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 ()\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 = '' + '\"\"';\n // focus the , not the
\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';\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
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 = '
scrollable content
';\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 = '
scrollable content
';\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 = '
scrollable content
';\n }\n};\nvar focusSummary = {\n element: \"details\",\n mutate: function mutate(element) {\n element.innerHTML = \"foo

content

\";\n return element.firstElementChild;\n }\n};\nfunction makeFocusableForeignObject() {\n // Constructs \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 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 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 '' + element + \"\";\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('a');\n return element.querySelector(\"text\");\n },\n validate: validate\n};\nvar focusSvgTabindexAttribute = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = generate('a');\n return element.querySelector(\"text\");\n },\n validate: validate\n};\nvar focusSvgNegativeTabindexAttribute = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = generate('a');\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 'link',\n ''\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('');\n // Safari 8's quersSelector() can't identify foreignObject, but getElementyByTagName() 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 = 'cell';\n var fragment = _document.createDocumentFragment();\n fragment.innerHTML = \"cell\";\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
or - this does *not*\n // happen for
,
, …\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 \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 and
\n return true;\n }\n if (supports$1.focusFieldset && nodeName === \"fieldset\") {\n // IE10-11 supports.can focus
\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 // cannot be made focusable by adding a tabindex attribute anywhere but Blink and WebKit\n return false;\n }\n if (nodeName === \"foreignobject\") {\n // 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 in 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
or a 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 and