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

22 lines
43 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/agent-selector.tsx":
/*!*******************************************!*\
!*** ./src/components/agent-selector.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 */ AgentSelector: () => (/* binding */ AgentSelector)\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 _barrel_optimize_names_Loader2_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,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_Loader2_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Loader2,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/loader-circle.js\");\n/* harmony import */ var _components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/dialog */ \"(app-pages-browser)/./src/components/ui/dialog.tsx\");\n/* __next_internal_client_entry_do_not_use__ AgentSelector auto */ \nvar _s = $RefreshSig$();\n\n\n\nfunction AgentSelector(param) {\n let { open, onOpenChange, onAgentSelected } = param;\n _s();\n const [agents, setAgents] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [panelTint, setPanelTint] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const palette = [\n {\n label: \"Burnt Orange\",\n color: \"var(--burnt-orange)\",\n note: \"Hero gradient\"\n },\n {\n label: \"Terracotta\",\n color: \"var(--terracotta)\",\n note: \"Secondary actions\"\n },\n {\n label: \"Sage Concrete\",\n color: \"var(--sage-concrete)\",\n note: \"Field notes\"\n },\n {\n label: \"Charcoal Ink\",\n color: \"var(--charcoal-ink)\",\n note: \"Typography\"\n }\n ];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"AgentSelector.useEffect\": ()=>{\n if (!open) return;\n const fetchAgents = {\n \"AgentSelector.useEffect.fetchAgents\": async ()=>{\n try {\n setIsLoading(true);\n setError(null);\n const response = await fetch(\"/api/agents\");\n const data = await response.json();\n if (!response.ok || !data.agents) {\n throw new Error(data.error || \"Failed to load agents\");\n }\n setAgents(data.agents);\n if (data.agents.length === 0) {\n setError(\"No agents configured. Please add agents via environment variables.\");\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : \"Failed to load agents\");\n } finally{\n setIsLoading(false);\n }\n }\n }[\"AgentSelector.useEffect.fetchAgents\"];\n fetchAgents();\n }\n }[\"AgentSelector.useEffect\"], [\n open\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"AgentSelector.useEffect\": ()=>{\n if (!open) return;\n const cards = document.querySelectorAll(\"[data-reveal='agent-card']\");\n if (!cards.length) return;\n const observer = new IntersectionObserver({\n \"AgentSelector.useEffect\": (entries)=>{\n entries.forEach({\n \"AgentSelector.useEffect\": (entry)=>{\n if (entry.isIntersecting) {\n entry.target.classList.add(\"is-visible\");\n observer.unobserve(entry.target);\n }\n }\n }[\"AgentSelector.useEffect\"]);\n }\n }[\"AgentSelector.useEffect\"], {\n threshold: 0.25\n });\n cards.forEach({\n \"AgentSelector.useEffect\": (card)=>observer.observe(card)\n }[\"AgentSelector.useEffect\"]);\n return ({\n \"AgentSelector.useEffect\": ()=>observer.disconnect()\n })[\"AgentSelector.useEffect\"];\n }\n }[\"AgentSelector.useEffect\"], [\n agents,\n open\n ]);\n const handleSelectAgent = (agent)=>{\n // Store selected agent in localStorage\n localStorage.setItem(\"selected-agent-id\", agent.id);\n localStorage.setItem(\"selected-agent\", JSON.stringify(agent));\n // Close dialog and notify parent component\n onOpenChange(false);\n onAgentSelected(agent);\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.Dialog, {\n open: open,\n onOpenChange: onOpenChange,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogContent, {\n className: \"max-w-2xl border-none bg-transparent p-0 shadow-none\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"palette-shell\",\n style: {\n \"--panel-tint\": panelTint !== null && panelTint !== void 0 ? panelTint : \"rgba(230, 126, 80, 0.25)\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogHeader, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 flex justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex h-14 w-14 items-center justify-center rounded-full border border-border/40 bg-white/40 text-burnt shadow-md\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-6 w-6\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 113,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 112,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 111,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogTitle, {\n className: \"text-center text-3xl font-heading\",\n children: \"Select Your Correspondent\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 116,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogDescription, {\n className: \"text-center text-base leading-relaxed text-muted-foreground\",\n children: \"Each agent keeps a different archive. Hover a swatch to tint the hall, then choose the voice you trust.\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 119,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 110,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"palette-row\",\n role: \"list\",\n children: palette.map((tone)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"palette-chip\",\n style: {\n backgroundColor: tone.color\n },\n \"aria-label\": \"Preview \".concat(tone.label),\n onMouseEnter: ()=>setPanelTint(tone.color),\n onMouseLeave: ()=>setPanelTint(null),\n onFocus: ()=>setPanelTint(tone.color),\n onBlur: ()=>setPanelTint(null)\n }, tone.label, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 127,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 125,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-center text-[0.65rem] uppercase tracking-[0.2em] text-muted-foreground\",\n children: \"interactive swatches • subtle tints on hover\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 140,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 124,\n columnNumber: 11\n }, this),\n isLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center py-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Loader2_Sparkles_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"mx-auto h-8 w-8 animate-spin text-burnt\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 148,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-muted-foreground\",\n children: \"Cataloguing configured agents…\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 149,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 147,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 146,\n columnNumber: 11\n }, this) : error ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-destructive/40 bg-destructive/15 p-4 text-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-destructive\",\n children: error\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 154,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 153,\n columnNumber: 11\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 py-6 md:grid-cols-2\",\n children: agents.map((agent, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleSelectAgent(agent),\n className: \"swatch-card scroll-reveal group p-5 text-left focus-visible:ring-2 focus-visible:ring-ring\",\n \"data-reveal\": \"agent-card\",\n style: {\n animationDelay: \"\".concat(index * 50, \"ms\"),\n \"--swatch-color\": index % 2 === 0 ? \"var(--burnt-orange)\" : \"var(--terracotta)\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"eyebrow text-[0.65rem] text-muted-foreground\",\n children: \"Agent\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 173,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"mt-2 font-heading text-xl text-charcoal\",\n children: agent.name\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 174,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 172,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"message-avatar assistant !h-9 !w-9 rounded-full text-[0.6rem] uppercase tracking-[0.25em]\",\n children: agent.name.slice(0, 2)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 176,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 171,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-3 text-sm 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/agent-selector.tsx\",\n lineNumber: 180,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-4 text-[0.65rem] uppercase tracking-[0.2em] text-muted-foreground\",\n children: \"Press enter to begin\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 183,\n columnNumber: 17\n }, this)\n ]\n }, agent.id, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 159,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 157,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 101,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/components/agent-selector.tsx\",\n lineNumber: 100,\n columnNumber: 5\n }, this);\n}\n_s(AgentSelector, \"Mf0KtEc764ZDLhuCgyMrfRCZLPc=\");\n_c = AgentSelector;\nvar _c;\n$RefreshReg$(_c, \"AgentSelector\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9jb21wb25lbnRzL2FnZW50LXNlbGVjdG9yLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFK0Q7QUFDZjtBQU9qQjtBQVN4QixTQUFTUyxjQUFjLEtBSVQ7UUFKUyxFQUM1QkMsSUFBSSxFQUNKQyxZQUFZLEVBQ1pDLGVBQWUsRUFDSSxHQUpTOztJQUs1QixNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR2IsK0NBQVFBLENBQVUsRUFBRTtJQUNoRCxNQUFNLENBQUNjLFdBQVdDLGFBQWEsR0FBR2YsK0NBQVFBLENBQUM7SUFDM0MsTUFBTSxDQUFDZ0IsT0FBT0MsU0FBUyxHQUFHakIsK0NBQVFBLENBQWdCO0lBQ2xELE1BQU0sQ0FBQ2tCLFdBQVdDLGFBQWEsR0FBR25CLCtDQUFRQSxDQUFnQjtJQUUxRCxNQUFNb0IsVUFBVTtRQUNkO1lBQUVDLE9BQU87WUFBZ0JDLE9BQU87WUFBdUJDLE1BQU07UUFBZ0I7UUFDN0U7WUFBRUYsT0FBTztZQUFjQyxPQUFPO1lBQXFCQyxNQUFNO1FBQW9CO1FBQzdFO1lBQUVGLE9BQU87WUFBaUJDLE9BQU87WUFBd0JDLE1BQU07UUFBYztRQUM3RTtZQUFFRixPQUFPO1lBQWdCQyxPQUFPO1lBQXVCQyxNQUFNO1FBQWE7S0FDM0U7SUFFRHhCLGdEQUFTQTttQ0FBQztZQUNSLElBQUksQ0FBQ1UsTUFBTTtZQUVYLE1BQU1lO3VEQUFjO29CQUNsQixJQUFJO3dCQUNGVCxhQUFhO3dCQUNiRSxTQUFTO3dCQUNULE1BQU1RLFdBQVcsTUFBTUMsTUFBTTt3QkFDN0IsTUFBTUMsT0FBTyxNQUFNRixTQUFTRyxJQUFJO3dCQUVoQyxJQUFJLENBQUNILFNBQVNJLEVBQUUsSUFBSSxDQUFDRixLQUFLZixNQUFNLEVBQUU7NEJBQ2hDLE1BQU0sSUFBSWtCLE1BQU1ILEtBQUtYLEtBQUssSUFBSTt3QkFDaEM7d0JBRUFILFVBQVVjLEtBQUtmLE1BQU07d0JBRXJCLElBQUllLEtBQUtmLE1B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ZCxXQUFVO3NDQUE0QjFDOzs7Ozs7Ozs7OzZDQUczQyw4REFBQzJDO3dCQUFJRCxXQUFVO2tDQUNaOUMsT0FBT2tELEdBQUcsQ0FBQyxDQUFDVixPQUFPcUIsc0JBQ2xCLDhEQUFDVDtnQ0FFQ1UsU0FBUyxJQUFNdkIsa0JBQWtCQztnQ0FDakNNLFdBQVU7Z0NBQ1ZpQixlQUFZO2dDQUNaZixPQUNFO29DQUNFZ0IsZ0JBQWdCLEdBQWMsT0FBWEgsUUFBUSxJQUFHO29DQUM5QixrQkFBa0JBLFFBQVEsTUFBTSxJQUFJLHdCQUF3QjtnQ0FDOUQ7O2tEQUdGLDhEQUFDZDt3Q0FBSUQsV0FBVTs7MERBQ2IsOERBQUNDOztrRUFDQyw4REFBQ2tCO3dEQUFLbkIsV0FBVTtrRUFBK0M7Ozs7OztrRUFDL0QsOERBQUNvQjt3REFBR3BCLFdBQVU7a0VBQTJDTixNQUFNMkIsSUFBSTs7Ozs7Ozs7Ozs7OzBEQUVyRSw4REFBQ3BCO2dEQUFJRCxXQUFVOzBEQUNaTixNQUFNMkIsSUFBSSxDQUFDQyxLQUFLLENBQUMsR0FBRzs7Ozs7Ozs7Ozs7O2tEQUd6Qiw4REFBQ1I7d0NBQUVkLFdBQVU7a0RBQ1ZOLE1BQU02QixXQUFXOzs7Ozs7a0RBRXBCLDhEQUFDVDt3Q0FBRWQsV0FBVTtrREFBdUU7Ozs7Ozs7K0JBdkIvRU4sTUFBTUcsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQzdCO0dBOUtnQi9DO0tBQUFBIiwic291cmNlcyI6WyIvaG9tZS9uaWNob2xhaS9Eb2N1bWVudHMvZGV2L211bHRpLWFnZW50X2NoYXRfaW50ZXJmYWNlL3NyYy9jb21wb25lbnRzL2FnZW50LXNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB0eXBlIENTU1Byb3BlcnRpZXMgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTG9hZGVyMiwgU3BhcmtsZXMgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7XG4gIERpYWxvZyxcbiAgRGlhbG9nQ29udGVudCxcbiAgRGlhbG9nSGVhZGVyLFxuICBEaWFsb2dUaXRsZSxcbiAgRGlhbG9nRGVzY3JpcHRpb24sXG59IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvZGlhbG9nXCJcbmltcG9ydCB0eXBlIHsgQWdlbnQgfSBmcm9tIFwiQC9saWIvdHlwZXNcIlxuXG5pbnRlcmZhY2UgQWdlbnRTZWxlY3RvclByb3BzIHtcbiAgb3BlbjogYm9vbGVhblxuICBvbk9wZW5DaGFuZ2U6IChvcGVuOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQWdlbnRTZWxlY3RlZDogKGFnZW50OiBBZ2VudCkgPT4gdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQWdlbnRTZWxlY3Rvcih7XG4gIG9wZW4sXG4gIG9uT3BlbkNoYW5nZSxcbiAgb25BZ2VudFNlbGVjdGVkLFxufTogQWdlbnRTZWxlY3RvclByb3BzKSB7XG4gIGNvbnN0IFthZ2VudHMsIHNldEFnZW50c10gPSB1c2VTdGF0ZTxBZ2VudFtdPihbXSlcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3BhbmVsVGludCwgc2V0UGFuZWxUaW50XSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgcGFsZXR0ZSA9IFtcbiAgICB7IGxhYmVsOiBcIkJ1cm50IE9yYW5nZVwiLCBjb2xvcjogXCJ2YXIoLS1idXJudC1vcmFuZ2UpXCIsIG5vdGU6IFwiSGVybyBncmFkaWVudFwiIH0sXG4gICAgeyBsYWJlbDogXCJUZXJyYWNvdHRhXCIsIGNvbG9yOiBcInZhcigtLXRlcnJhY290dGEpXCIsIG5vdGU6IFwiU2Vjb25kYXJ5IGFjdGlvbnNcIiB9LFxuICAgIHsgbGFiZWw6IFwiU2FnZSBDb25jcmV0ZVwiLCBjb2xvcjogXCJ2YXIoLS1zYWdlLWNvbmNyZXRlKVwiLCBub3RlOiBcIkZpZWxkIG5vdGVzXCIgfSxcbiAgICB7IGxhYmVsOiBcIkNoYXJjb2FsIElua1wiLCBjb2xvcjogXCJ2YXIoLS1jaGFyY29hbC1pbmspXCIsIG5vdGU6IFwiVHlwb2dyYXBoeVwiIH0sXG4gIF1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb3BlbikgcmV0dXJuXG5cbiAgICBjb25zdCBmZXRjaEFnZW50cyA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldElzTG9hZGluZyh0cnVlKVxuICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZ2VudHNcIilcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuXG4gICAgICAgIGlmICghcmVzcG9uc2Uub2sgfHwgIWRhdGEuYWdlbnRzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGRhdGEuZXJyb3IgfHwgXCJGYWlsZWQgdG8gbG9hZCBhZ2VudHNcIilcbiAgICAgICAgfVxuXG4gICAgICAgIHNldEFnZW50cyhkYXRhLmFnZW50cylcblxuICAgICAgICBpZiAoZGF0YS5hZ2VudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgc2V0RXJyb3IoXCJObyBhZ2VudHMgY29uZmlndXJlZC4gUGxlYXNlIGFkZCBhZ2VudHMgdmlhIGVudmlyb25tZW50IHZhcmlhYmxlcy5cIilcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHNldEVycm9yKFxuICAgICAgICAgIGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBcIkZhaWxlZCB0byBsb2FkIGFnZW50c1wiLFxuICAgICAgICApXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZmV0Y2hBZ2VudHMoKVxuICB9LCBbb3Blbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVyblxuICAgIGNvbnN0IGNhcmRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXCJbZGF0YS1yZXZlYWw9J2FnZW50LWNhcmQnXVwiKVxuICAgIGlmICghY2FyZHMubGVuZ3RoKSByZXR1cm5cblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgZW50cnkudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJpcy12aXNpYmxlXCIpXG4gICAgICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZW50cnkudGFyZ2V0KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICB7IHRocmVzaG9sZDogMC4yNSB9XG4gICAgKVxuXG4gICAgY2FyZHMuZm9yRWFjaCgoY2FyZCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShjYXJkKSlcblxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KClcbiAgfSwgW2FnZW50cywgb3Blbl0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0QWdlbnQgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgLy8gU3RvcmUgc2VsZWN0ZWQgYWdlbnQgaW4gbG9jYWxTdG9yYWdlXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJzZWxlY3RlZC1hZ2VudC1pZFwiLCBhZ2VudC5pZClcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcInNlbGVjdGVkLWFnZW50XCIsIEpTT04uc3RyaW5naWZ5KGFnZW50KSlcbiAgICAvLyBDbG9zZSBkaWFsb2cgYW5kIG5vdGlmeSBwYXJlbnQgY29tcG9uZW50XG4gICAgb25PcGVuQ2hhbmdlKGZhbHNlKVxuICAgIG9uQWdlbnRTZWxlY3RlZChhZ2VudClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZyBvcGVuPXtvcGVufSBvbk9wZW5DaGFuZ2U9e29uT3BlbkNoYW5nZX0+XG4gICAgICA8RGlhbG9nQ29udGVudCBjbGFzc05hbWU9XCJtYXgtdy0yeGwgYm9yZGVyLW5vbmUgYmctdHJhbnNwYXJlbnQgcC0wIHNoYWRvdy1ub25lXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJwYWxldHRlLXNoZWxsXCJcbiAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiLS1wYW5lbC10aW50XCI6IHBhbmVsVGludCA/PyBcInJnYmEoMjMwLCAxMjYsIDgwLCAwLjI1KVwiLFxuICAgICAgICAgICAgfSBhcyBDU1NQcm9wZXJ0aWVzXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgPERpYWxvZ0hlYWRlcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNCBmbGV4IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBoLTE0IHctMTQgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLWJvcmRlci80MCBiZy13aGl0ZS80MCB0ZXh0LWJ1cm50IHNoYWRvdy1tZFwiPlxuICAgICAgICAgICAgICAgIDxTcGFya2xlcyBjbGFzc05hbWU9XCJoLTYgdy02XCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxEaWFsb2dUaXRsZSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciB0ZXh0LTN4bCBmb250LWhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgU2VsZWN0IFlvdXIgQ29ycmVzcG9uZGVudFxuICAgICAgICAgICAgPC9EaWFsb2dUaXRsZT5cbiAgICAgICAgICAgIDxEaWFsb2dEZXNjcmlwdGlvbiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciB0ZXh0LWJhc2UgbGVhZGluZy1yZWxheGVkIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICBFYWNoIGFnZW50IGtlZXBzIGEgZGlmZmVyZW50IGFyY2hpdmUuIEhvdmVyIGEgc3dhdGNoIHRvIHRpbnQgdGhlIGhhbGwsIHRoZW4gY2hvb3NlIHRoZSB2b2ljZSB5b3UgdHJ1c3QuXG4gICAgICAgICAgICA8L0RpYWxvZ0Rlc2NyaXB0aW9uPlxuICAgICAgICAgIDwvRGlhbG9nSGVhZGVyPlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC02IHNwYWNlLXktMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWxldHRlLXJvd1wiIHJvbGU9XCJsaXN0XCI+XG4gICAgICAgICAgICAgIHtwYWxldHRlLm1hcCgodG9uZSkgPT4gKFxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGtleT17dG9uZS5sYWJlbH1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicGFsZXR0ZS1jaGlwXCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogdG9uZS5jb2xvciB9fVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17YFByZXZpZXcgJHt0b25lLmxhYmVsfWB9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHNldFBhbmVsVGludCh0b25lLmNvbG9yKX1cbiAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gc2V0UGFuZWxUaW50KG51bGwpfVxuICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KCkgPT4gc2V0UGFuZWxUaW50KHRvbmUuY29sb3IpfVxuICAgICAgICAgICAgICAgICAgb25CbHVyPXsoKSA9PiBzZXRQYW5lbFRpbnQobnVsbCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHRleHQtWzAuNjVyZW1dIHVwcGVyY2FzZSB0cmFja2luZy1bMC4yZW1dIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICBpbnRlcmFjdGl2ZSBzd2F0Y2hlcyDigKIgc3VidGxlIHRpbnRzIG9uIGhvdmVyXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge2lzTG9hZGluZyA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1jZW50ZXIgcHktOFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8TG9hZGVyMiBjbGFzc05hbWU9XCJteC1hdXRvIGgtOCB3LTggYW5pbWF0ZS1zcGluIHRleHQtYnVybnRcIiAvPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+Q2F0YWxvZ3VpbmcgY29uZmlndXJlZCBhZ2VudHPigKY8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IGVycm9yID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWRlc3RydWN0aXZlLzQwIGJnLWRlc3RydWN0aXZlLzE1IHAtNCB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWRlc3RydWN0aXZlXCI+e2Vycm9yfTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTQgcHktNiBtZDpncmlkLWNvbHMtMlwiPlxuICAgICAgICAgICAge2FnZW50cy5tYXAoKGFnZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAga2V5PXthZ2VudC5pZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZWxlY3RBZ2VudChhZ2VudCl9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic3dhdGNoLWNhcmQgc2Nyb2xsLXJldmVhbCBncm91cCBwLTUgdGV4dC1sZWZ0IGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nXCJcbiAgICAgICAgICAgICAgICBkYXRhLXJldmVhbD1cImFnZW50LWNhcmRcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uRGVsYXk6IGAke2luZGV4ICogNTB9bXNgLFxuICAgICAgICAgICAgICAgICAgICBcIi0tc3dhdGNoLWNvbG9yXCI6IGluZGV4ICUgMiA9PT0gMCA/IFwidmFyKC0tYnVybnQtb3JhbmdlKVwiIDogXCJ2YXIoLS10ZXJyYWNvdHRhKVwiLFxuICAgICAgICAgICAgICAgICAgfSBhcyBDU1NQcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZXllYnJvdyB0ZXh0LVswLjY1cmVtXSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5BZ2VudDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIm10LTIgZm9udC1oZWFkaW5nIHRleHQteGwgdGV4dC1jaGFyY29hbFwiPnthZ2VudC5uYW1lfTwvaDM+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVzc2FnZS1hdmF0YXIgYXNzaXN0YW50ICFoLTkgIXctOSByb3VuZGVkLWZ1bGwgdGV4dC1bMC42cmVtXSB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMjVlbV1cIj5cbiAgICAgICAgICAgICAgICAgICAge2FnZW50Lm5hbWUuc2xpY2UoMCwgMil9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0zIHRleHQtc20gbGVhZGluZy1yZWxheGVkIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgICAge2FnZW50LmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC00IHRleHQtWzAuNjVyZW1dIHVwcGVyY2FzZSB0cmFja2luZy1bMC4yZW1dIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgICAgUHJlc3MgZW50ZXIgdG8gYmVnaW5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9EaWFsb2dDb250ZW50PlxuICAgIDwvRGlhbG9nPlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJMb2FkZXIyIiwiU3BhcmtsZXMiLCJEaWFsb2ciLCJEaWFsb2dDb250ZW50IiwiRGlhbG9nSGVhZGVyIiwiRGlhbG9nVGl0bGUiLCJEaWFsb2dEZXNjcmlwdGlvbiIsIkFnZW50U2VsZWN0b3IiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwib25BZ2VudFNlbGVjdGVkIiwiYWdlbnRzIiwic2V0QWdlbnRzIiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiZXJyb3IiLCJzZXRFcnJvciIsInBhbmVsVGludCIsInNldFBhbmVsVGludCIsInBhbGV0dGUiLCJsYWJlbCIsImNvbG9yIiwibm90ZSIsImZldGNoQWdlbnRzIiwicmVzcG9uc2UiLCJmZXRjaCIsImRhdGEiLCJqc29uIiwib2siLCJFcnJvciIsImxlbmd0aCIsImVyciIsIm1lc3NhZ2UiLCJjYXJkcyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsIm9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImVudHJ5IiwiaXNJbnRlcnNlY3RpbmciLCJ0YXJnZXQiLCJjbGFzc0xpc3QiLCJhZGQiLCJ1bm9ic2VydmUiLCJ0aHJlc2hvbGQiLCJjYXJkIiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJoYW5kbGVTZWxlY3RBZ2VudCIsImFnZW50IiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsImlkIiwiSlNPTiIsInN0cmluZ2lmeSIsImNsYXNzTmFtZSIsImRpdiIsInN0eWxlIiwicm9sZSIsIm1hcCIsInRvbmUiLCJidXR0b24iLCJ0eXBlIiwiYmFja2dyb3VuZENvbG9yIiwiYXJpYS1sYWJlbCIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJwIiwiaW5kZXgiLCJvbkNsaWNrIiwiZGF0YS1yZXZlYWwiLCJhbmltYXRpb25EZWxheSIsInNwYW4iLCJoMyIsIm5hbWUiLCJzbGljZSIsImRlc2NyaXB0aW9uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/components/agent-selector.tsx\n"));
/***/ })
});