You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NextWeb/.next/static/webpack/_app-pages-browser_app_comp...

22 lines
325 KiB
JavaScript

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("_app-pages-browser_app_components_settings_tsx",{
/***/ "(app-pages-browser)/./app/components/settings.tsx":
/*!*************************************!*\
!*** ./app/components/settings.tsx ***!
\*************************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Settings: function() { return /* binding */ Settings; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _settings_module_scss__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./settings.module.scss */ \"(app-pages-browser)/./app/components/settings.module.scss\");\n/* harmony import */ var _settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_settings_module_scss__WEBPACK_IMPORTED_MODULE_34__);\n/* harmony import */ var _icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload.svg */ \"(app-pages-browser)/./app/icons/reload.svg\");\n/* harmony import */ var _icons_add_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/add.svg */ \"(app-pages-browser)/./app/icons/add.svg\");\n/* harmony import */ var _icons_close_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/close.svg */ \"(app-pages-browser)/./app/icons/close.svg\");\n/* harmony import */ var _icons_copy_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/copy.svg */ \"(app-pages-browser)/./app/icons/copy.svg\");\n/* harmony import */ var _icons_clear_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/clear.svg */ \"(app-pages-browser)/./app/icons/clear.svg\");\n/* harmony import */ var _icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/three-dots.svg */ \"(app-pages-browser)/./app/icons/three-dots.svg\");\n/* harmony import */ var _icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/edit.svg */ \"(app-pages-browser)/./app/icons/edit.svg\");\n/* harmony import */ var _icons_fire_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../icons/fire.svg */ \"(app-pages-browser)/./app/icons/fire.svg\");\n/* harmony import */ var _icons_eye_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../icons/eye.svg */ \"(app-pages-browser)/./app/icons/eye.svg\");\n/* harmony import */ var _icons_confirm_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../icons/confirm.svg */ \"(app-pages-browser)/./app/icons/confirm.svg\");\n/* harmony import */ var _icons_connection_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../icons/connection.svg */ \"(app-pages-browser)/./app/icons/connection.svg\");\n/* harmony import */ var _icons_cloud_success_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../icons/cloud-success.svg */ \"(app-pages-browser)/./app/icons/cloud-success.svg\");\n/* harmony import */ var _icons_cloud_fail_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../icons/cloud-fail.svg */ \"(app-pages-browser)/./app/icons/cloud-fail.svg\");\n/* harmony import */ var _utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/auth-settings-events */ \"(app-pages-browser)/./app/utils/auth-settings-events.ts\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ui-lib */ \"(app-pages-browser)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _model_config__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./model-config */ \"(app-pages-browser)/./app/components/model-config.tsx\");\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./button */ \"(app-pages-browser)/./app/components/button.tsx\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../store */ \"(app-pages-browser)/./app/store/index.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../locales */ \"(app-pages-browser)/./app/locales/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils */ \"(app-pages-browser)/./app/utils.ts\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../constant */ \"(app-pages-browser)/./app/constant.ts\");\n/* harmony import */ var _store_prompt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../store/prompt */ \"(app-pages-browser)/./app/store/prompt.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./error */ \"(app-pages-browser)/./app/components/error.tsx\");\n/* harmony import */ var _input_range__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./input-range */ \"(app-pages-browser)/./app/components/input-range.tsx\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! react-router-dom */ \"(app-pages-browser)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var _emoji__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./emoji */ \"(app-pages-browser)/./app/components/emoji.tsx\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../config/client */ \"(app-pages-browser)/./app/config/client.ts\");\n/* harmony import */ var _store_sync__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../store/sync */ \"(app-pages-browser)/./app/store/sync.ts\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! nanoid */ \"(app-pages-browser)/./node_modules/nanoid/index.browser.js\");\n/* harmony import */ var _store_mask__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../store/mask */ \"(app-pages-browser)/./app/store/mask.ts\");\n/* harmony import */ var _utils_cloud__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../utils/cloud */ \"(app-pages-browser)/./app/utils/cloud/index.ts\");\n/* harmony import */ var _tts_config__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./tts-config */ \"(app-pages-browser)/./app/components/tts-config.tsx\");\n/* harmony import */ var _realtime_chat_realtime_config__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./realtime-chat/realtime-config */ \"(app-pages-browser)/./app/components/realtime-chat/realtime-config.tsx\");\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction EditPromptModal(props) {\n _s();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_24__.usePromptStore)();\n const prompt = promptStore.get(props.id);\n return prompt ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.EditModal.Title,\n onClose: props.onClose,\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n onClick: props.onClose,\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].UI.Confirm,\n bordered: true\n }, \"\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 102,\n columnNumber: 11\n }, void 0)\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"edit-prompt-modal\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: prompt.title,\n readOnly: !prompt.isUser,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"edit-prompt-title\"]),\n onInput: (e)=>promptStore.updatePrompt(props.id, (prompt)=>prompt.title = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 111,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Input, {\n value: prompt.content,\n readOnly: !prompt.isUser,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"edit-prompt-content\"]),\n rows: 10,\n onInput: (e)=>promptStore.updatePrompt(props.id, (prompt)=>prompt.content = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 123,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 110,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 98,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 97,\n columnNumber: 5\n }, this) : null;\n}\n_s(EditPromptModal, \"EzYblIzMAFxPJK+yzvwKHzO38X8=\", false, function() {\n return [\n _store_prompt__WEBPACK_IMPORTED_MODULE_24__.usePromptStore\n ];\n});\n_c = EditPromptModal;\nfunction UserPromptModal(props) {\n _s1();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_24__.usePromptStore)();\n const userPrompts = promptStore.getUserPrompts();\n const builtinPrompts = _store_prompt__WEBPACK_IMPORTED_MODULE_24__.SearchService.builtinPrompts;\n const allPrompts = userPrompts.concat(builtinPrompts);\n const [searchInput, setSearchInput] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [searchPrompts, setSearchPrompts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const prompts = searchInput.length > 0 ? searchPrompts : allPrompts;\n const [editingPromptId, setEditingPromptId] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (searchInput.length > 0) {\n const searchResult = _store_prompt__WEBPACK_IMPORTED_MODULE_24__.SearchService.search(searchInput);\n setSearchPrompts(searchResult);\n } else {\n setSearchPrompts([]);\n }\n }, [\n searchInput\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.Modal.Title,\n onClose: ()=>{\n var _props_onClose;\n return (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);\n },\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n onClick: ()=>{\n const promptId = promptStore.add({\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_35__.nanoid)(),\n createdAt: Date.now(),\n title: \"Empty Prompt\",\n content: \"Empty Prompt Content\"\n });\n setEditingPromptId(promptId);\n },\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_add_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 178,\n columnNumber: 19\n }, void 0),\n bordered: true,\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.Modal.Add\n }, \"add\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 167,\n columnNumber: 11\n }, void 0)\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-modal\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-search\"]),\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.Modal.Search,\n value: searchInput,\n onInput: (e)=>setSearchInput(e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 185,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-list\"]),\n children: prompts.map((v, _)=>/*#__PURE__*/ {\n var _v_id;\n return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-item\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-header\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-title\"]),\n children: v.title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 197,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-content\"]) + \" one-line\",\n children: v.content\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 198,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 196,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-buttons\"]),\n children: [\n v.isUser && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_clear_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 206,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-button\"]),\n onClick: ()=>promptStore.remove(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 205,\n columnNumber: 21\n }, this),\n v.isUser ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 213,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-button\"]),\n onClick: ()=>setEditingPromptId(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 212,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_eye_svg__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 219,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-button\"]),\n onClick: ()=>setEditingPromptId(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 218,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_copy_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 225,\n columnNumber: 27\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"user-prompt-button\"]),\n onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_21__.copyToClipboard)(v.content)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 224,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 203,\n columnNumber: 17\n }, this)\n ]\n }, (_v_id = v.id) !== null && _v_id !== void 0 ? _v_id : v.title, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 195,\n columnNumber: 15\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 193,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 184,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 163,\n columnNumber: 7\n }, this),\n editingPromptId !== undefined && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(EditPromptModal, {\n id: editingPromptId,\n onClose: ()=>setEditingPromptId(undefined)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 237,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 162,\n columnNumber: 5\n }, this);\n}\n_s1(UserPromptModal, \"j8e7IC+Qorb6vYwwV+saiLvwdt4=\", false, function() {\n return [\n _store_prompt__WEBPACK_IMPORTED_MODULE_24__.usePromptStore\n ];\n});\n_c1 = UserPromptModal;\nfunction DangerItems() {\n _s2();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_19__.useChatStore)();\n const appConfig = (0,_store__WEBPACK_IMPORTED_MODULE_19__.useAppConfig)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Reset.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Reset.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Reset.Title,\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Reset.Action,\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_16__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Reset.Confirm)) {\n appConfig.reset();\n }\n },\n type: \"danger\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 256,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 252,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Clear.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Clear.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Clear.Title,\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Clear.Action,\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_16__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Danger.Clear.Confirm)) {\n chatStore.clearAllData();\n }\n },\n type: \"danger\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 271,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 267,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 251,\n columnNumber: 5\n }, this);\n}\n_s2(DangerItems, \"bujEX65sRm+zZElj4DteQrQ/PHM=\", false, function() {\n return [\n _store__WEBPACK_IMPORTED_MODULE_19__.useChatStore,\n _store__WEBPACK_IMPORTED_MODULE_19__.useAppConfig\n ];\n});\n_c2 = DangerItems;\nfunction CheckButton() {\n _s3();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_29__.useSyncStore)();\n const couldCheck = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return syncStore.cloudSync();\n }, [\n syncStore\n ]);\n const [checkState, setCheckState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"none\");\n async function check() {\n setCheckState(\"checking\");\n const valid = await syncStore.check();\n setCheckState(valid ? \"success\" : \"failed\");\n }\n if (!couldCheck) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.Modal.Check,\n bordered: true,\n onClick: check,\n icon: checkState === \"none\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_connection_svg__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 312,\n columnNumber: 11\n }, void 0) : checkState === \"checking\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 314,\n columnNumber: 11\n }, void 0) : checkState === \"success\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cloud_success_svg__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 316,\n columnNumber: 11\n }, void 0) : checkState === \"failed\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cloud_fail_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 318,\n columnNumber: 11\n }, void 0) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_connection_svg__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 320,\n columnNumber: 11\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 306,\n columnNumber: 5\n }, this);\n}\n_s3(CheckButton, \"/6RI3yEungwoEAZn8dbo3xLpAIg=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_29__.useSyncStore\n ];\n});\n_c3 = CheckButton;\nfunction SyncConfigModal(props) {\n _s4();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_29__.useSyncStore)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.Modal.Title,\n onClose: ()=>{\n var _props_onClose;\n return (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);\n },\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CheckButton, {}, \"check\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 336,\n columnNumber: 11\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n onClick: props.onClose,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_confirm_svg__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 340,\n columnNumber: 19\n }, void 0),\n bordered: true,\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].UI.Confirm\n }, \"confirm\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 337,\n columnNumber: 11\n }, void 0)\n ],\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.SyncType.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.SyncType.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: syncStore.provider,\n onChange: (e)=>{\n syncStore.update((config)=>config.provider = e.target.value);\n },\n children: Object.entries(_utils_cloud__WEBPACK_IMPORTED_MODULE_31__.ProviderType).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 351,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 347,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.Proxy.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.Proxy.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: syncStore.useProxy,\n onChange: (e)=>{\n syncStore.update((config)=>config.useProxy = e.currentTarget.checked);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 372,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 368,\n columnNumber: 11\n }, this),\n syncStore.useProxy ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.ProxyUrl.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.ProxyUrl.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.proxyUrl,\n onChange: (e)=>{\n syncStore.update((config)=>config.proxyUrl = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 387,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 383,\n columnNumber: 13\n }, this) : null\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 346,\n columnNumber: 9\n }, this),\n syncStore.provider === _utils_cloud__WEBPACK_IMPORTED_MODULE_31__.ProviderType.WebDAV && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.WebDav.Endpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.webdav.endpoint,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.endpoint = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 404,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 403,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.WebDav.UserName,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.webdav.username,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.username = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 417,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 416,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.WebDav.Password,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n value: syncStore.webdav.password,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.password = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 429,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 428,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 402,\n columnNumber: 13\n }, this)\n }, void 0, false),\n syncStore.provider === _utils_cloud__WEBPACK_IMPORTED_MODULE_31__.ProviderType.UpStash && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.UpStash.Endpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.upstash.endpoint,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.endpoint = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 446,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 445,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.UpStash.UserName,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.upstash.username,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.STORAGE_KEY,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.username = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 459,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 458,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Sync.Config.UpStash.Password,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n value: syncStore.upstash.apiKey,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.apiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 472,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 471,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 444,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 332,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 331,\n columnNumber: 5\n }, this);\n}\n_s4(SyncConfigModal, \"7LGHNOh5zyQVSbzbR8YwVjAXtoY=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_29__.useSyncStore\n ];\n});\n_c4 = SyncConfigModal;\nfunction SyncItems() {\n _s5();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_29__.useSyncStore)();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_19__.useChatStore)();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_24__.usePromptStore)();\n const maskStore = (0,_store_mask__WEBPACK_IMPORTED_MODULE_30__.useMaskStore)();\n const couldSync = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return syncStore.cloudSync();\n }, [\n syncStore\n ]);\n const [showSyncConfigModal, setShowSyncConfigModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const stateOverview = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const sessions = chatStore.sessions;\n const messageCount = sessions.reduce((p, c)=>p + c.messages.length, 0);\n return {\n chat: sessions.length,\n message: messageCount,\n prompt: Object.keys(promptStore.prompts).length,\n mask: Object.keys(maskStore.masks).length\n };\n }, [\n chatStore.sessions,\n maskStore.masks,\n promptStore.prompts\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: showSyncConfigModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SyncConfigModal, {\n onClose: ()=>setShowSyncConfigModal(false)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 577,\n columnNumber: 9\n }, this)\n }, void 0, false);\n}\n_s5(SyncItems, \"nX5YTDzhgMuya10UCPA20+lQ5Uw=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_29__.useSyncStore,\n _store__WEBPACK_IMPORTED_MODULE_19__.useChatStore,\n _store_prompt__WEBPACK_IMPORTED_MODULE_24__.usePromptStore,\n _store_mask__WEBPACK_IMPORTED_MODULE_30__.useMaskStore\n ];\n});\n_c5 = SyncItems;\nfunction Settings() {\n var _getClientConfig;\n _s6();\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_36__.useNavigate)();\n const [showEmojiPicker, setShowEmojiPicker] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_19__.useAppConfig)();\n const updateConfig = config.update;\n const updateStore = (0,_store__WEBPACK_IMPORTED_MODULE_19__.useUpdateStore)();\n const [checkingUpdate, setCheckingUpdate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const currentVersion = updateStore.formatVersion(updateStore.version);\n const remoteId = updateStore.formatVersion(updateStore.remoteVersion);\n const hasNewVersion = (0,_utils__WEBPACK_IMPORTED_MODULE_21__.semverCompare)(currentVersion, remoteId) === -1;\n const updateUrl = ((_getClientConfig = (0,_config_client__WEBPACK_IMPORTED_MODULE_28__.getClientConfig)()) === null || _getClientConfig === void 0 ? void 0 : _getClientConfig.isApp) ? _constant__WEBPACK_IMPORTED_MODULE_23__.RELEASE_URL : _constant__WEBPACK_IMPORTED_MODULE_23__.UPDATE_URL;\n function checkUpdate() {\n let force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n setCheckingUpdate(true);\n updateStore.getLatestVersion(force).then(()=>{\n setCheckingUpdate(false);\n });\n console.log(\"[Update] local version \", updateStore.version);\n console.log(\"[Update] remote version \", updateStore.remoteVersion);\n }\n const accessStore = (0,_store__WEBPACK_IMPORTED_MODULE_19__.useAccessStore)();\n const shouldHideBalanceQuery = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const isOpenAiUrl = accessStore.openaiUrl.includes(_constant__WEBPACK_IMPORTED_MODULE_23__.OPENAI_BASE_URL);\n return accessStore.hideBalanceQuery || isOpenAiUrl || accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Azure;\n }, [\n accessStore.hideBalanceQuery,\n accessStore.openaiUrl,\n accessStore.provider\n ]);\n const usage = {\n used: updateStore.used,\n subscription: updateStore.subscription\n };\n const [loadingUsage, setLoadingUsage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n function checkUsage() {\n let force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n if (shouldHideBalanceQuery) {\n return;\n }\n setLoadingUsage(true);\n updateStore.updateUsage(force).finally(()=>{\n setLoadingUsage(false);\n });\n }\n const enabledAccessControl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>accessStore.enabledAccessControl(), // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_24__.usePromptStore)();\n const builtinCount = _store_prompt__WEBPACK_IMPORTED_MODULE_24__.SearchService.count.builtin;\n var _promptStore_getUserPrompts_length;\n const customCount = (_promptStore_getUserPrompts_length = promptStore.getUserPrompts().length) !== null && _promptStore_getUserPrompts_length !== void 0 ? _promptStore_getUserPrompts_length : 0;\n const [shouldShowPromptModal, setShowPromptModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const showUsage = accessStore.isAuthorized();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // checks per minutes\n checkUpdate();\n showUsage && checkUsage();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const keydownEvent = (e)=>{\n if (e.key === \"Escape\") {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_23__.Path.Home);\n }\n };\n if (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) {\n // Force to set custom endpoint to true if it's app\n accessStore.update((state)=>{\n state.useCustomConfig = true;\n });\n }\n document.addEventListener(\"keydown\", keydownEvent);\n return ()=>{\n document.removeEventListener(\"keydown\", keydownEvent);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const clientConfig = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_config_client__WEBPACK_IMPORTED_MODULE_28__.getClientConfig)(), []);\n const showAccessCode = enabledAccessControl && !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp);\n const accessCodeComponent = showAccessCode && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.AccessCode.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.AccessCode.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n value: accessStore.accessCode,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.AccessCode.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.accessCode = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 683,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 679,\n columnNumber: 5\n }, this);\n const saasStartComponent = /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default()[\"subtitle-button\"]),\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SaasStart.Title + \"\".concat(_locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SaasStart.Label),\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SaasStart.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SaasStart.Title + _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SaasStart.ChatNow,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_fire_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 710,\n columnNumber: 15\n }, void 0),\n type: \"primary\",\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SaasStart.ChatNow,\n onClick: ()=>{\n (0,_utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_15__.trackSettingsPageGuideToCPaymentClick)();\n window.location.href = _constant__WEBPACK_IMPORTED_MODULE_23__.SAAS_CHAT_URL;\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 705,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 697,\n columnNumber: 5\n }, this);\n const useCustomConfigComponent = !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.CustomEndpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.CustomEndpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.CustomEndpoint.Title,\n type: \"checkbox\",\n checked: accessStore.useCustomConfig,\n onChange: (e)=>accessStore.update((access)=>access.useCustomConfig = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 727,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 723,\n columnNumber: 7\n }, this);\n const openAIConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.OpenAI && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.OpenAI.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.OpenAI.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.OpenAI.Endpoint.Title,\n type: \"text\",\n value: accessStore.openaiUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.OPENAI_BASE_URL,\n onChange: (e)=>accessStore.update((access)=>access.openaiUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 747,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 743,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.OpenAI.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.OpenAI.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.ShowPassword,\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.OpenAI.ApiKey.Title,\n value: accessStore.openaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.OpenAI.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.openaiApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 763,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 759,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const azureConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Azure && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.Azure.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.Endpoint.Title,\n type: \"text\",\n value: accessStore.azureUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Azure.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.azureUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 788,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 782,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.ApiKey.Title,\n value: accessStore.azureApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.azureApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 804,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 800,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.ApiVerion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.ApiVerion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Azure.ApiVerion.Title,\n type: \"text\",\n value: accessStore.azureApiVersion,\n placeholder: \"2023-08-01-preview\",\n onChange: (e)=>accessStore.update((access)=>access.azureApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 820,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 816,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const googleConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Google && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.Google.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.Endpoint.Title,\n type: \"text\",\n value: accessStore.googleUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Google.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.googleUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 845,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 838,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.ApiKey.Title,\n value: accessStore.googleApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.googleApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 861,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 857,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.ApiVersion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.ApiVersion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.ApiVersion.Title,\n type: \"text\",\n value: accessStore.googleApiVersion,\n placeholder: \"2023-08-01-preview\",\n onChange: (e)=>accessStore.update((access)=>access.googleApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 877,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 873,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.GoogleSafetySettings.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.GoogleSafetySettings.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Google.GoogleSafetySettings.Title,\n value: accessStore.googleSafetySettings,\n onChange: (e)=>{\n accessStore.update((access)=>access.googleSafetySettings = e.target.value);\n },\n children: Object.entries(_constant__WEBPACK_IMPORTED_MODULE_23__.GoogleSafetySettingsThreshold).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 905,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 893,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 889,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const anthropicConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Anthropic && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.Anthropic.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.Endpoint.Title,\n type: \"text\",\n value: accessStore.anthropicUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Anthropic.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.anthropicUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 924,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 917,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.ApiKey.Title,\n value: accessStore.anthropicApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.anthropicApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 940,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 936,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.ApiVerion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.ApiVerion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Anthropic.ApiVerion.Title,\n type: \"text\",\n value: accessStore.anthropicApiVersion,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Anthropic.Vision,\n onChange: (e)=>accessStore.update((access)=>access.anthropicApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 956,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 952,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const baiduConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Baidu && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.Endpoint.Title,\n type: \"text\",\n value: accessStore.baiduUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Baidu.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.baiduUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 978,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 974,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.ApiKey.Title,\n value: accessStore.baiduApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.baiduApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 994,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 990,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.SecretKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.SecretKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.SecretKey.Title,\n value: accessStore.baiduSecretKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Baidu.SecretKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.baiduSecretKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1010,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1006,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const tencentConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Tencent && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.Endpoint.Title,\n type: \"text\",\n value: accessStore.tencentUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Tencent.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.tencentUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1032,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1028,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.ApiKey.Title,\n value: accessStore.tencentSecretId,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.tencentSecretId = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1048,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1044,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.SecretKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.SecretKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.SecretKey.Title,\n value: accessStore.tencentSecretKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Tencent.SecretKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.tencentSecretKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1064,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1060,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const byteDanceConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.ByteDance && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ByteDance.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ByteDance.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.ByteDance.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ByteDance.Endpoint.Title,\n type: \"text\",\n value: accessStore.bytedanceUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.ByteDance.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.bytedanceUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1089,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1082,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ByteDance.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ByteDance.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ByteDance.ApiKey.Title,\n value: accessStore.bytedanceApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ByteDance.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.bytedanceApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1105,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1101,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const alibabaConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Alibaba && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Alibaba.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Alibaba.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.Alibaba.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Alibaba.Endpoint.Title,\n type: \"text\",\n value: accessStore.alibabaUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Alibaba.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.alibabaUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1130,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1123,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Alibaba.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Alibaba.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Alibaba.ApiKey.Title,\n value: accessStore.alibabaApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Alibaba.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.alibabaApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1146,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1142,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const moonshotConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Moonshot && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Moonshot.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Moonshot.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.Moonshot.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Moonshot.Endpoint.Title,\n type: \"text\",\n value: accessStore.moonshotUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Moonshot.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.moonshotUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1171,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1164,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Moonshot.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Moonshot.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Moonshot.ApiKey.Title,\n value: accessStore.moonshotApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Moonshot.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.moonshotApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1187,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1183,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const deepseekConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.DeepSeek && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.DeepSeek.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.DeepSeek.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.DeepSeek.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.DeepSeek.Endpoint.Title,\n type: \"text\",\n value: accessStore.deepseekUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.DeepSeek.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.deepseekUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1212,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1205,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.DeepSeek.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.DeepSeek.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.DeepSeek.ApiKey.Title,\n value: accessStore.deepseekApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.DeepSeek.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.deepseekApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1228,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1224,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const XAIConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.XAI && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.XAI.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.XAI.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.XAI.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.XAI.Endpoint.Title,\n type: \"text\",\n value: accessStore.xaiUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.XAI.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.xaiUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1251,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1245,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.XAI.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.XAI.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.XAI.ApiKey.Title,\n value: accessStore.xaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.XAI.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.xaiApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1267,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1263,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const chatglmConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.ChatGLM && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ChatGLM.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ChatGLM.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.ChatGLM.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ChatGLM.Endpoint.Title,\n type: \"text\",\n value: accessStore.chatglmUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.ChatGLM.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.chatglmUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1292,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1285,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ChatGLM.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ChatGLM.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ChatGLM.ApiKey.Title,\n value: accessStore.chatglmApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.ChatGLM.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.chatglmApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1308,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1304,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const siliconflowConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.SiliconFlow && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SiliconFlow.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SiliconFlow.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.SiliconFlow.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SiliconFlow.Endpoint.Title,\n type: \"text\",\n value: accessStore.siliconflowUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.SiliconFlow.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.siliconflowUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1332,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1325,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SiliconFlow.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Title,\n value: accessStore.siliconflowApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.siliconflowApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1348,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1344,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const stabilityConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Stability && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Stability.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Stability.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.Stability.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Stability.Endpoint.Title,\n type: \"text\",\n value: accessStore.stabilityUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Stability.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.stabilityUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1373,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1366,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Stability.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Stability.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Stability.ApiKey.Title,\n value: accessStore.stabilityApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Stability.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.stabilityApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1389,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1385,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const lflytekConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider.Iflytek && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_23__.Iflytek.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.Endpoint.Title,\n type: \"text\",\n value: accessStore.iflytekUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_23__.Iflytek.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.iflytekUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1413,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1406,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.ApiKey.Title,\n value: accessStore.iflytekApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.iflytekApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1429,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1425,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.ApiSecret.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.ApiSecret.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.ApiSecret.Title,\n value: accessStore.iflytekApiSecret,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Iflytek.ApiSecret.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.iflytekApiSecret = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1446,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1442,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n var _config_fontSize, _usage_used, _usage_subscription;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_error__WEBPACK_IMPORTED_MODULE_25__.ErrorBoundary, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header\",\n \"data-tauri-drag-region\": true,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-title\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-main-title\",\n children: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1465,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-sub-title\",\n children: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.SubTitle\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1468,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1464,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-actions\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1473,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1474,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].UI.Close,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_close_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1478,\n columnNumber: 21\n }, void 0),\n onClick: ()=>navigate(_constant__WEBPACK_IMPORTED_MODULE_23__.Path.Home),\n bordered: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1476,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1475,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1472,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1463,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default().settings),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Avatar,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Popover, {\n onClose: ()=>setShowEmojiPicker(false),\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_27__.AvatarPicker, {\n onEmojiClick: (avatar)=>{\n updateConfig((config)=>config.avatar = avatar);\n setShowEmojiPicker(false);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1491,\n columnNumber: 17\n }, void 0),\n open: showEmojiPicker,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Avatar,\n tabIndex: 0,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_34___default().avatar),\n onClick: ()=>{\n setShowEmojiPicker(!showEmojiPicker);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_27__.Avatar, {\n avatar: config.avatar\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1508,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1500,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1488,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1487,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Update.Version(currentVersion !== null && currentVersion !== void 0 ? currentVersion : \"unknown\"),\n subTitle: checkingUpdate ? _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Update.IsChecking : hasNewVersion ? _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Update.FoundUpdate(remoteId !== null && remoteId !== void 0 ? remoteId : \"ERROR\") : _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Update.IsLatest,\n children: checkingUpdate ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1524,\n columnNumber: 15\n }, this) : hasNewVersion ? (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1528,\n columnNumber: 25\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Update.GoToUpdate,\n onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_21__.clientUpdate)()\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1527,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n href: updateUrl,\n target: \"_blank\",\n className: \"link\",\n children: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Update.GoToUpdate\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1533,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1539,\n columnNumber: 23\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Update.CheckUpdate,\n onClick: ()=>checkUpdate(true)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1538,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1513,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.SendKey,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.SendKey,\n value: config.submitKey,\n onChange: (e)=>{\n updateConfig((config)=>config.submitKey = e.target.value);\n },\n children: Object.values(_store__WEBPACK_IMPORTED_MODULE_19__.SubmitKey).map((v)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: v\n }, v, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1558,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1547,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1546,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Theme,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Theme,\n value: config.theme,\n onChange: (e)=>{\n updateConfig((config)=>config.theme = e.target.value);\n },\n children: Object.values(_store__WEBPACK_IMPORTED_MODULE_19__.Theme).map((v)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: v\n }, v, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1576,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1566,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1565,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Lang.Name,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Lang.Name,\n value: (0,_locales__WEBPACK_IMPORTED_MODULE_20__.getLang)(),\n onChange: (e)=>{\n (0,_locales__WEBPACK_IMPORTED_MODULE_20__.changeLang)(e.target.value);\n },\n children: _locales__WEBPACK_IMPORTED_MODULE_20__.AllLangs.map((lang)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: lang,\n children: _locales__WEBPACK_IMPORTED_MODULE_20__.ALL_LANG_OPTIONS[lang]\n }, lang, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1592,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1584,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1583,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.FontSize.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.FontSize.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_input_range__WEBPACK_IMPORTED_MODULE_26__.InputRange, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.FontSize.Title,\n title: \"\".concat((_config_fontSize = config.fontSize) !== null && _config_fontSize !== void 0 ? _config_fontSize : 14, \"px\"),\n value: config.fontSize,\n min: \"12\",\n max: \"40\",\n step: \"1\",\n onChange: (e)=>updateConfig((config)=>config.fontSize = Number.parseInt(e.currentTarget.value))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1603,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1599,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.FontFamily.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.FontFamily.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.FontFamily.Title,\n type: \"text\",\n value: config.fontFamily,\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.FontFamily.Placeholder,\n onChange: (e)=>updateConfig((config)=>config.fontFamily = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1623,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1619,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.AutoGenerateTitle.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.AutoGenerateTitle.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.AutoGenerateTitle.Title,\n type: \"checkbox\",\n checked: config.enableAutoGenerateTitle,\n onChange: (e)=>updateConfig((config)=>config.enableAutoGenerateTitle = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1640,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1636,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.SendPreviewBubble.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.SendPreviewBubble.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.SendPreviewBubble.Title,\n type: \"checkbox\",\n checked: config.sendPreviewBubble,\n onChange: (e)=>updateConfig((config)=>config.sendPreviewBubble = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1657,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1653,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Mask.Config.Artifacts.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Mask.Config.Artifacts.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Mask.Config.Artifacts.Title,\n type: \"checkbox\",\n checked: config.enableArtifacts,\n onChange: (e)=>updateConfig((config)=>config.enableArtifacts = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1674,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1670,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Mask.Config.CodeFold.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Mask.Config.CodeFold.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Mask.Config.CodeFold.Title,\n type: \"checkbox\",\n checked: config.enableCodeFold,\n \"data-testid\": \"enable-code-fold-checkbox\",\n onChange: (e)=>updateConfig((config)=>config.enableCodeFold = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1690,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1686,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1486,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SyncItems, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1704,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Mask.Splash.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Mask.Splash.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Mask.Splash.Title,\n type: \"checkbox\",\n checked: !config.dontShowMaskSplashScreen,\n onChange: (e)=>updateConfig((config)=>config.dontShowMaskSplashScreen = !e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1711,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1707,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Mask.Builtin.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Mask.Builtin.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Mask.Builtin.Title,\n type: \"checkbox\",\n checked: config.hideBuiltinMasks,\n onChange: (e)=>updateConfig((config)=>config.hideBuiltinMasks = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1729,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1725,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1706,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.Disable.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.Disable.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.Disable.Title,\n type: \"checkbox\",\n checked: config.disablePromptHint,\n onChange: (e)=>updateConfig((config)=>config.disablePromptHint = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1748,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1744,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.List,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.ListCount(builtinCount, customCount),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.List + _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.Edit,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1770,\n columnNumber: 21\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Prompt.Edit,\n onClick: ()=>setShowPromptModal(true)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1768,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1761,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1743,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n id: _constant__WEBPACK_IMPORTED_MODULE_23__.SlotID.CustomModel,\n children: [\n saasStartComponent,\n accessCodeComponent,\n !accessStore.hideUserApiKey && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n useCustomConfigComponent,\n accessStore.useCustomConfig && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Provider.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Provider.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.Provider.Title,\n value: accessStore.provider,\n onChange: (e)=>{\n accessStore.update((access)=>access.provider = e.target.value);\n },\n children: Object.entries(_constant__WEBPACK_IMPORTED_MODULE_23__.ServiceProvider).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1803,\n columnNumber: 25\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1791,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1787,\n columnNumber: 19\n }, this),\n openAIConfigComponent,\n azureConfigComponent,\n googleConfigComponent,\n anthropicConfigComponent,\n baiduConfigComponent,\n byteDanceConfigComponent,\n alibabaConfigComponent,\n tencentConfigComponent,\n moonshotConfigComponent,\n deepseekConfigComponent,\n stabilityConfigComponent,\n lflytekConfigComponent,\n XAIConfigComponent,\n chatglmConfigComponent,\n siliconflowConfigComponent\n ]\n }, void 0, true)\n ]\n }, void 0, true),\n !shouldHideBalanceQuery && !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Usage.Title,\n subTitle: showUsage ? loadingUsage ? _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Usage.IsChecking : _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Usage.SubTitle((_usage_used = usage === null || usage === void 0 ? void 0 : usage.used) !== null && _usage_used !== void 0 ? _usage_used : \"[?]\", (_usage_subscription = usage === null || usage === void 0 ? void 0 : usage.subscription) !== null && _usage_subscription !== void 0 ? _usage_subscription : \"[?]\") : _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Usage.NoAccess,\n children: !showUsage || loadingUsage ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1845,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_18__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1848,\n columnNumber: 25\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Usage.Check,\n onClick: ()=>checkUsage(true)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1847,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1831,\n columnNumber: 13\n }, this) : null,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.CustomModel.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.CustomModel.SubTitle,\n vertical: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_20__[\"default\"].Settings.Access.CustomModel.Title,\n style: {\n width: \"100%\",\n maxWidth: \"unset\",\n textAlign: \"left\"\n },\n type: \"text\",\n value: config.customModels,\n placeholder: \"model1,model2,model3\",\n onChange: (e)=>config.update((config)=>config.customModels = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1861,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1856,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1777,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_model_config__WEBPACK_IMPORTED_MODULE_17__.ModelConfigList, {\n modelConfig: config.modelConfig,\n updateConfig: (updater)=>{\n const modelConfig = {\n ...config.modelConfig\n };\n updater(modelConfig);\n config.update((config)=>config.modelConfig = modelConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1877,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1876,\n columnNumber: 9\n }, this),\n shouldShowPromptModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(UserPromptModal, {\n onClose: ()=>setShowPromptModal(false)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1888,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_realtime_chat_realtime_config__WEBPACK_IMPORTED_MODULE_33__.RealtimeConfigList, {\n realtimeConfig: config.realtimeConfig,\n updateConfig: (updater)=>{\n const realtimeConfig = {\n ...config.realtimeConfig\n };\n updater(realtimeConfig);\n config.update((config)=>config.realtimeConfig = realtimeConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1891,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1890,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_16__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_tts_config__WEBPACK_IMPORTED_MODULE_32__.TTSConfigList, {\n ttsConfig: config.ttsConfig,\n updateConfig: (updater)=>{\n const ttsConfig = {\n ...config.ttsConfig\n };\n updater(ttsConfig);\n config.update((config)=>config.ttsConfig = ttsConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1903,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1902,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DangerItems, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1913,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1485,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1462,\n columnNumber: 5\n }, this);\n}\n_s6(Settings, \"gamYpAPQsfvuG0awLCYLheWjSrg=\", false, function() {\n return [\n react_router_dom__WEBPACK_IMPORTED_MODULE_36__.useNavigate,\n _store__WEBPACK_IMPORTED_MODULE_19__.useAppConfig,\n _store__WEBPACK_IMPORTED_MODULE_19__.useUpdateStore,\n _store__WEBPACK_IMPORTED_MODULE_19__.useAccessStore,\n _store_prompt__WEBPACK_IMPORTED_MODULE_24__.usePromptStore\n ];\n});\n_c6 = Settings;\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6;\n$RefreshReg$(_c, \"EditPromptModal\");\n$RefreshReg$(_c1, \"UserPromptModal\");\n$RefreshReg$(_c2, \"DangerItems\");\n$RefreshReg$(_c3, \"CheckButton\");\n$RefreshReg$(_c4, \"SyncConfigModal\");\n$RefreshReg$(_c5, \"SyncItems\");\n$RefreshReg$(_c6, \"Settings\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb21wb25lbnRzL3NldHRpbmdzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBcUQ7QUFFVDtBQUVBO0FBQ0w7QUFDSTtBQUNGO0FBQ0U7QUFDTztBQUNUO0FBQ0E7QUFDRjtBQUlRO0FBRU07QUFDSztBQUNOO0FBQ2tDO0FBV3BFO0FBQytCO0FBRVg7QUFRcEI7QUFPRTtBQUNvRDtBQUMzQztBQXlCUjtBQUNtRDtBQUNoQztBQUNHO0FBQ0k7QUFDQTtBQUNJO0FBQ047QUFDYjtBQUNhO0FBQ0M7QUFDRDtBQUN3QjtBQUVyRSxTQUFTZ0YsZ0JBQWdCQyxLQUEwQzs7SUFDakUsTUFBTUMsY0FBY2YsOERBQWNBO0lBQ2xDLE1BQU1nQixTQUFTRCxZQUFZRSxHQUFHLENBQUNILE1BQU1JLEVBQUU7SUFFdkMsT0FBT0YsdUJBQ0wsOERBQUNHO1FBQUlDLFdBQVU7a0JBQ2IsNEVBQUNsRSwyQ0FBS0E7WUFDSm1FLE9BQU90RCxpREFBTUEsQ0FBQ3VELFFBQVEsQ0FBQ0MsTUFBTSxDQUFDQyxTQUFTLENBQUNDLEtBQUs7WUFDN0NDLFNBQVNaLE1BQU1ZLE9BQU87WUFDdEJDLFNBQVM7OEJBQ1AsOERBQUNuRSxnREFBVUE7b0JBRVRvRSxTQUFTZCxNQUFNWSxPQUFPO29CQUN0QkcsTUFBTTlELGlEQUFNQSxDQUFDK0QsRUFBRSxDQUFDQyxPQUFPO29CQUN2QkMsUUFBUTttQkFISjs7Ozs7YUFLUDtzQkFFRCw0RUFBQ2I7Z0JBQUlDLFdBQVdwRixvRkFBMkI7O2tDQUN6Qyw4REFBQ2lHO3dCQUNDQyxNQUFLO3dCQUNMQyxPQUFPbkIsT0FBT0ssS0FBSzt3QkFDbkJlLFVBQVUsQ0FBQ3BCLE9BQU9xQixNQUFNO3dCQUN4QmpCLFdBQVdwRixvRkFBMkI7d0JBQ3RDc0csU0FBUyxDQUFDQyxJQUNSeEIsWUFBWXlCLFlBQVksQ0FDdEIxQixNQUFNSSxFQUFFLEVB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LENBQUMsQ0FBQ0MsU0FBWUEsT0FBT3FPLFdBQVcsR0FBR0E7NEJBQ2xEOzs7Ozs7Ozs7OztvQkFJSHJKLHVDQUNDLDhEQUFDM0k7d0JBQWdCbEIsU0FBUyxJQUFNOEosbUJBQW1COzs7Ozs7a0NBRXJELDhEQUFDeE8sMENBQUlBO2tDQUNILDRFQUFDNEQsK0VBQWtCQTs0QkFDakJrVSxnQkFBZ0J2TyxPQUFPdU8sY0FBYzs0QkFDckM1TCxjQUFjLENBQUMyTDtnQ0FDYixNQUFNQyxpQkFBaUI7b0NBQUUsR0FBR3ZPLE9BQU91TyxjQUFjO2dDQUFDO2dDQUNsREQsUUFBUUM7Z0NBQ1J2TyxPQUFPRCxNQUFNLENBQ1gsQ0FBQ0MsU0FBWUEsT0FBT3VPLGNBQWMsR0FBR0E7NEJBRXpDOzs7Ozs7Ozs7OztrQ0FHSiw4REFBQzlYLDBDQUFJQTtrQ0FDSCw0RUFBQzJELHVEQUFhQTs0QkFDWm9VLFdBQVd4TyxPQUFPd08sU0FBUzs0QkFDM0I3TCxjQUFjLENBQUMyTDtnQ0FDYixNQUFNRSxZQUFZO29DQUFFLEdBQUd4TyxPQUFPd08sU0FBUztnQ0FBQztnQ0FDeENGLFFBQVFFO2dDQUNSeE8sT0FBT0QsTUFBTSxDQUFDLENBQUNDLFNBQVlBLE9BQU93TyxTQUFTLEdBQUdBOzRCQUNoRDs7Ozs7Ozs7Ozs7a0NBSUosOERBQUNyUTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJVDtJQXR6Q2dCcEQ7O1FBQ0duQiwwREFBV0E7UUFFYnJDLGlEQUFZQTtRQUdQRixtREFBY0E7UUFpQmRDLG1EQUFjQTtRQXFDZG1DLDBEQUFjQTs7O01BNURwQnNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9jb21wb25lbnRzL3NldHRpbmdzLnRzeD8wOTBmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vc2V0dGluZ3MubW9kdWxlLnNjc3NcIjtcclxuXHJcbmltcG9ydCBSZXNldEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZC5zdmdcIjtcclxuaW1wb3J0IEFkZEljb24gZnJvbSBcIi4uL2ljb25zL2FkZC5zdmdcIjtcclxuaW1wb3J0IENsb3NlSWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xvc2Uuc3ZnXCI7XHJcbmltcG9ydCBDb3B5SWNvbiBmcm9tIFwiLi4vaWNvbnMvY29weS5zdmdcIjtcclxuaW1wb3J0IENsZWFySWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xlYXIuc3ZnXCI7XHJcbmltcG9ydCBMb2FkaW5nSWNvbiBmcm9tIFwiLi4vaWNvbnMvdGhyZWUtZG90cy5zdmdcIjtcclxuaW1wb3J0IEVkaXRJY29uIGZyb20gXCIuLi9pY29ucy9lZGl0LnN2Z1wiO1xyXG5pbXBvcnQgRmlyZUljb24gZnJvbSBcIi4uL2ljb25zL2ZpcmUuc3ZnXCI7XHJcbmltcG9ydCBFeWVJY29uIGZyb20gXCIuLi9pY29ucy9leWUuc3ZnXCI7XHJcbmltcG9ydCBEb3dubG9hZEljb24gZnJvbSBcIi4uL2ljb25zL2Rvd25sb2FkLnN2Z1wiO1xyXG5pbXBvcnQgVXBsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvdXBsb2FkLnN2Z1wiO1xyXG5pbXBvcnQgQ29uZmlnSWNvbiBmcm9tIFwiLi4vaWNvbnMvY29uZmlnLnN2Z1wiO1xyXG5pbXBvcnQgQ29uZmlybUljb24gZnJvbSBcIi4uL2ljb25zL2NvbmZpcm0uc3ZnXCI7XHJcblxyXG5pbXBvcnQgQ29ubmVjdGlvbkljb24gZnJvbSBcIi4uL2ljb25zL2Nvbm5lY3Rpb24uc3ZnXCI7XHJcbmltcG9ydCBDbG91ZFN1Y2Nlc3NJY29uIGZyb20gXCIuLi9pY29ucy9jbG91ZC1zdWNjZXNzLnN2Z1wiO1xyXG5pbXBvcnQgQ2xvdWRGYWlsSWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xvdWQtZmFpbC5zdmdcIjtcclxuaW1wb3J0IHsgdHJhY2tTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGljayB9IGZyb20gXCIuLi91dGlscy9hdXRoLXNldHRpbmdzLWV2ZW50c1wiO1xyXG5pbXBvcnQge1xyXG4gIElucHV0LFxyXG4gIExpc3QsXHJcbiAgTGlzdEl0ZW0sXHJcbiAgTW9kYWwsXHJcbiAgUGFzc3dvcmRJbnB1dCxcclxuICBQb3BvdmVyLFxyXG4gIFNlbGVjdCxcclxuICBzaG93Q29uZmlybSxcclxuICBzaG93VG9hc3QsXHJcbn0gZnJvbSBcIi4vdWktbGliXCI7XHJcbmltcG9ydCB7IE1vZGVsQ29uZmlnTGlzdCB9IGZyb20gXCIuL21vZGVsLWNvbmZpZ1wiO1xyXG5cclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gXCIuL2J1dHRvblwiO1xyXG5pbXBvcnQge1xyXG4gIFN1Ym1pdEtleSxcclxuICB1c2VDaGF0U3RvcmUsXHJcbiAgVGhlbWUsXHJcbiAgdXNlVXBkYXRlU3RvcmUsXHJcbiAgdXNlQWNjZXNzU3RvcmUsXHJcbiAgdXNlQXBwQ29uZmlnLFxyXG59IGZyb20gXCIuLi9zdG9yZVwiO1xyXG5cclxuaW1wb3J0IExvY2FsZSwge1xyXG4gIEFsbExhbmdzLFxyXG4gIEFMTF9MQU5HX09QVElPTlMsXHJcbiAgY2hhbmdlTGFuZyxcclxuICBnZXRMYW5nLFxyXG59IGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcbmltcG9ydCB7IGNvcHlUb0NsaXBib2FyZCwgY2xpZW50VXBkYXRlLCBzZW12ZXJDb21wYXJlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHtcclxuICBBbnRocm9waWMsXHJcbiAgQXp1cmUsXHJcbiAgQmFpZHUsXHJcbiAgVGVuY2VudCxcclxuICBCeXRlRGFuY2UsXHJcbiAgQWxpYmFiYSxcclxuICBNb29uc2hvdCxcclxuICBYQUksXHJcbiAgR29vZ2xlLFxyXG4gIEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkLFxyXG4gIE9QRU5BSV9CQVNFX1VSTCxcclxuICBQYXRoLFxyXG4gIFJFTEVBU0VfVVJMLFxyXG4gIFNUT1JBR0VfS0VZLFxyXG4gIFNlcnZpY2VQcm92aWRlcixcclxuICBTbG90SUQsXHJcbiAgVVBEQVRFX1VSTCxcclxuICBTdGFiaWxpdHksXHJcbiAgSWZseXRlayxcclxuICBTQUFTX0NIQVRfVVJMLFxyXG4gIENoYXRHTE0sXHJcbiAgRGVlcFNlZWssXHJcbiAgU2lsaWNvbkZsb3csXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7IFByb21wdCwgU2VhcmNoU2VydmljZSwgdXNlUHJvbXB0U3RvcmUgfSBmcm9tIFwiLi4vc3RvcmUvcHJvbXB0XCI7XHJcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9lcnJvclwiO1xyXG5pbXBvcnQgeyBJbnB1dFJhbmdlIH0gZnJvbSBcIi4vaW5wdXQtcmFuZ2VcIjtcclxuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBBdmF0YXIsIEF2YXRhclBpY2tlciB9IGZyb20gXCIuL2Vtb2ppXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IHVzZVN5bmNTdG9yZSB9IGZyb20gXCIuLi9zdG9yZS9zeW5jXCI7XHJcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gXCJuYW5vaWRcIjtcclxuaW1wb3J0IHsgdXNlTWFza1N0b3JlIH0gZnJvbSBcIi4uL3N0b3JlL21hc2tcIjtcclxuaW1wb3J0IHsgUHJvdmlkZXJUeXBlIH0gZnJvbSBcIi4uL3V0aWxzL2Nsb3VkXCI7XHJcbmltcG9ydCB7IFRUU0NvbmZpZ0xpc3QgfSBmcm9tIFwiLi90dHMtY29uZmlnXCI7XHJcbmltcG9ydCB7IFJlYWx0aW1lQ29uZmlnTGlzdCB9IGZyb20gXCIuL3JlYWx0aW1lLWNoYXQvcmVhbHRpbWUtY29uZmlnXCI7XHJcblxyXG5mdW5jdGlvbiBFZGl0UHJvbXB0TW9kYWwocHJvcHM6IHsgaWQ6IHN0cmluZzsgb25DbG9zZTogKCkgPT4gdm9pZCB9KSB7XHJcbiAgY29uc3QgcHJvbXB0U3RvcmUgPSB1c2VQcm9tcHRTdG9yZSgpO1xyXG4gIGNvbnN0IHByb21wdCA9IHByb21wdFN0b3JlLmdldChwcm9wcy5pZCk7XHJcblxyXG4gIHJldHVybiBwcm9tcHQgPyAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLW1hc2tcIj5cclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuRWRpdE1vZGFsLlRpdGxlfVxyXG4gICAgICAgIG9uQ2xvc2U9e3Byb3BzLm9uQ2xvc2V9XHJcbiAgICAgICAgYWN0aW9ucz17W1xyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAga2V5PVwiXCJcclxuICAgICAgICAgICAgb25DbGljaz17cHJvcHMub25DbG9zZX1cclxuICAgICAgICAgICAgdGV4dD17TG9jYWxlLlVJLkNvbmZpcm19XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAvPixcclxuICAgICAgICBdfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXQtcHJvbXB0LW1vZGFsXCJdfT5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHZhbHVlPXtwcm9tcHQudGl0bGV9XHJcbiAgICAgICAgICAgIHJlYWRPbmx5PXshcHJvbXB0LmlzVXNlcn1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0LXByb21wdC10aXRsZVwiXX1cclxuICAgICAgICAgICAgb25JbnB1dD17KGUpID0+XHJcbiAgICAgICAgICAgICAgcHJvbXB0U3RvcmUudXBkYXRlUHJvbXB0KFxyXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXHJcbiAgICAgICAgICAgICAgICAocHJvbXB0KSA9PiAocHJvbXB0LnRpdGxlID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPElucHV0XHJcbiAgICAgICAgICAgIHZhbHVlPXtwcm9tcHQuY29udGVudH1cclxuICAgICAgICAgICAgcmVhZE9ubHk9eyFwcm9tcHQuaXNVc2VyfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXQtcHJvbXB0LWNvbnRlbnRcIl19XHJcbiAgICAgICAgICAgIHJvd3M9ezEwfVxyXG4gICAgICAgICAgICBvbklucHV0PXsoZSkgPT5cclxuICAgICAgICAgICAgICBwcm9tcHRTdG9yZS51cGRhdGVQcm9tcHQoXHJcbiAgICAgICAgICAgICAgICBwcm9wcy5pZCxcclxuICAgICAgICAgICAgICAgIChwcm9tcHQpID0+IChwcm9tcHQuY29udGVudCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA+PC9JbnB1dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Nb2RhbD5cclxuICAgIDwvZGl2PlxyXG4gICkgOiBudWxsO1xyXG59XHJcblxyXG5mdW5jdGlvbiBVc2VyUHJvbXB0TW9kYWwocHJvcHM6IHsgb25DbG9zZT86ICgpID0+IHZvaWQgfSkge1xyXG4gIGNvbnN0IHByb21wdFN0b3JlID0gdXNlUHJvbXB0U3RvcmUoKTtcclxuICBjb25zdCB1c2VyUHJvbXB0cyA9IHByb21wdFN0b3JlLmdldFVzZXJQcm9tcHRzKCk7XHJcbiAgY29uc3QgYnVpbHRpblByb21wdHMgPSBTZWFyY2hTZXJ2aWNlLmJ1aWx0aW5Qcm9tcHRzO1xyXG4gIGNvbnN0IGFsbFByb21wdHMgPSB1c2VyUHJvbXB0cy5jb25jYXQoYnVpbHRpblByb21wdHMpO1xyXG4gIGNvbnN0IFtzZWFyY2hJbnB1dCwgc2V0U2VhcmNoSW5wdXRdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgY29uc3QgW3NlYXJjaFByb21wdHMsIHNldFNlYXJjaFByb21wdHNdID0gdXNlU3RhdGU8UHJvbXB0W10+KFtdKTtcclxuICBjb25zdCBwcm9tcHRzID0gc2VhcmNoSW5wdXQubGVuZ3RoID4gMCA/IHNlYXJjaFByb21wdHMgOiBhbGxQcm9tcHRzO1xyXG5cclxuICBjb25zdCBbZWRpdGluZ1Byb21wdElkLCBzZXRFZGl0aW5nUHJvbXB0SWRdID0gdXNlU3RhdGU8c3RyaW5nPigpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHNlYXJjaElucHV0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3Qgc2VhcmNoUmVzdWx0ID0gU2VhcmNoU2VydmljZS5zZWFyY2goc2VhcmNoSW5wdXQpO1xyXG4gICAgICBzZXRTZWFyY2hQcm9tcHRzKHNlYXJjaFJlc3VsdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRTZWFyY2hQcm9tcHRzKFtdKTtcclxuICAgIH1cclxuICB9LCBbc2VhcmNoSW5wdXRdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtbWFza1wiPlxyXG4gICAgICA8TW9kYWxcclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlByb21wdC5Nb2RhbC5UaXRsZX1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBwcm9wcy5vbkNsb3NlPy4oKX1cclxuICAgICAgICBhY3Rpb25zPXtbXHJcbiAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICBrZXk9XCJhZGRcIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbXB0SWQgPSBwcm9tcHRTdG9yZS5hZGQoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IG5hbm9pZCgpLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiRW1wdHkgUHJvbXB0XCIsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIkVtcHR5IFByb21wdCBDb250ZW50XCIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgc2V0RWRpdGluZ1Byb21wdElkKHByb21wdElkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEFkZEljb24gLz59XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTW9kYWwuQWRkfVxyXG4gICAgICAgICAgLz4sXHJcbiAgICAgICAgXX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1tb2RhbFwiXX0+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LXNlYXJjaFwiXX1cclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTW9kYWwuU2VhcmNofVxyXG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoSW5wdXR9XHJcbiAgICAgICAgICAgIG9uSW5wdXQ9eyhlKSA9PiBzZXRTZWFyY2hJbnB1dChlLmN1cnJlbnRUYXJnZXQudmFsdWUpfVxyXG4gICAgICAgICAgPjwvaW5wdXQ+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWxpc3RcIl19PlxyXG4gICAgICAgICAgICB7cHJvbXB0cy5tYXAoKHYsIF8pID0+IChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtaXRlbVwiXX0ga2V5PXt2LmlkID8/IHYudGl0bGV9PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWhlYWRlclwiXX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC10aXRsZVwiXX0+e3YudGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1jb250ZW50XCJdICsgXCIgb25lLWxpbmVcIn0+XHJcbiAgICAgICAgICAgICAgICAgICAge3YuY29udGVudH1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uc1wiXX0+XHJcbiAgICAgICAgICAgICAgICAgIHt2LmlzVXNlciAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxDbGVhckljb24gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHByb21wdFN0b3JlLnJlbW92ZSh2LmlkISl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3YuaXNVc2VyID8gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8RWRpdEljb24gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEVkaXRpbmdQcm9tcHRJZCh2LmlkKX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8RXllSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0RWRpdGluZ1Byb21wdElkKHYuaWQpfVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj17PENvcHlJY29uIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNvcHlUb0NsaXBib2FyZCh2LmNvbnRlbnQpfVxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvTW9kYWw+XHJcblxyXG4gICAgICB7ZWRpdGluZ1Byb21wdElkICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgIDxFZGl0UHJvbXB0TW9kYWxcclxuICAgICAgICAgIGlkPXtlZGl0aW5nUHJvbXB0SWQhfVxyXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0RWRpdGluZ1Byb21wdElkKHVuZGVmaW5lZCl9XHJcbiAgICAgICAgLz5cclxuICAgICAgKX1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIERhbmdlckl0ZW1zKCkge1xyXG4gIGNvbnN0IGNoYXRTdG9yZSA9IHVzZUNoYXRTdG9yZSgpO1xyXG4gIGNvbnN0IGFwcENvbmZpZyA9IHVzZUFwcENvbmZpZygpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPExpc3Q+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5EYW5nZXIuUmVzZXQuVGl0bGV9XHJcbiAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LkFjdGlvbn1cclxuICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGF3YWl0IHNob3dDb25maXJtKExvY2FsZS5TZXR0aW5ncy5EYW5nZXIuUmVzZXQuQ29uZmlybSkpIHtcclxuICAgICAgICAgICAgICBhcHBDb25maWcucmVzZXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHR5cGU9XCJkYW5nZXJcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5EYW5nZXIuQ2xlYXIuVGl0bGV9XHJcbiAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLkFjdGlvbn1cclxuICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGF3YWl0IHNob3dDb25maXJtKExvY2FsZS5TZXR0aW5ncy5EYW5nZXIuQ2xlYXIuQ29uZmlybSkpIHtcclxuICAgICAgICAgICAgICBjaGF0U3RvcmUuY2xlYXJBbGxEYXRhKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB0eXBlPVwiZGFuZ2VyXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC9MaXN0PlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIENoZWNrQnV0dG9uKCkge1xyXG4gIGNvbnN0IHN5bmNTdG9yZSA9IHVzZVN5bmNTdG9yZSgpO1xyXG5cclxuICBjb25zdCBjb3VsZENoZWNrID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICByZXR1cm4gc3luY1N0b3JlLmNsb3VkU3luYygpO1xyXG4gIH0sIFtzeW5jU3RvcmVdKTtcclxuXHJcbiAgY29uc3QgW2NoZWNrU3RhdGUsIHNldENoZWNrU3RhdGVdID0gdXNlU3RhdGU8XHJcbiAgICBcIm5vbmVcIiB8IFwiY2hlY2tpbmdcIiB8IFwic3VjY2Vzc1wiIHwgXCJmYWlsZWRcIlxyXG4gID4oXCJub25lXCIpO1xyXG5cclxuICBhc3luYyBmdW5jdGlvbiBjaGVjaygpIHtcclxuICAgIHNldENoZWNrU3RhdGUoXCJjaGVja2luZ1wiKTtcclxuICAgIGNvbnN0IHZhbGlkID0gYXdhaXQgc3luY1N0b3JlLmNoZWNrKCk7XHJcbiAgICBzZXRDaGVja1N0YXRlKHZhbGlkID8gXCJzdWNjZXNzXCIgOiBcImZhaWxlZFwiKTtcclxuICB9XHJcblxyXG4gIGlmICghY291bGRDaGVjaykgcmV0dXJuIG51bGw7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8SWNvbkJ1dHRvblxyXG4gICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuTW9kYWwuQ2hlY2t9XHJcbiAgICAgIGJvcmRlcmVkXHJcbiAgICAgIG9uQ2xpY2s9e2NoZWNrfVxyXG4gICAgICBpY29uPXtcclxuICAgICAgICBjaGVja1N0YXRlID09PSBcIm5vbmVcIiA/IChcclxuICAgICAgICAgIDxDb25uZWN0aW9uSWNvbiAvPlxyXG4gICAgICAgICkgOiBjaGVja1N0YXRlID09PSBcImNoZWNraW5nXCIgPyAoXHJcbiAgICAgICAgICA8TG9hZGluZ0ljb24gLz5cclxuICAgICAgICApIDogY2hlY2tTdGF0ZSA9PT0gXCJzdWNjZXNzXCIgPyAoXHJcbiAgICAgICAgICA8Q2xvdWRTdWNjZXNzSWNvbiAvPlxyXG4gICAgICAgICkgOiBjaGVja1N0YXRlID09PSBcImZhaWxlZFwiID8gKFxyXG4gICAgICAgICAgPENsb3VkRmFpbEljb24gLz5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPENvbm5lY3Rpb25JY29uIC8+XHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICA+PC9JY29uQnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFN5bmNDb25maWdNb2RhbChwcm9wczogeyBvbkNsb3NlPzogKCkgPT4gdm9pZCB9KSB7XHJcbiAgY29uc3Qgc3luY1N0b3JlID0gdXNlU3luY1N0b3JlKCk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLW1hc2tcIj5cclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5Nb2RhbC5UaXRsZX1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBwcm9wcy5vbkNsb3NlPy4oKX1cclxuICAgICAgICBhY3Rpb25zPXtbXHJcbiAgICAgICAgICA8Q2hlY2tCdXR0b24ga2V5PVwiY2hlY2tcIiAvPixcclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgIGtleT1cImNvbmZpcm1cIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsb3NlfVxyXG4gICAgICAgICAgICBpY29uPXs8Q29uZmlybUljb24gLz59XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5VSS5Db25maXJtfVxyXG4gICAgICAgICAgLz4sXHJcbiAgICAgICAgXX1cclxuICAgICAgPlxyXG4gICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuU3luY1R5cGUuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuU3luY1R5cGUuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnByb3ZpZGVyfVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnLnByb3ZpZGVyID0gZS50YXJnZXQudmFsdWUgYXMgUHJvdmlkZXJUeXBlKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyhQcm92aWRlclR5cGUpLm1hcCgoW2ssIHZdKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXt2fSBrZXk9e2t9PlxyXG4gICAgICAgICAgICAgICAgICB7a31cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuUHJveHkuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuUHJveHkuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17c3luY1N0b3JlLnVzZVByb3h5fVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy51c2VQcm94eSA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAge3N5bmNTdG9yZS51c2VQcm94eSA/IChcclxuICAgICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5Qcm94eVVybC5UaXRsZX1cclxuICAgICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlByb3h5VXJsLlN1YlRpdGxlfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnByb3h5VXJsfVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy5wcm94eVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgKSA6IG51bGx9XHJcbiAgICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAgICB7c3luY1N0b3JlLnByb3ZpZGVyID09PSBQcm92aWRlclR5cGUuV2ViREFWICYmIChcclxuICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLldlYkRhdi5FbmRwb2ludH0+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLndlYmRhdi5lbmRwb2ludH1cclxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25maWcud2ViZGF2LmVuZHBvaW50ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuV2ViRGF2LlVzZXJOYW1lfT5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUud2ViZGF2LnVzZXJuYW1lfVxyXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzeW5jU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy53ZWJkYXYudXNlcm5hbWUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLldlYkRhdi5QYXNzd29yZH0+XHJcbiAgICAgICAgICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLndlYmRhdi5wYXNzd29yZH1cclxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25maWcud2ViZGF2LnBhc3N3b3JkID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPjwvUGFzc3dvcmRJbnB1dD5cclxuICAgICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgICA8L0xpc3Q+XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICB7c3luY1N0b3JlLnByb3ZpZGVyID09PSBQcm92aWRlclR5cGUuVXBTdGFzaCAmJiAoXHJcbiAgICAgICAgICA8TGlzdD5cclxuICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuVXBTdGFzaC5FbmRwb2ludH0+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnVwc3Rhc2guZW5kcG9pbnR9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy51cHN0YXNoLmVuZHBvaW50ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgICA8TGlzdEl0ZW0gdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5VcFN0YXNoLlVzZXJOYW1lfT5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUudXBzdGFzaC51c2VybmFtZX1cclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtTVE9SQUdFX0tFWX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBzeW5jU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAoY29uZmlnLnVwc3Rhc2gudXNlcm5hbWUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuVXBTdGFzaC5QYXNzd29yZH0+XHJcbiAgICAgICAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUudXBzdGFzaC5hcGlLZXl9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLnVwc3Rhc2guYXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPjwvUGFzc3dvcmRJbnB1dD5cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgIDwvTGlzdD5cclxuICAgICAgICApfVxyXG4gICAgICA8L01vZGFsPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gU3luY0l0ZW1zKCkge1xyXG4gIGNvbnN0IHN5bmNTdG9yZSA9IHVzZVN5bmNTdG9yZSgpO1xyXG4gIGNvbnN0IGNoYXRTdG9yZSA9IHVzZUNoYXRTdG9yZSgpO1xyXG4gIGNvbnN0IHByb21wdFN0b3JlID0gdXNlUHJvbXB0U3RvcmUoKTtcclxuICBjb25zdCBtYXNrU3RvcmUgPSB1c2VNYXNrU3RvcmUoKTtcclxuICBjb25zdCBjb3VsZFN5bmMgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIHJldHVybiBzeW5jU3RvcmUuY2xvdWRTeW5jKCk7XHJcbiAgfSwgW3N5bmNTdG9yZV0pO1xyXG5cclxuICBjb25zdCBbc2hvd1N5bmNDb25maWdNb2RhbCwgc2V0U2hvd1N5bmNDb25maWdNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gIGNvbnN0IHN0YXRlT3ZlcnZpZXcgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIGNvbnN0IHNlc3Npb25zID0gY2hhdFN0b3JlLnNlc3Npb25zO1xyXG4gICAgY29uc3QgbWVzc2FnZUNvdW50ID0gc2Vzc2lvbnMucmVkdWNlKChwLCBjKSA9PiBwICsgYy5tZXNzYWdlcy5sZW5ndGgsIDApO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNoYXQ6IHNlc3Npb25zLmxlbmd0aCxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZUNvdW50LFxyXG4gICAgICBwcm9tcHQ6IE9iamVjdC5rZXlzKHByb21wdFN0b3JlLnByb21wdHMpLmxlbmd0aCxcclxuICAgICAgbWFzazogT2JqZWN0LmtleXMobWFza1N0b3JlLm1hc2tzKS5sZW5ndGgsXHJcbiAgICB9O1xyXG4gIH0sIFtjaGF0U3RvcmUuc2Vzc2lvbnMsIG1hc2tTdG9yZS5tYXNrcywgcHJvbXB0U3RvcmUucHJvbXB0c10pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgey8qPExpc3Q+Ki99XHJcbiAgICAgIHsvKiAgPExpc3RJdGVtKi99XHJcbiAgICAgIHsvKiAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ2xvdWRTdGF0ZX0qL31cclxuICAgICAgey8qICAgIHN1YlRpdGxlPXsqL31cclxuICAgICAgey8qICAgICAgc3luY1N0b3JlLmxhc3RQcm92aWRlciovfVxyXG4gICAgICB7LyogICAgICAgID8gYCR7bmV3IERhdGUoc3luY1N0b3JlLmxhc3RTeW5jVGltZSkudG9Mb2NhbGVTdHJpbmcoKX0gWyR7Ki99XHJcbiAgICAgIHsvKiAgICAgICAgICAgIHN5bmNTdG9yZS5sYXN0UHJvdmlkZXIqL31cclxuICAgICAgey8qICAgICAgICAgIH1dYCovfVxyXG4gICAgICB7LyogICAgICAgIDogTG9jYWxlLlNldHRpbmdzLlN5bmMuTm90U3luY1lldCovfVxyXG4gICAgICB7LyogICAgfSovfVxyXG4gICAgICB7LyogID4qL31cclxuICAgICAgey8qICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+Ki99XHJcbiAgICAgIHsvKiAgICAgIDxJY29uQnV0dG9uKi99XHJcbiAgICAgIHsvKiAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ2xvdWRTdGF0ZSArIExvY2FsZS5VSS5Db25maWd9Ki99XHJcbiAgICAgIHsvKiAgICAgICAgaWNvbj17PENvbmZpZ0ljb24gLz59Ki99XHJcbiAgICAgIHsvKiAgICAgICAgdGV4dD17TG9jYWxlLlVJLkNvbmZpZ30qL31cclxuICAgICAgey8qICAgICAgICBvbkNsaWNrPXsoKSA9PiB7Ki99XHJcbiAgICAgIHsvKiAgICAgICAgICBzZXRTaG93U3luY0NvbmZpZ01vZGFsKHRydWUpOyovfVxyXG4gICAgICB7LyogICAgICAgIH19Ki99XHJcbiAgICAgIHsvKiAgICAgIC8+Ki99XHJcbiAgICAgIHsvKiAgICAgIHtjb3VsZFN5bmMgJiYgKCovfVxyXG4gICAgICB7LyogICAgICAgIDxJY29uQnV0dG9uKi99XHJcbiAgICAgIHsvKiAgICAgICAgICBpY29uPXs8UmVzZXRJY29uIC8+fSovfVxyXG4gICAgICB7LyogICAgICAgICAgdGV4dD17TG9jYWxlLlVJLlN5bmN9Ki99XHJcbiAgICAgIHsvKiAgICAgICAgICBvbkNsaWNrPXthc3luYyAoKSA9PiB7Ki99XHJcbiAgICAgIHsvKiAgICAgICAgICAgIHRyeSB7Ki99XHJcbiAgICAgIHsvKiAgICAgICAgICAgICAgYXdhaXQgc3luY1N0b3JlLnN5bmMoKTsqL31cclxuICAgICAgey8qICAgICAgICAgICAgICBzaG93VG9hc3QoTG9jYWxlLlNldHRpbmdzLlN5bmMuU3VjY2Vzcyk7Ki99XHJcbiAgICAgIHsvKiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsqL31cclxuICAgICAgey8qICAgICAgICAgICAgICBzaG93VG9hc3QoTG9jYWxlLlNldHRpbmdzLlN5bmMuRmFpbCk7Ki99XHJcbiAgICAgIHsvKiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIltTeW5jXVwiLCBlKTsqL31cclxuICAgICAgey8qICAgICAgICAgICAgfSovfVxyXG4gICAgICB7LyogICAgICAgICAgfX0qL31cclxuICAgICAgey8qICAgICAgICAvPiovfVxyXG4gICAgICB7LyogICAgICApfSovfVxyXG4gICAgICB7LyogICAgPC9kaXY+Ki99XHJcbiAgICAgIHsvKiAgPC9MaXN0SXRlbT4qL31cclxuXHJcbiAgICAgIHsvKiAgPExpc3RJdGVtKi99XHJcbiAgICAgIHsvKiAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuTG9jYWxTdGF0ZX0qL31cclxuICAgICAgey8qICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5PdmVydmlldyhzdGF0ZU92ZXJ2aWV3KX0qL31cclxuICAgICAgey8qICA+Ki99XHJcbiAgICAgIHsvKiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PiovfVxyXG4gICAgICB7LyogICAgICA8SWNvbkJ1dHRvbiovfVxyXG4gICAgICB7LyogICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkxvY2FsU3RhdGUgKyBMb2NhbGUuVUkuRXhwb3J0fSovfVxyXG4gICAgICB7LyogICAgICAgIGljb249ezxVcGxvYWRJY29uIC8+fSovfVxyXG4gICAgICB7LyogICAgICAgIHRleHQ9e0xvY2FsZS5VSS5FeHBvcnR9Ki99XHJcbiAgICAgIHsvKiAgICAgICAgb25DbGljaz17KCkgPT4geyovfVxyXG4gICAgICB7LyogICAgICAgICAgc3luY1N0b3JlLmV4cG9ydCgpOyovfVxyXG4gICAgICB7LyogICAgICAgIH19Ki99XHJcbiAgICAgIHsvKiAgICAgIC8+Ki99XHJcbiAgICAgIHsvKiAgICAgIDxJY29uQnV0dG9uKi99XHJcbiAgICAgIHsvKiAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLlN5bmMuTG9jYWxTdGF0ZSArIExvY2FsZS5VSS5JbXBvcnR9Ki99XHJcbiAgICAgIHsvKiAgICAgICAgaWNvbj17PERvd25sb2FkSWNvbiAvPn0qL31cclxuICAgICAgey8qICAgICAgICB0ZXh0PXtMb2NhbGUuVUkuSW1wb3J0fSovfVxyXG4gICAgICB7LyogICAgICAgIG9uQ2xpY2s9eygpID0+IHsqL31cclxuICAgICAgey8qICAgICAgICAgIHN5bmNTdG9yZS5pbXBvcnQoKTsqL31cclxuICAgICAgey8qICAgICAgICB9fSovfVxyXG4gICAgICB7LyogICAgICAvPiovfVxyXG4gICAgICB7LyogICAgPC9kaXY+Ki99XHJcbiAgICAgIHsvKiAgPC9MaXN0SXRlbT4qL31cclxuICAgICAgey8qPC9MaXN0PiovfVxyXG5cclxuICAgICAge3Nob3dTeW5jQ29uZmlnTW9kYWwgJiYgKFxyXG4gICAgICAgIDxTeW5jQ29uZmlnTW9kYWwgb25DbG9zZT17KCkgPT4gc2V0U2hvd1N5bmNDb25maWdNb2RhbChmYWxzZSl9IC8+XHJcbiAgICAgICl9XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2V0dGluZ3MoKSB7XHJcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xyXG4gIGNvbnN0IFtzaG93RW1vamlQaWNrZXIsIHNldFNob3dFbW9qaVBpY2tlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnKCk7XHJcbiAgY29uc3QgdXBkYXRlQ29uZmlnID0gY29uZmlnLnVwZGF0ZTtcclxuXHJcbiAgY29uc3QgdXBkYXRlU3RvcmUgPSB1c2VVcGRhdGVTdG9yZSgpO1xyXG4gIGNvbnN0IFtjaGVja2luZ1VwZGF0ZSwgc2V0Q2hlY2tpbmdVcGRhdGVdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gdXBkYXRlU3RvcmUuZm9ybWF0VmVyc2lvbih1cGRhdGVTdG9yZS52ZXJzaW9uKTtcclxuICBjb25zdCByZW1vdGVJZCA9IHVwZGF0ZVN0b3JlLmZvcm1hdFZlcnNpb24odXBkYXRlU3RvcmUucmVtb3RlVmVyc2lvbik7XHJcbiAgY29uc3QgaGFzTmV3VmVyc2lvbiA9IHNlbXZlckNvbXBhcmUoY3VycmVudFZlcnNpb24sIHJlbW90ZUlkKSA9PT0gLTE7XHJcbiAgY29uc3QgdXBkYXRlVXJsID0gZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwID8gUkVMRUFTRV9VUkwgOiBVUERBVEVfVVJMO1xyXG5cclxuICBmdW5jdGlvbiBjaGVja1VwZGF0ZShmb3JjZSA9IGZhbHNlKSB7XHJcbiAgICBzZXRDaGVja2luZ1VwZGF0ZSh0cnVlKTtcclxuICAgIHVwZGF0ZVN0b3JlLmdldExhdGVzdFZlcnNpb24oZm9yY2UpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBzZXRDaGVja2luZ1VwZGF0ZShmYWxzZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltVcGRhdGVdIGxvY2FsIHZlcnNpb24gXCIsIHVwZGF0ZVN0b3JlLnZlcnNpb24pO1xyXG4gICAgY29uc29sZS5sb2coXCJbVXBkYXRlXSByZW1vdGUgdmVyc2lvbiBcIiwgdXBkYXRlU3RvcmUucmVtb3RlVmVyc2lvbik7XHJcbiAgfVxyXG5cclxuICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlKCk7XHJcbiAgY29uc3Qgc2hvdWxkSGlkZUJhbGFuY2VRdWVyeSA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgY29uc3QgaXNPcGVuQWlVcmwgPSBhY2Nlc3NTdG9yZS5vcGVuYWlVcmwuaW5jbHVkZXMoT1BFTkFJX0JBU0VfVVJMKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBhY2Nlc3NTdG9yZS5oaWRlQmFsYW5jZVF1ZXJ5IHx8XHJcbiAgICAgIGlzT3BlbkFpVXJsIHx8XHJcbiAgICAgIGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PSBTZXJ2aWNlUHJvdmlkZXIuQXp1cmVcclxuICAgICk7XHJcbiAgfSwgW1xyXG4gICAgYWNjZXNzU3RvcmUuaGlkZUJhbGFuY2VRdWVyeSxcclxuICAgIGFjY2Vzc1N0b3JlLm9wZW5haVVybCxcclxuICAgIGFjY2Vzc1N0b3JlLnByb3ZpZGVyLFxyXG4gIF0pO1xyXG5cclxuICBjb25zdCB1c2FnZSA9IHtcclxuICAgIHVzZWQ6IHVwZGF0ZVN0b3JlLnVzZWQsXHJcbiAgICBzdWJzY3JpcHRpb246IHVwZGF0ZVN0b3JlLnN1YnNjcmlwdGlvbixcclxuICB9O1xyXG4gIGNvbnN0IFtsb2FkaW5nVXNhZ2UsIHNldExvYWRpbmdVc2FnZV0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgZnVuY3Rpb24gY2hlY2tVc2FnZShmb3JjZSA9IGZhbHNlKSB7XHJcbiAgICBpZiAoc2hvdWxkSGlkZUJhbGFuY2VRdWVyeSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9hZGluZ1VzYWdlKHRydWUpO1xyXG4gICAgdXBkYXRlU3RvcmUudXBkYXRlVXNhZ2UoZm9yY2UpLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICBzZXRMb2FkaW5nVXNhZ2UoZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBlbmFibGVkQWNjZXNzQ29udHJvbCA9IHVzZU1lbW8oXHJcbiAgICAoKSA9PiBhY2Nlc3NTdG9yZS5lbmFibGVkQWNjZXNzQ29udHJvbCgpLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xyXG4gICAgW10sXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgcHJvbXB0U3RvcmUgPSB1c2VQcm9tcHRTdG9yZSgpO1xyXG4gIGNvbnN0IGJ1aWx0aW5Db3VudCA9IFNlYXJjaFNlcnZpY2UuY291bnQuYnVpbHRpbjtcclxuICBjb25zdCBjdXN0b21Db3VudCA9IHByb21wdFN0b3JlLmdldFVzZXJQcm9tcHRzKCkubGVuZ3RoID8/IDA7XHJcbiAgY29uc3QgW3Nob3VsZFNob3dQcm9tcHRNb2RhbCwgc2V0U2hvd1Byb21wdE1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgY29uc3Qgc2hvd1VzYWdlID0gYWNjZXNzU3RvcmUuaXNBdXRob3JpemVkKCk7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIGNoZWNrcyBwZXIgbWludXRlc1xyXG4gICAgY2hlY2tVcGRhdGUoKTtcclxuICAgIHNob3dVc2FnZSAmJiBjaGVja1VzYWdlKCk7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW10pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qga2V5ZG93bkV2ZW50ID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XHJcbiAgICAgICAgbmF2aWdhdGUoUGF0aC5Ib21lKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmIChjbGllbnRDb25maWc/LmlzQXBwKSB7XHJcbiAgICAgIC8vIEZvcmNlIHRvIHNldCBjdXN0b20gZW5kcG9pbnQgdG8gdHJ1ZSBpZiBpdCdzIGFwcFxyXG4gICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgc3RhdGUudXNlQ3VzdG9tQ29uZmlnID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBrZXlkb3duRXZlbnQpO1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwga2V5ZG93bkV2ZW50KTtcclxuICAgIH07XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBjbGllbnRDb25maWcgPSB1c2VNZW1vKCgpID0+IGdldENsaWVudENvbmZpZygpLCBbXSk7XHJcbiAgY29uc3Qgc2hvd0FjY2Vzc0NvZGUgPSBlbmFibGVkQWNjZXNzQ29udHJvbCAmJiAhY2xpZW50Q29uZmlnPy5pc0FwcDtcclxuXHJcbiAgY29uc3QgYWNjZXNzQ29kZUNvbXBvbmVudCA9IHNob3dBY2Nlc3NDb2RlICYmIChcclxuICAgIDxMaXN0SXRlbVxyXG4gICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlRpdGxlfVxyXG4gICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlN1YlRpdGxlfVxyXG4gICAgPlxyXG4gICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hY2Nlc3NDb2RlfVxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlBsYWNlaG9sZGVyfVxyXG4gICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmFjY2Vzc0NvZGUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9fVxyXG4gICAgICAvPlxyXG4gICAgPC9MaXN0SXRlbT5cclxuICApO1xyXG5cclxuICBjb25zdCBzYWFzU3RhcnRDb21wb25lbnQgPSAoXHJcbiAgICA8TGlzdEl0ZW1cclxuICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJzdWJ0aXRsZS1idXR0b25cIl19XHJcbiAgICAgIHRpdGxlPXtcclxuICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5UaXRsZSArXHJcbiAgICAgICAgYCR7TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TYWFzU3RhcnQuTGFiZWx9YFxyXG4gICAgICB9XHJcbiAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5TdWJUaXRsZX1cclxuICAgID5cclxuICAgICAgPEljb25CdXR0b25cclxuICAgICAgICBhcmlhPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LlRpdGxlICtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LkNoYXROb3dcclxuICAgICAgICB9XHJcbiAgICAgICAgaWNvbj17PEZpcmVJY29uIC8+fVxyXG4gICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LkNoYXROb3d9XHJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgdHJhY2tTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGljaygpO1xyXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBTQUFTX0NIQVRfVVJMO1xyXG4gICAgICAgIH19XHJcbiAgICAgIC8+XHJcbiAgICA8L0xpc3RJdGVtPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHVzZUN1c3RvbUNvbmZpZ0NvbXBvbmVudCA9IC8vIENvbmRpdGlvbmFsbHkgcmVuZGVyIHRoZSBmb2xsb3dpbmcgTGlzdEl0ZW0gYmFzZWQgb24gY2xpZW50Q29uZmlnLmlzQXBwXHJcbiAgICAhY2xpZW50Q29uZmlnPy5pc0FwcCAmJiAoIC8vIG9ubHkgc2hvdyBpZiBpc0FwcCBpcyBmYWxzZVxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICBjaGVja2VkPXthY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWd9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnVzZUN1c3RvbUNvbmZpZyA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgKTtcclxuXHJcbiAgY29uc3Qgb3BlbkFJQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuT3BlbkFJICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5PcGVuQUkuRW5kcG9pbnQuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLm9wZW5haVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtPUEVOQUlfQkFTRV9VUkx9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLm9wZW5haVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5PcGVuQUkuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5TaG93UGFzc3dvcmR9XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUub3BlbmFpQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5vcGVuYWlBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYXp1cmVDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5BenVyZSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkVuZHBvaW50LlN1YlRpdGxlICsgQXp1cmUuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmF6dXJlVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0F6dXJlLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYXp1cmVVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYXp1cmVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYXp1cmVBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlWZXJpb24uVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQXp1cmUuQXBpVmVyaW9uLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkFwaVZlcmlvbi5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5henVyZUFwaVZlcnNpb259XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIjIwMjMtMDgtMDEtcHJldmlld1wiXHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmF6dXJlQXBpVmVyc2lvbiA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGdvb2dsZUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkdvb2dsZSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgR29vZ2xlLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZ29vZ2xlVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0dvb2dsZS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5nb29nbGVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZUFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmdvb2dsZUFwaVZlcnNpb259XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIjIwMjMtMDgtMDEtcHJldmlld1wiXHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZUFwaVZlcnNpb24gPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5Hb29nbGVTYWZldHlTZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuR29vZ2xlU2FmZXR5U2V0dGluZ3MuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5Hb29nbGVTYWZldHlTZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5nb29nbGVTYWZldHlTZXR0aW5nc31cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT5cclxuICAgICAgICAgICAgICAgIChhY2Nlc3MuZ29vZ2xlU2FmZXR5U2V0dGluZ3MgPSBlLnRhcmdldFxyXG4gICAgICAgICAgICAgICAgICAudmFsdWUgYXMgR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7T2JqZWN0LmVudHJpZXMoR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQpLm1hcCgoW2ssIHZdKSA9PiAoXHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3Z9IGtleT17a30+XHJcbiAgICAgICAgICAgICAge2t9XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBhbnRocm9waWNDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5BbnRocm9waWMgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIEFudGhyb3BpYy5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmFudGhyb3BpY1VybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtBbnRocm9waWMuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbnRocm9waWNVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYW50aHJvcGljQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbnRocm9waWNBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbnRocm9waWMuQXBpVmVyaW9uLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlWZXJpb24uU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaVZlcmlvbi5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hbnRocm9waWNBcGlWZXJzaW9ufVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0FudGhyb3BpYy5WaXNpb259XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmFudGhyb3BpY0FwaVZlcnNpb24gPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBiYWlkdUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkJhaWR1ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJhaWR1VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0JhaWR1LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYmFpZHVVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYmFpZHVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYmFpZHVBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5TZWNyZXRLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJhaWR1U2VjcmV0S2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmJhaWR1U2VjcmV0S2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHRlbmNlbnRDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5UZW5jZW50ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5FbmRwb2ludC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnRlbmNlbnRVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17VGVuY2VudC5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnRlbmNlbnRVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUudGVuY2VudFNlY3JldElkfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MudGVuY2VudFNlY3JldElkID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LlNlY3JldEtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS50ZW5jZW50U2VjcmV0S2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MudGVuY2VudFNlY3JldEtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBieXRlRGFuY2VDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5CeXRlRGFuY2UgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIEJ5dGVEYW5jZS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJ5dGVkYW5jZVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtCeXRlRGFuY2UuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5ieXRlZGFuY2VVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYnl0ZWRhbmNlQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5ieXRlZGFuY2VBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYWxpYmFiYUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkFsaWJhYmEgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFsaWJhYmEuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgQWxpYmFiYS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hbGliYWJhVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0FsaWJhYmEuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbGliYWJhVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFsaWJhYmEuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmFsaWJhYmFBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbGliYWJhQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IG1vb25zaG90Q29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuTW9vbnNob3QgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Nb29uc2hvdC5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBNb29uc2hvdC5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUubW9vbnNob3RVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TW9vbnNob3QuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5tb29uc2hvdFVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5tb29uc2hvdEFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5tb29uc2hvdEFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBkZWVwc2Vla0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkRlZXBTZWVrICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuRGVlcFNlZWsuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgRGVlcFNlZWsuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmRlZXBzZWVrVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0RlZXBTZWVrLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuZGVlcHNlZWtVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZGVlcHNlZWtBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuZGVlcHNlZWtBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgWEFJQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09IFNlcnZpY2VQcm92aWRlci5YQUkgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkVuZHBvaW50LlN1YlRpdGxlICsgWEFJLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUueGFpVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1hBSS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnhhaVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS54YWlBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnhhaUFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBjaGF0Z2xtQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuQ2hhdEdMTSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ2hhdEdMTS5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBDaGF0R0xNLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmNoYXRnbG1Vcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17Q2hhdEdMTS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmNoYXRnbG1VcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ2hhdEdMTS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuY2hhdGdsbUFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmNoYXRnbG1BcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuICBjb25zdCBzaWxpY29uZmxvd0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLlNpbGljb25GbG93ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2lsaWNvbkZsb3cuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgU2lsaWNvbkZsb3cuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnNpbGljb25mbG93VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1NpbGljb25GbG93LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc2lsaWNvbmZsb3dVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuc2lsaWNvbmZsb3dBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc2lsaWNvbmZsb3dBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3Qgc3RhYmlsaXR5Q29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuU3RhYmlsaXR5ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBTdGFiaWxpdHkuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5zdGFiaWxpdHlVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17U3RhYmlsaXR5LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc3RhYmlsaXR5VXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnN0YWJpbGl0eUFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc3RhYmlsaXR5QXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcbiAgY29uc3QgbGZseXRla0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLklmbHl0ZWsgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgSWZseXRlay5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5pZmx5dGVrVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0lmbHl0ZWsuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5pZmx5dGVrVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmlmbHl0ZWtBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5pZmx5dGVrQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5BcGlTZWNyZXQuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuaWZseXRla0FwaVNlY3JldH1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmlmbHl0ZWtBcGlTZWNyZXQgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIndpbmRvdy1oZWFkZXJcIiBkYXRhLXRhdXJpLWRyYWctcmVnaW9uPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctaGVhZGVyLW1haW4tdGl0bGVcIj5cclxuICAgICAgICAgICAge0xvY2FsZS5TZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctaGVhZGVyLXN1Yi10aXRsZVwiPlxyXG4gICAgICAgICAgICB7TG9jYWxlLlNldHRpbmdzLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5VSS5DbG9zZX1cclxuICAgICAgICAgICAgICBpY29uPXs8Q2xvc2VJY29uIC8+fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKFBhdGguSG9tZSl9XHJcbiAgICAgICAgICAgICAgYm9yZGVyZWRcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNldHRpbmdzXCJdfT5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkF2YXRhcn0+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U2hvd0Vtb2ppUGlja2VyKGZhbHNlKX1cclxuICAgICAgICAgICAgICBjb250ZW50PXtcclxuICAgICAgICAgICAgICAgIDxBdmF0YXJQaWNrZXJcclxuICAgICAgICAgICAgICAgICAgb25FbW9qaUNsaWNrPXsoYXZhdGFyOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoKGNvbmZpZykgPT4gKGNvbmZpZy5hdmF0YXIgPSBhdmF0YXIpKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRTaG93RW1vamlQaWNrZXIoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgb3Blbj17c2hvd0Vtb2ppUGlja2VyfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkF2YXRhcn1cclxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuYXZhdGFyfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBzZXRTaG93RW1vamlQaWNrZXIoIXNob3dFbW9qaVBpY2tlcik7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxBdmF0YXIgYXZhdGFyPXtjb25maWcuYXZhdGFyfSAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlVwZGF0ZS5WZXJzaW9uKGN1cnJlbnRWZXJzaW9uID8/IFwidW5rbm93blwiKX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgICAgIGNoZWNraW5nVXBkYXRlXHJcbiAgICAgICAgICAgICAgICA/IExvY2FsZS5TZXR0aW5ncy5VcGRhdGUuSXNDaGVja2luZ1xyXG4gICAgICAgICAgICAgICAgOiBoYXNOZXdWZXJzaW9uXHJcbiAgICAgICAgICAgICAgICA/IExvY2FsZS5TZXR0aW5ncy5VcGRhdGUuRm91bmRVcGRhdGUocmVtb3RlSWQgPz8gXCJFUlJPUlwiKVxyXG4gICAgICAgICAgICAgICAgOiBMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLklzTGF0ZXN0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge2NoZWNraW5nVXBkYXRlID8gKFxyXG4gICAgICAgICAgICAgIDxMb2FkaW5nSWNvbiAvPlxyXG4gICAgICAgICAgICApIDogaGFzTmV3VmVyc2lvbiA/IChcclxuICAgICAgICAgICAgICBjbGllbnRDb25maWc/LmlzQXBwID8gKFxyXG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PFJlc2V0SWNvbj48L1Jlc2V0SWNvbj59XHJcbiAgICAgICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5VcGRhdGUuR29Ub1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY2xpZW50VXBkYXRlKCl9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8TGluayBocmVmPXt1cGRhdGVVcmx9IHRhcmdldD1cIl9ibGFua1wiIGNsYXNzTmFtZT1cImxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAge0xvY2FsZS5TZXR0aW5ncy5VcGRhdGUuR29Ub1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgIGljb249ezxSZXNldEljb24+PC9SZXNldEljb24+fVxyXG4gICAgICAgICAgICAgICAgdGV4dD17TG9jYWxlLlNldHRpbmdzLlVwZGF0ZS5DaGVja1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNoZWNrVXBkYXRlKHRydWUpfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlNlbmRLZXl9PlxyXG4gICAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLlNlbmRLZXl9XHJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5zdWJtaXRLZXl9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5zdWJtaXRLZXkgPSBlLnRhcmdldC52YWx1ZSBhcyBhbnkgYXMgU3VibWl0S2V5KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtPYmplY3QudmFsdWVzKFN1Ym1pdEtleSkubWFwKCh2KSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXt2fSBrZXk9e3Z9PlxyXG4gICAgICAgICAgICAgICAgICB7dn1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuVGhlbWV9PlxyXG4gICAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLlRoZW1lfVxyXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcudGhlbWV9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+IChjb25maWcudGhlbWUgPSBlLnRhcmdldC52YWx1ZSBhcyBhbnkgYXMgVGhlbWUpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge09iamVjdC52YWx1ZXMoVGhlbWUpLm1hcCgodikgPT4gKFxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17dn0ga2V5PXt2fT5cclxuICAgICAgICAgICAgICAgICAge3Z9XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkxhbmcuTmFtZX0+XHJcbiAgICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuTGFuZy5OYW1lfVxyXG4gICAgICAgICAgICAgIHZhbHVlPXtnZXRMYW5nKCl9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjaGFuZ2VMYW5nKGUudGFyZ2V0LnZhbHVlIGFzIGFueSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtBbGxMYW5ncy5tYXAoKGxhbmcpID0+IChcclxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e2xhbmd9IGtleT17bGFuZ30+XHJcbiAgICAgICAgICAgICAgICAgIHtBTExfTEFOR19PUFRJT05TW2xhbmddfVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Gb250U2l6ZS5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Gb250U2l6ZS5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPElucHV0UmFuZ2VcclxuICAgICAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuRm9udFNpemUuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdGl0bGU9e2Ake2NvbmZpZy5mb250U2l6ZSA/PyAxNH1weGB9XHJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5mb250U2l6ZX1cclxuICAgICAgICAgICAgICBtaW49XCIxMlwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiNDBcIlxyXG4gICAgICAgICAgICAgIHN0ZXA9XCIxXCJcclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5mb250U2l6ZSA9IE51bWJlci5wYXJzZUludChlLmN1cnJlbnRUYXJnZXQudmFsdWUpKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L0lucHV0UmFuZ2U+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRm9udEZhbWlseS5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuZm9udEZhbWlseX1cclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLmZvbnRGYW1pbHkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkF1dG9HZW5lcmF0ZVRpdGxlLlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkF1dG9HZW5lcmF0ZVRpdGxlLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQXV0b0dlbmVyYXRlVGl0bGUuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGV9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGUgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU2VuZFByZXZpZXdCdWJibGUuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU2VuZFByZXZpZXdCdWJibGUuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5TZW5kUHJldmlld0J1YmJsZS5UaXRsZX1cclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5zZW5kUHJldmlld0J1YmJsZX1cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5zZW5kUHJldmlld0J1YmJsZSA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5BcnRpZmFjdHMuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuTWFzay5Db25maWcuQXJ0aWZhY3RzLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuTWFzay5Db25maWcuQXJ0aWZhY3RzLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmVuYWJsZUFydGlmYWN0c31cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5lbmFibGVBcnRpZmFjdHMgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5Db2RlRm9sZC5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5Db2RlRm9sZC5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLk1hc2suQ29uZmlnLkNvZGVGb2xkLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmVuYWJsZUNvZGVGb2xkfVxyXG4gICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZW5hYmxlLWNvZGUtZm9sZC1jaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLmVuYWJsZUNvZGVGb2xkID0gZS5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgIDwvTGlzdD5cclxuXHJcbiAgICAgICAgPFN5bmNJdGVtcyAvPlxyXG5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLk1hc2suU3BsYXNoLlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLk1hc2suU3BsYXNoLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuTWFzay5TcGxhc2guVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBjaGVja2VkPXshY29uZmlnLmRvbnRTaG93TWFza1NwbGFzaFNjcmVlbn1cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5kb250U2hvd01hc2tTcGxhc2hTY3JlZW4gPVxyXG4gICAgICAgICAgICAgICAgICAgICAgIWUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5NYXNrLkJ1aWx0aW4uVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuTWFzay5CdWlsdGluLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuTWFzay5CdWlsdGluLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmhpZGVCdWlsdGluTWFza3N9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuaGlkZUJ1aWx0aW5NYXNrcyA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICA8L0xpc3Q+XHJcblxyXG4gICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0LkRpc2FibGUuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0LkRpc2FibGUuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuRGlzYWJsZS5UaXRsZX1cclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5kaXNhYmxlUHJvbXB0SGludH1cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5kaXNhYmxlUHJvbXB0SGludCA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTGlzdH1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTGlzdENvdW50KFxyXG4gICAgICAgICAgICAgIGJ1aWx0aW5Db3VudCxcclxuICAgICAgICAgICAgICBjdXN0b21Db3VudCxcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0Lkxpc3QgKyBMb2NhbGUuU2V0dGluZ3MuUHJvbXB0LkVkaXR9XHJcbiAgICAgICAgICAgICAgaWNvbj17PEVkaXRJY29uIC8+fVxyXG4gICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuRWRpdH1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93UHJvbXB0TW9kYWwodHJ1ZSl9XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgIDwvTGlzdD5cclxuXHJcbiAgICAgICAgPExpc3QgaWQ9e1Nsb3RJRC5DdXN0b21Nb2RlbH0+XHJcbiAgICAgICAgICB7c2Fhc1N0YXJ0Q29tcG9uZW50fVxyXG4gICAgICAgICAge2FjY2Vzc0NvZGVDb21wb25lbnR9XHJcblxyXG4gICAgICAgICAgeyFhY2Nlc3NTdG9yZS5oaWRlVXNlckFwaUtleSAmJiAoXHJcbiAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAge3VzZUN1c3RvbUNvbmZpZ0NvbXBvbmVudH1cclxuXHJcbiAgICAgICAgICAgICAge2FjY2Vzc1N0b3JlLnVzZUN1c3RvbUNvbmZpZyAmJiAoXHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Qcm92aWRlci5UaXRsZX1cclxuICAgICAgICAgICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Qcm92aWRlci5TdWJUaXRsZX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuUHJvdmlkZXIuVGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUucHJvdmlkZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChhY2Nlc3MpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWNjZXNzLnByb3ZpZGVyID0gZS50YXJnZXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlIGFzIFNlcnZpY2VQcm92aWRlciksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyhTZXJ2aWNlUHJvdmlkZXIpLm1hcCgoW2ssIHZdKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3Z9IGtleT17a30+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge2t9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgICAgICAgICB7b3BlbkFJQ29uZmlnQ29tcG9uZW50fVxyXG4gICAgICAgICAgICAgICAgICB7YXp1cmVDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtnb29nbGVDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHthbnRocm9waWNDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtiYWlkdUNvbmZpZ0NvbXBvbmVudH1cclxuICAgICAgICAgICAgICAgICAge2J5dGVEYW5jZUNvbmZpZ0NvbXBvbmVudH1cclxuICAgICAgICAgICAgICAgICAge2FsaWJhYmFDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHt0ZW5jZW50Q29uZmlnQ29tcG9uZW50fVxyXG4gICAgICAgICAgICAgICAgICB7bW9vbnNob3RDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtkZWVwc2Vla0NvbmZpZ0NvbXBvbmVudH1cclxuICAgICAgICAgICAgICAgICAge3N0YWJpbGl0eUNvbmZpZ0NvbXBvbmVudH1cclxuICAgICAgICAgICAgICAgICAge2xmbHl0ZWtDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtYQUlDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtjaGF0Z2xtQ29uZmlnQ29tcG9uZW50fVxyXG4gICAgICAgICAgICAgICAgICB7c2lsaWNvbmZsb3dDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgeyFzaG91bGRIaWRlQmFsYW5jZVF1ZXJ5ICYmICFjbGllbnRDb25maWc/LmlzQXBwID8gKFxyXG4gICAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlVzYWdlLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgICAgICAgIHNob3dVc2FnZVxyXG4gICAgICAgICAgICAgICAgICA/IGxvYWRpbmdVc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gTG9jYWxlLlNldHRpbmdzLlVzYWdlLklzQ2hlY2tpbmdcclxuICAgICAgICAgICAgICAgICAgICA6IExvY2FsZS5TZXR0aW5ncy5Vc2FnZS5TdWJUaXRsZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2U/LnVzZWQgPz8gXCJbP11cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2U/LnN1YnNjcmlwdGlvbiA/PyBcIls/XVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICA6IExvY2FsZS5TZXR0aW5ncy5Vc2FnZS5Ob0FjY2Vzc1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHshc2hvd1VzYWdlIHx8IGxvYWRpbmdVc2FnZSA/IChcclxuICAgICAgICAgICAgICAgIDxkaXYgLz5cclxuICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PFJlc2V0SWNvbj48L1Jlc2V0SWNvbj59XHJcbiAgICAgICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5Vc2FnZS5DaGVja31cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY2hlY2tVc2FnZSh0cnVlKX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgICkgOiBudWxsfVxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21Nb2RlbC5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ3VzdG9tTW9kZWwuU3ViVGl0bGV9XHJcbiAgICAgICAgICAgIHZlcnRpY2FsPXt0cnVlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkN1c3RvbU1vZGVsLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgbWF4V2lkdGg6IFwidW5zZXRcIiwgdGV4dEFsaWduOiBcImxlZnRcIiB9fVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmN1c3RvbU1vZGVsc31cclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1vZGVsMSxtb2RlbDIsbW9kZWwzXCJcclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICBjb25maWcudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLmN1c3RvbU1vZGVscyA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxNb2RlbENvbmZpZ0xpc3RcclxuICAgICAgICAgICAgbW9kZWxDb25maWc9e2NvbmZpZy5tb2RlbENvbmZpZ31cclxuICAgICAgICAgICAgdXBkYXRlQ29uZmlnPXsodXBkYXRlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsQ29uZmlnID0geyAuLi5jb25maWcubW9kZWxDb25maWcgfTtcclxuICAgICAgICAgICAgICB1cGRhdGVyKG1vZGVsQ29uZmlnKTtcclxuICAgICAgICAgICAgICBjb25maWcudXBkYXRlKChjb25maWcpID0+IChjb25maWcubW9kZWxDb25maWcgPSBtb2RlbENvbmZpZykpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L0xpc3Q+XHJcblxyXG4gICAgICAgIHtzaG91bGRTaG93UHJvbXB0TW9kYWwgJiYgKFxyXG4gICAgICAgICAgPFVzZXJQcm9tcHRNb2RhbCBvbkNsb3NlPXsoKSA9PiBzZXRTaG93UHJvbXB0TW9kYWwoZmFsc2UpfSAvPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPExpc3Q+XHJcbiAgICAgICAgICA8UmVhbHRpbWVDb25maWdMaXN0XHJcbiAgICAgICAgICAgIHJlYWx0aW1lQ29uZmlnPXtjb25maWcucmVhbHRpbWVDb25maWd9XHJcbiAgICAgICAgICAgIHVwZGF0ZUNvbmZpZz17KHVwZGF0ZXIpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCByZWFsdGltZUNvbmZpZyA9IHsgLi4uY29uZmlnLnJlYWx0aW1lQ29uZmlnIH07XHJcbiAgICAgICAgICAgICAgdXBkYXRlcihyZWFsdGltZUNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgY29uZmlnLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgIChjb25maWcpID0+IChjb25maWcucmVhbHRpbWVDb25maWcgPSByZWFsdGltZUNvbmZpZyksXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9MaXN0PlxyXG4gICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgPFRUU0NvbmZpZ0xpc3RcclxuICAgICAgICAgICAgdHRzQ29uZmlnPXtjb25maWcudHRzQ29uZmlnfVxyXG4gICAgICAgICAgICB1cGRhdGVDb25maWc9eyh1cGRhdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdHRzQ29uZmlnID0geyAuLi5jb25maWcudHRzQ29uZmlnIH07XHJcbiAgICAgICAgICAgICAgdXBkYXRlcih0dHNDb25maWcpO1xyXG4gICAgICAgICAgICAgIGNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKGNvbmZpZy50dHNDb25maWcgPSB0dHNDb25maWcpKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAgICA8RGFuZ2VySXRlbXMgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgKTtcclxufVxyXG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwic3R5bGVzIiwiUmVzZXRJY29uIiwiQWRkSWNvbiIsIkNsb3NlSWNvbiIsIkNvcHlJY29uIiwiQ2xlYXJJY29uIiwiTG9hZGluZ0ljb24iLCJFZGl0SWNvbiIsIkZpcmVJY29uIiwiRXllSWNvbiIsIkNvbmZpcm1JY29uIiwiQ29ubmVjdGlvbkljb24iLCJDbG91ZFN1Y2Nlc3NJY29uIiwiQ2xvdWRGYWlsSWNvbiIsInRyYWNrU2V0dGluZ3NQYWdlR3VpZGVUb0NQYXltZW50Q2xpY2siLCJJbnB1dCIsIkxpc3QiLCJMaXN0SXRlbSIsIk1vZGFsIiwiUGFzc3dvcmRJbnB1dCIsIlBvcG92ZXIiLCJTZWxlY3QiLCJzaG93Q29uZmlybSIsIk1vZGVsQ29uZmlnTGlzdCIsIkljb25CdXR0b24iLCJTdWJtaXRLZXkiLCJ1c2VDaGF0U3RvcmUiLCJUaGVtZSIsInVzZVVwZGF0ZVN0b3JlIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJMb2NhbGUiLCJBbGxMYW5ncyIsIkFMTF9MQU5HX09QVElPTlMiLCJjaGFuZ2VMYW5nIiwiZ2V0TGFuZyIsImNvcHlUb0NsaXBib2FyZCIsImNsaWVudFVwZGF0ZSIsInNlbXZlckNvbXBhcmUiLCJMaW5rIiwiQW50aHJvcGljIiwiQXp1cmUiLCJCYWlkdSIsIlRlbmNlbnQiLCJCeXRlRGFuY2UiLCJBbGliYWJhIiwiTW9vbnNob3QiLCJYQUkiLCJHb29nbGUiLCJHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZCIsIk9QRU5BSV9CQVNFX1VSTCIsIlBhdGgiLCJSRUxFQVNFX1VSTCIsIlNUT1JBR0VfS0VZIiwiU2VydmljZVByb3ZpZGVyIiwiU2xvdElEIiwiVVBEQVRFX1VSTCIsIlN0YWJpbGl0eSIsIklmbHl0ZWsiLCJTQUFTX0NIQVRfVVJMIiwiQ2hhdEdMTSIsIkRlZXBTZWVrIiwiU2lsaWNvbkZsb3ciLCJTZWFyY2hTZXJ2aWNlIiwidXNlUHJvbXB0U3RvcmUiLCJFcnJvckJvdW5kYXJ5IiwiSW5wdXRSYW5nZSIsInVzZU5hdmlnYXRlIiwiQXZhdGFyIiwiQXZhdGFyUGlja2VyIiwiZ2V0Q2xpZW50Q29uZmlnIiwidXNlU3luY1N0b3JlIiwibmFub2lkIiwidXNlTWFza1N0b3JlIiwiUHJvdmlkZXJUeXBlIiwiVFRTQ29uZmlnTGlzdCIsIlJlYWx0aW1lQ29uZmlnTGlzdCIsIkVkaXRQcm9tcHRNb2RhbCIsInByb3BzIiwicHJvbXB0U3RvcmUiLCJwcm9tcHQiLCJnZXQiLCJpZCIsImRpdiIsImNsYXNzTmFtZSIsInRpdGxlIiwiU2V0dGluZ3MiLCJQcm9tcHQiLCJFZGl0TW9kYWwiLCJUaXRsZSIsIm9uQ2xvc2UiLCJhY3Rpb25zIiwib25DbGljayIsInRleHQiLCJVSSIsIkNvbmZpcm0iLCJib3JkZXJlZCIsImlucHV0IiwidHlwZSIsInZhbHVlIiwicmVhZE9ubHkiLCJpc1VzZXIiLCJvbklucHV0IiwiZSIsInVwZGF0ZVByb21wdCIsImN1cnJlbnRUYXJnZXQiLCJjb250ZW50Iiwicm93cyIsIlVzZXJQcm9tcHRNb2RhbCIsInVzZXJQcm9tcHRzIiwiZ2V0VXNlclByb21wdHMiLCJidWlsdGluUHJvbXB0cyIsImFsbFByb21wdHMiLCJjb25jYXQiLCJzZWFyY2hJbnB1dCIsInNldFNlYXJjaElucHV0Iiwic2VhcmNoUHJvbXB0cyIsInNldFNlYXJjaFByb21wdHMiLCJwcm9tcHRzIiwibGVuZ3RoIiwiZWRpdGluZ1Byb21wdElkIiwic2V0RWRpdGluZ1Byb21wdElkIiwic2VhcmNoUmVzdWx0Iiwic2VhcmNoIiwicHJvbXB0SWQiLCJhZGQiLCJjcmVhdGVkQXQiLCJEYXRlIiwibm93IiwiaWNvbiIsIkFkZCIsInBsYWNlaG9sZGVyIiwiU2VhcmNoIiwibWFwIiwidiIsIl8iLCJyZW1vdmUiLCJ1bmRlZmluZWQiLCJEYW5nZXJJdGVtcyIsImNoYXRTdG9yZSIsImFwcENvbmZpZyIsIkRhbmdlciIsIlJlc2V0Iiwic3ViVGl0bGUiLCJTdWJUaXRsZSIsImFyaWEiLCJBY3Rpb24iLCJyZXNldCIsIkNsZWFyIiwiY2xlYXJBbGxEYXRhIiwiQ2hlY2tCdXR0b24iLCJzeW5jU3RvcmUiLCJjb3VsZENoZWNrIiwiY2xvdWRTeW5jIiwiY2hlY2tTdGF0ZSIsInNldENoZWNrU3RhdGUiLCJjaGVjayIsInZhbGlkIiwiU3luYyIsIkNvbmZpZyIsIkNoZWNrIiwiU3luY0NvbmZpZ01vZGFsIiwiU3luY1R5cGUiLCJzZWxlY3QiLCJwcm92aWRlciIsIm9uQ2hhbmdlIiwidXBkYXRlIiwiY29uZmlnIiwidGFyZ2V0IiwiT2JqZWN0IiwiZW50cmllcyIsImsiLCJvcHRpb24iLCJQcm94eSIsImNoZWNrZWQiLCJ1c2VQcm94eSIsIlByb3h5VXJsIiwicHJveHlVcmwiLCJXZWJEQVYiLCJXZWJEYXYiLCJFbmRwb2ludCIsIndlYmRhdiIsImVuZHBvaW50IiwiVXNlck5hbWUiLCJ1c2VybmFtZSIsIlBhc3N3b3JkIiwicGFzc3dvcmQiLCJVcFN0YXNoIiwidXBzdGFzaCIsImFwaUtleSIsIlN5bmNJdGVtcyIsIm1hc2tTdG9yZSIsImNvdWxkU3luYyIsInNob3dTeW5jQ29uZmlnTW9kYWwiLCJzZXRTaG93U3luY0NvbmZpZ01vZGFsIiwic3RhdGVPdmVydmlldyIsInNlc3Npb25zIiwibWVzc2FnZUNvdW50IiwicmVkdWNlIiwicCIsImMiLCJtZXNzYWdlcyIsImNoYXQiLCJtZXNzYWdlIiwia2V5cyIsIm1hc2siLCJtYXNrcyIsIm5hdmlnYXRlIiwic2hvd0Vtb2ppUGlja2VyIiwic2V0U2hvd0Vtb2ppUGlja2VyIiwidXBkYXRlQ29uZmlnIiwidXBkYXRlU3RvcmUiLCJjaGVja2luZ1VwZGF0ZSIsInNldENoZWNraW5nVXBkYXRlIiwiY3VycmVudFZlcnNpb24iLCJmb3JtYXRWZXJzaW9uIiwidmVyc2lvbiIsInJlbW90ZUlkIiwicmVtb3RlVmVyc2lvbiIsImhhc05ld1ZlcnNpb24iLCJ1cGRhdGVVcmwiLCJpc0FwcCIsImNoZWNrVXBkYXRlIiwiZm9yY2UiLCJnZXRMYXRlc3RWZXJzaW9uIiwidGhlbiIsImNvbnNvbGUiLCJsb2ciLCJhY2Nlc3NTdG9yZSIsInNob3VsZEhpZGVCYWxhbmNlUXVlcnkiLCJpc09wZW5BaVVybCIsIm9wZW5haVVybCIsImluY2x1ZGVzIiwiaGlkZUJhbGFuY2VRdWVyeSIsInVzYWdlIiwidXNlZCIsInN1YnNjcmlwdGlvbiIsImxvYWRpbmdVc2FnZSIsInNldExvYWRpbmdVc2FnZSIsImNoZWNrVXNhZ2UiLCJ1cGRhdGVVc2FnZSIsImZpbmFsbHkiLCJlbmFibGVkQWNjZXNzQ29udHJvbCIsImJ1aWx0aW5Db3VudCIsImNvdW50IiwiYnVpbHRpbiIsImN1c3RvbUNvdW50Iiwic2hvdWxkU2hvd1Byb21wdE1vZGFsIiwic2V0U2hvd1Byb21wdE1vZGFsIiwic2hvd1VzYWdlIiwiaXNBdXRob3JpemVkIiwia2V5ZG93bkV2ZW50Iiwia2V5IiwiSG9tZSIsImNsaWVudENvbmZpZyIsInN0YXRlIiwidXNlQ3VzdG9tQ29uZmlnIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNob3dBY2Nlc3NDb2RlIiwiYWNjZXNzQ29kZUNvbXBvbmVudCIsIkFjY2VzcyIsIkFjY2Vzc0NvZGUiLCJhY2Nlc3NDb2RlIiwiUGxhY2Vob2xkZXIiLCJhY2Nlc3MiLCJzYWFzU3RhcnRDb21wb25lbnQiLCJTYWFzU3RhcnQiLCJMYWJlbCIsIkNoYXROb3ciLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJ1c2VDdXN0b21Db25maWdDb21wb25lbnQiLCJDdXN0b21FbmRwb2ludCIsImFyaWEtbGFiZWwiLCJvcGVuQUlDb25maWdDb21wb25lbnQiLCJPcGVuQUkiLCJBcGlLZXkiLCJTaG93UGFzc3dvcmQiLCJvcGVuYWlBcGlLZXkiLCJhenVyZUNvbmZpZ0NvbXBvbmVudCIsIkV4YW1wbGVFbmRwb2ludCIsImF6dXJlVXJsIiwiYXp1cmVBcGlLZXkiLCJBcGlWZXJpb24iLCJhenVyZUFwaVZlcnNpb24iLCJnb29nbGVDb25maWdDb21wb25lbnQiLCJnb29nbGVVcmwiLCJnb29nbGVBcGlLZXkiLCJBcGlWZXJzaW9uIiwiZ29vZ2xlQXBpVmVyc2lvbiIsIkdvb2dsZVNhZmV0eVNldHRpbmdzIiwiZ29vZ2xlU2FmZXR5U2V0dGluZ3MiLCJhbnRocm9waWNDb25maWdDb21wb25lbnQiLCJhbnRocm9waWNVcmwiLCJhbnRocm9waWNBcGlLZXkiLCJhbnRocm9waWNBcGlWZXJzaW9uIiwiVmlzaW9uIiwiYmFpZHVDb25maWdDb21wb25lbnQiLCJiYWlkdVVybCIsImJhaWR1QXBpS2V5IiwiU2VjcmV0S2V5IiwiYmFpZHVTZWNyZXRLZXkiLCJ0ZW5jZW50Q29uZmlnQ29tcG9uZW50IiwidGVuY2VudFVybCIsInRlbmNlbnRTZWNyZXRJZCIsInRlbmNlbnRTZWNyZXRLZXkiLCJieXRlRGFuY2VDb25maWdDb21wb25lbnQiLCJieXRlZGFuY2VVcmwiLCJieXRlZGFuY2VBcGlLZXkiLCJhbGliYWJhQ29uZmlnQ29tcG9uZW50IiwiYWxpYmFiYVVybCIsImFsaWJhYmFBcGlLZXkiLCJtb29uc2hvdENvbmZpZ0NvbXBvbmVudCIsIm1vb25zaG90VXJsIiwibW9vbnNob3RBcGlLZXkiLCJkZWVwc2Vla0NvbmZpZ0NvbXBvbmVudCIsImRlZXBzZWVrVXJsIiwiZGVlcHNlZWtBcGlLZXkiLCJYQUlDb25maWdDb21wb25lbnQiLCJ4YWlVcmwiLCJ4YWlBcGlLZXkiLCJjaGF0Z2xtQ29uZmlnQ29tcG9uZW50IiwiY2hhdGdsbVVybCIsImNoYXRnbG1BcGlLZXkiLCJzaWxpY29uZmxvd0NvbmZpZ0NvbXBvbmVudCIsInNpbGljb25mbG93VXJsIiwic2lsaWNvbmZsb3dBcGlLZXkiLCJzdGFiaWxpdHlDb25maWdDb21wb25lbnQiLCJzdGFiaWxpdHlVcmwiLCJzdGFiaWxpdHlBcGlLZXkiLCJsZmx5dGVrQ29uZmlnQ29tcG9uZW50IiwiaWZseXRla1VybCIsImlmbHl0ZWtBcGlLZXkiLCJBcGlTZWNyZXQiLCJpZmx5dGVrQXBpU2VjcmV0IiwiZGF0YS10YXVyaS1kcmFnLXJlZ2lvbiIsIkNsb3NlIiwib25FbW9qaUNsaWNrIiwiYXZhdGFyIiwib3BlbiIsInRhYkluZGV4IiwiVXBkYXRlIiwiVmVyc2lvbiIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIklzTGF0ZXN0IiwiR29Ub1VwZGF0ZSIsIkNoZWNrVXBkYXRlIiwiU2VuZEtleSIsInN1Ym1pdEtleSIsInZhbHVlcyIsInRoZW1lIiwiTGFuZyIsIk5hbWUiLCJsYW5nIiwiRm9udFNpemUiLCJmb250U2l6ZSIsIm1pbiIsIm1heCIsInN0ZXAiLCJOdW1iZXIiLCJwYXJzZUludCIsIkZvbnRGYW1pbHkiLCJmb250RmFtaWx5IiwiQXV0b0dlbmVyYXRlVGl0bGUiLCJlbmFibGVBdXRvR2VuZXJhdGVUaXRsZSIsIlNlbmRQcmV2aWV3QnViYmxlIiwic2VuZFByZXZpZXdCdWJibGUiLCJNYXNrIiwiQXJ0aWZhY3RzIiwiZW5hYmxlQXJ0aWZhY3RzIiwiQ29kZUZvbGQiLCJlbmFibGVDb2RlRm9sZCIsImRhdGEtdGVzdGlkIiwiU3BsYXNoIiwiZG9udFNob3dNYXNrU3BsYXNoU2NyZWVuIiwiQnVpbHRpbiIsImhpZGVCdWlsdGluTWFza3MiLCJEaXNhYmxlIiwiZGlzYWJsZVByb21wdEhpbnQiLCJMaXN0Q291bnQiLCJFZGl0IiwiQ3VzdG9tTW9kZWwiLCJoaWRlVXNlckFwaUtleSIsIlByb3ZpZGVyIiwiVXNhZ2UiLCJOb0FjY2VzcyIsInZlcnRpY2FsIiwic3R5bGUiLCJ3aWR0aCIsIm1heFdpZHRoIiwidGV4dEFsaWduIiwiY3VzdG9tTW9kZWxzIiwibW9kZWxDb25maWciLCJ1cGRhdGVyIiwicmVhbHRpbWVDb25maWciLCJ0dHNDb25maWciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/components/settings.tsx\n"));
/***/ })
});