134 lines
89 KiB
JavaScript
134 lines
89 KiB
JavaScript
/*
|
||
* ATTENTION: An "eval-source-map" devtool has been used.
|
||
* This devtool is neither made for production nor for readable output files.
|
||
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
||
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
||
* or disable the default devtool with "devtool: false".
|
||
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
||
*/
|
||
(() => {
|
||
var exports = {};
|
||
exports.id = "pages/_app";
|
||
exports.ids = ["pages/_app"];
|
||
exports.modules = {
|
||
|
||
/***/ "(pages-dir-node)/./src/components/AudioProvider.js":
|
||
/*!*****************************************!*\
|
||
!*** ./src/components/AudioProvider.js ***!
|
||
\*****************************************/
|
||
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AudioProvider: () => (/* binding */ AudioProvider),\n/* harmony export */ useAudio: () => (/* binding */ useAudio)\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _store_deviceStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/store/deviceStore */ \"(pages-dir-node)/./src/store/deviceStore.js\");\n/* harmony import */ var _utils_asset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/asset */ \"(pages-dir-node)/./src/utils/asset.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_store_deviceStore__WEBPACK_IMPORTED_MODULE_2__, _utils_asset__WEBPACK_IMPORTED_MODULE_3__]);\n([_store_deviceStore__WEBPACK_IMPORTED_MODULE_2__, _utils_asset__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n// 全局音效 Provider:根据 estmodel 预加载并动态切换资源\n\n\n\n\nconst AudioCtx = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n play: ()=>{}\n});\nfunction AudioProvider({ children }) {\n const { estmodel } = (0,_store_deviceStore__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n const soundsRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({});\n const ensureAudio = (key, path)=>{\n const url = (0,_utils_asset__WEBPACK_IMPORTED_MODULE_3__.getAssetUrl)(path);\n let audio = soundsRef.current[key];\n if (!audio) {\n audio = new Audio(url);\n audio.preload = 'auto';\n soundsRef.current[key] = audio;\n } else if (audio.src !== url) {\n audio.src = url;\n audio.load();\n }\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"AudioProvider.useEffect\": ()=>{\n if (true) return;\n // 按需添加你要的音效键和值\n ensureAudio('install', '/sounds/generic_in.wav');\n ensureAudio('uninstall', '/sounds/generic_out.wav');\n ensureAudio('keyClick', '/sounds/key_click.wav');\n ensureAudio('pass', '/sounds/test_pass.wav');\n ensureAudio('fail', '/sounds/test_fail.wav');\n ensureAudio('connect', '/sounds/rmt_connect.wav');\n ensureAudio('disconnect', '/sounds/rmt_disconnect.wav');\n }\n }[\"AudioProvider.useEffect\"], [\n estmodel\n ]);\n const play = (key, opts = {})=>{\n const base = soundsRef.current[key];\n if (!base) return;\n // 克隆节点以支持频繁触发的并发播放\n const audio = base.cloneNode(true);\n if (opts.volume != null) audio.volume = Math.min(1, Math.max(0, opts.volume));\n if (opts.playbackRate != null) audio.playbackRate = opts.playbackRate;\n audio.currentTime = 0;\n audio.play().catch(()=>{});\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AudioCtx.Provider, {\n value: {\n play\n },\n children: children\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/components/AudioProvider.js\",\n lineNumber: 51,\n columnNumber: 5\n }, this);\n}\nconst useAudio = ()=>(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(AudioCtx);\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3NyYy9jb21wb25lbnRzL0F1ZGlvUHJvdmlkZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBdUM7O0FBQzhCO0FBQ3BCO0FBQ0w7QUFFNUMsTUFBTU0seUJBQVdOLG9EQUFhQSxDQUFDO0lBQUVPLE1BQU0sS0FBTztBQUFFO0FBRXpDLFNBQVNDLGNBQWMsRUFBRUMsUUFBUSxFQUFFO0lBQ3hDLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdOLDhEQUFjQTtJQUNuQyxNQUFNTyxZQUFZUiw2Q0FBTUEsQ0FBQyxDQUFDO0lBRTFCLE1BQU1TLGNBQWMsQ0FBQ0MsS0FBS0M7UUFDeEIsTUFBTUMsTUFBTVYseURBQVdBLENBQUNTO1FBQ3hCLElBQUlFLFFBQVFMLFVBQVVNLE9BQU8sQ0FBQ0osSUFBSTtRQUNsQyxJQUFJLENBQUNHLE9BQU87WUFDVkEsUUFBUSxJQUFJRSxNQUFNSDtZQUNsQkMsTUFBTUcsT0FBTyxHQUFHO1lBQ2hCUixVQUFVTSxPQUFPLENBQUNKLElBQUksR0FBR0c7UUFDM0IsT0FBTyxJQUFJQSxNQUFNSSxHQUFHLEtBQUtMLEtBQUs7WUFDNUJDLE1BQU1JLEdBQUcsR0FBR0w7WUFDWkMsTUFBTUssSUFBSTtRQUNaO0lBQ0Y7SUFFQW5CLGdEQUFTQTttQ0FBQztZQUNSLElBQUksSUFBNkQsRUFBRTtZQUNuRSxlQUFlO1lBQ2ZVLFlBQVksV0FBVztZQUN2QkEsWUFBWSxhQUFhO1lBQ3pCQSxZQUFZLFlBQVk7WUFFeEJBLFlBQVksUUFBUTtZQUNwQkEsWUFBWSxRQUFRO1lBRXBCQSxZQUFZLFdBQVc7WUFDdkJBLFlBQVksY0FBYztRQUM1QjtrQ0FBRztRQUFDRjtLQUFTO0lBRWIsTUFBTUgsT0FBTyxDQUFDTSxLQUFLUyxPQUFPLENBQUMsQ0FBQztRQUMxQixNQUFNQyxPQUFPWixVQUFVTSxPQUFPLENBQUNKLElBQUk7UUFDbkMsSUFBSSxDQUFDVSxNQUFNO1FBQ1gsbUJBQW1CO1FBQ25CLE1BQU1QLFFBQVFPLEtBQUtDLFNBQVMsQ0FBQztRQUM3QixJQUFJRixLQUFLRyxNQUFNLElBQUksTUFBTVQsTUFBTVMsTUFBTSxHQUFHQyxLQUFLQyxHQUFHLENBQUMsR0FBR0QsS0FBS0UsR0FBRyxDQUFDLEdBQUdOLEtBQUtHLE1BQU07UUFDM0UsSUFBSUgsS0FBS08sWUFBWSxJQUFJLE1BQU1iLE1BQU1hLFlBQVksR0FBR1AsS0FBS08sWUFBWTtRQUNyRWIsTUFBTWMsV0FBVyxHQUFHO1FBQ3BCZCxNQUFNVCxJQUFJLEdBQUd3QixLQUFLLENBQUMsS0FBTztJQUM1QjtJQUVBLHFCQUNFLDhEQUFDekIsU0FBUzBCLFFBQVE7UUFBQ0MsT0FBTztZQUFFMUI7UUFBSztrQkFDOUJFOzs7Ozs7QUFHUDtBQUVPLE1BQU15QixXQUFXLElBQU1qQyxpREFBVUEsQ0FBQ0ssVUFBVSIsInNvdXJjZXMiOlsiL29wdC9kZXYvZXN0LWRzeC9zcmMvY29tcG9uZW50cy9BdWRpb1Byb3ZpZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIOWFqOWxgOmfs+aViCBQcm92aWRlcu+8muagueaNriBlc3Rtb2RlbCDpooTliqDovb3lubbliqjmgIHliIfmjaLotYTmupBcclxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB1c2VEZXZpY2VTdG9yZSBmcm9tICdAL3N0b3JlL2RldmljZVN0b3JlJztcclxuaW1wb3J0IHsgZ2V0QXNzZXRVcmwgfSBmcm9tICdAL3V0aWxzL2Fzc2V0JztcclxuXHJcbmNvbnN0IEF1ZGlvQ3R4ID0gY3JlYXRlQ29udGV4dCh7IHBsYXk6ICgpID0+IHt9IH0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEF1ZGlvUHJvdmlkZXIoeyBjaGlsZHJlbiB9KSB7XHJcbiAgY29uc3QgeyBlc3Rtb2RlbCB9ID0gdXNlRGV2aWNlU3RvcmUoKTtcclxuICBjb25zdCBzb3VuZHNSZWYgPSB1c2VSZWYoe30pO1xyXG5cclxuICBjb25zdCBlbnN1cmVBdWRpbyA9IChrZXksIHBhdGgpID0+IHtcclxuICAgIGNvbnN0IHVybCA9IGdldEFzc2V0VXJsKHBhdGgpO1xyXG4gICAgbGV0IGF1ZGlvID0gc291bmRzUmVmLmN1cnJlbnRba2V5XTtcclxuICAgIGlmICghYXVkaW8pIHtcclxuICAgICAgYXVkaW8gPSBuZXcgQXVkaW8odXJsKTtcclxuICAgICAgYXVkaW8ucHJlbG9hZCA9ICdhdXRvJztcclxuICAgICAgc291bmRzUmVmLmN1cnJlbnRba2V5XSA9IGF1ZGlvO1xyXG4gICAgfSBlbHNlIGlmIChhdWRpby5zcmMgIT09IHVybCkge1xyXG4gICAgICBhdWRpby5zcmMgPSB1cmw7XHJcbiAgICAgIGF1ZGlvLmxvYWQoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBBdWRpbyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcclxuICAgIC8vIOaMiemcgOa3u+WKoOS9oOimgeeahOmfs+aViOmUruWSjOWAvFxyXG4gICAgZW5zdXJlQXVkaW8oJ2luc3RhbGwnLCAnL3NvdW5kcy9nZW5lcmljX2luLndhdicpO1xyXG4gICAgZW5zdXJlQXVkaW8oJ3VuaW5zdGFsbCcsICcvc291bmRzL2dlbmVyaWNfb3V0LndhdicpO1xyXG4gICAgZW5zdXJlQXVkaW8oJ2tleUNsaWNrJywgJy9zb3VuZHMva2V5X2NsaWNrLndhdicpO1xyXG4gICAgXHJcbiAgICBlbnN1cmVBdWRpbygncGFzcycsICcvc291bmRzL3Rlc3RfcGFzcy53YXYnKTtcclxuICAgIGVuc3VyZUF1ZGlvKCdmYWlsJywgJy9zb3VuZHMvdGVzdF9mYWlsLndhdicpO1xyXG5cclxuICAgIGVuc3VyZUF1ZGlvKCdjb25uZWN0JywgJy9zb3VuZHMvcm10X2Nvbm5lY3Qud2F2Jyk7XHJcbiAgICBlbnN1cmVBdWRpbygnZGlzY29ubmVjdCcsICcvc291bmRzL3JtdF9kaXNjb25uZWN0LndhdicpO1xyXG4gIH0sIFtlc3Rtb2RlbF0pO1xyXG5cclxuICBjb25zdCBwbGF5ID0gKGtleSwgb3B0cyA9IHt9KSA9PiB7XHJcbiAgICBjb25zdCBiYXNlID0gc291bmRzUmVmLmN1cnJlbnRba2V5XTtcclxuICAgIGlmICghYmFzZSkgcmV0dXJuO1xyXG4gICAgLy8g5YWL6ZqG6IqC54K55Lul5pSv5oyB6aKR57mB6Kem5Y+R55qE5bm25Y+R5pKt5pS+XHJcbiAgICBjb25zdCBhdWRpbyA9IGJhc2UuY2xvbmVOb2RlKHRydWUpO1xyXG4gICAgaWYgKG9wdHMudm9sdW1lICE9IG51bGwpIGF1ZGlvLnZvbHVtZSA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIG9wdHMudm9sdW1lKSk7XHJcbiAgICBpZiAob3B0cy5wbGF5YmFja1JhdGUgIT0gbnVsbCkgYXVkaW8ucGxheWJhY2tSYXRlID0gb3B0cy5wbGF5YmFja1JhdGU7XHJcbiAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7XHJcbiAgICBhdWRpby5wbGF5KCkuY2F0Y2goKCkgPT4ge30pO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8QXVkaW9DdHguUHJvdmlkZXIgdmFsdWU9e3sgcGxheSB9fT5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9BdWRpb0N0eC5Qcm92aWRlcj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgdXNlQXVkaW8gPSAoKSA9PiB1c2VDb250ZXh0KEF1ZGlvQ3R4KTsiXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VEZXZpY2VTdG9yZSIsImdldEFzc2V0VXJsIiwiQXVkaW9DdHgiLCJwbGF5IiwiQXVkaW9Qcm92aWRlciIsImNoaWxkcmVuIiwiZXN0bW9kZWwiLCJzb3VuZHNSZWYiLCJlbnN1cmVBdWRpbyIsImtleSIsInBhdGgiLCJ1cmwiLCJhdWRpbyIsImN1cnJlbnQiLCJBdWRpbyIsInByZWxvYWQiLCJzcmMiLCJsb2FkIiwib3B0cyIsImJhc2UiLCJjbG9uZU5vZGUiLCJ2b2x1bWUiLCJNYXRoIiwibWluIiwibWF4IiwicGxheWJhY2tSYXRlIiwiY3VycmVudFRpbWUiLCJjYXRjaCIsIlByb3ZpZGVyIiwidmFsdWUiLCJ1c2VBdWRpbyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./src/components/AudioProvider.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./src/pages/_app.js":
|
||
/*!***************************!*\
|
||
!*** ./src/pages/_app.js ***!
|
||
\***************************/
|
||
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ App)\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 _styles_globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/styles/globals.css */ \"(pages-dir-node)/./src/styles/globals.css\");\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_globals_css__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 _components_AudioProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/AudioProvider */ \"(pages-dir-node)/./src/components/AudioProvider.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_AudioProvider__WEBPACK_IMPORTED_MODULE_3__]);\n_components_AudioProvider__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\n\n\nfunction App({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\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 children: \"信息网络布线仿真测试平台\"\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 9,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"meta\", {\n name: \"description\",\n content: \"信息网络布线仿真测试平台\"\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 10,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 8,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AudioProvider__WEBPACK_IMPORTED_MODULE_3__.AudioProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 13,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3NyYy9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUE4QjtBQUNGO0FBQytCO0FBRTVDLFNBQVNFLElBQUksRUFBRUMsU0FBUyxFQUFFQyxTQUFTLEVBQUU7SUFDbEQscUJBQ0U7OzBCQUNFLDhEQUFDSixrREFBSUE7O2tDQUNILDhEQUFDSztrQ0FBTTs7Ozs7O2tDQUNQLDhEQUFDQzt3QkFBS0MsTUFBSzt3QkFBY0MsU0FBUTs7Ozs7Ozs7Ozs7OzBCQUVuQyw4REFBQ1Asb0VBQWFBOzBCQUNaLDRFQUFDRTtvQkFBVyxHQUFHQyxTQUFTOzs7Ozs7Ozs7Ozs7O0FBSWhDIiwic291cmNlcyI6WyIvb3B0L2Rldi9lc3QtZHN4L3NyYy9wYWdlcy9fYXBwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIkAvc3R5bGVzL2dsb2JhbHMuY3NzXCI7XG5pbXBvcnQgSGVhZCBmcm9tICduZXh0L2hlYWQnXG5pbXBvcnQgeyBBdWRpb1Byb3ZpZGVyIH0gZnJvbSAnQC9jb21wb25lbnRzL0F1ZGlvUHJvdmlkZXInO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9KSB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxIZWFkPlxuICAgICAgICA8dGl0bGU+5L+h5oGv572R57uc5biD57q/5Lu/55yf5rWL6K+V5bmz5Y+wPC90aXRsZT5cbiAgICAgICAgPG1ldGEgbmFtZT1cImRlc2NyaXB0aW9uXCIgY29udGVudD1cIuS/oeaBr+e9kee7nOW4g+e6v+S7v+ecn+a1i+ivleW5s+WPsFwiIC8+XG4gICAgICA8L0hlYWQ+XG4gICAgICA8QXVkaW9Qcm92aWRlcj5cbiAgICAgICAgPENvbXBvbmVudCB7Li4ucGFnZVByb3BzfSAvPlxuICAgICAgPC9BdWRpb1Byb3ZpZGVyPlxuICAgIDwvPlxuICApXG59XG4iXSwibmFtZXMiOlsiSGVhZCIsIkF1ZGlvUHJvdmlkZXIiLCJBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiLCJ0aXRsZSIsIm1ldGEiLCJuYW1lIiwiY29udGVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./src/pages/_app.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./src/store/deviceStore.js":
|
||
/*!**********************************!*\
|
||
!*** ./src/store/deviceStore.js ***!
|
||
\**********************************/
|
||
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zustand */ \"zustand\");\n/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zustand/middleware */ \"zustand/middleware\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([zustand__WEBPACK_IMPORTED_MODULE_0__, zustand_middleware__WEBPACK_IMPORTED_MODULE_1__]);\n([zustand__WEBPACK_IMPORTED_MODULE_0__, zustand_middleware__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\nconst useDeviceStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__.create)((0,zustand_middleware__WEBPACK_IMPORTED_MODULE_1__.devtools)((set, get)=>({\n // 版本控制\n estmodel: 'general',\n // estmodel: 'fluke',\n updateEstmodel: (model)=>set({\n estmodel: model\n }),\n // 各个类别的设备\n devices: {\n '设备': [\n {\n id: 'dsx',\n name: '认证测试仪',\n type: 'device',\n image: '/DSX-MA.png',\n description: '认证分析测试仪仪'\n },\n {\n id: 'est-analyzer',\n name: '线缆分析仪',\n type: 'device',\n image: '/cableanalyzer.png',\n description: '平衡/不平衡分析仪'\n },\n {\n id: 'wifi',\n name: '无线分析仪',\n type: 'device',\n image: '/wifi.png',\n description: '无线信号分析仪'\n }\n ],\n '模块': [\n {\n id: '8000',\n name: '铜缆分析模块',\n type: 'module',\n portType: 'copper',\n image: '/dsx.png',\n description: '铜缆认证分析仪模块'\n },\n {\n id: 'cfp',\n name: '光纤损耗模块',\n type: 'module',\n portType: 'fiber',\n image: '/cfp.png',\n description: '光纤损耗测试模块'\n },\n {\n id: 'ofp',\n name: '光时域反射模块',\n type: 'module',\n portType: 'fiber',\n image: '/ofp.png',\n description: 'OTDR光时域反射测试模块'\n }\n ],\n '适配器': [\n {\n id: 'channel',\n name: '通道适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-copper',\n image: '/CHA804.png',\n description: 'Cat 8/Class I 通道测试适配器'\n },\n {\n id: 'permanent',\n name: '永久链路适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-copper',\n image: '/PLA804.png',\n description: 'Cat 8/Class I 永久链路测试适配器'\n },\n {\n id: 'patchcode-Cat6',\n name: '跳线适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-copper',\n image: '/DSX-PC6S.png',\n description: 'Cat 6 跳线适配器'\n },\n {\n id: 'channel-m12-d',\n name: 'M12 D-Code适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-m12-d',\n image: '/DSX-CHA021S.png',\n description: ' M12-D 4位适配器'\n },\n {\n id: 'channel-m12-x',\n name: 'M12 X-Code适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-m12-x',\n image: '/DSX-CHA-M12-X-S.png',\n description: 'M12-X 8 位适配器'\n }\n ],\n '跳线': [\n // 铜缆跳线\n {\n id: 'pachcode-copper',\n name: 'RJ45跳线',\n type: 'cable',\n portType: 'copper',\n image: '/Cable.png',\n description: 'Cat 6测试跳线'\n },\n {\n id: 'pachcode-m12-x',\n name: 'M12-X-Code跳线',\n type: 'cable',\n portType: 'copper-m12-x',\n image: '/M12.png',\n description: 'M12-X-Code跳线'\n },\n {\n id: 'pachcode-m12-d',\n name: 'M12-D-Code跳线',\n type: 'cable',\n portType: 'copper-m12-d',\n image: '/M12.png',\n description: 'M12-D-Code跳线'\n },\n // 光纤跳线\n {\n id: 'sm-lc-lc',\n name: '单模跳纤',\n type: 'cable',\n portType: 'fiber',\n image: '/SM-LC-LC.png',\n description: '单模 LC-LC 双工测试跳线'\n },\n {\n id: 'mm-lc-lc',\n name: '多模跳纤',\n type: 'cable',\n portType: 'fiber',\n image: '/MM-LC-LC.png',\n description: '多模 LC-LC 双工测试跳线'\n },\n // 补偿光纤\n {\n id: 'smc-lc-lc',\n name: '单模补偿光纤',\n type: 'cable',\n portType: 'fiber',\n image: '/SMC-LC-LC.png',\n description: '单模 LC-LC 双工补偿光纤'\n },\n {\n id: 'mmc-lc-lc',\n name: '多模补偿光纤',\n type: 'cable',\n portType: 'fiber',\n image: '/MMC-LC-LC.png',\n description: '多模 LC-LC 双工补偿光纤'\n },\n // MPO跳线\n {\n id: 'sm-mpo-mpo',\n name: '单模MPO跳线',\n type: 'cable-mpo',\n portType: 'fiber-mpo',\n image: '/SM-MPO-MPO.png',\n description: '单模 MPO-MPO 跳线'\n },\n {\n id: 'mm-mpo-mpo',\n name: '多模MPO跳线',\n type: 'cable-mpo',\n portType: 'fiber-mpo',\n image: '/MM-MPO-MPO.png',\n description: '多模 MPO-MPO 跳线'\n },\n {\n id: 'mm-mpo-lc-box',\n name: '多模mpo-lc转接盒',\n type: 'mpo',\n portType: 'fiberbox',\n image: '/MM-MPO-LC-BOX.png',\n description: '多模 MPO-LC 转接盒'\n }\n ],\n '连接器': [\n {\n id: 'lc-connector',\n name: 'LC法兰',\n type: 'connector',\n portType: 'fiber',\n image: '/LC-connector.png',\n description: '光纤连接器'\n }\n ],\n '工具': [\n {\n id: 'lc-clean',\n name: '1.25mm清洁笔',\n image: '/LC-clean.png',\n description: '光纤清洁笔'\n },\n {\n id: 'mpo-clean',\n name: 'mpo清洁笔',\n image: '/MPO-clean.png',\n description: '光纤清洁笔'\n },\n {\n id: 'ILT200',\n name: '音频探棒',\n image: '/ILT200.png',\n description: '音频探棒'\n }\n ],\n '夹具': [\n {\n id: 'cal-2p',\n name: '测试夹具-2芯',\n type: 'module',\n portType: 'copper',\n image: '/CAL-2P.png',\n description: '插座测试夹具2芯'\n },\n {\n id: 'cal-4p',\n name: '测试夹具-4芯',\n type: 'module',\n portType: 'copper',\n image: '/CAL-4P.png',\n description: '插座测试夹具4芯'\n },\n {\n id: 'benchmark-copper',\n name: '基准连接器',\n type: 'module',\n portType: 'cal-copper-out',\n image: '/benchmark.png',\n description: '基准连接'\n }\n ]\n },\n // 故障场景\n faultScenarios: \"Office\",\n // faultScenarios: \"WorldSkill\",\n // faultScenarios: \"Industry\",\n // faultScenarios: \"DataCenter\",\n // faultScenarios: \"CopperAnalyzer\",\n WorldSkillScenarios: \"OFFICE\",\n // 赛位号\n seatNumber: \"\",\n // 比赛ID\n seatUUID: null,\n // 比赛开始时间\n seatStartTime: null,\n // 表单记录\n reports: [],\n // 当前安装设备 - 格式: { main: device, remote: device }\n installedDevices: {\n main: null,\n remote: null\n },\n // 主机已安装模块\n mainUnitModules: [],\n // 远端已安装模块\n remoteUnitModules: [],\n // 主机适配器\n mainUnitAdapter: null,\n // 远端适配器\n remoteUnitAdapter: null,\n // 主机接口\n mainUnitPorts: [],\n // 远端接口\n remoteUnitPorts: [],\n // 当前选中的工具\n selectedTool: null,\n // 连接区物品列表\n connectionItems: [],\n // 连接路径列表\n connectionPaths: [],\n // 连接状态分析结果\n connectionStatus: [],\n // 传输线基准状态\n hasBenchmarkModule: false,\n // 线缆参数\n cableParams: {\n conductorMaterial: 'copper',\n coreDiameter: 0.57,\n insulationMaterial: 'pe',\n insulationThickness: 0.2,\n twistPitch: 12,\n pair2TwistRatio: 1.0,\n cableLength: 100,\n R: 0,\n L: 0,\n C: 0,\n G: 0 // 电导 G′ (nS/m)\n },\n // 选择工具\n selectTool: (tool)=>{\n set({\n selectedTool: tool\n });\n },\n // 取消选择工具\n clearSelectedTool: ()=>{\n set({\n selectedTool: null\n });\n },\n // 安装设备\n installDevice: (device, target)=>{\n set((state)=>({\n installedDevices: {\n ...state.installedDevices,\n [target]: device\n }\n }));\n },\n // 卸载设备\n uninstallDevice: (target)=>{\n set((state)=>{\n // 卸载设备时,同时清除该设备上的所有模块和适配器\n const updates = {\n installedDevices: {\n ...state.installedDevices,\n [target]: null\n }\n };\n // 清除对应的模块和适配器\n if (target === 'main') {\n updates.mainUnitModules = [];\n updates.mainUnitAdapter = null;\n updates.mainUnitFixture = null;\n updates.mainUnitPorts = [];\n updates.hasBenchmarkModule = false;\n } else {\n updates.remoteUnitModules = [];\n updates.remoteUnitAdapter = null;\n updates.remoteUnitPorts = [];\n updates.hasBenchmarkModule = false;\n }\n return updates;\n });\n },\n // 安装模块\n installModule: (module, target)=>{\n set((state)=>{\n if (target === 'main') {\n let ports = [];\n if (module.id === 'cfp') {\n ports = [\n {\n id: 'cfp-sm-out',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'cfp-in',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'cfp-mm-out',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'vfl',\n type: 'modelport',\n module: 'cfp'\n }\n ];\n } else if (module.id === 'ofp') {\n ports = [\n {\n id: 'ofp-sm-out',\n type: 'modelport',\n module: 'ofp'\n },\n {\n id: 'ofp-mm-out',\n type: 'modelport',\n module: 'ofp'\n },\n {\n id: 'vfl',\n type: 'modelport',\n module: 'ofp'\n }\n ];\n } else if (module.id === 'cal-2p') {\n ports = [\n {\n id: 'cal-1p-1',\n type: 'cal-copper',\n module: 'cal-2p'\n },\n {\n id: 'cal-1p-2',\n type: 'cal-copper',\n module: 'cal-2p'\n }\n ];\n } else if (module.id === 'cal-4p') {\n ports = [\n {\n id: 'cal-2p-1',\n type: 'cal-copper',\n module: 'cal-4p'\n },\n {\n id: 'cal-2p-2',\n type: 'cal-copper',\n module: 'cal-4p'\n },\n {\n id: 'cal-2p-3',\n type: 'cal-copper',\n module: 'cal-4p'\n },\n {\n id: 'cal-2p-4',\n type: 'cal-copper',\n module: 'cal-4p'\n }\n ];\n }\n const newMainModules = [\n ...state.mainUnitModules,\n module\n ];\n const newRemoteModules = state.remoteUnitModules;\n return {\n mainUnitModules: newMainModules,\n mainUnitPorts: ports,\n hasBenchmarkModule: newMainModules.some((m)=>m.id === 'benchmark-copper') && newRemoteModules.some((m)=>m.id === 'benchmark-copper')\n };\n } else {\n let ports = [];\n if (module.id === 'cfp') {\n ports = [\n {\n id: 'cfp-sm-out',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'cfp-in',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'cfp-mm-out',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'vfl',\n type: 'modelport',\n module: 'cfp'\n }\n ];\n } else if (module.id === 'cal-2p') {\n ports = [\n {\n id: 'cal-1p-1',\n type: 'cal-copper',\n module: 'cal-2p'\n },\n {\n id: 'cal-1p-2',\n type: 'cal-copper',\n module: 'cal-2p'\n }\n ];\n } else if (module.id === 'cal-4p') {\n ports = [\n {\n id: 'cal-2p-1',\n type: 'cal-copper',\n module: 'cal-4p'\n },\n {\n id: 'cal-2p-2',\n type: 'cal-copper',\n module: 'cal-4p'\n },\n {\n id: 'cal-2p-3',\n type: 'cal-copper',\n module: 'cal-4p'\n },\n {\n id: 'cal-2p-4',\n type: 'cal-copper',\n module: 'cal-4p'\n }\n ];\n }\n const newRemoteModules = [\n ...state.remoteUnitModules,\n module\n ];\n const newMainModules = state.mainUnitModules;\n return {\n remoteUnitModules: newRemoteModules,\n remoteUnitPorts: ports,\n hasBenchmarkModule: newMainModules.some((m)=>m.id === 'benchmark-copper') && newRemoteModules.some((m)=>m.id === 'benchmark-copper')\n };\n }\n });\n },\n // 卸载模块\n uninstallModule: (moduleId, target)=>{\n set((state)=>{\n if (target === 'main') {\n const newMainModules = state.mainUnitModules.filter((m)=>m.id !== moduleId);\n const newRemoteModules = state.remoteUnitModules;\n return {\n mainUnitModules: newMainModules,\n mainUnitPorts: [],\n mainUnitAdapter: null,\n hasBenchmarkModule: newMainModules.some((m)=>m.id === 'benchmark-copper') && newRemoteModules.some((m)=>m.id === 'benchmark-copper')\n };\n } else {\n const newRemoteModules = state.remoteUnitModules.filter((m)=>m.id !== moduleId);\n const newMainModules = state.mainUnitModules;\n return {\n remoteUnitModules: newRemoteModules,\n remoteUnitPorts: [],\n remoteUnitAdapter: null,\n hasBenchmarkModule: newMainModules.some((m)=>m.id === 'benchmark-copper') && newRemoteModules.some((m)=>m.id === 'benchmark-copper')\n };\n }\n });\n },\n // 安装适配器\n installAdapter: (adapter, target)=>{\n set((state)=>({\n [target === 'main' ? 'mainUnitAdapter' : 'remoteUnitAdapter']: {\n ...adapter,\n port: {\n id: `${adapter.id}`,\n type: 'modelport',\n module: adapter.id\n }\n }\n }));\n },\n // 卸载适配器\n uninstallAdapter: (target)=>{\n set((state)=>({\n [target === 'main' ? 'mainUnitAdapter' : 'remoteUnitAdapter']: null\n }));\n },\n // 更新故障场景\n updateFaultScenarios: (status)=>{\n set(()=>({\n faultScenarios: status\n }));\n },\n // 更新竞赛故障场景\n updateWorldSkillScenarios: (status)=>{\n set(()=>({\n WorldSkillScenarios: status\n }));\n },\n // 更新赛位号\n updateSeatNumber: (number)=>{\n set(()=>({\n seatNumber: number\n }));\n },\n // 更新比赛ID\n updateSeatUUID: (uuid)=>{\n set(()=>({\n seatUUID: uuid\n }));\n },\n // 更新比赛开始时间\n updateSeatStartTime: (startTime)=>{\n set(()=>({\n seatStartTime: startTime\n }));\n },\n // 更新报告数据\n updateReports: (records)=>{\n set(()=>({\n reports: records\n }));\n },\n // ----***物品区域方法***----\n // 添加物品到连接区\n addConnectionItem: (item)=>set((state)=>({\n connectionItems: [\n ...state.connectionItems,\n item\n ]\n })),\n // 从连接区移除物品\n removeConnectionItem: (index)=>set((state)=>({\n connectionItems: state.connectionItems.filter((_, i)=>i !== index)\n })),\n // ---***连接路径***---\n // 添加连接路径\n addConnectionPath: (path)=>set((state)=>{\n const newPaths = [\n ...state.connectionPaths,\n path\n ];\n return {\n connectionPaths: newPaths\n };\n }),\n // 移除连接路径\n removeConnectionPath: (sourceId, targetId)=>set((state)=>{\n const newPaths = state.connectionPaths.filter((path)=>!(path.source === sourceId && path.target === targetId));\n return {\n connectionPaths: newPaths\n };\n }),\n // 清空连接路径\n clearConnectionPaths: ()=>set(()=>{\n return {\n connectionPaths: []\n };\n }),\n // 获取当前连接路径\n getConnectionPaths: ()=>get().connectionPaths,\n // ---***连接状态分析结果***---\n // 更新连接状态\n updateConnectionStatus: (status)=>set(()=>({\n connectionStatus: status\n })),\n // 提示框方法\n setShowTotalToast: (show)=>set({\n showTotalToast: show\n }),\n setTotalToastMessage: (message)=>set({\n totalToastMessage: message\n }),\n // ---***线缆参数管理***---\n // 更新传输线基准状态\n updateHasBenchmarkModule: (status)=>set(()=>({\n hasBenchmarkModule: status\n })),\n // 更新线缆参数\n updateCableParams: (params)=>set((state)=>({\n cableParams: {\n ...state.cableParams,\n ...params\n }\n })),\n // 更新单个线缆参数\n updateSingleCableParam: (key, value)=>set((state)=>({\n cableParams: {\n ...state.cableParams,\n [key]: value\n }\n })),\n // 重置线缆参数\n resetCableParams: ()=>set(()=>({\n cableParams: {\n conductorMaterial: 'copper',\n coreDiameter: 0.57,\n insulationMaterial: 'pe',\n insulationThickness: 0.2,\n twistPitch: 12,\n pair2TwistRatio: 1.0,\n cableLength: 100,\n R: 0,\n L: 0,\n C: 0,\n G: 0\n }\n })),\n // 初始化数据\n // 重置到默认状态\n resetdeviceStore: ()=>{\n set(()=>({\n // 当前安装设备\n installedDevices: {\n main: null,\n remote: null\n },\n // 主机已安装模块\n mainUnitModules: [],\n // 远端已安装模块\n remoteUnitModules: [],\n // 主机适配器\n mainUnitAdapter: null,\n // 远端适配器\n remoteUnitAdapter: null,\n // 主机接口\n mainUnitPorts: [],\n // 远端接口\n remoteUnitPorts: [],\n // 当前选中的工具\n selectedTool: null,\n // 连接区物品列表\n connectionItems: [],\n // 连接路径列表\n connectionPaths: [],\n // 连接状态分析结果\n connectionStatus: [],\n // 报告数据\n reports: [],\n // 传输线基准状态\n hasBenchmarkModule: false,\n // 线缆参数\n cableParams: {\n conductorMaterial: 'copper',\n coreDiameter: 0.57,\n insulationMaterial: 'pe',\n insulationThickness: 0.2,\n twistPitch: 12,\n pair2TwistRatio: 1.0,\n cableLength: 100,\n R: 0,\n L: 0,\n C: 0,\n G: 0\n }\n }));\n }\n })));\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useDeviceStore);\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3NyYy9zdG9yZS9kZXZpY2VTdG9yZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBaUM7QUFDYTtBQUc5QyxNQUFNRSxpQkFBaUJGLCtDQUFNQSxDQUM3QkMsNERBQVFBLENBQ0osQ0FBQ0UsS0FBS0MsTUFBUztRQUNqQixPQUFPO1FBQ1BDLFVBQVU7UUFDVixxQkFBcUI7UUFDcEJDLGdCQUFnQixDQUFDQyxRQUFVSixJQUFJO2dCQUFFRSxVQUFVRTtZQUFNO1FBRWxELFVBQVU7UUFDVkMsU0FBUztZQUNQLE1BQU07Z0JBQ0o7b0JBQ0VDLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VKLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VKLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7YUFDRDtZQUNELE1BQU07Z0JBQ0o7b0JBQ0VKLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05HLFVBQVU7b0JBQ1ZGLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VKLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05HLFVBQVU7b0JBQ1ZGLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VKLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05HLFVBQVU7b0JBQ1ZGLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7YUFDRDtZQUNELE9BQU87Z0JBQ0w7b0JBQ0VKLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05HLFVBQVU7b0JBQ1ZDLFFBQVE7b0JBQ1JILE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VKLElBQUk7b0JBQ0pDLE1BQU07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QkFDcEIsT0FBTztvQkFDUEMsYUFBYTt3QkFDWEMsbUJBQW1CO3dCQUNuQkMsY0FBYzt3QkFDZEMsb0JBQW9CO3dCQUNwQkMscUJBQXFCO3dCQUNyQkMsWUFBWTt3QkFDWkMsaUJBQWlCO3dCQUNqQkMsYUFBYTt3QkFDYkMsR0FBRzt3QkFDSEMsR0FBRzt3QkFDSEMsR0FBRzt3QkFDSEMsR0FBRztvQkFDTDtnQkFDRjtRQUNKO0lBSUY7QUFXQSxpRUFBZTdDLGNBQWNBLEVBQUMiLCJzb3VyY2VzIjpbIi9vcHQvZGV2L2VzdC1kc3gvc3JjL3N0b3JlL2RldmljZVN0b3JlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZSB9IGZyb20gJ3p1c3RhbmQnO1xuaW1wb3J0IHsgZGV2dG9vbHMgfSBmcm9tICd6dXN0YW5kL21pZGRsZXdhcmUnO1xuXG5cbmNvbnN0IHVzZURldmljZVN0b3JlID0gY3JlYXRlKFxuZGV2dG9vbHMoXG4gICAgKHNldCwgZ2V0KSA9PiAoe1xuICAvLyDniYjmnKzmjqfliLZcbiAgZXN0bW9kZWw6ICdnZW5lcmFsJyxcbiAgLy8gZXN0bW9kZWw6ICdmbHVrZScsXG4gICB1cGRhdGVFc3Rtb2RlbDogKG1vZGVsKSA9PiBzZXQoeyBlc3Rtb2RlbDogbW9kZWwgfSksXG4gICBcbiAgLy8g5ZCE5Liq57G75Yir55qE6K6+5aSHXG4gIGRldmljZXM6IHtcbiAgICAn6K6+5aSHJzogW1xuICAgICAge1xuICAgICAgICBpZDogJ2RzeCcsIFxuICAgICAgICBuYW1lOiAn6K6k6K+B5rWL6K+V5LuqJyxcbiAgICAgICAgdHlwZTogJ2RldmljZScsXG4gICAgICAgIGltYWdlOiAnL0RTWC1NQS5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+iupOivgeWIhuaekOa1i+ivleS7quS7qidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZXN0LWFuYWx5emVyJywgXG4gICAgICAgIG5hbWU6ICfnur/nvIbliIbmnpDku6onLFxuICAgICAgICB0eXBlOiAnZGV2aWNlJyxcbiAgICAgICAgaW1hZ2U6ICcvY2FibGVhbmFseXplci5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+W5s+ihoS/kuI3lubPooaHliIbmnpDku6onXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3dpZmknLCBcbiAgICAgICAgbmFtZTogJ+aXoOe6v+WIhuaekOS7qicsXG4gICAgICAgIHR5cGU6ICdkZXZpY2UnLFxuICAgICAgICBpbWFnZTogJy93aWZpLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5peg57q/5L+h5Y+35YiG5p6Q5LuqJ1xuICAgICAgfVxuICAgIF0sXG4gICAgJ+aooeWdlyc6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4MDAwJywgXG4gICAgICAgIG5hbWU6ICfpk5znvIbliIbmnpDmqKHlnZcnLFxuICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgcG9ydFR5cGU6ICdjb3BwZXInLFxuICAgICAgICBpbWFnZTogJy9kc3gucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICfpk5znvIborqTor4HliIbmnpDku6rmqKHlnZcnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2NmcCcsIFxuICAgICAgICBuYW1lOiAn5YWJ57qk5o2f6ICX5qih5Z2XJyxcbiAgICAgICAgdHlwZTogJ21vZHVsZScsXG4gICAgICAgIHBvcnRUeXBlOiAnZmliZXInLFxuICAgICAgICBpbWFnZTogJy9jZnAucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICflhYnnuqTmjZ/ogJfmtYvor5XmqKHlnZcnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ29mcCcsIFxuICAgICAgICBuYW1lOiAn5YWJ5pe25Z+f5Y+N5bCE5qih5Z2XJyxcbiAgICAgICAgdHlwZTogJ21vZHVsZScsXG4gICAgICAgIHBvcnRUeXBlOiAnZmliZXInLFxuICAgICAgICBpbWFnZTogJy9vZnAucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPVERS5YWJ5pe25Z+f5Y+N5bCE5rWL6K+V5qih5Z2XJ1xuICAgICAgfVxuICAgIF0sXG4gICAgJ+mAgumFjeWZqCc6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjaGFubmVsJywgXG4gICAgICAgIG5hbWU6ICfpgJrpgZPpgILphY3lmagnLCBcbiAgICAgICAgdHlwZTogJ2FkYXB0ZXInLFxuICAgICAgICBwb3J0VHlwZTogJ2NvcHBlcicsXG4gICAgICAgIGpzdHlwZTogJ21vZGVscG9ydC1jb3BwZXInLFxuICAgICAgICBpbWFnZTogJy9DSEE4MDQucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdDYXQgOC9DbGFzcyBJIOmAmumBk+a1i+ivlemAgumFjeWZqCdcbiAgICAgIH0sXG4gICAgICB7IFxuICAgICAgICBpZDogJ3Blcm1hbmVudCcsIFxuICAgICAgICBuYW1lOiAn5rC45LmF6ZO+6Lev6YCC6YWN5ZmoJywgXG4gICAgICAgIHR5cGU6ICdhZGFwdGVyJyxcbiAgICAgICAgcG9ydFR5cGU6ICdjb3BwZXInLFxuICAgICAgICBqc3R5cGU6ICdtb2RlbHBvcnQtY29wcGVyJyxcbiAgICAgICAgaW1hZ2U6ICcvUExBODA0LnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQ2F0IDgvQ2xhc3MgSSDmsLjkuYXpk77ot6/mtYvor5XpgILphY3lmagnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3BhdGNoY29kZS1DYXQ2JywgXG4gICAgICAgIG5hbWU6ICfot7Pnur/pgILphY3lmagnLCBcbiAgICAgICAgdHlwZTogJ2FkYXB0ZXInLFxuICAgICAgICBwb3J0VHlwZTogJ2NvcHBlcicsXG4gICAgICAgIGpzdHlwZTogJ21vZGVscG9ydC1jb3BwZXInLFxuICAgICAgICBpbWFnZTogJy9EU1gtUEM2Uy5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0NhdCA2IOi3s+e6v+mAgumFjeWZqCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnY2hhbm5lbC1tMTItZCcsIFxuICAgICAgICBuYW1lOiAnTTEyIEQtQ29kZemAgumFjeWZqCcsIFxuICAgICAgICB0eXBlOiAnYWRhcHRlcicsXG4gICAgICAgIHBvcnRUeXBlOiAnY29wcGVyJyxcbiAgICAgICAganN0eXBlOiAnbW9kZWxwb3J0LW0xMi1kJyxcbiAgICAgICAgaW1hZ2U6ICcvRFNYLUNIQTAyMVMucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICcgTTEyLUQgNOS9jemAgumFjeWZqCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnY2hhbm5lbC1tMTIteCcsIFxuICAgICAgICBuYW1lOiAnTTEyIFgtQ29kZemAgumFjeWZqCcsIFxuICAgICAgICB0eXBlOiAnYWRhcHRlcicsXG4gICAgICAgIHBvcnRUeXBlOiAnY29wcGVyJyxcbiAgICAgICAganN0eXBlOiAnbW9kZWxwb3J0LW0xMi14JyxcbiAgICAgICAgaW1hZ2U6ICcvRFNYLUNIQS1NMTItWC1TLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTTEyLVggOCDkvY3pgILphY3lmagnXG4gICAgICB9XG4gICAgXSxcbiAgICAn6Lez57q/JzogW1xuICAgICAgLy8g6ZOc57yG6Lez57q/XG4gICAgICB7IFxuICAgICAgICBpZDogJ3BhY2hjb2RlLWNvcHBlcicsIFxuICAgICAgICBuYW1lOiAnUko0Nei3s+e6vycsIFxuICAgICAgICB0eXBlOiAnY2FibGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2NvcHBlcicsXG4gICAgICAgIGltYWdlOiAnL0NhYmxlLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQ2F0IDbmtYvor5Xot7Pnur8nXG4gICAgICB9LFxuICAgICAgeyBcbiAgICAgICAgaWQ6ICdwYWNoY29kZS1tMTIteCcsIFxuICAgICAgICBuYW1lOiAnTTEyLVgtQ29kZei3s+e6vycsIFxuICAgICAgICB0eXBlOiAnY2FibGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2NvcHBlci1tMTIteCcsXG4gICAgICAgIGltYWdlOiAnL00xMi5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ00xMi1YLUNvZGXot7Pnur8nXG4gICAgICB9LFxuICAgICAgeyBcbiAgICAgICAgaWQ6ICdwYWNoY29kZS1tMTItZCcsIFxuICAgICAgICBuYW1lOiAnTTEyLUQtQ29kZei3s+e6vycsIFxuICAgICAgICB0eXBlOiAnY2FibGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2NvcHBlci1tMTItZCcsXG4gICAgICAgIGltYWdlOiAnL00xMi5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ00xMi1ELUNvZGXot7Pnur8nXG4gICAgICB9LFxuICAgICAgLy8g5YWJ57qk6Lez57q/XG4gICAgICB7IFxuICAgICAgICBpZDogJ3NtLWxjLWxjJywgXG4gICAgICAgIG5hbWU6ICfljZXmqKHot7PnuqQnLCBcbiAgICAgICAgdHlwZTogJ2NhYmxlJyxcbiAgICAgICAgcG9ydFR5cGU6ICdmaWJlcicsXG4gICAgICAgIGltYWdlOiAnL1NNLUxDLUxDLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5Y2V5qihIExDLUxDIOWPjOW3pea1i+ivlei3s+e6vydcbiAgICAgIH0sXG4gICAgICB7IFxuICAgICAgICBpZDogJ21tLWxjLWxjJywgXG4gICAgICAgIG5hbWU6ICflpJrmqKHot7PnuqQnLCBcbiAgICAgICAgdHlwZTogJ2NhYmxlJyxcbiAgICAgICAgcG9ydFR5cGU6ICdmaWJlcicsXG4gICAgICAgIGltYWdlOiAnL01NLUxDLUxDLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5aSa5qihIExDLUxDIOWPjOW3pea1i+ivlei3s+e6vydcbiAgICAgIH0sXG4gICAgICAvLyDooaXlgb/lhYnnuqRcbiAgICAgIHsgXG4gICAgICAgIGlkOiAnc21jLWxjLWxjJywgXG4gICAgICAgIG5hbWU6ICfljZXmqKHooaXlgb/lhYnnuqQnLCBcbiAgICAgICAgdHlwZTogJ2NhYmxlJyxcbiAgICAgICAgcG9ydFR5cGU6ICdmaWJlcicsXG4gICAgICAgIGltYWdlOiAnL1NNQy1MQy1MQy5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+WNleaooSBMQy1MQyDlj4zlt6XooaXlgb/lhYnnuqQnXG4gICAgICB9LFxuICAgICAgeyBcbiAgICAgICAgaWQ6ICdtbWMtbGMtbGMnLCBcbiAgICAgICAgbmFtZTogJ+WkmuaooeihpeWBv+WFiee6pCcsIFxuICAgICAgICB0eXBlOiAnY2FibGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2ZpYmVyJyxcbiAgICAgICAgaW1hZ2U6ICcvTU1DLUxDLUxDLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5aSa5qihIExDLUxDIOWPjOW3peihpeWBv+WFiee6pCdcbiAgICAgIH0sXG4gICAgICAvLyBNUE/ot7Pnur9cbiAgICAgIHsgXG4gICAgICAgIGlkOiAnc20tbXBvLW1wbycsIFxuICAgICAgICBuYW1lOiAn5Y2V5qihTVBP6Lez57q/JywgXG4gICAgICAgIHR5cGU6ICdjYWJsZS1tcG8nLFxuICAgICAgICBwb3J0VHlwZTogJ2ZpYmVyLW1wbycsXG4gICAgICAgIGltYWdlOiAnL1NNLU1QTy1NUE8ucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICfljZXmqKEgTVBPLU1QTyDot7Pnur8nXG4gICAgICB9LFxuICAgICAgeyBcbiAgICAgICAgaWQ6ICdtbS1tcG8tbXBvJywgXG4gICAgICAgIG5hbWU6ICflpJrmqKFNUE/ot7Pnur8nLCBcbiAgICAgICAgdHlwZTogJ2NhYmxlLW1wbycsXG4gICAgICAgIHBvcnRUeXBlOiAnZmliZXItbXBvJyxcbiAgICAgICAgaW1hZ2U6ICcvTU0tTVBPLU1QTy5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+WkmuaooSBNUE8tTVBPIOi3s+e6vydcbiAgICAgIH0sXG4gICAgICB7IFxuICAgICAgICBpZDogJ21tLW1wby1sYy1ib3gnLCBcbiAgICAgICAgbmFtZTogJ+WkmuaooW1wby1sY+i9rOaOpeebkicsIFxuICAgICAgICB0eXBlOiAnbXBvJyxcbiAgICAgICAgcG9ydFR5cGU6ICdmaWJlcmJveCcsXG4gICAgICAgIGltYWdlOiAnL01NLU1QTy1MQy1CT1gucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICflpJrmqKEgTVBPLUxDIOi9rOaOpeebkidcbiAgICAgIH1cbiAgICBdLFxuICAgICfov57mjqXlmagnOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnbGMtY29ubmVjdG9yJyxcbiAgICAgICAgbmFtZTogJ0xD5rOV5YWwJyxcbiAgICAgICAgdHlwZTogJ2Nvbm5lY3RvcicsXG4gICAgICAgIHBvcnRUeXBlOiAnZmliZXInLFxuICAgICAgICBpbWFnZTogJy9MQy1jb25uZWN0b3IucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICflhYnnuqTov57mjqXlmagnXG4gICAgICB9XG4gICAgXSxcbiAgICAn5bel5YW3JzogW1xuICAgICAge1xuICAgICAgICBpZDogJ2xjLWNsZWFuJyxcbiAgICAgICAgbmFtZTogJzEuMjVtbea4hea0geeslCcsXG4gICAgICAgIGltYWdlOiAnL0xDLWNsZWFuLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5YWJ57qk5riF5rSB56yUJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdtcG8tY2xlYW4nLFxuICAgICAgICBuYW1lOiAnbXBv5riF5rSB56yUJyxcbiAgICAgICAgaW1hZ2U6ICcvTVBPLWNsZWFuLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5YWJ57qk5riF5rSB56yUJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdJTFQyMDAnLFxuICAgICAgICBuYW1lOiAn6Z+z6aKR5o6i5qOSJyxcbiAgICAgICAgaW1hZ2U6ICcvSUxUMjAwLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn6Z+z6aKR5o6i5qOSJ1xuICAgICAgfVxuICAgIF0sXG4gICAgXG4gICAgJ+WkueWFtyc6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjYWwtMnAnLCBcbiAgICAgICAgbmFtZTogJ+a1i+ivleWkueWFty0y6IqvJyxcbiAgICAgICAgdHlwZTogJ21vZHVsZScsXG4gICAgICAgIHBvcnRUeXBlOiAnY29wcGVyJyxcbiAgICAgICAgaW1hZ2U6ICcvQ0FMLTJQLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5o+S5bqn5rWL6K+V5aS55YW3MuiKrydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnY2FsLTRwJywgXG4gICAgICAgIG5hbWU6ICfmtYvor5XlpLnlhbctNOiKrycsXG4gICAgICAgIHR5cGU6ICdtb2R1bGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2NvcHBlcicsXG4gICAgICAgIGltYWdlOiAnL0NBTC00UC5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+aPkuW6p+a1i+ivleWkueWFtzToiq8nXG4gICAgICB9LFxuICAgICAgeyBcbiAgICAgICAgaWQ6ICdiZW5jaG1hcmstY29wcGVyJywgXG4gICAgICAgIG5hbWU6ICfln7rlh4bov57mjqXlmagnLCBcbiAgICAgICAgdHlwZTogJ21vZHVsZScsXG4gICAgICAgIHBvcnRUeXBlOiAnY2FsLWNvcHBlci1vdXQnLFxuICAgICAgICBpbWFnZTogJy9iZW5jaG1hcmsucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICfln7rlh4bov57mjqUnXG4gICAgICB9LFxuICAgIF0sXG4gICAgXG4gIH0sXG5cblxuICBcbiAgLy8g5pWF6Zqc5Zy65pmvXG4gIGZhdWx0U2NlbmFyaW9zOiBcIk9mZmljZVwiLFxuICAvLyBmYXVsdFNjZW5hcmlvczogXCJXb3JsZFNraWxsXCIsXG4gIC8vIGZhdWx0U2NlbmFyaW9zOiBcIkluZHVzdHJ5XCIsXG4gIC8vIGZhdWx0U2NlbmFyaW9zOiBcIkRhdGFDZW50ZXJcIixcbiAgLy8gZmF1bHRTY2VuYXJpb3M6IFwiQ29wcGVyQW5hbHl6ZXJcIixcbiAgV29ybGRTa2lsbFNjZW5hcmlvczogXCJPRkZJQ0VcIixcbiAgLy8g6LWb5L2N5Y+3XG4gIHNlYXROdW1iZXI6IFwiXCIsXG4gIC8vIOavlOi1m0lEXG4gIHNlYXRVVUlEOiBudWxsLFxuICAvLyDmr5TotZvlvIDlp4vml7bpl7RcbiAgc2VhdFN0YXJ0VGltZTpudWxsLFxuICAvLyDooajljZXorrDlvZVcbiAgcmVwb3J0czpbXSxcbiAgLy8g5b2T5YmN5a6J6KOF6K6+5aSHIC0g5qC85byPOiB7IG1haW46IGRldmljZSwgcmVtb3RlOiBkZXZpY2UgfVxuICBpbnN0YWxsZWREZXZpY2VzOiB7IG1haW46IG51bGwsIHJlbW90ZTogbnVsbCB9LFxuICAvLyDkuLvmnLrlt7Llronoo4XmqKHlnZdcbiAgbWFpblVuaXRNb2R1bGVzOiBbXSxcbiAgLy8g6L+c56uv5bey5a6J6KOF5qih5Z2XXG4gIHJlbW90ZVVuaXRNb2R1bGVzOiBbXSxcbiAgLy8g5Li75py66YCC6YWN5ZmoXG4gIG1haW5Vbml0QWRhcHRlcjogbnVsbCxcbiAgLy8g6L+c56uv6YCC6YWN5ZmoXG4gIHJlbW90ZVVuaXRBZGFwdGVyOiBudWxsLFxuICAvLyDkuLvmnLrmjqXlj6NcbiAgbWFpblVuaXRQb3J0czogW10sXG4gIC8vIOi/nOerr+aOpeWPo1xuICByZW1vdGVVbml0UG9ydHM6IFtdLFxuICAvLyDlvZPliY3pgInkuK3nmoTlt6XlhbdcbiAgc2VsZWN0ZWRUb29sOiBudWxsLFxuICAvLyDov57mjqXljLrnianlk4HliJfooahcbiAgY29ubmVjdGlvbkl0ZW1zOiBbXSxcbiAgLy8g6L+e5o6l6Lev5b6E5YiX6KGoXG4gIGNvbm5lY3Rpb25QYXRoczogW10sXG4gIC8vIOi/nuaOpeeKtuaAgeWIhuaekOe7k+aenFxuICBjb25uZWN0aW9uU3RhdHVzOiBbXSxcbiAgXG4gIC8vIOS8oOi+k+e6v+WfuuWHhueKtuaAgVxuICBoYXNCZW5jaG1hcmtNb2R1bGU6IGZhbHNlLFxuICAvLyDnur/nvIblj4LmlbBcbiAgY2FibGVQYXJhbXM6IHtcbiAgICBjb25kdWN0b3JNYXRlcmlhbDogJ2NvcHBlcicsXG4gICAgY29yZURpYW1ldGVyOiAwLjU3LFxuICAgIGluc3VsYXRpb25NYXRlcmlhbDogJ3BlJyxcbiAgICBpbnN1bGF0aW9uVGhpY2tuZXNzOiAwLjIsXG4gICAgdHdpc3RQaXRjaDogMTIsICAgICAgICAvLyDnu57ot50gKG1tKVxuICAgIHBhaXIyVHdpc3RSYXRpbzogMS4wLCAgLy8g56ys5LqM5a+557ue6Led5q+U5L6LICjnm7jlr7nkuo7nrKzkuIDlr7kpXG4gICAgY2FibGVMZW5ndGg6IDEwMCwgICAgICAvLyDnur/nvIbplb/luqYgKG0pXG4gICAgUjogMCwgICAgICAgICAgICAgICAgICAvLyDnlLXpmLsgUuKAsiAozqkvbSlcbiAgICBMOiAwLCAgICAgICAgICAgICAgICAgIC8vIOeUteaEnyBM4oCyIChuSC9tKVxuICAgIEM6IDAsICAgICAgICAgICAgICAgICAgLy8g55S15a65IEPigLIgKHBGL20pXG4gICAgRzogMCAgICAgICAgICAgICAgICAgICAvLyDnlLXlr7wgR+KAsiAoblMvbSlcbiAgfSxcblxuICAvLyDpgInmi6nlt6XlhbdcbiAgc2VsZWN0VG9vbDogKHRvb2wpID0+IHtcbiAgICBzZXQoeyBzZWxlY3RlZFRvb2w6IHRvb2wgfSk7XG4gIH0sXG4gIC8vIOWPlua2iOmAieaLqeW3peWFt1xuICBjbGVhclNlbGVjdGVkVG9vbDogKCkgPT4ge1xuICAgIHNldCh7IHNlbGVjdGVkVG9vbDogbnVsbCB9KTtcbiAgfSxcbiAgXG4gIC8vIOWuieijheiuvuWkh1xuICBpbnN0YWxsRGV2aWNlOiAoZGV2aWNlLCB0YXJnZXQpID0+IHtcbiAgICBzZXQoKHN0YXRlKSA9PiAoe1xuICAgICAgaW5zdGFsbGVkRGV2aWNlczoge1xuICAgICAgICAuLi5zdGF0ZS5pbnN0YWxsZWREZXZpY2VzLFxuICAgICAgICBbdGFyZ2V0XTogZGV2aWNlXG4gICAgICB9XG4gICAgfSkpO1xuICB9LFxuICBcbiAgLy8g5Y246L296K6+5aSHXG4gIHVuaW5zdGFsbERldmljZTogKHRhcmdldCkgPT4ge1xuICAgIHNldCgoc3RhdGUpID0+IHtcbiAgICAgIC8vIOWNuOi9veiuvuWkh+aXtu+8jOWQjOaXtua4hemZpOivpeiuvuWkh+S4iueahOaJgOacieaooeWdl+WSjOmAgumFjeWZqFxuICAgICAgY29uc3QgdXBkYXRlcyA9IHtcbiAgICAgICAgaW5zdGFsbGVkRGV2aWNlczoge1xuICAgICAgICAgIC4uLnN0YXRlLmluc3RhbGxlZERldmljZXMsXG4gICAgICAgICAgW3RhcmdldF06IG51bGxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIFxuICAgICAgLy8g5riF6Zmk5a+55bqU55qE5qih5Z2X5ZKM6YCC6YWN5ZmoXG4gICAgICBpZiAodGFyZ2V0ID09PSAnbWFpbicpIHtcbiAgICAgICAgdXBkYXRlcy5tYWluVW5pdE1vZHVsZXMgPSBbXTtcbiAgICAgICAgdXBkYXRlcy5tYWluVW5pdEFkYXB0ZXIgPSBudWxsO1xuICAgICAgICB1cGRhdGVzLm1haW5Vbml0Rml4dHVyZSA9IG51bGw7XG4gICAgICAgIHVwZGF0ZXMubWFpblVuaXRQb3J0cyA9IFtdO1xuICAgICAgICB1cGRhdGVzLmhhc0JlbmNobWFya01vZHVsZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlcy5yZW1vdGVVbml0TW9kdWxlcyA9IFtdO1xuICAgICAgICB1cGRhdGVzLnJlbW90ZVVuaXRBZGFwdGVyID0gbnVsbDtcbiAgICAgICAgdXBkYXRlcy5yZW1vdGVVbml0UG9ydHMgPSBbXTtcbiAgICAgICAgdXBkYXRlcy5oYXNCZW5jaG1hcmtNb2R1bGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgcmV0dXJuIHVwZGF0ZXM7XG4gICAgfSk7XG4gIH0sXG5cbiAgLy8g5a6J6KOF5qih5Z2XXG4gIGluc3RhbGxNb2R1bGU6IChtb2R1bGUsIHRhcmdldCkgPT4ge1xuICAgIHNldCgoc3RhdGUpID0+IHtcbiAgICAgIGlmICh0YXJnZXQgPT09ICdtYWluJykge1xuICAgICAgICBsZXQgcG9ydHMgPSBbXTtcbiAgICAgICAgaWYgKG1vZHVsZS5pZCA9PT0gJ2NmcCcpIHtcbiAgICAgICAgICBwb3J0cyA9IFtcbiAgICAgICAgICAgIHsgaWQ6ICdjZnAtc20tb3V0JywgdHlwZTogJ21vZGVscG9ydCcsIG1vZHVsZTogJ2NmcCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdjZnAtaW4nLCB0eXBlOiAnbW9kZWxwb3J0JywgbW9kdWxlOiAnY2ZwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ2NmcC1tbS1vdXQnLCB0eXBlOiAnbW9kZWxwb3J0JywgbW9kdWxlOiAnY2ZwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ3ZmbCcsIHR5cGU6ICdtb2RlbHBvcnQnLCBtb2R1bGU6ICdjZnAnIH1cbiAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZHVsZS5pZCA9PT0gJ29mcCcpIHtcbiAgICAgICAgICBwb3J0cyA9IFtcbiAgICAgICAgICAgIHsgaWQ6ICdvZnAtc20tb3V0JywgdHlwZTogJ21vZGVscG9ydCcsIG1vZHVsZTogJ29mcCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdvZnAtbW0tb3V0JywgdHlwZTogJ21vZGVscG9ydCcsIG1vZHVsZTogJ29mcCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICd2ZmwnLCB0eXBlOiAnbW9kZWxwb3J0JywgbW9kdWxlOiAnb2ZwJyB9XG4gICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUuaWQgPT09ICdjYWwtMnAnKSB7XG4gICAgICAgICAgcG9ydHMgPSBbXG4gICAgICAgICAgICB7IGlkOiAnY2FsLTFwLTEnLCB0eXBlOiAnY2FsLWNvcHBlcicsIG1vZHVsZTogJ2NhbC0ycCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdjYWwtMXAtMicsIHR5cGU6ICdjYWwtY29wcGVyJywgbW9kdWxlOiAnY2FsLTJwJyB9XG4gICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUuaWQgPT09ICdjYWwtNHAnKSB7XG4gICAgICAgICAgcG9ydHMgPSBbXG4gICAgICAgICAgICB7IGlkOiAnY2FsLTJwLTEnLCB0eXBlOiAnY2FsLWNvcHBlcicsIG1vZHVsZTogJ2NhbC00cCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdjYWwtMnAtMicsIHR5cGU6ICdjYWwtY29wcGVyJywgbW9kdWxlOiAnY2FsLTRwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ2NhbC0ycC0zJywgdHlwZTogJ2NhbC1jb3BwZXInLCBtb2R1bGU6ICdjYWwtNHAnIH0sXG4gICAgICAgICAgICB7IGlkOiAnY2FsLTJwLTQnLCB0eXBlOiAnY2FsLWNvcHBlcicsIG1vZHVsZTogJ2NhbC00cCcgfVxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGNvbnN0IG5ld01haW5Nb2R1bGVzID0gWy4uLnN0YXRlLm1haW5Vbml0TW9kdWxlcywgbW9kdWxlXTtcbiAgICAgICAgY29uc3QgbmV3UmVtb3RlTW9kdWxlcyA9IHN0YXRlLnJlbW90ZVVuaXRNb2R1bGVzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1haW5Vbml0TW9kdWxlczogbmV3TWFpbk1vZHVsZXMsXG4gICAgICAgICAgbWFpblVuaXRQb3J0czogcG9ydHMsXG4gICAgICAgICAgaGFzQmVuY2htYXJrTW9kdWxlOiBuZXdNYWluTW9kdWxlcy5zb21lKG0gPT4gbS5pZCA9PT0gJ2JlbmNobWFyay1jb3BwZXInKSAmJiBuZXdSZW1vdGVNb2R1bGVzLnNvbWUobSA9PiBtLmlkID09PSAnYmVuY2htYXJrLWNvcHBlcicpXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcG9ydHMgPSBbXTtcbiAgICAgICAgaWYgKG1vZHVsZS5pZCA9PT0gJ2NmcCcpIHtcbiAgICAgICAgICBwb3J0cyA9IFtcbiAgICAgICAgICAgIHsgaWQ6ICdjZnAtc20tb3V0JywgdHlwZTogJ21vZGVscG9ydCcsIG1vZHVsZTogJ2NmcCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdjZnAtaW4nLCB0eXBlOiAnbW9kZWxwb3J0JywgbW9kdWxlOiAnY2ZwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ2NmcC1tbS1vdXQnLCB0eXBlOiAnbW9kZWxwb3J0JywgbW9kdWxlOiAnY2ZwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ3ZmbCcsIHR5cGU6ICdtb2RlbHBvcnQnLCBtb2R1bGU6ICdjZnAnIH1cbiAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZHVsZS5pZCA9PT0gJ2NhbC0ycCcpIHtcbiAgICAgICAgICBwb3J0cyA9IFtcbiAgICAgICAgICAgIHsgaWQ6ICdjYWwtMXAtMScsIHR5cGU6ICdjYWwtY29wcGVyJywgbW9kdWxlOiAnY2FsLTJwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ2NhbC0xcC0yJywgdHlwZTogJ2NhbC1jb3BwZXInLCBtb2R1bGU6ICdjYWwtMnAnIH1cbiAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZHVsZS5pZCA9PT0gJ2NhbC00cCcpIHtcbiAgICAgICAgICBwb3J0cyA9IFtcbiAgICAgICAgICAgIHsgaWQ6ICdjYWwtMnAtMScsIHR5cGU6ICdjYWwtY29wcGVyJywgbW9kdWxlOiAnY2FsLTRwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ2NhbC0ycC0yJywgdHlwZTogJ2NhbC1jb3BwZXInLCBtb2R1bGU6ICdjYWwtNHAnIH0sXG4gICAgICAgICAgICB7IGlkOiAnY2FsLTJwLTMnLCB0eXBlOiAnY2FsLWNvcHBlcicsIG1vZHVsZTogJ2NhbC00cCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdjYWwtMnAtNCcsIHR5cGU6ICdjYWwtY29wcGVyJywgbW9kdWxlOiAnY2FsLTRwJyB9XG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3QgbmV3UmVtb3RlTW9kdWxlcyA9IFsuLi5zdGF0ZS5yZW1vdGVVbml0TW9kdWxlcywgbW9kdWxlXTtcbiAgICAgICAgY29uc3QgbmV3TWFpbk1vZHVsZXMgPSBzdGF0ZS5tYWluVW5pdE1vZHVsZXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVtb3RlVW5pdE1vZHVsZXM6IG5ld1JlbW90ZU1vZHVsZXMsXG4gICAgICAgICAgcmVtb3RlVW5pdFBvcnRzOiBwb3J0cyxcbiAgICAgICAgICBoYXNCZW5jaG1hcmtNb2R1bGU6IG5ld01haW5Nb2R1bGVzLnNvbWUobSA9PiBtLmlkID09PSAnYmVuY2htYXJrLWNvcHBlcicpICYmIG5ld1JlbW90ZU1vZHVsZXMuc29tZShtID0+IG0uaWQgPT09ICdiZW5jaG1hcmstY29wcGVyJylcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcbiAgXG4gIC8vIOWNuOi9veaooeWdl1xuICB1bmluc3RhbGxNb2R1bGU6IChtb2R1bGVJZCwgdGFyZ2V0KSA9PiB7XG4gICAgc2V0KChzdGF0ZSkgPT4ge1xuICAgICAgaWYgKHRhcmdldCA9PT0gJ21haW4nKSB7XG4gICAgICAgIGNvbnN0IG5ld01haW5Nb2R1bGVzID0gc3RhdGUubWFpblVuaXRNb2R1bGVzLmZpbHRlcihtID0+IG0uaWQgIT09IG1vZHVsZUlkKTtcbiAgICAgICAgY29uc3QgbmV3UmVtb3RlTW9kdWxlcyA9IHN0YXRlLnJlbW90ZVVuaXRNb2R1bGVzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1haW5Vbml0TW9kdWxlczogbmV3TWFpbk1vZHVsZXMsXG4gICAgICAgICAgbWFpblVuaXRQb3J0czogW10sXG4gICAgICAgICAgbWFpblVuaXRBZGFwdGVyOiBudWxsLFxuICAgICAgICAgIGhhc0JlbmNobWFya01vZHVsZTogbmV3TWFpbk1vZHVsZXMuc29tZShtID0+IG0uaWQgPT09ICdiZW5jaG1hcmstY29wcGVyJykgJiYgbmV3UmVtb3RlTW9kdWxlcy5zb21lKG0gPT4gbS5pZCA9PT0gJ2JlbmNobWFyay1jb3BwZXInKVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3UmVtb3RlTW9kdWxlcyA9IHN0YXRlLnJlbW90ZVVuaXRNb2R1bGVzLmZpbHRlcihtID0+IG0uaWQgIT09IG1vZHVsZUlkKTtcbiAgICAgICAgY29uc3QgbmV3TWFpbk1vZHVsZXMgPSBzdGF0ZS5tYWluVW5pdE1vZHVsZXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVtb3RlVW5pdE1vZHVsZXM6IG5ld1JlbW90ZU1vZHVsZXMsXG4gICAgICAgICAgcmVtb3RlVW5pdFBvcnRzOiBbXSxcbiAgICAgICAgICByZW1vdGVVbml0QWRhcHRlcjogbnVsbCxcbiAgICAgICAgICBoYXNCZW5jaG1hcmtNb2R1bGU6IG5ld01haW5Nb2R1bGVzLnNvbWUobSA9PiBtLmlkID09PSAnYmVuY2htYXJrLWNvcHBlcicpICYmIG5ld1JlbW90ZU1vZHVsZXMuc29tZShtID0+IG0uaWQgPT09ICdiZW5jaG1hcmstY29wcGVyJylcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcbiAgXG4gIC8vIOWuieijhemAgumFjeWZqFxuICBpbnN0YWxsQWRhcHRlcjogKGFkYXB0ZXIsIHRhcmdldCkgPT4ge1xuICAgIHNldCgoc3RhdGUpID0+ICh7XG4gICAgICBbdGFyZ2V0ID09PSAnbWFpbicgPyAnbWFpblVuaXRBZGFwdGVyJyA6ICdyZW1vdGVVbml0QWRhcHRlciddOiB7XG4gICAgICAgIC4uLmFkYXB0ZXIsXG4gICAgICAgIHBvcnQ6IHtcbiAgICAgICAgICBpZDogYCR7YWRhcHRlci5pZH1gLFxuICAgICAgICAgIHR5cGU6ICdtb2RlbHBvcnQnLFxuICAgICAgICAgIG1vZHVsZTogYWRhcHRlci5pZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9LFxuICBcbiAgLy8g5Y246L296YCC6YWN5ZmoXG4gIHVuaW5zdGFsbEFkYXB0ZXI6ICh0YXJnZXQpID0+IHtcbiAgICBzZXQoKHN0YXRlKSA9PiAoe1xuICAgICAgW3RhcmdldCA9PT0gJ21haW4nID8gJ21haW5Vbml0QWRhcHRlcicgOiAncmVtb3RlVW5pdEFkYXB0ZXInXTogbnVsbFxuICAgIH0pKTtcbiAgfSxcblxuICBcbiAgLy8g5pu05paw5pWF6Zqc5Zy65pmvXG4gIHVwZGF0ZUZhdWx0U2NlbmFyaW9zOiAoc3RhdHVzKSA9PiB7XG4gICAgc2V0KCgpID0+ICh7XG4gICAgICBmYXVsdFNjZW5hcmlvczogc3RhdHVzXG4gICAgfSkpO1xuICB9LFxuICAvLyDmm7TmlrDnq57otZvmlYXpmpzlnLrmma9cbiAgdXBkYXRlV29ybGRTa2lsbFNjZW5hcmlvczogKHN0YXR1cykgPT4ge1xuICAgIHNldCgoKSA9PiAoe1xuICAgICAgV29ybGRTa2lsbFNjZW5hcmlvczogc3RhdHVzXG4gICAgfSkpO1xuICB9LFxuICAvLyDmm7TmlrDotZvkvY3lj7dcbiAgdXBkYXRlU2VhdE51bWJlcjogKG51bWJlcikgPT4ge1xuICAgIHNldCgoKSA9PiAoe1xuICAgICAgc2VhdE51bWJlcjogbnVtYmVyXG4gICAgfSkpO1xuICB9LFxuXG4gIC8vIOabtOaWsOavlOi1m0lEXG4gIHVwZGF0ZVNlYXRVVUlEOiAodXVpZCkgPT4ge1xuICAgIHNldCgoKSA9PiAoe1xuICAgICAgc2VhdFVVSUQ6IHV1aWRcbiAgICB9KSk7XG4gIH0sXG5cbiAgLy8g5pu05paw5q+U6LWb5byA5aeL5pe26Ze0XG4gIHVwZGF0ZVNlYXRTdGFydFRpbWU6IChzdGFydFRpbWUpID0+IHtcbiAgICBzZXQoKCkgPT4gKHtcbiAgICAgIHNlYXRTdGFydFRpbWU6IHN0YXJ0VGltZVxuICAgIH0pKTtcbiAgfSxcbiAgLy8g5pu05paw5oql5ZGK5pWw5o2uXG4gIHVwZGF0ZVJlcG9ydHM6IChyZWNvcmRzKSA9PiB7XG4gICAgc2V0KCgpID0+ICh7XG4gICAgICByZXBvcnRzOiByZWNvcmRzXG4gICAgfSkpO1xuICB9LFxuICBcblxuLy8gLS0tLSoqKueJqeWTgeWMuuWfn+aWueazlSoqKi0tLS1cbiAgLy8g5re75Yqg54mp5ZOB5Yiw6L+e5o6l5Yy6XG4gIGFkZENvbm5lY3Rpb25JdGVtOiAoaXRlbSkgPT4gXG4gICAgc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgIGNvbm5lY3Rpb25JdGVtczogWy4uLnN0YXRlLmNvbm5lY3Rpb25JdGVtcywgaXRlbV1cbiAgICB9KSksXG5cbiAgLy8g5LuO6L+e5o6l5Yy656e76Zmk54mp5ZOBXG4gIHJlbW92ZUNvbm5lY3Rpb25JdGVtOiAoaW5kZXgpID0+XG4gICAgc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgIGNvbm5lY3Rpb25JdGVtczogc3RhdGUuY29ubmVjdGlvbkl0ZW1zLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpXG4gICAgfSkpLFxuXG5cbi8vIC0tLSoqKui/nuaOpei3r+W+hCoqKi0tLVxuICAvLyDmt7vliqDov57mjqXot6/lvoRcbiAgYWRkQ29ubmVjdGlvblBhdGg6IChwYXRoKSA9PiBcbiAgICBzZXQoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBuZXdQYXRocyA9IFsuLi5zdGF0ZS5jb25uZWN0aW9uUGF0aHMsIHBhdGhdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29ubmVjdGlvblBhdGhzOiBuZXdQYXRoc1xuICAgICAgfTtcbiAgICB9KSxcblxuICAvLyDnp7vpmaTov57mjqXot6/lvoRcbiAgcmVtb3ZlQ29ubmVjdGlvblBhdGg6IChzb3VyY2VJZCwgdGFyZ2V0SWQpID0+XG4gICAgc2V0KChzdGF0ZSkgPT4ge1xuICAgICAgY29uc3QgbmV3UGF0aHMgPSBzdGF0ZS5jb25uZWN0aW9uUGF0aHMuZmlsdGVyKHBhdGggPT4gXG4gICAgICAgICEocGF0aC5zb3VyY2UgPT09IHNvdXJjZUlkICYmIHBhdGgudGFyZ2V0ID09PSB0YXJnZXRJZClcbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb25uZWN0aW9uUGF0aHM6IG5ld1BhdGhzXG4gICAgICB9O1xuICAgIH0pLFxuXG4gIC8vIOa4heepuui/nuaOpei3r+W+hFxuICBjbGVhckNvbm5lY3Rpb25QYXRoczogKCkgPT5cbiAgICBzZXQoKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29ubmVjdGlvblBhdGhzOiBbXVxuICAgICAgfTtcbiAgICB9KSxcblxuICAvLyDojrflj5blvZPliY3ov57mjqXot6/lvoRcbiAgZ2V0Q29ubmVjdGlvblBhdGhzOiAoKSA9PiBnZXQoKS5jb25uZWN0aW9uUGF0aHMsXG5cbiAvLyAtLS0qKirov57mjqXnirbmgIHliIbmnpDnu5PmnpwqKiotLS1cblxuXG4gIC8vIOabtOaWsOi/nuaOpeeKtuaAgVxuICB1cGRhdGVDb25uZWN0aW9uU3RhdHVzOiAoc3RhdHVzKSA9PlxuICAgIHNldCgoKSA9PiAoe1xuICAgICAgY29ubmVjdGlvblN0YXR1czogc3RhdHVzXG4gICAgfSkpLFxuXG4gIC8vIOaPkOekuuahhuaWueazlVxuICBzZXRTaG93VG90YWxUb2FzdDogKHNob3cpID0+IHNldCh7IHNob3dUb3RhbFRvYXN0OiBzaG93IH0pLFxuICBzZXRUb3RhbFRvYXN0TWVzc2FnZTogKG1lc3NhZ2UpID0+IHNldCh7IHRvdGFsVG9hc3RNZXNzYWdlOiBtZXNzYWdlIH0pLFxuXG4gIC8vIC0tLSoqKue6v+e8huWPguaVsOeuoeeQhioqKi0tLVxuICAvLyDmm7TmlrDkvKDovpPnur/ln7rlh4bnirbmgIFcbiAgdXBkYXRlSGFzQmVuY2htYXJrTW9kdWxlOiAoc3RhdHVzKSA9PlxuICAgIHNldCgoKSA9PiAoe1xuICAgICAgaGFzQmVuY2htYXJrTW9kdWxlOiBzdGF0dXNcbiAgICB9KSksXG4gIFxuICAvLyDmm7TmlrDnur/nvIblj4LmlbBcbiAgdXBkYXRlQ2FibGVQYXJhbXM6IChwYXJhbXMpID0+XG4gICAgc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgIGNhYmxlUGFyYW1zOiB7XG4gICAgICAgIC4uLnN0YXRlLmNhYmxlUGFyYW1zLFxuICAgICAgICAuLi5wYXJhbXNcbiAgICAgIH1cbiAgICB9KSksXG5cbiAgLy8g5pu05paw5Y2V5Liq57q/57yG5Y+C5pWwXG4gIHVwZGF0ZVNpbmdsZUNhYmxlUGFyYW06IChrZXksIHZhbHVlKSA9PlxuICAgIHNldCgoc3RhdGUpID0+ICh7XG4gICAgICBjYWJsZVBhcmFtczoge1xuICAgICAgICAuLi5zdGF0ZS5jYWJsZVBhcmFtcyxcbiAgICAgICAgW2tleV06IHZhbHVlXG4gICAgICB9XG4gICAgfSkpLFxuXG4gIC8vIOmHjee9rue6v+e8huWPguaVsFxuICByZXNldENhYmxlUGFyYW1zOiAoKSA9PlxuICAgIHNldCgoKSA9PiAoe1xuICAgICAgY2FibGVQYXJhbXM6IHtcbiAgICAgICAgY29uZHVjdG9yTWF0ZXJpYWw6ICdjb3BwZXInLFxuICAgICAgICBjb3JlRGlhbWV0ZXI6IDAuNTcsXG4gICAgICAgIGluc3VsYXRpb25NYXRlcmlhbDogJ3BlJyxcbiAgICAgICAgaW5zdWxhdGlvblRoaWNrbmVzczogMC4yLFxuICAgICAgICB0d2lzdFBpdGNoOiAxMixcbiAgICAgICAgcGFpcjJUd2lzdFJhdGlvOiAxLjAsXG4gICAgICAgIGNhYmxlTGVuZ3RoOiAxMDAsXG4gICAgICAgIFI6IDAsXG4gICAgICAgIEw6IDAsXG4gICAgICAgIEM6IDAsXG4gICAgICAgIEc6IDBcbiAgICAgIH1cbiAgICB9KSksXG5cbi8vIOWIneWni+WMluaVsOaNrlxuXG4gICAgLy8g6YeN572u5Yiw6buY6K6k54q25oCBXG4gICAgcmVzZXRkZXZpY2VTdG9yZTogKCkgPT4ge1xuICAgICAgc2V0KCgpID0+ICh7XG4gICAgICAgIC8vIOW9k+WJjeWuieijheiuvuWkh1xuICAgICAgICBpbnN0YWxsZWREZXZpY2VzOiB7IG1haW46IG51bGwsIHJlbW90ZTogbnVsbCB9LFxuICAgICAgICAvLyDkuLvmnLrlt7Llronoo4XmqKHlnZdcbiAgICAgICAgbWFpblVuaXRNb2R1bGVzOiBbXSxcbiAgICAgICAgLy8g6L+c56uv5bey5a6J6KOF5qih5Z2XXG4gICAgICAgIHJlbW90ZVVuaXRNb2R1bGVzOiBbXSxcbiAgICAgICAgLy8g5Li75py66YCC6YWN5ZmoXG4gICAgICAgIG1haW5Vbml0QWRhcHRlcjogbnVsbCxcbiAgICAgICAgLy8g6L+c56uv6YCC6YWN5ZmoXG4gICAgICAgIHJlbW90ZVVuaXRBZGFwdGVyOiBudWxsLFxuICAgICAgICAvLyDkuLvmnLrmjqXlj6NcbiAgICAgICAgbWFpblVuaXRQb3J0czogW10sXG4gICAgICAgIC8vIOi/nOerr+aOpeWPo1xuICAgICAgICByZW1vdGVVbml0UG9ydHM6IFtdLFxuICAgICAgICAvLyDlvZPliY3pgInkuK3nmoTlt6XlhbdcbiAgICAgICAgc2VsZWN0ZWRUb29sOiBudWxsLFxuICAgICAgICAvLyDov57mjqXljLrnianlk4HliJfooahcbiAgICAgICAgY29ubmVjdGlvbkl0ZW1zOiBbXSxcbiAgICAgICAgLy8g6L+e5o6l6Lev5b6E5YiX6KGoXG4gICAgICAgIGNvbm5lY3Rpb25QYXRoczogW10sXG4gICAgICAgIC8vIOi/nuaOpeeKtuaAgeWIhuaekOe7k+aenFxuICAgICAgICBjb25uZWN0aW9uU3RhdHVzOiBbXSxcbiAgICAgICAgLy8g5oql5ZGK5pWw5o2uXG4gICAgICAgIHJlcG9ydHM6IFtdLFxuICAgICAgICAvLyDkvKDovpPnur/ln7rlh4bnirbmgIFcbiAgICAgICAgaGFzQmVuY2htYXJrTW9kdWxlOiBmYWxzZSxcbiAgICAgICAgLy8g57q/57yG5Y+C5pWwXG4gICAgICAgIGNhYmxlUGFyYW1zOiB7XG4gICAgICAgICAgY29uZHVjdG9yTWF0ZXJpYWw6ICdjb3BwZXInLFxuICAgICAgICAgIGNvcmVEaWFtZXRlcjogMC41NyxcbiAgICAgICAgICBpbnN1bGF0aW9uTWF0ZXJpYWw6ICdwZScsXG4gICAgICAgICAgaW5zdWxhdGlvblRoaWNrbmVzczogMC4yLFxuICAgICAgICAgIHR3aXN0UGl0Y2g6IDEyLFxuICAgICAgICAgIHBhaXIyVHdpc3RSYXRpbzogMS4wLFxuICAgICAgICAgIGNhYmxlTGVuZ3RoOiAxMDAsXG4gICAgICAgICAgUjogMCxcbiAgICAgICAgICBMOiAwLFxuICAgICAgICAgIEM6IDAsXG4gICAgICAgICAgRzogMFxuICAgICAgICB9XG4gICAgICB9KSk7XG4gIH0sXG5cblxuXG59KVxuXG4vL2RldnRvb2xzXG4gIClcbiAgXG4pO1xuXG5cblxuXG5cbmV4cG9ydCBkZWZhdWx0IHVzZURldmljZVN0b3JlO1xuIl0sIm5hbWVzIjpbImNyZWF0ZSIsImRldnRvb2xzIiwidXNlRGV2aWNlU3RvcmUiLCJzZXQiLCJnZXQiLCJlc3Rtb2RlbCIsInVwZGF0ZUVzdG1vZGVsIiwibW9kZWwiLCJkZXZpY2VzIiwiaWQiLCJuYW1lIiwidHlwZSIsImltYWdlIiwiZGVzY3JpcHRpb24iLCJwb3J0VHlwZSIsImpzdHlwZSIsImZhdWx0U2NlbmFyaW9zIiwiV29ybGRTa2lsbFNjZW5hcmlvcyIsInNlYXROdW1iZXIiLCJzZWF0VVVJRCIsInNlYXRTdGFydFRpbWUiLCJyZXBvcnRzIiwiaW5zdGFsbGVkRGV2aWNlcyIsIm1haW4iLCJyZW1vdGUiLCJtYWluVW5pdE1vZHVsZXMiLCJyZW1vdGVVbml0TW9kdWxlcyIsIm1haW5Vbml0QWRhcHRlciIsInJlbW90ZVVuaXRBZGFwdGVyIiwibWFpblVuaXRQb3J0cyIsInJlbW90ZVVuaXRQb3J0cyIsInNlbGVjdGVkVG9vbCIsImNvbm5lY3Rpb25JdGVtcyIsImNvbm5lY3Rpb25QYXRocyIsImNvbm5lY3Rpb25TdGF0dXMiLCJoYXNCZW5jaG1hcmtNb2R1bGUiLCJjYWJsZVBhcmFtcyIsImNvbmR1Y3Rvck1hdGVyaWFsIiwiY29yZURpYW1ldGVyIiwiaW5zdWxhdGlvbk1hdGVyaWFsIiwiaW5zdWxhdGlvblRoaWNrbmVzcyIsInR3aXN0UGl0Y2giLCJwYWlyMlR3aXN0UmF0aW8iLCJjYWJsZUxlbmd0aCIsIlIiLCJMIiwiQyIsIkciLCJzZWxlY3RUb29sIiwidG9vbCIsImNsZWFyU2VsZWN0ZWRUb29sIiwiaW5zdGFsbERldmljZSIsImRldmljZSIsInRhcmdldCIsInN0YXRlIiwidW5pbnN0YWxsRGV2aWNlIiwidXBkYXRlcyIsIm1haW5Vbml0Rml4dHVyZSIsImluc3RhbGxNb2R1bGUiLCJtb2R1bGUiLCJwb3J0cyIsIm5ld01haW5Nb2R1bGVzIiwibmV3UmVtb3RlTW9kdWxlcyIsInNvbWUiLCJtIiwidW5pbnN0YWxsTW9kdWxlIiwibW9kdWxlSWQiLCJmaWx0ZXIiLCJpbnN0YWxsQWRhcHRlciIsImFkYXB0ZXIiLCJwb3J0IiwidW5pbnN0YWxsQWRhcHRlciIsInVwZGF0ZUZhdWx0U2NlbmFyaW9zIiwic3RhdHVzIiwidXBkYXRlV29ybGRTa2lsbFNjZW5hcmlvcyIsInVwZGF0ZVNlYXROdW1iZXIiLCJudW1iZXIiLCJ1cGRhdGVTZWF0VVVJRCIsInV1aWQiLCJ1cGRhdGVTZWF0U3RhcnRUaW1lIiwic3RhcnRUaW1lIiwidXBkYXRlUmVwb3J0cyIsInJlY29yZHMiLCJhZGRDb25uZWN0aW9uSXRlbSIsIml0ZW0iLCJyZW1vdmVDb25uZWN0aW9uSXRlbSIsImluZGV4IiwiXyIsImkiLCJhZGRDb25uZWN0aW9uUGF0aCIsInBhdGgiLCJuZXdQYXRocyIsInJlbW92ZUNvbm5lY3Rpb25QYXRoIiwic291cmNlSWQiLCJ0YXJnZXRJZCIsInNvdXJjZSIsImNsZWFyQ29ubmVjdGlvblBhdGhzIiwiZ2V0Q29ubmVjdGlvblBhdGhzIiwidXBkYXRlQ29ubmVjdGlvblN0YXR1cyIsInNldFNob3dUb3RhbFRvYXN0Iiwic2hvdyIsInNob3dUb3RhbFRvYXN0Iiwic2V0VG90YWxUb2FzdE1lc3NhZ2UiLCJtZXNzYWdlIiwidG90YWxUb2FzdE1lc3NhZ2UiLCJ1cGRhdGVIYXNCZW5jaG1hcmtNb2R1bGUiLCJ1cGRhdGVDYWJsZVBhcmFtcyIsInBhcmFtcyIsInVwZGF0ZVNpbmdsZUNhYmxlUGFyYW0iLCJrZXkiLCJ2YWx1ZSIsInJlc2V0Q2FibGVQYXJhbXMiLCJyZXNldGRldmljZVN0b3JlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./src/store/deviceStore.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./src/styles/globals.css":
|
||
/*!********************************!*\
|
||
!*** ./src/styles/globals.css ***!
|
||
\********************************/
|
||
/***/ (() => {
|
||
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./src/utils/asset.js":
|
||
/*!****************************!*\
|
||
!*** ./src/utils/asset.js ***!
|
||
\****************************/
|
||
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAssetUrl: () => (/* binding */ getAssetUrl)\n/* harmony export */ });\n/* harmony import */ var _store_deviceStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/store/deviceStore */ \"(pages-dir-node)/./src/store/deviceStore.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_store_deviceStore__WEBPACK_IMPORTED_MODULE_0__]);\n_store_deviceStore__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\nfunction getAssetUrl(relativePath) {\n const { estmodel } = _store_deviceStore__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getState();\n const cleanPath = relativePath?.startsWith('/') ? relativePath : `/${relativePath}`;\n if (!estmodel) return cleanPath;\n if (cleanPath.startsWith(`/${estmodel}/`)) return cleanPath;\n return `/${estmodel}${cleanPath}`;\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3NyYy91dGlscy9hc3NldC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRDtBQUUxQyxTQUFTQyxZQUFZQyxZQUFZO0lBQ3BDLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdILG1FQUF1QjtJQUM1QyxNQUFNSyxZQUFZSCxjQUFjSSxXQUFXLE9BQU9KLGVBQWUsQ0FBQyxDQUFDLEVBQUVBLGNBQWM7SUFFbkYsSUFBSSxDQUFDQyxVQUFVLE9BQU9FO0lBQ3RCLElBQUlBLFVBQVVDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRUgsU0FBUyxDQUFDLENBQUMsR0FBRyxPQUFPRTtJQUVsRCxPQUFPLENBQUMsQ0FBQyxFQUFFRixXQUFXRSxXQUFXO0FBQ3JDIiwic291cmNlcyI6WyIvb3B0L2Rldi9lc3QtZHN4L3NyYy91dGlscy9hc3NldC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXNlRGV2aWNlU3RvcmUgZnJvbSAnQC9zdG9yZS9kZXZpY2VTdG9yZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXNzZXRVcmwocmVsYXRpdmVQYXRoKSB7XHJcbiAgICBjb25zdCB7IGVzdG1vZGVsIH0gPSB1c2VEZXZpY2VTdG9yZS5nZXRTdGF0ZSgpO1xyXG4gICAgY29uc3QgY2xlYW5QYXRoID0gcmVsYXRpdmVQYXRoPy5zdGFydHNXaXRoKCcvJykgPyByZWxhdGl2ZVBhdGggOiBgLyR7cmVsYXRpdmVQYXRofWA7XHJcblxyXG4gICAgaWYgKCFlc3Rtb2RlbCkgcmV0dXJuIGNsZWFuUGF0aDtcclxuICAgIGlmIChjbGVhblBhdGguc3RhcnRzV2l0aChgLyR7ZXN0bW9kZWx9L2ApKSByZXR1cm4gY2xlYW5QYXRoO1xyXG5cclxuICAgIHJldHVybiBgLyR7ZXN0bW9kZWx9JHtjbGVhblBhdGh9YDtcclxufSJdLCJuYW1lcyI6WyJ1c2VEZXZpY2VTdG9yZSIsImdldEFzc2V0VXJsIiwicmVsYXRpdmVQYXRoIiwiZXN0bW9kZWwiLCJnZXRTdGF0ZSIsImNsZWFuUGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./src/utils/asset.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "next/head":
|
||
/*!****************************!*\
|
||
!*** external "next/head" ***!
|
||
\****************************/
|
||
/***/ ((module) => {
|
||
|
||
"use strict";
|
||
module.exports = require("next/head");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "react":
|
||
/*!************************!*\
|
||
!*** external "react" ***!
|
||
\************************/
|
||
/***/ ((module) => {
|
||
|
||
"use strict";
|
||
module.exports = require("react");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "react/jsx-dev-runtime":
|
||
/*!****************************************!*\
|
||
!*** external "react/jsx-dev-runtime" ***!
|
||
\****************************************/
|
||
/***/ ((module) => {
|
||
|
||
"use strict";
|
||
module.exports = require("react/jsx-dev-runtime");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "zustand":
|
||
/*!**************************!*\
|
||
!*** external "zustand" ***!
|
||
\**************************/
|
||
/***/ ((module) => {
|
||
|
||
"use strict";
|
||
module.exports = import("zustand");;
|
||
|
||
/***/ }),
|
||
|
||
/***/ "zustand/middleware":
|
||
/*!*************************************!*\
|
||
!*** external "zustand/middleware" ***!
|
||
\*************************************/
|
||
/***/ ((module) => {
|
||
|
||
"use strict";
|
||
module.exports = import("zustand/middleware");;
|
||
|
||
/***/ })
|
||
|
||
};
|
||
;
|
||
|
||
// load runtime
|
||
var __webpack_require__ = require("../webpack-runtime.js");
|
||
__webpack_require__.C(exports);
|
||
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
||
var __webpack_exports__ = (__webpack_exec__("(pages-dir-node)/./src/pages/_app.js"));
|
||
module.exports = __webpack_exports__;
|
||
|
||
})(); |