Correspondents/.next/static/webpack/app/page.e853fe6c6fbf2744.hot-update.js

32 lines
137 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/page",{
/***/ "(app-pages-browser)/./src/components/chat-interface.tsx":
/*!*******************************************!*\
!*** ./src/components/chat-interface.tsx ***!
\*******************************************/
/***/ ((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 */ ChatInterface: () => (/* binding */ ChatInterface)\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/.pnpm/next@15.5.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/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/.pnpm/next@15.5.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/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 _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./src/components/ui/button.tsx\");\n/* harmony import */ var _barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,Mic,Paperclip,Send,Sparkles,SquarePen,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/square-pen.js\");\n/* harmony import */ var _barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,Mic,Paperclip,Send,Sparkles,SquarePen,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/sparkles.js\");\n/* harmony import */ var _barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,Mic,Paperclip,Send,Sparkles,SquarePen,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,Mic,Paperclip,Send,Sparkles,SquarePen,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,Mic,Paperclip,Send,Sparkles,SquarePen,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/paperclip.js\");\n/* harmony import */ var _barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,Mic,Paperclip,Send,Sparkles,SquarePen,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/mic.js\");\n/* harmony import */ var _barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,Mic,Paperclip,Send,Sparkles,SquarePen,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/send.js\");\n/* harmony import */ var _markdown_renderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./markdown-renderer */ \"(app-pages-browser)/./src/components/markdown-renderer.tsx\");\n/* __next_internal_client_entry_do_not_use__ ChatInterface auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nfunction ChatInterface(param) {\n let { agent } = param;\n _s();\n const [messages, setMessages] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [sessionId, setSessionId] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [selectedImages, setSelectedImages] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const messagesContainerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const inputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const fileInputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"ChatInterface.useEffect\": ()=>{\n // Use agent-specific session ID: chat-session-{agentId}\n const sessionKey = \"chat-session-\".concat(agent.id);\n let existingSessionId = localStorage.getItem(sessionKey);\n if (!existingSessionId) {\n // Generate new sessionID using timestamp and random string\n existingSessionId = \"session-\".concat(agent.id, \"-\").concat(Date.now(), \"-\").concat(Math.random().toString(36).substring(2, 15));\n localStorage.setItem(sessionKey, existingSessionId);\n }\n setSessionId(existingSessionId);\n // Load existing messages for this agent\n const messagesKey = \"chat-messages-\".concat(agent.id);\n const savedMessages = localStorage.getItem(messagesKey);\n if (savedMessages) {\n try {\n const parsed = JSON.parse(savedMessages);\n // Ensure timestamps are Date objects\n const messages = parsed.map({\n \"ChatInterface.useEffect.messages\": (msg)=>({\n ...msg,\n timestamp: new Date(msg.timestamp)\n })\n }[\"ChatInterface.useEffect.messages\"]);\n setMessages(messages);\n } catch (err) {\n console.error(\"[chat] Failed to load saved messages:\", err);\n }\n }\n }\n }[\"ChatInterface.useEffect\"], [\n agent.id\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"ChatInterface.useEffect\": ()=>{\n if (messagesContainerRef.current) {\n messagesContainerRef.current.scrollTop = messagesContainerRef.current.scrollHeight;\n }\n }\n }[\"ChatInterface.useEffect\"], [\n messages,\n isLoading\n ]);\n // Save messages to localStorage whenever they change\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"ChatInterface.useEffect\": ()=>{\n const messagesKey = \"chat-messages-\".concat(agent.id);\n localStorage.setItem(messagesKey, JSON.stringify(messages));\n }\n }[\"ChatInterface.useEffect\"], [\n messages,\n agent.id\n ]);\n // Handle image file selection\n const handleImageSelect = async (e)=>{\n const files = e.currentTarget.files;\n if (!files) return;\n const newImages = [];\n for(let i = 0; i < files.length; i++){\n const file = files[i];\n // Only accept image files\n if (!file.type.startsWith(\"image/\")) {\n console.warn(\"[chat] Skipping non-image file:\", file.name);\n continue;\n }\n try {\n const base64 = await fileToBase64(file);\n newImages.push(base64);\n } catch (err) {\n console.error(\"[chat] Failed to convert image:\", err);\n }\n }\n setSelectedImages((prev)=>[\n ...prev,\n ...newImages\n ]);\n // Reset file input\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\";\n }\n };\n // Convert file to base64 string\n const fileToBase64 = (file)=>{\n return new Promise((resolve, reject)=>{\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = ()=>resolve(reader.result);\n reader.onerror = reject;\n });\n };\n // Remove selected image\n const removeImage = (index)=>{\n setSelectedImages((prev)=>prev.filter((_, i)=>i !== index));\n };\n const sendMessage = async (e)=>{\n if (e) {\n e.preventDefault();\n }\n if (!input.trim() || isLoading) return;\n const userMessage = {\n id: Date.now().toString(),\n role: \"user\",\n content: input.trim(),\n timestamp: new Date(),\n images: selectedImages.length > 0 ? selectedImages : undefined\n };\n setMessages((prev)=>[\n ...prev,\n userMessage\n ]);\n setInput(\"\");\n setSelectedImages([]);\n setIsLoading(true);\n try {\n const response = await fetch(\"/api/chat\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n message: userMessage.content,\n timestamp: userMessage.timestamp.toISOString(),\n sessionId: sessionId,\n agentId: agent.id,\n images: selectedImages.length > 0 ? selectedImages : undefined\n })\n });\n const data = await response.json();\n if (!response.ok) {\n const errorMessage = {\n id: (Date.now() + 1).toString(),\n role: \"assistant\",\n content: data.error || \"Failed to communicate with the webhook.\",\n timestamp: new Date(),\n isError: true,\n hint: data.hint\n };\n setMessages((prev)=>[\n ...prev,\n errorMessage\n ]);\n } else {\n const assistantMessage = {\n id: (Date.now() + 1).toString(),\n role: \"assistant\",\n content: data.response || data.message || JSON.stringify(data),\n timestamp: new Date()\n };\n setMessages((prev)=>[\n ...prev,\n assistantMessage\n ]);\n }\n } catch (error) {\n console.error(\"[v0] Error sending message:\", error);\n const errorMessage = {\n id: (Date.now() + 1).toString(),\n role: \"assistant\",\n content: \"Sorry, I encountered an error processing your message. Please try again.\",\n timestamp: new Date(),\n isError: true\n };\n setMessages((prev)=>[\n ...prev,\n errorMessage\n ]);\n } finally{\n var _inputRef_current;\n setIsLoading(false);\n (_inputRef_current = inputRef.current) === null || _inputRef_current === void 0 ? void 0 : _inputRef_current.focus();\n }\n };\n const startNewChat = ()=>{\n var // Focus input\n _inputRef_current;\n // Clear all messages\n setMessages([]);\n // Generate new sessionID for this agent\n const newSessionId = \"session-\".concat(agent.id, \"-\").concat(Date.now(), \"-\").concat(Math.random().toString(36).substring(2, 15));\n setSessionId(newSessionId);\n const sessionKey = \"chat-session-\".concat(agent.id);\n localStorage.setItem(sessionKey, newSessionId);\n // Clear input and images\n setInput(\"\");\n setSelectedImages([]);\n (_inputRef_current = inputRef.current) === null || _inputRef_current === void 0 ? void 0 : _inputRef_current.focus();\n };\n const handleKeyDown = (e)=>{\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n sendMessage();\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative flex h-full w-full flex-col overflow-hidden rounded-[2.5rem] border border-border/50 bg-white/20 px-4 py-6 shadow-[0_35px_90px_rgba(45,45,45,0.18)] backdrop-blur-xl dark:bg-[#121212]/20 sm:px-8 sm:py-8\",\n children: [\n messages.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute right-8 top-8 z-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: startNewChat,\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-11 w-11 rounded-full border border-border/60 bg-white/70 text-charcoal shadow-lg backdrop-blur hover:bg-white\",\n title: \"Start a fresh conversation\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 225,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 218,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 217,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: messagesContainerRef,\n className: \"flex-1 overflow-y-auto px-1 pt-6 pb-6 sm:px-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-3xl space-y-10\",\n children: messages.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex min-h-[60vh] flex-col items-center justify-center gap-10 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto flex h-20 w-20 items-center justify-center rounded-full border border-border/40 bg-white/60 text-burnt shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-8 w-8 text-burnt\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 236,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 235,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"font-heading text-3xl text-charcoal\",\n children: [\n \"Welcome to \",\n agent.name\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 239,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-base leading-relaxed text-muted-foreground\",\n children: agent.description\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 240,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 238,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 234,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid w-full max-w-2xl gap-4 sm:grid-cols-2\",\n children: [\n \"Help me brainstorm ideas for a new mobile app\",\n \"Generate creative writing prompts for a fantasy novel\",\n \"Suggest innovative marketing strategies for a startup\",\n \"Create a list of unique product names for a tech company\"\n ].map((prompt, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setInput(prompt),\n className: \"scroll-reveal rounded-2xl border border-border/30 bg-white/80 p-4 text-left text-sm text-charcoal shadow-sm transition hover:border-ring/60 hover:bg-white\",\n style: {\n animationDelay: \"\".concat(index * 50, \"ms\")\n },\n children: prompt\n }, prompt, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 251,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 244,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-xs text-muted-foreground\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-1.5 w-1.5 rounded-full bg-burnt\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 263,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"AI Assistant Online\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 264,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 262,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 233,\n columnNumber: 13\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-10\",\n children: [\n messages.map((message)=>{\n const isUser = message.role === \"user\";\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"message-frame flex flex-col gap-3 \".concat(isUser ? \"items-end text-right\" : \"\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap items-center gap-2 text-xs uppercase tracking-[0.2em] text-muted-foreground \".concat(isUser ? \"justify-end\" : \"\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: isUser ? \"Collector\" : agent.name\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 277,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[0.65rem] normal-case tracking-normal\",\n children: message.timestamp.toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\"\n })\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 278,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 276,\n columnNumber: 21\n }, this),\n isUser ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"message-bubble user text-charcoal dark:text-white\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"whitespace-pre-wrap break-words text-sm leading-relaxed\",\n children: message.content\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 285,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 284,\n columnNumber: 23\n }, this) : message.isError ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"message-bubble assistant border border-destructive/40 text-destructive\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"whitespace-pre-wrap break-words text-sm leading-relaxed\",\n children: message.content\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 289,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 288,\n columnNumber: 23\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-2xl border border-border/40 bg-white/70 p-4 text-charcoal shadow-sm dark:border-white/10 dark:bg-white/5 dark:text-foreground\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_markdown_renderer__WEBPACK_IMPORTED_MODULE_3__.MarkdownRenderer, {\n content: message.content\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 293,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 292,\n columnNumber: 23\n }, this),\n message.hint && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-accent/60 bg-accent/40 px-3 py-2 text-xs text-charcoal\",\n children: message.hint\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 298,\n columnNumber: 23\n }, this)\n ]\n }, message.id, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 272,\n columnNumber: 19\n }, this);\n }),\n isLoading && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"message-frame flex flex-col gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-xs uppercase tracking-[0.2em] text-muted-foreground\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: agent.name\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 309,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[0.65rem] normal-case tracking-normal\",\n children: new Date().toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\"\n })\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 310,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 308,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-2xl border border-border/40 bg-white/70 p-4 text-sm text-muted-foreground shadow-sm dark:border-white/10 dark:bg-white/5 dark:text-foreground\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4 animate-spin text-burnt\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 316,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Thinking...\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 317,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-1 w-1 rounded-full bg-burnt animate-bounce\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 319,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-1 w-1 rounded-full bg-burnt animate-bounce\",\n style: {\n animationDelay: \"0.1s\"\n }\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 320,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-1 w-1 rounded-full bg-burnt animate-bounce\",\n style: {\n animationDelay: \"0.2s\"\n }\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 321,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 318,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 315,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 314,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 307,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 268,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 231,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 230,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto pt-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: sendMessage,\n className: \"relative\",\n children: [\n selectedImages.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-3 flex flex-wrap gap-3 px-3 pt-2\",\n children: selectedImages.map((image, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: image,\n alt: \"Selected \".concat(index),\n className: \"h-16 w-16 rounded-lg border border-border/40 object-cover shadow-md\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 339,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>removeImage(index),\n className: \"absolute -right-2 -top-2 flex h-5 w-5 items-center justify-center rounded-full text-white shadow-md hover:opacity-80\",\n style: {\n backgroundColor: \"var(--charcoal-ink)\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-3 w-3\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 350,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 344,\n columnNumber: 19\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 338,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 336,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"manuscript-panel p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-end gap-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-1 flex-col gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n ref: inputRef,\n value: input,\n onChange: (e)=>setInput(e.target.value),\n onKeyDown: handleKeyDown,\n placeholder: \"Ask something precise or invite the agent into your process…\",\n disabled: isLoading,\n rows: 1,\n className: \"min-h-[20px] max-h-32 resize-none border-0 bg-transparent text-base text-charcoal placeholder:text-muted-foreground focus:outline-none focus:ring-0 dark:text-foreground dark:placeholder:text-muted-foreground/80\",\n style: {\n overflow: 'hidden',\n height: 'auto'\n },\n onInput: (e)=>{\n const target = e.target;\n target.style.height = 'auto';\n target.style.height = Math.min(target.scrollHeight, 128) + 'px';\n }\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 360,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n ref: fileInputRef,\n type: \"file\",\n multiple: true,\n accept: \"image/*\",\n onChange: handleImageSelect,\n className: \"hidden\",\n disabled: isLoading\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 382,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n type: \"button\",\n variant: \"ghost\",\n size: \"icon\",\n onClick: ()=>{\n var _fileInputRef_current;\n return (_fileInputRef_current = fileInputRef.current) === null || _fileInputRef_current === void 0 ? void 0 : _fileInputRef_current.click();\n },\n disabled: isLoading,\n className: \"h-9 w-9 rounded-xl border border-border/50 text-muted-foreground hover:border-ring hover:text-charcoal\",\n title: \"Attach image\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 400,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 391,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n type: \"button\",\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-9 w-9 rounded-xl border border-border/50 text-muted-foreground hover:border-ring hover:text-charcoal\",\n title: \"Voice input\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 409,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 402,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 381,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n input.trim() && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-muted-foreground\",\n children: [\n input.length,\n \"/2000\"\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 415,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n type: \"submit\",\n disabled: !input.trim() || isLoading,\n size: \"icon\",\n className: \"h-12 w-12 flex-shrink-0 rounded-2xl bg-burnt text-white transition hover:bg-terracotta disabled:opacity-50\",\n children: isLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 425,\n columnNumber: 36\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Mic_Paperclip_Send_Sparkles_SquarePen_X_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 425,\n columnNumber: 83\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 419,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 413,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 380,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 359,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 358,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 357,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 333,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 332,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/chat-interface.tsx\",\n lineNumber: 215,\n columnNumber: 5\n }, this);\n}\n_s(ChatInterface, \"1rfLb0uXXOh5S4M+kQCpCGT2ZDM=\");\n_c = ChatInterface;\nvar _c;\n$RefreshReg$(_c, \"ChatInterface\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9jb21wb25lbnRzL2NoYXQtaW50ZXJmYWNlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJbUQ7QUFDSjtBQUUwQztBQUNuQztBQU8vQyxTQUFTWSxjQUFjLEtBQTZCO1FBQTdCLEVBQUVDLEtBQUssRUFBc0IsR0FBN0I7O0lBQzVCLE1BQU0sQ0FBQ0MsVUFBVUMsWUFBWSxHQUFHZiwrQ0FBUUEsQ0FBWSxFQUFFO0lBQ3RELE1BQU0sQ0FBQ2dCLE9BQU9DLFNBQVMsR0FBR2pCLCtDQUFRQSxDQUFDO0lBQ25DLE1BQU0sQ0FBQ2tCLFdBQVdDLGFBQWEsR0FBR25CLCtDQUFRQSxDQUFDO0lBQzNDLE1BQU0sQ0FBQ29CLFdBQVdDLGFBQWEsR0FBR3JCLCtDQUFRQSxDQUFTO0lBQ25ELE1BQU0sQ0FBQ3NCLGdCQUFnQkMsa0JBQWtCLEdBQUd2QiwrQ0FBUUEsQ0FBVyxFQUFFO0lBQ2pFLE1BQU13Qix1QkFBdUJ2Qiw2Q0FBTUEsQ0FBaUI7SUFDcEQsTUFBTXdCLFdBQVd4Qiw2Q0FBTUEsQ0FBc0I7SUFDN0MsTUFBTXlCLGVBQWV6Qiw2Q0FBTUEsQ0FBbUI7SUFFOUNDLGdEQUFTQTttQ0FBQztZQUNSLHdEQUF3RDtZQUN4RCxNQUFNeUIsYUFBYSxnQkFBeUIsT0FBVGQsTUFBTWUsRUFBRTtZQUMzQyxJQUFJQyxvQkFBb0JDLGFBQWFDLE9BQU8sQ0FBQ0o7WUFFN0MsSUFBSSxDQUFDRSxtQkFBbUI7Z0JBQ3RCLDJEQUEyRDtnQkFDM0RBLG9CQUFvQixXQUF1QkcsT0FBWm5CLE1BQU1lLEVBQUUsRUFBQyxLQUFpQkssT0FBZEQsS0FBS0UsR0FBRyxJQUFHLEtBQStDLE9BQTVDRCxLQUFLRSxNQUFNLEdBQUdDLFFBQVEsQ0FBQyxJQUFJQyxTQUFTLENBQUMsR0FBRztnQkFDakdQLGFBQWFRLE9BQU8sQ0FBQ1gsWUFBWUU7WUFDbkM7WUFFQVIsYUFBYVE7WUFFYix3Q0FBd0M7WUFDeEMsTUFBTVUsY0FBYyxpQkFBMEIsT0FBVDFCLE1BQU1lLEVBQUU7WUFDN0MsTUFBTVksZ0JBQWdCVixhQUFhQyxPQUFPLENBQUNRO1lBQzNDLElBQUlDLGVBQWU7Z0JBQ2pCLElBQUk7b0JBQ0YsTUFBTUMsU0FBU0MsS0FBS0MsS0FBSyxDQUFDSDtvQkFDMUIscUNBQXFDO29CQUNyQyxNQUFNMUIsV0FBVzJCLE9BQU9HLEdBQUc7NERBQUMsQ0FBQ0MsTUFBYztnQ0FDekMsR0FBR0EsR0FBRztnQ0FDTkMsV0FBVyxJQUFJZCxLQUFLYSxJQUFJQyxTQUFTOzRCQUNuQzs7b0JBQ0EvQixZQUFZRDtnQkFDZCxFQUFFLE9BQU9pQyxLQUFLO29CQUNaQyxRQUFRQyxLQUFLLENBQUMseUNBQXlDRjtnQkFDekQ7WUFDRjtRQUNGO2tDQUFHO1FBQUNsQyxNQUFNZSxFQUFFO0tBQUM7SUFFYjFCLGdEQUFTQTttQ0FBQztZQUNSLElBQUlzQixxQkFBcUIwQixPQUFPLEVBQUU7Z0JBQ2hDMUIscUJBQXFCMEIsT0FBTyxDQUFDQyxTQUFTLEdBQUczQixxQkFBcUIwQixPQUFPLENBQUNFLFlBQVk7WUFDcEY7UUFDRjtrQ0FBRztRQUFDdEM7UUFBVUk7S0FBVTtJQUV4QixxREFBcUQ7SUFDckRoQixnREFBU0E7bUNBQUM7WUFDUixNQUFNcUMsY0FBYyxpQkFBMEIsT0FBVDFCLE1BQU1lLEVBQUU7WUFDN0NFLGFBQWFRLE9BQU8sQ0FBQ0MsYUFBYUcsS0FBS1csU0FBUyxDQUFDdkM7UUFDbkQ7a0NBQUc7UUFBQ0E7UUFBVUQsTUFBTWUsRUFBRTtLQUFDO0lBRXZCLDhCQUE4QjtJQUM5QixNQUFNMEIsb0JBQW9CLE9BQU9DO1FBQy9CLE1BQU1DLFFBQVFELEVBQUVFLGFBQWEsQ0FBQ0QsS0FBSztRQUNuQyxJQUFJLENBQUNBLE9BQU87UUFFWixNQUFNRSxZQUFzQixFQUFFO1FBQzlCLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJSCxNQUFNSSxNQUFNLEVBQUVELElBQUs7WUFDckMsTUFBTUUsT0FBT0wsS0FBSyxDQUFDRyxFQUFFO1lBQ3JCLDBCQUEwQjtZQUMxQixJQUFJLENBQUNFLEtBQUtDLElBQUksQ0FBQ0MsVUFBVSxDQUFDLFdBQVc7Z0JBQ25DZixRQUFRZ0IsSUFBSSxDQUFDLG1DQUFtQ0gsS0FBS0ksSUFBSTtnQkFDekQ7WUFDRjtZQUVBLElBQUk7Z0JBQ0YsTUFBTUMsU0FBUyxNQUFNQyxhQUFhTjtnQkFDbENILFVBQVVVLElBQUksQ0FBQ0Y7WUFDakIsRUFBRSxPQUFPbkIsS0FBSztnQkFDWkMsUUFBUUMsS0FBSyxDQUFDLG1DQUFtQ0Y7WUFDbkQ7UUFDRjtRQUVBeEIsa0JBQWtCLENBQUM4QyxPQUFTO21CQUFJQTttQkFBU1g7YUFBVTtRQUNuRCxtQkFBbUI7UUFDbkIsSUFBSWhDLGFBQWF3QixPQUFPLEVBQUU7WUFDeEJ4QixhQUFhd0IsT0FBTyxDQUFDb0IsS0FBSyxHQUFHO1FBQy9CO0lBQ0Y7SUFFQSxnQ0FBZ0M7SUFDaEMsTUFBTUgsZUFBZSxDQUFDTjtRQUNwQixPQUFPLElBQUlVLFFBQVEsQ0FBQ0MsU0FBU0M7WUFDM0IsTUFBTUMsU0FBUyxJQUFJQztZQUNuQkQsT0FBT0UsYUFBYSxDQUFDZjtZQUNyQmEsT0FBT0csTUFBTSxHQUFHLElBQU1MLFFBQVFFLE9BQU9JLE1BQU07WUFDM0NKLE9BQU9LLE9BQU8sR0FBR047UUFDbkI7SUFDRjtJQUVBLHdCQUF3QjtJQUN4QixNQUFNTyxjQUFjLENBQUNDO1FBQ25CMUQsa0JBQWtCLENBQUM4QyxPQUFTQSxLQUFLYSxNQUFNLENBQUMsQ0FBQ0MsR0FBR3hCLElBQU1BLE1BQU1zQjtJQUMxRDtJQUVBLE1BQU1HLGNBQWMsT0FBTzdCO1FBQ3pCLElBQUlBLEdBQUc7WUFDTEEsRUFBRThCLGNBQWM7UUFDbEI7UUFFQSxJQUFJLENBQUNyRSxNQUFNc0UsSUFBSSxNQUFNcEUsV0FBVztRQUVoQyxNQUFNcUUsY0FBdUI7WUFDM0IzRCxJQUFJSSxLQUFLRSxHQUFHLEdBQUdFLFFBQVE7WUFDdkJvRCxNQUFNO1lBQ05DLFNBQVN6RSxNQUFNc0UsSUFBSTtZQUNuQnhDLFdBQVcsSUFBSWQ7WUFDZjBELFFBQVFwRSxlQUFlc0MsTUFBTSxHQUFHLElBQUl0QyxpQkFBaUJxRTtRQUN2RDtRQUVBNUUsWUFBWSxDQUFDc0QsT0FBUzttQkFBSUE7Z0JBQU1rQjthQUFZO1FBQzVDdEUsU0FBUztRQUNUTSxrQkFBa0IsRUFBRTtRQUNwQkosYUFBYTtRQUViLElBQUk7WUFDRixNQUFNeUUsV0FBVyxNQUFNQyxNQUFNLGFBQWE7Z0JBQ3hDQyxRQUFRO2dCQUNSQyxTQUFTO29CQUNQLGdCQUFnQjtnQkFDbEI7Z0JBQ0FDLE1BQU10RCxLQUFLVyxTQUFTLENBQUM7b0JBQ25CNEMsU0FBU1YsWUFBWUUsT0FBTztvQkFDNUIzQyxXQUFXeUMsWUFBWXpDLFNBQVMsQ0FBQ29ELFdBQVc7b0JBQzVDOUUsV0FBV0E7b0JBQ1grRSxTQUFTdEYsTUFBTWUsRUFBRTtvQkFDakI4RCxRQUFRcEUsZUFBZXNDLE1BQU0sR0FBRyxJQUFJdEMsaUJBQWlCcUU7Z0JBQ3ZEO1lBQ0Y7WUFFQSxNQUFNUyxPQUFRLE1BQU1SLFNBQVNTLElBQUk7WUFPakMsSUFBSSxDQUFDVCxTQUFTVSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU1DLGVBQXdCO29CQUM1QjNFLElBQUksQ0FBQ0ksS0FBS0UsR0FBRyxLQUFLLEdBQUdFLFFBQVE7b0JBQzdCb0QsTUFBTTtvQkFDTkMsU0FBU1csS0FBS25ELEtBQUssSUFBSTtvQkFDdkJILFdBQVcsSUFBSWQ7b0JBQ2Z3RSxTQUFTO29CQUNUQyxNQUFNTCxLQUFLSyxJQUFJO2dCQUNqQjtnQkFDQTFGLFlBQVksQ0FBQ3NELE9BQVM7MkJBQUlBO3dCQUFNa0M7cUJBQWE7WUFDL0MsT0FBTztnQkFDTCxNQUFNRyxtQkFBNEI7b0JBQ2hDOUUsSUFBSSxDQUFDSSxLQUFLRSxHQUFHLEtBQUssR0FBR0UsUUFBUTtvQkFDN0JvRCxNQUFNO29CQUNOQyxTQUFTVyxLQUFLUixRQUFRLElBQUlRLEtBQUtILE9BQU8sSUFBSXZELEtBQUtXLFNBQVMsQ0FBQytDO29CQUN6RHRELFdBQVcsSUFBSWQ7Z0JBQ2pCO2dCQUNBakIsWUFBWSxDQUFDc0QsT0FBUzsyQkFBSUE7d0JBQU1xQztxQkFBaUI7WUFDbkQ7UUFDRixFQUFFLE9BQU96RCxPQUFPO1lBQ2RELFFBQVFDLEtBQUssQ0FBQywrQkFBK0JBO1lBRTdDLE1BQU1zRCxlQUF3QjtnQkFDNUIzRSxJQUFJLENBQUNJLEtBQUtFLEdBQUcsS0FBSyxHQUFHRSxRQUFRO2dCQUM3Qm9ELE1BQU07Z0JBQ05DLFNBQVM7Z0JBQ1QzQyxXQUFXLElBQUlkO2dCQUNmd0UsU0FBUztZQUNYO1lBRUF6RixZQUFZLENBQUNzRCxPQUFTO3VCQUFJQTtvQkFBTWtDO2lCQUFhO1FBQy9DLFNBQVU7Z0JBRVI5RTtZQURBTixhQUFhO2FBQ2JNLG9CQUFBQSxTQUFTeUIsT0FBTyxjQUFoQnpCLHdDQUFBQSxrQkFBa0JrRixLQUFLO1FBQ3pCO0lBQ0Y7SUFFQSxNQUFNQyxlQUFlO1lBV25CLGNBQWM7UUFDZG5GO1FBWEEscUJBQXFCO1FBQ3JCVixZQUFZLEVBQUU7UUFDZCx3Q0FBd0M7UUFDeEMsTUFBTThGLGVBQWUsV0FBdUI3RSxPQUFabkIsTUFBTWUsRUFBRSxFQUFDLEtBQWlCSyxPQUFkRCxLQUFLRSxHQUFHLElBQUcsS0FBK0MsT0FBNUNELEtBQUtFLE1BQU0sR0FBR0MsUUFBUSxDQUFDLElBQUlDLFNBQVMsQ0FBQyxHQUFHO1FBQ2xHaEIsYUFBYXdGO1FBQ2IsTUFBTWxGLGFBQWEsZ0JBQXlCLE9BQVRkLE1BQU1lLEVBQUU7UUFDM0NFLGFBQWFRLE9BQU8sQ0FBQ1gsWUFBWWtGO1FBQ2pDLHlCQUF5QjtRQUN6QjVGLFNBQVM7UUFDVE0sa0JBQWtCLEVBQUU7U0FFcEJFLG9CQUFBQSxTQUFTeUIsT0FBTyxjQUFoQnpCLHdDQUFBQSxrQkFBa0JrRixLQUFLO0lBQ3pCO0lBRUEsTUFBTUcsZ0JBQWdCLENBQUN2RDtRQUNyQixJQUFJQSxFQUFFd0QsR0FBRyxLQUFLLFdBQVcsQ0FBQ3hELEVBQUV5RCxRQUFRLEVBQUU7WUFDcEN6RCxFQUFFOEIsY0FBYztZQUNoQkQ7UUFDRjtJQUNGO0lBRUEscUJBQ0UsOERBQUM2QjtRQUFJQyxXQUFVOztZQUNacEcsU0FBUzhDLE1BQU0sR0FBRyxtQkFDakIsOERBQUNxRDtnQkFBSUMsV0FBVTswQkFDYiw0RUFBQy9HLHlEQUFNQTtvQkFDTGdILFNBQVNQO29CQUNUUSxTQUFRO29CQUNSQyxNQUFLO29CQUNMSCxXQUFVO29CQUNWSSxPQUFNOzhCQUVOLDRFQUFDaEgsMkhBQVNBO3dCQUFDNEcsV0FBVTs7Ozs7Ozs7Ozs7Ozs7OzswQkFLM0IsOERBQUNEO2dCQUFJTSxLQUFLL0Y7Z0JBQXNCMEYsV0FBVTswQkFDeEMsNEVBQUNEO29CQUFJQyxXQUFVOzhCQUNacEcsU0FBUzhDLE1BQU0sS0FBSyxrQkFDbkIsOERBQUNxRDt3QkFBSUMsV0FBVTs7MENBQ2IsOERBQUNEO2dDQUFJQyxXQUFVOztrREFDYiw4REFBQ0Q7d0NBQUlDLFdBQVU7a0RBQ2IsNEVBQUMzRywySEFBUUE7NENBQUMyRyxXQUFVOzs7Ozs7Ozs7OztrREFFdEIsOERBQUNEO3dDQUFJQyxXQUFVOzswREFDYiw4REFBQ007Z0RBQUdOLFdBQVU7O29EQUFzQztvREFBWXJHLE1BQU1vRCxJQUFJOzs7Ozs7OzBEQUMxRSw4REFBQ3dEO2dEQUFFUCxXQUFVOzBEQUFtRHJHLE1BQU02RyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7MENBSXJGLDhEQUFDVDtnQ0FBSUMsV0FBVTswQ0FDWjtvQ0FDQztvQ0FDQTtvQ0FDQTtvQ0FDQTtpQ0FDRCxDQUFDdEUsR0FBRyxDQUFDLENBQUMrRSxRQUFRMUMsc0JBQ2IsOERBQUMyQzt3Q0FFQ1QsU0FBUyxJQUFNbEcsU0FBUzBHO3dDQUN4QlQsV0FBVTt3Q0FDVlcsT0FBTzs0Q0FBRUMsZ0JBQWdCLEdBQWMsT0FBWDdDLFFBQVEsSUFBRzt3Q0FBSTtrREFFMUMwQzt1Q0FMSUE7Ozs7Ozs7Ozs7MENBVVgsOERBQUNWO2dDQUFJQyxXQUFVOztrREFDYiw4REFBQ0Q7d0NBQUlDLFdBQVU7Ozs7OztrREFDZiw4REFBQ2E7a0RBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZDQUlWLDhEQUFDZDt3QkFBSUMsV0FBVTs7NEJBQ1pwRyxTQUFTOEIsR0FBRyxDQUFDLENBQUNxRDtnQ0FDYixNQUFNK0IsU0FBUy9CLFFBQVFULElBQUksS0FBSztnQ0FDaEMscUJBQ0UsOERBQUN5QjtvQ0FFQ0MsV0FBVyxxQ0FBMEUsT0FBckNjLFNBQVMseUJBQXlCOztzREFFbEYsOERBQUNmOzRDQUFJQyxXQUFXLDhGQUEwSCxPQUE1QmMsU0FBUyxnQkFBZ0I7OzhEQUNySSw4REFBQ0Q7OERBQU1DLFNBQVMsY0FBY25ILE1BQU1vRCxJQUFJOzs7Ozs7OERBQ3hDLDhEQUFDOEQ7b0RBQUtiLFdBQVU7OERBQ2JqQixRQUFRbkQsU0FBUyxDQUFDbUYsa0JBQWtCLENBQUMsRUFBRSxFQUFFO3dEQUFFQyxNQUFNO3dEQUFXQyxRQUFRO29EQUFVOzs7Ozs7Ozs7Ozs7d0NBSWxGSCx1QkFDQyw4REFBQ2Y7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUNPO2dEQUFFUCxXQUFVOzBEQUEyRGpCLFFBQVFSLE9BQU87Ozs7Ozs7Ozs7bURBRXZGUSxRQUFRTyxPQUFPLGlCQUNqQiw4REFBQ1M7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUNPO2dEQUFFUCxXQUFVOzBEQUEyRGpCLFFBQVFSLE9BQU87Ozs7Ozs7Ozs7aUVBR3pGLDhEQUFDd0I7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUN2RyxnRUFBZ0JBO2dEQUFDOEUsU0FBU1EsUUFBUVIsT0FBTzs7Ozs7Ozs7Ozs7d0NBSTdDUSxRQUFRUSxJQUFJLGtCQUNYLDhEQUFDUTs0Q0FBSUMsV0FBVTtzREFDWmpCLFFBQVFRLElBQUk7Ozs7Ozs7bUNBMUJaUixRQUFRckUsRUFBRTs7Ozs7NEJBK0JyQjs0QkFFQ1YsMkJBQ0MsOERBQUMrRjtnQ0FBSUMsV0FBVTs7a0RBQ2IsOERBQUNEO3dDQUFJQyxXQUFVOzswREFDYiw4REFBQ2E7MERBQU1sSCxNQUFNb0QsSUFBSTs7Ozs7OzBEQUNqQiw4REFBQzhEO2dEQUFLYixXQUFVOzBEQUNiLElBQUlsRixPQUFPaUcsa0JBQWtCLENBQUMsRUFBRSxFQUFFO29EQUFFQyxNQUFNO29EQUFXQyxRQUFRO2dEQUFVOzs7Ozs7Ozs7Ozs7a0RBRzVFLDhEQUFDbEI7d0NBQUlDLFdBQVU7a0RBQ2IsNEVBQUNEOzRDQUFJQyxXQUFVOzs4REFDYiw4REFBQzdHLDJIQUFPQTtvREFBQzZHLFdBQVU7Ozs7Ozs4REFDbkIsOERBQUNhOzhEQUFLOzs7Ozs7OERBQ04sOERBQUNkO29EQUFJQyxXQUFVOztzRUFDYiw4REFBQ0Q7NERBQUlDLFdBQVU7Ozs7OztzRUFDZiw4REFBQ0Q7NERBQUlDLFdBQVU7NERBQStDVyxPQUFPO2dFQUFFQyxnQkFBZ0I7NERBQU87Ozs7OztzRUFDOUYsOERBQUNiOzREQUFJQyxXQUFVOzREQUErQ1csT0FBTztnRUFBRUMsZ0JBQWdCOzREQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBV2hILDhEQUFDYjtnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ2tCO29CQUFLQyxVQUFVakQ7b0JBQWE4QixXQUFVOzt3QkFFcEM1RixlQUFlc0MsTUFBTSxHQUFHLG1CQUN2Qiw4REFBQ3FEOzRCQUFJQyxXQUFVO3NDQUNaNUYsZUFBZXNCLEdBQUcsQ0FBQyxDQUFDMEYsT0FBT3JELHNCQUMxQiw4REFBQ2dDO29DQUFnQkMsV0FBVTs7c0RBQ3pCLDhEQUFDcUI7NENBQ0NDLEtBQUtGOzRDQUNMRyxLQUFLLFlBQWtCLE9BQU54RDs0Q0FDakJpQyxXQUFVOzs7Ozs7c0RBRVosOERBQUNVOzRDQUNDOUQsTUFBSzs0Q0FDTHFELFNBQVMsSUFBTW5DLFlBQVlDOzRDQUMzQmlDLFdBQVU7NENBQ1ZXLE9BQU87Z0RBQUVhLGlCQUFpQjs0Q0FBc0I7c0RBRWhELDRFQUFDaEksMkhBQUNBO2dEQUFDd0csV0FBVTs7Ozs7Ozs7Ozs7O21DQVpQakM7Ozs7Ozs7Ozs7c0NBbUJoQiw4REFBQ2dDOzRCQUFJQyxXQUFVO3NDQUNiLDRFQUFDRDtnQ0FBSUMsV0FBVTswQ0FDYiw0RUFBQ0Q7b0NBQUlDLFdBQVU7O3NEQUNiLDhEQUFDeUI7NENBQ0NwQixLQUFLOUY7NENBQ0w2QyxPQUFPdEQ7NENBQ1A0SCxVQUFVLENBQUNyRixJQUFNdEMsU0FBU3NDLEVBQUVzRixNQUFNLENBQUN2RSxLQUFLOzRDQUN4Q3dFLFdBQVdoQzs0Q0FDWGlDLGFBQVk7NENBQ1pDLFVBQVU5SDs0Q0FDVitILE1BQU07NENBQ04vQixXQUFVOzRDQUNWVyxPQUFPO2dEQUNMcUIsVUFBVTtnREFDVkMsUUFBUTs0Q0FDVjs0Q0FDQUMsU0FBUyxDQUFDN0Y7Z0RBQ1IsTUFBTXNGLFNBQVN0RixFQUFFc0YsTUFBTTtnREFDdkJBLE9BQU9oQixLQUFLLENBQUNzQixNQUFNLEdBQUc7Z0RBQ3RCTixPQUFPaEIsS0FBSyxDQUFDc0IsTUFBTSxHQUFHbEgsS0FBS29ILEdBQUcsQ0FBQ1IsT0FBT3pGLFlBQVksRUFBRSxPQUFPOzRDQUM3RDs7Ozs7O3NEQUdGLDhEQUFDNkQ7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDRDtvREFBSUMsV0FBVTs7c0VBQ2IsOERBQUNsRzs0REFDQ3VHLEtBQUs3Rjs0REFDTG9DLE1BQUs7NERBQ0x3RixRQUFROzREQUNSQyxRQUFPOzREQUNQWCxVQUFVdEY7NERBQ1Y0RCxXQUFVOzREQUNWOEIsVUFBVTlIOzs7Ozs7c0VBRVosOERBQUNmLHlEQUFNQTs0REFDTDJELE1BQUs7NERBQ0xzRCxTQUFROzREQUNSQyxNQUFLOzREQUNMRixTQUFTO29FQUFNekY7d0VBQUFBLHdCQUFBQSxhQUFhd0IsT0FBTyxjQUFwQnhCLDRDQUFBQSxzQkFBc0I4SCxLQUFLOzs0REFDMUNSLFVBQVU5SDs0REFDVmdHLFdBQVU7NERBQ1ZJLE9BQU07c0VBRU4sNEVBQUM5RywySEFBU0E7Z0VBQUMwRyxXQUFVOzs7Ozs7Ozs7OztzRUFFdkIsOERBQUMvRyx5REFBTUE7NERBQ0wyRCxNQUFLOzREQUNMc0QsU0FBUTs0REFDUkMsTUFBSzs0REFDTEgsV0FBVTs0REFDVkksT0FBTTtzRUFFTiw0RUFBQzdHLDJIQUFHQTtnRUFBQ3lHLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7OzhEQUluQiw4REFBQ0Q7b0RBQUlDLFdBQVU7O3dEQUNabEcsTUFBTXNFLElBQUksb0JBQ1QsOERBQUN5Qzs0REFBS2IsV0FBVTs7Z0VBQ2JsRyxNQUFNNEMsTUFBTTtnRUFBQzs7Ozs7OztzRUFHbEIsOERBQUN6RCx5REFBTUE7NERBQ0wyRCxNQUFLOzREQUNMa0YsVUFBVSxDQUFDaEksTUFBTXNFLElBQUksTUFBTXBFOzREQUMzQm1HLE1BQUs7NERBQ0xILFdBQVU7c0VBRVRoRywwQkFBWSw4REFBQ2IsMkhBQU9BO2dFQUFDNkcsV0FBVTs7Ozs7cUZBQTRCLDhEQUFDOUcsNEhBQUlBO2dFQUFDOEcsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXbEc7R0FwYWdCdEc7S0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL25pY2hvbGFpL0RvY3VtZW50cy9kZXYvbXVsdGktYWdlbnRfY2hhdF9pbnRlcmZhY2Uvc3JjL2NvbXBvbmVudHMvY2hhdC1pbnRlcmZhY2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvaW5wdXRcIlxuaW1wb3J0IHsgU2VuZCwgQm90LCBMb2FkZXIyLCBTcXVhcmVQZW4sIFNwYXJrbGVzLCBQYXBlcmNsaXAsIE1pYywgWCB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCIuL21hcmtkb3duLXJlbmRlcmVyXCJcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSwgQWdlbnQgfSBmcm9tIFwiQC9saWIvdHlwZXNcIlxuXG5pbnRlcmZhY2UgQ2hhdEludGVyZmFjZVByb3BzIHtcbiAgYWdlbnQ6IEFnZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGF0SW50ZXJmYWNlKHsgYWdlbnQgfTogQ2hhdEludGVyZmFjZVByb3BzKSB7XG4gIGNvbnN0IFttZXNzYWdlcywgc2V0TWVzc2FnZXNdID0gdXNlU3RhdGU8TWVzc2FnZVtdPihbXSlcbiAgY29uc3QgW2lucHV0LCBzZXRJbnB1dF0gPSB1c2VTdGF0ZShcIlwiKVxuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzZXNzaW9uSWQsIHNldFNlc3Npb25JZF0gPSB1c2VTdGF0ZTxzdHJpbmc+KFwiXCIpXG4gIGNvbnN0IFtzZWxlY3RlZEltYWdlcywgc2V0U2VsZWN0ZWRJbWFnZXNdID0gdXNlU3RhdGU8c3RyaW5nW10+KFtdKVxuICBjb25zdCBtZXNzYWdlc0NvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbClcbiAgY29uc3QgZmlsZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBVc2UgYWdlbnQtc3BlY2lmaWMgc2Vzc2lvbiBJRDogY2hhdC1zZXNzaW9uLXthZ2VudElkfVxuICAgIGNvbnN0IHNlc3Npb25LZXkgPSBgY2hhdC1zZXNzaW9uLSR7YWdlbnQuaWR9YFxuICAgIGxldCBleGlzdGluZ1Nlc3Npb25JZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHNlc3Npb25LZXkpXG5cbiAgICBpZiAoIWV4aXN0aW5nU2Vzc2lvbklkKSB7XG4gICAgICAvLyBHZW5lcmF0ZSBuZXcgc2Vzc2lvbklEIHVzaW5nIHRpbWVzdGFtcCBhbmQgcmFuZG9tIHN0cmluZ1xuICAgICAgZXhpc3RpbmdTZXNzaW9uSWQgPSBgc2Vzc2lvbi0ke2FnZW50LmlkfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDE1KX1gXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzZXNzaW9uS2V5LCBleGlzdGluZ1Nlc3Npb25JZClcbiAgICB9XG5cbiAgICBzZXRTZXNzaW9uSWQoZXhpc3RpbmdTZXNzaW9uSWQpXG5cbiAgICAvLyBMb2FkIGV4aXN0aW5nIG1lc3NhZ2VzIGZvciB0aGlzIGFnZW50XG4gICAgY29uc3QgbWVzc2FnZXNLZXkgPSBgY2hhdC1tZXNzYWdlcy0ke2FnZW50LmlkfWBcbiAgICBjb25zdCBzYXZlZE1lc3NhZ2VzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0obWVzc2FnZXNLZXkpXG4gICAgaWYgKHNhdmVkTWVzc2FnZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2Uoc2F2ZWRNZXNzYWdlcylcbiAgICAgICAgLy8gRW5zdXJlIHRpbWVzdGFtcHMgYXJlIERhdGUgb2JqZWN0c1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9IHBhcnNlZC5tYXAoKG1zZzogYW55KSA9PiAoe1xuICAgICAgICAgIC4uLm1zZyxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKG1zZy50aW1lc3RhbXApLFxuICAgICAgICB9KSlcbiAgICAgICAgc2V0TWVzc2FnZXMobWVzc2FnZXMpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIltjaGF0XSBGYWlsZWQgdG8gbG9hZCBzYXZlZCBtZXNzYWdlczpcIiwgZXJyKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FnZW50LmlkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtZXNzYWdlc0NvbnRhaW5lclJlZi5jdXJyZW50KSB7XG4gICAgICBtZXNzYWdlc0NvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IG1lc3NhZ2VzQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0XG4gICAgfVxuICB9LCBbbWVzc2FnZXMsIGlzTG9hZGluZ10pXG5cbiAgLy8gU2F2ZSBtZXNzYWdlcyB0byBsb2NhbFN0b3JhZ2Ugd2hlbmV2ZXIgdGhleSBjaGFuZ2VcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlc0tleSA9IGBjaGF0LW1lc3NhZ2VzLSR7YWdlbnQuaWR9YFxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKG1lc3NhZ2VzS2V5LCBKU09OLnN0cmluZ2lmeShtZXNzYWdlcykpXG4gIH0sIFttZXNzYWdlcywgYWdlbnQuaWRdKVxuXG4gIC8vIEhhbmRsZSBpbWFnZSBmaWxlIHNlbGVjdGlvblxuICBjb25zdCBoYW5kbGVJbWFnZVNlbGVjdCA9IGFzeW5jIChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGZpbGVzID0gZS5jdXJyZW50VGFyZ2V0LmZpbGVzXG4gICAgaWYgKCFmaWxlcykgcmV0dXJuXG5cbiAgICBjb25zdCBuZXdJbWFnZXM6IHN0cmluZ1tdID0gW11cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBmaWxlID0gZmlsZXNbaV1cbiAgICAgIC8vIE9ubHkgYWNjZXB0IGltYWdlIGZpbGVzXG4gICAgICBpZiAoIWZpbGUudHlwZS5zdGFydHNXaXRoKFwiaW1hZ2UvXCIpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltjaGF0XSBTa2lwcGluZyBub24taW1hZ2UgZmlsZTpcIiwgZmlsZS5uYW1lKVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBiYXNlNjQgPSBhd2FpdCBmaWxlVG9CYXNlNjQoZmlsZSlcbiAgICAgICAgbmV3SW1hZ2VzLnB1c2goYmFzZTY0KVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbY2hhdF0gRmFpbGVkIHRvIGNvbnZlcnQgaW1hZ2U6XCIsIGVycilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZEltYWdlcygocHJldikgPT4gWy4uLnByZXYsIC4uLm5ld0ltYWdlc10pXG4gICAgLy8gUmVzZXQgZmlsZSBpbnB1dFxuICAgIGlmIChmaWxlSW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSBcIlwiXG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBmaWxlIHRvIGJhc2U2NCBzdHJpbmdcbiAgY29uc3QgZmlsZVRvQmFzZTY0ID0gKGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKVxuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpXG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdFxuICAgIH0pXG4gIH1cblxuICAvLyBSZW1vdmUgc2VsZWN0ZWQgaW1hZ2VcbiAgY29uc3QgcmVtb3ZlSW1hZ2UgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHNldFNlbGVjdGVkSW1hZ2VzKChwcmV2KSA9PiBwcmV2LmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpKVxuICB9XG5cbiAgY29uc3Qgc2VuZE1lc3NhZ2UgPSBhc3luYyAoZT86IFJlYWN0LkZvcm1FdmVudCkgPT4ge1xuICAgIGlmIChlKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0LnRyaW0oKSB8fCBpc0xvYWRpbmcpIHJldHVyblxuXG4gICAgY29uc3QgdXNlck1lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICBpZDogRGF0ZS5ub3coKS50b1N0cmluZygpLFxuICAgICAgcm9sZTogXCJ1c2VyXCIsXG4gICAgICBjb250ZW50OiBpbnB1dC50cmltKCksXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICBpbWFnZXM6IHNlbGVjdGVkSW1hZ2VzLmxlbmd0aCA+IDAgPyBzZWxlY3RlZEltYWdlcyA6IHVuZGVmaW5lZCxcbiAgICB9XG5cbiAgICBzZXRNZXNzYWdlcygocHJldikgPT4gWy4uLnByZXYsIHVzZXJNZXNzYWdlXSlcbiAgICBzZXRJbnB1dChcIlwiKVxuICAgIHNldFNlbGVjdGVkSW1hZ2VzKFtdKVxuICAgIHNldElzTG9hZGluZyh0cnVlKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXCIvYXBpL2NoYXRcIiwge1xuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBtZXNzYWdlOiB1c2VyTWVzc2FnZS5jb250ZW50LFxuICAgICAgICAgIHRpbWVzdGFtcDogdXNlck1lc3NhZ2UudGltZXN0YW1wLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgc2Vzc2lvbklkOiBzZXNzaW9uSWQsXG4gICAgICAgICAgYWdlbnRJZDogYWdlbnQuaWQsXG4gICAgICAgICAgaW1hZ2VzOiBzZWxlY3RlZEltYWdlcy5sZW5ndGggPiAwID8gc2VsZWN0ZWRJbWFnZXMgOiB1bmRlZmluZWQsXG4gICAgICAgIH0pLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHtcbiAgICAgICAgZXJyb3I/OiBzdHJpbmdcbiAgICAgICAgaGludD86IHN0cmluZ1xuICAgICAgICByZXNwb25zZT86IHN0cmluZ1xuICAgICAgICBtZXNzYWdlPzogc3RyaW5nXG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgIGlkOiAoRGF0ZS5ub3coKSArIDEpLnRvU3RyaW5nKCksXG4gICAgICAgICAgcm9sZTogXCJhc3Npc3RhbnRcIixcbiAgICAgICAgICBjb250ZW50OiBkYXRhLmVycm9yIHx8IFwiRmFpbGVkIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHdlYmhvb2suXCIsXG4gICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgaGludDogZGF0YS5oaW50LFxuICAgICAgICB9XG4gICAgICAgIHNldE1lc3NhZ2VzKChwcmV2KSA9PiBbLi4ucHJldiwgZXJyb3JNZXNzYWdlXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFzc2lzdGFudE1lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgICAgaWQ6IChEYXRlLm5vdygpICsgMSkudG9TdHJpbmcoKSxcbiAgICAgICAgICByb2xlOiBcImFzc2lzdGFudFwiLFxuICAgICAgICAgIGNvbnRlbnQ6IGRhdGEucmVzcG9uc2UgfHwgZGF0YS5tZXNzYWdlIHx8IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgICAgfVxuICAgICAgICBzZXRNZXNzYWdlcygocHJldikgPT4gWy4uLnByZXYsIGFzc2lzdGFudE1lc3NhZ2VdKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiW3YwXSBFcnJvciBzZW5kaW5nIG1lc3NhZ2U6XCIsIGVycm9yKVxuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgIGlkOiAoRGF0ZS5ub3coKSArIDEpLnRvU3RyaW5nKCksXG4gICAgICAgIHJvbGU6IFwiYXNzaXN0YW50XCIsXG4gICAgICAgIGNvbnRlbnQ6IFwiU29ycnksIEkgZW5jb3VudGVyZWQgYW4gZXJyb3IgcHJvY2Vzc2luZyB5b3VyIG1lc3NhZ2UuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXG4gICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgICAgaXNFcnJvcjogdHJ1ZSxcbiAgICAgIH1cblxuICAgICAgc2V0TWVzc2FnZXMoKHByZXYpID0+IFsuLi5wcmV2LCBlcnJvck1lc3NhZ2VdKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RhcnROZXdDaGF0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFyIGFsbCBtZXNzYWdlc1xuICAgIHNldE1lc3NhZ2VzKFtdKVxuICAgIC8vIEdlbmVyYXRlIG5ldyBzZXNzaW9uSUQgZm9yIHRoaXMgYWdlbnRcbiAgICBjb25zdCBuZXdTZXNzaW9uSWQgPSBgc2Vzc2lvbi0ke2FnZW50LmlkfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDE1KX1gXG4gICAgc2V0U2Vzc2lvbklkKG5ld1Nlc3Npb25JZClcbiAgICBjb25zdCBzZXNzaW9uS2V5ID0gYGNoYXQtc2Vzc2lvbi0ke2FnZW50LmlkfWBcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzZXNzaW9uS2V5LCBuZXdTZXNzaW9uSWQpXG4gICAgLy8gQ2xlYXIgaW5wdXQgYW5kIGltYWdlc1xuICAgIHNldElucHV0KFwiXCIpXG4gICAgc2V0U2VsZWN0ZWRJbWFnZXMoW10pXG4gICAgLy8gRm9jdXMgaW5wdXRcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpXG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIWUuc2hpZnRLZXkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgc2VuZE1lc3NhZ2UoKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBmbGV4IGgtZnVsbCB3LWZ1bGwgZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtWzIuNXJlbV0gYm9yZGVyIGJvcmRlci1ib3JkZXIvNTAgYmctd2hpdGUvMjAgcHgtNCBweS02IHNoYWRvdy1bMF8zNXB4XzkwcHhfcmdiYSg0NSw0NSw0NSwwLjE4KV0gYmFja2Ryb3AtYmx1ci14bCBkYXJrOmJnLVsjMTIxMjEyXS8yMCBzbTpweC04IHNtOnB5LThcIj5cbiAgICAgIHttZXNzYWdlcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSByaWdodC04IHRvcC04IHotMTBcIj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtzdGFydE5ld0NoYXR9XG4gICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgc2l6ZT1cImljb25cIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC0xMSB3LTExIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLWJvcmRlci82MCBiZy13aGl0ZS83MCB0ZXh0LWNoYXJjb2FsIHNoYWRvdy1sZyBiYWNrZHJvcC1ibHVyIGhvdmVyOmJnLXdoaXRlXCJcbiAgICAgICAgICAgIHRpdGxlPVwiU3RhcnQgYSBmcmVzaCBjb252ZXJzYXRpb25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTcXVhcmVQZW4gY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgPGRpdiByZWY9e21lc3NhZ2VzQ29udGFpbmVyUmVmfSBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIHB4LTEgcHQtNiBwYi02IHNtOnB4LTBcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIG1heC13LTN4bCBzcGFjZS15LTEwXCI+XG4gICAgICAgICAge21lc3NhZ2VzLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBtaW4taC1bNjB2aF0gZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0xMCB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXgtYXV0byBmbGV4IGgtMjAgdy0yMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItYm9yZGVyLzQwIGJnLXdoaXRlLzYwIHRleHQtYnVybnQgc2hhZG93LWxnXCI+XG4gICAgICAgICAgICAgICAgICA8U3BhcmtsZXMgY2xhc3NOYW1lPVwiaC04IHctOCB0ZXh0LWJ1cm50XCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cImZvbnQtaGVhZGluZyB0ZXh0LTN4bCB0ZXh0LWNoYXJjb2FsXCI+V2VsY29tZSB0byB7YWdlbnQubmFtZX08L2gxPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57YWdlbnQuZGVzY3JpcHRpb259PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgdy1mdWxsIG1heC13LTJ4bCBnYXAtNCBzbTpncmlkLWNvbHMtMlwiPlxuICAgICAgICAgICAgICAgIHtbXG4gICAgICAgICAgICAgICAgICBcIkhlbHAgbWUgYnJhaW5zdG9ybSBpZGVhcyBmb3IgYSBuZXcgbW9iaWxlIGFwcFwiLFxuICAgICAgICAgICAgICAgICAgXCJHZW5lcmF0ZSBjcmVhdGl2ZSB3cml0aW5nIHByb21wdHMgZm9yIGEgZmFudGFzeSBub3ZlbFwiLFxuICAgICAgICAgICAgICAgICAgXCJTdWdnZXN0IGlubm92YXRpdmUgbWFya2V0aW5nIHN0cmF0ZWdpZXMgZm9yIGEgc3RhcnR1cFwiLFxuICAgICAgICAgICAgICAgICAgXCJDcmVhdGUgYSBsaXN0IG9mIHVuaXF1ZSBwcm9kdWN0IG5hbWVzIGZvciBhIHRlY2ggY29tcGFueVwiLFxuICAgICAgICAgICAgICAgIF0ubWFwKChwcm9tcHQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17cHJvbXB0fVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJbnB1dChwcm9tcHQpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzY3JvbGwtcmV2ZWFsIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItYm9yZGVyLzMwIGJnLXdoaXRlLzgwIHAtNCB0ZXh0LWxlZnQgdGV4dC1zbSB0ZXh0LWNoYXJjb2FsIHNoYWRvdy1zbSB0cmFuc2l0aW9uIGhvdmVyOmJvcmRlci1yaW5nLzYwIGhvdmVyOmJnLXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYW5pbWF0aW9uRGVsYXk6IGAke2luZGV4ICogNTB9bXNgIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtwcm9tcHR9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xLjUgdy0xLjUgcm91bmRlZC1mdWxsIGJnLWJ1cm50XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+QUkgQXNzaXN0YW50IE9ubGluZTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTEwXCI+XG4gICAgICAgICAgICAgIHttZXNzYWdlcy5tYXAoKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1VzZXIgPSBtZXNzYWdlLnJvbGUgPT09IFwidXNlclwiXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAga2V5PXttZXNzYWdlLmlkfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BtZXNzYWdlLWZyYW1lIGZsZXggZmxleC1jb2wgZ2FwLTMgJHtpc1VzZXIgPyBcIml0ZW1zLWVuZCB0ZXh0LXJpZ2h0XCIgOiBcIlwifWB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC0yIHRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLVswLjJlbV0gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kICR7aXNVc2VyID8gXCJqdXN0aWZ5LWVuZFwiIDogXCJcIn1gfT5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57aXNVc2VyID8gXCJDb2xsZWN0b3JcIiA6IGFnZW50Lm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzAuNjVyZW1dIG5vcm1hbC1jYXNlIHRyYWNraW5nLW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge21lc3NhZ2UudGltZXN0YW1wLnRvTG9jYWxlVGltZVN0cmluZyhbXSwgeyBob3VyOiBcIjItZGlnaXRcIiwgbWludXRlOiBcIjItZGlnaXRcIiB9KX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIHtpc1VzZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZXNzYWdlLWJ1YmJsZSB1c2VyIHRleHQtY2hhcmNvYWwgZGFyazp0ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ3aGl0ZXNwYWNlLXByZS13cmFwIGJyZWFrLXdvcmRzIHRleHQtc20gbGVhZGluZy1yZWxheGVkXCI+e21lc3NhZ2UuY29udGVudH08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICkgOiBtZXNzYWdlLmlzRXJyb3IgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZXNzYWdlLWJ1YmJsZSBhc3Npc3RhbnQgYm9yZGVyIGJvcmRlci1kZXN0cnVjdGl2ZS80MCB0ZXh0LWRlc3RydWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ3aGl0ZXNwYWNlLXByZS13cmFwIGJyZWFrLXdvcmRzIHRleHQtc20gbGVhZGluZy1yZWxheGVkXCI+e21lc3NhZ2UuY29udGVudH08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLWJvcmRlci80MCBiZy13aGl0ZS83MCBwLTQgdGV4dC1jaGFyY29hbCBzaGFkb3ctc20gZGFyazpib3JkZXItd2hpdGUvMTAgZGFyazpiZy13aGl0ZS81IGRhcms6dGV4dC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWFya2Rvd25SZW5kZXJlciBjb250ZW50PXttZXNzYWdlLmNvbnRlbnR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAge21lc3NhZ2UuaGludCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItYWNjZW50LzYwIGJnLWFjY2VudC80MCBweC0zIHB5LTIgdGV4dC14cyB0ZXh0LWNoYXJjb2FsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVzc2FnZS5oaW50fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9KX1cblxuICAgICAgICAgICAgICB7aXNMb2FkaW5nICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lc3NhZ2UtZnJhbWUgZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXhzIHVwcGVyY2FzZSB0cmFja2luZy1bMC4yZW1dIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57YWdlbnQubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzAuNjVyZW1dIG5vcm1hbC1jYXNlIHRyYWNraW5nLW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZyhbXSwgeyBob3VyOiBcIjItZGlnaXRcIiwgbWludXRlOiBcIjItZGlnaXRcIiB9KX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItYm9yZGVyLzQwIGJnLXdoaXRlLzcwIHAtNCB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBzaGFkb3ctc20gZGFyazpib3JkZXItd2hpdGUvMTAgZGFyazpiZy13aGl0ZS81IGRhcms6dGV4dC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8TG9hZGVyMiBjbGFzc05hbWU9XCJoLTQgdy00IGFuaW1hdGUtc3BpbiB0ZXh0LWJ1cm50XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5UaGlua2luZy4uLjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xIHctMSByb3VuZGVkLWZ1bGwgYmctYnVybnQgYW5pbWF0ZS1ib3VuY2VcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xIHctMSByb3VuZGVkLWZ1bGwgYmctYnVybnQgYW5pbWF0ZS1ib3VuY2VcIiBzdHlsZT17eyBhbmltYXRpb25EZWxheTogXCIwLjFzXCIgfX0+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtMSB3LTEgcm91bmRlZC1mdWxsIGJnLWJ1cm50IGFuaW1hdGUtYm91bmNlXCIgc3R5bGU9e3sgYW5pbWF0aW9uRGVsYXk6IFwiMC4yc1wiIH19PjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC1hdXRvIHB0LTRcIj5cbiAgICAgICAgPGZvcm0gb25TdWJtaXQ9e3NlbmRNZXNzYWdlfSBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgIHsvKiBJbWFnZSBwcmV2aWV3IHNlY3Rpb24gKi99XG4gICAgICAgICAge3NlbGVjdGVkSW1hZ2VzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0zIGZsZXggZmxleC13cmFwIGdhcC0zIHB4LTMgcHQtMlwiPlxuICAgICAgICAgICAgICB7c2VsZWN0ZWRJbWFnZXMubWFwKChpbWFnZSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHNyYz17aW1hZ2V9XG4gICAgICAgICAgICAgICAgICAgIGFsdD17YFNlbGVjdGVkICR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC0xNiB3LTE2IHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ib3JkZXIvNDAgb2JqZWN0LWNvdmVyIHNoYWRvdy1tZFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcmVtb3ZlSW1hZ2UoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSAtcmlnaHQtMiAtdG9wLTIgZmxleCBoLTUgdy01IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgdGV4dC13aGl0ZSBzaGFkb3ctbWQgaG92ZXI6b3BhY2l0eS04MFwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogXCJ2YXIoLS1jaGFyY29hbC1pbmspXCIgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFggY2xhc3NOYW1lPVwiaC0zIHctM1wiIC8+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYW51c2NyaXB0LXBhbmVsIHAtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWVuZCBnYXAtM1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC0xIGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0fVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRJbnB1dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFzayBzb21ldGhpbmcgcHJlY2lzZSBvciBpbnZpdGUgdGhlIGFnZW50IGludG8geW91ciBwcm9jZXNz4oCmXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICByb3dzPXsxfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWluLWgtWzIwcHhdIG1heC1oLTMyIHJlc2l6ZS1ub25lIGJvcmRlci0wIGJnLXRyYW5zcGFyZW50IHRleHQtYmFzZSB0ZXh0LWNoYXJjb2FsIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6dGV4dC1mb3JlZ3JvdW5kIGRhcms6cGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwXCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bydcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbklucHV0PXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuaGVpZ2h0ID0gTWF0aC5taW4odGFyZ2V0LnNjcm9sbEhlaWdodCwgMTI4KSArICdweCc7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlSW1hZ2VTZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKCl9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTkgdy05IHJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1ib3JkZXIvNTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOmJvcmRlci1yaW5nIGhvdmVyOnRleHQtY2hhcmNvYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiQXR0YWNoIGltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQYXBlcmNsaXAgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC05IHctOSByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItYm9yZGVyLzUwIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjpib3JkZXItcmluZyBob3Zlcjp0ZXh0LWNoYXJjb2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlZvaWNlIGlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxNaWMgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAge2lucHV0LnRyaW0oKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpbnB1dC5sZW5ndGh9LzIwMDBcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWlucHV0LnRyaW0oKSB8fCBpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImljb25cIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtMTIgdy0xMiBmbGV4LXNocmluay0wIHJvdW5kZWQtMnhsIGJnLWJ1cm50IHRleHQtd2hpdGUgdHJhbnNpdGlvbiBob3ZlcjpiZy10ZXJyYWNvdHRhIGRpc2FibGVkOm9wYWNpdHktNTBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZyA/IDxMb2FkZXIyIGNsYXNzTmFtZT1cImgtNCB3LTQgYW5pbWF0ZS1zcGluXCIgLz4gOiA8U2VuZCBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz59XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJCdXR0b24iLCJTZW5kIiwiTG9hZGVyMiIsIlNxdWFyZVBlbiIsIlNwYXJrbGVzIiwiUGFwZXJjbGlwIiwiTWljIiwiWCIsIk1hcmtkb3duUmVuZGVyZXIiLCJDaGF0SW50ZXJmYWNlIiwiYWdlbnQiLCJtZXNzYWdlcyIsInNldE1lc3NhZ2VzIiwiaW5wdXQiLCJzZXRJbnB1dCIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsInNlc3Npb25JZCIsInNldFNlc3Npb25JZCIsInNlbGVjdGVkSW1hZ2VzIiwic2V0U2VsZWN0ZWRJbWFnZXMiLCJtZXNzYWdlc0NvbnRhaW5lclJlZiIsImlucHV0UmVmIiwiZmlsZUlucHV0UmVmIiwic2Vzc2lvbktleSIsImlkIiwiZXhpc3RpbmdTZXNzaW9uSWQiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwiRGF0ZSIsIk1hdGgiLCJub3ciLCJyYW5kb20iLCJ0b1N0cmluZyIsInN1YnN0cmluZyIsInNldEl0ZW0iLCJtZXNzYWdlc0tleSIsInNhdmVkTWVzc2FnZXMiLCJwYXJzZWQiLCJKU09OIiwicGFyc2UiLCJtYXAiLCJtc2ciLCJ0aW1lc3RhbXAiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJjdXJyZW50Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0Iiwic3RyaW5naWZ5IiwiaGFuZGxlSW1hZ2VTZWxlY3QiLCJlIiwiZmlsZXMiLCJjdXJyZW50VGFyZ2V0IiwibmV3SW1hZ2VzIiwiaSIsImxlbmd0aCIsImZpbGUiLCJ0eXBlIiwic3RhcnRzV2l0aCIsIndhcm4iLCJuYW1lIiwiYmFzZTY0IiwiZmlsZVRvQmFzZTY0IiwicHVzaCIsInByZXYiLCJ2YWx1ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVhZGVyIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJvbmxvYWQiLCJyZXN1bHQiLCJvbmVycm9yIiwicmVtb3ZlSW1hZ2UiLCJpbmRleCIsImZpbHRlciIsIl8iLCJzZW5kTWVzc2FnZSIsInByZXZlbnREZWZhdWx0IiwidHJpbSIsInVzZXJNZXNzYWdlIiwicm9sZSIsImNvbnRlbnQiLCJpbWFnZXMiLCJ1bmRlZmluZWQiLCJyZXNwb25zZSIsImZldGNoIiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJtZXNzYWdlIiwidG9JU09TdHJpbmciLCJhZ2VudElkIiwiZGF0YSIsImpzb24iLCJvayIsImVycm9yTWVzc2FnZSIsImlzRXJyb3IiLCJoaW50IiwiYXNzaXN0YW50TWVzc2FnZSIsImZvY3VzIiwic3RhcnROZXdDaGF0IiwibmV3U2Vzc2lvbklkIiwiaGFuZGxlS2V5RG93biIsImtleSIsInNoaWZ0S2V5IiwiZGl2IiwiY2xhc3NOYW1lIiwib25DbGljayIsInZhcmlhbnQiLCJzaXplIiwidGl0bGUiLCJyZWYiLCJoMSIsInAiLCJkZXNjcmlwdGlvbiIsInByb21wdCIsImJ1dHRvbiIsInN0eWxlIiwiYW5pbWF0aW9uRGVsYXkiLCJzcGFuIiwiaXNVc2VyIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiaG91ciIsIm1pbnV0ZSIsImZvcm0iLCJvblN1Ym1pdCIsImltYWdlIiwiaW1nIiwic3JjIiwiYWx0IiwiYmFja2dyb3VuZENvbG9yIiwidGV4dGFyZWEiLCJvbkNoYW5nZSIsInRhcmdldCIsIm9uS2V5RG93biIsInBsYWNlaG9sZGVyIiwiZGlzYWJsZWQiLCJyb3dzIiwib3ZlcmZsb3ciLCJoZWlnaHQiLCJvbklucHV0IiwibWluIiwibXVsdGlwbGUiLCJhY2NlcHQiLCJjbGljayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/components/chat-interface.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./src/components/header.tsx":
/*!***********************************!*\
!*** ./src/components/header.tsx ***!
\***********************************/
/***/ ((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 */ Header: () => (/* binding */ Header)\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/.pnpm/next@15.5.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Settings_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Settings,Sparkles!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/sparkles.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Settings_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Settings,Sparkles!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Settings_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Settings,Sparkles!=!lucide-react */ \"(app-pages-browser)/./node_modules/.pnpm/lucide-react@0.454.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/settings.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./src/components/ui/button.tsx\");\n/* harmony import */ var _components_mode_toggle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/mode-toggle */ \"(app-pages-browser)/./src/components/mode-toggle.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./src/components/ui/dropdown-menu.tsx\");\n/* __next_internal_client_entry_do_not_use__ Header auto */ \n\n\n\n\nfunction Header(param) {\n let { agent, agents, onAgentSelected, isLoadingAgents } = param;\n const canSelect = agents.length > 0 && !isLoadingAgents;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"sticky top-0 z-50 mx-auto w-full max-w-6xl px-3 py-3 sm:px-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto flex max-w-5xl items-center justify-between rounded-3xl border border-border/50 bg-white/70 px-4 py-4 shadow-[0_15px_45px_rgba(45,45,45,0.12)] backdrop-blur-2xl dark:bg-[#121212]/20 sm:px-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-1 items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-11 w-11 rounded-2xl border border-border/50 text-burnt shadow-inner\",\n style: {\n background: \"radial-gradient(circle at 30% 20%, rgba(230,126,80,0.4), rgba(255,255,255,0.7))\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex h-full w-full items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Settings_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 35,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 34,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 28,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"eyebrow text-[0.65rem] text-muted-foreground\",\n children: agent ? \"Curated correspondent\" : \"Gallery dispatch\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 39,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap items-baseline gap-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"font-heading text-xl text-charcoal sm:text-2xl\",\n children: agent ? agent.name : \"Inspiration Repo\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 43,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 42,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted-foreground\",\n children: agent ? \"Archivist in residence\" : \"Creative assistant in waiting\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 47,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 38,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 27,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"outline\",\n size: \"sm\",\n className: \"rounded-full border-border/60 bg-accent/50 px-4 text-[0.65rem] tracking-[0.2em] text-charcoal hover:border-border hover:bg-accent/70\",\n disabled: !canSelect,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Settings_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"mr-1 h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 62,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"hidden md:inline\",\n children: agent ? \"Switch correspondent\" : \"Select correspondent\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 63,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"md:hidden\",\n children: agent ? \"Switch\" : \"Select\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 66,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 56,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 55,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuContent, {\n align: \"end\",\n className: \"min-w-[240px] rounded-2xl border border-border/60 bg-white/90 p-2 shadow-xl backdrop-blur\",\n children: isLoadingAgents ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n disabled: true,\n className: \"text-muted-foreground\",\n children: \"Gathering correspondents…\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 71,\n columnNumber: 17\n }, this) : agents.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n disabled: true,\n className: \"text-muted-foreground\",\n children: \"No agents configured\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 75,\n columnNumber: 17\n }, this) : agents.map((entry)=>{\n const isActive = (agent === null || agent === void 0 ? void 0 : agent.id) === entry.id;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n onClick: ()=>onAgentSelected(entry),\n className: \"flex flex-col items-start rounded-xl border border-transparent px-3 py-3 text-left \".concat(isActive ? \"bg-accent/70 text-charcoal\" : \"text-muted-foreground hover:bg-accent/40 hover:text-charcoal\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-heading text-base text-charcoal\",\n children: entry.name\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 87,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs leading-snug text-muted-foreground line-clamp-2\",\n children: entry.description\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 88,\n columnNumber: 23\n }, this),\n isActive && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"mt-1 text-[0.6rem] uppercase tracking-[0.25em] text-charcoal\",\n children: \"Active\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 92,\n columnNumber: 25\n }, this)\n ]\n }, entry.id, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 82,\n columnNumber: 21\n }, this);\n })\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 69,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 54,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_mode_toggle__WEBPACK_IMPORTED_MODULE_2__.ModeToggle, {}, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 102,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-10 w-10 rounded-2xl border border-border/60 text-muted-foreground hover:bg-accent hover:text-charcoal\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Settings_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 108,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 103,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 53,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 26,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/header.tsx\",\n lineNumber: 25,\n columnNumber: 5\n }, this);\n}\n_c = Header;\nvar _c;\n$RefreshReg$(_c, \"Header\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRThEO0FBQ2Y7QUFDTTtBQU1mO0FBVS9CLFNBQVNTLE9BQU8sS0FBZ0U7UUFBaEUsRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLGVBQWUsRUFBRUMsZUFBZSxFQUFlLEdBQWhFO0lBQ3JCLE1BQU1DLFlBQVlILE9BQU9JLE1BQU0sR0FBRyxLQUFLLENBQUNGO0lBRXhDLHFCQUNFLDhEQUFDRztRQUFPQyxXQUFVO2tCQUNoQiw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBQ2IsOERBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0M7NEJBQ0NELFdBQVU7NEJBQ1ZFLE9BQU87Z0NBQ0xDLFlBQVk7NEJBQ2Q7c0NBRUEsNEVBQUNGO2dDQUFJRCxXQUFVOzBDQUNiLDRFQUFDakIseUdBQVFBO29DQUFDaUIsV0FBVTs7Ozs7Ozs7Ozs7Ozs7OztzQ0FHeEIsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0k7b0NBQUVKLFdBQVU7OENBQ1ZQLFFBQVEsMEJBQTBCOzs7Ozs7OENBRXJDLDhEQUFDUTtvQ0FBSUQsV0FBVTs4Q0FDYiw0RUFBQ0s7d0NBQUdMLFdBQVU7a0RBQ1hQLFFBQVFBLE1BQU1hLElBQUksR0FBRzs7Ozs7Ozs7Ozs7OENBRzFCLDhEQUFDRjtvQ0FBRUosV0FBVTs4Q0FDVlAsUUFBUSwyQkFBMkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFLMUMsOERBQUNRO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ1osc0VBQVlBOzs4Q0FDWCw4REFBQ0csNkVBQW1CQTtvQ0FBQ2dCLE9BQU87OENBQzFCLDRFQUFDckIseURBQU1BO3dDQUNMc0IsU0FBUTt3Q0FDUkMsTUFBSzt3Q0FDTFQsV0FBVTt3Q0FDVlUsVUFBVSxDQUFDYjs7MERBRVgsOERBQUNaLHlHQUFXQTtnREFBQ2UsV0FBVTs7Ozs7OzBEQUN2Qiw4REFBQ1c7Z0RBQUtYLFdBQVU7MERBQ2JQLFFBQVEseUJBQXlCOzs7Ozs7MERBRXBDLDhEQUFDa0I7Z0RBQUtYLFdBQVU7MERBQWFQLFFBQVEsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7OENBR3BELDhEQUFDSiw2RUFBbUJBO29DQUFDdUIsT0FBTTtvQ0FBTVosV0FBVTs4Q0FDeENKLGdDQUNDLDhEQUFDTiwwRUFBZ0JBO3dDQUFDb0IsUUFBUTt3Q0FBQ1YsV0FBVTtrREFBd0I7Ozs7OytDQUczRE4sT0FBT0ksTUFBTSxLQUFLLGtCQUNwQiw4REFBQ1IsMEVBQWdCQTt3Q0FBQ29CLFFBQVE7d0NBQUNWLFdBQVU7a0RBQXdCOzs7OzsrQ0FJN0ROLE9BQU9tQixHQUFHLENBQUMsQ0FBQ0M7d0NBQ1YsTUFBTUMsV0FBV3RCLENBQUFBLGtCQUFBQSw0QkFBQUEsTUFBT3VCLEVBQUUsTUFBS0YsTUFBTUUsRUFBRTt3Q0FDdkMscUJBQ0UsOERBQUMxQiwwRUFBZ0JBOzRDQUVmMkIsU0FBUyxJQUFNdEIsZ0JBQWdCbUI7NENBQy9CZCxXQUFXLHNGQUErTCxPQUF6R2UsV0FBVywrQkFBK0I7OzhEQUUzSSw4REFBQ0o7b0RBQUtYLFdBQVU7OERBQXdDYyxNQUFNUixJQUFJOzs7Ozs7OERBQ2xFLDhEQUFDSztvREFBS1gsV0FBVTs4REFDYmMsTUFBTUksV0FBVzs7Ozs7O2dEQUVuQkgsMEJBQ0MsOERBQUNKO29EQUFLWCxXQUFVOzhEQUErRDs7Ozs7OzsyQ0FUNUVjLE1BQU1FLEVBQUU7Ozs7O29DQWVuQjs7Ozs7Ozs7Ozs7O3NDQUlOLDhEQUFDN0IsK0RBQVVBOzs7OztzQ0FDWCw4REFBQ0QseURBQU1BOzRCQUNMc0IsU0FBUTs0QkFDUkMsTUFBSzs0QkFDTFQsV0FBVTtzQ0FFViw0RUFBQ2hCLHlHQUFRQTtnQ0FBQ2dCLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNaEM7S0E3RmdCUiIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9zcmMvY29tcG9uZW50cy9oZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IFNwYXJrbGVzLCBTZXR0aW5ncywgQ2hldnJvbkRvd24gfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvYnV0dG9uXCJcbmltcG9ydCB7IE1vZGVUb2dnbGUgfSBmcm9tIFwiQC9jb21wb25lbnRzL21vZGUtdG9nZ2xlXCJcbmltcG9ydCB7XG4gIERyb3Bkb3duTWVudSxcbiAgRHJvcGRvd25NZW51Q29udGVudCxcbiAgRHJvcGRvd25NZW51SXRlbSxcbiAgRHJvcGRvd25NZW51VHJpZ2dlcixcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9kcm9wZG93bi1tZW51XCJcbmltcG9ydCB0eXBlIHsgQWdlbnQgfSBmcm9tIFwiQC9saWIvdHlwZXNcIlxuXG5pbnRlcmZhY2UgSGVhZGVyUHJvcHMge1xuICBhZ2VudDogQWdlbnQgfCBudWxsXG4gIGFnZW50czogQWdlbnRbXVxuICBvbkFnZW50U2VsZWN0ZWQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgaXNMb2FkaW5nQWdlbnRzOiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIZWFkZXIoeyBhZ2VudCwgYWdlbnRzLCBvbkFnZW50U2VsZWN0ZWQsIGlzTG9hZGluZ0FnZW50cyB9OiBIZWFkZXJQcm9wcykge1xuICBjb25zdCBjYW5TZWxlY3QgPSBhZ2VudHMubGVuZ3RoID4gMCAmJiAhaXNMb2FkaW5nQWdlbnRzXG5cbiAgcmV0dXJuIChcbiAgICA8aGVhZGVyIGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTUwIG14LWF1dG8gdy1mdWxsIG1heC13LTZ4bCBweC0zIHB5LTMgc206cHgtNlwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIGZsZXggbWF4LXctNXhsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZC0zeGwgYm9yZGVyIGJvcmRlci1ib3JkZXIvNTAgYmctd2hpdGUvNzAgcHgtNCBweS00IHNoYWRvdy1bMF8xNXB4XzQ1cHhfcmdiYSg0NSw0NSw0NSwwLjEyKV0gYmFja2Ryb3AtYmx1ci0yeGwgZGFyazpiZy1bIzEyMTIxMl0vMjAgc206cHgtNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC0xIGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtMTEgdy0xMSByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLWJvcmRlci81MCB0ZXh0LWJ1cm50IHNoYWRvdy1pbm5lclwiXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBcInJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzAlIDIwJSwgcmdiYSgyMzAsMTI2LDgwLDAuNCksIHJnYmEoMjU1LDI1NSwyNTUsMC43KSlcIixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGgtZnVsbCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxTcGFya2xlcyBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZXllYnJvdyB0ZXh0LVswLjY1cmVtXSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgICAgICAgICAge2FnZW50ID8gXCJDdXJhdGVkIGNvcnJlc3BvbmRlbnRcIiA6IFwiR2FsbGVyeSBkaXNwYXRjaFwifVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1iYXNlbGluZSBnYXAtM1wiPlxuICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwiZm9udC1oZWFkaW5nIHRleHQteGwgdGV4dC1jaGFyY29hbCBzbTp0ZXh0LTJ4bFwiPlxuICAgICAgICAgICAgICAgIHthZ2VudCA/IGFnZW50Lm5hbWUgOiBcIkluc3BpcmF0aW9uIFJlcG9cIn1cbiAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgICAgICAgICAge2FnZW50ID8gXCJBcmNoaXZpc3QgaW4gcmVzaWRlbmNlXCIgOiBcIkNyZWF0aXZlIGFzc2lzdGFudCBpbiB3YWl0aW5nXCJ9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8RHJvcGRvd25NZW51PlxuICAgICAgICAgICAgPERyb3Bkb3duTWVudVRyaWdnZXIgYXNDaGlsZD5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtZnVsbCBib3JkZXItYm9yZGVyLzYwIGJnLWFjY2VudC81MCBweC00IHRleHQtWzAuNjVyZW1dIHRyYWNraW5nLVswLjJlbV0gdGV4dC1jaGFyY29hbCBob3Zlcjpib3JkZXItYm9yZGVyIGhvdmVyOmJnLWFjY2VudC83MFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFjYW5TZWxlY3R9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd24gY2xhc3NOYW1lPVwibXItMSBoLTQgdy00XCIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJoaWRkZW4gbWQ6aW5saW5lXCI+XG4gICAgICAgICAgICAgICAgICB7YWdlbnQgPyBcIlN3aXRjaCBjb3JyZXNwb25kZW50XCIgOiBcIlNlbGVjdCBjb3JyZXNwb25kZW50XCJ9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1kOmhpZGRlblwiPnthZ2VudCA/IFwiU3dpdGNoXCIgOiBcIlNlbGVjdFwifTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Ryb3Bkb3duTWVudVRyaWdnZXI+XG4gICAgICAgICAgICA8RHJvcGRvd25NZW51Q29udGVudCBhbGlnbj1cImVuZFwiIGNsYXNzTmFtZT1cIm1pbi13LVsyNDBweF0gcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1ib3JkZXIvNjAgYmctd2hpdGUvOTAgcC0yIHNoYWRvdy14bCBiYWNrZHJvcC1ibHVyXCI+XG4gICAgICAgICAgICAgIHtpc0xvYWRpbmdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gZGlzYWJsZWQgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgICBHYXRoZXJpbmcgY29ycmVzcG9uZGVudHPigKZcbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICkgOiBhZ2VudHMubGVuZ3RoID09PSAwID8gKFxuICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVJdGVtIGRpc2FibGVkIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgICAgTm8gYWdlbnRzIGNvbmZpZ3VyZWRcbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgYWdlbnRzLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQWN0aXZlID0gYWdlbnQ/LmlkID09PSBlbnRyeS5pZFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e2VudHJ5LmlkfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQWdlbnRTZWxlY3RlZChlbnRyeSl9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZmxleCBmbGV4LWNvbCBpdGVtcy1zdGFydCByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgcHgtMyBweS0zIHRleHQtbGVmdCAke2lzQWN0aXZlID8gXCJiZy1hY2NlbnQvNzAgdGV4dC1jaGFyY29hbFwiIDogXCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6YmctYWNjZW50LzQwIGhvdmVyOnRleHQtY2hhcmNvYWxcIn1gfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1oZWFkaW5nIHRleHQtYmFzZSB0ZXh0LWNoYXJjb2FsXCI+e2VudHJ5Lm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgbGVhZGluZy1zbnVnIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBsaW5lLWNsYW1wLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtlbnRyeS5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAge2lzQWN0aXZlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm10LTEgdGV4dC1bMC42cmVtXSB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMjVlbV0gdGV4dC1jaGFyY29hbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRHJvcGRvd25NZW51Q29udGVudD5cbiAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICA8TW9kZVRvZ2dsZSAvPlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJoLTEwIHctMTAgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1ib3JkZXIvNjAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWNoYXJjb2FsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2V0dGluZ3MgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJTcGFya2xlcyIsIlNldHRpbmdzIiwiQ2hldnJvbkRvd24iLCJCdXR0b24iLCJNb2RlVG9nZ2xlIiwiRHJvcGRvd25NZW51IiwiRHJvcGRvd25NZW51Q29udGVudCIsIkRyb3Bkb3duTWVudUl0ZW0iLCJEcm9wZG93bk1lbnVUcmlnZ2VyIiwiSGVhZGVyIiwiYWdlbnQiLCJhZ2VudHMiLCJvbkFnZW50U2VsZWN0ZWQiLCJpc0xvYWRpbmdBZ2VudHMiLCJjYW5TZWxlY3QiLCJsZW5ndGgiLCJoZWFkZXIiLCJjbGFzc05hbWUiLCJkaXYiLCJzdHlsZSIsImJhY2tncm91bmQiLCJwIiwiaDEiLCJuYW1lIiwiYXNDaGlsZCIsInZhcmlhbnQiLCJzaXplIiwiZGlzYWJsZWQiLCJzcGFuIiwiYWxpZ24iLCJtYXAiLCJlbnRyeSIsImlzQWN0aXZlIiwiaWQiLCJvbkNsaWNrIiwiZGVzY3JpcHRpb24iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/components/header.tsx\n"));
/***/ })
});