@moveo-ai/web-client 0.108.0 → 0.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +164 -69
  2. package/dist/63.min.js +2 -0
  3. package/dist/{329.min.js.LICENSE.txt → 63.min.js.LICENSE.txt} +1 -1
  4. package/dist/752.min.js +2 -0
  5. package/dist/{147.min.js.LICENSE.txt → 752.min.js.LICENSE.txt} +1 -1
  6. package/dist/882.min.js +1 -1
  7. package/dist/882.min.js.LICENSE.txt +1 -1
  8. package/dist/929.min.js +1 -1
  9. package/dist/929.min.js.LICENSE.txt +1 -1
  10. package/dist/audio-client.min.js +1 -1
  11. package/dist/audio-client.min.js.LICENSE.txt +20 -10
  12. package/dist/iframe.min.js +1 -1
  13. package/dist/iframe.min.js.LICENSE.txt +24 -27
  14. package/dist/index.html +1 -7
  15. package/dist/preview/index.html +16 -14
  16. package/dist/preview-telnyx/index.html +79 -0
  17. package/dist/preview.css.min.js +1 -1
  18. package/dist/preview.css.min.js.LICENSE.txt +1 -1
  19. package/dist/telnyx-client.min.js +1 -1
  20. package/dist/telnyx-client.min.js.LICENSE.txt +20 -10
  21. package/dist/web-client.min.js +1 -1
  22. package/dist/web-client.min.js.LICENSE.txt +1 -1
  23. package/dist/webrtc-client.min.js +1 -1
  24. package/dist/webrtc-client.min.js.LICENSE.txt +20 -10
  25. package/package.json +108 -99
  26. package/web-client.d.ts +152 -0
  27. package/dist/147.min.js +0 -2
  28. package/dist/147.min.js.map +0 -1
  29. package/dist/329.min.js +0 -2
  30. package/dist/329.min.js.map +0 -1
  31. package/dist/882.min.js.map +0 -1
  32. package/dist/929.min.js.map +0 -1
  33. package/dist/954.min.js +0 -2
  34. package/dist/954.min.js.LICENSE.txt +0 -6
  35. package/dist/954.min.js.map +0 -1
  36. package/dist/audio-client.min.js.map +0 -1
  37. package/dist/iframe.min.js.map +0 -1
  38. package/dist/iframe.v2.min.js +0 -2
  39. package/dist/iframe.v2.min.js.LICENSE.txt +0 -63
  40. package/dist/iframe.v2.min.js.map +0 -1
  41. package/dist/preview.css.min.js.map +0 -1
  42. package/dist/telnyx-client.min.js.map +0 -1
  43. package/dist/web-client.min.js.map +0 -1
  44. package/dist/webrtc-client.min.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-client.min.js","mappings":"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","sources":["webpack://MoveoAI/webpack/universalModuleDefinition","webpack://MoveoAI/./src/audio.css","webpack://MoveoAI/./node_modules/css-loader/dist/runtime/api.js","webpack://MoveoAI/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://MoveoAI/./node_modules/debug/src/browser.js","webpack://MoveoAI/./node_modules/debug/src/common.js","webpack://MoveoAI/./node_modules/ms/index.js","webpack://MoveoAI/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://MoveoAI/./node_modules/react-dom/client.js","webpack://MoveoAI/./node_modules/react-dom/index.js","webpack://MoveoAI/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://MoveoAI/./node_modules/react/cjs/react.production.min.js","webpack://MoveoAI/./node_modules/react/index.js","webpack://MoveoAI/./node_modules/react/jsx-runtime.js","webpack://MoveoAI/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://MoveoAI/./node_modules/scheduler/index.js","webpack://MoveoAI/./node_modules/sdp/sdp.js","webpack://MoveoAI/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://MoveoAI/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://MoveoAI/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://MoveoAI/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://MoveoAI/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://MoveoAI/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://MoveoAI/./node_modules/void-elements/index.js","webpack://MoveoAI/webpack/bootstrap","webpack://MoveoAI/webpack/runtime/compat get default export","webpack://MoveoAI/webpack/runtime/define property getters","webpack://MoveoAI/webpack/runtime/hasOwnProperty shorthand","webpack://MoveoAI/webpack/runtime/make namespace object","webpack://MoveoAI/webpack/runtime/nonce","webpack://MoveoAI/./src/controller/webrtc/config-errors.ts","webpack://MoveoAI/./src/controller/webrtc/config-client.ts","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/utils.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/safari/safari_shim.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/common_shim.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/adapter_factory.js","webpack://MoveoAI/./node_modules/webrtc-adapter/src/js/adapter_core.js","webpack://MoveoAI/./src/controller/shared/audio-level-monitor.ts","webpack://MoveoAI/./src/controller/webrtc/select-candidate-pair.ts","webpack://MoveoAI/./src/controller/webrtc/call-quality-monitor.ts","webpack://MoveoAI/./src/controller/webrtc/media-stall-detector.ts","webpack://MoveoAI/./src/controller/webrtc/signaling-client.ts","webpack://MoveoAI/./src/ts/webrtc.ts","webpack://MoveoAI/./src/controller/webrtc/webrtc-provider.ts","webpack://MoveoAI/./src/controller/shared/media-errors.ts","webpack://MoveoAI/./node_modules/shared/src/utils/mergeClasses.ts","webpack://MoveoAI/./node_modules/shared/src/utils/toPascalCase.ts","webpack://MoveoAI/./node_modules/shared/src/utils/toCamelCase.ts","webpack://MoveoAI/./node_modules/lucide-react/src/defaultAttributes.ts","webpack://MoveoAI/./node_modules/shared/src/utils/hasA11yProp.ts","webpack://MoveoAI/./node_modules/lucide-react/src/Icon.ts","webpack://MoveoAI/./node_modules/lucide-react/src/createLucideIcon.ts","webpack://MoveoAI/./node_modules/shared/src/utils/toKebabCase.ts","webpack://MoveoAI/./node_modules/lucide-react/src/icons/mic.ts","webpack://MoveoAI/./node_modules/lucide-react/src/icons/phone-off.ts","webpack://MoveoAI/./node_modules/html-parse-stringify/src/parse.js","webpack://MoveoAI/./node_modules/react-i18next/dist/es/utils.js","webpack://MoveoAI/./node_modules/react-i18next/dist/es/unescape.js","webpack://MoveoAI/./node_modules/react-i18next/dist/es/defaults.js","webpack://MoveoAI/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://MoveoAI/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://MoveoAI/./node_modules/react-i18next/dist/es/context.js","webpack://MoveoAI/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://MoveoAI/./src/config/constants.ts","webpack://MoveoAI/./src/util/utils.ts","webpack://MoveoAI/./src/newComponents/AudioWidget.tsx","webpack://MoveoAI/./src/controller/webrtc-controller.ts","webpack://MoveoAI/./node_modules/i18next/dist/esm/i18next.js","webpack://MoveoAI/./node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","webpack://MoveoAI/./src/i18n/audio.ts","webpack://MoveoAI/./src/audio.css?69f2","webpack://MoveoAI/./src/webrtc-preview.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"MoveoWebRTC\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MoveoWebRTC\"] = factory();\n\telse\n\t\troot[\"MoveoWebRTC\"] = factory();\n})(this, function() {\nreturn ","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap);\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-950:oklch(26.2% .051 172.552);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-600:oklch(55.8% .288 302.321);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-3xs:16rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-2xl:42rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-normal:0em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:Inter, system-ui, -apple-system, sans-serif}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-\\\\[-4px\\\\]{inset:-4px}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-3{top:calc(var(--spacing) * -3)}.-top-14{top:calc(var(--spacing) * -14)}.-top-\\\\[28px\\\\]{top:-28px}.top-0{top:calc(var(--spacing) * 0)}.top-1\\\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\\\[50\\\\%\\\\]{top:50%}.-right-0\\\\.5{right:calc(var(--spacing) * -.5)}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-auto{right:auto}.-bottom-3{bottom:calc(var(--spacing) * -3)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1{bottom:calc(var(--spacing) * 1)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-16{bottom:calc(var(--spacing) * 16)}.bottom-\\\\[calc\\\\(100\\\\%\\\\+40px\\\\)\\\\]{bottom:calc(100% + 40px)}.bottom-full{bottom:100%}.-left-2{left:calc(var(--spacing) * -2)}.left-0{left:calc(var(--spacing) * 0)}.left-1\\\\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.left-\\\\[50\\\\%\\\\]{left:50%}.z-0{z-index:0}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-1100{z-index:1100}.clear-both{clear:both}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-2{margin:calc(var(--spacing) * 2)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-5{margin-inline:calc(var(--spacing) * 5)}.mx-8{margin-inline:calc(var(--spacing) * 8)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\\\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\\\\[var\\\\(--moveo-new-header-height\\\\)\\\\]{margin-top:var(--moveo-new-header-height)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\\\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-9{margin-bottom:calc(var(--spacing) * 9)}.mb-20{margin-bottom:calc(var(--spacing) * 20)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-3\\\\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-full{width:100%;height:100%}.h-\\\\(--moveo-chat-height\\\\){height:var(--moveo-chat-height)}.h-1\\\\.5{height:calc(var(--spacing) * 1.5)}.h-2\\\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-40{height:calc(var(--spacing) * 40)}.h-45{height:calc(var(--spacing) * 45)}.h-96{height:calc(var(--spacing) * 96)}.h-\\\\[18px\\\\]{height:18px}.h-\\\\[28px\\\\]{height:28px}.h-\\\\[42px\\\\]{height:42px}.h-\\\\[44px\\\\]{height:44px}.h-\\\\[72px\\\\]{height:72px}.h-\\\\[78vh\\\\]{height:78vh}.h-\\\\[82px\\\\]{height:82px}.h-\\\\[222px\\\\]{height:222px}.h-\\\\[254px\\\\]{height:254px}.h-\\\\[282px\\\\]{height:282px}.h-\\\\[386px\\\\]{height:386px}.h-\\\\[calc\\\\(100\\\\%-44px\\\\)\\\\]{height:calc(100% - 44px)}.h-\\\\[var\\\\(--moveo-chat-height\\\\)\\\\]{height:var(--moveo-chat-height)}.h-\\\\[var\\\\(--moveo-modal-tall-height\\\\)\\\\]{height:var(--moveo-modal-tall-height)}.h-\\\\[var\\\\(--radix-select-trigger-height\\\\)\\\\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-\\\\(--radix-select-content-available-height\\\\){max-height:var(--radix-select-content-available-height)}.max-h-18{max-height:calc(var(--spacing) * 18)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-50{max-height:calc(var(--spacing) * 50)}.max-h-\\\\[60vh\\\\]{max-height:60vh}.max-h-\\\\[88px\\\\]{max-height:88px}.max-h-\\\\[400px\\\\]{max-height:400px}.max-h-\\\\[calc\\\\(100\\\\%-68px\\\\)\\\\]{max-height:calc(100% - 68px)}.max-h-\\\\[calc\\\\(100vh-16px\\\\)\\\\]{max-height:calc(100vh - 16px)}.max-h-\\\\[calc\\\\(100vh-80px\\\\)\\\\]{max-height:calc(100vh - 80px)}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-\\\\[calc\\\\(100\\\\%-44px\\\\)\\\\]{min-height:calc(100% - 44px)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-\\\\(--moveo-expanded-chat-width\\\\){width:var(--moveo-expanded-chat-width)}.w-1\\\\.5{width:calc(var(--spacing) * 1.5)}.w-2\\\\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3xs{width:var(--container-3xs)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-32{width:calc(var(--spacing) * 32)}.w-72{width:calc(var(--spacing) * 72)}.w-\\\\[2px\\\\]{width:2px}.w-\\\\[18px\\\\]{width:18px}.w-\\\\[28px\\\\]{width:28px}.w-\\\\[42px\\\\]{width:42px}.w-\\\\[328px\\\\]{width:328px}.w-\\\\[calc\\\\(100\\\\%\\\\+48px\\\\)\\\\]{width:calc(100% + 48px)}.w-\\\\[calc\\\\(100\\\\%-24px\\\\)\\\\]{width:calc(100% - 24px)}.w-\\\\[calc\\\\(100\\\\%-40px\\\\)\\\\]{width:calc(100% - 40px)}.w-\\\\[var\\\\(--moveo-chat-width\\\\)\\\\]{width:var(--moveo-chat-width)}.w-\\\\[var\\\\(--moveo-expanded-chat-width\\\\)\\\\]{width:var(--moveo-expanded-chat-width)}.w-\\\\[var\\\\(--moveo-modal-tall-width\\\\)\\\\]{width:var(--moveo-modal-tall-width)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-sm{width:var(--container-sm)}.w-xs{width:var(--container-xs)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-18{max-width:calc(var(--spacing) * 18)}.max-w-\\\\[18rem\\\\]{max-width:18rem}.max-w-\\\\[200px\\\\]{max-width:200px}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-\\\\[8rem\\\\]{min-width:8rem}.min-w-\\\\[156px\\\\]{min-width:156px}.min-w-\\\\[260px\\\\]{min-width:260px}.min-w-\\\\[var\\\\(--radix-select-trigger-width\\\\)\\\\]{min-width:var(--radix-select-trigger-width)}.min-w-auto{min-width:auto}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-\\\\[130px\\\\]{flex-basis:130px}.basis-\\\\[336px\\\\]{flex-basis:336px}.basis-\\\\[400px\\\\]{flex-basis:400px}.basis-full{flex-basis:100%}.origin-\\\\(--radix-popover-content-transform-origin\\\\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\\\\(--radix-select-content-transform-origin\\\\){transform-origin:var(--radix-select-content-transform-origin)}.origin-center{transform-origin:50%}.-translate-x-1\\\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-6{--tw-translate-x:calc(var(--spacing) * -6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-12{--tw-translate-x:calc(var(--spacing) * -12);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\\\\[-50\\\\%\\\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-0\\\\.5{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\\\\[-50\\\\%\\\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\\\\[fadeIn_0\\\\.3s_forwards\\\\]{animation:.3s forwards fadeIn}.animate-\\\\[slide-in-up_0\\\\.2s_ease-out\\\\]{animation:.2s ease-out slide-in-up}.animate-\\\\[typing_1\\\\.2s_ease-in-out_infinite\\\\]{animation:1.2s ease-in-out infinite typing}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\\\\[36px_16px_36px\\\\]{grid-template-columns:36px 16px 36px}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-\\\\[2px\\\\]{gap:2px}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\\\(--moveo-border-radius-base\\\\){border-radius:var(--moveo-border-radius-base)}.rounded-\\\\(--moveo-new-border-radius-base\\\\){border-radius:var(--moveo-new-border-radius-base)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\\\[4px\\\\]{border-radius:4px}.rounded-\\\\[inherit\\\\]{border-radius:inherit}.rounded-\\\\[var\\\\(--moveo-border-radius-base\\\\)\\\\]{border-radius:var(--moveo-border-radius-base)}.rounded-\\\\[var\\\\(--moveo-new-border-radius-base\\\\)\\\\]{border-radius:var(--moveo-new-border-radius-base)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-l-lg{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-emerald-200\\\\/60{border-color:#a4f4cf99}@supports (color:color-mix(in lab, red, red)){.border-emerald-200\\\\/60{border-color:color-mix(in oklab, var(--color-emerald-200) 60%, transparent)}}.border-emerald-500\\\\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\\\\/20{border-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-700{border-color:var(--color-gray-700)}.border-rose-200\\\\/60{border-color:#ffccd399}@supports (color:color-mix(in lab, red, red)){.border-rose-200\\\\/60{border-color:color-mix(in oklab, var(--color-rose-200) 60%, transparent)}}.border-sky-200\\\\/60{border-color:#b8e6fe99}@supports (color:color-mix(in lab, red, red)){.border-sky-200\\\\/60{border-color:color-mix(in oklab, var(--color-sky-200) 60%, transparent)}}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\\\\/80{border-color:#e2e8f0cc}@supports (color:color-mix(in lab, red, red)){.border-slate-200\\\\/80{border-color:color-mix(in oklab, var(--color-slate-200) 80%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-t-rose-400\\\\/60{border-top-color:#ff667f99}@supports (color:color-mix(in lab, red, red)){.border-t-rose-400\\\\/60{border-top-color:color-mix(in oklab, var(--color-rose-400) 60%, transparent)}}.border-t-sky-400\\\\/60{border-top-color:#00bcfe99}@supports (color:color-mix(in lab, red, red)){.border-t-sky-400\\\\/60{border-top-color:color-mix(in oklab, var(--color-sky-400) 60%, transparent)}}.border-t-sky-500\\\\/60{border-top-color:#00a5ef99}@supports (color:color-mix(in lab, red, red)){.border-t-sky-500\\\\/60{border-top-color:color-mix(in oklab, var(--color-sky-500) 60%, transparent)}}.border-t-transparent{border-top-color:#0000}.border-r-rose-300\\\\/30{border-right-color:#ffa2ae4d}@supports (color:color-mix(in lab, red, red)){.border-r-rose-300\\\\/30{border-right-color:color-mix(in oklab, var(--color-rose-300) 30%, transparent)}}.border-r-sky-300\\\\/30{border-right-color:#77d4ff4d}@supports (color:color-mix(in lab, red, red)){.border-r-sky-300\\\\/30{border-right-color:color-mix(in oklab, var(--color-sky-300) 30%, transparent)}}.border-r-sky-400\\\\/30{border-right-color:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.border-r-sky-400\\\\/30{border-right-color:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.border-b-transparent{border-bottom-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\\\\(--color-launcher-background\\\\,var\\\\(--color-accent\\\\)\\\\){background-color:var(--color-launcher-background,var(--color-accent))}.bg-\\\\(--color-opening-message-background\\\\,var\\\\(--color-accent\\\\)\\\\){background-color:var(--color-opening-message-background,var(--color-accent))}.bg-\\\\(--color-rating-background\\\\){background-color:var(--color-rating-background)}.bg-\\\\[var\\\\(--background\\\\)\\\\]{background-color:var(--background)}.bg-\\\\[var\\\\(--moveo-header-background\\\\)\\\\]{background-color:var(--moveo-header-background)}.bg-\\\\[var\\\\(--moveo-header-background\\\\,var\\\\(--color-accent\\\\)\\\\)\\\\]{background-color:var(--moveo-header-background,var(--color-accent))}.bg-\\\\[var\\\\(--nbg-bg\\\\)\\\\]{background-color:var(--nbg-bg)}.bg-\\\\[var\\\\(--text-03\\\\)\\\\]{background-color:var(--text-03)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-100\\\\/90{background-color:#fef3c6e6}@supports (color:color-mix(in lab, red, red)){.bg-amber-100\\\\/90{background-color:color-mix(in oklab, var(--color-amber-100) 90%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\\\\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\\\\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\\\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-emerald-50\\\\/80{background-color:#ecfdf5cc}@supports (color:color-mix(in lab, red, red)){.bg-emerald-50\\\\/80{background-color:color-mix(in oklab, var(--color-emerald-50) 80%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-50\\\\/80{background-color:#fff1f2cc}@supports (color:color-mix(in lab, red, red)){.bg-rose-50\\\\/80{background-color:color-mix(in oklab, var(--color-rose-50) 80%, transparent)}}.bg-sky-50\\\\/80{background-color:#f0f9ffcc}@supports (color:color-mix(in lab, red, red)){.bg-sky-50\\\\/80{background-color:color-mix(in oklab, var(--color-sky-50) 80%, transparent)}}.bg-sky-100{background-color:var(--color-sky-100)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-400{background-color:var(--color-slate-400)}.bg-transparent{background-color:#0000}.bg-white\\\\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\\\\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-white\\\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\\\\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-emerald-600{--tw-gradient-to:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-contain{background-size:contain}.bg-right{background-position:100%}.bg-no-repeat{background-repeat:no-repeat}.fill-\\\\(--color-launcher-background\\\\,var\\\\(--color-accent\\\\)\\\\){fill:var(--color-launcher-background,var(--color-accent))}.fill-\\\\(--color-launcher-foreground\\\\,var\\\\(--color-background\\\\)\\\\){fill:var(--color-launcher-foreground,var(--color-background))}.fill-sky-600{fill:var(--color-sky-600)}.fill-white{fill:var(--color-white)}.stroke-\\\\(--color-launcher-foreground\\\\,var\\\\(--color-background\\\\)\\\\){stroke:var(--color-launcher-foreground,var(--color-background))}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\\\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\\\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1\\\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\\\\[var\\\\(--moveo-new-header-height\\\\)\\\\]{padding-top:var(--moveo-new-header-height)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-14{padding-bottom:calc(var(--spacing) * 14)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.pb-\\\\[40px\\\\]{padding-bottom:40px}.pl-0{padding-left:calc(var(--spacing) * 0)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:Inter,system-ui,-apple-system,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\\\[0\\\\.8rem\\\\]{font-size:.8rem}.text-\\\\[0\\\\.65rem\\\\]{font-size:.65rem}.text-\\\\[10px\\\\]{font-size:10px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\\\[0\\\\.25em\\\\]{--tw-tracking:.25em;letter-spacing:.25em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.break-words,.wrap-break-word{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-\\\\(--color-launcher-foreground\\\\,var\\\\(--color-background\\\\)\\\\){color:var(--color-launcher-foreground,var(--color-background))}.text-\\\\(--color-link\\\\){color:var(--color-link)}.text-\\\\(--color-opening-message-foreground\\\\,var\\\\(--color-text-primary-foreground\\\\)\\\\){color:var(--color-opening-message-foreground,var(--color-text-primary-foreground))}.text-\\\\(--color-send-icon\\\\){color:var(--color-send-icon)}.text-\\\\[var\\\\(--color-link\\\\)\\\\]{color:var(--color-link)}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,var\\\\(--color-accent\\\\)\\\\)\\\\]{color:var(--moveo-header-text-color,var(--color-accent))}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,var\\\\(--color-element-primary-foreground\\\\)\\\\)\\\\]{color:var(--moveo-header-text-color,var(--color-element-primary-foreground))}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,var\\\\(--color-foreground\\\\)\\\\)\\\\]{color:var(--moveo-header-text-color,var(--color-foreground))}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,var\\\\(--color-text-primary-foreground\\\\)\\\\)\\\\]{color:var(--moveo-header-text-color,var(--color-text-primary-foreground))}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,white\\\\)\\\\]{color:var(--moveo-header-text-color,white)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-current{color:currentColor}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-sky-500{color:var(--color-sky-500)}.text-sky-600{color:var(--color-sky-600)}.text-sky-700{color:var(--color-sky-700)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-\\\\[0_2px_8px_rgba\\\\(0\\\\,0\\\\,0\\\\,0\\\\.15\\\\)\\\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[0_2px_8px_rgba\\\\(14\\\\,165\\\\,233\\\\,0\\\\.12\\\\)\\\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#0ea5e91f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[0_2px_8px_rgba\\\\(16\\\\,185\\\\,129\\\\,0\\\\.15\\\\)\\\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#10b98126);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[0_2px_8px_rgba\\\\(244\\\\,63\\\\,94\\\\,0\\\\.12\\\\)\\\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#f43f5e1f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[0_4px_14px_rgba\\\\(16\\\\,185\\\\,129\\\\,0\\\\.25\\\\)\\\\]{--tw-shadow:0 4px 14px var(--tw-shadow-color,#10b98140);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[var\\\\(--moveo-shadow-bubble\\\\)\\\\]{--tw-shadow:var(--moveo-shadow-bubble);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-amber-200\\\\/70{--tw-shadow-color:#fee685b3}@supports (color:color-mix(in lab, red, red)){.shadow-amber-200\\\\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-200) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-amber-300{--tw-ring-color:var(--color-amber-300)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\\\\[20px\\\\]{--tw-backdrop-blur:blur(20px);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\\\[color\\\\,box-shadow\\\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\\\[width\\\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.delay-500{transition-delay:.5s}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-250{--tw-duration:.25s;transition-duration:.25s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-2000{--tw-duration:2s;transition-duration:2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.\\\\[animation-delay\\\\:0\\\\.2s\\\\]{animation-delay:.2s}.\\\\[animation-delay\\\\:0\\\\.4s\\\\]{animation-delay:.4s}.\\\\[animation-delay\\\\:0s\\\\]{animation-delay:0s}.\\\\[animation-fill-mode\\\\:forwards\\\\]{animation-fill-mode:forwards}.\\\\[scrollbar-color\\\\:rgba\\\\(0\\\\,0\\\\,0\\\\,0\\\\.15\\\\)_transparent\\\\]{scrollbar-color:#00000026 transparent}.\\\\[scrollbar-width\\\\:thin\\\\]{scrollbar-width:thin}@media (hover:hover){.group-hover\\\\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\\\\:opacity-100:is(:where(.group):hover *){opacity:1}}.file\\\\:inline-flex::file-selector-button{display:inline-flex}.file\\\\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\\\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\\\\:bg-transparent::file-selector-button{background-color:#0000}.file\\\\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\\\\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@media (hover:hover){.hover\\\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\\\:scale-\\\\[1\\\\.05\\\\]:hover{scale:1.05}.hover\\\\:border-red-500\\\\/20:hover{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\\\\:border-red-500\\\\/20:hover{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.hover\\\\:bg-amber-200:hover{background-color:var(--color-amber-200)}.hover\\\\:bg-gray-700\\\\/50:hover{background-color:#36415380}@supports (color:color-mix(in lab, red, red)){.hover\\\\:bg-gray-700\\\\/50:hover{background-color:color-mix(in oklab, var(--color-gray-700) 50%, transparent)}}.hover\\\\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\\\\:bg-sky-200:hover{background-color:var(--color-sky-200)}.hover\\\\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\\\\:bg-white\\\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\\\\:bg-white\\\\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\\\\:bg-gradient-to-br:hover{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.hover\\\\:from-red-500:hover{--tw-gradient-from:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\\\\:to-red-600:hover{--tw-gradient-to:var(--color-red-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\\\\:text-\\\\[var\\\\(--color-accent\\\\)\\\\]:hover{color:var(--color-accent)}.hover\\\\:text-white:hover{color:var(--color-white)}.hover\\\\:underline:hover{text-decoration-line:underline}.hover\\\\:shadow-\\\\[0_6px_20px_rgba\\\\(16\\\\,185\\\\,129\\\\,0\\\\.35\\\\)\\\\]:hover{--tw-shadow:0 6px 20px var(--tw-shadow-color,#10b98159);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:shadow-\\\\[0_6px_20px_rgba\\\\(239\\\\,68\\\\,68\\\\,0\\\\.35\\\\)\\\\]:hover{--tw-shadow:0 6px 20px var(--tw-shadow-color,#ef444459);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:brightness-\\\\[0\\\\.92\\\\]:hover{--tw-brightness:brightness(.92);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\\\\:backdrop-blur-sm:hover{--tw-backdrop-blur:blur(var(--blur-sm));backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}.focus-visible\\\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\\\:ring-\\\\[3px\\\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\\\:ring-amber-400:focus-visible{--tw-ring-color:var(--color-amber-400)}.focus-visible\\\\:ring-sky-400:focus-visible{--tw-ring-color:var(--color-sky-400)}.focus-visible\\\\:ring-slate-400:focus-visible{--tw-ring-color:var(--color-slate-400)}.focus-visible\\\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\\\:ring-offset-white:focus-visible{--tw-ring-offset-color:var(--color-white)}.focus-visible\\\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\\\\:scale-\\\\[0\\\\.98\\\\]:active{scale:.98}.disabled\\\\:pointer-events-none:disabled{pointer-events:none}.disabled\\\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\\\:opacity-50:disabled{opacity:.5}.data-\\\\[disabled\\\\]\\\\:pointer-events-none[data-disabled]{pointer-events:none}.data-\\\\[disabled\\\\]\\\\:opacity-50[data-disabled]{opacity:.5}.data-\\\\[placeholder\\\\]\\\\:text-sm[data-placeholder]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\\\\[placeholder\\\\]\\\\:leading-5[data-placeholder]{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.data-\\\\[placeholder\\\\]\\\\:font-normal[data-placeholder]{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.data-\\\\[side\\\\=bottom\\\\]\\\\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\\\[side\\\\=left\\\\]\\\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\\\[side\\\\=right\\\\]\\\\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\\\[side\\\\=top\\\\]\\\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.\\\\*\\\\:data-\\\\[slot\\\\=select-value\\\\]\\\\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\\\\*\\\\:data-\\\\[slot\\\\=select-value\\\\]\\\\:flex>*)[data-slot=select-value]{display:flex}:is(.\\\\*\\\\:data-\\\\[slot\\\\=select-value\\\\]\\\\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\\\\*\\\\:data-\\\\[slot\\\\=select-value\\\\]\\\\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}@media (min-width:40rem){.sm\\\\:block{display:block}.sm\\\\:flex-row{flex-direction:row}.sm\\\\:justify-end{justify-content:flex-end}.sm\\\\:text-left{text-align:left}.sm\\\\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\\\\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:48rem){.md\\\\:max-h-\\\\[70vh\\\\]{max-height:70vh}.md\\\\:flex-row{flex-direction:row}.md\\\\:items-center{align-items:center}.md\\\\:items-start{align-items:flex-start}.md\\\\:px-12{padding-inline:calc(var(--spacing) * 12)}.md\\\\:pb-16{padding-bottom:calc(var(--spacing) * 16)}.md\\\\:text-left{text-align:left}.md\\\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\\\\:gap-16{gap:calc(var(--spacing) * 16)}}.dark\\\\:border-emerald-500\\\\/30:is(.dark *){border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:border-emerald-500\\\\/30:is(.dark *){border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.dark\\\\:border-rose-500\\\\/30:is(.dark *){border-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:border-rose-500\\\\/30:is(.dark *){border-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.dark\\\\:border-sky-500\\\\/30:is(.dark *){border-color:#00a5ef4d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:border-sky-500\\\\/30:is(.dark *){border-color:color-mix(in oklab, var(--color-sky-500) 30%, transparent)}}.dark\\\\:border-slate-700\\\\/50:is(.dark *){border-color:#31415880}@supports (color:color-mix(in lab, red, red)){.dark\\\\:border-slate-700\\\\/50:is(.dark *){border-color:color-mix(in oklab, var(--color-slate-700) 50%, transparent)}}.dark\\\\:bg-amber-500\\\\/15:is(.dark *){background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-amber-500\\\\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.dark\\\\:bg-amber-500\\\\/20:is(.dark *){background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-amber-500\\\\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.dark\\\\:bg-emerald-500\\\\/15:is(.dark *){background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-emerald-500\\\\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.dark\\\\:bg-rose-500\\\\/15:is(.dark *){background-color:#ff235726}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-rose-500\\\\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.dark\\\\:bg-sky-500\\\\/15:is(.dark *){background-color:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-sky-500\\\\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.dark\\\\:bg-sky-500\\\\/20:is(.dark *){background-color:#00a5ef33}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-sky-500\\\\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-sky-500) 20%, transparent)}}.dark\\\\:bg-slate-700\\\\/50:is(.dark *){background-color:#31415880}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-slate-700\\\\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-slate-700) 50%, transparent)}}.dark\\\\:bg-slate-900\\\\/80:is(.dark *){background-color:#0f172bcc}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-slate-900\\\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-slate-900) 80%, transparent)}}.dark\\\\:from-emerald-600:is(.dark *){--tw-gradient-from:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\\\\:to-emerald-700:is(.dark *){--tw-gradient-to:var(--color-emerald-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\\\\:to-slate-950:is(.dark *){--tw-gradient-to:var(--color-slate-950);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\\\\:fill-sky-300:is(.dark *){fill:var(--color-sky-300)}.dark\\\\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\\\\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\\\\:text-emerald-300:is(.dark *){color:var(--color-emerald-300)}.dark\\\\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\\\\:text-rose-300:is(.dark *){color:var(--color-rose-300)}.dark\\\\:text-rose-400:is(.dark *){color:var(--color-rose-400)}.dark\\\\:text-sky-300:is(.dark *){color:var(--color-sky-300)}.dark\\\\:text-sky-400:is(.dark *){color:var(--color-sky-400)}.dark\\\\:text-slate-100:is(.dark *){color:var(--color-slate-100)}.dark\\\\:text-slate-200:is(.dark *){color:var(--color-slate-200)}.dark\\\\:text-slate-300:is(.dark *){color:var(--color-slate-300)}.dark\\\\:text-slate-400:is(.dark *){color:var(--color-slate-400)}.dark\\\\:shadow-xl:is(.dark *){--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\\\\:shadow-slate-950\\\\/30:is(.dark *){--tw-shadow-color:#0206184d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:shadow-slate-950\\\\/30:is(.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-950) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\\\\:ring-amber-400\\\\/40:is(.dark *){--tw-ring-color:#fcbb0066}@supports (color:color-mix(in lab, red, red)){.dark\\\\:ring-amber-400\\\\/40:is(.dark *){--tw-ring-color:color-mix(in oklab, var(--color-amber-400) 40%, transparent)}}@media (hover:hover){.dark\\\\:hover\\\\:bg-amber-500\\\\/30:is(.dark *):hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:hover\\\\:bg-amber-500\\\\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.dark\\\\:hover\\\\:bg-rose-500\\\\/25:is(.dark *):hover{background-color:#ff235740}@supports (color:color-mix(in lab, red, red)){.dark\\\\:hover\\\\:bg-rose-500\\\\/25:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-rose-500) 25%, transparent)}}.dark\\\\:hover\\\\:bg-sky-500\\\\/30:is(.dark *):hover{background-color:#00a5ef4d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:hover\\\\:bg-sky-500\\\\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-sky-500) 30%, transparent)}}.dark\\\\:hover\\\\:bg-slate-700:is(.dark *):hover{background-color:var(--color-slate-700)}.dark\\\\:hover\\\\:from-red-600:is(.dark *):hover{--tw-gradient-from:var(--color-red-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\\\\:hover\\\\:to-red-700:is(.dark *):hover{--tw-gradient-to:var(--color-red-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}.dark\\\\:focus-visible\\\\:ring-offset-slate-950:is(.dark *):focus-visible{--tw-ring-offset-color:var(--color-slate-950)}.\\\\[\\\\&_a\\\\]\\\\:cursor-pointer a{cursor:pointer}.\\\\[\\\\&_a\\\\:hover\\\\]\\\\:underline a:hover{text-decoration-line:underline}.\\\\[\\\\&_a\\\\>\\\\*\\\\]\\\\:pointer-events-none a>*{pointer-events:none}.\\\\[\\\\&_p\\\\]\\\\:max-w-md p{max-width:var(--container-md)}.\\\\[\\\\&_svg\\\\]\\\\:pointer-events-none svg{pointer-events:none}.\\\\[\\\\&_svg\\\\]\\\\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\\\[\\\\&_svg\\\\]\\\\:h-6 svg{height:calc(var(--spacing) * 6)}.\\\\[\\\\&_svg\\\\]\\\\:w-6 svg{width:calc(var(--spacing) * 6)}.\\\\[\\\\&_svg\\\\]\\\\:flex-shrink-0 svg,.\\\\[\\\\&_svg\\\\]\\\\:shrink-0 svg{flex-shrink:0}.\\\\[\\\\&_svg\\\\:not\\\\(\\\\[class\\\\*\\\\=\\\\'size-\\\\'\\\\]\\\\)\\\\]\\\\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\\\\*\\\\:\\\\[span\\\\]\\\\:last\\\\:flex>*):is(span):last-child{display:flex}:is(.\\\\*\\\\:\\\\[span\\\\]\\\\:last\\\\:items-center>*):is(span):last-child{align-items:center}:is(.\\\\*\\\\:\\\\[span\\\\]\\\\:last\\\\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}}@property --tw-translate-x{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:\\\"*\\\";inherits:false}@property --tw-rotate-y{syntax:\\\"*\\\";inherits:false}@property --tw-rotate-z{syntax:\\\"*\\\";inherits:false}@property --tw-skew-x{syntax:\\\"*\\\";inherits:false}@property --tw-skew-y{syntax:\\\"*\\\";inherits:false}@property --tw-space-y-reverse{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\\\"*\\\";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:\\\"*\\\";inherits:false}@property --tw-gradient-from{syntax:\\\"<color>\\\";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:\\\"<color>\\\";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:\\\"<color>\\\";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:\\\"*\\\";inherits:false}@property --tw-gradient-via-stops{syntax:\\\"*\\\";inherits:false}@property --tw-gradient-from-position{syntax:\\\"<length-percentage>\\\";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:\\\"<length-percentage>\\\";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:\\\"<length-percentage>\\\";inherits:false;initial-value:100%}@property --tw-leading{syntax:\\\"*\\\";inherits:false}@property --tw-font-weight{syntax:\\\"*\\\";inherits:false}@property --tw-tracking{syntax:\\\"*\\\";inherits:false}@property --tw-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\\\"*\\\";inherits:false}@property --tw-shadow-alpha{syntax:\\\"<percentage>\\\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\\\"*\\\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\\\"<percentage>\\\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\\\"*\\\";inherits:false}@property --tw-ring-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\\\"*\\\";inherits:false}@property --tw-inset-ring-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\\\"*\\\";inherits:false}@property --tw-ring-offset-width{syntax:\\\"<length>\\\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\\\"*\\\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\\\"*\\\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\\\"*\\\";inherits:false}@property --tw-brightness{syntax:\\\"*\\\";inherits:false}@property --tw-contrast{syntax:\\\"*\\\";inherits:false}@property --tw-grayscale{syntax:\\\"*\\\";inherits:false}@property --tw-hue-rotate{syntax:\\\"*\\\";inherits:false}@property --tw-invert{syntax:\\\"*\\\";inherits:false}@property --tw-opacity{syntax:\\\"*\\\";inherits:false}@property --tw-saturate{syntax:\\\"*\\\";inherits:false}@property --tw-sepia{syntax:\\\"*\\\";inherits:false}@property --tw-drop-shadow{syntax:\\\"*\\\";inherits:false}@property --tw-drop-shadow-color{syntax:\\\"*\\\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\\\"<percentage>\\\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-blur{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-brightness{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-contrast{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-grayscale{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-invert{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-opacity{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-saturate{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-sepia{syntax:\\\"*\\\";inherits:false}@property --tw-duration{syntax:\\\"*\\\";inherits:false}@property --tw-ease{syntax:\\\"*\\\";inherits:false}@property --tw-scale-x{syntax:\\\"*\\\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\\\"*\\\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\\\"*\\\";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/audio.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\\n@import \\\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap\\\";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-950:oklch(26.2% .051 172.552);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-600:oklch(55.8% .288 302.321);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-3xs:16rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-2xl:42rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-normal:0em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:Inter, system-ui, -apple-system, sans-serif}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-\\\\[-4px\\\\]{inset:-4px}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-3{top:calc(var(--spacing) * -3)}.-top-14{top:calc(var(--spacing) * -14)}.-top-\\\\[28px\\\\]{top:-28px}.top-0{top:calc(var(--spacing) * 0)}.top-1\\\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\\\[50\\\\%\\\\]{top:50%}.-right-0\\\\.5{right:calc(var(--spacing) * -.5)}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-auto{right:auto}.-bottom-3{bottom:calc(var(--spacing) * -3)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1{bottom:calc(var(--spacing) * 1)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-16{bottom:calc(var(--spacing) * 16)}.bottom-\\\\[calc\\\\(100\\\\%\\\\+40px\\\\)\\\\]{bottom:calc(100% + 40px)}.bottom-full{bottom:100%}.-left-2{left:calc(var(--spacing) * -2)}.left-0{left:calc(var(--spacing) * 0)}.left-1\\\\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.left-\\\\[50\\\\%\\\\]{left:50%}.z-0{z-index:0}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-1100{z-index:1100}.clear-both{clear:both}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-2{margin:calc(var(--spacing) * 2)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-5{margin-inline:calc(var(--spacing) * 5)}.mx-8{margin-inline:calc(var(--spacing) * 8)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\\\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\\\\[var\\\\(--moveo-new-header-height\\\\)\\\\]{margin-top:var(--moveo-new-header-height)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\\\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-9{margin-bottom:calc(var(--spacing) * 9)}.mb-20{margin-bottom:calc(var(--spacing) * 20)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-3\\\\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-full{width:100%;height:100%}.h-\\\\(--moveo-chat-height\\\\){height:var(--moveo-chat-height)}.h-1\\\\.5{height:calc(var(--spacing) * 1.5)}.h-2\\\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-40{height:calc(var(--spacing) * 40)}.h-45{height:calc(var(--spacing) * 45)}.h-96{height:calc(var(--spacing) * 96)}.h-\\\\[18px\\\\]{height:18px}.h-\\\\[28px\\\\]{height:28px}.h-\\\\[42px\\\\]{height:42px}.h-\\\\[44px\\\\]{height:44px}.h-\\\\[72px\\\\]{height:72px}.h-\\\\[78vh\\\\]{height:78vh}.h-\\\\[82px\\\\]{height:82px}.h-\\\\[222px\\\\]{height:222px}.h-\\\\[254px\\\\]{height:254px}.h-\\\\[282px\\\\]{height:282px}.h-\\\\[386px\\\\]{height:386px}.h-\\\\[calc\\\\(100\\\\%-44px\\\\)\\\\]{height:calc(100% - 44px)}.h-\\\\[var\\\\(--moveo-chat-height\\\\)\\\\]{height:var(--moveo-chat-height)}.h-\\\\[var\\\\(--moveo-modal-tall-height\\\\)\\\\]{height:var(--moveo-modal-tall-height)}.h-\\\\[var\\\\(--radix-select-trigger-height\\\\)\\\\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-\\\\(--radix-select-content-available-height\\\\){max-height:var(--radix-select-content-available-height)}.max-h-18{max-height:calc(var(--spacing) * 18)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-50{max-height:calc(var(--spacing) * 50)}.max-h-\\\\[60vh\\\\]{max-height:60vh}.max-h-\\\\[88px\\\\]{max-height:88px}.max-h-\\\\[400px\\\\]{max-height:400px}.max-h-\\\\[calc\\\\(100\\\\%-68px\\\\)\\\\]{max-height:calc(100% - 68px)}.max-h-\\\\[calc\\\\(100vh-16px\\\\)\\\\]{max-height:calc(100vh - 16px)}.max-h-\\\\[calc\\\\(100vh-80px\\\\)\\\\]{max-height:calc(100vh - 80px)}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-\\\\[calc\\\\(100\\\\%-44px\\\\)\\\\]{min-height:calc(100% - 44px)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-\\\\(--moveo-expanded-chat-width\\\\){width:var(--moveo-expanded-chat-width)}.w-1\\\\.5{width:calc(var(--spacing) * 1.5)}.w-2\\\\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3xs{width:var(--container-3xs)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-32{width:calc(var(--spacing) * 32)}.w-72{width:calc(var(--spacing) * 72)}.w-\\\\[2px\\\\]{width:2px}.w-\\\\[18px\\\\]{width:18px}.w-\\\\[28px\\\\]{width:28px}.w-\\\\[42px\\\\]{width:42px}.w-\\\\[328px\\\\]{width:328px}.w-\\\\[calc\\\\(100\\\\%\\\\+48px\\\\)\\\\]{width:calc(100% + 48px)}.w-\\\\[calc\\\\(100\\\\%-24px\\\\)\\\\]{width:calc(100% - 24px)}.w-\\\\[calc\\\\(100\\\\%-40px\\\\)\\\\]{width:calc(100% - 40px)}.w-\\\\[var\\\\(--moveo-chat-width\\\\)\\\\]{width:var(--moveo-chat-width)}.w-\\\\[var\\\\(--moveo-expanded-chat-width\\\\)\\\\]{width:var(--moveo-expanded-chat-width)}.w-\\\\[var\\\\(--moveo-modal-tall-width\\\\)\\\\]{width:var(--moveo-modal-tall-width)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-sm{width:var(--container-sm)}.w-xs{width:var(--container-xs)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-18{max-width:calc(var(--spacing) * 18)}.max-w-\\\\[18rem\\\\]{max-width:18rem}.max-w-\\\\[200px\\\\]{max-width:200px}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-\\\\[8rem\\\\]{min-width:8rem}.min-w-\\\\[156px\\\\]{min-width:156px}.min-w-\\\\[260px\\\\]{min-width:260px}.min-w-\\\\[var\\\\(--radix-select-trigger-width\\\\)\\\\]{min-width:var(--radix-select-trigger-width)}.min-w-auto{min-width:auto}.min-w-fit{min-width:fit-content}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-\\\\[130px\\\\]{flex-basis:130px}.basis-\\\\[336px\\\\]{flex-basis:336px}.basis-\\\\[400px\\\\]{flex-basis:400px}.basis-full{flex-basis:100%}.origin-\\\\(--radix-popover-content-transform-origin\\\\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\\\\(--radix-select-content-transform-origin\\\\){transform-origin:var(--radix-select-content-transform-origin)}.origin-center{transform-origin:50%}.-translate-x-1\\\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-6{--tw-translate-x:calc(var(--spacing) * -6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-12{--tw-translate-x:calc(var(--spacing) * -12);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\\\\[-50\\\\%\\\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-0\\\\.5{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\\\\[-50\\\\%\\\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\\\\[fadeIn_0\\\\.3s_forwards\\\\]{animation:.3s forwards fadeIn}.animate-\\\\[slide-in-up_0\\\\.2s_ease-out\\\\]{animation:.2s ease-out slide-in-up}.animate-\\\\[typing_1\\\\.2s_ease-in-out_infinite\\\\]{animation:1.2s ease-in-out infinite typing}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\\\\[36px_16px_36px\\\\]{grid-template-columns:36px 16px 36px}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-\\\\[2px\\\\]{gap:2px}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\\\(--moveo-border-radius-base\\\\){border-radius:var(--moveo-border-radius-base)}.rounded-\\\\(--moveo-new-border-radius-base\\\\){border-radius:var(--moveo-new-border-radius-base)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\\\[4px\\\\]{border-radius:4px}.rounded-\\\\[inherit\\\\]{border-radius:inherit}.rounded-\\\\[var\\\\(--moveo-border-radius-base\\\\)\\\\]{border-radius:var(--moveo-border-radius-base)}.rounded-\\\\[var\\\\(--moveo-new-border-radius-base\\\\)\\\\]{border-radius:var(--moveo-new-border-radius-base)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-l-lg{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-emerald-200\\\\/60{border-color:#a4f4cf99}@supports (color:color-mix(in lab, red, red)){.border-emerald-200\\\\/60{border-color:color-mix(in oklab, var(--color-emerald-200) 60%, transparent)}}.border-emerald-500\\\\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\\\\/20{border-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-700{border-color:var(--color-gray-700)}.border-rose-200\\\\/60{border-color:#ffccd399}@supports (color:color-mix(in lab, red, red)){.border-rose-200\\\\/60{border-color:color-mix(in oklab, var(--color-rose-200) 60%, transparent)}}.border-sky-200\\\\/60{border-color:#b8e6fe99}@supports (color:color-mix(in lab, red, red)){.border-sky-200\\\\/60{border-color:color-mix(in oklab, var(--color-sky-200) 60%, transparent)}}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\\\\/80{border-color:#e2e8f0cc}@supports (color:color-mix(in lab, red, red)){.border-slate-200\\\\/80{border-color:color-mix(in oklab, var(--color-slate-200) 80%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-t-rose-400\\\\/60{border-top-color:#ff667f99}@supports (color:color-mix(in lab, red, red)){.border-t-rose-400\\\\/60{border-top-color:color-mix(in oklab, var(--color-rose-400) 60%, transparent)}}.border-t-sky-400\\\\/60{border-top-color:#00bcfe99}@supports (color:color-mix(in lab, red, red)){.border-t-sky-400\\\\/60{border-top-color:color-mix(in oklab, var(--color-sky-400) 60%, transparent)}}.border-t-sky-500\\\\/60{border-top-color:#00a5ef99}@supports (color:color-mix(in lab, red, red)){.border-t-sky-500\\\\/60{border-top-color:color-mix(in oklab, var(--color-sky-500) 60%, transparent)}}.border-t-transparent{border-top-color:#0000}.border-r-rose-300\\\\/30{border-right-color:#ffa2ae4d}@supports (color:color-mix(in lab, red, red)){.border-r-rose-300\\\\/30{border-right-color:color-mix(in oklab, var(--color-rose-300) 30%, transparent)}}.border-r-sky-300\\\\/30{border-right-color:#77d4ff4d}@supports (color:color-mix(in lab, red, red)){.border-r-sky-300\\\\/30{border-right-color:color-mix(in oklab, var(--color-sky-300) 30%, transparent)}}.border-r-sky-400\\\\/30{border-right-color:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.border-r-sky-400\\\\/30{border-right-color:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.border-b-transparent{border-bottom-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\\\\(--color-launcher-background\\\\,var\\\\(--color-accent\\\\)\\\\){background-color:var(--color-launcher-background,var(--color-accent))}.bg-\\\\(--color-opening-message-background\\\\,var\\\\(--color-accent\\\\)\\\\){background-color:var(--color-opening-message-background,var(--color-accent))}.bg-\\\\(--color-rating-background\\\\){background-color:var(--color-rating-background)}.bg-\\\\[var\\\\(--background\\\\)\\\\]{background-color:var(--background)}.bg-\\\\[var\\\\(--moveo-header-background\\\\)\\\\]{background-color:var(--moveo-header-background)}.bg-\\\\[var\\\\(--moveo-header-background\\\\,var\\\\(--color-accent\\\\)\\\\)\\\\]{background-color:var(--moveo-header-background,var(--color-accent))}.bg-\\\\[var\\\\(--nbg-bg\\\\)\\\\]{background-color:var(--nbg-bg)}.bg-\\\\[var\\\\(--text-03\\\\)\\\\]{background-color:var(--text-03)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-100\\\\/90{background-color:#fef3c6e6}@supports (color:color-mix(in lab, red, red)){.bg-amber-100\\\\/90{background-color:color-mix(in oklab, var(--color-amber-100) 90%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\\\\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\\\\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\\\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-emerald-50\\\\/80{background-color:#ecfdf5cc}@supports (color:color-mix(in lab, red, red)){.bg-emerald-50\\\\/80{background-color:color-mix(in oklab, var(--color-emerald-50) 80%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-50\\\\/80{background-color:#fff1f2cc}@supports (color:color-mix(in lab, red, red)){.bg-rose-50\\\\/80{background-color:color-mix(in oklab, var(--color-rose-50) 80%, transparent)}}.bg-sky-50\\\\/80{background-color:#f0f9ffcc}@supports (color:color-mix(in lab, red, red)){.bg-sky-50\\\\/80{background-color:color-mix(in oklab, var(--color-sky-50) 80%, transparent)}}.bg-sky-100{background-color:var(--color-sky-100)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-400{background-color:var(--color-slate-400)}.bg-transparent{background-color:#0000}.bg-white\\\\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\\\\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-white\\\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\\\\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-emerald-600{--tw-gradient-to:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-contain{background-size:contain}.bg-right{background-position:100%}.bg-no-repeat{background-repeat:no-repeat}.fill-\\\\(--color-launcher-background\\\\,var\\\\(--color-accent\\\\)\\\\){fill:var(--color-launcher-background,var(--color-accent))}.fill-\\\\(--color-launcher-foreground\\\\,var\\\\(--color-background\\\\)\\\\){fill:var(--color-launcher-foreground,var(--color-background))}.fill-sky-600{fill:var(--color-sky-600)}.fill-white{fill:var(--color-white)}.stroke-\\\\(--color-launcher-foreground\\\\,var\\\\(--color-background\\\\)\\\\){stroke:var(--color-launcher-foreground,var(--color-background))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\\\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\\\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1\\\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\\\\[var\\\\(--moveo-new-header-height\\\\)\\\\]{padding-top:var(--moveo-new-header-height)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-14{padding-bottom:calc(var(--spacing) * 14)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.pb-\\\\[40px\\\\]{padding-bottom:40px}.pl-0{padding-left:calc(var(--spacing) * 0)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:Inter,system-ui,-apple-system,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\\\[0\\\\.8rem\\\\]{font-size:.8rem}.text-\\\\[0\\\\.65rem\\\\]{font-size:.65rem}.text-\\\\[10px\\\\]{font-size:10px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\\\[0\\\\.25em\\\\]{--tw-tracking:.25em;letter-spacing:.25em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.break-words,.wrap-break-word{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-\\\\(--color-launcher-foreground\\\\,var\\\\(--color-background\\\\)\\\\){color:var(--color-launcher-foreground,var(--color-background))}.text-\\\\(--color-link\\\\){color:var(--color-link)}.text-\\\\(--color-opening-message-foreground\\\\,var\\\\(--color-text-primary-foreground\\\\)\\\\){color:var(--color-opening-message-foreground,var(--color-text-primary-foreground))}.text-\\\\(--color-send-icon\\\\){color:var(--color-send-icon)}.text-\\\\[var\\\\(--color-link\\\\)\\\\]{color:var(--color-link)}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,var\\\\(--color-accent\\\\)\\\\)\\\\]{color:var(--moveo-header-text-color,var(--color-accent))}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,var\\\\(--color-element-primary-foreground\\\\)\\\\)\\\\]{color:var(--moveo-header-text-color,var(--color-element-primary-foreground))}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,var\\\\(--color-foreground\\\\)\\\\)\\\\]{color:var(--moveo-header-text-color,var(--color-foreground))}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,var\\\\(--color-text-primary-foreground\\\\)\\\\)\\\\]{color:var(--moveo-header-text-color,var(--color-text-primary-foreground))}.text-\\\\[var\\\\(--moveo-header-text-color\\\\,white\\\\)\\\\]{color:var(--moveo-header-text-color,white)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-current{color:currentColor}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-sky-500{color:var(--color-sky-500)}.text-sky-600{color:var(--color-sky-600)}.text-sky-700{color:var(--color-sky-700)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-\\\\[0_2px_8px_rgba\\\\(0\\\\,0\\\\,0\\\\,0\\\\.15\\\\)\\\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[0_2px_8px_rgba\\\\(14\\\\,165\\\\,233\\\\,0\\\\.12\\\\)\\\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#0ea5e91f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[0_2px_8px_rgba\\\\(16\\\\,185\\\\,129\\\\,0\\\\.15\\\\)\\\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#10b98126);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[0_2px_8px_rgba\\\\(244\\\\,63\\\\,94\\\\,0\\\\.12\\\\)\\\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#f43f5e1f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[0_4px_14px_rgba\\\\(16\\\\,185\\\\,129\\\\,0\\\\.25\\\\)\\\\]{--tw-shadow:0 4px 14px var(--tw-shadow-color,#10b98140);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\\\[var\\\\(--moveo-shadow-bubble\\\\)\\\\]{--tw-shadow:var(--moveo-shadow-bubble);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-amber-200\\\\/70{--tw-shadow-color:#fee685b3}@supports (color:color-mix(in lab, red, red)){.shadow-amber-200\\\\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-200) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-amber-300{--tw-ring-color:var(--color-amber-300)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\\\\[20px\\\\]{--tw-backdrop-blur:blur(20px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\\\[color\\\\,box-shadow\\\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\\\[width\\\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.delay-500{transition-delay:.5s}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-250{--tw-duration:.25s;transition-duration:.25s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-2000{--tw-duration:2s;transition-duration:2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\\\[animation-delay\\\\:0\\\\.2s\\\\]{animation-delay:.2s}.\\\\[animation-delay\\\\:0\\\\.4s\\\\]{animation-delay:.4s}.\\\\[animation-delay\\\\:0s\\\\]{animation-delay:0s}.\\\\[animation-fill-mode\\\\:forwards\\\\]{animation-fill-mode:forwards}.\\\\[scrollbar-color\\\\:rgba\\\\(0\\\\,0\\\\,0\\\\,0\\\\.15\\\\)_transparent\\\\]{scrollbar-color:#00000026 transparent}.\\\\[scrollbar-width\\\\:thin\\\\]{scrollbar-width:thin}@media (hover:hover){.group-hover\\\\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\\\\:opacity-100:is(:where(.group):hover *){opacity:1}}.file\\\\:inline-flex::file-selector-button{display:inline-flex}.file\\\\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\\\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\\\\:bg-transparent::file-selector-button{background-color:#0000}.file\\\\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\\\\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@media (hover:hover){.hover\\\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\\\:scale-\\\\[1\\\\.05\\\\]:hover{scale:1.05}.hover\\\\:border-red-500\\\\/20:hover{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\\\\:border-red-500\\\\/20:hover{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.hover\\\\:bg-amber-200:hover{background-color:var(--color-amber-200)}.hover\\\\:bg-gray-700\\\\/50:hover{background-color:#36415380}@supports (color:color-mix(in lab, red, red)){.hover\\\\:bg-gray-700\\\\/50:hover{background-color:color-mix(in oklab, var(--color-gray-700) 50%, transparent)}}.hover\\\\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\\\\:bg-sky-200:hover{background-color:var(--color-sky-200)}.hover\\\\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\\\\:bg-white\\\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\\\\:bg-white\\\\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\\\\:bg-gradient-to-br:hover{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.hover\\\\:from-red-500:hover{--tw-gradient-from:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\\\\:to-red-600:hover{--tw-gradient-to:var(--color-red-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\\\\:text-\\\\[var\\\\(--color-accent\\\\)\\\\]:hover{color:var(--color-accent)}.hover\\\\:text-white:hover{color:var(--color-white)}.hover\\\\:underline:hover{text-decoration-line:underline}.hover\\\\:shadow-\\\\[0_6px_20px_rgba\\\\(16\\\\,185\\\\,129\\\\,0\\\\.35\\\\)\\\\]:hover{--tw-shadow:0 6px 20px var(--tw-shadow-color,#10b98159);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:shadow-\\\\[0_6px_20px_rgba\\\\(239\\\\,68\\\\,68\\\\,0\\\\.35\\\\)\\\\]:hover{--tw-shadow:0 6px 20px var(--tw-shadow-color,#ef444459);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\\\:brightness-\\\\[0\\\\.92\\\\]:hover{--tw-brightness:brightness(.92);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\\\\:backdrop-blur-sm:hover{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}.focus-visible\\\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\\\:ring-\\\\[3px\\\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\\\:ring-amber-400:focus-visible{--tw-ring-color:var(--color-amber-400)}.focus-visible\\\\:ring-sky-400:focus-visible{--tw-ring-color:var(--color-sky-400)}.focus-visible\\\\:ring-slate-400:focus-visible{--tw-ring-color:var(--color-slate-400)}.focus-visible\\\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\\\:ring-offset-white:focus-visible{--tw-ring-offset-color:var(--color-white)}.focus-visible\\\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\\\\:scale-\\\\[0\\\\.98\\\\]:active{scale:.98}.disabled\\\\:pointer-events-none:disabled{pointer-events:none}.disabled\\\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\\\:opacity-50:disabled{opacity:.5}.data-\\\\[disabled\\\\]\\\\:pointer-events-none[data-disabled]{pointer-events:none}.data-\\\\[disabled\\\\]\\\\:opacity-50[data-disabled]{opacity:.5}.data-\\\\[placeholder\\\\]\\\\:text-sm[data-placeholder]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\\\\[placeholder\\\\]\\\\:leading-5[data-placeholder]{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.data-\\\\[placeholder\\\\]\\\\:font-normal[data-placeholder]{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.data-\\\\[side\\\\=bottom\\\\]\\\\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\\\[side\\\\=left\\\\]\\\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\\\[side\\\\=right\\\\]\\\\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\\\[side\\\\=top\\\\]\\\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.\\\\*\\\\:data-\\\\[slot\\\\=select-value\\\\]\\\\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\\\\*\\\\:data-\\\\[slot\\\\=select-value\\\\]\\\\:flex>*)[data-slot=select-value]{display:flex}:is(.\\\\*\\\\:data-\\\\[slot\\\\=select-value\\\\]\\\\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\\\\*\\\\:data-\\\\[slot\\\\=select-value\\\\]\\\\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}@media (min-width:40rem){.sm\\\\:block{display:block}.sm\\\\:flex-row{flex-direction:row}.sm\\\\:justify-end{justify-content:flex-end}.sm\\\\:text-left{text-align:left}.sm\\\\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\\\\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:48rem){.md\\\\:max-h-\\\\[70vh\\\\]{max-height:70vh}.md\\\\:flex-row{flex-direction:row}.md\\\\:items-center{align-items:center}.md\\\\:items-start{align-items:flex-start}.md\\\\:px-12{padding-inline:calc(var(--spacing) * 12)}.md\\\\:pb-16{padding-bottom:calc(var(--spacing) * 16)}.md\\\\:text-left{text-align:left}.md\\\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\\\\:gap-16{gap:calc(var(--spacing) * 16)}}.dark\\\\:border-emerald-500\\\\/30:is(.dark *){border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:border-emerald-500\\\\/30:is(.dark *){border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.dark\\\\:border-rose-500\\\\/30:is(.dark *){border-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:border-rose-500\\\\/30:is(.dark *){border-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.dark\\\\:border-sky-500\\\\/30:is(.dark *){border-color:#00a5ef4d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:border-sky-500\\\\/30:is(.dark *){border-color:color-mix(in oklab, var(--color-sky-500) 30%, transparent)}}.dark\\\\:border-slate-700\\\\/50:is(.dark *){border-color:#31415880}@supports (color:color-mix(in lab, red, red)){.dark\\\\:border-slate-700\\\\/50:is(.dark *){border-color:color-mix(in oklab, var(--color-slate-700) 50%, transparent)}}.dark\\\\:bg-amber-500\\\\/15:is(.dark *){background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-amber-500\\\\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.dark\\\\:bg-amber-500\\\\/20:is(.dark *){background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-amber-500\\\\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.dark\\\\:bg-emerald-500\\\\/15:is(.dark *){background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-emerald-500\\\\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.dark\\\\:bg-rose-500\\\\/15:is(.dark *){background-color:#ff235726}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-rose-500\\\\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.dark\\\\:bg-sky-500\\\\/15:is(.dark *){background-color:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-sky-500\\\\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.dark\\\\:bg-sky-500\\\\/20:is(.dark *){background-color:#00a5ef33}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-sky-500\\\\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-sky-500) 20%, transparent)}}.dark\\\\:bg-slate-700\\\\/50:is(.dark *){background-color:#31415880}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-slate-700\\\\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-slate-700) 50%, transparent)}}.dark\\\\:bg-slate-900\\\\/80:is(.dark *){background-color:#0f172bcc}@supports (color:color-mix(in lab, red, red)){.dark\\\\:bg-slate-900\\\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-slate-900) 80%, transparent)}}.dark\\\\:from-emerald-600:is(.dark *){--tw-gradient-from:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\\\\:to-emerald-700:is(.dark *){--tw-gradient-to:var(--color-emerald-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\\\\:to-slate-950:is(.dark *){--tw-gradient-to:var(--color-slate-950);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\\\\:fill-sky-300:is(.dark *){fill:var(--color-sky-300)}.dark\\\\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\\\\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\\\\:text-emerald-300:is(.dark *){color:var(--color-emerald-300)}.dark\\\\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\\\\:text-rose-300:is(.dark *){color:var(--color-rose-300)}.dark\\\\:text-rose-400:is(.dark *){color:var(--color-rose-400)}.dark\\\\:text-sky-300:is(.dark *){color:var(--color-sky-300)}.dark\\\\:text-sky-400:is(.dark *){color:var(--color-sky-400)}.dark\\\\:text-slate-100:is(.dark *){color:var(--color-slate-100)}.dark\\\\:text-slate-200:is(.dark *){color:var(--color-slate-200)}.dark\\\\:text-slate-300:is(.dark *){color:var(--color-slate-300)}.dark\\\\:text-slate-400:is(.dark *){color:var(--color-slate-400)}.dark\\\\:shadow-xl:is(.dark *){--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\\\\:shadow-slate-950\\\\/30:is(.dark *){--tw-shadow-color:#0206184d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:shadow-slate-950\\\\/30:is(.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-950) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\\\\:ring-amber-400\\\\/40:is(.dark *){--tw-ring-color:#fcbb0066}@supports (color:color-mix(in lab, red, red)){.dark\\\\:ring-amber-400\\\\/40:is(.dark *){--tw-ring-color:color-mix(in oklab, var(--color-amber-400) 40%, transparent)}}@media (hover:hover){.dark\\\\:hover\\\\:bg-amber-500\\\\/30:is(.dark *):hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:hover\\\\:bg-amber-500\\\\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.dark\\\\:hover\\\\:bg-rose-500\\\\/25:is(.dark *):hover{background-color:#ff235740}@supports (color:color-mix(in lab, red, red)){.dark\\\\:hover\\\\:bg-rose-500\\\\/25:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-rose-500) 25%, transparent)}}.dark\\\\:hover\\\\:bg-sky-500\\\\/30:is(.dark *):hover{background-color:#00a5ef4d}@supports (color:color-mix(in lab, red, red)){.dark\\\\:hover\\\\:bg-sky-500\\\\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-sky-500) 30%, transparent)}}.dark\\\\:hover\\\\:bg-slate-700:is(.dark *):hover{background-color:var(--color-slate-700)}.dark\\\\:hover\\\\:from-red-600:is(.dark *):hover{--tw-gradient-from:var(--color-red-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\\\\:hover\\\\:to-red-700:is(.dark *):hover{--tw-gradient-to:var(--color-red-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}.dark\\\\:focus-visible\\\\:ring-offset-slate-950:is(.dark *):focus-visible{--tw-ring-offset-color:var(--color-slate-950)}.\\\\[\\\\&_a\\\\]\\\\:cursor-pointer a{cursor:pointer}.\\\\[\\\\&_a\\\\:hover\\\\]\\\\:underline a:hover{text-decoration-line:underline}.\\\\[\\\\&_a\\\\>\\\\*\\\\]\\\\:pointer-events-none a>*{pointer-events:none}.\\\\[\\\\&_p\\\\]\\\\:max-w-md p{max-width:var(--container-md)}.\\\\[\\\\&_svg\\\\]\\\\:pointer-events-none svg{pointer-events:none}.\\\\[\\\\&_svg\\\\]\\\\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\\\[\\\\&_svg\\\\]\\\\:h-6 svg{height:calc(var(--spacing) * 6)}.\\\\[\\\\&_svg\\\\]\\\\:w-6 svg{width:calc(var(--spacing) * 6)}.\\\\[\\\\&_svg\\\\]\\\\:flex-shrink-0 svg,.\\\\[\\\\&_svg\\\\]\\\\:shrink-0 svg{flex-shrink:0}.\\\\[\\\\&_svg\\\\:not\\\\(\\\\[class\\\\*\\\\=\\\\'size-\\\\'\\\\]\\\\)\\\\]\\\\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\\\\*\\\\:\\\\[span\\\\]\\\\:last\\\\:flex>*):is(span):last-child{display:flex}:is(.\\\\*\\\\:\\\\[span\\\\]\\\\:last\\\\:items-center>*):is(span):last-child{align-items:center}:is(.\\\\*\\\\:\\\\[span\\\\]\\\\:last\\\\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}}@property --tw-translate-x{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:\\\"*\\\";inherits:false}@property --tw-rotate-y{syntax:\\\"*\\\";inherits:false}@property --tw-rotate-z{syntax:\\\"*\\\";inherits:false}@property --tw-skew-x{syntax:\\\"*\\\";inherits:false}@property --tw-skew-y{syntax:\\\"*\\\";inherits:false}@property --tw-space-y-reverse{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:\\\"*\\\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\\\"*\\\";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:\\\"*\\\";inherits:false}@property --tw-gradient-from{syntax:\\\"<color>\\\";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:\\\"<color>\\\";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:\\\"<color>\\\";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:\\\"*\\\";inherits:false}@property --tw-gradient-via-stops{syntax:\\\"*\\\";inherits:false}@property --tw-gradient-from-position{syntax:\\\"<length-percentage>\\\";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:\\\"<length-percentage>\\\";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:\\\"<length-percentage>\\\";inherits:false;initial-value:100%}@property --tw-leading{syntax:\\\"*\\\";inherits:false}@property --tw-font-weight{syntax:\\\"*\\\";inherits:false}@property --tw-tracking{syntax:\\\"*\\\";inherits:false}@property --tw-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\\\"*\\\";inherits:false}@property --tw-shadow-alpha{syntax:\\\"<percentage>\\\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\\\"*\\\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\\\"<percentage>\\\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\\\"*\\\";inherits:false}@property --tw-ring-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\\\"*\\\";inherits:false}@property --tw-inset-ring-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\\\"*\\\";inherits:false}@property --tw-ring-offset-width{syntax:\\\"<length>\\\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\\\"*\\\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\\\"*\\\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\\\"*\\\";inherits:false}@property --tw-brightness{syntax:\\\"*\\\";inherits:false}@property --tw-contrast{syntax:\\\"*\\\";inherits:false}@property --tw-grayscale{syntax:\\\"*\\\";inherits:false}@property --tw-hue-rotate{syntax:\\\"*\\\";inherits:false}@property --tw-invert{syntax:\\\"*\\\";inherits:false}@property --tw-opacity{syntax:\\\"*\\\";inherits:false}@property --tw-saturate{syntax:\\\"*\\\";inherits:false}@property --tw-sepia{syntax:\\\"*\\\";inherits:false}@property --tw-drop-shadow{syntax:\\\"*\\\";inherits:false}@property --tw-drop-shadow-color{syntax:\\\"*\\\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\\\"<percentage>\\\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-blur{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-brightness{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-contrast{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-grayscale{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-invert{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-opacity{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-saturate{syntax:\\\"*\\\";inherits:false}@property --tw-backdrop-sepia{syntax:\\\"*\\\";inherits:false}@property --tw-duration{syntax:\\\"*\\\";inherits:false}@property --tw-ease{syntax:\\\"*\\\";inherits:false}@property --tw-scale-x{syntax:\\\"*\\\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\\\"*\\\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\\\"*\\\";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substring(2, 12);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort !== undefined) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substring(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substring(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substring(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n attributes: parts.slice(2).join(' '),\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri +\n (headerExtension.attributes ? ' ' + headerExtension.attributes : '') +\n '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\n// Non-key-value such as telephone-events `0-15` get parsed as\n// {`0-15`:undefined}\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substring(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substring(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substring(7, sp), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substring(sp + 1, colon);\n parts.value = line.substring(colon + 1);\n } else {\n parts.attribute = line.substring(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substring(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substring(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substring(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substring(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substring(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substring(12),\n password: pwd.substring(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n description.profile = mline[2];\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n const wildcardRtcpFb = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-fb:* ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.forEach(codec => {\n wildcardRtcpFb.forEach(fb=> {\n const duplicate = codec.rtcpFeedback.find(existingFeedback => {\n return existingFeedback.type === fb.type &&\n existingFeedback.parameter === fb.parameter;\n });\n if (!duplicate) {\n codec.rtcpFeedback.push(fb);\n }\n });\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' ' + (caps.profile || 'UDP/TLS/RTP/SAVPF') + ' ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substring(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substring(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substring(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substring(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substring(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substring(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substring(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 22);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substring(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substring(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substring(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substring(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/**\n * Typed errors for the GET /config flow, shared by WebRTCController (initial\n * connect) and WebRTCProvider (reconnect-time re-fetch) so both can branch on\n * a server-busy 503 without parsing message strings.\n */\n/**\n * Raised when /config returns 503 with error_code \"server_busy\" — the pod is at\n * its concurrent-session cap. Retryable with backoff against a sibling pod.\n */\nexport class ServerBusyError extends Error {\n constructor(message = 'Voice service is busy, please try again.') {\n super(message);\n this.name = 'ServerBusyError';\n }\n}\n/**\n * Raised when /config fails in a way retrying can't fix (e.g. TURN or signing\n * key not configured, or origin not allowed). Terminal — the reconnect loop\n * must not burn retries on it.\n */\nexport class ConfigUnavailableError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ConfigUnavailableError';\n }\n}\n/**\n * Raised when /config returns 429 — the integration hit its per-integration\n * rate limit. The caller should back off and let the user retry shortly.\n */\nexport class RateLimitedError extends Error {\n constructor(message = 'Too many attempts. Please try again in a moment.') {\n super(message);\n this.name = 'RateLimitedError';\n }\n}\n","import { ConfigUnavailableError, RateLimitedError, ServerBusyError, } from './config-errors';\n/** Initial-connect retries when the pod is at its session cap (server_busy). */\nconst MAX_INIT_RETRIES = 3;\nconst INIT_BACKOFF_MS = 500;\n// fetch has no default timeout; bound every /config attempt so a half-dead\n// network can't hang startCall or the resume loop.\nconst CONFIG_FETCH_TIMEOUT_MS = 10000;\nconst buildConfigUrl = (host, integrationId) => `${host}/v1/webvoice/${encodeURIComponent(integrationId)}/config`;\n/** wss:// signaling endpoint for the given web-voice integration. */\nexport const buildWebVoiceWsUrl = (host, integrationId) => host.replace(/^https:/, 'wss:').replace(/^http:/, 'ws:') +\n `/v1/webvoice/${encodeURIComponent(integrationId)}/rtc`;\n/** Single GET /config attempt. Throws typed errors for the 503 cases. */\nconst fetchOnce = async (host, integrationId) => {\n // Not AbortSignal.timeout (Safari 16+, babel can't transpile it); the manual\n // controller also lets us surface a clean retryable message, not a\n // browser-specific TimeoutError.\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), CONFIG_FETCH_TIMEOUT_MS);\n let response;\n try {\n response = await fetch(buildConfigUrl(host, integrationId), {\n method: 'GET',\n signal: controller.signal,\n });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw new Error('Config request timed out.');\n }\n throw error;\n }\n finally {\n clearTimeout(timer);\n }\n if (!response.ok) {\n if (response.status === 404) {\n throw new Error(`Integration ID \"${integrationId}\" was not found.`);\n }\n // The paired web-voice integration is disabled, or this origin isn't on its\n // allowlist. Either way voice can't start — surface it as unavailable rather\n // than a raw 403 (the pairing may be re-enabled later from tooling).\n if (response.status === 403) {\n throw new ConfigUnavailableError('Voice calling is currently unavailable.');\n }\n // Per-integration rate limit. Retryable by the user after a short wait.\n if (response.status === 429) {\n throw new RateLimitedError();\n }\n if (response.status === 503) {\n let errorCode;\n try {\n const body = (await response.json());\n errorCode = body.error_code;\n }\n catch (_a) {\n // Body not JSON; fall through to the generic error below.\n }\n // TURN provider or signing key not configured server-side — both\n // terminal (retrying can't fix a deployment misconfig).\n if (errorCode === 'turn_unavailable' ||\n errorCode === 'signing_unavailable') {\n throw new ConfigUnavailableError('Voice calling is unavailable on this deployment.');\n }\n if (errorCode === 'server_busy') {\n throw new ServerBusyError();\n }\n }\n throw new Error(`Unable to fetch config (status ${response.status} ${response.statusText}).`);\n }\n const data = (await response.json());\n if (!data.iceServers || !data.sessionToken) {\n throw new Error('Invalid config response: missing iceServers or sessionToken');\n }\n return data;\n};\n/**\n * Fetch /config for an initial connect, retrying a server_busy 503 with\n * backoff. All other errors propagate immediately.\n */\nexport const fetchWebVoiceConfig = async (host, integrationId) => {\n let attempt = 0;\n for (;;) {\n try {\n return await fetchOnce(host, integrationId);\n }\n catch (error) {\n if (error instanceof ServerBusyError && attempt < MAX_INIT_RETRIES - 1) {\n attempt++;\n await new Promise((resolve) => setTimeout(resolve, INIT_BACKOFF_MS * attempt));\n continue;\n }\n throw error;\n }\n }\n};\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseFloat(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const addEventListener = Object.getOwnPropertyDescriptor(\n EventTarget.prototype, 'addEventListener');\n if (!addEventListener.writable) {\n log('Unable to polyfill events');\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator ||\n !window.navigator.userAgent) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n // Prefer navigator.userAgentData.\n if (navigator.userAgentData && navigator.userAgentData.brands) {\n const chromium = navigator.userAgentData.brands.find((brand) => {\n return brand.brand === 'Chromium';\n });\n if (chromium) {\n return {browser: 'chrome', version: parseInt(chromium.version, 10)};\n }\n }\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = parseInt(extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1));\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = parseInt(extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2)) || null;\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = parseInt(extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1));\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n // Only for internal usage.\n result._safariVersion = extractVersion(navigator.userAgent,\n /Version\\/(\\d+(\\.?\\d+))/, 1);\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact\n ? {exact: dev.deviceId}\n : {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window, browserDetails) {\n if (browserDetails.version > 102) {\n // Unified plan is supported so no need to do anything.\n return;\n }\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimSenderReceiverGetStats(window, browserDetails) {\n if (browserDetails.version >= 67) {\n return;\n }\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n if (browserDetails.version > 102) {\n // Plan-B is no longer supported.\n return;\n }\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\nexport function shimGetStats(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (browserDetails.version >= 151) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1056433\n return;\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n if (this.signalingState === 'closed') {\n // No longer required in FF151+\n return Promise.resolve(new Map());\n }\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n // WebIDL input coercion and validation\n let sendEncodings = arguments[1] && arguments[1].sendEncodings;\n if (sendEncodings === undefined) {\n sendEncodings = [];\n }\n sendEncodings = [...sendEncodings];\n const shouldPerformCheck = sendEncodings.length > 0;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = sendEncodings;\n sender.sendEncodings = sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (server.urls === undefined && server.url) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substring(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n for (const key in parsedCandidate) {\n if (!(key in nativeCandidate)) {\n Object.defineProperty(nativeCandidate, key,\n {value: parsedCandidate[key]});\n }\n }\n\n // Override serializer to not serialize the extra attributes.\n nativeCandidate.toJSON = function toJSON() {\n return {\n candidate: nativeCandidate.candidate,\n sdpMid: nativeCandidate.sdpMid,\n sdpMLineIndex: nativeCandidate.sdpMLineIndex,\n usernameFragment: nativeCandidate.usernameFragment,\n };\n };\n return nativeCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimRTCIceCandidateRelayProtocol(window) {\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'relayProtocol' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n const parsedCandidate = SDPUtils.parseCandidate(e.candidate.candidate);\n if (parsedCandidate.type === 'relay') {\n // This is a libwebrtc-specific mapping of local type preference\n // to relayProtocol.\n e.candidate.relayProtocol = {\n 0: 'tls',\n 1: 'tcp',\n 2: 'udp',\n }[parsedCandidate.priority >> 24];\n }\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substring(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window, browserDetails) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version > 149) {\n // Fixed by https://issues.chromium.org/issues/490588131\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n if (browserDetails.browser === 'firefox' && browserDetails.version > 60) {\n return;\n }\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' &&\n browserDetails._safariVersion >= 13.1) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n// Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimRTCIceCandidateRelayProtocol(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimGetStats(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimRTCIceCandidateRelayProtocol(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n","const NOISE_GATE_THRESHOLD = 0.01;\n/**\n * Monitors a MediaStream's audio level via Web Audio API.\n * Extracted from AudioController for reuse across voice providers.\n *\n * Uses AnalyserNode with RMS calculation:\n * fftSize: 256, smoothingTimeConstant: 0.3\n * Noise gate: 0.01 threshold\n * Normalized output: 0.0 - 1.0\n */\nexport class AudioLevelMonitor {\n constructor() {\n this.analyserNode = null;\n this.audioSource = null;\n this.animationId = null;\n this.audioContext = null;\n }\n start(stream, onLevel) {\n try {\n this.audioContext = new AudioContext();\n this.audioSource = this.audioContext.createMediaStreamSource(stream);\n this.analyserNode = this.audioContext.createAnalyser();\n this.analyserNode.fftSize = 256;\n this.analyserNode.smoothingTimeConstant = 0.3;\n this.audioSource.connect(this.analyserNode);\n const dataArray = new Float32Array(this.analyserNode.fftSize);\n const checkAudioLevel = () => {\n if (!this.analyserNode) {\n this.stop();\n return;\n }\n this.analyserNode.getFloatTimeDomainData(dataArray);\n let sum = 0;\n for (const amplitude of dataArray) {\n sum += amplitude * amplitude;\n }\n const rms = Math.sqrt(sum / dataArray.length);\n const normalizedLevel = Math.min(1, rms * 10);\n const gatedLevel = normalizedLevel > NOISE_GATE_THRESHOLD ? normalizedLevel : 0;\n onLevel(gatedLevel.toFixed(3));\n this.animationId = requestAnimationFrame(checkAudioLevel);\n };\n checkAudioLevel();\n }\n catch (_a) {\n // Silently fail — audio monitoring is non-critical\n }\n }\n stop() {\n if (this.animationId !== null) {\n cancelAnimationFrame(this.animationId);\n this.animationId = null;\n }\n if (this.audioSource) {\n try {\n this.audioSource.disconnect();\n }\n catch (_a) {\n // ignore\n }\n this.audioSource = null;\n }\n if (this.audioContext) {\n void this.audioContext.close().catch(() => {\n // ignore\n });\n this.audioContext = null;\n }\n this.analyserNode = null;\n }\n}\n","/**\n * The candidate pair actually carrying media, resolved by\n * transport.selectedCandidatePairId → legacy `selected` flag → best nominated.\n * \"Any nominated\" is not enough: relay paths leave several pairs nominated and\n * a stale one can win, driving false stalls. Best nominated prefers the newest\n * lastPacketReceivedTimestamp (a frozen pair's is in the past), never displacing\n * a timestamped pair with a field-less one, and falls back to the first\n * nominated when none report a timestamp. Callers read the field they need.\n */\nexport function selectCandidatePair(stats) {\n let selectedPairId;\n const pairs = [];\n stats.forEach((report) => {\n if (report.type === 'transport') {\n const { selectedCandidatePairId } = report;\n if (selectedCandidatePairId && !selectedPairId) {\n selectedPairId = selectedCandidatePairId;\n }\n }\n else if (report.type === 'candidate-pair') {\n pairs.push(report);\n }\n });\n // A dangling transport id falls through to the legacy `selected` flag before\n // the nominated fallback.\n const selected = (selectedPairId && pairs.find((p) => p.id === selectedPairId)) ||\n pairs.find((p) => p.selected === true);\n if (selected) {\n return selected;\n }\n let best;\n for (const p of pairs) {\n if (!p.nominated) {\n continue;\n }\n if (best === undefined) {\n best = p;\n continue;\n }\n const bt = best.lastPacketReceivedTimestamp;\n const pt = p.lastPacketReceivedTimestamp;\n if (pt !== undefined && (bt === undefined || pt > bt)) {\n best = p;\n }\n }\n return best;\n}\n/**\n * Compact `local -> remote` candidate-type summary for a pair, e.g.\n * `relay/udp(udp) -> prflx/udp`. Resolves the pair's candidate stats so the\n * media path (relayed vs direct vs asymmetric) is visible in logs without a\n * webrtc-internals dump. Addresses are deliberately omitted (they are PII).\n */\nexport function describeCandidatePair(stats, pair) {\n const describe = (id) => {\n var _a, _b;\n if (!id) {\n return '?';\n }\n const c = stats.get(id);\n if (!c) {\n return '?';\n }\n const base = `${(_a = c.candidateType) !== null && _a !== void 0 ? _a : '?'}/${(_b = c.protocol) !== null && _b !== void 0 ? _b : '?'}`;\n return c.relayProtocol ? `${base}(${c.relayProtocol})` : base;\n };\n return `${describe(pair.localCandidateId)} -> ${describe(pair.remoteCandidateId)}`;\n}\n","import { selectCandidatePair } from './select-candidate-pair';\nconst QUALITY_WARNINGS = {\n 'high-rtt': 'High network latency detected',\n 'low-mos': 'Poor call quality detected',\n 'high-jitter': 'Network instability detected',\n 'high-packet-loss': 'Packet loss detected',\n};\nconst THRESHOLDS = {\n RTT: 400, // ms\n JITTER: 0.03, // seconds (30ms)\n PACKET_LOSS: 0.03, // 3%\n MOS: 3.0,\n};\n/**\n * Replaces Twilio Voice Insights with standard WebRTC getStats().\n * Polls pc.getStats() and maps to warning events that AudioWidget handles.\n */\nexport class CallQualityMonitor {\n constructor(pc, onWarning, onWarningCleared, pollIntervalMs = 5000) {\n this.pc = pc;\n this.onWarning = onWarning;\n this.onWarningCleared = onWarningCleared;\n this.pollIntervalMs = pollIntervalMs;\n this.interval = null;\n this.prevStats = null;\n this.activeWarnings = new Set();\n }\n start() {\n this.interval = setInterval(() => {\n void this.pollStats();\n }, this.pollIntervalMs);\n }\n stop() {\n if (this.interval !== null) {\n clearInterval(this.interval);\n this.interval = null;\n }\n this.prevStats = null;\n this.activeWarnings.clear();\n }\n async pollStats() {\n try {\n const stats = await this.pc.getStats();\n let jitter = null;\n let packetsReceived = 0;\n let packetsLost = 0;\n // RTT from the pair carrying media, not any nominated one: a stale pair\n // would skew high-rtt / MOS warnings on relay networks.\n const pair = selectCandidatePair(stats);\n const rtt = (pair === null || pair === void 0 ? void 0 : pair.currentRoundTripTime) != null\n ? pair.currentRoundTripTime * 1000\n : null;\n stats.forEach((report) => {\n var _a, _b, _c;\n if (report.type === 'inbound-rtp' && report.kind === 'audio') {\n const rtp = report;\n jitter = (_a = rtp.jitter) !== null && _a !== void 0 ? _a : null;\n packetsReceived = (_b = rtp.packetsReceived) !== null && _b !== void 0 ? _b : 0;\n packetsLost = (_c = rtp.packetsLost) !== null && _c !== void 0 ? _c : 0;\n }\n });\n // Compute packet loss rate over delta\n let lossRate = 0;\n if (this.prevStats) {\n const deltaReceived = packetsReceived - this.prevStats.packetsReceived;\n const deltaLost = packetsLost - this.prevStats.packetsLost;\n const total = deltaReceived + deltaLost;\n lossRate = total > 0 ? deltaLost / total : 0;\n }\n this.prevStats = { packetsReceived, packetsLost };\n // Check thresholds\n this.checkWarning('high-rtt', rtt !== null && rtt > THRESHOLDS.RTT);\n this.checkWarning('high-jitter', jitter !== null && jitter > THRESHOLDS.JITTER);\n this.checkWarning('high-packet-loss', lossRate > THRESHOLDS.PACKET_LOSS);\n // MOS estimation (simplified E-model)\n if (rtt !== null && jitter !== null) {\n const jitterMs = jitter * 1000;\n const lossPercent = lossRate * 100;\n const R = 93.2 - jitterMs * 2 - lossPercent * 40 - Math.max(0, rtt - 150) * 0.1;\n const mos = 1 + 0.035 * R + R * (R - 60) * (100 - R) * 7e-6;\n this.checkWarning('low-mos', mos < THRESHOLDS.MOS);\n }\n }\n catch (_a) {\n // pc may have closed mid-poll; quality stats are non-critical\n }\n }\n checkWarning(name, isExceeded) {\n if (isExceeded && !this.activeWarnings.has(name)) {\n this.activeWarnings.add(name);\n this.onWarning(name, QUALITY_WARNINGS[name] || name);\n }\n else if (!isExceeded && this.activeWarnings.has(name)) {\n this.activeWarnings.delete(name);\n this.onWarningCleared(name);\n }\n }\n}\n","import debug from 'debug';\nimport { describeCandidatePair, selectCandidatePair, } from './select-candidate-pair';\n// All audio inbound-rtp counters, keyed by report id. More than one report\n// can exist transiently (a stale report retained across an SSRC change), so\n// no single-report assumption.\nfunction collectAudioInboundRtp(stats) {\n const counts = new Map();\n stats.forEach((report) => {\n if (report.type === 'inbound-rtp') {\n const rtp = report;\n if (rtp.kind === 'audio' && rtp.packetsReceived !== undefined) {\n counts.set(rtp.id, rtp.packetsReceived);\n }\n }\n });\n return counts;\n}\n// True for any WebKit-backed browser: desktop Safari and every iOS browser\n// (CriOS/FxiOS are WebKit under the hood; iPadOS Safari reports a macOS UA,\n// caught by the Safari-without-Chrome clause).\nexport function isWebKitEngine(ua = navigator.userAgent) {\n return (/\\b(iPad|iPhone|iPod)\\b/.test(ua) ||\n (/AppleWebKit/.test(ua) && !/Chrome|Chromium|CriOS|Edg|OPR/.test(ua)));\n}\n/**\n * Detects a mid-call media-path stall (and its recovery) so the provider can\n * drive an ICE restart and confirm when media returns. Separate from\n * CallQualityMonitor: that polls every 5s for UX warnings, but recovery needs a\n * faster signal that beats the server's ~15s give-up.\n *\n * The signal is the audio inbound-rtp packetsReceived delta per poll: it\n * measures media actually received, independent of which candidate pair\n * delivered it. Candidate-pair and transport counters are deliberately not\n * used — on relay networks media legally arrives on a non-selected pair (the\n * two agents can nominate different relay allocations), and those signals also\n * move on non-media traffic (RTCP, DTLS, STUN), so either way they disagree\n * with real audio flow.\n *\n * Healthy = ANY audio inbound-rtp report advanced since the previous poll: a\n * stale report briefly retained across an SSRC change must not mask the live\n * one, and a genuinely stalled call has no advancing report, so this never\n * false-negatives.\n *\n * Correctness depends on the server streaming continuously (~50 packets/sec,\n * no DTX): that keeps packetsReceived advancing even while the user is silent.\n * If the server ever stops sending mid-call for longer than flatPollsThreshold\n * polls, the detector reports a false stall.\n *\n * With no audio inbound-rtp report (or none exposing packetsReceived) the\n * detector cannot assess and stays inert, logging once per episode. It does\n * not fall back to transport/pair byte counters, which count non-media traffic\n * and would defeat the point of watching received media.\n */\nexport class MediaStallDetector {\n constructor(pc, onStall, onRecover, pollIntervalMs = 1000, \n // Consecutive polls with no inbound media packet before declaring a stall;\n // debounces a brief blip while still beating the 15s server close.\n flatPollsThreshold = 3, \n // WebKit runs detection-only: the ICE-restart escalation is unproven on\n // that engine, so stalls are logged without acting on them.\n escalate = !isWebKitEngine()) {\n this.pc = pc;\n this.onStall = onStall;\n this.onRecover = onRecover;\n this.pollIntervalMs = pollIntervalMs;\n this.flatPollsThreshold = flatPollsThreshold;\n this.escalate = escalate;\n this.log = debug('moveo:webrtc:media');\n this.interval = null;\n this.prevCounts = null;\n this.flatPolls = 0;\n this.stalled = false;\n // Logs the \"cannot assess\" reason once per episode instead of every poll.\n this.cannotAssessLogged = false;\n }\n start() {\n this.log('started (escalate=%s)', this.escalate);\n this.interval = setInterval(() => {\n void this.poll();\n }, this.pollIntervalMs);\n }\n stop() {\n if (this.interval !== null) {\n clearInterval(this.interval);\n this.interval = null;\n }\n this.prevCounts = null;\n this.flatPolls = 0;\n this.stalled = false;\n this.cannotAssessLogged = false;\n }\n async poll() {\n try {\n const stats = await this.pc.getStats();\n const counts = collectAudioInboundRtp(stats);\n // No audio inbound-rtp with a packetsReceived counter: can't assess.\n // Baselines and stall state are preserved; log once per episode so a\n // silently-inert detector is visible.\n if (counts.size === 0) {\n if (!this.cannotAssessLogged) {\n this.cannotAssessLogged = true;\n this.log('cannot assess: no audio inbound-rtp with packetsReceived');\n }\n return;\n }\n this.cannotAssessLogged = false;\n const prev = this.prevCounts;\n this.prevCounts = counts;\n if (prev === null) {\n this.log('assessing %d audio inbound-rtp report(s)', counts.size);\n return; // first assessed poll: seed only\n }\n // Healthy if ANY report advanced. `> 0` only: a counter reset (browser\n // bug / id reuse) must not read as recovery — a fake recovery would\n // disarm a live ICE-restart attempt.\n let advanced = false;\n let shrunk = false;\n let comparable = 0;\n let hasNewReport = false;\n counts.forEach((packets, id) => {\n const before = prev.get(id);\n if (before === undefined) {\n hasNewReport = true;\n return;\n }\n comparable++;\n if (packets > before) {\n advanced = true;\n }\n else if (packets < before) {\n shrunk = true;\n }\n });\n if (advanced) {\n if (this.stalled) {\n this.stalled = false;\n this.log('recovered%s (pair %s)', this.escalate ? '' : ' (log-only)', this.describeSelectedPair(stats));\n if (this.escalate) {\n this.onRecover();\n }\n }\n this.flatPolls = 0;\n return;\n }\n // Baselines aren't comparable — reseed. Covers all ids replaced (new\n // SSRC), a counter reset under a reused id, or a freshly-appeared report\n // (no baseline yet, so a frozen sibling can't make it count as flat).\n // `stalled` is left as-is, so recovery lands one poll later.\n if (comparable === 0 || shrunk || hasNewReport) {\n this.log('inbound-rtp reports reseeded (comparable=%d new=%s)', comparable, hasNewReport);\n this.flatPolls = 0;\n return;\n }\n // Comparable reports exist and none advanced: a flat poll.\n this.flatPolls++;\n this.log('flat poll reports=%d flat=%d', counts.size, this.flatPolls);\n if (this.flatPolls >= this.flatPollsThreshold && !this.stalled) {\n this.stalled = true;\n this.log('stall declared%s after %d flat polls (pair %s)', this.escalate ? '' : ' (log-only, escalation disabled)', this.flatPolls, this.describeSelectedPair(stats));\n if (this.escalate) {\n this.onStall();\n }\n }\n }\n catch (_a) {\n // pc may have closed mid-poll; non-critical\n }\n }\n // Path shape for stall/recovery logs only — never used as the signal.\n describeSelectedPair(stats) {\n const pair = selectCandidatePair(stats);\n return pair ? describeCandidatePair(stats, pair) : '?';\n }\n}\n","import debug from 'debug';\nimport { WS_CLOSE_RESUME } from '@/ts/webrtc';\nconst CONNECT_TIMEOUT_MS = 10000;\n/**\n * JSON-over-WebSocket signaling for WebRTC voice sessions.\n * Stateless thin wrapper — all connection state lives in WebRTCProvider.\n */\nexport class SignalingClient {\n constructor(url, sessionToken, onMessage, onClose, onError) {\n this.url = url;\n this.sessionToken = sessionToken;\n this.onMessage = onMessage;\n this.onClose = onClose;\n this.onError = onError;\n this.log = debug('moveo:webrtc:media');\n this.ws = null;\n }\n connect() {\n return new Promise((resolve, reject) => {\n this.log('connecting to %s', this.url);\n const wsUrl = `${this.url}?token=${encodeURIComponent(this.sessionToken)}`;\n this.ws = new WebSocket(wsUrl);\n const timeout = setTimeout(() => {\n // close() (not ws.close()) so the abandoned socket's late close event\n // can't re-enter the provider's onClose after we already rejected.\n this.close();\n reject(new Error('Signaling connection timed out'));\n }, CONNECT_TIMEOUT_MS);\n this.ws.onopen = () => {\n // Wait for welcome message before resolving\n };\n this.ws.onmessage = (event) => {\n let msg;\n try {\n msg = JSON.parse(event.data);\n }\n catch (_a) {\n // Ignore malformed JSON\n return;\n }\n this.log('recv %s', msg.type);\n if (msg.type === 'welcome') {\n clearTimeout(timeout);\n resolve();\n }\n this.onMessage(msg);\n };\n this.ws.onerror = (event) => {\n clearTimeout(timeout);\n this.log('websocket error');\n this.onError(event);\n reject(new Error('Signaling WebSocket error'));\n };\n this.ws.onclose = (event) => {\n clearTimeout(timeout);\n this.log('closed code=%d reason=%s', event.code, event.reason);\n reject(new Error('Signaling WebSocket closed before connection established'));\n this.onClose(event.code, event.reason);\n };\n });\n }\n /**\n * Open a fresh WS to resume a session (pod drain or signaling loss). Sends\n * `reconnect` as the first frame on open and resolves on `reconnect_ack`\n * (not `welcome` — a resumed session does not re-issue welcome).\n */\n connectForReconnect(reconnectFrame) {\n return new Promise((resolve, reject) => {\n this.log('reconnecting to %s', this.url);\n const wsUrl = `${this.url}?token=${encodeURIComponent(this.sessionToken)}`;\n this.ws = new WebSocket(wsUrl);\n let settled = false;\n const timeout = setTimeout(() => {\n if (settled)\n return;\n settled = true;\n // The handshake may have committed server-side just as we timed out, so\n // close abnormally (4001) to keep the session resumable for the retry.\n this.close(WS_CLOSE_RESUME, 'Resume timed out');\n reject(new Error('Signaling reconnect timed out'));\n }, CONNECT_TIMEOUT_MS);\n this.ws.onopen = () => {\n var _a;\n // reconnect MUST be the first frame, before any offer.\n (_a = this.ws) === null || _a === void 0 ? void 0 : _a.send(JSON.stringify(reconnectFrame));\n };\n this.ws.onmessage = (event) => {\n let msg;\n try {\n msg = JSON.parse(event.data);\n }\n catch (_a) {\n // Ignore malformed JSON\n return;\n }\n this.log('recv %s', msg.type);\n // Deliver to the provider first so it records the credential rotation\n // (reconnect_ack) or the reject code (error) before we settle.\n this.onMessage(msg);\n if (settled)\n return;\n if (msg.type === 'reconnect_ack') {\n settled = true;\n clearTimeout(timeout);\n resolve();\n }\n else if (msg.type === 'error') {\n // Server rejected the resume. Settle now rather than waiting on the\n // WS close that follows — avoids a per-attempt CONNECT_TIMEOUT stall\n // and makes the reject deterministic w.r.t. the captured error code.\n settled = true;\n clearTimeout(timeout);\n reject(new Error(`reconnect rejected: ${msg.error.code}`));\n }\n };\n this.ws.onerror = (event) => {\n this.log('websocket error');\n this.onError(event);\n if (settled)\n return;\n settled = true;\n clearTimeout(timeout);\n reject(new Error('Signaling WebSocket error'));\n };\n this.ws.onclose = (event) => {\n this.log('closed code=%d reason=%s', event.code, event.reason);\n if (!settled) {\n settled = true;\n clearTimeout(timeout);\n reject(new Error('Signaling WebSocket closed before reconnect established'));\n }\n this.onClose(event.code, event.reason);\n };\n });\n }\n send(msg) {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n return;\n }\n this.log('send %s', msg.type);\n this.ws.send(JSON.stringify(msg));\n }\n /**\n * Close and detach the socket, nulling handlers first so a late close event\n * can't re-enter the provider. Default 1000 reads as an intentional end; the\n * resume flow passes 4001 to keep the session resumable.\n */\n close(code = 1000, reason = 'Client closed') {\n if (this.ws) {\n this.ws.onclose = null;\n this.ws.onerror = null;\n this.ws.onmessage = null;\n this.ws.close(code, reason);\n this.ws = null;\n }\n }\n get isConnected() {\n var _a;\n return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN;\n }\n}\n","/**\n * Web-voice signaling message types.\n *\n * Canonical spec lives in the channels repo:\n * https://github.com/moveo-ai/channels/blob/main/docs/webvoice-signaling.md\n *\n * Protocol changes require lockstep updates to both repos plus the spec doc.\n */\n/**\n * App WS close code for a resume-initiated close (not a call end): channels\n * treats it as abnormal and keeps the session resumable, where a clean 1000\n * tears it down. Wire contract — keep in sync with the server's\n * resumableReadError classification.\n */\nexport const WS_CLOSE_RESUME = 4001;\n","import 'webrtc-adapter';\nimport debug from 'debug';\nimport { WS_CLOSE_RESUME } from '@/ts/webrtc';\nimport { AudioLevelMonitor } from '../shared/audio-level-monitor';\nimport { MEDIA_ERRORS } from '../shared/media-errors';\nimport { CallQualityMonitor } from './call-quality-monitor';\nimport { ConfigUnavailableError, ServerBusyError } from './config-errors';\nimport { MediaStallDetector } from './media-stall-detector';\nimport { SignalingClient } from './signaling-client';\nconst REMOTE_AUDIO_THRESHOLD = 0.02;\n// ICE-restart recovery bounds (mid-call media drop).\nconst MAX_ICE_RESTART_ATTEMPTS = 2;\nconst ICE_RESTART_TIMEOUT_MS = 10000; // per-attempt window to reach 'connected'\n// No answer this fast ⇒ the WS is dead (a network switch leaves it\n// readyState===OPEN with no TCP reset, so isConnected can't see it): a same-PC\n// restart can't recover, so bail to a fresh-WS resume, not the ~20s window.\nconst ICE_RESTART_ANSWER_TIMEOUT_MS = 3000;\n// Session-resume bounds (drain, abnormal signaling close, exhausted ICE restarts).\nconst MAX_CLIENT_RETRIES = 3;\nconst RECONNECT_BACKOFF_MS = 500; // scaled by attempt number\n// Client-detected resumes carry no server delay, so jitter to avoid a correlated\n// mass disconnect stampeding /config + /rtc at once. Small enough to feel instant.\nconst SIGNALING_LOSS_JITTER_MS = 500;\n// Settle window for the post-ack media resume; during a resume the WS-close\n// teardown is disabled, so this is the only guard against a wedged resume.\nconst RECONNECT_ICE_TIMEOUT_MS = 15000;\n// Reconnect error codes that cannot be resumed — give up without retrying.\n// Any other failure (transient WS/ICE, server_busy) is retryable.\nconst TERMINAL_RECONNECT_CODES = new Set([\n 'session_expired',\n 'session_inactive',\n 'invalid_credential',\n 'max_recovery_exceeded',\n 'unexpected_first_frame',\n]);\n/** User-facing copy for terminal reconnect failures. Infra-agnostic. */\nconst RECONNECT_ERROR_MESSAGES = {\n session_expired: 'Your session has expired.',\n session_inactive: 'The call has ended.',\n invalid_credential: 'Could not resume the call.',\n max_recovery_exceeded: 'Could not resume the call after several attempts.',\n unexpected_first_frame: 'Could not resume the call.',\n};\n/** User-friendly error messages for WebRTC API failures */\nconst WEBRTC_ERRORS = Object.assign(Object.assign({}, MEDIA_ERRORS), { setRemoteDescription: 'Connection setup failed', setLocalDescription: 'Connection setup failed', addIceCandidate: 'Network configuration failed', createOffer: 'Browser audio setup failed' });\n/** Native WebRTC voice provider for Moveo web-voice integrations. */\nexport class WebRTCProvider {\n constructor(wsUrl, \n // Re-fetches /config (fresh TURN + session token) for a resume; throws\n // ServerBusyError on a server-busy 503. Injected so signaling stays here.\n fetchConfig) {\n this.wsUrl = wsUrl;\n this.fetchConfig = fetchConfig;\n this.log = debug('moveo:webrtc:media');\n this.pc = null;\n this.signaling = null;\n this.localStream = null;\n this.remoteStream = null;\n this.remoteAudio = null;\n this.remoteAudioMonitor = null;\n this.audioMonitor = null;\n this.qualityMonitor = null;\n this.stallDetector = null;\n this.pendingCandidates = [];\n this.state = 'idle';\n this.eventListeners = new Map();\n // --- ICE-restart recovery state ---\n this.iceRestarting = false;\n this.iceRestartAttempts = 0;\n this.iceRestartTimeout = null;\n // Fires if an ICE-restart offer goes unanswered: signals a dead WS (vs a\n // media-only blip) so the restart escalates to a resume instead of stalling.\n this.iceRestartAnswerTimeout = null;\n this.connectResolve = null;\n this.connectReject = null;\n // True while a session resume is in flight (drain or abnormal signaling loss);\n // gates the ICE disconnect/failed handlers and the WS-close backstop so the\n // resume flow owns teardown.\n this.resuming = false;\n this.reconnectAttempts = 0;\n // Captured from an error frame mid-resume to classify terminal vs retryable.\n this.reconnectErrorCode = null;\n // Buffered brain_response chunks per request_id (index -> text), assembled in\n // index order on emit. Retained past the terminal frame so a later interrupt\n // can still split them; cleared on cleanup().\n this.brainResponseChunks = new Map();\n // request_id -> smallest heard_index seen on an interrupt. Presence means the\n // turn was cut: later brain_response frames (incl. the terminal) are ignored\n // so the trimmed line is never re-rendered ungrayed, and repeated interrupts\n // keep the most conservative (smallest) boundary.\n this.interruptedRequests = new Map();\n }\n /** Supply the /config result (TURN + session token) for the next connect(). */\n setConfig(config) {\n this.config = config;\n }\n async connect() {\n if (!this.config) {\n throw new Error('Voice config not set; call setConfig() before connect().');\n }\n this.setState('connecting');\n // 1. Get microphone access\n try {\n this.localStream = await navigator.mediaDevices.getUserMedia({\n audio: {\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true,\n },\n });\n }\n catch (error) {\n const name = error instanceof Error ? error.name : '';\n const message = WEBRTC_ERRORS[name] || 'Microphone access failed';\n this.emitError(message);\n throw new Error(message);\n }\n // 2. Open signaling WebSocket\n this.signaling = new SignalingClient(this.wsUrl, this.config.sessionToken, this.handleSignalingMessage.bind(this), this.handleSignalingClose.bind(this), this.handleSignalingError.bind(this));\n try {\n await this.signaling.connect();\n }\n catch (error) {\n this.cleanupLocalStream();\n const message = error instanceof Error ? error.message : 'Signaling connection failed';\n this.emitError(message);\n throw new Error(message);\n }\n // 3. Create PeerConnection\n this.pc = new RTCPeerConnection({\n iceServers: this.config.iceServers,\n iceTransportPolicy: this.config.iceTransportPolicy || 'relay',\n });\n // 4. Add local audio track\n const audioTrack = this.localStream.getAudioTracks()[0];\n this.pc.addTrack(audioTrack, this.localStream);\n // 5. Set up PC handlers\n this.pc.ontrack = this.handleRemoteTrack.bind(this);\n this.pc.onicecandidate = (event) => {\n var _a;\n if (event.candidate) {\n (_a = this.signaling) === null || _a === void 0 ? void 0 : _a.send({\n type: 'ice',\n candidate: event.candidate.toJSON(),\n });\n }\n };\n this.pc.onconnectionstatechange =\n this.handleConnectionStateChange.bind(this);\n // 6. Create and send offer\n try {\n const offer = await this.pc.createOffer();\n if (!offer.sdp) {\n throw new Error('createOffer returned no SDP');\n }\n await this.pc.setLocalDescription(offer);\n this.signaling.send({ type: 'offer', sdp: offer.sdp });\n }\n catch (error) {\n this.cleanup();\n const name = error instanceof Error ? error.name : 'createOffer';\n const message = WEBRTC_ERRORS[name] || 'Failed to create call offer';\n this.emitError(message);\n throw new Error(message);\n }\n // 7. Start local audio monitoring\n this.audioMonitor = new AudioLevelMonitor();\n this.audioMonitor.start(this.localStream, (level) => {\n this.emit('audio-level', level, Number(level));\n });\n // 8. Wait for PeerConnection to reach 'connected' state\n return new Promise((resolve, reject) => {\n this.connectResolve = resolve;\n this.connectReject = reject;\n });\n }\n disconnect() {\n this.disconnectInternal(false);\n }\n disconnectInternal(suppressOutboundHangup) {\n // Fault-tolerant disconnect: each step wrapped in try/catch\n var _a, _b, _c, _d, _e, _f, _g;\n if (!suppressOutboundHangup) {\n try {\n (_a = this.signaling) === null || _a === void 0 ? void 0 : _a.send({ type: 'hangup' });\n }\n catch (_h) {\n // continue cleanup\n }\n }\n try {\n (_b = this.qualityMonitor) === null || _b === void 0 ? void 0 : _b.stop();\n this.qualityMonitor = null;\n }\n catch (_j) {\n // continue cleanup\n }\n try {\n (_c = this.stallDetector) === null || _c === void 0 ? void 0 : _c.stop();\n this.stallDetector = null;\n }\n catch (_k) {\n // continue cleanup\n }\n try {\n (_d = this.audioMonitor) === null || _d === void 0 ? void 0 : _d.stop();\n this.audioMonitor = null;\n }\n catch (_l) {\n // continue cleanup\n }\n try {\n (_e = this.remoteAudioMonitor) === null || _e === void 0 ? void 0 : _e.stop();\n this.remoteAudioMonitor = null;\n }\n catch (_m) {\n // continue cleanup\n }\n try {\n (_f = this.pc) === null || _f === void 0 ? void 0 : _f.close();\n this.pc = null;\n }\n catch (_o) {\n // continue cleanup\n }\n this.cleanupLocalStream();\n try {\n (_g = this.signaling) === null || _g === void 0 ? void 0 : _g.close();\n this.signaling = null;\n }\n catch (_p) {\n // continue cleanup\n }\n try {\n if (this.remoteAudio) {\n this.remoteAudio.srcObject = null;\n this.remoteAudio.remove();\n this.remoteAudio = null;\n }\n this.remoteStream = null;\n }\n catch (_q) {\n // continue cleanup\n }\n this.clearIceRestart();\n this.iceRestartAttempts = 0;\n if (this.connectReject) {\n this.connectReject(new Error('Call disconnected before connection completed'));\n }\n this.connectResolve = null;\n this.connectReject = null;\n // Clear session-resume state so a torn-down provider can't leave\n // resuming stuck true (which would make handleSignalingClose swallow a\n // future legitimate close), carry a stale retry count, or resume a new call\n // with the prior session's credentials before its own session_ready lands.\n this.resuming = false;\n this.reconnectAttempts = 0;\n this.reconnectErrorCode = null;\n this.originalSessionID = undefined;\n this.originalConnectionID = undefined;\n this.pendingCandidates = [];\n this.brainResponseChunks.clear();\n this.interruptedRequests.clear();\n this.setState('idle');\n }\n toggleMute() {\n var _a, _b;\n const track = (_a = this.localStream) === null || _a === void 0 ? void 0 : _a.getAudioTracks()[0];\n if (track) {\n track.enabled = !track.enabled;\n const muted = !track.enabled;\n (_b = this.signaling) === null || _b === void 0 ? void 0 : _b.send({ type: 'mute', muted });\n return muted;\n }\n return false;\n }\n isMuted() {\n var _a, _b, _c;\n return !((_c = (_b = (_a = this.localStream) === null || _a === void 0 ? void 0 : _a.getAudioTracks()[0]) === null || _b === void 0 ? void 0 : _b.enabled) !== null && _c !== void 0 ? _c : true);\n }\n getLocalStream() {\n return this.localStream;\n }\n getRemoteStream() {\n return this.remoteStream;\n }\n sendDigits(digits) {\n var _a;\n // Server expects one digit per signaling message (matches Twilio path,\n // which lets the SDK split a multi-char string internally).\n for (const ch of digits) {\n (_a = this.signaling) === null || _a === void 0 ? void 0 : _a.send({ type: 'dtmf', digit: ch });\n }\n }\n on(event, handler) {\n var _a;\n const listeners = (_a = this.eventListeners.get(event)) !== null && _a !== void 0 ? _a : new Set();\n listeners.add(handler);\n this.eventListeners.set(event, listeners);\n return () => this.off(event, handler);\n }\n off(event, handler) {\n const listeners = this.eventListeners.get(event);\n if (!listeners)\n return;\n listeners.delete(handler);\n if (listeners.size === 0) {\n this.eventListeners.delete(event);\n }\n }\n // --- Private methods ---\n handleRemoteTrack(event) {\n const [remoteStream] = event.streams;\n this.remoteStream = remoteStream !== null && remoteStream !== void 0 ? remoteStream : null;\n this.remoteAudio = document.createElement('audio');\n this.remoteAudio.srcObject = remoteStream;\n this.remoteAudio.autoplay = true;\n document.body.appendChild(this.remoteAudio);\n // Safari (incl. iOS, and stricter in Private mode) does not reliably\n // autoplay an <audio> whose source is a MediaStream — the `autoplay`\n // attribute alone leaves it silent. Kick off an explicit play(); the call\n // already ran getUserMedia behind a user gesture, so the audio session is\n // unlocked. Swallow a rejection so a blocked attempt stays silent, not fatal.\n void this.remoteAudio.play().catch(() => {\n // Playback blocked — the element stays live; nothing else to do here.\n });\n // Remote audio monitoring via AnalyserNode for thinking indicator\n this.remoteAudioMonitor = new AudioLevelMonitor();\n this.remoteAudioMonitor.start(remoteStream, (level) => {\n if (Number(level) > REMOTE_AUDIO_THRESHOLD) {\n this.emit('remote-audio', level, Number(level));\n }\n });\n }\n handleConnectionStateChange() {\n var _a, _b, _c, _d;\n if (!this.pc)\n return;\n this.log('connectionState %s', this.pc.connectionState);\n switch (this.pc.connectionState) {\n case 'connecting':\n this.setState('connecting');\n break;\n case 'connected': {\n const wasReconnecting = this.state === 'reconnecting';\n this.setState('connected');\n // Reaching 'connected' means any in-flight ICE restart recovered.\n this.clearIceRestart();\n this.iceRestartAttempts = 0;\n // A disconnected → connected recovery fires no stall onRecover, so the\n // \"Reconnecting…\" indicator is cleared here.\n if (wasReconnecting) {\n this.emit('warning-cleared', undefined, 'reconnect');\n }\n // 'connected' can re-fire after a recovery, so stop existing monitors\n // before recreating to avoid leaking their poll intervals.\n (_a = this.qualityMonitor) === null || _a === void 0 ? void 0 : _a.stop();\n this.qualityMonitor = new CallQualityMonitor(this.pc, (name, message) => this.emit('warning', message, name), (name) => this.emit('warning-cleared', undefined, name));\n this.qualityMonitor.start();\n (_b = this.stallDetector) === null || _b === void 0 ? void 0 : _b.stop();\n this.stallDetector = new MediaStallDetector(this.pc, () => {\n this.log('media stall -> ICE restart');\n void this.triggerIceRestart();\n }, () => {\n this.log('media recovered');\n // Media is flowing again: the restart (or a passive recovery) worked.\n this.clearIceRestart();\n this.iceRestartAttempts = 0;\n // A same-PC ICE restart fires no connectionState transition, so\n // recovery is confirmed here: leave 'reconnecting' and clear the\n // indicator.\n if (this.state === 'reconnecting') {\n this.setState('connected');\n }\n this.emit('warning-cleared', undefined, 'reconnect');\n });\n this.stallDetector.start();\n // Resolve connect() promise\n (_c = this.connectResolve) === null || _c === void 0 ? void 0 : _c.call(this);\n this.connectResolve = null;\n this.connectReject = null;\n break;\n }\n case 'disconnected':\n // A session resume owns the lifecycle; don't start a recovery while we\n // are intentionally tearing the PC down.\n if (this.resuming) {\n break;\n }\n void this.triggerIceRestart();\n break;\n case 'failed':\n // During a resume, just fail the pending handshake; reconnect() handles\n // retry/teardown. Do not emitError or tear the call down here.\n if (this.resuming) {\n (_d = this.connectReject) === null || _d === void 0 ? void 0 : _d.call(this, new Error('ICE connection failed'));\n this.connectResolve = null;\n this.connectReject = null;\n break;\n }\n // Initial connect that never reached 'connected': no session to recover.\n if (this.connectReject) {\n this.connectReject(new Error('ICE connection failed'));\n this.connectResolve = null;\n this.connectReject = null;\n this.emitError('Connection failed');\n this.cleanup();\n break;\n }\n // Established call: recover via ICE restart. A 'failed' while a restart is\n // already in flight means that attempt died, so react now (retry or give\n // up) instead of waiting out the recovery timeout.\n if (this.iceRestarting) {\n this.onRestartAttemptExpired();\n }\n else {\n void this.triggerIceRestart();\n }\n break;\n case 'closed':\n this.cleanup();\n break;\n }\n }\n /**\n * Recover a mid-call media drop by restarting ICE on the live PeerConnection\n * (same session, same WS). Bounded attempts; each waits ICE_RESTART_TIMEOUT_MS\n * to reach 'connected' before retrying or giving up. Never runs during a\n * session resume, which owns its own teardown.\n */\n async triggerIceRestart() {\n if (this.resuming || !this.pc || !this.signaling) {\n return;\n }\n // One restart at a time; bound total attempts.\n if (this.iceRestarting ||\n this.iceRestartAttempts >= MAX_ICE_RESTART_ATTEMPTS) {\n return;\n }\n // A re-offer can't reach the server over a dead WS (a combined media +\n // signaling drop needs WS reconnect, not ICE restart); don't burn attempts —\n // resume the session on a fresh WS when the call is resumable.\n if (!this.signaling.isConnected) {\n if (this.isResumeEligible()) {\n void this.beginResume(SIGNALING_LOSS_JITTER_MS);\n return;\n }\n this.emitError('Connection lost');\n this.cleanup();\n return;\n }\n const pc = this.pc;\n const signaling = this.signaling;\n this.iceRestarting = true;\n this.iceRestartAttempts++;\n this.log('ICE restart attempt %d/%d', this.iceRestartAttempts, MAX_ICE_RESTART_ATTEMPTS);\n this.setState('reconnecting');\n // 'reconnect' warning drives the widgets' \"Reconnecting…\" indicator.\n this.emit('warning', 'Reconnecting…', 'reconnect');\n try {\n const offer = await pc.createOffer({ iceRestart: true });\n if (!offer.sdp) {\n throw new Error('createOffer returned no SDP');\n }\n await pc.setLocalDescription(offer);\n signaling.send({ type: 'offer', sdp: offer.sdp });\n }\n catch (_a) {\n // A resume or teardown during the awaits closes this pc, so the offer\n // rejects — expected, not a media failure. Stay quiet if the resume now\n // owns the lifecycle or pc was replaced; only a still-current restart is\n // a real 'Connection lost'.\n if (this.resuming || !this.iceRestarting || this.pc !== pc) {\n return;\n }\n this.iceRestarting = false;\n this.emitError('Connection lost');\n this.cleanup();\n return;\n }\n // Teardown, a drain resume, or a new call on a reused provider may have run\n // during the awaits (clearing iceRestarting or replacing pc); don't arm it.\n if (!this.iceRestarting || this.pc !== pc) {\n return;\n }\n // Recovery is confirmed by media resuming (the detector's onRecover); this\n // timer only fires if it never does, then retries or gives up.\n this.iceRestartTimeout = setTimeout(() => {\n this.onRestartAttemptExpired();\n }, ICE_RESTART_TIMEOUT_MS);\n // Shorter deadline for the answer: no answer means the WS is dead, so cut\n // straight to a resume rather than waiting out the media timer (see const).\n this.iceRestartAnswerTimeout = setTimeout(() => {\n this.onIceRestartUnanswered();\n }, ICE_RESTART_ANSWER_TIMEOUT_MS);\n }\n /**\n * No answer to the ICE-restart offer within the deadline ⇒ the WS is dead (not\n * a media-only blip). Escalate to a fresh-WS resume if resumable; otherwise let\n * the per-attempt timer expire and onRestartAttemptExpired handle it.\n */\n onIceRestartUnanswered() {\n this.iceRestartAnswerTimeout = null;\n if (!this.iceRestarting) {\n return;\n }\n if (this.isResumeEligible()) {\n this.log('ICE restart offer unanswered -> resume');\n // beginResume() clears the in-flight restart, incl. the media timer.\n void this.beginResume(SIGNALING_LOSS_JITTER_MS);\n }\n }\n /** A restart attempt yielded no recovery (timeout, or a hard ICE 'failed'). */\n onRestartAttemptExpired() {\n this.log('ICE restart attempt expired (attempts=%d)', this.iceRestartAttempts);\n if (this.iceRestartTimeout) {\n clearTimeout(this.iceRestartTimeout);\n this.iceRestartTimeout = null;\n }\n // Cancel this attempt's answer-deadline; the next attempt arms its own, and\n // a stale timer would fire against it (e.g. a fast 'failed' beats the 3s).\n if (this.iceRestartAnswerTimeout) {\n clearTimeout(this.iceRestartAnswerTimeout);\n this.iceRestartAnswerTimeout = null;\n }\n this.iceRestarting = false;\n if (this.iceRestartAttempts < MAX_ICE_RESTART_ATTEMPTS) {\n void this.triggerIceRestart();\n }\n else if (this.isResumeEligible()) {\n // Same-PC restarts exhausted; a resume rebuilds both planes (fresh WS +\n // fresh TURN), rescuing drops a restart can't (e.g. a dead relay\n // allocation). The old WS closes 4001 so the server keeps it resumable.\n void this.beginResume(SIGNALING_LOSS_JITTER_MS);\n }\n else {\n this.emitError('Connection lost');\n this.cleanup();\n }\n }\n /** Cancel an in-flight ICE-restart recovery (on recovery or teardown). */\n clearIceRestart() {\n if (this.iceRestarting) {\n this.log('ICE restart cleared');\n }\n if (this.iceRestartTimeout) {\n clearTimeout(this.iceRestartTimeout);\n this.iceRestartTimeout = null;\n }\n if (this.iceRestartAnswerTimeout) {\n clearTimeout(this.iceRestartAnswerTimeout);\n this.iceRestartAnswerTimeout = null;\n }\n this.iceRestarting = false;\n }\n handleSignalingMessage(msg) {\n var _a;\n switch (msg.type) {\n case 'answer':\n void this.handleAnswer(msg.sdp);\n break;\n case 'ice':\n void this.addIceCandidate(msg.candidate);\n break;\n // Final user transcript for the turn.\n case 'transcript':\n this.emit('transcript', msg.text, {\n text: msg.text,\n request_id: msg.request_id,\n timestamp: msg.timestamp,\n });\n break;\n // AI response, streamed as chunks and assembled per request_id.\n case 'brain_response':\n this.handleBrainResponse(msg);\n break;\n // Barge-in truncated the response: split the buffered chunks at\n // heard_index so listeners can show what was heard vs the unheard tail.\n case 'interrupt':\n this.handleInterrupt(msg);\n break;\n case 'hangup':\n this.disconnectInternal(true);\n break;\n // session_ready (not welcome) is the resume-eligible signal: cache the\n // credentials for a future reconnect.\n case 'session_ready':\n this.originalSessionID = msg.session_id;\n this.originalConnectionID = msg.connection_id;\n break;\n // Rotated credential for the next reconnect.\n case 'reconnect_ack':\n this.originalConnectionID = msg.connection_id;\n break;\n case 'drain':\n void this.handleDrain(msg);\n break;\n case 'error':\n if (this.resuming) {\n // Record for reconnect()'s terminal-vs-retryable check. If a resume\n // is awaiting ICE (connectReject set), fail it now so the retry loop\n // reacts immediately instead of waiting out RECONNECT_ICE_TIMEOUT_MS.\n this.reconnectErrorCode = msg.error.code;\n (_a = this.connectReject) === null || _a === void 0 ? void 0 : _a.call(this, new Error(`reconnect rejected: ${msg.error.code}`));\n }\n else {\n this.emitError(msg.error.message);\n }\n break;\n }\n }\n handleSignalingClose(_code, _reason) {\n var _a;\n // The resume flow owns teardown while in flight. If a resume is awaiting\n // ICE (connectReject set), fail it now so the retry loop reacts to the\n // dropped WS immediately; otherwise (pre-ack / jitter window) just ignore.\n if (this.resuming) {\n (_a = this.connectReject) === null || _a === void 0 ? void 0 : _a.call(this, new Error('Signaling closed during resume'));\n return;\n }\n // Abnormal close of an established call (network switch, 1006, idle-proxy\n // drop): resume on a fresh WS instead of tearing down. Intentional closes\n // route elsewhere first (hangup nulls the handlers, drain sets resuming), so\n // being eligible here means the close was abnormal.\n if (this.isResumeEligible()) {\n void this.beginResume(SIGNALING_LOSS_JITTER_MS);\n return;\n }\n if (this.state !== 'idle') {\n this.disconnect();\n }\n }\n handleSignalingError(_error) {\n // Browsers fire onerror just before the abnormal onclose. Emitting here\n // would flip state to 'error', killing resume eligibility and letting the\n // host UI dispose the engine mid-resume. Stay quiet; the close handler owns\n // the outcome.\n if (this.resuming || this.isResumeEligible()) {\n return;\n }\n if (this.state === 'connected') {\n this.emitError('Signaling error');\n }\n }\n /**\n * Resume needs a fully-established call: cached credentials, no resume already\n * in flight, and state connected/reconnecting ('reconnecting' = an in-flight\n * ICE restart, where the session is still established server-side).\n */\n isResumeEligible() {\n return (!this.resuming &&\n (this.state === 'connected' || this.state === 'reconnecting') &&\n this.originalSessionID !== undefined &&\n this.originalConnectionID !== undefined);\n }\n /**\n * Enter the resume flow (drain / signaling loss / exhausted ICE restarts): own\n * the lifecycle, cancel any in-flight ICE restart, optionally wait a jittered\n * delay, then run the reconnect loop. Callers must have checked isResumeEligible().\n */\n async beginResume(jitterMs = 0) {\n this.resuming = true;\n this.setState('reconnecting');\n this.clearIceRestart();\n // 'reconnect' warning drives the widgets' \"Reconnecting…\" indicator.\n this.emit('warning', 'Reconnecting…', 'reconnect');\n if (jitterMs > 0) {\n // Jitter 0..delay to avoid a thundering herd against the sibling pods.\n await this.sleep(Math.random() * jitterMs);\n // A teardown (user hangup / destroy) during the jitter clears resuming;\n // don't resurrect an ended call.\n if (!this.resuming) {\n return;\n }\n }\n await this.reconnect();\n }\n /**\n * Server is draining this pod: resume the same session on a sibling after a\n * jittered delay. Distinct from the ICE-level 'disconnected' path (a blip) —\n * this is a server-initiated handoff.\n */\n async handleDrain(msg) {\n // Already resuming: a second drain (sibling pod drains before ICE connects)\n // is handled by the in-flight retry loop. Re-entering would hard-kill it.\n if (this.resuming) {\n return;\n }\n // Only a fully-established session is resumable: a drain before\n // session_ready (no cached credentials) or while not connected can't resume.\n if (!this.isResumeEligible()) {\n this.emitError('Could not resume the call.');\n this.disconnectInternal(true);\n return;\n }\n await this.beginResume(Math.max(0, msg.reconnect_delay_ms || 0));\n }\n /**\n * Tear down the pod-local PC/WS and resume on a sibling pod, reusing the\n * existing mic MediaStream (no second permission prompt). Retries transient\n * failures up to MAX_CLIENT_RETRIES; gives up on a terminal server rejection.\n */\n async reconnect() {\n var _a, _b, _c;\n // Detach senders before pc.close() (ghost-sender defense), then confirm the\n // mic track survived the drain (device unplug / OS reset / BT switch kill it).\n try {\n (_a = this.pc) === null || _a === void 0 ? void 0 : _a.getSenders().forEach((sender) => {\n var _a;\n if (sender.track) {\n (_a = this.pc) === null || _a === void 0 ? void 0 : _a.removeTrack(sender);\n }\n });\n }\n catch (_d) {\n // continue — closing the pc below releases the senders anyway\n }\n const track = (_b = this.localStream) === null || _b === void 0 ? void 0 : _b.getAudioTracks()[0];\n if (!track || track.readyState !== 'live') {\n this.emitError('Microphone is no longer available.');\n this.disconnectInternal(true);\n return;\n }\n // Drop pod-local resources but KEEP the MediaStream alive for reuse.\n this.teardownForReconnect();\n while (this.reconnectAttempts < MAX_CLIENT_RETRIES) {\n this.reconnectErrorCode = null;\n try {\n // Fresh /config → fresh TURN creds for the sibling pod.\n this.config = await this.fetchConfig();\n // A user hangup / destroy during the (up to 10s) fetch clears resuming;\n // don't open a new WS for an ended call.\n if (!this.resuming) {\n return;\n }\n this.signaling = new SignalingClient(this.wsUrl, this.config.sessionToken, this.handleSignalingMessage.bind(this), this.handleSignalingClose.bind(this), this.handleSignalingError.bind(this));\n // Sends `reconnect` as the first frame; resolves on reconnect_ack.\n await this.signaling.connectForReconnect({\n type: 'reconnect',\n session_id: this.originalSessionID,\n connection_id: this.originalConnectionID,\n });\n // Resumed — rebuild the media plane and wait for ICE to reconnect.\n await this.buildReconnectPeerConnection(track);\n this.reconnectAttempts = 0;\n this.resuming = false;\n // Clear any \"reconnecting…\" banner raised by a retried attempt.\n this.emit('warning-cleared', undefined, 'reconnect');\n return;\n }\n catch (error) {\n // A terminal server rejection (bad credential, expired/ended session,\n // recovery cap) is not retryable — surface and stop.\n const code = this.reconnectErrorCode;\n if (code && TERMINAL_RECONNECT_CODES.has(code)) {\n this.emitError((_c = RECONNECT_ERROR_MESSAGES[code]) !== null && _c !== void 0 ? _c : 'Could not resume the call.');\n this.disconnectInternal(true);\n return;\n }\n // A terminal /config failure (e.g. TURN unavailable) won't fix by\n // retrying — surface its message and stop.\n if (error instanceof ConfigUnavailableError) {\n this.emitError(error.message);\n this.disconnectInternal(true);\n return;\n }\n // Transient (WS/ICE, server_busy 503, rate-limited): back off and retry.\n // Only server_busy surfaces its message; a rate-limit reconnect stays\n // generic since \"too many attempts\" misreads an automatic retry.\n const message = error instanceof ServerBusyError ? error.message : 'Reconnecting…';\n this.emit('warning', message, 'reconnect');\n this.teardownForReconnect();\n this.reconnectAttempts++;\n if (this.reconnectAttempts >= MAX_CLIENT_RETRIES) {\n break;\n }\n await this.sleep(RECONNECT_BACKOFF_MS * this.reconnectAttempts);\n // Torn down (hangup / destroy) during the backoff — stop retrying.\n if (!this.resuming) {\n return;\n }\n }\n }\n this.emitError('Could not resume the call.');\n this.disconnectInternal(true);\n }\n /**\n * Build a fresh PeerConnection for a resume using the existing audio track.\n * Mirrors the fresh-connect PC setup but rejects on offer failure so the\n * reconnect retry loop can decide what to do (the fresh path tears down).\n */\n buildReconnectPeerConnection(audioTrack) {\n this.pc = new RTCPeerConnection({\n iceServers: this.config.iceServers,\n iceTransportPolicy: this.config.iceTransportPolicy || 'relay',\n });\n this.pc.addTrack(audioTrack, this.localStream);\n this.pc.ontrack = this.handleRemoteTrack.bind(this);\n this.pc.onicecandidate = (event) => {\n var _a;\n if (event.candidate) {\n (_a = this.signaling) === null || _a === void 0 ? void 0 : _a.send({\n type: 'ice',\n candidate: event.candidate.toJSON(),\n });\n }\n };\n this.pc.onconnectionstatechange =\n this.handleConnectionStateChange.bind(this);\n this.audioMonitor = new AudioLevelMonitor();\n this.audioMonitor.start(this.localStream, (level) => {\n this.emit('audio-level', level, Number(level));\n });\n return new Promise((resolve, reject) => {\n // Bound the resume: if ICE never reaches 'connected' (stalled, or the\n // sibling-pod WS drops after the ack — both swallowed by the drain-path\n // handlers), reject so the retry loop can take over instead of hanging.\n const timer = setTimeout(() => {\n this.connectResolve = null;\n this.connectReject = null;\n reject(new Error('Reconnect media resume timed out'));\n }, RECONNECT_ICE_TIMEOUT_MS);\n // Resolved/rejected by handleConnectionStateChange ('connected'/'failed').\n this.connectResolve = () => {\n clearTimeout(timer);\n resolve();\n };\n this.connectReject = (error) => {\n clearTimeout(timer);\n reject(error);\n };\n void (async () => {\n var _a;\n try {\n const offer = await this.pc.createOffer();\n if (!offer.sdp) {\n throw new Error('createOffer returned no SDP');\n }\n await this.pc.setLocalDescription(offer);\n this.signaling.send({ type: 'offer', sdp: offer.sdp });\n }\n catch (error) {\n const name = error instanceof Error ? error.name : 'createOffer';\n (_a = this.connectReject) === null || _a === void 0 ? void 0 : _a.call(this, new Error(WEBRTC_ERRORS[name] || 'Failed to create call offer'));\n }\n })();\n });\n }\n /**\n * Stop pod-local resources (PC, signaling, monitors, stall detector, remote\n * audio element) but deliberately KEEP localStream so the mic is reused.\n */\n teardownForReconnect() {\n var _a, _b, _c, _d, _e, _f;\n try {\n (_a = this.qualityMonitor) === null || _a === void 0 ? void 0 : _a.stop();\n this.qualityMonitor = null;\n }\n catch (_g) {\n // continue cleanup\n }\n try {\n (_b = this.stallDetector) === null || _b === void 0 ? void 0 : _b.stop();\n this.stallDetector = null;\n }\n catch (_h) {\n // continue cleanup\n }\n try {\n (_c = this.audioMonitor) === null || _c === void 0 ? void 0 : _c.stop();\n this.audioMonitor = null;\n }\n catch (_j) {\n // continue cleanup\n }\n try {\n (_d = this.remoteAudioMonitor) === null || _d === void 0 ? void 0 : _d.stop();\n this.remoteAudioMonitor = null;\n }\n catch (_k) {\n // continue cleanup\n }\n try {\n (_e = this.pc) === null || _e === void 0 ? void 0 : _e.close();\n this.pc = null;\n }\n catch (_l) {\n // continue cleanup\n }\n try {\n // 4001 marks this close as resume-initiated so the server keeps the\n // session resumable; a clean 1000 would tear it down before the reconnect\n // lands (matters when the old WS is still alive, e.g. exhausted-restart).\n (_f = this.signaling) === null || _f === void 0 ? void 0 : _f.close(WS_CLOSE_RESUME, 'Resuming');\n this.signaling = null;\n }\n catch (_m) {\n // continue cleanup\n }\n try {\n if (this.remoteAudio) {\n this.remoteAudio.srcObject = null;\n this.remoteAudio.remove();\n this.remoteAudio = null;\n }\n this.remoteStream = null;\n }\n catch (_o) {\n // continue cleanup\n }\n this.clearIceRestart();\n this.iceRestartAttempts = 0;\n this.connectResolve = null;\n this.connectReject = null;\n this.pendingCandidates = [];\n }\n sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n async handleAnswer(sdp) {\n // Any answer proves the signaling round-trip works, so cancel the\n // ICE-restart \"unanswered → resume\" escalation (media-only blip path).\n if (this.iceRestartAnswerTimeout) {\n clearTimeout(this.iceRestartAnswerTimeout);\n this.iceRestartAnswerTimeout = null;\n }\n if (!this.pc)\n return;\n try {\n await this.pc.setRemoteDescription({ type: 'answer', sdp });\n await this.flushPendingCandidates();\n }\n catch (_a) {\n this.emitError(WEBRTC_ERRORS['setRemoteDescription']);\n }\n }\n async addIceCandidate(candidate) {\n var _a;\n if ((_a = this.pc) === null || _a === void 0 ? void 0 : _a.remoteDescription) {\n try {\n await this.pc.addIceCandidate(candidate);\n }\n catch (_b) {\n // Non-critical — log but don't fail\n }\n }\n else {\n this.pendingCandidates.push(candidate);\n }\n }\n async flushPendingCandidates() {\n for (const candidate of this.pendingCandidates) {\n if (!this.pc)\n break;\n try {\n await this.pc.addIceCandidate(candidate);\n }\n catch (_a) {\n // Non-critical\n }\n }\n this.pendingCandidates = [];\n }\n cleanup() {\n this.disconnect();\n }\n cleanupLocalStream() {\n var _a;\n try {\n (_a = this.localStream) === null || _a === void 0 ? void 0 : _a.getTracks().forEach((t) => t.stop());\n this.localStream = null;\n }\n catch (_b) {\n // continue cleanup\n }\n }\n setState(newState) {\n this.state = newState;\n this.emit('state-change', newState, newState);\n }\n /**\n * Buffers brain_response chunks by request_id, ordered by index, and emits\n * 'brain-response' with the assembled text so far. The terminal frame (empty\n * text, final true) emits the final text; the buffer is retained for a later\n * interrupt. Frames for an already-interrupted turn are ignored so a late\n * terminal never re-renders the trimmed line ungrayed.\n */\n handleBrainResponse(msg) {\n const requestId = msg.request_id;\n // Turn already cut by barge-in: drop late chunks and the terminal so the\n // interrupt's trimmed rendering stands (the server emits the two frame\n // families independently, with no ordering guarantee between them).\n if (this.interruptedRequests.has(requestId))\n return;\n // Terminal frame: emit the fully assembled response. Keep the buffer: an\n // interrupt can arrive seconds later (barge-in during playback, long after\n // the reply finished streaming) and needs the chunks to split heard/unheard.\n // Cleared on cleanup() instead of here.\n if (msg.final) {\n const text = this.assembleBrainResponse(requestId);\n this.emit('brain-response', text, {\n text,\n request_id: requestId,\n final: true,\n });\n return;\n }\n let chunks = this.brainResponseChunks.get(requestId);\n if (!chunks) {\n chunks = new Map();\n this.brainResponseChunks.set(requestId, chunks);\n }\n chunks.set(msg.index, msg.text);\n const text = this.assembleBrainResponse(requestId);\n this.emit('brain-response', text, {\n text,\n request_id: requestId,\n final: false,\n });\n }\n /** Concatenate the buffered chunks for a request_id in index order. */\n assembleBrainResponse(requestId) {\n const chunks = this.brainResponseChunks.get(requestId);\n if (!chunks)\n return '';\n return [...chunks.entries()]\n .sort((a, b) => a[0] - b[0])\n .map(([, text]) => text)\n .join(' ');\n }\n /**\n * Splits the buffered chunks at heard_index and emits 'interrupt' with the\n * heard text and the unheard tail, so a listener can show the boundary\n * without discarding text. Marks the turn interrupted (so later brain_response\n * frames are dropped) and, on repeated interrupts, keeps the smallest\n * heard_index — the most conservative boundary. The buffer is left intact.\n */\n handleInterrupt(msg) {\n const prev = this.interruptedRequests.get(msg.request_id);\n const heardIndex = prev === undefined ? msg.heard_index : Math.min(prev, msg.heard_index);\n this.interruptedRequests.set(msg.request_id, heardIndex);\n const chunks = this.brainResponseChunks.get(msg.request_id);\n const ordered = chunks\n ? [...chunks.entries()].sort((a, b) => a[0] - b[0])\n : [];\n const join = (predicate) => ordered\n .filter(([index]) => predicate(index))\n .map(([, text]) => text)\n .join(' ');\n const heardText = join((index) => index <= heardIndex);\n const unheardText = join((index) => index > heardIndex);\n this.emit('interrupt', heardText, {\n request_id: msg.request_id,\n heard_index: heardIndex,\n timestamp: msg.timestamp,\n heardText,\n unheardText,\n });\n }\n emitError(message) {\n this.emit('error', message);\n this.setState('error');\n }\n emit(event, message, data) {\n const detail = { state: event, message, data };\n const invoke = (name) => {\n const listeners = this.eventListeners.get(name);\n if (!listeners)\n return;\n listeners.forEach((listener) => {\n try {\n listener(detail);\n }\n catch (_a) {\n // Ignore listener errors\n }\n });\n };\n invoke(event);\n invoke('any');\n }\n}\n","/**\n * User-friendly messages for the common getUserMedia DOMException names.\n * Shared across voice providers (native WebRTC, Telnyx) so a single string\n * surfaces in the widget regardless of provider.\n */\nexport const MEDIA_ERRORS = {\n NotAllowedError: 'Microphone permission denied',\n NotFoundError: 'No microphone found',\n NotReadableError: 'Microphone is in use by another application',\n OverconstrainedError: 'Microphone does not support required settings',\n};\n","/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","import { CamelToPascal } from '../utility-types';\nimport { toCamelCase } from './toCamelCase';\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n","/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n\n return false;\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19v3', key: 'npa21l' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2', key: '1vc78b' }],\n ['rect', { x: '9', y: '2', width: '6', height: '13', rx: '3', key: 's6n7sd' }],\n];\n\n/**\n * @component @name Mic\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiIgLz4KICA8cmVjdCB4PSI5IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSIxMyIgcng9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mic = createLucideIcon('mic', __iconNode);\n\nexport default Mic;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272',\n key: '1wngk7',\n },\n ],\n ['path', { d: 'M22 2 2 22', key: 'y4kqgn' }],\n [\n 'path',\n {\n d: 'M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473',\n key: '10hv5p',\n },\n ],\n];\n\n/**\n * @component @name PhoneOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAxMy45YTE0IDE0IDAgMCAwIDMuNzMyIDIuNjY4IDEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMiAxOCAxOCAwIDAgMS0xMi43MjgtNS4yNzIiIC8+CiAgPHBhdGggZD0iTTIyIDIgMiAyMiIgLz4KICA8cGF0aCBkPSJNNC43NiAxMy41ODJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgLjI0NC40NzMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneOff = createLucideIcon('phone-off', __iconNode);\n\nexport default PhoneOff;\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '</' + current.name + '>') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith('<!--')\n const start = index + tag.length\n const nextChar = html.charAt(start)\n let parent\n\n if (isComment) {\n const comment = parseTag(tag)\n\n // if we're at root, push new base node\n if (level < 0) {\n result.push(comment)\n return result\n }\n parent = arr[level]\n parent.children.push(comment)\n return result\n }\n\n if (isOpen) {\n level++\n\n current = parseTag(tag)\n if (current.type === 'tag' && options.components[current.name]) {\n current.type = 'component'\n inComponent = true\n }\n\n if (\n !current.voidElement &&\n !inComponent &&\n nextChar &&\n nextChar !== '<'\n ) {\n current.children.push({\n type: 'text',\n content: html.slice(start, html.indexOf('<', start)),\n })\n }\n\n // if we're at root, push new base node\n if (level === 0) {\n result.push(current)\n }\n\n parent = arr[level - 1]\n\n if (parent) {\n parent.children.push(current)\n }\n\n arr[level] = current\n }\n\n if (!isOpen || current.voidElement) {\n if (\n level > -1 &&\n (current.voidElement || current.name === tag.slice(2, -1))\n ) {\n level--\n // move current up a level to match the end tag\n current = level === -1 ? result : arr[level]\n }\n if (!inComponent && nextChar !== '<' && nextChar) {\n // trailing text node\n // if we're at the root, push a base text node. otherwise add as\n // a child to the current node.\n parent = level === -1 ? result : arr[level].children\n\n // calculate correct end of the content slice in case there's\n // no tag after the text node.\n const end = html.indexOf('<', start)\n let content = html.slice(start, end === -1 ? undefined : end)\n // if a node is nothing but whitespace, collapse it as the spec states:\n // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n if (whitespaceRE.test(content)) {\n content = ' '\n }\n // don't add whitespace-only text nodes if they would be trailing text nodes\n // or if they would be leading whitespace-only text nodes:\n // * end > -1 indicates this is not a trailing text node\n // * leading node is when level is -1 and parent has length 0\n if ((end > -1 && level + parent.length >= 0) || content !== ' ') {\n parent.push({\n type: 'text',\n content: content,\n })\n }\n }\n }\n })\n\n return result\n}\n","export const warn = (i18n, code, msg, rest) => {\n const args = [msg, {\n code,\n ...(rest || {})\n }];\n if (i18n?.services?.logger?.forward) {\n return i18n.services.logger.forward(args, 'warn', 'react-i18next::', true);\n }\n if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;\n if (i18n?.services?.logger?.warn) {\n i18n.services.logger.warn(...args);\n } else if (console?.warn) {\n console.warn(...args);\n }\n};\nconst alreadyWarned = {};\nexport const warnOnce = (i18n, code, msg, rest) => {\n if (isString(msg) && alreadyWarned[msg]) return;\n if (isString(msg)) alreadyWarned[msg] = new Date();\n warn(i18n, code, msg, rest);\n};\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport const loadNamespaces = (i18n, ns, cb) => {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n};\nexport const loadLanguages = (i18n, lng, ns, cb) => {\n if (isString(ns)) ns = [ns];\n if (i18n.options.preload && i18n.options.preload.indexOf(lng) > -1) return loadNamespaces(i18n, ns, cb);\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n};\nexport const hasLoadedNamespace = (ns, i18n, options = {}) => {\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(i18n, 'NO_LANGUAGES', 'i18n.languages were undefined or empty', {\n languages: i18n.languages\n });\n return true;\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n};\nexport const getDisplayName = Component => Component.displayName || Component.name || (isString(Component) && Component.length > 0 ? Component : 'Unknown');\nexport const isString = obj => typeof obj === 'string';\nexport const isObject = obj => typeof obj === 'object' && obj !== null;","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&amp;': '&',\n '&#38;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&quot;': '\"',\n '&#34;': '\"',\n '&nbsp;': ' ',\n '&#160;': ' ',\n '&copy;': '©',\n '&#169;': '©',\n '&reg;': '®',\n '&#174;': '®',\n '&hellip;': '…',\n '&#8230;': '…',\n '&#x2F;': '/',\n '&#47;': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport const setDefaults = (options = {}) => {\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n};\nexport const getDefaults = () => defaultOptions;","let i18nInstance;\nexport const setI18n = instance => {\n i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport const composeInitialProps = ForComponent => async ctx => {\n const componentsInitialProps = (await ForComponent.getInitialProps?.(ctx)) ?? {};\n const i18nInitialProps = getInitialProps();\n return {\n ...componentsInitialProps,\n ...i18nInitialProps\n };\n};\nexport const getInitialProps = () => {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces?.getUsedNamespaces() ?? [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n};","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace, isString, isObject } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nconst alwaysNewT = (i18n, language, namespace, keyPrefix) => i18n.getFixedT(language, namespace, keyPrefix);\nconst useMemoizedT = (i18n, language, namespace, keyPrefix) => useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\nexport const useTranslation = (ns, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', 'useTranslation: You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (isString(optsOrDefaultValue)) return optsOrDefaultValue;\n if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react?.wait) warnOnce(i18n, 'DEPRECATED_OPTION', 'useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options?.defaultNS;\n namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n i18n.reportNamespaces.addUsedNamespaces?.(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n const boundReset = () => {\n if (isMounted.current) setT(getNewT);\n };\n if (bindI18n) i18n?.on(bindI18n, boundReset);\n if (bindI18nStore) i18n?.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (i18n && bindI18n) bindI18n?.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n useEffect(() => {\n if (isMounted.current && ready) {\n setT(getT);\n }\n }, [i18n, keyPrefix, ready]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n};","/**\n * Mapping of country codes to their respective language names.\n * Provides a record of language names based on ISO country codes.\n */\nexport const languageByCountryCode = {\n en: 'English',\n el: 'Ελληνικά',\n es: 'Español',\n pt: 'Português',\n 'pt-br': 'Português brasileiro',\n it: 'Italiano',\n fr: 'Français',\n da: 'Dansk',\n de: 'Deutsch',\n ro: 'Română',\n bg: 'Български',\n cs: 'Čeština',\n pl: 'Polski',\n id: 'Bahasa Indonesia',\n me: 'Montenegrin',\n nl: 'Nederlands',\n 'nl-be': 'Nederlands (België)',\n sr: 'Српски',\n sv: 'Svenska',\n ru: 'Русский',\n sq: 'Shqip',\n ar: 'العربية',\n ja: '日本語',\n zh: '中文',\n tr: 'Türkçe',\n tl: 'Tagalog',\n};\n// Keep in sync with brand defaults in src/index.css\nexport const DEFAULT_BACKGROUND_COLOR = '#1B66D6'; // --color-brand-background\nexport const DEFAULT_ACCENT_COLOR = '#ffffff'; // --color-brand-foreground\n/**\n * Account UUID → variant mapping. Every integration under one of these\n * accounts gets the corresponding custom UI automatically, without setting\n * a per-integration `variant` flag. An integration can opt out by setting\n * `variant: 'default'` explicitly. See `variantSelector` in src/state/config.ts.\n */\nexport const ACCOUNT_VARIANT_MAP = Object.freeze({\n 'bab4875e-0411-4ae1-9e98-19ea236d369b': 'nbg',\n '0ffdaef8-4ce9-4188-9fdd-4644e5062cf2': 'alpha',\n '0e614713-2e6b-4af2-8e9e-21c2a4617981': 'fiserv',\n});\n/**\n * URL of the next version of the web client.\n */\nexport const WEB_CLIENT_NEXT_URL = 'https://web-client.dev.moveo.ai';\n/**\n * Deprecated production domain, only still used by the v1 iframe. Serves the\n * same dist as WEB_CLIENT_URL_NEW; goes away with the v1 bundle.\n */\nexport const WEB_CLIENT_URL = 'https://web-client.moveo.ai';\n/**\n * Production domain for the v2 web client. Every account loads the v2 iframe\n * from here, regardless of how the loader script reached their page.\n */\nexport const WEB_CLIENT_URL_NEW = 'https://web.moveo.ai';\nexport const WEB_CLIENT_URL_NEW_DEV = 'https://web.dev.moveo.ai';\n/**\n * Timeout duration in milliseconds for modals.\n * Specifies the time duration for modal timeouts.\n * The value is 400 milliseconds.\n */\nexport const MODAL_TIMEOUT = 400;\n/**\n * Minimum number of messages required to show a survey.\n * Specifies the minimum number of messages required to trigger a survey display.\n * The value is 3.\n */\nexport const MINIMUM_MESSAGES_TO_SHOW_SURVEY = 3;\nexport const LOCAL_EVENT = 'local-storage';\nexport const STORAGE_EVENT = 'storage';\n/**\n * The size in pixels of the custom launcher image.\n * The value is 72 pixels.\n **/\nexport const CUSTOM_LAUNCHER_SIZE_PX = '72px';\n/**\n * The width of the expanded chat.\n * The value is 672 pixels.\n **/\nexport const EXPANDED_CHAT_WIDTH = '672px';\n/**\n * The size in pixels of the bubble image.\n * The value is 60 pixels.\n **/\nexport const BUBBLE_SIZE_PX = '60px';\n/**\n * The maximum number of minutes that user can be inactive before we consider\n * them to reconnect to the server.\n * The value is 30 minutes.\n */\nexport const MAX_INACTIVITY_TO_RECONNECT_MS = 30 * 60 * 1000; // 30 minutes\n/**\n * The interval, in milliseconds, at which the inactivity is checked.\n * The value is 10 seconds.\n * */\nexport const CHECK_INACTIVITY_INTERVAL_MS = 10 * 1000; // 10 seconds\n/**\n * The interval to use when updating the visitor activity in local storage\n * The value is 3 seconds.\n * */\nexport const UPDATE_ACTIVITY_INTERVAL_MS = 3 * 1000; // 3 seconds\n/**\n * The duration, in milliseconds, of inactivity timeout.\n * This variable represents the amount of time that can elapse without any user activity\n * before considering the user as inactive.\n * The value is 10 minutes.\n */\nexport const INACTIVITY_TIMEOUT_MS = 10 * 60 * 1000;\n/**\n * The maximum duration, in milliseconds, that the compose indicator\n * will be displayed\n * The value is 30 seconds.\n */\nexport const MAX_TYPING_INDICATOR_MS = 30000;\n/**\n * The maximum duration, in milliseconds, that can elapse before\n * considering the user as having stopped typing.\n * The value is 1.1 seconds.\n */\nexport const MAX_TYPING_DURATION_MS = 1100;\n/**\n * Minimum delay, in milliseconds, enforced between two consecutive user\n * messages while talking to a brain. Sends attempted within this window\n * (typed message or option/quick-reply click) are ignored so the user cannot\n * fire several messages back to back before the brain responds.\n */\nexport const MIN_SEND_INTERVAL_MS = 2000;\n/**\n * The maximum length, in characters for user messages.\n * The value is 280 characters.\n */\nexport const MAX_CHARS = 280;\nexport const NEW_MAX_CHARS = 512;\n/**\n * The interval, in milliseconds, at which the last activity is sent to the server.\n * The value is 10 seconds.\n */\nexport const DEFAULT_UPDATE_INTERVAL_MS = 10 * 1000; // 10 seconds\n/**\n * The interval, in milliseconds, at which the session id is checked in\n * local storage. This is used to detect if the user create another session\n * in another tab.\n * The value is 5 seconds.\n **/\nexport const SESSION_ID_CHECK_INTERVAL_MS = 5000; // 5 seconds\nexport const isArabic = (text) => {\n const arabicRegex = /[\\u0600-\\u06FF]/;\n return arabicRegex.test(text) ? 'rtl' : 'ltr';\n};\nexport const NUMBER_OF_ACCEPTED_FILES = 4;\nexport const ONE_MB = 1024 * 1024;\nexport const MAX_FILE_SIZE = 20 * ONE_MB;\nexport const ACCEPTED_FILE_TYPES = {\n 'application/pdf': ['.pdf'],\n 'text/plain': ['.txt', '.csv'],\n 'application/msword': ['.doc', '.docx'],\n 'application/vnd.ms-excel': ['.xls', '.xlsx'],\n 'application/vnd.ms-powerpoint': ['.ppt', '.pptx'],\n 'image/jpeg': ['.jpg', '.jpeg'],\n 'image/png': ['.png'],\n 'image/gif': ['.gif'],\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport truncate from 'lodash-es/truncate';\nimport uniq from 'lodash-es/uniq';\nimport scrollIntoView from 'smooth-scroll-into-view-if-needed';\nimport { getConfig } from '../config/config';\nimport { WEB_CLIENT_NEXT_URL, WEB_CLIENT_URL, WEB_CLIENT_URL_NEW, WEB_CLIENT_URL_NEW_DEV, } from '../config/constants';\n/**\n * Fetches the integration configuration\n * @param host the channels host\n * @param id the integration id\n * @returns\n */\nexport const fetchIntegration = async (id, host) => {\n const channelHost = host || getConfig().CHANNELS_HOST;\n const response = await fetch(`${channelHost}/v1/web/${id}`, {\n headers: {\n 'Cache-Control': 'no-cache',\n },\n });\n const text = await response.text();\n if (response.ok) {\n const data = JSON.parse(text);\n return data;\n }\n throw new Error(`Error loading config from: ${channelHost}/${id}`);\n};\n/**\n * Promise that resolves when the document is ready.\n *\n */\n/**\n * Promise that resolves when the document is ready.\n * @returns Promise that resolves when document is fully loaded\n */\nexport const onDocumentReady = () => new Promise((resolve) => {\n if (document.readyState === 'complete') {\n return resolve();\n }\n else {\n window.addEventListener('load', () => {\n return resolve();\n });\n }\n});\n/**\n * Creates a promise that resolves after a specified delay.\n * @param ms - Number of milliseconds to wait\n * @returns Promise that resolves after the delay\n */\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n/**\n * Sleeps for `ms`, but resolves early if `shouldAbort()` returns true. Polls\n * every `pollMs` so an abort raised mid-sleep is honored within ~`pollMs`.\n * @param ms - Total time to wait in milliseconds\n * @param shouldAbort - Checked before each poll; return true to stop waiting\n * @param pollMs - Polling granularity in milliseconds (default 100)\n * @returns Promise that resolves after the delay or as soon as it is aborted\n */\nexport const interruptibleSleep = async (ms, shouldAbort, pollMs = 100) => {\n let waited = 0;\n while (waited < ms) {\n if (shouldAbort()) {\n return;\n }\n const step = Math.min(pollMs, ms - waited);\n await sleep(step);\n waited += step;\n }\n};\n/**\n * Gets the current timestamp in milliseconds.\n * @returns Current timestamp as number\n */\nexport const getTimestamp = () => Date.now();\nexport const KEYS = {\n UP: 'ArrowUp',\n DOWN: 'ArrowDown',\n ESC: 'Escape',\n ENTER: 'Enter',\n DELETE: 'Delete',\n SPACE: 'Space',\n TAB: 'Tab',\n};\nexport const emailRegExp = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))){2,}$/i;\n/**\n * Validates and converts a YouTube URL to an embeddable format.\n * @param text - The YouTube URL to validate and convert\n * @returns Embeddable YouTube URL or false if invalid\n */\nexport const validateYouTubeUrl = (text) => {\n if (text) {\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n const match = text.match(regExp);\n if (match && match[2].length == 11) {\n return `https://www.youtube.com/embed/${match[2]}?autoplay=0`;\n }\n }\n return false;\n};\n/**\n * Determines if the current window is considered mobile based on dimensions.\n * @returns True if window is mobile-sized, false otherwise\n */\nexport const isWindowMobile = () => window.innerWidth < 650 ||\n (window.innerHeight < 550 && window.innerWidth < 1000);\n/**\n * Returns the URL that will be use to load the iframe\n */\nexport const createIframeUrl = (widgetId, version = 'v1') => {\n // 1. Check if using the beta/next release by looking at the script src\n let url = '';\n const scripts = document.querySelectorAll('script');\n const regex = /@moveo-ai\\/web-client.*next/;\n if (scripts) {\n scripts.forEach((script) => {\n var _a;\n if ((_a = script.src) === null || _a === void 0 ? void 0 : _a.match(regex)) {\n url = WEB_CLIENT_NEXT_URL;\n }\n });\n }\n // 2. Check if using localhost, specific moveo-ai deployment on Vercel,\n // or other conditions by looking at the origin\n const { origin } = window.location;\n if (!url) {\n if (origin.match(/localhost:8880/) ||\n origin.match(/web-client.*moveo-ai\\.vercel\\.app/)) {\n url = origin; // Load from localhost or a web-client deployment in Vercel\n }\n else if (origin.match(/web-client\\.dev/)) {\n url = WEB_CLIENT_NEXT_URL; // Specific web-client development URL\n }\n else {\n url = WEB_CLIENT_URL; // Default to the production web-client URL\n }\n }\n // 4. Append the WidgetId to the iframe so that this window and the iframe can\n // stablish a communication channel\n return `${url}?widgetId=${widgetId}&version=${version}`;\n};\n/**\n * Returns the URL that will be use to load the iframe\n */\nexport const createNewIframeUrl = (widgetId) => {\n // 1. Check if using the beta/next release by looking at the script src\n let url = '';\n const scripts = document.querySelectorAll('script');\n if (scripts) {\n scripts.forEach((script) => {\n var _a, _b, _c;\n if ((_a = script.src) === null || _a === void 0 ? void 0 : _a.includes(WEB_CLIENT_URL_NEW_DEV)) {\n url = WEB_CLIENT_URL_NEW_DEV;\n }\n if ((_b = script.src) === null || _b === void 0 ? void 0 : _b.includes(WEB_CLIENT_URL_NEW)) {\n url = WEB_CLIENT_URL_NEW;\n }\n const regex = /@moveo-ai\\/web-client.*next/;\n if ((_c = script.src) === null || _c === void 0 ? void 0 : _c.match(regex)) {\n url = WEB_CLIENT_NEXT_URL;\n }\n });\n }\n // 2. Check if using localhost, a Cloudflare Pages preview build, a\n // moveo-ai deployment on Vercel or a moveo.ai origin\n const { origin } = window.location;\n if (!url) {\n if (origin.match(/localhost:8880/) ||\n // Previews of this Cloudflare Pages project are served from\n // <deployment>.web-7ii.pages.dev. Anchored so that a customer site\n // hosted on Pages never self-serves an iframe it cannot provide.\n origin.match(/^https:\\/\\/([a-z0-9-]+\\.)?web-7ii\\.pages\\.dev$/) ||\n origin.match(/web-client.*moveo-ai\\.vercel\\.app/) ||\n origin.match(/web.*moveo\\.ai/)) {\n url = origin; // Load the iframe from the same origin as the page\n }\n else {\n // Every account loads the v2 iframe from the production host.\n url = WEB_CLIENT_URL_NEW;\n }\n }\n // 4. Append the WidgetId to the iframe so that this window and the iframe can\n // stablish a communication channel\n return `${url}?widgetId=${widgetId}&version=v2`;\n};\n/**\n * Parses a message event and extracts the event type and data.\n * @param widgetId - The widget ID to filter events\n * @param event - The message event to parse\n * @returns Parsed event object or null if invalid\n */\nexport const parseEvent = (widgetId, event) => {\n var _a, _b;\n const eventType = (_a = event === null || event === void 0 ? void 0 : event.data) === null || _a === void 0 ? void 0 : _a.type;\n if (typeof eventType !== 'string' || !eventType.startsWith(widgetId)) {\n return null;\n }\n // Extract the event type by removing the prefix `widgetId`\n const type = eventType.replace(widgetId, '');\n const data = (_b = event.data) === null || _b === void 0 ? void 0 : _b.data;\n return { type, data };\n};\n/**\n * Determines if the parent URL is a test environment.\n * @param parentUrl - The parent URL to check\n * @returns True if URL is a test environment, false otherwise\n */\nexport const isTest = (parentUrl) => {\n if (parentUrl) {\n const url = new URL(parentUrl).origin;\n if (url.match(/localhost:|vercel.app/) ||\n url === WEB_CLIENT_NEXT_URL ||\n url === WEB_CLIENT_URL ||\n url === WEB_CLIENT_URL_NEW ||\n url === WEB_CLIENT_URL_NEW_DEV) {\n return true;\n }\n }\n return false;\n};\n/**\n * Checks if a value is a plain object (not array or null).\n * @param item - The value to check\n * @returns True if item is a plain object, false otherwise\n */\nfunction isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n// From: stackoverflow.com/a/37164538\nexport function mergeDeep(target = {}, source = {}) {\n const output = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key) => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, { [key]: source[key] });\n }\n else {\n output[key] = mergeDeep(target[key], source[key]);\n }\n }\n else {\n Object.assign(output, { [key]: source[key] });\n }\n });\n }\n return output;\n}\n/**\n * Smoothly scrolls an element into view.\n * @param element - The element to scroll to\n * @param options - Additional scroll options to override defaults\n */\nexport const scrollToElement = (element, options = {}) => {\n scrollIntoView(element, Object.assign({ behavior: 'smooth', inline: 'end', block: 'end' }, options));\n};\n/**\n * Finds the file type based on the provided MIME type.\n * Supported types: 'image', 'video', 'audio', 'file'.\n */\n/**\n * Determines the file type category based on MIME type.\n * @param mimeType - The MIME type string to analyze\n * @returns File type category: 'image', 'video', 'audio', or 'file'\n */\nexport const getFileTypeFromMimeType = (mimeType) => {\n if (mimeType.startsWith('image/')) {\n return 'image';\n }\n if (mimeType.startsWith('video/')) {\n return 'video';\n }\n if (mimeType.startsWith('audio/')) {\n return 'audio';\n }\n return 'file';\n};\n// This number comes from the max length in orchestrator\nexport const MAX_CHARS_IN_TAG = 48;\n/**\n * Normalizes the tags in the provided context by:\n * - Removing empty or whitespace-only tags.\n * - Transliterating non-Latin characters into ASCII.\n * - Removing diacritic marks from characters.\n * - Truncating each tag to a maximum allowed length.\n * - Removing duplicate tags.\n * - Removing tags that are not latin or greek characters.\n *\n * @param context - The context object containing a `tags` array and other properties.\n * @returns The updated context object with normalized tags.\n */\nexport const normalizeTags = (_a) => {\n var { tags } = _a, rest = __rest(_a, [\"tags\"]);\n if (!tags) {\n return rest;\n }\n const normalizedTags = tags\n .map((tag) => {\n // This will return an undefined value that later will be filtered.\n if (typeof tag !== 'string') {\n return;\n }\n // Remove spaces at the end and beggining\n let normalizedTag = tag.trim();\n // After trimming the tag, check if it's empty\n if (!normalizedTag) {\n return;\n }\n // Convert non-latin characters to ASCII (Such as Greek)\n normalizedTag = greekToLatin(normalizedTag);\n // Remove diacritic marks\n normalizedTag = transliterateToAscii(normalizedTag);\n normalizedTag = normalizedTag.replace(/\\s+/g, '-');\n // Shorten tag to max length\n return truncate(normalizedTag, {\n length: MAX_CHARS_IN_TAG,\n // This avoids appending `...` to the end of the string\n omission: '',\n });\n })\n // Remove empty tags\n .filter((tag) => Boolean(tag));\n return Object.assign(Object.assign({}, rest), { tags: uniq(normalizedTags) });\n};\n/**\n * Converts Greek text to its Latin equivalent using a simple character mapping.\n *\n * This function replaces each Greek letter with its corresponding Latin transcription\n * based on common transliteration rules.\n *\n * @param text - The Greek text to be transliterated.\n * @returns The transliterated Latin text.\n */\nconst greekToLatin = (text) => {\n const map = {\n Α: 'A',\n Β: 'B',\n Γ: 'G',\n Δ: 'D',\n Ε: 'E',\n Ζ: 'Z',\n Η: 'H',\n Θ: 'Th',\n Ι: 'I',\n Κ: 'K',\n Λ: 'L',\n Μ: 'M',\n Ν: 'N',\n Ξ: 'X',\n Ο: 'O',\n Π: 'P',\n Ρ: 'R',\n Σ: 'S',\n Τ: 'T',\n Υ: 'Y',\n Φ: 'F',\n Χ: 'Ch',\n Ψ: 'Ps',\n Ω: 'O',\n α: 'a',\n β: 'b',\n γ: 'g',\n δ: 'd',\n ε: 'e',\n ζ: 'z',\n η: 'i',\n θ: 'th',\n ι: 'i',\n κ: 'k',\n λ: 'l',\n μ: 'm',\n ν: 'n',\n ξ: 'x',\n ο: 'o',\n π: 'p',\n ρ: 'r',\n σ: 's',\n ς: 's',\n τ: 't',\n υ: 'y',\n φ: 'f',\n χ: 'ch',\n ψ: 'ps',\n ω: 'o',\n };\n return text\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .split('')\n .map((char) => map[char] || char)\n .join('');\n};\n/**\n * Converts a string to its ASCII equivalent by:\n * - Normalizing Unicode characters to their decomposed form.\n * - Removing diacritic marks (accents, tildes, etc.).\n * - Removing any non-ASCII characters.\n *\n * @param {string} str - The input string to transliterate.\n * @returns {string} - The ASCII-only version of the input string.\n */\nconst transliterateToAscii = (str) => {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/[^\\x00-\\x7F]/g, '');\n};\n/**\n * Normalizes the display name in the context object.\n * If the display name is an empty string, it will be set to null.\n * When the value is null, channels will assign a default value such as\n * `Visitor <id>`.\n *\n * @param context - The context object containing user information\n * @returns The context object with normalized display name\n */\nexport const normalizeDisplayName = (context) => {\n if (!(context === null || context === void 0 ? void 0 : context.user)) {\n return context;\n }\n return Object.assign(Object.assign({}, context), { user: Object.assign(Object.assign({}, context.user), { display_name: context.user.display_name === '' ? null : context.user.display_name }) });\n};\n/**\n * Normalizes the email address in the context object.\n * - Splits multiple emails by comma, semicolon, or space\n * - Trims whitespace\n * - Converts to lowercase\n * - Takes the first valid email if multiple are provided\n *\n * @param context - The context object containing user email\n * @returns The context object with normalized email\n */\nexport const normalizeEmail = (context) => {\n var _a, _b;\n const email = (_a = context.user) === null || _a === void 0 ? void 0 : _a.email;\n if (!email || typeof email !== 'string') {\n return context;\n }\n const emails = email\n .split(/[,; ]+/)\n .map((e) => e.trim().toLowerCase())\n .filter(Boolean);\n return Object.assign(Object.assign({}, context), { user: Object.assign(Object.assign({}, context.user), { email: (_b = emails[0]) !== null && _b !== void 0 ? _b : email }) });\n};\n/**\n * Converts specified user fields to strings if they are not already strings.\n * Handles the following fields: external_id, phone, user_id, contact_id\n * As this fields are used internally by moveo, they must be strings.\n *\n * @param context - The context object containing user information\n * @returns The context object with stringified user fields\n */\nexport const stringifyUserKeys = (context) => {\n if (!context.user) {\n return context;\n }\n const keys = ['external_id', 'phone', 'user_id', 'contact_id'];\n const updatedUser = Object.assign({}, context.user);\n for (const key of keys) {\n const val = updatedUser[key];\n if (val !== undefined && typeof val !== 'string') {\n updatedUser[key] = `${val}`;\n }\n }\n return Object.assign(Object.assign({}, context), { user: updatedUser });\n};\n/**\n * Applies a series of normalization functions to the context object.\n * The normalization pipeline includes:\n * - Normalizing display name\n * - Normalizing email address\n * - Converting user fields to strings\n * - Normalizing tags\n *\n * @param context - The context object to normalize\n * @returns The fully normalized context object\n */\nexport const normalizeContext = (context) => {\n return [\n normalizeDisplayName,\n normalizeEmail,\n stringifyUserKeys,\n normalizeTags,\n ].reduce((acc, fn) => fn(acc), context);\n};\n/**\n * Pattern for unformatted phone number, this is how users\n * typically enter their phone numbers. Validation:\n * - Optional + prefix\n * - 9-20 characters including digits, spaces, hyphens, and parentheses\n * - Allows international format with parentheses\n * - No backtracking possible due to fixed structure\n */\nexport const UNFORMATTED_PHONE_PATTERN = /^\\+?[0-9()-\\s]{9,20}$/;\n/**\n * Pattern for normalized phone number, this is how we\n * store phone numbers in the database. Validation:\n * - Optional + prefix\n * - 7-18 digits only\n * - No spaces, hyphens, or parentheses\n * - No backtracking possible due to fixed structure\n */\nexport const NORMALIZED_PHONE_PATTERN = /^\\+?[0-9]{7,18}$/;\n/**\n * Validates and formats a phone number.\n * @param value - The phone number string to validate\n * @returns Object with validation result and formatted number\n */\nexport const validatePhoneNumber = (value) => {\n if (!value) {\n return { valid: true, formatted: value };\n }\n if (!UNFORMATTED_PHONE_PATTERN.test(value)) {\n return { valid: false };\n }\n const formatted = value.replace(/[()-\\s]/g, '');\n if (!NORMALIZED_PHONE_PATTERN.test(formatted)) {\n return { valid: false };\n }\n return { valid: true, formatted };\n};\n/**\n * Creates a nested object structure from a dot-notation path.\n * @param path - Dot-notation path like 'custom.field' or 'settings.theme.color'\n * @param value - The value to set at the specified path\n * @returns Nested object with the value at the specified path\n */\nexport const setNestedValue = (path, value) => {\n const keys = path.split('.');\n const result = {};\n let current = result;\n for (let i = 0; i < keys.length - 1; i++) {\n current[keys[i]] = {};\n current = current[keys[i]];\n }\n current[keys[keys.length - 1]] = value;\n return result;\n};\n/**\n * Formats a Date object to a local datetime string in ISO format.\n * @param date - The Date object to format\n * @returns Formatted datetime string (YYYY-MM-DDTHH:mm)\n */\nexport const getLocalDateTimeString = (date) => {\n const pad = (n) => n.toString().padStart(2, '0');\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}`;\n};\nexport const formatDurationMMSS = (totalSeconds) => {\n const rawSeconds = typeof totalSeconds === 'number' ? totalSeconds : 0;\n const safeSeconds = Number.isFinite(rawSeconds)\n ? Math.max(0, Math.floor(rawSeconds))\n : 0;\n const minutes = Math.floor(safeSeconds / 60);\n const seconds = safeSeconds % 60;\n return `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\n};\nexport const formatMinutesSecondsMMSS = (minutes, seconds) => {\n const rawMinutes = typeof minutes === 'number' ? minutes : 0;\n const rawSeconds = typeof seconds === 'number' ? seconds : 0;\n const safeMinutes = Number.isFinite(rawMinutes) ? Math.max(0, rawMinutes) : 0;\n const safeSeconds = Number.isFinite(rawSeconds) ? Math.max(0, rawSeconds) : 0;\n return formatDurationMMSS(safeMinutes * 60 + safeSeconds);\n};\nexport const formatTimeHMMA = (date) => {\n const hours = date.getHours();\n const hour12 = hours % 12 || 12;\n const minutes = date.getMinutes().toString().padStart(2, '0');\n const amPm = hours >= 12 ? 'PM' : 'AM';\n return `${hour12}:${minutes} ${amPm}`;\n};\n/**\n * Determines if a survey event is a custom survey (not hosted by moveo.ai).\n * @param event - The survey event to check\n * @returns True if the survey is custom, false if it's a Moveo survey\n */\nexport const isCustomSurveyEvent = (event) => {\n var _a;\n // We might need to find a more reliable way to determine if a survey is custom. This approach cannot have surveys hosted in a moveo.ai domain\n return !((_a = event === null || event === void 0 ? void 0 : event.url) === null || _a === void 0 ? void 0 : _a.includes('moveo.ai'));\n};\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Mic, PhoneOff } from 'lucide-react';\nimport { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { formatDurationMMSS } from '@/util/utils';\nconst THINKING_AUDIO_THRESHOLD = 0.04;\nconst THINKING_DELAY_MS = 1400;\nconst MAX_THINKING_DURATION_MS = 4000;\nconst VoiceWaveIndicator = ({ audioLevel, isMuted = false }) => {\n const prevLevelRef = useRef(0);\n const [smoothedLevel, setSmoothedLevel] = useState(0);\n useEffect(() => {\n // Exponential smoothing: 0.3 weight for new value, 0.7 for previous\n const smoothingFactor = 0.3;\n const targetLevel = audioLevel * 5;\n const newSmoothed = targetLevel * smoothingFactor +\n prevLevelRef.current * (1 - smoothingFactor);\n const changeThreshold = 0.02;\n if (Math.abs(newSmoothed - prevLevelRef.current) > changeThreshold ||\n audioLevel < 0.005) {\n prevLevelRef.current = newSmoothed;\n setSmoothedLevel(newSmoothed);\n }\n }, [audioLevel]);\n const normalizedLevel = Math.min(1, Math.max(0, smoothedLevel));\n const multipliers = [0.4, 0.7, 1.0, 0.7, 0.4];\n const isActive = smoothedLevel > 0.03;\n return (_jsx(\"div\", { className: \"flex h-9 w-9 items-center justify-center gap-[2px]\", children: multipliers.map((multiplier, index) => {\n const scale = isActive\n ? Math.max(0.25, Math.min(0.95, 0.25 + normalizedLevel * multiplier * 0.7))\n : 0.15;\n return (_jsx(\"span\", { className: `h-5 w-[2px] origin-center rounded-full transition-transform duration-150 ${isMuted ? 'bg-slate-400' : 'bg-emerald-500'}`, style: {\n transform: `scaleY(${scale})`,\n opacity: isActive ? 0.7 + normalizedLevel * 0.3 : 0.4,\n } }, index));\n }) }));\n};\nconst PhoneIcon = ({ className = '' }) => (_jsx(\"svg\", { className: `h-[18px] w-[18px] ${className}`, viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", children: _jsx(\"path\", { d: \"M20.01 15.38c-1.23 0-2.42-.2-3.53-.56-.35-.12-.74-.03-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z\" }) }));\nconst ErrorIcon = () => (_jsx(\"svg\", { className: \"h-[18px] w-[18px]\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: 2, xmlns: \"http://www.w3.org/2000/svg\", children: _jsx(\"path\", { strokeLinecap: \"round\", strokeLinejoin: \"round\", d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" }) }));\nconst MutedMicrophoneIcon = () => (_jsxs(\"div\", { className: \"relative h-5 w-5\", children: [_jsx(Mic, { className: \"h-5 w-5\" }), _jsx(\"svg\", { className: \"absolute inset-0 h-5 w-5\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", children: _jsx(\"path\", { d: \"M3 3L17 17\", stroke: \"currentColor\", strokeWidth: 2.5, strokeLinecap: \"round\" }) })] }));\nconst DialpadIcon = () => (_jsxs(\"svg\", { className: \"h-5 w-5\", viewBox: \"0 0 24 24\", fill: \"currentColor\", xmlns: \"http://www.w3.org/2000/svg\", children: [_jsx(\"circle\", { cx: \"6\", cy: \"5\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"12\", cy: \"5\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"18\", cy: \"5\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"6\", cy: \"10\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"12\", cy: \"10\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"18\", cy: \"10\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"6\", cy: \"15\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"12\", cy: \"15\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"18\", cy: \"15\", r: \"1.5\" }), _jsx(\"circle\", { cx: \"12\", cy: \"20\", r: \"1.5\" })] }));\nconst DTMF_KEYS = [\n ['1', '2', '3'],\n ['4', '5', '6'],\n ['7', '8', '9'],\n ['*', '0', '#'],\n];\nconst DtmfKeypad = ({ onSendDigits }) => {\n const { t } = useTranslation();\n const [pressedKey, setPressedKey] = useState(null);\n const handlePress = (digit) => {\n onSendDigits(digit);\n setPressedKey(digit);\n setTimeout(() => setPressedKey(null), 150);\n };\n return (_jsx(\"div\", { className: \"grid grid-cols-3 gap-2 rounded-xl border border-slate-200/80 bg-white/90 p-3 shadow-sm backdrop-blur-md dark:border-slate-700/50 dark:bg-slate-900/80\", role: \"group\", \"aria-label\": t('audio_widget.dtmf.label'), children: DTMF_KEYS.flat().map((digit) => (_jsx(\"button\", { type: \"button\", onClick: () => handlePress(digit), className: `flex h-11 w-11 items-center justify-center rounded-lg text-base font-semibold transition-all duration-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-400 focus-visible:ring-offset-1 active:scale-95 ${pressedKey === digit\n ? 'bg-sky-100 text-sky-700 dark:bg-sky-500/20 dark:text-sky-300'\n : 'bg-slate-100 text-slate-700 hover:bg-slate-200 dark:bg-slate-700/50 dark:text-slate-200 dark:hover:bg-slate-700'}`, \"aria-label\": digit, children: digit }, digit))) }));\n};\nconst AudioWidget = ({ onStartCall, onEndCall, onToggleMute, isMuted, onSendDigits, onEvent, }) => {\n const { t } = useTranslation();\n const [callState, setCallState] = useState('idle');\n const [errorMessage, setErrorMessage] = useState('');\n const [warningMessage, setWarningMessage] = useState('');\n const [audioLevel, setAudioLevel] = useState(0);\n const [isThinking, setIsThinking] = useState(false);\n const [hasUserSpoken, setHasUserSpoken] = useState(false);\n const [callDuration, setCallDuration] = useState(0);\n const [isMutedState, setIsMutedState] = useState(false);\n const [showDialpad, setShowDialpad] = useState(false);\n const warningTimeoutRef = useRef(null);\n const thinkingTimeoutRef = useRef(null);\n const thinkingAutoClearRef = useRef(null);\n const callStartTimeRef = useRef(null);\n const durationIntervalRef = useRef(null);\n useEffect(() => {\n if (callState === 'connected' && callStartTimeRef.current) {\n durationIntervalRef.current = window.setInterval(() => {\n if (callStartTimeRef.current) {\n setCallDuration(Math.floor((Date.now() - callStartTimeRef.current) / 1000));\n }\n }, 1000);\n }\n else if (durationIntervalRef.current) {\n clearInterval(durationIntervalRef.current);\n durationIntervalRef.current = null;\n }\n return () => {\n if (durationIntervalRef.current) {\n clearInterval(durationIntervalRef.current);\n }\n };\n }, [callState]);\n useEffect(() => {\n const handleStateUpdate = ({ state, message, data, }) => {\n switch (state) {\n case 'audio-level': {\n const source = data !== null && data !== void 0 ? data : message;\n let parsedLevel;\n if (typeof source === 'number') {\n parsedLevel = source;\n }\n else if (typeof source === 'string') {\n parsedLevel = parseFloat(source);\n }\n else {\n parsedLevel = Number(source);\n }\n if (!Number.isNaN(parsedLevel)) {\n setAudioLevel(Math.max(0, parsedLevel));\n }\n break;\n }\n case 'warning':\n if (message) {\n setWarningMessage(message);\n if (warningTimeoutRef.current) {\n clearTimeout(warningTimeoutRef.current);\n }\n warningTimeoutRef.current = window.setTimeout(() => {\n setWarningMessage('');\n warningTimeoutRef.current = null;\n }, 5000);\n }\n break;\n case 'warning-cleared':\n setWarningMessage('');\n if (warningTimeoutRef.current) {\n clearTimeout(warningTimeoutRef.current);\n warningTimeoutRef.current = null;\n }\n break;\n case 'remote-audio':\n if (thinkingTimeoutRef.current) {\n clearTimeout(thinkingTimeoutRef.current);\n thinkingTimeoutRef.current = null;\n }\n if (thinkingAutoClearRef.current) {\n clearTimeout(thinkingAutoClearRef.current);\n thinkingAutoClearRef.current = null;\n }\n setIsThinking(false);\n setHasUserSpoken(false);\n break;\n case 'error':\n setCallState('error');\n setErrorMessage(message || t('audio_widget.errors.generic'));\n setIsThinking(false);\n setHasUserSpoken(false);\n setCallDuration(0);\n callStartTimeRef.current = null;\n if (thinkingAutoClearRef.current) {\n clearTimeout(thinkingAutoClearRef.current);\n thinkingAutoClearRef.current = null;\n }\n setTimeout(() => {\n setCallState('idle');\n setErrorMessage('');\n }, 3000);\n break;\n }\n };\n const unsubscribe = onEvent('any', handleStateUpdate);\n return () => {\n unsubscribe();\n if (warningTimeoutRef.current) {\n clearTimeout(warningTimeoutRef.current);\n }\n };\n }, [onEvent, t]);\n useEffect(() => {\n if (callState !== 'connected') {\n if (thinkingTimeoutRef.current) {\n clearTimeout(thinkingTimeoutRef.current);\n thinkingTimeoutRef.current = null;\n }\n if (thinkingAutoClearRef.current) {\n clearTimeout(thinkingAutoClearRef.current);\n thinkingAutoClearRef.current = null;\n }\n // Defer state updates to avoid synchronous setState in effect\n queueMicrotask(() => {\n if (isThinking) {\n setIsThinking(false);\n }\n if (hasUserSpoken) {\n setHasUserSpoken(false);\n }\n });\n return;\n }\n if (audioLevel > THINKING_AUDIO_THRESHOLD) {\n // Defer state updates to avoid synchronous setState in effect\n queueMicrotask(() => {\n if (!hasUserSpoken) {\n setHasUserSpoken(true);\n }\n if (isThinking) {\n setIsThinking(false);\n }\n });\n if (thinkingTimeoutRef.current) {\n clearTimeout(thinkingTimeoutRef.current);\n thinkingTimeoutRef.current = null;\n }\n if (thinkingAutoClearRef.current) {\n clearTimeout(thinkingAutoClearRef.current);\n thinkingAutoClearRef.current = null;\n }\n return;\n }\n if (hasUserSpoken && !isThinking && !thinkingTimeoutRef.current) {\n thinkingTimeoutRef.current = window.setTimeout(() => {\n setIsThinking(true);\n thinkingTimeoutRef.current = null;\n }, THINKING_DELAY_MS);\n }\n }, [audioLevel, callState, hasUserSpoken, isThinking]);\n useEffect(() => {\n return () => {\n if (thinkingTimeoutRef.current) {\n clearTimeout(thinkingTimeoutRef.current);\n }\n if (thinkingAutoClearRef.current) {\n clearTimeout(thinkingAutoClearRef.current);\n }\n };\n }, []);\n useEffect(() => {\n if (isThinking) {\n if (thinkingAutoClearRef.current) {\n clearTimeout(thinkingAutoClearRef.current);\n }\n thinkingAutoClearRef.current = window.setTimeout(() => {\n setIsThinking(false);\n setHasUserSpoken(false);\n thinkingAutoClearRef.current = null;\n }, MAX_THINKING_DURATION_MS);\n }\n else if (thinkingAutoClearRef.current) {\n clearTimeout(thinkingAutoClearRef.current);\n thinkingAutoClearRef.current = null;\n }\n }, [isThinking]);\n const handleStartCall = async () => {\n try {\n setCallState('connecting');\n setErrorMessage('');\n setAudioLevel(0);\n setIsThinking(false);\n setHasUserSpoken(false);\n setCallDuration(0);\n callStartTimeRef.current = null;\n await onStartCall();\n setCallState('connected');\n callStartTimeRef.current = Date.now();\n setCallDuration(0);\n }\n catch (error) {\n setCallState('error');\n setIsThinking(false);\n setHasUserSpoken(false);\n setErrorMessage(error instanceof Error\n ? error.message\n : t('audio_widget.errors.start_failed'));\n setCallDuration(0);\n callStartTimeRef.current = null;\n }\n };\n const handleEndCall = () => {\n if (thinkingTimeoutRef.current) {\n clearTimeout(thinkingTimeoutRef.current);\n thinkingTimeoutRef.current = null;\n }\n if (durationIntervalRef.current) {\n clearInterval(durationIntervalRef.current);\n durationIntervalRef.current = null;\n }\n onEndCall();\n setCallState('idle');\n setAudioLevel(0);\n setIsThinking(false);\n setHasUserSpoken(false);\n setCallDuration(0);\n setIsMutedState(false);\n setShowDialpad(false);\n callStartTimeRef.current = null;\n if (thinkingAutoClearRef.current) {\n clearTimeout(thinkingAutoClearRef.current);\n thinkingAutoClearRef.current = null;\n }\n };\n const handleToggleMute = () => {\n onToggleMute();\n setIsMutedState(isMuted());\n };\n const showSpinner = callState === 'connecting';\n const buttonToneClass = callState === 'error'\n ? 'bg-rose-50/80 text-rose-600 border border-rose-200/60 shadow-[0_2px_8px_rgba(244,63,94,0.12)] dark:bg-rose-500/15 dark:text-rose-300 dark:border-rose-500/30'\n : callState === 'connected'\n ? 'bg-emerald-50/80 text-emerald-600 border border-emerald-200/60 shadow-[0_2px_8px_rgba(16,185,129,0.15)] hover:bg-gradient-to-br hover:from-red-500 hover:to-red-600 hover:text-white hover:border-red-500/20 hover:shadow-[0_6px_20px_rgba(239,68,68,0.35)] dark:bg-emerald-500/15 dark:text-emerald-300 dark:border-emerald-500/30 dark:hover:from-red-600 dark:hover:to-red-700 transition-colors'\n : callState === 'connecting'\n ? 'bg-sky-50/80 text-sky-600 border border-sky-200/60 shadow-[0_2px_8px_rgba(14,165,233,0.12)] dark:bg-sky-500/15 dark:text-sky-300 dark:border-sky-500/30'\n : 'bg-gradient-to-br from-emerald-500 to-emerald-600 text-white border border-emerald-500/20 shadow-[0_4px_14px_rgba(16,185,129,0.25)] hover:shadow-[0_6px_20px_rgba(16,185,129,0.35)] dark:from-emerald-600 dark:to-emerald-700 dark:border-emerald-500/30';\n const spinnerBorderClass = callState === 'error'\n ? 'border-t-rose-400/60 border-r-rose-300/30 border-b-transparent border-l-transparent'\n : isThinking\n ? 'border-t-sky-400/60 border-r-sky-300/30 border-b-transparent border-l-transparent'\n : 'border-t-sky-500/60 border-r-sky-400/30 border-b-transparent border-l-transparent';\n const statusLabel = callState === 'idle'\n ? t('audio_widget.status.ready')\n : callState === 'connecting'\n ? t('audio_widget.status.connecting')\n : callState === 'connected'\n ? isThinking\n ? t('audio_widget.status.thinking')\n : t('audio_widget.status.on_call')\n : t('audio_widget.status.error');\n const statusToneClass = callState === 'error'\n ? 'text-rose-500 dark:text-rose-400'\n : callState === 'connected'\n ? 'text-emerald-500 dark:text-emerald-400'\n : callState === 'connecting'\n ? 'text-sky-500 dark:text-sky-400'\n : 'text-slate-500 dark:text-slate-400';\n const buttonActionLabel = callState === 'idle' || callState === 'error'\n ? t('audio_widget.actions.start')\n : callState === 'connecting'\n ? t('audio_widget.actions.cancel')\n : t('audio_widget.actions.end');\n const srStatus = callState === 'idle'\n ? t('audio_widget.sr.ready')\n : callState === 'connecting'\n ? t('audio_widget.sr.connecting')\n : callState === 'connected'\n ? isThinking\n ? t('audio_widget.sr.connected_thinking')\n : t('audio_widget.sr.connected')\n : errorMessage\n ? t('audio_widget.sr.error_with_message', { message: errorMessage })\n : t('audio_widget.sr.error');\n const handlePrimaryAction = () => {\n if (callState === 'idle' || callState === 'error') {\n void handleStartCall();\n return;\n }\n handleEndCall();\n };\n return (_jsxs(\"div\", { className: \"relative font-sans text-slate-800 antialiased dark:text-slate-100\", children: [warningMessage && (_jsx(\"div\", { className: \"absolute -top-14 left-1/2 w-max max-w-[18rem] -translate-x-1/2 rounded-full bg-amber-100/90 px-4 py-2 text-xs font-medium text-amber-800 shadow-lg shadow-amber-200/70 ring-1 ring-amber-300 backdrop-blur dark:bg-amber-500/15 dark:text-amber-200 dark:ring-amber-400/40\", role: \"status\", \"aria-live\": \"polite\", children: warningMessage })), _jsxs(\"div\", { className: \"inline-flex min-w-[260px] items-center gap-3 rounded-2xl border border-slate-200/80 bg-white/90 px-5 py-3.5 shadow-sm backdrop-blur-md backdrop-saturate-150 transition-all duration-200 hover:shadow-md dark:border-slate-700/50 dark:bg-slate-900/80 dark:shadow-xl dark:shadow-slate-950/30\", children: [_jsxs(\"button\", { type: \"button\", onClick: handlePrimaryAction, className: `group relative flex h-12 w-12 shrink-0 items-center justify-center rounded-full transition-all duration-200 hover:scale-[1.05] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white active:scale-[0.98] dark:focus-visible:ring-offset-slate-950 ${buttonToneClass}`, \"aria-label\": buttonActionLabel, title: callState === 'error' && errorMessage ? errorMessage : statusLabel, children: [_jsx(\"span\", { className: \"sr-only\", children: srStatus }), callState === 'connected' ? (_jsxs(_Fragment, { children: [_jsx(\"div\", { className: \"absolute inset-0 flex items-center justify-center transition-opacity duration-200 group-hover:opacity-0\", children: _jsx(VoiceWaveIndicator, { audioLevel: audioLevel, isMuted: isMutedState }) }), _jsx(\"div\", { className: \"absolute inset-0 flex items-center justify-center opacity-0 transition-opacity duration-200 group-hover:opacity-100\", children: _jsx(PhoneOff, { className: \"h-5 w-5\" }) })] })) : callState === 'error' ? (_jsx(ErrorIcon, {})) : (_jsx(PhoneIcon, { className: callState === 'idle'\n ? 'fill-white'\n : 'fill-sky-600 dark:fill-sky-300' })), showSpinner ? (_jsx(\"span\", { className: `pointer-events-none absolute inset-[-4px] rounded-full border border-transparent ${spinnerBorderClass} animate-spin` })) : null] }), callState === 'connected' && (_jsx(\"button\", { type: \"button\", onClick: handleToggleMute, className: `flex h-12 w-12 shrink-0 items-center justify-center rounded-full transition-all duration-200 hover:scale-105 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 active:scale-95 ${isMutedState\n ? 'bg-amber-100 text-amber-700 hover:bg-amber-200 focus-visible:ring-amber-400 dark:bg-amber-500/20 dark:text-amber-300 dark:hover:bg-amber-500/30'\n : 'bg-slate-100 text-slate-600 hover:bg-slate-200 focus-visible:ring-slate-400 dark:bg-slate-700/50 dark:text-slate-300 dark:hover:bg-slate-700'}`, \"aria-label\": isMutedState\n ? t('audio_widget.mute.unmute_microphone')\n : t('audio_widget.mute.mute_microphone'), title: isMutedState\n ? t('audio_widget.mute.unmute')\n : t('audio_widget.mute.mute'), children: isMutedState ? (_jsx(MutedMicrophoneIcon, {})) : (_jsx(Mic, { className: \"h-5 w-5\" })) })), callState === 'connected' && (_jsxs(\"div\", { className: \"relative shrink-0\", children: [_jsx(\"button\", { type: \"button\", onClick: () => setShowDialpad((prev) => !prev), className: `flex h-12 w-12 items-center justify-center rounded-full transition-all duration-200 hover:scale-105 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 active:scale-95 ${showDialpad\n ? 'bg-sky-100 text-sky-700 hover:bg-sky-200 focus-visible:ring-sky-400 dark:bg-sky-500/20 dark:text-sky-300 dark:hover:bg-sky-500/30'\n : 'bg-slate-100 text-slate-600 hover:bg-slate-200 focus-visible:ring-slate-400 dark:bg-slate-700/50 dark:text-slate-300 dark:hover:bg-slate-700'}`, \"aria-label\": t('audio_widget.dtmf.toggle'), title: t('audio_widget.dtmf.toggle'), \"aria-expanded\": showDialpad, children: _jsx(DialpadIcon, {}) }), showDialpad && (_jsx(\"div\", { className: \"absolute bottom-full left-1/2 mb-5 w-max -translate-x-1/2\", children: _jsx(DtmfKeypad, { onSendDigits: onSendDigits }) }))] })), _jsxs(\"div\", { className: \"relative flex flex-col gap-1 overflow-hidden leading-tight\", children: [_jsx(\"span\", { className: `relative z-10 text-[0.65rem] font-medium uppercase tracking-[0.25em] ${statusToneClass} transition-colors duration-200`, children: statusLabel }), callState === 'connected' && (_jsx(\"span\", { className: \"animate-in fade-in slide-in-from-bottom-1 relative z-10 font-mono text-[0.8rem] text-slate-600 transition-all duration-500 dark:text-slate-400\", children: formatDurationMMSS(callDuration) }))] })] })] }));\n};\nexport { AudioWidget };\n","import debug from 'debug';\nimport { createElement } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { buildWebVoiceWsUrl, fetchWebVoiceConfig, } from '@/controller/webrtc/config-client';\nimport { WebRTCProvider } from '@/controller/webrtc/webrtc-provider';\nimport { AudioWidget } from '@/newComponents/AudioWidget';\n/**\n * Public API for the Moveo WebRTC voice widget.\n * Same usage pattern as AudioController:\n * const ctrl = await MoveoWebRTC.init({ integrationId });\n * ctrl.on('transcript', handler);\n */\nexport class WebRTCController {\n constructor(config) {\n this.provider = null;\n this.widgetRoot = null;\n this.widgetContainer = null;\n this.widgetKey = 0;\n this.prevProviderState = null;\n this.mq = null;\n this.mqListener = null;\n this.config = {\n host: config.host || 'https://channels.moveo.ai',\n integrationId: config.integrationId,\n };\n this.log = debug(`moveo:webrtc:controller:${config.integrationId}`);\n }\n async init() {\n // No /config fetch here: minting a session token (and TURN credential) at\n // page load would expire before the user clicks call and burn rate-limit\n // budget on non-calls. startCall() fetches it per call attempt.\n const wsUrl = buildWebVoiceWsUrl(this.config.host, this.config.integrationId);\n // The provider re-fetches /config (fresh token) on its reconnect path.\n this.provider = new WebRTCProvider(wsUrl, () => fetchWebVoiceConfig(this.config.host, this.config.integrationId));\n // Re-render AudioWidget with a new key only on a clean call end —\n // i.e. when transitioning from an active call (connected | reconnecting)\n // back to idle (server hangup, WS close mid-call). Skip the reset when\n // coming from 'error' so AudioWidget's 3-second error display can run,\n // and skip on 'connecting' → 'idle' so a cancelled connect doesn't double\n // up with AudioWidget's own state.\n this.provider.on('state-change', ({ data }) => {\n const next = data;\n const prev = this.prevProviderState;\n if (next === 'idle' &&\n (prev === 'connected' || prev === 'reconnecting')) {\n this.resetWidget();\n }\n this.prevProviderState = next;\n });\n this.createWidgetContainer();\n this.renderWidget();\n this.log('WebRTCController initialized');\n return this;\n }\n async startCall() {\n if (!this.provider)\n return;\n // Fetch a fresh /config (TURN + session token) per call attempt. Errors\n // here propagate to AudioWidget, which shows them when the user clicks call.\n const voiceConfig = await fetchWebVoiceConfig(this.config.host, this.config.integrationId);\n this.provider.setConfig(voiceConfig);\n await this.provider.connect();\n }\n endCall() {\n var _a;\n (_a = this.provider) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n toggleMute() {\n var _a;\n (_a = this.provider) === null || _a === void 0 ? void 0 : _a.toggleMute();\n }\n isMuted() {\n var _a, _b;\n return (_b = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.isMuted()) !== null && _b !== void 0 ? _b : false;\n }\n sendDigits(digits) {\n var _a;\n (_a = this.provider) === null || _a === void 0 ? void 0 : _a.sendDigits(digits);\n }\n on(event, handler) {\n var _a, _b;\n return (_b = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.on(event, handler)) !== null && _b !== void 0 ? _b : (() => { });\n }\n off(event, handler) {\n var _a;\n (_a = this.provider) === null || _a === void 0 ? void 0 : _a.off(event, handler);\n }\n destroy() {\n var _a;\n (_a = this.provider) === null || _a === void 0 ? void 0 : _a.disconnect();\n this.provider = null;\n if (this.mq && this.mqListener) {\n this.mq.removeEventListener('change', this.mqListener);\n }\n this.mq = null;\n this.mqListener = null;\n if (this.widgetRoot) {\n this.widgetRoot.unmount();\n this.widgetRoot = null;\n }\n if (this.widgetContainer) {\n document.body.removeChild(this.widgetContainer);\n this.widgetContainer = null;\n }\n }\n createWidgetContainer() {\n this.widgetContainer = document.createElement('div');\n this.widgetContainer.id = 'moveo-webrtc-widget';\n this.widgetContainer.style.position = 'fixed';\n this.widgetContainer.style.zIndex = '2147483647';\n this.widgetContainer.style.bottom = '20px';\n this.widgetContainer.style.right = '20px';\n this.applyDarkMode();\n document.body.appendChild(this.widgetContainer);\n }\n applyDarkMode() {\n if (!this.widgetContainer || typeof window.matchMedia !== 'function')\n return;\n this.mq = window.matchMedia('(prefers-color-scheme: dark)');\n const sync = (dark) => {\n var _a;\n (_a = this.widgetContainer) === null || _a === void 0 ? void 0 : _a.classList.toggle('dark', dark);\n };\n sync(this.mq.matches);\n this.mqListener = (e) => sync(e.matches);\n this.mq.addEventListener('change', this.mqListener);\n }\n /** Re-render AudioWidget with a new key, forcing React to reset all internal state */\n resetWidget() {\n this.widgetKey++;\n if (this.widgetRoot) {\n this.renderWidgetElement();\n }\n }\n renderWidget() {\n if (!this.widgetContainer) {\n throw new Error('Widget container not created');\n }\n this.widgetRoot = createRoot(this.widgetContainer);\n this.renderWidgetElement();\n }\n renderWidgetElement() {\n // AudioWidget's onEvent expects AudioControllerEventName which is a subset of VoiceEvent.\n // The types are structurally compatible at runtime. Cast to satisfy TS.\n this.widgetRoot.render(createElement(AudioWidget, {\n key: this.widgetKey,\n onStartCall: this.startCall.bind(this),\n onEndCall: this.endCall.bind(this),\n onToggleMute: this.toggleMute.bind(this),\n isMuted: this.isMuted.bind(this),\n onSendDigits: this.sendDigits.bind(this),\n onEvent: this.on.bind(this),\n }));\n }\n}\n","const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace(/_/g, '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n const keySeparator = opts?.keySeparator ?? '.';\n const nsSeparator = opts?.nsSeparator ?? ':';\n if (path.length > 1 && nsSeparator) {\n const ns = opts?.ns;\n const namespaces = ns ? Array.isArray(ns) ? ns : [ns] : [];\n if (namespaces.includes(path[0])) {\n return `${path[0]}${nsSeparator}${path.slice(1).join(keySeparator)}`;\n }\n }\n return path.join(keySeparator);\n}\n\nconst checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n if (resolved?.res === undefined) return false;\n const isObject = shouldHandleAsObject(resolved.res);\n if (opt.returnObjects === false && isObject) {\n return false;\n }\n return true;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : String(k));\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n if (Array.isArray(keys)) keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : k);\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (typeof Intl === 'undefined') {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${regexEscape(sep)}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || (matchedDoubleQuotes?.length ?? 0) % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs?.indexOf?.('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n if (typeof options.initImmediate === 'boolean') options.initAsync = options.initImmediate;\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nconst SUPPORT_NOTICE_KEY = '__i18next_supportNoticeShown';\nconst getSupportNoticeShown = () => typeof globalThis !== 'undefined' && !!globalThis[SUPPORT_NOTICE_KEY];\nconst setSupportNoticeShown = () => {\n if (typeof globalThis !== 'undefined') globalThis[SUPPORT_NOTICE_KEY] = true;\n};\nconst usesLocize = inst => {\n if (inst?.modules?.backend?.name?.indexOf('Locize') > 0) return true;\n if (inst?.modules?.backend?.constructor?.name?.indexOf('Locize') > 0) return true;\n if (inst?.options?.backend?.backends) {\n if (inst.options.backend.backends.some(b => b?.name?.indexOf('Locize') > 0 || b?.constructor?.name?.indexOf('Locize') > 0)) return true;\n }\n if (inst?.options?.backend?.projectId) return true;\n if (inst?.options?.backend?.backendOptions) {\n if (inst.options.backend.backendOptions.some(b => b?.projectId)) return true;\n }\n return false;\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n if (typeof this.options.overloadTranslationOptionHandler !== 'function') {\n this.options.overloadTranslationOptionHandler = defOpts.overloadTranslationOptionHandler;\n }\n if (this.options.showSupportNotice !== false && !usesLocize(this) && !getSupportNoticeShown()) {\n if (typeof console !== 'undefined' && typeof console.info !== 'undefined') console.info('🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙');\n setSupportNoticeShown();\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;\n if (usingLegacyFormatFunction) {\n this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);\n }\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && this.languages.indexOf(l) < 0 && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, {\n ...this.options,\n ...opts\n });\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, {\n ...this.options,\n ...opts\n });\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n const instance = new I18n(options, callback);\n instance.createInstance = I18n.createInstance;\n return instance;\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n if (options.interpolation) {\n const defOpts = get();\n const mergedInterpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation,\n ...options.interpolation\n };\n const mergedForInterpolator = {\n ...mergedOptions,\n interpolation: mergedInterpolation\n };\n clone.services.interpolator = new Interpolator(mergedForInterpolator);\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction hasXSS(input) {\n if (typeof input !== 'string') return false;\n\n // Common XSS attack patterns\n const xssPatterns = [/<\\s*script.*?>/i, /<\\s*\\/\\s*script\\s*>/i, /<\\s*img.*?on\\w+\\s*=/i, /<\\s*\\w+\\s*on\\w+\\s*=.*?>/i, /javascript\\s*:/i, /vbscript\\s*:/i, /expression\\s*\\(/i, /eval\\s*\\(/i, /alert\\s*\\(/i, /document\\.cookie/i, /document\\.write\\s*\\(/i, /window\\.location/i, /innerHTML/i];\n return xssPatterns.some(pattern => pattern.test(input));\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = function (name, val) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n path: '/'\n };\n const opt = options;\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n if (opt.partitioned) str += '; Partitioned';\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, value, cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name, domain) {\n this.create(name, '', -1, domain);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hash = {\n name: 'hash',\n // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property\n lookup(_ref) {\n let {\n lookupHash,\n lookupFromHashIndex\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n const {\n hash\n } = window.location;\n if (hash && hash.length > 2) {\n const query = hash.substring(1);\n if (lookupHash) {\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupHash) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n if (found) return found;\n if (!found && lookupFromHashIndex > -1) {\n const language = hash.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromHashIndex === 'number' ? lookupFromHashIndex : 0;\n return language[index]?.replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n if (!hasLocalStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = typeof window !== 'undefined' && window.sessionStorage !== null;\n if (!hasSessionStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nlet canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nconst order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nconst getDefaults = () => ({\n order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n});\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init() {\n let services = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n languageUtils: {}\n };\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n this.addDetector(hash);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect() {\n let detectionOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.filter(d => d !== undefined && d !== null && !hasXSS(d)).map(d => this.options.convertDetectedLanguage(d));\n if (this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n cacheUserLanguage(lng) {\n let caches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import i18next from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\n/**\n * Audio widget i18n instance with bundled translations.\n *\n * Unlike the main widget (which runs in an iframe served from the Moveo CDN),\n * the audio widget is injected directly into the host page's DOM. This means\n * i18next-http-backend cannot fetch /public/locales/*.json — those paths would\n * resolve to the host site, not the Moveo CDN. Instead, we bundle\n * audio_widget translations inline so no HTTP requests are needed.\n */\nconst resources = {\n el: {\n translation: {\n audio_widget: {\n actions: {\n cancel: 'Ακύρωση δοκιμαστικής κλήσης ήχου',\n end: 'Τερματισμός δοκιμαστικής κλήσης ήχου',\n start: 'Έναρξη δοκιμαστικής κλήσης ήχου',\n },\n errors: {\n generic: 'Παρουσιάστηκε σφάλμα',\n start_failed: 'Δεν ήταν δυνατή η έναρξη της κλήσης',\n },\n mute: {\n mute: 'Σίγαση',\n mute_microphone: 'Σίγαση μικροφώνου',\n unmute: 'Κατάργηση σίγασης',\n unmute_microphone: 'Κατάργηση σίγασης μικροφώνου',\n },\n sr: {\n connected: 'Η κλήση συνδέθηκε',\n connected_thinking: 'Η κλήση συνδέθηκε, δημιουργία απάντησης',\n connecting: 'Σύνδεση κλήσης',\n error: 'Σφάλμα κλήσης',\n error_with_message: 'Σφάλμα κλήσης: {{message}}',\n ready: 'Έτοιμο για πραγματοποίηση κλήσης',\n },\n status: {\n connecting: 'Σύνδεση',\n error: 'Σφάλμα',\n on_call: 'Σε κλήση',\n ready: 'Έτοιμο',\n thinking: 'Σκέφτεται',\n },\n },\n },\n },\n en: {\n translation: {\n audio_widget: {\n actions: {\n cancel: 'Cancel audio preview call',\n end: 'End audio preview call',\n start: 'Start audio preview call',\n },\n errors: {\n generic: 'An error occurred',\n start_failed: 'Failed to start call',\n },\n mute: {\n mute: 'Mute',\n mute_microphone: 'Mute microphone',\n unmute: 'Unmute',\n unmute_microphone: 'Unmute microphone',\n },\n sr: {\n connected: 'Call connected',\n connected_thinking: 'Call connected, generating response',\n connecting: 'Connecting call',\n error: 'Call error',\n error_with_message: 'Call error: {{message}}',\n ready: 'Ready to place a call',\n },\n status: {\n connecting: 'Connecting',\n error: 'Error',\n on_call: 'On call',\n ready: 'Ready',\n thinking: 'Thinking',\n },\n },\n },\n },\n 'pt-br': {\n translation: {\n audio_widget: {\n actions: {\n cancel: 'Cancelar chamada de prévia de áudio',\n end: 'Encerrar chamada de prévia de áudio',\n start: 'Iniciar chamada de prévia de áudio',\n },\n errors: {\n generic: 'Ocorreu um erro',\n start_failed: 'Não foi possível iniciar a chamada',\n },\n mute: {\n mute: 'Silenciar',\n mute_microphone: 'Silenciar microfone',\n unmute: 'Ativar',\n unmute_microphone: 'Ativar microfone',\n },\n sr: {\n connected: 'Chamada conectada',\n connected_thinking: 'Chamada conectada, gerando resposta',\n connecting: 'Conectando chamada',\n error: 'Erro na chamada',\n error_with_message: 'Erro na chamada: {{message}}',\n ready: 'Pronto para iniciar uma chamada',\n },\n status: {\n connecting: 'Conectando',\n error: 'Erro',\n on_call: 'Em chamada',\n ready: 'Pronto',\n thinking: 'Pensando',\n },\n },\n },\n },\n};\nconst audioI18n = i18next.createInstance();\naudioI18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n resources,\n fallbackLng: 'en',\n debug: false,\n interpolation: {\n escapeValue: false,\n },\n react: {\n useSuspense: false,\n },\n detection: {\n order: ['navigator'],\n },\n});\n// eslint-disable-next-line import/no-default-export\nexport default audioI18n;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../node_modules/postcss-loader/dist/cjs.js!./audio.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../node_modules/postcss-loader/dist/cjs.js!./audio.css\";\n export default content && content.locals ? content.locals : undefined;\n","import debug from 'debug';\nimport { WebRTCController, } from '@/controller/webrtc-controller';\nimport './i18n/audio';\nimport '@/audio.css';\nconst log = debug('moveo:webrtc:main');\nexport const init = async (config) => {\n log('MoveoWebRTC.init() called with config', config);\n if (!config.integrationId) {\n const error = new Error('integrationId is required in config');\n log('Initialization failed: integrationId is required', error);\n throw error;\n }\n log('Creating WebRTCController instance');\n const controller = new WebRTCController(config);\n log('Initializing WebRTCController');\n await controller.init();\n log('MoveoWebRTC initialization complete');\n return controller;\n};\nexport { WebRTCController };\nexport const MoveoWebRTC = Object.assign(init, {\n init,\n WebRTCController,\n});\n// eslint-disable-next-line import/no-default-export\nexport default MoveoWebRTC;\n"],"names":["root","factory","exports","module","define","amd","this","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","formatArgs","args","useColors","namespace","humanize","diff","c","color","splice","index","lastC","replace","match","save","namespaces","storage","setItem","removeItem","error","load","r","getItem","process","env","DEBUG","window","type","__nwjs","navigator","userAgent","toLowerCase","m","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","parseInt","localStorage","localstorage","destroy","warned","warn","colors","log","debug","formatters","j","v","message","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","enabled","self","curr","Number","Date","ms","prev","coerce","unshift","format","formatter","val","call","apply","selectColor","extend","Object","defineProperty","enumerable","configurable","get","set","init","delimiter","newDebug","matchesTemplate","search","template","searchIndex","templateIndex","starIndex","matchIndex","default","Error","stack","disable","names","skips","enable","split","trim","filter","Boolean","ns","slice","name","skip","keys","forEach","key","hash","charCodeAt","Math","abs","s","h","d","w","plural","msAbs","n","isPlural","round","options","str","String","exec","parseFloat","parse","isFinite","long","fmtShort","aa","ca","p","a","b","arguments","da","Set","ea","fa","ha","add","ia","createElement","ja","prototype","hasOwnProperty","ka","la","ma","e","f","g","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","toUpperCase","ta","pa","isNaN","qa","test","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","assign","Ma","Na","Oa","prepareStackTrace","Reflect","construct","l","displayName","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","getValue","setValue","stopTracking","Ua","Wa","checked","value","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","Array","isArray","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","indexOf","setProperty","charAt","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","code","location","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","number","password","range","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","node","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","capture","passive","t","J","x","u","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","ref","_owner","_stringRef","refs","Mg","Ng","Og","Pg","Qg","props","Rg","implementation","Sg","Tg","q","y","next","done","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","context","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","payload","callback","nh","K","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","tagName","zh","Ah","Bh","L","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","M","N","O","Ih","Jh","Kh","Lh","P","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","Q","di","lastEffect","stores","ei","fi","gi","hi","ii","create","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","R","Bi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","defaultProps","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","contextType","state","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","getDerivedStateFromError","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","compare","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","S","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Gj","Hj","Ij","Jj","U","Kj","WeakSet","V","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","insertBefore","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","display","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","src","Vk","lk","ceil","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","cache","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","querySelectorAll","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","version","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","err","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","count","toArray","only","Component","Profiler","PureComponent","StrictMode","Suspense","act","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","pop","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","SDPUtils","localCName","generateIdentifier","splitLines","blob","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","prefix","parseCandidate","parts","candidate","foundation","component","protocol","ip","address","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","sdp","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","direction","uri","attributes","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","params","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","parseSsrcMedia","sp","ssrc","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","writeIceParameters","iceLite","parseRtpParameters","description","codecs","headerExtensions","fecMechanisms","rtcp","mline","profile","rtpmapline","fmtps","wildcardRtcpFb","find","existingFeedback","writeRtpDescription","kind","caps","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","maxBitrate","parseRtcpParameters","rtcpParameters","remoteSsrc","obj","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","stream","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","sctp","output","generateSessionId","substr","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","getDirection","getKind","isRejected","parseOLine","username","sessionVersion","netType","addressType","isValidSDP","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","indexByIdentifier","css","sourceMap","references","addElementStyle","byIndex","api","domAPI","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","insert","styleTarget","querySelector","contentDocument","head","getTarget","setAttributes","styleElement","nonce","insertStyleElement","styleTagTransform","removeStyleElement","styleSheet","cssText","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","prop","toStringTag","nc","ServerBusyError","super","ConfigUnavailableError","RateLimitedError","fetchOnce","async","host","integrationId","controller","AbortController","timer","abort","response","fetch","buildConfigUrl","method","signal","DOMException","status","errorCode","json","error_code","_a","statusText","iceServers","sessionToken","fetchWebVoiceConfig","attempt","MAX_INIT_RETRIES","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","pos","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","EventTarget","writable","proto","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","disableLog","bool","disableWarnings","deprecated","oldMethod","newMethod","isObject","compactObject","reduce","accumulator","isObj","isEmptyObject","walkStats","stats","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","shimGetUserMedia","browserDetails","mediaDevices","constraintsToChrome_","mandatory","optional","ideal","exact","max","oldname_","mix","advanced","shimConstraints_","constraints","func","audio","remap","video","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","enumerateDevices","devices","dev","some","label","deviceId","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia","onSuccess","webkitGetUserMedia","origGetUserMedia","cs","getAudioTracks","getVideoTracks","getTracks","stop","reject","shimMediaStream","MediaStream","webkitMediaStream","shimOnTrack","_ontrack","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","receiver","getReceivers","Event","transceiver","streams","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","getSenders","_senders","origAddTrack","addTrack","sender","origRemoveTrack","removeTrack","idx","origAddStream","addStream","origRemoveStream","removeStream","RTCRtpSender","origGetSenders","senders","shimSenderReceiverGetStats","RTCRtpReceiver","getStats","origGetReceivers","receivers","origGetStats","MediaStreamTrack","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","streamId","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","replaceInternalStreamId","internalId","externalStream","internalStream","RegExp","RTCSessionDescription","signalingState","oldStream","nativeMethod","methodObj","desc","origSetLocalDescription","setLocalDescription","replaceExternalStreamId","origLocalDescription","streamid","shimPeerConnection","webkitRTCPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","shimGetDisplayMedia","preferredMediaSource","getDisplayMedia","mediaSource","RTCTrackEvent","mozRTCPeerConnection","shimGetStats","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","localcandidate","remotecandidate","nativeGetStats","selector","onSucc","onErr","stat","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","sendEncodings","shouldPerformCheck","encodingParam","rid","TypeError","scaleResolutionDownBy","RangeError","maxFramerate","getParameters","encodings","setParameters","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","all","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","tracks","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","urls","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","AudioContext","webkitAudioContext","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","toJSON","sdpMid","sdpMLineIndex","shimRTCIceCandidateRelayProtocol","relayProtocol","shimMaxMessageSize","_sctp","browser","mLine","sctpInDescription","isFirefox","getRemoteFirefoxVersion","canSendMMS","remoteIsFirefox","canSendMaxMessageSize","getCanSendMaxMessageSize","remoteMMS","getMaxMessageSize","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","send","byteLength","readyState","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","_safariVersion","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","shimChrome","shimFirefox","shimSafari","userAgentData","brands","chromium","brand","mozGetUserMedia","isSecureContext","supportsUnifiedPlan","RTCRtpTransceiver","adapter","commonShim","browserShim","adapterFactory","AudioLevelMonitor","analyserNode","audioSource","animationId","audioContext","onLevel","createMediaStreamSource","createAnalyser","fftSize","smoothingTimeConstant","connect","dataArray","Float32Array","checkAudioLevel","getFloatTimeDomainData","sum","amplitude","rms","sqrt","normalizedLevel","toFixed","requestAnimationFrame","cancelAnimationFrame","disconnect","close","selectCandidatePair","selectedPairId","pairs","report","selectedCandidatePairId","best","nominated","bt","lastPacketReceivedTimestamp","QUALITY_WARNINGS","CallQualityMonitor","onWarning","onWarningCleared","pollIntervalMs","interval","prevStats","activeWarnings","setInterval","pollStats","clearInterval","clear","jitter","packetsReceived","packetsLost","pair","rtt","currentRoundTripTime","_b","_c","rtp","lossRate","deltaReceived","deltaLost","total","checkWarning","mos","isExceeded","MediaStallDetector","onStall","onRecover","flatPollsThreshold","escalate","isWebKitEngine","prevCounts","flatPolls","stalled","cannotAssessLogged","poll","counts","collectAudioInboundRtp","shrunk","comparable","hasNewReport","packets","before","describeSelectedPair","describe","candidateType","localCandidateId","remoteCandidateId","describeCandidatePair","SignalingClient","onMessage","onClose","ws","wsUrl","WebSocket","timeout","onopen","msg","onerror","onclose","reason","connectForReconnect","reconnectFrame","settled","OPEN","isConnected","SIGNALING_LOSS_JITTER_MS","TERMINAL_RECONNECT_CODES","RECONNECT_ERROR_MESSAGES","session_expired","session_inactive","invalid_credential","max_recovery_exceeded","unexpected_first_frame","WEBRTC_ERRORS","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","WebRTCProvider","fetchConfig","signaling","localStream","remoteStream","remoteAudio","remoteAudioMonitor","audioMonitor","qualityMonitor","stallDetector","pendingCandidates","eventListeners","iceRestarting","iceRestartAttempts","iceRestartTimeout","iceRestartAnswerTimeout","connectResolve","connectReject","resuming","reconnectAttempts","reconnectErrorCode","brainResponseChunks","interruptedRequests","setConfig","config","echoCancellation","noiseSuppression","autoGainControl","emitError","handleSignalingMessage","handleSignalingClose","handleSignalingError","cleanupLocalStream","iceTransportPolicy","audioTrack","ontrack","handleRemoteTrack","onicecandidate","onconnectionstatechange","handleConnectionStateChange","offer","cleanup","level","emit","disconnectInternal","suppressOutboundHangup","_d","_e","_f","_g","_h","_j","_l","_m","_o","_p","srcObject","_q","clearIceRestart","originalSessionID","originalConnectionID","toggleMute","muted","isMuted","getLocalStream","getRemoteStream","sendDigits","digits","digit","on","handler","off","autoplay","play","wasReconnecting","triggerIceRestart","onRestartAttemptExpired","isResumeEligible","beginResume","iceRestart","onIceRestartUnanswered","handleAnswer","request_id","timestamp","handleBrainResponse","handleInterrupt","session_id","connection_id","handleDrain","_code","_reason","_error","jitterMs","sleep","reconnect","reconnect_delay_ms","teardownForReconnect","buildReconnectPeerConnection","flushPendingCandidates","remoteDescription","newState","requestId","final","assembleBrainResponse","chunks","entries","sort","heardIndex","heard_index","ordered","predicate","heardText","unheardText","invoke","mergeClasses","classes","className","array","toPascalCase","string","camelCase","p1","p2","toCamelCase","xmlns","viewBox","fill","stroke","strokeLinecap","strokeLinejoin","hasA11yProp","startsWith","Icon","absoluteStrokeWidth","iconNode","rest","defaultAttributes","attrs","createLucideIcon","iconName","Mic","rx","PhoneOff","alreadyWarned","warnOnce","i18n","isString","services","logger","forward","loadedClb","isInitialized","initialized","loadNamespaces","loadLanguages","lng","preload","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","initReactI18next","setDefaults","react","setI18n","I18nContext","ReportNamespaces","usedNamespaces","addUsedNamespaces","getUsedNamespaces","alwaysNewT","language","keyPrefix","getFixedT","useTranslation","i18nFromProps","i18nFromContext","defaultNS","defaultNSFromContext","reportNamespaces","notReadyT","optsOrDefaultValue","retNotReady","ready","wait","i18nOptions","initializedStoreOnce","every","languages","hasLoadedNamespace","precheck","loadNotPending","backendConnector","backend","isLanguageChangingTo","memoGetT","useMemoizedT","nsMode","getT","getNewT","setT","joinedNS","previousJoinedNS","ignore","usePrevious","boundReset","store","ret","freeze","formatDurationMMSS","totalSeconds","rawSeconds","safeSeconds","minutes","seconds","padStart","VoiceWaveIndicator","audioLevel","prevLevelRef","smoothedLevel","setSmoothedLevel","newSmoothed","isActive","multiplier","scale","transform","PhoneIcon","ErrorIcon","MutedMicrophoneIcon","DialpadIcon","cx","cy","DTMF_KEYS","DtmfKeypad","onSendDigits","pressedKey","setPressedKey","flat","handlePress","AudioWidget","onStartCall","onEndCall","onToggleMute","onEvent","callState","setCallState","errorMessage","setErrorMessage","warningMessage","setWarningMessage","setAudioLevel","isThinking","setIsThinking","hasUserSpoken","setHasUserSpoken","callDuration","setCallDuration","isMutedState","setIsMutedState","showDialpad","setShowDialpad","warningTimeoutRef","thinkingTimeoutRef","thinkingAutoClearRef","callStartTimeRef","durationIntervalRef","unsubscribe","parsedLevel","showSpinner","buttonToneClass","spinnerBorderClass","statusLabel","statusToneClass","buttonActionLabel","srStatus","handleStartCall","title","WebRTCController","provider","widgetRoot","widgetContainer","widgetKey","prevProviderState","mq","mqListener","resetWidget","createWidgetContainer","renderWidget","startCall","voiceConfig","endCall","position","bottom","right","applyDarkMode","matchMedia","sync","dark","classList","toggle","renderWidgetElement","defer","res","rej","makeString","object","lastOfPathSeparatorRegExp","cleanKey","canNotTraverseDeeper","getLastOfPath","path","Empty","stackIndex","setPath","newValue","getPath","deepExtend","overwrite","regexEscape","_entityMap","chars","looksLikeObjectPathRegExpCache","capacity","regExpMap","regExpQueue","getRegExp","pattern","regExpFromCache","regExpNew","deepFind","keySeparator","tokens","nextPath","getCleanedCode","consoleLogger","Logger","concreteLogger","deprecate","lvl","debugOnly","moduleName","clone","baseLogger","EventEmitter","observers","events","numListeners","from","observer","numTimesAdded","ResourceStore","ignoreJSONStructure","addNamespaces","removeNamespaces","getResource","addResource","silent","addResources","resources","addResourceBundle","deep","skipCopy","pack","removeResourceBundle","hasResourceBundle","getResourceBundle","getDataByLanguage","hasLanguageSomeTranslations","postProcessor","processors","addPostProcessor","handle","translator","processor","PATH_KEY","keysFromSelector","opts","proxy","revoke","Proxy","revocable","createProxy","nsSeparator","checkedLoadedFor","shouldHandleAsObject","Translator","changeLanguage","exists","interpolation","opt","resolved","returnObjects","extractFromKey","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","looksLikeObjectPath","interpolator","nestingRegexp","translate","lastKey","overloadTranslationOptionHandler","returnDetails","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","needsZeroSuffixLookup","pluralSeparator","resForObjHndl","resType","extendTranslation","usedDefault","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","suffixes","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","returnedObjectHandler","resTypeIsArray","copy","newKeyToUse","deepKey","defaultVariables","skipInterpolation","skipOnVariables","nestBef","interpolate","nest","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsContextHandling","codes","utils","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","contextSeparator","possibleKey","returnNull","returnEmptyString","resourceStore","optionsKeys","useOptionsReplaceForData","option","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","formattedCode","Intl","getCanonicalLocales","lowerCaseLng","cleanCode","isSupportedCode","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngScOnly","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","suffixesOrder","zero","one","two","few","many","other","dummyRule","select","resolvedOptions","pluralCategories","PluralResolver","pluralRulesCache","clearCache","getRule","cleanedCode","cacheKey","rule","PluralRules","lngPart","needsPlural","getPluralFormsOfKey","pluralCategory1","pluralCategory2","pluralCategory","prepend","deepFindWithDefaults","defaultData","getPathWithDefaults","regexSafe","Interpolator","escapeValue","escape$1","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","lastIndex","regexp","regexpUnescape","replaces","handleFormat","interpolationkey","missingInterpolationHandler","regex","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","keyEndIndex","lastIndexOf","elem","createCachedFormatter","fn","optForCache","formatParams","frm","createNonCachedFormatter","Formatter","cacheInBuiltFormats","formats","NumberFormat","currency","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","addCached","findIndex","mem","formatName","formatOptions","formatStr","optStr","trimmedKey","parseFormatStr","formatted","valOptions","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queueLoad","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","errors","pushPath","removePending","loadedKeys","read","fcName","tried","resolver","prepareLoading","loadOne","fallbackValue","isUpdate","clb","initAsync","simplifyPluralSuffix","partialBundledLanguages","tDescription","transformOptions","initImmediate","noop","SUPPORT_NOTICE_KEY","I18n","inst","external","getOwnPropertyNames","getPrototypeOf","isClone","isInitializing","defOpts","showSupportNotice","backends","projectId","backendOptions","globalThis","info","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","deferred","finish","loadResources","usedCallback","append","resolvedLanguage","setResolvedLanguage","reloadResources","use","lngInLngs","setLngProps","setLng","cacheUserLanguage","detect","fixedT","resultKey","setDefaultNamespace","lastLng","loadState","preResult","preloaded","newLngs","dir","Locale","getTextInfo","createInstance","cloneInstance","forkResourceStore","mergedOptions","clonedData","acc","mergedInterpolation","mergedForInterpolator","fieldContentRegExp","cookie","domain","cookieOptions","sameSite","expires","setTime","getTime","maxAge","toUTCString","httpOnly","secure","partitioned","serializeCookie","nameEQ","cookie$1","lookup","_ref","lookupCookie","_ref2","cookieMinutes","cookieDomain","querystring","lookupQuerystring","lookupHash","lookupFromHashIndex","query","hasLocalStorageSupport","localStorageAvailable","testKey","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","internalHtmlTag","getAttribute","lookupFromPathIndex","pathname","subdomain","lookupFromSubdomainIndex","internalLookupFromSubdomainIndex","hostname","canCookies","Browser","detectors","defaults","caches","excludeCacheFor","convertDetectedLanguage","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","translation","audio_widget","actions","cancel","generic","start_failed","mute","mute_microphone","unmute","unmute_microphone","sr","connected","connected_thinking","connecting","error_with_message","on_call","thinking","en","locals"],"sourceRoot":""}