@fecommunity/reactpress-template-hello-world 1.0.0-beta.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/build-manifest.json +35 -0
- package/.next/cache/webpack/client-development/0.pack +0 -0
- package/.next/cache/webpack/client-development/1.pack +0 -0
- package/.next/cache/webpack/client-development/index.pack +0 -0
- package/.next/cache/webpack/client-development/index.pack.old +0 -0
- package/.next/cache/webpack/client-development-fallback/0.pack +0 -0
- package/.next/cache/webpack/client-development-fallback/1.pack +0 -0
- package/.next/cache/webpack/client-development-fallback/index.pack +0 -0
- package/.next/cache/webpack/client-development-fallback/index.pack.old +0 -0
- package/.next/cache/webpack/server-development/0.pack +0 -0
- package/.next/cache/webpack/server-development/1.pack +0 -0
- package/.next/cache/webpack/server-development/2.pack +0 -0
- package/.next/cache/webpack/server-development/index.pack +0 -0
- package/.next/cache/webpack/server-development/index.pack.old +0 -0
- package/.next/fallback-build-manifest.json +27 -0
- package/.next/react-loadable-manifest.json +1 -0
- package/.next/server/_error.js +66 -0
- package/.next/server/pages/404.js +446 -126
- package/.next/server/pages/_app.js +43 -58
- package/.next/server/pages/_document.js +57 -731
- package/.next/server/pages/_error.js +29 -111
- package/.next/server/pages/index.js +1504 -260
- package/.next/server/pages-manifest.json +2 -4
- package/.next/server/webpack-runtime.js +13 -5
- package/.next/static/chunks/amp.js +961 -0
- package/.next/static/chunks/fallback/amp.js +961 -0
- package/.next/static/chunks/fallback/main.js +1266 -0
- package/.next/static/chunks/fallback/pages/_app.js +28 -0
- package/.next/static/chunks/fallback/pages/_error.js +28 -0
- package/.next/static/chunks/fallback/react-refresh.js +62 -0
- package/.next/static/chunks/fallback/webpack.js +1208 -0
- package/.next/static/chunks/main.js +1266 -0
- package/.next/static/chunks/pages/404.js +178 -0
- package/.next/static/chunks/pages/_app.js +28 -0
- package/.next/static/chunks/pages/_error.js +28 -0
- package/.next/static/chunks/polyfills.js +1 -0
- package/.next/static/chunks/react-refresh.js +62 -0
- package/.next/static/chunks/webpack.js +1220 -0
- package/.next/static/development/_buildManifest.js +1 -0
- package/.next/static/development/_ssgManifest.js +1 -0
- package/.next/static/webpack/82e97587a3709bd9.webpack.hot-update.json +1 -0
- package/.next/static/webpack/webpack.82e97587a3709bd9.hot-update.js +43 -0
- package/.next/trace +12 -0
- package/package.json +2 -2
- package/.next/routes-manifest.json +0 -1
- package/.next/server/chunks/402.js +0 -67
- package/.next/server/chunks/415.js +0 -32
- package/.next/server/chunks/843.js +0 -2759
- package/.next/server/chunks/990.js +0 -134
- package/.next/server/chunks/font-manifest.json +0 -1
- package/.next/server/font-manifest.json +0 -1
- package/.next/server/pages/404.js.nft.json +0 -1
- package/.next/server/pages/_app.js.nft.json +0 -1
- package/.next/server/pages/_document.js.nft.json +0 -1
- package/.next/server/pages/_error.js.nft.json +0 -1
- package/.next/server/pages/about.js +0 -450
- package/.next/server/pages/about.js.nft.json +0 -1
- package/.next/server/pages/index.js.nft.json +0 -1
- package/.next/server/pages/toolkit-demo.js +0 -574
- package/.next/server/pages/toolkit-demo.js.nft.json +0 -1
|
@@ -1,297 +1,617 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
3
|
+
* This devtool is neither made for production nor for readable output files.
|
|
4
|
+
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
5
|
+
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
6
|
+
* or disable the default devtool with "devtool: false".
|
|
7
|
+
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
8
|
+
*/
|
|
2
9
|
(() => {
|
|
3
10
|
var exports = {};
|
|
4
|
-
exports.id =
|
|
5
|
-
exports.ids = [
|
|
11
|
+
exports.id = "pages/404";
|
|
12
|
+
exports.ids = ["pages/404"];
|
|
6
13
|
exports.modules = {
|
|
7
14
|
|
|
8
|
-
/***/
|
|
15
|
+
/***/ "../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_async_to_generator.js":
|
|
16
|
+
/*!*********************************************************************************************************!*\
|
|
17
|
+
!*** ../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_async_to_generator.js ***!
|
|
18
|
+
\*********************************************************************************************************/
|
|
19
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
20
|
+
|
|
21
|
+
"use strict";
|
|
22
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = _asyncToGenerator;\nfunction _asyncToGenerator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bzd2MraGVscGVyc0AwLjQuMTEvbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX2FzeW5jX3RvX2dlbmVyYXRvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9Ac3djK2hlbHBlcnNAMC40LjExL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvbGliL19hc3luY190b19nZW5lcmF0b3IuanM/M2FlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9hc3luY1RvR2VuZXJhdG9yO1xuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcywgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuICAgICAgICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcInRocm93XCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_async_to_generator.js\n");
|
|
23
|
+
|
|
24
|
+
/***/ }),
|
|
25
|
+
|
|
26
|
+
/***/ "../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_extends.js":
|
|
27
|
+
/*!**********************************************************************************************!*\
|
|
28
|
+
!*** ../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_extends.js ***!
|
|
29
|
+
\**********************************************************************************************/
|
|
30
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
31
|
+
|
|
32
|
+
"use strict";
|
|
33
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = _extends;\nfunction _extends() {\n return extends_.apply(this, arguments);\n}\nfunction extends_() {\n extends_ = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return extends_.apply(this, arguments);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bzd2MraGVscGVyc0AwLjQuMTEvbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX2V4dGVuZHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsc0JBQXNCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZmVjb21tdW5pdHkvcmVhY3RwcmVzcy10ZW1wbGF0ZS1oZWxsby13b3JsZC8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vQHN3YytoZWxwZXJzQDAuNC4xMS9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9fZXh0ZW5kcy5qcz85YmEyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2V4dGVuZHM7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHtcbiAgICByZXR1cm4gZXh0ZW5kc18uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGV4dGVuZHNfKCkge1xuICAgIGV4dGVuZHNfID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICAgICAgZm9yKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gc291cmNlKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH07XG4gICAgcmV0dXJuIGV4dGVuZHNfLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_extends.js\n");
|
|
34
|
+
|
|
35
|
+
/***/ }),
|
|
36
|
+
|
|
37
|
+
/***/ "../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_default.js":
|
|
38
|
+
/*!**************************************************************************************************************!*\
|
|
39
|
+
!*** ../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_default.js ***!
|
|
40
|
+
\**************************************************************************************************************/
|
|
41
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
42
|
+
|
|
43
|
+
"use strict";
|
|
44
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = _interopRequireDefault;\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bzd2MraGVscGVyc0AwLjQuMTEvbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGZlY29tbXVuaXR5L3JlYWN0cHJlc3MtdGVtcGxhdGUtaGVsbG8td29ybGQvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bzd2MraGVscGVyc0AwLjQuMTEvbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzP2MzMTYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0O1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_default.js\n");
|
|
45
|
+
|
|
46
|
+
/***/ }),
|
|
47
|
+
|
|
48
|
+
/***/ "../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_wildcard.js":
|
|
49
|
+
/*!***************************************************************************************************************!*\
|
|
50
|
+
!*** ../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_wildcard.js ***!
|
|
51
|
+
\***************************************************************************************************************/
|
|
52
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
53
|
+
|
|
54
|
+
"use strict";
|
|
55
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = _interopRequireWildcard;\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _getRequireWildcardCache(nodeInterop1) {\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 })(nodeInterop1);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bzd2MraGVscGVyc0AwLjQuMTEvbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9Ac3djK2hlbHBlcnNAMC40LjExL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuanM/NTA3NSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7fTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcDEpIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3AxKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_wildcard.js\n");
|
|
56
|
+
|
|
57
|
+
/***/ }),
|
|
58
|
+
|
|
59
|
+
/***/ "../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_object_without_properties_loose.js":
|
|
60
|
+
/*!**********************************************************************************************************************!*\
|
|
61
|
+
!*** ../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_object_without_properties_loose.js ***!
|
|
62
|
+
\**********************************************************************************************************************/
|
|
63
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
64
|
+
|
|
65
|
+
"use strict";
|
|
66
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = _objectWithoutPropertiesLoose;\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bzd2MraGVscGVyc0AwLjQuMTEvbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHVCQUF1QjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZmVjb21tdW5pdHkvcmVhY3RwcmVzcy10ZW1wbGF0ZS1oZWxsby13b3JsZC8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vQHN3YytoZWxwZXJzQDAuNC4xMS9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9fb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZS5qcz9lYjk2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2U7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307XG4gICAgdmFyIHRhcmdldCA9IHt9O1xuICAgIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcbiAgICB2YXIga2V5LCBpO1xuICAgIGZvcihpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspe1xuICAgICAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_object_without_properties_loose.js\n");
|
|
67
|
+
|
|
68
|
+
/***/ }),
|
|
69
|
+
|
|
70
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-base-path.js":
|
|
71
|
+
/*!**********************************************************************************************************************************************************************!*\
|
|
72
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-base-path.js ***!
|
|
73
|
+
\**********************************************************************************************************************************************************************/
|
|
74
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
75
|
+
|
|
76
|
+
"use strict";
|
|
77
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addBasePath = addBasePath;\nvar _addPathPrefix = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"../shared/lib/router/utils/add-path-prefix\");\nvar _normalizeTrailingSlash = __webpack_require__(/*! ./normalize-trailing-slash */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || \"\";\nfunction addBasePath(path, required) {\n if (false) {}\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash((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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1iYXNlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxLQUFLLEVBQUUsSUFBSTtDQUNkLEVBQUMsQ0FBQztBQUNIRCxtQkFBbUIsR0FBR0UsV0FBVyxDQUFDO0FBQ2xDLElBQUlDLGNBQWMsR0FBR0MsbUJBQU8sQ0FBQyw4RkFBNEMsQ0FBQztBQUMxRSxJQUFJQyx1QkFBdUIsR0FBR0QsbUJBQU8sQ0FBQyw2TUFBNEIsQ0FBQztBQUNuRSxNQUFNRSxRQUFRLEdBQUdDLE1BQWtDLElBQUksRUFBRTtBQUN6RCxTQUFTTCxXQUFXLENBQUNRLElBQUksRUFBRUMsUUFBUSxFQUFFO0lBQ2pDLElBQUlKLEtBQTBDLEVBQUUsRUFJL0M7SUFDRCxPQUFPLENBQUMsQ0FBQyxFQUFFRix1QkFBdUIsRUFBRVEsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLEVBQUVWLGNBQWMsRUFBRVcsYUFBYSxDQUFDSixJQUFJLEVBQUVKLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDdEgsQ0FBQztBQUVELElBQUksQ0FBQyxPQUFPTixPQUFPLENBQUNlLE9BQU8sS0FBSyxVQUFVLElBQUssT0FBT2YsT0FBTyxDQUFDZSxPQUFPLEtBQUssUUFBUSxJQUFJZixPQUFPLENBQUNlLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSyxPQUFPZixPQUFPLENBQUNlLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLFdBQVcsRUFBRTtJQUNyS2xCLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDQyxPQUFPLENBQUNlLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFBRWQsS0FBSyxFQUFFLElBQUk7S0FBRSxDQUFDLENBQUM7SUFDdEVILE1BQU0sQ0FBQ21CLE1BQU0sQ0FBQ2pCLE9BQU8sQ0FBQ2UsT0FBTyxFQUFFZixPQUFPLENBQUMsQ0FBQztJQUN4Q2tCLE1BQU0sQ0FBQ2xCLE9BQU8sR0FBR0EsT0FBTyxDQUFDZSxPQUFPLENBQUM7QUFDbkMsQ0FBQyxDQUVELHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9uZXh0QDEyLjMuNF9AYmFiZWwrY29yZUA3LjI1LjJfcmVhY3QtZG9tQDE3LjAuMl9yZWFjdEAxNy4wLjJfX3JlYWN0QDE3LjAuMl9zYXNzQDEuNzkuMy9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtYmFzZS1wYXRoLmpzP2JlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmFkZEJhc2VQYXRoID0gYWRkQmFzZVBhdGg7XG52YXIgX2FkZFBhdGhQcmVmaXggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCIpO1xudmFyIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoID0gcmVxdWlyZShcIi4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoXCIpO1xuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aCwgcmVxdWlyZWQpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIKSB7XG4gICAgICAgIGlmICghcmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfYWRkUGF0aFByZWZpeCkuYWRkUGF0aFByZWZpeChwYXRoLCBiYXNlUGF0aCkpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGQtYmFzZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImFkZEJhc2VQYXRoIiwiX2FkZFBhdGhQcmVmaXgiLCJyZXF1aXJlIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsInJlcXVpcmVkIiwiX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJhZGRQYXRoUHJlZml4IiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-base-path.js\n");
|
|
78
|
+
|
|
79
|
+
/***/ }),
|
|
80
|
+
|
|
81
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-locale.js":
|
|
82
|
+
/*!*******************************************************************************************************************************************************************!*\
|
|
83
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-locale.js ***!
|
|
84
|
+
\*******************************************************************************************************************************************************************/
|
|
85
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
86
|
+
|
|
87
|
+
"use strict";
|
|
88
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addLocale = void 0;\nvar _normalizeTrailingSlash = __webpack_require__(/*! ./normalize-trailing-slash */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = (path, ...args)=>{\n if (false) {}\n return path;\n};\nexports.addLocale = addLocale;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1sb2NhbGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxLQUFLLEVBQUUsSUFBSTtDQUNkLEVBQUMsQ0FBQztBQUNIRCxpQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUMzQixJQUFJRyx1QkFBdUIsR0FBR0MsbUJBQU8sQ0FBQyw2TUFBNEIsQ0FBQztBQUNuRSxNQUFNRixTQUFTLEdBQUcsQ0FBQ0csSUFBSSxFQUFLQyxHQUFBQSxJQUFJLEdBQUc7SUFDL0IsSUFBSUMsS0FBK0IsRUFBRSxFQUVwQztJQUNELE9BQU9GLElBQUksQ0FBQztBQUNoQixDQUFDO0FBQ0RMLGlCQUFpQixHQUFHRSxTQUFTLENBQUM7QUFFOUIsSUFBSSxDQUFDLE9BQU9GLE9BQU8sQ0FBQ1csT0FBTyxLQUFLLFVBQVUsSUFBSyxPQUFPWCxPQUFPLENBQUNXLE9BQU8sS0FBSyxRQUFRLElBQUlYLE9BQU8sQ0FBQ1csT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFLLE9BQU9YLE9BQU8sQ0FBQ1csT0FBTyxDQUFDQyxVQUFVLEtBQUssV0FBVyxFQUFFO0lBQ3JLZCxNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDVyxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQUVWLEtBQUssRUFBRSxJQUFJO0tBQUUsQ0FBQyxDQUFDO0lBQ3RFSCxNQUFNLENBQUNlLE1BQU0sQ0FBQ2IsT0FBTyxDQUFDVyxPQUFPLEVBQUVYLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDYyxNQUFNLENBQUNkLE9BQU8sR0FBR0EsT0FBTyxDQUFDVyxPQUFPLENBQUM7QUFDbkMsQ0FBQyxDQUVELHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9uZXh0QDEyLjMuNF9AYmFiZWwrY29yZUA3LjI1LjJfcmVhY3QtZG9tQDE3LjAuMl9yZWFjdEAxNy4wLjJfX3JlYWN0QDE3LjAuMl9zYXNzQDEuNzkuMy9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtbG9jYWxlLmpzP2FiMTQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmFkZExvY2FsZSA9IHZvaWQgMDtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiKTtcbmNvbnN0IGFkZExvY2FsZSA9IChwYXRoLCAuLi5hcmdzKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUnKS5hZGRMb2NhbGUocGF0aCwgLi4uYXJncykpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn07XG5leHBvcnRzLmFkZExvY2FsZSA9IGFkZExvY2FsZTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJhZGRMb2NhbGUiLCJfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCIsInJlcXVpcmUiLCJwYXRoIiwiYXJncyIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-locale.js\n");
|
|
89
|
+
|
|
90
|
+
/***/ }),
|
|
91
|
+
|
|
92
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/detect-domain-locale.js":
|
|
93
|
+
/*!*****************************************************************************************************************************************************************************!*\
|
|
94
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/detect-domain-locale.js ***!
|
|
95
|
+
\*****************************************************************************************************************************************************************************/
|
|
96
|
+
/***/ ((module, exports) => {
|
|
97
|
+
|
|
98
|
+
"use strict";
|
|
99
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.detectDomainLocale = void 0;\nconst detectDomainLocale = (...args)=>{\n if (false) {}\n};\nexports.detectDomainLocale = detectDomainLocale;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=detect-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2RldGVjdC1kb21haW4tbG9jYWxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csS0FBSyxFQUFFLElBQUk7Q0FDZCxFQUFDLENBQUM7QUFDSEQsMEJBQTBCLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDcEMsTUFBTUUsa0JBQWtCLEdBQUcsQ0FBSUMsR0FBQUEsSUFBSSxHQUFHO0lBQ2xDLElBQUlDLEtBQStCLEVBQUUsRUFFcEM7QUFDTCxDQUFDO0FBQ0RKLDBCQUEwQixHQUFHRSxrQkFBa0IsQ0FBQztBQUVoRCxJQUFJLENBQUMsT0FBT0YsT0FBTyxDQUFDUSxPQUFPLEtBQUssVUFBVSxJQUFLLE9BQU9SLE9BQU8sQ0FBQ1EsT0FBTyxLQUFLLFFBQVEsSUFBSVIsT0FBTyxDQUFDUSxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUssT0FBT1IsT0FBTyxDQUFDUSxPQUFPLENBQUNDLFVBQVUsS0FBSyxXQUFXLEVBQUU7SUFDcktYLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDQyxPQUFPLENBQUNRLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFBRVAsS0FBSyxFQUFFLElBQUk7S0FBRSxDQUFDLENBQUM7SUFDdEVILE1BQU0sQ0FBQ1ksTUFBTSxDQUFDVixPQUFPLENBQUNRLE9BQU8sRUFBRVIsT0FBTyxDQUFDLENBQUM7SUFDeENXLE1BQU0sQ0FBQ1gsT0FBTyxHQUFHQSxPQUFPLENBQUNRLE9BQU8sQ0FBQztBQUNuQyxDQUFDLENBRUQsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGZlY29tbXVuaXR5L3JlYWN0cHJlc3MtdGVtcGxhdGUtaGVsbG8td29ybGQvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2RldGVjdC1kb21haW4tbG9jYWxlLmpzPzBkMTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRldGVjdERvbWFpbkxvY2FsZSA9IHZvaWQgMDtcbmNvbnN0IGRldGVjdERvbWFpbkxvY2FsZSA9ICguLi5hcmdzKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKCcuLi9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnKS5kZXRlY3REb21haW5Mb2NhbGUoLi4uYXJncyk7XG4gICAgfVxufTtcbmV4cG9ydHMuZGV0ZWN0RG9tYWluTG9jYWxlID0gZGV0ZWN0RG9tYWluTG9jYWxlO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZXRlY3QtZG9tYWluLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJhcmdzIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJyZXF1aXJlIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/detect-domain-locale.js\n");
|
|
100
|
+
|
|
101
|
+
/***/ }),
|
|
102
|
+
|
|
103
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/get-domain-locale.js":
|
|
104
|
+
/*!**************************************************************************************************************************************************************************!*\
|
|
105
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/get-domain-locale.js ***!
|
|
106
|
+
\**************************************************************************************************************************************************************************/
|
|
107
|
+
/***/ ((module, exports) => {
|
|
108
|
+
|
|
109
|
+
"use strict";
|
|
110
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nconst basePath = false || \"\";\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\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=get-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2dldC1kb21haW4tbG9jYWxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csS0FBSyxFQUFFLElBQUk7Q0FDZCxFQUFDLENBQUM7QUFDSEQsdUJBQXVCLEdBQUdFLGVBQWUsQ0FBQztBQUMxQyxNQUFNQyxRQUFRLEdBQUdDLE1BQWtDLElBQUksRUFBRTtBQUN6RCxTQUFTRixlQUFlLENBQUNLLElBQUksRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLGFBQWEsRUFBRTtJQUMzRCxJQUFJTixLQUErQixFQUFFLEVBV3BDLE1BQU07UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQztBQUVELElBQUksQ0FBQyxPQUFPSixPQUFPLENBQUN1QixPQUFPLEtBQUssVUFBVSxJQUFLLE9BQU92QixPQUFPLENBQUN1QixPQUFPLEtBQUssUUFBUSxJQUFJdkIsT0FBTyxDQUFDdUIsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFLLE9BQU92QixPQUFPLENBQUN1QixPQUFPLENBQUNDLFVBQVUsS0FBSyxXQUFXLEVBQUU7SUFDcksxQixNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDdUIsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUFFdEIsS0FBSyxFQUFFLElBQUk7S0FBRSxDQUFDLENBQUM7SUFDdEVILE1BQU0sQ0FBQzJCLE1BQU0sQ0FBQ3pCLE9BQU8sQ0FBQ3VCLE9BQU8sRUFBRXZCLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDMEIsTUFBTSxDQUFDMUIsT0FBTyxHQUFHQSxPQUFPLENBQUN1QixPQUFPLENBQUM7QUFDbkMsQ0FBQyxDQUVELDZDQUE2QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9uZXh0QDEyLjMuNF9AYmFiZWwrY29yZUA3LjI1LjJfcmVhY3QtZG9tQDE3LjAuMl9yZWFjdEAxNy4wLjJfX3JlYWN0QDE3LjAuMl9zYXNzQDEuNzkuMy9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9nZXQtZG9tYWluLWxvY2FsZS5qcz9jM2VhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXREb21haW5Mb2NhbGUgPSBnZXREb21haW5Mb2NhbGU7XG5jb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggfHwgJyc7XG5mdW5jdGlvbiBnZXREb21haW5Mb2NhbGUocGF0aCwgbG9jYWxlLCBsb2NhbGVzLCBkb21haW5Mb2NhbGVzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplTG9jYWxlUGF0aCA9IHJlcXVpcmUoJy4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJykubm9ybWFsaXplTG9jYWxlUGF0aDtcbiAgICAgICAgY29uc3QgZGV0ZWN0RG9tYWluTG9jYWxlID0gcmVxdWlyZSgnLi9kZXRlY3QtZG9tYWluLWxvY2FsZScpLmRldGVjdERvbWFpbkxvY2FsZTtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gbG9jYWxlIHx8IG5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aCwgbG9jYWxlcykuZGV0ZWN0ZWRMb2NhbGU7XG4gICAgICAgIGNvbnN0IGRvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCB1bmRlZmluZWQsIHRhcmdldCk7XG4gICAgICAgIGlmIChkb21haW4pIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3RvID0gYGh0dHAke2RvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vYDtcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsTG9jYWxlID0gdGFyZ2V0ID09PSBkb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke3RhcmdldH1gO1xuICAgICAgICAgICAgcmV0dXJuIGAke3Byb3RvfSR7ZG9tYWluLmRvbWFpbn0ke2Jhc2VQYXRofSR7ZmluYWxMb2NhbGV9JHtwYXRofWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1kb21haW4tbG9jYWxlLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldERvbWFpbkxvY2FsZSIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsInJlcXVpcmUiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJ0YXJnZXQiLCJkZXRlY3RlZExvY2FsZSIsImRvbWFpbiIsInVuZGVmaW5lZCIsInByb3RvIiwiaHR0cCIsImZpbmFsTG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/get-domain-locale.js\n");
|
|
111
|
+
|
|
112
|
+
/***/ }),
|
|
113
|
+
|
|
114
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/has-base-path.js":
|
|
115
|
+
/*!**********************************************************************************************************************************************************************!*\
|
|
116
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/has-base-path.js ***!
|
|
117
|
+
\**********************************************************************************************************************************************************************/
|
|
118
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
119
|
+
|
|
120
|
+
"use strict";
|
|
121
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.hasBasePath = hasBasePath;\nvar _pathHasPrefix = __webpack_require__(/*! ../shared/lib/router/utils/path-has-prefix */ \"../shared/lib/router/utils/path-has-prefix\");\nconst basePath = false || \"\";\nfunction hasBasePath(path) {\n return (0, _pathHasPrefix).pathHasPrefix(path, basePath);\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2hhcy1iYXNlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxLQUFLLEVBQUUsSUFBSTtDQUNkLEVBQUMsQ0FBQztBQUNIRCxtQkFBbUIsR0FBR0UsV0FBVyxDQUFDO0FBQ2xDLElBQUlDLGNBQWMsR0FBR0MsbUJBQU8sQ0FBQyw4RkFBNEMsQ0FBQztBQUMxRSxNQUFNQyxRQUFRLEdBQUdDLE1BQWtDLElBQUksRUFBRTtBQUN6RCxTQUFTSixXQUFXLENBQUNPLElBQUksRUFBRTtJQUN2QixPQUFPLENBQUMsQ0FBQyxFQUFFTixjQUFjLEVBQUVPLGFBQWEsQ0FBQ0QsSUFBSSxFQUFFSixRQUFRLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsSUFBSSxDQUFDLE9BQU9MLE9BQU8sQ0FBQ1csT0FBTyxLQUFLLFVBQVUsSUFBSyxPQUFPWCxPQUFPLENBQUNXLE9BQU8sS0FBSyxRQUFRLElBQUlYLE9BQU8sQ0FBQ1csT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFLLE9BQU9YLE9BQU8sQ0FBQ1csT0FBTyxDQUFDQyxVQUFVLEtBQUssV0FBVyxFQUFFO0lBQ3JLZCxNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDVyxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQUVWLEtBQUssRUFBRSxJQUFJO0tBQUUsQ0FBQyxDQUFDO0lBQ3RFSCxNQUFNLENBQUNlLE1BQU0sQ0FBQ2IsT0FBTyxDQUFDVyxPQUFPLEVBQUVYLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDYyxNQUFNLENBQUNkLE9BQU8sR0FBR0EsT0FBTyxDQUFDVyxPQUFPLENBQUM7QUFDbkMsQ0FBQyxDQUVELHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9uZXh0QDEyLjMuNF9AYmFiZWwrY29yZUA3LjI1LjJfcmVhY3QtZG9tQDE3LjAuMl9yZWFjdEAxNy4wLjJfX3JlYWN0QDE3LjAuMl9zYXNzQDEuNzkuMy9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oYXMtYmFzZS1wYXRoLmpzPzg0YjgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmhhc0Jhc2VQYXRoID0gaGFzQmFzZVBhdGg7XG52YXIgX3BhdGhIYXNQcmVmaXggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4XCIpO1xuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gaGFzQmFzZVBhdGgocGF0aCkge1xuICAgIHJldHVybiAoMCwgX3BhdGhIYXNQcmVmaXgpLnBhdGhIYXNQcmVmaXgocGF0aCwgYmFzZVBhdGgpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oYXMtYmFzZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImhhc0Jhc2VQYXRoIiwiX3BhdGhIYXNQcmVmaXgiLCJyZXF1aXJlIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInBhdGgiLCJwYXRoSGFzUHJlZml4IiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/has-base-path.js\n");
|
|
122
|
+
|
|
123
|
+
/***/ }),
|
|
124
|
+
|
|
125
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/head-manager.js":
|
|
126
|
+
/*!*********************************************************************************************************************************************************************!*\
|
|
127
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/head-manager.js ***!
|
|
128
|
+
\*********************************************************************************************************************************************************************/
|
|
129
|
+
/***/ ((module, exports) => {
|
|
130
|
+
|
|
131
|
+
"use strict";
|
|
132
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = initHeadManager;\nexports.isEqualNode = isEqualNode;\nexports.DOMAttributeNames = void 0;\nfunction initHeadManager() {\n return {\n mountedInstances: new Set(),\n updateHead: (head)=>{\n const tags = {};\n head.forEach((h)=>{\n if (// it won't be inlined. In this case revert to the original behavior\n h.type === \"link\" && h.props[\"data-optimized-fonts\"]) {\n if (document.querySelector(`style[data-href=\"${h.props[\"data-href\"]}\"]`)) {\n return;\n } else {\n h.props.href = h.props[\"data-href\"];\n h.props[\"data-href\"] = undefined;\n }\n }\n const components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n const titleComponent = tags.title ? tags.title[0] : null;\n let title = \"\";\n if (titleComponent) {\n const { children } = titleComponent.props;\n title = typeof children === \"string\" ? children : Array.isArray(children) ? children.join(\"\") : \"\";\n }\n if (title !== document.title) document.title = title;\n [\n \"meta\",\n \"base\",\n \"link\",\n \"style\",\n \"script\"\n ].forEach((type)=>{\n updateElements(type, tags[type] || []);\n });\n }\n };\n}\nconst DOMAttributeNames = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\",\n noModule: \"noModule\"\n};\nexports.DOMAttributeNames = DOMAttributeNames;\nfunction reactElementToDOM({ type , props }) {\n const el = document.createElement(type);\n for(const p in props){\n if (!props.hasOwnProperty(p)) continue;\n if (p === \"children\" || p === \"dangerouslySetInnerHTML\") continue;\n // we don't render undefined props to the DOM\n if (props[p] === undefined) continue;\n const attr = DOMAttributeNames[p] || p.toLowerCase();\n if (type === \"script\" && (attr === \"async\" || attr === \"defer\" || attr === \"noModule\")) {\n el[attr] = !!props[p];\n } else {\n el.setAttribute(attr, props[p]);\n }\n }\n const { children , dangerouslySetInnerHTML } = props;\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || \"\";\n } else if (children) {\n el.textContent = typeof children === \"string\" ? children : Array.isArray(children) ? children.join(\"\") : \"\";\n }\n return el;\n}\nfunction isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(\"nonce\");\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(\"nonce\")) {\n const cloneTag = newTag.cloneNode(true);\n cloneTag.setAttribute(\"nonce\", \"\");\n cloneTag.nonce = nonce;\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag);\n }\n }\n return oldTag.isEqualNode(newTag);\n}\nfunction updateElements(type, components) {\n const headEl = document.getElementsByTagName(\"head\")[0];\n const headCountEl = headEl.querySelector(\"meta[name=next-head-count]\");\n if (true) {\n if (!headCountEl) {\n console.error(\"Warning: next-head-count is missing. https://nextjs.org/docs/messages/next-head-count-missing\");\n return;\n }\n }\n const headCount = Number(headCountEl.content);\n const oldTags = [];\n for(let i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = (j == null ? void 0 : j.previousElementSibling) || null){\n var ref;\n if ((j == null ? void 0 : (ref = j.tagName) == null ? void 0 : ref.toLowerCase()) === type) {\n oldTags.push(j);\n }\n }\n const newTags = components.map(reactElementToDOM).filter((newTag)=>{\n for(let k = 0, len = oldTags.length; k < len; k++){\n const oldTag = oldTags[k];\n if (isEqualNode(oldTag, newTag)) {\n oldTags.splice(k, 1);\n return false;\n }\n }\n return true;\n });\n oldTags.forEach((t)=>{\n var ref;\n return (ref = t.parentNode) == null ? void 0 : ref.removeChild(t);\n });\n newTags.forEach((t)=>headEl.insertBefore(t, headCountEl));\n headCountEl.content = (headCount - oldTags.length + newTags.length).toString();\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head-manager.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2hlYWQtbWFuYWdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLEtBQUssRUFBRSxJQUFJO0NBQ2QsRUFBQyxDQUFDO0FBQ0hELGtCQUFlLEdBQUdHLGVBQWUsQ0FBQztBQUNsQ0gsbUJBQW1CLEdBQUdJLFdBQVcsQ0FBQztBQUNsQ0oseUJBQXlCLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDbkMsU0FBU0csZUFBZSxHQUFHO0lBQ3ZCLE9BQU87UUFDSEcsZ0JBQWdCLEVBQUUsSUFBSUMsR0FBRyxFQUFFO1FBQzNCQyxVQUFVLEVBQUUsQ0FBQ0MsSUFBSSxHQUFHO1lBQ2hCLE1BQU1DLElBQUksR0FBRyxFQUFFO1lBQ2ZELElBQUksQ0FBQ0UsT0FBTyxDQUFDLENBQUNDLENBQUMsR0FBRztnQkFDZCxJQUNBLG9FQUFvRTtnQkFDcEVBLENBQUMsQ0FBQ0MsSUFBSSxLQUFLLE1BQU0sSUFBSUQsQ0FBQyxDQUFDRSxLQUFLLENBQUMsc0JBQXNCLENBQUMsRUFBRTtvQkFDbEQsSUFBSUMsUUFBUSxDQUFDQyxhQUFhLENBQUMsQ0FBQyxpQkFBaUIsRUFBRUosQ0FBQyxDQUFDRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTt3QkFDdEUsT0FBTztvQkFDWCxPQUFPO3dCQUNIRixDQUFDLENBQUNFLEtBQUssQ0FBQ0csSUFBSSxHQUFHTCxDQUFDLENBQUNFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDcENGLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHSSxTQUFTLENBQUM7b0JBQ3JDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxN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QUVELEtBQUssRUFBRSxJQUFJO0tBQUUsQ0FBQyxDQUFDO0lBQ3RFSCxNQUFNLENBQUNrRixNQUFNLENBQUNoRixPQUFPLENBQUNFLE9BQU8sRUFBRUYsT0FBTyxDQUFDLENBQUM7SUFDeENpRixNQUFNLENBQUNqRixPQUFPLEdBQUdBLE9BQU8sQ0FBQ0UsT0FBTyxDQUFDO0FBQ25DLENBQUMsQ0FFRCx3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZmVjb21tdW5pdHkvcmVhY3RwcmVzcy10ZW1wbGF0ZS1oZWxsby13b3JsZC8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vbmV4dEAxMi4zLjRfQGJhYmVsK2NvcmVANy4yNS4yX3JlYWN0LWRvbUAxNy4wLjJfcmVhY3RAMTcuMC4yX19yZWFjdEAxNy4wLjJfc2Fzc0AxLjc5LjMvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvaGVhZC1tYW5hZ2VyLmpzPzgxNTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpbml0SGVhZE1hbmFnZXI7XG5leHBvcnRzLmlzRXF1YWxOb2RlID0gaXNFcXVhbE5vZGU7XG5leHBvcnRzLkRPTUF0dHJpYnV0ZU5hbWVzID0gdm9pZCAwO1xuZnVuY3Rpb24gaW5pdEhlYWRNYW5hZ2VyKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG1vdW50ZWRJbnN0YW5jZXM6IG5ldyBTZXQoKSxcbiAgICAgICAgdXBkYXRlSGVhZDogKGhlYWQpPT57XG4gICAgICAgICAgICBjb25zdCB0YWdzID0ge307XG4gICAgICAgICAgICBoZWFkLmZvckVhY2goKGgpPT57XG4gICAgICAgICAgICAgICAgaWYgKC8vIElmIHRoZSBmb250IHRhZyBpcyBsb2FkZWQgb25seSBvbiBjbGllbnQgbmF2aWdhdGlvblxuICAgICAgICAgICAgICAgIC8vIGl0IHdvbid0IGJlIGlubGluZWQuIEluIHRoaXMgY2FzZSByZXZlcnQgdG8gdGhlIG9yaWdpbmFsIGJlaGF2aW9yXG4gICAgICAgICAgICAgICAgaC50eXBlID09PSAnbGluaycgJiYgaC5wcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc3R5bGVbZGF0YS1ocmVmPVwiJHtoLnByb3BzWydkYXRhLWhyZWYnXX1cIl1gKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaC5wcm9wcy5ocmVmID0gaC5wcm9wc1snZGF0YS1ocmVmJ107XG4gICAgICAgICAgICAgICAgICAgICAgICBoLnByb3BzWydkYXRhLWhyZWYnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdGFnc1toLnR5cGVdIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucHVzaChoKTtcbiAgICAgICAgICAgICAgICB0YWdzW2gudHlwZV0gPSBjb21wb25lbnRzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IHRhZ3MudGl0bGUgPyB0YWdzLnRpdGxlWzBdIDogbnVsbDtcbiAgICAgICAgICAgIGxldCB0aXRsZSA9ICcnO1xuICAgICAgICAgICAgaWYgKHRpdGxlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjaGlsZHJlbiAgfSA9IHRpdGxlQ29tcG9uZW50LnByb3BzO1xuICAgICAgICAgICAgICAgIHRpdGxlID0gdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyA/IGNoaWxkcmVuIDogQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbi5qb2luKCcnKSA6ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRpdGxlICE9PSBkb2N1bWVudC50aXRsZSkgZG9jdW1lbnQudGl0bGUgPSB0aXRsZTtcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAnbWV0YScsXG4gICAgICAgICAgICAgICAgJ2Jhc2UnLFxuICAgICAgICAgICAgICAgICdsaW5rJyxcbiAgICAgICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICdzY3JpcHQnXG4gICAgICAgICAgICBdLmZvckVhY2goKHR5cGUpPT57XG4gICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudHModHlwZSwgdGFnc1t0eXBlXSB8fCBbXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCBET01BdHRyaWJ1dGVOYW1lcyA9IHtcbiAgICBhY2NlcHRDaGFyc2V0OiAnYWNjZXB0LWNoYXJzZXQnLFxuICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICBodG1sRm9yOiAnZm9yJyxcbiAgICBodHRwRXF1aXY6ICdodHRwLWVxdWl2JyxcbiAgICBub01vZHVsZTogJ25vTW9kdWxlJ1xufTtcbmV4cG9ydHMuRE9NQXR0cmlidXRlTmFtZXMgPSBET01BdHRyaWJ1dGVOYW1lcztcbmZ1bmN0aW9uIHJlYWN0RWxlbWVudFRvRE9NKHsgdHlwZSAsIHByb3BzICB9KSB7XG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpO1xuICAgIGZvcihjb25zdCBwIGluIHByb3BzKXtcbiAgICAgICAgaWYgKCFwcm9wcy5oYXNPd25Qcm9wZXJ0eShwKSkgY29udGludWU7XG4gICAgICAgIGlmIChwID09PSAnY2hpbGRyZW4nIHx8IHAgPT09ICdkYW5nZXJvdXNseVNldElubmVySFRNTCcpIGNvbnRpbnVlO1xuICAgICAgICAvLyB3ZSBkb24ndCByZW5kZXIgdW5kZWZpbmVkIHByb3BzIHRvIHRoZSBET01cbiAgICAgICAgaWYgKHByb3BzW3BdID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBhdHRyID0gRE9NQXR0cmlidXRlTmFtZXNbcF0gfHwgcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodHlwZSA9PT0gJ3NjcmlwdCcgJiYgKGF0dHIgPT09ICdhc3luYycgfHwgYXR0ciA9PT0gJ2RlZmVyJyB8fCBhdHRyID09PSAnbm9Nb2R1bGUnKSkge1xuICAgICAgICAgICAgZWxbYXR0cl0gPSAhIXByb3BzW3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKGF0dHIsIHByb3BzW3BdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7IGNoaWxkcmVuICwgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgIH0gPSBwcm9wcztcbiAgICBpZiAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpIHtcbiAgICAgICAgZWwuaW5uZXJIVE1MID0gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sIHx8ICcnO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgZWwudGV4dENvbnRlbnQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnID8gY2hpbGRyZW4gOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuLmpvaW4oJycpIDogJyc7XG4gICAgfVxuICAgIHJldHVybiBlbDtcbn1cbmZ1bmN0aW9uIGlzRXF1YWxOb2RlKG9sZFRhZywgbmV3VGFnKSB7XG4gICAgaWYgKG9sZFRhZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIG5ld1RhZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vbmNlID0gbmV3VGFnLmdldEF0dHJpYnV0ZSgnbm9uY2UnKTtcbiAgICAgICAgLy8gT25seSBzdHJpcCB0aGUgbm9uY2UgaWYgYG9sZFRhZ2AgaGFzIGhhZCBpdCBzdHJpcHBlZC4gQW4gZWxlbWVudCdzIG5vbmNlIGF0dHJpYnV0ZSB3aWxsIG5vdFxuICAgICAgICAvLyBiZSBzdHJpcHBlZCBpZiB0aGVyZSBpcyBubyBjb250ZW50IHNlY3VyaXR5IHBvbGljeSByZXNwb25zZSBoZWFkZXIgdGhhdCBpbmNsdWRlcyBhIG5vbmNlLlxuICAgICAgICBpZiAobm9uY2UgJiYgIW9sZFRhZy5nZXRBdHRyaWJ1dGUoJ25vbmNlJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsb25lVGFnID0gbmV3VGFnLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgICAgICAgIGNsb25lVGFnLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCAnJyk7XG4gICAgICAgICAgICBjbG9uZVRhZy5ub25jZSA9IG5vbmNlO1xuICAgICAgICAgICAgcmV0dXJuIG5vbmNlID09PSBvbGRUYWcubm9uY2UgJiYgb2xkVGFnLmlzRXF1YWxOb2RlKGNsb25lVGFnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2xkVGFnLmlzRXF1YWxOb2RlKG5ld1RhZyk7XG59XG5mdW5jdGlvbiB1cGRhdGVFbGVtZW50cyh0eXBlLCBjb21wb25lbnRzKSB7XG4gICAgY29uc3QgaGVhZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICBjb25zdCBoZWFkQ291bnRFbCA9IGhlYWRFbC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9bmV4dC1oZWFkLWNvdW50XScpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmICghaGVhZENvdW50RWwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dhcm5pbmc6IG5leHQtaGVhZC1jb3VudCBpcyBtaXNzaW5nLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWhlYWQtY291bnQtbWlzc2luZycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGhlYWRDb3VudCA9IE51bWJlcihoZWFkQ291bnRFbC5jb250ZW50KTtcbiAgICBjb25zdCBvbGRUYWdzID0gW107XG4gICAgZm9yKGxldCBpID0gMCwgaiA9IGhlYWRDb3VudEVsLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7IGkgPCBoZWFkQ291bnQ7IGkrKywgaiA9IChqID09IG51bGwgPyB2b2lkIDAgOiBqLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHx8IG51bGwpe1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBpZiAoKGogPT0gbnVsbCA/IHZvaWQgMCA6IChyZWYgPSBqLnRhZ05hbWUpID09IG51bGwgPyB2b2lkIDAgOiByZWYudG9Mb3dlckNhc2UoKSkgPT09IHR5cGUpIHtcbiAgICAgICAgICAgIG9sZFRhZ3MucHVzaChqKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBuZXdUYWdzID0gY29tcG9uZW50cy5tYXAocmVhY3RFbGVtZW50VG9ET00pLmZpbHRlcigobmV3VGFnKT0+e1xuICAgICAgICBmb3IobGV0IGsgPSAwLCBsZW4gPSBvbGRUYWdzLmxlbmd0aDsgayA8IGxlbjsgaysrKXtcbiAgICAgICAgICAgIGNvbnN0IG9sZFRhZyA9IG9sZFRhZ3Nba107XG4gICAgICAgICAgICBpZiAoaXNFcXVhbE5vZGUob2xkVGFnLCBuZXdUYWcpKSB7XG4gICAgICAgICAgICAgICAgb2xkVGFncy5zcGxpY2UoaywgMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIG9sZFRhZ3MuZm9yRWFjaCgodCk9PntcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgcmV0dXJuIChyZWYgPSB0LnBhcmVudE5vZGUpID09IG51bGwgPyB2b2lkIDAgOiByZWYucmVtb3ZlQ2hpbGQodCk7XG4gICAgfSk7XG4gICAgbmV3VGFncy5mb3JFYWNoKCh0KT0+aGVhZEVsLmluc2VydEJlZm9yZSh0LCBoZWFkQ291bnRFbCkpO1xuICAgIGhlYWRDb3VudEVsLmNvbnRlbnQgPSAoaGVhZENvdW50IC0gb2xkVGFncy5sZW5ndGggKyBuZXdUYWdzLmxlbmd0aCkudG9TdHJpbmcoKTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVhZC1tYW5hZ2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImRlZmF1bHQiLCJpbml0SGVhZE1hbmFnZXIiLCJpc0VxdWFsTm9kZSIsIkRPTUF0dHJpYnV0ZU5hbWVzIiwibW91bnRlZEluc3RhbmNlcyIsIlNldCIsInVwZGF0ZUhlYWQiLCJoZWFkIiwidGFncyIsImZvckVhY2giLCJoIiwidHlwZSIsInByb3BzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiaHJlZiIsInVuZGVmaW5lZCIsImNvbXBvbmVudHMiLCJwdXNoIiwidGl0bGVDb21wb25lbnQiLCJ0aXRsZSIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsInVwZGF0ZUVsZW1lbnRzIiwiYWNjZXB0Q2hhcnNldCIsImNsYXNzTmFtZSIsImh0bWxGb3IiLCJodHRwRXF1aXYiLCJub01vZHVsZSIsInJlYWN0RWxlbWVudFRvRE9NIiwiZWwiLCJjcmVhdGVFbGVtZW50IiwicCIsImhhc093blByb3BlcnR5IiwiYXR0ciIsInRvTG93ZXJDYXNlIiwic2V0QXR0cmlidXRlIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJpbm5lckhUTUwiLCJfX2h0bWwiLCJ0ZXh0Q29udGVudCIsIm9sZFRhZyIsIm5ld1RhZyIsIkhUTUxFbGVtZW50Iiwibm9uY2UiLCJnZXRBdHRyaWJ1dGUiLCJjbG9uZVRhZyIsImNsb25lTm9kZSIsImhlYWRFbCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaGVhZENvdW50RWwiLCJwcm9jZXNzIiwiY29uc29sZSIsImVycm9yIiwiaGVhZENvdW50IiwiTnVtYmVyIiwiY29udGVudCIsIm9sZFRhZ3MiLCJpIiwiaiIsInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJyZWYiLCJ0YWdOYW1lIiwibmV3VGFncyIsIm1hcCIsImZpbHRlciIsImsiLCJsZW4iLCJsZW5ndGgiLCJzcGxpY2UiLCJ0IiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwiaW5zZXJ0QmVmb3JlIiwidG9TdHJpbmciLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/head-manager.js\n");
|
|
133
|
+
|
|
134
|
+
/***/ }),
|
|
135
|
+
|
|
136
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/link.js":
|
|
137
|
+
/*!*************************************************************************************************************************************************************!*\
|
|
138
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/link.js ***!
|
|
139
|
+
\*************************************************************************************************************************************************************/
|
|
140
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
141
|
+
|
|
142
|
+
"use strict";
|
|
143
|
+
eval("\n\"client\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _object_without_properties_loose = (__webpack_require__(/*! @swc/helpers/lib/_object_without_properties_loose.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_object_without_properties_loose.js\")[\"default\"]);\nvar _react = _interop_require_default(__webpack_require__(/*! react */ \"react\"));\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/shared/lib/router/router.js\");\nvar _addLocale = __webpack_require__(/*! ./add-locale */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-locale.js\");\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"../shared/lib/router-context\");\nvar _appRouterContext = __webpack_require__(/*! ../shared/lib/app-router-context */ \"../shared/lib/app-router-context\");\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/use-intersection.js\");\nvar _getDomainLocale = __webpack_require__(/*! ./get-domain-locale */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/get-domain-locale.js\");\nvar _addBasePath = __webpack_require__(/*! ./add-base-path */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-base-path.js\");\n\"client\";\nconst prefetched = {};\nfunction prefetch(router, href, as, options) {\n if (true) return;\n if (!(0, _router).isLocalURL(href)) return;\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n Promise.resolve(router.prefetch(href, as, options)).catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n const curLocale = options && typeof options.locale !== \"undefined\" ? options.locale : router && router.locale;\n // Join on an invalid URI character\n prefetched[href + \"%\" + as + (curLocale ? \"%\" + curLocale : \"\")] = true;\n}\nfunction isModifiedEvent(event) {\n const { target } = event.currentTarget;\n return target && target !== \"_self\" || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter, prefetchEnabled) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === \"A\";\n if (isAnchorNodeName && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n // If the router is an NextRouter instance it will have `beforePopState`\n if (\"beforePopState\" in router) {\n router[replace ? \"replace\" : \"push\"](href, as, {\n shallow,\n locale,\n scroll\n });\n } else {\n // If `beforePopState` doesn't exist on the router it's the AppRouter.\n const method = replace ? \"replace\" : \"push\";\n router[method](href, {\n forceOptimisticNavigation: !prefetchEnabled\n });\n }\n };\n if (isAppRouter) {\n // @ts-expect-error startTransition exists.\n _react.default.startTransition(navigate);\n } else {\n navigate();\n }\n}\nconst Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(props, forwardedRef) {\n if (true) {\n function createPropError(args) {\n return new Error(`Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`<Link>\\`, but got \\`${args.actual}\\` instead.` + ( false ? 0 : \"\"));\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === \"href\") {\n if (props[key] == null || typeof props[key] !== \"string\" && typeof props[key] !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: props[key] === null ? \"null\" : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === \"as\") {\n if (props[key] && valType !== \"string\" && valType !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: valType\n });\n }\n } else if (key === \"locale\") {\n if (props[key] && valType !== \"string\") {\n throw createPropError({\n key,\n expected: \"`string`\",\n actual: valType\n });\n }\n } else if (key === \"onClick\" || key === \"onMouseEnter\" || key === \"onTouchStart\") {\n if (props[key] && valType !== \"function\") {\n throw createPropError({\n key,\n expected: \"`function`\",\n actual: valType\n });\n }\n } else if (key === \"replace\" || key === \"scroll\" || key === \"shallow\" || key === \"passHref\" || key === \"prefetch\" || key === \"legacyBehavior\") {\n if (props[key] != null && valType !== \"boolean\") {\n throw createPropError({\n key,\n expected: \"`boolean`\",\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\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 const hasWarned = _react.default.useRef(false);\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn(\"Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated\");\n }\n }\n let children;\n const { href: hrefProp , as: asProp , children: childrenProp , prefetch: prefetchProp , passHref , replace , shallow , scroll , locale , onClick , onMouseEnter , onTouchStart , legacyBehavior =Boolean(false) !== true } = props, restProps = _object_without_properties_loose(props, [\n \"href\",\n \"as\",\n \"children\",\n \"prefetch\",\n \"passHref\",\n \"replace\",\n \"shallow\",\n \"scroll\",\n \"locale\",\n \"onClick\",\n \"onMouseEnter\",\n \"onTouchStart\",\n \"legacyBehavior\"\n ]);\n children = childrenProp;\n if (legacyBehavior && (typeof children === \"string\" || typeof children === \"number\")) {\n children = /*#__PURE__*/ _react.default.createElement(\"a\", null, children);\n }\n const p = prefetchProp !== false;\n let router = _react.default.useContext(_routerContext.RouterContext);\n // TODO-APP: type error. Remove `as any`\n const appRouter = _react.default.useContext(_appRouterContext.AppRouterContext);\n if (appRouter) {\n router = appRouter;\n }\n const { href , as } = _react.default.useMemo(()=>{\n const [resolvedHref, resolvedAs] = (0, _router).resolveHref(router, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _router).resolveHref(router, asProp) : resolvedAs || resolvedHref\n };\n }, [\n router,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn(`\"onClick\" was passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`);\n }\n if (onMouseEnter) {\n console.warn(`\"onMouseEnter\" was passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`);\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw new Error(`No children were passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`);\n }\n throw new Error(`Multiple children were passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` + ( false ? 0 : \"\"));\n }\n } else {}\n }\n const childRef = legacyBehavior ? child && typeof child === \"object\" && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useIntersection).useIntersection({\n rootMargin: \"200px\"\n });\n const setRef = _react.default.useCallback((el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n if (childRef) {\n if (typeof childRef === \"function\") childRef(el);\n else if (typeof childRef === \"object\") {\n childRef.current = el;\n }\n }\n }, [\n as,\n childRef,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n _react.default.useEffect(()=>{\n const shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n const curLocale = typeof locale !== \"undefined\" ? locale : router && router.locale;\n const isPrefetched = prefetched[href + \"%\" + as + (curLocale ? \"%\" + curLocale : \"\")];\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [\n as,\n href,\n isVisible,\n locale,\n p,\n router\n ]);\n const childProps = {\n ref: setRef,\n onClick: (e)=>{\n if (true) {\n if (!e) {\n throw new Error(`Component rendered inside next/link has to pass click event to \"onClick\" prop.`);\n }\n }\n if (!legacyBehavior && typeof onClick === \"function\") {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === \"function\") {\n child.props.onClick(e);\n }\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, Boolean(appRouter), p);\n }\n },\n onMouseEnter: (e)=>{\n if (!legacyBehavior && typeof onMouseEnter === \"function\") {\n onMouseEnter(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === \"function\") {\n child.props.onMouseEnter(e);\n }\n // Check for not prefetch disabled in page using appRouter\n if (!(!p && appRouter)) {\n if ((0, _router).isLocalURL(href)) {\n prefetch(router, href, as, {\n priority: true\n });\n }\n }\n },\n onTouchStart: (e)=>{\n if (!legacyBehavior && typeof onTouchStart === \"function\") {\n onTouchStart(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === \"function\") {\n child.props.onTouchStart(e);\n }\n // Check for not prefetch disabled in page using appRouter\n if (!(!p && appRouter)) {\n if ((0, _router).isLocalURL(href)) {\n prefetch(router, href, as, {\n priority: true\n });\n }\n }\n }\n };\n // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user\n if (!legacyBehavior || passHref || child.type === \"a\" && !(\"href\" in child.props)) {\n const curLocale = typeof locale !== \"undefined\" ? locale : router && router.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = router && router.isLocaleDomain && (0, _getDomainLocale).getDomainLocale(as, curLocale, router.locales, router.domainLocales);\n childProps.href = localeDomain || (0, _addBasePath).addBasePath((0, _addLocale).addLocale(as, curLocale, router && router.defaultLocale));\n }\n return legacyBehavior ? /*#__PURE__*/ _react.default.cloneElement(child, childProps) : /*#__PURE__*/ _react.default.createElement(\"a\", Object.assign({}, restProps, childProps), children);\n});\nvar _default = Link;\nexports[\"default\"] = _default;\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=link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanMuanMiLCJtYXBwaW5ncyI6IkFBQ2E7QUFEYixRQUFRLENBQUM7QUFFVEEsOENBQTZDO0lBQ3pDRyxLQUFLLEVBQUUsSUFBSTtDQUNkLEVBQUMsQ0FBQztBQUNIRCxrQkFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLElBQUlHLHdCQUF3QixHQUFHQyw4TEFBK0Q7QUFDOUYsSUFBSUMsZ0NBQWdDLEdBQUdELDhNQUF1RTtBQUM5RyxJQUFJRSxNQUFNLEdBQUdILHdCQUF3QixDQUFDQyxtQkFBTyxDQUFDLG9CQUFPLENBQUMsQ0FBQztBQUN2RCxJQUFJRyxPQUFPLEdBQUdILG1CQUFPLENBQUMsdU1BQTZCLENBQUM7QUFDcEQsSUFBSUksVUFBVSxHQUFHSixtQkFBTyxDQUFDLGlMQUFjLENBQUM7QUFDeEMsSUFBSUssY0FBYyxHQUFHTCxtQkFBTyxDQUFDLGtFQUE4QixDQUFDO0FBQzVELElBQUlNLGlCQUFpQixHQUFHTixtQkFBTyxDQUFDLDBFQUFrQyxDQUFDO0FBQ25FLElBQUlPLGdCQUFnQixHQUFHUCxtQkFBTyxDQUFDLDZMQUFvQixDQUFDO0FBQ3BELElBQUlRLGdCQUFnQixHQUFHUixtQkFBTyxDQUFDLCtMQUFxQixDQUFDO0FBQ3JELElBQUlTLFlBQVksR0FBR1QsbUJBQU8sQ0FBQyx1TEFBaUIsQ0FBQztBQUM3QyxRQUFRLENBQUM7QUFDVCxNQUFNVSxVQUFVLEdBQUcsRUFBRTtBQUNyQixTQUFTQyxRQUFRLENBQUNDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxFQUFFLEVBQUVDLE9BQU8sRUFBRTtJQUN6QyxJQUFJLElBQXdDLEVBQUUsT0FBTztJQUNyRCxJQUFJLENBQUMsQ0FBQyxD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LENBQUMsQ0FBQztBQUMvTCxDQUFDLENBQUM7QUFDRixJQUFJbUQsUUFBUSxHQUFHaEYsSUFBSTtBQUNuQnJELGtCQUFlLEdBQUdxSSxRQUFRLENBQUM7QUFFM0IsSUFBSSxDQUFDLE9BQU9ySSxPQUFPLENBQUNFLE9BQU8sS0FBSyxVQUFVLElBQUssT0FBT0YsT0FBTyxDQUFDRSxPQUFPLEtBQUssUUFBUSxJQUFJRixPQUFPLENBQUNFLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSyxPQUFPRixPQUFPLENBQUNFLE9BQU8sQ0FBQ29JLFVBQVUsS0FBSyxXQUFXLEVBQUU7SUFDckt4SSxNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQUVELEtBQUssRUFBRSxJQUFJO0tBQUUsQ0FBQyxDQUFDO0lBQ3RFSCxNQUFNLENBQUNzSSxNQUFNLENBQUNwSSxPQUFPLENBQUNFLE9BQU8sRUFBRUYsT0FBTyxDQUFDLENBQUM7SUFDeEN1SSxNQUFNLENBQUN2SSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0UsT0FBTyxDQUFDO0FBQ25DLENBQUMsQ0FFRCxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZmVjb21tdW5pdHkvcmVhY3RwcmVzcy10ZW1wbGF0ZS1oZWxsby13b3JsZC8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vbmV4dEAxMi4zLjRfQGJhYmVsK2NvcmVANy4yNS4yX3JlYWN0LWRvbUAxNy4wLjJfcmVhY3RAMTcuMC4yX19yZWFjdEAxNy4wLjJfc2Fzc0AxLjc5LjMvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbGluay5qcz85OWZhIl0sInNvdXJjZXNDb250ZW50IjpbIlwiY2xpZW50XCI7XG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanNcIikuZGVmYXVsdDtcbnZhciBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZSA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlLmpzXCIpLmRlZmF1bHQ7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIik7XG52YXIgX2FkZExvY2FsZSA9IHJlcXVpcmUoXCIuL2FkZC1sb2NhbGVcIik7XG52YXIgX3JvdXRlckNvbnRleHQgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dFwiKTtcbnZhciBfYXBwUm91dGVyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dFwiKTtcbnZhciBfdXNlSW50ZXJzZWN0aW9uID0gcmVxdWlyZShcIi4vdXNlLWludGVyc2VjdGlvblwiKTtcbnZhciBfZ2V0RG9tYWluTG9jYWxlID0gcmVxdWlyZShcIi4vZ2V0LWRvbWFpbi1sb2NhbGVcIik7XG52YXIgX2FkZEJhc2VQYXRoID0gcmVxdWlyZShcIi4vYWRkLWJhc2UtcGF0aFwiKTtcbidjbGllbnQnO1xuY29uc3QgcHJlZmV0Y2hlZCA9IHt9O1xuZnVuY3Rpb24gcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywgb3B0aW9ucykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhcm91dGVyKSByZXR1cm47XG4gICAgaWYgKCEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkgcmV0dXJuO1xuICAgIC8vIFByZWZldGNoIHRoZSBKU09OIHBhZ2UgaWYgYXNrZWQgKG9ubHkgaW4gdGhlIGNsaWVudClcbiAgICAvLyBXZSBuZWVkIHRvIGhhbmRsZSBhIHByZWZldGNoIGVycm9yIGhlcmUgc2luY2Ugd2UgbWF5IGJlXG4gICAgLy8gbG9hZGluZyB3aXRoIHByaW9yaXR5IHdoaWNoIGNhbiByZWplY3QgYnV0IHdlIGRvbid0XG4gICAgLy8gd2FudCB0byBmb3JjZSBuYXZpZ2F0aW9uIHNpbmNlIHRoaXMgaXMgb25seSBhIHByZWZldGNoXG4gICAgUHJvbWlzZS5yZXNvbHZlKHJvdXRlci5wcmVmZXRjaChocmVmLCBhcywgb3B0aW9ucykpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlLCBpc0FwcFJvdXRlciwgcHJlZmV0Y2hFbmFibGVkKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICAvLyBhbmNob3JzIGluc2lkZSBhbiBzdmcgaGF2ZSBhIGxvd2VyY2FzZSBub2RlTmFtZVxuICAgIGNvbnN0IGlzQW5jaG9yTm9kZU5hbWUgPSBub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09PSAnQSc7XG4gICAgaWYgKGlzQW5jaG9yTm9kZU5hbWUgJiYgKGlzTW9kaWZpZWRFdmVudChlKSB8fCAhKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpKSB7XG4gICAgICAgIC8vIGlnbm9yZSBjbGljayBmb3IgYnJvd3NlcuKAmXMgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBuYXZpZ2F0ZSA9ICgpPT57XG4gICAgICAgIC8vIElmIHRoZSByb3V0ZXIgaXMgYW4gTmV4dFJvdXRlciBpbnN0YW5jZSBpdCB3aWxsIGhhdmUgYGJlZm9yZVBvcFN0YXRlYFxuICAgICAgICBpZiAoJ2JlZm9yZVBvcFN0YXRlJyBpbiByb3V0ZXIpIHtcbiAgICAgICAgICAgIHJvdXRlcltyZXBsYWNlID8gJ3JlcGxhY2UnIDogJ3B1c2gnXShocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIHNoYWxsb3csXG4gICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgIHNjcm9sbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJZiBgYmVmb3JlUG9wU3RhdGVgIGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHJvdXRlciBpdCdzIHRoZSBBcHBSb3V0ZXIuXG4gICAgICAgICAgICBjb25zdCBtZXRob2QgPSByZXBsYWNlID8gJ3JlcGxhY2UnIDogJ3B1c2gnO1xuICAgICAgICAgICAgcm91dGVyW21ldGhvZF0oaHJlZiwge1xuICAgICAgICAgICAgICAgIGZvcmNlT3B0aW1pc3RpY05hdmlnYXRpb246ICFwcmVmZXRjaEVuYWJsZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBpZiAoaXNBcHBSb3V0ZXIpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBzdGFydFRyYW5zaXRpb24gZXhpc3RzLlxuICAgICAgICBfcmVhY3QuZGVmYXVsdC5zdGFydFRyYW5zaXRpb24obmF2aWdhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG5hdmlnYXRlKCk7XG4gICAgfVxufVxuY29uc3QgTGluayA9IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuZm9yd2FyZFJlZihmdW5jdGlvbiBMaW5rQ29tcG9uZW50KHByb3BzLCBmb3J3YXJkZWRSZWYpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBmdW5jdGlvbiBjcmVhdGVQcm9wRXJyb3IoYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgRmFpbGVkIHByb3AgdHlwZTogVGhlIHByb3AgXFxgJHthcmdzLmtleX1cXGAgZXhwZWN0cyBhICR7YXJncy5leHBlY3RlZH0gaW4gXFxgPExpbms+XFxgLCBidXQgZ290IFxcYCR7YXJncy5hY3R1YWx9XFxgIGluc3RlYWQuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wc0d1YXJkID0ge1xuICAgICAgICAgICAgaHJlZjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXF1aXJlZFByb3BzID0gT2JqZWN0LmtleXMocmVxdWlyZWRQcm9wc0d1YXJkKTtcbiAgICAgICAgcmVxdWlyZWRQcm9wcy5mb3JFYWNoKChrZXkpPT57XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnaHJlZicpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSA9PSBudWxsIHx8IHR5cGVvZiBwcm9wc1trZXldICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiBwcm9wc1trZXldID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHByb3BzW2tleV1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICBjb25zdCBfID0ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wc0d1YXJkID0ge1xuICAgICAgICAgICAgYXM6IHRydWUsXG4gICAgICAgICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgICAgICAgc2Nyb2xsOiB0cnVlLFxuICAgICAgICAgICAgc2hhbGxvdzogdHJ1ZSxcbiAgICAgICAgICAgIHBhc3NIcmVmOiB0cnVlLFxuICAgICAgICAgICAgcHJlZmV0Y2g6IHRydWUsXG4gICAgICAgICAgICBsb2NhbGU6IHRydWUsXG4gICAgICAgICAgICBvbkNsaWNrOiB0cnVlLFxuICAgICAgICAgICAgb25Nb3VzZUVudGVyOiB0cnVlLFxuICAgICAgICAgICAgb25Ub3VjaFN0YXJ0OiB0cnVlLFxuICAgICAgICAgICAgbGVnYWN5QmVoYXZpb3I6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wcyA9IE9iamVjdC5rZXlzKG9wdGlvbmFsUHJvcHNHdWFyZCk7XG4gICAgICAgIG9wdGlvbmFsUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2FzJykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnICYmIHZhbFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2xvY2FsZScpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdvbkNsaWNrJyB8fCBrZXkgPT09ICdvbk1vdXNlRW50ZXInIHx8IGtleSA9PT0gJ29uVG91Y2hTdGFydCcpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BmdW5jdGlvbmAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnIHx8IGtleSA9PT0gJ2xlZ2FjeUJlaGF2aW9yJykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1trZXldICE9IG51bGwgJiYgdmFsVHlwZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2Bib29sZWFuYCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICBjb25zdCBfID0ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gVGhpcyBob29rIGlzIGluIGEgY29uZGl0aW9uYWwgYnV0IHRoYXQgaXMgb2sgYmVjYXVzZSBgcHJvY2Vzcy5lbnYuTk9ERV9FTlZgIG5ldmVyIGNoYW5nZXNcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgIGNvbnN0IGhhc1dhcm5lZCA9IF9yZWFjdC5kZWZhdWx0LnVzZVJlZihmYWxzZSk7XG4gICAgICAgIGlmIChwcm9wcy5wcmVmZXRjaCAmJiAhaGFzV2FybmVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignTmV4dC5qcyBhdXRvLXByZWZldGNoZXMgYXV0b21hdGljYWxseSBiYXNlZCBvbiB2aWV3cG9ydC4gVGhlIHByZWZldGNoIGF0dHJpYnV0ZSBpcyBubyBsb25nZXIgbmVlZGVkLiBNb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcmVmZXRjaC10cnVlLWRlcHJlY2F0ZWQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgY2hpbGRyZW47XG4gICAgY29uc3QgeyBocmVmOiBocmVmUHJvcCAsIGFzOiBhc1Byb3AgLCBjaGlsZHJlbjogY2hpbGRyZW5Qcm9wICwgcHJlZmV0Y2g6IHByZWZldGNoUHJvcCAsIHBhc3NIcmVmICwgcmVwbGFjZSAsIHNoYWxsb3cgLCBzY3JvbGwgLCBsb2NhbGUgLCBvbkNsaWNrICwgb25Nb3VzZUVudGVyICwgb25Ub3VjaFN0YXJ0ICwgbGVnYWN5QmVoYXZpb3IgPUJvb2xlYW4ocHJvY2Vzcy5lbnYuX19ORVhUX05FV19MSU5LX0JFSEFWSU9SKSAhPT0gdHJ1ZSAgfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZShwcm9wcywgW1xuICAgICAgICBcImhyZWZcIixcbiAgICAgICAgXCJhc1wiLFxuICAgICAgICBcImNoaWxkcmVuXCIsXG4gICAgICAgIFwicHJlZmV0Y2hcIixcbiAgICAgICAgXCJwYXNzSHJlZlwiLFxuICAgICAgICBcInJlcGxhY2VcIixcbiAgICAgICAgXCJzaGFsbG93XCIsXG4gICAgICAgIFwic2Nyb2xsXCIsXG4gICAgICAgIFwibG9jYWxlXCIsXG4gICAgICAgIFwib25DbGlja1wiLFxuICAgICAgICBcIm9uTW91c2VFbnRlclwiLFxuICAgICAgICBcIm9uVG91Y2hTdGFydFwiLFxuICAgICAgICBcImxlZ2FjeUJlaGF2aW9yXCJcbiAgICBdKTtcbiAgICBjaGlsZHJlbiA9IGNoaWxkcmVuUHJvcDtcbiAgICBpZiAobGVnYWN5QmVoYXZpb3IgJiYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGNoaWxkcmVuID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgY2hpbGRyZW4gPSAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIG51bGwsIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgcCA9IHByZWZldGNoUHJvcCAhPT0gZmFsc2U7XG4gICAgbGV0IHJvdXRlciA9IF9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX3JvdXRlckNvbnRleHQuUm91dGVyQ29udGV4dCk7XG4gICAgLy8gVE9ETy1BUFA6IHR5cGUgZXJyb3IuIFJlbW92ZSBgYXMgYW55YFxuICAgIGNvbnN0IGFwcFJvdXRlciA9IF9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX2FwcFJvdXRlckNvbnRleHQuQXBwUm91dGVyQ29udGV4dCk7XG4gICAgaWYgKGFwcFJvdXRlcikge1xuICAgICAgICByb3V0ZXIgPSBhcHBSb3V0ZXI7XG4gICAgfVxuICAgIGNvbnN0IHsgaHJlZiAsIGFzICB9ID0gX3JlYWN0LmRlZmF1bHQudXNlTWVtbygoKT0+e1xuICAgICAgICBjb25zdCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIGhyZWZQcm9wLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBhc1Byb3AgPyAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBhc1Byb3ApIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWZcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHJvdXRlcixcbiAgICAgICAgaHJlZlByb3AsXG4gICAgICAgIGFzUHJvcFxuICAgIF0pO1xuICAgIGNvbnN0IHByZXZpb3VzSHJlZiA9IF9yZWFjdC5kZWZhdWx0LnVzZVJlZihocmVmKTtcbiAgICBjb25zdCBwcmV2aW91c0FzID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGFzKTtcbiAgICAvLyBUaGlzIHdpbGwgcmV0dXJuIHRoZSBmaXJzdCBjaGlsZCwgaWYgbXVsdGlwbGUgYXJlIHByb3ZpZGVkIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAgICBsZXQgY2hpbGQ7XG4gICAgaWYgKGxlZ2FjeUJlaGF2aW9yKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFwib25DbGlja1wiIHdhcyBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgXCJsZWdhY3lCZWhhdmlvclwiIHdhcyBzZXQuIFRoZSBsZWdhY3kgYmVoYXZpb3IgcmVxdWlyZXMgb25DbGljayBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9uTW91c2VFbnRlcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgXCJvbk1vdXNlRW50ZXJcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uTW91c2VFbnRlciBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjaGlsZCA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IG9uZSBjaGlsZCBpcyByZXF1aXJlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW5vLWNoaWxkcmVuYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTXVsdGlwbGUgY2hpbGRyZW4gd2VyZSBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgb25seSBvbmUgY2hpbGQgaXMgc3VwcG9ydGVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbXVsdGlwbGUtY2hpbGRyZW5gICsgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gXCIgXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaGlsZCA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNoaWxkUmVmID0gbGVnYWN5QmVoYXZpb3IgPyBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZiA6IGZvcndhcmRlZFJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGUsIHJlc2V0VmlzaWJsZV0gPSAoMCwgX3VzZUludGVyc2VjdGlvbikudXNlSW50ZXJzZWN0aW9uKHtcbiAgICAgICAgcm9vdE1hcmdpbjogJzIwMHB4J1xuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZiA9IF9yZWFjdC5kZWZhdWx0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgLy8gQmVmb3JlIHRoZSBsaW5rIGdldHRpbmcgb2JzZXJ2ZWQsIGNoZWNrIGlmIHZpc2libGUgc3RhdGUgbmVlZCB0byBiZSByZXNldFxuICAgICAgICBpZiAocHJldmlvdXNBcy5jdXJyZW50ICE9PSBhcyB8fCBwcmV2aW91c0hyZWYuY3VycmVudCAhPT0gaHJlZikge1xuICAgICAgICAgICAgcmVzZXRWaXNpYmxlKCk7XG4gICAgICAgICAgICBwcmV2aW91c0FzLmN1cnJlbnQgPSBhcztcbiAgICAgICAgICAgIHByZXZpb3VzSHJlZi5jdXJyZW50ID0gaHJlZjtcbiAgICAgICAgfVxuICAgICAgICBzZXRJbnRlcnNlY3Rpb25SZWYoZWwpO1xuICAgICAgICBpZiAoY2hpbGRSZWYpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRSZWYgPT09ICdmdW5jdGlvbicpIGNoaWxkUmVmKGVsKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBjaGlsZFJlZi5jdXJyZW50ID0gZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGFzLFxuICAgICAgICBjaGlsZFJlZixcbiAgICAgICAgaHJlZixcbiAgICAgICAgcmVzZXRWaXNpYmxlLFxuICAgICAgICBzZXRJbnRlcnNlY3Rpb25SZWZcbiAgICBdKTtcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgY29uc3Qgc2hvdWxkUHJlZmV0Y2ggPSBpc1Zpc2libGUgJiYgcCAmJiAoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKTtcbiAgICAgICAgY29uc3QgY3VyTG9jYWxlID0gdHlwZW9mIGxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBsb2NhbGUgOiByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZTtcbiAgICAgICAgY29uc3QgaXNQcmVmZXRjaGVkID0gcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXTtcbiAgICAgICAgaWYgKHNob3VsZFByZWZldGNoICYmICFpc1ByZWZldGNoZWQpIHtcbiAgICAgICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHtcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGN1ckxvY2FsZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGFzLFxuICAgICAgICBocmVmLFxuICAgICAgICBpc1Zpc2libGUsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcCxcbiAgICAgICAgcm91dGVyXG4gICAgXSk7XG4gICAgY29uc3QgY2hpbGRQcm9wcyA9IHtcbiAgICAgICAgcmVmOiBzZXRSZWYsXG4gICAgICAgIG9uQ2xpY2s6IChlKT0+e1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgcmVuZGVyZWQgaW5zaWRlIG5leHQvbGluayBoYXMgdG8gcGFzcyBjbGljayBldmVudCB0byBcIm9uQ2xpY2tcIiBwcm9wLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbGVnYWN5QmVoYXZpb3IgJiYgdHlwZW9mIG9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBvbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlZ2FjeUJlaGF2aW9yICYmIGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQucHJvcHMub25DbGljayhlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgbGlua0NsaWNrZWQoZSwgcm91dGVyLCBocmVmLCBhcywgcmVwbGFjZSwgc2hhbGxvdywgc2Nyb2xsLCBsb2NhbGUsIEJvb2xlYW4oYXBwUm91dGVyKSwgcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9uTW91c2VFbnRlcjogKGUpPT57XG4gICAgICAgICAgICBpZiAoIWxlZ2FjeUJlaGF2aW9yICYmIHR5cGVvZiBvbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXIoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVnYWN5QmVoYXZpb3IgJiYgY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENoZWNrIGZvciBub3QgcHJlZmV0Y2ggZGlzYWJsZWQgaW4gcGFnZSB1c2luZyBhcHBSb3V0ZXJcbiAgICAgICAgICAgIGlmICghKCFwICYmIGFwcFJvdXRlcikpIHtcbiAgICAgICAgICAgICAgICBpZiAoKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvblRvdWNoU3RhcnQ6IChlKT0+e1xuICAgICAgICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Ub3VjaFN0YXJ0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgb25Ub3VjaFN0YXJ0KGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlZ2FjeUJlaGF2aW9yICYmIGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vblRvdWNoU3RhcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vblRvdWNoU3RhcnQoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDaGVjayBmb3Igbm90IHByZWZldGNoIGRpc2FibGVkIGluIHBhZ2UgdXNpbmcgYXBwUm91dGVyXG4gICAgICAgICAgICBpZiAoISghcCAmJiBhcHBSb3V0ZXIpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gICAgLy8gZGVmaW5lZCwgd2Ugc3BlY2lmeSB0aGUgY3VycmVudCAnaHJlZicsIHNvIHRoYXQgcmVwZXRpdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSB1c2VyXG4gICAgaWYgKCFsZWdhY3lCZWhhdmlvciB8fCBwYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9nZXREb21haW5Mb2NhbGUpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIubG9jYWxlcywgcm91dGVyLmRvbWFpbkxvY2FsZXMpO1xuICAgICAgICBjaGlsZFByb3BzLmhyZWYgPSBsb2NhbGVEb21haW4gfHwgKDAsIF9hZGRCYXNlUGF0aCkuYWRkQmFzZVBhdGgoKDAsIF9hZGRMb2NhbGUpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIGxlZ2FjeUJlaGF2aW9yID8gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpIDogLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0UHJvcHMsIGNoaWxkUHJvcHMpLCBjaGlsZHJlbik7XG59KTtcbnZhciBfZGVmYXVsdCA9IExpbms7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGluay5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlIiwiX3JlYWN0IiwiX3JvdXRlciIsIl9hZGRMb2NhbGUiLCJfcm91dGVyQ29udGV4dCIsIl9hcHBSb3V0ZXJDb250ZXh0IiwiX3VzZUludGVyc2VjdGlvbiIsIl9nZXREb21haW5Mb2NhbGUiLCJfYWRkQmFzZVBhdGgiLCJwcmVmZXRjaGVkIiwicHJlZmV0Y2giLCJyb3V0ZXIiLCJocmVmIiwiYXMiLCJvcHRpb25zIiwiaXNMb2NhbFVSTCIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2F0Y2giLCJlcnIiLCJwcm9jZXNzIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsImlzQXBwUm91dGVyIiwicHJlZmV0Y2hFbmFibGVkIiwibm9kZU5hbWUiLCJpc0FuY2hvck5vZGVOYW1lIiwidG9VcHBlckNhc2UiLCJwcmV2ZW50RGVmYXVsdCIsIm5hdmlnYXRlIiwibWV0aG9kIiwiZm9yY2VPcHRpbWlzdGljTmF2aWdhdGlvbiIsInN0YXJ0VHJhbnNpdGlvbiIsIkxpbmsiLCJmb3J3YXJkUmVmIiwiTGlua0NvbXBvbmVudCIsInByb3BzIiwiZm9yd2FyZGVkUmVmIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwib25Ub3VjaFN0YXJ0IiwibGVnYWN5QmVoYXZpb3IiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsImNoaWxkcmVuIiwiaHJlZlByb3AiLCJhc1Byb3AiLCJjaGlsZHJlblByb3AiLCJwcmVmZXRjaFByb3AiLCJCb29sZWFuIiwiZW52IiwiX19ORVhUX05FV19MSU5LX0JFSEFWSU9SIiwicmVzdFByb3BzIiwiY3JlYXRlRWxlbWVudCIsInAiLCJ1c2VDb250ZXh0IiwiUm91dGVyQ29udGV4dCIsImFwcFJvdXRlciIsIkFwcFJvdXRlckNvbnRleHQiLCJ1c2VNZW1vIiwicmVzb2x2ZWRIcmVmIiwicmVzb2x2ZWRBcyIsInJlc29sdmVIcmVmIiwicHJldmlvdXNIcmVmIiwicHJldmlvdXNBcyIsImNoaWxkIiwiQ2hpbGRyZW4iLCJvbmx5IiwiY2hpbGRSZWYiLCJyZWYiLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJyZXNldFZpc2libGUiLCJ1c2VJbnRlcnNlY3Rpb24iLCJyb290TWFyZ2luIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsInVzZUVmZmVjdCIsInNob3VsZFByZWZldGNoIiwiaXNQcmVmZXRjaGVkIiwiY2hpbGRQcm9wcyIsImRlZmF1bHRQcmV2ZW50ZWQiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiYXNzaWduIiwiX2RlZmF1bHQiLCJfX2VzTW9kdWxlIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/link.js\n");
|
|
144
|
+
|
|
145
|
+
/***/ }),
|
|
146
|
+
|
|
147
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/normalize-trailing-slash.js":
|
|
148
|
+
/*!*********************************************************************************************************************************************************************************!*\
|
|
149
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/normalize-trailing-slash.js ***!
|
|
150
|
+
\*********************************************************************************************************************************************************************************/
|
|
151
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
152
|
+
|
|
153
|
+
"use strict";
|
|
154
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizePathTrailingSlash = void 0;\nvar _removeTrailingSlash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"../shared/lib/router/utils/remove-trailing-slash\");\nvar _parsePath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"../shared/lib/router/utils/parse-path\");\nconst normalizePathTrailingSlash = (path)=>{\n if (!path.startsWith(\"/\") || undefined) {\n return path;\n }\n const { pathname , query , hash } = (0, _parsePath).parsePath(path);\n if (false) {}\n return `${(0, _removeTrailingSlash).removeTrailingSlash(pathname)}${query}${hash}`;\n};\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=normalize-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLEtBQUssRUFBRSxJQUFJO0NBQ2QsRUFBQyxDQUFDO0FBQ0hELGtDQUFrQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQzVDLElBQUlHLG9CQUFvQixHQUFHQyxtQkFBTyxDQUFDLDBHQUFrRCxDQUFDO0FBQ3RGLElBQUlDLFVBQVUsR0FBR0QsbUJBQU8sQ0FBQyxvRkFBdUMsQ0FBQztBQUNqRSxNQUFNRiwwQkFBMEIsR0FBRyxDQUFDSSxJQUFJLEdBQUc7SUFDdkMsSUFBSSxDQUFDQSxJQUFJLENBQUNDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSUMsU0FBd0MsRUFBRTtRQUNuRSxPQUFPRixJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sRUFBRUssUUFBUSxHQUFHQyxLQUFLLEdBQUdDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFUixVQUFVLEVBQUVTLFNBQVMsQ0FBQ1IsSUFBSSxDQUFDO0lBQ3BFLElBQUlFLEtBQWlDLEVBQUUsRUFRdEM7SUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRUwsb0JBQW9CLEVBQUVjLG1CQUFtQixDQUFDTixRQUFRLENBQUMsQ0FBQyxFQUFFQyxLQUFLLENBQUMsRUFBRUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN2RixDQUFDO0FBQ0RiLGtDQUFrQyxHQUFHRSwwQkFBMEIsQ0FBQztBQUVoRSxJQUFJLENBQUMsT0FBT0YsT0FBTyxDQUFDbUIsT0FBTyxLQUFLLFVBQVUsSUFBSyxPQUFPbkIsT0FBTyxDQUFDbUIsT0FBTyxLQUFLLFFBQVEsSUFBSW5CLE9BQU8sQ0FBQ21CLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSyxPQUFPbkIsT0FBTyxDQUFDbUIsT0FBTyxDQUFDQyxVQUFVLEtBQUssV0FBVyxFQUFFO0lBQ3JLdEIsTUFBTSxDQUFDQyxjQUFjLENBQUNDLE9BQU8sQ0FBQ21CLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFBRWxCLEtBQUssRUFBRSxJQUFJO0tBQUUsQ0FBQyxDQUFDO0lBQ3RFSCxNQUFNLENBQUN1QixNQUFNLENBQUNyQixPQUFPLENBQUNtQixPQUFPLEVBQUVuQixPQUFPLENBQUMsQ0FBQztJQUN4Q3NCLE1BQU0sQ0FBQ3RCLE9BQU8sR0FBR0EsT0FBTyxDQUFDbUIsT0FBTyxDQUFDO0FBQ25DLENBQUMsQ0FFRCxvREFBb0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZmVjb21tdW5pdHkvcmVhY3RwcmVzcy10ZW1wbGF0ZS1oZWxsby13b3JsZC8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vbmV4dEAxMi4zLjRfQGJhYmVsK2NvcmVANy4yNS4yX3JlYWN0LWRvbUAxNy4wLjJfcmVhY3RAMTcuMC4yX19yZWFjdEAxNy4wLjJfc2Fzc0AxLjc5LjMvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzP2YyYjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoID0gdm9pZCAwO1xudmFyIF9yZW1vdmVUcmFpbGluZ1NsYXNoID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaFwiKTtcbnZhciBfcGFyc2VQYXRoID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGhcIik7XG5jb25zdCBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IChwYXRoKT0+e1xuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgcHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9UUkFJTElOR19TTEFTSCkge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgY29uc3QgeyBwYXRobmFtZSAsIHF1ZXJ5ICwgaGFzaCAgfSA9ICgwLCBfcGFyc2VQYXRoKS5wYXJzZVBhdGgocGF0aCk7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCkge1xuICAgICAgICBpZiAoL1xcLlteL10rXFwvPyQvLnRlc3QocGF0aG5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7KDAsIF9yZW1vdmVUcmFpbGluZ1NsYXNoKS5yZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKX0ke3F1ZXJ5fSR7aGFzaH1gO1xuICAgICAgICB9IGVsc2UgaWYgKHBhdGhuYW1lLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtwYXRobmFtZX0ke3F1ZXJ5fSR7aGFzaH1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3F1ZXJ5fSR7aGFzaH1gO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHsoMCwgX3JlbW92ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpfSR7cXVlcnl9JHtoYXNofWA7XG59O1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJfcmVtb3ZlVHJhaWxpbmdTbGFzaCIsInJlcXVpcmUiLCJfcGFyc2VQYXRoIiwicGF0aCIsInN0YXJ0c1dpdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX01BTlVBTF9UUkFJTElOR19TTEFTSCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIiwiX19ORVhUX1RSQUlMSU5HX1NMQVNIIiwidGVzdCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJlbmRzV2l0aCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/normalize-trailing-slash.js\n");
|
|
155
|
+
|
|
156
|
+
/***/ }),
|
|
157
|
+
|
|
158
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/remove-base-path.js":
|
|
159
|
+
/*!*************************************************************************************************************************************************************************!*\
|
|
160
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/remove-base-path.js ***!
|
|
161
|
+
\*************************************************************************************************************************************************************************/
|
|
162
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
163
|
+
|
|
164
|
+
"use strict";
|
|
165
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removeBasePath = removeBasePath;\nvar _hasBasePath = __webpack_require__(/*! ./has-base-path */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/has-base-path.js\");\nconst basePath = false || \"\";\nfunction removeBasePath(path) {\n if (false) {}\n path = path.slice(basePath.length);\n if (!path.startsWith(\"/\")) path = `/${path}`;\n return path;\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlbW92ZS1iYXNlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxLQUFLLEVBQUUsSUFBSTtDQUNkLEVBQUMsQ0FBQztBQUNIRCxzQkFBc0IsR0FBR0UsY0FBYyxDQUFDO0FBQ3hDLElBQUlDLFlBQVksR0FBR0MsbUJBQU8sQ0FBQyx1TEFBaUIsQ0FBQztBQUM3QyxNQUFNQyxRQUFRLEdBQUdDLE1BQWtDLElBQUksRUFBRTtBQUN6RCxTQUFTSixjQUFjLENBQUNPLElBQUksRUFBRTtJQUMxQixJQUFJSCxLQUEwQyxFQUFFLEVBSS9DO0lBQ0RHLElBQUksR0FBR0EsSUFBSSxDQUFDRyxLQUFLLENBQUNQLFFBQVEsQ0FBQ1EsTUFBTSxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDSixJQUFJLENBQUNLLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRUwsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFQSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdDLE9BQU9BLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsSUFBSSxDQUFDLE9BQU9ULE9BQU8sQ0FBQ2UsT0FBTyxLQUFLLFVBQVUsSUFBSyxPQUFPZixPQUFPLENBQUNlLE9BQU8sS0FBSyxRQUFRLElBQUlmLE9BQU8sQ0FBQ2UsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFLLE9BQU9mLE9BQU8sQ0FBQ2UsT0FBTyxDQUFDQyxVQUFVLEtBQUssV0FBVyxFQUFFO0lBQ3JLbEIsTUFBTSxDQUFDQyxjQUFjLENBQUNDLE9BQU8sQ0FBQ2UsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUFFZCxLQUFLLEVBQUUsSUFBSTtLQUFFLENBQUMsQ0FBQztJQUN0RUgsTUFBTSxDQUFDbUIsTUFBTSxDQUFDakIsT0FBTyxDQUFDZSxPQUFPLEVBQUVmLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDa0IsTUFBTSxDQUFDbEIsT0FBTyxHQUFHQSxPQUFPLENBQUNlLE9BQU8sQ0FBQztBQUNuQyxDQUFDLENBRUQsNENBQTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGZlY29tbXVuaXR5L3JlYWN0cHJlc3MtdGVtcGxhdGUtaGVsbG8td29ybGQvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlbW92ZS1iYXNlLXBhdGguanM/NWNjMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucmVtb3ZlQmFzZVBhdGggPSByZW1vdmVCYXNlUGF0aDtcbnZhciBfaGFzQmFzZVBhdGggPSByZXF1aXJlKFwiLi9oYXMtYmFzZS1wYXRoXCIpO1xuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gcmVtb3ZlQmFzZVBhdGgocGF0aCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX0NMSUVOVF9CQVNFX1BBVEgpIHtcbiAgICAgICAgaWYgKCEoMCwgX2hhc0Jhc2VQYXRoKS5oYXNCYXNlUGF0aChwYXRoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGF0aCA9IHBhdGguc2xpY2UoYmFzZVBhdGgubGVuZ3RoKTtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpKSBwYXRoID0gYC8ke3BhdGh9YDtcbiAgICByZXR1cm4gcGF0aDtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVtb3ZlLWJhc2UtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJyZW1vdmVCYXNlUGF0aCIsIl9oYXNCYXNlUGF0aCIsInJlcXVpcmUiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImhhc0Jhc2VQYXRoIiwic2xpY2UiLCJsZW5ndGgiLCJzdGFydHNXaXRoIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/remove-base-path.js\n");
|
|
166
|
+
|
|
167
|
+
/***/ }),
|
|
168
|
+
|
|
169
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/remove-locale.js":
|
|
170
|
+
/*!**********************************************************************************************************************************************************************!*\
|
|
171
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/remove-locale.js ***!
|
|
172
|
+
\**********************************************************************************************************************************************************************/
|
|
173
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
174
|
+
|
|
175
|
+
"use strict";
|
|
176
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removeLocale = removeLocale;\nvar _parsePath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"../shared/lib/router/utils/parse-path\");\nfunction removeLocale(path, locale) {\n if (false) {}\n return path;\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlbW92ZS1sb2NhbGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxLQUFLLEVBQUUsSUFBSTtDQUNkLEVBQUMsQ0FBQztBQUNIRCxvQkFBb0IsR0FBR0UsWUFBWSxDQUFDO0FBQ3BDLElBQUlDLFVBQVUsR0FBR0MsbUJBQU8sQ0FBQyxvRkFBdUMsQ0FBQztBQUNqRSxTQUFTRixZQUFZLENBQUNHLElBQUksRUFBRUMsTUFBTSxFQUFFO0lBQ2hDLElBQUlDLEtBQStCLEVBQUUsRUFLcEM7SUFDRCxPQUFPRixJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVELElBQUksQ0FBQyxPQUFPTCxPQUFPLENBQUNrQixPQUFPLEtBQUssVUFBVSxJQUFLLE9BQU9sQixPQUFPLENBQUNrQixPQUFPLEtBQUssUUFBUSxJQUFJbEIsT0FBTyxDQUFDa0IsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFLLE9BQU9sQixPQUFPLENBQUNrQixPQUFPLENBQUNDLFVBQVUsS0FBSyxXQUFXLEVBQUU7SUFDcktyQixNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDa0IsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUFFakIsS0FBSyxFQUFFLElBQUk7S0FBRSxDQUFDLENBQUM7SUFDdEVILE1BQU0sQ0FBQ3NCLE1BQU0sQ0FBQ3BCLE9BQU8sQ0FBQ2tCLE9BQU8sRUFBRWxCLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDcUIsTUFBTSxDQUFDckIsT0FBTyxHQUFHQSxPQUFPLENBQUNrQixPQUFPLENBQUM7QUFDbkMsQ0FBQyxDQUVELHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9uZXh0QDEyLjMuNF9AYmFiZWwrY29yZUA3LjI1LjJfcmVhY3QtZG9tQDE3LjAuMl9yZWFjdEAxNy4wLjJfX3JlYWN0QDE3LjAuMl9zYXNzQDEuNzkuMy9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZW1vdmUtbG9jYWxlLmpzPzY5MjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnJlbW92ZUxvY2FsZSA9IHJlbW92ZUxvY2FsZTtcbnZhciBfcGFyc2VQYXRoID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGhcIik7XG5mdW5jdGlvbiByZW1vdmVMb2NhbGUocGF0aCwgbG9jYWxlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgY29uc3QgeyBwYXRobmFtZSAgfSA9ICgwLCBfcGFyc2VQYXRoKS5wYXJzZVBhdGgocGF0aCk7XG4gICAgICAgIGNvbnN0IHBhdGhMb3dlciA9IHBhdGhuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGxvY2FsZUxvd2VyID0gbG9jYWxlID09IG51bGwgPyB2b2lkIDAgOiBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSAmJiAocGF0aExvd2VyLnN0YXJ0c1dpdGgoYC8ke2xvY2FsZUxvd2VyfS9gKSB8fCBwYXRoTG93ZXIgPT09IGAvJHtsb2NhbGVMb3dlcn1gKSA/IGAke3BhdGhuYW1lLmxlbmd0aCA9PT0gbG9jYWxlLmxlbmd0aCArIDEgPyBgL2AgOiBgYH0ke3BhdGguc2xpY2UobG9jYWxlLmxlbmd0aCArIDEpfWAgOiBwYXRoO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVtb3ZlLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJyZW1vdmVMb2NhbGUiLCJfcGFyc2VQYXRoIiwicmVxdWlyZSIsInBhdGgiLCJsb2NhbGUiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsInBhdGhuYW1lIiwicGFyc2VQYXRoIiwicGF0aExvd2VyIiwidG9Mb3dlckNhc2UiLCJsb2NhbGVMb3dlciIsInN0YXJ0c1dpdGgiLCJsZW5ndGgiLCJzbGljZSIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/remove-locale.js\n");
|
|
177
|
+
|
|
178
|
+
/***/ }),
|
|
179
|
+
|
|
180
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/request-idle-callback.js":
|
|
181
|
+
/*!******************************************************************************************************************************************************************************!*\
|
|
182
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/request-idle-callback.js ***!
|
|
183
|
+
\******************************************************************************************************************************************************************************/
|
|
184
|
+
/***/ ((module, exports) => {
|
|
185
|
+
|
|
186
|
+
"use strict";
|
|
187
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\nconst requestIdleCallback = typeof self !== \"undefined\" && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nexports.requestIdleCallback = requestIdleCallback;\nconst cancelIdleCallback = typeof self !== \"undefined\" && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nexports.cancelIdleCallback = cancelIdleCallback;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=request-idle-callback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLEtBQUssRUFBRSxJQUFJO0NBQ2QsRUFBQyxDQUFDO0FBQ0hELDBCQUEwQixHQUFHQSwyQkFBMkIsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNsRSxNQUFNRyxtQkFBbUIsR0FBRyxPQUFPQyxJQUFJLEtBQUssV0FBVyxJQUFJQSxJQUFJLENBQUNELG1CQUFtQixJQUFJQyxJQUFJLENBQUNELG1CQUFtQixDQUFDRSxJQUFJLENBQUNDLE1BQU0sQ0FBQyxJQUFJLFNBQVNDLEVBQUUsRUFBRTtJQUN6SSxJQUFJQyxLQUFLLEdBQUdDLElBQUksQ0FBQ0MsR0FBRyxFQUFFO0lBQ3RCLE9BQU9DLFVBQVUsQ0FBQyxXQUFXO1FBQ3pCSixFQUFFLENBQUM7WUFDQ0ssVUFBVSxFQUFFLEtBQUs7WUFDakJDLGFBQWEsRUFBRSxXQUFXO2dCQUN0QixPQUFPQyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJTixDQUFBQSxJQUFJLENBQUNDLEdBQUcsRUFBRSxHQUFHRixLQUFLLEVBQUUsQ0FBQztZQUNsRCxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1YsQ0FBQztBQUNEUiwyQkFBMkIsR0FBR0csbUJBQW1CLENBQUM7QUFDbEQsTUFBTUQsa0JBQWtCLEdBQUcsT0FBT0UsSUFBSSxLQUFLLFdBQVcsSUFBSUEsSUFBSSxDQUFDRixrQkFBa0IsSUFBSUUsSUFBSSxDQUFDRixrQkFBa0IsQ0FBQ0csSUFBSSxDQUFDQyxNQUFNLENBQUMsSUFBSSxTQUFTVSxFQUFFLEVBQUU7SUFDdEksT0FBT0MsWUFBWSxDQUFDRCxFQUFFLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBQ0RoQiwwQkFBMEIsR0FBR0Usa0JBQWtCLENBQUM7QUFFaEQsSUFBSSxDQUFDLE9BQU9GLE9BQU8sQ0FBQ2tCLE9BQU8sS0FBSyxVQUFVLElBQUssT0FBT2xCLE9BQU8sQ0FBQ2tCLE9BQU8sS0FBSyxRQUFRLElBQUlsQixPQUFPLENBQUNrQixPQUFPLEtBQUssSUFBSSxDQUFDLElBQUssT0FBT2xCLE9BQU8sQ0FBQ2tCLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLFdBQVcsRUFBRTtJQUNyS3JCLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDQyxPQUFPLENBQUNrQixPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQUVqQixLQUFLLEVBQUUsSUFBSTtLQUFFLENBQUMsQ0FBQztJQUN0RUgsTUFBTSxDQUFDc0IsTUFBTSxDQUFDcEIsT0FBTyxDQUFDa0IsT0FBTyxFQUFFbEIsT0FBTyxDQUFDLENBQUM7SUFDeENxQixNQUFNLENBQUNyQixPQUFPLEdBQUdBLE9BQU8sQ0FBQ2tCLE9BQU8sQ0FBQztBQUNuQyxDQUFDLENBRUQsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGZlY29tbXVuaXR5L3JlYWN0cHJlc3MtdGVtcGxhdGUtaGVsbG8td29ybGQvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcz8xNTI4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5jYW5jZWxJZGxlQ2FsbGJhY2sgPSBleHBvcnRzLnJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB2b2lkIDA7XG5jb25zdCByZXF1ZXN0SWRsZUNhbGxiYWNrID0gdHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjayAmJiBzZWxmLnJlcXVlc3RJZGxlQ2FsbGJhY2suYmluZCh3aW5kb3cpIHx8IGZ1bmN0aW9uKGNiKSB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgY2Ioe1xuICAgICAgICAgICAgZGlkVGltZW91dDogZmFsc2UsXG4gICAgICAgICAgICB0aW1lUmVtYWluaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgNTAgLSAoRGF0ZS5ub3coKSAtIHN0YXJ0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIDEpO1xufTtcbmV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVlc3RJZGxlQ2FsbGJhY2s7XG5jb25zdCBjYW5jZWxJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2sgJiYgc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2suYmluZCh3aW5kb3cpIHx8IGZ1bmN0aW9uKGlkKSB7XG4gICAgcmV0dXJuIGNsZWFyVGltZW91dChpZCk7XG59O1xuZXhwb3J0cy5jYW5jZWxJZGxlQ2FsbGJhY2sgPSBjYW5jZWxJZGxlQ2FsbGJhY2s7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtaWRsZS1jYWxsYmFjay5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwic2VsZiIsImJpbmQiLCJ3aW5kb3ciLCJjYiIsInN0YXJ0IiwiRGF0ZSIsIm5vdyIsInNldFRpbWVvdXQiLCJkaWRUaW1lb3V0IiwidGltZVJlbWFpbmluZyIsIk1hdGgiLCJtYXgiLCJpZCIsImNsZWFyVGltZW91dCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/request-idle-callback.js\n");
|
|
188
|
+
|
|
189
|
+
/***/ }),
|
|
190
|
+
|
|
191
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/route-loader.js":
|
|
192
|
+
/*!*********************************************************************************************************************************************************************!*\
|
|
193
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/route-loader.js ***!
|
|
194
|
+
\*********************************************************************************************************************************************************************/
|
|
195
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
196
|
+
|
|
197
|
+
"use strict";
|
|
198
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.createRouteLoader = createRouteLoader;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _getAssetPathFromRoute = _interop_require_default(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"../shared/lib/router/utils/get-asset-path-from-route\"));\nvar _trustedTypes = __webpack_require__(/*! ./trusted-types */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/trusted-types.js\");\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/request-idle-callback.js\");\n// 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\nconst MS_MAX_IDLE_DELAY = 3800;\nfunction withFuture(key, map, generator) {\n let entry = map.get(key);\n if (entry) {\n if (\"future\" in entry) {\n return entry.future;\n }\n return Promise.resolve(entry);\n }\n let resolver;\n const prom = new Promise((resolve)=>{\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then((value)=>(resolver(value), value)).catch((err)=>{\n map.delete(key);\n throw err;\n }) : prom;\n}\nfunction hasPrefetch(link) {\n try {\n link = document.createElement(\"link\");\n return(// with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports(\"prefetch\"));\n } catch (e) {\n return false;\n }\n}\nconst canPrefetch = hasPrefetch();\nfunction prefetchViaDom(href, as, link) {\n return new Promise((res, rej)=>{\n const selector = `\n link[rel=\"prefetch\"][href^=\"${href}\"],\n link[rel=\"preload\"][href^=\"${href}\"],\n script[src^=\"${href}\"]`;\n if (document.querySelector(selector)) {\n return res();\n }\n link = document.createElement(\"link\");\n // The order of property assignment here is intentional:\n if (as) link.as = as;\n link.rel = `prefetch`;\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej;\n // `href` should always be last:\n link.href = href;\n document.head.appendChild(link);\n });\n}\nconst ASSET_LOAD_ERROR = Symbol(\"ASSET_LOAD_ERROR\");\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\nfunction appendScript(src, script) {\n return new Promise((resolve, reject)=>{\n script = document.createElement(\"script\");\n // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n script.onload = resolve;\n script.onerror = ()=>reject(markAssetError(new Error(`Failed to load script: ${src}`)));\n // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n script.crossOrigin = undefined;\n // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n script.src = src;\n document.body.appendChild(script);\n });\n}\n// We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\nlet devBuildPromise;\n// Resolve a promise that times out after given amount of milliseconds.\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise((resolve, reject)=>{\n let cancelled = false;\n p.then((r)=>{\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n }).catch(reject);\n // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n if (true) {\n (devBuildPromise || Promise.resolve()).then(()=>{\n (0, _requestIdleCallback).requestIdleCallback(()=>setTimeout(()=>{\n if (!cancelled) {\n reject(err);\n }\n }, ms));\n });\n }\n if (false) {}\n });\n}\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n const onBuildManifest = new Promise((resolve)=>{\n // Mandatory because this is not concurrent safe:\n const cb = self.__BUILD_MANIFEST_CB;\n self.__BUILD_MANIFEST_CB = ()=>{\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error(\"Failed to load client build manifest\")));\n}\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n const scriptUrl = assetPrefix + \"/_next/static/chunks/pages\" + encodeURI((0, _getAssetPathFromRoute).default(route, \".js\"));\n return Promise.resolve({\n scripts: [\n (0, _trustedTypes).__unsafeCreateTrustedScriptURL(scriptUrl)\n ],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n return getClientBuildManifest().then((manifest)=>{\n if (!(route in manifest)) {\n throw markAssetError(new Error(`Failed to lookup route: ${route}`));\n }\n const allFiles = manifest[route].map((entry)=>assetPrefix + \"/_next/\" + encodeURI(entry));\n return {\n scripts: allFiles.filter((v)=>v.endsWith(\".js\")).map((v)=>(0, _trustedTypes).__unsafeCreateTrustedScriptURL(v)),\n css: allFiles.filter((v)=>v.endsWith(\".css\"))\n };\n });\n}\nfunction createRouteLoader(assetPrefix) {\n const entrypoints = new Map();\n const loadedScripts = new Map();\n const styleSheets = new Map();\n const routes = new Map();\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) {} else {\n return appendScript(src);\n }\n }\n function fetchStyleSheet(href) {\n let prom = styleSheets.get(href);\n if (prom) {\n return prom;\n }\n styleSheets.set(href, prom = fetch(href).then((res)=>{\n if (!res.ok) {\n throw new Error(`Failed to load stylesheet: ${href}`);\n }\n return res.text().then((text)=>({\n href: href,\n content: text\n }));\n }).catch((err)=>{\n throw markAssetError(err);\n }));\n return prom;\n }\n return {\n whenEntrypoint (route) {\n return withFuture(route, entrypoints);\n },\n onEntrypoint (route, execute) {\n (execute ? Promise.resolve().then(()=>execute()).then((exports1)=>({\n component: exports1 && exports1.default || exports1,\n exports: exports1\n }), (err)=>({\n error: err\n })) : Promise.resolve(undefined)).then((input)=>{\n const old = entrypoints.get(route);\n if (old && \"resolve\" in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints.delete(route);\n }\n // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n routes.delete(route);\n }\n });\n },\n loadRoute (route, prefetch) {\n return withFuture(route, routes, ()=>{\n let devBuildPromiseResolve;\n if (true) {\n devBuildPromise = new Promise((resolve)=>{\n devBuildPromiseResolve = resolve;\n });\n }\n return resolvePromiseWithTimeout(getFilesForRoute(assetPrefix, route).then(({ scripts , css })=>{\n return Promise.all([\n entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)),\n Promise.all(css.map(fetchStyleSheet)), \n ]);\n }).then((res)=>{\n return this.whenEntrypoint(route).then((entrypoint)=>({\n entrypoint,\n styles: res[1]\n }));\n }), MS_MAX_IDLE_DELAY, markAssetError(new Error(`Route did not complete loading: ${route}`))).then(({ entrypoint , styles })=>{\n const res = Object.assign({\n styles: styles\n }, entrypoint);\n return \"error\" in entrypoint ? entrypoint : res;\n }).catch((err)=>{\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n return {\n error: err\n };\n }).finally(()=>{\n return devBuildPromiseResolve == null ? void 0 : devBuildPromiseResolve();\n });\n });\n },\n prefetch (route) {\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n let cn;\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n return getFilesForRoute(assetPrefix, route).then((output)=>Promise.all(canPrefetch ? output.scripts.map((script)=>prefetchViaDom(script.toString(), \"script\")) : [])).then(()=>{\n (0, _requestIdleCallback).requestIdleCallback(()=>this.loadRoute(route, true).catch(()=>{}));\n }).catch(()=>{});\n }\n };\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=route-loader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWxvYWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLEtBQUssRUFBRSxJQUFJO0NBQ2QsRUFBQyxDQUFDO0FBQ0hELHNCQUFzQixHQUFHRSxjQUFjLENBQUM7QUFDeENGLG9CQUFvQixHQUFHRyxZQUFZLENBQUM7QUFDcENILDhCQUE4QixHQUFHSSxzQkFBc0IsQ0FBQztBQUN4REoseUJBQXlCLEdBQUdLLGlCQUFpQixDQUFDO0FBQzlDLElBQUlDLHdCQUF3QixHQUFHQyw4TEFBK0Q7QUFDOUYsSUFBSUUsc0JBQXNCLEdBQUdILHdCQUF3QixDQUFDQyxtQkFBTyxDQUFDLGtIQUFzRCxDQUFDLENBQUM7QUFDdEgsSUFBSUcsYUFBYSxHQUFHSCxtQkFBTyxDQUFDLHVMQUFpQixDQUFDO0FBQzlDLElBQUlJLG9CQUFvQixHQUFHSixtQkFBTyxDQUFDLHVNQUF5QixDQUFDO0FBQzdELHVFQUF1RTtBQUN2RSx5RUFBeUU7QUFDekUsMkVBQTJFO0FBQzNFLG9DQUFvQztBQUNwQyxNQUFNSyxpQkFBaUIsR0FBRyxJQUFJO0FBQzlCLFNBQVNDLFVBQVUsQ0FBQ0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLFNBQVMsRUFBRTtJQUNyQyxJQUFJQyxLQUFLLEdBQUdGLEdBQUcsQ0FBQ0csR0FBRyxDQUFDSixHQUFHLENBQUM7SUFDeEIsSUFBSUcsS0FBSyxFQUFFO1FBQ1AsSUFBSSxRQUFRLElBQUlBLEtBQUssRUFBRTtZQUNuQixPQUFPQSxLQUFLLENBQUNFLE1BQU0sQ0FBQztRQUN4QixDQUFDO1FBQ0QsT0FBT0MsT0FBTyxDQUFDQyxPQUFPLENBQUNKLEtBQUssQ0FBQyxDQUFD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Q0FBQ1EsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFLLE9BQU9SLE9BQU8sQ0FBQ1EsT0FBTyxDQUFDc0gsVUFBVSxLQUFLLFdBQVcsRUFBRTtJQUNyS2hJLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDQyxPQUFPLENBQUNRLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFBRVAsS0FBSyxFQUFFLElBQUk7S0FBRSxDQUFDLENBQUM7SUFDdEVILE1BQU0sQ0FBQ3VILE1BQU0sQ0FBQ3JILE9BQU8sQ0FBQ1EsT0FBTyxFQUFFUixPQUFPLENBQUMsQ0FBQztJQUN4QytILE1BQU0sQ0FBQy9ILE9BQU8sR0FBR0EsT0FBTyxDQUFDUSxPQUFPLENBQUM7QUFDbkMsQ0FBQyxDQUVELHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9uZXh0QDEyLjMuNF9AYmFiZWwrY29yZUA3LjI1LjJfcmVhY3QtZG9tQDE3LjAuMl9yZWFjdEAxNy4wLjJfX3JlYWN0QDE3LjAuMl9zYXNzQDEuNzkuMy9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanM/YmZiYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMubWFya0Fzc2V0RXJyb3IgPSBtYXJrQXNzZXRFcnJvcjtcbmV4cG9ydHMuaXNBc3NldEVycm9yID0gaXNBc3NldEVycm9yO1xuZXhwb3J0cy5nZXRDbGllbnRCdWlsZE1hbmlmZXN0ID0gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdDtcbmV4cG9ydHMuY3JlYXRlUm91dGVMb2FkZXIgPSBjcmVhdGVSb3V0ZUxvYWRlcjtcbnZhciBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanNcIikuZGVmYXVsdDtcbnZhciBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlXCIpKTtcbnZhciBfdHJ1c3RlZFR5cGVzID0gcmVxdWlyZShcIi4vdHJ1c3RlZC10eXBlc1wiKTtcbnZhciBfcmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVpcmUoXCIuL3JlcXVlc3QtaWRsZS1jYWxsYmFja1wiKTtcbi8vIDMuOHMgd2FzIGFyYml0cmFyaWx5IGNob3NlbiBhcyBpdCdzIHdoYXQgaHR0cHM6Ly93ZWIuZGV2L2ludGVyYWN0aXZlXG4vLyBjb25zaWRlcnMgYXMgXCJHb29kXCIgdGltZS10by1pbnRlcmFjdGl2ZS4gV2UgbXVzdCBhc3N1bWUgc29tZXRoaW5nIHdlbnRcbi8vIHdyb25nIGJleW9uZCB0aGlzIHBvaW50LCBhbmQgdGhlbiBmYWxsLWJhY2sgdG8gYSBmdWxsIHBhZ2UgdHJhbnNpdGlvbiB0b1xuLy8gc2hvdyB0aGUgdXNlciBzb21ldGhpbmcgb2YgdmFsdWUuXG5jb25zdCBNU19NQVhfSURMRV9ERUxBWSA9IDM4MDA7XG5mdW5jdGlvbiB3aXRoRnV0dXJlKGtleSwgbWFwLCBnZW5lcmF0b3IpIHtcbiAgICBsZXQgZW50cnkgPSBtYXAuZ2V0KGtleSk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICAgIGlmICgnZnV0dXJlJyBpbiBlbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmZ1dHVyZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGVudHJ5KTtcbiAgICB9XG4gICAgbGV0IHJlc29sdmVyO1xuICAgIGNvbnN0IHByb20gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgcmVzb2x2ZXIgPSByZXNvbHZlO1xuICAgIH0pO1xuICAgIG1hcC5zZXQoa2V5LCBlbnRyeSA9IHtcbiAgICAgICAgcmVzb2x2ZTogcmVzb2x2ZXIsXG4gICAgICAgIGZ1dHVyZTogcHJvbVxuICAgIH0pO1xuICAgIHJldHVybiBnZW5lcmF0b3IgPyBnZW5lcmF0b3IoKS8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZXF1ZW5jZXNcbiAgICAudGhlbigodmFsdWUpPT4ocmVzb2x2ZXIodmFsdWUpLCB2YWx1ZSkpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIG1hcC5kZWxldGUoa2V5KTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH0pIDogcHJvbTtcbn1cbmZ1bmN0aW9uIGhhc1ByZWZldGNoKGxpbmspIHtcbiAgICB0cnkge1xuICAgICAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICByZXR1cm4oLy8gZGV0ZWN0IElFMTEgc2luY2UgaXQgc3VwcG9ydHMgcHJlZmV0Y2ggYnV0IGlzbid0IGRldGVjdGVkXG4gICAgICAgIC8vIHdpdGggcmVsTGlzdC5zdXBwb3J0XG4gICAgICAgICghIXdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCAmJiAhIWRvY3VtZW50LmRvY3VtZW50TW9kZSkgfHwgbGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVmZXRjaCcpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5jb25zdCBjYW5QcmVmZXRjaCA9IGhhc1ByZWZldGNoKCk7XG5mdW5jdGlvbiBwcmVmZXRjaFZpYURvbShocmVmLCBhcywgbGluaykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWopPT57XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gYFxuICAgICAgbGlua1tyZWw9XCJwcmVmZXRjaFwiXVtocmVmXj1cIiR7aHJlZn1cIl0sXG4gICAgICBsaW5rW3JlbD1cInByZWxvYWRcIl1baHJlZl49XCIke2hyZWZ9XCJdLFxuICAgICAgc2NyaXB0W3NyY149XCIke2hyZWZ9XCJdYDtcbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgLy8gVGhlIG9yZGVyIG9mIHByb3BlcnR5IGFzc2lnbm1lbnQgaGVyZSBpcyBpbnRlbnRpb25hbDpcbiAgICAgICAgaWYgKGFzKSBsaW5rLmFzID0gYXM7XG4gICAgICAgIGxpbmsucmVsID0gYHByZWZldGNoYDtcbiAgICAgICAgbGluay5jcm9zc09yaWdpbiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9DUk9TU19PUklHSU47XG4gICAgICAgIGxpbmsub25sb2FkID0gcmVzO1xuICAgICAgICBsaW5rLm9uZXJyb3IgPSByZWo7XG4gICAgICAgIC8vIGBocmVmYCBzaG91bGQgYWx3YXlzIGJlIGxhc3Q6XG4gICAgICAgIGxpbmsuaHJlZiA9IGhyZWY7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgfSk7XG59XG5jb25zdCBBU1NFVF9MT0FEX0VSUk9SID0gU3ltYm9sKCdBU1NFVF9MT0FEX0VSUk9SJyk7XG5mdW5jdGlvbiBtYXJrQXNzZXRFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGVyciwgQVNTRVRfTE9BRF9FUlJPUiwge30pO1xufVxuZnVuY3Rpb24gaXNBc3NldEVycm9yKGVycikge1xuICAgIHJldHVybiBlcnIgJiYgQVNTRVRfTE9BRF9FUlJPUiBpbiBlcnI7XG59XG5mdW5jdGlvbiBhcHBlbmRTY3JpcHQoc3JjLCBzY3JpcHQpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIC8vIFRoZSBvcmRlciBvZiBwcm9wZXJ0eSBhc3NpZ25tZW50IGhlcmUgaXMgaW50ZW50aW9uYWwuXG4gICAgICAgIC8vIDEuIFNldHVwIHN1Y2Nlc3MvZmFpbHVyZSBob29rcyBpbiBjYXNlIHRoZSBicm93c2VyIHN5bmNocm9ub3VzbHlcbiAgICAgICAgLy8gICAgZXhlY3V0ZXMgd2hlbiBgc3JjYCBpcyBzZXQuXG4gICAgICAgIHNjcmlwdC5vbmxvYWQgPSByZXNvbHZlO1xuICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpPT5yZWplY3QobWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzY3JpcHQ6ICR7c3JjfWApKSk7XG4gICAgICAgIC8vIDIuIENvbmZpZ3VyZSB0aGUgY3Jvc3Mtb3JpZ2luIGF0dHJpYnV0ZSBiZWZvcmUgc2V0dGluZyBgc3JjYCBpbiBjYXNlIHRoZVxuICAgICAgICAvLyAgICBicm93c2VyIGJlZ2lucyB0byBmZXRjaC5cbiAgICAgICAgc2NyaXB0LmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgLy8gMy4gRmluYWxseSwgc2V0IHRoZSBzb3VyY2UgYW5kIGluamVjdCBpbnRvIHRoZSBET00gaW4gY2FzZSB0aGUgY2hpbGRcbiAgICAgICAgLy8gICAgbXVzdCBiZSBhcHBlbmRlZCBmb3IgZmV0Y2hpbmcgdG8gc3RhcnQuXG4gICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbn1cbi8vIFdlIHdhaXQgZm9yIHBhZ2VzIHRvIGJlIGJ1aWx0IGluIGRldiBiZWZvcmUgd2Ugc3RhcnQgdGhlIHJvdXRlIHRyYW5zaXRpb25cbi8vIHRpbWVvdXQgdG8gcHJldmVudCBhbiB1bi1uZWNlc3NhcnkgaGFyZCBuYXZpZ2F0aW9uIGluIGRldmVsb3BtZW50LlxubGV0IGRldkJ1aWxkUHJvbWlzZTtcbi8vIFJlc29sdmUgYSBwcm9taXNlIHRoYXQgdGltZXMgb3V0IGFmdGVyIGdpdmVuIGFtb3VudCBvZiBtaWxsaXNlY29uZHMuXG5mdW5jdGlvbiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KHAsIG1zLCBlcnIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBwLnRoZW4oKHIpPT57XG4gICAgICAgICAgICAvLyBSZXNvbHZlZCwgY2FuY2VsIHRoZSB0aW1lb3V0XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzb2x2ZShyKTtcbiAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbiAgICAgICAgLy8gV2Ugd3JhcCB0aGVzZSBjaGVja3Mgc2VwYXJhdGVseSBmb3IgYmV0dGVyIGRlYWQtY29kZSBlbGltaW5hdGlvbiBpblxuICAgICAgICAvLyBwcm9kdWN0aW9uIGJ1bmRsZXMuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKGRldkJ1aWxkUHJvbWlzZSB8fCBQcm9taXNlLnJlc29sdmUoKSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+c2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgbXMpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIG1zKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSB7XG4gICAgaWYgKHNlbGYuX19CVUlMRF9NQU5JRkVTVCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCk7XG4gICAgfVxuICAgIGNvbnN0IG9uQnVpbGRNYW5pZmVzdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICAvLyBNYW5kYXRvcnkgYmVjYXVzZSB0aGlzIGlzIG5vdCBjb25jdXJyZW50IHNhZmU6XG4gICAgICAgIGNvbnN0IGNiID0gc2VsZi5fX0JVSUxEX01BTklGRVNUX0NCO1xuICAgICAgICBzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0IgPSAoKT0+e1xuICAgICAgICAgICAgcmVzb2x2ZShzZWxmLl9fQlVJTERfTUFOSUZFU1QpO1xuICAgICAgICAgICAgY2IgJiYgY2IoKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChvbkJ1aWxkTWFuaWZlc3QsIE1TX01BWF9JRExFX0RFTEFZLCBtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGNsaWVudCBidWlsZCBtYW5pZmVzdCcpKSk7XG59XG5mdW5jdGlvbiBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBjb25zdCBzY3JpcHRVcmwgPSBhc3NldFByZWZpeCArICcvX25leHQvc3RhdGljL2NodW5rcy9wYWdlcycgKyBlbmNvZGVVUkkoKDAsIF9nZXRBc3NldFBhdGhGcm9tUm91dGUpLmRlZmF1bHQocm91dGUsICcuanMnKSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgc2NyaXB0czogW1xuICAgICAgICAgICAgICAgICgwLCBfdHJ1c3RlZFR5cGVzKS5fX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkwoc2NyaXB0VXJsKVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIC8vIFN0eWxlcyBhcmUgaGFuZGxlZCBieSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudDpcbiAgICAgICAgICAgIGNzczogW11cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgIGlmICghKHJvdXRlIGluIG1hbmlmZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9va3VwIHJvdXRlOiAke3JvdXRlfWApKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbGxGaWxlcyA9IG1hbmlmZXN0W3JvdXRlXS5tYXAoKGVudHJ5KT0+YXNzZXRQcmVmaXggKyAnL19uZXh0LycgKyBlbmNvZGVVUkkoZW50cnkpKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjcmlwdHM6IGFsbEZpbGVzLmZpbHRlcigodik9PnYuZW5kc1dpdGgoJy5qcycpKS5tYXAoKHYpPT4oMCwgX3RydXN0ZWRUeXBlcykuX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMKHYpKSxcbiAgICAgICAgICAgIGNzczogYWxsRmlsZXMuZmlsdGVyKCh2KT0+di5lbmRzV2l0aCgnLmNzcycpKVxuICAgICAgICB9O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVMb2FkZXIoYXNzZXRQcmVmaXgpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBsb2FkZWRTY3JpcHRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHN0eWxlU2hlZXRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHJvdXRlcyA9IG5ldyBNYXAoKTtcbiAgICBmdW5jdGlvbiBtYXliZUV4ZWN1dGVTY3JpcHQoc3JjKSB7XG4gICAgICAgIC8vIFdpdGggSE1SIHdlIG1pZ2h0IG5lZWQgdG8gXCJyZWxvYWRcIiBzY3JpcHRzIHdoZW4gdGhleSBhcmVcbiAgICAgICAgLy8gZGlzcG9zZWQgYW5kIHJlYWRkZWQuIEV4ZWN1dGluZyBzY3JpcHRzIHR3aWNlIGhhcyBubyBmdW5jdGlvbmFsXG4gICAgICAgIC8vIGRpZmZlcmVuY2VzXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgbGV0IHByb20gPSBsb2FkZWRTY3JpcHRzLmdldChzcmMudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBpZiAocHJvbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2tpcCBleGVjdXRpbmcgc2NyaXB0IGlmIGl0J3MgYWxyZWFkeSBpbiB0aGUgRE9NOlxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmNePVwiJHtzcmN9XCJdYCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2FkZWRTY3JpcHRzLnNldChzcmMudG9TdHJpbmcoKSwgcHJvbSA9IGFwcGVuZFNjcmlwdChzcmMpKTtcbiAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGVuZFNjcmlwdChzcmMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZldGNoU3R5bGVTaGVldChocmVmKSB7XG4gICAgICAgIGxldCBwcm9tID0gc3R5bGVTaGVldHMuZ2V0KGhyZWYpO1xuICAgICAgICBpZiAocHJvbSkge1xuICAgICAgICAgICAgcmV0dXJuIHByb207XG4gICAgICAgIH1cbiAgICAgICAgc3R5bGVTaGVldHMuc2V0KGhyZWYsIHByb20gPSBmZXRjaChocmVmKS50aGVuKChyZXMpPT57XG4gICAgICAgICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc3R5bGVzaGVldDogJHtocmVmfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcy50ZXh0KCkudGhlbigodGV4dCk9Pih7XG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IGhyZWYsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRleHRcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICB0aHJvdyBtYXJrQXNzZXRFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiBwcm9tO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB3aGVuRW50cnlwb2ludCAocm91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRoRnV0dXJlKHJvdXRlLCBlbnRyeXBvaW50cyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRW50cnlwb2ludCAocm91dGUsIGV4ZWN1dGUpIHtcbiAgICAgICAgICAgIChleGVjdXRlID8gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZXhlY3V0ZSgpKS50aGVuKChleHBvcnRzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBleHBvcnRzICYmIGV4cG9ydHMuZGVmYXVsdCB8fCBleHBvcnRzLFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzOiBleHBvcnRzXG4gICAgICAgICAgICAgICAgfSksIChlcnIpPT4oe1xuICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyXG4gICAgICAgICAgICAgICAgfSkpIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCkpLnRoZW4oKGlucHV0KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZCA9IGVudHJ5cG9pbnRzLmdldChyb3V0ZSk7XG4gICAgICAgICAgICAgICAgaWYgKG9sZCAmJiAncmVzb2x2ZScgaW4gb2xkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuc2V0KHJvdXRlLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbGQucmVzb2x2ZShpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuZGVsZXRlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHRoaXMgZW50cnlwb2ludCBoYXMgYmVlbiByZXNvbHZlZCBiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJvdXRlIGlzIG91dGRhdGVkIGFuZCB3ZSB3YW50IHRvIGludmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjYWNoZSBlbnRyeVxuICAgICAgICAgICAgICAgICAgICByb3V0ZXMuZGVsZXRlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZFJvdXRlIChyb3V0ZSwgcHJlZmV0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRoRnV0dXJlKHJvdXRlLCByb3V0ZXMsICgpPT57XG4gICAgICAgICAgICAgICAgbGV0IGRldkJ1aWxkUHJvbWlzZVJlc29sdmU7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRldkJ1aWxkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgZGV2QnVpbGRQcm9taXNlUmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkudGhlbigoeyBzY3JpcHRzICwgY3NzICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuaGFzKHJvdXRlKSA/IFtdIDogUHJvbWlzZS5hbGwoc2NyaXB0cy5tYXAobWF5YmVFeGVjdXRlU2NyaXB0KSksXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9taXNlLmFsbChjc3MubWFwKGZldGNoU3R5bGVTaGVldCkpLCBcbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgfSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53aGVuRW50cnlwb2ludChyb3V0ZSkudGhlbigoZW50cnlwb2ludCk9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHJlc1sxXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH0pLCBNU19NQVhfSURMRV9ERUxBWSwgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBSb3V0ZSBkaWQgbm90IGNvbXBsZXRlIGxvYWRpbmc6ICR7cm91dGV9YCkpKS50aGVuKCh7IGVudHJ5cG9pbnQgLCBzdHlsZXMgIH0pPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzOiBzdHlsZXNcbiAgICAgICAgICAgICAgICAgICAgfSwgZW50cnlwb2ludCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnZXJyb3InIGluIGVudHJ5cG9pbnQgPyBlbnRyeXBvaW50IDogcmVzO1xuICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmVmZXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSBlcnJvcnMgZHVyaW5nIHByZWZldGNoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KS5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkZXZCdWlsZFByb21pc2VSZXNvbHZlID09IG51bGwgPyB2b2lkIDAgOiBkZXZCdWlsZFByb21pc2VSZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcHJlZmV0Y2ggKHJvdXRlKSB7XG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vR29vZ2xlQ2hyb21lTGFicy9xdWlja2xpbmsvYmxvYi80NTNhNjYxZmExZmE5NDBlMmQyZTA0NDQ1MjM5OGUzOGM2N2E5OGZiL3NyYy9pbmRleC5tanMjTDExNS1MMTE4XG4gICAgICAgICAgICAvLyBMaWNlbnNlOiBBcGFjaGUgMi4wXG4gICAgICAgICAgICBsZXQgY247XG4gICAgICAgICAgICBpZiAoY24gPSBuYXZpZ2F0b3IuY29ubmVjdGlvbikge1xuICAgICAgICAgICAgICAgIC8vIERvbid0IHByZWZldGNoIGlmIHVzaW5nIDJHIG9yIGlmIFNhdmUtRGF0YSBpcyBlbmFibGVkLlxuICAgICAgICAgICAgICAgIGlmIChjbi5zYXZlRGF0YSB8fCAvMmcvLnRlc3QoY24uZWZmZWN0aXZlVHlwZSkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkudGhlbigob3V0cHV0KT0+UHJvbWlzZS5hbGwoY2FuUHJlZmV0Y2ggPyBvdXRwdXQuc2NyaXB0cy5tYXAoKHNjcmlwdCk9PnByZWZldGNoVmlhRG9tKHNjcmlwdC50b1N0cmluZygpLCAnc2NyaXB0JykpIDogW10pKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT50aGlzLmxvYWRSb3V0ZShyb3V0ZSwgdHJ1ZSkuY2F0Y2goKCk9Pnt9KSk7XG4gICAgICAgICAgICB9KS5jYXRjaCgvLyBzd2FsbG93IHByZWZldGNoIGVycm9yc1xuICAgICAgICAgICAgKCk9Pnt9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtYXJrQXNzZXRFcnJvciIsImlzQXNzZXRFcnJvciIsImdldENsaWVudEJ1aWxkTWFuaWZlc3QiLCJjcmVhdGVSb3V0ZUxvYWRlciIsIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsInJlcXVpcmUiLCJkZWZhdWx0IiwiX2dldEFzc2V0UGF0aEZyb21Sb3V0ZSIsIl90cnVzdGVkVHlwZXMiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsIk1TX01BWF9JRExFX0RFTEFZIiwid2l0aEZ1dHVyZSIsImtleSIsIm1hcCIsImdlbmVyYXRvciIsImVudHJ5IiwiZ2V0IiwiZnV0dXJlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZXNvbHZlciIsInByb20iLCJzZXQiLCJ0aGVuIiwiY2F0Y2giLCJlcnIiLCJkZWxldGUiLCJoYXNQcmVmZXRjaCIsImxpbmsiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJ3aW5kb3ciLCJNU0lucHV0TWV0aG9kQ29udGV4dCIsImRvY3VtZW50TW9kZSIsInJlbExpc3QiLCJzdXBwb3J0cyIsImUiLCJjYW5QcmVmZXRjaCIsInByZWZldGNoVmlhRG9tIiwiaHJlZiIsImFzIiwicmVzIiwicmVqIiwic2VsZWN0b3IiLCJxdWVyeVNlbGVjdG9yIiwicmVsIiwiY3Jvc3NPcmlnaW4iLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0NST1NTX09SSUdJTiIsIm9ubG9hZCIsIm9uZXJyb3IiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJBU1NFVF9MT0FEX0VSUk9SIiwiU3ltYm9sIiwiYXBwZW5kU2NyaXB0Iiwic3JjIiwic2NyaXB0IiwicmVqZWN0IiwiRXJyb3IiLCJib2R5IiwiZGV2QnVpbGRQcm9taXNlIiwicmVzb2x2ZVByb21pc2VXaXRoVGltZW91dCIsInAiLCJtcyIsImNhbmNlbGxlZCIsInIiLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwic2V0VGltZW91dCIsInNlbGYiLCJfX0JVSUxEX01BTklGRVNUIiwib25CdWlsZE1hbmlmZXN0IiwiY2IiLCJfX0JVSUxEX01BTklGRVNUX0NCIiwiZ2V0RmlsZXNGb3JSb3V0ZSIsImFzc2V0UHJlZml4Iiwicm91dGUiLCJzY3JpcHRVcmwiLCJlbmNvZGVVUkkiLCJzY3JpcHRzIiwiX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMIiwiY3NzIiwibWFuaWZlc3QiLCJhbGxGaWxlcyIsImZpbHRlciIsInYiLCJlbmRzV2l0aCIsImVudHJ5cG9pbnRzIiwiTWFwIiwibG9hZGVkU2NyaXB0cyIsInN0eWxlU2hlZXRzIiwicm91dGVzIiwibWF5YmVFeGVjdXRlU2NyaXB0IiwidG9TdHJpbmciLCJmZXRjaFN0eWxlU2hlZXQiLCJmZXRjaCIsIm9rIiwidGV4dCIsImNvbnRlbnQiLCJ3aGVuRW50cnlwb2ludCIsIm9uRW50cnlwb2ludCIsImV4ZWN1dGUiLCJjb21wb25lbnQiLCJlcnJvciIsInVuZGVmaW5lZCIsImlucHV0Iiwib2xkIiwibG9hZFJvdXRlIiwicHJlZmV0Y2giLCJkZXZCdWlsZFByb21pc2VSZXNvbHZlIiwiYWxsIiwiaGFzIiwiZW50cnlwb2ludCIsInN0eWxlcyIsImFzc2lnbiIsImZpbmFsbHkiLCJjbiIsIm5hdmlnYXRvciIsImNvbm5lY3Rpb24iLCJzYXZlRGF0YSIsInRlc3QiLCJlZmZlY3RpdmVUeXBlIiwib3V0cHV0IiwiX19lc01vZHVsZSIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/route-loader.js\n");
|
|
199
|
+
|
|
200
|
+
/***/ }),
|
|
201
|
+
|
|
202
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/script.js":
|
|
203
|
+
/*!***************************************************************************************************************************************************************!*\
|
|
204
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/script.js ***!
|
|
205
|
+
\***************************************************************************************************************************************************************/
|
|
206
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
207
|
+
|
|
208
|
+
"use strict";
|
|
209
|
+
eval("\n\"client\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.handleClientScriptLoad = handleClientScriptLoad;\nexports.initScriptLoader = initScriptLoader;\nexports[\"default\"] = void 0;\nvar _extends = (__webpack_require__(/*! @swc/helpers/lib/_extends.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_extends.js\")[\"default\"]);\nvar _interop_require_wildcard = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_wildcard.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_wildcard.js\")[\"default\"]);\nvar _object_without_properties_loose = (__webpack_require__(/*! @swc/helpers/lib/_object_without_properties_loose.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_object_without_properties_loose.js\")[\"default\"]);\nvar _react = _interop_require_wildcard(__webpack_require__(/*! react */ \"react\"));\nvar _headManagerContext = __webpack_require__(/*! ../shared/lib/head-manager-context */ \"../shared/lib/head-manager-context\");\nvar _headManager = __webpack_require__(/*! ./head-manager */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/head-manager.js\");\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/request-idle-callback.js\");\n\"client\";\nconst ScriptCache = new Map();\nconst LoadCache = new Set();\nconst ignoreProps = [\n \"onLoad\",\n \"onReady\",\n \"dangerouslySetInnerHTML\",\n \"children\",\n \"onError\",\n \"strategy\", \n];\nconst loadScript = (props)=>{\n const { src , id , onLoad =()=>{} , onReady =null , dangerouslySetInnerHTML , children =\"\" , strategy =\"afterInteractive\" , onError , } = props;\n const cacheKey = id || src;\n // Script has already loaded\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n }\n // Contents of this script are already loading/loaded\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey);\n // It is possible that multiple `next/script` components all have same \"src\", but has different \"onLoad\"\n // This is to make sure the same remote script will only load once, but \"onLoad\" are executed in order\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n /** Execute after the script first loaded */ const afterLoad = ()=>{\n // Run onReady for the first time after load event\n if (onReady) {\n onReady();\n }\n // add cacheKey to LoadCache when load successfully\n LoadCache.add(cacheKey);\n };\n const el = document.createElement(\"script\");\n const loadPromise = new Promise((resolve, reject)=>{\n el.addEventListener(\"load\", function(e) {\n resolve();\n if (onLoad) {\n onLoad.call(this, e);\n }\n afterLoad();\n });\n el.addEventListener(\"error\", function(e) {\n reject(e);\n });\n }).catch(function(e) {\n if (onError) {\n onError(e);\n }\n });\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || \"\";\n afterLoad();\n } else if (children) {\n el.textContent = typeof children === \"string\" ? children : Array.isArray(children) ? children.join(\"\") : \"\";\n afterLoad();\n } else if (src) {\n el.src = src;\n // do not add cacheKey into LoadCache for remote script here\n // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above)\n ScriptCache.set(src, loadPromise);\n }\n for (const [k, value] of Object.entries(props)){\n if (value === undefined || ignoreProps.includes(k)) {\n continue;\n }\n const attr = _headManager.DOMAttributeNames[k] || k.toLowerCase();\n el.setAttribute(attr, value);\n }\n if (strategy === \"worker\") {\n el.setAttribute(\"type\", \"text/partytown\");\n }\n el.setAttribute(\"data-nscript\", strategy);\n document.body.appendChild(el);\n};\nfunction handleClientScriptLoad(props) {\n const { strategy =\"afterInteractive\" } = props;\n if (strategy === \"lazyOnload\") {\n window.addEventListener(\"load\", ()=>{\n (0, _requestIdleCallback).requestIdleCallback(()=>loadScript(props));\n });\n } else {\n loadScript(props);\n }\n}\nfunction loadLazyScript(props) {\n if (document.readyState === \"complete\") {\n (0, _requestIdleCallback).requestIdleCallback(()=>loadScript(props));\n } else {\n window.addEventListener(\"load\", ()=>{\n (0, _requestIdleCallback).requestIdleCallback(()=>loadScript(props));\n });\n }\n}\nfunction addBeforeInteractiveToCache() {\n const scripts = [\n ...document.querySelectorAll('[data-nscript=\"beforeInteractive\"]'),\n ...document.querySelectorAll('[data-nscript=\"beforePageRender\"]'), \n ];\n scripts.forEach((script)=>{\n const cacheKey = script.id || script.getAttribute(\"src\");\n LoadCache.add(cacheKey);\n });\n}\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n addBeforeInteractiveToCache();\n}\nfunction Script(props) {\n const { id , src =\"\" , onLoad =()=>{} , onReady =null , strategy =\"afterInteractive\" , onError } = props, restProps = _object_without_properties_loose(props, [\n \"id\",\n \"src\",\n \"onLoad\",\n \"onReady\",\n \"strategy\",\n \"onError\"\n ]);\n // Context is available only during SSR\n const { updateScripts , scripts , getIsSsr } = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n /**\n * - First mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache)\n * onReady is skipped, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. hasLoadScriptEffectCalled.current is false, loadScript executes\n * Once the script is loaded, the onLoad and onReady will be called by then\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n *\n * - Second mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache)\n * onReady is called, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. The script is already loaded, loadScript bails out\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n */ const hasOnReadyEffectCalled = (0, _react).useRef(false);\n (0, _react).useEffect(()=>{\n const cacheKey = id || src;\n if (!hasOnReadyEffectCalled.current) {\n // Run onReady if script has loaded before but component is re-mounted\n if (onReady && cacheKey && LoadCache.has(cacheKey)) {\n onReady();\n }\n hasOnReadyEffectCalled.current = true;\n }\n }, [\n onReady,\n id,\n src\n ]);\n const hasLoadScriptEffectCalled = (0, _react).useRef(false);\n (0, _react).useEffect(()=>{\n if (!hasLoadScriptEffectCalled.current) {\n if (strategy === \"afterInteractive\") {\n loadScript(props);\n } else if (strategy === \"lazyOnload\") {\n loadLazyScript(props);\n }\n hasLoadScriptEffectCalled.current = true;\n }\n }, [\n props,\n strategy\n ]);\n if (strategy === \"beforeInteractive\" || strategy === \"worker\") {\n if (updateScripts) {\n scripts[strategy] = (scripts[strategy] || []).concat([\n _extends({\n id,\n src,\n onLoad,\n onReady,\n onError\n }, restProps), \n ]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript(props);\n }\n }\n return null;\n}\nObject.defineProperty(Script, \"__nextScript\", {\n value: true\n});\nvar _default = Script;\nexports[\"default\"] = _default;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=script.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3NjcmlwdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFDYTtBQURiLFFBQVEsQ0FBQztBQUVUQSw4Q0FBNkM7SUFDekNHLEtBQUssRUFBRSxJQUFJO0NBQ2QsRUFBQyxDQUFDO0FBQ0hELDhCQUE4QixHQUFHRSxzQkFBc0IsQ0FBQztBQUN4REYsd0JBQXdCLEdBQUdHLGdCQUFnQixDQUFDO0FBQzVDSCxrQkFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLElBQUlLLFFBQVEsR0FBR0MsOEpBQStDO0FBQzlELElBQUlDLHlCQUF5QixHQUFHRCxnTUFBZ0U7QUFDaEcsSUFBSUUsZ0NBQWdDLEdBQUdGLDhNQUF1RTtBQUM5RyxJQUFJRyxNQUFNLEdBQUdGLHlCQUF5QixDQUFDRCxtQkFBTyxDQUFDLG9CQUFPLENBQUMsQ0FBQztBQUN4RCxJQUFJSSxtQkFBbUIsR0FBR0osbUJBQU8sQ0FBQyw4RUFBb0MsQ0FBQztBQUN2RSxJQUFJSyxZQUFZLEdBQUdMLG1CQUFPLENBQUMscUxBQWdCLENBQUM7QUFDNUMsSUFBSU0sb0JBQW9CLEdBQUdOLG1CQUFPLENBQUMsdU1BQXlCLENBQUM7QUFDN0QsUUFBUSxDQUFDO0FBQ1QsTUFBTU8sV0FBVyxHQUFHLElBQUlDLEdBQUcsRUFBRTtBQUM3QixNQUFNQyxTQUFTLEdBQUcsSUFBSUMsR0FBRyxFQUFFO0FBQzNCLE1BQU1DLFdBQVcsR0FBRztJQUNoQixRQUFRO0lBQ1IsU0FBUztJQUNULHlCQUF5QjtJQUN6QixVQUFVO0lBQ1YsU0FBUztJQUNULFVBQVU7Q0FDYjtBQUNELE1BQU1DLFVBQVUsR0FBRyxDQUFDQyxLQUFLLEdBQUc7SUFDeEIsTUFBTSxFQUFFQyxHQUFHLEdBQUdD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QnpFLGtCQUFlLEdBQUdxRixRQUFRLENBQUM7QUFFM0IsSUFBSSxDQUFDLE9BQU9yRixPQUFPLENBQUNJLE9BQU8sS0FBSyxVQUFVLElBQUssT0FBT0osT0FBTyxDQUFDSSxPQUFPLEtBQUssUUFBUSxJQUFJSixPQUFPLENBQUNJLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSyxPQUFPSixPQUFPLENBQUNJLE9BQU8sQ0FBQ2tGLFVBQVUsS0FBSyxXQUFXLEVBQUU7SUFDckt4RixNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDSSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQUVILEtBQUssRUFBRSxJQUFJO0tBQUUsQ0FBQyxDQUFDO0lBQ3RFSCxNQUFNLENBQUN5RixNQUFNLENBQUN2RixPQUFPLENBQUNJLE9BQU8sRUFBRUosT0FBTyxDQUFDLENBQUM7SUFDeEN3RixNQUFNLENBQUN4RixPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksT0FBTyxDQUFDO0FBQ25DLENBQUMsQ0FFRCxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZmVjb21tdW5pdHkvcmVhY3RwcmVzcy10ZW1wbGF0ZS1oZWxsby13b3JsZC8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vbmV4dEAxMi4zLjRfQGJhYmVsK2NvcmVANy4yNS4yX3JlYWN0LWRvbUAxNy4wLjJfcmVhY3RAMTcuMC4yX19yZWFjdEAxNy4wLjJfc2Fzc0AxLjc5LjMvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvc2NyaXB0LmpzP2U4NjgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJjbGllbnRcIjtcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5oYW5kbGVDbGllbnRTY3JpcHRMb2FkID0gaGFuZGxlQ2xpZW50U2NyaXB0TG9hZDtcbmV4cG9ydHMuaW5pdFNjcmlwdExvYWRlciA9IGluaXRTY3JpcHRMb2FkZXI7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX2V4dGVuZHMgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9fZXh0ZW5kcy5qc1wiKS5kZWZhdWx0O1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzXCIpLmRlZmF1bHQ7XG52YXIgX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9fb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZS5qc1wiKS5kZWZhdWx0O1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfaGVhZE1hbmFnZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHRcIik7XG52YXIgX2hlYWRNYW5hZ2VyID0gcmVxdWlyZShcIi4vaGVhZC1tYW5hZ2VyXCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuJ2NsaWVudCc7XG5jb25zdCBTY3JpcHRDYWNoZSA9IG5ldyBNYXAoKTtcbmNvbnN0IExvYWRDYWNoZSA9IG5ldyBTZXQoKTtcbmNvbnN0IGlnbm9yZVByb3BzID0gW1xuICAgICdvbkxvYWQnLFxuICAgICdvblJlYWR5JyxcbiAgICAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnLFxuICAgICdjaGlsZHJlbicsXG4gICAgJ29uRXJyb3InLFxuICAgICdzdHJhdGVneScsIFxuXTtcbmNvbnN0IGxvYWRTY3JpcHQgPSAocHJvcHMpPT57XG4gICAgY29uc3QgeyBzcmMgLCBpZCAsIG9uTG9hZCA9KCk9Pnt9ICwgb25SZWFkeSA9bnVsbCAsIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICwgY2hpbGRyZW4gPScnICwgc3RyYXRlZ3kgPSdhZnRlckludGVyYWN0aXZlJyAsIG9uRXJyb3IgLCAgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gaWQgfHwgc3JjO1xuICAgIC8vIFNjcmlwdCBoYXMgYWxyZWFkeSBsb2FkZWRcbiAgICBpZiAoY2FjaGVLZXkgJiYgTG9hZENhY2hlLmhhcyhjYWNoZUtleSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBDb250ZW50cyBvZiB0aGlzIHNjcmlwdCBhcmUgYWxyZWFkeSBsb2FkaW5nL2xvYWRlZFxuICAgIGlmIChTY3JpcHRDYWNoZS5oYXMoc3JjKSkge1xuICAgICAgICBMb2FkQ2FjaGUuYWRkKGNhY2hlS2V5KTtcbiAgICAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCBtdWx0aXBsZSBgbmV4dC9zY3JpcHRgIGNvbXBvbmVudHMgYWxsIGhhdmUgc2FtZSBcInNyY1wiLCBidXQgaGFzIGRpZmZlcmVudCBcIm9uTG9hZFwiXG4gICAgICAgIC8vIFRoaXMgaXMgdG8gbWFrZSBzdXJlIHRoZSBzYW1lIHJlbW90ZSBzY3JpcHQgd2lsbCBvbmx5IGxvYWQgb25jZSwgYnV0IFwib25Mb2FkXCIgYXJlIGV4ZWN1dGVkIGluIG9yZGVyXG4gICAgICAgIFNjcmlwdENhY2hlLmdldChzcmMpLnRoZW4ob25Mb2FkLCBvbkVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvKiogRXhlY3V0ZSBhZnRlciB0aGUgc2NyaXB0IGZpcnN0IGxvYWRlZCAqLyBjb25zdCBhZnRlckxvYWQgPSAoKT0+e1xuICAgICAgICAvLyBSdW4gb25SZWFkeSBmb3IgdGhlIGZpcnN0IHRpbWUgYWZ0ZXIgbG9hZCBldmVudFxuICAgICAgICBpZiAob25SZWFkeSkge1xuICAgICAgICAgICAgb25SZWFkeSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFkZCBjYWNoZUtleSB0byBMb2FkQ2FjaGUgd2hlbiBsb2FkIHN1Y2Nlc3NmdWxseVxuICAgICAgICBMb2FkQ2FjaGUuYWRkKGNhY2hlS2V5KTtcbiAgICB9O1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgY29uc3QgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgaWYgKG9uTG9hZCkge1xuICAgICAgICAgICAgICAgIG9uTG9hZC5jYWxsKHRoaXMsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWZ0ZXJMb2FkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgfSk7XG4gICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkge1xuICAgICAgICBpZiAob25FcnJvcikge1xuICAgICAgICAgICAgb25FcnJvcihlKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChkYW5nZXJvdXNseVNldElubmVySFRNTCkge1xuICAgICAgICBlbC5pbm5lckhUTUwgPSBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwgfHwgJyc7XG4gICAgICAgIGFmdGVyTG9hZCgpO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgZWwudGV4dENvbnRlbnQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnID8gY2hpbGRyZW4gOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuLmpvaW4oJycpIDogJyc7XG4gICAgICAgIGFmdGVyTG9hZCgpO1xuICAgIH0gZWxzZSBpZiAoc3JjKSB7XG4gICAgICAgIGVsLnNyYyA9IHNyYztcbiAgICAgICAgLy8gZG8gbm90IGFkZCBjYWNoZUtleSBpbnRvIExvYWRDYWNoZSBmb3IgcmVtb3RlIHNjcmlwdCBoZXJlXG4gICAgICAgIC8vIGNhY2hlS2V5IHdpbGwgYmUgYWRkZWQgdG8gTG9hZENhY2hlIHdoZW4gaXQgaXMgYWN0dWFsbHkgbG9hZGVkIChzZWUgbG9hZFByb21pc2UgYWJvdmUpXG4gICAgICAgIFNjcmlwdENhY2hlLnNldChzcmMsIGxvYWRQcm9taXNlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBbaywgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSl7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGlnbm9yZVByb3BzLmluY2x1ZGVzKGspKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhdHRyID0gX2hlYWRNYW5hZ2VyLkRPTUF0dHJpYnV0ZU5hbWVzW2tdIHx8IGsudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgZWwuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHN0cmF0ZWd5ID09PSAnd29ya2VyJykge1xuICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9wYXJ0eXRvd24nKTtcbiAgICB9XG4gICAgZWwuc2V0QXR0cmlidXRlKCdkYXRhLW5zY3JpcHQnLCBzdHJhdGVneSk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG59O1xuZnVuY3Rpb24gaGFuZGxlQ2xpZW50U2NyaXB0TG9hZChwcm9wcykge1xuICAgIGNvbnN0IHsgc3RyYXRlZ3kgPSdhZnRlckludGVyYWN0aXZlJyAgfSA9IHByb3BzO1xuICAgIGlmIChzdHJhdGVneSA9PT0gJ2xhenlPbmxvYWQnKSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCk9PntcbiAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+bG9hZFNjcmlwdChwcm9wcykpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsb2FkU2NyaXB0KHByb3BzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBsb2FkTGF6eVNjcmlwdChwcm9wcykge1xuICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+bG9hZFNjcmlwdChwcm9wcykpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCk9PntcbiAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+bG9hZFNjcmlwdChwcm9wcykpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBhZGRCZWZvcmVJbnRlcmFjdGl2ZVRvQ2FjaGUoKSB7XG4gICAgY29uc3Qgc2NyaXB0cyA9IFtcbiAgICAgICAgLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtbnNjcmlwdD1cImJlZm9yZUludGVyYWN0aXZlXCJdJyksXG4gICAgICAgIC4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5zY3JpcHQ9XCJiZWZvcmVQYWdlUmVuZGVyXCJdJyksIFxuICAgIF07XG4gICAgc2NyaXB0cy5mb3JFYWNoKChzY3JpcHQpPT57XG4gICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gc2NyaXB0LmlkIHx8IHNjcmlwdC5nZXRBdHRyaWJ1dGUoJ3NyYycpO1xuICAgICAgICBMb2FkQ2FjaGUuYWRkKGNhY2hlS2V5KTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGluaXRTY3JpcHRMb2FkZXIoc2NyaXB0TG9hZGVySXRlbXMpIHtcbiAgICBzY3JpcHRMb2FkZXJJdGVtcy5mb3JFYWNoKGhhbmRsZUNsaWVudFNjcmlwdExvYWQpO1xuICAgIGFkZEJlZm9yZUludGVyYWN0aXZlVG9DYWNoZSgpO1xufVxuZnVuY3Rpb24gU2NyaXB0KHByb3BzKSB7XG4gICAgY29uc3QgeyBpZCAsIHNyYyA9JycgLCBvbkxvYWQgPSgpPT57fSAsIG9uUmVhZHkgPW51bGwgLCBzdHJhdGVneSA9J2FmdGVySW50ZXJhY3RpdmUnICwgb25FcnJvciAgfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZShwcm9wcywgW1xuICAgICAgICBcImlkXCIsXG4gICAgICAgIFwic3JjXCIsXG4gICAgICAgIFwib25Mb2FkXCIsXG4gICAgICAgIFwib25SZWFkeVwiLFxuICAgICAgICBcInN0cmF0ZWd5XCIsXG4gICAgICAgIFwib25FcnJvclwiXG4gICAgXSk7XG4gICAgLy8gQ29udGV4dCBpcyBhdmFpbGFibGUgb25seSBkdXJpbmcgU1NSXG4gICAgY29uc3QgeyB1cGRhdGVTY3JpcHRzICwgc2NyaXB0cyAsIGdldElzU3NyICB9ID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7XG4gICAgLyoqXG4gICAqIC0gRmlyc3QgbW91bnQ6XG4gICAqICAgMS4gVGhlIHVzZUVmZmVjdCBmb3Igb25SZWFkeSBleGVjdXRlc1xuICAgKiAgIDIuIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCBpcyBmYWxzZSwgYnV0IHRoZSBzY3JpcHQgaGFzbid0IGxvYWRlZCB5ZXQgKG5vdCBpbiBMb2FkQ2FjaGUpXG4gICAqICAgICAgb25SZWFkeSBpcyBza2lwcGVkLCBzZXQgaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50IHRvIHRydWVcbiAgICogICAzLiBUaGUgdXNlRWZmZWN0IGZvciBsb2FkU2NyaXB0IGV4ZWN1dGVzXG4gICAqICAgNC4gaGFzTG9hZFNjcmlwdEVmZmVjdENhbGxlZC5jdXJyZW50IGlzIGZhbHNlLCBsb2FkU2NyaXB0IGV4ZWN1dGVzXG4gICAqICAgICAgT25jZSB0aGUgc2NyaXB0IGlzIGxvYWRlZCwgdGhlIG9uTG9hZCBhbmQgb25SZWFkeSB3aWxsIGJlIGNhbGxlZCBieSB0aGVuXG4gICAqICAgW0lmIHN0cmljdCBtb2RlIGlzIGVuYWJsZWQgLyBpcyB3cmFwcGVkIGluIDxPZmZTY3JlZW4gLz4gY29tcG9uZW50XVxuICAgKiAgIDUuIFRoZSB1c2VFZmZlY3QgZm9yIG9uUmVhZHkgZXhlY3V0ZXMgYWdhaW5cbiAgICogICA2LiBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQgaXMgdHJ1ZSwgc28gZW50aXJlIGVmZmVjdCBpcyBza2lwcGVkXG4gICAqICAgNy4gVGhlIHVzZUVmZmVjdCBmb3IgbG9hZFNjcmlwdCBleGVjdXRlcyBhZ2FpblxuICAgKiAgIDguIGhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQuY3VycmVudCBpcyB0cnVlLCBzbyBlbnRpcmUgZWZmZWN0IGlzIHNraXBwZWRcbiAgICpcbiAgICogLSBTZWNvbmQgbW91bnQ6XG4gICAqICAgMS4gVGhlIHVzZUVmZmVjdCBmb3Igb25SZWFkeSBleGVjdXRlc1xuICAgKiAgIDIuIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCBpcyBmYWxzZSwgYnV0IHRoZSBzY3JpcHQgaGFzIGFscmVhZHkgbG9hZGVkIChmb3VuZCBpbiBMb2FkQ2FjaGUpXG4gICAqICAgICAgb25SZWFkeSBpcyBjYWxsZWQsIHNldCBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQgdG8gdHJ1ZVxuICAgKiAgIDMuIFRoZSB1c2VFZmZlY3QgZm9yIGxvYWRTY3JpcHQgZXhlY3V0ZXNcbiAgICogICA0LiBUaGUgc2NyaXB0IGlzIGFscmVhZHkgbG9hZGVkLCBsb2FkU2NyaXB0IGJhaWxzIG91dFxuICAgKiAgIFtJZiBzdHJpY3QgbW9kZSBpcyBlbmFibGVkIC8gaXMgd3JhcHBlZCBpbiA8T2ZmU2NyZWVuIC8+IGNvbXBvbmVudF1cbiAgICogICA1LiBUaGUgdXNlRWZmZWN0IGZvciBvblJlYWR5IGV4ZWN1dGVzIGFnYWluXG4gICAqICAgNi4gaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50IGlzIHRydWUsIHNvIGVudGlyZSBlZmZlY3QgaXMgc2tpcHBlZFxuICAgKiAgIDcuIFRoZSB1c2VFZmZlY3QgZm9yIGxvYWRTY3JpcHQgZXhlY3V0ZXMgYWdhaW5cbiAgICogICA4LiBoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQgaXMgdHJ1ZSwgc28gZW50aXJlIGVmZmVjdCBpcyBza2lwcGVkXG4gICAqLyBjb25zdCBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkID0gKDAsIF9yZWFjdCkudXNlUmVmKGZhbHNlKTtcbiAgICAoMCwgX3JlYWN0KS51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgY29uc3QgY2FjaGVLZXkgPSBpZCB8fCBzcmM7XG4gICAgICAgIGlmICghaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAvLyBSdW4gb25SZWFkeSBpZiBzY3JpcHQgaGFzIGxvYWRlZCBiZWZvcmUgYnV0IGNvbXBvbmVudCBpcyByZS1tb3VudGVkXG4gICAgICAgICAgICBpZiAob25SZWFkeSAmJiBjYWNoZUtleSAmJiBMb2FkQ2FjaGUuaGFzKGNhY2hlS2V5KSkge1xuICAgICAgICAgICAgICAgIG9uUmVhZHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIG9uUmVhZHksXG4gICAgICAgIGlkLFxuICAgICAgICBzcmNcbiAgICBdKTtcbiAgICBjb25zdCBoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkID0gKDAsIF9yZWFjdCkudXNlUmVmKGZhbHNlKTtcbiAgICAoMCwgX3JlYWN0KS51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGlmIChzdHJhdGVneSA9PT0gJ2FmdGVySW50ZXJhY3RpdmUnKSB7XG4gICAgICAgICAgICAgICAgbG9hZFNjcmlwdChwcm9wcyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnbGF6eU9ubG9hZCcpIHtcbiAgICAgICAgICAgICAgICBsb2FkTGF6eVNjcmlwdChwcm9wcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBwcm9wcyxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICBdKTtcbiAgICBpZiAoc3RyYXRlZ3kgPT09ICdiZWZvcmVJbnRlcmFjdGl2ZScgfHwgc3RyYXRlZ3kgPT09ICd3b3JrZXInKSB7XG4gICAgICAgIGlmICh1cGRhdGVTY3JpcHRzKSB7XG4gICAgICAgICAgICBzY3JpcHRzW3N0cmF0ZWd5XSA9IChzY3JpcHRzW3N0cmF0ZWd5XSB8fCBbXSkuY29uY2F0KFtcbiAgICAgICAgICAgICAgICBfZXh0ZW5kcyh7XG4gICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICAgICAgICAgIG9uTG9hZCxcbiAgICAgICAgICAgICAgICAgICAgb25SZWFkeSxcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvclxuICAgICAgICAgICAgICAgIH0sIHJlc3RQcm9wcyksIFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB1cGRhdGVTY3JpcHRzKHNjcmlwdHMpO1xuICAgICAgICB9IGVsc2UgaWYgKGdldElzU3NyICYmIGdldElzU3NyKCkpIHtcbiAgICAgICAgICAgIC8vIFNjcmlwdCBoYXMgYWxyZWFkeSBsb2FkZWQgZHVyaW5nIFNTUlxuICAgICAgICAgICAgTG9hZENhY2hlLmFkZChpZCB8fCBzcmMpO1xuICAgICAgICB9IGVsc2UgaWYgKGdldElzU3NyICYmICFnZXRJc1NzcigpKSB7XG4gICAgICAgICAgICBsb2FkU2NyaXB0KHByb3BzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShTY3JpcHQsICdfX25leHRTY3JpcHQnLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xudmFyIF9kZWZhdWx0ID0gU2NyaXB0O1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjcmlwdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJoYW5kbGVDbGllbnRTY3JpcHRMb2FkIiwiaW5pdFNjcmlwdExvYWRlciIsImRlZmF1bHQiLCJfZXh0ZW5kcyIsInJlcXVpcmUiLCJfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIiwiX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UiLCJfcmVhY3QiLCJfaGVhZE1hbmFnZXJDb250ZXh0IiwiX2hlYWRNYW5hZ2VyIiwiX3JlcXVlc3RJZGxlQ2FsbGJhY2siLCJTY3JpcHRDYWNoZSIsIk1hcCIsIkxvYWRDYWNoZSIsIlNldCIsImlnbm9yZVByb3BzIiwibG9hZFNjcmlwdCIsInByb3BzIiwic3JjIiwiaWQiLCJvbkxvYWQiLCJvblJlYWR5IiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJjaGlsZHJlbiIsInN0cmF0ZWd5Iiwib25FcnJvciIsImNhY2hlS2V5IiwiaGFzIiwiYWRkIiwiZ2V0IiwidGhlbiIsImFmdGVyTG9hZCIsImVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwibG9hZFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwiY2FsbCIsImNhdGNoIiwiaW5uZXJIVE1MIiwiX19odG1sIiwidGV4dENvbnRlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwic2V0IiwiayIsImVudHJpZXMiLCJ1bmRlZmluZWQiLCJpbmNsdWRlcyIsImF0dHIiLCJET01BdHRyaWJ1dGVOYW1lcyIsInRvTG93ZXJDYXNlIiwic2V0QXR0cmlidXRlIiwiYm9keSIsImFwcGVuZENoaWxkIiwid2luZG93IiwicmVxdWVzdElkbGVDYWxsYmFjayIsImxvYWRMYXp5U2NyaXB0IiwicmVhZHlTdGF0ZSIsImFkZEJlZm9yZUludGVyYWN0aXZlVG9DYWNoZSIsInNjcmlwdHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsInNjcmlwdCIsImdldEF0dHJpYnV0ZSIsInNjcmlwdExvYWRlckl0ZW1zIiwiU2NyaXB0IiwicmVzdFByb3BzIiwidXBkYXRlU2NyaXB0cyIsImdldElzU3NyIiwidXNlQ29udGV4dCIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsImhhc09uUmVhZHlFZmZlY3RDYWxsZWQiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaGFzTG9hZFNjcmlwdEVmZmVjdENhbGxlZCIsImNvbmNhdCIsIl9kZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/script.js\n");
|
|
210
|
+
|
|
211
|
+
/***/ }),
|
|
212
|
+
|
|
213
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/trusted-types.js":
|
|
214
|
+
/*!**********************************************************************************************************************************************************************!*\
|
|
215
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/trusted-types.js ***!
|
|
216
|
+
\**********************************************************************************************************************************************************************/
|
|
217
|
+
/***/ ((module, exports) => {
|
|
218
|
+
|
|
219
|
+
"use strict";
|
|
220
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.__unsafeCreateTrustedScriptURL = __unsafeCreateTrustedScriptURL;\n/**\n * Stores the Trusted Types Policy. Starts as undefined and can be set to null\n * if Trusted Types is not supported in the browser.\n */ let policy;\n/**\n * Getter for the Trusted Types Policy. If it is undefined, it is instantiated\n * here or set to null if Trusted Types is not supported in the browser.\n */ function getPolicy() {\n if (typeof policy === \"undefined\" && \"undefined\" !== \"undefined\") { var ref; }\n return policy;\n}\nfunction __unsafeCreateTrustedScriptURL(url) {\n var ref;\n return ((ref = getPolicy()) == null ? void 0 : ref.createScriptURL(url)) || url;\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=trusted-types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3RydXN0ZWQtdHlwZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxLQUFLLEVBQUUsSUFBSTtDQUNkLEVBQUMsQ0FBQztBQUNIRCxzQ0FBc0MsR0FBR0UsOEJBQThCLENBQUM7QUFDeEU7OztDQUdDLEdBQUcsSUFBSUMsTUFBTTtBQUNkOzs7Q0FHQyxHQUFHLFNBQVNDLFNBQVMsR0FBRztJQUNyQixJQUFJLE9BQU9ELE1BQU0sS0FBSyxXQUFXLElBQUksV0FBYSxLQUFLLFdBQVcsRUFBRSxZQU9uRTtJQUNELE9BQU9BLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBQ0QsU0FBU0QsOEJBQThCLENBQUNXLEdBQUcsRUFBRTtJQUN6QyxJQUFJUixHQUFHO0lBQ1AsT0FBTyxDQUFDLENBQUNBLEdBQUcsR0FBR0QsU0FBUyxFQUFFLEtBQUssSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHQyxHQUFHLENBQUNPLGVBQWUsQ0FBQ0MsR0FBRyxDQUFDLEtBQUtBLEdBQUcsQ0FBQztBQUNwRixDQUFDO0FBRUQsSUFBSSxDQUFDLE9BQU9iLE9BQU8sQ0FBQ2MsT0FBTyxLQUFLLFVBQVUsSUFBSyxPQUFPZCxPQUFPLENBQUNjLE9BQU8sS0FBSyxRQUFRLElBQUlkLE9BQU8sQ0FBQ2MsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFLLE9BQU9kLE9BQU8sQ0FBQ2MsT0FBTyxDQUFDQyxVQUFVLEtBQUssV0FBVyxFQUFFO0lBQ3JLakIsTUFBTSxDQUFDQyxjQUFjLENBQUNDLE9BQU8sQ0FBQ2MsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUFFYixLQUFLLEVBQUUsSUFBSTtLQUFFLENBQUMsQ0FBQztJQUN0RUgsTUFBTSxDQUFDa0IsTUFBTSxDQUFDaEIsT0FBTyxDQUFDYyxPQUFPLEVBQUVkLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDaUIsTUFBTSxDQUFDakIsT0FBTyxHQUFHQSxPQUFPLENBQUNjLE9BQU8sQ0FBQztBQUNuQyxDQUFDLENBRUQseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGZlY29tbXVuaXR5L3JlYWN0cHJlc3MtdGVtcGxhdGUtaGVsbG8td29ybGQvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3RydXN0ZWQtdHlwZXMuanM/YTE3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMID0gX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMO1xuLyoqXG4gKiBTdG9yZXMgdGhlIFRydXN0ZWQgVHlwZXMgUG9saWN5LiBTdGFydHMgYXMgdW5kZWZpbmVkIGFuZCBjYW4gYmUgc2V0IHRvIG51bGxcbiAqIGlmIFRydXN0ZWQgVHlwZXMgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3Nlci5cbiAqLyBsZXQgcG9saWN5O1xuLyoqXG4gKiBHZXR0ZXIgZm9yIHRoZSBUcnVzdGVkIFR5cGVzIFBvbGljeS4gSWYgaXQgaXMgdW5kZWZpbmVkLCBpdCBpcyBpbnN0YW50aWF0ZWRcbiAqIGhlcmUgb3Igc2V0IHRvIG51bGwgaWYgVHJ1c3RlZCBUeXBlcyBpcyBub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyLlxuICovIGZ1bmN0aW9uIGdldFBvbGljeSgpIHtcbiAgICBpZiAodHlwZW9mIHBvbGljeSA9PT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgcG9saWN5ID0gKChyZWYgPSB3aW5kb3cudHJ1c3RlZFR5cGVzKSA9PSBudWxsID8gdm9pZCAwIDogcmVmLmNyZWF0ZVBvbGljeSgnbmV4dGpzJywge1xuICAgICAgICAgICAgY3JlYXRlSFRNTDogKGlucHV0KT0+aW5wdXQsXG4gICAgICAgICAgICBjcmVhdGVTY3JpcHQ6IChpbnB1dCk9PmlucHV0LFxuICAgICAgICAgICAgY3JlYXRlU2NyaXB0VVJMOiAoaW5wdXQpPT5pbnB1dFxuICAgICAgICB9KSkgfHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHBvbGljeTtcbn1cbmZ1bmN0aW9uIF9fdW5zYWZlQ3JlYXRlVHJ1c3RlZFNjcmlwdFVSTCh1cmwpIHtcbiAgICB2YXIgcmVmO1xuICAgIHJldHVybiAoKHJlZiA9IGdldFBvbGljeSgpKSA9PSBudWxsID8gdm9pZCAwIDogcmVmLmNyZWF0ZVNjcmlwdFVSTCh1cmwpKSB8fCB1cmw7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRydXN0ZWQtdHlwZXMuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMIiwicG9saWN5IiwiZ2V0UG9saWN5IiwicmVmIiwid2luZG93IiwidHJ1c3RlZFR5cGVzIiwiY3JlYXRlUG9saWN5IiwiY3JlYXRlSFRNTCIsImlucHV0IiwiY3JlYXRlU2NyaXB0IiwiY3JlYXRlU2NyaXB0VVJMIiwidXJsIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/trusted-types.js\n");
|
|
221
|
+
|
|
222
|
+
/***/ }),
|
|
223
|
+
|
|
224
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/use-intersection.js":
|
|
225
|
+
/*!*************************************************************************************************************************************************************************!*\
|
|
226
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/use-intersection.js ***!
|
|
227
|
+
\*************************************************************************************************************************************************************************/
|
|
228
|
+
/***/ ((module, exports, __webpack_require__) => {
|
|
229
|
+
|
|
230
|
+
"use strict";
|
|
231
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\nvar _react = __webpack_require__(/*! react */ \"react\");\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === \"function\";\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || \"\"\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id , observer , elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection({ rootRef , rootMargin , disabled }) {\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react).useState(false);\n const [element, setElement] = (0, _react).useState(null);\n (0, _react).useEffect(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestIdleCallback).requestIdleCallback(()=>setVisible(true));\n return ()=>(0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n }\n }\n }, [\n element,\n isDisabled,\n rootMargin,\n rootRef,\n visible\n ]);\n const resetVisible = (0, _react).useCallback(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\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=use-intersection.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxLQUFLLEVBQUUsSUFBSTtDQUNkLEVBQUMsQ0FBQztBQUNIRCx1QkFBdUIsR0FBR0UsZUFBZSxDQUFDO0FBQzFDLElBQUlDLE1BQU0sR0FBR0MsbUJBQU8sQ0FBQyxvQkFBTyxDQUFDO0FBQzdCLElBQUlDLG9CQUFvQixHQUFHRCxtQkFBTyxDQUFDLHVNQUF5QixDQUFDO0FBQzdELE1BQU1FLHVCQUF1QixHQUFHLE9BQU9DLG9CQUFvQixLQUFLLFVBQVU7QUFDMUUsTUFBTUMsU0FBUyxHQUFHLElBQUlDLEdBQUcsRUFBRTtBQUMzQixNQUFNQyxNQUFNLEdBQUcsRUFBRTtBQUNqQixTQUFTQyxjQUFjLENBQUNDLE9BQU8sRUFBRTtJQUM3QixNQUFNQyxFQUFFLEdBQUc7UUFDUEMsSUFBSSxFQUFFRixPQUFPLENBQUNFLElBQUksSUFBSSxJQUFJO1FBQzFCQyxNQUFNLEVBQUVILE9BQU8sQ0FBQ0ksVUFBVSxJQUFJLEVBQUU7S0FDbkM7SUFDRCxNQUFNQyxRQUFRLEdBQUdQLE1BQU0sQ0FBQ1EsSUFBSSxDQUFDLENBQUNDLEdBQUcsR0FBR0EsR0FBRyxDQUFDTCxJQUFJLEtBQUtELEVBQUUsQ0FBQ0MsSUFBSSxJQUFJSyxHQUFHLENBQUNKLE1BQU0sS0FBS0YsRUFBRSxDQUFDRSxNQUFNLENBQUM7SUFDckYsSUFBSUssUUFBUTtJQUNaLElBQUlILFFBQVEsRUFBRTtRQUNWRyxRQUFRLEdBQUdaLFNBQVMsQ0FBQ2EsR0FBRyxDQUFDSixRQUFRLENBQUMsQ0FBQztRQUNuQyxJQUFJRyxRQUFRLEVBQUU7WUFD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QUFDMEQsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFLLE9BQU8xRCxPQUFPLENBQUMwRCxPQUFPLENBQUNDLFVBQVUsS0FBSyxXQUFXLEVBQUU7SUFDcks3RCxNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDMEQsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUFFekQsS0FBSyxFQUFFLElBQUk7S0FBRSxDQUFDLENBQUM7SUFDdEVILE1BQU0sQ0FBQzhELE1BQU0sQ0FBQzVELE9BQU8sQ0FBQzBELE9BQU8sRUFBRTFELE9BQU8sQ0FBQyxDQUFDO0lBQ3hDNkQsTUFBTSxDQUFDN0QsT0FBTyxHQUFHQSxPQUFPLENBQUMwRCxPQUFPLENBQUM7QUFDbkMsQ0FBQyxDQUVELDRDQUE0QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9uZXh0QDEyLjMuNF9AYmFiZWwrY29yZUA3LjI1LjJfcmVhY3QtZG9tQDE3LjAuMl9yZWFjdEAxNy4wLjJfX3JlYWN0QDE3LjAuMl9zYXNzQDEuNzkuMy9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzPzEwYWYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnVzZUludGVyc2VjdGlvbiA9IHVzZUludGVyc2VjdGlvbjtcbnZhciBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG52YXIgX3JlcXVlc3RJZGxlQ2FsbGJhY2sgPSByZXF1aXJlKFwiLi9yZXF1ZXN0LWlkbGUtY2FsbGJhY2tcIik7XG5jb25zdCBoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJztcbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmNvbnN0IGlkTGlzdCA9IFtdO1xuZnVuY3Rpb24gY3JlYXRlT2JzZXJ2ZXIob3B0aW9ucykge1xuICAgIGNvbnN0IGlkID0ge1xuICAgICAgICByb290OiBvcHRpb25zLnJvb3QgfHwgbnVsbCxcbiAgICAgICAgbWFyZ2luOiBvcHRpb25zLnJvb3RNYXJnaW4gfHwgJydcbiAgICB9O1xuICAgIGNvbnN0IGV4aXN0aW5nID0gaWRMaXN0LmZpbmQoKG9iaik9Pm9iai5yb290ID09PSBpZC5yb290ICYmIG9iai5tYXJnaW4gPT09IGlkLm1hcmdpbik7XG4gICAgbGV0IGluc3RhbmNlO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgICBpbnN0YW5jZSA9IG9ic2VydmVycy5nZXQoZXhpc3RpbmcpO1xuICAgICAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9O1xuICAgIGlkTGlzdC5wdXNoKGlkKTtcbiAgICBvYnNlcnZlcnMuc2V0KGlkLCBpbnN0YW5jZSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xufVxuZnVuY3Rpb24gb2JzZXJ2ZShlbGVtZW50LCBjYWxsYmFjaywgb3B0aW9ucykge1xuICAgIGNvbnN0IHsgaWQgLCBvYnNlcnZlciAsIGVsZW1lbnRzICB9ID0gY3JlYXRlT2JzZXJ2ZXIob3B0aW9ucyk7XG4gICAgZWxlbWVudHMuc2V0KGVsZW1lbnQsIGNhbGxiYWNrKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgICAgIGVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAvLyBEZXN0cm95IG9ic2VydmVyIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gd2F0Y2g6XG4gICAgICAgIGlmIChlbGVtZW50cy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICBvYnNlcnZlcnMuZGVsZXRlKGlkKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gaWRMaXN0LmZpbmRJbmRleCgob2JqKT0+b2JqLnJvb3QgPT09IGlkLnJvb3QgJiYgb2JqLm1hcmdpbiA9PT0gaWQubWFyZ2luKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgaWRMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdFJlZiAsIHJvb3RNYXJnaW4gLCBkaXNhYmxlZCAgfSkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCAhaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gKDAsIF9yZWFjdCkudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtlbGVtZW50LCBzZXRFbGVtZW50XSA9ICgwLCBfcmVhY3QpLnVzZVN0YXRlKG51bGwpO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIGlmIChpc0Rpc2FibGVkIHx8IHZpc2libGUpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQudGFnTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVub2JzZXJ2ZSA9IG9ic2VydmUoZWxlbWVudCwgKGlzVmlzaWJsZSk9PmlzVmlzaWJsZSAmJiBzZXRWaXNpYmxlKGlzVmlzaWJsZSksIHtcbiAgICAgICAgICAgICAgICAgICAgcm9vdDogcm9vdFJlZiA9PSBudWxsID8gdm9pZCAwIDogcm9vdFJlZi5jdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVub2JzZXJ2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkbGVDYWxsYmFjayA9ICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+c2V0VmlzaWJsZSh0cnVlKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpPT4oMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLmNhbmNlbElkbGVDYWxsYmFjayhpZGxlQ2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBlbGVtZW50LFxuICAgICAgICBpc0Rpc2FibGVkLFxuICAgICAgICByb290TWFyZ2luLFxuICAgICAgICByb290UmVmLFxuICAgICAgICB2aXNpYmxlXG4gICAgXSk7XG4gICAgY29uc3QgcmVzZXRWaXNpYmxlID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldEVsZW1lbnQsXG4gICAgICAgIHZpc2libGUsXG4gICAgICAgIHJlc2V0VmlzaWJsZVxuICAgIF07XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsIm9ic2VydmVycyIsIk1hcCIsImlkTGlzdCIsImNyZWF0ZU9ic2VydmVyIiwib3B0aW9ucyIsImlkIiwicm9vdCIsIm1hcmdpbiIsInJvb3RNYXJnaW4iLCJleGlzdGluZyIsImZpbmQiLCJvYmoiLCJpbnN0YW5jZSIsImdldCIsImVsZW1lbnRzIiwib2JzZXJ2ZXIiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImVudHJ5IiwiY2FsbGJhY2siLCJ0YXJnZXQiLCJpc1Zpc2libGUiLCJpc0ludGVyc2VjdGluZyIsImludGVyc2VjdGlvblJhdGlvIiwicHVzaCIsInNldCIsIm9ic2VydmUiLCJlbGVtZW50IiwidW5vYnNlcnZlIiwiZGVsZXRlIiwic2l6ZSIsImRpc2Nvbm5lY3QiLCJpbmRleCIsImZpbmRJbmRleCIsInNwbGljZSIsInJvb3RSZWYiLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ2aXNpYmxlIiwic2V0VmlzaWJsZSIsInVzZVN0YXRlIiwic2V0RWxlbWVudCIsInVzZUVmZmVjdCIsInRhZ05hbWUiLCJjdXJyZW50IiwiaWRsZUNhbGxiYWNrIiwicmVxdWVzdElkbGVDYWxsYmFjayIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlc2V0VmlzaWJsZSIsInVzZUNhbGxiYWNrIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/use-intersection.js\n");
|
|
232
|
+
|
|
233
|
+
/***/ }),
|
|
234
|
+
|
|
235
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/shared/lib/router/router.js":
|
|
236
|
+
/*!**************************************************************************************************************************************************************************!*\
|
|
237
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/shared/lib/router/router.js ***!
|
|
238
|
+
\**************************************************************************************************************************************************************************/
|
|
239
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
240
|
+
|
|
241
|
+
"use strict";
|
|
242
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.matchesMiddleware = matchesMiddleware;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports.createKey = createKey;\nexports[\"default\"] = void 0;\nvar _async_to_generator = (__webpack_require__(/*! @swc/helpers/lib/_async_to_generator.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_async_to_generator.js\")[\"default\"]);\nvar _extends = (__webpack_require__(/*! @swc/helpers/lib/_extends.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_extends.js\")[\"default\"]);\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _interop_require_wildcard = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_wildcard.js */ \"../../node_modules/.pnpm/@swc+helpers@0.4.11/node_modules/@swc/helpers/lib/_interop_require_wildcard.js\")[\"default\"]);\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/normalize-trailing-slash.js\");\nvar _removeTrailingSlash = __webpack_require__(/*! ./utils/remove-trailing-slash */ \"../shared/lib/router/utils/remove-trailing-slash\");\nvar _routeLoader = __webpack_require__(/*! ../../../client/route-loader */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/route-loader.js\");\nvar _script = __webpack_require__(/*! ../../../client/script */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/script.js\");\nvar _isError = _interop_require_wildcard(__webpack_require__(/*! ../../../lib/is-error */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/lib/is-error.js\"));\nvar _denormalizePagePath = __webpack_require__(/*! ../page-path/denormalize-page-path */ \"../page-path/denormalize-page-path\");\nvar _normalizeLocalePath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"../i18n/normalize-locale-path\");\nvar _mitt = _interop_require_default(__webpack_require__(/*! ../mitt */ \"../mitt\"));\nvar _utils = __webpack_require__(/*! ../utils */ \"../shared/lib/utils\");\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./utils/is-dynamic\");\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./utils/parse-relative-url\");\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./utils/querystring\");\nvar _resolveRewrites = _interop_require_default(__webpack_require__(/*! ./utils/resolve-rewrites */ \"./utils/resolve-rewrites\"));\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./utils/route-matcher\");\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./utils/route-regex\");\nvar _formatUrl = __webpack_require__(/*! ./utils/format-url */ \"./utils/format-url\");\nvar _detectDomainLocale = __webpack_require__(/*! ../../../client/detect-domain-locale */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/detect-domain-locale.js\");\nvar _parsePath = __webpack_require__(/*! ./utils/parse-path */ \"../shared/lib/router/utils/parse-path\");\nvar _addLocale = __webpack_require__(/*! ../../../client/add-locale */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-locale.js\");\nvar _removeLocale = __webpack_require__(/*! ../../../client/remove-locale */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/remove-locale.js\");\nvar _removeBasePath = __webpack_require__(/*! ../../../client/remove-base-path */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/remove-base-path.js\");\nvar _addBasePath = __webpack_require__(/*! ../../../client/add-base-path */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/add-base-path.js\");\nvar _hasBasePath = __webpack_require__(/*! ../../../client/has-base-path */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/has-base-path.js\");\nvar _getNextPathnameInfo = __webpack_require__(/*! ./utils/get-next-pathname-info */ \"./utils/get-next-pathname-info\");\nvar _formatNextPathnameInfo = __webpack_require__(/*! ./utils/format-next-pathname-info */ \"./utils/format-next-pathname-info\");\nvar _compareStates = __webpack_require__(/*! ./utils/compare-states */ \"./utils/compare-states\");\nvar _isBot = __webpack_require__(/*! ./utils/is-bot */ \"./utils/is-bot\");\nfunction buildCancellationError() {\n return Object.assign(new Error(\"Route Cancelled\"), {\n cancelled: true\n });\n}\nfunction matchesMiddleware(options) {\n return _matchesMiddleware.apply(this, arguments);\n}\nfunction _matchesMiddleware() {\n _matchesMiddleware = _async_to_generator(function*(options) {\n const matchers = yield Promise.resolve(options.router.pageLoader.getMiddleware());\n if (!matchers) return false;\n const { pathname: asPathname } = (0, _parsePath).parsePath(options.asPath);\n // remove basePath first since path prefix has to be in the order of `/${basePath}/${locale}`\n const cleanedAs = (0, _hasBasePath).hasBasePath(asPathname) ? (0, _removeBasePath).removeBasePath(asPathname) : asPathname;\n const asWithBasePathAndLocale = (0, _addBasePath).addBasePath((0, _addLocale).addLocale(cleanedAs, options.locale));\n // Check only path match on client. Matching \"has\" should be done on server\n // where we can access more info such as headers, HttpOnly cookie, etc.\n return matchers.some((m)=>new RegExp(m.regexp).test(asWithBasePathAndLocale));\n });\n return _matchesMiddleware.apply(this, arguments);\n}\nfunction stripOrigin(url) {\n const origin = (0, _utils).getLocationOrigin();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\nfunction omit(object, keys) {\n const omitted = {};\n Object.keys(object).forEach((key)=>{\n if (!keys.includes(key)) {\n omitted[key] = object[key];\n }\n });\n return omitted;\n}\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils).isAbsoluteUrl(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils).getLocationOrigin();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasBasePath).hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = \"\";\n const dynamicRegex = (0, _routeRegex).getRouteRegex(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = (asPathname !== route ? (0, _routeMatcher).getRouteMatcher(dynamicRegex)(asPathname) : \"\") || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n if (!params.every((param)=>{\n let value = dynamicMatches[param] || \"\";\n const { repeat , optional } = dynamicGroups[param];\n // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n let replaced = `[${repeat ? \"...\" : \"\"}${param}]`;\n if (optional) {\n replaced = `${!value ? \"/\" : \"\"}[${replaced}]`;\n }\n if (repeat && !Array.isArray(value)) value = [\n value\n ];\n return (optional || param in dynamicMatches) && // Interpolate group into data URL if present\n (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n (segment)=>encodeURIComponent(segment)).join(\"/\") : encodeURIComponent(value)) || \"/\");\n })) {\n interpolatedRoute = \"\" // did not satisfy all requirements\n ;\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n return {\n params,\n result: interpolatedRoute\n };\n}\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === \"string\" ? href : (0, _formatUrl).formatWithValidation(href);\n // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n const urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split(\"?\");\n if ((urlParts[0] || \"\").match(/(\\/\\/|\\\\)/)) {\n console.error(`Invalid href passed to next/router: ${urlAsString}, repeated forward-slashes (//) or backslashes \\\\ are not valid in the href`);\n const normalizedUrl = (0, _utils).normalizeRepeatedSlashes(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : \"\") + normalizedUrl;\n }\n // Return because it cannot be routed by the Next.js router\n if (!isLocalURL(urlAsString)) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n try {\n base = new URL(urlAsString.startsWith(\"#\") ? router.asPath : router.pathname, \"http://n\");\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL(\"/\", \"http://n\");\n }\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash).normalizePathTrailingSlash(finalUrl.pathname);\n let interpolatedAs = \"\";\n if ((0, _isDynamic).isDynamicRoute(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring).searchParamsToUrlQuery(finalUrl.searchParams);\n const { result , params } = interpolateAs(finalUrl.pathname, finalUrl.pathname, query);\n if (result) {\n interpolatedAs = (0, _formatUrl).formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omit(query, params)\n });\n }\n }\n // if the origin didn't change, it means we received a relative href\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [\n resolvedHref,\n interpolatedAs || resolvedHref\n ] : resolvedHref;\n } catch (_1) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n}\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n let [resolvedHref, resolvedAs] = resolveHref(router, url, true);\n const origin = (0, _utils).getLocationOrigin();\n const hrefHadOrigin = resolvedHref.startsWith(origin);\n const asHadOrigin = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n const preparedUrl = hrefHadOrigin ? resolvedHref : (0, _addBasePath).addBasePath(resolvedHref);\n const preparedAs = as ? stripOrigin(resolveHref(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : (0, _addBasePath).addBasePath(preparedAs)\n };\n}\nfunction resolveDynamicRoute(pathname, pages) {\n const cleanPathname = (0, _removeTrailingSlash).removeTrailingSlash((0, _denormalizePagePath).denormalizePagePath(pathname));\n if (cleanPathname === \"/404\" || cleanPathname === \"/_error\") {\n return pathname;\n }\n // handle resolving href for dynamic routes\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some((page)=>{\n if ((0, _isDynamic).isDynamicRoute(page) && (0, _routeRegex).getRouteRegex(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n return (0, _removeTrailingSlash).removeTrailingSlash(pathname);\n}\nfunction getMiddlewareData(source, response, options) {\n const nextConfig = {\n basePath: options.router.basePath,\n i18n: {\n locales: options.router.locales\n },\n trailingSlash: Boolean(false)\n };\n const rewriteHeader = response.headers.get(\"x-nextjs-rewrite\");\n let rewriteTarget = rewriteHeader || response.headers.get(\"x-nextjs-matched-path\");\n const matchedPath = response.headers.get(\"x-matched-path\");\n if (matchedPath && !rewriteTarget && !matchedPath.includes(\"__next_data_catchall\") && !matchedPath.includes(\"/_error\") && !matchedPath.includes(\"/404\")) {\n // leverage x-matched-path to detect next.config.js rewrites\n rewriteTarget = matchedPath;\n }\n if (rewriteTarget) {\n if (rewriteTarget.startsWith(\"/\")) {\n const parsedRewriteTarget = (0, _parseRelativeUrl).parseRelativeUrl(rewriteTarget);\n const pathnameInfo = (0, _getNextPathnameInfo).getNextPathnameInfo(parsedRewriteTarget.pathname, {\n nextConfig,\n parseData: true\n });\n let fsPathname = (0, _removeTrailingSlash).removeTrailingSlash(pathnameInfo.pathname);\n return Promise.all([\n options.router.pageLoader.getPageList(),\n (0, _routeLoader).getClientBuildManifest(), \n ]).then(([pages, { __rewrites: rewrites }])=>{\n let as = (0, _addLocale).addLocale(pathnameInfo.pathname, pathnameInfo.locale);\n if ((0, _isDynamic).isDynamicRoute(as) || !rewriteHeader && pages.includes((0, _normalizeLocalePath).normalizeLocalePath((0, _removeBasePath).removeBasePath(as), options.router.locales).pathname)) {\n const parsedSource = (0, _getNextPathnameInfo).getNextPathnameInfo((0, _parseRelativeUrl).parseRelativeUrl(source).pathname, {\n parseData: true\n });\n as = (0, _addBasePath).addBasePath(parsedSource.pathname);\n parsedRewriteTarget.pathname = as;\n }\n if (false) {} else if (!pages.includes(fsPathname)) {\n const resolvedPathname = resolveDynamicRoute(fsPathname, pages);\n if (resolvedPathname !== fsPathname) {\n fsPathname = resolvedPathname;\n }\n }\n const resolvedHref = !pages.includes(fsPathname) ? resolveDynamicRoute((0, _normalizeLocalePath).normalizeLocalePath((0, _removeBasePath).removeBasePath(parsedRewriteTarget.pathname), options.router.locales).pathname, pages) : fsPathname;\n if ((0, _isDynamic).isDynamicRoute(resolvedHref)) {\n const matches = (0, _routeMatcher).getRouteMatcher((0, _routeRegex).getRouteRegex(resolvedHref))(as);\n Object.assign(parsedRewriteTarget.query, matches || {});\n }\n return {\n type: \"rewrite\",\n parsedAs: parsedRewriteTarget,\n resolvedHref\n };\n });\n }\n const src = (0, _parsePath).parsePath(source);\n const pathname = (0, _formatNextPathnameInfo).formatNextPathnameInfo(_extends({}, (0, _getNextPathnameInfo).getNextPathnameInfo(src.pathname, {\n nextConfig,\n parseData: true\n }), {\n defaultLocale: options.router.defaultLocale,\n buildId: \"\"\n }));\n return Promise.resolve({\n type: \"redirect-external\",\n destination: `${pathname}${src.query}${src.hash}`\n });\n }\n const redirectTarget = response.headers.get(\"x-nextjs-redirect\");\n if (redirectTarget) {\n if (redirectTarget.startsWith(\"/\")) {\n const src1 = (0, _parsePath).parsePath(redirectTarget);\n const pathname1 = (0, _formatNextPathnameInfo).formatNextPathnameInfo(_extends({}, (0, _getNextPathnameInfo).getNextPathnameInfo(src1.pathname, {\n nextConfig,\n parseData: true\n }), {\n defaultLocale: options.router.defaultLocale,\n buildId: \"\"\n }));\n return Promise.resolve({\n type: \"redirect-internal\",\n newAs: `${pathname1}${src1.query}${src1.hash}`,\n newUrl: `${pathname1}${src1.query}${src1.hash}`\n });\n }\n return Promise.resolve({\n type: \"redirect-external\",\n destination: redirectTarget\n });\n }\n return Promise.resolve({\n type: \"next\"\n });\n}\nfunction withMiddlewareEffects(options) {\n return matchesMiddleware(options).then((matches)=>{\n if (matches && options.fetchData) {\n return options.fetchData().then((data)=>getMiddlewareData(data.dataHref, data.response, options).then((effect)=>({\n dataHref: data.dataHref,\n cacheKey: data.cacheKey,\n json: data.json,\n response: data.response,\n text: data.text,\n effect\n }))).catch((_err)=>{\n /**\n * TODO: Revisit this in the future.\n * For now we will not consider middleware data errors to be fatal.\n * maybe we should revisit in the future.\n */ return null;\n });\n }\n return null;\n });\n}\nconst manualScrollRestoration = false && 0;\nconst SSG_DATA_NOT_FOUND = Symbol(\"SSG_DATA_NOT_FOUND\");\nfunction fetchRetry(url, attempts, options) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: \"same-origin\",\n method: options.method || \"GET\",\n headers: Object.assign({}, options.headers, {\n \"x-nextjs-data\": \"1\"\n })\n }).then((response)=>{\n return !response.ok && attempts > 1 && response.status >= 500 ? fetchRetry(url, attempts - 1, options) : response;\n });\n}\nconst backgroundCache = {};\nfunction handleSmoothScroll(fn) {\n const htmlElement = document.documentElement;\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = \"auto\";\n fn();\n htmlElement.style.scrollBehavior = existing;\n}\nfunction tryToParseAsJSON(text) {\n try {\n return JSON.parse(text);\n } catch (error) {\n return null;\n }\n}\nfunction fetchNextData({ dataHref , inflightCache , isPrefetch , hasMiddleware , isServerRender , parseJSON , persistCache , isBackground , unstable_skipClientCache }) {\n const { href: cacheKey } = new URL(dataHref, window.location.href);\n var ref1;\n const getData = (params)=>{\n return fetchRetry(dataHref, isServerRender ? 3 : 1, {\n headers: isPrefetch ? {\n purpose: \"prefetch\"\n } : {},\n method: (ref1 = params == null ? void 0 : params.method) != null ? ref1 : \"GET\"\n }).then((response)=>{\n if (response.ok && (params == null ? void 0 : params.method) === \"HEAD\") {\n return {\n dataHref,\n response,\n text: \"\",\n json: {},\n cacheKey\n };\n }\n return response.text().then((text)=>{\n if (!response.ok) {\n /**\n * When the data response is a redirect because of a middleware\n * we do not consider it an error. The headers must bring the\n * mapped location.\n * TODO: Change the status code in the handler.\n */ if (hasMiddleware && [\n 301,\n 302,\n 307,\n 308\n ].includes(response.status)) {\n return {\n dataHref,\n response,\n text,\n json: {},\n cacheKey\n };\n }\n if (!hasMiddleware && response.status === 404) {\n var ref;\n if ((ref = tryToParseAsJSON(text)) == null ? void 0 : ref.notFound) {\n return {\n dataHref,\n json: {\n notFound: SSG_DATA_NOT_FOUND\n },\n response,\n text,\n cacheKey\n };\n }\n }\n const error = new Error(`Failed to load static props`);\n /**\n * We should only trigger a server-side transition if this was\n * caused on a client-side transition. Otherwise, we'd get into\n * an infinite loop.\n */ if (!isServerRender) {\n (0, _routeLoader).markAssetError(error);\n }\n throw error;\n }\n return {\n dataHref,\n json: parseJSON ? tryToParseAsJSON(text) : null,\n response,\n text,\n cacheKey\n };\n });\n }).then((data)=>{\n if (!persistCache || \"development\" !== \"production\" || 0) {\n delete inflightCache[cacheKey];\n }\n return data;\n }).catch((err)=>{\n delete inflightCache[cacheKey];\n throw err;\n });\n };\n // when skipping client cache we wait to update\n // inflight cache until successful data response\n // this allows racing click event with fetching newer data\n // without blocking navigation when stale data is available\n if (unstable_skipClientCache && persistCache) {\n return getData({}).then((data)=>{\n inflightCache[cacheKey] = Promise.resolve(data);\n return data;\n });\n }\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n return inflightCache[cacheKey] = getData(isBackground ? {\n method: \"HEAD\"\n } : {});\n}\nfunction createKey() {\n return Math.random().toString(36).slice(2, 10);\n}\nfunction handleHardNavigation({ url , router }) {\n // ensure we don't trigger a hard navigation to the same\n // URL as this can end up with an infinite refresh\n if (url === (0, _addBasePath).addBasePath((0, _addLocale).addLocale(router.asPath, router.locale))) {\n throw new Error(`Invariant: attempted to hard navigate to the same URL ${url} ${location.href}`);\n }\n window.location.href = url;\n}\nconst getCancelledHandler = ({ route , router })=>{\n let cancelled = false;\n const cancel = router.clc = ()=>{\n cancelled = true;\n };\n const handleCancelled = ()=>{\n if (cancelled) {\n const error = new Error(`Abort fetching component for route: \"${route}\"`);\n error.cancelled = true;\n throw error;\n }\n if (cancel === router.clc) {\n router.clc = null;\n }\n };\n return handleCancelled;\n};\nclass Router {\n reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */ back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */ push(url, as, options = {}) {\n if (false) {}\n ({ url , as } = prepareUrlAs(this, url, as));\n return this.change(\"pushState\", url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */ replace(url, as, options = {}) {\n ({ url , as } = prepareUrlAs(this, url, as));\n return this.change(\"replaceState\", url, as, options);\n }\n change(method, url, as, options, forcedScroll) {\n var _this = this;\n return _async_to_generator(function*() {\n if (!isLocalURL(url)) {\n handleHardNavigation({\n url,\n router: _this\n });\n return false;\n }\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n const isQueryUpdating = options._h;\n const shouldResolveHref = isQueryUpdating || options._shouldResolveHref || (0, _parsePath).parsePath(url).pathname === (0, _parsePath).parsePath(as).pathname;\n const nextState = _extends({}, _this.state);\n // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n // or a navigation has occurred\n const readyStateChange = _this.isReady !== true;\n _this.isReady = true;\n const isSsr = _this.isSsr;\n if (!isQueryUpdating) {\n _this.isSsr = false;\n }\n // if a route transition is already in progress before\n // the query updating is triggered ignore query updating\n if (isQueryUpdating && _this.clc) {\n return false;\n }\n const prevLocale = nextState.locale;\n if (false) { var ref; }\n // marking route changes as a navigation start entry\n if (_utils.ST) {\n performance.mark(\"routeChange\");\n }\n const { shallow =false , scroll =true } = options;\n const routeProps = {\n shallow\n };\n if (_this._inFlightRoute && _this.clc) {\n if (!isSsr) {\n Router.events.emit(\"routeChangeError\", buildCancellationError(), _this._inFlightRoute, routeProps);\n }\n _this.clc();\n _this.clc = null;\n }\n as = (0, _addBasePath).addBasePath((0, _addLocale).addLocale((0, _hasBasePath).hasBasePath(as) ? (0, _removeBasePath).removeBasePath(as) : as, options.locale, _this.defaultLocale));\n const cleanedAs = (0, _removeLocale).removeLocale((0, _hasBasePath).hasBasePath(as) ? (0, _removeBasePath).removeBasePath(as) : as, nextState.locale);\n _this._inFlightRoute = as;\n const localeChange = prevLocale !== nextState.locale;\n // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n if (!isQueryUpdating && _this.onlyAHashChange(cleanedAs) && !localeChange) {\n nextState.asPath = cleanedAs;\n Router.events.emit(\"hashChangeStart\", as, routeProps);\n // TODO: do we need the resolved href when only a hash change?\n _this.changeState(method, url, as, _extends({}, options, {\n scroll: false\n }));\n if (scroll) {\n _this.scrollToHash(cleanedAs);\n }\n try {\n yield _this.set(nextState, _this.components[nextState.route], null);\n } catch (err) {\n if ((0, _isError).default(err) && err.cancelled) {\n Router.events.emit(\"routeChangeError\", err, cleanedAs, routeProps);\n }\n throw err;\n }\n Router.events.emit(\"hashChangeComplete\", as, routeProps);\n return true;\n }\n let parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n let { pathname , query } = parsed;\n // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n let pages, rewrites;\n try {\n [pages, { __rewrites: rewrites }] = yield Promise.all([\n _this.pageLoader.getPageList(),\n (0, _routeLoader).getClientBuildManifest(),\n _this.pageLoader.getMiddleware(), \n ]);\n } catch (err1) {\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n handleHardNavigation({\n url: as,\n router: _this\n });\n return false;\n }\n // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n if (!_this.urlIsNew(cleanedAs) && !localeChange) {\n method = \"replaceState\";\n }\n // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n let resolvedAs = as;\n // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n pathname = pathname ? (0, _removeTrailingSlash).removeTrailingSlash((0, _removeBasePath).removeBasePath(pathname)) : pathname;\n // we don't attempt resolve asPath when we need to execute\n // middleware as the resolving will occur server-side\n const isMiddlewareMatch = yield matchesMiddleware({\n asPath: as,\n locale: nextState.locale,\n router: _this\n });\n if (options.shallow && isMiddlewareMatch) {\n pathname = _this.pathname;\n }\n if (shouldResolveHref && pathname !== \"/_error\") {\n options._shouldResolveHref = true;\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = (0, _addBasePath).addBasePath(pathname);\n if (!isMiddlewareMatch) {\n url = (0, _formatUrl).formatWithValidation(parsed);\n }\n }\n }\n }\n if (!isLocalURL(as)) {\n if (true) {\n throw new Error(`Invalid href: \"${url}\" and as: \"${as}\", received relative href and external as` + `\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as`);\n }\n handleHardNavigation({\n url: as,\n router: _this\n });\n return false;\n }\n resolvedAs = (0, _removeLocale).removeLocale((0, _removeBasePath).removeBasePath(resolvedAs), nextState.locale);\n let route = (0, _removeTrailingSlash).removeTrailingSlash(pathname);\n let routeMatch = false;\n if ((0, _isDynamic).isDynamicRoute(route)) {\n const parsedAs1 = (0, _parseRelativeUrl).parseRelativeUrl(resolvedAs);\n const asPathname = parsedAs1.pathname;\n const routeRegex = (0, _routeRegex).getRouteRegex(route);\n routeMatch = (0, _routeMatcher).getRouteMatcher(routeRegex)(asPathname);\n const shouldInterpolate = route === asPathname;\n const interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n if (!routeMatch || shouldInterpolate && !interpolatedAs.result) {\n const missingParams = Object.keys(routeRegex.groups).filter((param)=>!query[param]);\n if (missingParams.length > 0 && !isMiddlewareMatch) {\n if (true) {\n console.warn(`${shouldInterpolate ? `Interpolating href` : `Mismatching \\`as\\` and \\`href\\``} failed to manually provide ` + `the params: ${missingParams.join(\", \")} in the \\`href\\`'s \\`query\\``);\n }\n throw new Error((shouldInterpolate ? `The provided \\`href\\` (${url}) value is missing query values (${missingParams.join(\", \")}) to be interpolated properly. ` : `The provided \\`as\\` value (${asPathname}) is incompatible with the \\`href\\` value (${route}). `) + `Read more: https://nextjs.org/docs/messages/${shouldInterpolate ? \"href-interpolation-failed\" : \"incompatible-href-as\"}`);\n }\n } else if (shouldInterpolate) {\n as = (0, _formatUrl).formatWithValidation(Object.assign({}, parsedAs1, {\n pathname: interpolatedAs.result,\n query: omit(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n }\n if (!isQueryUpdating) {\n Router.events.emit(\"routeChangeStart\", as, routeProps);\n }\n try {\n var ref2, ref3;\n let routeInfo = yield _this.getRouteInfo({\n route,\n pathname,\n query,\n as,\n resolvedAs,\n routeProps,\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n hasMiddleware: isMiddlewareMatch\n });\n if (\"route\" in routeInfo && isMiddlewareMatch) {\n pathname = routeInfo.route || route;\n route = pathname;\n if (!routeProps.shallow) {\n query = Object.assign({}, routeInfo.query || {}, query);\n }\n const cleanedParsedPathname = (0, _hasBasePath).hasBasePath(parsed.pathname) ? (0, _removeBasePath).removeBasePath(parsed.pathname) : parsed.pathname;\n if (routeMatch && pathname !== cleanedParsedPathname) {\n Object.keys(routeMatch).forEach((key)=>{\n if (routeMatch && query[key] === routeMatch[key]) {\n delete query[key];\n }\n });\n }\n if ((0, _isDynamic).isDynamicRoute(pathname)) {\n const prefixedAs = !routeProps.shallow && routeInfo.resolvedAs ? routeInfo.resolvedAs : (0, _addBasePath).addBasePath((0, _addLocale).addLocale(new URL(as, location.href).pathname, nextState.locale), true);\n let rewriteAs = prefixedAs;\n if ((0, _hasBasePath).hasBasePath(rewriteAs)) {\n rewriteAs = (0, _removeBasePath).removeBasePath(rewriteAs);\n }\n if (false) {}\n const routeRegex1 = (0, _routeRegex).getRouteRegex(pathname);\n const curRouteMatch = (0, _routeMatcher).getRouteMatcher(routeRegex1)(rewriteAs);\n if (curRouteMatch) {\n Object.assign(query, curRouteMatch);\n }\n }\n }\n // If the routeInfo brings a redirect we simply apply it.\n if (\"type\" in routeInfo) {\n if (routeInfo.type === \"redirect-internal\") {\n return _this.change(method, routeInfo.newUrl, routeInfo.newAs, options);\n } else {\n handleHardNavigation({\n url: routeInfo.destination,\n router: _this\n });\n return new Promise(()=>{});\n }\n }\n let { error , props , __N_SSG , __N_SSP } = routeInfo;\n const component = routeInfo.Component;\n if (component && component.unstable_scriptLoader) {\n const scripts = [].concat(component.unstable_scriptLoader());\n scripts.forEach((script)=>{\n (0, _script).handleClientScriptLoad(script.props);\n });\n }\n // handle redirect on client-transition\n if ((__N_SSG || __N_SSP) && props) {\n if (props.pageProps && props.pageProps.__N_REDIRECT) {\n // Use the destination from redirect without adding locale\n options.locale = false;\n const destination = props.pageProps.__N_REDIRECT;\n // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n if (destination.startsWith(\"/\") && props.pageProps.__N_REDIRECT_BASE_PATH !== false) {\n const parsedHref = (0, _parseRelativeUrl).parseRelativeUrl(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n const { url: newUrl , as: newAs } = prepareUrlAs(_this, destination, destination);\n return _this.change(method, newUrl, newAs, options);\n }\n handleHardNavigation({\n url: destination,\n router: _this\n });\n return new Promise(()=>{});\n }\n nextState.isPreview = !!props.__N_PREVIEW;\n // handle SSG data 404\n if (props.notFound === SSG_DATA_NOT_FOUND) {\n let notFoundRoute;\n try {\n yield _this.fetchComponent(\"/404\");\n notFoundRoute = \"/404\";\n } catch (_) {\n notFoundRoute = \"/_error\";\n }\n routeInfo = yield _this.getRouteInfo({\n route: notFoundRoute,\n pathname: notFoundRoute,\n query,\n as,\n resolvedAs,\n routeProps: {\n shallow: false\n },\n locale: nextState.locale,\n isPreview: nextState.isPreview\n });\n if (\"type\" in routeInfo) {\n throw new Error(`Unexpected middleware effect on /404`);\n }\n }\n }\n Router.events.emit(\"beforeHistoryChange\", as, routeProps);\n _this.changeState(method, url, as, options);\n if (isQueryUpdating && pathname === \"/_error\" && ((ref2 = self.__NEXT_DATA__.props) == null ? void 0 : (ref3 = ref2.pageProps) == null ? void 0 : ref3.statusCode) === 500 && (props == null ? void 0 : props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500;\n }\n var _route;\n // shallow routing is only allowed for same page URL changes.\n const isValidShallowRoute = options.shallow && nextState.route === ((_route = routeInfo.route) != null ? _route : route);\n var _scroll;\n const shouldScroll = (_scroll = options.scroll) != null ? _scroll : !options._h && !isValidShallowRoute;\n const resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n // the new state that the router gonna set\n const upcomingRouterState = _extends({}, nextState, {\n route,\n pathname,\n query,\n asPath: cleanedAs,\n isFallback: false\n });\n const upcomingScrollState = forcedScroll != null ? forcedScroll : resetScroll;\n // for query updates we can skip it if the state is unchanged and we don't\n // need to scroll\n // https://github.com/vercel/next.js/issues/37139\n const canSkipUpdating = options._h && !upcomingScrollState && !readyStateChange && !localeChange && (0, _compareStates).compareRouterStates(upcomingRouterState, _this.state);\n if (!canSkipUpdating) {\n yield _this.set(upcomingRouterState, routeInfo, upcomingScrollState).catch((e)=>{\n if (e.cancelled) error = error || e;\n else throw e;\n });\n if (error) {\n if (!isQueryUpdating) {\n Router.events.emit(\"routeChangeError\", error, cleanedAs, routeProps);\n }\n throw error;\n }\n if (false) {}\n if (!isQueryUpdating) {\n Router.events.emit(\"routeChangeComplete\", as, routeProps);\n }\n // A hash mark # is the optional last part of a URL\n const hashRegex = /#.+$/;\n if (shouldScroll && hashRegex.test(as)) {\n _this.scrollToHash(as);\n }\n }\n return true;\n } catch (err11) {\n if ((0, _isError).default(err11) && err11.cancelled) {\n return false;\n }\n throw err11;\n }\n })();\n }\n changeState(method, url, as, options = {}) {\n if (true) {\n if (typeof window.history === \"undefined\") {\n console.error(`Warning: window.history is not available.`);\n return;\n }\n if (typeof window.history[method] === \"undefined\") {\n console.error(`Warning: window.history.${method} is not available`);\n return;\n }\n }\n if (method !== \"pushState\" || (0, _utils).getURL() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url,\n as,\n options,\n __N: true,\n key: this._key = method !== \"pushState\" ? this._key : createKey()\n }, // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n \"\", as);\n }\n }\n handleRouteInfoError(err, pathname, query, as, routeProps, loadErrorFail) {\n var _this = this;\n return _async_to_generator(function*() {\n console.error(err);\n if (err.cancelled) {\n // bubble up cancellation errors\n throw err;\n }\n if ((0, _routeLoader).isAssetError(err) || loadErrorFail) {\n Router.events.emit(\"routeChangeError\", err, as, routeProps);\n // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n handleHardNavigation({\n url: as,\n router: _this\n });\n // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n throw buildCancellationError();\n }\n try {\n let props;\n const { page: Component , styleSheets } = yield _this.fetchComponent(\"/_error\");\n const routeInfo = {\n props,\n Component,\n styleSheets,\n err,\n error: err\n };\n if (!routeInfo.props) {\n try {\n routeInfo.props = yield _this.getInitialProps(Component, {\n err,\n pathname,\n query\n });\n } catch (gipErr) {\n console.error(\"Error in error page `getInitialProps`: \", gipErr);\n routeInfo.props = {};\n }\n }\n return routeInfo;\n } catch (routeInfoErr) {\n return _this.handleRouteInfoError((0, _isError).default(routeInfoErr) ? routeInfoErr : new Error(routeInfoErr + \"\"), pathname, query, as, routeProps, true);\n }\n })();\n }\n getRouteInfo({ route: requestedRoute , pathname , query , as , resolvedAs , routeProps , locale , hasMiddleware , isPreview , unstable_skipClientCache }) {\n var _this = this;\n return _async_to_generator(function*() {\n /**\n * This `route` binding can change if there's a rewrite\n * so we keep a reference to the original requested route\n * so we can store the cache for it and avoid re-requesting every time\n * for shallow routing purposes.\n */ let route = requestedRoute;\n try {\n var ref, ref4, ref5;\n const handleCancelled = getCancelledHandler({\n route,\n router: _this\n });\n let existingInfo = _this.components[route];\n if (routeProps.shallow && existingInfo && _this.route === route) {\n return existingInfo;\n }\n if (hasMiddleware) {\n existingInfo = undefined;\n }\n let cachedRouteInfo = existingInfo && !(\"initial\" in existingInfo) && \"development\" !== \"development\" ? 0 : undefined;\n const fetchNextDataParams = {\n dataHref: _this.pageLoader.getDataHref({\n href: (0, _formatUrl).formatWithValidation({\n pathname,\n query\n }),\n skipInterpolation: true,\n asPath: resolvedAs,\n locale\n }),\n hasMiddleware: true,\n isServerRender: _this.isSsr,\n parseJSON: true,\n inflightCache: _this.sdc,\n persistCache: !isPreview,\n isPrefetch: false,\n unstable_skipClientCache\n };\n const data = yield withMiddlewareEffects({\n fetchData: ()=>fetchNextData(fetchNextDataParams),\n asPath: resolvedAs,\n locale: locale,\n router: _this\n });\n handleCancelled();\n if ((data == null ? void 0 : (ref = data.effect) == null ? void 0 : ref.type) === \"redirect-internal\" || (data == null ? void 0 : (ref4 = data.effect) == null ? void 0 : ref4.type) === \"redirect-external\") {\n return data.effect;\n }\n if ((data == null ? void 0 : (ref5 = data.effect) == null ? void 0 : ref5.type) === \"rewrite\") {\n route = (0, _removeTrailingSlash).removeTrailingSlash(data.effect.resolvedHref);\n pathname = data.effect.resolvedHref;\n query = _extends({}, query, data.effect.parsedAs.query);\n resolvedAs = (0, _removeBasePath).removeBasePath((0, _normalizeLocalePath).normalizeLocalePath(data.effect.parsedAs.pathname, _this.locales).pathname);\n // Check again the cache with the new destination.\n existingInfo = _this.components[route];\n if (routeProps.shallow && existingInfo && _this.route === route && !hasMiddleware) {\n // If we have a match with the current route due to rewrite,\n // we can copy the existing information to the rewritten one.\n // Then, we return the information along with the matched route.\n return _extends({}, existingInfo, {\n route\n });\n }\n }\n if (route === \"/api\" || route.startsWith(\"/api/\")) {\n handleHardNavigation({\n url: as,\n router: _this\n });\n return new Promise(()=>{});\n }\n const routeInfo = cachedRouteInfo || (yield _this.fetchComponent(route).then((res)=>({\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP\n })));\n if (true) {\n const { isValidElementType } = __webpack_require__(/*! next/dist/compiled/react-is */ \"next/dist/compiled/react-is\");\n if (!isValidElementType(routeInfo.Component)) {\n throw new Error(`The default export is not a React Component in page: \"${pathname}\"`);\n }\n }\n const shouldFetchData = routeInfo.__N_SSG || routeInfo.__N_SSP;\n const { props , cacheKey } = yield _this._getData(_async_to_generator(function*() {\n if (shouldFetchData) {\n const { json , cacheKey: _cacheKey } = (data == null ? void 0 : data.json) ? data : yield fetchNextData({\n dataHref: _this.pageLoader.getDataHref({\n href: (0, _formatUrl).formatWithValidation({\n pathname,\n query\n }),\n asPath: resolvedAs,\n locale\n }),\n isServerRender: _this.isSsr,\n parseJSON: true,\n inflightCache: _this.sdc,\n persistCache: !isPreview,\n isPrefetch: false,\n unstable_skipClientCache\n });\n return {\n cacheKey: _cacheKey,\n props: json || {}\n };\n }\n return {\n headers: {},\n cacheKey: \"\",\n props: yield _this.getInitialProps(routeInfo.Component, {\n pathname,\n query,\n asPath: as,\n locale,\n locales: _this.locales,\n defaultLocale: _this.defaultLocale\n })\n };\n }));\n // Only bust the data cache for SSP routes although\n // middleware can skip cache per request with\n // x-middleware-cache: no-cache as well\n if (routeInfo.__N_SSP && fetchNextDataParams.dataHref) {\n delete _this.sdc[cacheKey];\n }\n // we kick off a HEAD request in the background\n // when a non-prefetch request is made to signal revalidation\n if (!_this.isPreview && routeInfo.__N_SSG && \"development\" !== \"development\") {}\n props.pageProps = Object.assign({}, props.pageProps);\n routeInfo.props = props;\n routeInfo.route = route;\n routeInfo.query = query;\n routeInfo.resolvedAs = resolvedAs;\n _this.components[route] = routeInfo;\n return routeInfo;\n } catch (err) {\n return _this.handleRouteInfoError((0, _isError).getProperError(err), pathname, query, as, routeProps);\n }\n })();\n }\n set(state, data, resetScroll) {\n this.state = state;\n return this.sub(data, this.components[\"/_app\"].Component, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */ beforePopState(cb) {\n this._bps = cb;\n }\n onlyAHashChange(as) {\n if (!this.asPath) return false;\n const [oldUrlNoHash, oldHash] = this.asPath.split(\"#\");\n const [newUrlNoHash, newHash] = as.split(\"#\");\n // Makes sure we scroll to the provided hash if the url/hash are the same\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n }\n // If the urls are change, there's more than a hash change\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n }\n // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n return oldHash !== newHash;\n }\n scrollToHash(as) {\n const [, hash = \"\"] = as.split(\"#\");\n // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n if (hash === \"\" || hash === \"top\") {\n handleSmoothScroll(()=>window.scrollTo(0, 0));\n return;\n }\n // Decode hash to make non-latin anchor works.\n const rawHash = decodeURIComponent(hash);\n // First we check if the element by id is found\n const idEl = document.getElementById(rawHash);\n if (idEl) {\n handleSmoothScroll(()=>idEl.scrollIntoView());\n return;\n }\n // If there's no element with the id, we check the `name` property\n // To mirror browsers\n const nameEl = document.getElementsByName(rawHash)[0];\n if (nameEl) {\n handleSmoothScroll(()=>nameEl.scrollIntoView());\n }\n }\n urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */ prefetch(url, asPath = url, options = {}) {\n var _this = this;\n return _async_to_generator(function*() {\n if (false) {}\n let parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n let { pathname , query } = parsed;\n if (false) {}\n const pages = yield _this.pageLoader.getPageList();\n let resolvedAs = asPath;\n const locale = typeof options.locale !== \"undefined\" ? options.locale || undefined : _this.locale;\n if (false) {}\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n if ((0, _isDynamic).isDynamicRoute(parsed.pathname)) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n Object.assign(query, (0, _routeMatcher).getRouteMatcher((0, _routeRegex).getRouteRegex(parsed.pathname))((0, _parsePath).parsePath(asPath).pathname) || {});\n url = (0, _formatUrl).formatWithValidation(parsed);\n }\n // Prefetch is not supported in development mode because it would trigger on-demand-entries\n if (true) {\n return;\n }\n const route = (0, _removeTrailingSlash).removeTrailingSlash(pathname);\n yield Promise.all([\n _this.pageLoader._isSsg(route).then((isSsg)=>{\n return isSsg ? fetchNextData({\n dataHref: _this.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n locale: locale\n }),\n isServerRender: false,\n parseJSON: true,\n inflightCache: _this.sdc,\n persistCache: !_this.isPreview,\n isPrefetch: true,\n unstable_skipClientCache: options.unstable_skipClientCache || options.priority && !!true\n }).then(()=>false) : false;\n }),\n _this.pageLoader[options.priority ? \"loadPage\" : \"prefetch\"](route), \n ]);\n })();\n }\n fetchComponent(route) {\n var _this = this;\n return _async_to_generator(function*() {\n const handleCancelled = getCancelledHandler({\n route,\n router: _this\n });\n try {\n const componentResult = yield _this.pageLoader.loadPage(route);\n handleCancelled();\n return componentResult;\n } catch (err) {\n handleCancelled();\n throw err;\n }\n })();\n }\n _getData(fn) {\n let cancelled = false;\n const cancel = ()=>{\n cancelled = true;\n };\n this.clc = cancel;\n return fn().then((data)=>{\n if (cancel === this.clc) {\n this.clc = null;\n }\n if (cancelled) {\n const err = new Error(\"Loading initial props cancelled\");\n err.cancelled = true;\n throw err;\n }\n return data;\n });\n }\n _getFlightData(dataHref) {\n // Do not cache RSC flight response since it's not a static resource\n return fetchNextData({\n dataHref,\n isServerRender: true,\n parseJSON: false,\n inflightCache: this.sdc,\n persistCache: false,\n isPrefetch: false\n }).then(({ text })=>({\n data: text\n }));\n }\n getInitialProps(Component, ctx) {\n const { Component: App } = this.components[\"/_app\"];\n const AppTree = this._wrapApp(App);\n ctx.AppTree = AppTree;\n return (0, _utils).loadGetInitialProps(App, {\n AppTree,\n Component,\n router: this,\n ctx\n });\n }\n get route() {\n return this.state.route;\n }\n get pathname() {\n return this.state.pathname;\n }\n get query() {\n return this.state.query;\n }\n get asPath() {\n return this.state.asPath;\n }\n get locale() {\n return this.state.locale;\n }\n get isFallback() {\n return this.state.isFallback;\n }\n get isPreview() {\n return this.state.isPreview;\n }\n constructor(pathname1, query1, as1, { initialProps , pageLoader , App , wrapApp , Component , err , subscription , isFallback , locale , locales , defaultLocale , domainLocales , isPreview }){\n // Server Data Cache\n this.sdc = {};\n this.isFirstPopStateEvent = true;\n this._key = createKey();\n this.onPopState = (e)=>{\n const { isFirstPopStateEvent } = this;\n this.isFirstPopStateEvent = false;\n const state = e.state;\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n const { pathname , query } = this;\n this.changeState(\"replaceState\", (0, _formatUrl).formatWithValidation({\n pathname: (0, _addBasePath).addBasePath(pathname),\n query\n }), (0, _utils).getURL());\n return;\n }\n // __NA is used to identify if the history entry can be handled by the app-router.\n if (state.__NA) {\n window.location.reload();\n return;\n }\n if (!state.__N) {\n return;\n }\n // Safari fires popstateevent when reopening the browser.\n if (isFirstPopStateEvent && this.locale === state.options.locale && state.as === this.asPath) {\n return;\n }\n let forcedScroll;\n const { url , as , options , key } = state;\n if (false) {}\n this._key = key;\n const { pathname: pathname1 } = (0, _parseRelativeUrl).parseRelativeUrl(url);\n // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n if (this.isSsr && as === (0, _addBasePath).addBasePath(this.asPath) && pathname1 === (0, _addBasePath).addBasePath(this.pathname)) {\n return;\n }\n // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n if (this._bps && !this._bps(state)) {\n return;\n }\n this.change(\"replaceState\", url, as, Object.assign({}, options, {\n shallow: options.shallow && this._shallow,\n locale: options.locale || this.defaultLocale,\n // @ts-ignore internal value not exposed on types\n _h: 0\n }), forcedScroll);\n };\n // represents the current component key\n const route = (0, _removeTrailingSlash).removeTrailingSlash(pathname1);\n // set up the component cache (by route keys)\n this.components = {};\n // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n if (pathname1 !== \"/_error\") {\n this.components[route] = {\n Component,\n initial: true,\n props: initialProps,\n err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP\n };\n }\n this.components[\"/_app\"] = {\n Component: App,\n styleSheets: []\n };\n // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n this.events = Router.events;\n this.pageLoader = pageLoader;\n // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n const autoExportDynamic = (0, _isDynamic).isDynamicRoute(pathname1) && self.__NEXT_DATA__.autoExport;\n this.basePath = false || \"\";\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp;\n // make sure to ignore extra popState in safari on navigating\n // back from external site\n this.isSsr = true;\n this.isLocaleDomain = false;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n if (false) {}\n this.state = {\n route,\n pathname: pathname1,\n query: query1,\n asPath: autoExportDynamic ? pathname1 : as1,\n isPreview: !!isPreview,\n locale: false ? 0 : undefined,\n isFallback\n };\n this._initialMatchesMiddlewarePromise = Promise.resolve(false);\n if (false) {}\n }\n}\nRouter.events = (0, _mitt).default();\nexports[\"default\"] = Router; //# sourceMappingURL=router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csS0FBSyxFQUFFLElBQUk7Q0FDZCxFQUFDLENBQUM7QUFDSEQseUJBQXlCLEdBQUdFLGlCQUFpQixDQUFDO0FBQzlDRixrQkFBa0IsR0FBR0csVUFBVSxDQUFDO0FBQ2hDSCxxQkFBcUIsR0FBR0ksYUFBYSxDQUFDO0FBQ3RDSixtQkFBbUIsR0FBR0ssV0FBVyxDQUFDO0FBQ2xDTCxpQkFBaUIsR0FBR00sU0FBUyxDQUFDO0FBQzlCTixrQkFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLElBQUlRLG1CQUFtQixHQUFHQyxvTEFBMEQ7QUFDcEYsSUFBSUMsUUFBUSxHQUFHRCw4SkFBK0M7QUFDOUQsSUFBSUUsd0JBQXdCLEdBQUdGLDhMQUErRDtBQUM5RixJQUFJRyx5QkFBeUIsR0FBR0gsZ01BQWdFO0FBQ2hHLElBQUlJLHVCQUF1QixHQUFHSixtQkFBTyxDQUFDLDJOQUEwQyxDQUFDO0FBQ2pGLElBQUlLLG9CQUFvQixHQUFHTCxtQkFBTyxDQUFDLHVGQUErQixDQUFDO0FBQ25FLElBQUlNLFlBQVksR0FBR04sbUJBQU8sQ0FBQyxtTUFBOEIsQ0FBQztBQUMxRCxJQUFJTyxPQUFPLEdBQUdQLG1CQUFPLENBQUMsdUxBQXdCLENBQUM7QUFDL0MsSUFBSVEsUUFBUSxHQUFHTCx5QkFBeUIsQ0FBQ0gsbUJBQU8sQ0FBQyxxTEFBdUIsQ0FBQyxDQUFDO0FBQzFFLElBQUlTLG9CQUFvQixHQUFHVCxtQkFBTyxDQUFDLDhFQUFvQyxDQUFDO0FBQ3hFLElBQUlVLG9CQUFvQixHQUFHVixtQkFBTyxDQUFDLG9FQUErQixDQUFDO0FBQ25FLElBQUlXLEtBQUssR0FBR1Qsd0JBQXdCLENBQUNGLG1CQUFPLENBQUMsd0JBQVMsQ0FBQyxDQUFDO0FBQ3hELElBQUlZLE1BQU0sR0FBR1osbUJBQU8sQ0FBQyxxQ0FBVSxDQUFDO0FBQ2hDLElBQUlhLFVBQVUsR0FBR2IsbUJBQU8sQ0FBQyw4Q0FBb0IsQ0FBQztBQUM5QyxJQUFJYyxpQkFBaUIsR0FBR2QsbUJBQU8sQ0FBQyw4REFBNEIsQ0FBQztBQUM3RCxJQUFJZSxZQUFZLEdBQUdmLG1CQUFPLENBQUMsZ0RBQXFCLENBQUM7QUFDakQsSUFBSWdCLGdCQUFnQixHQUFHZCx3QkFBd0IsQ0FBQ0YsbUJBQU8sQ0FBQywwREFBMEIsQ0FBQyxDQUFDO0FBQ3BGLElBQUlpQixhQUFhLEdBQUdqQixtQkFBTyxDQUFDLG9EQUF1QixDQUFDO0FBQ3BELElBQUlrQixXQUFXLEdBQUdsQixtQkFBTyxDQUFDLGdEQUFxQixDQUFDO0FBQ2hELElBQUltQixVQUFVLEdBQUduQixtQkFBTyxDQUFDLDhDQUFvQixDQUFDO0FBQzlDLElBQUlvQixtQkFBbUIsR0FBR3BCLG1CQUFPLENBQUMsbU5BQXNDLENBQUM7QUFDekUsSUFBSXFCLFVBQVUsR0FBR3JCLG1CQUFPLENBQUMsaUVBQW9CLENBQUM7QUFDOUMsSUFBSXNCLFVBQVUsR0FBR3RCLG1CQUFPLENBQUMsK0xBQTRCLENBQUM7QUFDdEQsSUFBSXVCLGFBQWEsR0FBR3ZCLG1CQUFPLENBQUMscU1BQStCLENBQUM7QUFDNUQsSUFBSXdCLGVBQWUsR0FBR3hCLG1CQUFPLENBQUMsMk1BQWtDLENBQUM7QUFDakUsSUFBSXlCLFlBQVksR0FBR3pCLG1CQUFPLENBQUMscU1BQStCLENBQUM7QUFDM0QsSUFBSTBCLFlBQVksR0FBRzFCLG1CQUFPLENBQUMscU1BQStCLENBQUM7QUFDM0QsSUFBSTJCLG9CQUFvQixHQUFHM0IsbUJBQU8sQ0FBQyxzRUFBZ0MsQ0FBQztBQUNwRSxJQUFJNEIsdUJBQXVCLEdBQUc1QixtQkFBTyxDQUFDLDRFQUFtQyxDQUFDO0FBQzFFLElBQUk2QixjQUFjLEdBQUc3QixtQkFBTyxDQUFDLHNEQUF3QixDQUFDO0FBQ3RELElBQUk4QixNQUFNLEdBQUc5QixtQkFBTyxDQUFDLHNDQUFnQixDQUFDO0FBQ3RDLFNBQVMrQixzQkFBc0IsR0FBRztJQUM5QixPQUFPMUMsTUFBTSxDQUFDMkMsTUFBTSxDQUFDLElBQUlDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1FBQy9DQyxTQUFTLEVBQUUsSUFBSTtLQUNsQixDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0QsU0FBU3pDLGlCQUFpQixDQUFDMEMsT0FBTyxFQUFFO0lBQ2hDLE9BQU9DLGtCQUFrQixDQUFDQyxLQUFLLENBQUMsSUFBSSxFQUFFQyxTQUFTLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBQ0QsU0FBU0Ysa0JBQWtCLEdBQUc7SUFDMUJBLGtCQUFrQixHQUFHckMsbUJBQW1CLENBQUMsVUFBVW9DLE9BQU8sRUFBRTtRQUN4RCxNQUFNSSxRQUFRLEdBQUcsTUFBTUMsT0FBTyxDQUFDQyxPQUFPLENBQUNOLE9BQU8sQ0FBQ08sTUFBTSxDQUFDQyxVQUFVLENBQUNDLGFBQWEsRUFBRSxDQUFDO1FBQ2pGLElBQUksQ0FBQ0wsUUFBUSxFQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzVCLE1BQU0sRUFBRU0sUUFBUSxFQUFFQyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRXpCLFVBQVUsRUFBRTBCLFNBQVMsQ0FBQ1osT0FBTyxDQUFDYSxNQUFNLENBQUM7UUFDM0UsNkZBQTZGO1FBQzdGLE1BQU1DLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRXZCLFlBQVksRUFBRXdCLFdBQVcsQ0FBQ0osVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUV0QixlQUFlLEVBQUUyQixjQUFjLENBQUNMLFVBQVUsQ0FBQyxHQUFHQSxVQUFVO1FBQzFILE1BQU1NLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxFQUFFM0IsWUFBWSxFQUFFNEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFL0IsVUFBVSxFQUFFZ0MsU0FBUyxDQUFDTCxTQUFTLEVBQUVkLE9BQU8sQ0FBQ29CLE1BQU0sQ0FBQyxDQUFDO1FBQ25ILDJFQUEyRTtRQUMzRSx1RUFBdUU7UUFDdkUsT0FBT2hCLFFBQVEsQ0FBQ2lCLElBQUksQ0FBQyxDQUFDQyxDQUFDLEdBQUcsSUFBSUMsTUFBTSxDQUFDRCxDQUFDLENBQUNFLE1BQU0sQ0FBQyxDQUFDQyxJQUFJLENBQUNSLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU9oQixrQkFBa0IsQ0FBQ0MsS0FBSyxDQUFDLElBQUksRUFBRUMsU0FBUyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUNELFNBQVN1QixXQUFXLENBQUNDLEdBQUcsRUFBRTtJQUN0QixNQUFNQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUVuRCxNQUFNLEVBQUVvRCxpQkFBaUIsRUFBRTtJQUM5QyxPQUFPRixHQUFHLENBQUNHLFVBQVUsQ0FBQ0YsTUFBTSxDQUFDLEdBQUdELEdBQUcsQ0FBQ0ksU0FBUyxDQUFDSCxNQUFNLENBQUNJLE1BQU0sQ0FBQyxHQUFHTCxHQUFHLENBQUM7QUFDdkUsQ0FBQztBQUNELFNBQVNNLElBQUksQ0FBQ0MsTUFBTSxFQUFFQyxJQUFJLEVBQUU7SUFDeEIsTUFBTUMsT0FBTyxHQUFHLEVBQUU7SUFDbEJsRixNQUFNLENBQUNpRixJQUFJLENBQUNELE1BQU0sQ0FBQyxDQUFDRyxPQUFPLENBQUMsQ0FBQ0MsR0FBRyxHQUFHO1FBQy9CLElBQUksQ0FBQ0gsSUFBSSxDQUFDSSxRQUFRLENBQUNELEdBQUcsQ0FBQyxFQUFFO1lBQ3JCRixPQUFPLENBQUNFLEdBQUcsQ0FBQyxHQUFHSixNQUFNLENBQUNJLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU9GLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBQ0QsU0FBUzdFLFVBQVUsQ0FBQ29FLEdBQUcsRUFBRTtJQUNyQixnRUFBZ0U7SUFDaEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFbEQsTUFBTSxFQUFFK0QsYUFBYSxDQUFDYixHQUFHLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQztJQUNqRCxJQUFJO1FBQ0EsNERBQTREO1FBQzVELE1BQU1jLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRWhFLE1BQU0sRUFBRW9ELGlCQUFpQixFQUFFO1FBQ3RELE1BQU1hLFFBQVEsR0FBRyxJQUFJQyxHQUFHLENBQUNoQixHQUFHLEVBQUVjLGNBQWMsQ0FBQztRQUM3QyxPQUFPQyxRQUFRLENBQUNkLE1BQU0sS0FBS2EsY0FBYyxJQUFJLENBQUMsQ0FBQyxFQUFFbEQsWUFBWSxFQUFFd0IsV0FBVyxDQUFDMkIsUUFBUSxDQUFDaEMsUUFBUSxDQUFDLENBQUM7SUFDbEcsRUFBRSxPQUFPa0MsQ0FBQyxFQUFFO1FBQ1IsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUM7QUFDRCxTQUFTcEYsYUFBYSxDQUFDcUYsS0FBSyxFQUFFbEMsVUFBVSxFQUFFbUMsS0FBSyxFQUFFO0lBQzdDLElBQUlDLGlCQUFpQixHQUFHLEVBQUU7SUFDMUIsTUFBTUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxFQUFFakUsV0FBVyxFQUFFa0UsYUFBYSxDQUFDSixLQUFLLENBQUM7SUFDMUQsTUFBTUssYUFBYSxHQUFHRixZQUFZLENBQUNHLE1BQU07SUFDekMsTUFBTUMsY0FBYyxHQUNwQixDQUFDekMsVUFBVSxLQUFLa0MsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFL0QsYUFBYSxFQUFFdUUsZUFBZSxDQUFDTCxZQUFZLENBQUMsQ0FBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxnREFBZ0Q7SUFDOUksc0VBQXNFO0lBQ3RFbUMsS0FBSztJQUNMQyxpQkFBaUIsR0FBR0YsS0FBSyxDQUFDO0lBQzFCLE1BQU1TLE1BQU0sR0FBR3BHLE1BQU0sQ0FBQ2lGLElBQUksQ0FBQ2UsYUFBYSxDQUFDO0lBQ3pDLElBQUksQ0FBQ0ksTUFBTSxDQUFDQyxLQUFLLENBQUMsQ0FBQ0MsS0FBSyxHQUFHO1FBQ3ZCLElBQUluRyxLQUFLLEdBQUcrRixjQUFjLENBQUNJLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDdkMsTUFBTSxFQUFFQyxNQUFNLEdBQUdDLFFBQVEsR0FBRyxHQUFHUixhQUFhLENBQUNNLEtBQUssQ0FBQztRQUNuRCxpQ0FBaUM7UUFDakMsMERBQTBEO1FBQzFELElBQUlHLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRUYsTUFBTSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRUQsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJRSxRQUFRLEVBQUU7WUFDVkMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDdEcsS0FBSyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFc0csUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJRixNQUFNLElBQUksQ0FBQ0csS0FBSyxDQUFDQyxPQUFPLENBQUN4RyxLQUFLLENBQUMsRUFBRUEsS0FBSyxHQUFHO1lBQ3pDQSxLQUFLO1NBQ1IsQ0FBQztRQUNGLE9BQU8sQ0FBQ3FHLFFBQVEsSUFBSUYsS0FBSyxJQUFJSixjQUFjLEtBQUssNkNBQTZDO1FBQzVGTCxDQUFBQSxpQkFBaUIsR0FBR0EsaUJBQWlCLENBQUNlLE9BQU8sQ0FBQ0gsUUFBUSxFQUFFRixNQUFNLEdBQUdwRyxLQUFLLENBQUMwRyxHQUFHLENBQzNFLHVEQUF1RDtRQUN2RCxrREFBa0Q7UUFDbEQsb0NBQW9DO1FBQ3BDLENBQUNDLE9BQU8sR0FBR0Msa0JBQWtCLENBQUNELE9BQU8sQ0FBQyxDQUFDLENBQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBR0Qsa0JBQWtCLENBQUM1RyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRTtJQUMzRixDQUFDLENBQUMsRUFBRTtRQUNBMEYsaUJBQWlCLEdBQUcsRUFBRSxDQUFDLG1DQUFtQztRQUFwQyxDQUNyQjtJQUNMLHVFQUF1RTtJQUN2RSxrREFBa0Q7SUFDbEQsQ0FBQztJQUNELE9BQU87UUFDSE8sTUFBTTtRQUNOYSxNQUFNLEVBQUVwQixpQkFBaUI7S0FDNUIsQ0FBQztBQUNOLENBQUM7QUFDRCxTQUFTdEYsV0FBVyxDQUFDOEMsTUFBTSxFQUFFNkQsSUFBSSxFQUFFQyxTQUFTLEVBQUU7SUFDMUMsNENBQTRDO0lBQzVDLElBQUlDLElBQUk7SUFDUixJQUFJQyxXQUFXLEdBQUcsT0FBT0gsSUFBSSxLQUFLLFFBQVEsR0FBR0EsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFcEYsVUFBVSxFQUFFd0Ysb0JBQW9CLENBQUNKLElBQUksQ0FBQztJQUM5Riw2REFBNkQ7SUFDN0QsbURBQW1EO0lBQ25ELE1BQU1LLGFBQWEsR0FBR0YsV0FBVyxDQUFDRyxLQUFLLHNCQUFzQjtJQUM3RCxNQUFNQyxrQkFBa0IsR0FBR0YsYUFBYSxHQUFHRixXQUFXLENBQUNLLEtBQUssQ0FBQ0gsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDekMsTUFBTSxDQUFDLEdBQUd1QyxXQUFXO0lBQ25HLE1BQU1NLFFBQVEsR0FBR0Ysa0JBQWtCLENBQUNHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDOUMsSUFBSSxDQUFDRCxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFSCxLQUFLLGFBQWEsRUFBRTtRQUN4Q0ssT0FBTyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxvQ0FBb0MsRUFBRVQsV0FBVyxDQUFDLDJFQUEyRSxDQUFDLENBQUMsQ0FBQztRQUMvSSxNQUFNVSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUV4RyxNQUFNLEVBQUV5Ryx3QkFBd0IsQ0FBQ1Asa0JBQWtCLENBQUM7UUFDOUVKLFdBQVcsR0FBRyxDQUFDRSxhQUFhLEdBQUdBLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUlRLGFBQWEsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsMkRBQTJEO0lBQzNELElBQUksQ0FBQzFILFVBQVUsQ0FBQ2dILFdBQVcsQ0FBQyxFQUFFO1FBQzFCLE9BQU9GLFNBQVMsR0FBRztZQUNmRSxXQUFXO1NBQ2QsR0FBR0EsV0FBVyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJO1FBQ0FELElBQUksR0FBRyxJQUFJM0IsR0FBRyxDQUFDNEIsV0FBVyxDQUFDekMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHdkIsTUFBTSxDQUFDTSxNQUFNLEdBQUdOLE1BQU0sQ0FBQ0csUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlGLEVBQUUsT0FBT2tDLENBQUMsRUFBRTtRQUNSLGtEQUFrRDtRQUNsRDBCLElBQUksR0FBRyxJQUFJM0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSTtRQUNBLE1BQU13QyxRQUFRLEdBQUcsSUFBSXhDLEdBQUcsQ0FBQzRCLFdBQVcsRUFBRUQsSUFBSSxDQUFDO1FBQzNDYSxRQUFRLENBQUN6RSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUV6Qyx1QkFBdUIsRUFBRW1ILDBCQUEwQixDQUFDRCxRQUFRLENBQUN6RSxRQUFRLENBQUMsQ0FBQztRQUMvRixJQUFJMkUsY0FBYyxHQUFHLEVBQUU7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRTNHLFVBQVUsRUFBRTRHLGNBQWMsQ0FBQ0gsUUFBUSxDQUFDekUsUUFBUSxDQUFDLElBQUl5RSxRQUFRLENBQUNJLFlBQVksSUFBSWxCLFNBQVMsRUFBRTtZQUN6RixNQUFNdkIsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFbEUsWUFBWSxFQUFFNEcsc0JBQXNCLENBQUNMLFFBQVEsQ0FBQ0ksWUFBWSxDQUFDO1lBQzdFLE1BQU0sRUFBRXBCLE1BQU0sR0FBR2IsTUFBTSxHQUFHLEdBQUc5RixhQUFhLENBQUMySCxRQUFRLENBQUN6RSxRQUFRLEVBQUV5RSxRQUFRLENBQUN6RSxRQUFRLEVBQUVvQyxLQUFLLENBQUM7WUFDdkYsSUFBSXFCLE1BQU0sRUFBRTtnQkFDUmtCLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRXJHLFVBQVUsRUFBRXdGLG9CQUFvQixDQUFDO29CQUNsRDlELFFBQVEsRUFBRXlELE1BQU07b0JBQ2hCc0IsSUFBSSxFQUFFTixRQUFRLENBQUNNLElBQUk7b0JBQ25CM0MsS0FBSyxFQUFFYixJQUFJLENBQUNhLEtBQUssRUFBRVEsTUFBTSxDQUFDO2lCQUM3QixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztRQUNELG9FQUFvRTtRQUNwRSxNQUFNb0MsWUFBWSxHQUFHUCxRQUFRLENBQUN2RCxNQUFNLEtBQUswQyxJQUFJLENBQUMxQyxNQUFNLEdBQUd1RCxRQUFRLENBQUNmLElBQUksQ0FBQ1EsS0FBSyxDQUFDTyxRQUFRLENBQUN2RCxNQUFNLENBQUNJLE1BQU0sQ0FBQyxHQUFHbUQsUUFBUSxDQUFDZixJQUFJO1FBQ2xILE9BQU9DLFNBQVMsR0FBRztZQUNmcUIsWUFBWTtZQUNaTCxjQUFjLElBQUlLLFlBQVk7U0FDakMsR0FBR0EsWUFBWSxDQUFDO0lBQ3JCLEVBQUUsT0FBT0MsRUFBRSxFQUFFO1FBQ1QsT0FBT3RCLFNBQVMsR0FBRztZQUNmRSxXQUFXO1NBQ2QsR0FBR0EsV0FBVyxDQUFDO0lBQ3BCLENBQUM7QUFDTCxDQUFDO0FBQ0QsU0FBU3FCLFlBQVksQ0FBQ3JGLE1BQU0sRUFBRW9CLEdBQUcsRUFBRWtFLEVBQUUsRUFBRTtJQUNuQyxzREFBc0Q7SUFDdEQsa0RBQWtEO0lBQ2xELElBQUksQ0FBQ0gsWUFBWSxFQUFFSSxVQUFVLENBQUMsR0FBR3JJLFdBQVcsQ0FBQzhDLE1BQU0sRUFBRW9CLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDL0QsTUFBTUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFbkQsTUFBTSxFQUFFb0QsaUJBQWlCLEVBQUU7SUFDOUMsTUFBTWtFLGFBQWEsR0FBR0wsWUFBWSxDQUFDNUQsVUFBVSxDQUFDRixNQUFNLENBQUM7SUFDckQsTUFBTW9FLFdBQVcsR0FBR0YsVUFBVSxJQUFJQSxVQUFVLENBQUNoRSxVQUFVLENBQUNGLE1BQU0sQ0FBQztJQUMvRDhELFlBQVksR0FBR2hFLFdBQVcsQ0FBQ2dFLFlBQVksQ0FBQyxDQUFDO0lBQ3pDSSxVQUFVLEdBQUdBLFVBQVUsR0FBR3BFLFdBQVcsQ0FBQ29FLFVBQVUsQ0FBQyxHQUFHQSxVQUFVLENBQUM7SUFDL0QsTUFBTUcsV0FBVyxHQUFHRixhQUFhLEdBQUdMLFlBQVksR0FBRyxDQUFDLENBQUMsRUFBRXBHLFlBQVksRUFBRTRCLFdBQVcsQ0FBQ3dFLFlBQVksQ0FBQztJQUM5RixNQUFNUSxVQUFVLEdBQUdMLEVBQUUsR0FBR25FLFdBQVcsQ0FBQ2pFLFdBQVcsQ0FBQzhDLE1BQU0sRUFBRXNGLEVBQUUsQ0FBQyxDQUFDLEdBQUdDLFVBQVUsSUFBSUosWUFBWTtJQUN6RixPQUFPO1FBQ0gvRCxHQUFHLEVBQUVzRSxXQUFXO1FBQ2hCSixFQUFFLEVBQUVHLFdBQVcsR0FBR0UsVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFNUcsWUFBWSxFQUFFNEIsV0FBVyxDQUFDZ0YsVUFBVSxDQUFDO0tBQzNFLENBQUM7QUFDTixDQUFDO0FBQ0QsU0FBU0MsbUJBQW1CLENBQUN6RixRQUFRLEVBQUUwRixLQUFLLEVBQUU7SUFDMUMsTUFBTUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFbkksb0JBQW9CLEVBQUVvSSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRWhJLG9CQUFvQixFQUFFaUksbUJBQW1CLENBQUM3RixRQUFRLENBQUMsQ0FBQztJQUM1SCxJQUFJMkYsYUFBYSxLQUFLLE1BQU0sSUFBSUEsYUFBYSxLQUFLLFNBQVMsRUFBRTtRQUN6RCxPQUFPM0YsUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFDRCwyQ0FBMkM7SUFDM0MsSUFBSSxDQUFDMEYsS0FBSyxDQUFDN0QsUUFBUSxDQUFDOEQsYUFBYSxDQUFDLEVBQUU7UUFDaEMsaURBQWlEO1FBQ2pERCxLQUFLLENBQUMvRSxJQUFJLENBQUMsQ0FBQ21GLElBQUksR0FBRztZQUNmLElBQUksQ0FBQyxDQUFDLEVBQUU5SCxVQUFVLEVBQUU0RyxjQUFjLENBQUNrQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRXpILFdBQVcsRUFBRWtFLGFBQWEsQ0FBQ3VELElBQUksQ0FBQyxDQUFDQyxFQUFFLENBQUNoRixJQUFJLENBQUM0RSxhQUFhLENBQUMsRUFBRTtnQkFDckczRixRQUFRLEdBQUc4RixJQUFJLENBQUM7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxFQUFFdEksb0JBQW9CLEVBQUVvSSxtQkFBbUIsQ0FBQzVGLFFBQVEsQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFDRCxTQUFTZ0csaUJBQWlCLENBQUNDLE1BQU0sRUFBRUMsUUFBUSxFQUFFNUcsT0FBTyxFQUFFO0lBQ2xELE1BQU02RyxVQUFVLEdBQUc7UUFDZkMsUUFBUSxFQUFFOUcsT0FBTyxDQUFDTyxNQUFNLENBQUN1RyxRQUFRO1FBQ2pDQyxJQUFJLEVBQUU7WUFDRkMsT0FBTyxFQUFFaEgsT0FBTyxDQUFDTyxNQUFNLENBQUN5RyxPQUFPO1NBQ2xDO1FBQ0RDLGFBQWEsRUFBRUMsT0FBTyxDQUFDQyxLQUFpQyxDQUFDO0tBQzVEO0lBQ0QsTUFBTUcsYUFBYSxHQUFHVixRQUFRLENBQUNXLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLGtCQUFrQixDQUFDO0lBQzlELElBQUlDLGFBQWEsR0FBR0gsYUFBYSxJQUFJVixRQUFRLENBQUNXLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLHVCQUF1QixDQUFDO0lBQ2xGLE1BQU1FLFdBQVcsR0FBR2QsUUFBUSxDQUFDVyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxRCxJQUFJRSxXQUFXLElBQUksQ0FBQ0QsYUFBYSxJQUFJLENBQUNDLFdBQVcsQ0FBQ25GLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUNtRixXQUFXLENBQUNuRixRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQ21GLFdBQVcsQ0FBQ25GLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNySiw0REFBNEQ7UUFDNURrRixhQUFhLEdBQUdDLFdBQVcsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSUQsYUFBYSxFQUFFO1FBQ2YsSUFBSUEsYUFBYSxDQUFDM0YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE1BQU02RixtQkFBbUIsR0FBRyxDQUFDLENBQUMsRUFBRWhKLGlCQUFpQixFQUFFaUosZ0JBQWdCLENBQUNILGFBQWEsQ0FBQztZQUNsRixNQUFNSSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUVySSxvQkFBb0IsRUFBRXNJLG1CQUFtQixDQUFDSCxtQkFBbUIsQ0FBQ2pILFFBQVEsRUFBRTtnQkFDN0ZtRyxVQUFVO2dCQUNWa0IsU0FBUyxFQUFFLElBQUk7YUFDbEIsQ0FBQztZQUNGLElBQUlDLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRTlKLG9CQUFvQixFQUFFb0ksbUJBQW1CLENBQUN1QixZQUFZLENBQUNuSCxRQUFRLENBQUM7WUFDckYsT0FBT0wsT0FBTyxDQUFDNEgsR0FBRyxDQUFDO2dCQUNmakksT0FBTyxDQUFDTyxNQUFNLENBQUNDLFVBQVUsQ0FBQzBILFdBQVcsRUFBRTtnQkFDdEMsRUFBQyxFQUFFL0osWUFBWSxFQUFFZ0ssc0JBQXNCLEVBQUU7YUFDN0MsQ0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDaEMsS0FBSyxFQUFFLEVBQUVpQyxVQUFVLEVBQUVDLFFBQVEsR0FBRyxDQUFDLEdBQUc7Z0JBQzFDLElBQUl6QyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUxRyxVQUFVLEVBQUVnQyxTQUFTLENBQUMwRyxZQUFZLENBQUNuSCxRQUFRLEVBQUVtSCxZQUFZLENBQUN6RyxNQUFNLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxDQUFDLEVBQUUxQyxVQUFVLEVBQUU0RyxjQUFjLENBQUNPLEVBQUUsQ0FBQyxJQUFJLENBQUN5QixhQUFhLElBQUlsQixLQUFLLENBQUM3RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUVoRSxvQkFBb0IsRUFBRWdLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFbEosZUFBZSxFQUFFMkIsY0FBYyxDQUFDNkUsRUFBRSxDQUFDLEVBQUU3RixPQUFPLENBQUNPLE1BQU0sQ0FBQ3lHLE9BQU8sQ0FBQyxDQUFDdEcsUUFBUSxDQUFDLEVBQUU7b0JBQ2pNLE1BQU04SCxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUVoSixvQkFBb0IsRUFBRXNJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFbkosaUJBQWlCLEVBQUVpSixnQkFBZ0IsQ0FBQ2pCLE1BQU0sQ0FBQyxDQUFDakcsUUFBUSxFQUFFO3dCQUN6SHFILFNBQVMsRUFBRSxJQUFJO3FCQUNsQixDQUFDO29CQUNGbEMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFdkcsWUFBWSxFQUFFNEIsV0FBVyxDQUFDc0gsWUFBWSxDQUFDOUgsUUFBUSxDQUFDLENBQUM7b0JBQzFEaUgsbUJBQW1CLENBQUNqSCxRQUFRLEdBQUdtRixFQUFFLENBQUM7Z0JBQ3RDLENBQUM7Z0JBQ0QsSUFBSXNCLEtBQStCLEVBQUUsRUFPcEMsTUFBTSxJQUFJLENBQUNmLEtBQUssQ0FBQzdELFFBQVEsQ0FBQ3lGLFVBQVUsQ0FBQyxFQUFFO29CQUNwQyxNQUFNYSxnQkFBZ0IsR0FBRzFDLG1CQUFtQixDQUFDNkIsVUFBVSxFQUFFNUIsS0FBSyxDQUFDO29CQUMvRCxJQUFJeUMsZ0JBQWdCLEtBQUtiLFVBQVUsRUFBRTt3QkFDakNBLFVBQVUsR0FBR2EsZ0JBQWdCLENBQUM7b0JBQ2xDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxNQUFNbkQsWUFBWSxHQUFHLENBQUNVLEtBQUssQ0FBQzdELFFBQVEsQ0FBQ3lGLFVBQVUsQ0FBQyxHQUFHN0IsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUU1SCxvQkFBb0IsRUFBRWdLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFbEosZUFBZSxFQUFFMkIsY0FBYyxDQUFDMkcsbUJBQW1CLENBQUNqSCxRQUFRLENBQUMsRUFBRVYsT0FBTyxDQUFDTyxNQUFNLENBQUN5RyxPQUFPLENBQUMsQ0FBQ3RHLFFBQVEsRUFBRTBGLEtBQUssQ0FBQyxHQUFHNEIsVUFBVTtnQkFDN08sSUFBSSxDQUFDLENBQUMsRUFBRXRKLFVBQVUsRUFBRTRHLGNBQWMsQ0FBQ0ksWUFBWSxDQUFDLEVBQUU7b0JBQzlDLE1BQU1vRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUVoSyxhQUFhLEVBQUV1RSxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUV0RSxXQUFXLEVBQUVrRSxhQUFhLENBQUN5QyxZQUFZLENBQUMsQ0FBQyxDQUFDRyxFQUFFLENBQUM7b0JBQ3BHM0ksTUFBTSxDQUFDMkMsTUFBTSxDQUFDOEgsbUJBQW1CLENBQUM3RSxLQUFLLEVBQUVnRyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzVELENBQUM7Z0JBQ0QsT0FBTztvQkFDSEMsSUFBSSxFQUFFLFNBQVM7b0JBQ2ZILFFBQVEsRUFBRWpCLG1CQUFtQjtvQkFDN0JqQyxZQUFZO2lCQUNmLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxNQUFNc0QsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFOUosVUFBVSxFQUFFMEIsU0FBUyxDQUFDK0YsTUFBTSxDQUFDO1FBQzdDLE1BQU1qRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUVqQix1QkFBdUIsRUFBRXdKLHNCQUFzQixDQUFDbkwsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTBCLG9CQUFvQixFQUFFc0ksbUJBQW1CLENBQUNrQixHQUFHLENBQUN0SSxRQUFRLEVBQUU7WUFDMUltRyxVQUFVO1lBQ1ZrQixTQUFTLEVBQUUsSUFBSTtTQUNsQixDQUFDLEVBQUU7WUFDQW1CLGFBQWEsRUFBRWxKLE9BQU8sQ0FBQ08sTUFBTSxDQUFDMkksYUFBYTtZQUMzQ0MsT0FBTyxFQUFFLEVBQUU7U0FDZCxDQUFDLENBQUM7UUFDSCxPQUFPOUksT0FBTyxDQUFDQyxPQUFPLENBQUM7WUFDbkJ5SSxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCSyxXQUFXLEVBQUUsQ0FBQyxFQUFFMUksUUFBUSxDQUFDLEVBQUVzSSxHQUFHLENBQUNsRyxLQUFLLENBQUMsRUFBRWtHLEdBQUcsQ0FBQ3ZELElBQUksQ0FBQyxDQUFDO1NBQ3BELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxNQUFNNEQsY0FBYyxHQUFHekMsUUFBUSxDQUFDVyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztJQUNoRSxJQUFJNkIsY0FBYyxFQUFFO1FBQ2hCLElBQUlBLGNBQWMsQ0FBQ3ZILFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoQyxNQUFNa0gsSUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFOUosVUFBVSxFQUFFMEIsU0FBUyxDQUFDeUksY0FBYyxDQUFDO1lBQ3JELE1BQU0zSSxTQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUVqQix1QkFBdUIsRUFBRXdKLHNCQUFzQixDQUFDbkwsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTBCLG9CQUFvQixFQUFFc0ksbUJBQW1CLENBQUNrQixJQUFHLENBQUN0SSxRQUFRLEVBQUU7Z0JBQzFJbUcsVUFBVTtnQkFDVmtCLFNBQVMsRUFBRSxJQUFJO2FBQ2xCLENBQUMsRUFBRTtnQkFDQW1CLGFBQWEsRUFBRWxKLE9BQU8sQ0FBQ08sTUFBTSxDQUFDMkksYUFBYTtnQkFDM0NDLE9BQU8sRUFBRSxFQUFFO2FBQ2QsQ0FBQyxDQUFDO1lBQ0gsT0FBTzlJLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDO2dCQUNuQnlJLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCTyxLQUFLLEVBQUUsQ0FBQyxFQUFFNUksU0FBUSxDQUFDLEVBQUVzSSxJQUFHLENBQUNsRyxLQUFLLENBQUMsRUFBRWtHLElBQUcsQ0FBQ3ZELElBQUksQ0FBQyxDQUFDO2dCQUMzQzhELE1BQU0sRUFBRSxDQUFDLEVBQUU3SSxTQUFRLENBQUMsRUFBRXNJLElBQUcsQ0FBQ2xHLEtBQUssQ0FBQyxFQUFFa0csSUFBRyxDQUFDdkQsSUFBSSxDQUFDLENBQUM7YUFDL0MsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELE9BQU9wRixPQUFPLENBQUNDLE9BQU8sQ0FBQztZQUNuQnlJLElBQUksRUFBRSxtQkFBbUI7WUFDekJLLFdBQVcsRUFBRUMsY0FBYztTQUM5QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsT0FBT2hKLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDO1FBQ25CeUksSUFBSSxFQUFFLE1BQU07S0FDZixDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0QsU0FBU1MscUJBQXFCLENBQUN4SixPQUFPLEVBQUU7SUFDcEMsT0FBTzFDLGlCQUFpQixDQUFDMEMsT0FBTyxDQUFDLENBQUNvSSxJQUFJLENBQUMsQ0FBQ1UsT0FBTyxHQUFHO1FBQzlDLElBQUlBLE9BQU8sSUFBSTlJLE9BQU8sQ0FBQ3lKLFNBQVMsRUFBRTtZQUM5QixPQUFPekosT0FBTyxDQUFDeUosU0FBUyxFQUFFLENBQUNyQixJQUFJLENBQUMsQ0FBQ3NCLElBQUksR0FBR2hELGlCQUFpQixDQUFDZ0QsSUFBSSxDQUFDQyxRQUFRLEVBQUVELElBQUksQ0FBQzlDLFFBQVEsRUFBRTVHLE9BQU8sQ0FBQyxDQUFDb0ksSUFBSSxDQUFDLENBQUN3QixNQUFNLEdBQUk7d0JBQ3JHRCxRQUFRLEVBQUVELElBQUksQ0FBQ0MsUUFBUTt3QkFDdkJFLFFBQVEsRUFBRUgsSUFBSSxDQUFDRyxRQUFRO3dCQUN2QkMsSUFBSSxFQUFFSixJQUFJLENBQUNJLElBQUk7d0JBQ2ZsRCxRQUFRLEVBQUU4QyxJQUFJLENBQUM5QyxRQUFRO3dCQUN2Qm1ELElBQUksRUFBRUwsSUFBSSxDQUFDSyxJQUFJO3dCQUNmSCxNQUFNO3FCQUNULEVBQUUsQ0FBQyxDQUFDSSxLQUFLLENBQUMsQ0FBQ0MsSUFBSSxHQUFHO2dCQUN2Qjs7OztXQUlMLEdBQUcsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFDRCxNQUFNQyx1QkFBdUIsR0FBRy9DLE1BQStHLElBQUksQ0FNaEo7QUFDSCxNQUFNd0Qsa0JBQWtCLEdBQUdDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztBQUN2RCxTQUFTQyxVQUFVLENBQUNsSixHQUFHLEVBQUVtSixRQUFRLEVBQUU5SyxPQUFPLEVBQUU7SUFDeEMsT0FBTytLLEtBQUssQ0FBQ3BKLEdBQUcsRUFBRTtRQUNkLHNFQUFzRTtRQUN0RSx5REFBeUQ7UUFDekQsRUFBRTtRQUNGLG9FQUFvRTtRQUNwRSxZQUFZO1FBQ1oseUVBQXlFO1FBQ3pFLEVBQUU7UUFDRixpRUFBaUU7UUFDakUsc0VBQXNFO1FBQ3RFLDhDQUE4QztRQUM5QywwQ0FBMEM7UUFDMUNxSixXQUFXLEVBQUUsYUFBYTtRQUMxQkMsTUFBTSxFQUFFakwsT0FBTyxDQUFDaUwsTUFBTSxJQUFJLEtBQUs7UUFDL0IxRCxPQUFPLEVBQUVySyxNQUFNLENBQUMyQyxNQUFNLENBQUMsRUFBRSxFQUFFRyxPQUFPLENBQUN1SCxPQUFPLEVBQUU7WUFDeEMsZUFBZSxFQUFFLEdBQUc7U0FDdkIsQ0FBQztLQUNMLENBQUMsQ0FBQ2EsSUFBSSxDQUFDLENBQUN4QixRQUFRLEdBQUc7UUFDaEIsT0FBTyxDQUFDQSxRQUFRLENBQUNzRSxFQUFFLElBQUlKLFFBQVEsR0FBRyxDQUFDLElBQUlsRSxRQUFRLENBQUN1RSxNQUFNLElBQUksR0FBRyxHQUFHTixVQUFVLENBQUNsSixHQUFHLEVBQUVtSixRQUFRLEdBQUcsQ0FBQyxFQUFFOUssT0FBTyxDQUFDLEdBQUc0RyxRQUFRLENBQUM7SUFDdEgsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0QsTUFBTXdFLGVBQWUsR0FBRyxFQUFFO0FBQzFCLFNBQVNDLGtCQUFrQixDQUFDQyxFQUFFLEVBQUU7SUFDNUIsTUFBTUMsV0FBVyxHQUFHQyxRQUFRLENBQUNDLGVBQWU7SUFDNUMsTUFBTUMsUUFBUSxHQUFHSCxXQUFXLENBQUNJLEtBQUssQ0FBQ0MsY0FBYztJQUNqREwsV0FBVyxDQUFDSSxLQUFLLENBQUNDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDMUNOLEVBQUUsRUFBRSxDQUFDO0lBQ0xDLFdBQVcsQ0FBQ0ksS0FBSyxDQUFDQyxjQUFjLEdBQUdGLFFBQVEsQ0FBQztBQUNoRCxDQUFDO0FBQ0QsU0FBU0csZ0JBQWdCLENBQUM5QixJQUFJLEVBQUU7SUFDNUIsSUFBSTtRQUNBLE9BQU8rQixJQUFJLENBQUNDLEtBQUssQ0FBQ2hDLElBQUksQ0FBQyxDQUFDO0lBQzVCLEVBQUUsT0FBTy9FLEtBQUssRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7QUFDTCxDQUFDO0FBQ0QsU0FBU2dILGFBQWEsQ0FBQyxFQUFFckMsUUFBUSxHQUFHc0MsYUFBYSxHQUFHQyxVQUFVLEdBQUdDLGFBQWEsR0FBR0MsY0FBYyxHQUFHQyxTQUFTLEdBQUdDLFlBQVksR0FBR0MsWUFBWSxHQUFHQyx3QkFBd0IsR0FBRyxFQUFFO0lBQ3JLLE1BQU0sRUFBRXBJLElBQUksRUFBRXlGLFFBQVEsR0FBRyxHQUFHLElBQUlsSCxHQUFHLENBQUNnSCxRQUFRLEVBQUVTLE1BQU0sQ0FBQ3FDLFFBQVEsQ0FBQ3JJLElBQUksQ0FBQztJQUNuRSxJQUFJc0ksSUFBSTtJQUNSLE1BQU1DLE9BQU8sR0FBRyxDQUFDckosTUFBTSxHQUFHO1FBQ3RCLE9BQU91SCxVQUFVLENBQUNsQixRQUFRLEVBQUV5QyxjQUFjLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoRDdFLE9BQU8sRUFBRTJFLFVBQVUsR0FBRztnQkFDbEJVLE9BQU8sRUFBRSxVQUFVO2FBQ3RCLEdBQUcsRUFBRTtZQUNOM0IsTUFBTSxFQUFFLENBQUN5QixJQUFJLEdBQUdwSixNQUFNLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHQSxNQUFNLENBQUMySCxNQUFNLEtBQUssSUFBSSxHQUFHeUIsSUFBSSxHQUFHLEtBQUs7U0FDbEYsQ0FBQyxDQUFDdEUsSUFBSSxDQUFDLENBQUN4QixRQUFRLEdBQUc7WUFDaEIsSUFBSUEsUUFBUSxDQUFDc0UsRUFBRSxJQUFJLENBQUM1SCxNQUFNLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHQSxNQUFNLENBQUMySCxNQUFNLE1BQU0sTUFBTSxFQUFFO2dCQUNyRSxPQUFPO29CQUNIdEIsUUFBUTtvQkFDUi9DLFFBQVE7b0JBQ1JtRCxJQUFJLEVBQUUsRUFBRTtvQkFDUkQsSUFBSSxFQUFFLEVBQUU7b0JBQ1JELFFBQVE7aUJBQ1gsQ0FBQztZQUNOLENBQUM7WUFDRCxPQUFPakQsUUFBUSxDQUFDbUQsSUFBSSxFQUFFLENBQUMzQixJQUFJLENBQUMsQ0FBQzJCLElBQUksR0FBRztnQkFDaEMsSUFBSSxDQUFDbkQsUUFBUSxDQUFDc0UsRUFBRSxFQUFFO29CQUNkOzs7OzthQUtQLEdBQUcsSUFBSWlCLGFBQWEsSUFBSTtBQUNiLDJCQUFHO0FBQ0gsMkJBQUc7QUFDSCwyQkFBRztBQUNILDJCQUFHO3FCQUNOLENBQUM1SixRQUFRLENBQUNxRSxRQUFRLENBQUN1RSxNQUFNLENBQUMsRUFBRTt3QkFDekIsT0FBTzs0QkFDSHhCLFFBQVE7NEJBQ1IvQyxRQUFROzRCQUNSbUQsSUFBSTs0QkFDSkQsSUFBSSxFQUFFLEVBQUU7NEJBQ1JELFFBQVE7eUJBQ1gsQ0FBQztvQkFDTixDQUFDO29CQUNELElBQUksQ0FBQ3NDLGFBQWEsSUFBSXZGLFFBQVEsQ0FBQ3VFLE1BQU0sS0FBSyxHQUFHLEVBQUU7d0JBQzNDLElBQUkwQixHQUFHO3dCQUNQLElBQUksQ0FBQ0EsR0FBRyxHQUFHaEIsZ0JBQWdCLENBQUM5QixJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUc4QyxHQUFHLENBQUNDLFFBQVEsRUFBRTs0QkFDaEUsT0FBTztnQ0FDSG5ELFFBQVE7Z0NBQ1JHLElBQUksRUFBRTtvQ0FDRmdELFFBQVEsRUFBRW5DLGtCQUFrQjtpQ0FDL0I7Z0NBQ0QvRCxRQUFRO2dDQUNSbUQsSUFBSTtnQ0FDSkYsUUFBUTs2QkFDWCxDQUFDO3dCQUNOLENBQUM7b0JBQ0wsQ0FBQztvQkFDRCxNQUFNN0UsS0FBSyxHQUFHLElBQUlsRixLQUFLLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO29CQUN0RDs7OzthQUlQLEdBQUcsSUFBSSxDQUFDc00sY0FBYyxFQUFFO3dCQUNaLEVBQUMsRUFBRWpPLFlBQVksRUFBRTRPLGNBQWMsQ0FBQy9ILEtBQUssQ0FBQyxDQUFDO29CQUM1QyxDQUFDO29CQUNELE1BQU1BLEtBQUssQ0FBQztnQkFDaEIsQ0FBQztnQkFDRCxPQUFPO29CQUNIMkUsUUFBUTtvQkFDUkcsSUFBSSxFQUFFdUMsU0FBUyxHQUFHUixnQkFBZ0IsQ0FBQzlCLElBQUksQ0FBQyxHQUFHLElBQUk7b0JBQy9DbkQsUUFBUTtvQkFDUm1ELElBQUk7b0JBQ0pGLFFBQVE7aUJBQ1gsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUN6QixJQUFJLENBQUMsQ0FBQ3NCLElBQUksR0FBRztZQUNaLElBQUksQ0FBQzRDLFlBQVksSUFBSW5GLGFBbmNwQixLQW1jNkMsWUFBWSxJQUFJdUMsQ0FBOEQsRUFBRTtnQkFDMUgsT0FBT3VDLGFBQWEsQ0FBQ3BDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxPQUFPSCxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUNNLEtBQUssQ0FBQyxDQUFDZ0QsR0FBRyxHQUFHO1lBQ1osT0FBT2YsYUFBYSxDQUFDcEMsUUFBUSxDQUFDLENBQUM7WUFDL0IsTUFBTW1ELEdBQUcsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELCtDQUErQztJQUMvQyxnREFBZ0Q7SUFDaEQsMERBQTBEO0lBQzFELDJEQUEyRDtJQUMzRCxJQUFJUix3QkFBd0IsSUFBSUYsWUFBWSxFQUFFO1FBQzFDLE9BQU9LLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQ3ZFLElBQUksQ0FBQyxDQUFDc0IsSUFBSSxHQUFHO1lBQzVCdUMsYUFBYSxDQUFDcEMsUUFBUSxDQUFDLEdBQUd4SixPQUFPLENBQUNDLE9BQU8sQ0FBQ29KLElBQUksQ0FBQyxDQUFDO1lBQ2hELE9BQU9BLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxJQUFJdUMsYUFBYSxDQUFDcEMsUUFBUSxDQUFDLEtBQUtvRCxTQUFTLEVBQUU7UUFDdkMsT0FBT2hCLGFBQWEsQ0FBQ3BDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxPQUFPb0MsYUFBYSxDQUFDcEMsUUFBUSxDQUFDLEdBQUc4QyxPQUFPLENBQUNKLFlBQVksR0FBRztRQUNwRHRCLE1BQU0sRUFBRSxNQUFNO0tBQ2pCLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU3ZOLFNBQVMsR0FBRztJQUNqQixPQUFPd1AsSUFBSSxDQUFDQyxNQUFNLEVBQUUsQ0FBQ0MsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDeEksS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBQ0QsU0FBU3lJLG9CQUFvQixDQUFDLEVBQUUxTCxHQUFHLEdBQUdwQixNQUFNLEdBQUcsRUFBRTtJQUM3Qyx3REFBd0Q7SUFDeEQsa0RBQWtEO0lBQ2xELElBQUlvQixHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUVyQyxZQUFZLEVBQUU0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUvQixVQUFVLEVBQUVnQyxTQUFTLENBQUNaLE1BQU0sQ0FBQ00sTUFBTSxFQUFFTixNQUFNLENBQUNhLE1BQU0sQ0FBQyxDQUFDLEVBQUU7UUFDaEcsTUFBTSxJQUFJdEIsS0FBSyxDQUFDLENBQUMsc0RBQXNELEVBQUU2QixHQUFHLENBQUMsQ0FBQyxFQUFFOEssUUFBUSxDQUFDckksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFDRGdHLE1BQU0sQ0FBQ3FDLFFBQVEsQ0FBQ3JJLElBQUksR0FBR3pDLEdBQUcsQ0FBQztBQUMvQixDQUFDO0FBQ0QsTUFBTTJMLG1CQUFtQixHQUFHLENBQUMsRUFBRXpLLEtBQUssR0FBR3RDLE1BQU0sR0FBRyxHQUFHO0lBQy9DLElBQUlSLFNBQVMsR0FBRyxLQUFLO0lBQ3JCLE1BQU13TixNQUFNLEdBQUdoTixNQUFNLENBQUNpTixHQUFHLEdBQUcsSUFBSTtRQUM1QnpOLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUNELE1BQU0wTixlQUFlLEdBQUcsSUFBSTtRQUN4QixJQUFJMU4sU0FBUyxFQUFFO1lBQ1gsTUFBTWlGLEtBQUssR0FBRyxJQUFJbEYsS0FBSyxDQUFDLENBQUMscUNBQXFDLEVBQUUrQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekVtQyxLQUFLLENBQUNqRixTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLE1BQU1pRixLQUFLLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUl1SSxNQUFNLEtBQUtoTixNQUFNLENBQUNpTixHQUFHLEVBQUU7WUFDdkJqTixNQUFNLENBQUNpTixHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBT0MsZUFBZSxDQUFDO0FBQzNCLENBQUM7QUFDRCxNQUFNQyxNQUFNO0lBQ1JDLE1BQU0sR0FBRztRQUNMdkQsTUFBTSxDQUFDcUMsUUFBUSxDQUFDa0IsTUFBTSxFQUFFLENBQUM7SUFDN0I7SUFDQTs7R0FFRCxHQUFHQyxJQUFJLEdBQUc7UUFDTHhELE1BQU0sQ0FBQ0MsT0FBTyxDQUFDdUQsSUFBSSxFQUFFLENBQUM7SUFDMUI7SUFDQTs7Ozs7R0FLRCxHQUFHQyxJQUFJLENBQUNsTSxHQUFHLEVBQUVrRSxFQUFFLEVBQUU3RixPQUFPLEdBQUcsRUFBRSxFQUFFO1FBQzFCLElBQUltSCxLQUFxQyxFQUFFLEVBWTFDO1FBQ0EsR0FBRXhGLEdBQUcsR0FBR2tFLEVBQUUsR0FBRyxHQUFHRCxZQUFZLENBQUMsSUFBSSxFQUFFakUsR0FBRyxFQUFFa0UsRUFBRSxDQUFDLEVBQUU7UUFDOUMsT0FBTyxJQUFJLENBQUN5SSxNQUFNLENBQUMsV0FBVyxFQUFFM00sR0FBRyxFQUFFa0UsRUFBRSxFQUFFN0YsT0FBTyxDQUFDLENBQUM7SUFDdEQ7SUFDQTs7Ozs7R0FLRCxHQUFHOEQsT0FBTyxDQUFDbkMsR0FBRyxFQUFFa0UsRUFBRSxFQUFFN0YsT0FBTyxHQUFHLEVBQUUsRUFBRTtRQUM1QixHQUFFMkIsR0FBRyxHQUFHa0UsRUFBRSxHQUFHLEdBQUdELFlBQVksQ0FBQyxJQUFJLEVBQUVqRSxHQUFHLEVBQUVrRSxFQUFFLENBQUMsRUFBRTtRQUM5QyxPQUFPLElBQUksQ0FBQ3lJLE1BQU0sQ0FBQyxjQUFjLEVBQUUzTSxHQUFHLEVBQUVrRSxFQUFFLEVBQUU3RixPQUFPLENBQUMsQ0FBQztJQUN6RDtJQUNBc08sTUFBTSxDQUFDckQsTUFBTSxFQUFFdEosR0FBRyxFQUFFa0UsRUFBRSxFQUFFN0YsT0FBTyxFQUFFdU8sWUFBWSxFQUFFO1FBQzNDLElBQUlDLEtBQUssR0FBRyxJQUFJO1FBQ2hCLE9BQU81USxtQkFBbUIsQ0FBQyxZQUFZO1lBQ25DLElBQUksQ0FBQ0wsVUFBVSxDQUFDb0UsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xCMEwsb0JBQW9CLENBQUM7b0JBQ2pCMUwsR0FBRztvQkFDSHBCLE1BQU0sRUFBRWlPLEtBQUs7aUJBQ2hCLENBQUMsQ0FBQztnQkFDSCxPQUFPLEtBQUssQ0FBQztZQUNqQixDQUFDO1lBQ0Qsc0VBQXNFO1lBQ3RFLHlFQUF5RTtZQUN6RSwyQkFBMkI7WUFDM0IsTUFBTUMsZUFBZSxHQUFHek8sT0FBTyxDQUFDME8sRUFBRTtZQUNsQyxNQUFNQyxpQkFBaUIsR0FBR0YsZUFBZSxJQUFJek8sT0FBTyxDQUFDNE8sa0JBQWtCLElBQUksQ0FBQyxDQUFDLEVBQUUxUCxVQUFVLEVBQUUwQixTQUFTLENBQUNlLEdBQUcsQ0FBQyxDQUFDakIsUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFeEIsVUFBVSxFQUFFMEIsU0FBUyxDQUFDaUYsRUFBRSxDQUFDLENBQUNuRixRQUFRO1lBQzdKLE1BQU1tTyxTQUFTLEdBQUcvUSxRQUFRLENBQUMsRUFBRSxFQUFFMFEsS0FBSyxDQUFDTSxLQUFLLENBQUM7WUFDM0MseURBQXlEO1lBQ3pELDREQUE0RDtZQUM1RCwrQkFBK0I7WUFDL0IsTUFBTUMsZ0JBQWdCLEdBQUdQLEtBQUssQ0FBQ1EsT0FBTyxLQUFLLElBQUk7WUFDL0NSLEtBQUssQ0FBQ1EsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNyQixNQUFNQyxLQUFLLEdBQUdULEtBQUssQ0FBQ1MsS0FBSztZQUN6QixJQUFJLENBQUNSLGVBQWUsRUFBRTtnQkFDbEJELEtBQUssQ0FBQ1MsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDO1lBQ0Qsc0RBQXNEO1lBQ3RELHdEQUF3RDtZQUN4RCxJQUFJUixlQUFlLElBQUlELEtBQUssQ0FBQ2hCLEdBQUcsRUFBRTtnQkFDOUIsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUNELE1BQU0wQixVQUFVLEdBQUdMLFNBQVMsQ0FBQ3pOLE1BQU07WUFDbkMsSUFBSStGLEtBQStCLEVBQUUsWUFrRHBDO1lBQ0Qsb0RBQW9EO1lBQ3BELElBQUkxSSxNQUFNLENBQUNzUixFQUFFLEVBQUU7Z0JBQ1hDLFdBQVcsQ0FBQ0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxNQUFNLEVBQUVDLE9BQU8sRUFBRSxLQUFLLEdBQUdDLE1BQU0sRUFBRSxJQUFJLEdBQUcsR0FBR25RLE9BQU87WUFDbEQsTUFBTW9RLFVBQVUsR0FBRztnQkFDZkYsT0FBTzthQUNWO1lBQ0QsSUFBSTFCLEtBQUssQ0FBQzZCLGNBQWMsSUFBSTdCLEtBQUssQ0FBQ2hCLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDeUIsS0FBSyxFQUFFO29CQUNSdkIsTUFBTSxDQUFDNEMsTUFBTSxDQUFDQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUzUSxzQkFBc0IsRUFBRSxFQUFFNE8sS0FBSyxDQUFDNkIsY0FBYyxFQUFFRCxVQUFVLENBQUMsQ0FBQztnQkFDdkcsQ0FBQztnQkFDRDVCLEtBQUssQ0FBQ2hCLEdBQUcsRUFBRSxDQUFDO2dCQUNaZ0IsS0FBSyxDQUFDaEIsR0FBRyxHQUFHLElBQUksQ0FBQztZQUNyQixDQUFDO1lBQ0QzSCxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUV2RyxZQUFZLEVBQUU0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUvQixVQUFVLEVBQUVnQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU1QixZQUFZLEVBQUV3QixXQUFXLENBQUM4RSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRXhHLGVBQWUsRUFBRTJCLGNBQWMsQ0FBQzZFLEVBQUUsQ0FBQyxHQUFHQSxFQUFFLEVBQUU3RixPQUFPLENBQUNvQixNQUFNLEVBQUVvTixLQUFLLENBQUN0RixhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3JMLE1BQU1wSSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUxQixhQUFhLEVBQUVvUixZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUVqUixZQUFZLEVBQUV3QixXQUFXLENBQUM4RSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRXhHLGVBQWUsRUFBRTJCLGNBQWMsQ0FBQzZFLEVBQUUsQ0FBQyxHQUFHQSxFQUFFLEVBQUVnSixTQUFTLENBQUN6TixNQUFNLENBQUM7WUFDckpvTixLQUFLLENBQUM2QixjQUFjLEdBQUd4SyxFQUFFLENBQUM7WUFDMUIsTUFBTTRLLFlBQVksR0FBR3ZCLFVBQVUsS0FBS0wsU0FBUyxDQUFDek4sTUFBTTtZQUNwRCxxREFBcUQ7WUFDckQsMERBQTBEO1lBQzFELElBQUksQ0FBQ3FOLGVBQWUsSUFBSUQsS0FBSyxDQUFDa0MsZUFBZSxDQUFDNVAsU0FBUyxDQUFDLElBQUksQ0FBQzJQLFlBQVksRUFBRTtnQkFDdkU1QixTQUFTLENBQUNoTyxNQUFNLEdBQUdDLFNBQVMsQ0FBQztnQkFDN0I0TSxNQUFNLENBQUM0QyxNQUFNLENBQUNDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTFLLEVBQUUsRUFBRXVLLFVBQVUsQ0FBQyxDQUFDO2dCQUN0RCw4REFBOEQ7Z0JBQzlENUIsS0FBSyxDQUFDbUMsV0FBVyxDQUFDMUYsTUFBTSxFQUFFdEosR0FBRyxFQUFFa0UsRUFBRSxFQUFFL0gsUUFBUSxDQUFDLEVBQUUsRUFBRWtDLE9BQU8sRUFBRTtvQkFDckRtUSxNQUFNLEVBQUUsS0FBSztpQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osSUFBSUEsTUFBTSxFQUFFO29CQUNSM0IsS0FBSyxDQUFDb0MsWUFBWSxDQUFDOVAsU0FBUyxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7Z0JBQ0QsSUFBSTtvQkFDQSxNQUFNME4sS0FBSyxDQUFDcUMsR0FBRyxDQUFDaEMsU0FBUyxFQUFFTCxLQUFLLENBQUNzQyxVQUFVLENBQUNqQyxTQUFTLENBQUNoTSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDeEUsRUFBRSxPQUFPbUssR0FBRyxFQUFFO29CQUNWLElBQUksQ0FBQyxDQUFDLEVBQUUzTyxRQUFRLEVBQUVWLE9BQU8sQ0FBQ3FQLEdBQUcsQ0FBQyxJQUFJQSxHQUFHLENBQUNqTixTQUFTLEVBQUU7d0JBQzdDMk4sTUFBTSxDQUFDNEMsTUFBTSxDQUFDQyxJQUFJLENBQUMsa0JBQWtCLEVBQUV2RCxHQUFHLEVBQUVsTSxTQUFTLEVBQUVzUCxVQUFVLENBQUMsQ0FBQztvQkFDdkUsQ0FBQztvQkFDRCxNQUFNcEQsR0FBRyxDQUFDO2dCQUNkLENBQUM7Z0JBQ0RVLE1BQU0sQ0FBQzRDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFMUssRUFBRSxFQUFFdUssVUFBVSxDQUFDLENBQUM7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxJQUFJVyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUVwUyxpQkFBaUIsRUFBRWlKLGdCQUFnQixDQUFDakcsR0FBRyxDQUFDO1lBQ3pELElBQUksRUFBRWpCLFFBQVEsR0FBR29DLEtBQUssR0FBRyxHQUFHaU8sTUFBTTtZQUNsQyx5RUFBeUU7WUFDekUsMkVBQTJFO1lBQzNFLG9CQUFvQjtZQUNwQixJQUFJM0ssS0FBSyxFQUFFa0MsUUFBUTtZQUNuQixJQUFJO2dCQUNBLENBQUNsQyxLQUFLLEVBQUUsRUFBRWlDLFVBQVUsRUFBRUMsUUFBUSxHQUFHLENBQUMsR0FBRyxNQUFNakksT0FBTyxDQUFDNEgsR0FBRyxDQUFDO29CQUNuRHVHLEtBQUssQ0FBQ2hPLFVBQVUsQ0FBQzBILFdBQVcsRUFBRTtvQkFDN0IsRUFBQyxFQUFFL0osWUFBWSxFQUFFZ0ssc0JBQXNCLEVBQUU7b0JBQzFDcUcsS0FBSyxDQUFDaE8sVUFBVSxDQUFDQyxhQUFhLEVBQUU7aUJBQ25DLENBQUMsQ0FBQztZQUNQLEVBQUUsT0FBT3VNLElBQUcsRUFBRTtnQkFDVix3RUFBd0U7Z0JBQ3hFLCtCQUErQjtnQkFDL0JLLG9CQUFvQixDQUFDO29CQUNqQjFMLEdBQUcsRUFBRWtFLEVBQUU7b0JBQ1B0RixNQUFNLEVBQUVpTyxLQUFLO2lCQUNoQixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUNELHVFQUF1RTtZQUN2RSw4RUFBOEU7WUFDOUUsdURBQXVEO1lBQ3ZELG9FQUFvRTtZQUNwRSxzRUFBc0U7WUFDdEUsSUFBSSxDQUFDQSxLQUFLLENBQUN3QyxRQUFRLENBQUNsUSxTQUFTLENBQUMsSUFBSSxDQUFDMlAsWUFBWSxFQUFFO2dCQUM3Q3hGLE1BQU0sR0FBRyxjQUFjLENBQUM7WUFDNUIsQ0FBQztZQUNELGlFQUFpRTtZQUNqRSxpREFBaUQ7WUFDakQsSUFBSW5GLFVBQVUsR0FBR0QsRUFBRTtZQUNuQiw2REFBNkQ7WUFDN0QsZ0VBQWdFO1lBQ2hFLDJEQUEyRDtZQUMzRG5GLFFBQVEsR0FBR0EsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFeEMsb0JBQW9CLEVBQUVvSSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRWpILGVBQWUsRUFBRTJCLGNBQWMsQ0FBQ04sUUFBUSxDQUFDLENBQUMsR0FBR0EsUUFBUSxDQUFDO1lBQzlILDBEQUEwRDtZQUMxRCxxREFBcUQ7WUFDckQsTUFBTXVRLGlCQUFpQixHQUFHLE1BQU0zVCxpQkFBaUIsQ0FBQztnQkFDOUN1RCxNQUFNLEVBQUVnRixFQUFFO2dCQUNWekUsTUFBTSxFQUFFeU4sU0FBUyxDQUFDek4sTUFBTTtnQkFDeEJiLE1BQU0sRUFBRWlPLEtBQUs7YUFDaEIsQ0FBQztZQUNGLElBQUl4TyxPQUFPLENBQUNrUSxPQUFPLElBQUllLGlCQUFpQixFQUFFO2dCQUN0Q3ZRLFFBQVEsR0FBRzhOLEtBQUssQ0FBQzlOLFFBQVEsQ0FBQztZQUM5QixDQUFDO1lBQ0QsSUFBSWlPLGlCQUFpQixJQUFJak8sUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDN0NWLE9BQU8sQ0FBQzRPLGtCQUFrQixHQUFHLElBQUksQ0FBQztnQkFDbEMsSUFBSXpILEtBQXFELEVBQUUsRUFxQjFELE1BQU07b0JBQ0g0SixNQUFNLENBQUNyUSxRQUFRLEdBQUd5RixtQkFBbUIsQ0FBQ3pGLFFBQVEsRUFBRTBGLEtBQUssQ0FBQyxDQUFDO29CQUN2RCxJQUFJMkssTUFBTSxDQUFDclEsUUFBUSxLQUFLQSxRQUFRLEVBQUU7d0JBQzlCQSxRQUFRLEdBQUdxUSxNQUFNLENBQUNyUSxRQUFRLENBQUM7d0JBQzNCcVEsTUFBTSxDQUFDclEsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFcEIsWUFBWSxFQUFFNEIsV0FBVyxDQUFDUixRQUFRLENBQUMsQ0FBQzt3QkFDMUQsSUFBSSxDQUFDdVEsaUJBQWlCLEVBQUU7NEJBQ3BCdFAsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFM0MsVUFBVSxFQUFFd0Ysb0JBQW9CLENBQUN1TSxNQUFNLENBQUMsQ0FBQzt3QkFDdkQsQ0FBQztvQkFDTCxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxDQUFDeFQsVUFBVSxDQUFDc0ksRUFBRSxDQUFDLEVBQUU7Z0JBQ2pCLElBQUlzQixJQUFxQyxFQUFFO29CQUN2QyxNQUFNLElBQUlySCxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUU2QixHQUFHLENBQUMsV0FBVyxFQUFFa0UsRUFBRSxDQUFDLHlDQUF5QyxDQUFDLEdBQUcsQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDLENBQUM7Z0JBQzdMLENBQUM7Z0JBQ0R3SCxvQkFBb0IsQ0FBQztvQkFDakIxTCxHQUFHLEVBQUVrRSxFQUFFO29CQUNQdEYsTUFBTSxFQUFFaU8sS0FBSztpQkFDaEIsQ0FBQyxDQUFDO2dCQUNILE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7WUFDRDFJLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRTFHLGFBQWEsRUFBRW9SLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRW5SLGVBQWUsRUFBRTJCLGNBQWMsQ0FBQzhFLFVBQVUsQ0FBQyxFQUFFK0ksU0FBUyxDQUFDek4sTUFBTSxDQUFDLENBQUM7WUFDaEgsSUFBSXlCLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTNFLG9CQUFvQixFQUFFb0ksbUJBQW1CLENBQUM1RixRQUFRLENBQUM7WUFDbkUsSUFBSTJRLFVBQVUsR0FBRyxLQUFLO1lBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUzUyxVQUFVLEVBQUU0RyxjQUFjLENBQUN6QyxLQUFLLENBQUMsRUFBRTtnQkFDdkMsTUFBTStGLFNBQVEsR0FBRyxDQUFDLENBQUMsRUFBRWpLLGlCQUFpQixFQUFFaUosZ0JBQWdCLENBQUM5QixVQUFVLENBQUM7Z0JBQ3BFLE1BQU1uRixVQUFVLEdBQUdpSSxTQUFRLENBQUNsSSxRQUFRO2dCQUNwQyxNQUFNNFEsVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFdlMsV0FBVyxFQUFFa0UsYUFBYSxDQUFDSixLQUFLLENBQUM7Z0JBQ3hEd08sVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFdlMsYUFBYSxFQUFFdUUsZUFBZSxDQUFDaU8sVUFBVSxDQUFDLENBQUMzUSxVQUFVLENBQUMsQ0FBQztnQkFDeEUsTUFBTTRRLGlCQUFpQixHQUFHMU8sS0FBSyxLQUFLbEMsVUFBVTtnQkFDOUMsTUFBTTBFLGNBQWMsR0FBR2tNLGlCQUFpQixHQUFHL1QsYUFBYSxDQUFDcUYsS0FBSyxFQUFFbEMsVUFBVSxFQUFFbUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDdkYsSUFBSSxDQUFDdU8sVUFBVSxJQUFJRSxpQkFBaUIsSUFBSSxDQUFDbE0sY0FBYyxDQUFDbEIsTUFBTSxFQUFFO29CQUM1RCxNQUFNcU4sYUFBYSxHQUFHdFUsTUFBTSxDQUFDaUYsSUFBSSxDQUFDbVAsVUFBVSxDQUFDbk8sTUFBTSxDQUFDLENBQUNzTyxNQUFNLENBQUMsQ0FBQ2pPLEtBQUssR0FBRyxDQUFDVixLQUFLLENBQUNVLEtBQUssQ0FBQyxDQUFDO29CQUNuRixJQUFJZ08sYUFBYSxDQUFDeFAsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDaVAsaUJBQWlCLEVBQUU7d0JBQ2hELElBQUk5SixJQUFxQyxFQUFFOzRCQUN2Q3BDLE9BQU8sQ0FBQzJNLElBQUksQ0FBQyxDQUFDLEVBQUVILGlCQUFpQixHQUFHLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRUMsYUFBYSxDQUFDdE4sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQzt3QkFDeE0sQ0FBQzt3QkFDRCxNQUFNLElBQUlwRSxLQUFLLENBQUMsQ0FBQ3lSLGlCQUFpQixHQUFHLENBQUMsdUJBQXVCLEVBQUU1UCxHQUFHLENBQUMsaUNBQWlDLEVBQUU2UCxhQUFhLENBQUN0TixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsK0JBQStCLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFdkQsVUFBVSxDQUFDLDJDQUEyQyxFQUFFa0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsNENBQTRDLEVBQUUwTyxpQkFBaUIsR0FBRywyQkFBMkIsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDclksQ0FBQztnQkFDTCxPQUFPLElBQUlBLGlCQUFpQixFQUFFO29CQUMxQjFMLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRTdHLFVBQVUsRUFBRXdGLG9CQUFvQixDQUFDdEgsTUFBTSxDQUFDMkMsTUFBTSxDQUFDLEVBQUUsRUFBRStJLFNBQVEsRUFBRTt3QkFDbEVsSSxRQUFRLEVBQUUyRSxjQUFjLENBQUNsQixNQUFNO3dCQUMvQnJCLEtBQUssRUFBRWIsSUFBSSxDQUFDYSxLQUFLLEVBQUV1QyxjQUFjLENBQUMvQixNQUFNLENBQUM7cUJBQzVDLENBQUMsQ0FBQyxDQUFDO2dCQUNSLE9BQU87b0JBQ0gsaUVBQWlFO29CQUNqRXBHLE1BQU0sQ0FBQzJDLE1BQU0sQ0FBQ2lELEtBQUssRUFBRXVPLFVBQVUsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksQ0FBQzVDLGVBQWUsRUFBRTtnQkFDbEJmLE1BQU0sQ0FBQzRDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFMUssRUFBRSxFQUFFdUssVUFBVSxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUNELElBQUk7Z0JBQ0EsSUFBSXVCLElBQUksRUFBRUMsSUFBSTtnQkFDZCxJQUFJQyxTQUFTLEdBQUcsTUFBTXJELEtBQUssQ0FBQ3NELFlBQVksQ0FBQztvQkFDckNqUCxLQUFLO29CQUNMbkMsUUFBUTtvQkFDUm9DLEtBQUs7b0JBQ0wrQyxFQUFFO29CQUNGQyxVQUFVO29CQUNWc0ssVUFBVTtvQkFDVmhQLE1BQU0sRUFBRXlOLFNBQVMsQ0FBQ3pOLE1BQU07b0JBQ3hCMlEsU0FBUyxFQUFFbEQsU0FBUyxDQUFDa0QsU0FBUztvQkFDOUI1RixhQUFhLEVBQUU4RSxpQkFBaUI7aUJBQ25DLENBQUM7Z0JBQ0YsSUFBSSxPQUFPLElBQUlZLFNBQVMsSUFBSVosaUJBQWlCLEVBQUU7b0JBQzNDdlEsUUFBUSxHQUFHbVIsU0FBUyxDQUFDaFAsS0FBSyxJQUFJQSxLQUFLLENBQUM7b0JBQ3BDQSxLQUFLLEdBQUduQyxRQUFRLENBQUM7b0JBQ2pCLElBQUksQ0FBQzBQLFVBQVUsQ0FBQ0YsT0FBTyxFQUFFO3dCQUNyQnBOLEtBQUssR0FBRzVGLE1BQU0sQ0FBQzJDLE1BQU0sQ0FBQyxFQUFFLEVBQUVnUyxTQUFTLENBQUMvTyxLQUFLLElBQUksRUFBRSxFQUFFQSxLQUFLLENBQUMsQ0FBQztvQkFDNUQsQ0FBQztvQkFDRCxNQUFNa1AscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLEVBQUV6UyxZQUFZLEVBQUV3QixXQUFXLENBQUNnUSxNQUFNLENBQUNyUSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRXJCLGVBQWUsRUFBRTJCLGNBQWMsQ0FBQytQLE1BQU0sQ0FBQ3JRLFFBQVEsQ0FBQyxHQUFHcVEsTUFBTSxDQUFDclEsUUFBUTtvQkFDckosSUFBSTJRLFVBQVUsSUFBSTNRLFFBQVEsS0FBS3NSLHFCQUFxQixFQUFFO3dCQUNsRDlVLE1BQU0sQ0FBQ2lGLElBQUksQ0FBQ2tQLFVBQVUsQ0FBQyxDQUFDaFAsT0FBTyxDQUFDLENBQUNDLEdBQUcsR0FBRzs0QkFDbkMsSUFBSStPLFVBQVUsSUFBSXZPLEtBQUssQ0FBQ1IsR0FBRyxDQUFDLEtBQUsrTyxVQUFVLENBQUMvTyxHQUFHLENBQUMsRUFBRTtnQ0FDOUMsT0FBT1EsS0FBSyxDQUFDUixHQUFHLENBQUMsQ0FBQzs0QkFDdEIsQ0FBQzt3QkFDTCxDQUFDLENBQUMsQ0FBQztvQkFDUCxDQUFDO29CQUNELElBQUksQ0FBQyxDQUFDLEVBQUU1RCxVQUFVLEVBQUU0RyxjQUFjLENBQUM1RSxRQUFRLENBQUMsRUFBRTt3QkFDMUMsTUFBTXVSLFVBQVUsR0FBRyxDQUFDN0IsVUFBVSxDQUFDRixPQUFPLElBQUkyQixTQUFTLENBQUMvTCxVQUFVLEdBQUcrTCxTQUFTLENBQUMvTCxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUV4RyxZQUFZLEVBQUU0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUvQixVQUFVLEVBQUVnQyxTQUFTLENBQUMsSUFBSXdCLEdBQUcsQ0FBQ2tELEVBQUUsRUFBRTRHLFFBQVEsQ0FBQ3JJLElBQUksQ0FBQyxDQUFDMUQsUUFBUSxFQUFFbU8sU0FBUyxDQUFDek4sTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDO3dCQUM3TSxJQUFJOFEsU0FBUyxHQUFHRCxVQUFVO3dCQUMxQixJQUFJLENBQUMsQ0FBQyxFQUFFMVMsWUFBWSxFQUFFd0IsV0FBVyxDQUFDbVIsU0FBUyxDQUFDLEVBQUU7NEJBQzFDQSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUU3UyxlQUFlLEVBQUUyQixjQUFjLENBQUNrUixTQUFTLENBQUMsQ0FBQzt3QkFDL0QsQ0FBQzt3QkFDRCxJQUFJL0ssS0FBK0IsRUFBRSxFQUlwQzt3QkFDRCxNQUFNbUssV0FBVSxHQUFHLENBQUMsQ0FBQyxFQUFFdlMsV0FBVyxFQUFFa0UsYUFBYSxDQUFDdkMsUUFBUSxDQUFDO3dCQUMzRCxNQUFNMFIsYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFdFQsYUFBYSxFQUFFdUUsZUFBZSxDQUFDaU8sV0FBVSxDQUFDLENBQUNZLFNBQVMsQ0FBQzt3QkFDL0UsSUFBSUUsYUFBYSxFQUFFOzRCQUNmbFYsTUFBTSxDQUFDMkMsTUFBTSxDQUFDaUQsS0FBSyxFQUFFc1AsYUFBYSxDQUFDLENBQUM7d0JBQ3hDLENBQUM7b0JBQ0wsQ0FBQztnQkFDTCxDQUFDO2dCQUNELHlEQUF5RDtnQkFDekQsSUFBSSxNQUFNLElBQUlQLFNBQVMsRUFBRTtvQkFDckIsSUFBSUEsU0FBUyxDQUFDOUksSUFBSSxLQUFLLG1CQUFtQixFQUFFO3dCQUN4QyxPQUFPeUYsS0FBSyxDQUFDRixNQUFNLENBQUNyRCxNQUFNLEVBQUU0RyxTQUFTLENBQUN0SSxNQUFNLEVBQUVzSSxTQUFTLENBQUN2SSxLQUFLLEVBQUV0SixPQUFPLENBQUMsQ0FBQztvQkFDNUUsT0FBTzt3QkFDSHFOLG9CQUFvQixDQUFDOzRCQUNqQjFMLEdBQUcsRUFBRWtRLFNBQVMsQ0FBQ3pJLFdBQVc7NEJBQzFCN0ksTUFBTSxFQUFFaU8sS0FBSzt5QkFDaEIsQ0FBQyxDQUFDO3dCQUNILE9BQU8sSUFBSW5PLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQy9CLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLEVBQUUyRSxLQUFLLEdBQUdxTixLQUFLLEdBQUdDLE9BQU8sR0FBR0MsT0FBTyxHQUFHLEdBQUdWLFNBQVM7Z0JBQ3RELE1BQU1XLFNBQVMsR0FBR1gsU0FBUyxDQUFDWSxTQUFTO2dCQUNyQyxJQUFJRCxTQUFTLElBQUlBLFNBQVMsQ0FBQ0UscUJBQXFCLEVBQUU7b0JBQzlDLE1BQU1DLE9BQU8sR0FBRyxFQUFFLENBQUNDLE1BQU0sQ0FBQ0osU0FBUyxDQUFDRSxxQkFBcUIsRUFBRSxDQUFDO29CQUM1REMsT0FBTyxDQUFDdFEsT0FBTyxDQUFDLENBQUN3USxNQUFNLEdBQUc7d0JBQ3JCLEVBQUMsRUFBRXpVLE9BQU8sRUFBRTBVLHNCQUFzQixDQUFDRCxNQUFNLENBQUNSLEtBQUssQ0FBQyxDQUFDO29CQUN0RCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUNELHVDQUF1QztnQkFDdkMsSUFBSSxDQUFDQyxPQUFPLElBQUlDLE9BQU8sS0FBS0YsS0FBSyxFQUFFO29CQUMvQixJQUFJQSxLQUFLLENBQUNVLFNBQVMsSUFBSVYsS0FBSyxDQUFDVSxTQUFTLENBQUNDLFlBQVksRUFBRTt3QkFDakQsMERBQTBEO3dCQUMxRGhULE9BQU8sQ0FBQ29CLE1BQU0sR0FBRyxLQUFLLENBQUM7d0JBQ3ZCLE1BQU1nSSxXQUFXLEdBQUdpSixLQUFLLENBQUNVLFNBQVMsQ0FBQ0MsWUFBWTt3QkFDaEQsb0VBQW9FO3dCQUNwRSxnRUFBZ0U7d0JBQ2hFLFdBQVc7d0JBQ1gsSUFBSTVKLFdBQVcsQ0FBQ3RILFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSXVRLEtBQUssQ0FBQ1UsU0FBUyxDQUFDRSxzQkFBc0IsS0FBSyxLQUFLLEVBQUU7NEJBQ2pGLE1BQU1DLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRXZVLGlCQUFpQixFQUFFaUosZ0JBQWdCLENBQUN3QixXQUFXLENBQUM7NEJBQ3ZFOEosVUFBVSxDQUFDeFMsUUFBUSxHQUFHeUYsbUJBQW1CLENBQUMrTSxVQUFVLENBQUN4UyxRQUFRLEVBQUUwRixLQUFLLENBQUMsQ0FBQzs0QkFDdEUsTUFBTSxFQUFFekUsR0FBRyxFQUFFNEgsTUFBTSxHQUFHMUQsRUFBRSxFQUFFeUQsS0FBSyxHQUFHLEdBQUcxRCxZQUFZLENBQUM0SSxLQUFLLEVBQUVwRixXQUFXLEVBQUVBLFdBQVcsQ0FBQzs0QkFDbEYsT0FBT29GLEtBQUssQ0FBQ0YsTUFBTSxDQUFDckQsTUFBTSxFQUFFMUIsTUFBTSxFQUFFRCxLQUFLLEVBQUV0SixPQUFPLENBQUMsQ0FBQzt3QkFDeEQsQ0FBQzt3QkFDRHFOLG9CQUFvQixDQUFDOzRCQUNqQjFMLEdBQUcsRUFBRXlILFdBQVc7NEJBQ2hCN0ksTUFBTSxFQUFFaU8sS0FBSzt5QkFDaEIsQ0FBQyxDQUFDO3dCQUNILE9BQU8sSUFBSW5PLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQy9CLENBQUM7b0JBQ0R3TyxTQUFTLENBQUNrRCxTQUFTLEdBQUcsQ0FBQyxDQUFDTSxLQUFLLENBQUNjLFdBQVcsQ0FBQztvQkFDMUMsc0JBQXNCO29CQUN0QixJQUFJZCxLQUFLLENBQUN2RixRQUFRLEtBQUtuQyxrQkFBa0IsRUFBRTt3QkFDdkMsSUFBSXlJLGFBQWE7d0JBQ2pCLElBQUk7NEJBQ0EsTUFBTTVFLEtBQUssQ0FBQzZFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQzs0QkFDbkNELGFBQWEsR0FBRyxNQUFNLENBQUM7d0JBQzNCLEVBQUUsT0FBT3hRLENBQUMsRUFBRTs0QkFDUndRLGFBQWEsR0FBRyxTQUFTLENBQUM7d0JBQzlCLENBQUM7d0JBQ0R2QixTQUFTLEdBQUcsTUFBTXJELEtBQUssQ0FBQ3NELFlBQVksQ0FBQzs0QkFDakNqUCxLQUFLLEVBQUV1USxhQUFhOzRCQUNwQjFTLFFBQVEsRUFBRTBTLGFBQWE7NEJBQ3ZCdFEsS0FBSzs0QkFDTCtDLEVBQUU7NEJBQ0ZDLFVBQVU7NEJBQ1ZzSyxVQUFVLEVBQUU7Z0NBQ1JGLE9BQU8sRUFBRSxLQUFLOzZCQUNqQjs0QkFDRDlPLE1BQU0sRUFBRXlOLFNBQVMsQ0FBQ3pOLE1BQU07NEJBQ3hCMlEsU0FBUyxFQUFFbEQsU0FBUyxDQUFDa0QsU0FBUzt5QkFDakMsQ0FBQyxDQUFDO3dCQUNILElBQUksTUFBTSxJQUFJRixTQUFTLEVBQUU7NEJBQ3JCLE1BQU0sSUFBSS9SLEtBQUssQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQzt3QkFDNUQsQ0FBQztvQkFDTCxDQUFDO2dCQUNMLENBQUM7Z0JBQ0Q0TixNQUFNLENBQUM0QyxNQUFNLENBQUNDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTFLLEVBQUUsRUFBRXVLLFVBQVUsQ0FBQyxDQUFDO2dCQUMxRDVCLEtBQUssQ0FBQ21DLFdBQVcsQ0FBQzFGLE1BQU0sRUFBRXRKLEdBQUcsRUFBRWtFLEVBQUUsRUFBRTdGLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QyxJQUFJeU8sZUFBZSxJQUFJL04sUUFBUSxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUNpUixJQUFJLEdBQUcxRCxJQUFJLENBQUNxRixhQUFhLENBQUNqQixLQUFLLEtBQUssSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUNULElBQUksR0FBR0QsSUFBSSxDQUFDb0IsU0FBUyxLQUFLLElBQUksR0FBRyxLQUFLLENBQUMsR0FBR25CLElBQUksQ0FBQzJCLFVBQVUsTUFBTSxHQUFHLElBQUtsQixDQUFBQSxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHQSxLQUFLLENBQUNVLFNBQVMsR0FBRztvQkFDdE4seURBQXlEO29CQUN6RCxrQ0FBa0M7b0JBQ2xDVixLQUFLLENBQUNVLFNBQVMsQ0FBQ1EsVUFBVSxHQUFHLEdBQUcsQ0FBQztnQkFDckMsQ0FBQztnQkFDRCxJQUFJQyxNQUFNO2dCQUNWLDZEQUE2RDtnQkFDN0QsTUFBTUMsbUJBQW1CLEdBQUd6VCxPQUFPLENBQUNrUSxPQUFPLElBQUlyQixTQUFTLENBQUNoTSxLQUFLLEtBQU0sRUFBQzJRLE1BQU0sR0FBRzNCLFNBQVMsQ0FBQ2hQLEtBQUssS0FBSyxJQUFJLEdBQUcyUSxNQUFNLEdBQUczUSxLQUFLO2dCQUN2SCxJQUFJNlEsT0FBTztnQkFDWCxNQUFNQyxZQUFZLEdBQUcsQ0FBQ0QsT0FBTyxHQUFHMVQsT0FBTyxDQUFDbVEsTUFBTSxLQUFLLElBQUksR0FBR3VELE9BQU8sR0FBRyxDQUFDMVQsT0FBTyxDQUFDME8sRUFBRSxJQUFJLENBQUMrRSxtQkFBbUI7Z0JBQ3ZHLE1BQU1HLFdBQVcsR0FBR0QsWUFBWSxHQUFHO29CQUMvQjNGLENBQUMsRUFBRSxDQUFDO29CQUNKRyxDQUFDLEVBQUUsQ0FBQztpQkFDUCxHQUFHLElBQUk7Z0JBQ1IsMENBQTBDO2dCQUMxQyxNQUFNMEYsbUJBQW1CLEdBQUcvVixRQUFRLENBQUMsRUFBRSxFQUFFK1EsU0FBUyxFQUFFO29CQUNoRGhNLEtBQUs7b0JBQ0xuQyxRQUFRO29CQUNSb0MsS0FBSztvQkFDTGpDLE1BQU0sRUFBRUMsU0FBUztvQkFDakJnVCxVQUFVLEVBQUUsS0FBSztpQkFDcEIsQ0FBQztnQkFDRixNQUFNQyxtQkFBbUIsR0FBR3hGLFlBQVksSUFBSSxJQUFJLEdBQUdBLFlBQVksR0FBR3FGLFdBQVc7Z0JBQzdFLDBFQUEwRTtnQkFDMUUsaUJBQWlCO2dCQUNqQixpREFBaUQ7Z0JBQ2pELE1BQU1JLGVBQWUsR0FBR2hVLE9BQU8sQ0FBQzBPLEVBQUUsSUFBSSxDQUFDcUYsbUJBQW1CLElBQUksQ0FBQ2hGLGdCQUFnQixJQUFJLENBQUMwQixZQUFZLElBQUksQ0FBQyxDQUFDLEVBQUUvUSxjQUFjLEVBQUV1VSxtQkFBbUIsQ0FBQ0osbUJBQW1CLEVBQUVyRixLQUFLLENBQUNNLEtBQUssQ0FBQztnQkFDN0ssSUFBSSxDQUFDa0YsZUFBZSxFQUFFO29CQUNsQixNQUFNeEYsS0FBSyxDQUFDcUMsR0FBRyxDQUFDZ0QsbUJBQW1CLEVBQUVoQyxTQUFTLEVBQUVrQyxtQkFBbUIsQ0FBQyxDQUFDL0osS0FBSyxDQUFDLENBQUNxRSxDQUFDLEdBQUc7d0JBQzVFLElBQUlBLENBQUMsQ0FBQ3RPLFNBQVMsRUFBRWlGLEtBQUssR0FBR0EsS0FBSyxJQUFJcUosQ0FBQyxDQUFDOzZCQUMvQixNQUFNQSxDQUFDLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUlySixLQUFLLEVBQUU7d0JBQ1AsSUFBSSxDQUFDeUosZUFBZSxFQUFFOzRCQUNsQmYsTUFBTSxDQUFDNEMsTUFBTSxDQUFDQyxJQUFJLENBQUMsa0JBQWtCLEVBQUV2TCxLQUFLLEVBQUVsRSxTQUFTLEVBQUVzUCxVQUFVLENBQUMsQ0FBQzt3QkFDekUsQ0FBQzt3QkFDRCxNQUFNcEwsS0FBSyxDQUFDO29CQUNoQixDQUFDO29CQUNELElBQUltQyxLQUErQixFQUFFLEVBSXBDO29CQUNELElBQUksQ0FBQ3NILGVBQWUsRUFBRTt3QkFDbEJmLE1BQU0sQ0FBQzRDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLHFCQUFxQixFQUFFMUssRUFBRSxFQUFFdUssVUFBVSxDQUFDLENBQUM7b0JBQzlELENBQUM7b0JBQ0QsbURBQW1EO29CQUNuRCxNQUFNK0QsU0FBUyxTQUFTO29CQUN4QixJQUFJUixZQUFZLElBQUlRLFNBQVMsQ0FBQzFTLElBQUksQ0FBQ29FLEVBQUUsQ0FBQyxFQUFFO3dCQUNwQzJJLEtBQUssQ0FBQ29DLFlBQVksQ0FBQy9LLEVBQUUsQ0FBQyxDQUFDO29CQUMzQixDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDaEIsRUFBRSxPQUFPdU8sS0FBSSxFQUFFO2dCQUNYLElBQUksQ0FBQyxDQUFDLEVBQUUvVixRQUFRLEVBQUVWLE9BQU8sQ0FBQ3lXLEtBQUksQ0FBQyxJQUFJQSxLQUFJLENBQUNyVSxTQUFTLEVBQUU7b0JBQy9DLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO2dCQUNELE1BQU1xVSxLQUFJLENBQUM7WUFDZixDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNUO0lBQ0F6RCxXQUFXLENBQUMxRixNQUFNLEVBQUV0SixHQUFHLEVBQUVrRSxFQUFFLEVBQUU3RixPQUFPLEdBQUcsRUFBRSxFQUFFO1FBQ3ZDLElBQUltSCxJQUFxQyxFQUFFO1lBQ3ZDLElBQUksT0FBT2lELE1BQU0sQ0FBQ0MsT0FBTyxLQUFLLFdBQVcsRUFBRTtnQkFDdkN0RixPQUFPLENBQUNDLEtBQUssQ0FBQyxDQUFDLHlDQUF5QyxDQUFDLENBQUMsQ0FBQztnQkFDM0QsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJLE9BQU9vRixNQUFNLENBQUNDLE9BQU8sQ0FBQ1ksTUFBTSxDQUFDLEtBQUssV0FBVyxFQUFFO2dCQUMvQ2xHLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLENBQUMsd0JBQXdCLEVBQUVpRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxPQUFPO1lBQ1gsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJQSxNQUFNLEtBQUssV0FBVyxJQUFJLENBQUMsQ0FBQyxFQUFFeE0sTUFBTSxFQUFFNFYsTUFBTSxFQUFFLEtBQUt4TyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDeU8sUUFBUSxHQUFHdFUsT0FBTyxDQUFDa1EsT0FBTyxDQUFDO1lBQ2hDOUYsTUFBTSxDQUFDQyxPQUFPLENBQUNZLE1BQU0sQ0FBQyxDQUFDO2dCQUNuQnRKLEdBQUc7Z0JBQ0hrRSxFQUFFO2dCQUNGN0YsT0FBTztnQkFDUHVVLEdBQUcsRUFBRSxJQUFJO2dCQUNUalMsR0FBRyxFQUFFLElBQUksQ0FBQ3dMLElBQUksR0FBRzdDLE1BQU0sS0FBSyxXQUFXLEdBQUcsSUFBSSxDQUFDNkMsSUFBSSxHQUFHcFEsU0FBUyxFQUFFO2FBQ3BFLEVBQ0QscUZBQXFGO1lBQ3JGLHdFQUF3RTtZQUN4RSxFQUFFLEVBQUVtSSxFQUFFLENBQUMsQ0FBQztRQUNaLENBQUM7SUFDTDtJQUNBMk8sb0JBQW9CLENBQUN4SCxHQUFHLEVBQUV0TSxRQUFRLEVBQUVvQyxLQUFLLEVBQUUrQyxFQUFFLEVBQUV1SyxVQUFVLEVBQUVxRSxhQUFhLEVBQUU7UUFDdEUsSUFBSWpHLEtBQUssR0FBRyxJQUFJO1FBQ2hCLE9BQU81USxtQkFBbUIsQ0FBQyxZQUFZO1lBQ25DbUgsT0FBTyxDQUFDQyxLQUFLLENBQUNnSSxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJQSxHQUFHLENBQUNqTixTQUFTLEVBQUU7Z0JBQ2YsZ0NBQWdDO2dCQUNoQyxNQUFNaU4sR0FBRyxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQUksQ0FBQyxDQUFDLEVBQUU3TyxZQUFZLEVBQUV1VyxZQUFZLENBQUMxSCxHQUFHLENBQUMsSUFBSXlILGFBQWEsRUFBRTtnQkFDdEQvRyxNQUFNLENBQUM0QyxNQUFNLENBQUNDLElBQUksQ0FBQyxrQkFBa0IsRUFBRXZELEdBQUcsRUFBRW5ILEVBQUUsRUFBRXVLLFVBQVUsQ0FBQyxDQUFDO2dCQUM1RCxpRUFBaUU7Z0JBQ2pFLDBCQUEwQjtnQkFDMUIsMENBQTBDO2dCQUMxQyw0Q0FBNEM7Z0JBQzVDLCtEQUErRDtnQkFDL0QvQyxvQkFBb0IsQ0FBQztvQkFDakIxTCxHQUFHLEVBQUVrRSxFQUFFO29CQUNQdEYsTUFBTSxFQUFFaU8sS0FBSztpQkFDaEIsQ0FBQyxDQUFDO2dCQUNILGtFQUFrRTtnQkFDbEUsOERBQThEO2dCQUM5RCxNQUFNNU8sc0JBQXNCLEVBQUUsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsSUFBSTtnQkFDQSxJQUFJeVMsS0FBSztnQkFDVCxNQUFNLEVBQUU3TCxJQUFJLEVBQUVpTSxTQUFTLEdBQUdrQyxXQUFXLEdBQUcsR0FBRyxNQUFNbkcsS0FBSyxDQUFDNkUsY0FBYyxDQUFDLFNBQVMsQ0FBQztnQkFDaEYsTUFBTXhCLFNBQVMsR0FBRztvQkFDZFEsS0FBSztvQkFDTEksU0FBUztvQkFDVGtDLFdBQVc7b0JBQ1gzSCxHQUFHO29CQUNIaEksS0FBSyxFQUFFZ0ksR0FBRztpQkFDYjtnQkFDRCxJQUFJLENBQUM2RSxTQUFTLENBQUNRLEtBQUssRUFBRTtvQkFDbEIsSUFBSTt3QkFDQVIsU0FBUyxDQUFDUSxLQUFLLEdBQUcsTUFBTTdELEtBQUssQ0FBQ29HLGVBQWUsQ0FBQ25DLFNBQVMsRUFBRTs0QkFDckR6RixHQUFHOzRCQUNIdE0sUUFBUTs0QkFDUm9DLEtBQUs7eUJBQ1IsQ0FBQyxDQUFDO29CQUNQLEVBQUUsT0FBTytSLE1BQU0sRUFBRTt3QkFDYjlQLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLHlDQUF5QyxFQUFFNlAsTUFBTSxDQUFDLENBQUM7d0JBQ2pFaEQsU0FBUyxDQUFDUSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUN6QixDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsT0FBT1IsU0FBUyxDQUFDO1lBQ3JCLEVBQUUsT0FBT2lELFlBQVksRUFBRTtnQkFDbkIsT0FBT3RHLEtBQUssQ0FBQ2dHLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFblcsUUFBUSxFQUFFVixPQUFPLENBQUNtWCxZQUFZLENBQUMsR0FBR0EsWUFBWSxHQUFHLElBQUloVixLQUFLLENBQUNnVixZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUVwVSxRQUFRLEVBQUVvQyxLQUFLLEVBQUUrQyxFQUFFLEVBQUV1SyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEssQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDVDtJQUNBMEIsWUFBWSxDQUFDLEVBQUVqUCxLQUFLLEVBQUVrUyxjQUFjLEdBQUdyVSxRQUFRLEdBQUdvQyxLQUFLLEdBQUcrQyxFQUFFLEdBQUdDLFVBQVUsR0FBR3NLLFVBQVUsR0FBR2hQLE1BQU0sR0FBRytLLGFBQWEsR0FBRzRGLFNBQVMsR0FBR3ZGLHdCQUF3QixHQUFHLEVBQUU7UUFDdkosSUFBSWdDLEtBQUssR0FBRyxJQUFJO1FBQ2hCLE9BQU81USxtQkFBbUIsQ0FBQyxZQUFZO1lBQ25DOzs7OztLQUtQLEdBQUcsSUFBSWlGLEtBQUssR0FBR2tTLGNBQWM7WUFDdEIsSUFBSTtnQkFDQSxJQUFJbEksR0FBRyxFQUFFbUksSUFBSSxFQUFFQyxJQUFJO2dCQUNuQixNQUFNeEgsZUFBZSxHQUFHSCxtQkFBbUIsQ0FBQztvQkFDeEN6SyxLQUFLO29CQUNMdEMsTUFBTSxFQUFFaU8sS0FBSztpQkFDaEIsQ0FBQztnQkFDRixJQUFJMEcsWUFBWSxHQUFHMUcsS0FBSyxDQUFDc0MsVUFBVSxDQUFDak8sS0FBSyxDQUFDO2dCQUMxQyxJQUFJdU4sVUFBVSxDQUFDRixPQUFPLElBQUlnRixZQUFZLElBQUkxRyxLQUFLLENBQUMzTCxLQUFLLEtBQUtBLEtBQUssRUFBRTtvQkFDN0QsT0FBT3FTLFlBQVksQ0FBQztnQkFDeEIsQ0FBQztnQkFDRCxJQUFJL0ksYUFBYSxFQUFFO29CQUNmK0ksWUFBWSxHQUFHakksU0FBUyxDQUFDO2dCQUM3QixDQUFDO2dCQUNELElBQUlrSSxlQUFlLEdBQUdELFlBQVksSUFBSSxDQUFFLFVBQVMsSUFBSUEsWUFBWSxLQUFLL04sYUF4aUN6RSxLQXdpQ2tHLGFBQWEsR0FBRytOLENBQVksR0FBR2pJLFNBQVM7Z0JBQ3ZJLE1BQU1tSSxtQkFBbUIsR0FBRztvQkFDeEJ6TCxRQUFRLEVBQUU2RSxLQUFLLENBQUNoTyxVQUFVLENBQUM2VSxXQUFXLENBQUM7d0JBQ25DalIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFcEYsVUFBVSxFQUFFd0Ysb0JBQW9CLENBQUM7NEJBQ3ZDOUQsUUFBUTs0QkFDUm9DLEtBQUs7eUJBQ1IsQ0FBQzt3QkFDRndTLGlCQUFpQixFQUFFLElBQUk7d0JBQ3ZCelUsTUFBTSxFQUFFaUYsVUFBVTt3QkFDbEIxRSxNQUFNO3FCQUNULENBQUM7b0JBQ0YrSyxhQUFhLEVBQUUsSUFBSTtvQkFDbkJDLGNBQWMsRUFBRW9DLEtBQUssQ0FBQ1MsS0FBSztvQkFDM0I1QyxTQUFTLEVBQUUsSUFBSTtvQkFDZkosYUFBYSxFQUFFdUMsS0FBSyxDQUFDK0csR0FBRztvQkFDeEJqSixZQUFZLEVBQUUsQ0FBQ3lGLFNBQVM7b0JBQ3hCN0YsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCTSx3QkFBd0I7aUJBQzNCO2dCQUNELE1BQU05QyxJQUFJLEdBQUcsTUFBTUYscUJBQXFCLENBQUM7b0JBQ3JDQyxTQUFTLEVBQUUsSUFBSXVDLGFBQWEsQ0FBQ29KLG1CQUFtQixDQUFDO29CQUNqRHZVLE1BQU0sRUFBRWlGLFVBQVU7b0JBQ2xCMUUsTUFBTSxFQUFFQSxNQUFNO29CQUNkYixNQUFNLEVBQUVpTyxLQUFLO2lCQUNoQixDQUFDO2dCQUNGZixlQUFlLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDL0QsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDbUQsR0FBRyxHQUFHbkQsSUFBSSxDQUFDRSxNQUFNLEtBQUssSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHaUQsR0FBRyxDQUFDOUQsSUFBSSxNQUFNLG1CQUFtQixJQUFJLENBQUNXLElBQUksSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQ3NMLElBQUksR0FBR3RMLElBQUksQ0FBQ0UsTUFBTSxLQUFLLElBQUksR0FBRyxLQUFLLENBQUMsR0FBR29MLElBQUksQ0FBQ2pNLElBQUksTUFBTSxtQkFBbUIsRUFBRTtvQkFDMU0sT0FBT1csSUFBSSxDQUFDRSxNQUFNLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDRixJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUN1TCxJQUFJLEdBQUd2TCxJQUFJLENBQUNFLE1BQU0sS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUdxTCxJQUFJLENBQUNsTSxJQUFJLE1BQU0sU0FBUyxFQUFFO29CQUMzRmxHLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTNFLG9CQUFvQixFQUFFb0ksbUJBQW1CLENBQUNvRCxJQUFJLENBQUNFLE1BQU0sQ0FBQ2xFLFlBQVksQ0FBQyxDQUFDO29CQUNoRmhGLFFBQVEsR0FBR2dKLElBQUksQ0FBQ0UsTUFBTSxDQUFDbEUsWUFBWSxDQUFDO29CQUNwQzVDLEtBQUssR0FBR2hGLFFBQVEsQ0FBQyxFQUFFLEVBQUVnRixLQUFLLEVBQUU0RyxJQUFJLENBQUNFLE1BQU0sQ0FBQ2hCLFFBQVEsQ0FBQzlGLEtBQUssQ0FBQyxDQUFDO29CQUN4RGdELFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRXpHLGVBQWUsRUFBRTJCLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRXpDLG9CQUFvQixFQUFFZ0ssbUJBQW1CLENBQUNtQixJQUFJLENBQUNFLE1BQU0sQ0FBQ2hCLFFBQVEsQ0FBQ2xJLFFBQVEsRUFBRThOLEtBQUssQ0FBQ3hILE9BQU8sQ0FBQyxDQUFDdEcsUUFBUSxDQUFDLENBQUM7b0JBQ3ZKLGtEQUFrRDtvQkFDbER3VSxZQUFZLEdBQUcxRyxLQUFLLENBQUNzQyxVQUFVLENBQUNqTyxLQUFLLENBQUMsQ0FBQztvQkFDdkMsSUFBSXVOLFVBQVUsQ0FBQ0YsT0FBTyxJQUFJZ0YsWUFBWSxJQUFJMUcsS0FBSyxDQUFDM0wsS0FBSyxLQUFLQSxLQUFLLElBQUksQ0FBQ3NKLGFBQWEsRUFBRTt3QkFDL0UsNERBQTREO3dCQUM1RCw2REFBNkQ7d0JBQzdELGdFQUFnRTt3QkFDaEUsT0FBT3JPLFFBQVEsQ0FBQyxFQUFFLEVBQUVvWCxZQUFZLEVBQUU7NEJBQzlCclMsS0FBSzt5QkFDUixDQUFDLENBQUM7b0JBQ1AsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUlBLEtBQUssS0FBSyxNQUFNLElBQUlBLEtBQUssQ0FBQ2YsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUMvQ3VMLG9CQUFvQixDQUFDO3dCQUNqQjFMLEdBQUcsRUFBRWtFLEVBQUU7d0JBQ1B0RixNQUFNLEVBQUVpTyxLQUFLO3FCQUNoQixDQUFDLENBQUM7b0JBQ0gsT0FBTyxJQUFJbk8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztnQkFDRCxNQUFNd1IsU0FBUyxHQUFHc0QsZUFBZSxJQUFLLE9BQU0zRyxLQUFLLENBQUM2RSxjQUFjLENBQUN4USxLQUFLLENBQUMsQ0FBQ3VGLElBQUksQ0FBQyxDQUFDb04sR0FBRyxHQUFJO3dCQUM3RS9DLFNBQVMsRUFBRStDLEdBQUcsQ0FBQ2hQLElBQUk7d0JBQ25CbU8sV0FBVyxFQUFFYSxHQUFHLENBQUNiLFdBQVc7d0JBQzVCckMsT0FBTyxFQUFFa0QsR0FBRyxDQUFDQyxHQUFHLENBQUNuRCxPQUFPO3dCQUN4QkMsT0FBTyxFQUFFaUQsR0FBRyxDQUFDQyxHQUFHLENBQUNsRCxPQUFPO3FCQUMzQixFQUFFO2dCQUNQLElBQUlwTCxJQUFxQyxFQUFFO29CQUN2QyxNQUFNLEVBQUV1TyxrQkFBa0IsR0FBRyxHQUFHN1gsbUJBQU8sQ0FBQyxnRUFBNkIsQ0FBQztvQkFDdEUsSUFBSSxDQUFDNlgsa0JBQWtCLENBQUM3RCxTQUFTLENBQUNZLFNBQVMsQ0FBQyxFQUFFO3dCQUMxQyxNQUFNLElBQUkzUyxLQUFLLENBQUMsQ0FBQyxzREFBc0QsRUFBRVksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzFGLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxNQUFNaVYsZUFBZSxHQUFHOUQsU0FBUyxDQUFDUyxPQUFPLElBQUlULFNBQVMsQ0FBQ1UsT0FBTztnQkFDOUQsTUFBTSxFQUFFRixLQUFLLEdBQUd4SSxRQUFRLEdBQUcsR0FBRyxNQUFNMkUsS0FBSyxDQUFDb0gsUUFBUSxDQUFDaFksbUJBQW1CLENBQUMsWUFBWTtvQkFDL0UsSUFBSStYLGVBQWUsRUFBRTt3QkFDakIsTUFBTSxFQUFFN0wsSUFBSSxHQUFHRCxRQUFRLEVBQUVnTSxTQUFTLEdBQUcsR0FBRyxDQUFDbk0sSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsR0FBR0EsSUFBSSxDQUFDSSxJQUFJLElBQUlKLElBQUksR0FBRyxNQUFNc0MsYUFBYSxDQUFDOzRCQUNyR3JDLFFBQVEsRUFBRTZFLEtBQUssQ0FBQ2hPLFVBQVUsQ0FBQzZVLFdBQVcsQ0FBQztnQ0FDbkNqUixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUVwRixVQUFVLEVBQUV3RixvQkFBb0IsQ0FBQztvQ0FDdkM5RCxRQUFRO29DQUNSb0MsS0FBSztpQ0FDUixDQUFDO2dDQUNGakMsTUFBTSxFQUFFaUYsVUFBVTtnQ0FDbEIxRSxNQUFNOzZCQUNULENBQUM7NEJBQ0ZnTCxjQUFjLEVBQUVvQyxLQUFLLENBQUNTLEtBQUs7NEJBQzNCNUMsU0FBUyxFQUFFLElBQUk7NEJBQ2ZKLGFBQWEsRUFBRXVDLEtBQUssQ0FBQytHLEdBQUc7NEJBQ3hCakosWUFBWSxFQUFFLENBQUN5RixTQUFTOzRCQUN4QjdGLFVBQVUsRUFBRSxLQUFLOzRCQUNqQk0sd0JBQXdCO3lCQUMzQixDQUFDO3dCQUNGLE9BQU87NEJBQ0gzQyxRQUFRLEVBQUVnTSxTQUFTOzRCQUNuQnhELEtBQUssRUFBRXZJLElBQUksSUFBSSxFQUFFO3lCQUNwQixDQUFDO29CQUNOLENBQUM7b0JBQ0QsT0FBTzt3QkFDSHZDLE9BQU8sRUFBRSxFQUFFO3dCQUNYc0MsUUFBUSxFQUFFLEVBQUU7d0JBQ1p3SSxLQUFLLEVBQUUsTUFBTTdELEtBQUssQ0FBQ29HLGVBQWUsQ0FBQy9DLFNBQVMsQ0FBQ1ksU0FBUyxFQUN0RDs0QkFDSS9SLFFBQVE7NEJBQ1JvQyxLQUFLOzRCQUNMakMsTUFBTSxFQUFFZ0YsRUFBRTs0QkFDVnpFLE1BQU07NEJBQ040RixPQUFPLEVBQUV3SCxLQUFLLENBQUN4SCxPQUFPOzRCQUN0QmtDLGFBQWEsRUFBRXNGLEtBQUssQ0FBQ3RGLGFBQWE7eUJBQ3JDLENBQUM7cUJBQ0wsQ0FBQztnQkFDTixDQUFDLENBQUMsQ0FBQztnQkFDSCxtREFBbUQ7Z0JBQ25ELDZDQUE2QztnQkFDN0MsdUNBQXVDO2dCQUN2QyxJQUFJMkksU0FBUyxDQUFDVSxPQUFPLElBQUk2QyxtQkFBbUIsQ0FBQ3pMLFFBQVEsRUFBRTtvQkFDbkQsT0FBTzZFLEtBQUssQ0FBQytHLEdBQUcsQ0FBQzFMLFFBQVEsQ0FBQyxDQUFDO2dCQUMvQixDQUFDO2dCQUNELCtDQUErQztnQkFDL0MsNkRBQTZEO2dCQUM3RCxJQUFJLENBQUMyRSxLQUFLLENBQUN1RCxTQUFTLElBQUlGLFNBQVMsQ0FBQ1MsT0FBTyxJQUFJbkwsYUF0cENoRCxLQXNwQ3lFLGFBQWEsRUFBRSxFQU1wRjtnQkFDRGtMLEtBQUssQ0FBQ1UsU0FBUyxHQUFHN1YsTUFBTSxDQUFDMkMsTUFBTSxDQUFDLEVBQUUsRUFBRXdTLEtBQUssQ0FBQ1UsU0FBUyxDQUFDLENBQUM7Z0JBQ3JEbEIsU0FBUyxDQUFDUSxLQUFLLEdBQUdBLEtBQUssQ0FBQztnQkFDeEJSLFNBQVMsQ0FBQ2hQLEtBQUssR0FBR0EsS0FBSyxDQUFDO2dCQUN4QmdQLFNBQVMsQ0FBQy9PLEtBQUssR0FBR0EsS0FBSyxDQUFDO2dCQUN4QitPLFNBQVMsQ0FBQy9MLFVBQVUsR0FBR0EsVUFBVSxDQUFDO2dCQUNsQzBJLEtBQUssQ0FBQ3NDLFVBQVUsQ0FBQ2pPLEtBQUssQ0FBQyxHQUFHZ1AsU0FBUyxDQUFDO2dCQUNwQyxPQUFPQSxTQUFTLENBQUM7WUFDckIsRUFBRSxPQUFPN0UsR0FBRyxFQUFFO2dCQUNWLE9BQU93QixLQUFLLENBQUNnRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRW5XLFFBQVEsRUFBRXlYLGNBQWMsQ0FBQzlJLEdBQUcsQ0FBQyxFQUFFdE0sUUFBUSxFQUFFb0MsS0FBSyxFQUFFK0MsRUFBRSxFQUFFdUssVUFBVSxDQUFDLENBQUM7WUFDMUcsQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDVDtJQUNBUyxHQUFHLENBQUMvQixLQUFLLEVBQUVwRixJQUFJLEVBQUVrSyxXQUFXLEVBQUU7UUFDMUIsSUFBSSxDQUFDOUUsS0FBSyxHQUFHQSxLQUFLLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUNpSCxHQUFHLENBQUNyTSxJQUFJLEVBQUUsSUFBSSxDQUFDb0gsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDMkIsU0FBUyxFQUFFbUIsV0FBVyxDQUFDLENBQUM7SUFDM0U7SUFDQTs7O0dBR0QsR0FBR29DLGNBQWMsQ0FBQ0MsRUFBRSxFQUFFO1FBQ2pCLElBQUksQ0FBQ0MsSUFBSSxHQUFHRCxFQUFFLENBQUM7SUFDbkI7SUFDQXZGLGVBQWUsQ0FBQzdLLEVBQUUsRUFBRTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDaEYsTUFBTSxFQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9CLE1BQU0sQ0FBQ3NWLFlBQVksRUFBRUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDdlYsTUFBTSxDQUFDaUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxNQUFNLENBQUN1UixZQUFZLEVBQUVDLE9BQU8sQ0FBQyxHQUFHelEsRUFBRSxDQUFDZixLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzdDLHlFQUF5RTtRQUN6RSxJQUFJd1IsT0FBTyxJQUFJSCxZQUFZLEtBQUtFLFlBQVksSUFBSUQsT0FBTyxLQUFLRSxPQUFPLEVBQUU7WUFDakUsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELDBEQUEwRDtRQUMxRCxJQUFJSCxZQUFZLEtBQUtFLFlBQVksRUFBRTtZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QseURBQXlEO1FBQ3pELHVEQUF1RDtRQUN2RCwyREFBMkQ7UUFDM0QsbUNBQW1DO1FBQ25DLE9BQU9ELE9BQU8sS0FBS0UsT0FBTyxDQUFDO0lBQy9CO0lBQ0ExRixZQUFZLENBQUMvSyxFQUFFLEVBQUU7UUFDYixNQUFNLEdBQUdKLElBQUksR0FBRyxFQUFFLENBQUMsR0FBR0ksRUFBRSxDQUFDZixLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ25DLGdFQUFnRTtRQUNoRSxxQkFBcUI7UUFDckIsSUFBSVcsSUFBSSxLQUFLLEVBQUUsSUFBSUEsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUMvQjRGLGtCQUFrQixDQUFDLElBQUlqQixNQUFNLENBQUNtTSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsT0FBTztRQUNYLENBQUM7UUFDRCw4Q0FBOEM7UUFDOUMsTUFBTUMsT0FBTyxHQUFHQyxrQkFBa0IsQ0FBQ2hSLElBQUksQ0FBQztRQUN4QywrQ0FBK0M7UUFDL0MsTUFBTWlSLElBQUksR0FBR2xMLFFBQVEsQ0FBQ21MLGNBQWMsQ0FBQ0gsT0FBTyxDQUFDO1FBQzdDLElBQUlFLElBQUksRUFBRTtZQUNOckwsa0JBQWtCLENBQUMsSUFBSXFMLElBQUksQ0FBQ0UsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUM5QyxPQUFPO1FBQ1gsQ0FBQztRQUNELGtFQUFrRTtRQUNsRSxxQkFBcUI7UUFDckIsTUFBTUMsTUFBTSxHQUFHckwsUUFBUSxDQUFDc0wsaUJBQWlCLENBQUNOLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJSyxNQUFNLEVBQUU7WUFDUnhMLGtCQUFrQixDQUFDLElBQUl3TCxNQUFNLENBQUNELGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNMO0lBQ0E1RixRQUFRLENBQUNuUSxNQUFNLEVBQUU7UUFDYixPQUFPLElBQUksQ0FBQ0EsTUFBTSxLQUFLQSxNQUFNLENBQUM7SUFDbEM7SUFDQTs7Ozs7R0FLRCxHQUFHa1csUUFBUSxDQUFDcFYsR0FBRyxFQUFFZCxNQUFNLEdBQUdjLEdBQUcsRUFBRTNCLE9BQU8sR0FBRyxFQUFFLEVBQUU7UUFDeEMsSUFBSXdPLEtBQUssR0FBRyxJQUFJO1FBQ2hCLE9BQU81USxtQkFBbUIsQ0FBQyxZQUFZO1lBQ25DLElBQUksS0FBOEUsRUFBRSxFQUtuRjtZQUNELElBQUltVCxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUVwUyxpQkFBaUIsRUFBRWlKLGdCQUFnQixDQUFDakcsR0FBRyxDQUFDO1lBQ3pELElBQUksRUFBRWpCLFFBQVEsR0FBR29DLEtBQUssR0FBRyxHQUFHaU8sTUFBTTtZQUNsQyxJQUFJNUosS0FBK0IsRUFBRSxFQVdwQztZQUNELE1BQU1mLEtBQUssR0FBRyxNQUFNb0ksS0FBSyxDQUFDaE8sVUFBVSxDQUFDMEgsV0FBVyxFQUFFO1lBQ2xELElBQUlwQyxVQUFVLEdBQUdqRixNQUFNO1lBQ3ZCLE1BQU1PLE1BQU0sR0FBRyxPQUFPcEIsT0FBTyxDQUFDb0IsTUFBTSxLQUFLLFdBQVcsR0FBR3BCLE9BQU8sQ0FBQ29CLE1BQU0sSUFBSTZMLFNBQVMsR0FBR3VCLEtBQUssQ0FBQ3BOLE1BQU07WUFDakcsSUFBSStGLEtBQXlELEVBQUUsRUFlOUQ7WUFDRDRKLE1BQU0sQ0FBQ3JRLFFBQVEsR0FBR3lGLG1CQUFtQixDQUFDNEssTUFBTSxDQUFDclEsUUFBUSxFQUFFMEYsS0FBSyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLENBQUMsRUFBRTFILFVBQVUsRUFBRTRHLGNBQWMsQ0FBQ3lMLE1BQU0sQ0FBQ3JRLFFBQVEsQ0FBQyxFQUFFO2dCQUNqREEsUUFBUSxHQUFHcVEsTUFBTSxDQUFDclEsUUFBUSxDQUFDO2dCQUMzQnFRLE1BQU0sQ0FBQ3JRLFFBQVEsR0FBR0EsUUFBUSxDQUFDO2dCQUMzQnhELE1BQU0sQ0FBQzJDLE1BQU0sQ0FBQ2lELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRWhFLGFBQWEsRUFBRXVFLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRXRFLFdBQVcsRUFBRWtFLGFBQWEsQ0FBQzhOLE1BQU0sQ0FBQ3JRLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUV4QixVQUFVLEVBQUUwQixTQUFTLENBQUNDLE1BQU0sQ0FBQyxDQUFDSCxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDNUppQixHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUzQyxVQUFVLEVBQUV3RixvQkFBb0IsQ0FBQ3VNLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFDRCwyRkFBMkY7WUFDM0YsSUFBSTVKLElBQXFDLEVBQUU7Z0JBQ3ZDLE9BQU87WUFDWCxDQUFDO1lBQ0QsTUFBTXRFLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTNFLG9CQUFvQixFQUFFb0ksbUJBQW1CLENBQUM1RixRQUFRLENBQUM7WUFDckUsTUFBTUwsT0FBTyxDQUFDNEgsR0FBRyxDQUFDO2dCQUNkdUcsS0FBSyxDQUFDaE8sVUFBVSxDQUFDMlcsTUFBTSxDQUFDdFUsS0FBSyxDQUFDLENBQUN1RixJQUFJLENBQUMsQ0FBQ2dQLEtBQUssR0FBRztvQkFDekMsT0FBT0EsS0FBSyxHQUFHcEwsYUFBYSxDQUFDO3dCQUN6QnJDLFFBQVEsRUFBRTZFLEtBQUssQ0FBQ2hPLFVBQVUsQ0FBQzZVLFdBQVcsQ0FBQzs0QkFDbkNqUixJQUFJLEVBQUV6QyxHQUFHOzRCQUNUZCxNQUFNLEVBQUVpRixVQUFVOzRCQUNsQjFFLE1BQU0sRUFBRUEsTUFBTTt5QkFDakIsQ0FBQzt3QkFDRmdMLGNBQWMsRUFBRSxLQUFLO3dCQUNyQkMsU0FBUyxFQUFFLElBQUk7d0JBQ2ZKLGFBQWEsRUFBRXVDLEtBQUssQ0FBQytHLEdBQUc7d0JBQ3hCakosWUFBWSxFQUFFLENBQUNrQyxLQUFLLENBQUN1RCxTQUFTO3dCQUM5QjdGLFVBQVUsRUFBRSxJQUFJO3dCQUNoQk0sd0JBQXdCLEVBQUV4TSxPQUFPLENBQUN3TSx3QkFBd0IsSUFBSXhNLE9BQU8sQ0FBQ3FYLFFBQVEsSUFBSSxDQUFDLENBQUNsUSxJQUEwQztxQkFDakksQ0FBQyxDQUFDaUIsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUMvQixDQUFDLENBQUM7Z0JBQ0ZvRyxLQUFLLENBQUNoTyxVQUFVLENBQUNSLE9BQU8sQ0FBQ3FYLFFBQVEsR0FBRyxVQUFVLEdBQUcsVUFBVSxDQUFDLENBQUN4VSxLQUFLLENBQUM7YUFDdEUsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNUO0lBQ0F3USxjQUFjLENBQUN4USxLQUFLLEVBQUU7UUFDbEIsSUFBSTJMLEtBQUssR0FBRyxJQUFJO1FBQ2hCLE9BQU81USxtQkFBbUIsQ0FBQyxZQUFZO1lBQ25DLE1BQU02UCxlQUFlLEdBQUdILG1CQUFtQixDQUFDO2dCQUN4Q3pLLEtBQUs7Z0JBQ0x0QyxNQUFNLEVBQUVpTyxLQUFLO2FBQ2hCLENBQUM7WUFDRixJQUFJO2dCQUNBLE1BQU0rSSxlQUFlLEdBQUcsTUFBTS9JLEtBQUssQ0FBQ2hPLFVBQVUsQ0FBQ2dYLFFBQVEsQ0FBQzNVLEtBQUssQ0FBQztnQkFDOUQ0SyxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsT0FBTzhKLGVBQWUsQ0FBQztZQUMzQixFQUFFLE9BQU92SyxHQUFHLEVBQUU7Z0JBQ1ZTLGVBQWUsRUFBRSxDQUFDO2dCQUNsQixNQUFNVCxHQUFHLENBQUM7WUFDZCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNUO0lBQ0E0SSxRQUFRLENBQUN0SyxFQUFFLEVBQUU7UUFDVCxJQUFJdkwsU0FBUyxHQUFHLEtBQUs7UUFDckIsTUFBTXdOLE1BQU0sR0FBRyxJQUFJO1lBQ2Z4TixTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUN5TixHQUFHLEdBQUdELE1BQU0sQ0FBQztRQUNsQixPQUFPakMsRUFBRSxFQUFFLENBQUNsRCxJQUFJLENBQUMsQ0FBQ3NCLElBQUksR0FBRztZQUNyQixJQUFJNkQsTUFBTSxLQUFLLElBQUksQ0FBQ0MsR0FBRyxFQUFFO2dCQUNyQixJQUFJLENBQUNBLEdBQUcsR0FBRyxJQUFJLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUl6TixTQUFTLEVBQUU7Z0JBQ1gsTUFBTWlOLEdBQUcsR0FBRyxJQUFJbE4sS0FBSyxDQUFDLGlDQUFpQyxDQUFDO2dCQUN4RGtOLEdBQUcsQ0FBQ2pOLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLE1BQU1pTixHQUFHLENBQUM7WUFDZCxDQUFDO1lBQ0QsT0FBT3RELElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQO0lBQ0ErTixjQUFjLENBQUM5TixRQUFRLEVBQUU7UUFDckIsb0VBQW9FO1FBQ3BFLE9BQU9xQyxhQUFhLENBQUM7WUFDakJyQyxRQUFRO1lBQ1J5QyxjQUFjLEVBQUUsSUFBSTtZQUNwQkMsU0FBUyxFQUFFLEtBQUs7WUFDaEJKLGFBQWEsRUFBRSxJQUFJLENBQUNzSixHQUFHO1lBQ3ZCakosWUFBWSxFQUFFLEtBQUs7WUFDbkJKLFVBQVUsRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQzlELElBQUksQ0FBQyxDQUFDLEVBQUUyQixJQUFJLEdBQUcsR0FBSTtnQkFDZEwsSUFBSSxFQUFFSyxJQUFJO2FBQ2IsRUFBRSxDQUFDO0lBQ1o7SUFDQTZLLGVBQWUsQ0FBQ25DLFNBQVMsRUFBRWlGLEdBQUcsRUFBRTtRQUM1QixNQUFNLEVBQUVqRixTQUFTLEVBQUVrRixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM3RyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3BELE1BQU04RyxPQUFPLEdBQUcsSUFBSSxDQUFDQyxRQUFRLENBQUNGLEdBQUcsQ0FBQztRQUNsQ0QsR0FBRyxDQUFDRSxPQUFPLEdBQUdBLE9BQU8sQ0FBQztRQUN0QixPQUFPLENBQUMsQ0FBQyxFQUFFblosTUFBTSxFQUFFcVosbUJBQW1CLENBQUNILEdBQUcsRUFBRTtZQUN4Q0MsT0FBTztZQUNQbkYsU0FBUztZQUNUbFMsTUFBTSxFQUFFLElBQUk7WUFDWm1YLEdBQUc7U0FDTixDQUFDLENBQUM7SUFDUDtRQUNJN1UsS0FBSyxHQUFHO1FBQ1IsT0FBTyxJQUFJLENBQUNpTSxLQUFLLENBQUNqTSxLQUFLLENBQUM7SUFDNUI7UUFDSW5DLFFBQVEsR0FBRztRQUNYLE9BQU8sSUFBSSxDQUFDb08sS0FBSyxDQUFDcE8sUUFBUSxDQUFDO0lBQy9CO1FBQ0lvQyxLQUFLLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQ2dNLEtBQUssQ0FBQ2hNLEtBQUssQ0FBQztJQUM1QjtRQUNJakMsTUFBTSxHQUFHO1FBQ1QsT0FBTyxJQUFJLENBQUNpTyxLQUFLLENBQUNqTyxNQUFNLENBQUM7SUFDN0I7UUFDSU8sTUFBTSxHQUFHO1FBQ1QsT0FBTyxJQUFJLENBQUMwTixLQUFLLENBQUMxTixNQUFNLENBQUM7SUFDN0I7UUFDSTBTLFVBQVUsR0FBRztRQUNiLE9BQU8sSUFBSSxDQUFDaEYsS0FBSyxDQUFDZ0YsVUFBVSxDQUFDO0lBQ2pDO1FBQ0kvQixTQUFTLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQ2pELEtBQUssQ0FBQ2lELFNBQVMsQ0FBQztJQUNoQztJQUNBZ0csWUFBWUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLEdBQUcsRUFBRSxFQUFFQyxZQUFZLEdBQUczWCxVQUFVLEdBQUdtWCxHQUFHLEdBQUdTLE9BQU8sR0FBRzNGLFNBQVMsR0FBR3pGLEdBQUcsR0FBR3FMLFlBQVksR0FBR3ZFLFVBQVUsR0FBRzFTLE1BQU0sR0FBRzRGLE9BQU8sR0FBR2tDLGFBQWEsR0FBR3VHLGFBQWEsR0FBR3NDLFNBQVMsR0FBRyxDQUFDO1FBQzVMLG9CQUFvQjtRQUNwQixJQUFJLENBQUN3RCxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDK0Msb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQ3hLLElBQUksR0FBR3BRLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQzZhLFVBQVUsR0FBRyxDQUFDbEssQ0FBQyxHQUFHO1lBQ25CLE1BQU0sRUFBRWlLLG9CQUFvQixHQUFHLEdBQUcsSUFBSTtZQUN0QyxJQUFJLENBQUNBLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNsQyxNQUFNeEosS0FBSyxHQUFHVCxDQUFDLENBQUNTLEtBQUs7WUFDckIsSUFBSSxDQUFDQSxLQUFLLEVBQUU7Z0JBQ1IsNkNBQTZDO2dCQUM3QyxzREFBc0Q7Z0JBQ3RELGtDQUFrQztnQkFDbEMsRUFBRTtnQkFDRixvRUFBb0U7Z0JBQ3BFLDRCQUE0QjtnQkFDNUIsNERBQTREO2dCQUM1RCxrRkFBa0Y7Z0JBQ2xGLGdEQUFnRDtnQkFDaEQsTUFBTSxFQUFFcE8sUUFBUSxHQUFHb0MsS0FBSyxHQUFHLEdBQUcsSUFBSTtnQkFDbEMsSUFBSSxDQUFDNk4sV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRTNSLFVBQVUsRUFBRXdGLG9CQUFvQixDQUFDO29CQUNsRTlELFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRXBCLFlBQVksRUFBRTRCLFdBQVcsQ0FBQ1IsUUFBUSxDQUFDO29CQUNqRG9DLEtBQUs7aUJBQ1IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFckUsTUFBTSxFQUFFNFYsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDMUIsT0FBTztZQUNYLENBQUM7WUFDRCxrRkFBa0Y7WUFDbEYsSUFBSXZGLEtBQUssQ0FBQzBKLElBQUksRUFBRTtnQkFDWnBPLE1BQU0sQ0FBQ3FDLFFBQVEsQ0FBQ2tCLE1BQU0sRUFBRSxDQUFDO2dCQUN6QixPQUFPO1lBQ1gsQ0FBQztZQUNELElBQUksQ0FBQ21CLEtBQUssQ0FBQ3lGLEdBQUcsRUFBRTtnQkFDWixPQUFPO1lBQ1gsQ0FBQztZQUNELHlEQUF5RDtZQUN6RCxJQUFJK0Qsb0JBQW9CLElBQUksSUFBSSxDQUFDbFgsTUFBTSxLQUFLME4sS0FBSyxDQUFDOU8sT0FBTyxDQUFDb0IsTUFBTSxJQUFJME4sS0FBSyxDQUFDakosRUFBRSxLQUFLLElBQUksQ0FBQ2hGLE1BQU0sRUFBRTtnQkFDMUYsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJME4sWUFBWTtZQUNoQixNQUFNLEVBQUU1TSxHQUFHLEdBQUdrRSxFQUFFLEdBQUc3RixPQUFPLEdBQUdzQyxHQUFHLEdBQUcsR0FBR3dNLEtBQUs7WUFDM0MsSUFBSTNILEtBQXFDLEVBQUUsRUFzQjFDO1lBQ0QsSUFBSSxDQUFDMkcsSUFBSSxHQUFHeEwsR0FBRyxDQUFDO1lBQ2hCLE1BQU0sRUFBRTVCLFFBQVEsRUFBUkEsU0FBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUvQixpQkFBaUIsRUFBRWlKLGdCQUFnQixDQUFDakcsR0FBRyxDQUFDO1lBQ2xFLGdEQUFnRDtZQUNoRCx5REFBeUQ7WUFDekQsSUFBSSxJQUFJLENBQUNzTixLQUFLLElBQUlwSixFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUV2RyxZQUFZLEVBQUU0QixXQUFXLENBQUMsSUFBSSxDQUFDTCxNQUFNLENBQUMsSUFBSUgsU0FBUSxLQUFLLENBQUMsQ0FBQyxFQUFFcEIsWUFBWSxFQUFFNEIsV0FBVyxDQUFDLElBQUksQ0FBQ1IsUUFBUSxDQUFDLEVBQUU7Z0JBQzlILE9BQU87WUFDWCxDQUFDO1lBQ0QsdURBQXVEO1lBQ3ZELHdEQUF3RDtZQUN4RCxJQUFJLElBQUksQ0FBQ3dWLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQ0EsSUFBSSxDQUFDcEgsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU87WUFDWCxDQUFDO1lBQ0QsSUFBSSxDQUFDUixNQUFNLENBQUMsY0FBYyxFQUFFM00sR0FBRyxFQUFFa0UsRUFBRSxFQUFFM0ksTUFBTSxDQUFDMkMsTUFBTSxDQUFDLEVBQUUsRUFBRUcsT0FBTyxFQUFFO2dCQUM1RGtRLE9BQU8sRUFBRWxRLE9BQU8sQ0FBQ2tRLE9BQU8sSUFBSSxJQUFJLENBQUNvRSxRQUFRO2dCQUN6Q2xULE1BQU0sRUFBRXBCLE9BQU8sQ0FBQ29CLE1BQU0sSUFBSSxJQUFJLENBQUM4SCxhQUFhO2dCQUM1QyxpREFBaUQ7Z0JBQ2pEd0YsRUFBRSxFQUFFLENBQUM7YUFDUixDQUFDLEVBQUVILFlBQVksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQztRQUNGLHVDQUF1QztRQUN2QyxNQUFNMUwsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFM0Usb0JBQW9CLEVBQUVvSSxtQkFBbUIsQ0FBQzBSLFNBQVMsQ0FBQztRQUN0RSw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDbEgsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixvREFBb0Q7UUFDcEQsd0RBQXdEO1FBQ3hELGtDQUFrQztRQUNsQyxJQUFJa0gsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUNsSCxVQUFVLENBQUNqTyxLQUFLLENBQUMsR0FBRztnQkFDckI0UCxTQUFTO2dCQUNUa0csT0FBTyxFQUFFLElBQUk7Z0JBQ2J0RyxLQUFLLEVBQUU4RixZQUFZO2dCQUNuQm5MLEdBQUc7Z0JBQ0hzRixPQUFPLEVBQUU2RixZQUFZLElBQUlBLFlBQVksQ0FBQzdGLE9BQU87Z0JBQzdDQyxPQUFPLEVBQUU0RixZQUFZLElBQUlBLFlBQVksQ0FBQzVGLE9BQU87YUFDaEQsQ0FBQztRQUNOLENBQUM7UUFDRCxJQUFJLENBQUN6QixVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUc7WUFDdkIyQixTQUFTLEVBQUVrRixHQUFHO1lBQ2RoRCxXQUFXLEVBQUUsRUFBRTtTQUNsQixDQUFDO1FBQ0YsNENBQTRDO1FBQzVDLGdGQUFnRjtRQUNoRixJQUFJLENBQUNyRSxNQUFNLEdBQUc1QyxNQUFNLENBQUM0QyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDOVAsVUFBVSxHQUFHQSxVQUFVLENBQUM7UUFDN0IsOERBQThEO1FBQzlELGtEQUFrRDtRQUNsRCxNQUFNb1ksaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLEVBQUVsYSxVQUFVLEVBQUU0RyxjQUFjLENBQUMwUyxTQUFTLENBQUMsSUFBSS9KLElBQUksQ0FBQ3FGLGFBQWEsQ0FBQ3VGLFVBQVU7UUFDcEcsSUFBSSxDQUFDL1IsUUFBUSxHQUFHSyxNQUFrQyxJQUFJLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUM0TyxHQUFHLEdBQUdzQyxZQUFZLENBQUM7UUFDeEIsSUFBSSxDQUFDN0ssR0FBRyxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLENBQUNxSyxRQUFRLEdBQUdPLE9BQU8sQ0FBQztRQUN4Qiw2REFBNkQ7UUFDN0QsMEJBQTBCO1FBQzFCLElBQUksQ0FBQ25KLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDUyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQ1YsT0FBTyxHQUFHLENBQUMsQ0FBRWYsQ0FBQUEsSUFBSSxDQUFDcUYsYUFBYSxDQUFDeUYsSUFBSSxJQUFJOUssSUFBSSxDQUFDcUYsYUFBYSxDQUFDMEYsR0FBRyxJQUFJL0ssSUFBSSxDQUFDcUYsYUFBYSxDQUFDMkYsTUFBTSxJQUFJLENBQUNoTCxJQUFJLENBQUNxRixhQUFhLENBQUM0RixHQUFHLElBQUksQ0FBQ04saUJBQWlCLElBQUksQ0FBQzNLLElBQUksQ0FBQ3hCLFFBQVEsQ0FBQzBNLE1BQU0sSUFBSSxDQUFDaFMsS0FBK0IsRUFBRTtRQUNoTixJQUFJQSxLQUErQixFQUFFLEVBS3BDO1FBQ0QsSUFBSSxDQUFDMkgsS0FBSyxHQUFHO1lBQ1RqTSxLQUFLO1lBQ0xuQyxRQUFRLEVBQUVzWCxTQUFTO1lBQ25CbFYsS0FBSyxFQUFFbVYsTUFBTTtZQUNicFgsTUFBTSxFQUFFK1gsaUJBQWlCLEdBQUdaLFNBQVMsR0FBR0UsR0FBRztZQUMzQ25HLFNBQVMsRUFBRSxDQUFDLENBQUNBLFNBQVM7WUFDdEIzUSxNQUFNLEVBQUUrRixNQUErQixHQUFHL0YsQ0FBTSxHQUFHNkwsU0FBUztZQUM1RDZHLFVBQVU7U0FDYixDQUFDO1FBQ0YsSUFBSSxDQUFDc0YsZ0NBQWdDLEdBQUcvWSxPQUFPLENBQUNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLEtBQTZCLEVBQUUsRUErQmxDO0lBQ0w7Q0FDSDtBQUNEb04sTUFBTSxDQUFDNEMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFOVIsS0FBSyxFQUFFYixPQUFPLEVBQUUsQ0FBQztBQUNyQ1Asa0JBQWUsR0FBR3NRLE1BQU0sQ0FBQyxDQUV6QixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZmVjb21tdW5pdHkvcmVhY3RwcmVzcy10ZW1wbGF0ZS1oZWxsby13b3JsZC8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vbmV4dEAxMi4zLjRfQGJhYmVsK2NvcmVANy4yNS4yX3JlYWN0LWRvbUAxNy4wLjJfcmVhY3RAMTcuMC4yX19yZWFjdEAxNy4wLjJfc2Fzc0AxLjc5LjMvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXIuanM/ZTc5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMubWF0Y2hlc01pZGRsZXdhcmUgPSBtYXRjaGVzTWlkZGxld2FyZTtcbmV4cG9ydHMuaXNMb2NhbFVSTCA9IGlzTG9jYWxVUkw7XG5leHBvcnRzLmludGVycG9sYXRlQXMgPSBpbnRlcnBvbGF0ZUFzO1xuZXhwb3J0cy5yZXNvbHZlSHJlZiA9IHJlc29sdmVIcmVmO1xuZXhwb3J0cy5jcmVhdGVLZXkgPSBjcmVhdGVLZXk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX2FzeW5jX3RvX2dlbmVyYXRvciA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19hc3luY190b19nZW5lcmF0b3IuanNcIikuZGVmYXVsdDtcbnZhciBfZXh0ZW5kcyA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19leHRlbmRzLmpzXCIpLmRlZmF1bHQ7XG52YXIgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzXCIpLmRlZmF1bHQ7XG52YXIgX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuanNcIikuZGVmYXVsdDtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoXCIpO1xudmFyIF9yZW1vdmVUcmFpbGluZ1NsYXNoID0gcmVxdWlyZShcIi4vdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoXCIpO1xudmFyIF9yb3V0ZUxvYWRlciA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvcm91dGUtbG9hZGVyXCIpO1xudmFyIF9zY3JpcHQgPSByZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L3NjcmlwdFwiKTtcbnZhciBfaXNFcnJvciA9IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcIi4uLy4uLy4uL2xpYi9pcy1lcnJvclwiKSk7XG52YXIgX2Rlbm9ybWFsaXplUGFnZVBhdGggPSByZXF1aXJlKFwiLi4vcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aFwiKTtcbnZhciBfbm9ybWFsaXplTG9jYWxlUGF0aCA9IHJlcXVpcmUoXCIuLi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aFwiKTtcbnZhciBfbWl0dCA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vbWl0dFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xudmFyIF9pc0R5bmFtaWMgPSByZXF1aXJlKFwiLi91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9wYXJzZVJlbGF0aXZlVXJsID0gcmVxdWlyZShcIi4vdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3V0aWxzL3F1ZXJ5c3RyaW5nXCIpO1xudmFyIF9yZXNvbHZlUmV3cml0ZXMgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4vdXRpbHMvcmVzb2x2ZS1yZXdyaXRlc1wiKSk7XG52YXIgX3JvdXRlTWF0Y2hlciA9IHJlcXVpcmUoXCIuL3V0aWxzL3JvdXRlLW1hdGNoZXJcIik7XG52YXIgX3JvdXRlUmVnZXggPSByZXF1aXJlKFwiLi91dGlscy9yb3V0ZS1yZWdleFwiKTtcbnZhciBfZm9ybWF0VXJsID0gcmVxdWlyZShcIi4vdXRpbHMvZm9ybWF0LXVybFwiKTtcbnZhciBfZGV0ZWN0RG9tYWluTG9jYWxlID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9kZXRlY3QtZG9tYWluLWxvY2FsZVwiKTtcbnZhciBfcGFyc2VQYXRoID0gcmVxdWlyZShcIi4vdXRpbHMvcGFyc2UtcGF0aFwiKTtcbnZhciBfYWRkTG9jYWxlID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9hZGQtbG9jYWxlXCIpO1xudmFyIF9yZW1vdmVMb2NhbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L3JlbW92ZS1sb2NhbGVcIik7XG52YXIgX3JlbW92ZUJhc2VQYXRoID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9yZW1vdmUtYmFzZS1wYXRoXCIpO1xudmFyIF9hZGRCYXNlUGF0aCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvYWRkLWJhc2UtcGF0aFwiKTtcbnZhciBfaGFzQmFzZVBhdGggPSByZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L2hhcy1iYXNlLXBhdGhcIik7XG52YXIgX2dldE5leHRQYXRobmFtZUluZm8gPSByZXF1aXJlKFwiLi91dGlscy9nZXQtbmV4dC1wYXRobmFtZS1pbmZvXCIpO1xudmFyIF9mb3JtYXROZXh0UGF0aG5hbWVJbmZvID0gcmVxdWlyZShcIi4vdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mb1wiKTtcbnZhciBfY29tcGFyZVN0YXRlcyA9IHJlcXVpcmUoXCIuL3V0aWxzL2NvbXBhcmUtc3RhdGVzXCIpO1xudmFyIF9pc0JvdCA9IHJlcXVpcmUoXCIuL3V0aWxzL2lzLWJvdFwiKTtcbmZ1bmN0aW9uIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCdSb3V0ZSBDYW5jZWxsZWQnKSwge1xuICAgICAgICBjYW5jZWxsZWQ6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG1hdGNoZXNNaWRkbGV3YXJlKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX21hdGNoZXNNaWRkbGV3YXJlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBfbWF0Y2hlc01pZGRsZXdhcmUoKSB7XG4gICAgX21hdGNoZXNNaWRkbGV3YXJlID0gX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbioob3B0aW9ucykge1xuICAgICAgICBjb25zdCBtYXRjaGVycyA9IHlpZWxkIFByb21pc2UucmVzb2x2ZShvcHRpb25zLnJvdXRlci5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmUoKSk7XG4gICAgICAgIGlmICghbWF0Y2hlcnMpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgeyBwYXRobmFtZTogYXNQYXRobmFtZSAgfSA9ICgwLCBfcGFyc2VQYXRoKS5wYXJzZVBhdGgob3B0aW9ucy5hc1BhdGgpO1xuICAgICAgICAvLyByZW1vdmUgYmFzZVBhdGggZmlyc3Qgc2luY2UgcGF0aCBwcmVmaXggaGFzIHRvIGJlIGluIHRoZSBvcmRlciBvZiBgLyR7YmFzZVBhdGh9LyR7bG9jYWxlfWBcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gKDAsIF9oYXNCYXNlUGF0aCkuaGFzQmFzZVBhdGgoYXNQYXRobmFtZSkgPyAoMCwgX3JlbW92ZUJhc2VQYXRoKS5yZW1vdmVCYXNlUGF0aChhc1BhdGhuYW1lKSA6IGFzUGF0aG5hbWU7XG4gICAgICAgIGNvbnN0IGFzV2l0aEJhc2VQYXRoQW5kTG9jYWxlID0gKDAsIF9hZGRCYXNlUGF0aCkuYWRkQmFzZVBhdGgoKDAsIF9hZGRMb2NhbGUpLmFkZExvY2FsZShjbGVhbmVkQXMsIG9wdGlvbnMubG9jYWxlKSk7XG4gICAgICAgIC8vIENoZWNrIG9ubHkgcGF0aCBtYXRjaCBvbiBjbGllbnQuIE1hdGNoaW5nIFwiaGFzXCIgc2hvdWxkIGJlIGRvbmUgb24gc2VydmVyXG4gICAgICAgIC8vIHdoZXJlIHdlIGNhbiBhY2Nlc3MgbW9yZSBpbmZvIHN1Y2ggYXMgaGVhZGVycywgSHR0cE9ubHkgY29va2llLCBldGMuXG4gICAgICAgIHJldHVybiBtYXRjaGVycy5zb21lKChtKT0+bmV3IFJlZ0V4cChtLnJlZ2V4cCkudGVzdChhc1dpdGhCYXNlUGF0aEFuZExvY2FsZSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBfbWF0Y2hlc01pZGRsZXdhcmUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIHN0cmlwT3JpZ2luKHVybCkge1xuICAgIGNvbnN0IG9yaWdpbiA9ICgwLCBfdXRpbHMpLmdldExvY2F0aW9uT3JpZ2luKCk7XG4gICAgcmV0dXJuIHVybC5zdGFydHNXaXRoKG9yaWdpbikgPyB1cmwuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpIDogdXJsO1xufVxuZnVuY3Rpb24gb21pdChvYmplY3QsIGtleXMpIHtcbiAgICBjb25zdCBvbWl0dGVkID0ge307XG4gICAgT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKChrZXkpPT57XG4gICAgICAgIGlmICgha2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICBvbWl0dGVkW2tleV0gPSBvYmplY3Rba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBvbWl0dGVkO1xufVxuZnVuY3Rpb24gaXNMb2NhbFVSTCh1cmwpIHtcbiAgICAvLyBwcmV2ZW50IGEgaHlkcmF0aW9uIG1pc21hdGNoIG9uIGhyZWYgZm9yIHVybCB3aXRoIGFuY2hvciByZWZzXG4gICAgaWYgKCEoMCwgX3V0aWxzKS5pc0Fic29sdXRlVXJsKHVybCkpIHJldHVybiB0cnVlO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFic29sdXRlIHVybHMgY2FuIGJlIGxvY2FsIGlmIHRoZXkgYXJlIG9uIHRoZSBzYW1lIG9yaWdpblxuICAgICAgICBjb25zdCBsb2NhdGlvbk9yaWdpbiA9ICgwLCBfdXRpbHMpLmdldExvY2F0aW9uT3JpZ2luKCk7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uT3JpZ2luKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkLm9yaWdpbiA9PT0gbG9jYXRpb25PcmlnaW4gJiYgKDAsIF9oYXNCYXNlUGF0aCkuaGFzQmFzZVBhdGgocmVzb2x2ZWQucGF0aG5hbWUpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGludGVycG9sYXRlQXMocm91dGUsIGFzUGF0aG5hbWUsIHF1ZXJ5KSB7XG4gICAgbGV0IGludGVycG9sYXRlZFJvdXRlID0gJyc7XG4gICAgY29uc3QgZHluYW1pY1JlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHJvdXRlKTtcbiAgICBjb25zdCBkeW5hbWljR3JvdXBzID0gZHluYW1pY1JlZ2V4Lmdyb3VwcztcbiAgICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9IC8vIFRyeSB0byBtYXRjaCB0aGUgZHluYW1pYyByb3V0ZSBhZ2FpbnN0IHRoZSBhc1BhdGhcbiAgICAoYXNQYXRobmFtZSAhPT0gcm91dGUgPyAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKGR5bmFtaWNSZWdleCkoYXNQYXRobmFtZSkgOiAnJykgfHwgLy8gRmFsbCBiYWNrIHRvIHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBocmVmXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgIHF1ZXJ5O1xuICAgIGludGVycG9sYXRlZFJvdXRlID0gcm91dGU7XG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmtleXMoZHluYW1pY0dyb3Vwcyk7XG4gICAgaWYgKCFwYXJhbXMuZXZlcnkoKHBhcmFtKT0+e1xuICAgICAgICBsZXQgdmFsdWUgPSBkeW5hbWljTWF0Y2hlc1twYXJhbV0gfHwgJyc7XG4gICAgICAgIGNvbnN0IHsgcmVwZWF0ICwgb3B0aW9uYWwgIH0gPSBkeW5hbWljR3JvdXBzW3BhcmFtXTtcbiAgICAgICAgLy8gc3VwcG9ydCBzaW5nbGUtbGV2ZWwgY2F0Y2gtYWxsXG4gICAgICAgIC8vIFRPRE86IG1vcmUgcm9idXN0IGhhbmRsaW5nIGZvciB1c2VyLWVycm9yIChwYXNzaW5nIGAvYClcbiAgICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYDtcbiAgICAgICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgICAgICByZXBsYWNlZCA9IGAkeyF2YWx1ZSA/ICcvJyA6ICcnfVske3JlcGxhY2VkfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXBlYXQgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiAob3B0aW9uYWwgfHwgcGFyYW0gaW4gZHluYW1pY01hdGNoZXMpICYmIC8vIEludGVycG9sYXRlIGdyb3VwIGludG8gZGF0YSBVUkwgaWYgcHJlc2VudFxuICAgICAgICAoaW50ZXJwb2xhdGVkUm91dGUgPSBpbnRlcnBvbGF0ZWRSb3V0ZS5yZXBsYWNlKHJlcGxhY2VkLCByZXBlYXQgPyB2YWx1ZS5tYXAoLy8gdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBmdWxseSBlbmNvZGVkIGluc3RlYWQgb2YganVzdFxuICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXG4gICAgICAgIC8vIGludG8gdGhlIFVSTCBhbmQgd2UgZXhwZWN0IFVSTCBlbmNvZGVkIHNlZ21lbnRzXG4gICAgICAgIC8vIHdoZW4gcGFyc2luZyBkeW5hbWljIHJvdXRlIHBhcmFtc1xuICAgICAgICAoc2VnbWVudCk9PmVuY29kZVVSSUNvbXBvbmVudChzZWdtZW50KSkuam9pbignLycpIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSkgfHwgJy8nKTtcbiAgICB9KSkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9ICcnIC8vIGRpZCBub3Qgc2F0aXNmeSBhbGwgcmVxdWlyZW1lbnRzXG4gICAgICAgIDtcbiAgICAvLyBuLmIuIFdlIGlnbm9yZSB0aGlzIGVycm9yIGJlY2F1c2Ugd2UgaGFuZGxlIHdhcm5pbmcgZm9yIHRoaXMgY2FzZSBpblxuICAgIC8vIGRldmVsb3BtZW50IGluIHRoZSBgPExpbms+YCBjb21wb25lbnQgZGlyZWN0bHkuXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgcmVzdWx0OiBpbnRlcnBvbGF0ZWRSb3V0ZVxuICAgIH07XG59XG5mdW5jdGlvbiByZXNvbHZlSHJlZihyb3V0ZXIsIGhyZWYsIHJlc29sdmVBcykge1xuICAgIC8vIHdlIHVzZSBhIGR1bW15IGJhc2UgdXJsIGZvciByZWxhdGl2ZSB1cmxzXG4gICAgbGV0IGJhc2U7XG4gICAgbGV0IHVybEFzU3RyaW5nID0gdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnID8gaHJlZiA6ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKTtcbiAgICAvLyByZXBlYXRlZCBzbGFzaGVzIGFuZCBiYWNrc2xhc2hlcyBpbiB0aGUgVVJMIGFyZSBjb25zaWRlcmVkXG4gICAgLy8gaW52YWxpZCBhbmQgd2lsbCBuZXZlciBtYXRjaCBhIE5leHQuanMgcGFnZS9maWxlXG4gICAgY29uc3QgdXJsUHJvdG9NYXRjaCA9IHVybEFzU3RyaW5nLm1hdGNoKC9eW2EtekEtWl17MSx9OlxcL1xcLy8pO1xuICAgIGNvbnN0IHVybEFzU3RyaW5nTm9Qcm90byA9IHVybFByb3RvTWF0Y2ggPyB1cmxBc1N0cmluZy5zbGljZSh1cmxQcm90b01hdGNoWzBdLmxlbmd0aCkgOiB1cmxBc1N0cmluZztcbiAgICBjb25zdCB1cmxQYXJ0cyA9IHVybEFzU3RyaW5nTm9Qcm90by5zcGxpdCgnPycpO1xuICAgIGlmICgodXJsUGFydHNbMF0gfHwgJycpLm1hdGNoKC8oXFwvXFwvfFxcXFwpLykpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBocmVmIHBhc3NlZCB0byBuZXh0L3JvdXRlcjogJHt1cmxBc1N0cmluZ30sIHJlcGVhdGVkIGZvcndhcmQtc2xhc2hlcyAoLy8pIG9yIGJhY2tzbGFzaGVzIFxcXFwgYXJlIG5vdCB2YWxpZCBpbiB0aGUgaHJlZmApO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkVXJsID0gKDAsIF91dGlscykubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKHVybEFzU3RyaW5nTm9Qcm90byk7XG4gICAgICAgIHVybEFzU3RyaW5nID0gKHVybFByb3RvTWF0Y2ggPyB1cmxQcm90b01hdGNoWzBdIDogJycpICsgbm9ybWFsaXplZFVybDtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGJlY2F1c2UgaXQgY2Fubm90IGJlIHJvdXRlZCBieSB0aGUgTmV4dC5qcyByb3V0ZXJcbiAgICBpZiAoIWlzTG9jYWxVUkwodXJsQXNTdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGJhc2UgPSBuZXcgVVJMKHVybEFzU3RyaW5nLnN0YXJ0c1dpdGgoJyMnKSA/IHJvdXRlci5hc1BhdGggOiByb3V0ZXIucGF0aG5hbWUsICdodHRwOi8vbicpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gLyBmb3IgaW52YWxpZCBhc1BhdGggdmFsdWVzIGUuZy4gLy9cbiAgICAgICAgYmFzZSA9IG5ldyBVUkwoJy8nLCAnaHR0cDovL24nKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmluYWxVcmwgPSBuZXcgVVJMKHVybEFzU3RyaW5nLCBiYXNlKTtcbiAgICAgICAgZmluYWxVcmwucGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGZpbmFsVXJsLnBhdGhuYW1lKTtcbiAgICAgICAgbGV0IGludGVycG9sYXRlZEFzID0gJyc7XG4gICAgICAgIGlmICgoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUoZmluYWxVcmwucGF0aG5hbWUpICYmIGZpbmFsVXJsLnNlYXJjaFBhcmFtcyAmJiByZXNvbHZlQXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gKDAsIF9xdWVyeXN0cmluZykuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShmaW5hbFVybC5zZWFyY2hQYXJhbXMpO1xuICAgICAgICAgICAgY29uc3QgeyByZXN1bHQgLCBwYXJhbXMgIH0gPSBpbnRlcnBvbGF0ZUFzKGZpbmFsVXJsLnBhdGhuYW1lLCBmaW5hbFVybC5wYXRobmFtZSwgcXVlcnkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGludGVycG9sYXRlZEFzID0gKDAsIF9mb3JtYXRVcmwpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgaGFzaDogZmluYWxVcmwuaGFzaCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9taXQocXVlcnksIHBhcmFtcylcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGUgb3JpZ2luIGRpZG4ndCBjaGFuZ2UsIGl0IG1lYW5zIHdlIHJlY2VpdmVkIGEgcmVsYXRpdmUgaHJlZlxuICAgICAgICBjb25zdCByZXNvbHZlZEhyZWYgPSBmaW5hbFVybC5vcmlnaW4gPT09IGJhc2Uub3JpZ2luID8gZmluYWxVcmwuaHJlZi5zbGljZShmaW5hbFVybC5vcmlnaW4ubGVuZ3RoKSA6IGZpbmFsVXJsLmhyZWY7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICByZXNvbHZlZEhyZWYsXG4gICAgICAgICAgICBpbnRlcnBvbGF0ZWRBcyB8fCByZXNvbHZlZEhyZWZcbiAgICAgICAgXSA6IHJlc29sdmVkSHJlZjtcbiAgICB9IGNhdGNoIChfMSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xuICAgICAgICAgICAgdXJsQXNTdHJpbmdcbiAgICAgICAgXSA6IHVybEFzU3RyaW5nO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHByZXBhcmVVcmxBcyhyb3V0ZXIsIHVybCwgYXMpIHtcbiAgICAvLyBJZiB1cmwgYW5kIGFzIHByb3ZpZGVkIGFzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbixcbiAgICAvLyB3ZSdsbCBmb3JtYXQgdGhlbSBpbnRvIHRoZSBzdHJpbmcgdmVyc2lvbiBoZXJlLlxuICAgIGxldCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9IHJlc29sdmVIcmVmKHJvdXRlciwgdXJsLCB0cnVlKTtcbiAgICBjb25zdCBvcmlnaW4gPSAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIGNvbnN0IGhyZWZIYWRPcmlnaW4gPSByZXNvbHZlZEhyZWYuc3RhcnRzV2l0aChvcmlnaW4pO1xuICAgIGNvbnN0IGFzSGFkT3JpZ2luID0gcmVzb2x2ZWRBcyAmJiByZXNvbHZlZEFzLnN0YXJ0c1dpdGgob3JpZ2luKTtcbiAgICByZXNvbHZlZEhyZWYgPSBzdHJpcE9yaWdpbihyZXNvbHZlZEhyZWYpO1xuICAgIHJlc29sdmVkQXMgPSByZXNvbHZlZEFzID8gc3RyaXBPcmlnaW4ocmVzb2x2ZWRBcykgOiByZXNvbHZlZEFzO1xuICAgIGNvbnN0IHByZXBhcmVkVXJsID0gaHJlZkhhZE9yaWdpbiA/IHJlc29sdmVkSHJlZiA6ICgwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKHJlc29sdmVkSHJlZik7XG4gICAgY29uc3QgcHJlcGFyZWRBcyA9IGFzID8gc3RyaXBPcmlnaW4ocmVzb2x2ZUhyZWYocm91dGVyLCBhcykpIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWY7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBwcmVwYXJlZFVybCxcbiAgICAgICAgYXM6IGFzSGFkT3JpZ2luID8gcHJlcGFyZWRBcyA6ICgwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKHByZXBhcmVkQXMpXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVEeW5hbWljUm91dGUocGF0aG5hbWUsIHBhZ2VzKSB7XG4gICAgY29uc3QgY2xlYW5QYXRobmFtZSA9ICgwLCBfcmVtb3ZlVHJhaWxpbmdTbGFzaCkucmVtb3ZlVHJhaWxpbmdTbGFzaCgoMCwgX2Rlbm9ybWFsaXplUGFnZVBhdGgpLmRlbm9ybWFsaXplUGFnZVBhdGgocGF0aG5hbWUpKTtcbiAgICBpZiAoY2xlYW5QYXRobmFtZSA9PT0gJy80MDQnIHx8IGNsZWFuUGF0aG5hbWUgPT09ICcvX2Vycm9yJykge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWU7XG4gICAgfVxuICAgIC8vIGhhbmRsZSByZXNvbHZpbmcgaHJlZiBmb3IgZHluYW1pYyByb3V0ZXNcbiAgICBpZiAoIXBhZ2VzLmluY2x1ZGVzKGNsZWFuUGF0aG5hbWUpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBhcnJheS1jYWxsYmFjay1yZXR1cm5cbiAgICAgICAgcGFnZXMuc29tZSgocGFnZSk9PntcbiAgICAgICAgICAgIGlmICgoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUocGFnZSkgJiYgKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHBhZ2UpLnJlLnRlc3QoY2xlYW5QYXRobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHBhZ2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gKDAsIF9yZW1vdmVUcmFpbGluZ1NsYXNoKS5yZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbn1cbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVEYXRhKHNvdXJjZSwgcmVzcG9uc2UsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBuZXh0Q29uZmlnID0ge1xuICAgICAgICBiYXNlUGF0aDogb3B0aW9ucy5yb3V0ZXIuYmFzZVBhdGgsXG4gICAgICAgIGkxOG46IHtcbiAgICAgICAgICAgIGxvY2FsZXM6IG9wdGlvbnMucm91dGVyLmxvY2FsZXNcbiAgICAgICAgfSxcbiAgICAgICAgdHJhaWxpbmdTbGFzaDogQm9vbGVhbihwcm9jZXNzLmVudi5fX05FWFRfVFJBSUxJTkdfU0xBU0gpXG4gICAgfTtcbiAgICBjb25zdCByZXdyaXRlSGVhZGVyID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtbmV4dGpzLXJld3JpdGUnKTtcbiAgICBsZXQgcmV3cml0ZVRhcmdldCA9IHJld3JpdGVIZWFkZXIgfHwgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtbmV4dGpzLW1hdGNoZWQtcGF0aCcpO1xuICAgIGNvbnN0IG1hdGNoZWRQYXRoID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtbWF0Y2hlZC1wYXRoJyk7XG4gICAgaWYgKG1hdGNoZWRQYXRoICYmICFyZXdyaXRlVGFyZ2V0ICYmICFtYXRjaGVkUGF0aC5pbmNsdWRlcygnX19uZXh0X2RhdGFfY2F0Y2hhbGwnKSAmJiAhbWF0Y2hlZFBhdGguaW5jbHVkZXMoJy9fZXJyb3InKSAmJiAhbWF0Y2hlZFBhdGguaW5jbHVkZXMoJy80MDQnKSkge1xuICAgICAgICAvLyBsZXZlcmFnZSB4LW1hdGNoZWQtcGF0aCB0byBkZXRlY3QgbmV4dC5jb25maWcuanMgcmV3cml0ZXNcbiAgICAgICAgcmV3cml0ZVRhcmdldCA9IG1hdGNoZWRQYXRoO1xuICAgIH1cbiAgICBpZiAocmV3cml0ZVRhcmdldCkge1xuICAgICAgICBpZiAocmV3cml0ZVRhcmdldC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZFJld3JpdGVUYXJnZXQgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwocmV3cml0ZVRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBwYXRobmFtZUluZm8gPSAoMCwgX2dldE5leHRQYXRobmFtZUluZm8pLmdldE5leHRQYXRobmFtZUluZm8ocGFyc2VkUmV3cml0ZVRhcmdldC5wYXRobmFtZSwge1xuICAgICAgICAgICAgICAgIG5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgcGFyc2VEYXRhOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBmc1BhdGhuYW1lID0gKDAsIF9yZW1vdmVUcmFpbGluZ1NsYXNoKS5yZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lSW5mby5wYXRobmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMucm91dGVyLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxcbiAgICAgICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCksIFxuICAgICAgICAgICAgXSkudGhlbigoW3BhZ2VzLCB7IF9fcmV3cml0ZXM6IHJld3JpdGVzICB9XSk9PntcbiAgICAgICAgICAgICAgICBsZXQgYXMgPSAoMCwgX2FkZExvY2FsZSkuYWRkTG9jYWxlKHBhdGhuYW1lSW5mby5wYXRobmFtZSwgcGF0aG5hbWVJbmZvLmxvY2FsZSk7XG4gICAgICAgICAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShhcykgfHwgIXJld3JpdGVIZWFkZXIgJiYgcGFnZXMuaW5jbHVkZXMoKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKCgwLCBfcmVtb3ZlQmFzZVBhdGgpLnJlbW92ZUJhc2VQYXRoKGFzKSwgb3B0aW9ucy5yb3V0ZXIubG9jYWxlcykucGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZFNvdXJjZSA9ICgwLCBfZ2V0TmV4dFBhdGhuYW1lSW5mbykuZ2V0TmV4dFBhdGhuYW1lSW5mbygoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoc291cmNlKS5wYXRobmFtZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEYXRhOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBhcyA9ICgwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKHBhcnNlZFNvdXJjZS5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWUgPSBhcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gKDAsIF9yZXNvbHZlUmV3cml0ZXMpLmRlZmF1bHQoYXMsIHBhZ2VzLCByZXdyaXRlcywgcGFyc2VkUmV3cml0ZVRhcmdldC5xdWVyeSwgKHBhdGgpPT5yZXNvbHZlRHluYW1pY1JvdXRlKHBhdGgsIHBhZ2VzKSwgb3B0aW9ucy5yb3V0ZXIubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQubWF0Y2hlZFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWUgPSByZXN1bHQucGFyc2VkQXMucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcyA9IHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcnNlZFJld3JpdGVUYXJnZXQucXVlcnksIHJlc3VsdC5wYXJzZWRBcy5xdWVyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFwYWdlcy5pbmNsdWRlcyhmc1BhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZFBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShmc1BhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZFBhdGhuYW1lICE9PSBmc1BhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmc1BhdGhuYW1lID0gcmVzb2x2ZWRQYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZEhyZWYgPSAhcGFnZXMuaW5jbHVkZXMoZnNQYXRobmFtZSkgPyByZXNvbHZlRHluYW1pY1JvdXRlKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aCgoMCwgX3JlbW92ZUJhc2VQYXRoKS5yZW1vdmVCYXNlUGF0aChwYXJzZWRSZXdyaXRlVGFyZ2V0LnBhdGhuYW1lKSwgb3B0aW9ucy5yb3V0ZXIubG9jYWxlcykucGF0aG5hbWUsIHBhZ2VzKSA6IGZzUGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyZXNvbHZlZEhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKCgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChyZXNvbHZlZEhyZWYpKShhcyk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyc2VkUmV3cml0ZVRhcmdldC5xdWVyeSwgbWF0Y2hlcyB8fCB7fSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdyZXdyaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkQXM6IHBhcnNlZFJld3JpdGVUYXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcmMgPSAoMCwgX3BhcnNlUGF0aCkucGFyc2VQYXRoKHNvdXJjZSk7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gKDAsIF9mb3JtYXROZXh0UGF0aG5hbWVJbmZvKS5mb3JtYXROZXh0UGF0aG5hbWVJbmZvKF9leHRlbmRzKHt9LCAoMCwgX2dldE5leHRQYXRobmFtZUluZm8pLmdldE5leHRQYXRobmFtZUluZm8oc3JjLnBhdGhuYW1lLCB7XG4gICAgICAgICAgICBuZXh0Q29uZmlnLFxuICAgICAgICAgICAgcGFyc2VEYXRhOiB0cnVlXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlOiBvcHRpb25zLnJvdXRlci5kZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgYnVpbGRJZDogJydcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHR5cGU6ICdyZWRpcmVjdC1leHRlcm5hbCcsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogYCR7cGF0aG5hbWV9JHtzcmMucXVlcnl9JHtzcmMuaGFzaH1gXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCByZWRpcmVjdFRhcmdldCA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LW5leHRqcy1yZWRpcmVjdCcpO1xuICAgIGlmIChyZWRpcmVjdFRhcmdldCkge1xuICAgICAgICBpZiAocmVkaXJlY3RUYXJnZXQuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBjb25zdCBzcmMgPSAoMCwgX3BhcnNlUGF0aCkucGFyc2VQYXRoKHJlZGlyZWN0VGFyZ2V0KTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lID0gKDAsIF9mb3JtYXROZXh0UGF0aG5hbWVJbmZvKS5mb3JtYXROZXh0UGF0aG5hbWVJbmZvKF9leHRlbmRzKHt9LCAoMCwgX2dldE5leHRQYXRobmFtZUluZm8pLmdldE5leHRQYXRobmFtZUluZm8oc3JjLnBhdGhuYW1lLCB7XG4gICAgICAgICAgICAgICAgbmV4dENvbmZpZyxcbiAgICAgICAgICAgICAgICBwYXJzZURhdGE6IHRydWVcbiAgICAgICAgICAgIH0pLCB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogb3B0aW9ucy5yb3V0ZXIuZGVmYXVsdExvY2FsZSxcbiAgICAgICAgICAgICAgICBidWlsZElkOiAnJ1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlZGlyZWN0LWludGVybmFsJyxcbiAgICAgICAgICAgICAgICBuZXdBczogYCR7cGF0aG5hbWV9JHtzcmMucXVlcnl9JHtzcmMuaGFzaH1gLFxuICAgICAgICAgICAgICAgIG5ld1VybDogYCR7cGF0aG5hbWV9JHtzcmMucXVlcnl9JHtzcmMuaGFzaH1gXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHR5cGU6ICdyZWRpcmVjdC1leHRlcm5hbCcsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogcmVkaXJlY3RUYXJnZXRcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICB0eXBlOiAnbmV4dCdcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHdpdGhNaWRkbGV3YXJlRWZmZWN0cyhvcHRpb25zKSB7XG4gICAgcmV0dXJuIG1hdGNoZXNNaWRkbGV3YXJlKG9wdGlvbnMpLnRoZW4oKG1hdGNoZXMpPT57XG4gICAgICAgIGlmIChtYXRjaGVzICYmIG9wdGlvbnMuZmV0Y2hEYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5mZXRjaERhdGEoKS50aGVuKChkYXRhKT0+Z2V0TWlkZGxld2FyZURhdGEoZGF0YS5kYXRhSHJlZiwgZGF0YS5yZXNwb25zZSwgb3B0aW9ucykudGhlbigoZWZmZWN0KT0+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFIcmVmOiBkYXRhLmRhdGFIcmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVLZXk6IGRhdGEuY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBqc29uOiBkYXRhLmpzb24sXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogZGF0YS5yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGRhdGEudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVmZmVjdFxuICAgICAgICAgICAgICAgICAgICB9KSkpLmNhdGNoKChfZXJyKT0+e1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFRPRE86IFJldmlzaXQgdGhpcyBpbiB0aGUgZnV0dXJlLlxuICAgICAgICAgICAqIEZvciBub3cgd2Ugd2lsbCBub3QgY29uc2lkZXIgbWlkZGxld2FyZSBkYXRhIGVycm9ycyB0byBiZSBmYXRhbC5cbiAgICAgICAgICAgKiBtYXliZSB3ZSBzaG91bGQgcmV2aXNpdCBpbiB0aGUgZnV0dXJlLlxuICAgICAgICAgICAqLyByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xufVxuY29uc3QgbWFudWFsU2Nyb2xsUmVzdG9yYXRpb24gPSBwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmICdzY3JvbGxSZXN0b3JhdGlvbicgaW4gd2luZG93Lmhpc3RvcnkgJiYgISFmdW5jdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgICBsZXQgdiA9ICdfX25leHQnO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VxdWVuY2VzXG4gICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHYsIHYpLCBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHYpLCB0cnVlO1xuICAgIH0gY2F0Y2ggKG4pIHt9XG59KCk7XG5jb25zdCBTU0dfREFUQV9OT1RfRk9VTkQgPSBTeW1ib2woJ1NTR19EQVRBX05PVF9GT1VORCcpO1xuZnVuY3Rpb24gZmV0Y2hSZXRyeSh1cmwsIGF0dGVtcHRzLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgICAgICAvLyBDb29raWVzIGFyZSByZXF1aXJlZCB0byBiZSBwcmVzZW50IGZvciBOZXh0LmpzJyBTU0cgXCJQcmV2aWV3IE1vZGVcIi5cbiAgICAgICAgLy8gQ29va2llcyBtYXkgYWxzbyBiZSByZXF1aXJlZCBmb3IgYGdldFNlcnZlclNpZGVQcm9wc2AuXG4gICAgICAgIC8vXG4gICAgICAgIC8vID4gYGZldGNoYCB3b27igJl0IHNlbmQgY29va2llcywgdW5sZXNzIHlvdSBzZXQgdGhlIGNyZWRlbnRpYWxzIGluaXRcbiAgICAgICAgLy8gPiBvcHRpb24uXG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GZXRjaF9BUEkvVXNpbmdfRmV0Y2hcbiAgICAgICAgLy9cbiAgICAgICAgLy8gPiBGb3IgbWF4aW11bSBicm93c2VyIGNvbXBhdGliaWxpdHkgd2hlbiBpdCBjb21lcyB0byBzZW5kaW5nICZcbiAgICAgICAgLy8gPiByZWNlaXZpbmcgY29va2llcywgYWx3YXlzIHN1cHBseSB0aGUgYGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nYFxuICAgICAgICAvLyA+IG9wdGlvbiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvZmV0Y2gjY2F2ZWF0c1xuICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgICAgICAgbWV0aG9kOiBvcHRpb25zLm1ldGhvZCB8fCAnR0VUJyxcbiAgICAgICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5oZWFkZXJzLCB7XG4gICAgICAgICAgICAneC1uZXh0anMtZGF0YSc6ICcxJ1xuICAgICAgICB9KVxuICAgIH0pLnRoZW4oKHJlc3BvbnNlKT0+e1xuICAgICAgICByZXR1cm4gIXJlc3BvbnNlLm9rICYmIGF0dGVtcHRzID4gMSAmJiByZXNwb25zZS5zdGF0dXMgPj0gNTAwID8gZmV0Y2hSZXRyeSh1cmwsIGF0dGVtcHRzIC0gMSwgb3B0aW9ucykgOiByZXNwb25zZTtcbiAgICB9KTtcbn1cbmNvbnN0IGJhY2tncm91bmRDYWNoZSA9IHt9O1xuZnVuY3Rpb24gaGFuZGxlU21vb3RoU2Nyb2xsKGZuKSB7XG4gICAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvcjtcbiAgICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICdhdXRvJztcbiAgICBmbigpO1xuICAgIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gZXhpc3Rpbmc7XG59XG5mdW5jdGlvbiB0cnlUb1BhcnNlQXNKU09OKHRleHQpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5mdW5jdGlvbiBmZXRjaE5leHREYXRhKHsgZGF0YUhyZWYgLCBpbmZsaWdodENhY2hlICwgaXNQcmVmZXRjaCAsIGhhc01pZGRsZXdhcmUgLCBpc1NlcnZlclJlbmRlciAsIHBhcnNlSlNPTiAsIHBlcnNpc3RDYWNoZSAsIGlzQmFja2dyb3VuZCAsIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSAgfSkge1xuICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgdmFyIHJlZjE7XG4gICAgY29uc3QgZ2V0RGF0YSA9IChwYXJhbXMpPT57XG4gICAgICAgIHJldHVybiBmZXRjaFJldHJ5KGRhdGFIcmVmLCBpc1NlcnZlclJlbmRlciA/IDMgOiAxLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiBpc1ByZWZldGNoID8ge1xuICAgICAgICAgICAgICAgIHB1cnBvc2U6ICdwcmVmZXRjaCdcbiAgICAgICAgICAgIH0gOiB7fSxcbiAgICAgICAgICAgIG1ldGhvZDogKHJlZjEgPSBwYXJhbXMgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcmFtcy5tZXRob2QpICE9IG51bGwgPyByZWYxIDogJ0dFVCdcbiAgICAgICAgfSkudGhlbigocmVzcG9uc2UpPT57XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uub2sgJiYgKHBhcmFtcyA9PSBudWxsID8gdm9pZCAwIDogcGFyYW1zLm1ldGhvZCkgPT09ICdIRUFEJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFIcmVmLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgIGpzb246IHt9LFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUtleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oKHRleHQpPT57XG4gICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFdoZW4gdGhlIGRhdGEgcmVzcG9uc2UgaXMgYSByZWRpcmVjdCBiZWNhdXNlIG9mIGEgbWlkZGxld2FyZVxuICAgICAgICAgICAgICogd2UgZG8gbm90IGNvbnNpZGVyIGl0IGFuIGVycm9yLiBUaGUgaGVhZGVycyBtdXN0IGJyaW5nIHRoZVxuICAgICAgICAgICAgICogbWFwcGVkIGxvY2F0aW9uLlxuICAgICAgICAgICAgICogVE9ETzogQ2hhbmdlIHRoZSBzdGF0dXMgY29kZSBpbiB0aGUgaGFuZGxlci5cbiAgICAgICAgICAgICAqLyBpZiAoaGFzTWlkZGxld2FyZSAmJiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAzMDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAzMDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAzMDcsXG4gICAgICAgICAgICAgICAgICAgICAgICAzMDhcbiAgICAgICAgICAgICAgICAgICAgXS5pbmNsdWRlcyhyZXNwb25zZS5zdGF0dXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFIcmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNNaWRkbGV3YXJlICYmIHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChyZWYgPSB0cnlUb1BhcnNlQXNKU09OKHRleHQpKSA9PSBudWxsID8gdm9pZCAwIDogcmVmLm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUhyZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kOiBTU0dfREFUQV9OT1RfRk9VTkRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc3RhdGljIHByb3BzYCk7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2Ugc2hvdWxkIG9ubHkgdHJpZ2dlciBhIHNlcnZlci1zaWRlIHRyYW5zaXRpb24gaWYgdGhpcyB3YXNcbiAgICAgICAgICAgICAqIGNhdXNlZCBvbiBhIGNsaWVudC1zaWRlIHRyYW5zaXRpb24uIE90aGVyd2lzZSwgd2UnZCBnZXQgaW50b1xuICAgICAgICAgICAgICogYW4gaW5maW5pdGUgbG9vcC5cbiAgICAgICAgICAgICAqLyBpZiAoIWlzU2VydmVyUmVuZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5tYXJrQXNzZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFIcmVmLFxuICAgICAgICAgICAgICAgICAgICBqc29uOiBwYXJzZUpTT04gPyB0cnlUb1BhcnNlQXNKU09OKHRleHQpIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS50aGVuKChkYXRhKT0+e1xuICAgICAgICAgICAgaWYgKCFwZXJzaXN0Q2FjaGUgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyB8fCBkYXRhLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LW1pZGRsZXdhcmUtY2FjaGUnKSA9PT0gJ25vLWNhY2hlJykge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpbmZsaWdodENhY2hlW2NhY2hlS2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIHdoZW4gc2tpcHBpbmcgY2xpZW50IGNhY2hlIHdlIHdhaXQgdG8gdXBkYXRlXG4gICAgLy8gaW5mbGlnaHQgY2FjaGUgdW50aWwgc3VjY2Vzc2Z1bCBkYXRhIHJlc3BvbnNlXG4gICAgLy8gdGhpcyBhbGxvd3MgcmFjaW5nIGNsaWNrIGV2ZW50IHdpdGggZmV0Y2hpbmcgbmV3ZXIgZGF0YVxuICAgIC8vIHdpdGhvdXQgYmxvY2tpbmcgbmF2aWdhdGlvbiB3aGVuIHN0YWxlIGRhdGEgaXMgYXZhaWxhYmxlXG4gICAgaWYgKHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSAmJiBwZXJzaXN0Q2FjaGUpIHtcbiAgICAgICAgcmV0dXJuIGdldERhdGEoe30pLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICBpbmZsaWdodENhY2hlW2NhY2hlS2V5XSA9IFByb21pc2UucmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgIH1cbiAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gPSBnZXREYXRhKGlzQmFja2dyb3VuZCA/IHtcbiAgICAgICAgbWV0aG9kOiAnSEVBRCdcbiAgICB9IDoge30pO1xufVxuZnVuY3Rpb24gY3JlYXRlS2V5KCkge1xuICAgIHJldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLCAxMCk7XG59XG5mdW5jdGlvbiBoYW5kbGVIYXJkTmF2aWdhdGlvbih7IHVybCAsIHJvdXRlciAgfSkge1xuICAgIC8vIGVuc3VyZSB3ZSBkb24ndCB0cmlnZ2VyIGEgaGFyZCBuYXZpZ2F0aW9uIHRvIHRoZSBzYW1lXG4gICAgLy8gVVJMIGFzIHRoaXMgY2FuIGVuZCB1cCB3aXRoIGFuIGluZmluaXRlIHJlZnJlc2hcbiAgICBpZiAodXJsID09PSAoMCwgX2FkZEJhc2VQYXRoKS5hZGRCYXNlUGF0aCgoMCwgX2FkZExvY2FsZSkuYWRkTG9jYWxlKHJvdXRlci5hc1BhdGgsIHJvdXRlci5sb2NhbGUpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFyaWFudDogYXR0ZW1wdGVkIHRvIGhhcmQgbmF2aWdhdGUgdG8gdGhlIHNhbWUgVVJMICR7dXJsfSAke2xvY2F0aW9uLmhyZWZ9YCk7XG4gICAgfVxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xufVxuY29uc3QgZ2V0Q2FuY2VsbGVkSGFuZGxlciA9ICh7IHJvdXRlICwgcm91dGVyICB9KT0+e1xuICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgICBjb25zdCBjYW5jZWwgPSByb3V0ZXIuY2xjID0gKCk9PntcbiAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9ICgpPT57XG4gICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBBYm9ydCBmZXRjaGluZyBjb21wb25lbnQgZm9yIHJvdXRlOiBcIiR7cm91dGV9XCJgKTtcbiAgICAgICAgICAgIGVycm9yLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FuY2VsID09PSByb3V0ZXIuY2xjKSB7XG4gICAgICAgICAgICByb3V0ZXIuY2xjID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIGhhbmRsZUNhbmNlbGxlZDtcbn07XG5jbGFzcyBSb3V0ZXIge1xuICAgIHJlbG9hZCgpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbiAgICAvKipcbiAgICogR28gYmFjayBpbiBoaXN0b3J5XG4gICAqLyBiYWNrKCkge1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQZXJmb3JtcyBhIGBwdXNoU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi8gcHVzaCh1cmwsIGFzLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHJlbW92ZSBpbiB0aGUgZnV0dXJlIHdoZW4gd2UgdXBkYXRlIGhpc3RvcnkgYmVmb3JlIHJvdXRlIGNoYW5nZVxuICAgICAgICAgICAgLy8gaXMgY29tcGxldGUsIGFzIHRoZSBwb3BzdGF0ZSBldmVudCBzaG91bGQgaGFuZGxlIHRoaXMgY2FwdHVyZS5cbiAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNuYXBzaG90IHNjcm9sbCBwb3NpdGlvbiByaWdodCBiZWZvcmUgbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlOlxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyB0aGlzLl9rZXksIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBzZWxmLnBhZ2VZT2Zmc2V0XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICh7IHVybCAsIGFzICB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIHVybCwgYXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKCdwdXNoU3RhdGUnLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFBlcmZvcm1zIGEgYHJlcGxhY2VTdGF0ZWAgd2l0aCBhcmd1bWVudHNcbiAgICogQHBhcmFtIHVybCBvZiB0aGUgcm91dGVcbiAgICogQHBhcmFtIGFzIG1hc2tzIGB1cmxgIGZvciB0aGUgYnJvd3NlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBvYmplY3QgeW91IGNhbiBkZWZpbmUgYHNoYWxsb3dgIGFuZCBvdGhlciBvcHRpb25zXG4gICAqLyByZXBsYWNlKHVybCwgYXMsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICAoeyB1cmwgLCBhcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSgncmVwbGFjZVN0YXRlJywgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGNoYW5nZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMsIGZvcmNlZFNjcm9sbCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICByZXR1cm4gX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbiooKSB7XG4gICAgICAgICAgICBpZiAoIWlzTG9jYWxVUkwodXJsKSkge1xuICAgICAgICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXI6IF90aGlzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV0FSTklORzogYF9oYCBpcyBhbiBpbnRlcm5hbCBvcHRpb24gZm9yIGhhbmRpbmcgTmV4dC5qcyBjbGllbnQtc2lkZVxuICAgICAgICAgICAgLy8gaHlkcmF0aW9uLiBZb3VyIGFwcCBzaG91bGQgX25ldmVyXyB1c2UgdGhpcyBwcm9wZXJ0eS4gSXQgbWF5IGNoYW5nZSBhdFxuICAgICAgICAgICAgLy8gYW55IHRpbWUgd2l0aG91dCBub3RpY2UuXG4gICAgICAgICAgICBjb25zdCBpc1F1ZXJ5VXBkYXRpbmcgPSBvcHRpb25zLl9oO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkUmVzb2x2ZUhyZWYgPSBpc1F1ZXJ5VXBkYXRpbmcgfHwgb3B0aW9ucy5fc2hvdWxkUmVzb2x2ZUhyZWYgfHwgKDAsIF9wYXJzZVBhdGgpLnBhcnNlUGF0aCh1cmwpLnBhdGhuYW1lID09PSAoMCwgX3BhcnNlUGF0aCkucGFyc2VQYXRoKGFzKS5wYXRobmFtZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZSA9IF9leHRlbmRzKHt9LCBfdGhpcy5zdGF0ZSk7XG4gICAgICAgICAgICAvLyBmb3Igc3RhdGljIHBhZ2VzIHdpdGggcXVlcnkgcGFyYW1zIGluIHRoZSBVUkwgd2UgZGVsYXlcbiAgICAgICAgICAgIC8vIG1hcmtpbmcgdGhlIHJvdXRlciByZWFkeSB1bnRpbCBhZnRlciB0aGUgcXVlcnkgaXMgdXBkYXRlZFxuICAgICAgICAgICAgLy8gb3IgYSBuYXZpZ2F0aW9uIGhhcyBvY2N1cnJlZFxuICAgICAgICAgICAgY29uc3QgcmVhZHlTdGF0ZUNoYW5nZSA9IF90aGlzLmlzUmVhZHkgIT09IHRydWU7XG4gICAgICAgICAgICBfdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGlzU3NyID0gX3RoaXMuaXNTc3I7XG4gICAgICAgICAgICBpZiAoIWlzUXVlcnlVcGRhdGluZykge1xuICAgICAgICAgICAgICAgIF90aGlzLmlzU3NyID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBhIHJvdXRlIHRyYW5zaXRpb24gaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyBiZWZvcmVcbiAgICAgICAgICAgIC8vIHRoZSBxdWVyeSB1cGRhdGluZyBpcyB0cmlnZ2VyZWQgaWdub3JlIHF1ZXJ5IHVwZGF0aW5nXG4gICAgICAgICAgICBpZiAoaXNRdWVyeVVwZGF0aW5nICYmIF90aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHByZXZMb2NhbGUgPSBuZXh0U3RhdGUubG9jYWxlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhdGUubG9jYWxlID0gb3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlID8gX3RoaXMuZGVmYXVsdExvY2FsZSA6IG9wdGlvbnMubG9jYWxlIHx8IG5leHRTdGF0ZS5sb2NhbGU7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvY2FsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5sb2NhbGUgPSBuZXh0U3RhdGUubG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRBcyA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCgoMCwgX2hhc0Jhc2VQYXRoKS5oYXNCYXNlUGF0aChhcykgPyAoMCwgX3JlbW92ZUJhc2VQYXRoKS5yZW1vdmVCYXNlUGF0aChhcykgOiBhcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXJzZWRBcy5wYXRobmFtZSwgX3RoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dFN0YXRlLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGU7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gKDAsIF9hZGRCYXNlUGF0aCkuYWRkQmFzZVBhdGgocGFyc2VkQXMucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBhcyA9ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aCgoMCwgX2hhc0Jhc2VQYXRoKS5oYXNCYXNlUGF0aCh1cmwpID8gKDAsIF9yZW1vdmVCYXNlUGF0aCkucmVtb3ZlQmFzZVBhdGgodXJsKSA6IHVybCwgX3RoaXMubG9jYWxlcykucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgZGlkTmF2aWdhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHdyYXAgdGhpcyBpbiB0aGUgZW52IGNoZWNrIGFnYWluIHNpbmNlIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVmO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgbG9jYWxlIGlzbid0IGNvbmZpZ3VyZWQgaGFyZCBuYXZpZ2F0ZSB0byBzaG93IDQwNCBwYWdlXG4gICAgICAgICAgICAgICAgICAgIGlmICghKChyZWYgPSBfdGhpcy5sb2NhbGVzKSA9PSBudWxsID8gdm9pZCAwIDogcmVmLmluY2x1ZGVzKG5leHRTdGF0ZS5sb2NhbGUpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSAoMCwgX2FkZExvY2FsZSkuYWRkTG9jYWxlKHBhcnNlZEFzLnBhdGhuYW1lLCBuZXh0U3RhdGUubG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyOiBfdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdhcyBwcmV2aW91c2x5IGEgcmV0dXJuIGJ1dCB3YXMgcmVtb3ZlZCBpbiBmYXZvclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgYmV0dGVyIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3aXRoIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9ICgwLCBfZGV0ZWN0RG9tYWluTG9jYWxlKS5kZXRlY3REb21haW5Mb2NhbGUoX3RoaXMuZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCBuZXh0U3RhdGUubG9jYWxlKTtcbiAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHdyYXAgdGhpcyBpbiB0aGUgZW52IGNoZWNrIGFnYWluIHNpbmNlIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgbmF2aWdhdGluZyB0byBhIGRvbWFpbiBsb2NhbGUgZW5zdXJlIHdlIHJlZGlyZWN0IHRvIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBjb3JyZWN0IGRvbWFpblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWRpZE5hdmlnYXRlICYmIGRldGVjdGVkRG9tYWluICYmIF90aGlzLmlzTG9jYWxlRG9tYWluICYmIHNlbGYubG9jYXRpb24uaG9zdG5hbWUgIT09IGRldGVjdGVkRG9tYWluLmRvbWFpbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNOb0Jhc2VQYXRoID0gKDAsIF9yZW1vdmVCYXNlUGF0aCkucmVtb3ZlQmFzZVBhdGgoYXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYGh0dHAke2RldGVjdGVkRG9tYWluLmh0dHAgPyAnJyA6ICdzJ306Ly8ke2RldGVjdGVkRG9tYWluLmRvbWFpbn0keygwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKGAke25leHRTdGF0ZS5sb2NhbGUgPT09IGRldGVjdGVkRG9tYWluLmRlZmF1bHRMb2NhbGUgPyAnJyA6IGAvJHtuZXh0U3RhdGUubG9jYWxlfWB9JHthc05vQmFzZVBhdGggPT09ICcvJyA/ICcnIDogYXNOb0Jhc2VQYXRofWAgfHwgJy8nKX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlcjogX3RoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyB3YXMgcHJldmlvdXNseSBhIHJldHVybiBidXQgd2FzIHJlbW92ZWQgaW4gZmF2b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWROYXZpZ2F0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGRpZE5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e30pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIG1hcmtpbmcgcm91dGUgY2hhbmdlcyBhcyBhIG5hdmlnYXRpb24gc3RhcnQgZW50cnlcbiAgICAgICAgICAgIGlmIChfdXRpbHMuU1QpIHtcbiAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5tYXJrKCdyb3V0ZUNoYW5nZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBzaGFsbG93ID1mYWxzZSAsIHNjcm9sbCA9dHJ1ZSAgfSA9IG9wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCByb3V0ZVByb3BzID0ge1xuICAgICAgICAgICAgICAgIHNoYWxsb3dcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoX3RoaXMuX2luRmxpZ2h0Um91dGUgJiYgX3RoaXMuY2xjKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1Nzcikge1xuICAgICAgICAgICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBidWlsZENhbmNlbGxhdGlvbkVycm9yKCksIF90aGlzLl9pbkZsaWdodFJvdXRlLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX3RoaXMuY2xjKCk7XG4gICAgICAgICAgICAgICAgX3RoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFzID0gKDAsIF9hZGRCYXNlUGF0aCkuYWRkQmFzZVBhdGgoKDAsIF9hZGRMb2NhbGUpLmFkZExvY2FsZSgoMCwgX2hhc0Jhc2VQYXRoKS5oYXNCYXNlUGF0aChhcykgPyAoMCwgX3JlbW92ZUJhc2VQYXRoKS5yZW1vdmVCYXNlUGF0aChhcykgOiBhcywgb3B0aW9ucy5sb2NhbGUsIF90aGlzLmRlZmF1bHRMb2NhbGUpKTtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWRBcyA9ICgwLCBfcmVtb3ZlTG9jYWxlKS5yZW1vdmVMb2NhbGUoKDAsIF9oYXNCYXNlUGF0aCkuaGFzQmFzZVBhdGgoYXMpID8gKDAsIF9yZW1vdmVCYXNlUGF0aCkucmVtb3ZlQmFzZVBhdGgoYXMpIDogYXMsIG5leHRTdGF0ZS5sb2NhbGUpO1xuICAgICAgICAgICAgX3RoaXMuX2luRmxpZ2h0Um91dGUgPSBhcztcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsZUNoYW5nZSA9IHByZXZMb2NhbGUgIT09IG5leHRTdGF0ZS5sb2NhbGU7XG4gICAgICAgICAgICAvLyBJZiB0aGUgdXJsIGNoYW5nZSBpcyBvbmx5IHJlbGF0ZWQgdG8gYSBoYXNoIGNoYW5nZVxuICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCBwcm9jZWVkLiBXZSBzaG91bGQgb25seSBjaGFuZ2UgdGhlIHN0YXRlLlxuICAgICAgICAgICAgaWYgKCFpc1F1ZXJ5VXBkYXRpbmcgJiYgX3RoaXMub25seUFIYXNoQ2hhbmdlKGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgICAgIG5leHRTdGF0ZS5hc1BhdGggPSBjbGVhbmVkQXM7XG4gICAgICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdoYXNoQ2hhbmdlU3RhcnQnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogZG8gd2UgbmVlZCB0aGUgcmVzb2x2ZWQgaHJlZiB3aGVuIG9ubHkgYSBoYXNoIGNoYW5nZT9cbiAgICAgICAgICAgICAgICBfdGhpcy5jaGFuZ2VTdGF0ZShtZXRob2QsIHVybCwgYXMsIF9leHRlbmRzKHt9LCBvcHRpb25zLCB7XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbDogZmFsc2VcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5zY3JvbGxUb0hhc2goY2xlYW5lZEFzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgX3RoaXMuc2V0KG5leHRTdGF0ZSwgX3RoaXMuY29tcG9uZW50c1tuZXh0U3RhdGUucm91dGVdLCBudWxsKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIpICYmIGVyci5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgY2xlYW5lZEFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHBhcnNlZCA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICAgICAgbGV0IHsgcGF0aG5hbWUgLCBxdWVyeSAgfSA9IHBhcnNlZDtcbiAgICAgICAgICAgIC8vIFRoZSBidWlsZCBtYW5pZmVzdCBuZWVkcyB0byBiZSBsb2FkZWQgYmVmb3JlIGF1dG8tc3RhdGljIGR5bmFtaWMgcGFnZXNcbiAgICAgICAgICAgIC8vIGdldCB0aGVpciBxdWVyeSBwYXJhbWV0ZXJzIHRvIGFsbG93IGVuc3VyaW5nIHRoZXkgY2FuIGJlIHBhcnNlZCBwcm9wZXJseVxuICAgICAgICAgICAgLy8gd2hlbiByZXdyaXR0ZW4gdG9cbiAgICAgICAgICAgIGxldCBwYWdlcywgcmV3cml0ZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIFtwYWdlcywgeyBfX3Jld3JpdGVzOiByZXdyaXRlcyAgfV0gPSB5aWVsZCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9yb3V0ZUxvYWRlcikuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLFxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmUoKSwgXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBmYWlsIHRvIHJlc29sdmUgdGhlIHBhZ2UgbGlzdCBvciBjbGllbnQtYnVpbGQgbWFuaWZlc3QsIHdlIG11c3RcbiAgICAgICAgICAgICAgICAvLyBkbyBhIHNlcnZlci1zaWRlIHRyYW5zaXRpb246XG4gICAgICAgICAgICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IGFzLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXI6IF90aGlzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgYXNrZWQgdG8gY2hhbmdlIHRoZSBjdXJyZW50IFVSTCB3ZSBzaG91bGQgcmVsb2FkIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgICAgIC8vIChub3QgbG9jYXRpb24ucmVsb2FkKCkgYnV0IHJlbG9hZCBnZXRJbml0aWFsUHJvcHMgYW5kIG90aGVyIE5leHQuanMgc3R1ZmZzKVxuICAgICAgICAgICAgLy8gV2UgYWxzbyBuZWVkIHRvIHNldCB0aGUgbWV0aG9kID0gcmVwbGFjZVN0YXRlIGFsd2F5c1xuICAgICAgICAgICAgLy8gYXMgdGhpcyBzaG91bGQgbm90IGdvIGludG8gdGhlIGhpc3RvcnkgKFRoYXQncyBob3cgYnJvd3NlcnMgd29yaylcbiAgICAgICAgICAgIC8vIFdlIHNob3VsZCBjb21wYXJlIHRoZSBuZXcgYXNQYXRoIHRvIHRoZSBjdXJyZW50IGFzUGF0aCwgbm90IHRoZSB1cmxcbiAgICAgICAgICAgIGlmICghX3RoaXMudXJsSXNOZXcoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kID0gJ3JlcGxhY2VTdGF0ZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHJlc29sdmUgdGhlIGFzIHZhbHVlIHVzaW5nIHJld3JpdGVzIGZvciBkeW5hbWljIFNTR1xuICAgICAgICAgICAgLy8gcGFnZXMgdG8gYWxsb3cgYnVpbGRpbmcgdGhlIGRhdGEgVVJMIGNvcnJlY3RseVxuICAgICAgICAgICAgbGV0IHJlc29sdmVkQXMgPSBhcztcbiAgICAgICAgICAgIC8vIHVybCBhbmQgYXMgc2hvdWxkIGFsd2F5cyBiZSBwcmVmaXhlZCB3aXRoIGJhc2VQYXRoIGJ5IHRoaXNcbiAgICAgICAgICAgIC8vIHBvaW50IGJ5IGVpdGhlciBuZXh0L2xpbmsgb3Igcm91dGVyLnB1c2gvcmVwbGFjZSBzbyBzdHJpcCB0aGVcbiAgICAgICAgICAgIC8vIGJhc2VQYXRoIGZyb20gdGhlIHBhdGhuYW1lIHRvIG1hdGNoIHRoZSBwYWdlcyBkaXIgMS10by0xXG4gICAgICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lID8gKDAsIF9yZW1vdmVUcmFpbGluZ1NsYXNoKS5yZW1vdmVUcmFpbGluZ1NsYXNoKCgwLCBfcmVtb3ZlQmFzZVBhdGgpLnJlbW92ZUJhc2VQYXRoKHBhdGhuYW1lKSkgOiBwYXRobmFtZTtcbiAgICAgICAgICAgIC8vIHdlIGRvbid0IGF0dGVtcHQgcmVzb2x2ZSBhc1BhdGggd2hlbiB3ZSBuZWVkIHRvIGV4ZWN1dGVcbiAgICAgICAgICAgIC8vIG1pZGRsZXdhcmUgYXMgdGhlIHJlc29sdmluZyB3aWxsIG9jY3VyIHNlcnZlci1zaWRlXG4gICAgICAgICAgICBjb25zdCBpc01pZGRsZXdhcmVNYXRjaCA9IHlpZWxkIG1hdGNoZXNNaWRkbGV3YXJlKHtcbiAgICAgICAgICAgICAgICBhc1BhdGg6IGFzLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogbmV4dFN0YXRlLmxvY2FsZSxcbiAgICAgICAgICAgICAgICByb3V0ZXI6IF90aGlzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNoYWxsb3cgJiYgaXNNaWRkbGV3YXJlTWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9IF90aGlzLnBhdGhuYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNob3VsZFJlc29sdmVIcmVmICYmIHBhdGhuYW1lICE9PSAnL19lcnJvcicpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXMuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJld3JpdGVzUmVzdWx0ID0gKDAsIF9yZXNvbHZlUmV3cml0ZXMpLmRlZmF1bHQoKDAsIF9hZGRCYXNlUGF0aCkuYWRkQmFzZVBhdGgoKDAsIF9hZGRMb2NhbGUpLmFkZExvY2FsZShjbGVhbmVkQXMsIG5leHRTdGF0ZS5sb2NhbGUpLCB0cnVlKSwgcGFnZXMsIHJld3JpdGVzLCBxdWVyeSwgKHApPT5yZXNvbHZlRHluYW1pY1JvdXRlKHAsIHBhZ2VzKSwgX3RoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5leHRlcm5hbERlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGFzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlcjogX3RoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc01pZGRsZXdhcmVNYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IHJld3JpdGVzUmVzdWx0LmFzUGF0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGxvdyB0aGUgY29ycmVjdCBwYWdlIGNodW5rIHRvIGJlIGxvYWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSAoMCwgX2FkZEJhc2VQYXRoKS5hZGRCYXNlUGF0aChwYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gKDAsIF9mb3JtYXRVcmwpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZWQucGF0aG5hbWUgIT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9ICgwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNNaWRkbGV3YXJlTWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX2Zvcm1hdFVybCkuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNMb2NhbFVSTChhcykpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaHJlZjogXCIke3VybH1cIiBhbmQgYXM6IFwiJHthc31cIiwgcmVjZWl2ZWQgcmVsYXRpdmUgaHJlZiBhbmQgZXh0ZXJuYWwgYXNgICsgYFxcblNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtcmVsYXRpdmUtdXJsLWV4dGVybmFsLWFzYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBhcyxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVyOiBfdGhpc1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmVkQXMgPSAoMCwgX3JlbW92ZUxvY2FsZSkucmVtb3ZlTG9jYWxlKCgwLCBfcmVtb3ZlQmFzZVBhdGgpLnJlbW92ZUJhc2VQYXRoKHJlc29sdmVkQXMpLCBuZXh0U3RhdGUubG9jYWxlKTtcbiAgICAgICAgICAgIGxldCByb3V0ZSA9ICgwLCBfcmVtb3ZlVHJhaWxpbmdTbGFzaCkucmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSk7XG4gICAgICAgICAgICBsZXQgcm91dGVNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRBcyA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChyZXNvbHZlZEFzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhc1BhdGhuYW1lID0gcGFyc2VkQXMucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVSZWdleCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChyb3V0ZSk7XG4gICAgICAgICAgICAgICAgcm91dGVNYXRjaCA9ICgwLCBfcm91dGVNYXRjaGVyKS5nZXRSb3V0ZU1hdGNoZXIocm91dGVSZWdleCkoYXNQYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkSW50ZXJwb2xhdGUgPSByb3V0ZSA9PT0gYXNQYXRobmFtZTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRBcyA9IHNob3VsZEludGVycG9sYXRlID8gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIDoge307XG4gICAgICAgICAgICAgICAgaWYgKCFyb3V0ZU1hdGNoIHx8IHNob3VsZEludGVycG9sYXRlICYmICFpbnRlcnBvbGF0ZWRBcy5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzc2luZ1BhcmFtcyA9IE9iamVjdC5rZXlzKHJvdXRlUmVnZXguZ3JvdXBzKS5maWx0ZXIoKHBhcmFtKT0+IXF1ZXJ5W3BhcmFtXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtaXNzaW5nUGFyYW1zLmxlbmd0aCA+IDAgJiYgIWlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgJHtzaG91bGRJbnRlcnBvbGF0ZSA/IGBJbnRlcnBvbGF0aW5nIGhyZWZgIDogYE1pc21hdGNoaW5nIFxcYGFzXFxgIGFuZCBcXGBocmVmXFxgYH0gZmFpbGVkIHRvIG1hbnVhbGx5IHByb3ZpZGUgYCArIGB0aGUgcGFyYW1zOiAke21pc3NpbmdQYXJhbXMuam9pbignLCAnKX0gaW4gdGhlIFxcYGhyZWZcXGAncyBcXGBxdWVyeVxcYGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKChzaG91bGRJbnRlcnBvbGF0ZSA/IGBUaGUgcHJvdmlkZWQgXFxgaHJlZlxcYCAoJHt1cmx9KSB2YWx1ZSBpcyBtaXNzaW5nIHF1ZXJ5IHZhbHVlcyAoJHttaXNzaW5nUGFyYW1zLmpvaW4oJywgJyl9KSB0byBiZSBpbnRlcnBvbGF0ZWQgcHJvcGVybHkuIGAgOiBgVGhlIHByb3ZpZGVkIFxcYGFzXFxgIHZhbHVlICgke2FzUGF0aG5hbWV9KSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgXFxgaHJlZlxcYCB2YWx1ZSAoJHtyb3V0ZX0pLiBgKSArIGBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLyR7c2hvdWxkSW50ZXJwb2xhdGUgPyAnaHJlZi1pbnRlcnBvbGF0aW9uLWZhaWxlZCcgOiAnaW5jb21wYXRpYmxlLWhyZWYtYXMnfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRJbnRlcnBvbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBhcyA9ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihPYmplY3QuYXNzaWduKHt9LCBwYXJzZWRBcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGludGVycG9sYXRlZEFzLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBvbWl0KHF1ZXJ5LCBpbnRlcnBvbGF0ZWRBcy5wYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBNZXJnZSBwYXJhbXMgaW50byBgcXVlcnlgLCBvdmVyd3JpdGluZyBhbnkgc3BlY2lmaWVkIGluIHNlYXJjaFxuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHF1ZXJ5LCByb3V0ZU1hdGNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzUXVlcnlVcGRhdGluZykge1xuICAgICAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VTdGFydCcsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlZjIsIHJlZjM7XG4gICAgICAgICAgICAgICAgbGV0IHJvdXRlSW5mbyA9IHlpZWxkIF90aGlzLmdldFJvdXRlSW5mbyh7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlLFxuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZVByb3BzLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IG5leHRTdGF0ZS5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGlzUHJldmlldzogbmV4dFN0YXRlLmlzUHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgaGFzTWlkZGxld2FyZTogaXNNaWRkbGV3YXJlTWF0Y2hcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoJ3JvdXRlJyBpbiByb3V0ZUluZm8gJiYgaXNNaWRkbGV3YXJlTWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByb3V0ZUluZm8ucm91dGUgfHwgcm91dGU7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcm91dGVQcm9wcy5zaGFsbG93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSA9IE9iamVjdC5hc3NpZ24oe30sIHJvdXRlSW5mby5xdWVyeSB8fCB7fSwgcXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuZWRQYXJzZWRQYXRobmFtZSA9ICgwLCBfaGFzQmFzZVBhdGgpLmhhc0Jhc2VQYXRoKHBhcnNlZC5wYXRobmFtZSkgPyAoMCwgX3JlbW92ZUJhc2VQYXRoKS5yZW1vdmVCYXNlUGF0aChwYXJzZWQucGF0aG5hbWUpIDogcGFyc2VkLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgICAgICBpZiAocm91dGVNYXRjaCAmJiBwYXRobmFtZSAhPT0gY2xlYW5lZFBhcnNlZFBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhyb3V0ZU1hdGNoKS5mb3JFYWNoKChrZXkpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlTWF0Y2ggJiYgcXVlcnlba2V5XSA9PT0gcm91dGVNYXRjaFtrZXldKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVtrZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICgoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUocGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmVmaXhlZEFzID0gIXJvdXRlUHJvcHMuc2hhbGxvdyAmJiByb3V0ZUluZm8ucmVzb2x2ZWRBcyA/IHJvdXRlSW5mby5yZXNvbHZlZEFzIDogKDAsIF9hZGRCYXNlUGF0aCkuYWRkQmFzZVBhdGgoKDAsIF9hZGRMb2NhbGUpLmFkZExvY2FsZShuZXcgVVJMKGFzLCBsb2NhdGlvbi5ocmVmKS5wYXRobmFtZSwgbmV4dFN0YXRlLmxvY2FsZSksIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJld3JpdGVBcyA9IHByZWZpeGVkQXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKDAsIF9oYXNCYXNlUGF0aCkuaGFzQmFzZVBhdGgocmV3cml0ZUFzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJld3JpdGVBcyA9ICgwLCBfcmVtb3ZlQmFzZVBhdGgpLnJlbW92ZUJhc2VQYXRoKHJld3JpdGVBcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZVJlc3VsdCA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChyZXdyaXRlQXMsIF90aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZS5sb2NhbGUgPSBsb2NhbGVSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgfHwgbmV4dFN0YXRlLmxvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXdyaXRlQXMgPSBsb2NhbGVSZXN1bHQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVJlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1clJvdXRlTWF0Y2ggPSAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpKHJld3JpdGVBcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyUm91dGVNYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocXVlcnksIGN1clJvdXRlTWF0Y2gpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSByb3V0ZUluZm8gYnJpbmdzIGEgcmVkaXJlY3Qgd2Ugc2ltcGx5IGFwcGx5IGl0LlxuICAgICAgICAgICAgICAgIGlmICgndHlwZScgaW4gcm91dGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb3V0ZUluZm8udHlwZSA9PT0gJ3JlZGlyZWN0LWludGVybmFsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLmNoYW5nZShtZXRob2QsIHJvdXRlSW5mby5uZXdVcmwsIHJvdXRlSW5mby5uZXdBcywgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiByb3V0ZUluZm8uZGVzdGluYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyOiBfdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgeyBlcnJvciAsIHByb3BzICwgX19OX1NTRyAsIF9fTl9TU1AgIH0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gcm91dGVJbmZvLkNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudC51bnN0YWJsZV9zY3JpcHRMb2FkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0cyA9IFtdLmNvbmNhdChjb21wb25lbnQudW5zdGFibGVfc2NyaXB0TG9hZGVyKCkpO1xuICAgICAgICAgICAgICAgICAgICBzY3JpcHRzLmZvckVhY2goKHNjcmlwdCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfc2NyaXB0KS5oYW5kbGVDbGllbnRTY3JpcHRMb2FkKHNjcmlwdC5wcm9wcyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgcmVkaXJlY3Qgb24gY2xpZW50LXRyYW5zaXRpb25cbiAgICAgICAgICAgICAgICBpZiAoKF9fTl9TU0cgfHwgX19OX1NTUCkgJiYgcHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BzLnBhZ2VQcm9wcyAmJiBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgdGhlIGRlc3RpbmF0aW9uIGZyb20gcmVkaXJlY3Qgd2l0aG91dCBhZGRpbmcgbG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgZGVzdGluYXRpb24gaXMgaW50ZXJuYWwgKHJlc29sdmVzIHRvIGEgcGFnZSkgYW5kIGF0dGVtcHRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsaWVudC1uYXZpZ2F0aW9uIGlmIGl0IGlzIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb24gaWZcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0J3Mgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpICYmIHByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEhyZWYgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZEhyZWYucGF0aG5hbWUgPSByZXNvbHZlRHluYW1pY1JvdXRlKHBhcnNlZEhyZWYucGF0aG5hbWUsIHBhZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHVybDogbmV3VXJsICwgYXM6IG5ld0FzICB9ID0gcHJlcGFyZVVybEFzKF90aGlzLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpcy5jaGFuZ2UobWV0aG9kLCBuZXdVcmwsIG5ld0FzLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGRlc3RpbmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlcjogX3RoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV4dFN0YXRlLmlzUHJldmlldyA9ICEhcHJvcHMuX19OX1BSRVZJRVc7XG4gICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBTU0cgZGF0YSA0MDRcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BzLm5vdEZvdW5kID09PSBTU0dfREFUQV9OT1RfRk9VTkQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub3RGb3VuZFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCBfdGhpcy5mZXRjaENvbXBvbmVudCgnLzQwNCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kUm91dGUgPSAnLzQwNCc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvX2Vycm9yJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mbyA9IHlpZWxkIF90aGlzLmdldFJvdXRlSW5mbyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGU6IG5vdEZvdW5kUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IG5vdEZvdW5kUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRBcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZVByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWxsb3c6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IG5leHRTdGF0ZS5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQcmV2aWV3OiBuZXh0U3RhdGUuaXNQcmV2aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgndHlwZScgaW4gcm91dGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG1pZGRsZXdhcmUgZWZmZWN0IG9uIC80MDRgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICAgICAgX3RoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNRdWVyeVVwZGF0aW5nICYmIHBhdGhuYW1lID09PSAnL19lcnJvcicgJiYgKChyZWYyID0gc2VsZi5fX05FWFRfREFUQV9fLnByb3BzKSA9PSBudWxsID8gdm9pZCAwIDogKHJlZjMgPSByZWYyLnBhZ2VQcm9wcykgPT0gbnVsbCA/IHZvaWQgMCA6IHJlZjMuc3RhdHVzQ29kZSkgPT09IDUwMCAmJiAocHJvcHMgPT0gbnVsbCA/IHZvaWQgMCA6IHByb3BzLnBhZ2VQcm9wcykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5zdXJlIHN0YXR1c0NvZGUgaXMgc3RpbGwgY29ycmVjdCBmb3Igc3RhdGljIDUwMCBwYWdlXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gdXBkYXRpbmcgcXVlcnkgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgcHJvcHMucGFnZVByb3BzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBfcm91dGU7XG4gICAgICAgICAgICAgICAgLy8gc2hhbGxvdyByb3V0aW5nIGlzIG9ubHkgYWxsb3dlZCBmb3Igc2FtZSBwYWdlIFVSTCBjaGFuZ2VzLlxuICAgICAgICAgICAgICAgIGNvbnN0IGlzVmFsaWRTaGFsbG93Um91dGUgPSBvcHRpb25zLnNoYWxsb3cgJiYgbmV4dFN0YXRlLnJvdXRlID09PSAoKF9yb3V0ZSA9IHJvdXRlSW5mby5yb3V0ZSkgIT0gbnVsbCA/IF9yb3V0ZSA6IHJvdXRlKTtcbiAgICAgICAgICAgICAgICB2YXIgX3Njcm9sbDtcbiAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRTY3JvbGwgPSAoX3Njcm9sbCA9IG9wdGlvbnMuc2Nyb2xsKSAhPSBudWxsID8gX3Njcm9sbCA6ICFvcHRpb25zLl9oICYmICFpc1ZhbGlkU2hhbGxvd1JvdXRlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2V0U2Nyb2xsID0gc2hvdWxkU2Nyb2xsID8ge1xuICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICAgICAgfSA6IG51bGw7XG4gICAgICAgICAgICAgICAgLy8gdGhlIG5ldyBzdGF0ZSB0aGF0IHRoZSByb3V0ZXIgZ29ubmEgc2V0XG4gICAgICAgICAgICAgICAgY29uc3QgdXBjb21pbmdSb3V0ZXJTdGF0ZSA9IF9leHRlbmRzKHt9LCBuZXh0U3RhdGUsIHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiBjbGVhbmVkQXMsXG4gICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2s6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBjb21pbmdTY3JvbGxTdGF0ZSA9IGZvcmNlZFNjcm9sbCAhPSBudWxsID8gZm9yY2VkU2Nyb2xsIDogcmVzZXRTY3JvbGw7XG4gICAgICAgICAgICAgICAgLy8gZm9yIHF1ZXJ5IHVwZGF0ZXMgd2UgY2FuIHNraXAgaXQgaWYgdGhlIHN0YXRlIGlzIHVuY2hhbmdlZCBhbmQgd2UgZG9uJ3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHNjcm9sbFxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvMzcxMzlcbiAgICAgICAgICAgICAgICBjb25zdCBjYW5Ta2lwVXBkYXRpbmcgPSBvcHRpb25zLl9oICYmICF1cGNvbWluZ1Njcm9sbFN0YXRlICYmICFyZWFkeVN0YXRlQ2hhbmdlICYmICFsb2NhbGVDaGFuZ2UgJiYgKDAsIF9jb21wYXJlU3RhdGVzKS5jb21wYXJlUm91dGVyU3RhdGVzKHVwY29taW5nUm91dGVyU3RhdGUsIF90aGlzLnN0YXRlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNhblNraXBVcGRhdGluZykge1xuICAgICAgICAgICAgICAgICAgICB5aWVsZCBfdGhpcy5zZXQodXBjb21pbmdSb3V0ZXJTdGF0ZSwgcm91dGVJbmZvLCB1cGNvbWluZ1Njcm9sbFN0YXRlKS5jYXRjaCgoZSk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmNhbmNlbGxlZCkgZXJyb3IgPSBlcnJvciB8fCBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUXVlcnlVcGRhdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVycm9yLCBjbGVhbmVkQXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhdGUubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBuZXh0U3RhdGUubG9jYWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNRdWVyeVVwZGF0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gQSBoYXNoIG1hcmsgIyBpcyB0aGUgb3B0aW9uYWwgbGFzdCBwYXJ0IG9mIGEgVVJMXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc2hSZWdleCA9IC8jLiskLztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZFNjcm9sbCAmJiBoYXNoUmVnZXgudGVzdChhcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnNjcm9sbFRvSGFzaChhcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIxKSB7XG4gICAgICAgICAgICAgICAgaWYgKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIxKSAmJiBlcnIxLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycjE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG4gICAgfVxuICAgIGNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5IGlzIG5vdCBhdmFpbGFibGUuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuaGlzdG9yeVttZXRob2RdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5LiR7bWV0aG9kfSBpcyBub3QgYXZhaWxhYmxlYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRob2QgIT09ICdwdXNoU3RhdGUnIHx8ICgwLCBfdXRpbHMpLmdldFVSTCgpICE9PSBhcykge1xuICAgICAgICAgICAgdGhpcy5fc2hhbGxvdyA9IG9wdGlvbnMuc2hhbGxvdztcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0oe1xuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBhcyxcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICAgIF9fTjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBrZXk6IHRoaXMuX2tleSA9IG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgPyB0aGlzLl9rZXkgOiBjcmVhdGVLZXkoKVxuICAgICAgICAgICAgfSwgLy8gTW9zdCBicm93c2VycyBjdXJyZW50bHkgaWdub3JlcyB0aGlzIHBhcmFtZXRlciwgYWx0aG91Z2ggdGhleSBtYXkgdXNlIGl0IGluIHRoZSBmdXR1cmUuXG4gICAgICAgICAgICAvLyBQYXNzaW5nIHRoZSBlbXB0eSBzdHJpbmcgaGVyZSBzaG91bGQgYmUgc2FmZSBhZ2FpbnN0IGZ1dHVyZSBjaGFuZ2VzIHRvIHRoZSBtZXRob2QuXG4gICAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvSGlzdG9yeS9yZXBsYWNlU3RhdGVcbiAgICAgICAgICAgICcnLCBhcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaGFuZGxlUm91dGVJbmZvRXJyb3IoZXJyLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzLCBsb2FkRXJyb3JGYWlsKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKigpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIGlmIChlcnIuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgLy8gYnViYmxlIHVwIGNhbmNlbGxhdGlvbiBlcnJvcnNcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKDAsIF9yb3V0ZUxvYWRlcikuaXNBc3NldEVycm9yKGVycikgfHwgbG9hZEVycm9yRmFpbCkge1xuICAgICAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGNhbid0IGxvYWQgdGhlIHBhZ2UgaXQgY291bGQgYmUgb25lIG9mIGZvbGxvd2luZyByZWFzb25zXG4gICAgICAgICAgICAgICAgLy8gIDEuIFBhZ2UgZG9lc24ndCBleGlzdHNcbiAgICAgICAgICAgICAgICAvLyAgMi4gUGFnZSBkb2VzIGV4aXN0IGluIGEgZGlmZmVyZW50IHpvbmVcbiAgICAgICAgICAgICAgICAvLyAgMy4gSW50ZXJuYWwgZXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgcGFnZVxuICAgICAgICAgICAgICAgIC8vIFNvLCBkb2luZyBhIGhhcmQgcmVsb2FkIGlzIHRoZSBwcm9wZXIgd2F5IHRvIGRlYWwgd2l0aCB0aGlzLlxuICAgICAgICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBhcyxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVyOiBfdGhpc1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIENoYW5naW5nIHRoZSBVUkwgZG9lc24ndCBibG9jayBleGVjdXRpbmcgdGhlIGN1cnJlbnQgY29kZSBwYXRoLlxuICAgICAgICAgICAgICAgIC8vIFNvIGxldCdzIHRocm93IGEgY2FuY2VsbGF0aW9uIGVycm9yIHN0b3AgdGhlIHJvdXRpbmcgbG9naWMuXG4gICAgICAgICAgICAgICAgdGhyb3cgYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHM7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwYWdlOiBDb21wb25lbnQgLCBzdHlsZVNoZWV0cyAgfSA9IHlpZWxkIF90aGlzLmZldGNoQ29tcG9uZW50KCcvX2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoIXJvdXRlSW5mby5wcm9wcykge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0geWllbGQgX3RoaXMuZ2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGdpcEVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gZXJyb3IgcGFnZSBgZ2V0SW5pdGlhbFByb3BzYDogJywgZ2lwRXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgICAgICB9IGNhdGNoIChyb3V0ZUluZm9FcnIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KHJvdXRlSW5mb0VycikgPyByb3V0ZUluZm9FcnIgOiBuZXcgRXJyb3Iocm91dGVJbmZvRXJyICsgJycpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkoKTtcbiAgICB9XG4gICAgZ2V0Um91dGVJbmZvKHsgcm91dGU6IHJlcXVlc3RlZFJvdXRlICwgcGF0aG5hbWUgLCBxdWVyeSAsIGFzICwgcmVzb2x2ZWRBcyAsIHJvdXRlUHJvcHMgLCBsb2NhbGUgLCBoYXNNaWRkbGV3YXJlICwgaXNQcmV2aWV3ICwgdW5zdGFibGVfc2tpcENsaWVudENhY2hlICB9KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKigpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAqIFRoaXMgYHJvdXRlYCBiaW5kaW5nIGNhbiBjaGFuZ2UgaWYgdGhlcmUncyBhIHJld3JpdGVcbiAgICAgKiBzbyB3ZSBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0ZWQgcm91dGVcbiAgICAgKiBzbyB3ZSBjYW4gc3RvcmUgdGhlIGNhY2hlIGZvciBpdCBhbmQgYXZvaWQgcmUtcmVxdWVzdGluZyBldmVyeSB0aW1lXG4gICAgICogZm9yIHNoYWxsb3cgcm91dGluZyBwdXJwb3Nlcy5cbiAgICAgKi8gbGV0IHJvdXRlID0gcmVxdWVzdGVkUm91dGU7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHZhciByZWYsIHJlZjQsIHJlZjU7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlQ2FuY2VsbGVkID0gZ2V0Q2FuY2VsbGVkSGFuZGxlcih7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXI6IF90aGlzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbGV0IGV4aXN0aW5nSW5mbyA9IF90aGlzLmNvbXBvbmVudHNbcm91dGVdO1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZVByb3BzLnNoYWxsb3cgJiYgZXhpc3RpbmdJbmZvICYmIF90aGlzLnJvdXRlID09PSByb3V0ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdJbmZvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaGFzTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0luZm8gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBjYWNoZWRSb3V0ZUluZm8gPSBleGlzdGluZ0luZm8gJiYgISgnaW5pdGlhbCcgaW4gZXhpc3RpbmdJbmZvKSAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyA/IGV4aXN0aW5nSW5mbyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBjb25zdCBmZXRjaE5leHREYXRhUGFyYW1zID0ge1xuICAgICAgICAgICAgICAgICAgICBkYXRhSHJlZjogX3RoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmOiAoMCwgX2Zvcm1hdFVybCkuZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBJbnRlcnBvbGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBoYXNNaWRkbGV3YXJlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBpc1NlcnZlclJlbmRlcjogX3RoaXMuaXNTc3IsXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSlNPTjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgaW5mbGlnaHRDYWNoZTogX3RoaXMuc2RjLFxuICAgICAgICAgICAgICAgICAgICBwZXJzaXN0Q2FjaGU6ICFpc1ByZXZpZXcsXG4gICAgICAgICAgICAgICAgICAgIGlzUHJlZmV0Y2g6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCB3aXRoTWlkZGxld2FyZUVmZmVjdHMoe1xuICAgICAgICAgICAgICAgICAgICBmZXRjaERhdGE6ICgpPT5mZXRjaE5leHREYXRhKGZldGNoTmV4dERhdGFQYXJhbXMpLFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IHJlc29sdmVkQXMsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXI6IF90aGlzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2FuY2VsbGVkKCk7XG4gICAgICAgICAgICAgICAgaWYgKChkYXRhID09IG51bGwgPyB2b2lkIDAgOiAocmVmID0gZGF0YS5lZmZlY3QpID09IG51bGwgPyB2b2lkIDAgOiByZWYudHlwZSkgPT09ICdyZWRpcmVjdC1pbnRlcm5hbCcgfHwgKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IChyZWY0ID0gZGF0YS5lZmZlY3QpID09IG51bGwgPyB2b2lkIDAgOiByZWY0LnR5cGUpID09PSAncmVkaXJlY3QtZXh0ZXJuYWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmVmZmVjdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChkYXRhID09IG51bGwgPyB2b2lkIDAgOiAocmVmNSA9IGRhdGEuZWZmZWN0KSA9PSBudWxsID8gdm9pZCAwIDogcmVmNS50eXBlKSA9PT0gJ3Jld3JpdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlID0gKDAsIF9yZW1vdmVUcmFpbGluZ1NsYXNoKS5yZW1vdmVUcmFpbGluZ1NsYXNoKGRhdGEuZWZmZWN0LnJlc29sdmVkSHJlZik7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gZGF0YS5lZmZlY3QucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgICAgICAgICBxdWVyeSA9IF9leHRlbmRzKHt9LCBxdWVyeSwgZGF0YS5lZmZlY3QucGFyc2VkQXMucXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZEFzID0gKDAsIF9yZW1vdmVCYXNlUGF0aCkucmVtb3ZlQmFzZVBhdGgoKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKGRhdGEuZWZmZWN0LnBhcnNlZEFzLnBhdGhuYW1lLCBfdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGFnYWluIHRoZSBjYWNoZSB3aXRoIHRoZSBuZXcgZGVzdGluYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSW5mbyA9IF90aGlzLmNvbXBvbmVudHNbcm91dGVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAocm91dGVQcm9wcy5zaGFsbG93ICYmIGV4aXN0aW5nSW5mbyAmJiBfdGhpcy5yb3V0ZSA9PT0gcm91dGUgJiYgIWhhc01pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBtYXRjaCB3aXRoIHRoZSBjdXJyZW50IHJvdXRlIGR1ZSB0byByZXdyaXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgY2FuIGNvcHkgdGhlIGV4aXN0aW5nIGluZm9ybWF0aW9uIHRvIHRoZSByZXdyaXR0ZW4gb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlbiwgd2UgcmV0dXJuIHRoZSBpbmZvcm1hdGlvbiBhbG9uZyB3aXRoIHRoZSBtYXRjaGVkIHJvdXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBleGlzdGluZ0luZm8sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJvdXRlID09PSAnL2FwaScgfHwgcm91dGUuc3RhcnRzV2l0aCgnL2FwaS8nKSkge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGFzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyOiBfdGhpc1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57fSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IGNhY2hlZFJvdXRlSW5mbyB8fCAoeWllbGQgX3RoaXMuZmV0Y2hDb21wb25lbnQocm91dGUpLnRoZW4oKHJlcyk9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnQ6IHJlcy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVTaGVldHM6IHJlcy5zdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9fTl9TU0c6IHJlcy5tb2QuX19OX1NTRyxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9fTl9TU1A6IHJlcy5tb2QuX19OX1NTUFxuICAgICAgICAgICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgaXNWYWxpZEVsZW1lbnRUeXBlICB9ID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LWlzJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHJvdXRlSW5mby5Db21wb25lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkZWZhdWx0IGV4cG9ydCBpcyBub3QgYSBSZWFjdCBDb21wb25lbnQgaW4gcGFnZTogXCIke3BhdGhuYW1lfVwiYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkRmV0Y2hEYXRhID0gcm91dGVJbmZvLl9fTl9TU0cgfHwgcm91dGVJbmZvLl9fTl9TU1A7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcm9wcyAsIGNhY2hlS2V5ICB9ID0geWllbGQgX3RoaXMuX2dldERhdGEoX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbiooKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRGZXRjaERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbiAsIGNhY2hlS2V5OiBfY2FjaGVLZXkgIH0gPSAoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogZGF0YS5qc29uKSA/IGRhdGEgOiB5aWVsZCBmZXRjaE5leHREYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhSHJlZjogX3RoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY6ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IHJlc29sdmVkQXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VydmVyUmVuZGVyOiBfdGhpcy5pc1NzcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUpTT046IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mbGlnaHRDYWNoZTogX3RoaXMuc2RjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNpc3RDYWNoZTogIWlzUHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ByZWZldGNoOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUtleTogX2NhY2hlS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBqc29uIHx8IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB5aWVsZCBfdGhpcy5nZXRJbml0aWFsUHJvcHMocm91dGVJbmZvLkNvbXBvbmVudCwgLy8gd2UgcHJvdmlkZSBBcHBUcmVlIGxhdGVyIHNvIHRoaXMgbmVlZHMgdG8gYmUgYGFueWBcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IGFzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVzOiBfdGhpcy5sb2NhbGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6IF90aGlzLmRlZmF1bHRMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIC8vIE9ubHkgYnVzdCB0aGUgZGF0YSBjYWNoZSBmb3IgU1NQIHJvdXRlcyBhbHRob3VnaFxuICAgICAgICAgICAgICAgIC8vIG1pZGRsZXdhcmUgY2FuIHNraXAgY2FjaGUgcGVyIHJlcXVlc3Qgd2l0aFxuICAgICAgICAgICAgICAgIC8vIHgtbWlkZGxld2FyZS1jYWNoZTogbm8tY2FjaGUgYXMgd2VsbFxuICAgICAgICAgICAgICAgIGlmIChyb3V0ZUluZm8uX19OX1NTUCAmJiBmZXRjaE5leHREYXRhUGFyYW1zLmRhdGFIcmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfdGhpcy5zZGNbY2FjaGVLZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyB3ZSBraWNrIG9mZiBhIEhFQUQgcmVxdWVzdCBpbiB0aGUgYmFja2dyb3VuZFxuICAgICAgICAgICAgICAgIC8vIHdoZW4gYSBub24tcHJlZmV0Y2ggcmVxdWVzdCBpcyBtYWRlIHRvIHNpZ25hbCByZXZhbGlkYXRpb25cbiAgICAgICAgICAgICAgICBpZiAoIV90aGlzLmlzUHJldmlldyAmJiByb3V0ZUluZm8uX19OX1NTRyAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICBmZXRjaE5leHREYXRhKE9iamVjdC5hc3NpZ24oe30sIGZldGNoTmV4dERhdGFQYXJhbXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQmFja2dyb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNpc3RDYWNoZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZsaWdodENhY2hlOiBiYWNrZ3JvdW5kQ2FjaGVcbiAgICAgICAgICAgICAgICAgICAgfSkpLmNhdGNoKCgpPT57fSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHByb3BzLnBhZ2VQcm9wcyA9IE9iamVjdC5hc3NpZ24oe30sIHByb3BzLnBhZ2VQcm9wcyk7XG4gICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0gcHJvcHM7XG4gICAgICAgICAgICAgICAgcm91dGVJbmZvLnJvdXRlID0gcm91dGU7XG4gICAgICAgICAgICAgICAgcm91dGVJbmZvLnF1ZXJ5ID0gcXVlcnk7XG4gICAgICAgICAgICAgICAgcm91dGVJbmZvLnJlc29sdmVkQXMgPSByZXNvbHZlZEFzO1xuICAgICAgICAgICAgICAgIF90aGlzLmNvbXBvbmVudHNbcm91dGVdID0gcm91dGVJbmZvO1xuICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5nZXRQcm9wZXJFcnJvcihlcnIpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkoKTtcbiAgICB9XG4gICAgc2V0KHN0YXRlLCBkYXRhLCByZXNldFNjcm9sbCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YihkYXRhLCB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ10uQ29tcG9uZW50LCByZXNldFNjcm9sbCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDYWxsYmFjayB0byBleGVjdXRlIGJlZm9yZSByZXBsYWNpbmcgcm91dGVyIHN0YXRlXG4gICAqIEBwYXJhbSBjYiBjYWxsYmFjayB0byBiZSBleGVjdXRlZFxuICAgKi8gYmVmb3JlUG9wU3RhdGUoY2IpIHtcbiAgICAgICAgdGhpcy5fYnBzID0gY2I7XG4gICAgfVxuICAgIG9ubHlBSGFzaENoYW5nZShhcykge1xuICAgICAgICBpZiAoIXRoaXMuYXNQYXRoKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IFtvbGRVcmxOb0hhc2gsIG9sZEhhc2hdID0gdGhpcy5hc1BhdGguc3BsaXQoJyMnKTtcbiAgICAgICAgY29uc3QgW25ld1VybE5vSGFzaCwgbmV3SGFzaF0gPSBhcy5zcGxpdCgnIycpO1xuICAgICAgICAvLyBNYWtlcyBzdXJlIHdlIHNjcm9sbCB0byB0aGUgcHJvdmlkZWQgaGFzaCBpZiB0aGUgdXJsL2hhc2ggYXJlIHRoZSBzYW1lXG4gICAgICAgIGlmIChuZXdIYXNoICYmIG9sZFVybE5vSGFzaCA9PT0gbmV3VXJsTm9IYXNoICYmIG9sZEhhc2ggPT09IG5ld0hhc2gpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSB1cmxzIGFyZSBjaGFuZ2UsIHRoZXJlJ3MgbW9yZSB0aGFuIGEgaGFzaCBjaGFuZ2VcbiAgICAgICAgaWYgKG9sZFVybE5vSGFzaCAhPT0gbmV3VXJsTm9IYXNoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIGhhc2ggaGFzIGNoYW5nZWQsIHRoZW4gaXQncyBhIGhhc2ggb25seSBjaGFuZ2UuXG4gICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgbmVjZXNzYXJ5IHRvIGhhbmRsZSBib3RoIHRoZSBlbnRlciBhbmRcbiAgICAgICAgLy8gbGVhdmUgaGFzaCA9PT0gJycgY2FzZXMuIFRoZSBpZGVudGl0eSBjYXNlIGZhbGxzIHRocm91Z2hcbiAgICAgICAgLy8gYW5kIGlzIHRyZWF0ZWQgYXMgYSBuZXh0IHJlbG9hZC5cbiAgICAgICAgcmV0dXJuIG9sZEhhc2ggIT09IG5ld0hhc2g7XG4gICAgfVxuICAgIHNjcm9sbFRvSGFzaChhcykge1xuICAgICAgICBjb25zdCBbLCBoYXNoID0gJyddID0gYXMuc3BsaXQoJyMnKTtcbiAgICAgICAgLy8gU2Nyb2xsIHRvIHRvcCBpZiB0aGUgaGFzaCBpcyBqdXN0IGAjYCB3aXRoIG5vIHZhbHVlIG9yIGAjdG9wYFxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgaWYgKGhhc2ggPT09ICcnIHx8IGhhc2ggPT09ICd0b3AnKSB7XG4gICAgICAgICAgICBoYW5kbGVTbW9vdGhTY3JvbGwoKCk9PndpbmRvdy5zY3JvbGxUbygwLCAwKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRGVjb2RlIGhhc2ggdG8gbWFrZSBub24tbGF0aW4gYW5jaG9yIHdvcmtzLlxuICAgICAgICBjb25zdCByYXdIYXNoID0gZGVjb2RlVVJJQ29tcG9uZW50KGhhc2gpO1xuICAgICAgICAvLyBGaXJzdCB3ZSBjaGVjayBpZiB0aGUgZWxlbWVudCBieSBpZCBpcyBmb3VuZFxuICAgICAgICBjb25zdCBpZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmF3SGFzaCk7XG4gICAgICAgIGlmIChpZEVsKSB7XG4gICAgICAgICAgICBoYW5kbGVTbW9vdGhTY3JvbGwoKCk9PmlkRWwuc2Nyb2xsSW50b1ZpZXcoKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlbGVtZW50IHdpdGggdGhlIGlkLCB3ZSBjaGVjayB0aGUgYG5hbWVgIHByb3BlcnR5XG4gICAgICAgIC8vIFRvIG1pcnJvciBicm93c2Vyc1xuICAgICAgICBjb25zdCBuYW1lRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShyYXdIYXNoKVswXTtcbiAgICAgICAgaWYgKG5hbWVFbCkge1xuICAgICAgICAgICAgaGFuZGxlU21vb3RoU2Nyb2xsKCgpPT5uYW1lRWwuc2Nyb2xsSW50b1ZpZXcoKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdXJsSXNOZXcoYXNQYXRoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFzUGF0aCAhPT0gYXNQYXRoO1xuICAgIH1cbiAgICAvKipcbiAgICogUHJlZmV0Y2ggcGFnZSBjb2RlLCB5b3UgbWF5IHdhaXQgZm9yIHRoZSBkYXRhIGR1cmluZyBwYWdlIHJlbmRlcmluZy5cbiAgICogVGhpcyBmZWF0dXJlIG9ubHkgd29ya3MgaW4gcHJvZHVjdGlvbiFcbiAgICogQHBhcmFtIHVybCB0aGUgaHJlZiBvZiBwcmVmZXRjaGVkIHBhZ2VcbiAgICogQHBhcmFtIGFzUGF0aCB0aGUgYXMgcGF0aCBvZiB0aGUgcHJlZmV0Y2hlZCBwYWdlXG4gICAqLyBwcmVmZXRjaCh1cmwsIGFzUGF0aCA9IHVybCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKigpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAoMCwgX2lzQm90KS5pc0JvdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkpIHtcbiAgICAgICAgICAgICAgICAvLyBObyBwcmVmZXRjaGVzIGZvciBib3RzIHRoYXQgcmVuZGVyIHRoZSBsaW5rIHNpbmNlIHRoZXkgYXJlIHR5cGljYWxseSBuYXZpZ2F0aW5nXG4gICAgICAgICAgICAgICAgLy8gbGlua3MgdmlhIHRoZSBlcXVpdmFsZW50IG9mIGEgaGFyZCBuYXZpZ2F0aW9uIGFuZCBoZW5jZSBuZXZlciB1dGlsaXplIHRoZXNlXG4gICAgICAgICAgICAgICAgLy8gcHJlZmV0Y2hlcy5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHVybCk7XG4gICAgICAgICAgICBsZXQgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gcGFyc2VkO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhdGhuYW1lLCBfdGhpcy5sb2NhbGVzKS5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXJzZWRBcy5wYXRobmFtZSwgX3RoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5sb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlIHx8IF90aGlzLmRlZmF1bHRMb2NhbGU7XG4gICAgICAgICAgICAgICAgICAgIGFzUGF0aCA9ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFnZXMgPSB5aWVsZCBfdGhpcy5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KCk7XG4gICAgICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzUGF0aDtcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSB8fCB1bmRlZmluZWQgOiBfdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhc1BhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJld3JpdGVzO1xuICAgICAgICAgICAgICAgICh7IF9fcmV3cml0ZXM6IHJld3JpdGVzICB9ID0geWllbGQgKDAsIF9yb3V0ZUxvYWRlcikuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXdyaXRlc1Jlc3VsdCA9ICgwLCBfcmVzb2x2ZVJld3JpdGVzKS5kZWZhdWx0KCgwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKCgwLCBfYWRkTG9jYWxlKS5hZGRMb2NhbGUoYXNQYXRoLCBfdGhpcy5sb2NhbGUpLCB0cnVlKSwgcGFnZXMsIHJld3JpdGVzLCBwYXJzZWQucXVlcnksIChwKT0+cmVzb2x2ZUR5bmFtaWNSb3V0ZShwLCBwYWdlcyksIF90aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5leHRlcm5hbERlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXNvbHZlZEFzID0gKDAsIF9yZW1vdmVMb2NhbGUpLnJlbW92ZUxvY2FsZSgoMCwgX3JlbW92ZUJhc2VQYXRoKS5yZW1vdmVCYXNlUGF0aChyZXdyaXRlc1Jlc3VsdC5hc1BhdGgpLCBfdGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5tYXRjaGVkUGFnZSAmJiByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBkaXJlY3RseSBtYXRjaGVzIGEgcGFnZSB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaHJlZiB0b1xuICAgICAgICAgICAgICAgICAgICAvLyBhbGxvdyB0aGUgY29ycmVjdCBwYWdlIGNodW5rIHRvIGJlIGxvYWRlZFxuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkLnBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHBhcnNlZC5wYXRobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHF1ZXJ5LCAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKCgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChwYXJzZWQucGF0aG5hbWUpKSgoMCwgX3BhcnNlUGF0aCkucGFyc2VQYXRoKGFzUGF0aCkucGF0aG5hbWUpIHx8IHt9KTtcbiAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX2Zvcm1hdFVybCkuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFByZWZldGNoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gZGV2ZWxvcG1lbnQgbW9kZSBiZWNhdXNlIGl0IHdvdWxkIHRyaWdnZXIgb24tZGVtYW5kLWVudHJpZXNcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX3JlbW92ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xuICAgICAgICAgICAgeWllbGQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgIF90aGlzLnBhZ2VMb2FkZXIuX2lzU3NnKHJvdXRlKS50aGVuKChpc1NzZyk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzU3NnID8gZmV0Y2hOZXh0RGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhSHJlZjogX3RoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogdXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzUGF0aDogcmVzb2x2ZWRBcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlcnZlclJlbmRlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUpTT046IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZsaWdodENhY2hlOiBfdGhpcy5zZGMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJzaXN0Q2FjaGU6ICFfdGhpcy5pc1ByZXZpZXcsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1ByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5zdGFibGVfc2tpcENsaWVudENhY2hlOiBvcHRpb25zLnVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSB8fCBvcHRpb25zLnByaW9yaXR5ICYmICEhcHJvY2Vzcy5lbnYuX19ORVhUX09QVElNSVNUSUNfQ0xJRU5UX0NBQ0hFXG4gICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oKCk9PmZhbHNlKSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIF90aGlzLnBhZ2VMb2FkZXJbb3B0aW9ucy5wcmlvcml0eSA/ICdsb2FkUGFnZScgOiAncHJlZmV0Y2gnXShyb3V0ZSksIFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0pKCk7XG4gICAgfVxuICAgIGZldGNoQ29tcG9uZW50KHJvdXRlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKigpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9IGdldENhbmNlbGxlZEhhbmRsZXIoe1xuICAgICAgICAgICAgICAgIHJvdXRlLFxuICAgICAgICAgICAgICAgIHJvdXRlcjogX3RoaXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZXN1bHQgPSB5aWVsZCBfdGhpcy5wYWdlTG9hZGVyLmxvYWRQYWdlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVDYW5jZWxsZWQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcG9uZW50UmVzdWx0O1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2FuY2VsbGVkKCk7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSgpO1xuICAgIH1cbiAgICBfZ2V0RGF0YShmbikge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNhbmNlbCA9ICgpPT57XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNsYyA9IGNhbmNlbDtcbiAgICAgICAgcmV0dXJuIGZuKCkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcignTG9hZGluZyBpbml0aWFsIHByb3BzIGNhbmNlbGxlZCcpO1xuICAgICAgICAgICAgICAgIGVyci5jYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2dldEZsaWdodERhdGEoZGF0YUhyZWYpIHtcbiAgICAgICAgLy8gRG8gbm90IGNhY2hlIFJTQyBmbGlnaHQgcmVzcG9uc2Ugc2luY2UgaXQncyBub3QgYSBzdGF0aWMgcmVzb3VyY2VcbiAgICAgICAgcmV0dXJuIGZldGNoTmV4dERhdGEoe1xuICAgICAgICAgICAgZGF0YUhyZWYsXG4gICAgICAgICAgICBpc1NlcnZlclJlbmRlcjogdHJ1ZSxcbiAgICAgICAgICAgIHBhcnNlSlNPTjogZmFsc2UsXG4gICAgICAgICAgICBpbmZsaWdodENhY2hlOiB0aGlzLnNkYyxcbiAgICAgICAgICAgIHBlcnNpc3RDYWNoZTogZmFsc2UsXG4gICAgICAgICAgICBpc1ByZWZldGNoOiBmYWxzZVxuICAgICAgICB9KS50aGVuKCh7IHRleHQgIH0pPT4oe1xuICAgICAgICAgICAgICAgIGRhdGE6IHRleHRcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgZ2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwgY3R4KSB7XG4gICAgICAgIGNvbnN0IHsgQ29tcG9uZW50OiBBcHAgIH0gPSB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ107XG4gICAgICAgIGNvbnN0IEFwcFRyZWUgPSB0aGlzLl93cmFwQXBwKEFwcCk7XG4gICAgICAgIGN0eC5BcHBUcmVlID0gQXBwVHJlZTtcbiAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMpLmxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCB7XG4gICAgICAgICAgICBBcHBUcmVlLFxuICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgcm91dGVyOiB0aGlzLFxuICAgICAgICAgICAgY3R4XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgcm91dGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLnJvdXRlO1xuICAgIH1cbiAgICBnZXQgcGF0aG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLnBhdGhuYW1lO1xuICAgIH1cbiAgICBnZXQgcXVlcnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLnF1ZXJ5O1xuICAgIH1cbiAgICBnZXQgYXNQYXRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5hc1BhdGg7XG4gICAgfVxuICAgIGdldCBsb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmxvY2FsZTtcbiAgICB9XG4gICAgZ2V0IGlzRmFsbGJhY2soKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmlzRmFsbGJhY2s7XG4gICAgfVxuICAgIGdldCBpc1ByZXZpZXcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmlzUHJldmlldztcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGF0aG5hbWUxLCBxdWVyeTEsIGFzMSwgeyBpbml0aWFsUHJvcHMgLCBwYWdlTG9hZGVyICwgQXBwICwgd3JhcEFwcCAsIENvbXBvbmVudCAsIGVyciAsIHN1YnNjcmlwdGlvbiAsIGlzRmFsbGJhY2sgLCBsb2NhbGUgLCBsb2NhbGVzICwgZGVmYXVsdExvY2FsZSAsIGRvbWFpbkxvY2FsZXMgLCBpc1ByZXZpZXcgIH0pe1xuICAgICAgICAvLyBTZXJ2ZXIgRGF0YSBDYWNoZVxuICAgICAgICB0aGlzLnNkYyA9IHt9O1xuICAgICAgICB0aGlzLmlzRmlyc3RQb3BTdGF0ZUV2ZW50ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fa2V5ID0gY3JlYXRlS2V5KCk7XG4gICAgICAgIHRoaXMub25Qb3BTdGF0ZSA9IChlKT0+e1xuICAgICAgICAgICAgY29uc3QgeyBpc0ZpcnN0UG9wU3RhdGVFdmVudCAgfSA9IHRoaXM7XG4gICAgICAgICAgICB0aGlzLmlzRmlyc3RQb3BTdGF0ZUV2ZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IGUuc3RhdGU7XG4gICAgICAgICAgICBpZiAoIXN0YXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gV2UgZ2V0IHN0YXRlIGFzIHVuZGVmaW5lZCBmb3IgdHdvIHJlYXNvbnMuXG4gICAgICAgICAgICAgICAgLy8gIDEuIFdpdGggb2xkZXIgc2FmYXJpICg8IDgpIGFuZCBvbGRlciBjaHJvbWUgKDwgMzQpXG4gICAgICAgICAgICAgICAgLy8gIDIuIFdoZW4gdGhlIFVSTCBjaGFuZ2VkIHdpdGggI1xuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gSW4gdGhlIGJvdGggY2FzZXMsIHdlIGRvbid0IG5lZWQgdG8gcHJvY2VlZCBhbmQgY2hhbmdlIHRoZSByb3V0ZS5cbiAgICAgICAgICAgICAgICAvLyAoYXMgaXQncyBhbHJlYWR5IGNoYW5nZWQpXG4gICAgICAgICAgICAgICAgLy8gQnV0IHdlIGNhbiBzaW1wbHkgcmVwbGFjZSB0aGUgc3RhdGUgd2l0aCB0aGUgbmV3IGNoYW5nZXMuXG4gICAgICAgICAgICAgICAgLy8gQWN0dWFsbHksIGZvciAoMSkgd2UgZG9uJ3QgbmVlZCB0byBub3RoaW5nLiBCdXQgaXQncyBoYXJkIHRvIGRldGVjdCB0aGF0IGV2ZW50LlxuICAgICAgICAgICAgICAgIC8vIFNvLCBkb2luZyB0aGUgZm9sbG93aW5nIGZvciAoMSkgZG9lcyBubyBoYXJtLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aG5hbWUgLCBxdWVyeSAgfSA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0ZSgncmVwbGFjZVN0YXRlJywgKDAsIF9mb3JtYXRVcmwpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6ICgwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKHBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgICAgICAgICB9KSwgKDAsIF91dGlscykuZ2V0VVJMKCkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIF9fTkEgaXMgdXNlZCB0byBpZGVudGlmeSBpZiB0aGUgaGlzdG9yeSBlbnRyeSBjYW4gYmUgaGFuZGxlZCBieSB0aGUgYXBwLXJvdXRlci5cbiAgICAgICAgICAgIGlmIChzdGF0ZS5fX05BKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc3RhdGUuX19OKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2FmYXJpIGZpcmVzIHBvcHN0YXRlZXZlbnQgd2hlbiByZW9wZW5pbmcgdGhlIGJyb3dzZXIuXG4gICAgICAgICAgICBpZiAoaXNGaXJzdFBvcFN0YXRlRXZlbnQgJiYgdGhpcy5sb2NhbGUgPT09IHN0YXRlLm9wdGlvbnMubG9jYWxlICYmIHN0YXRlLmFzID09PSB0aGlzLmFzUGF0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmb3JjZWRTY3JvbGw7XG4gICAgICAgICAgICBjb25zdCB7IHVybCAsIGFzICwgb3B0aW9ucyAsIGtleSAgfSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2tleSAhPT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5fa2V5LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IHNlbGYucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzdG9yZSBvbGQgc2Nyb2xsIHBvc2l0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZWRTY3JvbGwgPSBKU09OLnBhcnNlKHYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZWRTY3JvbGwgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fa2V5ID0ga2V5O1xuICAgICAgICAgICAgY29uc3QgeyBwYXRobmFtZSAgfSA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHJlLXJlbmRlciBvbiBpbml0aWFsIGxvYWQsXG4gICAgICAgICAgICAvLyBjYW4gYmUgY2F1c2VkIGJ5IG5hdmlnYXRpbmcgYmFjayBmcm9tIGFuIGV4dGVybmFsIHNpdGVcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU3NyICYmIGFzID09PSAoMCwgX2FkZEJhc2VQYXRoKS5hZGRCYXNlUGF0aCh0aGlzLmFzUGF0aCkgJiYgcGF0aG5hbWUgPT09ICgwLCBfYWRkQmFzZVBhdGgpLmFkZEJhc2VQYXRoKHRoaXMucGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlIGRvd25zdHJlYW0gYXBwbGljYXRpb24gcmV0dXJucyBmYWxzeSwgcmV0dXJuLlxuICAgICAgICAgICAgLy8gVGhleSB3aWxsIHRoZW4gYmUgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIHRoZSBldmVudC5cbiAgICAgICAgICAgIGlmICh0aGlzLl9icHMgJiYgIXRoaXMuX2JwcyhzdGF0ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNoYW5nZSgncmVwbGFjZVN0YXRlJywgdXJsLCBhcywgT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucywge1xuICAgICAgICAgICAgICAgIHNoYWxsb3c6IG9wdGlvbnMuc2hhbGxvdyAmJiB0aGlzLl9zaGFsbG93LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgaW50ZXJuYWwgdmFsdWUgbm90IGV4cG9zZWQgb24gdHlwZXNcbiAgICAgICAgICAgICAgICBfaDogMFxuICAgICAgICAgICAgfSksIGZvcmNlZFNjcm9sbCk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgY29tcG9uZW50IGtleVxuICAgICAgICBjb25zdCByb3V0ZSA9ICgwLCBfcmVtb3ZlVHJhaWxpbmdTbGFzaCkucmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZTEpO1xuICAgICAgICAvLyBzZXQgdXAgdGhlIGNvbXBvbmVudCBjYWNoZSAoYnkgcm91dGUga2V5cylcbiAgICAgICAgdGhpcy5jb21wb25lbnRzID0ge307XG4gICAgICAgIC8vIFdlIHNob3VsZCBub3Qga2VlcCB0aGUgY2FjaGUsIGlmIHRoZXJlJ3MgYW4gZXJyb3JcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGNhdXNlIGlzc3VlcyB3aGVuIHdoZW4gZ29pbmcgYmFjayBhbmRcbiAgICAgICAgLy8gY29tZSBhZ2FpbiB0byB0aGUgZXJyb3JlZCBwYWdlLlxuICAgICAgICBpZiAocGF0aG5hbWUxICE9PSAnL19lcnJvcicpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1tyb3V0ZV0gPSB7XG4gICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGluaXRpYWw6IHRydWUsXG4gICAgICAgICAgICAgICAgcHJvcHM6IGluaXRpYWxQcm9wcyxcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgX19OX1NTRzogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NHLFxuICAgICAgICAgICAgICAgIF9fTl9TU1A6IGluaXRpYWxQcm9wcyAmJiBpbml0aWFsUHJvcHMuX19OX1NTUFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ10gPSB7XG4gICAgICAgICAgICBDb21wb25lbnQ6IEFwcCxcbiAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXVxuICAgICAgICB9O1xuICAgICAgICAvLyBCYWNrd2FyZHMgY29tcGF0IGZvciBSb3V0ZXIucm91dGVyLmV2ZW50c1xuICAgICAgICAvLyBUT0RPOiBTaG91bGQgYmUgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgbWFqb3IgdmVyc2lvbiBhcyBpdCB3YXMgbmV2ZXIgZG9jdW1lbnRlZFxuICAgICAgICB0aGlzLmV2ZW50cyA9IFJvdXRlci5ldmVudHM7XG4gICAgICAgIHRoaXMucGFnZUxvYWRlciA9IHBhZ2VMb2FkZXI7XG4gICAgICAgIC8vIGlmIGF1dG8gcHJlcmVuZGVyZWQgYW5kIGR5bmFtaWMgcm91dGUgd2FpdCB0byB1cGRhdGUgYXNQYXRoXG4gICAgICAgIC8vIHVudGlsIGFmdGVyIG1vdW50IHRvIHByZXZlbnQgaHlkcmF0aW9uIG1pc21hdGNoXG4gICAgICAgIGNvbnN0IGF1dG9FeHBvcnREeW5hbWljID0gKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHBhdGhuYW1lMSkgJiYgc2VsZi5fX05FWFRfREFUQV9fLmF1dG9FeHBvcnQ7XG4gICAgICAgIHRoaXMuYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuICAgICAgICB0aGlzLnN1YiA9IHN1YnNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICB0aGlzLl93cmFwQXBwID0gd3JhcEFwcDtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHRvIGlnbm9yZSBleHRyYSBwb3BTdGF0ZSBpbiBzYWZhcmkgb24gbmF2aWdhdGluZ1xuICAgICAgICAvLyBiYWNrIGZyb20gZXh0ZXJuYWwgc2l0ZVxuICAgICAgICB0aGlzLmlzU3NyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0xvY2FsZURvbWFpbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzUmVhZHkgPSAhIShzZWxmLl9fTkVYVF9EQVRBX18uZ3NzcCB8fCBzZWxmLl9fTkVYVF9EQVRBX18uZ2lwIHx8IHNlbGYuX19ORVhUX0RBVEFfXy5hcHBHaXAgJiYgIXNlbGYuX19ORVhUX0RBVEFfXy5nc3AgfHwgIWF1dG9FeHBvcnREeW5hbWljICYmICFzZWxmLmxvY2F0aW9uLnNlYXJjaCAmJiAhcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZXMgPSBsb2NhbGVzO1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgICAgIHRoaXMuZG9tYWluTG9jYWxlcyA9IGRvbWFpbkxvY2FsZXM7XG4gICAgICAgICAgICB0aGlzLmlzTG9jYWxlRG9tYWluID0gISEoMCwgX2RldGVjdERvbWFpbkxvY2FsZSkuZGV0ZWN0RG9tYWluTG9jYWxlKGRvbWFpbkxvY2FsZXMsIHNlbGYubG9jYXRpb24uaG9zdG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICByb3V0ZSxcbiAgICAgICAgICAgIHBhdGhuYW1lOiBwYXRobmFtZTEsXG4gICAgICAgICAgICBxdWVyeTogcXVlcnkxLFxuICAgICAgICAgICAgYXNQYXRoOiBhdXRvRXhwb3J0RHluYW1pYyA/IHBhdGhuYW1lMSA6IGFzMSxcbiAgICAgICAgICAgIGlzUHJldmlldzogISFpc1ByZXZpZXcsXG4gICAgICAgICAgICBsb2NhbGU6IHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQgPyBsb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBcImFzXCIgZG9lc24ndCBzdGFydCB3aXRoIGRvdWJsZSBzbGFzaGVzIG9yIGVsc2UgaXQgY2FuXG4gICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciBhcyBpdCdzIGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgICAgICAgaWYgKCFhczEuc3RhcnRzV2l0aCgnLy8nKSkge1xuICAgICAgICAgICAgICAgIC8vIGluIG9yZGVyIGZvciBgZS5zdGF0ZWAgdG8gd29yayBvbiB0aGUgYG9ucG9wc3RhdGVgIGV2ZW50XG4gICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byByZWdpc3RlciB0aGUgaW5pdGlhbCByb3V0ZSB1cG9uIGluaXRpYWxpemF0aW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBhc1BhdGggPSAoMCwgX3V0aWxzKS5nZXRVUkwoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVQcm9taXNlID0gbWF0Y2hlc01pZGRsZXdhcmUoe1xuICAgICAgICAgICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoXG4gICAgICAgICAgICAgICAgfSkudGhlbigobWF0Y2hlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5fc2hvdWxkUmVzb2x2ZUhyZWYgPSBhczEgIT09IHBhdGhuYW1lMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0ZSgncmVwbGFjZVN0YXRlJywgbWF0Y2hlcyA/IGFzUGF0aCA6ICgwLCBfZm9ybWF0VXJsKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogKDAsIF9hZGRCYXNlUGF0aCkuYWRkQmFzZVBhdGgocGF0aG5hbWUxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeTFcbiAgICAgICAgICAgICAgICAgICAgfSksIGFzUGF0aCwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGVzO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5vblBvcFN0YXRlKTtcbiAgICAgICAgICAgIC8vIGVuYWJsZSBjdXN0b20gc2Nyb2xsIHJlc3RvcmF0aW9uIGhhbmRsaW5nIHdoZW4gYXZhaWxhYmxlXG4gICAgICAgICAgICAvLyBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYnJvd3NlcidzIGRlZmF1bHQgaGFuZGxpbmdcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ21hbnVhbCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuUm91dGVyLmV2ZW50cyA9ICgwLCBfbWl0dCkuZGVmYXVsdCgpO1xuZXhwb3J0cy5kZWZhdWx0ID0gUm91dGVyO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibWF0Y2hlc01pZGRsZXdhcmUiLCJpc0xvY2FsVVJMIiwiaW50ZXJwb2xhdGVBcyIsInJlc29sdmVIcmVmIiwiY3JlYXRlS2V5IiwiZGVmYXVsdCIsIl9hc3luY190b19nZW5lcmF0b3IiLCJyZXF1aXJlIiwiX2V4dGVuZHMiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJfcmVtb3ZlVHJhaWxpbmdTbGFzaCIsIl9yb3V0ZUxvYWRlciIsIl9zY3JpcHQiLCJfaXNFcnJvciIsIl9kZW5vcm1hbGl6ZVBhZ2VQYXRoIiwiX25vcm1hbGl6ZUxvY2FsZVBhdGgiLCJfbWl0dCIsIl91dGlscyIsIl9pc0R5bmFtaWMiLCJfcGFyc2VSZWxhdGl2ZVVybCIsIl9xdWVyeXN0cmluZyIsIl9yZXNvbHZlUmV3cml0ZXMiLCJfcm91dGVNYXRjaGVyIiwiX3JvdXRlUmVnZXgiLCJfZm9ybWF0VXJsIiwiX2RldGVjdERvbWFpbkxvY2FsZSIsIl9wYXJzZVBhdGgiLCJfYWRkTG9jYWxlIiwiX3JlbW92ZUxvY2FsZSIsIl9yZW1vdmVCYXNlUGF0aCIsIl9hZGRCYXNlUGF0aCIsIl9oYXNCYXNlUGF0aCIsIl9nZXROZXh0UGF0aG5hbWVJbmZvIiwiX2Zvcm1hdE5leHRQYXRobmFtZUluZm8iLCJfY29tcGFyZVN0YXRlcyIsIl9pc0JvdCIsImJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IiLCJhc3NpZ24iLCJFcnJvciIsImNhbmNlbGxlZCIsIm9wdGlvbnMiLCJfbWF0Y2hlc01pZGRsZXdhcmUiLCJhcHBseSIsImFyZ3VtZW50cyIsIm1hdGNoZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyb3V0ZXIiLCJwYWdlTG9hZGVyIiwiZ2V0TWlkZGxld2FyZSIsInBhdGhuYW1lIiwiYXNQYXRobmFtZSIsInBhcnNlUGF0aCIsImFzUGF0aCIsImNsZWFuZWRBcyIsImhhc0Jhc2VQYXRoIiwicmVtb3ZlQmFzZVBhdGgiLCJhc1dpdGhCYXNlUGF0aEFuZExvY2FsZSIsImFkZEJhc2VQYXRoIiwiYWRkTG9jYWxlIiwibG9jYWxlIiwic29tZSIsIm0iLCJSZWdFeHAiLCJyZWdleHAiLCJ0ZXN0Iiwic3RyaXBPcmlnaW4iLCJ1cmwiLCJvcmlnaW4iLCJnZXRMb2NhdGlvbk9yaWdpbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJvbWl0Iiwib2JqZWN0Iiwia2V5cyIsIm9taXR0ZWQiLCJmb3JFYWNoIiwia2V5IiwiaW5jbHVkZXMiLCJpc0Fic29sdXRlVXJsIiwibG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZCIsIlVSTCIsIl8iLCJyb3V0ZSIsInF1ZXJ5IiwiaW50ZXJwb2xhdGVkUm91dGUiLCJkeW5hbWljUmVnZXgiLCJnZXRSb3V0ZVJlZ2V4IiwiZHluYW1pY0dyb3VwcyIsImdyb3VwcyIsImR5bmFtaWNNYXRjaGVzIiwiZ2V0Um91dGVNYXRjaGVyIiwicGFyYW1zIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiLCJocmVmIiwicmVzb2x2ZUFzIiwiYmFzZSIsInVybEFzU3RyaW5nIiwiZm9ybWF0V2l0aFZhbGlkYXRpb24iLCJ1cmxQcm90b01hdGNoIiwibWF0Y2giLCJ1cmxBc1N0cmluZ05vUHJvdG8iLCJzbGljZSIsInVybFBhcnRzIiwic3BsaXQiLCJjb25zb2xlIiwiZXJyb3IiLCJub3JtYWxpemVkVXJsIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwiZmluYWxVcmwiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsImludGVycG9sYXRlZEFzIiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwiaGFzaCIsInJlc29sdmVkSHJlZiIsIl8xIiwicHJlcGFyZVVybEFzIiwiYXMiLCJyZXNvbHZlZEFzIiwiaHJlZkhhZE9yaWdpbiIsImFzSGFkT3JpZ2luIiwicHJlcGFyZWRVcmwiLCJwcmVwYXJlZEFzIiwicmVzb2x2ZUR5bmFtaWNSb3V0ZSIsInBhZ2VzIiwiY2xlYW5QYXRobmFtZSIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwicGFnZSIsInJlIiwiZ2V0TWlkZGxld2FyZURhdGEiLCJzb3VyY2UiLCJyZXNwb25zZSIsIm5leHRDb25maWciLCJiYXNlUGF0aCIsImkxOG4iLCJsb2NhbGVzIiwidHJhaWxpbmdTbGFzaCIsIkJvb2xlYW4iLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1RSQUlMSU5HX1NMQVNIIiwicmV3cml0ZUhlYWRlciIsImhlYWRlcnMiLCJnZXQiLCJyZXdyaXRlVGFyZ2V0IiwibWF0Y2hlZFBhdGgiLCJwYXJzZWRSZXdyaXRlVGFyZ2V0IiwicGFyc2VSZWxhdGl2ZVVybCIsInBhdGhuYW1lSW5mbyIsImdldE5leHRQYXRobmFtZUluZm8iLCJwYXJzZURhdGEiLCJmc1BhdGhuYW1lIiwiYWxsIiwiZ2V0UGFnZUxpc3QiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwidGhlbiIsIl9fcmV3cml0ZXMiLCJyZXdyaXRlcyIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJwYXJzZWRTb3VyY2UiLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwicGF0aCIsIm1hdGNoZWRQYWdlIiwicGFyc2VkQXMiLCJyZXNvbHZlZFBhdGhuYW1lIiwibWF0Y2hlcyIsInR5cGUiLCJzcmMiLCJmb3JtYXROZXh0UGF0aG5hbWVJbmZvIiwiZGVmYXVsdExvY2FsZSIsImJ1aWxkSWQiLCJkZXN0aW5hdGlvbiIsInJlZGlyZWN0VGFyZ2V0IiwibmV3QXMiLCJuZXdVcmwiLCJ3aXRoTWlkZGxld2FyZUVmZmVjdHMiLCJmZXRjaERhdGEiLCJkYXRhIiwiZGF0YUhyZWYiLCJlZmZlY3QiLCJjYWNoZUtleSIsImpzb24iLCJ0ZXh0IiwiY2F0Y2giLCJfZXJyIiwibWFudWFsU2Nyb2xsUmVzdG9yYXRpb24iLCJfX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OIiwid2luZG93IiwiaGlzdG9yeSIsInYiLCJzZXNzaW9uU3RvcmFnZSIsInNldEl0ZW0iLCJyZW1vdmVJdGVtIiwibiIsIlNTR19EQVRBX05PVF9GT1VORCIsIlN5bWJvbCIsImZldGNoUmV0cnkiLCJhdHRlbXB0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJvayIsInN0YXR1cyIsImJhY2tncm91bmRDYWNoZSIsImhhbmRsZVNtb290aFNjcm9sbCIsImZuIiwiaHRtbEVsZW1lbnQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImV4aXN0aW5nIiwic3R5bGUiLCJzY3JvbGxCZWhhdmlvciIsInRyeVRvUGFyc2VBc0pTT04iLCJKU09OIiwicGFyc2UiLCJmZXRjaE5leHREYXRhIiwiaW5mbGlnaHRDYWNoZSIsImlzUHJlZmV0Y2giLCJoYXNNaWRkbGV3YXJlIiwiaXNTZXJ2ZXJSZW5kZXIiLCJwYXJzZUpTT04iLCJwZXJzaXN0Q2FjaGUiLCJpc0JhY2tncm91bmQiLCJ1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGUiLCJsb2NhdGlvbiIsInJlZjEiLCJnZXREYXRhIiwicHVycG9zZSIsInJlZiIsIm5vdEZvdW5kIiwibWFya0Fzc2V0RXJyb3IiLCJlcnIiLCJ1bmRlZmluZWQiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJoYW5kbGVIYXJkTmF2aWdhdGlvbiIsImdldENhbmNlbGxlZEhhbmRsZXIiLCJjYW5jZWwiLCJjbGMiLCJoYW5kbGVDYW5jZWxsZWQiLCJSb3V0ZXIiLCJyZWxvYWQiLCJiYWNrIiwicHVzaCIsIl9rZXkiLCJzdHJpbmdpZnkiLCJ4Iiwic2VsZiIsInBhZ2VYT2Zmc2V0IiwieSIsInBhZ2VZT2Zmc2V0IiwiZSIsImNoYW5nZSIsImZvcmNlZFNjcm9sbCIsIl90aGlzIiwiaXNRdWVyeVVwZGF0aW5nIiwiX2giLCJzaG91bGRSZXNvbHZlSHJlZiIsIl9zaG91bGRSZXNvbHZlSHJlZiIsIm5leHRTdGF0ZSIsInN0YXRlIiwicmVhZHlTdGF0ZUNoYW5nZSIsImlzUmVhZHkiLCJpc1NzciIsInByZXZMb2NhbGUiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibG9jYWxlUGF0aFJlc3VsdCIsImRldGVjdGVkTG9jYWxlIiwiZGlkTmF2aWdhdGUiLCJkZXRlY3RlZERvbWFpbiIsImRldGVjdERvbWFpbkxvY2FsZSIsImRvbWFpbkxvY2FsZXMiLCJpc0xvY2FsZURvbWFpbiIsImhvc3RuYW1lIiwiZG9tYWluIiwiYXNOb0Jhc2VQYXRoIiwiaHR0cCIsIlNUIiwicGVyZm9ybWFuY2UiLCJtYXJrIiwic2hhbGxvdyIsInNjcm9sbCIsInJvdXRlUHJvcHMiLCJfaW5GbGlnaHRSb3V0ZSIsImV2ZW50cyIsImVtaXQiLCJyZW1vdmVMb2NhbGUiLCJsb2NhbGVDaGFuZ2UiLCJvbmx5QUhhc2hDaGFuZ2UiLCJjaGFuZ2VTdGF0ZSIsInNjcm9sbFRvSGFzaCIsInNldCIsImNvbXBvbmVudHMiLCJwYXJzZWQiLCJ1cmxJc05ldyIsImlzTWlkZGxld2FyZU1hdGNoIiwicmV3cml0ZXNSZXN1bHQiLCJwIiwiZXh0ZXJuYWxEZXN0Iiwicm91dGVNYXRjaCIsInJvdXRlUmVnZXgiLCJzaG91bGRJbnRlcnBvbGF0ZSIsIm1pc3NpbmdQYXJhbXMiLCJmaWx0ZXIiLCJ3YXJuIiwicmVmMiIsInJlZjMiLCJyb3V0ZUluZm8iLCJnZXRSb3V0ZUluZm8iLCJpc1ByZXZpZXciLCJjbGVhbmVkUGFyc2VkUGF0aG5hbWUiLCJwcmVmaXhlZEFzIiwicmV3cml0ZUFzIiwibG9jYWxlUmVzdWx0IiwiY3VyUm91dGVNYXRjaCIsInByb3BzIiwiX19OX1NTRyIsIl9fTl9TU1AiLCJjb21wb25lbnQiLCJDb21wb25lbnQiLCJ1bnN0YWJsZV9zY3JpcHRMb2FkZXIiLCJzY3JpcHRzIiwiY29uY2F0Iiwic2NyaXB0IiwiaGFuZGxlQ2xpZW50U2NyaXB0TG9hZCIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJub3RGb3VuZFJvdXRlIiwiZmV0Y2hDb21wb25lbnQiLCJfX05FWFRfREFUQV9fIiwic3RhdHVzQ29kZSIsIl9yb3V0ZSIsImlzVmFsaWRTaGFsbG93Um91dGUiLCJfc2Nyb2xsIiwic2hvdWxkU2Nyb2xsIiwicmVzZXRTY3JvbGwiLCJ1cGNvbWluZ1JvdXRlclN0YXRlIiwiaXNGYWxsYmFjayIsInVwY29taW5nU2Nyb2xsU3RhdGUiLCJjYW5Ta2lwVXBkYXRpbmciLCJjb21wYXJlUm91dGVyU3RhdGVzIiwibGFuZyIsImhhc2hSZWdleCIsImVycjEiLCJnZXRVUkwiLCJfc2hhbGxvdyIsIl9fTiIsImhhbmRsZVJvdXRlSW5mb0Vycm9yIiwibG9hZEVycm9yRmFpbCIsImlzQXNzZXRFcnJvciIsInN0eWxlU2hlZXRzIiwiZ2V0SW5pdGlhbFByb3BzIiwiZ2lwRXJyIiwicm91dGVJbmZvRXJyIiwicmVxdWVzdGVkUm91dGUiLCJyZWY0IiwicmVmNSIsImV4aXN0aW5nSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsImZldGNoTmV4dERhdGFQYXJhbXMiLCJnZXREYXRhSHJlZiIsInNraXBJbnRlcnBvbGF0aW9uIiwic2RjIiwicmVzIiwibW9kIiwiaXNWYWxpZEVsZW1lbnRUeXBlIiwic2hvdWxkRmV0Y2hEYXRhIiwiX2dldERhdGEiLCJfY2FjaGVLZXkiLCJnZXRQcm9wZXJFcnJvciIsInN1YiIsImJlZm9yZVBvcFN0YXRlIiwiY2IiLCJfYnBzIiwib2xkVXJsTm9IYXNoIiwib2xkSGFzaCIsIm5ld1VybE5vSGFzaCIsIm5ld0hhc2giLCJzY3JvbGxUbyIsInJhd0hhc2giLCJkZWNvZGVVUklDb21wb25lbnQiLCJpZEVsIiwiZ2V0RWxlbWVudEJ5SWQiLCJzY3JvbGxJbnRvVmlldyIsIm5hbWVFbCIsImdldEVsZW1lbnRzQnlOYW1lIiwicHJlZmV0Y2giLCJpc0JvdCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsIl9pc1NzZyIsImlzU3NnIiwicHJpb3JpdHkiLCJfX05FWFRfT1BUSU1JU1RJQ19DTElFTlRfQ0FDSEUiLCJjb21wb25lbnRSZXN1bHQiLCJsb2FkUGFnZSIsIl9nZXRGbGlnaHREYXRhIiwiY3R4IiwiQXBwIiwiQXBwVHJlZSIsIl93cmFwQXBwIiwibG9hZEdldEluaXRpYWxQcm9wcyIsImNvbnN0cnVjdG9yIiwicGF0aG5hbWUxIiwicXVlcnkxIiwiYXMxIiwiaW5pdGlhbFByb3BzIiwid3JhcEFwcCIsInN1YnNjcmlwdGlvbiIsImlzRmlyc3RQb3BTdGF0ZUV2ZW50Iiwib25Qb3BTdGF0ZSIsIl9fTkEiLCJnZXRJdGVtIiwiZTEiLCJpbml0aWFsIiwiYXV0b0V4cG9ydER5bmFtaWMiLCJhdXRvRXhwb3J0IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsImdzc3AiLCJnaXAiLCJhcHBHaXAiLCJnc3AiLCJzZWFyY2giLCJfaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJzY3JvbGxSZXN0b3JhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/shared/lib/router/router.js\n");
|
|
243
|
+
|
|
244
|
+
/***/ }),
|
|
245
|
+
|
|
246
|
+
/***/ "./components/Footer.tsx":
|
|
247
|
+
/*!*******************************!*\
|
|
248
|
+
!*** ./components/Footer.tsx ***!
|
|
249
|
+
\*******************************/
|
|
250
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
251
|
+
|
|
252
|
+
"use strict";
|
|
253
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Footer)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\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 styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"styled-jsx/style\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction Footer() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"jsx-25e3d2792e893a1a\" + \" \" + \"footer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-25e3d2792e893a1a\" + \" \" + \"footer-content\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-25e3d2792e893a1a\" + \" \" + \"copyright\",\n children: [\n \"\\xa9 \",\n new Date().getFullYear(),\n \" Hello World Template. All rights reserved.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Footer.tsx\",\n lineNumber: 7,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Footer.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this),\n (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"25e3d2792e893a1a\",\n children: \".footer.jsx-25e3d2792e893a1a{background-color:#1f2937;color:#f9fafb;padding:2rem 0;margin-top:auto}.footer-content.jsx-25e3d2792e893a1a{max-width:1200px;margin:0 auto;padding:0 2rem;text-align:center}.copyright.jsx-25e3d2792e893a1a{margin:0;font-size:.9rem;color:#d1d5db}\"\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Footer.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL0Zvb3Rlci50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUEwQjtBQUVYLFNBQVNDLE1BQU0sR0FBRztJQUMvQixxQkFDRSw4REFBQ0MsUUFBTTtrREFBVyxRQUFROzswQkFDeEIsOERBQUNDLEtBQUc7MERBQVcsZ0JBQWdCOzBCQUM3Qiw0RUFBQ0MsR0FBQzs4REFBVyxXQUFXOzt3QkFBQyxPQUNoQjt3QkFBQyxJQUFJQyxJQUFJLEVBQUUsQ0FBQ0MsV0FBVyxFQUFFO3dCQUFDLDZDQUNuQzs7Ozs7O3dCQUFJOzs7OztvQkFDQTs7Ozs7Ozs7OztZQXVCQyxDQUNUO0FBQ0osQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4vY29tcG9uZW50cy9Gb290ZXIudHN4P2E3OWYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9vdGVyKCkge1xuICByZXR1cm4gKFxuICAgIDxmb290ZXIgY2xhc3NOYW1lPVwiZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3Rlci1jb250ZW50XCI+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cImNvcHlyaWdodFwiPlxuICAgICAgICAgICZjb3B5OyB7bmV3IERhdGUoKS5nZXRGdWxsWWVhcigpfSBIZWxsbyBXb3JsZCBUZW1wbGF0ZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgLmZvb3RlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFmMjkzNztcbiAgICAgICAgICBjb2xvcjogI2Y5ZmFmYjtcbiAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXItY29udGVudCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb3B5cmlnaHQge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgICBjb2xvcjogI2QxZDVkYjtcbiAgICAgICAgfVxuICAgICAgYH08L3N0eWxlPlxuICAgIDwvZm9vdGVyPlxuICApO1xufSJdLCJuYW1lcyI6WyJSZWFjdCIsIkZvb3RlciIsImZvb3RlciIsImRpdiIsInAiLCJEYXRlIiwiZ2V0RnVsbFllYXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./components/Footer.tsx\n");
|
|
254
|
+
|
|
255
|
+
/***/ }),
|
|
256
|
+
|
|
257
|
+
/***/ "./components/Header.tsx":
|
|
258
|
+
/*!*******************************!*\
|
|
259
|
+
!*** ./components/Header.tsx ***!
|
|
260
|
+
\*******************************/
|
|
261
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
262
|
+
|
|
263
|
+
"use strict";
|
|
264
|
+
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 */ \"react/jsx-dev-runtime\");\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 styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"styled-jsx/style\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nfunction Header({ currentPage }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"jsx-7e4c19f664052689\" + \" \" + \"header\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-7e4c19f664052689\" + \" \" + \"header-content\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"jsx-7e4c19f664052689\" + \" \" + \"site-title\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n className: \"jsx-7e4c19f664052689\",\n children: \"Hello World\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 14,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 13,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 12,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"jsx-7e4c19f664052689\" + \" \" + \"navigation\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"jsx-7e4c19f664052689\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"jsx-7e4c19f664052689\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n className: \"jsx-7e4c19f664052689\" + \" \" + ((currentPage === \"home\" ? \"active\" : \"\") || \"\"),\n children: \"Home\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 19,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 19,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"jsx-7e4c19f664052689\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/about\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n className: \"jsx-7e4c19f664052689\" + \" \" + ((currentPage === \"about\" ? \"active\" : \"\") || \"\"),\n children: \"About\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 20,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 20,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 20,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"jsx-7e4c19f664052689\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/toolkit-demo\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n className: \"jsx-7e4c19f664052689\" + \" \" + ((currentPage === \"toolkit\" ? \"active\" : \"\") || \"\"),\n children: \"Toolkit Demo\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 21,\n columnNumber: 44\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 21,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 21,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 18,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 17,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, this),\n (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"7e4c19f664052689\",\n children: '.header.jsx-7e4c19f664052689{background-color:#fff;-webkit-box-shadow:0 2px 10px rgba(0,0,0,.05);-moz-box-shadow:0 2px 10px rgba(0,0,0,.05);box-shadow:0 2px 10px rgba(0,0,0,.05);position:-webkit-sticky;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.05)}.header-content.jsx-7e4c19f664052689{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center}.site-title.jsx-7e4c19f664052689{margin:0;font-size:1.8rem;font-weight:800;color:#3b82f6}.navigation.jsx-7e4c19f664052689 ul.jsx-7e4c19f664052689{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;list-style:none;margin:0;padding:0;gap:2rem}.navigation.jsx-7e4c19f664052689 a.jsx-7e4c19f664052689{color:#4b5563;text-decoration:none;font-weight:500;-webkit-transition:all.3s cubic-bezier(.4,0,.2,1);-moz-transition:all.3s cubic-bezier(.4,0,.2,1);-o-transition:all.3s cubic-bezier(.4,0,.2,1);transition:all.3s cubic-bezier(.4,0,.2,1);position:relative;padding:.5rem 0}.navigation.jsx-7e4c19f664052689 a.jsx-7e4c19f664052689::after{content:\"\";position:absolute;bottom:0;left:0;width:0;height:2px;background:#3b82f6;-webkit-transition:width.3s ease;-moz-transition:width.3s ease;-o-transition:width.3s ease;transition:width.3s ease;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.navigation.jsx-7e4c19f664052689 a.jsx-7e4c19f664052689:hover{color:#1e1e1e}.navigation.jsx-7e4c19f664052689 a.jsx-7e4c19f664052689:hover::after{width:100%}.navigation.jsx-7e4c19f664052689 a.active.jsx-7e4c19f664052689{color:#1e1e1e;font-weight:600}.navigation.jsx-7e4c19f664052689 a.active.jsx-7e4c19f664052689::after{width:100%}@media(max-width:768px){.header-content.jsx-7e4c19f664052689{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1.25rem}.navigation.jsx-7e4c19f664052689 ul.jsx-7e4c19f664052689{gap:1.25rem}}'\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/components/Header.tsx\",\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL0hlYWRlci50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQTZCO0FBQ0g7QUFNWCxTQUFTRSxNQUFNLENBQUMsRUFBRUMsV0FBVyxHQUFlLEVBQUU7SUFDM0QscUJBQ0UsOERBQUNDLFFBQU07a0RBQVcsUUFBUTs7MEJBQ3hCLDhEQUFDQyxLQUFHOzBEQUFXLGdCQUFnQjs7a0NBQzdCLDhEQUFDQyxJQUFFO2tFQUFXLFlBQVk7a0NBQ3hCLDRFQUFDTixrREFBSTs0QkFBQ08sSUFBSSxFQUFDLEdBQUc7c0NBQ1osNEVBQUNDLEdBQUM7OzBDQUFDLGFBQVc7Ozs7O29DQUFJOzs7OztnQ0FDYjs7Ozs7NEJBQ0o7a0NBQ0wsOERBQUNDLEtBQUc7a0VBQVcsWUFBWTtrQ0FDekIsNEVBQUNDLElBQUU7Ozs4Q0FDRCw4REFBQ0MsSUFBRTs7OENBQUMsNEVBQUNYLGtEQUFJO3dDQUFDTyxJQUFJLEVBQUMsR0FBRztrREFBQyw0RUFBQ0MsR0FBQzt1RkFBWUwsQ0FBQUEsV0FBVyxLQUFLLE1BQU0sR0FBRyxRQUFRLEdBQUcsRUFBRTtzREFBRSxNQUFJOzs7OztnREFBSTs7Ozs7NENBQU87Ozs7O3dDQUFLOzhDQUM3Riw4REFBQ1EsSUFBRTs7OENBQUMsNEVBQUNYLGtEQUFJO3dDQUFDTyxJQUFJLEVBQUMsUUFBUTtrREFBQyw0RUFBQ0MsR0FBQzt1RkFBWUwsQ0FBQUEsV0FBVyxLQUFLLE9BQU8sR0FBRyxRQUFRLEdBQUcsRUFBRTtzREFBRSxPQUFLOzs7OztnREFBSTs7Ozs7NENBQU87Ozs7O3dDQUFLOzhDQUNwRyw4REFBQ1EsSUFBRTs7OENBQUMsNEVBQUNYLGtEQUFJO3dDQUFDTyxJQUFJLEVBQUMsZUFBZTtrREFBQyw0RUFBQ0MsR0FBQzt1RkFBWUwsQ0FBQUEsV0FBVyxLQUFLLFNBQVMsR0FBRyxRQUFRLEdBQUcsRUFBRTtzREFBRSxjQUFZOzs7OztnREFBSTs7Ozs7NENBQU87Ozs7O3dDQUFLOzs7Ozs7Z0NBQ2pIOzs7Ozs0QkFDRDs7Ozs7O29CQUNGOzs7Ozs7Ozs7O1lBdUZDLENBQ1Q7QUFDSixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGZlY29tbXVuaXR5L3JlYWN0cHJlc3MtdGVtcGxhdGUtaGVsbG8td29ybGQvLi9jb21wb25lbnRzL0hlYWRlci50c3g/MDM2OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW50ZXJmYWNlIEhlYWRlclByb3BzIHtcbiAgY3VycmVudFBhZ2U/OiAnaG9tZScgfCAnYWJvdXQnIHwgJ3Rvb2xraXQnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIZWFkZXIoeyBjdXJyZW50UGFnZSB9OiBIZWFkZXJQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwiaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci1jb250ZW50XCI+XG4gICAgICAgIDxoMSBjbGFzc05hbWU9XCJzaXRlLXRpdGxlXCI+XG4gICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cbiAgICAgICAgICAgIDxhPkhlbGxvIFdvcmxkPC9hPlxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgPC9oMT5cbiAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJuYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgPHVsPlxuICAgICAgICAgICAgPGxpPjxMaW5rIGhyZWY9XCIvXCI+PGEgY2xhc3NOYW1lPXtjdXJyZW50UGFnZSA9PT0gJ2hvbWUnID8gJ2FjdGl2ZScgOiAnJ30+SG9tZTwvYT48L0xpbms+PC9saT5cbiAgICAgICAgICAgIDxsaT48TGluayBocmVmPVwiL2Fib3V0XCI+PGEgY2xhc3NOYW1lPXtjdXJyZW50UGFnZSA9PT0gJ2Fib3V0JyA/ICdhY3RpdmUnIDogJyd9PkFib3V0PC9hPjwvTGluaz48L2xpPlxuICAgICAgICAgICAgPGxpPjxMaW5rIGhyZWY9XCIvdG9vbGtpdC1kZW1vXCI+PGEgY2xhc3NOYW1lPXtjdXJyZW50UGFnZSA9PT0gJ3Rvb2xraXQnID8gJ2FjdGl2ZScgOiAnJ30+VG9vbGtpdCBEZW1vPC9hPjwvTGluaz48L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXItY29udGVudCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuc2l0ZS10aXRsZSB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgICAgY29sb3I6ICMzYjgyZjY7XG4gICAgICAgIH1cblxuICAgICAgICAubmF2aWdhdGlvbiB1bCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGdhcDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXZpZ2F0aW9uIGEge1xuICAgICAgICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdmlnYXRpb24gYTo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2O1xuICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubmF2aWdhdGlvbiBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogIzFlMWUxZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXZpZ2F0aW9uIGE6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXZpZ2F0aW9uIGEuYWN0aXZlIHtcbiAgICAgICAgICBjb2xvcjogIzFlMWUxZTtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdmlnYXRpb24gYS5hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFJlc3BvbnNpdmUgRGVzaWduICovXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIC5oZWFkZXItY29udGVudCB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAxLjI1cmVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5uYXZpZ2F0aW9uIHVsIHtcbiAgICAgICAgICAgIGdhcDogMS4yNXJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2hlYWRlcj5cbiAgKTtcbn0iXSwibmFtZXMiOlsiTGluayIsIlJlYWN0IiwiSGVhZGVyIiwiY3VycmVudFBhZ2UiLCJoZWFkZXIiLCJkaXYiLCJoMSIsImhyZWYiLCJhIiwibmF2IiwidWwiLCJsaSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./components/Header.tsx\n");
|
|
265
|
+
|
|
266
|
+
/***/ }),
|
|
267
|
+
|
|
268
|
+
/***/ "./pages/404.tsx":
|
|
269
|
+
/*!***********************!*\
|
|
270
|
+
!*** ./pages/404.tsx ***!
|
|
271
|
+
\***********************/
|
|
9
272
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
10
273
|
|
|
11
|
-
|
|
12
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("meta", {
|
|
42
|
-
name: "description",
|
|
43
|
-
content: "Page not found",
|
|
44
|
-
className: "jsx-213d4d590f209d88"
|
|
45
|
-
}),
|
|
46
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("link", {
|
|
47
|
-
rel: "icon",
|
|
48
|
-
href: "/favicon.ico",
|
|
49
|
-
className: "jsx-213d4d590f209d88"
|
|
50
|
-
})
|
|
51
|
-
]
|
|
52
|
-
}),
|
|
53
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Header__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {}),
|
|
54
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("main", {
|
|
55
|
-
className: "jsx-213d4d590f209d88" + " " + "main",
|
|
56
|
-
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
|
57
|
-
className: "jsx-213d4d590f209d88" + " " + "content-wrapper",
|
|
58
|
-
children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
59
|
-
className: "jsx-213d4d590f209d88" + " " + "error-page",
|
|
60
|
-
children: [
|
|
61
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h1", {
|
|
62
|
-
className: "jsx-213d4d590f209d88" + " " + "error-code",
|
|
63
|
-
children: "404"
|
|
64
|
-
}),
|
|
65
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h2", {
|
|
66
|
-
className: "jsx-213d4d590f209d88" + " " + "error-title",
|
|
67
|
-
children: "Page Not Found"
|
|
68
|
-
}),
|
|
69
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("p", {
|
|
70
|
-
className: "jsx-213d4d590f209d88" + " " + "error-description",
|
|
71
|
-
children: "Sorry, the page you are looking for could not be found."
|
|
72
|
-
}),
|
|
73
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
|
74
|
-
className: "jsx-213d4d590f209d88" + " " + "cta-section",
|
|
75
|
-
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {
|
|
76
|
-
href: "/",
|
|
77
|
-
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
|
78
|
-
className: "jsx-213d4d590f209d88" + " " + "back-home-link",
|
|
79
|
-
children: "← Back to Home"
|
|
80
|
-
})
|
|
81
|
-
})
|
|
82
|
-
})
|
|
83
|
-
]
|
|
84
|
-
})
|
|
85
|
-
})
|
|
86
|
-
}),
|
|
87
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Footer__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {}),
|
|
88
|
-
react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {
|
|
89
|
-
id: "9829e00df037a848",
|
|
90
|
-
children: '.container.jsx-213d4d590f209d88{min-height:100vh;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:#f8f9fa}.main.jsx-213d4d590f209d88{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;padding:3rem 0}.content-wrapper.jsx-213d4d590f209d88{max-width:1200px;margin:0 auto;padding:0 2rem}.error-page.jsx-213d4d590f209d88{text-align:center;padding:4rem 0;max-width:600px;margin:0 auto}.error-code.jsx-213d4d590f209d88{font-size:6rem;font-weight:800;color:#3b82f6;margin:0 0 1rem 0;line-height:1}.error-title.jsx-213d4d590f209d88{font-size:2rem;font-weight:700;color:#111827;margin:0 0 1.5rem 0}.error-description.jsx-213d4d590f209d88{color:#6b7280;font-size:1.25rem;margin:0 0 2.5rem 0;line-height:1.7}.back-home-link.jsx-213d4d590f209d88{display:inline-block;color:#3b82f6;text-decoration:none;font-weight:600;padding:.875rem 1.75rem;border:2px solid#3b82f6;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;-webkit-transition:all.3s cubic-bezier(.4,0,.2,1);-moz-transition:all.3s cubic-bezier(.4,0,.2,1);-o-transition:all.3s cubic-bezier(.4,0,.2,1);transition:all.3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;background:transparent}.back-home-link.jsx-213d4d590f209d88::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:-webkit-linear-gradient(315deg,#3b82f6,#8b5cf6);background:-moz-linear-gradient(315deg,#3b82f6,#8b5cf6);background:-o-linear-gradient(315deg,#3b82f6,#8b5cf6);background:linear-gradient(135deg,#3b82f6,#8b5cf6);z-index:-1;opacity:0;-webkit-transition:opacity.3s ease;-moz-transition:opacity.3s ease;-o-transition:opacity.3s ease;transition:opacity.3s ease}.back-home-link.jsx-213d4d590f209d88:hover{color:#fff;-webkit-transform:translateY(-3px);-moz-transform:translateY(-3px);-ms-transform:translateY(-3px);-o-transform:translateY(-3px);transform:translateY(-3px);-webkit-box-shadow:0 6px 15px rgba(59,130,246,.3);-moz-box-shadow:0 6px 15px rgba(59,130,246,.3);box-shadow:0 6px 15px rgba(59,130,246,.3)}.back-home-link.jsx-213d4d590f209d88:hover::before{opacity:1}@media(max-width:768px){.error-code.jsx-213d4d590f209d88{font-size:4rem}.error-title.jsx-213d4d590f209d88{font-size:1.75rem}.error-description.jsx-213d4d590f209d88{font-size:1.1rem}}'
|
|
91
|
-
}),
|
|
92
|
-
react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {
|
|
93
|
-
id: "a48b555c08a5e98b",
|
|
94
|
-
children: 'html,body{padding:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;background-color:#f8f9fa}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}'
|
|
95
|
-
})
|
|
96
|
-
]
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
/***/ }),
|
|
102
|
-
|
|
103
|
-
/***/ 3280:
|
|
274
|
+
"use strict";
|
|
275
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Custom404)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\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 styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"styled-jsx/style\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/head */ \"next/head\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/link */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _components_Header__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Header */ \"./components/Header.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Footer */ \"./components/Footer.tsx\");\n\n\n\n\n\n\nfunction Custom404() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"container\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_2___default()), {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"title\", {\n className: \"jsx-213d4d590f209d88\",\n children: \"404 - Page Not Found\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 10,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"meta\", {\n name: \"description\",\n content: \"Page not found\",\n className: \"jsx-213d4d590f209d88\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 11,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"link\", {\n rel: \"icon\",\n href: \"/favicon.ico\",\n className: \"jsx-213d4d590f209d88\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 12,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 9,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Header__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 15,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"main\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"content-wrapper\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"error-page\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"error-code\",\n children: \"404\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 20,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"error-title\",\n children: \"Page Not Found\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 21,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"error-description\",\n children: \"Sorry, the page you are looking for could not be found.\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 22,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"cta-section\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n className: \"jsx-213d4d590f209d88\" + \" \" + \"back-home-link\",\n children: \"← Back to Home\"\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 27,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 26,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 25,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 19,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 17,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 34,\n columnNumber: 7\n }, this),\n (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"9829e00df037a848\",\n children: '.container.jsx-213d4d590f209d88{min-height:100vh;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:#f8f9fa}.main.jsx-213d4d590f209d88{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;padding:3rem 0}.content-wrapper.jsx-213d4d590f209d88{max-width:1200px;margin:0 auto;padding:0 2rem}.error-page.jsx-213d4d590f209d88{text-align:center;padding:4rem 0;max-width:600px;margin:0 auto}.error-code.jsx-213d4d590f209d88{font-size:6rem;font-weight:800;color:#3b82f6;margin:0 0 1rem 0;line-height:1}.error-title.jsx-213d4d590f209d88{font-size:2rem;font-weight:700;color:#111827;margin:0 0 1.5rem 0}.error-description.jsx-213d4d590f209d88{color:#6b7280;font-size:1.25rem;margin:0 0 2.5rem 0;line-height:1.7}.back-home-link.jsx-213d4d590f209d88{display:inline-block;color:#3b82f6;text-decoration:none;font-weight:600;padding:.875rem 1.75rem;border:2px solid#3b82f6;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;-webkit-transition:all.3s cubic-bezier(.4,0,.2,1);-moz-transition:all.3s cubic-bezier(.4,0,.2,1);-o-transition:all.3s cubic-bezier(.4,0,.2,1);transition:all.3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;background:transparent}.back-home-link.jsx-213d4d590f209d88::before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:-webkit-linear-gradient(315deg,#3b82f6,#8b5cf6);background:-moz-linear-gradient(315deg,#3b82f6,#8b5cf6);background:-o-linear-gradient(315deg,#3b82f6,#8b5cf6);background:linear-gradient(135deg,#3b82f6,#8b5cf6);z-index:-1;opacity:0;-webkit-transition:opacity.3s ease;-moz-transition:opacity.3s ease;-o-transition:opacity.3s ease;transition:opacity.3s ease}.back-home-link.jsx-213d4d590f209d88:hover{color:#fff;-webkit-transform:translateY(-3px);-moz-transform:translateY(-3px);-ms-transform:translateY(-3px);-o-transform:translateY(-3px);transform:translateY(-3px);-webkit-box-shadow:0 6px 15px rgba(59,130,246,.3);-moz-box-shadow:0 6px 15px rgba(59,130,246,.3);box-shadow:0 6px 15px rgba(59,130,246,.3)}.back-home-link.jsx-213d4d590f209d88:hover::before{opacity:1}@media(max-width:768px){.error-code.jsx-213d4d590f209d88{font-size:4rem}.error-title.jsx-213d4d590f209d88{font-size:1.75rem}.error-description.jsx-213d4d590f209d88{font-size:1.1rem}}'\n }, void 0, false, void 0, this),\n (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"a48b555c08a5e98b\",\n children: 'html,body{padding:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"Open Sans\",\"Helvetica Neue\",sans-serif;background-color:#f8f9fa}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}'\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/xiu/Documents/my-code/gaoredu-blog/easy-blog-publish/templates/hello-world/pages/404.tsx\",\n lineNumber: 8,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy80MDQudHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQTZCO0FBQ0E7QUFDYTtBQUNBO0FBRTNCLFNBQVNJLFNBQVMsR0FBRztJQUNsQyxxQkFDRSw4REFBQ0MsS0FBRztrREFBVyxXQUFXOzswQkFDeEIsOERBQUNMLGtEQUFJOztrQ0FDSCw4REFBQ00sT0FBSzs7a0NBQUMsc0JBQW9COzs7Ozs0QkFBUTtrQ0FDbkMsOERBQUNDLE1BQUk7d0JBQUNDLElBQUksRUFBQyxhQUFhO3dCQUFDQyxPQUFPLEVBQUMsZ0JBQWdCOzs7Ozs7NEJBQUc7a0NBQ3BELDhEQUFDQyxNQUFJO3dCQUFDQyxHQUFHLEVBQUMsTUFBTTt3QkFBQ0MsSUFBSSxFQUFDLGNBQWM7Ozs7Ozs0QkFBRzs7Ozs7O29CQUNsQzswQkFFUCw4REFBQ1YsMERBQU07Ozs7b0JBQUc7MEJBRVYsOERBQUNXLE1BQUk7MERBQVcsTUFBTTswQkFDcEIsNEVBQUNSLEtBQUc7OERBQVcsaUJBQWlCOzhCQUM5Qiw0RUFBQ0EsS0FBRztrRUFBVyxZQUFZOzswQ0FDekIsOERBQUNTLElBQUU7MEVBQVcsWUFBWTswQ0FBQyxLQUFHOzs7OztvQ0FBSzswQ0FDbkMsOERBQUNDLElBQUU7MEVBQVcsYUFBYTswQ0FBQyxnQkFBYzs7Ozs7b0NBQUs7MENBQy9DLDhEQUFDQyxHQUFDOzBFQUFXLG1CQUFtQjswQ0FBQyx5REFFakM7Ozs7O29DQUFJOzBDQUNKLDhEQUFDWCxLQUFHOzBFQUFXLGFBQWE7MENBQzFCLDRFQUFDSixrREFBSTtvQ0FBQ1csSUFBSSxFQUFDLEdBQUc7OENBQ1osNEVBQUNLLEdBQUM7a0ZBQVcsZ0JBQWdCO2tEQUFDLGdCQUFjOzs7Ozs0Q0FBSTs7Ozs7d0NBQzNDOzs7OztvQ0FDSDs7Ozs7OzRCQUNGOzs7Ozt3QkFDRjs7Ozs7b0JBQ0Q7MEJBRVAsOERBQUNkLDBEQUFNOzs7O29CQUFHOzs7Ozs7Ozs7Ozs7OztZQW9ITixDQUNOO0FBQ0osQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BmZWNvbW11bml0eS9yZWFjdHByZXNzLXRlbXBsYXRlLWhlbGxvLXdvcmxkLy4vcGFnZXMvNDA0LnRzeD9jYTY3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIZWFkIGZyb20gJ25leHQvaGVhZCc7XG5pbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnO1xuaW1wb3J0IEhlYWRlciBmcm9tICcuLi9jb21wb25lbnRzL0hlYWRlcic7XG5pbXBvcnQgRm9vdGVyIGZyb20gJy4uL2NvbXBvbmVudHMvRm9vdGVyJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ3VzdG9tNDA0KCkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XG4gICAgICA8SGVhZD5cbiAgICAgICAgPHRpdGxlPjQwNCAtIFBhZ2UgTm90IEZvdW5kPC90aXRsZT5cbiAgICAgICAgPG1ldGEgbmFtZT1cImRlc2NyaXB0aW9uXCIgY29udGVudD1cIlBhZ2Ugbm90IGZvdW5kXCIgLz5cbiAgICAgICAgPGxpbmsgcmVsPVwiaWNvblwiIGhyZWY9XCIvZmF2aWNvbi5pY29cIiAvPlxuICAgICAgPC9IZWFkPlxuXG4gICAgICA8SGVhZGVyIC8+XG5cbiAgICAgIDxtYWluIGNsYXNzTmFtZT1cIm1haW5cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVycm9yLXBhZ2VcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJlcnJvci1jb2RlXCI+NDA0PC9oMT5cbiAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJlcnJvci10aXRsZVwiPlBhZ2UgTm90IEZvdW5kPC9oMj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImVycm9yLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIFNvcnJ5LCB0aGUgcGFnZSB5b3UgYXJlIGxvb2tpbmcgZm9yIGNvdWxkIG5vdCBiZSBmb3VuZC5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3RhLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJiYWNrLWhvbWUtbGlua1wiPuKGkCBCYWNrIHRvIEhvbWU8L2E+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWFpbj5cblxuICAgICAgPEZvb3RlciAvPlxuXG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1haW4ge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgcGFkZGluZzogM3JlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmVycm9yLXBhZ2Uge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiA0cmVtIDA7XG4gICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5lcnJvci1jb2RlIHtcbiAgICAgICAgICBmb250LXNpemU6IDZyZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgICBjb2xvcjogIzNiODJmNjtcbiAgICAgICAgICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZXJyb3ItdGl0bGUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIGNvbG9yOiAjMTExODI3O1xuICAgICAgICAgIG1hcmdpbjogMCAwIDEuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmVycm9yLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICBjb2xvcjogIzZiNzI4MDtcbiAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMi41cmVtIDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICAgICAgfVxuXG4gICAgICAgIC5iYWNrLWhvbWUtbGluayB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGNvbG9yOiAjM2I4MmY2O1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgIHBhZGRpbmc6IDAuODc1cmVtIDEuNzVyZW07XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzNiODJmNjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYmFjay1ob21lLWxpbms6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjM2I4MmY2LCAjOGI1Y2Y2KTtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJhY2staG9tZS1saW5rOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCA2cHggMTVweCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5iYWNrLWhvbWUtbGluazpob3Zlcjo6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogUmVzcG9uc2l2ZSBEZXNpZ24gKi9cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgLmVycm9yLWNvZGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5lcnJvci10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmVycm9yLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH08L3N0eWxlPlxuXG4gICAgICA8c3R5bGUganN4IGdsb2JhbD57YFxuICAgICAgICBodG1sLFxuICAgICAgICBib2R5IHtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gICAgICAgIH1cblxuICAgICAgICAqIHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59Il0sIm5hbWVzIjpbIkhlYWQiLCJMaW5rIiwiSGVhZGVyIiwiRm9vdGVyIiwiQ3VzdG9tNDA0IiwiZGl2IiwidGl0bGUiLCJtZXRhIiwibmFtZSIsImNvbnRlbnQiLCJsaW5rIiwicmVsIiwiaHJlZiIsIm1haW4iLCJoMSIsImgyIiwicCIsImEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./pages/404.tsx\n");
|
|
276
|
+
|
|
277
|
+
/***/ }),
|
|
278
|
+
|
|
279
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/lib/is-error.js":
|
|
280
|
+
/*!**************************************************************************************************************************************************************!*\
|
|
281
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/lib/is-error.js ***!
|
|
282
|
+
\**************************************************************************************************************************************************************/
|
|
283
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
284
|
+
|
|
285
|
+
"use strict";
|
|
286
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nexports.getProperError = getProperError;\nvar _isPlainObject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"../shared/lib/is-plain-object\");\nfunction isError(err) {\n return typeof err === \"object\" && err !== null && \"name\" in err && \"message\" in err;\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === \"undefined\") {\n return new Error(\"An undefined error was thrown, \" + \"see here for more info: https://nextjs.org/docs/messages/threw-undefined\");\n }\n if (err === null) {\n return new Error(\"A null error was thrown, \" + \"see here for more info: https://nextjs.org/docs/messages/threw-undefined\");\n }\n }\n return new Error((0, _isPlainObject).isPlainObject(err) ? JSON.stringify(err) : err + \"\");\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZixzQkFBc0I7QUFDdEIscUJBQXFCLG1CQUFPLENBQUMsb0VBQStCO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGZlY29tbXVuaXR5L3JlYWN0cHJlc3MtdGVtcGxhdGUtaGVsbG8td29ybGQvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzPzU2OTYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpc0Vycm9yO1xuZXhwb3J0cy5nZXRQcm9wZXJFcnJvciA9IGdldFByb3BlckVycm9yO1xudmFyIF9pc1BsYWluT2JqZWN0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0XCIpO1xuZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gXCJvYmplY3RcIiAmJiBlcnIgIT09IG51bGwgJiYgXCJuYW1lXCIgaW4gZXJyICYmIFwibWVzc2FnZVwiIGluIGVycjtcbn1cbmZ1bmN0aW9uIGdldFByb3BlckVycm9yKGVycikge1xuICAgIGlmIChpc0Vycm9yKGVycikpIHtcbiAgICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgLy8gcHJvdmlkZSBiZXR0ZXIgZXJyb3IgZm9yIGNhc2Ugd2hlcmUgYHRocm93IHVuZGVmaW5lZGBcbiAgICAgICAgLy8gaXMgY2FsbGVkIGluIGRldmVsb3BtZW50XG4gICAgICAgIGlmICh0eXBlb2YgZXJyID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFwiQW4gdW5kZWZpbmVkIGVycm9yIHdhcyB0aHJvd24sIFwiICsgXCJzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVyciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcIkEgbnVsbCBlcnJvciB3YXMgdGhyb3duLCBcIiArIFwic2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgRXJyb3IoKDAsIF9pc1BsYWluT2JqZWN0KS5pc1BsYWluT2JqZWN0KGVycikgPyBKU09OLnN0cmluZ2lmeShlcnIpIDogZXJyICsgXCJcIik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/lib/is-error.js\n");
|
|
287
|
+
|
|
288
|
+
/***/ }),
|
|
289
|
+
|
|
290
|
+
/***/ "../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/link.js":
|
|
291
|
+
/*!*************************************************************************************************************************************************!*\
|
|
292
|
+
!*** ../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/link.js ***!
|
|
293
|
+
\*************************************************************************************************************************************************/
|
|
294
|
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
295
|
+
|
|
296
|
+
eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsdU5BQThDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGZlY29tbXVuaXR5L3JlYWN0cHJlc3MtdGVtcGxhdGUtaGVsbG8td29ybGQvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL25leHRAMTIuMy40X0BiYWJlbCtjb3JlQDcuMjUuMl9yZWFjdC1kb21AMTcuMC4yX3JlYWN0QDE3LjAuMl9fcmVhY3RAMTcuMC4yX3Nhc3NAMS43OS4zL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanM/ZDZjYSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGlzdC9jbGllbnQvbGluaycpXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/.pnpm/next@12.3.4_@babel+core@7.25.2_react-dom@17.0.2_react@17.0.2__react@17.0.2_sass@1.79.3/node_modules/next/link.js\n");
|
|
297
|
+
|
|
298
|
+
/***/ }),
|
|
299
|
+
|
|
300
|
+
/***/ "next/dist/compiled/react-is":
|
|
301
|
+
/*!**********************************************!*\
|
|
302
|
+
!*** external "next/dist/compiled/react-is" ***!
|
|
303
|
+
\**********************************************/
|
|
104
304
|
/***/ ((module) => {
|
|
105
305
|
|
|
306
|
+
"use strict";
|
|
307
|
+
module.exports = require("next/dist/compiled/react-is");
|
|
308
|
+
|
|
309
|
+
/***/ }),
|
|
310
|
+
|
|
311
|
+
/***/ "../shared/lib/app-router-context":
|
|
312
|
+
/*!*************************************************************!*\
|
|
313
|
+
!*** external "next/dist/shared/lib/app-router-context.js" ***!
|
|
314
|
+
\*************************************************************/
|
|
315
|
+
/***/ ((module) => {
|
|
316
|
+
|
|
317
|
+
"use strict";
|
|
106
318
|
module.exports = require("next/dist/shared/lib/app-router-context.js");
|
|
107
319
|
|
|
108
320
|
/***/ }),
|
|
109
321
|
|
|
110
|
-
/***/
|
|
322
|
+
/***/ "../shared/lib/head-manager-context":
|
|
323
|
+
/*!***************************************************************!*\
|
|
324
|
+
!*** external "next/dist/shared/lib/head-manager-context.js" ***!
|
|
325
|
+
\***************************************************************/
|
|
111
326
|
/***/ ((module) => {
|
|
112
327
|
|
|
328
|
+
"use strict";
|
|
113
329
|
module.exports = require("next/dist/shared/lib/head-manager-context.js");
|
|
114
330
|
|
|
115
331
|
/***/ }),
|
|
116
332
|
|
|
117
|
-
/***/
|
|
333
|
+
/***/ "../i18n/normalize-locale-path":
|
|
334
|
+
/*!*********************************************************************!*\
|
|
335
|
+
!*** external "next/dist/shared/lib/i18n/normalize-locale-path.js" ***!
|
|
336
|
+
\*********************************************************************/
|
|
118
337
|
/***/ ((module) => {
|
|
119
338
|
|
|
339
|
+
"use strict";
|
|
120
340
|
module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js");
|
|
121
341
|
|
|
122
342
|
/***/ }),
|
|
123
343
|
|
|
124
|
-
/***/
|
|
344
|
+
/***/ "../shared/lib/is-plain-object":
|
|
345
|
+
/*!**********************************************************!*\
|
|
346
|
+
!*** external "next/dist/shared/lib/is-plain-object.js" ***!
|
|
347
|
+
\**********************************************************/
|
|
125
348
|
/***/ ((module) => {
|
|
126
349
|
|
|
350
|
+
"use strict";
|
|
127
351
|
module.exports = require("next/dist/shared/lib/is-plain-object.js");
|
|
128
352
|
|
|
129
353
|
/***/ }),
|
|
130
354
|
|
|
131
|
-
/***/
|
|
355
|
+
/***/ "../mitt":
|
|
356
|
+
/*!***********************************************!*\
|
|
357
|
+
!*** external "next/dist/shared/lib/mitt.js" ***!
|
|
358
|
+
\***********************************************/
|
|
132
359
|
/***/ ((module) => {
|
|
133
360
|
|
|
361
|
+
"use strict";
|
|
134
362
|
module.exports = require("next/dist/shared/lib/mitt.js");
|
|
135
363
|
|
|
136
364
|
/***/ }),
|
|
137
365
|
|
|
138
|
-
/***/
|
|
366
|
+
/***/ "../page-path/denormalize-page-path":
|
|
367
|
+
/*!**************************************************************************!*\
|
|
368
|
+
!*** external "next/dist/shared/lib/page-path/denormalize-page-path.js" ***!
|
|
369
|
+
\**************************************************************************/
|
|
139
370
|
/***/ ((module) => {
|
|
140
371
|
|
|
372
|
+
"use strict";
|
|
141
373
|
module.exports = require("next/dist/shared/lib/page-path/denormalize-page-path.js");
|
|
142
374
|
|
|
143
375
|
/***/ }),
|
|
144
376
|
|
|
145
|
-
/***/
|
|
377
|
+
/***/ "../shared/lib/router-context":
|
|
378
|
+
/*!*********************************************************!*\
|
|
379
|
+
!*** external "next/dist/shared/lib/router-context.js" ***!
|
|
380
|
+
\*********************************************************/
|
|
146
381
|
/***/ ((module) => {
|
|
147
382
|
|
|
383
|
+
"use strict";
|
|
148
384
|
module.exports = require("next/dist/shared/lib/router-context.js");
|
|
149
385
|
|
|
150
386
|
/***/ }),
|
|
151
387
|
|
|
152
|
-
/***/
|
|
388
|
+
/***/ "../shared/lib/router/utils/add-path-prefix":
|
|
389
|
+
/*!***********************************************************************!*\
|
|
390
|
+
!*** external "next/dist/shared/lib/router/utils/add-path-prefix.js" ***!
|
|
391
|
+
\***********************************************************************/
|
|
153
392
|
/***/ ((module) => {
|
|
154
393
|
|
|
394
|
+
"use strict";
|
|
155
395
|
module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix.js");
|
|
156
396
|
|
|
157
397
|
/***/ }),
|
|
158
398
|
|
|
159
|
-
/***/
|
|
399
|
+
/***/ "./utils/compare-states":
|
|
400
|
+
/*!**********************************************************************!*\
|
|
401
|
+
!*** external "next/dist/shared/lib/router/utils/compare-states.js" ***!
|
|
402
|
+
\**********************************************************************/
|
|
160
403
|
/***/ ((module) => {
|
|
161
404
|
|
|
405
|
+
"use strict";
|
|
162
406
|
module.exports = require("next/dist/shared/lib/router/utils/compare-states.js");
|
|
163
407
|
|
|
164
408
|
/***/ }),
|
|
165
409
|
|
|
166
|
-
/***/
|
|
410
|
+
/***/ "./utils/format-next-pathname-info":
|
|
411
|
+
/*!*********************************************************************************!*\
|
|
412
|
+
!*** external "next/dist/shared/lib/router/utils/format-next-pathname-info.js" ***!
|
|
413
|
+
\*********************************************************************************/
|
|
167
414
|
/***/ ((module) => {
|
|
168
415
|
|
|
416
|
+
"use strict";
|
|
169
417
|
module.exports = require("next/dist/shared/lib/router/utils/format-next-pathname-info.js");
|
|
170
418
|
|
|
171
419
|
/***/ }),
|
|
172
420
|
|
|
173
|
-
/***/
|
|
421
|
+
/***/ "./utils/format-url":
|
|
422
|
+
/*!******************************************************************!*\
|
|
423
|
+
!*** external "next/dist/shared/lib/router/utils/format-url.js" ***!
|
|
424
|
+
\******************************************************************/
|
|
174
425
|
/***/ ((module) => {
|
|
175
426
|
|
|
427
|
+
"use strict";
|
|
176
428
|
module.exports = require("next/dist/shared/lib/router/utils/format-url.js");
|
|
177
429
|
|
|
178
430
|
/***/ }),
|
|
179
431
|
|
|
180
|
-
/***/
|
|
432
|
+
/***/ "../shared/lib/router/utils/get-asset-path-from-route":
|
|
433
|
+
/*!*********************************************************************************!*\
|
|
434
|
+
!*** external "next/dist/shared/lib/router/utils/get-asset-path-from-route.js" ***!
|
|
435
|
+
\*********************************************************************************/
|
|
181
436
|
/***/ ((module) => {
|
|
182
437
|
|
|
438
|
+
"use strict";
|
|
183
439
|
module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js");
|
|
184
440
|
|
|
185
441
|
/***/ }),
|
|
186
442
|
|
|
187
|
-
/***/
|
|
443
|
+
/***/ "./utils/get-next-pathname-info":
|
|
444
|
+
/*!******************************************************************************!*\
|
|
445
|
+
!*** external "next/dist/shared/lib/router/utils/get-next-pathname-info.js" ***!
|
|
446
|
+
\******************************************************************************/
|
|
188
447
|
/***/ ((module) => {
|
|
189
448
|
|
|
449
|
+
"use strict";
|
|
190
450
|
module.exports = require("next/dist/shared/lib/router/utils/get-next-pathname-info.js");
|
|
191
451
|
|
|
192
452
|
/***/ }),
|
|
193
453
|
|
|
194
|
-
/***/
|
|
454
|
+
/***/ "./utils/is-bot":
|
|
455
|
+
/*!**************************************************************!*\
|
|
456
|
+
!*** external "next/dist/shared/lib/router/utils/is-bot.js" ***!
|
|
457
|
+
\**************************************************************/
|
|
195
458
|
/***/ ((module) => {
|
|
196
459
|
|
|
460
|
+
"use strict";
|
|
197
461
|
module.exports = require("next/dist/shared/lib/router/utils/is-bot.js");
|
|
198
462
|
|
|
199
463
|
/***/ }),
|
|
200
464
|
|
|
201
|
-
/***/
|
|
465
|
+
/***/ "./utils/is-dynamic":
|
|
466
|
+
/*!******************************************************************!*\
|
|
467
|
+
!*** external "next/dist/shared/lib/router/utils/is-dynamic.js" ***!
|
|
468
|
+
\******************************************************************/
|
|
202
469
|
/***/ ((module) => {
|
|
203
470
|
|
|
471
|
+
"use strict";
|
|
204
472
|
module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js");
|
|
205
473
|
|
|
206
474
|
/***/ }),
|
|
207
475
|
|
|
208
|
-
/***/
|
|
476
|
+
/***/ "../shared/lib/router/utils/parse-path":
|
|
477
|
+
/*!******************************************************************!*\
|
|
478
|
+
!*** external "next/dist/shared/lib/router/utils/parse-path.js" ***!
|
|
479
|
+
\******************************************************************/
|
|
209
480
|
/***/ ((module) => {
|
|
210
481
|
|
|
482
|
+
"use strict";
|
|
211
483
|
module.exports = require("next/dist/shared/lib/router/utils/parse-path.js");
|
|
212
484
|
|
|
213
485
|
/***/ }),
|
|
214
486
|
|
|
215
|
-
/***/
|
|
487
|
+
/***/ "./utils/parse-relative-url":
|
|
488
|
+
/*!**************************************************************************!*\
|
|
489
|
+
!*** external "next/dist/shared/lib/router/utils/parse-relative-url.js" ***!
|
|
490
|
+
\**************************************************************************/
|
|
216
491
|
/***/ ((module) => {
|
|
217
492
|
|
|
493
|
+
"use strict";
|
|
218
494
|
module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js");
|
|
219
495
|
|
|
220
496
|
/***/ }),
|
|
221
497
|
|
|
222
|
-
/***/
|
|
498
|
+
/***/ "../shared/lib/router/utils/path-has-prefix":
|
|
499
|
+
/*!***********************************************************************!*\
|
|
500
|
+
!*** external "next/dist/shared/lib/router/utils/path-has-prefix.js" ***!
|
|
501
|
+
\***********************************************************************/
|
|
223
502
|
/***/ ((module) => {
|
|
224
503
|
|
|
504
|
+
"use strict";
|
|
225
505
|
module.exports = require("next/dist/shared/lib/router/utils/path-has-prefix.js");
|
|
226
506
|
|
|
227
507
|
/***/ }),
|
|
228
508
|
|
|
229
|
-
/***/
|
|
509
|
+
/***/ "./utils/querystring":
|
|
510
|
+
/*!*******************************************************************!*\
|
|
511
|
+
!*** external "next/dist/shared/lib/router/utils/querystring.js" ***!
|
|
512
|
+
\*******************************************************************/
|
|
230
513
|
/***/ ((module) => {
|
|
231
514
|
|
|
515
|
+
"use strict";
|
|
232
516
|
module.exports = require("next/dist/shared/lib/router/utils/querystring.js");
|
|
233
517
|
|
|
234
518
|
/***/ }),
|
|
235
519
|
|
|
236
|
-
/***/
|
|
520
|
+
/***/ "../shared/lib/router/utils/remove-trailing-slash":
|
|
521
|
+
/*!*****************************************************************************!*\
|
|
522
|
+
!*** external "next/dist/shared/lib/router/utils/remove-trailing-slash.js" ***!
|
|
523
|
+
\*****************************************************************************/
|
|
237
524
|
/***/ ((module) => {
|
|
238
525
|
|
|
526
|
+
"use strict";
|
|
239
527
|
module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash.js");
|
|
240
528
|
|
|
241
529
|
/***/ }),
|
|
242
530
|
|
|
243
|
-
/***/
|
|
531
|
+
/***/ "./utils/resolve-rewrites":
|
|
532
|
+
/*!************************************************************************!*\
|
|
533
|
+
!*** external "next/dist/shared/lib/router/utils/resolve-rewrites.js" ***!
|
|
534
|
+
\************************************************************************/
|
|
244
535
|
/***/ ((module) => {
|
|
245
536
|
|
|
537
|
+
"use strict";
|
|
246
538
|
module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js");
|
|
247
539
|
|
|
248
540
|
/***/ }),
|
|
249
541
|
|
|
250
|
-
/***/
|
|
542
|
+
/***/ "./utils/route-matcher":
|
|
543
|
+
/*!*********************************************************************!*\
|
|
544
|
+
!*** external "next/dist/shared/lib/router/utils/route-matcher.js" ***!
|
|
545
|
+
\*********************************************************************/
|
|
251
546
|
/***/ ((module) => {
|
|
252
547
|
|
|
548
|
+
"use strict";
|
|
253
549
|
module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js");
|
|
254
550
|
|
|
255
551
|
/***/ }),
|
|
256
552
|
|
|
257
|
-
/***/
|
|
553
|
+
/***/ "./utils/route-regex":
|
|
554
|
+
/*!*******************************************************************!*\
|
|
555
|
+
!*** external "next/dist/shared/lib/router/utils/route-regex.js" ***!
|
|
556
|
+
\*******************************************************************/
|
|
258
557
|
/***/ ((module) => {
|
|
259
558
|
|
|
559
|
+
"use strict";
|
|
260
560
|
module.exports = require("next/dist/shared/lib/router/utils/route-regex.js");
|
|
261
561
|
|
|
262
562
|
/***/ }),
|
|
263
563
|
|
|
264
|
-
/***/
|
|
564
|
+
/***/ "../shared/lib/utils":
|
|
565
|
+
/*!************************************************!*\
|
|
566
|
+
!*** external "next/dist/shared/lib/utils.js" ***!
|
|
567
|
+
\************************************************/
|
|
265
568
|
/***/ ((module) => {
|
|
266
569
|
|
|
570
|
+
"use strict";
|
|
267
571
|
module.exports = require("next/dist/shared/lib/utils.js");
|
|
268
572
|
|
|
269
573
|
/***/ }),
|
|
270
574
|
|
|
271
|
-
/***/
|
|
575
|
+
/***/ "next/head":
|
|
576
|
+
/*!****************************!*\
|
|
577
|
+
!*** external "next/head" ***!
|
|
578
|
+
\****************************/
|
|
272
579
|
/***/ ((module) => {
|
|
273
580
|
|
|
581
|
+
"use strict";
|
|
274
582
|
module.exports = require("next/head");
|
|
275
583
|
|
|
276
584
|
/***/ }),
|
|
277
585
|
|
|
278
|
-
/***/
|
|
586
|
+
/***/ "react":
|
|
587
|
+
/*!************************!*\
|
|
588
|
+
!*** external "react" ***!
|
|
589
|
+
\************************/
|
|
279
590
|
/***/ ((module) => {
|
|
280
591
|
|
|
592
|
+
"use strict";
|
|
281
593
|
module.exports = require("react");
|
|
282
594
|
|
|
283
595
|
/***/ }),
|
|
284
596
|
|
|
285
|
-
/***/
|
|
597
|
+
/***/ "react/jsx-dev-runtime":
|
|
598
|
+
/*!****************************************!*\
|
|
599
|
+
!*** external "react/jsx-dev-runtime" ***!
|
|
600
|
+
\****************************************/
|
|
286
601
|
/***/ ((module) => {
|
|
287
602
|
|
|
288
|
-
|
|
603
|
+
"use strict";
|
|
604
|
+
module.exports = require("react/jsx-dev-runtime");
|
|
289
605
|
|
|
290
606
|
/***/ }),
|
|
291
607
|
|
|
292
|
-
/***/
|
|
608
|
+
/***/ "styled-jsx/style":
|
|
609
|
+
/*!***********************************!*\
|
|
610
|
+
!*** external "styled-jsx/style" ***!
|
|
611
|
+
\***********************************/
|
|
293
612
|
/***/ ((module) => {
|
|
294
613
|
|
|
614
|
+
"use strict";
|
|
295
615
|
module.exports = require("styled-jsx/style");
|
|
296
616
|
|
|
297
617
|
/***/ })
|
|
@@ -303,7 +623,7 @@ module.exports = require("styled-jsx/style");
|
|
|
303
623
|
var __webpack_require__ = require("../webpack-runtime.js");
|
|
304
624
|
__webpack_require__.C(exports);
|
|
305
625
|
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
306
|
-
var __webpack_exports__ =
|
|
626
|
+
var __webpack_exports__ = (__webpack_exec__("./pages/404.tsx"));
|
|
307
627
|
module.exports = __webpack_exports__;
|
|
308
628
|
|
|
309
629
|
})();
|