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/page.e2528c1f3f5999ac.hot-u...

22 lines
70 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("app/page",{
/***/ "(app-pages-browser)/./app/constant.ts":
/*!*************************!*\
!*** ./app/constant.ts ***!
\*************************/
/***/ (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 */ ACCESS_CODE_PREFIX: function() { return /* binding */ ACCESS_CODE_PREFIX; },\n/* harmony export */ ALIBABA_BASE_URL: function() { return /* binding */ ALIBABA_BASE_URL; },\n/* harmony export */ ANTHROPIC_BASE_URL: function() { return /* binding */ ANTHROPIC_BASE_URL; },\n/* harmony export */ Alibaba: function() { return /* binding */ Alibaba; },\n/* harmony export */ Anthropic: function() { return /* binding */ Anthropic; },\n/* harmony export */ ApiPath: function() { return /* binding */ ApiPath; },\n/* harmony export */ Azure: function() { return /* binding */ Azure; },\n/* harmony export */ BAIDU_BASE_URL: function() { return /* binding */ BAIDU_BASE_URL; },\n/* harmony export */ BAIDU_OATUH_URL: function() { return /* binding */ BAIDU_OATUH_URL; },\n/* harmony export */ BYTEDANCE_BASE_URL: function() { return /* binding */ BYTEDANCE_BASE_URL; },\n/* harmony export */ Baidu: function() { return /* binding */ Baidu; },\n/* harmony export */ ByteDance: function() { return /* binding */ ByteDance; },\n/* harmony export */ CACHE_URL_PREFIX: function() { return /* binding */ CACHE_URL_PREFIX; },\n/* harmony export */ CHATGLM_BASE_URL: function() { return /* binding */ CHATGLM_BASE_URL; },\n/* harmony export */ CHAT_PAGE_SIZE: function() { return /* binding */ CHAT_PAGE_SIZE; },\n/* harmony export */ ChatGLM: function() { return /* binding */ ChatGLM; },\n/* harmony export */ DEEPSEEK_BASE_URL: function() { return /* binding */ DEEPSEEK_BASE_URL; },\n/* harmony export */ DEEPSEEK_SUMMARIZE_MODEL: function() { return /* binding */ DEEPSEEK_SUMMARIZE_MODEL; },\n/* harmony export */ DEFAULT_GA_ID: function() { return /* binding */ DEFAULT_GA_ID; },\n/* harmony export */ DEFAULT_INPUT_TEMPLATE: function() { return /* binding */ DEFAULT_INPUT_TEMPLATE; },\n/* harmony export */ DEFAULT_MODELS: function() { return /* binding */ DEFAULT_MODELS; },\n/* harmony export */ DEFAULT_SIDEBAR_WIDTH: function() { return /* binding */ DEFAULT_SIDEBAR_WIDTH; },\n/* harmony export */ DEFAULT_SYSTEM_TEMPLATE: function() { return /* binding */ DEFAULT_SYSTEM_TEMPLATE; },\n/* harmony export */ DEFAULT_TTS_ENGINE: function() { return /* binding */ DEFAULT_TTS_ENGINE; },\n/* harmony export */ DEFAULT_TTS_ENGINES: function() { return /* binding */ DEFAULT_TTS_ENGINES; },\n/* harmony export */ DEFAULT_TTS_MODEL: function() { return /* binding */ DEFAULT_TTS_MODEL; },\n/* harmony export */ DEFAULT_TTS_MODELS: function() { return /* binding */ DEFAULT_TTS_MODELS; },\n/* harmony export */ DEFAULT_TTS_VOICE: function() { return /* binding */ DEFAULT_TTS_VOICE; },\n/* harmony export */ DEFAULT_TTS_VOICES: function() { return /* binding */ DEFAULT_TTS_VOICES; },\n/* harmony export */ DeepSeek: function() { return /* binding */ DeepSeek; },\n/* harmony export */ EXCLUDE_VISION_MODEL_REGEXES: function() { return /* binding */ EXCLUDE_VISION_MODEL_REGEXES; },\n/* harmony export */ EXPORT_MESSAGE_CLASS_NAME: function() { return /* binding */ EXPORT_MESSAGE_CLASS_NAME; },\n/* harmony export */ FETCH_COMMIT_URL: function() { return /* binding */ FETCH_COMMIT_URL; },\n/* harmony export */ FETCH_TAG_URL: function() { return /* binding */ FETCH_TAG_URL; },\n/* harmony export */ FileName: function() { return /* binding */ FileName; },\n/* harmony export */ GEMINI_BASE_URL: function() { return /* binding */ GEMINI_BASE_URL; },\n/* harmony export */ GEMINI_SUMMARIZE_MODEL: function() { return /* binding */ GEMINI_SUMMARIZE_MODEL; },\n/* harmony export */ Google: function() { return /* binding */ Google; },\n/* harmony export */ GoogleSafetySettingsThreshold: function() { return /* binding */ GoogleSafetySettingsThreshold; },\n/* harmony export */ IFLYTEK_BASE_URL: function() { return /* binding */ IFLYTEK_BASE_URL; },\n/* harmony export */ ISSUE_URL: function() { return /* binding */ ISSUE_URL; },\n/* harmony export */ Iflytek: function() { return /* binding */ Iflytek; },\n/* harmony export */ KnowledgeCutOffDate: function() { return /* binding */ KnowledgeCutOffDate; },\n/* harmony export */ LAST_INPUT_KEY: function() { return /* binding */ LAST_INPUT_KEY; },\n/* harmony export */ MAX_RENDER_MSG_COUNT: function() { return /* binding */ MAX_RENDER_MSG_COUNT; },\n/* harmony export */ MAX_SIDEBAR_WIDTH: function() { return /* binding */ MAX_SIDEBAR_WIDTH; },\n/* harmony export */ MCP_SYSTEM_TEMPLATE: function() { return /* binding */ MCP_SYSTEM_TEMPLATE; },\n/* harmony export */ MCP_TOOLS_TEMPLATE: function() { return /* binding */ MCP_TOOLS_TEMPLATE; },\n/* harmony export */ MIN_SIDEBAR_WIDTH: function() { return /* binding */ MIN_SIDEBAR_WIDTH; },\n/* harmony export */ MOONSHOT_BASE_URL: function() { return /* binding */ MOONSHOT_BASE_URL; },\n/* harmony export */ ModelProvider: function() { return /* binding */ ModelProvider; },\n/* harmony export */ Moonshot: function() { return /* binding */ Moonshot; },\n/* harmony export */ NARROW_SIDEBAR_WIDTH: function() { return /* binding */ NARROW_SIDEBAR_WIDTH; },\n/* harmony export */ OPENAI_BASE_URL: function() { return /* binding */ OPENAI_BASE_URL; },\n/* harmony export */ OWNER: function() { return /* binding */ OWNER; },\n/* harmony export */ OpenaiPath: function() { return /* binding */ OpenaiPath; },\n/* harmony export */ PLUGINS_REPO_URL: function() { return /* binding */ PLUGINS_REPO_URL; },\n/* harmony export */ Path: function() { return /* binding */ Path; },\n/* harmony export */ RELEASE_URL: function() { return /* binding */ RELEASE_URL; },\n/* harmony export */ REPO: function() { return /* binding */ REPO; },\n/* harmony export */ REPO_URL: function() { return /* binding */ REPO_URL; },\n/* harmony export */ REQUEST_TIMEOUT_MS: function() { return /* binding */ REQUEST_TIMEOUT_MS; },\n/* harmony export */ REQUEST_TIMEOUT_MS_FOR_THINKING: function() { return /* binding */ REQUEST_TIMEOUT_MS_FOR_THINKING; },\n/* harmony export */ RUNTIME_CONFIG_DOM: function() { return /* binding */ RUNTIME_CONFIG_DOM; },\n/* harmony export */ SAAS_CHAT_URL: function() { return /* binding */ SAAS_CHAT_URL; },\n/* harmony export */ SAAS_CHAT_UTM_URL: function() { return /* binding */ SAAS_CHAT_UTM_URL; },\n/* harmony export */ SILICONFLOW_BASE_URL: function() { return /* binding */ SILICONFLOW_BASE_URL; },\n/* harmony export */ STABILITY_BASE_URL: function() { return /* binding */ STABILITY_BASE_URL; },\n/* harmony export */ STORAGE_KEY: function() { return /* binding */ STORAGE_KEY; },\n/* harmony export */ SUMMARIZE_MODEL: function() { return /* binding */ SUMMARIZE_MODEL; },\n/* harmony export */ ServiceProvider: function() { return /* binding */ ServiceProvider; },\n/* harmony export */ SiliconFlow: function() { return /* binding */ SiliconFlow; },\n/* harmony export */ SlotID: function() { return /* binding */ SlotID; },\n/* harmony export */ Stability: function() { return /* binding */ Stability; },\n/* harmony export */ StoreKey: function() { return /* binding */ StoreKey; },\n/* harmony export */ TENCENT_BASE_URL: function() { return /* binding */ TENCENT_BASE_URL; },\n/* harmony export */ Tencent: function() { return /* binding */ Tencent; },\n/* harmony export */ UNFINISHED_INPUT: function() { return /* binding */ UNFINISHED_INPUT; },\n/* harmony export */ UPDATE_URL: function() { return /* binding */ UPDATE_URL; },\n/* harmony export */ UPLOAD_URL: function() { return /* binding */ UPLOAD_URL; },\n/* harmony export */ VISION_MODEL_REGEXES: function() { return /* binding */ VISION_MODEL_REGEXES; },\n/* harmony export */ XAI: function() { return /* binding */ XAI; },\n/* harmony export */ XAI_BASE_URL: function() { return /* binding */ XAI_BASE_URL; },\n/* harmony export */ internalAllowedWebDavEndpoints: function() { return /* binding */ internalAllowedWebDavEndpoints; }\n/* harmony export */ });\nconst OWNER = \"ChatGPTNextWeb\";\nconst REPO = \"ChatGPT-Next-Web\";\nconst REPO_URL = \"https://github.com/\".concat(OWNER, \"/\").concat(REPO);\nconst PLUGINS_REPO_URL = \"https://github.com/\".concat(OWNER, \"/NextChat-Awesome-Plugins\");\nconst ISSUE_URL = \"https://github.com/\".concat(OWNER, \"/\").concat(REPO, \"/issues\");\nconst UPDATE_URL = \"\".concat(REPO_URL, \"#keep-updated\");\nconst RELEASE_URL = \"\".concat(REPO_URL, \"/releases\");\nconst FETCH_COMMIT_URL = \"https://api.github.com/repos/\".concat(OWNER, \"/\").concat(REPO, \"/commits?per_page=1\");\nconst FETCH_TAG_URL = \"https://api.github.com/repos/\".concat(OWNER, \"/\").concat(REPO, \"/tags?per_page=1\");\nconst RUNTIME_CONFIG_DOM = \"danger-runtime-config\";\nconst STABILITY_BASE_URL = \"https://api.stability.ai\";\nconst OPENAI_BASE_URL = \"https://api.openai.com\";\nconst ANTHROPIC_BASE_URL = \"https://api.anthropic.com\";\nconst GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/\";\nconst BAIDU_BASE_URL = \"https://aip.baidubce.com\";\nconst BAIDU_OATUH_URL = \"\".concat(BAIDU_BASE_URL, \"/oauth/2.0/token\");\nconst BYTEDANCE_BASE_URL = \"https://ark.cn-beijing.volces.com\";\nconst ALIBABA_BASE_URL = \"https://dashscope.aliyuncs.com/api/\";\nconst TENCENT_BASE_URL = \"https://hunyuan.tencentcloudapi.com\";\nconst MOONSHOT_BASE_URL = \"https://api.moonshot.cn\";\nconst IFLYTEK_BASE_URL = \"https://spark-api-open.xf-yun.com\";\nconst DEEPSEEK_BASE_URL = \"https://api.deepseek.com\";\nconst XAI_BASE_URL = \"https://api.x.ai\";\nconst CHATGLM_BASE_URL = \"https://open.bigmodel.cn\";\nconst SILICONFLOW_BASE_URL = \"https://api.siliconflow.cn\";\nconst CACHE_URL_PREFIX = \"/api/cache\";\nconst UPLOAD_URL = \"\".concat(CACHE_URL_PREFIX, \"/upload\");\nvar Path;\n(function(Path) {\n Path[\"Home\"] = \"/\";\n Path[\"Chat\"] = \"/chat\";\n Path[\"Settings\"] = \"/settings\";\n Path[\"NewChat\"] = \"/new-chat\";\n Path[\"Masks\"] = \"/masks\";\n Path[\"Plugins\"] = \"/plugins\";\n Path[\"Auth\"] = \"/auth\";\n Path[\"Sd\"] = \"/sd\";\n Path[\"SdNew\"] = \"/sd-new\";\n Path[\"Artifacts\"] = \"/artifacts\";\n Path[\"SearchChat\"] = \"/search-chat\";\n Path[\"McpMarket\"] = \"/mcp-market\";\n})(Path || (Path = {}));\nvar ApiPath;\n(function(ApiPath) {\n ApiPath[\"Cors\"] = \"\";\n ApiPath[\"Azure\"] = \"/api/azure\";\n ApiPath[\"OpenAI\"] = \"/api/openai\";\n ApiPath[\"Anthropic\"] = \"/api/anthropic\";\n ApiPath[\"Google\"] = \"/api/google\";\n ApiPath[\"Baidu\"] = \"/api/baidu\";\n ApiPath[\"ByteDance\"] = \"/api/bytedance\";\n ApiPath[\"Alibaba\"] = \"/api/alibaba\";\n ApiPath[\"Tencent\"] = \"/api/tencent\";\n ApiPath[\"Moonshot\"] = \"/api/moonshot\";\n ApiPath[\"Iflytek\"] = \"/api/iflytek\";\n ApiPath[\"Stability\"] = \"/api/stability\";\n ApiPath[\"Artifacts\"] = \"/api/artifacts\";\n ApiPath[\"XAI\"] = \"/api/xai\";\n ApiPath[\"ChatGLM\"] = \"/api/chatglm\";\n ApiPath[\"DeepSeek\"] = \"/api/deepseek\";\n ApiPath[\"SiliconFlow\"] = \"/api/siliconflow\";\n})(ApiPath || (ApiPath = {}));\nvar SlotID;\n(function(SlotID) {\n SlotID[\"AppBody\"] = \"app-body\";\n SlotID[\"CustomModel\"] = \"custom-model\";\n})(SlotID || (SlotID = {}));\nvar FileName;\n(function(FileName) {\n FileName[\"Masks\"] = \"masks.json\";\n FileName[\"Prompts\"] = \"prompts.json\";\n})(FileName || (FileName = {}));\nvar StoreKey;\n(function(StoreKey) {\n StoreKey[\"Chat\"] = \"chat-next-web-store\";\n StoreKey[\"Plugin\"] = \"chat-next-web-plugin\";\n StoreKey[\"Access\"] = \"access-control\";\n StoreKey[\"Config\"] = \"app-config\";\n StoreKey[\"Mask\"] = \"mask-store\";\n StoreKey[\"Prompt\"] = \"prompt-store\";\n StoreKey[\"Update\"] = \"chat-update\";\n StoreKey[\"Sync\"] = \"sync\";\n StoreKey[\"SdList\"] = \"sd-list\";\n StoreKey[\"Mcp\"] = \"mcp-store\";\n})(StoreKey || (StoreKey = {}));\nconst DEFAULT_SIDEBAR_WIDTH = 300;\nconst MAX_SIDEBAR_WIDTH = 500;\nconst MIN_SIDEBAR_WIDTH = 230;\nconst NARROW_SIDEBAR_WIDTH = 100;\nconst ACCESS_CODE_PREFIX = \"nk-\";\nconst LAST_INPUT_KEY = \"last-input\";\nconst UNFINISHED_INPUT = (id)=>\"unfinished-input-\" + id;\nconst STORAGE_KEY = \"chatgpt-next-web\";\nconst REQUEST_TIMEOUT_MS = 60000;\nconst REQUEST_TIMEOUT_MS_FOR_THINKING = REQUEST_TIMEOUT_MS * 5;\nconst EXPORT_MESSAGE_CLASS_NAME = \"export-markdown\";\nvar ServiceProvider;\n(function(ServiceProvider) {\n ServiceProvider[\"OpenAI\"] = \"OpenAI\";\n ServiceProvider[\"Azure\"] = \"Azure\";\n ServiceProvider[\"Google\"] = \"Google\";\n ServiceProvider[\"Anthropic\"] = \"Anthropic\";\n ServiceProvider[\"Baidu\"] = \"Baidu\";\n ServiceProvider[\"ByteDance\"] = \"ByteDance\";\n ServiceProvider[\"Alibaba\"] = \"Alibaba\";\n ServiceProvider[\"Tencent\"] = \"Tencent\";\n ServiceProvider[\"Moonshot\"] = \"Moonshot\";\n ServiceProvider[\"Stability\"] = \"Stability\";\n ServiceProvider[\"Iflytek\"] = \"Iflytek\";\n ServiceProvider[\"XAI\"] = \"XAI\";\n ServiceProvider[\"ChatGLM\"] = \"ChatGLM\";\n ServiceProvider[\"DeepSeek\"] = \"DeepSeek\";\n ServiceProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ServiceProvider || (ServiceProvider = {}));\nvar GoogleSafetySettingsThreshold;\n(function(GoogleSafetySettingsThreshold) {\n GoogleSafetySettingsThreshold[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n GoogleSafetySettingsThreshold[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n GoogleSafetySettingsThreshold[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n GoogleSafetySettingsThreshold[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n})(GoogleSafetySettingsThreshold || (GoogleSafetySettingsThreshold = {}));\nvar ModelProvider;\n(function(ModelProvider) {\n ModelProvider[\"Stability\"] = \"Stability\";\n ModelProvider[\"GPT\"] = \"GPT\";\n ModelProvider[\"GeminiPro\"] = \"GeminiPro\";\n ModelProvider[\"Claude\"] = \"Claude\";\n ModelProvider[\"Ernie\"] = \"Ernie\";\n ModelProvider[\"Doubao\"] = \"Doubao\";\n ModelProvider[\"Qwen\"] = \"Qwen\";\n ModelProvider[\"Hunyuan\"] = \"Hunyuan\";\n ModelProvider[\"Moonshot\"] = \"Moonshot\";\n ModelProvider[\"Iflytek\"] = \"Iflytek\";\n ModelProvider[\"XAI\"] = \"XAI\";\n ModelProvider[\"ChatGLM\"] = \"ChatGLM\";\n ModelProvider[\"DeepSeek\"] = \"DeepSeek\";\n ModelProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ModelProvider || (ModelProvider = {}));\nconst Stability = {\n GeneratePath: \"v2beta/stable-image/generate\",\n ExampleEndpoint: \"https://api.stability.ai\"\n};\nconst Anthropic = {\n ChatPath: \"v1/messages\",\n ChatPath1: \"v1/complete\",\n ExampleEndpoint: \"https://api.anthropic.com\",\n Vision: \"2023-06-01\"\n};\nconst OpenaiPath = {\n ChatPath: \"v1/chat/completions\",\n SpeechPath: \"v1/audio/speech\",\n ImagePath: \"v1/images/generations\",\n UsagePath: \"dashboard/billing/usage\",\n SubsPath: \"dashboard/billing/subscription\",\n ListModelPath: \"v1/models\"\n};\nconst Azure = {\n ChatPath: (deployName, apiVersion)=>\"deployments/\".concat(deployName, \"/chat/completions?api-version=\").concat(apiVersion),\n // https://<your_resource_name>.openai.azure.com/openai/deployments/<your_deployment_name>/images/generations?api-version=<api_version>\n ImagePath: (deployName, apiVersion)=>\"deployments/\".concat(deployName, \"/images/generations?api-version=\").concat(apiVersion),\n ExampleEndpoint: \"https://{resource-url}/openai\"\n};\nconst Google = {\n ExampleEndpoint: \"https://generativelanguage.googleapis.com/\",\n ChatPath: (modelName)=>\"v1beta/models/\".concat(modelName, \":streamGenerateContent\")\n};\nconst Baidu = {\n ExampleEndpoint: BAIDU_BASE_URL,\n ChatPath: (modelName)=>{\n let endpoint = modelName;\n if (modelName === \"ernie-4.0-8k\") {\n endpoint = \"completions_pro\";\n }\n if (modelName === \"ernie-4.0-8k-preview-0518\") {\n endpoint = \"completions_adv_pro\";\n }\n if (modelName === \"ernie-3.5-8k\") {\n endpoint = \"completions\";\n }\n if (modelName === \"ernie-speed-8k\") {\n endpoint = \"ernie_speed\";\n }\n return \"rpc/2.0/ai_custom/v1/wenxinworkshop/chat/\".concat(endpoint);\n }\n};\nconst ByteDance = {\n ExampleEndpoint: \"https://ark.cn-beijing.volces.com/api/\",\n ChatPath: \"api/v3/chat/completions\"\n};\nconst Alibaba = {\n ExampleEndpoint: ALIBABA_BASE_URL,\n ChatPath: \"v1/services/aigc/text-generation/generation\"\n};\nconst Tencent = {\n ExampleEndpoint: TENCENT_BASE_URL\n};\nconst Moonshot = {\n ExampleEndpoint: MOONSHOT_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst Iflytek = {\n ExampleEndpoint: IFLYTEK_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DeepSeek = {\n ExampleEndpoint: DEEPSEEK_BASE_URL,\n ChatPath: \"chat/completions\"\n};\nconst XAI = {\n ExampleEndpoint: XAI_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst ChatGLM = {\n ExampleEndpoint: CHATGLM_BASE_URL,\n ChatPath: \"api/paas/v4/chat/completions\",\n ImagePath: \"api/paas/v4/images/generations\",\n VideoPath: \"api/paas/v4/videos/generations\"\n};\nconst SiliconFlow = {\n ExampleEndpoint: SILICONFLOW_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DEFAULT_INPUT_TEMPLATE = \"{{input}}\"; // input / time / model / lang\n// export const DEFAULT_SYSTEM_TEMPLATE = `\n// You are ChatGPT, a large language model trained by {{ServiceProvider}}.\n// Knowledge cutoff: {{cutoff}}\n// Current model: {{model}}\n// Current time: {{time}}\n// Latex inline: $x^2$\n// Latex block: $$e=mc^2$$\n// `;\nconst DEFAULT_SYSTEM_TEMPLATE = \"\\nYou are ChatGPT, a large language model trained by {{ServiceProvider}}.\\nKnowledge cutoff: {{cutoff}}\\nCurrent model: {{model}}\\nCurrent time: {{time}}\\nLatex inline: \\\\(x^2\\\\) \\nLatex block: $$e=mc^2$$\\n\";\nconst MCP_TOOLS_TEMPLATE = \"\\n[clientId]\\n{{ clientId }}\\n[tools]\\n{{ tools }}\\n\";\nconst MCP_SYSTEM_TEMPLATE = '\\nYou are an AI assistant with access to system tools. Your role is to help users by combining natural language understanding with tool operations when needed.\\n\\n1. AVAILABLE TOOLS:\\n{{ MCP_TOOLS }}\\n\\n2. WHEN TO USE TOOLS:\\n - ALWAYS USE TOOLS when they can help answer user questions\\n - DO NOT just describe what you could do - TAKE ACTION immediately\\n - If you\\'re not sure whether to use a tool, USE IT\\n - Common triggers for tool use:\\n * Questions about files or directories\\n * Requests to check, list, or manipulate system resources\\n * Any query that can be answered with available tools\\n\\n3. HOW TO USE TOOLS:\\n A. Tool Call Format:\\n - Use markdown code blocks with format: ```json:mcp:{clientId}```\\n - Always include:\\n * method: \"tools/call\"Only this method is supported\\n * params: \\n - name: must match an available primitive name\\n - arguments: required parameters for the primitive\\n\\n B. Response Format:\\n - Tool responses will come as user messages\\n - Format: ```json:mcp-response:{clientId}```\\n - Wait for response before making another tool call\\n\\n C. Important Rules:\\n - Only use tools/call method\\n - Only ONE tool call per message\\n - ALWAYS TAKE ACTION instead of just describing what you could do\\n - Include the correct clientId in code block language tag\\n - Verify arguments match the primitive\\'s requirements\\n\\n4. INTERACTION FLOW:\\n A. When user makes a request:\\n - IMMEDIATELY use appropriate tool if available\\n - DO NOT ask if user wants you to use the tool\\n - DO NOT just describe what you could do\\n B. After receiving tool response:\\n - Explain results clearly\\n - Take next appropriate action if needed\\n C. If tools fail:\\n - Explain the error\\n - Try alternative approach immediately\\n\\n5. EXAMPLE INTERACTION:\\n\\n good example:\\n\\n ```json:mcp:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"list_allowed_directories\",\\n \"arguments\": {}\\n }\\n }\\n ```\"\\n\\n\\n ```json:mcp-response:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"write_file\",\\n \"arguments\": {\\n \"path\": \"/Users/river/dev/nextchat/test/joke.txt\",\\n \"content\": \"为什么数学书总是感到忧伤?因为它有太多的问题。\"\\n }\\n }\\n }\\n```\\n\\n follwing is the wrong! mcp json example:\\n\\n ```json:mcp:filesystem\\n {\\n \"method\": \"write_file\",\\n \"params\": {\\n \"path\": \"NextChat_Information.txt\",\\n \"content\": \"1\"\\n }\\n }\\n ```\\n\\n This is wrong because the method is not tools/call.\\n \\n ```{\\n \"method\": \"search_repositories\",\\n \"params\": {\\n \"query\": \"2oeee\"\\n }\\n}\\n ```\\n\\n This is wrong because the method is not tools/call.!!!!!!!!!!!\\n\\n the right format is:\\n ```json:mcp:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"search_repositories\",\\n \"arguments\": {\\n \"query\": \"2oeee\"\\n }\\n }\\n }\\n ```\\n \\n please follow the format strictly ONLY use tools/call method!!!!!!!!!!!\\n \\n';\nconst SUMMARIZE_MODEL = \"gpt-4o-mini\";\nconst GEMINI_SUMMARIZE_MODEL = \"gemini-pro\";\nconst DEEPSEEK_SUMMARIZE_MODEL = \"deepseek-ai/DeepSeek-R1-Distill-Llama-8B\";\nconst KnowledgeCutOffDate = {\n default: \"2021-09\",\n \"gpt-4-turbo\": \"2023-12\",\n \"gpt-4-turbo-2024-04-09\": \"2023-12\",\n \"gpt-4-turbo-preview\": \"2023-12\",\n \"gpt-4o\": \"2023-10\",\n \"gpt-4o-2024-05-13\": \"2023-10\",\n \"gpt-4o-2024-08-06\": \"2023-10\",\n \"gpt-4o-2024-11-20\": \"2023-10\",\n \"chatgpt-4o-latest\": \"2023-10\",\n \"gpt-4o-mini\": \"2023-10\",\n \"gpt-4o-mini-2024-07-18\": \"2023-10\",\n \"gpt-4-vision-preview\": \"2023-04\",\n \"o1-mini-2024-09-12\": \"2023-10\",\n \"o1-mini\": \"2023-10\",\n \"o1-preview-2024-09-12\": \"2023-10\",\n \"o1-preview\": \"2023-10\",\n \"o1-2024-12-17\": \"2023-10\",\n o1: \"2023-10\",\n \"o3-mini-2025-01-31\": \"2023-10\",\n \"o3-mini\": \"2023-10\",\n // After improvements,\n // it's now easier to add \"KnowledgeCutOffDate\" instead of stupid hardcoding it, as was done previously.\n \"gemini-pro\": \"2023-12\",\n \"gemini-pro-vision\": \"2023-12\",\n \"deepseek-chat\": \"2024-07\",\n \"deepseek-coder\": \"2024-07\"\n};\nconst DEFAULT_TTS_ENGINE = \"OpenAI-TTS\";\nconst DEFAULT_TTS_ENGINES = [\n \"OpenAI-TTS\",\n \"Edge-TTS\"\n];\nconst DEFAULT_TTS_MODEL = \"tts-1\";\nconst DEFAULT_TTS_VOICE = \"alloy\";\nconst DEFAULT_TTS_MODELS = [\n \"tts-1\",\n \"tts-1-hd\"\n];\nconst DEFAULT_TTS_VOICES = [\n \"alloy\",\n \"echo\",\n \"fable\",\n \"onyx\",\n \"nova\",\n \"shimmer\"\n];\nconst VISION_MODEL_REGEXES = [\n /vision/,\n /gpt-4o/,\n /claude-3/,\n /gemini-1\\.5/,\n /gemini-exp/,\n /gemini-2\\.0/,\n /learnlm/,\n /qwen-vl/,\n /qwen2-vl/,\n /gpt-4-turbo(?!.*preview)/,\n /^dall-e-3$/,\n /glm-4v/\n];\nconst EXCLUDE_VISION_MODEL_REGEXES = [\n /claude-3-5-haiku-20241022/\n];\nconst openaiModels = [];\nconst googleModels = [];\nconst anthropicModels = [];\nconst baiduModels = [];\nconst bytedanceModels = [];\nconst alibabaModes = [];\nconst tencentModels = [];\nconst moonshotModes = [];\nconst iflytekModels = [];\nconst deepseekModels = [];\nconst xAIModes = [];\nconst chatglmModels = [];\nconst siliconflowModels = [\n \"deepseek-ai/DeepSeek-R1\",\n \"deepseek-ai/DeepSeek-V3\",\n \"deepseek-ai/DeepSeek-R1-Distill-Llama-8B\"\n];\nlet seq = 1000; // 内置的模型序号生成器从1000开始\nconst DEFAULT_MODELS = [\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"openai\",\n providerName: \"OpenAI\",\n providerType: \"openai\",\n sorted: 1\n }\n })),\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"azure\",\n providerName: \"Azure\",\n providerType: \"azure\",\n sorted: 2\n }\n })),\n ...googleModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"google\",\n providerName: \"Google\",\n providerType: \"google\",\n sorted: 3\n }\n })),\n ...anthropicModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"anthropic\",\n providerName: \"Anthropic\",\n providerType: \"anthropic\",\n sorted: 4\n }\n })),\n ...baiduModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"baidu\",\n providerName: \"Baidu\",\n providerType: \"baidu\",\n sorted: 5\n }\n })),\n ...bytedanceModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"bytedance\",\n providerName: \"ByteDance\",\n providerType: \"bytedance\",\n sorted: 6\n }\n })),\n ...alibabaModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"alibaba\",\n providerName: \"Alibaba\",\n providerType: \"alibaba\",\n sorted: 7\n }\n })),\n ...tencentModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"tencent\",\n providerName: \"Tencent\",\n providerType: \"tencent\",\n sorted: 8\n }\n })),\n ...moonshotModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"moonshot\",\n providerName: \"Moonshot\",\n providerType: \"moonshot\",\n sorted: 9\n }\n })),\n ...iflytekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"iflytek\",\n providerName: \"Iflytek\",\n providerType: \"iflytek\",\n sorted: 10\n }\n })),\n ...xAIModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"xai\",\n providerName: \"XAI\",\n providerType: \"xai\",\n sorted: 11\n }\n })),\n ...chatglmModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"chatglm\",\n providerName: \"ChatGLM\",\n providerType: \"chatglm\",\n sorted: 12\n }\n })),\n ...deepseekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"deepseek\",\n providerName: \"DeepSeek\",\n providerType: \"deepseek\",\n sorted: 13\n }\n })),\n ...siliconflowModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"siliconflow\",\n providerName: \"SiliconFlow\",\n providerType: \"siliconflow\",\n sorted: 14\n }\n }))\n];\nconst CHAT_PAGE_SIZE = 15;\nconst MAX_RENDER_MSG_COUNT = 45;\n// some famous webdav endpoints\nconst internalAllowedWebDavEndpoints = [\n \"https://dav.jianguoyun.com/dav/\",\n \"https://dav.dropdav.com/\",\n \"https://dav.box.com/dav\",\n \"https://nanao.teracloud.jp/dav/\",\n \"https://bora.teracloud.jp/dav/\",\n \"https://webdav.4shared.com/\",\n \"https://dav.idrivesync.com\",\n \"https://webdav.yandex.com\",\n \"https://app.koofr.net/dav/Koofr\"\n];\nconst DEFAULT_GA_ID = \"G-89WN60ZK2E\";\nconst SAAS_CHAT_URL = \"https://nextchat.dev/chat\";\nconst SAAS_CHAT_UTM_URL = \"https://nextchat.dev/chat?utm=github\";\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb25zdGFudC50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxRQUFRLGlCQUFpQjtBQUMvQixNQUFNQyxPQUFPLG1CQUFtQjtBQUNoQyxNQUFNQyxXQUFXLHNCQUErQkQsT0FBVEQsT0FBTSxLQUFRLE9BQUxDLE1BQU87QUFDdkQsTUFBTUUsbUJBQW1CLHNCQUE0QixPQUFOSCxPQUFNLDZCQUEyQjtBQUNoRixNQUFNSSxZQUFZLHNCQUErQkgsT0FBVEQsT0FBTSxLQUFRLE9BQUxDLE1BQUssV0FBUztBQUMvRCxNQUFNSSxhQUFhLEdBQVksT0FBVEgsVUFBUyxpQkFBZTtBQUM5QyxNQUFNSSxjQUFjLEdBQVksT0FBVEosVUFBUyxhQUFXO0FBQzNDLE1BQU1LLG1CQUFtQixnQ0FBeUNOLE9BQVRELE9BQU0sS0FBUSxPQUFMQyxNQUFLLHVCQUFxQjtBQUM1RixNQUFNTyxnQkFBZ0IsZ0NBQXlDUCxPQUFURCxPQUFNLEtBQVEsT0FBTEMsTUFBSyxvQkFBa0I7QUFDdEYsTUFBTVEscUJBQXFCLHdCQUF3QjtBQUVuRCxNQUFNQyxxQkFBcUIsMkJBQTJCO0FBRXRELE1BQU1DLGtCQUFrQix5QkFBeUI7QUFDakQsTUFBTUMscUJBQXFCLDRCQUE0QjtBQUV2RCxNQUFNQyxrQkFBa0IsNkNBQTZDO0FBRXJFLE1BQU1DLGlCQUFpQiwyQkFBMkI7QUFDbEQsTUFBTUMsa0JBQWtCLEdBQWtCLE9BQWZELGdCQUFlLG9CQUFrQjtBQUU1RCxNQUFNRSxxQkFBcUIsb0NBQW9DO0FBRS9ELE1BQU1DLG1CQUFtQixzQ0FBc0M7QUFFL0QsTUFBTUMsbUJBQW1CLHNDQUFzQztBQUUvRCxNQUFNQyxvQkFBb0IsMEJBQTBCO0FBQ3BELE1BQU1DLG1CQUFtQixvQ0FBb0M7QUFFN0QsTUFBTUMs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d2VicGFjazovL19OX0UvLi9hcHAvY29uc3RhbnQudHM/YWY0NCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgT1dORVIgPSBcIkNoYXRHUFROZXh0V2ViXCI7XHJcbmV4cG9ydCBjb25zdCBSRVBPID0gXCJDaGF0R1BULU5leHQtV2ViXCI7XHJcbmV4cG9ydCBjb25zdCBSRVBPX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vJHtSRVBPfWA7XHJcbmV4cG9ydCBjb25zdCBQTFVHSU5TX1JFUE9fVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke09XTkVSfS9OZXh0Q2hhdC1Bd2Vzb21lLVBsdWdpbnNgO1xyXG5leHBvcnQgY29uc3QgSVNTVUVfVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke09XTkVSfS8ke1JFUE99L2lzc3Vlc2A7XHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVVJMID0gYCR7UkVQT19VUkx9I2tlZXAtdXBkYXRlZGA7XHJcbmV4cG9ydCBjb25zdCBSRUxFQVNFX1VSTCA9IGAke1JFUE9fVVJMfS9yZWxlYXNlc2A7XHJcbmV4cG9ydCBjb25zdCBGRVRDSF9DT01NSVRfVVJMID0gYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJHtPV05FUn0vJHtSRVBPfS9jb21taXRzP3Blcl9wYWdlPTFgO1xyXG5leHBvcnQgY29uc3QgRkVUQ0hfVEFHX1VSTCA9IGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7T1dORVJ9LyR7UkVQT30vdGFncz9wZXJfcGFnZT0xYDtcclxuZXhwb3J0IGNvbnN0IFJVTlRJTUVfQ09ORklHX0RPTSA9IFwiZGFuZ2VyLXJ1bnRpbWUtY29uZmlnXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU1RBQklMSVRZX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5zdGFiaWxpdHkuYWlcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBPUEVOQUlfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLm9wZW5haS5jb21cIjtcclxuZXhwb3J0IGNvbnN0IEFOVEhST1BJQ19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuYW50aHJvcGljLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFTUlOSV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9nZW5lcmF0aXZlbGFuZ3VhZ2UuZ29vZ2xlYXBpcy5jb20vXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQkFJRFVfQkFTRV9VUkwgPSBcImh0dHBzOi8vYWlwLmJhaWR1YmNlLmNvbVwiO1xyXG5leHBvcnQgY29uc3QgQkFJRFVfT0FUVUhfVVJMID0gYCR7QkFJRFVfQkFTRV9VUkx9L29hdXRoLzIuMC90b2tlbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQllURURBTkNFX0JBU0VfVVJMID0gXCJodHRwczovL2Fyay5jbi1iZWlqaW5nLnZvbGNlcy5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBTElCQUJBX0JBU0VfVVJMID0gXCJodHRwczovL2Rhc2hzY29wZS5hbGl5dW5jcy5jb20vYXBpL1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRFTkNFTlRfQkFTRV9VUkwgPSBcImh0dHBzOi8vaHVueXVhbi50ZW5jZW50Y2xvdWRhcGkuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTU9PTlNIT1RfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLm1vb25zaG90LmNuXCI7XHJcbmV4cG9ydCBjb25zdCBJRkxZVEVLX0JBU0VfVVJMID0gXCJodHRwczovL3NwYXJrLWFwaS1vcGVuLnhmLXl1bi5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUVQU0VFS19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuZGVlcHNlZWsuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgWEFJX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS54LmFpXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hBVEdMTV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9vcGVuLmJpZ21vZGVsLmNuXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU0lMSUNPTkZMT1dfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLnNpbGljb25mbG93LmNuXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ0FDSEVfVVJMX1BSRUZJWCA9IFwiL2FwaS9jYWNoZVwiO1xyXG5leHBvcnQgY29uc3QgVVBMT0FEX1VSTCA9IGAke0NBQ0hFX1VSTF9QUkVGSVh9L3VwbG9hZGA7XHJcblxyXG5leHBvcnQgZW51bSBQYXRoIHtcclxuICBIb21lID0gXCIvXCIsXHJcbiAgQ2hhdCA9IFwiL2NoYXRcIixcclxuICBTZXR0aW5ncyA9IFwiL3NldHRpbmdzXCIsXHJcbiAgTmV3Q2hhdCA9IFwiL25ldy1jaGF0XCIsXHJcbiAgTWFza3MgPSBcIi9tYXNrc1wiLFxyXG4gIFBsdWdpbnMgPSBcIi9wbHVnaW5zXCIsXHJcbiAgQXV0aCA9IFwiL2F1dGhcIixcclxuICBTZCA9IFwiL3NkXCIsXHJcbiAgU2ROZXcgPSBcIi9zZC1uZXdcIixcclxuICBBcnRpZmFjdHMgPSBcIi9hcnRpZmFjdHNcIixcclxuICBTZWFyY2hDaGF0ID0gXCIvc2VhcmNoLWNoYXRcIixcclxuICBNY3BNYXJrZXQgPSBcIi9tY3AtbWFya2V0XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFwaVBhdGgge1xyXG4gIENvcnMgPSBcIlwiLFxyXG4gIEF6dXJlID0gXCIvYXBpL2F6dXJlXCIsXHJcbiAgT3BlbkFJID0gXCIvYXBpL29wZW5haVwiLFxyXG4gIEFudGhyb3BpYyA9IFwiL2FwaS9hbnRocm9waWNcIixcclxuICBHb29nbGUgPSBcIi9hcGkvZ29vZ2xlXCIsXHJcbiAgQmFpZHUgPSBcIi9hcGkvYmFpZHVcIixcclxuICBCeXRlRGFuY2UgPSBcIi9hcGkvYnl0ZWRhbmNlXCIsXHJcbiAgQWxpYmFiYSA9IFwiL2FwaS9hbGliYWJhXCIsXHJcbiAgVGVuY2VudCA9IFwiL2FwaS90ZW5jZW50XCIsXHJcbiAgTW9vbnNob3QgPSBcIi9hcGkvbW9vbnNob3RcIixcclxuICBJZmx5dGVrID0gXCIvYXBpL2lmbHl0ZWtcIixcclxuICBTdGFiaWxpdHkgPSBcIi9hcGkvc3RhYmlsaXR5XCIsXHJcbiAgQXJ0aWZhY3RzID0gXCIvYXBpL2FydGlmYWN0c1wiLFxyXG4gIFhBSSA9IFwiL2FwaS94YWlcIixcclxuICBDaGF0R0xNID0gXCIvYXBpL2NoYXRnbG1cIixcclxuICBEZWVwU2VlayA9IFwiL2FwaS9kZWVwc2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCIvYXBpL3NpbGljb25mbG93XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNsb3RJRCB7XHJcbiAgQXBwQm9keSA9IFwiYXBwLWJvZHlcIixcclxuICBDdXN0b21Nb2RlbCA9IFwiY3VzdG9tLW1vZGVsXCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVOYW1lIHtcclxuICBNYXNrcyA9IFwibWFza3MuanNvblwiLFxyXG4gIFByb21wdHMgPSBcInByb21wdHMuanNvblwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTdG9yZUtleSB7XHJcbiAgQ2hhdCA9IFwiY2hhdC1uZXh0LXdlYi1zdG9yZVwiLFxyXG4gIFBsdWdpbiA9IFwiY2hhdC1uZXh0LXdlYi1wbHVnaW5cIixcclxuICBBY2Nlc3MgPSBcImFjY2Vzcy1jb250cm9sXCIsXHJcbiAgQ29uZmlnID0gXCJhcHAtY29uZmlnXCIsXHJcbiAgTWFzayA9IFwibWFzay1zdG9yZVwiLFxyXG4gIFByb21wdCA9IFwicHJvbXB0LXN0b3JlXCIsXHJcbiAgVXBkYXRlID0gXCJjaGF0LXVwZGF0ZVwiLFxyXG4gIFN5bmMgPSBcInN5bmNcIixcclxuICBTZExpc3QgPSBcInNkLWxpc3RcIixcclxuICBNY3AgPSBcIm1jcC1zdG9yZVwiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSURFQkFSX1dJRFRIID0gMzAwO1xyXG5leHBvcnQgY29uc3QgTUFYX1NJREVCQVJfV0lEVEggPSA1MDA7XHJcbmV4cG9ydCBjb25zdCBNSU5fU0lERUJBUl9XSURUSCA9IDIzMDtcclxuZXhwb3J0IGNvbnN0IE5BUlJPV19TSURFQkFSX1dJRFRIID0gMTAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFDQ0VTU19DT0RFX1BSRUZJWCA9IFwibmstXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTEFTVF9JTlBVVF9LRVkgPSBcImxhc3QtaW5wdXRcIjtcclxuZXhwb3J0IGNvbnN0IFVORklOSVNIRURfSU5QVVQgPSAoaWQ6IHN0cmluZykgPT4gXCJ1bmZpbmlzaGVkLWlucHV0LVwiICsgaWQ7XHJcblxyXG5leHBvcnQgY29uc3QgU1RPUkFHRV9LRVkgPSBcImNoYXRncHQtbmV4dC13ZWJcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBSRVFVRVNUX1RJTUVPVVRfTVMgPSA2MDAwMDtcclxuZXhwb3J0IGNvbnN0IFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcgPSBSRVFVRVNUX1RJTUVPVVRfTVMgKiA1O1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYUE9SVF9NRVNTQUdFX0NMQVNTX05BTUUgPSBcImV4cG9ydC1tYXJrZG93blwiO1xyXG5cclxuZXhwb3J0IGVudW0gU2VydmljZVByb3ZpZGVyIHtcclxuICBPcGVuQUkgPSBcIk9wZW5BSVwiLFxyXG4gIEF6dXJlID0gXCJBenVyZVwiLFxyXG4gIEdvb2dsZSA9IFwiR29vZ2xlXCIsXHJcbiAgQW50aHJvcGljID0gXCJBbnRocm9waWNcIixcclxuICBCYWlkdSA9IFwiQmFpZHVcIixcclxuICBCeXRlRGFuY2UgPSBcIkJ5dGVEYW5jZVwiLFxyXG4gIEFsaWJhYmEgPSBcIkFsaWJhYmFcIixcclxuICBUZW5jZW50ID0gXCJUZW5jZW50XCIsXHJcbiAgTW9vbnNob3QgPSBcIk1vb25zaG90XCIsXHJcbiAgU3RhYmlsaXR5ID0gXCJTdGFiaWxpdHlcIixcclxuICBJZmx5dGVrID0gXCJJZmx5dGVrXCIsXHJcbiAgWEFJID0gXCJYQUlcIixcclxuICBDaGF0R0xNID0gXCJDaGF0R0xNXCIsXHJcbiAgRGVlcFNlZWsgPSBcIkRlZXBTZWVrXCIsXHJcbiAgU2lsaWNvbkZsb3cgPSBcIlNpbGljb25GbG93XCIsXHJcbn1cclxuXHJcbi8vIEdvb2dsZSBBUEkgc2FmZXR5IHNldHRpbmdzLCBzZWUgaHR0cHM6Ly9haS5nb29nbGUuZGV2L2dlbWluaS1hcGkvZG9jcy9zYWZldHktc2V0dGluZ3NcclxuLy8gQkxPQ0tfTk9ORSB3aWxsIG5vdCBibG9jayBhbnkgY29udGVudCwgYW5kIEJMT0NLX09OTFlfSElHSCB3aWxsIGJsb2NrIG9ubHkgaGlnaC1yaXNrIGNvbnRlbnQuXHJcbmV4cG9ydCBlbnVtIEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkIHtcclxuICBCTE9DS19OT05FID0gXCJCTE9DS19OT05FXCIsXHJcbiAgQkxPQ0tfT05MWV9ISUdIID0gXCJCTE9DS19PTkxZX0hJR0hcIixcclxuICBCTE9DS19NRURJVU1fQU5EX0FCT1ZFID0gXCJCTE9DS19NRURJVU1fQU5EX0FCT1ZFXCIsXHJcbiAgQkxPQ0tfTE9XX0FORF9BQk9WRSA9IFwiQkxPQ0tfTE9XX0FORF9BQk9WRVwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBNb2RlbFByb3ZpZGVyIHtcclxuICBTdGFiaWxpdHkgPSBcIlN0YWJpbGl0eVwiLFxyXG4gIEdQVCA9IFwiR1BUXCIsXHJcbiAgR2VtaW5pUHJvID0gXCJHZW1pbmlQcm9cIixcclxuICBDbGF1ZGUgPSBcIkNsYXVkZVwiLFxyXG4gIEVybmllID0gXCJFcm5pZVwiLFxyXG4gIERvdWJhbyA9IFwiRG91YmFvXCIsXHJcbiAgUXdlbiA9IFwiUXdlblwiLFxyXG4gIEh1bnl1YW4gPSBcIkh1bnl1YW5cIixcclxuICBNb29uc2hvdCA9IFwiTW9vbnNob3RcIixcclxuICBJZmx5dGVrID0gXCJJZmx5dGVrXCIsXHJcbiAgWEFJID0gXCJYQUlcIixcclxuICBDaGF0R0xNID0gXCJDaGF0R0xNXCIsXHJcbiAgRGVlcFNlZWsgPSBcIkRlZXBTZWVrXCIsXHJcbiAgU2lsaWNvbkZsb3cgPSBcIlNpbGljb25GbG93XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBTdGFiaWxpdHkgPSB7XHJcbiAgR2VuZXJhdGVQYXRoOiBcInYyYmV0YS9zdGFibGUtaW1hZ2UvZ2VuZXJhdGVcIixcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcGkuc3RhYmlsaXR5LmFpXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQW50aHJvcGljID0ge1xyXG4gIENoYXRQYXRoOiBcInYxL21lc3NhZ2VzXCIsXHJcbiAgQ2hhdFBhdGgxOiBcInYxL2NvbXBsZXRlXCIsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXBpLmFudGhyb3BpYy5jb21cIixcclxuICBWaXNpb246IFwiMjAyMy0wNi0wMVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IE9wZW5haVBhdGggPSB7XHJcbiAgQ2hhdFBhdGg6IFwidjEvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG4gIFNwZWVjaFBhdGg6IFwidjEvYXVkaW8vc3BlZWNoXCIsXHJcbiAgSW1hZ2VQYXRoOiBcInYxL2ltYWdlcy9nZW5lcmF0aW9uc1wiLFxyXG4gIFVzYWdlUGF0aDogXCJkYXNoYm9hcmQvYmlsbGluZy91c2FnZVwiLFxyXG4gIFN1YnNQYXRoOiBcImRhc2hib2FyZC9iaWxsaW5nL3N1YnNjcmlwdGlvblwiLFxyXG4gIExpc3RNb2RlbFBhdGg6IFwidjEvbW9kZWxzXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQXp1cmUgPSB7XHJcbiAgQ2hhdFBhdGg6IChkZXBsb3lOYW1lOiBzdHJpbmcsIGFwaVZlcnNpb246IHN0cmluZykgPT5cclxuICAgIGBkZXBsb3ltZW50cy8ke2RlcGxveU5hbWV9L2NoYXQvY29tcGxldGlvbnM/YXBpLXZlcnNpb249JHthcGlWZXJzaW9ufWAsXHJcbiAgLy8gaHR0cHM6Ly88eW91cl9yZXNvdXJjZV9uYW1lPi5vcGVuYWkuYXp1cmUuY29tL29wZW5haS9kZXBsb3ltZW50cy88eW91cl9kZXBsb3ltZW50X25hbWU+L2ltYWdlcy9nZW5lcmF0aW9ucz9hcGktdmVyc2lvbj08YXBpX3ZlcnNpb24+XHJcbiAgSW1hZ2VQYXRoOiAoZGVwbG95TmFtZTogc3RyaW5nLCBhcGlWZXJzaW9uOiBzdHJpbmcpID0+XHJcbiAgICBgZGVwbG95bWVudHMvJHtkZXBsb3lOYW1lfS9pbWFnZXMvZ2VuZXJhdGlvbnM/YXBpLXZlcnNpb249JHthcGlWZXJzaW9ufWAsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8ve3Jlc291cmNlLXVybH0vb3BlbmFpXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgR29vZ2xlID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL2dlbmVyYXRpdmVsYW5ndWFnZS5nb29nbGVhcGlzLmNvbS9cIixcclxuICBDaGF0UGF0aDogKG1vZGVsTmFtZTogc3RyaW5nKSA9PlxyXG4gICAgYHYxYmV0YS9tb2RlbHMvJHttb2RlbE5hbWV9OnN0cmVhbUdlbmVyYXRlQ29udGVudGAsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQmFpZHUgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBCQUlEVV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogKG1vZGVsTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBsZXQgZW5kcG9pbnQgPSBtb2RlbE5hbWU7XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTQuMC04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc19wcm9cIjtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwiZXJuaWUtNC4wLThrLXByZXZpZXctMDUxOFwiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc19hZHZfcHJvXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTMuNS04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS1zcGVlZC04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJlcm5pZV9zcGVlZFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGBycGMvMi4wL2FpX2N1c3RvbS92MS93ZW54aW53b3Jrc2hvcC9jaGF0LyR7ZW5kcG9pbnR9YDtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEJ5dGVEYW5jZSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcmsuY24tYmVpamluZy52b2xjZXMuY29tL2FwaS9cIixcclxuICBDaGF0UGF0aDogXCJhcGkvdjMvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFsaWJhYmEgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBBTElCQUJBX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL3NlcnZpY2VzL2FpZ2MvdGV4dC1nZW5lcmF0aW9uL2dlbmVyYXRpb25cIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBUZW5jZW50ID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogVEVOQ0VOVF9CQVNFX1VSTCxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBNb29uc2hvdCA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IE1PT05TSE9UX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBJZmx5dGVrID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogSUZMWVRFS19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgRGVlcFNlZWsgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBERUVQU0VFS19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJjaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgWEFJID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogWEFJX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDaGF0R0xNID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQ0hBVEdMTV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJhcGkvcGFhcy92NC9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbiAgSW1hZ2VQYXRoOiBcImFwaS9wYWFzL3Y0L2ltYWdlcy9nZW5lcmF0aW9uc1wiLFxyXG4gIFZpZGVvUGF0aDogXCJhcGkvcGFhcy92NC92aWRlb3MvZ2VuZXJhdGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBTaWxpY29uRmxvdyA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFNJTElDT05GTE9XX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUX1RFTVBMQVRFID0gYHt7aW5wdXR9fWA7IC8vIGlucHV0IC8gdGltZSAvIG1vZGVsIC8gbGFuZ1xyXG4vLyBleHBvcnQgY29uc3QgREVGQVVMVF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbi8vIFlvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IHt7U2VydmljZVByb3ZpZGVyfX0uXHJcbi8vIEtub3dsZWRnZSBjdXRvZmY6IHt7Y3V0b2ZmfX1cclxuLy8gQ3VycmVudCBtb2RlbDoge3ttb2RlbH19XHJcbi8vIEN1cnJlbnQgdGltZToge3t0aW1lfX1cclxuLy8gTGF0ZXggaW5saW5lOiAkeF4yJFxyXG4vLyBMYXRleCBibG9jazogJCRlPW1jXjIkJFxyXG4vLyBgO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbllvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IHt7U2VydmljZVByb3ZpZGVyfX0uXHJcbktub3dsZWRnZSBjdXRvZmY6IHt7Y3V0b2ZmfX1cclxuQ3VycmVudCBtb2RlbDoge3ttb2RlbH19XHJcbkN1cnJlbnQgdGltZToge3t0aW1lfX1cclxuTGF0ZXggaW5saW5lOiBcXFxcKHheMlxcXFwpIFxyXG5MYXRleCBibG9jazogJCRlPW1jXjIkJFxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1DUF9UT09MU19URU1QTEFURSA9IGBcclxuW2NsaWVudElkXVxyXG57eyBjbGllbnRJZCB9fVxyXG5bdG9vbHNdXHJcbnt7IHRvb2xzIH19XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgTUNQX1NZU1RFTV9URU1QTEFURSA9IGBcclxuWW91IGFyZSBhbiBBSSBhc3Npc3RhbnQgd2l0aCBhY2Nlc3MgdG8gc3lzdGVtIHRvb2xzLiBZb3VyIHJvbGUgaXMgdG8gaGVscCB1c2VycyBieSBjb21iaW5pbmcgbmF0dXJhbCBsYW5ndWFnZSB1bmRlcnN0YW5kaW5nIHdpdGggdG9vbCBvcGVyYXRpb25zIHdoZW4gbmVlZGVkLlxyXG5cclxuMS4gQVZBSUxBQkxFIFRPT0xTOlxyXG57eyBNQ1BfVE9PTFMgfX1cclxuXHJcbjIuIFdIRU4gVE8gVVNFIFRPT0xTOlxyXG4gICAtIEFMV0FZUyBVU0UgVE9PTFMgd2hlbiB0aGV5IGNhbiBoZWxwIGFuc3dlciB1c2VyIHF1ZXN0aW9uc1xyXG4gICAtIERPIE5PVCBqdXN0IGRlc2NyaWJlIHdoYXQgeW91IGNvdWxkIGRvIC0gVEFLRSBBQ1RJT04gaW1tZWRpYXRlbHlcclxuICAgLSBJZiB5b3UncmUgbm90IHN1cmUgd2hldGhlciB0byB1c2UgYSB0b29sLCBVU0UgSVRcclxuICAgLSBDb21tb24gdHJpZ2dlcnMgZm9yIHRvb2wgdXNlOlxyXG4gICAgICogUXVlc3Rpb25zIGFib3V0IGZpbGVzIG9yIGRpcmVjdG9yaWVzXHJcbiAgICAgKiBSZXF1ZXN0cyB0byBjaGVjaywgbGlzdCwgb3IgbWFuaXB1bGF0ZSBzeXN0ZW0gcmVzb3VyY2VzXHJcbiAgICAgKiBBbnkgcXVlcnkgdGhhdCBjYW4gYmUgYW5zd2VyZWQgd2l0aCBhdmFpbGFibGUgdG9vbHNcclxuXHJcbjMuIEhPVyBUTyBVU0UgVE9PTFM6XHJcbiAgIEEuIFRvb2wgQ2FsbCBGb3JtYXQ6XHJcbiAgICAgIC0gVXNlIG1hcmtkb3duIGNvZGUgYmxvY2tzIHdpdGggZm9ybWF0OiBcXGBcXGBcXGBqc29uOm1jcDp7Y2xpZW50SWR9XFxgXFxgXFxgXHJcbiAgICAgIC0gQWx3YXlzIGluY2x1ZGU6XHJcbiAgICAgICAgKiBtZXRob2Q6IFwidG9vbHMvY2FsbFwi77yIT25seSB0aGlzIG1ldGhvZCBpcyBzdXBwb3J0ZWTvvIlcclxuICAgICAgICAqIHBhcmFtczogXHJcbiAgICAgICAgICAtIG5hbWU6IG11c3QgbWF0Y2ggYW4gYXZhaWxhYmxlIHByaW1pdGl2ZSBuYW1lXHJcbiAgICAgICAgICAtIGFyZ3VtZW50czogcmVxdWlyZWQgcGFyYW1ldGVycyBmb3IgdGhlIHByaW1pdGl2ZVxyXG5cclxuICAgQi4gUmVzcG9uc2UgRm9ybWF0OlxyXG4gICAgICAtIFRvb2wgcmVzcG9uc2VzIHdpbGwgY29tZSBhcyB1c2VyIG1lc3NhZ2VzXHJcbiAgICAgIC0gRm9ybWF0OiBcXGBcXGBcXGBqc29uOm1jcC1yZXNwb25zZTp7Y2xpZW50SWR9XFxgXFxgXFxgXHJcbiAgICAgIC0gV2FpdCBmb3IgcmVzcG9uc2UgYmVmb3JlIG1ha2luZyBhbm90aGVyIHRvb2wgY2FsbFxyXG5cclxuICAgQy4gSW1wb3J0YW50IFJ1bGVzOlxyXG4gICAgICAtIE9ubHkgdXNlIHRvb2xzL2NhbGwgbWV0aG9kXHJcbiAgICAgIC0gT25seSBPTkUgdG9vbCBjYWxsIHBlciBtZXNzYWdlXHJcbiAgICAgIC0gQUxXQVlTIFRBS0UgQUNUSU9OIGluc3RlYWQgb2YganVzdCBkZXNjcmliaW5nIHdoYXQgeW91IGNvdWxkIGRvXHJcbiAgICAgIC0gSW5jbHVkZSB0aGUgY29ycmVjdCBjbGllbnRJZCBpbiBjb2RlIGJsb2NrIGxhbmd1YWdlIHRhZ1xyXG4gICAgICAtIFZlcmlmeSBhcmd1bWVudHMgbWF0Y2ggdGhlIHByaW1pdGl2ZSdzIHJlcXVpcmVtZW50c1xyXG5cclxuNC4gSU5URVJBQ1RJT04gRkxPVzpcclxuICAgQS4gV2hlbiB1c2VyIG1ha2VzIGEgcmVxdWVzdDpcclxuICAgICAgLSBJTU1FRElBVEVMWSB1c2UgYXBwcm9wcmlhdGUgdG9vbCBpZiBhdmFpbGFibGVcclxuICAgICAgLSBETyBOT1QgYXNrIGlmIHVzZXIgd2FudHMgeW91IHRvIHVzZSB0aGUgdG9vbFxyXG4gICAgICAtIERPIE5PVCBqdXN0IGRlc2NyaWJlIHdoYXQgeW91IGNvdWxkIGRvXHJcbiAgIEIuIEFmdGVyIHJlY2VpdmluZyB0b29sIHJlc3BvbnNlOlxyXG4gICAgICAtIEV4cGxhaW4gcmVzdWx0cyBjbGVhcmx5XHJcbiAgICAgIC0gVGFrZSBuZXh0IGFwcHJvcHJpYXRlIGFjdGlvbiBpZiBuZWVkZWRcclxuICAgQy4gSWYgdG9vbHMgZmFpbDpcclxuICAgICAgLSBFeHBsYWluIHRoZSBlcnJvclxyXG4gICAgICAtIFRyeSBhbHRlcm5hdGl2ZSBhcHByb2FjaCBpbW1lZGlhdGVseVxyXG5cclxuNS4gRVhBTVBMRSBJTlRFUkFDVElPTjpcclxuXHJcbiAgZ29vZCBleGFtcGxlOlxyXG5cclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgXCJuYW1lXCI6IFwibGlzdF9hbGxvd2VkX2RpcmVjdG9yaWVzXCIsXHJcbiAgICAgICBcImFyZ3VtZW50c1wiOiB7fVxyXG4gICAgIH1cclxuICAgfVxyXG4gICBcXGBcXGBcXGBcIlxyXG5cclxuXHJcbiAgXFxgXFxgXFxganNvbjptY3AtcmVzcG9uc2U6ZmlsZXN5c3RlbVxyXG4gIHtcclxuICBcIm1ldGhvZFwiOiBcInRvb2xzL2NhbGxcIixcclxuICBcInBhcmFtc1wiOiB7XHJcbiAgICBcIm5hbWVcIjogXCJ3cml0ZV9maWxlXCIsXHJcbiAgICBcImFyZ3VtZW50c1wiOiB7XHJcbiAgICAgIFwicGF0aFwiOiBcIi9Vc2Vycy9yaXZlci9kZXYvbmV4dGNoYXQvdGVzdC9qb2tlLnR4dFwiLFxyXG4gICAgICBcImNvbnRlbnRcIjogXCLkuLrku4DkuYjmlbDlrabkuabmgLvmmK/mhJ/liLDlv6fkvKTvvJ/lm6DkuLrlroPmnInlpKrlpJrnmoTpl67popjjgIJcIlxyXG4gICAgfVxyXG4gIH1cclxuICB9XHJcblxcYFxcYFxcYFxyXG5cclxuICAgZm9sbHdpbmcgaXMgdGhlIHdyb25nISBtY3AganNvbiBleGFtcGxlOlxyXG5cclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgIFwibWV0aG9kXCI6IFwid3JpdGVfZmlsZVwiLFxyXG4gICAgICBcInBhcmFtc1wiOiB7XHJcbiAgICAgICAgXCJwYXRoXCI6IFwiTmV4dENoYXRfSW5mb3JtYXRpb24udHh0XCIsXHJcbiAgICAgICAgXCJjb250ZW50XCI6IFwiMVwiXHJcbiAgICB9XHJcbiAgIH1cclxuICAgXFxgXFxgXFxgXHJcblxyXG4gICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgdGhlIG1ldGhvZCBpcyBub3QgdG9vbHMvY2FsbC5cclxuICAgXHJcbiAgIFxcYFxcYFxcYHtcclxuICBcIm1ldGhvZFwiOiBcInNlYXJjaF9yZXBvc2l0b3JpZXNcIixcclxuICBcInBhcmFtc1wiOiB7XHJcbiAgICBcInF1ZXJ5XCI6IFwiMm9lZWVcIlxyXG4gIH1cclxufVxyXG4gICBcXGBcXGBcXGBcclxuXHJcbiAgIFRoaXMgaXMgd3JvbmcgYmVjYXVzZSB0aGUgbWV0aG9kIGlzIG5vdCB0b29scy9jYWxsLiEhISEhISEhISEhXHJcblxyXG4gICB0aGUgcmlnaHQgZm9ybWF0IGlzOlxyXG4gICBcXGBcXGBcXGBqc29uOm1jcDpmaWxlc3lzdGVtXHJcbiAgIHtcclxuICAgICBcIm1ldGhvZFwiOiBcInRvb2xzL2NhbGxcIixcclxuICAgICBcInBhcmFtc1wiOiB7XHJcbiAgICAgICBcIm5hbWVcIjogXCJzZWFyY2hfcmVwb3NpdG9yaWVzXCIsXHJcbiAgICAgICBcImFyZ3VtZW50c1wiOiB7XHJcbiAgICAgICAgIFwicXVlcnlcIjogXCIyb2VlZVwiXHJcbiAgICAgICB9XHJcbiAgICAgfVxyXG4gICB9XHJcbiAgIFxcYFxcYFxcYFxyXG4gICBcclxuICAgcGxlYXNlIGZvbGxvdyB0aGUgZm9ybWF0IHN0cmljdGx5IE9OTFkgdXNlIHRvb2xzL2NhbGwgbWV0aG9kISEhISEhISEhISFcclxuICAgXHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU1VNTUFSSVpFX01PREVMID0gXCJncHQtNG8tbWluaVwiO1xyXG5leHBvcnQgY29uc3QgR0VNSU5JX1NVTU1BUklaRV9NT0RFTCA9IFwiZ2VtaW5pLXByb1wiO1xyXG5leHBvcnQgY29uc3QgREVFUFNFRUtfU1VNTUFSSVpFX01PREVMID0gXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMS1EaXN0aWxsLUxsYW1hLThCXCI7XHJcblxyXG5leHBvcnQgY29uc3QgS25vd2xlZGdlQ3V0T2ZmRGF0ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICBkZWZhdWx0OiBcIjIwMjEtMDlcIixcclxuICBcImdwdC00LXR1cmJvXCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZ3B0LTQtdHVyYm8tMjAyNC0wNC0wOVwiOiBcIjIwMjMtMTJcIixcclxuICBcImdwdC00LXR1cmJvLXByZXZpZXdcIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJncHQtNG9cIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tMjAyNC0wNS0xM1wiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by0yMDI0LTA4LTA2XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLTIwMjQtMTEtMjBcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJjaGF0Z3B0LTRvLWxhdGVzdFwiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by1taW5pXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLW1pbmktMjAyNC0wNy0xOFwiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00LXZpc2lvbi1wcmV2aWV3XCI6IFwiMjAyMy0wNFwiLFxyXG4gIFwibzEtbWluaS0yMDI0LTA5LTEyXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtbWluaVwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLXByZXZpZXctMjAyNC0wOS0xMlwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLXByZXZpZXdcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMS0yMDI0LTEyLTE3XCI6IFwiMjAyMy0xMFwiLFxyXG4gIG8xOiBcIjIwMjMtMTBcIixcclxuICBcIm8zLW1pbmktMjAyNS0wMS0zMVwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8zLW1pbmlcIjogXCIyMDIzLTEwXCIsXHJcbiAgLy8gQWZ0ZXIgaW1wcm92ZW1lbnRzLFxyXG4gIC8vIGl0J3Mgbm93IGVhc2llciB0byBhZGQgXCJLbm93bGVkZ2VDdXRPZmZEYXRlXCIgaW5zdGVhZCBvZiBzdHVwaWQgaGFyZGNvZGluZyBpdCwgYXMgd2FzIGRvbmUgcHJldmlvdXNseS5cclxuICBcImdlbWluaS1wcm9cIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJnZW1pbmktcHJvLXZpc2lvblwiOiBcIjIwMjMtMTJcIixcclxuICBcImRlZXBzZWVrLWNoYXRcIjogXCIyMDI0LTA3XCIsXHJcbiAgXCJkZWVwc2Vlay1jb2RlclwiOiBcIjIwMjQtMDdcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19FTkdJTkUgPSBcIk9wZW5BSS1UVFNcIjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX0VOR0lORVMgPSBbXCJPcGVuQUktVFRTXCIsIFwiRWRnZS1UVFNcIl07XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19NT0RFTCA9IFwidHRzLTFcIjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX1ZPSUNFID0gXCJhbGxveVwiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfTU9ERUxTID0gW1widHRzLTFcIiwgXCJ0dHMtMS1oZFwiXTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX1ZPSUNFUyA9IFtcclxuICBcImFsbG95XCIsXHJcbiAgXCJlY2hvXCIsXHJcbiAgXCJmYWJsZVwiLFxyXG4gIFwib255eFwiLFxyXG4gIFwibm92YVwiLFxyXG4gIFwic2hpbW1lclwiLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IFZJU0lPTl9NT0RFTF9SRUdFWEVTID0gW1xyXG4gIC92aXNpb24vLFxyXG4gIC9ncHQtNG8vLFxyXG4gIC9jbGF1ZGUtMy8sXHJcbiAgL2dlbWluaS0xXFwuNS8sXHJcbiAgL2dlbWluaS1leHAvLFxyXG4gIC9nZW1pbmktMlxcLjAvLFxyXG4gIC9sZWFybmxtLyxcclxuICAvcXdlbi12bC8sXHJcbiAgL3F3ZW4yLXZsLyxcclxuICAvZ3B0LTQtdHVyYm8oPyEuKnByZXZpZXcpLywgLy8gTWF0Y2hlcyBcImdwdC00LXR1cmJvXCIgYnV0IG5vdCBcImdwdC00LXR1cmJvLXByZXZpZXdcIlxyXG4gIC9eZGFsbC1lLTMkLywgLy8gTWF0Y2hlcyBleGFjdGx5IFwiZGFsbC1lLTNcIlxyXG4gIC9nbG0tNHYvLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYQ0xVREVfVklTSU9OX01PREVMX1JFR0VYRVMgPSBbL2NsYXVkZS0zLTUtaGFpa3UtMjAyNDEwMjIvXTtcclxuXHJcbmNvbnN0IG9wZW5haU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGdvb2dsZU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGFudGhyb3BpY01vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGJhaWR1TW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYnl0ZWRhbmNlTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYWxpYmFiYU1vZGVzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgdGVuY2VudE1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IG1vb25zaG90TW9kZXMgPSBbXTtcclxuXHJcbmNvbnN0IGlmbHl0ZWtNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBkZWVwc2Vla01vZGVscyA9IFtdO1xyXG5cclxuY29uc3QgeEFJTW9kZXMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBjaGF0Z2xtTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3Qgc2lsaWNvbmZsb3dNb2RlbHMgPSBbXHJcbiAgXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMVwiLFxyXG4gIFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIixcclxuICBcImRlZXBzZWVrLWFpL0RlZXBTZWVrLVIxLURpc3RpbGwtTGxhbWEtOEJcIixcclxuXTtcclxuXHJcbmxldCBzZXEgPSAxMDAwOyAvLyDlhoXnva7nmoTmqKHlnovluo/lj7fnlJ/miJDlmajku44xMDAw5byA5aeLXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX01PREVMUyA9IFtcclxuICAuLi5vcGVuYWlNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssIC8vIEdsb2JhbCBzZXF1ZW5jZSBzb3J0KGluZGV4KVxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwib3BlbmFpXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJPcGVuQUlcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcIm9wZW5haVwiLFxyXG4gICAgICBzb3J0ZWQ6IDEsIC8vIOi/memHjOaYr+WbuuWumueahO+8jOehruS/nemhuuW6j+S4juS5i+WJjeWGhee9rueahOeJiOacrOS4gOiHtFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4ub3BlbmFpTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYXp1cmVcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkF6dXJlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhenVyZVwiLFxyXG4gICAgICBzb3J0ZWQ6IDIsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5nb29nbGVNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJnb29nbGVcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkdvb2dsZVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiZ29vZ2xlXCIsXHJcbiAgICAgIHNvcnRlZDogMyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmFudGhyb3BpY01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImFudGhyb3BpY1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQW50aHJvcGljXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhbnRocm9waWNcIixcclxuICAgICAgc29ydGVkOiA0LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYmFpZHVNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJiYWlkdVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQmFpZHVcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImJhaWR1XCIsXHJcbiAgICAgIHNvcnRlZDogNSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmJ5dGVkYW5jZU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImJ5dGVkYW5jZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQnl0ZURhbmNlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJieXRlZGFuY2VcIixcclxuICAgICAgc29ydGVkOiA2LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYWxpYmFiYU1vZGVzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYWxpYmFiYVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQWxpYmFiYVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYWxpYmFiYVwiLFxyXG4gICAgICBzb3J0ZWQ6IDcsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi50ZW5jZW50TW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwidGVuY2VudFwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiVGVuY2VudFwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwidGVuY2VudFwiLFxyXG4gICAgICBzb3J0ZWQ6IDgsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5tb29uc2hvdE1vZGVzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwibW9vbnNob3RcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIk1vb25zaG90XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJtb29uc2hvdFwiLFxyXG4gICAgICBzb3J0ZWQ6IDksXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5pZmx5dGVrTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiaWZseXRla1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiSWZseXRla1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiaWZseXRla1wiLFxyXG4gICAgICBzb3J0ZWQ6IDEwLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4ueEFJTW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJ4YWlcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIlhBSVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwieGFpXCIsXHJcbiAgICAgIHNvcnRlZDogMTEsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5jaGF0Z2xtTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiY2hhdGdsbVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQ2hhdEdMTVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiY2hhdGdsbVwiLFxyXG4gICAgICBzb3J0ZWQ6IDEyLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uZGVlcHNlZWtNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJkZWVwc2Vla1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiRGVlcFNlZWtcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImRlZXBzZWVrXCIsXHJcbiAgICAgIHNvcnRlZDogMTMsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5zaWxpY29uZmxvd01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcInNpbGljb25mbG93XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJTaWxpY29uRmxvd1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwic2lsaWNvbmZsb3dcIixcclxuICAgICAgc29ydGVkOiAxNCxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG5dIGFzIGNvbnN0O1xyXG5cclxuZXhwb3J0IGNvbnN0IENIQVRfUEFHRV9TSVpFID0gMTU7XHJcbmV4cG9ydCBjb25zdCBNQVhfUkVOREVSX01TR19DT1VOVCA9IDQ1O1xyXG5cclxuLy8gc29tZSBmYW1vdXMgd2ViZGF2IGVuZHBvaW50c1xyXG5leHBvcnQgY29uc3QgaW50ZXJuYWxBbGxvd2VkV2ViRGF2RW5kcG9pbnRzID0gW1xyXG4gIFwiaHR0cHM6Ly9kYXYuamlhbmd1b3l1bi5jb20vZGF2L1wiLFxyXG4gIFwiaHR0cHM6Ly9kYXYuZHJvcGRhdi5jb20vXCIsXHJcbiAgXCJodHRwczovL2Rhdi5ib3guY29tL2RhdlwiLFxyXG4gIFwiaHR0cHM6Ly9uYW5hby50ZXJhY2xvdWQuanAvZGF2L1wiLFxyXG4gIFwiaHR0cHM6Ly9ib3JhLnRlcmFjbG91ZC5qcC9kYXYvXCIsXHJcbiAgXCJodHRwczovL3dlYmRhdi40c2hhcmVkLmNvbS9cIixcclxuICBcImh0dHBzOi8vZGF2Lmlkcml2ZXN5bmMuY29tXCIsXHJcbiAgXCJodHRwczovL3dlYmRhdi55YW5kZXguY29tXCIsXHJcbiAgXCJodHRwczovL2FwcC5rb29mci5uZXQvZGF2L0tvb2ZyXCIsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9HQV9JRCA9IFwiRy04OVdONjBaSzJFXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU0FBU19DSEFUX1VSTCA9IFwiaHR0cHM6Ly9uZXh0Y2hhdC5kZXYvY2hhdFwiO1xyXG5leHBvcnQgY29uc3QgU0FBU19DSEFUX1VUTV9VUkwgPSBcImh0dHBzOi8vbmV4dGNoYXQuZGV2L2NoYXQ/dXRtPWdpdGh1YlwiO1xyXG4iXSwibmFtZXMiOlsiT1dORVIiLCJSRVBPIiwiUkVQT19VUkwiLCJQTFVHSU5TX1JFUE9fVVJMIiwiSVNTVUVfVVJMIiwiVVBEQVRFX1VSTCIsIlJFTEVBU0VfVVJMIiwiRkVUQ0hfQ09NTUlUX1VSTCIsIkZFVENIX1RBR19VUkwiLCJSVU5USU1FX0NPTkZJR19ET00iLCJTVEFCSUxJVFlfQkFTRV9VUkwiLCJPUEVOQUlfQkFTRV9VUkwiLCJBTlRIUk9QSUNfQkFTRV9VUkwiLCJHRU1JTklfQkFTRV9VUkwiLCJCQUlEVV9CQVNFX1VSTCIsIkJBSURVX09BVFVIX1VSTCIsIkJZVEVEQU5DRV9CQVNFX1VSTCIsIkFMSUJBQkFfQkFTRV9VUkwiLCJURU5DRU5UX0JBU0VfVVJMIiwiTU9PTlNIT1RfQkFTRV9VUkwiLCJJRkxZVEVLX0JBU0VfVVJMIiwiREVFUFNFRUtfQkFTRV9VUkwiLCJYQUlfQkFTRV9VUkwiLCJDSEFUR0xNX0JBU0VfVVJMIiwiU0lMSUNPTkZMT1dfQkFTRV9VUkwiLCJDQUNIRV9VUkxfUFJFRklYIiwiVVBMT0FEX1VSTCIsIlBhdGgiLCJBcGlQYXRoIiwiU2xvdElEIiwiRmlsZU5hbWUiLCJTdG9yZUtleSIsIkRFRkFVTFRfU0lERUJBUl9XSURUSCIsIk1BWF9TSURFQkFSX1dJRFRIIiwiTUlOX1NJREVCQVJfV0lEVEgiLCJOQVJST1dfU0lERUJBUl9XSURUSCIsIkFDQ0VTU19DT0RFX1BSRUZJWCIsIkxBU1RfSU5QVVRfS0VZIiwiVU5GSU5JU0hFRF9JTlBVVCIsImlkIiwiU1RPUkFHRV9LRVkiLCJSRVFVRVNUX1RJTUVPVVRfTVMiLCJSRVFVRVNUX1RJTUVPVVRfTVNfRk9SX1RISU5LSU5HIiwiRVhQT1JUX01FU1NBR0VfQ0xBU1NfTkFNRSIsIlNlcnZpY2VQcm92aWRlciIsIkdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkIiwiTW9kZWxQcm92aWRlciIsIlN0YWJpbGl0eSIsIkdlbmVyYXRlUGF0aCIsIkV4YW1wbGVFbmRwb2ludCIsIkFudGhyb3BpYyIsIkNoYXRQYXRoIiwiQ2hhdFBhdGgxIiwiVmlzaW9uIiwiT3BlbmFpUGF0aCIsIlNwZWVjaFBhdGgiLCJJbWFnZVBhdGgiLCJVc2FnZVBhdGgiLCJTdWJzUGF0aCIsIkxpc3RNb2RlbFBhdGgiLCJBenVyZSIsImRlcGxveU5hbWUiLCJhcGlWZXJzaW9uIiwiR29vZ2xlIiwibW9kZWxOYW1lIiwiQmFpZHUiLCJlbmRwb2ludCIsIkJ5dGVEYW5jZSIsIkFsaWJhYmEiLCJUZW5jZW50IiwiTW9vbnNob3QiLCJJZmx5dGVrIiwiRGVlcFNlZWsiLCJYQUkiLCJDaGF0R0xNIiwiVmlkZW9QYXRoIiwiU2lsaWNvbkZsb3ciLCJERUZBVUxUX0lOUFVUX1RFTVBMQVRFIiwiREVGQVVMVF9TWVNURU1fVEVNUExBVEUiLCJNQ1BfVE9PTFNfVEVNUExBVEUiLCJNQ1BfU1lTVEVNX1RFTVBMQVRFIiwiU1VNTUFSSVpFX01PREVMIiwiR0VNSU5JX1NVTU1BUklaRV9NT0RFTCIsIkRFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCIsIktub3dsZWRnZUN1dE9mZkRhdGUiLCJkZWZhdWx0IiwibzEiLCJERUZBVUxUX1RUU19FTkdJTkUiLCJERUZBVUxUX1RUU19FTkdJTkVTIiwiREVGQVVMVF9UVFNfTU9ERUwiLCJERUZBVUxUX1RUU19WT0lDRSIsIkRFRkFVTFRfVFRTX01PREVMUyIsIkRFRkFVTFRfVFRTX1ZPSUNFUyIsIlZJU0lPTl9NT0RFTF9SRUdFWEVTIiwiRVhDTFVERV9WSVNJT05fTU9ERUxfUkVHRVhFUyIsIm9wZW5haU1vZGVscyIsImdvb2dsZU1vZGVscyIsImFudGhyb3BpY01vZGVscyIsImJhaWR1TW9kZWxzIiwiYnl0ZWRhbmNlTW9kZWxzIiwiYWxpYmFiYU1vZGVzIiwidGVuY2VudE1vZGVscyIsIm1vb25zaG90TW9kZXMiLCJpZmx5dGVrTW9kZWxzIiwiZGVlcHNlZWtNb2RlbHMiLCJ4QUlNb2RlcyIsImNoYXRnbG1Nb2RlbHMiLCJzaWxpY29uZmxvd01vZGVscyIsInNlcSIsIkRFRkFVTFRfTU9ERUxTIiwibWFwIiwibmFtZSIsImF2YWlsYWJsZSIsInNvcnRlZCIsInByb3ZpZGVyIiwicHJvdmlkZXJOYW1lIiwicHJvdmlkZXJUeXBlIiwiQ0hBVF9QQUdFX1NJWkUiLCJNQVhfUkVOREVSX01TR19DT1VOVCIsImludGVybmFsQWxsb3dlZFdlYkRhdkVuZHBvaW50cyIsIkRFRkFVTFRfR0FfSUQiLCJTQUFTX0NIQVRfVVJMIiwiU0FBU19DSEFUX1VUTV9VUkwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/constant.ts\n"));
/***/ })
});