responses-proxy 0.1.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 (161) hide show
  1. package/README.md +56 -0
  2. package/cli.js +118 -0
  3. package/dist/anthropic-messages.js +383 -0
  4. package/dist/anthropic-messages.test.js +209 -0
  5. package/dist/audit-log.js +138 -0
  6. package/dist/audit-log.test.js +480 -0
  7. package/dist/billing-expiration.js +70 -0
  8. package/dist/billing-expiration.test.js +114 -0
  9. package/dist/billing.js +716 -0
  10. package/dist/billing.test.js +228 -0
  11. package/dist/chatgpt-oauth-store.js +240 -0
  12. package/dist/chatgpt-oauth-store.test.js +88 -0
  13. package/dist/chatgpt-oauth.js +118 -0
  14. package/dist/chatgpt-oauth.test.js +63 -0
  15. package/dist/chatgpt-provider-auth.js +60 -0
  16. package/dist/chatgpt-provider-auth.test.js +101 -0
  17. package/dist/client/app-icon.svg +17 -0
  18. package/dist/client/assets/index-C7Vvhst8.js +14 -0
  19. package/dist/client/assets/index-DpqgYK3L.css +1 -0
  20. package/dist/client/favicon.svg +17 -0
  21. package/dist/client/index.html +31 -0
  22. package/dist/client-config-apply.js +345 -0
  23. package/dist/client-config-apply.test.js +185 -0
  24. package/dist/client-token-limits.js +111 -0
  25. package/dist/client-token-limits.test.js +129 -0
  26. package/dist/codex-config.js +47 -0
  27. package/dist/codex-setup.js +87 -0
  28. package/dist/codex-setup.test.js +30 -0
  29. package/dist/config.js +314 -0
  30. package/dist/cost-analytics.js +31 -0
  31. package/dist/cost-analytics.test.js +38 -0
  32. package/dist/customer-key-access.js +126 -0
  33. package/dist/customer-key-access.test.js +178 -0
  34. package/dist/customer-keys.js +209 -0
  35. package/dist/customer-keys.test.js +68 -0
  36. package/dist/customer-usage.js +18 -0
  37. package/dist/customer-usage.test.js +55 -0
  38. package/dist/dashboard-auth.js +318 -0
  39. package/dist/dashboard-auth.test.js +133 -0
  40. package/dist/dashboard-serving.test.js +235 -0
  41. package/dist/error-response.js +174 -0
  42. package/dist/error-response.test.js +88 -0
  43. package/dist/forward.js +357 -0
  44. package/dist/health-websocket-manager.js +174 -0
  45. package/dist/http-rate-limit.js +36 -0
  46. package/dist/http-rate-limit.test.js +62 -0
  47. package/dist/kiro-auth.js +136 -0
  48. package/dist/kiro-auth.test.js +234 -0
  49. package/dist/kiro-codewhisperer.js +646 -0
  50. package/dist/kiro-codewhisperer.test.js +219 -0
  51. package/dist/kiro-device-login.js +338 -0
  52. package/dist/kiro-eventstream.js +219 -0
  53. package/dist/kiro-eventstream.test.js +79 -0
  54. package/dist/kiro-forward.js +401 -0
  55. package/dist/kiro-import-cli.js +69 -0
  56. package/dist/kiro-import.js +94 -0
  57. package/dist/kiro-import.test.js +125 -0
  58. package/dist/kiro-token-store.js +196 -0
  59. package/dist/kiro-token-store.test.js +207 -0
  60. package/dist/krouter-usage.js +243 -0
  61. package/dist/model-combo-repository.js +147 -0
  62. package/dist/model-routing.js +69 -0
  63. package/dist/model-routing.test.js +41 -0
  64. package/dist/normalize-request.js +531 -0
  65. package/dist/normalize-request.test.js +277 -0
  66. package/dist/omv-public-firewall.test.js +11 -0
  67. package/dist/package.json +17 -0
  68. package/dist/prompt-cache-state.js +146 -0
  69. package/dist/prompt-cache-state.test.js +71 -0
  70. package/dist/prompt-cache.js +229 -0
  71. package/dist/provider-health-service.js +404 -0
  72. package/dist/provider-request-parameters.js +107 -0
  73. package/dist/provider-request-parameters.test.js +26 -0
  74. package/dist/provider-routing.js +114 -0
  75. package/dist/provider-routing.test.js +64 -0
  76. package/dist/provider-usage.js +314 -0
  77. package/dist/request-timeout-policy.js +61 -0
  78. package/dist/request-timeout-policy.test.js +40 -0
  79. package/dist/response-cache.js +69 -0
  80. package/dist/response-cache.test.js +28 -0
  81. package/dist/routing-combo-repository.js +300 -0
  82. package/dist/routing-engine.js +377 -0
  83. package/dist/routing-integration.js +155 -0
  84. package/dist/routing-simulation-engine.js +326 -0
  85. package/dist/rtk-layer.js +483 -0
  86. package/dist/rtk-layer.test.js +198 -0
  87. package/dist/runtime-provider-repository.js +1742 -0
  88. package/dist/runtime-provider-repository.test.js +1177 -0
  89. package/dist/schema.js +118 -0
  90. package/dist/schema.test.js +16 -0
  91. package/dist/sepay-webhook.js +87 -0
  92. package/dist/sepay-webhook.test.js +142 -0
  93. package/dist/server-body-limit.test.js +35 -0
  94. package/dist/server-client-token-limits.test.js +161 -0
  95. package/dist/server-codex-config-setup.test.js +76 -0
  96. package/dist/server-http-rate-limit.test.js +80 -0
  97. package/dist/server-response-cache.test.js +105 -0
  98. package/dist/server-routes-alias.test.js +39 -0
  99. package/dist/server-sepay-webhook-security.test.js +59 -0
  100. package/dist/server.js +5906 -0
  101. package/dist/session-log.js +178 -0
  102. package/dist/tailnet-funnel-script.test.js +33 -0
  103. package/dist/telegram-bot/actions.js +118 -0
  104. package/dist/telegram-bot/admin-actions.js +103 -0
  105. package/dist/telegram-bot/auth.js +46 -0
  106. package/dist/telegram-bot/auth.test.js +1 -0
  107. package/dist/telegram-bot/bot-identity-repository.js +189 -0
  108. package/dist/telegram-bot/bot-identity-repository.test.js +78 -0
  109. package/dist/telegram-bot/callbacks.js +30 -0
  110. package/dist/telegram-bot/codex-config-delivery.js +38 -0
  111. package/dist/telegram-bot/codex-config-delivery.test.js +75 -0
  112. package/dist/telegram-bot/commands/accounts.js +140 -0
  113. package/dist/telegram-bot/commands/apikey.js +737 -0
  114. package/dist/telegram-bot/commands/apply.js +265 -0
  115. package/dist/telegram-bot/commands/clients.js +13 -0
  116. package/dist/telegram-bot/commands/customer-billing.test.js +271 -0
  117. package/dist/telegram-bot/commands/grant.js +138 -0
  118. package/dist/telegram-bot/commands/grant.test.js +217 -0
  119. package/dist/telegram-bot/commands/help.js +52 -0
  120. package/dist/telegram-bot/commands/me.js +53 -0
  121. package/dist/telegram-bot/commands/models.js +6 -0
  122. package/dist/telegram-bot/commands/oauth.js +64 -0
  123. package/dist/telegram-bot/commands/plans.js +96 -0
  124. package/dist/telegram-bot/commands/providers.js +27 -0
  125. package/dist/telegram-bot/commands/quota.js +10 -0
  126. package/dist/telegram-bot/commands/renew-user.js +139 -0
  127. package/dist/telegram-bot/commands/renew-user.test.js +184 -0
  128. package/dist/telegram-bot/commands/renew.js +1369 -0
  129. package/dist/telegram-bot/commands/renew.test.js +1633 -0
  130. package/dist/telegram-bot/commands/start.js +212 -0
  131. package/dist/telegram-bot/commands/start.test.js +280 -0
  132. package/dist/telegram-bot/commands/status.js +6 -0
  133. package/dist/telegram-bot/commands/tailscale.js +15 -0
  134. package/dist/telegram-bot/commands/tailscale.test.js +76 -0
  135. package/dist/telegram-bot/commands/test.js +51 -0
  136. package/dist/telegram-bot/commands/test.test.js +14 -0
  137. package/dist/telegram-bot/commands/usage.js +10 -0
  138. package/dist/telegram-bot/config.js +98 -0
  139. package/dist/telegram-bot/config.test.js +42 -0
  140. package/dist/telegram-bot/customer-actions.js +160 -0
  141. package/dist/telegram-bot/customer-api-keys.js +68 -0
  142. package/dist/telegram-bot/customer-billing.js +72 -0
  143. package/dist/telegram-bot/customer-workspace-repository.js +134 -0
  144. package/dist/telegram-bot/customer-workspace-repository.test.js +47 -0
  145. package/dist/telegram-bot/dashboard-login.js +39 -0
  146. package/dist/telegram-bot/format.js +140 -0
  147. package/dist/telegram-bot/grants.js +370 -0
  148. package/dist/telegram-bot/grants.test.js +290 -0
  149. package/dist/telegram-bot/index.js +85 -0
  150. package/dist/telegram-bot/message-cleanup.js +55 -0
  151. package/dist/telegram-bot/message-cleanup.test.js +77 -0
  152. package/dist/telegram-bot/message-format.js +45 -0
  153. package/dist/telegram-bot/message-format.test.js +10 -0
  154. package/dist/telegram-bot/proxy-client.js +174 -0
  155. package/dist/telegram-bot/rate-limit.js +95 -0
  156. package/dist/telegram-bot/rate-limit.test.js +58 -0
  157. package/dist/telegram-bot/sessions.js +171 -0
  158. package/dist/telegram-bot/sessions.test.js +107 -0
  159. package/dist/telegram-bot/telegram-adapter.js +126 -0
  160. package/dist/telegram-bot/worker.js +63 -0
  161. package/package.json +39 -0
@@ -0,0 +1,14 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function ee(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\/+/g;function te(e,t){return typeof e==`object`&&e&&e.key!=null?ee(``+e.key):t.toString(36)}function ne(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function re(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,re(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+te(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(k,`$&/`)+`/`),re(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+te(a,u),c+=re(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+te(a,u++),c+=re(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return re(ne(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function ie(e,t,n){if(e==null)return e;var r=[],i=0;return re(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ae(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var A=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},j={map:ie,forEach:function(e,t,n){ie(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ie(e,function(){t++}),t},toArray:function(e){return ie(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=j,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:ae}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,A)}catch(e){A(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.5`})),d=o(((e,t)=>{t.exports=u()})),f=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&te(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&te(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var ee=new MessageChannel,k=ee.port2;ee.port1.onmessage=D,O=function(){k.postMessage(null)}}else O=function(){_(D,0)};function te(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,te(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),p=o(((e,t)=>{t.exports=f()})),m=o((e=>{var t=d();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.5`})),h=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=o((e=>{var t=p(),n=d(),r=h();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}var m=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),D=Symbol.for(`react.memo`),O=Symbol.for(`react.lazy`),ee=Symbol.for(`react.activity`),k=Symbol.for(`react.memo_cache_sentinel`),te=Symbol.iterator;function ne(e){return typeof e!=`object`||!e?null:(e=te&&e[te]||e[`@@iterator`],typeof e==`function`?e:null)}var re=Symbol.for(`react.client.reference`);function ie(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===re?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case ee:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case D:return t=e.displayName||null,t===null?ie(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return ie(e(t))}catch{}}return null}var ae=Array.isArray,A=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,j=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,oe={pending:!1,data:null,method:null,action:null},se=[],ce=-1;function le(e){return{current:e}}function M(e){0>ce||(e.current=se[ce],se[ce]=null,ce--)}function N(e,t){ce++,se[ce]=e.current,e.current=t}var ue=le(null),de=le(null),fe=le(null),pe=le(null);function me(e,t){switch(N(fe,t),N(de,e),N(ue,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hd(t),e=Ud(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}M(ue),N(ue,e)}function he(){M(ue),M(de),M(fe)}function ge(e){e.memoizedState!==null&&N(pe,e);var t=ue.current,n=Ud(t,e.type);t!==n&&(N(de,e),N(ue,n))}function _e(e){de.current===e&&(M(ue),M(de)),pe.current===e&&(M(pe),$f._currentValue=oe)}var ve,ye;function be(e){if(ve===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ve=t&&t[1]||``,ye=-1<e.stack.indexOf(`
2
+ at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
3
+ `+ve+e+ye}var xe=!1;function Se(e,t){if(!e||xe)return``;xe=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,`props`,{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,`name`,{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
4
+ `),l=s.split(`
5
+ `);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
6
+ `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{xe=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?be(n):``}function Ce(e,t){switch(e.tag){case 26:case 27:case 5:return be(e.type);case 16:return be(`Lazy`);case 13:return e.child!==t&&t!==null?be(`Suspense Fallback`):be(`Suspense`);case 19:return be(`SuspenseList`);case 0:case 15:return Se(e.type,!1);case 11:return Se(e.type.render,!1);case 1:return Se(e.type,!0);case 31:return be(`Activity`);default:return``}}function we(e){try{var t=``,n=null;do t+=Ce(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
7
+ Error generating stack: `+e.message+`
8
+ `+e.stack}}var Te=Object.prototype.hasOwnProperty,Ee=t.unstable_scheduleCallback,De=t.unstable_cancelCallback,Oe=t.unstable_shouldYield,ke=t.unstable_requestPaint,Ae=t.unstable_now,je=t.unstable_getCurrentPriorityLevel,Me=t.unstable_ImmediatePriority,Ne=t.unstable_UserBlockingPriority,Pe=t.unstable_NormalPriority,P=t.unstable_LowPriority,F=t.unstable_IdlePriority,Fe=t.log,Ie=t.unstable_setDisableYieldValue,Le=null,Re=null;function ze(e){if(typeof Fe==`function`&&Ie(e),Re&&typeof Re.setStrictMode==`function`)try{Re.setStrictMode(Le,e)}catch{}}var Be=Math.clz32?Math.clz32:Ue,Ve=Math.log,He=Math.LN2;function Ue(e){return e>>>=0,e===0?32:31-(Ve(e)/He|0)|0}var We=256,Ge=262144,Ke=4194304;function qe(e){var t=e&42;if(t!==0)return t;switch(e&-e){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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Je(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=qe(n))):i=qe(o):i=qe(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=qe(n))):i=qe(o)):i=qe(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ye(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Xe(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32: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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ze(){var e=Ke;return Ke<<=1,!(Ke&62914560)&&(Ke=4194304),e}function Qe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $e(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function et(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Be(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&tt(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function tt(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Be(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function nt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Be(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function rt(e,t){var n=t&-t;return n=n&42?1:it(n),(n&(e.suspendedLanes|t))===0?n:0}function it(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;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:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function at(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function ot(){var e=j.p;return e===0?(e=window.event,e===void 0?32:mp(e.type)):e}function st(e,t){var n=j.p;try{return j.p=e,t()}finally{j.p=n}}var ct=Math.random().toString(36).slice(2),lt=`__reactFiber$`+ct,ut=`__reactProps$`+ct,dt=`__reactContainer$`+ct,ft=`__reactEvents$`+ct,pt=`__reactListeners$`+ct,mt=`__reactHandles$`+ct,ht=`__reactResources$`+ct,gt=`__reactMarker$`+ct;function _t(e){delete e[lt],delete e[ut],delete e[ft],delete e[pt],delete e[mt]}function vt(e){var t=e[lt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[dt]||n[lt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=ff(e);e!==null;){if(n=e[lt])return n;e=ff(e)}return t}e=n,n=e.parentNode}return null}function yt(e){if(e=e[lt]||e[dt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function bt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function xt(e){var t=e[ht];return t||=e[ht]={hoistableStyles:new Map,hoistableScripts:new Map},t}function St(e){e[gt]=!0}var Ct=new Set,wt={};function Tt(e,t){Et(e,t),Et(e+`Capture`,t)}function Et(e,t){for(wt[e]=t,e=0;e<t.length;e++)Ct.add(t[e])}var Dt=RegExp(`^[: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]*$`),Ot={},kt={};function At(e){return Te.call(kt,e)?!0:Te.call(Ot,e)?!1:Dt.test(e)?kt[e]=!0:(Ot[e]=!0,!1)}function jt(e,t,n){if(At(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function Mt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function Nt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Pt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Ft(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function It(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function I(e){if(!e._valueTracker){var t=Ft(e)?`checked`:`value`;e._valueTracker=It(e,t,``+e[t])}}function Lt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Ft(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function Rt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var L=/[\n"\\]/g;function zt(e){return e.replace(L,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Bt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Pt(t)):e.value!==``+Pt(t)&&(e.value=``+Pt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Vt(e,o,Pt(n)):Vt(e,o,Pt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Pt(s):e.removeAttribute(`name`)}function R(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){I(e);return}n=n==null?``:``+Pt(n),t=t==null?n:``+Pt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),I(e)}function Vt(e,t,n){t===`number`&&Rt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Ht(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Pt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Ut(e,t,n){if(t!=null&&(t=``+Pt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Pt(n)}function z(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(ae(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=Pt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),I(e)}function B(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var V=new Set(`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 scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Wt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||V.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Gt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&Wt(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&Wt(e,o,t[o])}function Kt(e){if(e.indexOf(`-`)===-1)return!1;switch(e){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 qt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Jt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Yt(e){return Jt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Xt(){}var Zt=null;function Qt(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var $t=null,en=null;function tn(e){var t=yt(e);if(t&&(e=t.stateNode)){var n=e[ut]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Bt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+zt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[ut]||null;if(!a)throw Error(i(90));Bt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Lt(r)}break a;case`textarea`:Ut(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Ht(e,!!n.multiple,t,!1)}}}var nn=!1;function rn(e,t,n){if(nn)return e(t,n);nn=!0;try{return e(t)}finally{if(nn=!1,($t!==null||en!==null)&&(bu(),$t&&(t=$t,e=en,en=$t=null,tn(t),e)))for(t=0;t<e.length;t++)tn(e[t])}}function an(e,t){var n=e.stateNode;if(n===null)return null;var r=n[ut]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var on=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),sn=!1;if(on)try{var cn={};Object.defineProperty(cn,`passive`,{get:function(){sn=!0}}),window.addEventListener(`test`,cn,cn),window.removeEventListener(`test`,cn,cn)}catch{sn=!1}var ln=null,un=null,dn=null;function fn(){if(dn)return dn;var e,t=un,n=t.length,r,i=`value`in ln?ln.value:ln.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return dn=i.slice(e,1<r?1-r:void 0)}function pn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function mn(){return!0}function hn(){return!1}function gn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?mn:hn,this.isPropagationStopped=hn,this}return m(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=mn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=mn)},persist:function(){},isPersistent:mn}),t}var _n={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},vn=gn(_n),yn=m({},_n,{view:0,detail:0}),bn=gn(yn),xn,Sn,Cn,wn=m({},yn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Fn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Cn&&(Cn&&e.type===`mousemove`?(xn=e.screenX-Cn.screenX,Sn=e.screenY-Cn.screenY):Sn=xn=0,Cn=e),xn)},movementY:function(e){return`movementY`in e?e.movementY:Sn}}),Tn=gn(wn),En=gn(m({},wn,{dataTransfer:0})),Dn=gn(m({},yn,{relatedTarget:0})),On=gn(m({},_n,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=gn(m({},_n,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),An=gn(m({},_n,{data:0})),jn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Mn={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`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Nn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Pn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Nn[e])?!!t[e]:!1}function Fn(){return Pn}var In=gn(m({},yn,{key:function(e){if(e.key){var t=jn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=pn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Mn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Fn,charCode:function(e){return e.type===`keypress`?pn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?pn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Ln=gn(m({},wn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Rn=gn(m({},yn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Fn})),zn=gn(m({},_n,{propertyName:0,elapsedTime:0,pseudoElement:0})),Bn=gn(m({},wn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Vn=gn(m({},_n,{newState:0,oldState:0})),Hn=[9,13,27,32],Un=on&&`CompositionEvent`in window,Wn=null;on&&`documentMode`in document&&(Wn=document.documentMode);var Gn=on&&`TextEvent`in window&&!Wn,Kn=on&&(!Un||Wn&&8<Wn&&11>=Wn),qn=` `,Jn=!1;function Yn(e,t){switch(e){case`keyup`:return Hn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Xn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Zn=!1;function Qn(e,t){switch(e){case`compositionend`:return Xn(t);case`keypress`:return t.which===32?(Jn=!0,qn):null;case`textInput`:return e=t.data,e===qn&&Jn?null:e;default:return null}}function $n(e,t){if(Zn)return e===`compositionend`||!Un&&Yn(e,t)?(e=fn(),dn=un=ln=null,Zn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return Kn&&t.locale!==`ko`?null:t.data;default:return null}}var er={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 tr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!er[e.type]:t===`textarea`}function nr(e,t,n,r){$t?en?en.push(r):en=[r]:$t=r,t=Dd(t,`onChange`),0<t.length&&(n=new vn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var rr=null,ir=null;function ar(e){bd(e,0)}function or(e){if(Lt(bt(e)))return e}function sr(e,t){if(e===`change`)return t}var cr=!1;if(on){var lr;if(on){var ur=`oninput`in document;if(!ur){var dr=document.createElement(`div`);dr.setAttribute(`oninput`,`return;`),ur=typeof dr.oninput==`function`}lr=ur}else lr=!1;cr=lr&&(!document.documentMode||9<document.documentMode)}function fr(){rr&&(rr.detachEvent(`onpropertychange`,pr),ir=rr=null)}function pr(e){if(e.propertyName===`value`&&or(ir)){var t=[];nr(t,ir,e,Qt(e)),rn(ar,t)}}function mr(e,t,n){e===`focusin`?(fr(),rr=t,ir=n,rr.attachEvent(`onpropertychange`,pr)):e===`focusout`&&fr()}function hr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return or(ir)}function gr(e,t){if(e===`click`)return or(t)}function _r(e,t){if(e===`input`||e===`change`)return or(t)}function vr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var yr=typeof Object.is==`function`?Object.is:vr;function br(e,t){if(yr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!Te.call(t,i)||!yr(e[i],t[i]))return!1}return!0}function xr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Sr(e,t){var n=xr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=xr(n)}}function Cr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Cr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function wr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Rt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Rt(e.document)}return t}function Tr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Er=on&&`documentMode`in document&&11>=document.documentMode,Dr=null,Or=null,kr=null,Ar=!1;function jr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ar||Dr==null||Dr!==Rt(r)||(r=Dr,`selectionStart`in r&&Tr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),kr&&br(kr,r)||(kr=r,r=Dd(Or,`onSelect`),0<r.length&&(t=new vn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Dr)))}function H(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var U={animationend:H(`Animation`,`AnimationEnd`),animationiteration:H(`Animation`,`AnimationIteration`),animationstart:H(`Animation`,`AnimationStart`),transitionrun:H(`Transition`,`TransitionRun`),transitionstart:H(`Transition`,`TransitionStart`),transitioncancel:H(`Transition`,`TransitionCancel`),transitionend:H(`Transition`,`TransitionEnd`)},W={},Mr={};on&&(Mr=document.createElement(`div`).style,`AnimationEvent`in window||(delete U.animationend.animation,delete U.animationiteration.animation,delete U.animationstart.animation),`TransitionEvent`in window||delete U.transitionend.transition);function Nr(e){if(W[e])return W[e];if(!U[e])return e;var t=U[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Mr)return W[e]=t[n];return e}var G=Nr(`animationend`),Pr=Nr(`animationiteration`),Fr=Nr(`animationstart`),Ir=Nr(`transitionrun`),Lr=Nr(`transitionstart`),Rr=Nr(`transitioncancel`),zr=Nr(`transitionend`),Br=new Map,Vr=`abort auxClick beforeToggle 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(` `);Vr.push(`scrollEnd`);function Hr(e,t){Br.set(e,t),Tt(t,[e])}var Ur=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Wr=[],Gr=0,Kr=0;function qr(){for(var e=Gr,t=Kr=Gr=0;t<e;){var n=Wr[t];Wr[t++]=null;var r=Wr[t];Wr[t++]=null;var i=Wr[t];Wr[t++]=null;var a=Wr[t];if(Wr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&Zr(n,i,a)}}function Jr(e,t,n,r){Wr[Gr++]=e,Wr[Gr++]=t,Wr[Gr++]=n,Wr[Gr++]=r,Kr|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function Yr(e,t,n,r){return Jr(e,t,n,r),Qr(e)}function Xr(e,t){return Jr(e,null,null,t),Qr(e)}function Zr(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Be(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function Qr(e){if(50<du)throw du=0,fu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var $r={};function ei(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ti(e,t,n,r){return new ei(e,t,n,r)}function ni(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ri(e,t){var n=e.alternate;return n===null?(n=ti(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function ii(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ai(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)ni(e)&&(s=1);else if(typeof e==`string`)s=Wf(e,n,ue.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case ee:return e=ti(31,n,t,a),e.elementType=ee,e.lanes=o,e;case y:return oi(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=ti(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=ti(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=ti(19,n,t,a),e.elementType=E,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:s=10;break a;case S:s=9;break a;case w:s=11;break a;case D:s=14;break a;case O:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=ti(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function oi(e,t,n,r){return e=ti(7,e,r,t),e.lanes=n,e}function si(e,t,n){return e=ti(6,e,null,t),e.lanes=n,e}function ci(e){var t=ti(18,null,null,0);return t.stateNode=e,t}function li(e,t,n){return t=ti(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var ui=new WeakMap;function di(e,t){if(typeof e==`object`&&e){var n=ui.get(e);return n===void 0?(t={value:e,source:t,stack:we(t)},ui.set(e,t),t):n}return{value:e,source:t,stack:we(t)}}var fi=[],pi=0,mi=null,hi=0,gi=[],_i=0,vi=null,yi=1,bi=``;function xi(e,t){fi[pi++]=hi,fi[pi++]=mi,mi=e,hi=t}function Si(e,t,n){gi[_i++]=yi,gi[_i++]=bi,gi[_i++]=vi,vi=e;var r=yi;e=bi;var i=32-Be(r)-1;r&=~(1<<i),n+=1;var a=32-Be(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,yi=1<<32-Be(t)+i|n<<i|r,bi=a+e}else yi=1<<a|n<<i|r,bi=e}function Ci(e){e.return!==null&&(xi(e,1),Si(e,1,0))}function wi(e){for(;e===mi;)mi=fi[--pi],fi[pi]=null,hi=fi[--pi],fi[pi]=null;for(;e===vi;)vi=gi[--_i],gi[_i]=null,bi=gi[--_i],gi[_i]=null,yi=gi[--_i],gi[_i]=null}function Ti(e,t){gi[_i++]=yi,gi[_i++]=bi,gi[_i++]=vi,yi=t.id,bi=t.overflow,vi=e}var Ei=null,Di=null,K=!1,Oi=null,ki=!1,Ai=Error(i(519));function ji(e){throw Li(di(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Ai}function Mi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[lt]=e,t[ut]=r,n){case`dialog`:Z(`cancel`,t),Z(`close`,t);break;case`iframe`:case`object`:case`embed`:Z(`load`,t);break;case`video`:case`audio`:for(n=0;n<vd.length;n++)Z(vd[n],t);break;case`source`:Z(`error`,t);break;case`img`:case`image`:case`link`:Z(`error`,t),Z(`load`,t);break;case`details`:Z(`toggle`,t);break;case`input`:Z(`invalid`,t),R(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Z(`invalid`,t);break;case`textarea`:Z(`invalid`,t),z(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Nd(t.textContent,n)?(r.popover!=null&&(Z(`beforetoggle`,t),Z(`toggle`,t)),r.onScroll!=null&&Z(`scroll`,t),r.onScrollEnd!=null&&Z(`scrollend`,t),r.onClick!=null&&(t.onclick=Xt),t=!0):t=!1,t||ji(e,!0)}function Ni(e){for(Ei=e.return;Ei;)switch(Ei.tag){case 5:case 31:case 13:ki=!1;return;case 27:case 3:ki=!0;return;default:Ei=Ei.return}}function Pi(e){if(e!==Ei)return!1;if(!K)return Ni(e),K=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||Wd(e.type,e.memoizedProps)),n=!n),n&&Di&&ji(e),Ni(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Di=df(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Di=df(e)}else t===27?(t=Di,Qd(e.type)?(e=uf,uf=null,Di=e):Di=t):Di=Ei?lf(e.stateNode.nextSibling):null;return!0}function Fi(){Di=Ei=null,K=!1}function Ii(){var e=Oi;return e!==null&&(Zl===null?Zl=e:Zl.push.apply(Zl,e),Oi=null),e}function Li(e){Oi===null?Oi=[e]:Oi.push(e)}var Ri=le(null),zi=null,Bi=null;function Vi(e,t,n){N(Ri,t._currentValue),t._currentValue=n}function Hi(e){e._currentValue=Ri.current,M(Ri)}function Ui(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Wi(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Ui(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Ui(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Gi(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;yr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===pe.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[$f]:e.push($f))}a=a.return}e!==null&&Wi(t,e,n,r),t.flags|=262144}function Ki(e){for(e=e.firstContext;e!==null;){if(!yr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function qi(e){zi=e,Bi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Ji(e){return Xi(zi,e)}function Yi(e,t){return zi===null&&qi(e),Xi(e,t)}function Xi(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Bi===null){if(e===null)throw Error(i(308));Bi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Bi=Bi.next=t;return n}var Zi=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Qi=t.unstable_scheduleCallback,$i=t.unstable_NormalPriority,ea={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ta(){return{controller:new Zi,data:new Map,refCount:0}}function na(e){e.refCount--,e.refCount===0&&Qi($i,function(){e.controller.abort()})}var ra=null,ia=0,aa=0,oa=null;function sa(e,t){if(ra===null){var n=ra=[];ia=0,aa=fd(),oa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ia++,t.then(ca,ca),t}function ca(){if(--ia===0&&ra!==null){oa!==null&&(oa.status=`fulfilled`);var e=ra;ra=null,aa=0,oa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function la(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var ua=A.S;A.S=function(e,t){eu=Ae(),typeof t==`object`&&t&&typeof t.then==`function`&&sa(e,t),ua!==null&&ua(e,t)};var da=le(null);function fa(){var e=da.current;return e===null?Ll.pooledCache:e}function pa(e,t){t===null?N(da,da.current):N(da,t.pool)}function ma(){var e=fa();return e===null?null:{parent:ea._currentValue,pool:e}}var ha=Error(i(460)),ga=Error(i(474)),_a=Error(i(542)),va={then:function(){}};function ya(e){return e=e.status,e===`fulfilled`||e===`rejected`}function ba(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Xt,Xt),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,wa(e),e;default:if(typeof t.status==`string`)t.then(Xt,Xt);else{if(e=Ll,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,wa(e),e}throw Sa=t,ha}}function xa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Sa=e,ha):e}}var Sa=null;function Ca(){if(Sa===null)throw Error(i(459));var e=Sa;return Sa=null,e}function wa(e){if(e===ha||e===_a)throw Error(i(483))}var Ta=null,Ea=0;function Da(e){var t=Ea;return Ea+=1,Ta===null&&(Ta=[]),ba(Ta,e,t)}function Oa(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function ka(e,t){throw t.$$typeof===g?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Aa(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=ri(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=si(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===O&&xa(i)===t.type)?(t=a(t,n.props),Oa(t,n),t.return=e,t):(t=ai(n.type,n.key,n.props,null,e.mode,r),Oa(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=li(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=oi(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=si(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=ai(t.type,t.key,t.props,null,e.mode,n),Oa(n,t),n.return=e,n;case v:return t=li(t,e.mode,n),t.return=e,t;case O:return t=xa(t),f(e,t,n)}if(ae(t)||ne(t))return t=oi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Da(t),n);if(t.$$typeof===C)return f(e,Yi(e,t),n);ka(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case O:return n=xa(n),p(e,t,n,r)}if(ae(n)||ne(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Da(n),r);if(n.$$typeof===C)return p(e,t,Yi(e,n),r);ka(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case O:return r=xa(r),m(e,t,n,r,i)}if(ae(r)||ne(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Da(r),i);if(r.$$typeof===C)return m(e,t,n,Yi(t,r),i);ka(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),K&&xi(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return K&&xi(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),K&&xi(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),K&&xi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return K&&xi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),K&&xi(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&xa(l)===r.type){n(e,r.sibling),c=a(r,o.props),Oa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=oi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ai(o.type,o.key,o.props,null,e.mode,c),Oa(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=li(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=xa(o),b(e,r,o,c)}if(ae(o))return h(e,r,o,c);if(ne(o)){if(l=ne(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Da(o),c);if(o.$$typeof===C)return b(e,r,Yi(e,o),c);ka(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=si(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ea=0;var i=b(e,t,n,r);return Ta=null,i}catch(t){if(t===ha||t===_a)throw t;var a=ti(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var ja=Aa(!0),Ma=Aa(!1),Na=!1;function Pa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ia(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function La(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,J&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Qr(e),Zr(e,null,n),t}return Jr(e,r,t,n),Qr(e)}function Ra(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,nt(e,n)}}function za(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ba=!1;function Va(){if(Ba){var e=oa;if(e!==null)throw e}}function Ha(e,t,n,r){Ba=!1;var i=e.updateQueue;Na=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(X&f)===f:(r&f)===f){f!==0&&f===aa&&(Ba=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Na=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Gl|=o,e.lanes=o,e.memoizedState=d}}function Ua(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Wa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Ua(n[e],t)}var Ga=le(null),Ka=le(0);function qa(e,t){e=Ul,N(Ka,e),N(Ga,t),Ul=e|t.baseLanes}function Ja(){N(Ka,Ul),N(Ga,Ga.current)}function Ya(){Ul=Ka.current,M(Ga),M(Ka)}var Xa=le(null),Za=null;function Qa(e){var t=e.alternate;N(ro,ro.current&1),N(Xa,e),Za===null&&(t===null||Ga.current!==null||t.memoizedState!==null)&&(Za=e)}function $a(e){N(ro,ro.current),N(Xa,e),Za===null&&(Za=e)}function eo(e){e.tag===22?(N(ro,ro.current),N(Xa,e),Za===null&&(Za=e)):to(e)}function to(){N(ro,ro.current),N(Xa,Xa.current)}function no(e){M(Xa),Za===e&&(Za=null),M(ro)}var ro=le(0);function io(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||of(n)||sf(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ao=0,q=null,oo=null,so=null,co=!1,lo=!1,uo=!1,fo=0,po=0,mo=null,ho=0;function go(){throw Error(i(321))}function _o(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!yr(e[n],t[n]))return!1;return!0}function vo(e,t,n,r,i,a){return ao=a,q=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,A.H=e===null||e.memoizedState===null?Fs:Is,uo=!1,a=n(r,i),uo=!1,lo&&(a=bo(t,n,r,i)),yo(e),a}function yo(e){A.H=Ps;var t=oo!==null&&oo.next!==null;if(ao=0,so=oo=q=null,co=!1,po=0,mo=null,t)throw Error(i(300));e===null||$s||(e=e.dependencies,e!==null&&Ki(e)&&($s=!0))}function bo(e,t,n,r){q=e;var a=0;do{if(lo&&(mo=null),po=0,lo=!1,25<=a)throw Error(i(301));if(a+=1,so=oo=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}A.H=Ls,o=t(n,r)}while(lo);return o}function xo(){var e=A.H,t=e.useState()[0];return t=typeof t.then==`function`?Oo(t):t,e=e.useState()[0],(oo===null?null:oo.memoizedState)!==e&&(q.flags|=1024),t}function So(){var e=fo!==0;return fo=0,e}function Co(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function wo(e){if(co){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}co=!1}ao=0,so=oo=q=null,lo=!1,po=fo=0,mo=null}function To(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return so===null?q.memoizedState=so=e:so=so.next=e,so}function Eo(){if(oo===null){var e=q.alternate;e=e===null?null:e.memoizedState}else e=oo.next;var t=so===null?q.memoizedState:so.next;if(t!==null)so=t,oo=e;else{if(e===null)throw q.alternate===null?Error(i(467)):Error(i(310));oo=e,e={memoizedState:oo.memoizedState,baseState:oo.baseState,baseQueue:oo.baseQueue,queue:oo.queue,next:null},so===null?q.memoizedState=so=e:so=so.next=e}return so}function Do(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Oo(e){var t=po;return po+=1,mo===null&&(mo=[]),e=ba(mo,e,t),t=q,(so===null?t.memoizedState:so.next)===null&&(t=t.alternate,A.H=t===null||t.memoizedState===null?Fs:Is),e}function ko(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Oo(e);if(e.$$typeof===C)return Ji(e)}throw Error(i(438,String(e)))}function Ao(e){var t=null,n=q.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=q.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=Do(),q.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=k;return t.index++,n}function jo(e,t){return typeof t==`function`?t(e):t}function Mo(e){return No(Eo(),oo,e)}function No(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(ao&f)===f:(X&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===aa&&(d=!0);else if((ao&p)===p){u=u.next,p===aa&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,q.lanes|=p,Gl|=p;f=u.action,uo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,q.lanes|=f,Gl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!yr(o,e.memoizedState)&&($s=!0,d&&(n=oa,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Po(e){var t=Eo(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);yr(o,t.memoizedState)||($s=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Fo(e,t,n){var r=q,a=Eo(),o=K;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!yr((oo||a).memoizedState,n);if(s&&(a.memoizedState=n,$s=!0),a=a.queue,os(Ro.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||so!==null&&so.memoizedState.tag&1){if(r.flags|=2048,ts(9,{destroy:void 0},Lo.bind(null,r,a,n,t),null),Ll===null)throw Error(i(349));o||ao&127||Io(r,t,n)}return n}function Io(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=q.updateQueue,t===null?(t=Do(),q.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Lo(e,t,n,r){t.value=n,t.getSnapshot=r,zo(t)&&Bo(e)}function Ro(e,t,n){return n(function(){zo(t)&&Bo(e)})}function zo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!yr(e,n)}catch{return!0}}function Bo(e){var t=Xr(e,2);t!==null&&hu(t,e,2)}function Vo(e){var t=To();if(typeof e==`function`){var n=e;if(e=n(),uo){ze(!0);try{n()}finally{ze(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:jo,lastRenderedState:e},t}function Ho(e,t,n,r){return e.baseState=n,No(e,oo,typeof r==`function`?r:jo)}function Uo(e,t,n,r,a){if(js(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};A.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Wo(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Wo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=A.T,o={};A.T=o;try{var s=n(i,r),c=A.S;c!==null&&c(o,s),Go(e,t,s)}catch(n){qo(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),A.T=a}}else try{a=n(i,r),Go(e,t,a)}catch(n){qo(e,t,n)}}function Go(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Ko(e,t,n)},function(n){return qo(e,t,n)}):Ko(e,t,n)}function Ko(e,t,n){t.status=`fulfilled`,t.value=n,Jo(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Wo(e,n)))}function qo(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,Jo(t),t=t.next;while(t!==r)}e.action=null}function Jo(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Yo(e,t){return t}function Xo(e,t){if(K){var n=Ll.formState;if(n!==null){a:{var r=q;if(K){if(Di){b:{for(var i=Di,a=ki;i.nodeType!==8;){if(!a){i=null;break b}if(i=lf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Di=lf(i.nextSibling),r=i.data===`F!`;break a}}ji(r)}r=!1}r&&(t=n[0])}}return n=To(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Yo,lastRenderedState:t},n.queue=r,n=Os.bind(null,q,r),r.dispatch=n,r=Vo(!1),a=As.bind(null,q,!1,r.queue),r=To(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Uo.bind(null,q,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function Zo(e){return Qo(Eo(),oo,e)}function Qo(e,t,n){if(t=No(e,t,Yo)[0],e=Mo(jo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Oo(t)}catch(e){throw e===ha?_a:e}else r=t;t=Eo();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(q.flags|=2048,ts(9,{destroy:void 0},$o.bind(null,i,n),null)),[r,a,e]}function $o(e,t){e.action=t}function es(e){var t=Eo(),n=oo;if(n!==null)return Qo(t,n,e);Eo(),t=t.memoizedState,n=Eo();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function ts(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=q.updateQueue,t===null&&(t=Do(),q.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function ns(){return Eo().memoizedState}function rs(e,t,n,r){var i=To();q.flags|=e,i.memoizedState=ts(1|t,{destroy:void 0},n,r===void 0?null:r)}function is(e,t,n,r){var i=Eo();r=r===void 0?null:r;var a=i.memoizedState.inst;oo!==null&&r!==null&&_o(r,oo.memoizedState.deps)?i.memoizedState=ts(t,a,n,r):(q.flags|=e,i.memoizedState=ts(1|t,a,n,r))}function as(e,t){rs(8390656,8,e,t)}function os(e,t){is(2048,8,e,t)}function ss(e){q.flags|=4;var t=q.updateQueue;if(t===null)t=Do(),q.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function cs(e){var t=Eo().memoizedState;return ss({ref:t,nextImpl:e}),function(){if(J&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function ls(e,t){return is(4,2,e,t)}function us(e,t){return is(4,4,e,t)}function ds(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function fs(e,t,n){n=n==null?null:n.concat([e]),is(4,4,ds.bind(null,t,e),n)}function ps(){}function ms(e,t){var n=Eo();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&_o(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function hs(e,t){var n=Eo();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&_o(t,r[1]))return r[0];if(r=e(),uo){ze(!0);try{e()}finally{ze(!1)}}return n.memoizedState=[r,t],r}function gs(e,t,n){return n===void 0||ao&1073741824&&!(X&261930)?e.memoizedState=t:(e.memoizedState=n,e=mu(),q.lanes|=e,Gl|=e,n)}function _s(e,t,n,r){return yr(n,t)?n:Ga.current===null?!(ao&42)||ao&1073741824&&!(X&261930)?($s=!0,e.memoizedState=n):(e=mu(),q.lanes|=e,Gl|=e,t):(e=gs(e,n,r),yr(e,t)||($s=!0),e)}function vs(e,t,n,r,i){var a=j.p;j.p=a!==0&&8>a?a:8;var o=A.T,s={};A.T=s,As(e,!1,t,n);try{var c=i(),l=A.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?ks(e,t,la(c,r),pu(e)):ks(e,t,r,pu(e))}catch(n){ks(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{j.p=a,o!==null&&s.types!==null&&(o.types=s.types),A.T=o}}function ys(){}function bs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=xs(e).queue;vs(e,a,t,oe,n===null?ys:function(){return Ss(e),n(r)})}function xs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:oe,baseState:oe,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:jo,lastRenderedState:oe},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:jo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ss(e){var t=xs(e);t.next===null&&(t=e.alternate.memoizedState),ks(e,t.next.queue,{},pu())}function Cs(){return Ji($f)}function ws(){return Eo().memoizedState}function Ts(){return Eo().memoizedState}function Es(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Ia(n);var r=La(t,e,n);r!==null&&(hu(r,t,n),Ra(r,t,n)),t={cache:ta()},e.payload=t;return}t=t.return}}function Ds(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},js(e)?Ms(t,n):(n=Yr(e,t,n,r),n!==null&&(hu(n,e,r),Ns(n,t,r)))}function Os(e,t,n){ks(e,t,n,pu())}function ks(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(js(e))Ms(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,yr(s,o))return Jr(e,t,i,0),Ll===null&&qr(),!1}catch{}if(n=Yr(e,t,i,r),n!==null)return hu(n,e,r),Ns(n,t,r),!0}return!1}function As(e,t,n,r){if(r={lane:2,revertLane:fd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},js(e)){if(t)throw Error(i(479))}else t=Yr(e,n,r,2),t!==null&&hu(t,e,2)}function js(e){var t=e.alternate;return e===q||t!==null&&t===q}function Ms(e,t){lo=co=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ns(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,nt(e,n)}}var Ps={readContext:Ji,use:ko,useCallback:go,useContext:go,useEffect:go,useImperativeHandle:go,useLayoutEffect:go,useInsertionEffect:go,useMemo:go,useReducer:go,useRef:go,useState:go,useDebugValue:go,useDeferredValue:go,useTransition:go,useSyncExternalStore:go,useId:go,useHostTransitionStatus:go,useFormState:go,useActionState:go,useOptimistic:go,useMemoCache:go,useCacheRefresh:go};Ps.useEffectEvent=go;var Fs={readContext:Ji,use:ko,useCallback:function(e,t){return To().memoizedState=[e,t===void 0?null:t],e},useContext:Ji,useEffect:as,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),rs(4194308,4,ds.bind(null,t,e),n)},useLayoutEffect:function(e,t){return rs(4194308,4,e,t)},useInsertionEffect:function(e,t){rs(4,2,e,t)},useMemo:function(e,t){var n=To();t=t===void 0?null:t;var r=e();if(uo){ze(!0);try{e()}finally{ze(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=To();if(n!==void 0){var i=n(t);if(uo){ze(!0);try{n(t)}finally{ze(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ds.bind(null,q,e),[r.memoizedState,e]},useRef:function(e){var t=To();return e={current:e},t.memoizedState=e},useState:function(e){e=Vo(e);var t=e.queue,n=Os.bind(null,q,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ps,useDeferredValue:function(e,t){return gs(To(),e,t)},useTransition:function(){var e=Vo(!1);return e=vs.bind(null,q,e.queue,!0,!1),To().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=q,a=To();if(K){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Ll===null)throw Error(i(349));X&127||Io(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,as(Ro.bind(null,r,o,e),[e]),r.flags|=2048,ts(9,{destroy:void 0},Lo.bind(null,r,o,n,t),null),n},useId:function(){var e=To(),t=Ll.identifierPrefix;if(K){var n=bi,r=yi;n=(r&~(1<<32-Be(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=fo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=ho++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Cs,useFormState:Xo,useActionState:Xo,useOptimistic:function(e){var t=To();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=As.bind(null,q,!0,n),n.dispatch=t,[e,t]},useMemoCache:Ao,useCacheRefresh:function(){return To().memoizedState=Es.bind(null,q)},useEffectEvent:function(e){var t=To(),n={impl:e};return t.memoizedState=n,function(){if(J&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Is={readContext:Ji,use:ko,useCallback:ms,useContext:Ji,useEffect:os,useImperativeHandle:fs,useInsertionEffect:ls,useLayoutEffect:us,useMemo:hs,useReducer:Mo,useRef:ns,useState:function(){return Mo(jo)},useDebugValue:ps,useDeferredValue:function(e,t){return _s(Eo(),oo.memoizedState,e,t)},useTransition:function(){var e=Mo(jo)[0],t=Eo().memoizedState;return[typeof e==`boolean`?e:Oo(e),t]},useSyncExternalStore:Fo,useId:ws,useHostTransitionStatus:Cs,useFormState:Zo,useActionState:Zo,useOptimistic:function(e,t){return Ho(Eo(),oo,e,t)},useMemoCache:Ao,useCacheRefresh:Ts};Is.useEffectEvent=cs;var Ls={readContext:Ji,use:ko,useCallback:ms,useContext:Ji,useEffect:os,useImperativeHandle:fs,useInsertionEffect:ls,useLayoutEffect:us,useMemo:hs,useReducer:Po,useRef:ns,useState:function(){return Po(jo)},useDebugValue:ps,useDeferredValue:function(e,t){var n=Eo();return oo===null?gs(n,e,t):_s(n,oo.memoizedState,e,t)},useTransition:function(){var e=Po(jo)[0],t=Eo().memoizedState;return[typeof e==`boolean`?e:Oo(e),t]},useSyncExternalStore:Fo,useId:ws,useHostTransitionStatus:Cs,useFormState:es,useActionState:es,useOptimistic:function(e,t){var n=Eo();return oo===null?(n.baseState=e,[e,n.queue.dispatch]):Ho(n,oo,e,t)},useMemoCache:Ao,useCacheRefresh:Ts};Ls.useEffectEvent=cs;function Rs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:m({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var zs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pu(),i=Ia(r);i.payload=t,n!=null&&(i.callback=n),t=La(e,i,r),t!==null&&(hu(t,e,r),Ra(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pu(),i=Ia(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=La(e,i,r),t!==null&&(hu(t,e,r),Ra(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pu(),r=Ia(n);r.tag=2,t!=null&&(r.callback=t),t=La(e,r,n),t!==null&&(hu(t,e,n),Ra(t,e,n))}};function Bs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!br(n,r)||!br(i,a):!0}function Vs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&zs.enqueueReplaceState(t,t.state,null)}function Hs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=m({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Us(e){Ur(e)}function Ws(e){console.error(e)}function Gs(e){Ur(e)}function Ks(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function qs(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Js(e,t,n){return n=Ia(n),n.tag=3,n.payload={element:null},n.callback=function(){Ks(e,t)},n}function Ys(e){return e=Ia(e),e.tag=3,e}function Xs(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){qs(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){qs(t,n,r),typeof i!=`function`&&(ru===null?ru=new Set([this]):ru.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function Zs(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Gi(t,n,a,!0),n=Xa.current,n!==null){switch(n.tag){case 31:case 13:return Za===null?Du():n.alternate===null&&Wl===0&&(Wl=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===va?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Ku(e,r,a)),!1;case 22:return n.flags|=65536,r===va?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Ku(e,r,a)),!1}throw Error(i(435,n.tag))}return Ku(e,r,a),Du(),!1}if(K)return t=Xa.current,t===null?(r!==Ai&&(t=Error(i(423),{cause:r}),Li(di(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=di(r,n),a=Js(e.stateNode,r,a),za(e,a),Wl!==4&&(Wl=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Ai&&(e=Error(i(422),{cause:r}),Li(di(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=di(o,n),Xl===null?Xl=[o]:Xl.push(o),Wl!==4&&(Wl=2),t===null)return!0;r=di(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Js(n.stateNode,r,e),za(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(ru===null||!ru.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=Ys(a),Xs(a,e,n,r),za(n,a),!1}n=n.return}while(n!==null);return!1}var Qs=Error(i(461)),$s=!1;function ec(e,t,n,r){t.child=e===null?Ma(t,null,n,r):ja(t,e.child,n,r)}function tc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return qi(t),r=vo(e,t,n,o,a,i),s=So(),e!==null&&!$s?(Co(e,t,i),Tc(e,t,i)):(K&&s&&Ci(t),t.flags|=1,ec(e,t,r,i),t.child)}function nc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ni(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,rc(e,t,a,r,i)):(e=ai(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Ec(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?br:n,n(o,r)&&e.ref===t.ref)return Tc(e,t,i)}return t.flags|=1,e=ri(a,r),e.ref=t.ref,e.return=t,t.child=e}function rc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(br(a,r)&&e.ref===t.ref)if($s=!1,t.pendingProps=r=a,Ec(e,i))e.flags&131072&&($s=!0);else return t.lanes=e.lanes,Tc(e,t,i)}return dc(e,t,n,r,i)}function ic(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return oc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&pa(t,a===null?null:a.cachePool),a===null?Ja():qa(t,a),eo(t);else return r=t.lanes=536870912,oc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&pa(t,null),Ja(),to(t)):(pa(t,a.cachePool),qa(t,a),to(t),t.memoizedState=null);return ec(e,t,i,n),t.child}function ac(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function oc(e,t,n,r,i){var a=fa();return a=a===null?null:{parent:ea._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&pa(t,null),Ja(),eo(t),e!==null&&Gi(e,t,r,!0),t.childLanes=i,null}function sc(e,t){return t=bc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function cc(e,t,n){return ja(t,e.child,null,n),e=sc(t,t.pendingProps),e.flags|=2,no(t),t.memoizedState=null,e}function lc(e,t,n){var r=t.pendingProps,a=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(K){if(r.mode===`hidden`)return e=sc(t,r),t.lanes=536870912,ac(null,e);if($a(t),(e=Di)?(e=af(e,ki),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:vi===null?null:{id:yi,overflow:bi},retryLane:536870912,hydrationErrors:null},n=ci(e),n.return=t,t.child=n,Ei=t,Di=null)):e=null,e===null)throw ji(t);return t.lanes=536870912,null}return sc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if($a(t),a)if(t.flags&256)t.flags&=-257,t=cc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558));else if($s||Gi(e,t,n,!1),a=(n&e.childLanes)!==0,$s||a){if(r=Ll,r!==null&&(s=rt(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,Xr(e,s),hu(r,e,s),Qs;Du(),t=cc(e,t,n)}else e=o.treeContext,Di=lf(s.nextSibling),Ei=t,K=!0,Oi=null,ki=!1,e!==null&&Ti(t,e),t=sc(t,r),t.flags|=4096;return t}return e=ri(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function uc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function dc(e,t,n,r,i){return qi(t),n=vo(e,t,n,r,void 0,i),r=So(),e!==null&&!$s?(Co(e,t,i),Tc(e,t,i)):(K&&r&&Ci(t),t.flags|=1,ec(e,t,n,i),t.child)}function fc(e,t,n,r,i,a){return qi(t),t.updateQueue=null,n=bo(t,r,n,i),yo(e),r=So(),e!==null&&!$s?(Co(e,t,a),Tc(e,t,a)):(K&&r&&Ci(t),t.flags|=1,ec(e,t,n,a),t.child)}function pc(e,t,n,r,i){if(qi(t),t.stateNode===null){var a=$r,o=n.contextType;typeof o==`object`&&o&&(a=Ji(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=zs,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Pa(t),o=n.contextType,a.context=typeof o==`object`&&o?Ji(o):$r,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Rs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&zs.enqueueReplaceState(a,a.state,null),Ha(t,r,a,i),Va(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Hs(n,s);a.props=c;var l=a.context,u=n.contextType;o=$r,typeof u==`object`&&u&&(o=Ji(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Vs(t,a,r,o),Na=!1;var f=t.memoizedState;a.state=f,Ha(t,r,a,i),Va(),l=t.memoizedState,s||f!==l||Na?(typeof d==`function`&&(Rs(t,n,d,r),l=t.memoizedState),(c=Na||Bs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Fa(e,t),o=t.memoizedProps,u=Hs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=$r,typeof l==`object`&&l&&(c=Ji(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Vs(t,a,r,c),Na=!1,f=t.memoizedState,a.state=f,Ha(t,r,a,i),Va();var p=t.memoizedState;o!==d||f!==p||Na||e!==null&&e.dependencies!==null&&Ki(e.dependencies)?(typeof s==`function`&&(Rs(t,n,s,r),p=t.memoizedState),(u=Na||Bs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Ki(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,uc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=ja(t,e.child,null,i),t.child=ja(t,null,n,i)):ec(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Tc(e,t,i),e}function mc(e,t,n,r){return Fi(),t.flags|=256,ec(e,t,n,r),t.child}var hc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function gc(e){return{baseLanes:e,cachePool:ma()}}function _c(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Jl),e}function vc(e,t,n){var r=t.pendingProps,a=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(ro.current&2)!=0),s&&(a=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(K){if(a?Qa(t):to(t),(e=Di)?(e=af(e,ki),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:vi===null?null:{id:yi,overflow:bi},retryLane:536870912,hydrationErrors:null},n=ci(e),n.return=t,t.child=n,Ei=t,Di=null)):e=null,e===null)throw ji(t);return sf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(to(t),a=t.mode,c=bc({mode:`hidden`,children:c},a),r=oi(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=gc(n),r.childLanes=_c(e,s,n),t.memoizedState=hc,ac(null,r)):(Qa(t),yc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(Qa(t),t.flags&=-257,t=xc(e,t,n)):t.memoizedState===null?(to(t),c=r.fallback,a=t.mode,r=bc({mode:`visible`,children:r.children},a),c=oi(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,ja(t,e.child,null,n),r=t.child,r.memoizedState=gc(n),r.childLanes=_c(e,s,n),t.memoizedState=hc,t=ac(null,r)):(to(t),t.child=e.child,t.flags|=128,t=null);else if(Qa(t),sf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Li({value:r,source:null,stack:null}),t=xc(e,t,n)}else if($s||Gi(e,t,n,!1),s=(n&e.childLanes)!==0,$s||s){if(s=Ll,s!==null&&(r=rt(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,Xr(e,r),hu(s,e,r),Qs;of(c)||Du(),t=xc(e,t,n)}else of(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Di=lf(c.nextSibling),Ei=t,K=!0,Oi=null,ki=!1,e!==null&&Ti(t,e),t=yc(t,r.children),t.flags|=4096);return t}return a?(to(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=ri(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=oi(c,a,n,null),c.flags|=2):c=ri(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,ac(null,r),r=t.child,c=e.child.memoizedState,c===null?c=gc(n):(a=c.cachePool,a===null?a=ma():(l=ea._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=_c(e,s,n),t.memoizedState=hc,ac(e.child,r)):(Qa(t),n=e.child,e=n.sibling,n=ri(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function yc(e,t){return t=bc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function bc(e,t){return e=ti(22,e,null,t),e.lanes=0,e}function xc(e,t,n){return ja(t,e.child,null,n),e=yc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Sc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ui(e.return,t,n)}function Cc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function wc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=ro.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,N(ro,o),ec(e,t,r,n),r=K?hi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Sc(e,n,t);else if(e.tag===19)Sc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&io(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Cc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&io(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Cc(t,!0,n,null,a,r);break;case`together`:Cc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Tc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Gl|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(Gi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=ri(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ri(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Ec(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&Ki(e))):!0}function Dc(e,t,n){switch(t.tag){case 3:me(t,t.stateNode.containerInfo),Vi(t,ea,e.memoizedState.cache),Fi();break;case 27:case 5:ge(t);break;case 4:me(t,t.stateNode.containerInfo);break;case 10:Vi(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,$a(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(Qa(t),e=Tc(e,t,n),e===null?null:e.sibling):vc(e,t,n):(Qa(t),t.flags|=128,null);Qa(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(Gi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return wc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),N(ro,ro.current),r)break;return null;case 22:return t.lanes=0,ic(e,t,n,t.pendingProps);case 24:Vi(t,ea,e.memoizedState.cache)}return Tc(e,t,n)}function Oc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)$s=!0;else{if(!Ec(e,n)&&!(t.flags&128))return $s=!1,Dc(e,t,n);$s=!!(e.flags&131072)}else $s=!1,K&&t.flags&1048576&&Si(t,hi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=xa(t.elementType),t.type=e,typeof e==`function`)ni(e)?(r=Hs(e,r),t.tag=1,t=pc(null,t,e,r,n)):(t.tag=0,t=dc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=tc(null,t,e,r,n);break a}else if(a===D){t.tag=14,t=nc(null,t,e,r,n);break a}}throw t=ie(e)||e,Error(i(306,t,``))}}return t;case 0:return dc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Hs(r,t.pendingProps),pc(e,t,r,a,n);case 3:a:{if(me(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Fa(e,t),Ha(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Vi(t,ea,r),r!==o.cache&&Wi(t,[ea],n,!0),Va(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=mc(e,t,r,n);break a}else if(r!==a){a=di(Error(i(424)),t),Li(a),t=mc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Di=lf(e.firstChild),Ei=t,K=!0,Oi=null,ki=!0,n=Ma(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Fi(),r===a){t=Tc(e,t,n);break a}ec(e,t,r,n)}t=t.child}return t;case 26:return uc(e,t),e===null?(n=Af(t.type,null,t.pendingProps,null))?t.memoizedState=n:K||(n=t.type,e=t.pendingProps,r=Vd(fe.current).createElement(n),r[lt]=t,r[ut]=e,Fd(r,n,e),St(r),t.stateNode=r):t.memoizedState=Af(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ge(t),e===null&&K&&(r=t.stateNode=pf(t.type,t.pendingProps,fe.current),Ei=t,ki=!0,a=Di,Qd(t.type)?(uf=a,Di=lf(r.firstChild)):Di=a),ec(e,t,t.pendingProps.children,n),uc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&K&&((a=r=Di)&&(r=nf(r,t.type,t.pendingProps,ki),r===null?a=!1:(t.stateNode=r,Ei=t,Di=lf(r.firstChild),ki=!1,a=!0)),a||ji(t)),ge(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Wd(a,o)?r=null:s!==null&&Wd(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=vo(e,t,xo,null,null,n),$f._currentValue=a),uc(e,t),ec(e,t,r,n),t.child;case 6:return e===null&&K&&((e=n=Di)&&(n=rf(n,t.pendingProps,ki),n===null?e=!1:(t.stateNode=n,Ei=t,Di=null,e=!0)),e||ji(t)),null;case 13:return vc(e,t,n);case 4:return me(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=ja(t,null,r,n):ec(e,t,r,n),t.child;case 11:return tc(e,t,t.type,t.pendingProps,n);case 7:return ec(e,t,t.pendingProps,n),t.child;case 8:return ec(e,t,t.pendingProps.children,n),t.child;case 12:return ec(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Vi(t,t.type,r.value),ec(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,qi(t),a=Ji(a),r=r(a),t.flags|=1,ec(e,t,r,n),t.child;case 14:return nc(e,t,t.type,t.pendingProps,n);case 15:return rc(e,t,t.type,t.pendingProps,n);case 19:return wc(e,t,n);case 31:return lc(e,t,n);case 22:return ic(e,t,n,t.pendingProps);case 24:return qi(t),r=Ji(ea),e===null?(a=fa(),a===null&&(a=Ll,o=ta(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Pa(t),Vi(t,ea,a)):((e.lanes&n)!==0&&(Fa(e,t),Ha(t,null,null,n),Va()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Vi(t,ea,r),r!==a.cache&&Wi(t,[ea],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Vi(t,ea,r))),ec(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function kc(e){e.flags|=4}function Ac(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(wu())e.flags|=8192;else throw Sa=va,ga}else e.flags&=-16777217}function jc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Gf(t))if(wu())e.flags|=8192;else throw Sa=va,ga}function Mc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:Ze(),e.lanes|=t,Yl|=t)}function Nc(e,t){if(!K)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Pc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Fc(e,t,n){var r=t.pendingProps;switch(wi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Pc(t),null;case 1:return Pc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Hi(ea),he(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Pi(t)?kc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ii())),Pc(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(kc(t),o===null?(Pc(t),Ac(t,a,null,r,n)):(Pc(t),jc(t,o))):o?o===e.memoizedState?(Pc(t),t.flags&=-16777217):(kc(t),Pc(t),jc(t,o)):(e=e.memoizedProps,e!==r&&kc(t),Pc(t),Ac(t,a,e,r,n)),null;case 27:if(_e(t),n=fe.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&kc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Pc(t),null}e=ue.current,Pi(t)?Mi(t,e):(e=pf(a,r,n),t.stateNode=e,kc(t))}return Pc(t),null;case 5:if(_e(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&kc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Pc(t),null}if(o=ue.current,Pi(t))Mi(t,o);else{var s=Vd(fe.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[lt]=t,o[ut]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Fd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&kc(t)}}return Pc(t),Ac(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&kc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=fe.current,Pi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ei,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[lt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Nd(e.nodeValue,n)),e||ji(t,!0)}else e=Vd(e).createTextNode(r),e[lt]=t,t.stateNode=e}return Pc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Pi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[lt]=t}else Fi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pc(t),e=!1}else n=Ii(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(no(t),t):(no(t),null);if(t.flags&128)throw Error(i(558))}return Pc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Pi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[lt]=t}else Fi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pc(t),a=!1}else a=Ii(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(no(t),t):(no(t),null)}return no(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Mc(t,t.updateQueue),Pc(t),null);case 4:return he(),e===null&&Cd(t.stateNode.containerInfo),Pc(t),null;case 10:return Hi(t.type),Pc(t),null;case 19:if(M(ro),r=t.memoizedState,r===null)return Pc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Nc(r,!1);else{if(Wl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=io(e),o!==null){for(t.flags|=128,Nc(r,!1),e=o.updateQueue,t.updateQueue=e,Mc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ii(n,e),n=n.sibling;return N(ro,ro.current&1|2),K&&xi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Ae()>tu&&(t.flags|=128,a=!0,Nc(r,!1),t.lanes=4194304)}else{if(!a)if(e=io(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Mc(t,e),Nc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!K)return Pc(t),null}else 2*Ae()-r.renderingStartTime>tu&&n!==536870912&&(t.flags|=128,a=!0,Nc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Pc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Ae(),e.sibling=null,n=ro.current,N(ro,a?n&1|2:n&1),K&&xi(t,r.treeForkCount),e);case 22:case 23:return no(t),Ya(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Pc(t),t.subtreeFlags&6&&(t.flags|=8192)):Pc(t),n=t.updateQueue,n!==null&&Mc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&M(da),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Hi(ea),Pc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Ic(e,t){switch(wi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Hi(ea),he(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return _e(t),null;case 31:if(t.memoizedState!==null){if(no(t),t.alternate===null)throw Error(i(340));Fi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(no(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Fi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return M(ro),null;case 4:return he(),null;case 10:return Hi(t.type),null;case 22:case 23:return no(t),Ya(),e!==null&&M(da),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Hi(ea),null;case 25:return null;default:return null}}function Lc(e,t){switch(wi(t),t.tag){case 3:Hi(ea),he();break;case 26:case 27:case 5:_e(t);break;case 4:he();break;case 31:t.memoizedState!==null&&no(t);break;case 13:no(t);break;case 19:M(ro);break;case 10:Hi(t.type);break;case 22:case 23:no(t),Ya(),e!==null&&M(da);break;case 24:Hi(ea)}}function Rc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Gu(t,t.return,e)}}function zc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Gu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Gu(t,t.return,e)}}function Bc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Wa(t,n)}catch(t){Gu(e,e.return,t)}}}function Vc(e,t,n){n.props=Hs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Gu(e,t,n)}}function Hc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Gu(e,t,n)}}function Uc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Gu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Gu(e,t,n)}else n.current=null}function Wc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Gu(e,e.return,t)}}function Gc(e,t,n){try{var r=e.stateNode;Id(r,e.type,n,t),r[ut]=t}catch(t){Gu(e,e.return,t)}}function Kc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Qd(e.type)||e.tag===4}function qc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Kc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Qd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Jc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xt));else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Jc(e,t,n),e=e.sibling;e!==null;)Jc(e,t,n),e=e.sibling}function Yc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Yc(e,t,n),e=e.sibling;e!==null;)Yc(e,t,n),e=e.sibling}function Xc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Fd(t,r,n),t[lt]=e,t[ut]=n}catch(t){Gu(e,e.return,t)}}var Zc=!1,Qc=!1,$c=!1,el=typeof WeakSet==`function`?WeakSet:Set,tl=null;function nl(e,t){if(e=e.containerInfo,zd=cp,e=wr(e),Tr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Bd={focusedElem:e,selectionRange:n},cp=!1,tl=t;tl!==null;)if(t=tl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,tl=e;else for(;tl!==null;){switch(t=tl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Hs(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Gu(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)tf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:tf(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,tl=e;break}tl=t.return}}function rl(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:vl(e,n),r&4&&Rc(5,n);break;case 1:if(vl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Gu(n,n.return,e)}else{var i=Hs(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Gu(n,n.return,e)}}r&64&&Bc(n),r&512&&Hc(n,n.return);break;case 3:if(vl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Wa(e,t)}catch(e){Gu(n,n.return,e)}}break;case 27:t===null&&r&4&&Xc(n);case 26:case 5:vl(e,n),t===null&&r&4&&Wc(n),r&512&&Hc(n,n.return);break;case 12:vl(e,n);break;case 31:vl(e,n),r&4&&ll(e,n);break;case 13:vl(e,n),r&4&&ul(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Yu.bind(null,n),cf(e,n))));break;case 22:if(r=n.memoizedState!==null||Zc,!r){t=t!==null&&t.memoizedState!==null||Qc,i=Zc;var a=Qc;Zc=r,(Qc=t)&&!a?bl(e,n,(n.subtreeFlags&8772)!=0):vl(e,n),Zc=i,Qc=a}break;case 30:break;default:vl(e,n)}}function il(e){var t=e.alternate;t!==null&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&_t(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var al=null,ol=!1;function sl(e,t,n){for(n=n.child;n!==null;)cl(e,t,n),n=n.sibling}function cl(e,t,n){if(Re&&typeof Re.onCommitFiberUnmount==`function`)try{Re.onCommitFiberUnmount(Le,n)}catch{}switch(n.tag){case 26:Qc||Uc(n,t),sl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Qc||Uc(n,t);var r=al,i=ol;Qd(n.type)&&(al=n.stateNode,ol=!1),sl(e,t,n),mf(n.stateNode),al=r,ol=i;break;case 5:Qc||Uc(n,t);case 6:if(r=al,i=ol,al=null,sl(e,t,n),al=r,ol=i,al!==null)if(ol)try{(al.nodeType===9?al.body:al.nodeName===`HTML`?al.ownerDocument.body:al).removeChild(n.stateNode)}catch(e){Gu(n,t,e)}else try{al.removeChild(n.stateNode)}catch(e){Gu(n,t,e)}break;case 18:al!==null&&(ol?(e=al,$d(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Np(e)):$d(al,n.stateNode));break;case 4:r=al,i=ol,al=n.stateNode.containerInfo,ol=!0,sl(e,t,n),al=r,ol=i;break;case 0:case 11:case 14:case 15:zc(2,n,t),Qc||zc(4,n,t),sl(e,t,n);break;case 1:Qc||(Uc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Vc(n,t,r)),sl(e,t,n);break;case 21:sl(e,t,n);break;case 22:Qc=(r=Qc)||n.memoizedState!==null,sl(e,t,n),Qc=r;break;default:sl(e,t,n)}}function ll(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Np(e)}catch(e){Gu(t,t.return,e)}}}function ul(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Np(e)}catch(e){Gu(t,t.return,e)}}function dl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new el),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new el),t;default:throw Error(i(435,e.tag))}}function fl(e,t){var n=dl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Xu.bind(null,e,t);t.then(r,r)}})}function pl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(Qd(c.type)){al=c.stateNode,ol=!1;break a}break;case 5:al=c.stateNode,ol=!1;break a;case 3:case 4:al=c.stateNode.containerInfo,ol=!0;break a}c=c.return}if(al===null)throw Error(i(160));cl(o,s,a),al=null,ol=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)hl(t,e),t=t.sibling}var ml=null;function hl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:pl(t,e),gl(e),r&4&&(zc(3,e,e.return),Rc(3,e),zc(5,e,e.return));break;case 1:pl(t,e),gl(e),r&512&&(Qc||n===null||Uc(n,n.return)),r&64&&Zc&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=ml;if(pl(t,e),gl(e),r&512&&(Qc||n===null||Uc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[gt]||o[lt]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),Fd(o,r,n),o[lt]=e,St(o),r=o;break a;case`link`:var s=Hf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),Fd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Hf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),Fd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[lt]=e,St(o),r=o}e.stateNode=r}else Uf(a,e.type,e.stateNode);else e.stateNode=Lf(a,r,e.memoizedProps);else o===r?r===null&&e.stateNode!==null&&Gc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Uf(a,e.type,e.stateNode):Lf(a,r,e.memoizedProps))}break;case 27:pl(t,e),gl(e),r&512&&(Qc||n===null||Uc(n,n.return)),n!==null&&r&4&&Gc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(pl(t,e),gl(e),r&512&&(Qc||n===null||Uc(n,n.return)),e.flags&32){a=e.stateNode;try{B(a,``)}catch(t){Gu(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Gc(e,a,n===null?a:n.memoizedProps)),r&1024&&($c=!0);break;case 6:if(pl(t,e),gl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Gu(e,e.return,t)}}break;case 3:if(Vf=null,a=ml,ml=_f(t.containerInfo),pl(t,e),ml=a,gl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Np(t.containerInfo)}catch(t){Gu(e,e.return,t)}$c&&($c=!1,_l(e));break;case 4:r=ml,ml=_f(e.stateNode.containerInfo),pl(t,e),gl(e),ml=r;break;case 12:pl(t,e),gl(e);break;case 31:pl(t,e),gl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 13:pl(t,e),gl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&($l=Ae()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=Zc,d=Qc;if(Zc=u||a,Qc=d||l,pl(t,e),Qc=d,Zc=u,gl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||Zc||Qc||yl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Gu(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Gu(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?ef(m,!0):ef(l.stateNode,!1)}catch(e){Gu(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,fl(e,n))));break;case 19:pl(t,e),gl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 30:break;case 21:break;default:pl(t,e),gl(e)}}function gl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Kc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;Yc(e,qc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(B(o,``),n.flags&=-33),Yc(e,qc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Jc(e,qc(e),s);break;default:throw Error(i(161))}}catch(t){Gu(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function _l(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;_l(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function vl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)rl(e,t.alternate,t),t=t.sibling}function yl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:zc(4,t,t.return),yl(t);break;case 1:Uc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Vc(t,t.return,n),yl(t);break;case 27:mf(t.stateNode);case 26:case 5:Uc(t,t.return),yl(t);break;case 22:t.memoizedState===null&&yl(t);break;case 30:yl(t);break;default:yl(t)}e=e.sibling}}function bl(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:bl(i,a,n),Rc(4,a);break;case 1:if(bl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Gu(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Ua(c[i],s)}catch(e){Gu(r,r.return,e)}}n&&o&64&&Bc(a),Hc(a,a.return);break;case 27:Xc(a);case 26:case 5:bl(i,a,n),n&&r===null&&o&4&&Wc(a),Hc(a,a.return);break;case 12:bl(i,a,n);break;case 31:bl(i,a,n),n&&o&4&&ll(i,a);break;case 13:bl(i,a,n),n&&o&4&&ul(i,a);break;case 22:a.memoizedState===null&&bl(i,a,n),Hc(a,a.return);break;case 30:break;default:bl(i,a,n)}t=t.sibling}}function xl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&na(n))}function Sl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&na(e))}function Cl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)wl(e,t,n,r),t=t.sibling}function wl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Cl(e,t,n,r),i&2048&&Rc(9,t);break;case 1:Cl(e,t,n,r);break;case 3:Cl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&na(e)));break;case 12:if(i&2048){Cl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Gu(t,t.return,e)}}else Cl(e,t,n,r);break;case 31:Cl(e,t,n,r);break;case 13:Cl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Cl(e,t,n,r):(a._visibility|=2,Tl(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?Cl(e,t,n,r):El(e,t),i&2048&&xl(o,t);break;case 24:Cl(e,t,n,r),i&2048&&Sl(t.alternate,t);break;default:Cl(e,t,n,r)}}function Tl(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Tl(a,o,s,c,i),Rc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Tl(a,o,s,c,i)):u._visibility&2?Tl(a,o,s,c,i):El(a,o),i&&l&2048&&xl(o.alternate,o);break;case 24:Tl(a,o,s,c,i),i&&l&2048&&Sl(o.alternate,o);break;default:Tl(a,o,s,c,i)}t=t.sibling}}function El(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:El(n,r),i&2048&&xl(r.alternate,r);break;case 24:El(n,r),i&2048&&Sl(r.alternate,r);break;default:El(n,r)}t=t.sibling}}var Dl=8192;function Ol(e,t,n){if(e.subtreeFlags&Dl)for(e=e.child;e!==null;)kl(e,t,n),e=e.sibling}function kl(e,t,n){switch(e.tag){case 26:Ol(e,t,n),e.flags&Dl&&e.memoizedState!==null&&Kf(n,ml,e.memoizedState,e.memoizedProps);break;case 5:Ol(e,t,n);break;case 3:case 4:var r=ml;ml=_f(e.stateNode.containerInfo),Ol(e,t,n),ml=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Dl,Dl=16777216,Ol(e,t,n),Dl=r):Ol(e,t,n));break;default:Ol(e,t,n)}}function Al(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function jl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];tl=r,Pl(r,e)}Al(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Ml(e),e=e.sibling}function Ml(e){switch(e.tag){case 0:case 11:case 15:jl(e),e.flags&2048&&zc(9,e,e.return);break;case 3:jl(e);break;case 12:jl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Nl(e)):jl(e);break;default:jl(e)}}function Nl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];tl=r,Pl(r,e)}Al(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:zc(8,t,t.return),Nl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Nl(t));break;default:Nl(t)}e=e.sibling}}function Pl(e,t){for(;tl!==null;){var n=tl;switch(n.tag){case 0:case 11:case 15:zc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:na(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,tl=r;else a:for(n=e;tl!==null;){r=tl;var i=r.sibling,a=r.return;if(il(r),r===n){tl=null;break a}if(i!==null){i.return=a,tl=i;break a}tl=a}}}var Fl={getCacheForType:function(e){var t=Ji(ea),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Ji(ea).controller.signal}},Il=typeof WeakMap==`function`?WeakMap:Map,J=0,Ll=null,Y=null,X=0,Rl=0,zl=null,Bl=!1,Vl=!1,Hl=!1,Ul=0,Wl=0,Gl=0,Kl=0,ql=0,Jl=0,Yl=0,Xl=null,Zl=null,Ql=!1,$l=0,eu=0,tu=1/0,nu=null,ru=null,iu=0,au=null,ou=null,su=0,cu=0,lu=null,uu=null,du=0,fu=null;function pu(){return J&2&&X!==0?X&-X:A.T===null?ot():fd()}function mu(){if(Jl===0)if(!(X&536870912)||K){var e=Ge;Ge<<=1,!(Ge&3932160)&&(Ge=262144),Jl=e}else Jl=536870912;return e=Xa.current,e!==null&&(e.flags|=32),Jl}function hu(e,t,n){(e===Ll&&(Rl===2||Rl===9)||e.cancelPendingCommit!==null)&&(Su(e,0),yu(e,X,Jl,!1)),$e(e,n),(!(J&2)||e!==Ll)&&(e===Ll&&(!(J&2)&&(Kl|=n),Wl===4&&yu(e,X,Jl,!1)),id(e))}function gu(e,t,n){if(J&6)throw Error(i(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||Ye(e,t),a=r?Au(e,t):Ou(e,t,!0),o=r;do{if(a===0){Vl&&!r&&yu(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!vu(n)){a=Ou(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=Xl;var l=c.current.memoizedState.isDehydrated;if(l&&(Su(c,s).flags|=256),s=Ou(c,s,!1),s!==2){if(Hl&&!l){c.errorRecoveryDisabledLanes|=o,Kl|=o,a=4;break a}o=Zl,Zl=a,o!==null&&(Zl===null?Zl=o:Zl.push.apply(Zl,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Su(e,0),yu(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:yu(r,t,Jl,!Bl);break a;case 2:Zl=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=$l+300-Ae(),10<a)){if(yu(r,t,Jl,!Bl),Je(r,0,!0)!==0)break a;su=t,r.timeoutHandle=qd(_u.bind(null,r,n,Zl,nu,Ql,t,Jl,Kl,Yl,Bl,o,`Throttled`,-0,0),a);break a}_u(r,n,Zl,nu,Ql,t,Jl,Kl,Yl,Bl,o,null,-0,0)}}break}while(1);id(e)}function _u(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Xt},kl(t,a,d);var m=(a&62914560)===a?$l-Ae():(a&4194048)===a?eu-Ae():0;if(m=Jf(d,m),m!==null){su=a,e.cancelPendingCommit=m(Lu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),yu(e,a,o,!l);return}}Lu(e,t,a,n,r,i,o,s,c)}function vu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!yr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function yu(e,t,n,r){t&=~ql,t&=~Kl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Be(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&tt(e,n,t)}function bu(){return J&6?!0:(ad(0,!1),!1)}function xu(){if(Y!==null){if(Rl===0)var e=Y.return;else e=Y,Bi=zi=null,wo(e),Ta=null,Ea=0,e=Y;for(;e!==null;)Lc(e.alternate,e),e=e.return;Y=null}}function Su(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Jd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),su=0,xu(),Ll=e,Y=n=ri(e.current,null),X=t,Rl=0,zl=null,Bl=!1,Vl=Ye(e,t),Hl=!1,Yl=Jl=ql=Kl=Gl=Wl=0,Zl=Xl=null,Ql=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Be(r),a=1<<i;t|=e[i],r&=~a}return Ul=t,qr(),n}function Cu(e,t){q=null,A.H=Ps,t===ha||t===_a?(t=Ca(),Rl=3):t===ga?(t=Ca(),Rl=4):Rl=t===Qs?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,zl=t,Y===null&&(Wl=1,Ks(e,di(t,e.current)))}function wu(){var e=Xa.current;return e===null?!0:(X&4194048)===X?Za===null:(X&62914560)===X||X&536870912?e===Za:!1}function Tu(){var e=A.H;return A.H=Ps,e===null?Ps:e}function Eu(){var e=A.A;return A.A=Fl,e}function Du(){Wl=4,Bl||(X&4194048)!==X&&Xa.current!==null||(Vl=!0),!(Gl&134217727)&&!(Kl&134217727)||Ll===null||yu(Ll,X,Jl,!1)}function Ou(e,t,n){var r=J;J|=2;var i=Tu(),a=Eu();(Ll!==e||X!==t)&&(nu=null,Su(e,t)),t=!1;var o=Wl;a:do try{if(Rl!==0&&Y!==null){var s=Y,c=zl;switch(Rl){case 8:xu(),o=6;break a;case 3:case 2:case 9:case 6:Xa.current===null&&(t=!0);var l=Rl;if(Rl=0,zl=null,Pu(e,s,c,l),n&&Vl){o=0;break a}break;default:l=Rl,Rl=0,zl=null,Pu(e,s,c,l)}}ku(),o=Wl;break}catch(t){Cu(e,t)}while(1);return t&&e.shellSuspendCounter++,Bi=zi=null,J=r,A.H=i,A.A=a,Y===null&&(Ll=null,X=0,qr()),o}function ku(){for(;Y!==null;)Mu(Y)}function Au(e,t){var n=J;J|=2;var r=Tu(),a=Eu();Ll!==e||X!==t?(nu=null,tu=Ae()+500,Su(e,t)):Vl=Ye(e,t);a:do try{if(Rl!==0&&Y!==null){t=Y;var o=zl;b:switch(Rl){case 1:Rl=0,zl=null,Pu(e,t,o,1);break;case 2:case 9:if(ya(o)){Rl=0,zl=null,Nu(t);break}t=function(){Rl!==2&&Rl!==9||Ll!==e||(Rl=7),id(e)},o.then(t,t);break a;case 3:Rl=7;break a;case 4:Rl=5;break a;case 7:ya(o)?(Rl=0,zl=null,Nu(t)):(Rl=0,zl=null,Pu(e,t,o,7));break;case 5:var s=null;switch(Y.tag){case 26:s=Y.memoizedState;case 5:case 27:var c=Y;if(s?Gf(s):c.stateNode.complete){Rl=0,zl=null;var l=c.sibling;if(l!==null)Y=l;else{var u=c.return;u===null?Y=null:(Y=u,Fu(u))}break b}}Rl=0,zl=null,Pu(e,t,o,5);break;case 6:Rl=0,zl=null,Pu(e,t,o,6);break;case 8:xu(),Wl=6;break a;default:throw Error(i(462))}}ju();break}catch(t){Cu(e,t)}while(1);return Bi=zi=null,A.H=r,A.A=a,J=n,Y===null?(Ll=null,X=0,qr(),Wl):0}function ju(){for(;Y!==null&&!Oe();)Mu(Y)}function Mu(e){var t=Oc(e.alternate,e,Ul);e.memoizedProps=e.pendingProps,t===null?Fu(e):Y=t}function Nu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=fc(n,t,t.pendingProps,t.type,void 0,X);break;case 11:t=fc(n,t,t.pendingProps,t.type.render,t.ref,X);break;case 5:wo(t);default:Lc(n,t),t=Y=ii(t,Ul),t=Oc(n,t,Ul)}e.memoizedProps=e.pendingProps,t===null?Fu(e):Y=t}function Pu(e,t,n,r){Bi=zi=null,wo(t),Ta=null,Ea=0;var i=t.return;try{if(Zs(e,i,t,n,X)){Wl=1,Ks(e,di(n,e.current)),Y=null;return}}catch(t){if(i!==null)throw Y=i,t;Wl=1,Ks(e,di(n,e.current)),Y=null;return}t.flags&32768?(K||r===1?e=!0:Vl||X&536870912?e=!1:(Bl=e=!0,(r===2||r===9||r===3||r===6)&&(r=Xa.current,r!==null&&r.tag===13&&(r.flags|=16384))),Iu(t,e)):Fu(t)}function Fu(e){var t=e;do{if(t.flags&32768){Iu(t,Bl);return}e=t.return;var n=Fc(t.alternate,t,Ul);if(n!==null){Y=n;return}if(t=t.sibling,t!==null){Y=t;return}Y=t=e}while(t!==null);Wl===0&&(Wl=5)}function Iu(e,t){do{var n=Ic(e.alternate,e);if(n!==null){n.flags&=32767,Y=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Y=e;return}Y=e=n}while(e!==null);Wl=6,Y=null}function Lu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Hu();while(iu!==0);if(J&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=Kr,et(e,n,o,s,c,l),e===Ll&&(Y=Ll=null,X=0),ou=t,au=e,su=n,cu=o,lu=a,uu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Zu(Pe,function(){return Uu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=A.T,A.T=null,a=j.p,j.p=2,s=J,J|=4;try{nl(e,t,n)}finally{J=s,j.p=a,A.T=r}}iu=1,Ru(),zu(),Bu()}}function Ru(){if(iu===1){iu=0;var e=au,t=ou,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=A.T,A.T=null;var r=j.p;j.p=2;var i=J;J|=4;try{hl(t,e);var a=Bd,o=wr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Cr(s.ownerDocument.documentElement,s)){if(c!==null&&Tr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Sr(s,h),v=Sr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}cp=!!zd,Bd=zd=null}finally{J=i,j.p=r,A.T=n}}e.current=t,iu=2}}function zu(){if(iu===2){iu=0;var e=au,t=ou,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=A.T,A.T=null;var r=j.p;j.p=2;var i=J;J|=4;try{rl(e,t.alternate,t)}finally{J=i,j.p=r,A.T=n}}iu=3}}function Bu(){if(iu===4||iu===3){iu=0,ke();var e=au,t=ou,n=su,r=uu;t.subtreeFlags&10256||t.flags&10256?iu=5:(iu=0,ou=au=null,Vu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(ru=null),at(n),t=t.stateNode,Re&&typeof Re.onCommitFiberRoot==`function`)try{Re.onCommitFiberRoot(Le,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=A.T,i=j.p,j.p=2,A.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{A.T=t,j.p=i}}su&3&&Hu(),id(e),i=e.pendingLanes,n&261930&&i&42?e===fu?du++:(du=0,fu=e):du=0,ad(0,!1)}}function Vu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,na(t)))}function Hu(){return Ru(),zu(),Bu(),Uu()}function Uu(){if(iu!==5)return!1;var e=au,t=cu;cu=0;var n=at(su),r=A.T,a=j.p;try{j.p=32>n?32:n,A.T=null,n=lu,lu=null;var o=au,s=su;if(iu=0,ou=au=null,su=0,J&6)throw Error(i(331));var c=J;if(J|=4,Ml(o.current),wl(o,o.current,s,n),J=c,ad(0,!1),Re&&typeof Re.onPostCommitFiberRoot==`function`)try{Re.onPostCommitFiberRoot(Le,o)}catch{}return!0}finally{j.p=a,A.T=r,Vu(e,t)}}function Wu(e,t,n){t=di(n,t),t=Js(e.stateNode,t,2),e=La(e,t,2),e!==null&&($e(e,2),id(e))}function Gu(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ru===null||!ru.has(r))){e=di(n,e),n=Ys(2),r=La(t,n,2),r!==null&&(Xs(n,r,t,e),$e(r,2),id(r));break}}t=t.return}}function Ku(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Il;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Hl=!0,i.add(n),e=qu.bind(null,e,t,n),t.then(e,e))}function qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ll===e&&(X&n)===n&&(Wl===4||Wl===3&&(X&62914560)===X&&300>Ae()-$l?!(J&2)&&Su(e,0):ql|=n,Yl===X&&(Yl=0)),id(e)}function Ju(e,t){t===0&&(t=Ze()),e=Xr(e,t),e!==null&&($e(e,t),id(e))}function Yu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ju(e,n)}function Xu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Ju(e,n)}function Zu(e,t){return Ee(e,t)}var Qu=null,$u=null,ed=!1,td=!1,nd=!1,rd=0;function id(e){e!==$u&&e.next===null&&($u===null?Qu=$u=e:$u=$u.next=e),td=!0,ed||(ed=!0,dd())}function ad(e,t){if(!nd&&td){nd=!0;do for(var n=!1,r=Qu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Be(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ud(r,a))}else a=X,a=Je(r,r===Ll?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ye(r,a)||(n=!0,ud(r,a));r=r.next}while(n);nd=!1}}function od(){sd()}function sd(){td=ed=!1;var e=0;rd!==0&&Kd()&&(e=rd);for(var t=Ae(),n=null,r=Qu;r!==null;){var i=r.next,a=cd(r,t);a===0?(r.next=null,n===null?Qu=i:n.next=i,i===null&&($u=n)):(n=r,(e!==0||a&3)&&(td=!0)),r=i}iu!==0&&iu!==5||ad(e,!1),rd!==0&&(rd=0)}function cd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Be(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Xe(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Ll,n=X,n=Je(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Rl===2||Rl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&De(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||Ye(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&De(r),at(n)){case 2:case 8:n=Ne;break;case 32:n=Pe;break;case 268435456:n=F;break;default:n=Pe}return r=ld.bind(null,e),n=Ee(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&De(r),e.callbackPriority=2,e.callbackNode=null,2}function ld(e,t){if(iu!==0&&iu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Hu()&&e.callbackNode!==n)return null;var r=X;return r=Je(e,e===Ll?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(gu(e,r,t),cd(e,Ae()),e.callbackNode!=null&&e.callbackNode===n?ld.bind(null,e):null)}function ud(e,t){if(Hu())return null;gu(e,t,!0)}function dd(){Xd(function(){J&6?Ee(Me,od):sd()})}function fd(){if(rd===0){var e=aa;e===0&&(e=We,We<<=1,!(We&261888)&&(We=256)),rd=e}return rd}function pd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Yt(``+e)}function md(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function hd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=pd((i[ut]||null).action),o=r.submitter;o&&(t=(t=o[ut]||null)?pd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new vn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(rd!==0){var e=o?md(i,o):new FormData(i);bs(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?md(i,o):new FormData(i),bs(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var gd=0;gd<Vr.length;gd++){var _d=Vr[gd];Hr(_d.toLowerCase(),`on`+(_d[0].toUpperCase()+_d.slice(1)))}Hr(G,`onAnimationEnd`),Hr(Pr,`onAnimationIteration`),Hr(Fr,`onAnimationStart`),Hr(`dblclick`,`onDoubleClick`),Hr(`focusin`,`onFocus`),Hr(`focusout`,`onBlur`),Hr(Ir,`onTransitionRun`),Hr(Lr,`onTransitionStart`),Hr(Rr,`onTransitionCancel`),Hr(zr,`onTransitionEnd`),Et(`onMouseEnter`,[`mouseout`,`mouseover`]),Et(`onMouseLeave`,[`mouseout`,`mouseover`]),Et(`onPointerEnter`,[`pointerout`,`pointerover`]),Et(`onPointerLeave`,[`pointerout`,`pointerover`]),Tt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),Tt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),Tt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),Tt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),Tt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),Tt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var vd=`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(` `),yd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(vd));function bd(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Ur(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Ur(e)}i.currentTarget=null,a=c}}}}function Z(e,t){var n=t[ft];n===void 0&&(n=t[ft]=new Set);var r=e+`__bubble`;n.has(r)||(wd(t,e,2,!1),n.add(r))}function xd(e,t,n){var r=0;t&&(r|=4),wd(n,e,r,t)}var Sd=`_reactListening`+Math.random().toString(36).slice(2);function Cd(e){if(!e[Sd]){e[Sd]=!0,Ct.forEach(function(t){t!==`selectionchange`&&(yd.has(t)||xd(t,!1,e),xd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Sd]||(t[Sd]=!0,xd(`selectionchange`,!1,t))}}function wd(e,t,n,r){switch(mp(t)){case 2:var i=lp;break;case 8:i=up;break;default:i=$}n=i.bind(null,t,n,e),i=void 0,!sn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Td(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=vt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}rn(function(){var r=a,i=Qt(n),s=[];a:{var c=Br.get(e);if(c!==void 0){var l=vn,u=e;switch(e){case`keypress`:if(pn(n)===0)break a;case`keydown`:case`keyup`:l=In;break;case`focusin`:u=`focus`,l=Dn;break;case`focusout`:u=`blur`,l=Dn;break;case`beforeblur`:case`afterblur`:l=Dn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Tn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=En;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Rn;break;case G:case Pr:case Fr:l=On;break;case zr:l=zn;break;case`scroll`:case`scrollend`:l=bn;break;case`wheel`:l=Bn;break;case`copy`:case`cut`:case`paste`:l=kn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Ln;break;case`toggle`:case`beforetoggle`:l=Vn}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=an(m,p),g!=null&&d.push(Ed(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==Zt&&(u=n.relatedTarget||n.fromElement)&&(vt(u)||u[dt]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?vt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Tn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Ln,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:bt(l),h=u==null?c:bt(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,vt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Od,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&kd(s,c,l,d,!1),u!==null&&f!==null&&kd(s,f,u,d,!0)}}a:{if(c=r?bt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=sr;else if(tr(c))if(cr)v=_r;else{v=hr;var y=mr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&Kt(r.elementType)&&(v=sr):v=gr;if(v&&=v(e,r)){nr(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Vt(c,`number`,c.value)}switch(y=r?bt(r):window,e){case`focusin`:(tr(y)||y.contentEditable===`true`)&&(Dr=y,Or=r,kr=null);break;case`focusout`:kr=Or=Dr=null;break;case`mousedown`:Ar=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Ar=!1,jr(s,n,i);break;case`selectionchange`:if(Er)break;case`keydown`:case`keyup`:jr(s,n,i)}var b;if(Un)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else Zn?Yn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(Kn&&n.locale!==`ko`&&(Zn||x!==`onCompositionStart`?x===`onCompositionEnd`&&Zn&&(b=fn()):(ln=i,un=`value`in ln?ln.value:ln.textContent,Zn=!0)),y=Dd(r,x),0<y.length&&(x=new An(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=Xn(n),b!==null&&(x.data=b)))),(b=Gn?Qn(e,n):$n(e,n))&&(x=Dd(r,`onBeforeInput`),0<x.length&&(y=new An(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),hd(s,e,r,n,i)}bd(s,t)})}function Ed(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dd(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=an(e,n),i!=null&&r.unshift(Ed(e,i,a)),i=an(e,t),i!=null&&r.push(Ed(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Od(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function kd(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=an(n,a),l!=null&&o.unshift(Ed(n,l,c))):i||(l=an(n,a),l!=null&&o.push(Ed(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Ad=/\r\n?/g,jd=/\u0000|\uFFFD/g;function Md(e){return(typeof e==`string`?e:``+e).replace(Ad,`
9
+ `).replace(jd,``)}function Nd(e,t){return t=Md(t),Md(e)===t}function Q(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||B(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&B(e,``+r);break;case`className`:Mt(e,`class`,r);break;case`tabIndex`:Mt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Mt(e,n,r);break;case`style`:Gt(e,r,o);break;case`data`:if(t!==`object`){Mt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Yt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&Q(e,t,`name`,a.name,a,null),Q(e,t,`formEncType`,a.formEncType,a,null),Q(e,t,`formMethod`,a.formMethod,a,null),Q(e,t,`formTarget`,a.formTarget,a,null)):(Q(e,t,`encType`,a.encType,a,null),Q(e,t,`method`,a.method,a,null),Q(e,t,`target`,a.target,a,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Yt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Xt);break;case`onScroll`:r!=null&&Z(`scroll`,e);break;case`onScrollEnd`:r!=null&&Z(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Yt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Z(`beforetoggle`,e),Z(`toggle`,e),jt(e,`popover`,r);break;case`xlinkActuate`:Nt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:Nt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:Nt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:Nt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:Nt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:Nt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:Nt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:Nt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:Nt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:jt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=qt.get(n)||n,jt(e,n,r))}}function Pd(e,t,n,r,a,o){switch(n){case`style`:Gt(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?B(e,r):(typeof r==`number`||typeof r==`bigint`)&&B(e,``+r);break;case`onScroll`:r!=null&&Z(`scroll`,e);break;case`onScrollEnd`:r!=null&&Z(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=Xt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!wt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[ut]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):jt(e,n,r)}}}function Fd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Z(`error`,e),Z(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Q(e,t,o,s,n,null)}}a&&Q(e,t,`srcSet`,n.srcSet,n,null),r&&Q(e,t,`src`,n.src,n,null);return;case`input`:Z(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Q(e,t,r,d,n,null)}}R(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Z(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Q(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Ht(e,!!r,n,!0):Ht(e,!!r,t,!1);return;case`textarea`:for(s in Z(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Q(e,t,s,c,n,null)}z(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Q(e,t,l,r,n,null)}return;case`dialog`:Z(`beforetoggle`,e),Z(`toggle`,e),Z(`cancel`,e),Z(`close`,e);break;case`iframe`:case`object`:Z(`load`,e);break;case`video`:case`audio`:for(r=0;r<vd.length;r++)Z(vd[r],e);break;case`image`:Z(`error`,e),Z(`load`,e);break;case`details`:Z(`toggle`,e);break;case`embed`:case`source`:case`link`:Z(`error`,e),Z(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Q(e,t,u,r,n,null)}return;default:if(Kt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Pd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Q(e,t,c,r,n,null))}function Id(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Q(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&Q(e,t,p,m,r,f)}}Bt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Q(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Q(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Ht(e,!!n,n?[]:``,!1):Ht(e,!!n,t,!0)):Ht(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Q(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Q(e,t,s,a,r,o)}Ut(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Q(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Q(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Q(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:Q(e,t,u,p,r,m)}return;default:if(Kt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Pd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Pd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Q(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Q(e,t,f,p,r,m)}function Ld(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Rd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Ld(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Ld(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var zd=null,Bd=null;function Vd(e){return e.nodeType===9?e:e.ownerDocument}function Hd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Ud(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Wd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Gd=null;function Kd(){var e=window.event;return e&&e.type===`popstate`?e===Gd?!1:(Gd=e,!0):(Gd=null,!1)}var qd=typeof setTimeout==`function`?setTimeout:void 0,Jd=typeof clearTimeout==`function`?clearTimeout:void 0,Yd=typeof Promise==`function`?Promise:void 0,Xd=typeof queueMicrotask==`function`?queueMicrotask:Yd===void 0?qd:function(e){return Yd.resolve(null).then(e).catch(Zd)};function Zd(e){setTimeout(function(){throw e})}function Qd(e){return e===`head`}function $d(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Np(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)mf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,mf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[gt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&mf(e.ownerDocument.body);n=i}while(n);Np(t)}function ef(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function tf(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:tf(n),_t(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function nf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[gt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=lf(e.nextSibling),e===null)break}return null}function rf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=lf(e.nextSibling),e===null))return null;return e}function af(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=lf(e.nextSibling),e===null))return null;return e}function of(e){return e.data===`$?`||e.data===`$~`}function sf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function cf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function lf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var uf=null;function df(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return lf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function ff(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function pf(e,t,n){switch(t=Vd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function mf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);_t(e)}var hf=new Map,gf=new Set;function _f(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var vf=j.d;j.d={f:yf,r:bf,D:Cf,C:wf,L:Tf,m:Ef,X:Of,S:Df,M:kf};function yf(){var e=vf.f(),t=bu();return e||t}function bf(e){var t=yt(e);t!==null&&t.tag===5&&t.type===`form`?Ss(t):vf.r(e)}var xf=typeof document>`u`?null:document;function Sf(e,t,n){var r=xf;if(r&&typeof t==`string`&&t){var i=zt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),gf.has(i)||(gf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Fd(t,`link`,e),St(t),r.head.appendChild(t)))}}function Cf(e){vf.D(e),Sf(`dns-prefetch`,e,null)}function wf(e,t){vf.C(e,t),Sf(`preconnect`,e,t)}function Tf(e,t,n){vf.L(e,t,n);var r=xf;if(r&&e&&t){var i=`link[rel="preload"][as="`+zt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+zt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+zt(n.imageSizes)+`"]`)):i+=`[href="`+zt(e)+`"]`;var a=i;switch(t){case`style`:a=jf(e);break;case`script`:a=Ff(e)}hf.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),hf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Mf(a))||t===`script`&&r.querySelector(If(a))||(t=r.createElement(`link`),Fd(t,`link`,e),St(t),r.head.appendChild(t)))}}function Ef(e,t){vf.m(e,t);var n=xf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+zt(r)+`"][href="`+zt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Ff(e)}if(!hf.has(a)&&(e=m({rel:`modulepreload`,href:e},t),hf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(If(a)))return}r=n.createElement(`link`),Fd(r,`link`,e),St(r),n.head.appendChild(r)}}}function Df(e,t,n){vf.S(e,t,n);var r=xf;if(r&&e){var i=xt(r).hoistableStyles,a=jf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Mf(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=hf.get(a))&&zf(e,n);var c=o=r.createElement(`link`);St(c),Fd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Rf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Of(e,t){vf.X(e,t);var n=xf;if(n&&e){var r=xt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=m({src:e,async:!0},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),St(a),Fd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t){vf.M(e,t);var n=xf;if(n&&e){var r=xt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),St(a),Fd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Af(e,t,n,r){var a=(a=fe.current)?_f(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=jf(n.href),n=xt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=jf(n.href);var o=xt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Mf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),hf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},hf.set(e,n),o||Pf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Ff(n),n=xt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function jf(e){return`href="`+zt(e)+`"`}function Mf(e){return`link[rel="stylesheet"][`+e+`]`}function Nf(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function Pf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Fd(t,`link`,n),St(t),e.head.appendChild(t))}function Ff(e){return`[src="`+zt(e)+`"]`}function If(e){return`script[async]`+e}function Lf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+zt(n.href)+`"]`);if(r)return t.instance=r,St(r),r;var a=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),St(r),Fd(r,`style`,a),Rf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=jf(n.href);var o=e.querySelector(Mf(a));if(o)return t.state.loading|=4,t.instance=o,St(o),o;r=Nf(n),(a=hf.get(a))&&zf(r,a),o=(e.ownerDocument||e).createElement(`link`),St(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Fd(o,`link`,r),t.state.loading|=4,Rf(o,n.precedence,e),t.instance=o;case`script`:return o=Ff(n.src),(a=e.querySelector(If(o)))?(t.instance=a,St(a),a):(r=n,(a=hf.get(o))&&(r=m({},n),Bf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),St(a),Fd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Rf(r,n.precedence,e));return t.instance}function Rf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Bf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Vf=null;function Hf(e,t,n){if(Vf===null){var r=new Map,i=Vf=new Map;i.set(n,r)}else i=Vf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[gt]||a[lt]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Uf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Wf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Gf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Kf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=jf(r.href),a=t.querySelector(Mf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Yf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,St(a);return}a=t.ownerDocument||t,r=Nf(r),(i=hf.get(i))&&zf(r,i),a=a.createElement(`link`),St(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Fd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Yf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var qf=0;function Jf(e,t){return e.stylesheets&&e.count===0&&Zf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Zf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&qf===0&&(qf=62500*Rd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Zf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>qf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Yf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Zf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Xf=null;function Zf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Xf=new Map,t.forEach(Qf,e),Xf=null,Yf.call(e))}function Qf(e,t){if(!(t.state.loading&4)){var n=Xf.get(e);if(n)var r=n.get(null);else{n=new Map,Xf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Yf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var $f={$$typeof:C,Provider:null,Consumer:null,_currentValue:oe,_currentValue2:oe,_threadCount:0};function ep(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Qe(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Qe(0),this.hiddenUpdates=Qe(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function tp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new ep(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=ti(3,null,null,t),e.current=a,a.stateNode=e,t=ta(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Pa(a),e}function np(e){return e?(e=$r,e):$r}function rp(e,t,n,r,i,a){i=np(i),r.context===null?r.context=i:r.pendingContext=i,r=Ia(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=La(e,r,t),n!==null&&(hu(n,e,t),Ra(n,e,t))}function ip(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ap(e,t){ip(e,t),(e=e.alternate)&&ip(e,t)}function op(e){if(e.tag===13||e.tag===31){var t=Xr(e,67108864);t!==null&&hu(t,e,67108864),ap(e,67108864)}}function sp(e){if(e.tag===13||e.tag===31){var t=pu();t=it(t);var n=Xr(e,t);n!==null&&hu(n,e,t),ap(e,t)}}var cp=!0;function lp(e,t,n,r){var i=A.T;A.T=null;var a=j.p;try{j.p=2,$(e,t,n,r)}finally{j.p=a,A.T=i}}function up(e,t,n,r){var i=A.T;A.T=null;var a=j.p;try{j.p=8,$(e,t,n,r)}finally{j.p=a,A.T=i}}function $(e,t,n,r){if(cp){var i=dp(r);if(i===null)Td(e,t,r,fp,n),Cp(e,r);else if(Tp(i,e,t,n,r))r.stopPropagation();else if(Cp(e,r),t&4&&-1<Sp.indexOf(e)){for(;i!==null;){var a=yt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=qe(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Be(o);s.entanglements[1]|=c,o&=~c}id(a),!(J&6)&&(tu=Ae()+500,ad(0,!1))}}break;case 31:case 13:s=Xr(a,2),s!==null&&hu(s,a,2),bu(),ap(a,2)}if(a=dp(r),a===null&&Td(e,t,r,fp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Td(e,t,r,null,n)}}function dp(e){return e=Qt(e),pp(e)}var fp=null;function pp(e){if(fp=null,e=vt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return fp=e,null}function mp(e){switch(e){case`beforetoggle`: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`toggle`: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 2;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`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(je()){case Me:return 2;case Ne:return 8;case Pe:case P:return 32;case F:return 268435456;default:return 32}default:return 32}}var hp=!1,gp=null,_p=null,vp=null,yp=new Map,bp=new Map,xp=[],Sp=`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`.split(` `);function Cp(e,t){switch(e){case`focusin`:case`focusout`:gp=null;break;case`dragenter`:case`dragleave`:_p=null;break;case`mouseover`:case`mouseout`:vp=null;break;case`pointerover`:case`pointerout`:yp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:bp.delete(t.pointerId)}}function wp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=yt(t),t!==null&&op(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Tp(e,t,n,r,i){switch(t){case`focusin`:return gp=wp(gp,e,t,n,r,i),!0;case`dragenter`:return _p=wp(_p,e,t,n,r,i),!0;case`mouseover`:return vp=wp(vp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return yp.set(a,wp(yp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,bp.set(a,wp(bp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ep(e){var t=vt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,st(e.priority,function(){sp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,st(e.priority,function(){sp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Dp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=dp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Zt=r,n.target.dispatchEvent(r),Zt=null}else return t=yt(n),t!==null&&op(t),e.blockedOn=n,!1;t.shift()}return!0}function Op(e,t,n){Dp(e)&&n.delete(t)}function kp(){hp=!1,gp!==null&&Dp(gp)&&(gp=null),_p!==null&&Dp(_p)&&(_p=null),vp!==null&&Dp(vp)&&(vp=null),yp.forEach(Op),bp.forEach(Op)}function Ap(e,n){e.blockedOn===n&&(e.blockedOn=null,hp||(hp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,kp)))}var jp=null;function Mp(e){jp!==e&&(jp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jp===e&&(jp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(pp(r||n)===null)continue;break}var a=yt(n);a!==null&&(e.splice(t,3),t-=3,bs(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Np(e){function t(t){return Ap(t,e)}gp!==null&&Ap(gp,e),_p!==null&&Ap(_p,e),vp!==null&&Ap(vp,e),yp.forEach(t),bp.forEach(t);for(var n=0;n<xp.length;n++){var r=xp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<xp.length&&(n=xp[0],n.blockedOn===null);)Ep(n),n.blockedOn===null&&xp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[ut]||null;if(typeof a==`function`)o||Mp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[ut]||null)s=o.formAction;else if(pp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Mp(n)}}}function Pp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Fp(e){this._internalRoot=e}Ip.prototype.render=Fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;rp(n,pu(),e,t,null,null)},Ip.prototype.unmount=Fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;rp(e.current,2,null,e,null,null),bu(),t[dt]=null}};function Ip(e){this._internalRoot=e}Ip.prototype.unstable_scheduleHydration=function(e){if(e){var t=ot();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xp.length&&t!==0&&t<xp[n].priority;n++);xp.splice(n,0,e),n===0&&Ep(e)}};var Lp=n.version;if(Lp!==`19.2.5`)throw Error(i(527,Lp,`19.2.5`));j.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=u(t),e=e===null?null:f(e),e=e===null?null:e.stateNode,e};var Rp={bundleType:0,version:`19.2.5`,rendererPackageName:`react-dom`,currentDispatcherRef:A,reconcilerVersion:`19.2.5`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!zp.isDisabled&&zp.supportsFiber)try{Le=zp.inject(Rp),Re=zp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Us,s=Ws,c=Gs;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=tp(e,1,!1,null,null,n,r,null,o,s,c,Pp),e[dt]=t.current,Cd(e),new Fp(t)}})),_=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=g()})),v=l(d(),1),y=_();async function b(e){let t=await fetch(e,{headers:{Accept:`application/json`}});if(!t.ok)throw Error(`GET ${e} failed: ${t.status}`);return t.json()}async function x(e,t,n){let r=await fetch(e,{method:t,headers:{Accept:`application/json`,...n===void 0?{}:{"Content-Type":`application/json`}},body:n===void 0?void 0:JSON.stringify(n)}),i=await r.json().catch(()=>void 0);if(!r.ok)throw Error(i?.error?.message||`${t} ${e} failed: ${r.status}`);return i}function S(){return b(`/api/dashboard-auth/session`)}function C(){return x(`/api/dashboard-auth/request-approval`,`POST`)}function w(e,t){return b(`/api/dashboard-auth/approval-status?${new URLSearchParams({challengeId:e,pollToken:t}).toString()}`)}function T(){return x(`/api/dashboard-auth/logout`,`POST`)}function E(){return b(`/health`)}function D(){return b(`/api/providers`)}function O(e){return x(`/api/providers`,`POST`,e)}function ee(e,t){return x(`/api/providers/${encodeURIComponent(e)}`,`PUT`,t)}function k(e){return x(`/api/providers/${encodeURIComponent(e)}`,`DELETE`)}function te(e,t){return x(`/api/providers/${encodeURIComponent(e)}/toggle-enabled`,`POST`,{enabled:t})}function ne(e){return x(`/api/clients`,`POST`,e)}function re(e,t){return x(`/api/clients/${encodeURIComponent(e)}`,`PUT`,t)}function ie(e){return x(`/api/clients/${encodeURIComponent(e)}`,`DELETE`)}function ae(){return b(`/api/client-token-limits`)}function A(e,t){return x(`/api/client-token-limits/${encodeURIComponent(e)}`,`PUT`,t)}function j(){return b(`/api/stats/usage`)}function oe(){return b(`/api/providers/live-usage`)}function se(e,t){return x(`/api/rtk-policies`,`POST`,{client:e,policy:t})}function ce(e){return b(`/api/debug/prompt-cache/latest${e?`?providerId=${encodeURIComponent(e)}`:``}`)}function le(){return b(`/api/chatgpt-oauth/status`)}function M(){return x(`/api/chatgpt-oauth/start`,`POST`)}function N(e){return x(`/api/chatgpt-oauth/callback`,`POST`,e)}function ue(e){return x(`/api/chatgpt-oauth/settings`,`PATCH`,e)}function de(e){return x(`/api/account-auth/accounts/${encodeURIComponent(e)}/refresh`,`POST`)}function fe(e){return x(`/api/account-auth/accounts/${encodeURIComponent(e)}/enable`,`POST`)}function pe(e){return x(`/api/account-auth/accounts/${encodeURIComponent(e)}/disable`,`POST`)}function me(e){return x(`/api/account-auth/accounts/${encodeURIComponent(e)}`,`DELETE`)}function he(){return b(`/api/client-configs/status`)}function ge(e){return x(`/api/client-configs/apply`,`POST`,e)}function _e(e){return b(`/api/provider-models?providerId=${encodeURIComponent(e)}`)}function ve(){return b(`/api/kiro/status`)}function ye(){return b(`/api/kiro/accounts`)}function be(e){return x(`/api/kiro/accounts/${encodeURIComponent(e)}/refresh`,`POST`)}function xe(e,t){return x(`/api/kiro/accounts/${encodeURIComponent(e)}`,`PATCH`,t)}function Se(e){return x(`/api/kiro/accounts/${encodeURIComponent(e)}`,`DELETE`)}function Ce(e){return x(`/api/kiro/import`,`POST`,e)}function we(e,t){return x(`/api/kiro/model-aliases`,`PUT`,{alias:e,target:t})}function Te(e){return x(`/api/kiro/model-aliases/${encodeURIComponent(e)}`,`DELETE`)}function Ee(e){return x(`/api/kiro/models/test`,`POST`,{model:e})}function De(e){let t=new URLSearchParams;return e?.limit&&t.append(`limit`,String(e.limit)),e?.event&&t.append(`event`,e.event),e?.subjectId&&t.append(`subjectId`,e.subjectId),b(`/api/debug/audit-logs${t.toString()?`?${t.toString()}`:``}`)}function Oe(e){return x(`/api/kiro/device/start`,`POST`,e)}function ke(e){return x(`/api/kiro/device/poll`,`POST`,{sessionId:e})}function Ae(e){return b(`/api/model-combos${e===void 0?``:`?kind=${encodeURIComponent(e)}`}`)}function je(e){return x(`/api/model-combos`,`POST`,e)}function Me(e,t){return x(`/api/model-combos/${encodeURIComponent(e)}`,`PUT`,t)}function Ne(e){return x(`/api/model-combos/${encodeURIComponent(e)}`,`DELETE`)}var Pe=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),P=o(((e,t)=>{t.exports=Pe()}))(),F={width:18,height:18,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0};function Fe(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`rect`,{x:`3`,y:`3`,width:`7`,height:`9`,rx:`1.5`}),(0,P.jsx)(`rect`,{x:`14`,y:`3`,width:`7`,height:`5`,rx:`1.5`}),(0,P.jsx)(`rect`,{x:`14`,y:`12`,width:`7`,height:`9`,rx:`1.5`}),(0,P.jsx)(`rect`,{x:`3`,y:`16`,width:`7`,height:`5`,rx:`1.5`})]})}function Ie(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`6`,rx:`2`}),(0,P.jsx)(`rect`,{x:`3`,y:`14`,width:`18`,height:`6`,rx:`2`}),(0,P.jsx)(`path`,{d:`M7 7h.01M7 17h.01`})]})}function Le(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`circle`,{cx:`9`,cy:`8`,r:`3.2`}),(0,P.jsx)(`path`,{d:`M3.5 19a5.5 5.5 0 0 1 11 0`}),(0,P.jsx)(`path`,{d:`M16 7.5a3 3 0 0 1 0 5.8M18 19a5 5 0 0 0-3-4.6`})]})}function Re(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`circle`,{cx:`12`,cy:`8`,r:`4`}),(0,P.jsx)(`path`,{d:`M5 20a7 7 0 0 1 14 0`})]})}function ze(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`rect`,{x:`5`,y:`11`,width:`14`,height:`9`,rx:`2`}),(0,P.jsx)(`path`,{d:`M8 11V8a4 4 0 0 1 8 0v3`}),(0,P.jsx)(`path`,{d:`M12 15v2`})]})}function Be(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,P.jsx)(`path`,{d:`M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9 17 7M7 17l-2.1 2.1`})]})}function Ve(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M4 19V5`}),(0,P.jsx)(`path`,{d:`M4 19h16`}),(0,P.jsx)(`path`,{d:`M8 16v-4M12 16V8M16 16v-6`})]})}function He(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M12 3v18`}),(0,P.jsx)(`path`,{d:`M7 8l-4 4 4 4M17 8l4 4-4 4`})]})}function Ue(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`ellipse`,{cx:`12`,cy:`6`,rx:`7`,ry:`3`}),(0,P.jsx)(`path`,{d:`M5 6v6c0 1.7 3.1 3 7 3s7-1.3 7-3V6`}),(0,P.jsx)(`path`,{d:`M5 12v6c0 1.7 3.1 3 7 3s7-1.3 7-3v-6`})]})}function We(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M21 12a9 9 0 1 1-2.64-6.36`}),(0,P.jsx)(`path`,{d:`M21 3v6h-6`})]})}function Ge(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,P.jsx)(`path`,{d:`M12 2v2M12 20v2M2 12h2M20 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M19.1 4.9l-1.4 1.4M6.3 17.7l-1.4 1.4`})]})}function Ke(e){return(0,P.jsx)(`svg`,{...F,...e,children:(0,P.jsx)(`path`,{d:`M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z`})})}function qe(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,P.jsx)(`path`,{d:`M8.5 12.5l2.5 2.5 4.5-5`})]})}function Je(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M12 3 2.5 20h19L12 3z`}),(0,P.jsx)(`path`,{d:`M12 9v5M12 17.5h.01`})]})}function Ye(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M3 13l3-8h12l3 8`}),(0,P.jsx)(`path`,{d:`M3 13v5a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-5`}),(0,P.jsx)(`path`,{d:`M3 13h5l1 2h6l1-2h5`})]})}function Xe(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}),(0,P.jsx)(`path`,{d:`M16 17l5-5-5-5M21 12H9`})]})}function Ze(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,P.jsx)(`path`,{d:`M12 2v3M12 19v3M2 12h3M19 12h3`}),(0,P.jsx)(`path`,{d:`M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9L17 7M7 17l-2.1 2.1`})]})}function Qe(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3`}),(0,P.jsx)(`circle`,{cx:`12`,cy:`12`,r:`2`})]})}function $e(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,P.jsx)(`path`,{d:`M12 7v5l3 3`}),(0,P.jsx)(`path`,{d:`M9 2h6M9 22h6`})]})}function et(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M12 2L2 7l10 5 10-5-10-5z`}),(0,P.jsx)(`path`,{d:`M2 17l10 5 10-5`}),(0,P.jsx)(`path`,{d:`M2 12l10 5 10-5`})]})}function tt(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`16`,rx:`2`}),(0,P.jsx)(`path`,{d:`M7 10l2 2-2 2M13 14h4`})]})}function nt(e){return(0,P.jsx)(`svg`,{...F,...e,children:(0,P.jsx)(`path`,{d:`M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z`})})}function rt(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`rect`,{x:`2`,y:`3`,width:`20`,height:`14`,rx:`2`}),(0,P.jsx)(`path`,{d:`M8 21h8`}),(0,P.jsx)(`path`,{d:`M12 17v4`}),(0,P.jsx)(`path`,{d:`M6 8l2 2-2 2M10 12h4`})]})}function it(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,P.jsx)(`path`,{d:`M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9L17 7M7 17l-2.1 2.1`})]})}function at(e){return(0,P.jsx)(`svg`,{...F,...e,children:(0,P.jsx)(`path`,{d:`M12 5v14M5 12h14`})})}function ot(e){return(0,P.jsx)(`svg`,{...F,...e,children:(0,P.jsx)(`path`,{d:`M10 2v7.5M14 2v7.5M8.5 6h7M4 22h16M4 22a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2M6 20l3.5-6M18 20l-3.5-6`})})}function st(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`polyline`,{points:`3 6 5 6 21 6`}),(0,P.jsx)(`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`}),(0,P.jsx)(`line`,{x1:`10`,y1:`11`,x2:`10`,y2:`17`}),(0,P.jsx)(`line`,{x1:`14`,y1:`11`,x2:`14`,y2:`17`})]})}function ct(e){return(0,P.jsxs)(`svg`,{...F,...e,children:[(0,P.jsx)(`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`}),(0,P.jsx)(`polyline`,{points:`15 3 21 3 21 9`}),(0,P.jsx)(`line`,{x1:`10`,y1:`14`,x2:`21`,y2:`3`})]})}var lt=s({flatNavItems:()=>pt,functionalNavGroups:()=>dt,getCurrentFunctionalNavGroups:()=>_t,getNavigationMode:()=>gt,resolveRouteAlias:()=>ht,routeAliases:()=>ft,routerFlatNavItems:()=>mt,routerFunctionalNavGroups:()=>ut}),ut=[{id:`main`,label:`MAIN`,icon:Ze,collapsible:!1,items:[{route:`endpoint`,label:`Endpoint`,icon:Ze,description:`Local OpenAI-compatible endpoint and client setup`},{route:`providers`,label:`Providers`,icon:Ie,description:`Manage AI provider connections`},{route:`combos`,label:`Combos`,icon:Qe,description:`Routing combinations and fallback chains`},{route:`usage`,label:`Usage`,icon:Ve,description:`Request and token usage analytics`},{route:`quota-tracker`,label:`Quota Tracker`,icon:$e,description:`Provider quota, reset time, and exhaustion status`},{route:`mitm`,label:`MITM`,icon:et,description:`Request inspection and proxy debugging`},{route:`cli-tools`,label:`CLI Tools`,icon:tt,description:`Setup commands for Claude Code, Codex, Cursor, Cline, and other tools`}]},{id:`system`,label:`SYSTEM`,icon:it,collapsible:!0,items:[{route:`console-log`,label:`Console Log`,icon:rt,description:`Runtime logs, provider errors, and request traces`},{route:`settings`,label:`Settings`,icon:it,description:`App settings, auth, theme, and security`}]}],dt=[{id:`overview`,label:`Overview`,icon:Fe,collapsible:!1,items:[{route:`dashboard`,label:`Dashboard`,icon:Fe,description:`System status & health overview`}]},{id:`infrastructure`,label:`Infrastructure`,icon:Be,collapsible:!0,items:[{route:`providers`,label:`Providers`,icon:Ie,description:`AI provider inventory & settings`},{route:`clients`,label:`Client Routes`,icon:Le,description:`Client routing & API keys`},{route:`rtk`,label:`RTK Policies`,icon:He,description:`Request/response reduction policies`,badge:`Advanced`}]},{id:`accounts`,label:`Account Management`,icon:Re,collapsible:!0,items:[{route:`oauth`,label:`Provider Accounts`,icon:Re,description:`OAuth & Kiro account management`},{route:`auth-management`,label:`Authentication`,icon:ze,description:`Account authentication settings`}]},{id:`monitoring`,label:`Monitoring & Analytics`,icon:Ve,collapsible:!0,items:[{route:`usage`,label:`Usage Analytics`,icon:Ve,description:`API usage statistics & trends`},{route:`cache`,label:`Cache Telemetry`,icon:Ue,description:`Prompt cache performance metrics`}]},{id:`tools`,label:`Tools`,icon:Be,collapsible:!0,items:[{route:`config-helper`,label:`Config Helper`,icon:Be,description:`Local configuration patches`}]}],ft={endpoint:`endpoint`,combos:`combos`,"quota-tracker":`quota-tracker`,mitm:`mitm`,"cli-tools":`cli-tools`,"media-providers":`media-providers`,"proxy-pools":`proxy-pools`,skills:`skills`,"console-log":`console-log`,settings:`settings`,dashboard:`dashboard`,providers:`providers`,clients:`clients`,oauth:`oauth`,"auth-management":`auth-management`,"config-helper":`config-helper`,usage:`usage`,cache:`cache`,rtk:`rtk`,routing:`combos`,fallback:`combos`,quota:`quota-tracker`,logs:`console-log`,debug:`mitm`,setup:`cli-tools`,config:`settings`},pt=dt.flatMap(e=>e.items),mt=ut.flatMap(e=>e.items);function ht(e){return ft[e]}function gt(){return`router`}function _t(){return gt()===`router`?ut:dt}var vt=`modulepreload`,yt=function(e){return`/`+e},bt={},xt=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=yt(t,n),t in bt)return;bt[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:vt,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},St=`responses-proxy-nav-state`;function Ct(){let[e,t]=(0,v.useState)(()=>{try{let e=localStorage.getItem(St);if(e){let t=JSON.parse(e);return new Set(t.collapsedGroups)}}catch(e){console.warn(`Failed to load navigation state:`,e)}return new Set});return(0,v.useEffect)(()=>{try{let t={collapsedGroups:Array.from(e)};localStorage.setItem(St,JSON.stringify(t))}catch(e){console.warn(`Failed to save navigation state:`,e)}},[e]),{collapsedGroups:e,toggleGroup:n=>{let r=new Set(e);r.has(n)?r.delete(n):r.add(n),t(r)},isGroupCollapsed:t=>e.has(t),collapseAll:()=>{xt(async()=>{let{functionalNavGroups:e}=await Promise.resolve().then(()=>lt);return{functionalNavGroups:e}},void 0).then(({functionalNavGroups:e})=>{let n=e.filter(e=>e.collapsible!==!1).map(e=>e.id);t(new Set(n))})},expandAll:()=>{t(new Set)}}}function wt(){return(0,P.jsx)(`header`,{className:`sidebar-product-header`,children:(0,P.jsxs)(`div`,{className:`product-info`,children:[(0,P.jsx)(`div`,{className:`product-mark`,"aria-hidden":`true`,children:`RP`}),(0,P.jsxs)(`div`,{className:`product-details`,children:[(0,P.jsx)(`h1`,{className:`product-name`,children:`Responses Proxy`}),(0,P.jsx)(`span`,{className:`product-version`,children:`v0.1.0`})]})]})})}function Tt(){return(0,P.jsxs)(`div`,{className:`server-status-footer`,title:`Responses Proxy is running and listening.`,children:[(0,P.jsx)(`span`,{className:`pulse-indicator-dot`}),(0,P.jsx)(`span`,{className:`status-text`,children:`Proxy Active`})]})}function Et({currentRoute:e}){let{toggleGroup:t,isGroupCollapsed:n}=Ct(),r=_t(),i=t=>t.items.some(t=>t.route===e),a=(e,n)=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t(n))};return(0,P.jsxs)(`aside`,{className:`sidebar`,"aria-label":`Navigation`,children:[(0,P.jsx)(wt,{}),(0,P.jsx)(`nav`,{className:`sidebar-nav`,role:`navigation`,"aria-label":`Main navigation`,children:r.map(r=>{let o=r.icon,s=i(r),c=n(r.id),l=r.collapsible!==!1;return(0,P.jsxs)(`div`,{className:`nav-section ${r.id===`system`?`nav-section-system`:``}`,children:[(0,P.jsxs)(`div`,{className:`nav-section-header ${s?`active`:``} ${l?`collapsible`:``}`,onClick:l?()=>t(r.id):void 0,role:l?`button`:void 0,tabIndex:l?0:void 0,onKeyDown:l?e=>a(e,r.id):void 0,"aria-expanded":l?!c:void 0,"aria-controls":l?`nav-section-${r.id}`:void 0,children:[(0,P.jsx)(`span`,{className:`nav-section-icon`,"aria-hidden":`true`,children:(0,P.jsx)(o,{})}),(0,P.jsx)(`span`,{className:`nav-section-label`,children:r.label}),l&&(0,P.jsx)(`span`,{className:`nav-collapse-icon ${c?`collapsed`:`expanded`}`,"aria-hidden":`true`,children:`▼`})]}),(!l||!c)&&(0,P.jsx)(`div`,{className:`nav-section-items`,id:l?`nav-section-${r.id}`:void 0,children:r.items.map(t=>{let n=t.icon,r=t.route===e;return(0,P.jsxs)(`a`,{href:`#/${t.route}`,className:`nav-item ${r?`active`:``}`,"aria-current":r?`page`:void 0,title:t.description,children:[(0,P.jsx)(`span`,{className:`nav-item-icon`,"aria-hidden":`true`,children:(0,P.jsx)(n,{})}),(0,P.jsx)(`span`,{className:`nav-item-label`,children:t.label}),t.badge&&(0,P.jsx)(`span`,{className:`nav-item-badge`,"aria-label":`${t.badge} feature`,children:t.badge})]},t.route)})})]},r.id)})}),(0,P.jsx)(`div`,{className:`sidebar-footer`,children:(0,P.jsx)(Tt,{})})]})}function Dt({theme:e,onToggle:t}){let n=e===`dark`;return(0,P.jsxs)(`button`,{"aria-label":n?`Switch to light theme`:`Switch to dark theme`,"aria-pressed":n,className:`theme-toggle`,onClick:t,type:`button`,children:[(0,P.jsx)(`span`,{className:`theme-toggle-track`,"aria-hidden":`true`,children:(0,P.jsx)(`span`,{className:`theme-toggle-thumb`,children:n?(0,P.jsx)(Ke,{width:11,height:11}):(0,P.jsx)(Ge,{width:11,height:11})})}),(0,P.jsx)(`span`,{children:n?`Dark`:`Light`})]})}function Ot({currentLabel:e,theme:t,session:n,onToggleTheme:r,onLogout:i}){return(0,P.jsxs)(`header`,{className:`top-toolbar`,children:[(0,P.jsxs)(`nav`,{className:`toolbar-breadcrumb`,"aria-label":`Breadcrumb`,children:[(0,P.jsx)(`span`,{className:`crumb-root`,children:`Workspace`}),(0,P.jsx)(`span`,{className:`crumb-sep`,"aria-hidden":`true`,children:`/`}),(0,P.jsx)(`span`,{className:`crumb-current`,children:e})]}),(0,P.jsxs)(`div`,{className:`toolbar-actions`,children:[(0,P.jsxs)(`span`,{className:`toolbar-session`,children:[`Telegram `,n.telegramUserId]}),(0,P.jsx)(Dt,{theme:t,onToggle:r}),(0,P.jsxs)(`button`,{type:`button`,className:`button-link`,onClick:i,children:[(0,P.jsx)(Xe,{width:16,height:16}),(0,P.jsx)(`span`,{children:`Logout`})]})]})]})}function kt({currentRoute:e,theme:t,session:n,onToggleTheme:r,onLogout:i,children:a}){let o=(gt()===`router`?mt:pt).find(t=>t.route===e)?.label??`Dashboard`;return(0,P.jsx)(`div`,{className:`app-page`,children:(0,P.jsx)(`main`,{className:`app-panel`,children:(0,P.jsxs)(`div`,{className:`app-shell`,children:[(0,P.jsx)(Et,{currentRoute:e}),(0,P.jsxs)(`section`,{className:`content-area`,"aria-label":`Main content`,children:[(0,P.jsx)(Ot,{currentLabel:o,theme:t,session:n,onToggleTheme:r,onLogout:i}),(0,P.jsx)(`div`,{className:`screen-frame`,children:a})]})]})})})}function At({title:e,description:t,actionHref:n,actionLabel:r}){return(0,P.jsxs)(`section`,{className:`empty-state`,children:[(0,P.jsx)(`span`,{className:`state-icon`,"aria-hidden":`true`,children:(0,P.jsx)(Ye,{})}),(0,P.jsx)(`p`,{className:`eyebrow`,children:`Workspace`}),(0,P.jsx)(`h2`,{children:e}),(0,P.jsx)(`p`,{children:t}),n&&r?(0,P.jsx)(`a`,{className:`button-link`,href:n,children:r}):null]})}function jt({title:e=`Loading data`,description:t=`Reading live service data and workspace settings.`,cards:n=4}){return(0,P.jsxs)(`section`,{className:`loading-state`,children:[(0,P.jsxs)(`div`,{className:`loading-copy`,children:[(0,P.jsx)(`h2`,{children:e}),(0,P.jsx)(`p`,{children:t})]}),(0,P.jsx)(`div`,{className:`stat-grid`,children:Array.from({length:n}).map((e,t)=>(0,P.jsxs)(`div`,{className:`skeleton-card`,children:[(0,P.jsx)(`div`,{className:`skeleton-line skeleton-line-sm`}),(0,P.jsx)(`div`,{className:`skeleton-line skeleton-line-lg`}),(0,P.jsx)(`div`,{className:`skeleton-line skeleton-line-md`})]},t))})]})}var Mt=(0,v.createContext)(null);function Nt(){let e=(0,v.useContext)(Mt);if(!e)throw Error(`useNotifications must be used within a NotificationProvider`);return e}function Pt({children:e}){let[t,n]=(0,v.useState)([]),r=(0,v.useCallback)(e=>{let t=Math.random().toString(36).substr(2,9),r={...e,id:t,duration:e.duration??5e3};n(e=>[...e,r]),r.duration>0&&setTimeout(()=>{i(t)},r.duration)},[]),i=(0,v.useCallback)(e=>{n(t=>t.filter(t=>t.id!==e))},[]),a=(0,v.useCallback)(()=>{n([])},[]);return(0,P.jsxs)(Mt.Provider,{value:{toasts:t,addToast:r,removeToast:i,clearAll:a},children:[e,(0,P.jsx)(Ft,{})]})}function Ft(){let{toasts:e,removeToast:t}=Nt();return e.length===0?null:(0,P.jsx)(`div`,{className:`toast-container`,children:e.map(e=>(0,P.jsx)(It,{toast:e,onClose:()=>t(e.id)},e.id))})}function It({toast:e,onClose:t}){return(0,P.jsxs)(`div`,{className:`toast toast-${e.type}`,children:[(0,P.jsxs)(`div`,{className:`toast-header`,children:[(0,P.jsx)(`h4`,{className:`toast-title`,children:e.title}),(0,P.jsx)(`button`,{className:`toast-close`,onClick:t,"aria-label":`Close notification`,children:`×`})]}),e.message&&(0,P.jsx)(`p`,{className:`toast-message`,children:e.message}),e.action&&(0,P.jsx)(`div`,{className:`toast-actions`,children:(0,P.jsx)(`button`,{className:`toast-action-button`,onClick:()=>{e.action.onClick(),t()},children:e.action.label})})]})}function I({eyebrow:e,title:t,description:n,actions:r,icon:i}){return(0,P.jsxs)(`section`,{className:`page-header`,"aria-labelledby":`page-title`,children:[(0,P.jsxs)(`div`,{className:`page-header-copy`,children:[e?(0,P.jsx)(`p`,{className:`eyebrow`,children:e}):null,(0,P.jsxs)(`div`,{className:`page-header-title-row`,style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`},children:[i&&(0,P.jsx)(`span`,{className:`page-header-icon-container`,"aria-hidden":`true`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,P.jsx)(i,{className:`page-header-icon`,style:{width:`1.75rem`,height:`1.75rem`,color:`var(--accent)`}})}),(0,P.jsx)(`h1`,{id:`page-title`,style:{margin:0},children:t})]}),(0,P.jsx)(`p`,{children:n})]}),r?(0,P.jsx)(`div`,{className:`page-header-actions`,children:r}):null]})}function Lt({title:e,description:t,confirmLabel:n,onConfirm:r,onCancel:i,isSubmitting:a=!1}){return(0,P.jsx)(`div`,{className:`modal-backdrop`,role:`presentation`,children:(0,P.jsxs)(`div`,{"aria-modal":`true`,className:`modal-card modal-card-sm`,role:`dialog`,children:[(0,P.jsx)(`div`,{className:`modal-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:`Confirm action`}),(0,P.jsx)(`h2`,{children:e})]})}),(0,P.jsx)(`p`,{className:`modal-copy`,children:t}),(0,P.jsxs)(`div`,{className:`modal-actions`,children:[(0,P.jsx)(`button`,{className:`button-link`,disabled:a,onClick:i,type:`button`,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-link button-danger`,disabled:a,onClick:r,type:`button`,children:a?`Deleting...`:n})]})]})})}function Rt(e){return typeof e==`object`&&!!e}function L(e){return typeof e==`number`&&Number.isFinite(e)?e.toLocaleString():`Not reported`}function zt(e){return typeof e==`number`&&Number.isFinite(e)?`${e.toFixed(e%1==0?0:1)}%`:`Not reported`}function Bt(e){if(typeof e!=`string`||!e.trim())return`Not reported`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})}function R(e){return typeof e==`string`?e.trim()||`Not reported`:typeof e==`number`&&Number.isFinite(e)?e.toLocaleString():typeof e==`boolean`?e?`Yes`:`No`:`Not reported`}function Vt({columns:e,rows:t,emptyTitle:n=`No rows yet`,emptyDescription:r=`Data will appear here when the backend reports it.`,tableClassName:i}){return t.length?(0,P.jsx)(`div`,{className:`data-table-wrap`,children:(0,P.jsxs)(`table`,{className:i?`data-table ${i}`:`data-table`,children:[(0,P.jsx)(`thead`,{children:(0,P.jsx)(`tr`,{children:e.map(e=>(0,P.jsx)(`th`,{className:e.align?`align-${e.align}`:void 0,scope:`col`,children:e.label},String(e.key)))})}),(0,P.jsx)(`tbody`,{children:t.map((t,n)=>(0,P.jsx)(`tr`,{children:e.map(e=>{let n=t[e.key];return(0,P.jsx)(`td`,{className:e.align?`align-${e.align}`:void 0,"data-label":e.label,children:e.render?e.render(n,t):R(n)},String(e.key))})},n))})]})}):(0,P.jsxs)(`div`,{className:`table-empty`,children:[(0,P.jsx)(`strong`,{children:n}),(0,P.jsx)(`p`,{children:r})]})}function Ht({title:e,description:t,onRetry:n}){return(0,P.jsxs)(`section`,{className:`error-state`,children:[(0,P.jsx)(`span`,{className:`state-icon`,"aria-hidden":`true`,children:(0,P.jsx)(Je,{})}),(0,P.jsx)(`p`,{className:`eyebrow`,children:`Service status`}),(0,P.jsx)(`h2`,{children:e}),(0,P.jsx)(`p`,{children:t}),n?(0,P.jsx)(`button`,{className:`button-link`,onClick:n,type:`button`,children:`Retry`}):null]})}function Ut({variant:e=`success`,title:t,message:n}){return(0,P.jsxs)(`div`,{className:e===`error`?`inline-alert inline-alert-error`:`inline-alert inline-alert-success`,role:`status`,children:[t?(0,P.jsx)(`strong`,{children:t}):null,(0,P.jsx)(`span`,{children:n})]})}function z({label:e,value:t,caption:n,tone:r=`default`,icon:i}){return(0,P.jsxs)(`article`,{className:r===`default`?`stat-card`:`stat-card stat-card-${r}`,children:[(0,P.jsxs)(`div`,{className:`stat-card-head`,children:[(0,P.jsx)(`span`,{children:e}),i?(0,P.jsx)(`span`,{className:`stat-card-icon`,"aria-hidden":`true`,children:(0,P.jsx)(i,{})}):null]}),(0,P.jsx)(`strong`,{children:t}),n?(0,P.jsx)(`p`,{children:n}):null]})}function B({variant:e=`neutral`,children:t}){return(0,P.jsx)(`span`,{className:`status-badge status-badge-${e}`,children:t})}function V({title:e,description:t,children:n,className:r=``,actions:i,eyebrow:a,tone:o=`default`,style:s}){return(0,P.jsxs)(`section`,{className:[`surface-card`,o===`default`?``:`surface-card-${o}`,r].filter(Boolean).join(` `),style:s,children:[(e||a||i)&&(0,P.jsxs)(`div`,{className:`surface-card-header`,children:[(0,P.jsxs)(`div`,{className:`surface-card-title-group`,children:[a&&(0,P.jsx)(`div`,{className:`surface-card-eyebrow`,children:a}),e&&(0,P.jsx)(`h2`,{children:e})]}),i&&(0,P.jsx)(`div`,{className:`surface-card-actions`,children:i})]}),t&&(0,P.jsx)(`p`,{className:`surface-card-desc`,children:t}),n&&(0,P.jsx)(`div`,{className:`surface-card-body`,children:n})]})}function Wt(e){let t=(0,v.useRef)(!0),[n,r]=(0,v.useState)(0),[i,a]=(0,v.useState)({status:`loading`});return(0,v.useEffect)(()=>(t.current=!0,a({status:`loading`}),e().then(e=>{t.current&&a({status:`success`,data:e})}).catch(e=>{t.current&&a({status:`error`,error:e instanceof Error?e:Error(`Request failed`)})}),()=>{t.current=!1}),[e,n]),{state:i,retry(){r(e=>e+1)}}}var Gt=10080*60*1e3;function Kt(e){if(typeof e.expiresAt!=`string`)return!1;let t=Date.parse(e.expiresAt);return Number.isNaN(t)?!1:t-Date.now()<=Gt}function qt(e){return e.email||e.accountId||e.id||`Connected account`}function Jt({accountId:e}){let[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(`round_robin`),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(null),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(``),h=(0,v.useRef)(null),{state:g,retry:_}=Wt((0,v.useCallback)(()=>le(),[])),y=(0,v.useMemo)(()=>g.status===`success`&&Array.isArray(g.data.accounts)?g.data.accounts:[],[g]);(0,v.useEffect)(()=>{g.status===`success`&&o(g.data.rotationMode||`round_robin`)},[g]);let b=e?y.find(t=>t.id===e)??null:null,x=y.find(e=>e.id===l)??null;async function S(e,t,n){c(e),f(null);try{await t(),f({variant:`success`,message:n}),b?.id&&e===`account:${b.id}:delete`&&(window.location.hash=`#/oauth`),_()}catch(e){f({variant:`error`,message:e instanceof Error?e.message:`Account action failed.`})}finally{c(null)}}async function C(){await S(`oauth:start`,async()=>{let e=await M();n(typeof e.authUrl==`string`?e.authUrl:``),m(``)},`Sign-in URL ready. Open it, then paste the redirected callback URL.`)}async function w(){let e=r.trim();if(!e){f({variant:`error`,message:`Paste the callback URL first.`});return}await S(`oauth:callback`,async()=>{await N({redirectUrl:e}),i(``),n(``)},`Connected account successfully.`)}async function T(){await S(`oauth:rotation`,async()=>{await ue({rotationMode:a})},`Account rotation saved: ${a}`)}async function E(){if(t){try{if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(t),m(`Copied`);return}}catch{}h.current?.focus(),h.current?.select(),m(`Select to copy`)}}async function D(e){await S(`account:${e}:refresh`,async()=>{await de(e)},`Account refreshed.`)}async function O(e){let t=e.id??``,n=e.disabled===!0;await S(`account:${t}:toggle`,async()=>{n?await fe(t):await pe(t)},n?`Account enabled.`:`Account disabled.`)}async function ee(){if(!x?.id)return;let e=x.id;await S(`account:${e}:delete`,async()=>{await me(e),u(null)},`Account deleted.`)}if(g.status===`loading`||g.status===`idle`)return(0,P.jsx)(jt,{title:`Loading accounts`,description:`Reading OAuth status and connected account inventory.`});if(g.status===`error`)return(0,P.jsx)(Ht,{title:`Accounts unavailable`,description:g.error.message,onRetry:_});let k=g.data.enabled!==!1,te=y.filter(e=>e.disabled!==!0).length,ne=y.filter(e=>e.disabled===!0).length,re=y.filter(e=>Kt(e)&&e.disabled!==!0).length;return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:`Accounts`,title:e?`Account detail`:`Connected accounts`,description:e?`Inspect account metadata and shared-pool status without exposing any secrets.`:`OAuth and account pool management for account-backed providers.`,actions:e?b?(0,P.jsxs)(`div`,{className:`page-header-actions page-header-actions-group`,children:[(0,P.jsx)(`a`,{className:`button-link`,href:`#/oauth`,children:`Back to accounts`}),(0,P.jsx)(`button`,{className:`button-link`,disabled:!k||s===`account:${b.id}:refresh`,onClick:()=>void D(b.id??``),type:`button`,children:s===`account:${b.id}:refresh`?`Refreshing...`:`Refresh`}),(0,P.jsx)(`button`,{className:`button-link`,disabled:!k||s===`account:${b.id}:toggle`,onClick:()=>void O(b),type:`button`,children:b.disabled===!0?`Enable`:`Disable`}),(0,P.jsx)(`button`,{className:`button-link button-danger`,disabled:!k||s===`account:${b.id}:delete`,onClick:()=>u(b.id??null),type:`button`,children:`Delete`})]}):(0,P.jsx)(`a`,{className:`button-link`,href:`#/oauth`,children:`Back to accounts`}):(0,P.jsx)(`button`,{className:`button-link button-primary`,disabled:!k||s===`oauth:start`,onClick:()=>void C(),type:`button`,children:s===`oauth:start`?`Starting...`:`Start login`})}),d?(0,P.jsx)(Ut,{message:d.message,title:d.variant===`success`?`Account action completed`:`Account action failed`,variant:d.variant}):null,(0,P.jsxs)(`div`,{className:`stat-grid`,children:[(0,P.jsx)(z,{label:`OAuth`,value:k?`Enabled`:`Disabled`}),(0,P.jsx)(z,{label:`Rotation mode`,value:R(g.data.rotationMode)}),(0,P.jsx)(z,{label:`Account count`,value:L(y.length)}),(0,P.jsx)(z,{label:`Active accounts`,value:L(te)}),(0,P.jsx)(z,{label:`Disabled accounts`,value:L(ne)}),(0,P.jsx)(z,{label:`Expiring soon`,value:L(re)})]}),k?null:(0,P.jsx)(Ut,{message:`ChatGPT OAuth is disabled. Enable the backend account platform before starting login or account mutations.`,title:`OAuth disabled`,variant:`error`}),e?b?(0,P.jsxs)(`div`,{className:`detail-page-grid`,children:[(0,P.jsx)(V,{title:`Overview`,description:`Account identity, lifecycle, and shared-pool availability.`,children:(0,P.jsxs)(`div`,{className:`provider-detail`,children:[(0,P.jsxs)(`div`,{className:`hero-status`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:`Account detail`}),(0,P.jsx)(`h2`,{children:qt(b)}),(0,P.jsx)(`p`,{className:`long-value`,children:R(b.accountId)})]}),(0,P.jsxs)(`div`,{className:`card-inline-status`,children:[(0,P.jsx)(B,{variant:b.disabled===!0?`warning`:`success`,children:b.disabled===!0?`Disabled`:`Enabled`}),Kt(b)&&b.disabled!==!0?(0,P.jsx)(B,{variant:`warning`,children:`Expiring soon`}):null]})]}),(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Email`}),(0,P.jsx)(`dd`,{className:`long-value`,children:R(b.email)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Account ID`}),(0,P.jsx)(`dd`,{className:`long-value`,children:R(b.accountId)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Status`}),(0,P.jsx)(`dd`,{children:b.disabled===!0?`Disabled`:`Enabled`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Expires at`}),(0,P.jsx)(`dd`,{children:Bt(b.expiresAt)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Last refresh`}),(0,P.jsx)(`dd`,{children:Bt(b.lastRefreshAt)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Created`}),(0,P.jsx)(`dd`,{children:Bt(b.createdAt)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Updated`}),(0,P.jsx)(`dd`,{children:Bt(b.updatedAt)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Expiring soon`}),(0,P.jsx)(`dd`,{children:Kt(b)?`Yes`:`No`})]})]})]})}),(0,P.jsx)(V,{title:`Operational status`,description:`Safe runtime state without exposing tokens, refresh secrets, or auth codes.`,children:(0,P.jsx)(`div`,{className:`provider-detail-section`,children:(0,P.jsxs)(`dl`,{className:`provider-meta-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Pool status`}),(0,P.jsx)(`dd`,{children:b.disabled===!0?`Excluded from rotation`:`Eligible for rotation`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Rotation mode`}),(0,P.jsx)(`dd`,{children:R(g.data.rotationMode)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`OAuth platform`}),(0,P.jsx)(`dd`,{children:k?`Enabled`:`Disabled`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Secret visibility`}),(0,P.jsx)(`dd`,{children:`Access tokens, refresh tokens, and callback secrets remain hidden.`})]})]})})})]}):(0,P.jsx)(At,{title:`Account not found`,description:`This account ID is not available in the current runtime snapshot.`,actionHref:`#/oauth`,actionLabel:`Back to accounts`}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`accounts-top-layout`,children:[(0,P.jsx)(V,{title:`Connection flow`,description:`Generate a sign-in URL, then paste the redirected callback URL to connect an account.`,children:(0,P.jsxs)(`div`,{className:`oauth-card`,children:[(0,P.jsx)(`div`,{className:`row-actions`,children:(0,P.jsx)(`button`,{className:`button-link button-primary`,disabled:!k||s===`oauth:start`,onClick:()=>void C(),type:`button`,children:s===`oauth:start`?`Starting...`:`Start login`})}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Sign-in URL`}),(0,P.jsxs)(`div`,{className:`row-actions field-inline-actions`,children:[(0,P.jsx)(`input`,{className:`search-input`,readOnly:!0,ref:h,value:t}),(0,P.jsx)(`button`,{className:`button-link`,disabled:!t,onClick:()=>void E(),type:`button`,children:p||`Copy`}),(0,P.jsx)(`a`,{className:`button-link`,href:t||`#/oauth`,rel:`noreferrer`,target:`_blank`,children:`Open`})]})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Paste callback URL`}),(0,P.jsx)(`textarea`,{className:`search-input`,onChange:e=>i(e.target.value),placeholder:`https://chat.openai.com/aip/auth/callback?code=...`,rows:4,value:r})]}),(0,P.jsx)(`div`,{className:`row-actions`,children:(0,P.jsx)(`button`,{className:`button-link`,disabled:!k||s===`oauth:callback`||!r.trim(),onClick:()=>void w(),type:`button`,children:s===`oauth:callback`?`Submitting...`:`Submit callback`})})]})}),(0,P.jsx)(V,{title:`Rotation settings`,description:`Choose how account-backed providers rotate across the shared account pool.`,children:(0,P.jsx)(`div`,{className:`oauth-card`,children:(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Rotation mode`}),(0,P.jsxs)(`div`,{className:`rotation-settings-row`,children:[(0,P.jsxs)(`select`,{className:`search-input`,disabled:!k||s===`oauth:rotation`,onChange:e=>o(e.target.value),value:a,children:[(0,P.jsx)(`option`,{value:`round_robin`,children:`round_robin`}),(0,P.jsx)(`option`,{value:`random`,children:`random`}),(0,P.jsx)(`option`,{value:`first_available`,children:`first_available`})]}),(0,P.jsx)(`button`,{className:`button-link`,disabled:!k||s===`oauth:rotation`,onClick:()=>void T(),type:`button`,children:s===`oauth:rotation`?`Saving...`:`Save`})]})]})})})]}),(0,P.jsx)(V,{className:`list-card list-table`,title:`Accounts`,description:`Connected accounts used by account-backed providers.`,children:(0,P.jsx)(Vt,{columns:[{key:`email`,label:`Account`,render:(e,t)=>{let n=t,r=encodeURIComponent(n.id??``);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`button`,{className:`item-title-link`,onClick:()=>{window.location.hash=`#/oauth/${r}`},type:`button`,children:qt(n)}),(0,P.jsx)(`span`,{className:`item-meta truncate-value`,title:R(n.accountId),children:R(n.accountId)})]})}},{key:`accountId`,label:`Account ID`,render:e=>(0,P.jsx)(`span`,{className:`long-value`,children:R(e)})},{key:`disabled`,label:`Status`,render:(e,t)=>{let n=t,r=Kt(n)&&n.disabled!==!0;return(0,P.jsxs)(`div`,{className:`provider-status-stack`,children:[(0,P.jsx)(B,{variant:e===!0?`warning`:`success`,children:e===!0?`Disabled`:`Enabled`}),r?(0,P.jsx)(B,{variant:`warning`,children:`Expiring soon`}):null]})}},{key:`expiresAt`,label:`Expires`,render:e=>Bt(e)},{key:`id`,label:`Actions`,render:(e,t)=>{let n=t,r=typeof e==`string`?e:``,i=`account:${r}`;return(0,P.jsxs)(`div`,{className:`row-actions account-row-actions`,children:[(0,P.jsx)(`button`,{className:`button-link row-action-button`,disabled:!k||s===`${i}:refresh`,onClick:()=>void D(r),type:`button`,children:s===`${i}:refresh`?`Syncing...`:`Sync`}),(0,P.jsx)(`button`,{className:`button-link row-action-button`,disabled:!k||s===`${i}:toggle`,onClick:()=>void O(n),type:`button`,children:s===`${i}:toggle`?n.disabled===!0?`Enabling...`:`Disabling...`:n.disabled===!0?`Enable`:`Disable`}),(0,P.jsx)(`button`,{className:`button-link button-danger row-action-button`,disabled:!k||s===`${i}:delete`,onClick:()=>u(r),type:`button`,children:`Delete`})]})}}],emptyDescription:`No connected OAuth accounts are currently reported.`,emptyTitle:`No accounts connected`,rows:y,tableClassName:`accounts-table`})})]}),x?(0,P.jsx)(Lt,{confirmLabel:`Delete account`,description:`Remove ${qt(x)} from the shared OAuth pool? This does not reveal or export any tokens.`,isSubmitting:s===`account:${x.id}:delete`,onCancel:()=>{s!==`account:${x.id}:delete`&&u(null)},onConfirm:()=>void ee(),title:`Delete connected account`}):null]})}function Yt(e){switch(e){case`valid`:return{tone:`success`,label:`Valid`};case`expiring`:return{tone:`warning`,label:`Expiring`};case`expired`:return{tone:`danger`,label:`Expired`};case`missing`:return{tone:`neutral`,label:`Missing`};default:return{tone:`neutral`,label:`Unknown`}}}function Xt(e){if(e===null)return`Unknown`;if(e<=0)return`Expired`;let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return t>0?`${t}h ${n}m`:`${n}m`}function Zt({accountId:e}){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(null),[d,f]=(0,v.useState)(!1),[p,m]=(0,v.useState)(``),{state:h,retry:g}=Wt((0,v.useCallback)(async()=>{try{let[e,t]=await Promise.all([ve(),ye().catch(()=>({ok:!0,accounts:[]}))]);return{status:e,accounts:t.accounts}}catch(e){return console.error(`Kiro data loading error:`,e),{status:{ok:!0,enabled:!1,message:`Failed to load Kiro status`},accounts:[]}}},[])),_=(0,v.useMemo)(()=>h.status===`success`?h.data.status:null,[h]),y=(0,v.useMemo)(()=>h.status===`success`?h.data.accounts:[],[h]),b=e?y.find(t=>t.id===e)??null:null,x=y.find(e=>e.id===r)??null,S=y.find(e=>e.id===a)??null;(0,v.useEffect)(()=>{S&&!s&&c({name:S.name,priority:S.priority,isActive:S.isActive})},[S,s]);async function C(e,t,r){n(e),u(null);try{await t(),u({variant:`success`,message:r}),b?.id&&e===`kiro:${b.id}:delete`&&(window.location.hash=`#/kiro`),g()}catch(e){u({variant:`error`,message:e instanceof Error?e.message:`Action failed.`})}finally{n(null)}}async function w(e){await C(`kiro:${e.id}:refresh`,async()=>{await be(e.id)},`Refreshed tokens for ${e.name}`)}async function T(e){let t=!e.isActive;await C(`kiro:${e.id}:toggle`,async()=>{await xe(e.id,{isActive:t})},`${t?`Enabled`:`Disabled`} ${e.name}`)}async function E(){x&&await C(`kiro:${x.id}:delete`,async()=>{await Se(x.id),i(null)},`Deleted ${x.name}`)}async function D(){!S||!s||await C(`kiro:${S.id}:edit`,async()=>{await xe(S.id,s),o(null),c(null)},`Updated ${S.name}`)}async function O(){await C(`kiro:import`,async()=>{await Ce(p?{sourcePath:p}:void 0),f(!1),m(``)},`Successfully imported Kiro accounts`)}if(h.status===`loading`)return(0,P.jsx)(jt,{});if(h.status===`error`)return(0,P.jsx)(Ht,{error:h.error,onRetry:g});if(!_?.enabled)return(0,P.jsxs)(`div`,{className:`screen`,children:[(0,P.jsx)(I,{eyebrow:`Account Management`,title:`Kiro Accounts`,description:`AWS CodeWhisperer account management`}),(0,P.jsx)(V,{title:`Kiro Disabled`,description:`Kiro provider is not enabled`,children:(0,P.jsx)(`div`,{className:`empty-state`,children:(0,P.jsxs)(`div`,{className:`empty-state-content`,children:[(0,P.jsx)(`h3`,{children:`Kiro is disabled`}),(0,P.jsx)(`p`,{children:`Set KIRO_ENABLED=true in your environment configuration to enable Kiro account management.`})]})})})]});if(!_?.available)return(0,P.jsxs)(`div`,{className:`screen`,children:[(0,P.jsx)(I,{eyebrow:`Account Management`,title:`Kiro Accounts`,description:`AWS CodeWhisperer account management`}),(0,P.jsx)(V,{title:`Database Not Found`,description:`Kiro database is not available`,children:(0,P.jsx)(`div`,{className:`empty-state`,children:(0,P.jsxs)(`div`,{className:`empty-state-content`,children:[(0,P.jsx)(`h3`,{children:`Database not found`}),(0,P.jsx)(`p`,{children:_?.message||`Kiro database is not available`}),(0,P.jsx)(`button`,{className:`button button-primary`,onClick:()=>f(!0),disabled:t===`kiro:import`,children:`Import Accounts`})]})})})]});if(b){let e=Yt(b.tokenStatus);return(0,P.jsxs)(`div`,{className:`screen`,children:[(0,P.jsx)(I,{eyebrow:`Kiro Account`,title:b.name,description:`Account ID: ${b.id}`}),l&&(0,P.jsx)(Ut,{variant:l.variant,onDismiss:()=>u(null),children:l.message}),(0,P.jsxs)(`div`,{className:`detail-page-grid`,children:[(0,P.jsxs)(`div`,{className:`detail-page-main`,children:[(0,P.jsx)(V,{title:`Account Information`,description:`Basic account details`,children:(0,P.jsxs)(`div`,{className:`detail-grid`,children:[(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Name`}),(0,P.jsx)(`span`,{className:`detail-value`,children:b.name})]}),(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Account ID`}),(0,P.jsx)(`span`,{className:`detail-value code`,children:b.id})]}),(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Priority`}),(0,P.jsx)(`span`,{className:`detail-value`,children:b.priority})]}),(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Status`}),(0,P.jsx)(B,{tone:b.isActive?`success`:`neutral`,children:b.isActive?`Active`:`Disabled`})]}),(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Region`}),(0,P.jsx)(`span`,{className:`detail-value`,children:b.region})]}),(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Auth Method`}),(0,P.jsx)(`span`,{className:`detail-value`,children:b.authMethod})]})]})}),(0,P.jsx)(V,{title:`Token Status`,description:`Current token information`,children:(0,P.jsxs)(`div`,{className:`detail-grid`,children:[(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Token Status`}),(0,P.jsx)(B,{tone:e.tone,children:e.label})]}),(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Expires At`}),(0,P.jsx)(`span`,{className:`detail-value`,children:b.expiresAt?Bt(b.expiresAt):`Unknown`})]}),(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Time Remaining`}),(0,P.jsx)(`span`,{className:`detail-value`,children:Xt(b.expiresIn)})]}),(0,P.jsxs)(`div`,{className:`detail-item`,children:[(0,P.jsx)(`span`,{className:`detail-label`,children:`Has Refresh Token`}),(0,P.jsx)(B,{tone:b.hasRefreshToken?`success`:`danger`,children:b.hasRefreshToken?`Yes`:`No`})]})]})})]}),(0,P.jsx)(`div`,{className:`detail-page-sidebar`,children:(0,P.jsx)(V,{title:`Actions`,description:`Account management operations`,children:(0,P.jsxs)(`div`,{className:`button-group-vertical`,children:[(0,P.jsx)(`button`,{className:`button button-primary`,onClick:()=>w(b),disabled:t===`kiro:${b.id}:refresh`,children:t===`kiro:${b.id}:refresh`?`Refreshing...`:`Refresh Token`}),(0,P.jsx)(`button`,{className:`button button-secondary`,onClick:()=>{o(b.id),c({name:b.name,priority:b.priority,isActive:b.isActive})},children:`Edit Account`}),(0,P.jsx)(`button`,{className:`button ${b.isActive?`button-warning`:`button-success`}`,onClick:()=>T(b),disabled:t===`kiro:${b.id}:toggle`,children:t===`kiro:${b.id}:toggle`?`Updating...`:b.isActive?`Disable`:`Enable`}),(0,P.jsx)(`button`,{className:`button button-danger`,onClick:()=>i(b.id),children:`Delete Account`})]})})})]}),a&&s&&(0,P.jsx)(`div`,{className:`modal-backdrop`,onClick:()=>{o(null),c(null)},children:(0,P.jsxs)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),children:[(0,P.jsxs)(`div`,{className:`modal-header`,children:[(0,P.jsx)(`h3`,{children:`Edit Account`}),(0,P.jsx)(`button`,{className:`modal-close`,onClick:()=>{o(null),c(null)},children:`×`})]}),(0,P.jsxs)(`div`,{className:`modal-body`,children:[(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`edit-name`,children:`Name`}),(0,P.jsx)(`input`,{id:`edit-name`,type:`text`,value:s.name,onChange:e=>c({...s,name:e.target.value}),className:`form-input`})]}),(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`edit-priority`,children:`Priority`}),(0,P.jsx)(`input`,{id:`edit-priority`,type:`number`,min:`0`,value:s.priority,onChange:e=>c({...s,priority:parseInt(e.target.value)||0}),className:`form-input`})]}),(0,P.jsx)(`div`,{className:`form-group`,children:(0,P.jsxs)(`label`,{className:`checkbox-label`,children:[(0,P.jsx)(`input`,{type:`checkbox`,checked:s.isActive,onChange:e=>c({...s,isActive:e.target.checked})}),`Active`]})})]}),(0,P.jsxs)(`div`,{className:`modal-footer`,children:[(0,P.jsx)(`button`,{className:`button button-secondary`,onClick:()=>{o(null),c(null)},children:`Cancel`}),(0,P.jsx)(`button`,{className:`button button-primary`,onClick:D,disabled:t===`kiro:${a}:edit`,children:t===`kiro:${a}:edit`?`Saving...`:`Save Changes`})]})]})}),x&&(0,P.jsx)(Lt,{title:`Delete Account`,message:`Are you sure you want to delete "${x.name}"? This action cannot be undone.`,confirmLabel:`Delete`,confirmTone:`danger`,onConfirm:E,onCancel:()=>i(null),pending:t===`kiro:${x.id}:delete`})]})}let ee=y.filter(e=>e.isActive),k=y.filter(e=>e.tokenStatus===`valid`);return(0,P.jsxs)(`div`,{className:`screen`,children:[(0,P.jsx)(I,{eyebrow:`Account Management`,title:`Kiro Accounts`,description:`AWS CodeWhisperer account management`,children:(0,P.jsx)(`button`,{className:`button button-primary`,onClick:()=>f(!0),disabled:t===`kiro:import`,children:t===`kiro:import`?`Importing...`:`Import Accounts`})}),l&&(0,P.jsx)(Ut,{variant:l.variant,onDismiss:()=>u(null),children:l.message}),(0,P.jsxs)(`div`,{className:`stats-grid`,children:[(0,P.jsx)(z,{title:`Total Accounts`,value:L(y.length),tone:`neutral`}),(0,P.jsx)(z,{title:`Active Accounts`,value:L(ee.length),tone:`success`}),(0,P.jsx)(z,{title:`Healthy Tokens`,value:L(k.length),tone:k.length===ee.length?`success`:`warning`}),(0,P.jsx)(z,{title:`Write-back`,value:_?.writeBackEnabled?`Enabled`:`Disabled`,tone:_?.writeBackEnabled?`success`:`neutral`})]}),(0,P.jsx)(V,{title:`Accounts`,description:`Manage your Kiro accounts`,children:y.length===0?(0,P.jsx)(At,{title:`No accounts found`,description:`Import accounts from 9router to get started.`,action:(0,P.jsx)(`button`,{className:`button button-primary`,onClick:()=>f(!0),disabled:t===`kiro:import`,children:`Import Accounts`})}):(0,P.jsx)(Vt,{data:y,columns:[{key:`name`,label:`Name`,render:e=>(0,P.jsx)(`a`,{href:`#/kiro/${encodeURIComponent(e.id)}`,className:`table-link`,children:e.name})},{key:`status`,label:`Status`,render:e=>(0,P.jsx)(B,{tone:e.isActive?`success`:`neutral`,children:e.isActive?`Active`:`Disabled`})},{key:`tokenStatus`,label:`Token`,render:e=>{let t=Yt(e.tokenStatus);return(0,P.jsx)(B,{tone:t.tone,children:t.label})}},{key:`priority`,label:`Priority`,render:e=>e.priority.toString()},{key:`expiresIn`,label:`Expires In`,render:e=>Xt(e.expiresIn)},{key:`region`,label:`Region`,render:e=>e.region},{key:`actions`,label:`Actions`,render:e=>(0,P.jsxs)(`div`,{className:`table-actions`,children:[(0,P.jsx)(`button`,{className:`button button-small button-secondary`,onClick:()=>w(e),disabled:t===`kiro:${e.id}:refresh`,title:`Refresh token`,children:t===`kiro:${e.id}:refresh`?`...`:`Refresh`}),(0,P.jsx)(`button`,{className:`button button-small ${e.isActive?`button-warning`:`button-success`}`,onClick:()=>T(e),disabled:t===`kiro:${e.id}:toggle`,title:e.isActive?`Disable account`:`Enable account`,children:t===`kiro:${e.id}:toggle`?`...`:e.isActive?`Disable`:`Enable`})]})}]})}),d&&(0,P.jsx)(`div`,{className:`modal-backdrop`,onClick:()=>f(!1),children:(0,P.jsxs)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),children:[(0,P.jsxs)(`div`,{className:`modal-header`,children:[(0,P.jsx)(`h3`,{children:`Import Kiro Accounts`}),(0,P.jsx)(`button`,{className:`modal-close`,onClick:()=>f(!1),children:`×`})]}),(0,P.jsxs)(`div`,{className:`modal-body`,children:[(0,P.jsx)(`p`,{children:`Import Kiro accounts from 9router database.`}),(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`import-source`,children:`Source Database Path (optional)`}),(0,P.jsx)(`input`,{id:`import-source`,type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:`Leave empty to use default path`,className:`form-input`}),(0,P.jsx)(`small`,{className:`form-help`,children:`Default: ~/.9router/db/data.sqlite`})]})]}),(0,P.jsxs)(`div`,{className:`modal-footer`,children:[(0,P.jsx)(`button`,{className:`button button-secondary`,onClick:()=>f(!1),children:`Cancel`}),(0,P.jsx)(`button`,{className:`button button-primary`,onClick:O,disabled:t===`kiro:import`,children:t===`kiro:import`?`Importing...`:`Import`})]})]})}),x&&(0,P.jsx)(Lt,{title:`Delete Account`,message:`Are you sure you want to delete "${x.name}"? This action cannot be undone.`,confirmLabel:`Delete`,confirmTone:`danger`,onConfirm:E,onCancel:()=>i(null),pending:t===`kiro:${x.id}:delete`})]})}function Qt({accountId:e,initialTab:t=`oauth`}){let[n,r]=(0,v.useState)(t),i=!!e,a=window.location.hash.includes(`/kiro/`)?`kiro`:`oauth`,o=i?a:n;return(0,P.jsxs)(`div`,{className:`screen`,children:[(0,P.jsx)(I,{eyebrow:`Account Management`,title:`Provider Accounts`,description:`Manage OAuth and AWS CodeWhisperer accounts`}),!i&&(0,P.jsx)(`div`,{className:`tab-navigation`,children:(0,P.jsxs)(`div`,{className:`tab-list`,children:[(0,P.jsx)(`button`,{className:`tab-button ${o===`oauth`?`tab-button-active`:``}`,onClick:()=>r(`oauth`),children:`OAuth Accounts`}),(0,P.jsx)(`button`,{className:`tab-button ${o===`kiro`?`tab-button-active`:``}`,onClick:()=>r(`kiro`),children:`Kiro Accounts`})]})}),(0,P.jsxs)(`div`,{className:`tab-content`,children:[o===`oauth`&&(0,P.jsx)(Jt,{accountId:e}),o===`kiro`&&(0,P.jsx)(Zt,{accountId:e})]})]})}function $t({onClick:e,label:t=`Refresh`,isRefreshing:n=!1}){return(0,P.jsxs)(`button`,{className:`refresh-button`,onClick:e,type:`button`,"data-refreshing":n?`true`:`false`,disabled:n,"aria-busy":n,children:[(0,P.jsx)(`span`,{className:`refresh-icon`,"aria-hidden":`true`,children:(0,P.jsx)(We,{width:16,height:16})}),(0,P.jsx)(`span`,{children:n?`Refreshing…`:t})]})}function en(e){return e.id||e.accountId||``}function tn(e){return e.email||e.accountId||e.id||`Connected account`}function nn(e){return e.disabled?`disabled`:`enabled`}function rn(){let[e,t]=(0,v.useState)(null),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(null),{state:o,retry:s}=Wt((0,v.useCallback)(()=>le(),[])),c=(0,v.useMemo)(()=>o.status===`success`&&Array.isArray(o.data.accounts)?o.data.accounts:[],[o]);async function l(e,n){let i=en(e);if(!i){a({variant:`error`,message:`Account id is missing.`});return}t(`${n}:${i}`),a(null);try{n===`refresh`?await de(i):n===`enable`?await fe(i):n===`disable`?await pe(i):await me(i),a({variant:`success`,message:`${tn(e)} ${n===`delete`?`deleted`:`${n}d`}.`}),s()}catch(e){a({variant:`error`,message:e instanceof Error?e.message:`Account action failed.`})}finally{t(null),r(null)}}if(o.status===`loading`||o.status===`idle`)return(0,P.jsx)(jt,{title:`Loading auth accounts`,description:`Reading connected account auth status.`});if(o.status===`error`)return(0,P.jsx)(Ht,{title:`Auth management unavailable`,description:o.error.message,onRetry:s});let u=c.filter(e=>!e.disabled).length,d=c.length-u;return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:`Settings`,title:`Settings & Security`,description:`Manage connected account auth sessions, API security, and general settings.`,actions:(0,P.jsx)($t,{onClick:s})}),i?(0,P.jsx)(Ut,{message:i.message,variant:i.variant===`success`?`success`:`error`}):null,(0,P.jsxs)(`div`,{className:`stat-grid`,children:[(0,P.jsx)(z,{label:`Connected accounts`,value:R(c.length)}),(0,P.jsx)(z,{label:`Enabled`,value:R(u)}),(0,P.jsx)(z,{label:`Disabled`,value:R(d)})]}),(0,P.jsx)(V,{title:`Connected accounts`,description:`Refresh tokens, enable or disable routing eligibility, and remove accounts.`,children:(0,P.jsx)(Vt,{columns:[{key:`label`,label:`Account`,render:(e,t)=>(0,P.jsxs)(`div`,{className:`provider-status-stack`,children:[(0,P.jsx)(`strong`,{children:String(t.label)}),(0,P.jsx)(B,{variant:t.state===`enabled`?`success`:`warning`,children:String(t.state)})]})},{key:`accountId`,label:`Account ID`},{key:`expiresAt`,label:`Expires`,render:e=>Bt(e)},{key:`updatedAt`,label:`Updated`,render:e=>Bt(e)},{key:`actions`,label:`Actions`,render:(t,n)=>{let i=n.account,a=en(i),o=!!i.disabled;return(0,P.jsxs)(`div`,{className:`row-actions`,children:[(0,P.jsx)(`button`,{className:`row-action-button`,disabled:e===`refresh:${a}`,onClick:()=>void l(i,`refresh`),type:`button`,children:`Refresh`}),(0,P.jsx)(`button`,{className:`row-action-button`,disabled:e===`${o?`enable`:`disable`}:${a}`,onClick:()=>void l(i,o?`enable`:`disable`),type:`button`,children:o?`Enable`:`Disable`}),(0,P.jsx)(`button`,{className:`row-action-button button-danger`,disabled:e===`delete:${a}`,onClick:()=>r(i),type:`button`,children:`Delete`})]})}}],emptyDescription:`Connect an account from the Accounts screen before managing auth availability here.`,emptyTitle:`No connected accounts`,rows:c.map(e=>({label:tn(e),accountId:e.accountId||e.id||`Not reported`,state:nn(e),expiresAt:e.expiresAt,updatedAt:e.updatedAt,actions:en(e),account:e}))})}),n?(0,P.jsx)(Lt,{confirmLabel:`Delete account`,description:`Delete ${tn(n)} from account auth? This cannot be undone.`,onCancel:()=>r(null),onConfirm:()=>void l(n,`delete`),title:`Delete connected account`}):null]})}function an(){let[e,t]=(0,v.useState)(``),{state:n,retry:r}=Wt((0,v.useCallback)(async()=>{let[t,n]=await Promise.all([D(),ce(e||void 0)]);return{providers:t,cache:n}},[e]));if(n.status===`loading`||n.status===`idle`)return(0,P.jsx)(jt,{title:`Loading cache telemetry`,description:`Reading the latest prompt cache observation.`});if(n.status===`error`)return(0,P.jsx)(Ht,{title:`Cache telemetry unavailable`,description:n.error.message,onRetry:r});let i=Array.isArray(n.data.providers.providers)?n.data.providers.providers:Array.isArray(n.data.providers.providerOptions)?n.data.providers.providerOptions:[],a=n.data.cache.latest;return a?(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:`Cache`,title:`Latest prompt cache telemetry`,description:`Most recent cache observation reported by the backend.`,actions:(0,P.jsx)($t,{onClick:r})}),(0,P.jsx)(V,{title:`Provider filter`,description:`Inspect the latest cache observation globally or for one provider.`,children:(0,P.jsxs)(`div`,{className:`provider-search`,children:[(0,P.jsx)(`label`,{className:`field-label`,htmlFor:`cache-provider-filter`,children:`Provider`}),(0,P.jsxs)(`select`,{className:`search-input`,id:`cache-provider-filter`,value:e,onChange:e=>t(e.target.value),children:[(0,P.jsx)(`option`,{value:``,children:`All providers`}),i.map(e=>(0,P.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id))]})]})}),(0,P.jsx)(V,{children:(0,P.jsxs)(`div`,{className:`hero-status`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:`Latest observation`}),(0,P.jsx)(`h2`,{children:R(a.providerId)}),(0,P.jsx)(`p`,{children:Bt(a.timestamp)})]}),(0,P.jsx)(B,{variant:a.cacheHit?`success`:`neutral`,children:a.cacheHit?`Cache hit`:`Observed`})]})}),(0,P.jsxs)(`div`,{className:`stat-grid`,children:[(0,P.jsx)(z,{label:`Cached tokens`,value:L(a.cachedTokens)}),(0,P.jsx)(z,{label:`Saved percent`,value:zt(a.cacheSavedPercent)}),(0,P.jsx)(z,{label:`Consecutive hits`,value:L(a.consecutiveCacheHits)}),(0,P.jsx)(z,{label:`RTK chars saved`,value:L(a.rtkCharsSaved)})]}),(0,P.jsx)(V,{title:`Routing context`,description:`Identifiers that help explain which request produced this cache observation.`,children:(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Provider`}),(0,P.jsx)(`dd`,{children:R(a.providerId)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Client route`}),(0,P.jsx)(`dd`,{children:R(a.clientRoute)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Request ID`}),(0,P.jsx)(`dd`,{children:R(a.requestId)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Model`}),(0,P.jsx)(`dd`,{children:R(a.model)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Upstream target`}),(0,P.jsx)(`dd`,{children:R(a.upstreamTarget)})]})]})}),(0,P.jsx)(V,{title:`Cache identity`,description:`Keys and retention details reported by the backend cache telemetry.`,children:(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Family ID`}),(0,P.jsx)(`dd`,{children:R(a.familyId)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Static key`}),(0,P.jsx)(`dd`,{children:R(a.staticKey)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Request key`}),(0,P.jsx)(`dd`,{children:R(a.requestKey)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Prompt cache key`}),(0,P.jsx)(`dd`,{children:R(a.promptCacheKey)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Retention`}),(0,P.jsx)(`dd`,{children:R(a.promptCacheRetention)})]})]})}),(0,P.jsx)(V,{title:`Execution details`,description:`Only fields reported by the backend are shown.`,children:(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Truncation`}),(0,P.jsx)(`dd`,{children:R(a.truncation)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Reasoning effort`}),(0,P.jsx)(`dd`,{children:R(a.reasoningEffort)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Reasoning summary`}),(0,P.jsx)(`dd`,{children:R(a.reasoningSummary)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Text verbosity`}),(0,P.jsx)(`dd`,{children:R(a.textVerbosity)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Streaming`}),(0,P.jsx)(`dd`,{children:R(a.stream)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`RTK applied`}),(0,P.jsx)(`dd`,{children:R(a.rtkApplied)})]})]})})]}):(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:`Cache`,title:`Latest prompt cache telemetry`,description:"Read-only latest cache observation from `/api/debug/prompt-cache/latest`.",actions:(0,P.jsx)($t,{onClick:r})}),(0,P.jsx)(V,{title:`Provider filter`,description:`Optionally inspect the latest observation for one provider.`,children:(0,P.jsxs)(`div`,{className:`provider-search`,children:[(0,P.jsx)(`label`,{className:`field-label`,htmlFor:`cache-provider-filter`,children:`Provider`}),(0,P.jsxs)(`select`,{className:`search-input`,id:`cache-provider-filter`,value:e,onChange:e=>t(e.target.value),children:[(0,P.jsx)(`option`,{value:``,children:`All providers`}),i.map(e=>(0,P.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id))]})]})}),(0,P.jsx)(At,{title:`No cache telemetry yet`,description:`Cache telemetry will appear after compatible requests are processed.`})]})}function on(){let[e,t]=(0,v.useState)(``),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),{state:c,retry:l}=Wt((0,v.useCallback)(async()=>({response:await De({event:e||void 0,limit:100})}),[e])),u=(e,t)=>{navigator.clipboard.writeText(t).then(()=>{s(e),setTimeout(()=>s(null),2e3)})};if(c.status===`loading`||c.status===`idle`)return(0,P.jsx)(jt,{title:`Loading system console logs`,description:`Reading audit log records from the database.`});if(c.status===`error`)return(0,P.jsx)(Ht,{title:`Console logs unavailable`,description:c.error.message,onRetry:l});let d=c.data.response.logs||[],f=d.filter(e=>{if(!n)return!0;let t=n.toLowerCase();return e.event.toLowerCase().includes(t)||e.actorType.toLowerCase().includes(t)||e.actorId&&e.actorId.toLowerCase().includes(t)||e.subjectId&&e.subjectId.toLowerCase().includes(t)||JSON.stringify(e.metadata).toLowerCase().includes(t)}),p=Array.from(new Set(d.map(e=>e.event)));return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:rt,title:`Console Log`,description:`View, inspect, and analyze system events, authentication audits, and proxy transactions.`,actions:(0,P.jsx)($t,{onClick:l})}),(0,P.jsxs)(`div`,{className:`providers-controls-row`,children:[(0,P.jsx)(V,{title:`Filter by Event`,description:`Filter the log feed by specific event categories`,children:(0,P.jsxs)(`select`,{className:`search-input`,value:e,onChange:e=>{t(e.target.value),a(null)},children:[(0,P.jsx)(`option`,{value:``,children:`All system events`}),p.map(e=>(0,P.jsx)(`option`,{value:e,children:e},e))]})}),(0,P.jsx)(V,{title:`Search Logs`,description:`Search events, metadata, actors, or subject IDs`,children:(0,P.jsx)(`input`,{type:`text`,className:`search-input`,placeholder:`Search console logs...`,value:n,onChange:e=>r(e.target.value)})})]}),(0,P.jsx)(V,{title:`System Event Stream`,description:`Displaying ${f.length} recent system event records.`,children:f.length===0?(0,P.jsx)(At,{title:`No logs found`,description:n||e?`Adjust your search filters to view more logs.`:`System events will appear here as proxy transactions are executed.`,actionLabel:`Reset Filters`,onClick:()=>{t(``),r(``)}}):(0,P.jsx)(`div`,{className:`table-container`,style:{overflowX:`auto`},children:(0,P.jsxs)(`table`,{className:`data-table`,style:{width:`100%`,borderCollapse:`collapse`},children:[(0,P.jsx)(`thead`,{children:(0,P.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border)`,textAlign:`left`},children:[(0,P.jsx)(`th`,{style:{padding:`var(--space-3) var(--space-4)`},children:`Timestamp`}),(0,P.jsx)(`th`,{style:{padding:`var(--space-3) var(--space-4)`},children:`Event Type`}),(0,P.jsx)(`th`,{style:{padding:`var(--space-3) var(--space-4)`},children:`Actor`}),(0,P.jsx)(`th`,{style:{padding:`var(--space-3) var(--space-4)`},children:`Subject`}),(0,P.jsx)(`th`,{style:{padding:`var(--space-3) var(--space-4)`,textAlign:`right`},children:`Actions`})]})}),(0,P.jsx)(`tbody`,{children:f.map(e=>{let t=i===e.id;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`tr`,{className:`table-row ${t?`row-selected`:``}`,style:{borderBottom:`1px solid var(--border)`,cursor:`pointer`,backgroundColor:t?`var(--surface-hover)`:`transparent`},onClick:()=>a(t?null:e.id),children:[(0,P.jsx)(`td`,{style:{padding:`var(--space-3) var(--space-4)`,fontSize:`var(--font-xs)`,fontFamily:`var(--font-mono)`},children:Bt(e.createdAt)}),(0,P.jsx)(`td`,{style:{padding:`var(--space-3) var(--space-4)`,fontWeight:`bold`},children:(0,P.jsx)(`span`,{style:{color:`var(--accent)`},children:e.event})}),(0,P.jsx)(`td`,{style:{padding:`var(--space-3) var(--space-4)`,fontSize:`var(--font-sm)`},children:(0,P.jsxs)(B,{variant:`neutral`,children:[e.actorType,`:`,e.actorId||`system`]})}),(0,P.jsxs)(`td`,{style:{padding:`var(--space-3) var(--space-4)`,fontSize:`var(--font-sm)`,fontFamily:`var(--font-mono)`,color:`var(--text-secondary)`},children:[e.subjectType?`${e.subjectType}:`:``,e.subjectId||`global`]}),(0,P.jsx)(`td`,{style:{padding:`var(--space-3) var(--space-4)`,textAlign:`right`},children:(0,P.jsx)(`button`,{className:`button-link`,onClick:n=>{n.stopPropagation(),a(t?null:e.id)},type:`button`,children:t?`Collapse`:`Inspect`})})]},e.id),t&&(0,P.jsx)(`tr`,{style:{borderBottom:`1px solid var(--border)`,backgroundColor:`var(--surface-code)`},children:(0,P.jsx)(`td`,{colSpan:5,style:{padding:`var(--space-4)`},children:(0,P.jsxs)(`div`,{className:`expanded-details-container`,style:{display:`flex`,flexDirection:`column`,gap:`var(--space-3)`},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,P.jsx)(`span`,{style:{fontWeight:`bold`,fontSize:`var(--font-sm)`,color:`var(--text-primary)`},children:`Detailed Event Payload Metadata`}),(0,P.jsx)(`button`,{className:`button-secondary`,onClick:()=>u(e.id,JSON.stringify(e,null,2)),type:`button`,style:{padding:`var(--space-1) var(--space-2)`,fontSize:`var(--font-xs)`},children:o===e.id?`✓ Copied`:`Copy Payload`})]}),(0,P.jsx)(`pre`,{className:`code-container`,style:{padding:`var(--space-3)`,borderRadius:`var(--radius)`,fontSize:`var(--font-xs)`,lineHeight:`1.5`,backgroundColor:`var(--bg)`,border:`1px solid var(--border)`,overflowX:`auto`,whiteSpace:`pre-wrap`},children:JSON.stringify(e,null,2)})]})})},`${e.id}-expanded`)]})})})]})})})]})}function sn(e){return e.split(/\r?\n|,/).map(e=>e.trim()).filter(Boolean)}function cn({mode:e,initialData:t,providerOptions:n,onSubmit:r,onCancel:i,isSubmitting:a,error:o}){let[s,c]=(0,v.useState)({client:t?.client??``,providerId:t?.providerId??``,model:t?.model??``,apiKeysText:t?.apiKeysText??``,tokenLimitEnabled:t?.tokenLimitEnabled??!1,tokenLimitValue:t?.tokenLimitValue??``,tokenLimitWindowType:t?.tokenLimitWindowType??`monthly`,tokenLimitWindowSizeSeconds:t?.tokenLimitWindowSizeSeconds??``,tokenLimitHardBlock:t?.tokenLimitHardBlock??!0}),[l,u]=(0,v.useState)(null);function d(e){e.preventDefault(),u(null);let t=s.client.trim(),n=s.providerId.trim(),i=s.model.trim(),a=sn(s.apiKeysText),o=s.tokenLimitValue.trim(),c=s.tokenLimitWindowSizeSeconds.trim();if(!t){u(`Client key is required.`);return}if(t!==`default`&&a.length===0){u(`At least one client API key is required for non-default routes.`);return}if(s.tokenLimitEnabled){if(!/^\d+$/.test(o)||Number(o)<=0){u(`Token limit must be a positive integer.`);return}if(s.tokenLimitWindowType===`fixed`&&(!/^\d+$/.test(c)||Number(c)<=0)){u(`Fixed window seconds must be a positive integer.`);return}}r({client:t,providerId:n||void 0,model:i||void 0,apiKeys:a,tokenLimit:{enabled:s.tokenLimitEnabled,tokenLimit:s.tokenLimitEnabled?Number(o):1,windowType:s.tokenLimitWindowType,windowSizeSeconds:s.tokenLimitEnabled&&s.tokenLimitWindowType===`fixed`?Number(c):void 0,hardBlock:s.tokenLimitHardBlock}})}return(0,P.jsxs)(`form`,{className:`provider-form`,onSubmit:d,children:[(0,P.jsx)(`div`,{className:`modal-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:e===`create`?`Create client`:`Edit client`}),(0,P.jsx)(`h2`,{children:e===`create`?`New client route`:`Update client route`})]})}),(0,P.jsx)(`p`,{className:`modal-copy`,children:`Manage client API keys, provider binding, model overrides, and token guardrails from one form.`}),l||o?(0,P.jsx)(Ut,{message:l??o??``,title:`Could not save client`,variant:`error`}):null,(0,P.jsxs)(`div`,{className:`client-form-grid`,children:[(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Client key`}),(0,P.jsx)(`input`,{className:`search-input`,disabled:e===`edit`||a,onChange:e=>c(t=>({...t,client:e.target.value})),required:!0,type:`text`,value:s.client})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Provider binding`}),(0,P.jsxs)(`select`,{className:`search-input`,disabled:a,onChange:e=>c(t=>({...t,providerId:e.target.value})),value:s.providerId,children:[(0,P.jsx)(`option`,{value:``,children:`Use current active/default provider`}),n.map(e=>(0,P.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Model override`}),(0,P.jsx)(`input`,{className:`search-input`,disabled:a,onChange:e=>c(t=>({...t,model:e.target.value})),placeholder:`Optional model override`,type:`text`,value:s.model})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Client API keys`}),(0,P.jsx)(`textarea`,{className:`search-input form-textarea`,disabled:a,onChange:e=>c(t=>({...t,apiKeysText:e.target.value})),placeholder:`One client API key per line`,rows:5,value:s.apiKeysText}),(0,P.jsx)(`span`,{className:`field-help`,children:`API keys are only visible while editing this form and are never shown elsewhere in the UI.`})]}),(0,P.jsxs)(`div`,{className:`provider-detail-section`,children:[(0,P.jsxs)(`div`,{className:`client-form-grid`,children:[(0,P.jsxs)(`label`,{className:`form-field form-checkbox`,children:[(0,P.jsx)(`input`,{checked:s.tokenLimitEnabled,disabled:a,onChange:e=>c(t=>({...t,tokenLimitEnabled:e.target.checked})),type:`checkbox`}),(0,P.jsx)(`span`,{children:`Enable token budget`})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Token limit`}),(0,P.jsx)(`input`,{className:`search-input`,disabled:a,onChange:e=>c(t=>({...t,tokenLimitValue:e.target.value})),placeholder:`100000`,type:`number`,value:s.tokenLimitValue})]})]}),(0,P.jsxs)(`div`,{className:`client-form-grid`,children:[(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Window type`}),(0,P.jsxs)(`select`,{className:`search-input`,disabled:a,onChange:e=>c(t=>({...t,tokenLimitWindowType:e.target.value})),value:s.tokenLimitWindowType,children:[(0,P.jsx)(`option`,{value:`daily`,children:`Daily`}),(0,P.jsx)(`option`,{value:`weekly`,children:`Weekly`}),(0,P.jsx)(`option`,{value:`monthly`,children:`Monthly`}),(0,P.jsx)(`option`,{value:`fixed`,children:`Fixed`})]})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Fixed window seconds`}),(0,P.jsx)(`input`,{className:`search-input`,disabled:a,onChange:e=>c(t=>({...t,tokenLimitWindowSizeSeconds:e.target.value})),placeholder:`86400`,type:`number`,value:s.tokenLimitWindowSizeSeconds})]})]}),(0,P.jsxs)(`label`,{className:`form-field form-checkbox`,children:[(0,P.jsx)(`input`,{checked:s.tokenLimitHardBlock,disabled:a,onChange:e=>c(t=>({...t,tokenLimitHardBlock:e.target.checked})),type:`checkbox`}),(0,P.jsx)(`span`,{children:`Hard block when limit is reached`})]})]}),(0,P.jsxs)(`div`,{className:`modal-actions`,children:[(0,P.jsx)(`button`,{className:`button-link`,disabled:a,onClick:i,type:`button`,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-link button-primary`,disabled:a,type:`submit`,children:a?e===`create`?`Creating...`:`Saving...`:e===`create`?`Create client`:`Save changes`})]})]})}function ln(e){return Array.isArray(e.apiKeys)?e.apiKeys.length:0}function un(e,t){return e.get(t)??null}function dn(e){let t=e&&Rt(e.config)?e.config:null;if(!t||t.enabled!==!0)return`Disabled`;let n=typeof t.tokenLimit==`number`?t.tokenLimit.toLocaleString():`Configured`,r=typeof t.windowType==`string`?t.windowType:`window`;return`${n} • ${r}${r===`fixed`&&typeof t.windowSizeSeconds==`number`?` • ${t.windowSizeSeconds.toLocaleString()}s`:``}`}function fn(e){let t=e&&Rt(e.status)?e.status:null;return typeof t?.message==`string`&&t.message.trim()?t.message:typeof t?.state==`string`&&t.state.trim()?t.state:e?dn(e):`Unavailable`}function pn(e){let t=Rt(e.rtkPolicy)?e.rtkPolicy:null;if(!t)return`Not reported`;let n=[typeof t.mode==`string`?t.mode:null,typeof t.maxChars==`number`?`max ${t.maxChars} chars`:null,typeof t.keepLastMessages==`number`?`keep ${t.keepLastMessages}`:null].filter(e=>!!e);return n.length?n.join(` • `):`Configured`}function mn(e){return typeof e.providerName==`string`&&e.providerName.trim()?e.providerName:typeof e.providerId==`string`&&e.providerId.trim()?e.providerId:`Active/default provider`}function hn(e,t,n){let r=n.trim().toLowerCase();if(!r)return!0;let i=e.providerId?t.get(e.providerId):void 0;return[e.key,e.providerId,e.providerName,e.modelOverride,i?.name,i?.id,String(ln(e))].filter(e=>typeof e==`string`).map(e=>e.toLowerCase()).some(e=>e.includes(r))}function gn(e,t){return e.key===`default`?{variant:`success`,label:`Default`}:ln(e)===0?{variant:`warning`,label:`Missing keys`}:e.providerId&&t.has(e.providerId)?{variant:`accent`,label:`Bound`}:{variant:`accent`,label:`Configured`}}function _n(e,t){let n=t&&Rt(t.config)?t.config:null;return{client:e.key,providerId:e.providerId??``,model:e.modelOverride??``,apiKeysText:Array.isArray(e.apiKeys)?e.apiKeys.join(`
10
+ `):``,tokenLimitEnabled:n?.enabled===!0,tokenLimitValue:typeof n?.tokenLimit==`number`?String(n.tokenLimit):``,tokenLimitWindowType:n&&typeof n.windowType==`string`?n.windowType:`monthly`,tokenLimitWindowSizeSeconds:typeof n?.windowSizeSeconds==`number`?String(n.windowSizeSeconds):``,tokenLimitHardBlock:n?.hardBlock!==!1}}function vn({clientKey:e}){let[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(null),{state:h,retry:g}=Wt((0,v.useCallback)(async()=>{let e=await D(),t=await Promise.resolve(ae()).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,error:e}));return{providers:e,tokenLimits:t.status===`fulfilled`&&Array.isArray(t.value.clients)?t.value.clients:[],tokenLimitsWarning:t.status===`rejected`?`Token budget data is temporarily unavailable.`:void 0}},[])),_=(0,v.useMemo)(()=>h.status===`success`&&Array.isArray(h.data.providers.clientRoutes)?h.data.providers.clientRoutes:[],[h]),y=(0,v.useMemo)(()=>h.status===`success`&&Array.isArray(h.data.providers.providerOptions)?h.data.providers.providerOptions:[],[h]),b=(0,v.useMemo)(()=>h.status===`success`&&Array.isArray(h.data.providers.providers)?h.data.providers.providers:[],[h]),x=(0,v.useMemo)(()=>new Map(b.map(e=>[e.id,e])),[b]),S=(0,v.useMemo)(()=>new Map((h.status===`success`?h.data.tokenLimits:[]).map(e=>[e.clientRoute,e])),[h]),C=(0,v.useMemo)(()=>_.filter(e=>hn(e,x,t)),[_,x,t]),w=e?_.find(t=>t.key===e)??null:null,T=_.find(e=>e.key===a)??null,E=_.find(e=>e.key===s)??null;async function O(e,t){await A(e,t)}async function ee(e){u(!0),f(null),m(null);try{await ne({client:e.client,providerId:e.providerId,model:e.model,apiKeys:e.apiKeys}),await O(e.client,e.tokenLimit),m({variant:`success`,message:`Created client route ${e.client}.`}),i(!1),g()}catch(e){f(e instanceof Error?e.message:`Could not create client route.`)}finally{u(!1)}}async function k(e){if(T){u(!0),f(null),m(null);try{await re(T.key,{client:T.key,providerId:e.providerId,model:e.model,apiKeys:e.apiKeys}),await O(T.key,e.tokenLimit),m({variant:`success`,message:`Saved changes for ${T.key}.`}),o(null),g()}catch(e){f(e instanceof Error?e.message:`Could not update client route.`)}finally{u(!1)}}}async function te(){if(E){u(!0),f(null),m(null);try{await ie(E.key),m({variant:`success`,message:`Deleted client route ${E.key}.`}),c(null),e===E.key&&(window.location.hash=`#/clients`),g()}catch(e){f(e instanceof Error?e.message:`Could not delete client route.`),m({variant:`error`,message:e instanceof Error?e.message:`Could not delete client route.`})}finally{u(!1)}}}if(h.status===`loading`||h.status===`idle`)return(0,P.jsx)(jt,{title:`Loading clients`,description:`Reading client routes, provider bindings, and token budgets.`});if(h.status===`error`)return(0,P.jsx)(Ht,{title:`Clients unavailable`,description:h.error.message,onRetry:g});let j=_.filter(e=>e.key!==`default`),oe=_.filter(e=>ln(e)>0),se=_.filter(e=>typeof e.modelOverride==`string`&&e.modelOverride.trim()),ce=_.filter(e=>typeof e.providerId==`string`&&e.providerId.trim()),le=_.find(e=>e.key===`default`)??null,M=w?un(S,w.key):null;return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:e?`Client detail`:`Clients`,title:e&&w?w.key:`Client routes`,description:e?w?mn(w):`Inspect route configuration, token budgets, and provider bindings.`:`Manage client API keys, provider bindings, model overrides, and token budgets for each route.`,actions:(0,P.jsx)(`div`,{className:`page-header-actions page-header-actions-group`,children:e?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`a`,{className:`button-link`,href:`#/clients`,children:`Back to clients`}),w?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`button`,{className:`button-link`,onClick:()=>{f(null),o(w.key)},type:`button`,children:`Edit client`}),(0,P.jsx)(`button`,{className:`button-link button-danger`,disabled:w.key===`default`,onClick:()=>{f(null),c(w.key)},type:`button`,children:`Delete client`})]}):null]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)($t,{onClick:g}),(0,P.jsx)(`button`,{className:`button-link button-primary`,onClick:()=>{f(null),i(!0)},type:`button`,children:`New client`})]})})}),p?(0,P.jsx)(Ut,{message:p.message,title:p.variant===`success`?`Client routes updated`:`Client route action failed`,variant:p.variant}):null,h.data.tokenLimitsWarning?(0,P.jsx)(Ut,{message:h.data.tokenLimitsWarning,title:`Partial telemetry`,variant:`error`}):null,e?null:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`stat-grid`,children:[(0,P.jsx)(z,{label:`Total clients`,value:L(j.length)}),(0,P.jsx)(z,{label:`Routes with API keys`,value:L(oe.length)}),(0,P.jsx)(z,{label:`Routes with model override`,value:L(se.length)}),(0,P.jsx)(z,{label:`Routes with binding`,value:L(ce.length)}),(0,P.jsx)(z,{label:`Default route provider`,value:le?mn(le):`Unavailable`})]}),(0,P.jsx)(V,{title:`Search client routes`,description:`Filter by client key, provider, model override, or API key count.`,children:(0,P.jsxs)(`div`,{className:`provider-search`,children:[(0,P.jsx)(`label`,{className:`field-label`,htmlFor:`client-search`,children:`Search clients`}),(0,P.jsx)(`input`,{className:`search-input`,id:`client-search`,onChange:e=>n(e.target.value),placeholder:`Search by client key, provider, model, or key count`,type:`search`,value:t})]})})]}),e?w?(0,P.jsx)(`div`,{className:`screen-stack`,children:(0,P.jsxs)(`div`,{className:`detail-page-grid`,children:[(0,P.jsx)(V,{title:`Overview`,description:`Binding, model, key coverage, and budget status.`,children:(0,P.jsxs)(`div`,{className:`provider-detail`,children:[(0,P.jsxs)(`div`,{className:`hero-status`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:`Client route detail`}),(0,P.jsx)(`h2`,{children:w.key}),(0,P.jsx)(`p`,{className:`long-value`,children:mn(w)})]}),(0,P.jsxs)(`div`,{className:`card-inline-status`,children:[(0,P.jsx)(B,{variant:gn(w,x).variant,children:gn(w,x).label}),M&&Rt(M.config)&&M.config.enabled===!0?(0,P.jsx)(B,{variant:`accent`,children:`Budget enabled`}):(0,P.jsx)(B,{variant:`neutral`,children:`Budget disabled`})]})]}),(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Client key`}),(0,P.jsx)(`dd`,{className:`long-value`,children:w.key})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Provider`}),(0,P.jsx)(`dd`,{className:`long-value`,children:mn(w)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Model override`}),(0,P.jsx)(`dd`,{className:`long-value`,children:R(w.modelOverride)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`API key count`}),(0,P.jsx)(`dd`,{children:L(ln(w))})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Token budget`}),(0,P.jsx)(`dd`,{className:`long-value`,children:dn(M)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Token budget status`}),(0,P.jsx)(`dd`,{className:`long-value`,children:fn(M)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`RTK policy`}),(0,P.jsx)(`dd`,{className:`long-value`,children:pn(w)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Provider availability`}),(0,P.jsx)(`dd`,{children:gn(w,x).label})]})]})]})}),(0,P.jsx)(V,{title:`Token usage`,description:`Current usage telemetry for this route budget.`,children:M?(0,P.jsx)(`section`,{className:`provider-detail-section`,children:(0,P.jsxs)(`dl`,{className:`provider-meta-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Total tokens`}),(0,P.jsx)(`dd`,{children:L(Rt(M.usage)?M.usage.totalTokens:void 0)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Input tokens`}),(0,P.jsx)(`dd`,{children:L(Rt(M.usage)?M.usage.inputTokens:void 0)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Output tokens`}),(0,P.jsx)(`dd`,{children:L(Rt(M.usage)?M.usage.outputTokens:void 0)})]})]})}):(0,P.jsxs)(`div`,{className:`table-empty`,children:[(0,P.jsx)(`strong`,{children:`No token usage reported`}),(0,P.jsx)(`p`,{children:`Usage data appears here when token budgeting is configured for this client route.`})]})})]})}):(0,P.jsx)(At,{title:`Client route not found`,description:`This client route is not available in the current runtime snapshot.`,actionHref:`#/clients`,actionLabel:`Back to clients`}):_.length===0?(0,P.jsx)(At,{title:`No client routes configured`,description:`The backend did not report any client routes yet.`}):(0,P.jsx)(V,{className:`list-card list-table`,title:`Client route list`,description:`${L(C.length)} route${C.length===1?``:`s`} match the current filter.`,children:C.length?(0,P.jsx)(`div`,{className:`data-table-wrap`,children:(0,P.jsxs)(`table`,{className:`data-table clients-table`,children:[(0,P.jsx)(`thead`,{children:(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`th`,{scope:`col`,children:`Client`}),(0,P.jsx)(`th`,{className:`align-right`,scope:`col`,children:`API keys`}),(0,P.jsx)(`th`,{scope:`col`,children:`Token limit`}),(0,P.jsx)(`th`,{scope:`col`,children:`Status`}),(0,P.jsx)(`th`,{scope:`col`,children:`Actions`})]})}),(0,P.jsx)(`tbody`,{children:C.map(e=>{let t=gn(e,x),n=un(S,e.key);return(0,P.jsxs)(`tr`,{className:`provider-row`,children:[(0,P.jsxs)(`td`,{className:`table-cell-long provider-name-cell`,"data-label":`Client`,children:[(0,P.jsx)(`button`,{className:`item-title-link`,onClick:()=>{f(null),o(e.key)},type:`button`,children:e.key}),(0,P.jsx)(`span`,{className:`item-meta truncate-value`,title:typeof e.modelOverride==`string`&&e.modelOverride.trim()?`${mn(e)} • ${e.modelOverride}`:mn(e),children:typeof e.modelOverride==`string`&&e.modelOverride.trim()?`${mn(e)} • ${e.modelOverride}`:mn(e)})]}),(0,P.jsx)(`td`,{className:`align-right`,"data-label":`API keys`,children:L(ln(e))}),(0,P.jsx)(`td`,{className:`table-cell-long`,"data-label":`Token limit`,children:(0,P.jsx)(`span`,{className:`long-value`,children:dn(n)})}),(0,P.jsx)(`td`,{"data-label":`Status`,children:(0,P.jsx)(`div`,{className:`provider-status-stack`,children:(0,P.jsx)(B,{variant:t.variant,children:t.label})})}),(0,P.jsx)(`td`,{"data-label":`Actions`,children:(0,P.jsxs)(`div`,{className:`row-actions`,children:[(0,P.jsx)(`a`,{className:`button-link row-action-button`,href:`#/clients/${encodeURIComponent(e.key)}`,children:`Details`}),(0,P.jsx)(`button`,{className:`button-link row-action-button`,onClick:()=>{f(null),o(e.key)},type:`button`,children:`Edit`}),(0,P.jsx)(`button`,{className:`button-link button-danger row-action-button`,disabled:e.key===`default`,onClick:()=>{f(null),c(e.key)},type:`button`,children:`Delete`})]})})]},e.key)})})]})}):(0,P.jsxs)(`div`,{className:`table-empty`,children:[(0,P.jsx)(`strong`,{children:`No routes match this search`}),(0,P.jsx)(`p`,{children:`Try a broader query to see the full client inventory.`})]})}),r?(0,P.jsx)(`div`,{className:`modal-backdrop`,role:`presentation`,children:(0,P.jsx)(`div`,{"aria-modal":`true`,className:`modal-card`,role:`dialog`,children:(0,P.jsx)(cn,{error:d,isSubmitting:l,mode:`create`,onCancel:()=>{l||(i(!1),f(null))},onSubmit:ee,providerOptions:y})})}):null,T?(0,P.jsx)(`div`,{className:`modal-backdrop`,role:`presentation`,children:(0,P.jsx)(`div`,{"aria-modal":`true`,className:`modal-card`,role:`dialog`,children:(0,P.jsx)(cn,{error:d,initialData:_n(T,un(S,T.key)),isSubmitting:l,mode:`edit`,onCancel:()=>{l||(o(null),f(null))},onSubmit:k,providerOptions:y})})}):null,E?(0,P.jsx)(Lt,{confirmLabel:`Delete client`,description:E.key===`default`?`The default client route cannot be deleted.`:`Delete client route ${E.key}? This removes its provider binding, model override, API keys, and token budget state.`,isSubmitting:l,onCancel:()=>{l||c(null)},onConfirm:te,title:`Delete ${E.key}`}):null]})}var yn=/^[a-zA-Z0-9_.\-]+$/,bn={"account-kiro":`kr`,"kiro-ide":`kr`,"kiro-free":`kr`,"account-openai-codex":`cx`,"openai-codex":`cx`,codex:`cx`,openai:`openai`,anthropic:`anthropic`,"claude-code":`cc`,deepseek:`deepseek`,groq:`groq`,"google-gemini":`gemini`,gemini:`gemini`,mistral:`mistral`,openrouter:`or`,"together-ai":`together`,together:`together`};function xn(e){let t=bn[e.id];if(t)return t;let n=bn[e.name.toLowerCase().replace(/[^a-z0-9]+/g,`-`)];if(n)return n;for(let[t,n]of Object.entries(bn))if(e.id.startsWith(t))return n;return e.id.replace(/^account-/,``)}function Sn(){let[e,t]=(0,v.useState)([]),[n,r]=(0,v.useState)(!0),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(null),[u,d]=(0,v.useState)([]),f=(0,v.useCallback)(async()=>{try{r(!0);let[e,n]=await Promise.all([Ae(),D()]);t(e.combos||[]),d(n.providerOptions||n.providers||[])}catch(e){console.error(`Failed to fetch data:`,e)}finally{r(!1)}},[]);(0,v.useEffect)(()=>{f()},[f]);let p=async e=>{await je(e),a(!1),await f()},m=async(e,t)=>{await Me(e,t),s(null),await f()},h=async()=>{c&&(await Ne(c.id),l(null),await f())},g=async e=>{await Me(e.id,{roundRobin:!e.roundRobin}),await f()};return n?(0,P.jsx)(jt,{title:`Loading combos`,description:`Fetching model combinations...`,cards:2}):(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{title:`Combos`,description:`Create model combos with fallback support — use the combo name as your model to auto-route through providers in order.`,actions:(0,P.jsxs)(`button`,{className:`button-primary`,onClick:()=>a(!0),children:[(0,P.jsx)(at,{style:{width:16,height:16}}),`Create Combo`]})}),e.length===0?(0,P.jsx)(V,{children:(0,P.jsxs)(`div`,{style:{textAlign:`center`,padding:`var(--space-8) var(--space-4)`},children:[(0,P.jsx)(`div`,{className:`stat-card-icon`,style:{margin:`0 auto var(--space-4)`,width:56,height:56,borderRadius:18},children:(0,P.jsx)(Be,{style:{width:28,height:28}})}),(0,P.jsx)(`p`,{style:{margin:`0 0 var(--space-1)`,fontWeight:600,fontSize:`var(--text-base)`},children:`No combos yet`}),(0,P.jsx)(`p`,{style:{margin:`0 0 var(--space-4)`,color:`var(--text-secondary)`,fontSize:`var(--text-sm)`},children:`Create model combos with fallback support`}),(0,P.jsxs)(`button`,{className:`button-primary`,onClick:()=>a(!0),children:[(0,P.jsx)(at,{style:{width:16,height:16}}),`Create Combo`]})]})}):(0,P.jsx)(`div`,{className:`screen-stack`,style:{gap:`var(--space-4)`},children:e.map(e=>(0,P.jsx)(Cn,{combo:e,onEdit:()=>s(e),onDelete:()=>l(e),onToggleRoundRobin:()=>g(e)},e.id))}),i&&(0,P.jsx)(En,{providers:u,onSave:p,onClose:()=>a(!1)},`create`),o&&(0,P.jsx)(En,{combo:o,providers:u,onSave:e=>m(o.id,e),onClose:()=>s(null)},o.id),c&&(0,P.jsx)(Lt,{title:`Delete Combo`,description:`Delete "${c.name}"? This cannot be undone.`,confirmLabel:`Delete`,onConfirm:h,onCancel:()=>l(null)})]})}function Cn({combo:e,onEdit:t,onDelete:n,onToggleRoundRobin:r}){let[i,a]=(0,v.useState)(!1);return(0,P.jsx)(`section`,{className:`surface-card`,style:{padding:`var(--space-4) var(--space-5)`},children:(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-4)`,flexWrap:`wrap`},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`,flex:`1 1 auto`,minWidth:0},children:[(0,P.jsx)(`div`,{className:`stat-card-icon`,style:{width:36,height:36,borderRadius:12,flexShrink:0},children:(0,P.jsx)(Be,{style:{width:18,height:18}})}),(0,P.jsxs)(`div`,{style:{minWidth:0,flex:1},children:[(0,P.jsx)(`code`,{style:{display:`block`,fontWeight:600,fontSize:`var(--text-sm)`,letterSpacing:`-0.01em`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name}),(0,P.jsx)(`div`,{style:{marginTop:4,display:`flex`,flexWrap:`wrap`,gap:4,alignItems:`center`},children:e.models.length===0?(0,P.jsx)(`span`,{style:{fontSize:`var(--text-xs)`,color:`var(--text-muted)`,fontStyle:`italic`},children:`No models`}):(0,P.jsxs)(P.Fragment,{children:[e.models.slice(0,3).map((e,t)=>(0,P.jsx)(`code`,{className:`metadata-pill`,style:{fontSize:`0.65rem`,padding:`2px 8px`,minHeight:`auto`,maxWidth:200,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e},t)),e.models.length>3&&(0,P.jsxs)(`span`,{style:{fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:[`+`,e.models.length-3,` more`]})]})})]})]}),(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-4)`,flexShrink:0},children:[(0,P.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-2)`,cursor:`pointer`,userSelect:`none`},children:[(0,P.jsx)(`span`,{style:{fontSize:`var(--text-xs)`,fontWeight:600,color:`var(--text-muted)`},children:`Round Robin`}),(0,P.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e.roundRobin,onClick:r,style:{position:`relative`,display:`inline-flex`,width:36,height:20,borderRadius:`var(--radius-pill)`,border:`none`,background:e.roundRobin?`var(--accent)`:`var(--neutral-soft)`,cursor:`pointer`,transition:`background var(--animation-normal) var(--animation-easing)`,padding:0},children:(0,P.jsx)(`span`,{style:{position:`absolute`,top:2,left:e.roundRobin?18:2,width:16,height:16,borderRadius:`50%`,background:`#fff`,boxShadow:`0 2px 4px rgba(0,0,0,0.2)`,transition:`left var(--animation-normal) var(--animation-easing)`}})})]}),(0,P.jsxs)(`div`,{style:{display:`flex`,gap:`var(--space-1)`},children:[(0,P.jsx)(`button`,{className:`button-link row-action-button`,onClick:()=>{navigator.clipboard.writeText(e.name).catch(()=>{}),a(!0),setTimeout(()=>a(!1),1500)},title:`Copy combo name`,style:{minWidth:`auto`},children:i?`✓`:`Copy`}),(0,P.jsx)(`button`,{className:`button-link row-action-button`,onClick:t,title:`Edit`,children:`Edit`}),(0,P.jsx)(`button`,{className:`button-danger row-action-button`,onClick:n,title:`Delete`,children:`Delete`})]})]})]})})}function wn({index:e,model:t,isFirst:n,isLast:r,onEdit:i,onMoveUp:a,onMoveDown:o,onRemove:s,onDragStart:c,onDragOver:l,onDragEnd:u,isDragging:d}){let[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(t),g=()=>{let e=m.trim();e&&e!==t?i(e):h(t),p(!1)};return(0,P.jsxs)(`div`,{draggable:!0,onDragStart:c,onDragOver:e=>{e.preventDefault(),l()},onDragEnd:u,style:{display:`flex`,alignItems:`center`,gap:`var(--space-2)`,padding:`6px var(--space-3)`,borderRadius:`var(--radius-sm)`,background:d?`var(--accent-soft)`:`var(--surface-muted)`,border:`1px solid ${d?`var(--accent)`:`var(--line)`}`,opacity:d?.6:1,transition:`background var(--animation-fast), border-color var(--animation-fast)`},children:[(0,P.jsx)(`span`,{style:{cursor:`grab`,color:`var(--text-muted)`,flexShrink:0,display:`flex`},title:`Drag to reorder`,children:(0,P.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,children:[(0,P.jsx)(`circle`,{cx:`9`,cy:`4`,r:`2`}),(0,P.jsx)(`circle`,{cx:`15`,cy:`4`,r:`2`}),(0,P.jsx)(`circle`,{cx:`9`,cy:`12`,r:`2`}),(0,P.jsx)(`circle`,{cx:`15`,cy:`12`,r:`2`}),(0,P.jsx)(`circle`,{cx:`9`,cy:`20`,r:`2`}),(0,P.jsx)(`circle`,{cx:`15`,cy:`20`,r:`2`})]})}),(0,P.jsx)(`span`,{style:{width:16,textAlign:`center`,fontSize:`var(--text-xs)`,fontWeight:700,color:`var(--text-muted)`,flexShrink:0},children:e+1}),f?(0,P.jsx)(`input`,{type:`text`,autoFocus:!0,value:m,onChange:e=>h(e.target.value),onBlur:g,onKeyDown:e=>{e.key===`Enter`&&g(),e.key===`Escape`&&(h(t),p(!1))},style:{flex:1,minWidth:0,padding:`2px 8px`,border:`1px solid var(--accent)`,borderRadius:`var(--radius-sm)`,background:`var(--control-bg)`,fontFamily:`monospace`,fontSize:`var(--text-xs)`,minHeight:`auto`,outline:`none`}}):(0,P.jsx)(`code`,{onClick:()=>p(!0),style:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontSize:`var(--text-xs)`,cursor:`text`,padding:`2px 8px`,borderRadius:`var(--radius-sm)`},title:`Click to edit`,children:t}),(0,P.jsx)(`button`,{onClick:a,disabled:n,style:{background:`none`,border:`none`,padding:2,cursor:n?`not-allowed`:`pointer`,color:n?`var(--line-strong)`:`var(--text-muted)`,display:`flex`,minHeight:`auto`},title:`Move up`,children:(0,P.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,children:(0,P.jsx)(`path`,{d:`M7 14l5-5 5 5z`})})}),(0,P.jsx)(`button`,{onClick:o,disabled:r,style:{background:`none`,border:`none`,padding:2,cursor:r?`not-allowed`:`pointer`,color:r?`var(--line-strong)`:`var(--text-muted)`,display:`flex`,minHeight:`auto`},title:`Move down`,children:(0,P.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,children:(0,P.jsx)(`path`,{d:`M7 10l5 5 5-5z`})})}),(0,P.jsx)(`button`,{onClick:s,style:{background:`none`,border:`none`,padding:2,cursor:`pointer`,color:`var(--danger)`,display:`flex`,minHeight:`auto`},title:`Remove`,children:(0,P.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,children:(0,P.jsx)(`path`,{d:`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`})})})]})}function Tn({isOpen:e,providers:t,addedModels:n,onSelect:r,onDeselect:i,onClose:a}){let[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)({}),[u,d]=(0,v.useState)(!1);if((0,v.useEffect)(()=>{if(!e)return;let n=!1;return d(!0),(async()=>{let e={};for(let r of t)try{let t=await _e(r.id);if(!n&&t.models){let n=xn(r),i=new Set,a=[];for(let e of t.models){let t;t=e.includes(`/`)?e:`${n}/${e}`,i.has(t)||(i.add(t),a.push(t))}e[r.id]=a}}catch{}n||(l(e),d(!1))})(),()=>{n=!0}},[e,t]),!e)return null;let f=[];for(let e of t)for(let t of c[e.id]||[])f.push({providerId:e.id,providerName:e.name,model:t});let p=o.trim()?f.filter(e=>e.model.toLowerCase().includes(o.toLowerCase())||e.providerName.toLowerCase().includes(o.toLowerCase())):f,m={};for(let e of p)m[e.providerId]||(m[e.providerId]={providerName:e.providerName,models:[]}),m[e.providerId].models.push(e.model);return(0,P.jsx)(`div`,{className:`modal-backdrop`,role:`presentation`,onClick:a,children:(0,P.jsxs)(`div`,{className:`modal-card`,role:`dialog`,"aria-modal":`true`,onClick:e=>e.stopPropagation(),style:{maxWidth:520,maxHeight:`80vh`,display:`flex`,flexDirection:`column`},children:[(0,P.jsx)(`div`,{className:`modal-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:`Model Picker`}),(0,P.jsx)(`h2`,{children:`Add Model to Combo`})]})}),(0,P.jsx)(`div`,{style:{padding:`0 var(--space-5) var(--space-3)`},children:(0,P.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:`Search models...`,autoFocus:!0,style:{minHeight:40}})}),(0,P.jsx)(`div`,{style:{flex:1,overflowY:`auto`,padding:`0 var(--space-5)`},children:u?(0,P.jsx)(`p`,{style:{textAlign:`center`,padding:`var(--space-6)`,color:`var(--text-muted)`,fontSize:`var(--text-sm)`},children:`Loading models from providers...`}):Object.keys(m).length===0?(0,P.jsx)(`p`,{style:{textAlign:`center`,padding:`var(--space-6)`,color:`var(--text-muted)`,fontSize:`var(--text-sm)`},children:o?`No models match your search`:`No models available. Connect providers first.`}):(0,P.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-4)`},children:Object.entries(m).map(([e,{providerName:t,models:a}])=>(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{style:{margin:`0 0 var(--space-2)`,fontSize:`var(--text-xs)`,fontWeight:700,textTransform:`uppercase`,letterSpacing:`0.04em`,color:`var(--text-muted)`},children:t}),(0,P.jsx)(`div`,{style:{display:`grid`,gap:2},children:a.map(e=>{let t=n.includes(e);return(0,P.jsxs)(`button`,{onClick:()=>t?i(e):r(e),style:{display:`flex`,alignItems:`center`,gap:`var(--space-2)`,padding:`6px var(--space-3)`,borderRadius:`var(--radius-sm)`,border:`1px solid transparent`,background:t?`var(--accent-soft)`:`transparent`,color:t?`var(--accent-strong)`:`var(--text-primary)`,fontFamily:`monospace`,fontSize:`var(--text-xs)`,cursor:`pointer`,textAlign:`left`,minHeight:`auto`,width:`100%`,transition:`background var(--animation-fast)`},children:[(0,P.jsx)(`span`,{style:{width:16,height:16,borderRadius:4,flexShrink:0,display:`flex`,alignItems:`center`,justifyContent:`center`,border:t?`none`:`1.5px solid var(--line-strong)`,background:t?`var(--accent)`:`transparent`,color:`#fff`},children:t&&(0,P.jsx)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`currentColor`,children:(0,P.jsx)(`path`,{d:`M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z`})})}),(0,P.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e})]},e)})})]},e))})}),(0,P.jsx)(`div`,{className:`modal-actions`,style:{padding:`var(--space-4) var(--space-5)`},children:(0,P.jsx)(`button`,{className:`button-link`,onClick:a,children:`Done`})})]})})}function En({combo:e,providers:t,onSave:n,onClose:r}){let[i,a]=(0,v.useState)(e?.name||``),[o,s]=(0,v.useState)(e?.models||[]),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(``),[m,h]=(0,v.useState)(null),g=!!e,_=e=>e.trim()?yn.test(e)?(p(``),!0):(p(`Only letters, numbers, -, _ and . allowed`),!1):(p(`Name is required`),!1),y=e=>{o.includes(e)||s([...o,e])},b=e=>{s(o.filter(t=>t!==e))},x=e=>s(o.filter((t,n)=>n!==e)),S=(e,t)=>{let n=[...o];n[e]=t,s(n)},C=e=>{if(e===0)return;let t=[...o];[t[e-1],t[e]]=[t[e],t[e-1]],s(t)},w=e=>{if(e===o.length-1)return;let t=[...o];[t[e],t[e+1]]=[t[e+1],t[e]],s(t)},T=e=>h(e),E=e=>{if(m===null||m===e)return;let t=[...o],[n]=t.splice(m,1);t.splice(e,0,n),s(t),h(e)},D=()=>h(null);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`div`,{className:`modal-backdrop`,role:`presentation`,onClick:r,children:(0,P.jsxs)(`div`,{className:`modal-card`,role:`dialog`,"aria-modal":`true`,onClick:e=>e.stopPropagation(),style:{maxWidth:460,maxHeight:`85vh`,display:`flex`,flexDirection:`column`},children:[(0,P.jsx)(`div`,{className:`modal-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:g?`Edit`:`New`}),(0,P.jsx)(`h2`,{children:g?`Edit Combo`:`Create Combo`})]})}),(0,P.jsx)(`div`,{style:{padding:`0 var(--space-5)`,marginBottom:`var(--space-4)`},children:(0,P.jsxs)(`div`,{className:`form-field`,children:[(0,P.jsx)(`label`,{className:`field-label`,children:`Combo Name`}),(0,P.jsx)(`input`,{type:`text`,value:i,onChange:e=>{a(e.target.value),e.target.value?_(e.target.value):p(``)},placeholder:`my-combo`,style:{fontFamily:`monospace`}}),f&&(0,P.jsx)(`p`,{style:{margin:0,color:`var(--danger)`,fontSize:`var(--text-xs)`},children:f}),(0,P.jsx)(`p`,{className:`field-help`,children:`Only letters, numbers, -, _ and . allowed`})]})}),(0,P.jsxs)(`div`,{style:{flex:1,overflow:`hidden`,padding:`0 var(--space-5)`,display:`flex`,flexDirection:`column`},children:[(0,P.jsx)(`label`,{className:`field-label`,style:{marginBottom:`var(--space-2)`},children:`Models (fallback order)`}),o.length===0?(0,P.jsxs)(`div`,{style:{textAlign:`center`,padding:`var(--space-5)`,border:`1.5px dashed var(--line-strong)`,borderRadius:`var(--radius-md)`,background:`var(--surface-muted)`},children:[(0,P.jsx)(Be,{style:{width:20,height:20,color:`var(--text-muted)`,margin:`0 auto var(--space-2)`}}),(0,P.jsx)(`p`,{style:{margin:0,fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:`No models added yet`})]}):(0,P.jsx)(`div`,{style:{flex:1,overflowY:`auto`,display:`grid`,gap:4,maxHeight:320},children:o.map((e,t)=>(0,P.jsx)(wn,{index:t,model:e,isFirst:t===0,isLast:t===o.length-1,onEdit:e=>S(t,e),onMoveUp:()=>C(t),onMoveDown:()=>w(t),onRemove:()=>x(t),onDragStart:()=>T(t),onDragOver:()=>E(t),onDragEnd:D,isDragging:m===t},`${t}-${e}`))}),(0,P.jsxs)(`button`,{onClick:()=>l(!0),style:{marginTop:`var(--space-3)`,width:`100%`,padding:`var(--space-3)`,border:`1.5px dashed var(--line-strong)`,borderRadius:`var(--radius-md)`,background:`transparent`,color:`var(--accent)`,fontSize:`var(--text-xs)`,fontWeight:600,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`var(--space-2)`,minHeight:`auto`,transition:`border-color var(--animation-fast), background var(--animation-fast)`},children:[(0,P.jsx)(at,{style:{width:14,height:14}}),`Add Model`]})]}),(0,P.jsxs)(`div`,{className:`modal-actions`,style:{padding:`var(--space-4) var(--space-5)`},children:[(0,P.jsx)(`button`,{className:`button-link`,onClick:r,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:async()=>{if(_(i)){d(!0);try{await n({name:i.trim(),models:o})}catch(e){p(e?.message||`Failed to save`)}finally{d(!1)}}},disabled:!i.trim()||!!f||u,children:u?`Saving...`:g?`Save`:`Create`})]})]})}),(0,P.jsx)(Tn,{isOpen:c,providers:t,addedModels:o,onSelect:y,onDeselect:b,onClose:()=>l(!1)})]})}var Dn=[{id:`claude`,name:`Claude Code`,color:`#D97757`,description:`Anthropic Claude Code CLI`,statusEndpoint:`/api/cli-tools/claude-settings`,applyEndpoint:`/api/cli-tools/claude-settings`,resetEndpoint:`/api/cli-tools/claude-settings`,installCmd:`npm install -g @anthropic-ai/claude-code`,models:[{alias:`opus`,name:`Opus Model`,envKey:`ANTHROPIC_DEFAULT_OPUS_MODEL`,defaultValue:`kr/claude-opus-4-7`},{alias:`sonnet`,name:`Sonnet Model`,envKey:`ANTHROPIC_DEFAULT_SONNET_MODEL`,defaultValue:`kr/claude-sonnet-4.5`},{alias:`haiku`,name:`Haiku Model`,envKey:`ANTHROPIC_DEFAULT_HAIKU_MODEL`,defaultValue:`kr/claude-haiku-4.5`}]},{id:`codex`,name:`OpenAI Codex`,color:`#10A37F`,description:`OpenAI Codex CLI / App`,statusEndpoint:`/api/cli-tools/codex-settings`,applyEndpoint:`/api/cli-tools/codex-settings`,resetEndpoint:`/api/cli-tools/codex-settings`,installCmd:`npm install -g @openai/codex`},{id:`cursor`,name:`Cursor`,color:`#6366F1`,description:`Cursor AI Code Editor — manual config via Settings → Models`,statusEndpoint:``,applyEndpoint:``,resetEndpoint:``},{id:`cline`,name:`Cline`,color:`#00D1B2`,description:`Cline AI Coding Assistant (VSCode extension)`,statusEndpoint:``,applyEndpoint:``,resetEndpoint:``},{id:`opencode`,name:`OpenCode`,color:`#E87040`,description:`OpenCode AI Terminal Assistant`,statusEndpoint:``,applyEndpoint:``,resetEndpoint:``},{id:`kilo`,name:`Kilo Code`,color:`#FF6B6B`,description:`Kilo Code AI Assistant (VSCode extension)`,statusEndpoint:``,applyEndpoint:``,resetEndpoint:``}];function On(){let[e,t]=(0,v.useState)(!0),[n,r]=(0,v.useState)([]),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)({}),[u,d]=(0,v.useState)([]),f=(0,v.useCallback)(async()=>{try{t(!0);let[e,n]=await Promise.all([D(),he().catch(()=>null)]);r(e.clientRoutes||[]),d(e.providerOptions||e.providers||[]),a(n)}catch(e){console.error(`Failed to fetch CLI tools data:`,e)}finally{t(!1)}},[]);(0,v.useEffect)(()=>{f()},[f]),(0,v.useEffect)(()=>{Dn.forEach(async e=>{if(e.statusEndpoint)try{let t=await fetch(e.statusEndpoint);if(t.ok){let n=await t.json();l(t=>({...t,[e.id]:n}))}}catch{}})},[]);let p=(0,v.useMemo)(()=>n.flatMap(e=>(Array.isArray(e.apiKeys)?e.apiKeys.filter(Boolean):[]).map(t=>({apiKey:t,routeKey:e.key}))),[n]),m=i?.proxyBaseUrl||`${window.location.origin}/v1`;return e?(0,P.jsx)(jt,{title:`Loading CLI tools`,description:`Checking tool configurations...`,cards:6}):(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{title:`CLI Tools`,description:`Connect your AI coding tools to route through responses-proxy. Click a tool to configure.`,actions:(0,P.jsx)($t,{onClick:f})}),(0,P.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-3)`},children:Dn.map(e=>(0,P.jsx)(kn,{tool:e,status:c[e.id],isExpanded:o===e.id,onToggle:()=>s(o===e.id?null:e.id),endpointUrl:m,apiKeys:p,providers:u},e.id))})]})}function kn({tool:e,status:t,isExpanded:n,onToggle:r,endpointUrl:i,apiKeys:a,providers:o}){let[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)({}),[d,f]=(0,v.useState)(!1),[p,m]=(0,v.useState)(!1),[h,g]=(0,v.useState)(null),[_,y]=(0,v.useState)(!1),[b,x]=(0,v.useState)(t);(0,v.useEffect)(()=>{x(t)},[t]),(0,v.useEffect)(()=>{a.length>0&&!s&&c(a[0].apiKey)},[a,s]),(0,v.useEffect)(()=>{if(b?.settings?.env&&e.models){let t=b.settings.env,n={};e.models.forEach(e=>{e.envKey&&t[e.envKey]?n[e.alias]=t[e.envKey]:e.defaultValue&&(n[e.alias]=e.defaultValue)}),u(n)}else if(e.models){let t={};e.models.forEach(e=>{e.defaultValue&&(t[e.alias]=e.defaultValue)}),u(t)}},[b,e.models]);let S=async()=>{if(e.statusEndpoint)try{let t=await fetch(e.statusEndpoint);t.ok&&x(await t.json())}catch{}},C=e.statusEndpoint?b?.installed?b.has9Router?`connected`:`not_configured`:`not_installed`:`guide_only`,w=async()=>{if(e.applyEndpoint){f(!0),g(null);try{let t=i.endsWith(`/v1`)?i:`${i}/v1`,n=s||a[0]?.apiKey||`sk_9router`,r;if(e.id===`claude`){let i={ANTHROPIC_BASE_URL:t,ANTHROPIC_AUTH_TOKEN:n};e.models&&e.models.forEach(e=>{e.envKey&&l[e.alias]&&(i[e.envKey]=l[e.alias])}),r={env:i}}else r=e.id===`codex`?{baseUrl:t,apiKey:n,model:l.model||`auto`}:{baseUrl:t,apiKey:n};let o=await fetch(e.applyEndpoint,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)}),c=await o.json();o.ok?(g({type:`success`,text:c.changed===!1?`Already up to date.`:`Settings applied!`}),S()):g({type:`error`,text:c.error||`Failed to apply`})}catch(e){g({type:`error`,text:e.message||`Failed`})}finally{f(!1)}}},T=async()=>{if(e.resetEndpoint){m(!0),g(null);try{let t=await fetch(e.resetEndpoint,{method:`DELETE`}),n=await t.json();t.ok?(g({type:`success`,text:`Settings reset!`}),S()):g({type:`error`,text:n.error||`Failed to reset`})}catch(e){g({type:`error`,text:e.message||`Failed`})}finally{m(!1)}}},E=i.endsWith(`/v1`)?i:`${i}/v1`,D=s||a[0]?.apiKey||`your-api-key`;return(0,P.jsxs)(`section`,{className:`surface-card`,style:{padding:`var(--space-4) var(--space-5)`},children:[(0,P.jsxs)(`div`,{onClick:r,style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`,cursor:`pointer`},children:[(0,P.jsx)(`div`,{style:{width:32,height:32,borderRadius:10,flexShrink:0,background:`${e.color}18`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,P.jsx)(`span`,{style:{fontSize:16,fontWeight:700,color:e.color},children:e.name.charAt(0)})}),(0,P.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-2)`,flexWrap:`wrap`},children:[(0,P.jsx)(`h3`,{style:{margin:0,fontSize:`var(--text-sm)`,fontWeight:600},children:e.name}),(0,P.jsx)(An,{status:C})]}),(0,P.jsx)(`p`,{style:{margin:`2px 0 0`,fontSize:`var(--text-xs)`,color:`var(--text-muted)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.description})]}),(0,P.jsx)(`span`,{style:{color:`var(--text-muted)`,transition:`transform var(--animation-normal)`,transform:n?`rotate(180deg)`:`none`},children:`▾`})]}),n&&(0,P.jsxs)(`div`,{style:{marginTop:`var(--space-4)`,paddingTop:`var(--space-4)`,borderTop:`1px solid var(--line)`,display:`grid`,gap:`var(--space-3)`},children:[C===`not_installed`&&(0,P.jsxs)(`div`,{style:{padding:`var(--space-3) var(--space-4)`,background:`var(--warning-soft)`,borderRadius:`var(--radius-sm)`,border:`1px solid color-mix(in srgb, var(--warning) 30%, transparent)`},children:[(0,P.jsx)(`strong`,{style:{fontSize:`var(--text-sm)`,color:`var(--warning)`},children:`Not detected locally`}),(0,P.jsx)(`p`,{style:{margin:`4px 0 0`,fontSize:`var(--text-xs)`,color:`var(--text-secondary)`},children:`Manual configuration is still available if running on a remote server.`}),e.installCmd&&(0,P.jsx)(`code`,{style:{display:`block`,marginTop:`var(--space-2)`,padding:`var(--space-2) var(--space-3)`,background:`var(--surface-muted)`,borderRadius:`var(--radius-sm)`,fontSize:`var(--text-xs)`,fontFamily:`monospace`},children:e.installCmd})]}),e.applyEndpoint&&(C===`connected`||C===`not_configured`||C===`not_installed`)&&(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(jn,{label:`Endpoint`,children:(0,P.jsx)(`code`,{style:{flex:1,fontSize:`var(--text-xs)`,padding:`6px var(--space-3)`,background:`var(--control-bg)`,border:`1px solid var(--line)`,borderRadius:`var(--radius-sm)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:E})}),b?.settings?.env?.ANTHROPIC_BASE_URL&&(0,P.jsx)(jn,{label:`Current`,children:(0,P.jsx)(`code`,{style:{flex:1,fontSize:`var(--text-xs)`,padding:`6px var(--space-3)`,background:`var(--surface-muted)`,borderRadius:`var(--radius-sm)`,color:`var(--text-muted)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:b.settings.env.ANTHROPIC_BASE_URL})}),(0,P.jsx)(jn,{label:`API Key`,children:(0,P.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),style:{flex:1,minHeight:32,fontSize:`var(--text-xs)`,padding:`4px 8px`},children:[a.length===0&&(0,P.jsx)(`option`,{value:``,children:`No API keys`}),a.map(e=>(0,P.jsxs)(`option`,{value:e.apiKey,children:[e.routeKey,` • ••••`,e.apiKey.slice(-4)]},e.apiKey))]})}),e.models?.map(e=>(0,P.jsx)(jn,{label:e.name,children:(0,P.jsx)(`input`,{type:`text`,value:l[e.alias]||``,onChange:t=>u(n=>({...n,[e.alias]:t.target.value})),placeholder:e.defaultValue||`provider/model`,style:{flex:1,minHeight:32,fontSize:`var(--text-xs)`,padding:`4px 8px`,fontFamily:`monospace`}})},e.alias)),(0,P.jsxs)(`div`,{style:{display:`flex`,gap:`var(--space-2)`,flexWrap:`wrap`,marginTop:`var(--space-2)`},children:[(0,P.jsx)(`button`,{className:`button-primary`,onClick:w,disabled:d,style:{minHeight:36},children:d?`Applying...`:`Apply`}),(0,P.jsx)(`button`,{className:`button-link`,onClick:T,disabled:p||!b?.has9Router,style:{minHeight:36},children:p?`Resetting...`:`Reset`}),(0,P.jsx)(`button`,{className:`button-link`,onClick:()=>y(!_),style:{minHeight:36},children:`Manual Config`})]})]}),!e.applyEndpoint&&(0,P.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-2)`},children:[(0,P.jsx)(jn,{label:`Endpoint`,children:(0,P.jsx)(Mn,{value:E})}),(0,P.jsx)(jn,{label:`API Key`,children:(0,P.jsx)(Mn,{value:D})}),(0,P.jsx)(jn,{label:`Model`,children:(0,P.jsx)(Mn,{value:`auto`})})]}),_&&(0,P.jsxs)(`div`,{style:{background:`var(--surface-muted)`,border:`1px solid var(--line)`,borderRadius:`var(--radius-md)`,padding:`var(--space-4)`,fontFamily:`monospace`,fontSize:`var(--text-xs)`,overflowX:`auto`,whiteSpace:`pre-wrap`},children:[e.id===`claude`&&JSON.stringify({hasCompletedOnboarding:!0,env:{ANTHROPIC_BASE_URL:E,ANTHROPIC_AUTH_TOKEN:D,...(e.models||[]).reduce((e,t)=>(t.envKey&&l[t.alias]&&(e[t.envKey]=l[t.alias]),e),{})}},null,2),e.id===`codex`&&`# ~/.codex/config.toml\nmodel = "${l.model||`auto`}"\nmodel_provider = "9router"\n\n[model_providers.9router]\nname = "9Router"\nbase_url = "${E}"\nwire_api = "responses"\n\n# ~/.codex/auth.json\n${JSON.stringify({auth_mode:`apikey`,OPENAI_API_KEY:D},null,2)}`,![`claude`,`codex`].includes(e.id)&&`Endpoint: ${E}\nAPI Key: ${D}\nModel: auto`]}),h&&(0,P.jsx)(`div`,{style:{padding:`var(--space-2) var(--space-3)`,borderRadius:`var(--radius-sm)`,background:h.type===`success`?`var(--success-soft)`:`var(--danger-soft)`,color:h.type===`success`?`var(--success)`:`var(--danger)`,fontSize:`var(--text-xs)`,fontWeight:600},children:h.text})]})]})}function An({status:e}){let t={connected:{bg:`var(--success-soft)`,color:`var(--success)`,label:`Connected`},not_configured:{bg:`var(--warning-soft)`,color:`var(--warning)`,label:`Not configured`},not_installed:{bg:`var(--neutral-soft)`,color:`var(--text-muted)`,label:`Not installed`},guide_only:{bg:`var(--accent-soft)`,color:`var(--accent)`,label:`Manual`}},n=t[e]||t.guide_only;return(0,P.jsx)(`span`,{style:{padding:`2px 8px`,fontSize:`0.65rem`,fontWeight:600,borderRadius:`var(--radius-pill)`,background:n.bg,color:n.color},children:n.label})}function jn({label:e,children:t}){return(0,P.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`100px 1fr`,alignItems:`center`,gap:`var(--space-2)`},children:[(0,P.jsx)(`span`,{style:{fontSize:`var(--text-xs)`,fontWeight:600,color:`var(--text-muted)`,textAlign:`right`},children:e}),(0,P.jsx)(`div`,{style:{display:`flex`,gap:`var(--space-2)`,alignItems:`center`,minWidth:0},children:t})]})}function Mn({value:e}){let[t,n]=(0,v.useState)(!1);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`code`,{style:{flex:1,fontSize:`var(--text-xs)`,padding:`6px var(--space-3)`,background:`var(--control-bg)`,border:`1px solid var(--line)`,borderRadius:`var(--radius-sm)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontFamily:`monospace`},children:e}),(0,P.jsx)(`button`,{onClick:()=>{navigator.clipboard.writeText(e).catch(()=>{}),n(!0),setTimeout(()=>n(!1),1500)},style:{background:`none`,border:`none`,color:`var(--accent)`,cursor:`pointer`,fontSize:`var(--text-xs)`,fontWeight:600,minHeight:`auto`,whiteSpace:`nowrap`},children:t?`✓`:`Copy`})]})}function Nn(e){return e.length<=8?`••••`:`••••${e.slice(-4)}`}function Pn(e){return e.flatMap(e=>{let t=Array.isArray(e.apiKeys)?e.apiKeys.filter(Boolean):[];return t.map((n,r)=>({apiKey:n,routeKey:e.key,providerId:e.providerId??``,providerName:e.providerName??``,label:`${e.key}${t.length>1?` (${r+1})`:``} • ${Nn(n)}`,preferredModel:e.modelOverride??``}))})}function Fn({client:e,label:t,status:n,providerOptions:r,proxyBaseUrl:i,clientRoutes:a,modelOptions:o,modelsLoading:s=!1,modelsError:c,onApiKeyChange:l,onApply:u,isSubmitting:d,error:f,successMessage:p}){let m=(0,v.useMemo)(()=>Pn(a),[a]),h=Array.isArray(n?.backups)?n?.backups[0]:void 0,g=n?.access,[_,y]=(0,v.useState)(``),[b,x]=(0,v.useState)(``),[S,C]=(0,v.useState)(``),[w,T]=(0,v.useState)(null);(0,v.useEffect)(()=>{y(typeof n?.detected?.baseUrl==`string`&&n.detected.baseUrl.trim()?n.detected.baseUrl:i||``),x(typeof n?.detected?.apiKey==`string`&&n.detected.apiKey.trim()?n.detected.apiKey:typeof n?.routeApiKey==`string`?n.routeApiKey:m[0]?.apiKey||``),C(typeof n?.route?.modelOverride==`string`&&n.route.modelOverride.trim()?n.route.modelOverride:typeof n?.detected?.model==`string`&&n.detected.model.trim()?n.detected.model:``),T(null)},[m,i,n]);let E=m.find(e=>e.apiKey===b)??null;(0,v.useEffect)(()=>{b&&l?.(b)},[l,b]);function D(){if(T(null),g?.canPatch===!1){T(g.reason||`Config patching is unavailable for this client.`);return}let t=_.trim(),n=S.trim();if(!t){T(`Base URL is required.`);return}try{new URL(t)}catch{T(`Base URL must be a valid URL.`);return}if(!b){T(`Choose a client API key before applying.`);return}if(!n){T(`Model is required.`);return}u({client:e,baseUrl:t,routeApiKey:b,model:n})}return(0,P.jsxs)(`section`,{className:`surface-card quick-apply-card`,children:[(0,P.jsxs)(`div`,{className:`quick-apply-header`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h2`,{children:t}),(0,P.jsx)(`p`,{children:e===`hermes`?`Patch the Hermes config file.`:`Patch the Codex config and auth files.`})]}),(0,P.jsxs)(`div`,{className:`card-inline-status`,children:[(0,P.jsx)(B,{variant:n?.configured?`success`:`warning`,children:n?.configured?`Configured`:`Needs attention`}),(0,P.jsx)(B,{variant:g?.canPatch?`accent`:`neutral`,children:g?.canPatch?`Can patch`:`Unavailable`})]})]}),w?(0,P.jsx)(Ut,{message:w,title:`Validation`,variant:`error`}):null,f?(0,P.jsx)(Ut,{message:f,title:`Apply failed`,variant:`error`}):null,p?(0,P.jsx)(Ut,{message:p,title:`Apply result`,variant:`success`}):null,(0,P.jsxs)(`div`,{className:`quick-apply-grid`,children:[(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Base URL`}),(0,P.jsx)(`input`,{className:`search-input`,disabled:d,onChange:e=>y(e.target.value),type:`url`,value:_})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Client API key`}),(0,P.jsxs)(`select`,{className:`search-input`,disabled:d||m.length===0,onChange:e=>x(e.target.value),value:b,children:[m.length===0?(0,P.jsx)(`option`,{value:``,children:`No client API keys`}):null,m.map(e=>(0,P.jsx)(`option`,{value:e.apiKey,children:e.label},`${e.routeKey}:${e.apiKey.slice(-6)}`))]}),(0,P.jsx)(`span`,{className:`field-help`,children:E?`Selected route: ${E.routeKey}`:`Choose a configured client API key.`})]})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Model`}),o.length>0?(0,P.jsxs)(`select`,{className:`search-input`,disabled:d||s,onChange:e=>C(e.target.value),value:S,children:[!o.includes(S)&&S?(0,P.jsx)(`option`,{value:S,children:S}):null,o.map(e=>(0,P.jsx)(`option`,{value:e,children:e},e))]}):(0,P.jsx)(`input`,{className:`search-input`,disabled:d,onChange:e=>C(e.target.value),placeholder:s?`Loading models...`:`Enter model manually`,type:`text`,value:S}),(0,P.jsx)(`span`,{className:`field-help`,children:s?`Loading models for the selected client key provider.`:c||(o.length>0?`Choose one of the available provider models.`:`No provider models returned, so manual entry is available.`)})]}),(0,P.jsx)(`div`,{className:`modal-actions`,children:(0,P.jsx)(`button`,{className:`button-link button-primary`,disabled:d||g?.canPatch===!1,onClick:D,type:`button`,children:d?`Applying...`:`Apply ${t}`})}),(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Config path`}),(0,P.jsx)(`dd`,{children:n?.path||`Not reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Detected base URL`}),(0,P.jsx)(`dd`,{children:n?.detected?.baseUrl||`Not reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Detected model`}),(0,P.jsx)(`dd`,{children:n?.detected?.model||`Not reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Route provider`}),(0,P.jsx)(`dd`,{children:n?.route?.providerName||n?.route?.providerId||`Not reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Route key`}),(0,P.jsx)(`dd`,{children:n?.route?.key||`Not reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Latest backup`}),(0,P.jsx)(`dd`,{children:h?.path||`Not reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Unavailable reason`}),(0,P.jsx)(`dd`,{children:g?.reason||`Available`})]})]})]})}function In(e){return[e.changed?`files updated`:`no file changes`,e.backupCreated?`backup created`:`no backup needed`,e.configChanged?`config changed`:null,e.authChanged?`auth changed`:null,e.proxyBaseUrl?`base URL ${e.proxyBaseUrl}`:null].filter(e=>!!e).join(` • `)}function Ln({code:e,language:t=`BASH`}){let[n,r]=(0,v.useState)(!1);return(0,P.jsxs)(`div`,{className:`terminal-wrapper`,style:{margin:`var(--space-3) 0`,border:`1px solid var(--line)`,borderRadius:`var(--radius-md)`},children:[(0,P.jsxs)(`div`,{className:`terminal-header`,style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,background:`rgba(255, 255, 255, 0.05)`,padding:`var(--space-2) var(--space-4)`,borderTopLeftRadius:`var(--radius-md)`,borderTopRightRadius:`var(--radius-md)`,borderBottom:`1px solid var(--line)`},children:[(0,P.jsxs)(`div`,{className:`terminal-dots`,style:{display:`flex`,gap:`6px`},children:[(0,P.jsx)(`span`,{style:{width:`10px`,height:`10px`,borderRadius:`50%`,background:`#ff5f56`,display:`inline-block`}}),(0,P.jsx)(`span`,{style:{width:`10px`,height:`10px`,borderRadius:`50%`,background:`#ffbd2e`,display:`inline-block`}}),(0,P.jsx)(`span`,{style:{width:`10px`,height:`10px`,borderRadius:`50%`,background:`#27c93f`,display:`inline-block`}})]}),(0,P.jsx)(`span`,{className:`terminal-title`,style:{fontSize:`var(--font-xs)`,fontFamily:`var(--font-mono)`,opacity:.8},children:t}),(0,P.jsx)(`button`,{className:`copy-command-button`,onClick:()=>{navigator.clipboard.writeText(e),r(!0),setTimeout(()=>r(!1),2e3)},style:{background:`none`,border:`none`,color:`var(--accent)`,cursor:`pointer`,fontSize:`var(--font-xs)`,fontWeight:`bold`},children:n?`Copied!`:`Copy`})]}),(0,P.jsx)(`div`,{className:`terminal-body`,style:{background:`rgba(0, 0, 0, 0.2)`,padding:`var(--space-4)`,borderBottomLeftRadius:`var(--radius-md)`,borderBottomRightRadius:`var(--radius-md)`,overflowX:`auto`},children:(0,P.jsx)(`pre`,{style:{margin:0},children:(0,P.jsx)(`code`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-sm)`,color:`var(--text)`,whiteSpace:`pre`},children:e})})})]})}function Rn(){let[e,t]=(0,v.useState)(`quick-patches`),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)({}),[u,d]=(0,v.useState)({}),[f,p]=(0,v.useState)({}),m=(0,v.useCallback)(e=>{p(t=>t.hermes===e?t:{...t,hermes:e})},[]),h=(0,v.useCallback)(e=>{p(t=>t.codex===e?t:{...t,codex:e})},[]),{state:g,retry:_}=Wt((0,v.useCallback)(async()=>{let[e,t]=await Promise.all([he(),D()]);return{configStatus:e,clientRoutes:Array.isArray(t.clientRoutes)?t.clientRoutes:[],providerOptions:Array.isArray(e.providerOptions)?e.providerOptions:Array.isArray(t.providerOptions)?t.providerOptions:[]}},[])),y=(0,v.useCallback)(async()=>{let e=f.hermes||``,t=g.status===`success`?g.data.clientRoutes.find(t=>Array.isArray(t.apiKeys)&&t.apiKeys.includes(e)):void 0;if(!t?.providerId)return[];let n=await _e(t.providerId);return Array.isArray(n.models)?n.models:[]},[f.hermes,g]),b=(0,v.useCallback)(async()=>{let e=f.codex||``,t=g.status===`success`?g.data.clientRoutes.find(t=>Array.isArray(t.apiKeys)&&t.apiKeys.includes(e)):void 0;if(!t?.providerId)return[];let n=await _e(t.providerId);return Array.isArray(n.models)?n.models:[]},[f.codex,g]),x=Wt(y),S=Wt(b),C=g.status===`success`?g.data.configStatus.clients??{}:{},w=g.status===`success`?g.data.configStatus.runtime:void 0,T=g.status===`success`?g.data.configStatus.proxyBaseUrl??``:``,E=g.status===`success`?g.data.providerOptions:[],O=g.status===`success`?g.data.clientRoutes:[],ee=(0,v.useMemo)(()=>O.flatMap(e=>{let t=Array.isArray(e.apiKeys)?e.apiKeys.filter(Boolean):[];return t.map((n,r)=>({apiKey:n,routeKey:e.key,label:`${e.key}${t.length>1?` (${r+1})`:``} • ••••${n.slice(-4)}`}))}),[O]);(0,v.useEffect)(()=>{ee.length>0&&!n&&r(ee[0].apiKey)},[ee,n]);let k=n||`your-client-api-key`,te=(0,v.useMemo)(()=>[C.hermes,C.codex].filter(Boolean).map(e=>e?.access?.reason).filter(e=>typeof e==`string`&&e.trim()),[C.codex,C.hermes]);async function ne(){if(!i)return;let e=i.client;s(e),l(t=>({...t,[e]:null})),d(t=>({...t,[e]:null}));try{let t=await ge({client:e,baseUrl:i.baseUrl,routeApiKey:i.routeApiKey,model:i.model});d(n=>({...n,[e]:In(t)})),a(null),_()}catch(t){l(n=>({...n,[e]:t instanceof Error?t.message:`Could not apply client config.`}))}finally{s(null)}}let re=i?.client===`hermes`?C.hermes:i?.client===`codex`?C.codex:void 0;if(g.status===`loading`||g.status===`idle`)return(0,P.jsx)(jt,{title:`Loading config helper`,description:`Reading Hermes and Codex quick apply status.`});if(g.status===`error`)return(0,P.jsx)(Ht,{title:`Config status unavailable`,description:g.error.message,onRetry:_});let ie=T||`${window.location.origin}/v1`;return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:`Config Hub`,title:`CLI & Client Developer Hub`,description:`Configure your favorite AI client tools, CLIs, or manual SDK environments to route through responses-proxy.`,actions:(0,P.jsx)($t,{onClick:_})}),(0,P.jsx)(V,{title:`Active Client API Key`,description:`Select a Client API Key to dynamically customize the configuration instructions below.`,children:(0,P.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:`var(--space-4)`},children:[(0,P.jsx)(`div`,{className:`form-field`,style:{margin:0,minWidth:`320px`},children:(0,P.jsxs)(`select`,{className:`search-input`,onChange:e=>r(e.target.value),value:n,children:[ee.length===0?(0,P.jsx)(`option`,{value:``,children:`No client API keys found`}):null,ee.map(e=>(0,P.jsx)(`option`,{value:e.apiKey,children:e.label},e.apiKey))]})}),(0,P.jsxs)(`div`,{style:{fontSize:`var(--font-sm)`,color:`var(--text-secondary)`},children:[`Need a new Client API Key? Go to `,(0,P.jsx)(`a`,{href:`#/clients`,children:`Clients`}),` to create one.`]})]})}),(0,P.jsx)(`div`,{className:`tab-navigation`,style:{marginBottom:`var(--space-5)`},children:(0,P.jsxs)(`div`,{className:`tab-list`,style:{display:`flex`,flexWrap:`wrap`,gap:`var(--space-2)`,borderBottom:`1px solid var(--line)`,paddingBottom:`var(--space-2)`},children:[(0,P.jsx)(`button`,{className:`tab-button ${e===`quick-patches`?`tab-button-active`:``}`,onClick:()=>t(`quick-patches`),style:{background:`none`,border:`none`,padding:`var(--space-2) var(--space-4)`,color:e===`quick-patches`?`var(--accent)`:`var(--text-secondary)`,borderBottom:e===`quick-patches`?`2px solid var(--accent)`:`none`,cursor:`pointer`,fontWeight:`bold`},children:`Quick Patches`}),(0,P.jsx)(`button`,{className:`tab-button ${e===`codex`?`tab-button-active`:``}`,onClick:()=>t(`codex`),style:{background:`none`,border:`none`,padding:`var(--space-2) var(--space-4)`,color:e===`codex`?`var(--accent)`:`var(--text-secondary)`,borderBottom:e===`codex`?`2px solid var(--accent)`:`none`,cursor:`pointer`,fontWeight:`bold`},children:`Codex CLI`}),(0,P.jsx)(`button`,{className:`tab-button ${e===`claude`?`tab-button-active`:``}`,onClick:()=>t(`claude`),style:{background:`none`,border:`none`,padding:`var(--space-2) var(--space-4)`,color:e===`claude`?`var(--accent)`:`var(--text-secondary)`,borderBottom:e===`claude`?`2px solid var(--accent)`:`none`,cursor:`pointer`,fontWeight:`bold`},children:`Claude Code`}),(0,P.jsx)(`button`,{className:`tab-button ${e===`cursor`?`tab-button-active`:``}`,onClick:()=>t(`cursor`),style:{background:`none`,border:`none`,padding:`var(--space-2) var(--space-4)`,color:e===`cursor`?`var(--accent)`:`var(--text-secondary)`,borderBottom:e===`cursor`?`2px solid var(--accent)`:`none`,cursor:`pointer`,fontWeight:`bold`},children:`Cursor`}),(0,P.jsx)(`button`,{className:`tab-button ${e===`cline`?`tab-button-active`:``}`,onClick:()=>t(`cline`),style:{background:`none`,border:`none`,padding:`var(--space-2) var(--space-4)`,color:e===`cline`?`var(--accent)`:`var(--text-secondary)`,borderBottom:e===`cline`?`2px solid var(--accent)`:`none`,cursor:`pointer`,fontWeight:`bold`},children:`Cline`}),(0,P.jsx)(`button`,{className:`tab-button ${e===`openai`?`tab-button-active`:``}`,onClick:()=>t(`openai`),style:{background:`none`,border:`none`,padding:`var(--space-2) var(--space-4)`,color:e===`openai`?`var(--accent)`:`var(--text-secondary)`,borderBottom:e===`openai`?`2px solid var(--accent)`:`none`,cursor:`pointer`,fontWeight:`bold`},children:`OpenAI SDK`})]})}),e===`quick-patches`&&(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(V,{title:`Runtime overview`,description:`Current quick apply runtime and patch availability.`,children:(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Runtime`}),(0,P.jsx)(`dd`,{children:R(w)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Proxy base URL`}),(0,P.jsx)(`dd`,{children:R(T)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Hermes can patch`}),(0,P.jsx)(`dd`,{children:R(C.hermes?.access?.canPatch)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Codex can patch`}),(0,P.jsx)(`dd`,{children:R(C.codex?.access?.canPatch)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Access status`}),(0,P.jsx)(`dd`,{children:te[0]||`Available`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Latest Hermes backup`}),(0,P.jsx)(`dd`,{children:R(C.hermes?.backups?.[0]?.path)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Latest Codex backup`}),(0,P.jsx)(`dd`,{children:R(C.codex?.backups?.[0]?.path)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Latest backup modified`}),(0,P.jsx)(`dd`,{children:Bt(C.codex?.backups?.[0]?.modifiedAt||C.hermes?.backups?.[0]?.modifiedAt)})]})]})}),(0,P.jsxs)(`div`,{className:`quick-apply-layout`,children:[(0,P.jsx)(Fn,{client:`hermes`,clientRoutes:O,error:c.hermes??null,isSubmitting:o===`hermes`,label:`Hermes`,modelOptions:x.state.status===`success`?x.state.data:[],modelsError:x.state.status===`error`?x.state.error.message:null,modelsLoading:x.state.status===`loading`,onApiKeyChange:m,onApply:e=>a(e),providerOptions:E,proxyBaseUrl:T,status:C.hermes,successMessage:u.hermes??null}),(0,P.jsx)(Fn,{client:`codex`,clientRoutes:O,error:c.codex??null,isSubmitting:o===`codex`,label:`Codex`,modelOptions:S.state.status===`success`?S.state.data:[],modelsError:S.state.status===`error`?S.state.error.message:null,modelsLoading:S.state.status===`loading`,onApiKeyChange:h,onApply:e=>a(e),providerOptions:E,proxyBaseUrl:T,status:C.codex,successMessage:u.codex??null})]})]}),e===`codex`&&(0,P.jsxs)(V,{title:`Codex CLI Setup`,description:`Automatically configure the Codex CLI tool on your local machine using a curl script.`,children:[(0,P.jsx)(`p`,{style:{margin:`0 0 var(--space-4) 0`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`Run the following command in your terminal to automatically generate the config and authentication credentials for Codex on your local machine:`}),(0,P.jsx)(Ln,{code:`curl -fsSL \\\n -H 'Authorization: Bearer ${k}' \\\n '${window.location.origin}/api/customer/codex/setup.sh' \\\n | sh`,language:`BASH`}),(0,P.jsx)(`h4`,{style:{margin:`var(--space-4) 0 var(--space-2) 0`,fontSize:`var(--font-md)`},children:`What this does`}),(0,P.jsxs)(`ul`,{style:{margin:0,paddingLeft:`var(--space-4)`,fontSize:`var(--font-sm)`,color:`var(--text-secondary)`,lineHeight:`1.6`},children:[(0,P.jsx)(`li`,{children:`Downloads the configuration script securely using your Client API Key.`}),(0,P.jsxs)(`li`,{children:[`Backs up any existing configurations in `,(0,P.jsx)(`code`,{children:`~/.codex/`}),`.`]}),(0,P.jsxs)(`li`,{children:[`Configures `,(0,P.jsx)(`code`,{children:`~/.codex/config.toml`}),` to use the responses-proxy backend.`]}),(0,P.jsxs)(`li`,{children:[`Stores the Client API key in `,(0,P.jsx)(`code`,{children:`~/.codex/auth.json`}),` for seamless authentication.`]})]})]}),e===`claude`&&(0,P.jsxs)(V,{title:`Claude Code Configuration`,description:`Directly configure Claude Code manually via environment flags or diagnostics.`,children:[(0,P.jsx)(`p`,{style:{margin:`0 0 var(--space-4) 0`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`To run Claude Code through responses-proxy, export the Anthropic base URL environment variable before starting a session:`}),(0,P.jsx)(Ln,{code:`export ANTHROPIC_BASE_URL="${ie}"\nexport ANTHROPIC_API_KEY="${k}"`,language:`BASH`}),(0,P.jsx)(`h4`,{style:{margin:`var(--space-4) 0 var(--space-2) 0`,fontSize:`var(--font-md)`},children:`Diagnostics & Checking`}),(0,P.jsx)(`p`,{style:{margin:`0 0 var(--space-3) 0`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`Run the doctor command inside your terminal to confirm setup and connectivity:`}),(0,P.jsx)(Ln,{code:`claude doctor`,language:`BASH`})]}),e===`cursor`&&(0,P.jsxs)(V,{title:`Cursor AI Editor Setup`,description:`Configure Custom Anthropic base URL inside Cursor's settings.`,children:[(0,P.jsx)(`p`,{style:{margin:`0 0 var(--space-4) 0`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`Cursor allows manual override of the Anthropic Base URL in its developer preferences. Configure these fields:`}),(0,P.jsx)(Ln,{code:`// Under Cursor Settings -> Models -> Anthropic\n{\n "Override Base URL": "${ie}",\n "API Key": "${k}"\n}`,language:`JSON`}),(0,P.jsxs)(`ol`,{style:{margin:`var(--space-4) 0 0 0`,paddingLeft:`var(--space-4)`,fontSize:`var(--font-sm)`,color:`var(--text-secondary)`,lineHeight:`1.6`},children:[(0,P.jsxs)(`li`,{children:[`Open Cursor, navigate to `,(0,P.jsx)(`strong`,{children:`Cursor Settings`}),` (Ctrl/Cmd + ,).`]}),(0,P.jsxs)(`li`,{children:[`Click on `,(0,P.jsx)(`strong`,{children:`Models`}),` on the left pane.`]}),(0,P.jsxs)(`li`,{children:[`Under `,(0,P.jsx)(`strong`,{children:`Anthropic`}),`, expand settings, toggle "Override Base URL", and paste the endpoint URL.`]}),(0,P.jsx)(`li`,{children:`Provide your local client route API key to enable secure authorization.`})]})]}),e===`cline`&&(0,P.jsxs)(V,{title:`Cline Configuration`,description:`Route VSCode Cline extensions through the operational proxy.`,children:[(0,P.jsx)(`p`,{style:{margin:`0 0 var(--space-4) 0`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`Set Cline to use custom Anthropic base URL configurations:`}),(0,P.jsx)(Ln,{code:`Provider: Anthropic\nBase URL: ${ie}\nAPI Key: ${k}\nModel: claude-3-5-sonnet`,language:`SETTINGS`}),(0,P.jsx)(`h4`,{style:{margin:`var(--space-4) 0 var(--space-2) 0`,fontSize:`var(--font-md)`},children:`Alternatively, via OpenAI-Compatible settings:`}),(0,P.jsx)(Ln,{code:`Provider: OpenAI Compatible\nBase URL: ${ie}\nAPI Key: ${k}\nModel: auto`,language:`SETTINGS`})]}),e===`openai`&&(0,P.jsxs)(V,{title:`OpenAI SDK Overrides`,description:`Directly configure standard Python or Javascript SDK clients to communicate with responses-proxy.`,children:[(0,P.jsx)(`h4`,{style:{margin:`0 0 var(--space-2) 0`,fontSize:`var(--font-md)`},children:`NodeJS SDK Example:`}),(0,P.jsx)(Ln,{code:`import OpenAI from 'openai';\n\nconst openai = new OpenAI({\n baseURL: '${ie}',\n apiKey: '${k}'\n});\n\nconst completion = await openai.chat.completions.create({\n model: 'gpt-4o',\n messages: [{ role: 'user', content: 'Hello responses-proxy!' }]\n});`,language:`JAVASCRIPT`}),(0,P.jsx)(`h4`,{style:{margin:`var(--space-4) 0 var(--space-2) 0`,fontSize:`var(--font-md)`},children:`Python SDK Example:`}),(0,P.jsx)(Ln,{code:`from openai import OpenAI\n\nclient = OpenAI(\n base_url="${ie}",\n api_key="${k}"\n)\n\nresponse = client.chat.completions.create(\n model="gpt-4o",\n messages=[{"role": "user", "content": "Hello responses-proxy!"}]\n)`,language:`PYTHON`})]}),i?(0,P.jsx)(Lt,{confirmLabel:`Apply ${i.client}`,description:`Apply ${i.client} config patch at ${re?.path||`the configured path`} for ${i.baseUrl} using model ${i.model}. A backup may be created before files are written.`,isSubmitting:o===i.client,onCancel:()=>{o!==i.client&&a(null)},onConfirm:()=>void ne(),title:`Apply ${i.client} config`}):null]})}function zn(e){return e+.5|0}var Bn=(e,t,n)=>Math.max(Math.min(e,n),t);function Vn(e){return Bn(zn(e*2.55),0,255)}function Hn(e){return Bn(zn(e*255),0,255)}function Un(e){return Bn(zn(e/2.55)/100,0,1)}function Wn(e){return Bn(zn(e*100),0,100)}var Gn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Kn=[...`0123456789ABCDEF`],qn=e=>Kn[e&15],Jn=e=>Kn[(e&240)>>4]+Kn[e&15],Yn=e=>(e&240)>>4==(e&15),Xn=e=>Yn(e.r)&&Yn(e.g)&&Yn(e.b)&&Yn(e.a);function Zn(e){var t=e.length,n;return e[0]===`#`&&(t===4||t===5?n={r:255&Gn[e[1]]*17,g:255&Gn[e[2]]*17,b:255&Gn[e[3]]*17,a:t===5?Gn[e[4]]*17:255}:(t===7||t===9)&&(n={r:Gn[e[1]]<<4|Gn[e[2]],g:Gn[e[3]]<<4|Gn[e[4]],b:Gn[e[5]]<<4|Gn[e[6]],a:t===9?Gn[e[7]]<<4|Gn[e[8]]:255})),n}var Qn=(e,t)=>e<255?t(e):``;function $n(e){var t=Xn(e)?qn:Jn;return e?`#`+t(e.r)+t(e.g)+t(e.b)+Qn(e.a,t):void 0}var er=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function tr(e,t,n){let r=t*Math.min(n,1-n),i=(t,i=(t+e/30)%12)=>n-r*Math.max(Math.min(i-3,9-i,1),-1);return[i(0),i(8),i(4)]}function nr(e,t,n){let r=(r,i=(r+e/60)%6)=>n-n*t*Math.max(Math.min(i,4-i,1),0);return[r(5),r(3),r(1)]}function rr(e,t,n){let r=tr(e,1,.5),i;for(t+n>1&&(i=1/(t+n),t*=i,n*=i),i=0;i<3;i++)r[i]*=1-t-n,r[i]+=t;return r}function ir(e,t,n,r,i){return e===i?(t-n)/r+(t<n?6:0):t===i?(n-e)/r+2:(e-t)/r+4}function ar(e){let t=e.r/255,n=e.g/255,r=e.b/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=(i+a)/2,s,c,l;return i!==a&&(l=i-a,c=o>.5?l/(2-i-a):l/(i+a),s=ir(t,n,r,l,i),s=s*60+.5),[s|0,c||0,o]}function or(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(Hn)}function sr(e,t,n){return or(tr,e,t,n)}function cr(e,t,n){return or(rr,e,t,n)}function lr(e,t,n){return or(nr,e,t,n)}function ur(e){return(e%360+360)%360}function dr(e){let t=er.exec(e),n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?Vn(+t[5]):Hn(+t[5]));let i=ur(+t[2]),a=t[3]/100,o=t[4]/100;return r=t[1]===`hwb`?cr(i,a,o):t[1]===`hsv`?lr(i,a,o):sr(i,a,o),{r:r[0],g:r[1],b:r[2],a:n}}function fr(e,t){var n=ar(e);n[0]=ur(n[0]+t),n=sr(n),e.r=n[0],e.g=n[1],e.b=n[2]}function pr(e){if(!e)return;let t=ar(e),n=t[0],r=Wn(t[1]),i=Wn(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${Un(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}var mr={x:`dark`,Z:`light`,Y:`re`,X:`blu`,W:`gr`,V:`medium`,U:`slate`,A:`ee`,T:`ol`,S:`or`,B:`ra`,C:`lateg`,D:`ights`,R:`in`,Q:`turquois`,E:`hi`,P:`ro`,O:`al`,N:`le`,M:`de`,L:`yello`,F:`en`,K:`ch`,G:`arks`,H:`ea`,I:`ightg`,J:`wh`},hr={OiceXe:`f0f8ff`,antiquewEte:`faebd7`,aqua:`ffff`,aquamarRe:`7fffd4`,azuY:`f0ffff`,beige:`f5f5dc`,bisque:`ffe4c4`,black:`0`,blanKedOmond:`ffebcd`,Xe:`ff`,XeviTet:`8a2be2`,bPwn:`a52a2a`,burlywood:`deb887`,caMtXe:`5f9ea0`,KartYuse:`7fff00`,KocTate:`d2691e`,cSO:`ff7f50`,cSnflowerXe:`6495ed`,cSnsilk:`fff8dc`,crimson:`dc143c`,cyan:`ffff`,xXe:`8b`,xcyan:`8b8b`,xgTMnPd:`b8860b`,xWay:`a9a9a9`,xgYF:`6400`,xgYy:`a9a9a9`,xkhaki:`bdb76b`,xmagFta:`8b008b`,xTivegYF:`556b2f`,xSange:`ff8c00`,xScEd:`9932cc`,xYd:`8b0000`,xsOmon:`e9967a`,xsHgYF:`8fbc8f`,xUXe:`483d8b`,xUWay:`2f4f4f`,xUgYy:`2f4f4f`,xQe:`ced1`,xviTet:`9400d3`,dAppRk:`ff1493`,dApskyXe:`bfff`,dimWay:`696969`,dimgYy:`696969`,dodgerXe:`1e90ff`,fiYbrick:`b22222`,flSOwEte:`fffaf0`,foYstWAn:`228b22`,fuKsia:`ff00ff`,gaRsbSo:`dcdcdc`,ghostwEte:`f8f8ff`,gTd:`ffd700`,gTMnPd:`daa520`,Way:`808080`,gYF:`8000`,gYFLw:`adff2f`,gYy:`808080`,honeyMw:`f0fff0`,hotpRk:`ff69b4`,RdianYd:`cd5c5c`,Rdigo:`4b0082`,ivSy:`fffff0`,khaki:`f0e68c`,lavFMr:`e6e6fa`,lavFMrXsh:`fff0f5`,lawngYF:`7cfc00`,NmoncEffon:`fffacd`,ZXe:`add8e6`,ZcSO:`f08080`,Zcyan:`e0ffff`,ZgTMnPdLw:`fafad2`,ZWay:`d3d3d3`,ZgYF:`90ee90`,ZgYy:`d3d3d3`,ZpRk:`ffb6c1`,ZsOmon:`ffa07a`,ZsHgYF:`20b2aa`,ZskyXe:`87cefa`,ZUWay:`778899`,ZUgYy:`778899`,ZstAlXe:`b0c4de`,ZLw:`ffffe0`,lime:`ff00`,limegYF:`32cd32`,lRF:`faf0e6`,magFta:`ff00ff`,maPon:`800000`,VaquamarRe:`66cdaa`,VXe:`cd`,VScEd:`ba55d3`,VpurpN:`9370db`,VsHgYF:`3cb371`,VUXe:`7b68ee`,VsprRggYF:`fa9a`,VQe:`48d1cc`,VviTetYd:`c71585`,midnightXe:`191970`,mRtcYam:`f5fffa`,mistyPse:`ffe4e1`,moccasR:`ffe4b5`,navajowEte:`ffdead`,navy:`80`,Tdlace:`fdf5e6`,Tive:`808000`,TivedBb:`6b8e23`,Sange:`ffa500`,SangeYd:`ff4500`,ScEd:`da70d6`,pOegTMnPd:`eee8aa`,pOegYF:`98fb98`,pOeQe:`afeeee`,pOeviTetYd:`db7093`,papayawEp:`ffefd5`,pHKpuff:`ffdab9`,peru:`cd853f`,pRk:`ffc0cb`,plum:`dda0dd`,powMrXe:`b0e0e6`,purpN:`800080`,YbeccapurpN:`663399`,Yd:`ff0000`,Psybrown:`bc8f8f`,PyOXe:`4169e1`,saddNbPwn:`8b4513`,sOmon:`fa8072`,sandybPwn:`f4a460`,sHgYF:`2e8b57`,sHshell:`fff5ee`,siFna:`a0522d`,silver:`c0c0c0`,skyXe:`87ceeb`,UXe:`6a5acd`,UWay:`708090`,UgYy:`708090`,snow:`fffafa`,sprRggYF:`ff7f`,stAlXe:`4682b4`,tan:`d2b48c`,teO:`8080`,tEstN:`d8bfd8`,tomato:`ff6347`,Qe:`40e0d0`,viTet:`ee82ee`,JHt:`f5deb3`,wEte:`ffffff`,wEtesmoke:`f5f5f5`,Lw:`ffff00`,LwgYF:`9acd32`};function gr(){let e={},t=Object.keys(hr),n=Object.keys(mr),r,i,a,o,s;for(r=0;r<t.length;r++){for(o=s=t[r],i=0;i<n.length;i++)a=n[i],s=s.replace(a,mr[a]);a=parseInt(hr[o],16),e[s]=[a>>16&255,a>>8&255,a&255]}return e}var _r;function vr(e){_r||(_r=gr(),_r.transparent=[0,0,0,0]);let t=_r[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var yr=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function br(e){let t=yr.exec(e),n=255,r,i,a;if(t){if(t[7]!==r){let e=+t[7];n=t[8]?Vn(e):Bn(e*255,0,255)}return r=+t[1],i=+t[3],a=+t[5],r=255&(t[2]?Vn(r):Bn(r,0,255)),i=255&(t[4]?Vn(i):Bn(i,0,255)),a=255&(t[6]?Vn(a):Bn(a,0,255)),{r,g:i,b:a,a:n}}}function xr(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${Un(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}var Sr=e=>e<=.0031308?e*12.92:e**(1/2.4)*1.055-.055,Cr=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function wr(e,t,n){let r=Cr(Un(e.r)),i=Cr(Un(e.g)),a=Cr(Un(e.b));return{r:Hn(Sr(r+n*(Cr(Un(t.r))-r))),g:Hn(Sr(i+n*(Cr(Un(t.g))-i))),b:Hn(Sr(a+n*(Cr(Un(t.b))-a))),a:e.a+n*(t.a-e.a)}}function Tr(e,t,n){if(e){let r=ar(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=sr(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function Er(e,t){return e&&Object.assign(t||{},e)}function Dr(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=Hn(e[3]))):(t=Er(e,{r:0,g:0,b:0,a:1}),t.a=Hn(t.a)),t}function Or(e){return e.charAt(0)===`r`?br(e):dr(e)}var kr=class e{constructor(t){if(t instanceof e)return t;let n=typeof t,r;n===`object`?r=Dr(t):n===`string`&&(r=Zn(t)||vr(t)||Or(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var e=Er(this._rgb);return e&&(e.a=Un(e.a)),e}set rgb(e){this._rgb=Dr(e)}rgbString(){return this._valid?xr(this._rgb):void 0}hexString(){return this._valid?$n(this._rgb):void 0}hslString(){return this._valid?pr(this._rgb):void 0}mix(e,t){if(e){let n=this.rgb,r=e.rgb,i,a=t===i?.5:t,o=2*a-1,s=n.a-r.a,c=((o*s===-1?o:(o+s)/(1+o*s))+1)/2;i=1-c,n.r=255&c*n.r+i*r.r+.5,n.g=255&c*n.g+i*r.g+.5,n.b=255&c*n.b+i*r.b+.5,n.a=a*n.a+(1-a)*r.a,this.rgb=n}return this}interpolate(e,t){return e&&(this._rgb=wr(this._rgb,e._rgb,t)),this}clone(){return new e(this.rgb)}alpha(e){return this._rgb.a=Hn(e),this}clearer(e){let t=this._rgb;return t.a*=1-e,this}greyscale(){let e=this._rgb;return e.r=e.g=e.b=zn(e.r*.3+e.g*.59+e.b*.11),this}opaquer(e){let t=this._rgb;return t.a*=1+e,this}negate(){let e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Tr(this._rgb,2,e),this}darken(e){return Tr(this._rgb,2,-e),this}saturate(e){return Tr(this._rgb,1,e),this}desaturate(e){return Tr(this._rgb,1,-e),this}rotate(e){return fr(this._rgb,e),this}};function Ar(){}var jr=(()=>{let e=0;return()=>e++})();function H(e){return e==null}function U(e){if(Array.isArray&&Array.isArray(e))return!0;let t=Object.prototype.toString.call(e);return t.slice(0,7)===`[object`&&t.slice(-6)===`Array]`}function W(e){return e!==null&&Object.prototype.toString.call(e)===`[object Object]`}function Mr(e){return(typeof e==`number`||e instanceof Number)&&isFinite(+e)}function Nr(e,t){return Mr(e)?e:t}function G(e,t){return e===void 0?t:e}var Pr=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100*t:+e;function Fr(e,t,n){if(e&&typeof e.call==`function`)return e.apply(n,t)}function Ir(e,t,n,r){let i,a,o;if(U(e))if(a=e.length,r)for(i=a-1;i>=0;i--)t.call(n,e[i],i);else for(i=0;i<a;i++)t.call(n,e[i],i);else if(W(e))for(o=Object.keys(e),a=o.length,i=0;i<a;i++)t.call(n,e[o[i]],o[i])}function Lr(e,t){let n,r,i,a;if(!e||!t||e.length!==t.length)return!1;for(n=0,r=e.length;n<r;++n)if(i=e[n],a=t[n],i.datasetIndex!==a.datasetIndex||i.index!==a.index)return!1;return!0}function Rr(e){if(U(e))return e.map(Rr);if(W(e)){let t=Object.create(null),n=Object.keys(e),r=n.length,i=0;for(;i<r;++i)t[n[i]]=Rr(e[n[i]]);return t}return e}function zr(e){return[`__proto__`,`prototype`,`constructor`].indexOf(e)===-1}function Br(e,t,n,r){if(!zr(e))return;let i=t[e],a=n[e];W(i)&&W(a)?Vr(i,a,r):t[e]=Rr(a)}function Vr(e,t,n){let r=U(t)?t:[t],i=r.length;if(!W(e))return e;n||={};let a=n.merger||Br,o;for(let t=0;t<i;++t){if(o=r[t],!W(o))continue;let i=Object.keys(o);for(let t=0,r=i.length;t<r;++t)a(i[t],e,o,n)}return e}function Hr(e,t){return Vr(e,t,{merger:Ur})}function Ur(e,t,n){if(!zr(e))return;let r=t[e],i=n[e];W(r)&&W(i)?Hr(r,i):Object.prototype.hasOwnProperty.call(t,e)||(t[e]=Rr(i))}var Wr={"":e=>e,x:e=>e.x,y:e=>e.y};function Gr(e){let t=e.split(`.`),n=[],r=``;for(let e of t)r+=e,r.endsWith(`\\`)?r=r.slice(0,-1)+`.`:(n.push(r),r=``);return n}function Kr(e){let t=Gr(e);return e=>{for(let n of t){if(n===``)break;e&&=e[n]}return e}}function qr(e,t){return(Wr[t]||(Wr[t]=Kr(t)))(e)}function Jr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Yr=e=>e!==void 0,Xr=e=>typeof e==`function`,Zr=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0};function Qr(e){return e.type===`mouseup`||e.type===`click`||e.type===`contextmenu`}var $r=Math.PI,ei=2*$r,ti=ei+$r,ni=1/0,ri=$r/180,ii=$r/2,ai=$r/4,oi=$r*2/3,si=Math.log10,ci=Math.sign;function li(e,t,n){return Math.abs(e-t)<n}function ui(e){let t=Math.round(e);e=li(e,t,e/1e3)?t:e;let n=10**Math.floor(si(e)),r=e/n;return(r<=1?1:r<=2?2:r<=5?5:10)*n}function di(e){let t=[],n=Math.sqrt(e),r;for(r=1;r<n;r++)e%r===0&&(t.push(r),t.push(e/r));return n===(n|0)&&t.push(n),t.sort((e,t)=>e-t).pop(),t}function fi(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&!(Symbol.toPrimitive in e||`toString`in e||`valueOf`in e)}function pi(e){return!fi(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function mi(e,t){let n=Math.round(e);return n-t<=e&&n+t>=e}function hi(e,t,n){let r,i,a;for(r=0,i=e.length;r<i;r++)a=e[r][n],isNaN(a)||(t.min=Math.min(t.min,a),t.max=Math.max(t.max,a))}function gi(e){return $r/180*e}function _i(e){return 180/$r*e}function vi(e){if(!Mr(e))return;let t=1,n=0;for(;Math.round(e*t)/t!==e;)t*=10,n++;return n}function yi(e,t){let n=t.x-e.x,r=t.y-e.y,i=Math.sqrt(n*n+r*r),a=Math.atan2(r,n);return a<-.5*$r&&(a+=ei),{angle:a,distance:i}}function bi(e,t){return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)}function xi(e,t){return(e-t+ti)%ei-$r}function Si(e){return(e%ei+ei)%ei}function Ci(e,t,n,r){let i=Si(e),a=Si(t),o=Si(n),s=Si(a-i),c=Si(o-i),l=Si(i-a),u=Si(i-o);return i===a||i===o||r&&a===o||s>c&&l<u}function wi(e,t,n){return Math.max(t,Math.min(n,e))}function Ti(e){return wi(e,-32768,32767)}function Ei(e,t,n,r=1e-6){return e>=Math.min(t,n)-r&&e<=Math.max(t,n)+r}function Di(e,t,n){n||=(n=>e[n]<t);let r=e.length-1,i=0,a;for(;r-i>1;)a=i+r>>1,n(a)?i=a:r=a;return{lo:i,hi:r}}var K=(e,t,n,r)=>Di(e,n,r?r=>{let i=e[r][t];return i<n||i===n&&e[r+1][t]===n}:r=>e[r][t]<n),Oi=(e,t,n)=>Di(e,n,r=>e[r][t]>=n);function ki(e,t,n){let r=0,i=e.length;for(;r<i&&e[r]<t;)r++;for(;i>r&&e[i-1]>n;)i--;return r>0||i<e.length?e.slice(r,i):e}var Ai=[`push`,`pop`,`shift`,`splice`,`unshift`];function ji(e,t){if(e._chartjs){e._chartjs.listeners.push(t);return}Object.defineProperty(e,`_chartjs`,{configurable:!0,enumerable:!1,value:{listeners:[t]}}),Ai.forEach(t=>{let n=`_onData`+Jr(t),r=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value(...t){let i=r.apply(this,t);return e._chartjs.listeners.forEach(e=>{typeof e[n]==`function`&&e[n](...t)}),i}})})}function Mi(e,t){let n=e._chartjs;if(!n)return;let r=n.listeners,i=r.indexOf(t);i!==-1&&r.splice(i,1),!(r.length>0)&&(Ai.forEach(t=>{delete e[t]}),delete e._chartjs)}function Ni(e){let t=new Set(e);return t.size===e.length?e:Array.from(t)}var Pi=function(){return typeof window>`u`?function(e){return e()}:window.requestAnimationFrame}();function Fi(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,Pi.call(window,()=>{r=!1,e.apply(t,n)}))}}function Ii(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}var Li=e=>e===`start`?`left`:e===`end`?`right`:`center`,Ri=(e,t,n)=>e===`start`?t:e===`end`?n:(t+n)/2,zi=(e,t,n,r)=>e===(r?`left`:`right`)?n:e===`center`?(t+n)/2:t;function Bi(e,t,n){let r=t.length,i=0,a=r;if(e._sorted){let{iScale:o,vScale:s,_parsed:c}=e,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,u=o.axis,{min:d,max:f,minDefined:p,maxDefined:m}=o.getUserBounds();if(p){if(i=Math.min(K(c,u,d).lo,n?r:K(t,u,o.getPixelForValue(d)).lo),l){let e=c.slice(0,i+1).reverse().findIndex(e=>!H(e[s.axis]));i-=Math.max(0,e)}i=wi(i,0,r-1)}if(m){let e=Math.max(K(c,o.axis,f,!0).hi+1,n?0:K(t,u,o.getPixelForValue(f),!0).hi+1);if(l){let t=c.slice(e-1).findIndex(e=>!H(e[s.axis]));e+=Math.max(0,t)}a=wi(e,i,r)-i}else a=r-i}return{start:i,count:a}}function Vi(e){let{xScale:t,yScale:n,_scaleRanges:r}=e,i={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!r)return e._scaleRanges=i,!0;let a=r.xmin!==t.min||r.xmax!==t.max||r.ymin!==n.min||r.ymax!==n.max;return Object.assign(r,i),a}var Hi=e=>e===0||e===1,Ui=(e,t,n)=>-(2**(10*--e)*Math.sin((e-t)*ei/n)),Wi=(e,t,n)=>2**(-10*e)*Math.sin((e-t)*ei/n)+1,Gi={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-(--e*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>--e*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*ii)+1,easeOutSine:e=>Math.sin(e*ii),easeInOutSine:e=>-.5*(Math.cos($r*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:-(2**(-10*e))+1,easeInOutExpo:e=>Hi(e)?e:e<.5?.5*2**(10*(e*2-1)):.5*(-(2**(-10*(e*2-1)))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1- --e*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>Hi(e)?e:Ui(e,.075,.3),easeOutElastic:e=>Hi(e)?e:Wi(e,.075,.3),easeInOutElastic(e){let t=.1125,n=.45;return Hi(e)?e:e<.5?.5*Ui(e*2,t,n):.5+.5*Wi(e*2-1,t,n)},easeInBack(e){let t=1.70158;return e*e*((t+1)*e-t)},easeOutBack(e){let t=1.70158;return--e*e*((t+1)*e+t)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-Gi.easeOutBounce(1-e),easeOutBounce(e){let t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},easeInOutBounce:e=>e<.5?Gi.easeInBounce(e*2)*.5:Gi.easeOutBounce(e*2-1)*.5+.5};function Ki(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object CanvasPattern]`||t===`[object CanvasGradient]`}return!1}function qi(e){return Ki(e)?e:new kr(e)}function Ji(e){return Ki(e)?e:new kr(e).saturate(.5).darken(.1).hexString()}var Yi=[`x`,`y`,`borderWidth`,`radius`,`tension`],Xi=[`color`,`borderColor`,`backgroundColor`];function Zi(e){e.set(`animation`,{delay:void 0,duration:1e3,easing:`easeOutQuart`,fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe(`animation`,{_fallback:!1,_indexable:!1,_scriptable:e=>e!==`onProgress`&&e!==`onComplete`&&e!==`fn`}),e.set(`animations`,{colors:{type:`color`,properties:Xi},numbers:{type:`number`,properties:Yi}}),e.describe(`animations`,{_fallback:`animation`}),e.set(`transitions`,{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:`transparent`},visible:{type:`boolean`,duration:0}}},hide:{animations:{colors:{to:`transparent`},visible:{type:`boolean`,easing:`linear`,fn:e=>e|0}}}})}function Qi(e){e.set(`layout`,{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var $i=new Map;function ea(e,t){t||={};let n=e+JSON.stringify(t),r=$i.get(n);return r||(r=new Intl.NumberFormat(e,t),$i.set(n,r)),r}function ta(e,t,n){return ea(t,n).format(e)}var na={values(e){return U(e)?e:``+e},numeric(e,t,n){if(e===0)return`0`;let r=this.chart.options.locale,i,a=e;if(n.length>1){let t=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(t<1e-4||t>0x38d7ea4c68000)&&(i=`scientific`),a=ra(e,n)}let o=si(Math.abs(a)),s=isNaN(o)?1:Math.max(Math.min(-1*Math.floor(o),20),0),c={notation:i,minimumFractionDigits:s,maximumFractionDigits:s};return Object.assign(c,this.options.ticks.format),ta(e,r,c)},logarithmic(e,t,n){if(e===0)return`0`;let r=n[t].significand||e/10**Math.floor(si(e));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?na.numeric.call(this,e,t,n):``}};function ra(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var ia={formatters:na};function aa(e){e.set(`scale`,{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:`ticks`,clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,t)=>t.lineWidth,tickColor:(e,t)=>t.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:``,padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:``,padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ia.formatters.values,minor:{},major:{},align:`center`,crossAlign:`near`,showLabelBackdrop:!1,backdropColor:`rgba(255, 255, 255, 0.75)`,backdropPadding:2}}),e.route(`scale.ticks`,`color`,``,`color`),e.route(`scale.grid`,`color`,``,`borderColor`),e.route(`scale.border`,`color`,``,`borderColor`),e.route(`scale.title`,`color`,``,`color`),e.describe(`scale`,{_fallback:!1,_scriptable:e=>!e.startsWith(`before`)&&!e.startsWith(`after`)&&e!==`callback`&&e!==`parser`,_indexable:e=>e!==`borderDash`&&e!==`tickBorderDash`&&e!==`dash`}),e.describe(`scales`,{_fallback:`scale`}),e.describe(`scale.ticks`,{_scriptable:e=>e!==`backdropPadding`&&e!==`callback`,_indexable:e=>e!==`backdropPadding`})}var oa=Object.create(null),sa=Object.create(null);function ca(e,t){if(!t)return e;let n=t.split(`.`);for(let t=0,r=n.length;t<r;++t){let r=n[t];e=e[r]||(e[r]=Object.create(null))}return e}function la(e,t,n){return typeof t==`string`?Vr(ca(e,t),n):Vr(ca(e,``),t)}var ua=new class{constructor(e,t){this.animation=void 0,this.backgroundColor=`rgba(0,0,0,0.1)`,this.borderColor=`rgba(0,0,0,0.1)`,this.color=`#666`,this.datasets={},this.devicePixelRatio=e=>e.chart.platform.getDevicePixelRatio(),this.elements={},this.events=[`mousemove`,`mouseout`,`click`,`touchstart`,`touchmove`],this.font={family:`'Helvetica Neue', 'Helvetica', 'Arial', sans-serif`,size:12,style:`normal`,lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,t)=>Ji(t.backgroundColor),this.hoverBorderColor=(e,t)=>Ji(t.borderColor),this.hoverColor=(e,t)=>Ji(t.color),this.indexAxis=`x`,this.interaction={mode:`nearest`,intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(t)}set(e,t){return la(this,e,t)}get(e){return ca(this,e)}describe(e,t){return la(sa,e,t)}override(e,t){return la(oa,e,t)}route(e,t,n,r){let i=ca(this,e),a=ca(this,n),o=`_`+t;Object.defineProperties(i,{[o]:{value:i[t],writable:!0},[t]:{enumerable:!0,get(){let e=this[o],t=a[r];return W(e)?Object.assign({},t,e):G(e,t)},set(e){this[o]=e}}})}apply(e){e.forEach(e=>e(this))}}({_scriptable:e=>!e.startsWith(`on`),_indexable:e=>e!==`events`,hover:{_fallback:`interaction`},interaction:{_scriptable:!1,_indexable:!1}},[Zi,Qi,aa]);function da(e){return!e||H(e.size)||H(e.family)?null:(e.style?e.style+` `:``)+(e.weight?e.weight+` `:``)+e.size+`px `+e.family}function fa(e,t,n,r,i){let a=t[i];return a||(a=t[i]=e.measureText(i).width,n.push(i)),a>r&&(r=a),r}function pa(e,t,n,r){r||={};let i=r.data=r.data||{},a=r.garbageCollect=r.garbageCollect||[];r.font!==t&&(i=r.data={},a=r.garbageCollect=[],r.font=t),e.save(),e.font=t;let o=0,s=n.length,c,l,u,d,f;for(c=0;c<s;c++)if(d=n[c],d!=null&&!U(d))o=fa(e,i,a,o,d);else if(U(d))for(l=0,u=d.length;l<u;l++)f=d[l],f!=null&&!U(f)&&(o=fa(e,i,a,o,f));e.restore();let p=a.length/2;if(p>n.length){for(c=0;c<p;c++)delete i[a[c]];a.splice(0,p)}return o}function ma(e,t,n){let r=e.currentDevicePixelRatio,i=n===0?0:Math.max(n/2,.5);return Math.round((t-i)*r)/r+i}function ha(e,t){!t&&!e||(t||=e.getContext(`2d`),t.save(),t.resetTransform(),t.clearRect(0,0,e.width,e.height),t.restore())}function ga(e,t,n,r){_a(e,t,n,r,null)}function _a(e,t,n,r,i){let a,o,s,c,l,u,d,f,p=t.pointStyle,m=t.rotation,h=t.radius,g=(m||0)*ri;if(p&&typeof p==`object`&&(a=p.toString(),a===`[object HTMLImageElement]`||a===`[object HTMLCanvasElement]`)){e.save(),e.translate(n,r),e.rotate(g),e.drawImage(p,-p.width/2,-p.height/2,p.width,p.height),e.restore();return}if(!(isNaN(h)||h<=0)){switch(e.beginPath(),p){default:i?e.ellipse(n,r,i/2,h,0,0,ei):e.arc(n,r,h,0,ei),e.closePath();break;case`triangle`:u=i?i/2:h,e.moveTo(n+Math.sin(g)*u,r-Math.cos(g)*h),g+=oi,e.lineTo(n+Math.sin(g)*u,r-Math.cos(g)*h),g+=oi,e.lineTo(n+Math.sin(g)*u,r-Math.cos(g)*h),e.closePath();break;case`rectRounded`:l=h*.516,c=h-l,o=Math.cos(g+ai)*c,d=Math.cos(g+ai)*(i?i/2-l:c),s=Math.sin(g+ai)*c,f=Math.sin(g+ai)*(i?i/2-l:c),e.arc(n-d,r-s,l,g-$r,g-ii),e.arc(n+f,r-o,l,g-ii,g),e.arc(n+d,r+s,l,g,g+ii),e.arc(n-f,r+o,l,g+ii,g+$r),e.closePath();break;case`rect`:if(!m){c=Math.SQRT1_2*h,u=i?i/2:c,e.rect(n-u,r-c,2*u,2*c);break}g+=ai;case`rectRot`:d=Math.cos(g)*(i?i/2:h),o=Math.cos(g)*h,s=Math.sin(g)*h,f=Math.sin(g)*(i?i/2:h),e.moveTo(n-d,r-s),e.lineTo(n+f,r-o),e.lineTo(n+d,r+s),e.lineTo(n-f,r+o),e.closePath();break;case`crossRot`:g+=ai;case`cross`:d=Math.cos(g)*(i?i/2:h),o=Math.cos(g)*h,s=Math.sin(g)*h,f=Math.sin(g)*(i?i/2:h),e.moveTo(n-d,r-s),e.lineTo(n+d,r+s),e.moveTo(n+f,r-o),e.lineTo(n-f,r+o);break;case`star`:d=Math.cos(g)*(i?i/2:h),o=Math.cos(g)*h,s=Math.sin(g)*h,f=Math.sin(g)*(i?i/2:h),e.moveTo(n-d,r-s),e.lineTo(n+d,r+s),e.moveTo(n+f,r-o),e.lineTo(n-f,r+o),g+=ai,d=Math.cos(g)*(i?i/2:h),o=Math.cos(g)*h,s=Math.sin(g)*h,f=Math.sin(g)*(i?i/2:h),e.moveTo(n-d,r-s),e.lineTo(n+d,r+s),e.moveTo(n+f,r-o),e.lineTo(n-f,r+o);break;case`line`:o=i?i/2:Math.cos(g)*h,s=Math.sin(g)*h,e.moveTo(n-o,r-s),e.lineTo(n+o,r+s);break;case`dash`:e.moveTo(n,r),e.lineTo(n+Math.cos(g)*(i?i/2:h),r+Math.sin(g)*h);break;case!1:e.closePath();break}e.fill(),t.borderWidth>0&&e.stroke()}}function va(e,t,n){return n||=.5,!t||e&&e.x>t.left-n&&e.x<t.right+n&&e.y>t.top-n&&e.y<t.bottom+n}function ya(e,t){e.save(),e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.clip()}function ba(e){e.restore()}function xa(e,t,n,r,i){if(!t)return e.lineTo(n.x,n.y);if(i===`middle`){let r=(t.x+n.x)/2;e.lineTo(r,t.y),e.lineTo(r,n.y)}else i===`after`==!!r?e.lineTo(n.x,t.y):e.lineTo(t.x,n.y);e.lineTo(n.x,n.y)}function Sa(e,t,n,r){if(!t)return e.lineTo(n.x,n.y);e.bezierCurveTo(r?t.cp1x:t.cp2x,r?t.cp1y:t.cp2y,r?n.cp2x:n.cp1x,r?n.cp2y:n.cp1y,n.x,n.y)}function Ca(e,t){t.translation&&e.translate(t.translation[0],t.translation[1]),H(t.rotation)||e.rotate(t.rotation),t.color&&(e.fillStyle=t.color),t.textAlign&&(e.textAlign=t.textAlign),t.textBaseline&&(e.textBaseline=t.textBaseline)}function wa(e,t,n,r,i){if(i.strikethrough||i.underline){let a=e.measureText(r),o=t-a.actualBoundingBoxLeft,s=t+a.actualBoundingBoxRight,c=n-a.actualBoundingBoxAscent,l=n+a.actualBoundingBoxDescent,u=i.strikethrough?(c+l)/2:l;e.strokeStyle=e.fillStyle,e.beginPath(),e.lineWidth=i.decorationWidth||2,e.moveTo(o,u),e.lineTo(s,u),e.stroke()}}function Ta(e,t){let n=e.fillStyle;e.fillStyle=t.color,e.fillRect(t.left,t.top,t.width,t.height),e.fillStyle=n}function Ea(e,t,n,r,i,a={}){let o=U(t)?t:[t],s=a.strokeWidth>0&&a.strokeColor!==``,c,l;for(e.save(),e.font=i.string,Ca(e,a),c=0;c<o.length;++c)l=o[c],a.backdrop&&Ta(e,a.backdrop),s&&(a.strokeColor&&(e.strokeStyle=a.strokeColor),H(a.strokeWidth)||(e.lineWidth=a.strokeWidth),e.strokeText(l,n,r,a.maxWidth)),e.fillText(l,n,r,a.maxWidth),wa(e,n,r,l,a),r+=Number(i.lineHeight);e.restore()}function Da(e,t){let{x:n,y:r,w:i,h:a,radius:o}=t;e.arc(n+o.topLeft,r+o.topLeft,o.topLeft,1.5*$r,$r,!0),e.lineTo(n,r+a-o.bottomLeft),e.arc(n+o.bottomLeft,r+a-o.bottomLeft,o.bottomLeft,$r,ii,!0),e.lineTo(n+i-o.bottomRight,r+a),e.arc(n+i-o.bottomRight,r+a-o.bottomRight,o.bottomRight,ii,0,!0),e.lineTo(n+i,r+o.topRight),e.arc(n+i-o.topRight,r+o.topRight,o.topRight,0,-ii,!0),e.lineTo(n+o.topLeft,r)}var Oa=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,ka=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function Aa(e,t){let n=(``+e).match(Oa);if(!n||n[1]===`normal`)return t*1.2;switch(e=+n[2],n[3]){case`px`:return e;case`%`:e/=100;break}return t*e}var ja=e=>+e||0;function Ma(e,t){let n={},r=W(t),i=r?Object.keys(t):t,a=W(e)?r?n=>G(e[n],e[t[n]]):t=>e[t]:()=>e;for(let e of i)n[e]=ja(a(e));return n}function Na(e){return Ma(e,{top:`y`,right:`x`,bottom:`y`,left:`x`})}function Pa(e){return Ma(e,[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`])}function Fa(e){let t=Na(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function Ia(e,t){e||={},t||=ua.font;let n=G(e.size,t.size);typeof n==`string`&&(n=parseInt(n,10));let r=G(e.style,t.style);r&&!(``+r).match(ka)&&(console.warn(`Invalid font style specified: "`+r+`"`),r=void 0);let i={family:G(e.family,t.family),lineHeight:Aa(G(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:G(e.weight,t.weight),string:``};return i.string=da(i),i}function La(e,t,n,r){let i=!0,a,o,s;for(a=0,o=e.length;a<o;++a)if(s=e[a],s!==void 0&&(t!==void 0&&typeof s==`function`&&(s=s(t),i=!1),n!==void 0&&U(s)&&(s=s[n%s.length],i=!1),s!==void 0))return r&&!i&&(r.cacheable=!1),s}function Ra(e,t,n){let{min:r,max:i}=e,a=Pr(t,(i-r)/2),o=(e,t)=>n&&e===0?0:e+t;return{min:o(r,-Math.abs(a)),max:o(i,a)}}function za(e,t){return Object.assign(Object.create(e),t)}function Ba(e,t=[``],n,r,i=()=>e[0]){let a=n||e;return r===void 0&&(r=no(`_fallback`,e)),new Proxy({[Symbol.toStringTag]:`Object`,_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>Ba([n,...e],t,a,r)},{deleteProperty(t,n){return delete t[n],delete t._keys,delete e[0][n],!0},get(n,r){return Ga(n,r,()=>to(r,t,e,n))},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e._scopes[0],t)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(e,t){return ro(e).includes(t)},ownKeys(e){return ro(e)},set(e,t,n){let r=e._storage||=i();return e[t]=r[t]=n,delete e._keys,!0}})}function Va(e,t,n,r){let i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:Ha(e,r),setContext:t=>Va(e,t,n,r),override:i=>Va(e.override(i),t,n,r)};return new Proxy(i,{deleteProperty(t,n){return delete t[n],delete e[n],!0},get(e,t,n){return Ga(e,t,()=>Ka(e,t,n))},getOwnPropertyDescriptor(t,n){return t._descriptors.allKeys?Reflect.has(e,n)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,n)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(t,n){return Reflect.has(e,n)},ownKeys(){return Reflect.ownKeys(e)},set(t,n,r){return e[n]=r,delete t[n],!0}})}function Ha(e,t={scriptable:!0,indexable:!0}){let{_scriptable:n=t.scriptable,_indexable:r=t.indexable,_allKeys:i=t.allKeys}=e;return{allKeys:i,scriptable:n,indexable:r,isScriptable:Xr(n)?n:()=>n,isIndexable:Xr(r)?r:()=>r}}var Ua=(e,t)=>e?e+Jr(t):t,Wa=(e,t)=>W(t)&&e!==`adapters`&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function Ga(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t===`constructor`)return e[t];let r=n();return e[t]=r,r}function Ka(e,t,n){let{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e,s=r[t];return Xr(s)&&o.isScriptable(t)&&(s=qa(t,s,e,n)),U(s)&&s.length&&(s=Ja(t,s,e,o.isIndexable)),Wa(t,s)&&(s=Va(s,i,a&&a[t],o)),s}function qa(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_stack:s}=n;if(s.has(e))throw Error(`Recursion detected: `+Array.from(s).join(`->`)+`->`+e);s.add(e);let c=t(a,o||r);return s.delete(e),Wa(e,c)&&(c=Qa(i._scopes,i,e,c)),c}function Ja(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_descriptors:s}=n;if(a.index!==void 0&&r(e))return t[a.index%t.length];if(W(t[0])){let n=t,r=i._scopes.filter(e=>e!==n);t=[];for(let c of n){let n=Qa(r,i,e,c);t.push(Va(n,a,o&&o[e],s))}}return t}function Ya(e,t,n){return Xr(e)?e(t,n):e}var Xa=(e,t)=>e===!0?t:typeof e==`string`?qr(t,e):void 0;function Za(e,t,n,r,i){for(let a of t){let t=Xa(n,a);if(t){e.add(t);let a=Ya(t._fallback,n,i);if(a!==void 0&&a!==n&&a!==r)return a}else if(t===!1&&r!==void 0&&n!==r)return null}return!1}function Qa(e,t,n,r){let i=t._rootScopes,a=Ya(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let c=$a(s,o,n,a||n,r);return c===null||a!==void 0&&a!==n&&(c=$a(s,o,a,c,r),c===null)?!1:Ba(Array.from(s),[``],i,a,()=>eo(t,n,r))}function $a(e,t,n,r,i){for(;n;)n=Za(e,t,n,r,i);return n}function eo(e,t,n){let r=e._getTarget();t in r||(r[t]={});let i=r[t];return U(i)&&W(n)?n:i||{}}function to(e,t,n,r){let i;for(let a of t)if(i=no(Ua(a,e),n),i!==void 0)return Wa(e,i)?Qa(n,r,e,i):i}function no(e,t){for(let n of t){if(!n)continue;let t=n[e];if(t!==void 0)return t}}function ro(e){let t=e._keys;return t||=e._keys=io(e._scopes),t}function io(e){let t=new Set;for(let n of e)for(let e of Object.keys(n).filter(e=>!e.startsWith(`_`)))t.add(e);return Array.from(t)}var ao=2**-52||1e-14,q=(e,t)=>t<e.length&&!e[t].skip&&e[t],oo=e=>e===`x`?`y`:`x`;function so(e,t,n,r){let i=e.skip?t:e,a=t,o=n.skip?t:n,s=bi(a,i),c=bi(o,a),l=s/(s+c),u=c/(s+c);l=isNaN(l)?0:l,u=isNaN(u)?0:u;let d=r*l,f=r*u;return{previous:{x:a.x-d*(o.x-i.x),y:a.y-d*(o.y-i.y)},next:{x:a.x+f*(o.x-i.x),y:a.y+f*(o.y-i.y)}}}function co(e,t,n){let r=e.length,i,a,o,s,c,l=q(e,0);for(let u=0;u<r-1;++u)if(c=l,l=q(e,u+1),!(!c||!l)){if(li(t[u],0,ao)){n[u]=n[u+1]=0;continue}i=n[u]/t[u],a=n[u+1]/t[u],s=i**2+a**2,!(s<=9)&&(o=3/Math.sqrt(s),n[u]=i*o*t[u],n[u+1]=a*o*t[u])}}function lo(e,t,n=`x`){let r=oo(n),i=e.length,a,o,s,c=q(e,0);for(let l=0;l<i;++l){if(o=s,s=c,c=q(e,l+1),!s)continue;let i=s[n],u=s[r];o&&(a=(i-o[n])/3,s[`cp1${n}`]=i-a,s[`cp1${r}`]=u-a*t[l]),c&&(a=(c[n]-i)/3,s[`cp2${n}`]=i+a,s[`cp2${r}`]=u+a*t[l])}}function uo(e,t=`x`){let n=oo(t),r=e.length,i=Array(r).fill(0),a=Array(r),o,s,c,l=q(e,0);for(o=0;o<r;++o)if(s=c,c=l,l=q(e,o+1),c){if(l){let e=l[t]-c[t];i[o]=e===0?0:(l[n]-c[n])/e}a[o]=s?l?ci(i[o-1])===ci(i[o])?(i[o-1]+i[o])/2:0:i[o-1]:i[o]}co(e,i,a),lo(e,a,t)}function fo(e,t,n){return Math.max(Math.min(e,n),t)}function po(e,t){let n,r,i,a,o,s=va(e[0],t);for(n=0,r=e.length;n<r;++n)o=a,a=s,s=n<r-1&&va(e[n+1],t),a&&(i=e[n],o&&(i.cp1x=fo(i.cp1x,t.left,t.right),i.cp1y=fo(i.cp1y,t.top,t.bottom)),s&&(i.cp2x=fo(i.cp2x,t.left,t.right),i.cp2y=fo(i.cp2y,t.top,t.bottom)))}function mo(e,t,n,r,i){let a,o,s,c;if(t.spanGaps&&(e=e.filter(e=>!e.skip)),t.cubicInterpolationMode===`monotone`)uo(e,i);else{let n=r?e[e.length-1]:e[0];for(a=0,o=e.length;a<o;++a)s=e[a],c=so(n,s,e[Math.min(a+1,o-+!r)%o],t.tension),s.cp1x=c.previous.x,s.cp1y=c.previous.y,s.cp2x=c.next.x,s.cp2y=c.next.y,n=s}t.capBezierPoints&&po(e,n)}function ho(){return typeof window<`u`&&typeof document<`u`}function go(e){let t=e.parentNode;return t&&t.toString()===`[object ShadowRoot]`&&(t=t.host),t}function _o(e,t,n){let r;return typeof e==`string`?(r=parseInt(e,10),e.indexOf(`%`)!==-1&&(r=r/100*t.parentNode[n])):r=e,r}var vo=e=>e.ownerDocument.defaultView.getComputedStyle(e,null);function yo(e,t){return vo(e).getPropertyValue(t)}var bo=[`top`,`right`,`bottom`,`left`];function xo(e,t,n){let r={};n=n?`-`+n:``;for(let i=0;i<4;i++){let a=bo[i];r[a]=parseFloat(e[t+`-`+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}var So=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function Co(e,t){let n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r,o=!1,s,c;if(So(i,a,e.target))s=i,c=a;else{let e=t.getBoundingClientRect();s=r.clientX-e.left,c=r.clientY-e.top,o=!0}return{x:s,y:c,box:o}}function wo(e,t){if(`native`in e)return e;let{canvas:n,currentDevicePixelRatio:r}=t,i=vo(n),a=i.boxSizing===`border-box`,o=xo(i,`padding`),s=xo(i,`border`,`width`),{x:c,y:l,box:u}=Co(e,n),d=o.left+(u&&s.left),f=o.top+(u&&s.top),{width:p,height:m}=t;return a&&(p-=o.width+s.width,m-=o.height+s.height),{x:Math.round((c-d)/p*n.width/r),y:Math.round((l-f)/m*n.height/r)}}function To(e,t,n){let r,i;if(t===void 0||n===void 0){let a=e&&go(e);if(!a)t=e.clientWidth,n=e.clientHeight;else{let e=a.getBoundingClientRect(),o=vo(a),s=xo(o,`border`,`width`),c=xo(o,`padding`);t=e.width-c.width-s.width,n=e.height-c.height-s.height,r=_o(o.maxWidth,a,`clientWidth`),i=_o(o.maxHeight,a,`clientHeight`)}}return{width:t,height:n,maxWidth:r||ni,maxHeight:i||ni}}var Eo=e=>Math.round(e*10)/10;function Do(e,t,n,r){let i=vo(e),a=xo(i,`margin`),o=_o(i.maxWidth,e,`clientWidth`)||ni,s=_o(i.maxHeight,e,`clientHeight`)||ni,c=To(e,t,n),{width:l,height:u}=c;if(i.boxSizing===`content-box`){let e=xo(i,`border`,`width`),t=xo(i,`padding`);l-=t.width+e.width,u-=t.height+e.height}return l=Math.max(0,l-a.width),u=Math.max(0,r?l/r:u-a.height),l=Eo(Math.min(l,o,c.maxWidth)),u=Eo(Math.min(u,s,c.maxHeight)),l&&!u&&(u=Eo(l/2)),(t!==void 0||n!==void 0)&&r&&c.height&&u>c.height&&(u=c.height,l=Eo(Math.floor(u*r))),{width:l,height:u}}function Oo(e,t,n){let r=t||1,i=Eo(e.height*r),a=Eo(e.width*r);e.height=Eo(e.height),e.width=Eo(e.width);let o=e.canvas;return o.style&&(n||!o.style.height&&!o.style.width)&&(o.style.height=`${e.height}px`,o.style.width=`${e.width}px`),e.currentDevicePixelRatio!==r||o.height!==i||o.width!==a?(e.currentDevicePixelRatio=r,o.height=i,o.width=a,e.ctx.setTransform(r,0,0,r,0,0),!0):!1}var ko=function(){let e=!1;try{let t={get passive(){return e=!0,!1}};ho()&&(window.addEventListener(`test`,null,t),window.removeEventListener(`test`,null,t))}catch{}return e}();function Ao(e,t){let n=yo(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function jo(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function Mo(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:r===`middle`?n<.5?e.y:t.y:r===`after`?n<1?e.y:t.y:n>0?t.y:e.y}}function No(e,t,n,r){let i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=jo(e,i,n),s=jo(i,a,n),c=jo(a,t,n);return jo(jo(o,s,n),jo(s,c,n),n)}var Po=function(e,t){return{x(n){return e+e+t-n},setWidth(e){t=e},textAlign(e){return e===`center`?e:e===`right`?`left`:`right`},xPlus(e,t){return e-t},leftForLtr(e,t){return e-t}}},Fo=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function Io(e,t,n){return e?Po(t,n):Fo()}function Lo(e,t){let n,r;(t===`ltr`||t===`rtl`)&&(n=e.canvas.style,r=[n.getPropertyValue(`direction`),n.getPropertyPriority(`direction`)],n.setProperty(`direction`,t,`important`),e.prevTextDirection=r)}function Ro(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty(`direction`,t[0],t[1]))}function zo(e){return e===`angle`?{between:Ci,compare:xi,normalize:Si}:{between:Ei,compare:(e,t)=>e-t,normalize:e=>e}}function Bo({start:e,end:t,count:n,loop:r,style:i}){return{start:e%n,end:t%n,loop:r&&(t-e+1)%n===0,style:i}}function Vo(e,t,n){let{property:r,start:i,end:a}=n,{between:o,normalize:s}=zo(r),c=t.length,{start:l,end:u,loop:d}=e,f,p;if(d){for(l+=c,u+=c,f=0,p=c;f<p&&o(s(t[l%c][r]),i,a);++f)l--,u--;l%=c,u%=c}return u<l&&(u+=c),{start:l,end:u,loop:d,style:e.style}}function Ho(e,t,n){if(!n)return[e];let{property:r,start:i,end:a}=n,o=t.length,{compare:s,between:c,normalize:l}=zo(r),{start:u,end:d,loop:f,style:p}=Vo(e,t,n),m=[],h=!1,g=null,_,v,y,b=()=>c(i,y,_)&&s(i,y)!==0,x=()=>s(a,_)===0||c(a,y,_),S=()=>h||b(),C=()=>!h||x();for(let e=u,n=u;e<=d;++e)v=t[e%o],!v.skip&&(_=l(v[r]),_!==y&&(h=c(_,i,a),g===null&&S()&&(g=s(_,i)===0?e:n),g!==null&&C()&&(m.push(Bo({start:g,end:e,loop:f,count:o,style:p})),g=null),n=e,y=_));return g!==null&&m.push(Bo({start:g,end:d,loop:f,count:o,style:p})),m}function Uo(e,t){let n=[],r=e.segments;for(let i=0;i<r.length;i++){let a=Ho(r[i],e.points,t);a.length&&n.push(...a)}return n}function Wo(e,t,n,r){let i=0,a=t-1;if(n&&!r)for(;i<t&&!e[i].skip;)i++;for(;i<t&&e[i].skip;)i++;for(i%=t,n&&(a+=i);a>i&&e[a%t].skip;)a--;return a%=t,{start:i,end:a}}function Go(e,t,n,r){let i=e.length,a=[],o=t,s=e[t],c;for(c=t+1;c<=n;++c){let n=e[c%i];n.skip||n.stop?s.skip||(r=!1,a.push({start:t%i,end:(c-1)%i,loop:r}),t=o=n.stop?c:null):(o=c,s.skip&&(t=c)),s=n}return o!==null&&a.push({start:t%i,end:o%i,loop:r}),a}function Ko(e,t){let n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];let a=!!e._loop,{start:o,end:s}=Wo(n,i,a,r);return r===!0?qo(e,[{start:o,end:s,loop:a}],n,t):qo(e,Go(n,o,s<o?s+i:s,!!e._fullLoop&&o===0&&s===i-1),n,t)}function qo(e,t,n,r){return!r||!r.setContext||!n?t:Jo(e,t,n,r)}function Jo(e,t,n,r){let i=e._chart.getContext(),a=Yo(e.options),{_datasetIndex:o,options:{spanGaps:s}}=e,c=n.length,l=[],u=a,d=t[0].start,f=d;function p(e,t,r,i){let a=s?-1:1;if(e!==t){for(e+=c;n[e%c].skip;)e-=a;for(;n[t%c].skip;)t+=a;e%c!==t%c&&(l.push({start:e%c,end:t%c,loop:r,style:i}),u=i,d=t%c)}}for(let e of t){d=s?d:e.start;let t=n[d%c],a;for(f=d+1;f<=e.end;f++){let s=n[f%c];a=Yo(r.setContext(za(i,{type:`segment`,p0:t,p1:s,p0DataIndex:(f-1)%c,p1DataIndex:f%c,datasetIndex:o}))),Xo(a,u)&&p(d,f-1,e.loop,u),t=s,u=a}d<f-1&&p(d,f-1,e.loop,u)}return l}function Yo(e){return{backgroundColor:e.backgroundColor,borderCapStyle:e.borderCapStyle,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderJoinStyle:e.borderJoinStyle,borderWidth:e.borderWidth,borderColor:e.borderColor}}function Xo(e,t){if(!t)return!1;let n=[],r=function(e,t){return Ki(t)?(n.includes(t)||n.push(t),n.indexOf(t)):t};return JSON.stringify(e,r)!==JSON.stringify(t,r)}function Zo(e,t,n){return e.options.clip?e[n]:t[n]}function Qo(e,t){let{xScale:n,yScale:r}=e;return n&&r?{left:Zo(n,t,`left`),right:Zo(n,t,`right`),top:Zo(r,t,`top`),bottom:Zo(r,t,`bottom`)}:t}function $o(e,t){let n=t._clip;if(n.disabled)return!1;let r=Qo(t,e.chartArea);return{left:n.left===!1?0:r.left-(n.left===!0?0:n.left),right:n.right===!1?e.width:r.right+(n.right===!0?0:n.right),top:n.top===!1?0:r.top-(n.top===!0?0:n.top),bottom:n.bottom===!1?e.height:r.bottom+(n.bottom===!0?0:n.bottom)}}var es=new class{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(e,t,n,r){let i=t.listeners[r],a=t.duration;i.forEach(r=>r({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)}))}_refresh(){this._request||=(this._running=!0,Pi.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let t=0;this._charts.forEach((n,r)=>{if(!n.running||!n.items.length)return;let i=n.items,a=i.length-1,o=!1,s;for(;a>=0;--a)s=i[a],s._active?(s._total>n.duration&&(n.duration=s._total),s.tick(e),o=!0):(i[a]=i[i.length-1],i.pop());o&&(r.draw(),this._notify(r,n,e,`progress`)),i.length||(n.running=!1,this._notify(r,n,e,`complete`),n.initial=!1),t+=i.length}),this._lastDate=e,t===0&&(this._running=!1)}_getAnims(e){let t=this._charts,n=t.get(e);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,n)),n}listen(e,t,n){this._getAnims(e).listeners[t].push(n)}add(e,t){!t||!t.length||this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){let t=this._charts.get(e);t&&(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((e,t)=>Math.max(e,t._duration),0),this._refresh())}running(e){if(!this._running)return!1;let t=this._charts.get(e);return!(!t||!t.running||!t.items.length)}stop(e){let t=this._charts.get(e);if(!t||!t.items.length)return;let n=t.items,r=n.length-1;for(;r>=0;--r)n[r].cancel();t.items=[],this._notify(e,t,Date.now(),`complete`)}remove(e){return this._charts.delete(e)}},ts=`transparent`,ns={boolean(e,t,n){return n>.5?t:e},color(e,t,n){let r=qi(e||ts),i=r.valid&&qi(t||ts);return i&&i.valid?i.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}},rs=class{constructor(e,t,n,r){let i=t[n];r=La([e.to,r,i,e.from]);let a=La([e.from,i,r]);this._active=!0,this._fn=e.fn||ns[e.type||typeof a],this._easing=Gi[e.easing]||Gi.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=n,this._from=a,this._to=r,this._promises=void 0}active(){return this._active}update(e,t,n){if(this._active){this._notify(!1);let r=this._target[this._prop],i=n-this._start,a=this._duration-i;this._start=n,this._duration=Math.floor(Math.max(a,e.duration)),this._total+=i,this._loop=!!e.loop,this._to=La([e.to,t,r,e.from]),this._from=La([e.from,r,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){let t=e-this._start,n=this._duration,r=this._prop,i=this._from,a=this._loop,o=this._to,s;if(this._active=i!==o&&(a||t<n),!this._active){this._target[r]=o,this._notify(!0);return}if(t<0){this._target[r]=i;return}s=t/n%2,s=a&&s>1?2-s:s,s=this._easing(Math.min(1,Math.max(0,s))),this._target[r]=this._fn(i,o,s)}wait(){let e=this._promises||=[];return new Promise((t,n)=>{e.push({res:t,rej:n})})}_notify(e){let t=e?`res`:`rej`,n=this._promises||[];for(let e=0;e<n.length;e++)n[e][t]()}},is=class{constructor(e,t){this._chart=e,this._properties=new Map,this.configure(t)}configure(e){if(!W(e))return;let t=Object.keys(ua.animation),n=this._properties;Object.getOwnPropertyNames(e).forEach(r=>{let i=e[r];if(!W(i))return;let a={};for(let e of t)a[e]=i[e];(U(i.properties)&&i.properties||[r]).forEach(e=>{(e===r||!n.has(e))&&n.set(e,a)})})}_animateOptions(e,t){let n=t.options,r=os(e,n);if(!r)return[];let i=this._createAnimations(r,n);return n.$shared&&as(e.options.$animations,n).then(()=>{e.options=n},()=>{}),i}_createAnimations(e,t){let n=this._properties,r=[],i=e.$animations||={},a=Object.keys(t),o=Date.now(),s;for(s=a.length-1;s>=0;--s){let c=a[s];if(c.charAt(0)===`$`)continue;if(c===`options`){r.push(...this._animateOptions(e,t));continue}let l=t[c],u=i[c],d=n.get(c);if(u)if(d&&u.active()){u.update(d,l,o);continue}else u.cancel();if(!d||!d.duration){e[c]=l;continue}i[c]=u=new rs(d,e,c,l),r.push(u)}return r}update(e,t){if(this._properties.size===0){Object.assign(e,t);return}let n=this._createAnimations(e,t);if(n.length)return es.add(this._chart,n),!0}};function as(e,t){let n=[],r=Object.keys(t);for(let t=0;t<r.length;t++){let i=e[r[t]];i&&i.active()&&n.push(i.wait())}return Promise.all(n)}function os(e,t){if(!t)return;let n=e.options;if(!n){e.options=t;return}return n.$shared&&(e.options=n=Object.assign({},n,{$shared:!1,$animations:{}})),n}function ss(e,t){let n=e&&e.options||{},r=n.reverse,i=n.min===void 0?t:0,a=n.max===void 0?t:0;return{start:r?a:i,end:r?i:a}}function cs(e,t,n){if(n===!1)return!1;let r=ss(e,n),i=ss(t,n);return{top:i.end,right:r.end,bottom:i.start,left:r.start}}function ls(e){let t,n,r,i;return W(e)?(t=e.top,n=e.right,r=e.bottom,i=e.left):t=n=r=i=e,{top:t,right:n,bottom:r,left:i,disabled:e===!1}}function us(e,t){let n=[],r=e._getSortedDatasetMetas(t),i,a;for(i=0,a=r.length;i<a;++i)n.push(r[i].index);return n}function ds(e,t,n,r={}){let i=e.keys,a=r.mode===`single`,o,s,c,l;if(t===null)return;let u=!1;for(o=0,s=i.length;o<s;++o){if(c=+i[o],c===n){if(u=!0,r.all)continue;break}l=e.values[c],Mr(l)&&(a||t===0||ci(t)===ci(l))&&(t+=l)}return!u&&!r.all?0:t}function fs(e,t){let{iScale:n,vScale:r}=t,i=n.axis===`x`?`x`:`y`,a=r.axis===`x`?`x`:`y`,o=Object.keys(e),s=Array(o.length),c,l,u;for(c=0,l=o.length;c<l;++c)u=o[c],s[c]={[i]:u,[a]:e[u]};return s}function ps(e,t){let n=e&&e.options.stacked;return n||n===void 0&&t.stack!==void 0}function ms(e,t,n){return`${e.id}.${t.id}.${n.stack||n.type}`}function hs(e){let{min:t,max:n,minDefined:r,maxDefined:i}=e.getUserBounds();return{min:r?t:-1/0,max:i?n:1/0}}function gs(e,t,n){let r=e[t]||(e[t]={});return r[n]||(r[n]={})}function _s(e,t,n,r){for(let i of t.getMatchingVisibleMetas(r).reverse()){let t=e[i.index];if(n&&t>0||!n&&t<0)return i.index}return null}function vs(e,t){let{chart:n,_cachedMeta:r}=e,i=n._stacks||={},{iScale:a,vScale:o,index:s}=r,c=a.axis,l=o.axis,u=ms(a,o,r),d=t.length,f;for(let e=0;e<d;++e){let n=t[e],{[c]:a,[l]:d}=n,p=n._stacks||={};f=p[l]=gs(i,u,a),f[s]=d,f._top=_s(f,o,!0,r.type),f._bottom=_s(f,o,!1,r.type);let m=f._visualValues||={};m[s]=d}}function ys(e,t){let n=e.scales;return Object.keys(n).filter(e=>n[e].axis===t).shift()}function bs(e,t){return za(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:`default`,type:`dataset`})}function xs(e,t,n){return za(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:`default`,type:`data`})}function Ss(e,t){let n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t||=e._parsed;for(let e of t){let t=e._stacks;if(!t||t[r]===void 0||t[r][n]===void 0)return;delete t[r][n],t[r]._visualValues!==void 0&&t[r]._visualValues[n]!==void 0&&delete t[r]._visualValues[n]}}}var Cs=e=>e===`reset`||e===`none`,ws=(e,t)=>t?e:Object.assign({},e),Ts=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:us(n,!0),values:null},Es=class{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,t){this.chart=e,this._ctx=e.ctx,this.index=t,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){let e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=ps(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled(`filler`)&&console.warn(`Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options`)}updateIndex(e){this.index!==e&&Ss(this._cachedMeta),this.index=e}linkScales(){let e=this.chart,t=this._cachedMeta,n=this.getDataset(),r=(e,t,n,r)=>e===`x`?t:e===`r`?r:n,i=t.xAxisID=G(n.xAxisID,ys(e,`x`)),a=t.yAxisID=G(n.yAxisID,ys(e,`y`)),o=t.rAxisID=G(n.rAxisID,ys(e,`r`)),s=t.indexAxis,c=t.iAxisID=r(s,i,a,o),l=t.vAxisID=r(s,a,i,o);t.xScale=this.getScaleForId(i),t.yScale=this.getScaleForId(a),t.rScale=this.getScaleForId(o),t.iScale=this.getScaleForId(c),t.vScale=this.getScaleForId(l)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){let t=this._cachedMeta;return e===t.iScale?t.vScale:t.iScale}reset(){this._update(`reset`)}_destroy(){let e=this._cachedMeta;this._data&&Mi(this._data,this),e._stacked&&Ss(e)}_dataCheck(){let e=this.getDataset(),t=e.data||=[],n=this._data;if(W(t)){let e=this._cachedMeta;this._data=fs(t,e)}else if(n!==t){if(n){Mi(n,this);let e=this._cachedMeta;Ss(e),e._parsed=[]}t&&Object.isExtensible(t)&&ji(t,this),this._syncList=[],this._data=t}}addElements(){let e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){let t=this._cachedMeta,n=this.getDataset(),r=!1;this._dataCheck();let i=t._stacked;t._stacked=ps(t.vScale,t),t.stack!==n.stack&&(r=!0,Ss(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(vs(this,t._parsed),t._stacked=ps(t.vScale,t))}configure(){let e=this.chart.config,t=e.datasetScopeKeys(this._type),n=e.getOptionScopes(this.getDataset(),t,!0);this.options=e.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,t){let{_cachedMeta:n,_data:r}=this,{iScale:i,_stacked:a}=n,o=i.axis,s=e===0&&t===r.length?!0:n._sorted,c=e>0&&n._parsed[e-1],l,u,d;if(this._parsing===!1)n._parsed=r,n._sorted=!0,d=r;else{d=U(r[e])?this.parseArrayData(n,r,e,t):W(r[e])?this.parseObjectData(n,r,e,t):this.parsePrimitiveData(n,r,e,t);let i=()=>u[o]===null||c&&u[o]<c[o];for(l=0;l<t;++l)n._parsed[l+e]=u=d[l],s&&(i()&&(s=!1),c=u);n._sorted=s}a&&vs(this,d)}parsePrimitiveData(e,t,n,r){let{iScale:i,vScale:a}=e,o=i.axis,s=a.axis,c=i.getLabels(),l=i===a,u=Array(r),d,f,p;for(d=0,f=r;d<f;++d)p=d+n,u[d]={[o]:l||i.parse(c[p],p),[s]:a.parse(t[p],p)};return u}parseArrayData(e,t,n,r){let{xScale:i,yScale:a}=e,o=Array(r),s,c,l,u;for(s=0,c=r;s<c;++s)l=s+n,u=t[l],o[s]={x:i.parse(u[0],l),y:a.parse(u[1],l)};return o}parseObjectData(e,t,n,r){let{xScale:i,yScale:a}=e,{xAxisKey:o=`x`,yAxisKey:s=`y`}=this._parsing,c=Array(r),l,u,d,f;for(l=0,u=r;l<u;++l)d=l+n,f=t[d],c[l]={x:i.parse(qr(f,o),d),y:a.parse(qr(f,s),d)};return c}getParsed(e){return this._cachedMeta._parsed[e]}getDataElement(e){return this._cachedMeta.data[e]}applyStack(e,t,n){let r=this.chart,i=this._cachedMeta,a=t[e.axis];return ds({keys:us(r,!0),values:t._stacks[e.axis]._visualValues},a,i.index,{mode:n})}updateRangeFromParsed(e,t,n,r){let i=n[t.axis],a=i===null?NaN:i,o=r&&n._stacks[t.axis];r&&o&&(r.values=o,a=ds(r,i,this._cachedMeta.index)),e.min=Math.min(e.min,a),e.max=Math.max(e.max,a)}getMinMax(e,t){let n=this._cachedMeta,r=n._parsed,i=n._sorted&&e===n.iScale,a=r.length,o=this._getOtherScale(e),s=Ts(t,n,this.chart),c={min:1/0,max:-1/0},{min:l,max:u}=hs(o),d,f;function p(){f=r[d];let t=f[o.axis];return!Mr(f[e.axis])||l>t||u<t}for(d=0;d<a&&!(!p()&&(this.updateRangeFromParsed(c,e,f,s),i));++d);if(i){for(d=a-1;d>=0;--d)if(!p()){this.updateRangeFromParsed(c,e,f,s);break}}return c}getAllParsedValues(e){let t=this._cachedMeta._parsed,n=[],r,i,a;for(r=0,i=t.length;r<i;++r)a=t[r][e.axis],Mr(a)&&n.push(a);return n}getMaxOverflow(){return!1}getLabelAndValue(e){let t=this._cachedMeta,n=t.iScale,r=t.vScale,i=this.getParsed(e);return{label:n?``+n.getLabelForValue(i[n.axis]):``,value:r?``+r.getLabelForValue(i[r.axis]):``}}_update(e){let t=this._cachedMeta;this.update(e||`default`),t._clip=ls(G(this.options.clip,cs(t.xScale,t.yScale,this.getMaxOverflow())))}update(e){}draw(){let e=this._ctx,t=this.chart,n=this._cachedMeta,r=n.data||[],i=t.chartArea,a=[],o=this._drawStart||0,s=this._drawCount||r.length-o,c=this.options.drawActiveElementsOnTop,l;for(n.dataset&&n.dataset.draw(e,i,o,s),l=o;l<o+s;++l){let t=r[l];t.hidden||(t.active&&c?a.push(t):t.draw(e,i))}for(l=0;l<a.length;++l)a[l].draw(e,i)}getStyle(e,t){let n=t?`active`:`default`;return e===void 0&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(n):this.resolveDataElementOptions(e||0,n)}getContext(e,t,n){let r=this.getDataset(),i;if(e>=0&&e<this._cachedMeta.data.length){let t=this._cachedMeta.data[e];i=t.$context||=xs(this.getContext(),e,t),i.parsed=this.getParsed(e),i.raw=r.data[e],i.index=i.dataIndex=e}else i=this.$context||=bs(this.chart.getContext(),this.index),i.dataset=r,i.index=i.datasetIndex=this.index;return i.active=!!t,i.mode=n,i}resolveDatasetElementOptions(e){return this._resolveElementOptions(this.datasetElementType.id,e)}resolveDataElementOptions(e,t){return this._resolveElementOptions(this.dataElementType.id,t,e)}_resolveElementOptions(e,t=`default`,n){let r=t===`active`,i=this._cachedDataOpts,a=e+`-`+t,o=i[a],s=this.enableOptionSharing&&Yr(n);if(o)return ws(o,s);let c=this.chart.config,l=c.datasetElementScopeKeys(this._type,e),u=r?[`${e}Hover`,`hover`,e,``]:[e,``],d=c.getOptionScopes(this.getDataset(),l),f=Object.keys(ua.elements[e]),p=c.resolveNamedOptions(d,f,()=>this.getContext(n,r,t),u);return p.$shared&&(p.$shared=s,i[a]=Object.freeze(ws(p,s))),p}_resolveAnimations(e,t,n){let r=this.chart,i=this._cachedDataOpts,a=`animation-${t}`,o=i[a];if(o)return o;let s;if(r.options.animation!==!1){let r=this.chart.config,i=r.datasetAnimationScopeKeys(this._type,t),a=r.getOptionScopes(this.getDataset(),i);s=r.createResolver(a,this.getContext(e,n,t))}let c=new is(r,s&&s.animations);return s&&s._cacheable&&(i[a]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||=Object.assign({},e)}includeOptions(e,t){return!t||Cs(e)||this.chart._animationsDisabled}_getSharedOptions(e,t){let n=this.resolveDataElementOptions(e,t),r=this._sharedOptions,i=this.getSharedOptions(n),a=this.includeOptions(t,i)||i!==r;return this.updateSharedOptions(i,t,n),{sharedOptions:i,includeOptions:a}}updateElement(e,t,n,r){Cs(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!Cs(t)&&this._resolveAnimations(void 0,t).update(e,n)}_setStyle(e,t,n,r){e.active=r;let i=this.getStyle(t,r);this._resolveAnimations(t,n,r).update(e,{options:!r&&this.getSharedOptions(i)||i})}removeHoverStyle(e,t,n){this._setStyle(e,n,`active`,!1)}setHoverStyle(e,t,n){this._setStyle(e,n,`active`,!0)}_removeDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!1)}_setDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!0)}_resyncElements(e){let t=this._data,n=this._cachedMeta.data;for(let[e,t,n]of this._syncList)this[e](t,n);this._syncList=[];let r=n.length,i=t.length,a=Math.min(i,r);a&&this.parse(0,a),i>r?this._insertElements(r,i-r,e):i<r&&this._removeElements(i,r-i)}_insertElements(e,t,n=!0){let r=this._cachedMeta,i=r.data,a=e+t,o,s=e=>{for(e.length+=t,o=e.length-1;o>=a;o--)e[o]=e[o-t]};for(s(i),o=e;o<a;++o)i[o]=new this.dataElementType;this._parsing&&s(r._parsed),this.parse(e,t),n&&this.updateElements(i,e,t,`reset`)}updateElements(e,t,n,r){}_removeElements(e,t){let n=this._cachedMeta;if(this._parsing){let r=n._parsed.splice(e,t);n._stacked&&Ss(n,r)}n.data.splice(e,t)}_sync(e){if(this._parsing)this._syncList.push(e);else{let[t,n,r]=e;this[t](n,r)}this.chart._dataChanges.push([this.index,...e])}_onDataPush(){let e=arguments.length;this._sync([`_insertElements`,this.getDataset().data.length-e,e])}_onDataPop(){this._sync([`_removeElements`,this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync([`_removeElements`,0,1])}_onDataSplice(e,t){t&&this._sync([`_removeElements`,e,t]);let n=arguments.length-2;n&&this._sync([`_insertElements`,e,n])}_onDataUnshift(){this._sync([`_insertElements`,0,arguments.length])}};function Ds(e,t){if(!e._cache.$bar){let n=e.getMatchingVisibleMetas(t),r=[];for(let t=0,i=n.length;t<i;t++)r=r.concat(n[t].controller.getAllParsedValues(e));e._cache.$bar=Ni(r.sort((e,t)=>e-t))}return e._cache.$bar}function Os(e){let t=e.iScale,n=Ds(t,e.type),r=t._length,i,a,o,s,c=()=>{o===32767||o===-32768||(Yr(s)&&(r=Math.min(r,Math.abs(o-s)||r)),s=o)};for(i=0,a=n.length;i<a;++i)o=t.getPixelForValue(n[i]),c();for(s=void 0,i=0,a=t.ticks.length;i<a;++i)o=t.getPixelForTick(i),c();return r}function ks(e,t,n,r){let i=n.barThickness,a,o;return H(i)?(a=t.min*n.categoryPercentage,o=n.barPercentage):(a=i*r,o=1),{chunk:a/r,ratio:o,start:t.pixels[e]-a/2}}function As(e,t,n,r){let i=t.pixels,a=i[e],o=e>0?i[e-1]:null,s=e<i.length-1?i[e+1]:null,c=n.categoryPercentage;o===null&&(o=a-(s===null?t.end-t.start:s-a)),s===null&&(s=a+a-o);let l=a-(a-Math.min(o,s))/2*c;return{chunk:Math.abs(s-o)/2*c/r,ratio:n.barPercentage,start:l}}function js(e,t,n,r){let i=n.parse(e[0],r),a=n.parse(e[1],r),o=Math.min(i,a),s=Math.max(i,a),c=o,l=s;Math.abs(o)>Math.abs(s)&&(c=s,l=o),t[n.axis]=l,t._custom={barStart:c,barEnd:l,start:i,end:a,min:o,max:s}}function Ms(e,t,n,r){return U(e)?js(e,t,n,r):t[n.axis]=n.parse(e,r),t}function Ns(e,t,n,r){let i=e.iScale,a=e.vScale,o=i.getLabels(),s=i===a,c=[],l,u,d,f;for(l=n,u=n+r;l<u;++l)f=t[l],d={},d[i.axis]=s||i.parse(o[l],l),c.push(Ms(f,d,a,l));return c}function Ps(e){return e&&e.barStart!==void 0&&e.barEnd!==void 0}function Fs(e,t,n){return e===0?(t.isHorizontal()?1:-1)*(t.min>=n?1:-1):ci(e)}function Is(e){let t,n,r,i,a;return e.horizontal?(t=e.base>e.x,n=`left`,r=`right`):(t=e.base<e.y,n=`bottom`,r=`top`),t?(i=`end`,a=`start`):(i=`start`,a=`end`),{start:n,end:r,reverse:t,top:i,bottom:a}}function Ls(e,t,n,r){let i=t.borderSkipped,a={};if(!i){e.borderSkipped=a;return}if(i===!0){e.borderSkipped={top:!0,right:!0,bottom:!0,left:!0};return}let{start:o,end:s,reverse:c,top:l,bottom:u}=Is(e);i===`middle`&&n&&(e.enableBorderRadius=!0,(n._top||0)===r?i=l:(n._bottom||0)===r?i=u:(a[Rs(u,o,s,c)]=!0,i=l)),a[Rs(i,o,s,c)]=!0,e.borderSkipped=a}function Rs(e,t,n,r){return r?(e=zs(e,t,n),e=Bs(e,n,t)):e=Bs(e,t,n),e}function zs(e,t,n){return e===t?n:e===n?t:e}function Bs(e,t,n){return e===`start`?t:e===`end`?n:e}function Vs(e,{inflateAmount:t},n){e.inflateAmount=t===`auto`?n===1?.33:0:t}var Hs=class extends Es{static id=`bar`;static defaults={datasetElementType:!1,dataElementType:`bar`,categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:`number`,properties:[`x`,`y`,`base`,`width`,`height`]}}};static overrides={scales:{_index_:{type:`category`,offset:!0,grid:{offset:!0}},_value_:{type:`linear`,beginAtZero:!0}}};parsePrimitiveData(e,t,n,r){return Ns(e,t,n,r)}parseArrayData(e,t,n,r){return Ns(e,t,n,r)}parseObjectData(e,t,n,r){let{iScale:i,vScale:a}=e,{xAxisKey:o=`x`,yAxisKey:s=`y`}=this._parsing,c=i.axis===`x`?o:s,l=a.axis===`x`?o:s,u=[],d,f,p,m;for(d=n,f=n+r;d<f;++d)m=t[d],p={},p[i.axis]=i.parse(qr(m,c),d),u.push(Ms(qr(m,l),p,a,d));return u}updateRangeFromParsed(e,t,n,r){super.updateRangeFromParsed(e,t,n,r);let i=n._custom;i&&t===this._cachedMeta.vScale&&(e.min=Math.min(e.min,i.min),e.max=Math.max(e.max,i.max))}getMaxOverflow(){return 0}getLabelAndValue(e){let{iScale:t,vScale:n}=this._cachedMeta,r=this.getParsed(e),i=r._custom,a=Ps(i)?`[`+i.start+`, `+i.end+`]`:``+n.getLabelForValue(r[n.axis]);return{label:``+t.getLabelForValue(r[t.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();let e=this._cachedMeta;e.stack=this.getDataset().stack}update(e){let t=this._cachedMeta;this.updateElements(t.data,0,t.data.length,e)}updateElements(e,t,n,r){let i=r===`reset`,{index:a,_cachedMeta:{vScale:o}}=this,s=o.getBasePixel(),c=o.isHorizontal(),l=this._getRuler(),{sharedOptions:u,includeOptions:d}=this._getSharedOptions(t,r);for(let f=t;f<t+n;f++){let t=this.getParsed(f),n=i||H(t[o.axis])?{base:s,head:s}:this._calculateBarValuePixels(f),p=this._calculateBarIndexPixels(f,l),m=(t._stacks||{})[o.axis],h={horizontal:c,base:n.base,enableBorderRadius:!m||Ps(t._custom)||a===m._top||a===m._bottom,x:c?n.head:p.center,y:c?p.center:n.head,height:c?p.size:Math.abs(n.size),width:c?Math.abs(n.size):p.size};d&&(h.options=u||this.resolveDataElementOptions(f,e[f].active?`active`:r));let g=h.options||e[f].options;Ls(h,g,m,a),Vs(h,g,l.ratio),this.updateElement(e[f],f,h,r)}}_getStacks(e,t){let{iScale:n}=this._cachedMeta,r=n.getMatchingVisibleMetas(this._type).filter(e=>e.controller.options.grouped),i=n.options.stacked,a=[],o=this._cachedMeta.controller.getParsed(t),s=o&&o[n.axis],c=e=>{let t=e._parsed.find(e=>e[n.axis]===s),r=t&&t[e.vScale.axis];if(H(r)||isNaN(r))return!0};for(let n of r)if(!(t!==void 0&&c(n))&&((i===!1||a.indexOf(n.stack)===-1||i===void 0&&n.stack===void 0)&&a.push(n.stack),n.index===e))break;return a.length||a.push(void 0),a}_getStackCount(e){return this._getStacks(void 0,e).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){let e=this.chart.scales,t=this.chart.options.indexAxis;return Object.keys(e).filter(n=>e[n].axis===t).shift()}_getAxis(){let e={},t=this.getFirstScaleIdForIndexAxis();for(let n of this.chart.data.datasets)e[G(this.chart.options.indexAxis===`x`?n.xAxisID:n.yAxisID,t)]=!0;return Object.keys(e)}_getStackIndex(e,t,n){let r=this._getStacks(e,n),i=t===void 0?-1:r.indexOf(t);return i===-1?r.length-1:i}_getRuler(){let e=this.options,t=this._cachedMeta,n=t.iScale,r=[],i,a;for(i=0,a=t.data.length;i<a;++i)r.push(n.getPixelForValue(this.getParsed(i)[n.axis],i));let o=e.barThickness;return{min:o||Os(t),pixels:r,start:n._startPixel,end:n._endPixel,stackCount:this._getStackCount(),scale:n,grouped:e.grouped,ratio:o?1:e.categoryPercentage*e.barPercentage}}_calculateBarValuePixels(e){let{_cachedMeta:{vScale:t,_stacked:n,index:r},options:{base:i,minBarLength:a}}=this,o=i||0,s=this.getParsed(e),c=s._custom,l=Ps(c),u=s[t.axis],d=0,f=n?this.applyStack(t,s,n):u,p,m;f!==u&&(d=f-u,f=u),l&&(u=c.barStart,f=c.barEnd-c.barStart,u!==0&&ci(u)!==ci(c.barEnd)&&(d=0),d+=u);let h=!H(i)&&!l?i:d,g=t.getPixelForValue(h);if(p=this.chart.getDataVisibility(e)?t.getPixelForValue(d+f):g,m=p-g,Math.abs(m)<a){m=Fs(m,t,o)*a,u===o&&(g-=m/2);let e=t.getPixelForDecimal(0),i=t.getPixelForDecimal(1);g=Math.max(Math.min(g,Math.max(e,i)),Math.min(e,i)),p=g+m,n&&!l&&(s._stacks[t.axis]._visualValues[r]=t.getValueForPixel(p)-t.getValueForPixel(g))}if(g===t.getPixelForValue(o)){let e=ci(m)*t.getLineWidthForValue(o)/2;g+=e,m-=e}return{size:m,base:g,head:p,center:p+m/2}}_calculateBarIndexPixels(e,t){let n=t.scale,r=this.options,i=r.skipNull,a=G(r.maxBarThickness,1/0),o,s,c=this._getAxisCount();if(t.grouped){let n=i?this._getStackCount(e):t.stackCount,l=r.barThickness===`flex`?As(e,t,r,n*c):ks(e,t,r,n*c),u=this.chart.options.indexAxis===`x`?this.getDataset().xAxisID:this.getDataset().yAxisID,d=this._getAxis().indexOf(G(u,this.getFirstScaleIdForIndexAxis())),f=this._getStackIndex(this.index,this._cachedMeta.stack,i?e:void 0)+d;o=l.start+l.chunk*f+l.chunk/2,s=Math.min(a,l.chunk*l.ratio)}else o=n.getPixelForValue(this.getParsed(e)[n.axis],e),s=Math.min(a,t.min*t.ratio);return{base:o-s/2,head:o+s/2,center:o,size:s}}draw(){let e=this._cachedMeta,t=e.vScale,n=e.data,r=n.length,i=0;for(;i<r;++i)this.getParsed(i)[t.axis]!==null&&!n[i].hidden&&n[i].draw(this._ctx)}},Us=class extends Es{static id=`line`;static defaults={datasetElementType:`line`,dataElementType:`point`,showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:`category`},_value_:{type:`linear`}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){let t=this._cachedMeta,{dataset:n,data:r=[],_dataset:i}=t,a=this.chart._animationsDisabled,{start:o,count:s}=Bi(t,r,a);this._drawStart=o,this._drawCount=s,Vi(t)&&(o=0,s=r.length),n._chart=this.chart,n._datasetIndex=this.index,n._decimated=!!i._decimated,n.points=r;let c=this.resolveDatasetElementOptions(e);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(n,void 0,{animated:!a,options:c},e),this.updateElements(r,o,s,e)}updateElements(e,t,n,r){let i=r===`reset`,{iScale:a,vScale:o,_stacked:s,_dataset:c}=this._cachedMeta,{sharedOptions:l,includeOptions:u}=this._getSharedOptions(t,r),d=a.axis,f=o.axis,{spanGaps:p,segment:m}=this.options,h=pi(p)?p:1/0,g=this.chart._animationsDisabled||i||r===`none`,_=t+n,v=e.length,y=t>0&&this.getParsed(t-1);for(let n=0;n<v;++n){let p=e[n],v=g?p:{};if(n<t||n>=_){v.skip=!0;continue}let b=this.getParsed(n),x=H(b[f]),S=v[d]=a.getPixelForValue(b[d],n),C=v[f]=i||x?o.getBasePixel():o.getPixelForValue(s?this.applyStack(o,b,s):b[f],n);v.skip=isNaN(S)||isNaN(C)||x,v.stop=n>0&&Math.abs(b[d]-y[d])>h,m&&(v.parsed=b,v.raw=c.data[n]),u&&(v.options=l||this.resolveDataElementOptions(n,p.active?`active`:r)),g||this.updateElement(p,n,v,r),y=b}}getMaxOverflow(){let e=this._cachedMeta,t=e.dataset,n=t.options&&t.options.borderWidth||0,r=e.data||[];if(!r.length)return n;let i=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(n,i,a)/2}draw(){let e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}};function Ws(){throw Error(`This method is not implemented: Check that a complete date adapter is provided.`)}var Gs={_date:class e{static override(t){Object.assign(e.prototype,t)}options;constructor(e){this.options=e||{}}init(){}formats(){return Ws()}parse(){return Ws()}format(){return Ws()}add(){return Ws()}diff(){return Ws()}startOf(){return Ws()}endOf(){return Ws()}}};function Ks(e,t,n,r){let{controller:i,data:a,_sorted:o}=e,s=i._cachedMeta.iScale,c=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(s&&t===s.axis&&t!==`r`&&o&&a.length){let o=s._reversePixels?Oi:K;if(!r){let r=o(a,t,n);if(c){let{vScale:t}=i._cachedMeta,{_parsed:n}=e,a=n.slice(0,r.lo+1).reverse().findIndex(e=>!H(e[t.axis]));r.lo-=Math.max(0,a);let o=n.slice(r.hi).findIndex(e=>!H(e[t.axis]));r.hi+=Math.max(0,o)}return r}else if(i._sharedOptions){let e=a[0],r=typeof e.getRange==`function`&&e.getRange(t);if(r){let e=o(a,t,n-r),i=o(a,t,n+r);return{lo:e.lo,hi:i.hi}}}}return{lo:0,hi:a.length-1}}function qs(e,t,n,r,i){let a=e.getSortedVisibleDatasetMetas(),o=n[t];for(let e=0,n=a.length;e<n;++e){let{index:n,data:s}=a[e],{lo:c,hi:l}=Ks(a[e],t,o,i);for(let e=c;e<=l;++e){let t=s[e];t.skip||r(t,n,e)}}}function Js(e){let t=e.indexOf(`x`)!==-1,n=e.indexOf(`y`)!==-1;return function(e,r){let i=t?Math.abs(e.x-r.x):0,a=n?Math.abs(e.y-r.y):0;return Math.sqrt(i**2+a**2)}}function Ys(e,t,n,r,i){let a=[];return!i&&!e.isPointInArea(t)||qs(e,n,t,function(n,o,s){!i&&!va(n,e.chartArea,0)||n.inRange(t.x,t.y,r)&&a.push({element:n,datasetIndex:o,index:s})},!0),a}function Xs(e,t,n,r){let i=[];function a(e,n,a){let{startAngle:o,endAngle:s}=e.getProps([`startAngle`,`endAngle`],r),{angle:c}=yi(e,{x:t.x,y:t.y});Ci(c,o,s)&&i.push({element:e,datasetIndex:n,index:a})}return qs(e,n,t,a),i}function Zs(e,t,n,r,i,a){let o=[],s=Js(n),c=1/0;function l(n,l,u){let d=n.inRange(t.x,t.y,i);if(r&&!d)return;let f=n.getCenterPoint(i);if(!(a||e.isPointInArea(f))&&!d)return;let p=s(t,f);p<c?(o=[{element:n,datasetIndex:l,index:u}],c=p):p===c&&o.push({element:n,datasetIndex:l,index:u})}return qs(e,n,t,l),o}function Qs(e,t,n,r,i,a){return!a&&!e.isPointInArea(t)?[]:n===`r`&&!r?Xs(e,t,n,i):Zs(e,t,n,r,i,a)}function $s(e,t,n,r,i){let a=[],o=n===`x`?`inXRange`:`inYRange`,s=!1;return qs(e,n,t,(e,r,c)=>{e[o]&&e[o](t[n],i)&&(a.push({element:e,datasetIndex:r,index:c}),s||=e.inRange(t.x,t.y,i))}),r&&!s?[]:a}var ec={evaluateInteractionItems:qs,modes:{index(e,t,n,r){let i=wo(t,e),a=n.axis||`x`,o=n.includeInvisible||!1,s=n.intersect?Ys(e,i,a,r,o):Qs(e,i,a,!1,r,o),c=[];return s.length?(e.getSortedVisibleDatasetMetas().forEach(e=>{let t=s[0].index,n=e.data[t];n&&!n.skip&&c.push({element:n,datasetIndex:e.index,index:t})}),c):[]},dataset(e,t,n,r){let i=wo(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1,s=n.intersect?Ys(e,i,a,r,o):Qs(e,i,a,!1,r,o);if(s.length>0){let t=s[0].datasetIndex,n=e.getDatasetMeta(t).data;s=[];for(let e=0;e<n.length;++e)s.push({element:n[e],datasetIndex:t,index:e})}return s},point(e,t,n,r){return Ys(e,wo(t,e),n.axis||`xy`,r,n.includeInvisible||!1)},nearest(e,t,n,r){let i=wo(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1;return Qs(e,i,a,n.intersect,r,o)},x(e,t,n,r){return $s(e,wo(t,e),`x`,n.intersect,r)},y(e,t,n,r){return $s(e,wo(t,e),`y`,n.intersect,r)}}},tc=[`left`,`top`,`right`,`bottom`];function nc(e,t){return e.filter(e=>e.pos===t)}function rc(e,t){return e.filter(e=>tc.indexOf(e.pos)===-1&&e.box.axis===t)}function ic(e,t){return e.sort((e,n)=>{let r=t?n:e,i=t?e:n;return r.weight===i.weight?r.index-i.index:r.weight-i.weight})}function ac(e){let t=[],n,r,i,a,o,s;for(n=0,r=(e||[]).length;n<r;++n)i=e[n],{position:a,options:{stack:o,stackWeight:s=1}}=i,t.push({index:n,box:i,pos:a,horizontal:i.isHorizontal(),weight:i.weight,stack:o&&a+o,stackWeight:s});return t}function oc(e){let t={};for(let n of e){let{stack:e,pos:r,stackWeight:i}=n;if(!e||!tc.includes(r))continue;let a=t[e]||(t[e]={count:0,placed:0,weight:0,size:0});a.count++,a.weight+=i}return t}function sc(e,t){let n=oc(e),{vBoxMaxWidth:r,hBoxMaxHeight:i}=t,a,o,s;for(a=0,o=e.length;a<o;++a){s=e[a];let{fullSize:o}=s.box,c=n[s.stack],l=c&&s.stackWeight/c.weight;s.horizontal?(s.width=l?l*r:o&&t.availableWidth,s.height=i):(s.width=r,s.height=l?l*i:o&&t.availableHeight)}return n}function cc(e){let t=ac(e),n=ic(t.filter(e=>e.box.fullSize),!0),r=ic(nc(t,`left`),!0),i=ic(nc(t,`right`)),a=ic(nc(t,`top`),!0),o=ic(nc(t,`bottom`)),s=rc(t,`x`),c=rc(t,`y`);return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(c).concat(o).concat(s),chartArea:nc(t,`chartArea`),vertical:r.concat(i).concat(c),horizontal:a.concat(o).concat(s)}}function lc(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function uc(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function dc(e,t,n,r){let{pos:i,box:a}=n,o=e.maxPadding;if(!W(i)){n.size&&(e[i]-=n.size);let t=r[n.stack]||{size:0,count:1};t.size=Math.max(t.size,n.horizontal?a.height:a.width),n.size=t.size/t.count,e[i]+=n.size}a.getPadding&&uc(o,a.getPadding());let s=Math.max(0,t.outerWidth-lc(o,e,`left`,`right`)),c=Math.max(0,t.outerHeight-lc(o,e,`top`,`bottom`)),l=s!==e.w,u=c!==e.h;return e.w=s,e.h=c,n.horizontal?{same:l,other:u}:{same:u,other:l}}function fc(e){let t=e.maxPadding;function n(n){let r=Math.max(t[n]-e[n],0);return e[n]+=r,r}e.y+=n(`top`),e.x+=n(`left`),n(`right`),n(`bottom`)}function pc(e,t){let n=t.maxPadding;function r(e){let r={left:0,top:0,right:0,bottom:0};return e.forEach(e=>{r[e]=Math.max(t[e],n[e])}),r}return r(e?[`left`,`right`]:[`top`,`bottom`])}function mc(e,t,n,r){let i=[],a,o,s,c,l,u;for(a=0,o=e.length,l=0;a<o;++a){s=e[a],c=s.box,c.update(s.width||t.w,s.height||t.h,pc(s.horizontal,t));let{same:o,other:d}=dc(t,n,s,r);l|=o&&i.length,u||=d,c.fullSize||i.push(s)}return l&&mc(i,t,n,r)||u}function hc(e,t,n,r,i){e.top=n,e.left=t,e.right=t+r,e.bottom=n+i,e.width=r,e.height=i}function gc(e,t,n,r){let i=n.padding,{x:a,y:o}=t;for(let s of e){let e=s.box,c=r[s.stack]||{count:1,placed:0,weight:1},l=s.stackWeight/c.weight||1;if(s.horizontal){let r=t.w*l,a=c.size||e.height;Yr(c.start)&&(o=c.start),e.fullSize?hc(e,i.left,o,n.outerWidth-i.right-i.left,a):hc(e,t.left+c.placed,o,r,a),c.start=o,c.placed+=r,o=e.bottom}else{let r=t.h*l,o=c.size||e.width;Yr(c.start)&&(a=c.start),e.fullSize?hc(e,a,i.top,o,n.outerHeight-i.bottom-i.top):hc(e,a,t.top+c.placed,o,r),c.start=a,c.placed+=r,a=e.right}}t.x=a,t.y=o}var _c={addBox(e,t){e.boxes||=[],t.fullSize=t.fullSize||!1,t.position=t.position||`top`,t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw(e){t.draw(e)}}]},e.boxes.push(t)},removeBox(e,t){let n=e.boxes?e.boxes.indexOf(t):-1;n!==-1&&e.boxes.splice(n,1)},configure(e,t,n){t.fullSize=n.fullSize,t.position=n.position,t.weight=n.weight},update(e,t,n,r){if(!e)return;let i=Fa(e.options.layout.padding),a=Math.max(t-i.width,0),o=Math.max(n-i.height,0),s=cc(e.boxes),c=s.vertical,l=s.horizontal;Ir(e.boxes,e=>{typeof e.beforeLayout==`function`&&e.beforeLayout()});let u=c.reduce((e,t)=>t.box.options&&t.box.options.display===!1?e:e+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:n,padding:i,availableWidth:a,availableHeight:o,vBoxMaxWidth:a/2/u,hBoxMaxHeight:o/2}),f=Object.assign({},i);uc(f,Fa(r));let p=Object.assign({maxPadding:f,w:a,h:o,x:i.left,y:i.top},i),m=sc(c.concat(l),d);mc(s.fullSize,p,d,m),mc(c,p,d,m),mc(l,p,d,m)&&mc(c,p,d,m),fc(p),gc(s.leftAndTop,p,d,m),p.x+=p.w,p.y+=p.h,gc(s.rightAndBottom,p,d,m),e.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},Ir(s.chartArea,t=>{let n=t.box;Object.assign(n,e.chartArea),n.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}},vc=class{acquireContext(e,t){}releaseContext(e){return!1}addEventListener(e,t,n){}removeEventListener(e,t,n){}getDevicePixelRatio(){return 1}getMaximumSize(e,t,n,r){return t=Math.max(0,t||e.width),n||=e.height,{width:t,height:Math.max(0,r?Math.floor(t/r):n)}}isAttached(e){return!0}updateConfig(e){}},yc=class extends vc{acquireContext(e){return e&&e.getContext&&e.getContext(`2d`)||null}updateConfig(e){e.options.animation=!1}},bc=`$chartjs`,xc={touchstart:`mousedown`,touchmove:`mousemove`,touchend:`mouseup`,pointerenter:`mouseenter`,pointerdown:`mousedown`,pointermove:`mousemove`,pointerup:`mouseup`,pointerleave:`mouseout`,pointerout:`mouseout`},Sc=e=>e===null||e===``;function Cc(e,t){let n=e.style,r=e.getAttribute(`height`),i=e.getAttribute(`width`);if(e[bc]={initial:{height:r,width:i,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||`block`,n.boxSizing=n.boxSizing||`border-box`,Sc(i)){let t=Ao(e,`width`);t!==void 0&&(e.width=t)}if(Sc(r))if(e.style.height===``)e.height=e.width/(t||2);else{let t=Ao(e,`height`);t!==void 0&&(e.height=t)}return e}var wc=ko?{passive:!0}:!1;function Tc(e,t,n){e&&e.addEventListener(t,n,wc)}function Ec(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,wc)}function Dc(e,t){let n=xc[e.type]||e.type,{x:r,y:i}=wo(e,t);return{type:n,chart:t,native:e,x:r===void 0?null:r,y:i===void 0?null:i}}function Oc(e,t){for(let n of e)if(n===t||n.contains(t))return!0}function kc(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=Oc(n.addedNodes,r),t&&=!Oc(n.removedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}function Ac(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=Oc(n.removedNodes,r),t&&=!Oc(n.addedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}var jc=new Map,Mc=0;function Nc(){let e=window.devicePixelRatio;e!==Mc&&(Mc=e,jc.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function Pc(e,t){jc.size||window.addEventListener(`resize`,Nc),jc.set(e,t)}function Fc(e){jc.delete(e),jc.size||window.removeEventListener(`resize`,Nc)}function Ic(e,t,n){let r=e.canvas,i=r&&go(r);if(!i)return;let a=Fi((e,t)=>{let r=i.clientWidth;n(e,t),r<i.clientWidth&&n()},window),o=new ResizeObserver(e=>{let t=e[0],n=t.contentRect.width,r=t.contentRect.height;n===0&&r===0||a(n,r)});return o.observe(i),Pc(e,a),o}function Lc(e,t,n){n&&n.disconnect(),t===`resize`&&Fc(e)}function Rc(e,t,n){let r=e.canvas,i=Fi(t=>{e.ctx!==null&&n(Dc(t,e))},e);return Tc(r,t,i),i}var zc=class extends vc{acquireContext(e,t){let n=e&&e.getContext&&e.getContext(`2d`);return n&&n.canvas===e?(Cc(e,t),n):null}releaseContext(e){let t=e.canvas;if(!t[bc])return!1;let n=t[bc].initial;[`height`,`width`].forEach(e=>{let r=n[e];H(r)?t.removeAttribute(e):t.setAttribute(e,r)});let r=n.style||{};return Object.keys(r).forEach(e=>{t.style[e]=r[e]}),t.width=t.width,delete t[bc],!0}addEventListener(e,t,n){this.removeEventListener(e,t);let r=e.$proxies||={};r[t]=({attach:kc,detach:Ac,resize:Ic}[t]||Rc)(e,t,n)}removeEventListener(e,t){let n=e.$proxies||={},r=n[t];r&&(({attach:Lc,detach:Lc,resize:Lc}[t]||Ec)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return Do(e,t,n,r)}isAttached(e){let t=e&&go(e);return!!(t&&t.isConnected)}};function Bc(e){return!ho()||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas?yc:zc}var Vc=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(e){let{x:t,y:n}=this.getProps([`x`,`y`],e);return{x:t,y:n}}hasValue(){return pi(this.x)&&pi(this.y)}getProps(e,t){let n=this.$animations;if(!t||!n)return this;let r={};return e.forEach(e=>{r[e]=n[e]&&n[e].active()?n[e]._to:this[e]}),r}};function Hc(e,t){let n=e.options.ticks,r=Uc(e),i=Math.min(n.maxTicksLimit||r,r),a=n.major.enabled?Gc(t):[],o=a.length,s=a[0],c=a[o-1],l=[];if(o>i)return Kc(t,l,a,o/i),l;let u=Wc(a,t,i);if(o>0){let e,n,r=o>1?Math.round((c-s)/(o-1)):null;for(qc(t,l,u,H(r)?0:s-r,s),e=0,n=o-1;e<n;e++)qc(t,l,u,a[e],a[e+1]);return qc(t,l,u,c,H(r)?t.length:c+r),l}return qc(t,l,u),l}function Uc(e){let t=e.options.offset,n=e._tickSize(),r=e._length/n+ +!t,i=e._maxLength/n;return Math.floor(Math.min(r,i))}function Wc(e,t,n){let r=Jc(e),i=t.length/n;if(!r)return Math.max(i,1);let a=di(r);for(let e=0,t=a.length-1;e<t;e++){let t=a[e];if(t>i)return t}return Math.max(i,1)}function Gc(e){let t=[],n,r;for(n=0,r=e.length;n<r;n++)e[n].major&&t.push(n);return t}function Kc(e,t,n,r){let i=0,a=n[0],o;for(r=Math.ceil(r),o=0;o<e.length;o++)o===a&&(t.push(e[o]),i++,a=n[i*r])}function qc(e,t,n,r,i){let a=G(r,0),o=Math.min(G(i,e.length),e.length),s=0,c,l,u;for(n=Math.ceil(n),i&&(c=i-r,n=c/Math.floor(c/n)),u=a;u<0;)s++,u=Math.round(a+s*n);for(l=Math.max(a,0);l<o;l++)l===u&&(t.push(e[l]),s++,u=Math.round(a+s*n))}function Jc(e){let t=e.length,n,r;if(t<2)return!1;for(r=e[0],n=1;n<t;++n)if(e[n]-e[n-1]!==r)return!1;return r}var Yc=e=>e===`left`?`right`:e===`right`?`left`:e,Xc=(e,t,n)=>t===`top`||t===`left`?e[t]+n:e[t]-n,Zc=(e,t)=>Math.min(t||e,e);function Qc(e,t){let n=[],r=e.length/t,i=e.length,a=0;for(;a<i;a+=r)n.push(e[Math.floor(a)]);return n}function $c(e,t,n){let r=e.ticks.length,i=Math.min(t,r-1),a=e._startPixel,o=e._endPixel,s=1e-6,c=e.getPixelForTick(i),l;if(!(n&&(l=r===1?Math.max(c-a,o-c):t===0?(e.getPixelForTick(1)-c)/2:(c-e.getPixelForTick(i-1))/2,c+=i<t?l:-l,c<a-s||c>o+s)))return c}function el(e,t){Ir(e,e=>{let n=e.gc,r=n.length/2,i;if(r>t){for(i=0;i<r;++i)delete e.data[n[i]];n.splice(0,r)}})}function tl(e){return e.drawTicks?e.tickLength:0}function nl(e,t){if(!e.display)return 0;let n=Ia(e.font,t),r=Fa(e.padding);return(U(e.text)?e.text.length:1)*n.lineHeight+r.height}function rl(e,t){return za(e,{scale:t,type:`scale`})}function il(e,t,n){return za(e,{tick:n,index:t,type:`tick`})}function al(e,t,n){let r=Li(e);return(n&&t!==`right`||!n&&t===`right`)&&(r=Yc(r)),r}function ol(e,t,n,r){let{top:i,left:a,bottom:o,right:s,chart:c}=e,{chartArea:l,scales:u}=c,d=0,f,p,m,h=o-i,g=s-a;if(e.isHorizontal()){if(p=Ri(r,a,s),W(n)){let e=Object.keys(n)[0],r=n[e];m=u[e].getPixelForValue(r)+h-t}else m=n===`center`?(l.bottom+l.top)/2+h-t:Xc(e,n,t);f=s-a}else{if(W(n)){let e=Object.keys(n)[0],r=n[e];p=u[e].getPixelForValue(r)-g+t}else p=n===`center`?(l.left+l.right)/2-g+t:Xc(e,n,t);m=Ri(r,o,i),d=n===`left`?-ii:ii}return{titleX:p,titleY:m,maxWidth:f,rotation:d}}var sl=class e extends Vc{constructor(e){super(),this.id=e.id,this.type=e.type,this.options=void 0,this.ctx=e.ctx,this.chart=e.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(e){this.options=e.setContext(this.getContext()),this.axis=e.axis,this._userMin=this.parse(e.min),this._userMax=this.parse(e.max),this._suggestedMin=this.parse(e.suggestedMin),this._suggestedMax=this.parse(e.suggestedMax)}parse(e,t){return e}getUserBounds(){let{_userMin:e,_userMax:t,_suggestedMin:n,_suggestedMax:r}=this;return e=Nr(e,1/0),t=Nr(t,-1/0),n=Nr(n,1/0),r=Nr(r,-1/0),{min:Nr(e,n),max:Nr(t,r),minDefined:Mr(e),maxDefined:Mr(t)}}getMinMax(e){let{min:t,max:n,minDefined:r,maxDefined:i}=this.getUserBounds(),a;if(r&&i)return{min:t,max:n};let o=this.getMatchingVisibleMetas();for(let s=0,c=o.length;s<c;++s)a=o[s].controller.getMinMax(this,e),r||(t=Math.min(t,a.min)),i||(n=Math.max(n,a.max));return t=i&&t>n?n:t,n=r&&t>n?t:n,{min:Nr(t,Nr(n,t)),max:Nr(n,Nr(t,n))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||=this._computeLabelItems(e)}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Fr(this.options.beforeUpdate,[this])}update(e,t,n){let{beginAtZero:r,grace:i,ticks:a}=this.options,o=a.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=t,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||=(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Ra(this,i,r),!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let s=o<this.ticks.length;this._convertTicksToLabels(s?Qc(this.ticks,o):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),a.display&&(a.autoSkip||a.source===`auto`)&&(this.ticks=Hc(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),s&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let e=this.options.reverse,t,n;this.isHorizontal()?(t=this.left,n=this.right):(t=this.top,n=this.bottom,e=!e),this._startPixel=t,this._endPixel=n,this._reversePixels=e,this._length=n-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){Fr(this.options.afterUpdate,[this])}beforeSetDimensions(){Fr(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){Fr(this.options.afterSetDimensions,[this])}_callHooks(e){this.chart.notifyPlugins(e,this.getContext()),Fr(this.options[e],[this])}beforeDataLimits(){this._callHooks(`beforeDataLimits`)}determineDataLimits(){}afterDataLimits(){this._callHooks(`afterDataLimits`)}beforeBuildTicks(){this._callHooks(`beforeBuildTicks`)}buildTicks(){return[]}afterBuildTicks(){this._callHooks(`afterBuildTicks`)}beforeTickToLabelConversion(){Fr(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(e){let t=this.options.ticks,n,r,i;for(n=0,r=e.length;n<r;n++)i=e[n],i.label=Fr(t.callback,[i.value,n,e],this)}afterTickToLabelConversion(){Fr(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){Fr(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){let e=this.options,t=e.ticks,n=Zc(this.ticks.length,e.ticks.maxTicksLimit),r=t.minRotation||0,i=t.maxRotation,a=r,o,s,c;if(!this._isVisible()||!t.display||r>=i||n<=1||!this.isHorizontal()){this.labelRotation=r;return}let l=this._getLabelSizes(),u=l.widest.width,d=l.highest.height,f=wi(this.chart.width-u,0,this.maxWidth);o=e.offset?this.maxWidth/n:f/(n-1),u+6>o&&(o=f/(n-(e.offset?.5:1)),s=this.maxHeight-tl(e.grid)-t.padding-nl(e.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),a=_i(Math.min(Math.asin(wi((l.highest.height+6)/o,-1,1)),Math.asin(wi(s/c,-1,1))-Math.asin(wi(d/c,-1,1)))),a=Math.max(r,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){Fr(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Fr(this.options.beforeFit,[this])}fit(){let e={width:0,height:0},{chart:t,options:{ticks:n,title:r,grid:i}}=this,a=this._isVisible(),o=this.isHorizontal();if(a){let a=nl(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=tl(i)+a):(e.height=this.maxHeight,e.width=tl(i)+a),n.display&&this.ticks.length){let{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=n.padding*2,c=gi(this.labelRotation),l=Math.cos(c),u=Math.sin(c);if(o){let t=n.mirror?0:u*i.width+l*a.height;e.height=Math.min(this.maxHeight,e.height+t+s)}else{let t=n.mirror?0:l*i.width+u*a.height;e.width=Math.min(this.maxWidth,e.width+t+s)}this._calculatePadding(t,r,u,l)}}this._handleMargins(),o?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,t,n,r){let{ticks:{align:i,padding:a},position:o}=this.options,s=this.labelRotation!==0,c=o!==`top`&&this.axis===`x`;if(this.isHorizontal()){let o=this.getPixelForTick(0)-this.left,l=this.right-this.getPixelForTick(this.ticks.length-1),u=0,d=0;s?c?(u=r*e.width,d=n*t.height):(u=n*e.height,d=r*t.width):i===`start`?d=t.width:i===`end`?u=e.width:i!==`inner`&&(u=e.width/2,d=t.width/2),this.paddingLeft=Math.max((u-o+a)*this.width/(this.width-o),0),this.paddingRight=Math.max((d-l+a)*this.width/(this.width-l),0)}else{let n=t.height/2,r=e.height/2;i===`start`?(n=0,r=e.height):i===`end`&&(n=t.height,r=0),this.paddingTop=n+a,this.paddingBottom=r+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Fr(this.options.afterFit,[this])}isHorizontal(){let{axis:e,position:t}=this.options;return t===`top`||t===`bottom`||e===`x`}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let t,n;for(t=0,n=e.length;t<n;t++)H(e[t].label)&&(e.splice(t,1),n--,t--);this.afterTickToLabelConversion()}_getLabelSizes(){let e=this._labelSizes;if(!e){let t=this.options.ticks.sampleSize,n=this.ticks;t<n.length&&(n=Qc(n,t)),this._labelSizes=e=this._computeLabelSizes(n,n.length,this.options.ticks.maxTicksLimit)}return e}_computeLabelSizes(e,t,n){let{ctx:r,_longestTextCache:i}=this,a=[],o=[],s=Math.floor(t/Zc(t,n)),c=0,l=0,u,d,f,p,m,h,g,_,v,y,b;for(u=0;u<t;u+=s){if(p=e[u].label,m=this._resolveTickFontOptions(u),r.font=h=m.string,g=i[h]=i[h]||{data:{},gc:[]},_=m.lineHeight,v=y=0,!H(p)&&!U(p))v=fa(r,g.data,g.gc,v,p),y=_;else if(U(p))for(d=0,f=p.length;d<f;++d)b=p[d],!H(b)&&!U(b)&&(v=fa(r,g.data,g.gc,v,b),y+=_);a.push(v),o.push(y),c=Math.max(v,c),l=Math.max(y,l)}el(i,t);let x=a.indexOf(c),S=o.indexOf(l),C=e=>({width:a[e]||0,height:o[e]||0});return{first:C(0),last:C(t-1),widest:C(x),highest:C(S),widths:a,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,t){return NaN}getValueForPixel(e){}getPixelForTick(e){let t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);let t=this._startPixel+e*this._length;return Ti(this._alignToPixels?ma(this.chart,t,0):t)}getDecimalForPixel(e){let t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:e,max:t}=this;return e<0&&t<0?t:e>0&&t>0?e:0}getContext(e){let t=this.ticks||[];if(e>=0&&e<t.length){let n=t[e];return n.$context||=il(this.getContext(),e,n)}return this.$context||=rl(this.chart.getContext(),this)}_tickSize(){let e=this.options.ticks,t=gi(this.labelRotation),n=Math.abs(Math.cos(t)),r=Math.abs(Math.sin(t)),i=this._getLabelSizes(),a=e.autoSkipPadding||0,o=i?i.widest.width+a:0,s=i?i.highest.height+a:0;return this.isHorizontal()?s*n>o*r?o/n:s/r:s*r<o*n?s/n:o/r}_isVisible(){let e=this.options.display;return e===`auto`?this.getMatchingVisibleMetas().length>0:!!e}_computeGridLineItems(e){let t=this.axis,n=this.chart,r=this.options,{grid:i,position:a,border:o}=r,s=i.offset,c=this.isHorizontal(),l=this.ticks.length+ +!!s,u=tl(i),d=[],f=o.setContext(this.getContext()),p=f.display?f.width:0,m=p/2,h=function(e){return ma(n,e,p)},g,_,v,y,b,x,S,C,w,T,E,D;if(a===`top`)g=h(this.bottom),x=this.bottom-u,C=g-m,T=h(e.top)+m,D=e.bottom;else if(a===`bottom`)g=h(this.top),T=e.top,D=h(e.bottom)-m,x=g+m,C=this.top+u;else if(a===`left`)g=h(this.right),b=this.right-u,S=g-m,w=h(e.left)+m,E=e.right;else if(a===`right`)g=h(this.left),w=e.left,E=h(e.right)-m,b=g+m,S=this.left+u;else if(t===`x`){if(a===`center`)g=h((e.top+e.bottom)/2+.5);else if(W(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}T=e.top,D=e.bottom,x=g+m,C=x+u}else if(t===`y`){if(a===`center`)g=h((e.left+e.right)/2);else if(W(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}b=g-m,S=b-u,w=e.left,E=e.right}let O=G(r.ticks.maxTicksLimit,l),ee=Math.max(1,Math.ceil(l/O));for(_=0;_<l;_+=ee){let e=this.getContext(_),t=i.setContext(e),r=o.setContext(e),a=t.lineWidth,l=t.color,u=r.dash||[],f=r.dashOffset,p=t.tickWidth,m=t.tickColor,h=t.tickBorderDash||[],g=t.tickBorderDashOffset;v=$c(this,_,s),v!==void 0&&(y=ma(n,v,a),c?b=S=w=E=y:x=C=T=D=y,d.push({tx1:b,ty1:x,tx2:S,ty2:C,x1:w,y1:T,x2:E,y2:D,width:a,color:l,borderDash:u,borderDashOffset:f,tickWidth:p,tickColor:m,tickBorderDash:h,tickBorderDashOffset:g}))}return this._ticksLength=l,this._borderValue=g,d}_computeLabelItems(e){let t=this.axis,n=this.options,{position:r,ticks:i}=n,a=this.isHorizontal(),o=this.ticks,{align:s,crossAlign:c,padding:l,mirror:u}=i,d=tl(n.grid),f=d+l,p=u?-l:f,m=-gi(this.labelRotation),h=[],g,_,v,y,b,x,S,C,w,T,E,D,O=`middle`;if(r===`top`)x=this.bottom-p,S=this._getXAxisLabelAlignment();else if(r===`bottom`)x=this.top+p,S=this._getXAxisLabelAlignment();else if(r===`left`){let e=this._getYAxisLabelAlignment(d);S=e.textAlign,b=e.x}else if(r===`right`){let e=this._getYAxisLabelAlignment(d);S=e.textAlign,b=e.x}else if(t===`x`){if(r===`center`)x=(e.top+e.bottom)/2+f;else if(W(r)){let e=Object.keys(r)[0],t=r[e];x=this.chart.scales[e].getPixelForValue(t)+f}S=this._getXAxisLabelAlignment()}else if(t===`y`){if(r===`center`)b=(e.left+e.right)/2-f;else if(W(r)){let e=Object.keys(r)[0],t=r[e];b=this.chart.scales[e].getPixelForValue(t)}S=this._getYAxisLabelAlignment(d).textAlign}t===`y`&&(s===`start`?O=`top`:s===`end`&&(O=`bottom`));let ee=this._getLabelSizes();for(g=0,_=o.length;g<_;++g){v=o[g],y=v.label;let e=i.setContext(this.getContext(g));C=this.getPixelForTick(g)+i.labelOffset,w=this._resolveTickFontOptions(g),T=w.lineHeight,E=U(y)?y.length:1;let t=E/2,n=e.color,s=e.textStrokeColor,l=e.textStrokeWidth,d=S;a?(b=C,S===`inner`&&(d=g===_-1?this.options.reverse?`left`:`right`:g===0?this.options.reverse?`right`:`left`:`center`),D=r===`top`?c===`near`||m!==0?-E*T+T/2:c===`center`?-ee.highest.height/2-t*T+T:-ee.highest.height+T/2:c===`near`||m!==0?T/2:c===`center`?ee.highest.height/2-t*T:ee.highest.height-E*T,u&&(D*=-1),m!==0&&!e.showLabelBackdrop&&(b+=T/2*Math.sin(m))):(x=C,D=(1-E)*T/2);let f;if(e.showLabelBackdrop){let t=Fa(e.backdropPadding),n=ee.heights[g],r=ee.widths[g],i=D-t.top,a=0-t.left;switch(O){case`middle`:i-=n/2;break;case`bottom`:i-=n;break}switch(S){case`center`:a-=r/2;break;case`right`:a-=r;break;case`inner`:g===_-1?a-=r:g>0&&(a-=r/2);break}f={left:a,top:i,width:r+t.width,height:n+t.height,color:e.backdropColor}}h.push({label:y,font:w,textOffset:D,options:{rotation:m,color:n,strokeColor:s,strokeWidth:l,textAlign:d,textBaseline:O,translation:[b,x],backdrop:f}})}return h}_getXAxisLabelAlignment(){let{position:e,ticks:t}=this.options;if(-gi(this.labelRotation))return e===`top`?`left`:`right`;let n=`center`;return t.align===`start`?n=`left`:t.align===`end`?n=`right`:t.align===`inner`&&(n=`inner`),n}_getYAxisLabelAlignment(e){let{position:t,ticks:{crossAlign:n,mirror:r,padding:i}}=this.options,a=this._getLabelSizes(),o=e+i,s=a.widest.width,c,l;return t===`left`?r?(l=this.right+i,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l+=s)):(l=this.right-o,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l=this.left)):t===`right`?r?(l=this.left+i,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l-=s)):(l=this.left+o,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l=this.right)):c=`right`,{textAlign:c,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;let e=this.chart,t=this.options.position;if(t===`left`||t===`right`)return{top:0,left:this.left,bottom:e.height,right:this.right};if(t===`top`||t===`bottom`)return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){let{ctx:e,options:{backgroundColor:t},left:n,top:r,width:i,height:a}=this;t&&(e.save(),e.fillStyle=t,e.fillRect(n,r,i,a),e.restore())}getLineWidthForValue(e){let t=this.options.grid;if(!this._isVisible()||!t.display)return 0;let n=this.ticks.findIndex(t=>t.value===e);return n>=0?t.setContext(this.getContext(n)).lineWidth:0}drawGrid(e){let t=this.options.grid,n=this.ctx,r=this._gridLineItems||=this._computeGridLineItems(e),i,a,o=(e,t,r)=>{!r.width||!r.color||(n.save(),n.lineWidth=r.width,n.strokeStyle=r.color,n.setLineDash(r.borderDash||[]),n.lineDashOffset=r.borderDashOffset,n.beginPath(),n.moveTo(e.x,e.y),n.lineTo(t.x,t.y),n.stroke(),n.restore())};if(t.display)for(i=0,a=r.length;i<a;++i){let e=r[i];t.drawOnChartArea&&o({x:e.x1,y:e.y1},{x:e.x2,y:e.y2},e),t.drawTicks&&o({x:e.tx1,y:e.ty1},{x:e.tx2,y:e.ty2},{color:e.tickColor,width:e.tickWidth,borderDash:e.tickBorderDash,borderDashOffset:e.tickBorderDashOffset})}}drawBorder(){let{chart:e,ctx:t,options:{border:n,grid:r}}=this,i=n.setContext(this.getContext()),a=n.display?i.width:0;if(!a)return;let o=r.setContext(this.getContext(0)).lineWidth,s=this._borderValue,c,l,u,d;this.isHorizontal()?(c=ma(e,this.left,a)-a/2,l=ma(e,this.right,o)+o/2,u=d=s):(u=ma(e,this.top,a)-a/2,d=ma(e,this.bottom,o)+o/2,c=l=s),t.save(),t.lineWidth=i.width,t.strokeStyle=i.color,t.beginPath(),t.moveTo(c,u),t.lineTo(l,d),t.stroke(),t.restore()}drawLabels(e){if(!this.options.ticks.display)return;let t=this.ctx,n=this._computeLabelArea();n&&ya(t,n);let r=this.getLabelItems(e);for(let e of r){let n=e.options,r=e.font,i=e.label,a=e.textOffset;Ea(t,i,0,a,r,n)}n&&ba(t)}drawTitle(){let{ctx:e,options:{position:t,title:n,reverse:r}}=this;if(!n.display)return;let i=Ia(n.font),a=Fa(n.padding),o=n.align,s=i.lineHeight/2;t===`bottom`||t===`center`||W(t)?(s+=a.bottom,U(n.text)&&(s+=i.lineHeight*(n.text.length-1))):s+=a.top;let{titleX:c,titleY:l,maxWidth:u,rotation:d}=ol(this,s,t,o);Ea(e,n.text,0,0,i,{color:n.color,maxWidth:u,rotation:d,textAlign:al(o,t,r),textBaseline:`middle`,translation:[c,l]})}draw(e){this._isVisible()&&(this.drawBackground(),this.drawGrid(e),this.drawBorder(),this.drawTitle(),this.drawLabels(e))}_layers(){let t=this.options,n=t.ticks&&t.ticks.z||0,r=G(t.grid&&t.grid.z,-1),i=G(t.border&&t.border.z,0);return!this._isVisible()||this.draw!==e.prototype.draw?[{z:n,draw:e=>{this.draw(e)}}]:[{z:r,draw:e=>{this.drawBackground(),this.drawGrid(e),this.drawTitle()}},{z:i,draw:()=>{this.drawBorder()}},{z:n,draw:e=>{this.drawLabels(e)}}]}getMatchingVisibleMetas(e){let t=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+`AxisID`,r=[],i,a;for(i=0,a=t.length;i<a;++i){let a=t[i];a[n]===this.id&&(!e||a.type===e)&&r.push(a)}return r}_resolveTickFontOptions(e){return Ia(this.options.ticks.setContext(this.getContext(e)).font)}_maxDigits(){let e=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/e}},cl=class{constructor(e,t,n){this.type=e,this.scope=t,this.override=n,this.items=Object.create(null)}isForType(e){return Object.prototype.isPrototypeOf.call(this.type.prototype,e.prototype)}register(e){let t=Object.getPrototypeOf(e),n;dl(t)&&(n=this.register(t));let r=this.items,i=e.id,a=this.scope+`.`+i;if(!i)throw Error(`class does not have id: `+e);return i in r?a:(r[i]=e,ll(e,a,n),this.override&&ua.override(e.id,e.overrides),a)}get(e){return this.items[e]}unregister(e){let t=this.items,n=e.id,r=this.scope;n in t&&delete t[n],r&&n in ua[r]&&(delete ua[r][n],this.override&&delete oa[n])}};function ll(e,t,n){let r=Vr(Object.create(null),[n?ua.get(n):{},ua.get(t),e.defaults]);ua.set(t,r),e.defaultRoutes&&ul(t,e.defaultRoutes),e.descriptors&&ua.describe(t,e.descriptors)}function ul(e,t){Object.keys(t).forEach(n=>{let r=n.split(`.`),i=r.pop(),a=[e].concat(r).join(`.`),o=t[n].split(`.`),s=o.pop(),c=o.join(`.`);ua.route(a,i,c,s)})}function dl(e){return`id`in e&&`defaults`in e}var fl=new class{constructor(){this.controllers=new cl(Es,`datasets`,!0),this.elements=new cl(Vc,`elements`),this.plugins=new cl(Object,`plugins`),this.scales=new cl(sl,`scales`),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each(`register`,e)}remove(...e){this._each(`unregister`,e)}addControllers(...e){this._each(`register`,e,this.controllers)}addElements(...e){this._each(`register`,e,this.elements)}addPlugins(...e){this._each(`register`,e,this.plugins)}addScales(...e){this._each(`register`,e,this.scales)}getController(e){return this._get(e,this.controllers,`controller`)}getElement(e){return this._get(e,this.elements,`element`)}getPlugin(e){return this._get(e,this.plugins,`plugin`)}getScale(e){return this._get(e,this.scales,`scale`)}removeControllers(...e){this._each(`unregister`,e,this.controllers)}removeElements(...e){this._each(`unregister`,e,this.elements)}removePlugins(...e){this._each(`unregister`,e,this.plugins)}removeScales(...e){this._each(`unregister`,e,this.scales)}_each(e,t,n){[...t].forEach(t=>{let r=n||this._getRegistryForType(t);n||r.isForType(t)||r===this.plugins&&t.id?this._exec(e,r,t):Ir(t,t=>{let r=n||this._getRegistryForType(t);this._exec(e,r,t)})})}_exec(e,t,n){let r=Jr(e);Fr(n[`before`+r],[],n),t[e](n),Fr(n[`after`+r],[],n)}_getRegistryForType(e){for(let t=0;t<this._typedRegistries.length;t++){let n=this._typedRegistries[t];if(n.isForType(e))return n}return this.plugins}_get(e,t,n){let r=t.get(e);if(r===void 0)throw Error(`"`+e+`" is not a registered `+n+`.`);return r}},pl=class{constructor(){this._init=void 0}notify(e,t,n,r){if(t===`beforeInit`&&(this._init=this._createDescriptors(e,!0),this._notify(this._init,e,`install`)),this._init===void 0)return;let i=r?this._descriptors(e).filter(r):this._descriptors(e),a=this._notify(i,e,t,n);return t===`afterDestroy`&&(this._notify(i,e,`stop`),this._notify(this._init,e,`uninstall`),this._init=void 0),a}_notify(e,t,n,r){r||={};for(let i of e){let e=i.plugin,a=e[n];if(Fr(a,[t,r,i.options],e)===!1&&r.cancelable)return!1}return!0}invalidate(){H(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(e){if(this._cache)return this._cache;let t=this._cache=this._createDescriptors(e);return this._notifyStateChanges(e),t}_createDescriptors(e,t){let n=e&&e.config,r=G(n.options&&n.options.plugins,{}),i=ml(n);return r===!1&&!t?[]:gl(e,i,r,t)}_notifyStateChanges(e){let t=this._oldCache||[],n=this._cache,r=(e,t)=>e.filter(e=>!t.some(t=>e.plugin.id===t.plugin.id));this._notify(r(t,n),e,`stop`),this._notify(r(n,t),e,`start`)}};function ml(e){let t={},n=[],r=Object.keys(fl.plugins.items);for(let e=0;e<r.length;e++)n.push(fl.getPlugin(r[e]));let i=e.plugins||[];for(let e=0;e<i.length;e++){let r=i[e];n.indexOf(r)===-1&&(n.push(r),t[r.id]=!0)}return{plugins:n,localIds:t}}function hl(e,t){return!t&&e===!1?null:e===!0?{}:e}function gl(e,{plugins:t,localIds:n},r,i){let a=[],o=e.getContext();for(let s of t){let t=s.id,c=hl(r[t],i);c!==null&&a.push({plugin:s,options:_l(e.config,{plugin:s,local:n[t]},c,o)})}return a}function _l(e,{plugin:t,local:n},r,i){let a=e.pluginScopeKeys(t),o=e.getOptionScopes(r,a);return n&&t.defaults&&o.push(t.defaults),e.createResolver(o,i,[``],{scriptable:!1,indexable:!1,allKeys:!0})}function vl(e,t){let n=ua.datasets[e]||{};return((t.datasets||{})[e]||{}).indexAxis||t.indexAxis||n.indexAxis||`x`}function yl(e,t){let n=e;return e===`_index_`?n=t:e===`_value_`&&(n=t===`x`?`y`:`x`),n}function bl(e,t){return e===t?`_index_`:`_value_`}function xl(e){if(e===`x`||e===`y`||e===`r`)return e}function Sl(e){if(e===`top`||e===`bottom`)return`x`;if(e===`left`||e===`right`)return`y`}function Cl(e,...t){if(xl(e))return e;for(let n of t){let t=n.axis||Sl(n.position)||e.length>1&&xl(e[0].toLowerCase());if(t)return t}throw Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function wl(e,t,n){if(n[t+`AxisID`]===e)return{axis:t}}function Tl(e,t){if(t.data&&t.data.datasets){let n=t.data.datasets.filter(t=>t.xAxisID===e||t.yAxisID===e);if(n.length)return wl(e,`x`,n[0])||wl(e,`y`,n[0])}return{}}function El(e,t){let n=oa[e.type]||{scales:{}},r=t.scales||{},i=vl(e.type,t),a=Object.create(null);return Object.keys(r).forEach(t=>{let o=r[t];if(!W(o))return console.error(`Invalid scale configuration for scale: ${t}`);if(o._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);let s=Cl(t,o,Tl(t,e),ua.scales[o.type]),c=bl(s,i),l=n.scales||{};a[t]=Hr(Object.create(null),[{axis:s},o,l[s],l[c]])}),e.data.datasets.forEach(n=>{let i=n.type||e.type,o=n.indexAxis||vl(i,t),s=(oa[i]||{}).scales||{};Object.keys(s).forEach(e=>{let t=yl(e,o),i=n[t+`AxisID`]||t;a[i]=a[i]||Object.create(null),Hr(a[i],[{axis:t},r[i],s[e]])})}),Object.keys(a).forEach(e=>{let t=a[e];Hr(t,[ua.scales[t.type],ua.scale])}),a}function Dl(e){let t=e.options||={};t.plugins=G(t.plugins,{}),t.scales=El(e,t)}function Ol(e){return e||={},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function kl(e){return e||={},e.data=Ol(e.data),Dl(e),e}var Al=new Map,jl=new Set;function Ml(e,t){let n=Al.get(e);return n||(n=t(),Al.set(e,n),jl.add(n)),n}var Nl=(e,t,n)=>{let r=qr(t,n);r!==void 0&&e.add(r)},Pl=class{constructor(e){this._config=kl(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=Ol(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){let e=this._config;this.clearCache(),Dl(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Ml(e,()=>[[`datasets.${e}`,``]])}datasetAnimationScopeKeys(e,t){return Ml(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,``]])}datasetElementScopeKeys(e,t){return Ml(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,``]])}pluginScopeKeys(e){let t=e.id,n=this.type;return Ml(`${n}-plugin-${t}`,()=>[[`plugins.${t}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,t){let n=this._scopeCache,r=n.get(e);return(!r||t)&&(r=new Map,n.set(e,r)),r}getOptionScopes(e,t,n){let{options:r,type:i}=this,a=this._cachedScopes(e,n),o=a.get(t);if(o)return o;let s=new Set;t.forEach(t=>{e&&(s.add(e),t.forEach(t=>Nl(s,e,t))),t.forEach(e=>Nl(s,r,e)),t.forEach(e=>Nl(s,oa[i]||{},e)),t.forEach(e=>Nl(s,ua,e)),t.forEach(e=>Nl(s,sa,e))});let c=Array.from(s);return c.length===0&&c.push(Object.create(null)),jl.has(t)&&a.set(t,c),c}chartOptionScopes(){let{options:e,type:t}=this;return[e,oa[t]||{},ua.datasets[t]||{},{type:t},ua,sa]}resolveNamedOptions(e,t,n,r=[``]){let i={$shared:!0},{resolver:a,subPrefixes:o}=Fl(this._resolverCache,e,r),s=a;if(J(a,t)){i.$shared=!1,n=Xr(n)?n():n;let t=this.createResolver(e,n,o);s=Va(a,n,t)}for(let e of t)i[e]=s[e];return i}createResolver(e,t,n=[``],r){let{resolver:i}=Fl(this._resolverCache,e,n);return W(t)?Va(i,t,void 0,r):i}};function Fl(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));let i=n.join(),a=r.get(i);return a||(a={resolver:Ba(t,n),subPrefixes:n.filter(e=>!e.toLowerCase().includes(`hover`))},r.set(i,a)),a}var Il=e=>W(e)&&Object.getOwnPropertyNames(e).some(t=>Xr(e[t]));function J(e,t){let{isScriptable:n,isIndexable:r}=Ha(e);for(let i of t){let t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(Xr(o)||Il(o))||a&&U(o))return!0}return!1}var Ll=`4.5.1`,Y=[`top`,`bottom`,`left`,`right`,`chartArea`];function X(e,t){return e===`top`||e===`bottom`||Y.indexOf(e)===-1&&t===`x`}function Rl(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function zl(e){let t=e.chart,n=t.options.animation;t.notifyPlugins(`afterRender`),Fr(n&&n.onComplete,[e],t)}function Bl(e){let t=e.chart,n=t.options.animation;Fr(n&&n.onProgress,[e],t)}function Vl(e){return ho()&&typeof e==`string`?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}var Hl={},Ul=e=>{let t=Vl(e);return Object.values(Hl).filter(e=>e.canvas===t).pop()};function Wl(e,t,n){let r=Object.keys(e);for(let i of r){let r=+i;if(r>=t){let a=e[i];delete e[i],(n>0||r>t)&&(e[r+n]=a)}}}function Gl(e,t,n,r){return!n||e.type===`mouseout`?null:r?t:e}var Kl=class{static defaults=ua;static instances=Hl;static overrides=oa;static registry=fl;static version=Ll;static getChart=Ul;static register(...e){fl.add(...e),ql()}static unregister(...e){fl.remove(...e),ql()}constructor(e,t){let n=this.config=new Pl(t),r=Vl(e),i=Ul(r);if(i)throw Error(`Canvas is already in use. Chart with ID '`+i.id+`' must be destroyed before the canvas with ID '`+i.canvas.id+`' can be reused.`);let a=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||(Bc(r))),this.platform.updateConfig(n);let o=this.platform.acquireContext(r,a.aspectRatio),s=o&&o.canvas,c=s&&s.height,l=s&&s.width;if(this.id=jr(),this.ctx=o,this.canvas=s,this.width=l,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new pl,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Ii(e=>this.update(e),a.resizeDelay||0),this._dataChanges=[],Hl[this.id]=this,!o||!s){console.error(`Failed to create chart: can't acquire context from the given item`);return}es.listen(this,`complete`,zl),es.listen(this,`progress`,Bl),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return H(e)?t&&i?i:r?n/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return fl}_initialize(){return this.notifyPlugins(`beforeInit`),this.options.responsive?this.resize():Oo(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(`afterInit`),this}clear(){return ha(this.canvas,this.ctx),this}stop(){return es.stop(this),this}resize(e,t){es.running(this)?this._resizeBeforeDraw={width:e,height:t}:this._resize(e,t)}_resize(e,t){let n=this.options,r=this.canvas,i=n.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(r,e,t,i),o=n.devicePixelRatio||this.platform.getDevicePixelRatio(),s=this.width?`resize`:`attach`;this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,Oo(this,o,!0)&&(this.notifyPlugins(`resize`,{size:a}),Fr(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){Ir(this.options.scales||{},(e,t)=>{e.id=t})}buildOrUpdateScales(){let e=this.options,t=e.scales,n=this.scales,r=Object.keys(n).reduce((e,t)=>(e[t]=!1,e),{}),i=[];t&&(i=i.concat(Object.keys(t).map(e=>{let n=t[e],r=Cl(e,n),i=r===`r`,a=r===`x`;return{options:n,dposition:i?`chartArea`:a?`bottom`:`left`,dtype:i?`radialLinear`:a?`category`:`linear`}}))),Ir(i,t=>{let i=t.options,a=i.id,o=Cl(a,i),s=G(i.type,t.dtype);(i.position===void 0||X(i.position,o)!==X(t.dposition))&&(i.position=t.dposition),r[a]=!0;let c=null;a in n&&n[a].type===s?c=n[a]:(c=new(fl.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[c.id]=c),c.init(i,e)}),Ir(r,(e,t)=>{e||delete n[t]}),Ir(n,e=>{_c.configure(this,e,e.options),_c.addBox(this,e)})}_updateMetasets(){let e=this._metasets,t=this.data.datasets.length,n=e.length;if(e.sort((e,t)=>e.index-t.index),n>t){for(let e=t;e<n;++e)this._destroyDatasetMeta(e);e.splice(t,n-t)}this._sortedMetasets=e.slice(0).sort(Rl(`order`,`index`))}_removeUnreferencedMetasets(){let{_metasets:e,data:{datasets:t}}=this;e.length>t.length&&delete this._stacks,e.forEach((e,n)=>{t.filter(t=>t===e._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){let e=[],t=this.data.datasets,n,r;for(this._removeUnreferencedMetasets(),n=0,r=t.length;n<r;n++){let r=t[n],i=this.getDatasetMeta(n),a=r.type||this.config.type;if(i.type&&i.type!==a&&(this._destroyDatasetMeta(n),i=this.getDatasetMeta(n)),i.type=a,i.indexAxis=r.indexAxis||vl(a,this.options),i.order=r.order||0,i.index=n,i.label=``+r.label,i.visible=this.isDatasetVisible(n),i.controller)i.controller.updateIndex(n),i.controller.linkScales();else{let t=fl.getController(a),{datasetElementType:r,dataElementType:o}=ua.datasets[a];Object.assign(t,{dataElementType:fl.getElement(o),datasetElementType:r&&fl.getElement(r)}),i.controller=new t(this,n),e.push(i.controller)}}return this._updateMetasets(),e}_resetElements(){Ir(this.data.datasets,(e,t)=>{this.getDatasetMeta(t).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins(`reset`)}update(e){let t=this.config;t.update();let n=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins(`beforeUpdate`,{mode:e,cancelable:!0})===!1)return;let i=this.buildOrUpdateControllers();this.notifyPlugins(`beforeElementsUpdate`);let a=0;for(let e=0,t=this.data.datasets.length;e<t;e++){let{controller:t}=this.getDatasetMeta(e),n=!r&&i.indexOf(t)===-1;t.buildOrUpdateElements(n),a=Math.max(+t.getMaxOverflow(),a)}a=this._minPadding=n.layout.autoPadding?a:0,this._updateLayout(a),r||Ir(i,e=>{e.reset()}),this._updateDatasets(e),this.notifyPlugins(`afterUpdate`,{mode:e}),this._layers.sort(Rl(`z`,`_idx`));let{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){Ir(this.scales,e=>{_c.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options;(!Zr(new Set(Object.keys(this._listeners)),new Set(e.events))||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:e}=this,t=this._getUniformDataChanges()||[];for(let{method:n,start:r,count:i}of t)Wl(e,r,n===`_removeElements`?-i:i)}_getUniformDataChanges(){let e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];let t=this.data.datasets.length,n=t=>new Set(e.filter(e=>e[0]===t).map((e,t)=>t+`,`+e.splice(1).join(`,`))),r=n(0);for(let e=1;e<t;e++)if(!Zr(r,n(e)))return;return Array.from(r).map(e=>e.split(`,`)).map(e=>({method:e[1],start:+e[2],count:+e[3]}))}_updateLayout(e){if(this.notifyPlugins(`beforeLayout`,{cancelable:!0})===!1)return;_c.update(this,this.width,this.height,e);let t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],Ir(this.boxes,e=>{n&&e.position===`chartArea`||(e.configure&&e.configure(),this._layers.push(...e._layers()))},this),this._layers.forEach((e,t)=>{e._idx=t}),this.notifyPlugins(`afterLayout`)}_updateDatasets(e){if(this.notifyPlugins(`beforeDatasetsUpdate`,{mode:e,cancelable:!0})!==!1){for(let e=0,t=this.data.datasets.length;e<t;++e)this.getDatasetMeta(e).controller.configure();for(let t=0,n=this.data.datasets.length;t<n;++t)this._updateDataset(t,Xr(e)?e({datasetIndex:t}):e);this.notifyPlugins(`afterDatasetsUpdate`,{mode:e})}}_updateDataset(e,t){let n=this.getDatasetMeta(e),r={meta:n,index:e,mode:t,cancelable:!0};this.notifyPlugins(`beforeDatasetUpdate`,r)!==!1&&(n.controller._update(t),r.cancelable=!1,this.notifyPlugins(`afterDatasetUpdate`,r))}render(){this.notifyPlugins(`beforeRender`,{cancelable:!0})!==!1&&(es.has(this)?this.attached&&!es.running(this)&&es.start(this):(this.draw(),zl({chart:this})))}draw(){let e;if(this._resizeBeforeDraw){let{width:e,height:t}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(e,t)}if(this.clear(),this.width<=0||this.height<=0||this.notifyPlugins(`beforeDraw`,{cancelable:!0})===!1)return;let t=this._layers;for(e=0;e<t.length&&t[e].z<=0;++e)t[e].draw(this.chartArea);for(this._drawDatasets();e<t.length;++e)t[e].draw(this.chartArea);this.notifyPlugins(`afterDraw`)}_getSortedDatasetMetas(e){let t=this._sortedMetasets,n=[],r,i;for(r=0,i=t.length;r<i;++r){let i=t[r];(!e||i.visible)&&n.push(i)}return n}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(this.notifyPlugins(`beforeDatasetsDraw`,{cancelable:!0})===!1)return;let e=this.getSortedVisibleDatasetMetas();for(let t=e.length-1;t>=0;--t)this._drawDataset(e[t]);this.notifyPlugins(`afterDatasetsDraw`)}_drawDataset(e){let t=this.ctx,n={meta:e,index:e.index,cancelable:!0},r=$o(this,e);this.notifyPlugins(`beforeDatasetDraw`,n)!==!1&&(r&&ya(t,r),e.controller.draw(),r&&ba(t),n.cancelable=!1,this.notifyPlugins(`afterDatasetDraw`,n))}isPointInArea(e){return va(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){let i=ec.modes[t];return typeof i==`function`?i(this,e,n,r):[]}getDatasetMeta(e){let t=this.data.datasets[e],n=this._metasets,r=n.filter(e=>e&&e._dataset===t).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:e,_dataset:t,_parsed:[],_sorted:!1},n.push(r)),r}getContext(){return this.$context||=za(null,{chart:this,type:`chart`})}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){let t=this.data.datasets[e];if(!t)return!1;let n=this.getDatasetMeta(e);return typeof n.hidden==`boolean`?!n.hidden:!t.hidden}setDatasetVisibility(e,t){let n=this.getDatasetMeta(e);n.hidden=!t}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,t,n){let r=n?`show`:`hide`,i=this.getDatasetMeta(e),a=i.controller._resolveAnimations(void 0,r);Yr(t)?(i.data[t].hidden=!n,this.update()):(this.setDatasetVisibility(e,n),a.update(i,{visible:n}),this.update(t=>t.datasetIndex===e?r:void 0))}hide(e,t){this._updateVisibility(e,t,!1)}show(e,t){this._updateVisibility(e,t,!0)}_destroyDatasetMeta(e){let t=this._metasets[e];t&&t.controller&&t.controller._destroy(),delete this._metasets[e]}_stop(){let e,t;for(this.stop(),es.remove(this),e=0,t=this.data.datasets.length;e<t;++e)this._destroyDatasetMeta(e)}destroy(){this.notifyPlugins(`beforeDestroy`);let{canvas:e,ctx:t}=this;this._stop(),this.config.clearCache(),e&&(this.unbindEvents(),ha(e,t),this.platform.releaseContext(t),this.canvas=null,this.ctx=null),delete Hl[this.id],this.notifyPlugins(`afterDestroy`)}toBase64Image(...e){return this.canvas.toDataURL(...e)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){let e=this._listeners,t=this.platform,n=(n,r)=>{t.addEventListener(this,n,r),e[n]=r},r=(e,t,n)=>{e.offsetX=t,e.offsetY=n,this._eventHandler(e)};Ir(this.options.events,e=>n(e,r))}bindResponsiveEvents(){this._responsiveListeners||={};let e=this._responsiveListeners,t=this.platform,n=(n,r)=>{t.addEventListener(this,n,r),e[n]=r},r=(n,r)=>{e[n]&&(t.removeEventListener(this,n,r),delete e[n])},i=(e,t)=>{this.canvas&&this.resize(e,t)},a,o=()=>{r(`attach`,o),this.attached=!0,this.resize(),n(`resize`,i),n(`detach`,a)};a=()=>{this.attached=!1,r(`resize`,i),this._stop(),this._resize(0,0),n(`attach`,o)},t.isAttached(this.canvas)?o():a()}unbindEvents(){Ir(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},Ir(this._responsiveListeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,t,n){let r=n?`set`:`remove`,i,a,o,s;for(t===`dataset`&&(i=this.getDatasetMeta(e[0].datasetIndex),i.controller[`_`+r+`DatasetHoverStyle`]()),o=0,s=e.length;o<s;++o){a=e[o];let t=a&&this.getDatasetMeta(a.datasetIndex).controller;t&&t[r+`HoverStyle`](a.element,a.datasetIndex,a.index)}}getActiveElements(){return this._active||[]}setActiveElements(e){let t=this._active||[],n=e.map(({datasetIndex:e,index:t})=>{let n=this.getDatasetMeta(e);if(!n)throw Error(`No dataset found at index `+e);return{datasetIndex:e,element:n.data[t],index:t}});Lr(n,t)||(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,t))}notifyPlugins(e,t,n){return this._plugins.notify(this,e,t,n)}isPluginEnabled(e){return this._plugins._cache.filter(t=>t.plugin.id===e).length===1}_updateHoverStyles(e,t,n){let r=this.options.hover,i=(e,t)=>e.filter(e=>!t.some(t=>e.datasetIndex===t.datasetIndex&&e.index===t.index)),a=i(t,e),o=n?e:i(e,t);a.length&&this.updateHoverStyle(a,r.mode,!1),o.length&&r.mode&&this.updateHoverStyle(o,r.mode,!0)}_eventHandler(e,t){let n={event:e,replay:t,cancelable:!0,inChartArea:this.isPointInArea(e)},r=t=>(t.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins(`beforeEvent`,n,r)===!1)return;let i=this._handleEvent(e,t,n.inChartArea);return n.cancelable=!1,this.notifyPlugins(`afterEvent`,n,r),(i||n.changed)&&this.render(),this}_handleEvent(e,t,n){let{_active:r=[],options:i}=this,a=t,o=this._getActiveElements(e,r,n,a),s=Qr(e),c=Gl(e,this._lastEvent,n,s);n&&(this._lastEvent=null,Fr(i.onHover,[e,o,this],this),s&&Fr(i.onClick,[e,o,this],this));let l=!Lr(o,r);return(l||t)&&(this._active=o,this._updateHoverStyles(o,r,t)),this._lastEvent=c,l}_getActiveElements(e,t,n,r){if(e.type===`mouseout`)return[];if(!n)return t;let i=this.options.hover;return this.getElementsAtEventForMode(e,i.mode,i,r)}};function ql(){return Ir(Kl.instances,e=>e._plugins.invalidate())}function Jl(e,t,n=t){e.lineCap=G(n.borderCapStyle,t.borderCapStyle),e.setLineDash(G(n.borderDash,t.borderDash)),e.lineDashOffset=G(n.borderDashOffset,t.borderDashOffset),e.lineJoin=G(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=G(n.borderWidth,t.borderWidth),e.strokeStyle=G(n.borderColor,t.borderColor)}function Yl(e,t,n){e.lineTo(n.x,n.y)}function Xl(e){return e.stepped?xa:e.tension||e.cubicInterpolationMode===`monotone`?Sa:Yl}function Zl(e,t,n={}){let r=e.length,{start:i=0,end:a=r-1}=n,{start:o,end:s}=t,c=Math.max(i,o),l=Math.min(a,s),u=i<o&&a<o||i>s&&a>s;return{count:r,start:c,loop:t.loop,ilen:l<c&&!u?r+l-c:l-c}}function Ql(e,t,n,r){let{points:i,options:a}=t,{count:o,start:s,loop:c,ilen:l}=Zl(i,n,r),u=Xl(a),{move:d=!0,reverse:f}=r||{},p,m,h;for(p=0;p<=l;++p)m=i[(s+(f?l-p:p))%o],!m.skip&&(d?(e.moveTo(m.x,m.y),d=!1):u(e,h,m,f,a.stepped),h=m);return c&&(m=i[(s+(f?l:0))%o],u(e,h,m,f,a.stepped)),!!c}function $l(e,t,n,r){let i=t.points,{count:a,start:o,ilen:s}=Zl(i,n,r),{move:c=!0,reverse:l}=r||{},u=0,d=0,f,p,m,h,g,_,v=e=>(o+(l?s-e:e))%a,y=()=>{h!==g&&(e.lineTo(u,g),e.lineTo(u,h),e.lineTo(u,_))};for(c&&(p=i[v(0)],e.moveTo(p.x,p.y)),f=0;f<=s;++f){if(p=i[v(f)],p.skip)continue;let t=p.x,n=p.y,r=t|0;r===m?(n<h?h=n:n>g&&(g=n),u=(d*u+t)/++d):(y(),e.lineTo(t,n),m=r,d=0,h=g=n),_=n}y()}function eu(e){let t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!==`monotone`&&!t.stepped&&!n?$l:Ql}function tu(e){return e.stepped?Mo:e.tension||e.cubicInterpolationMode===`monotone`?No:jo}function nu(e,t,n,r){let i=t._path;i||(i=t._path=new Path2D,t.path(i,n,r)&&i.closePath()),Jl(e,t.options),e.stroke(i)}function ru(e,t,n,r){let{segments:i,options:a}=t,o=eu(t);for(let s of i)Jl(e,a,s.style),e.beginPath(),o(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}var iu=typeof Path2D==`function`;function au(e,t,n,r){iu&&!t.options.segment?nu(e,t,n,r):ru(e,t,n,r)}var ou=class extends Vc{static id=`line`;static defaults={borderCapStyle:`butt`,borderDash:[],borderDashOffset:0,borderJoinStyle:`miter`,borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:`default`,fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:`backgroundColor`,borderColor:`borderColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`&&e!==`fill`};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){let n=this.options;if((n.tension||n.cubicInterpolationMode===`monotone`)&&!n.stepped&&!this._pointsUpdated){let r=n.spanGaps?this._loop:this._fullLoop;mo(this._points,n,e,r,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||=Ko(this,this.options.segment)}first(){let e=this.segments,t=this.points;return e.length&&t[e[0].start]}last(){let e=this.segments,t=this.points,n=e.length;return n&&t[e[n-1].end]}interpolate(e,t){let n=this.options,r=e[t],i=this.points,a=Uo(this,{property:t,start:r,end:r});if(!a.length)return;let o=[],s=tu(n),c,l;for(c=0,l=a.length;c<l;++c){let{start:l,end:u}=a[c],d=i[l],f=i[u];if(d===f){o.push(d);continue}let p=s(d,f,Math.abs((r-d[t])/(f[t]-d[t])),n.stepped);p[t]=e[t],o.push(p)}return o.length===1?o[0]:o}pathSegment(e,t,n){return eu(this)(e,this,t,n)}path(e,t,n){let r=this.segments,i=eu(this),a=this._loop;t||=0,n||=this.points.length-t;for(let o of r)a&=i(e,this,o,{start:t,end:t+n-1});return!!a}draw(e,t,n,r){let i=this.options||{};(this.points||[]).length&&i.borderWidth&&(e.save(),au(e,this,n,r),e.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}};function su(e,t,n,r){let i=e.options,{[n]:a}=e.getProps([n],r);return Math.abs(t-a)<i.radius+i.hitRadius}var cu=class extends Vc{static id=`point`;parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:`circle`,radius:3,rotation:0};static defaultRoutes={backgroundColor:`backgroundColor`,borderColor:`borderColor`};constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,t,n){let r=this.options,{x:i,y:a}=this.getProps([`x`,`y`],n);return(e-i)**2+(t-a)**2<(r.hitRadius+r.radius)**2}inXRange(e,t){return su(this,e,`x`,t)}inYRange(e,t){return su(this,e,`y`,t)}getCenterPoint(e){let{x:t,y:n}=this.getProps([`x`,`y`],e);return{x:t,y:n}}size(e){e=e||this.options||{};let t=e.radius||0;t=Math.max(t,t&&e.hoverRadius||0);let n=t&&e.borderWidth||0;return(t+n)*2}draw(e,t){let n=this.options;this.skip||n.radius<.1||!va(this,t,this.size(n)/2)||(e.strokeStyle=n.borderColor,e.lineWidth=n.borderWidth,e.fillStyle=n.backgroundColor,ga(e,n,this.x,this.y))}getRange(){let e=this.options||{};return e.radius+e.hitRadius}};function lu(e,t){let{x:n,y:r,base:i,width:a,height:o}=e.getProps([`x`,`y`,`base`,`width`,`height`],t),s,c,l,u,d;return e.horizontal?(d=o/2,s=Math.min(n,i),c=Math.max(n,i),l=r-d,u=r+d):(d=a/2,s=n-d,c=n+d,l=Math.min(r,i),u=Math.max(r,i)),{left:s,top:l,right:c,bottom:u}}function uu(e,t,n,r){return e?0:wi(t,n,r)}function du(e,t,n){let r=e.options.borderWidth,i=e.borderSkipped,a=Na(r);return{t:uu(i.top,a.top,0,n),r:uu(i.right,a.right,0,t),b:uu(i.bottom,a.bottom,0,n),l:uu(i.left,a.left,0,t)}}function fu(e,t,n){let{enableBorderRadius:r}=e.getProps([`enableBorderRadius`]),i=e.options.borderRadius,a=Pa(i),o=Math.min(t,n),s=e.borderSkipped,c=r||W(i);return{topLeft:uu(!c||s.top||s.left,a.topLeft,0,o),topRight:uu(!c||s.top||s.right,a.topRight,0,o),bottomLeft:uu(!c||s.bottom||s.left,a.bottomLeft,0,o),bottomRight:uu(!c||s.bottom||s.right,a.bottomRight,0,o)}}function pu(e){let t=lu(e),n=t.right-t.left,r=t.bottom-t.top,i=du(e,n/2,r/2),a=fu(e,n/2,r/2);return{outer:{x:t.left,y:t.top,w:n,h:r,radius:a},inner:{x:t.left+i.l,y:t.top+i.t,w:n-i.l-i.r,h:r-i.t-i.b,radius:{topLeft:Math.max(0,a.topLeft-Math.max(i.t,i.l)),topRight:Math.max(0,a.topRight-Math.max(i.t,i.r)),bottomLeft:Math.max(0,a.bottomLeft-Math.max(i.b,i.l)),bottomRight:Math.max(0,a.bottomRight-Math.max(i.b,i.r))}}}}function mu(e,t,n,r){let i=t===null,a=n===null,o=e&&!(i&&a)&&lu(e,r);return o&&(i||Ei(t,o.left,o.right))&&(a||Ei(n,o.top,o.bottom))}function hu(e){return e.topLeft||e.topRight||e.bottomLeft||e.bottomRight}function gu(e,t){e.rect(t.x,t.y,t.w,t.h)}function _u(e,t,n={}){let r=e.x===n.x?0:-t,i=e.y===n.y?0:-t,a=(e.x+e.w===n.x+n.w?0:t)-r,o=(e.y+e.h===n.y+n.h?0:t)-i;return{x:e.x+r,y:e.y+i,w:e.w+a,h:e.h+o,radius:e.radius}}var vu=class extends Vc{static id=`bar`;static defaults={borderSkipped:`start`,borderWidth:0,borderRadius:0,inflateAmount:`auto`,pointStyle:void 0};static defaultRoutes={backgroundColor:`backgroundColor`,borderColor:`borderColor`};constructor(e){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,e&&Object.assign(this,e)}draw(e){let{inflateAmount:t,options:{borderColor:n,backgroundColor:r}}=this,{inner:i,outer:a}=pu(this),o=hu(a.radius)?Da:gu;e.save(),(a.w!==i.w||a.h!==i.h)&&(e.beginPath(),o(e,_u(a,t,i)),e.clip(),o(e,_u(i,-t,a)),e.fillStyle=n,e.fill(`evenodd`)),e.beginPath(),o(e,_u(i,t)),e.fillStyle=r,e.fill(),e.restore()}inRange(e,t,n){return mu(this,e,t,n)}inXRange(e,t){return mu(this,e,null,t)}inYRange(e,t){return mu(this,null,e,t)}getCenterPoint(e){let{x:t,y:n,base:r,horizontal:i}=this.getProps([`x`,`y`,`base`,`horizontal`],e);return{x:i?(t+r)/2:t,y:i?n:(n+r)/2}}getRange(e){return e===`x`?this.width/2:this.height/2}};function yu(e,t,n){let r=e.segments,i=e.points,a=t.points,o=[];for(let e of r){let{start:r,end:s}=e;s=Su(r,s,i);let c=bu(n,i[r],i[s],e.loop);if(!t.segments){o.push({source:e,target:c,start:i[r],end:i[s]});continue}let l=Uo(t,c);for(let t of l){let r=bu(n,a[t.start],a[t.end],t.loop),s=Ho(e,i,r);for(let e of s)o.push({source:e,target:t,start:{[n]:Cu(c,r,`start`,Math.max)},end:{[n]:Cu(c,r,`end`,Math.min)}})}}return o}function bu(e,t,n,r){if(r)return;let i=t[e],a=n[e];return e===`angle`&&(i=Si(i),a=Si(a)),{property:e,start:i,end:a}}function xu(e,t){let{x:n=null,y:r=null}=e||{},i=t.points,a=[];return t.segments.forEach(({start:e,end:t})=>{t=Su(e,t,i);let o=i[e],s=i[t];r===null?n!==null&&(a.push({x:n,y:o.y}),a.push({x:n,y:s.y})):(a.push({x:o.x,y:r}),a.push({x:s.x,y:r}))}),a}function Su(e,t,n){for(;t>e;t--){let e=n[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function Cu(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function wu(e,t){let n=[],r=!1;return U(e)?(r=!0,n=e):n=xu(e,t),n.length?new ou({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function Tu(e){return e&&e.fill!==!1}function Eu(e,t,n){let r=e[t].fill,i=[t],a;if(!n)return r;for(;r!==!1&&i.indexOf(r)===-1;){if(!Mr(r))return r;if(a=e[r],!a)return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function Du(e,t,n){let r=ju(e);if(W(r))return isNaN(r.value)?!1:r;let i=parseFloat(r);return Mr(i)&&Math.floor(i)===i?Ou(r[0],t,i,n):[`origin`,`start`,`end`,`stack`,`shape`].indexOf(r)>=0&&r}function Ou(e,t,n,r){return(e===`-`||e===`+`)&&(n=t+n),n===t||n<0||n>=r?!1:n}function ku(e,t){let n=null;return e===`start`?n=t.bottom:e===`end`?n=t.top:W(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function Au(e,t,n){let r;return r=e===`start`?n:e===`end`?t.options.reverse?t.min:t.max:W(e)?e.value:t.getBaseValue(),r}function ju(e){let t=e.options,n=t.fill,r=G(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?`origin`:r}function Mu(e){let{scale:t,index:n,line:r}=e,i=[],a=r.segments,o=r.points,s=Nu(t,n);s.push(wu({x:null,y:t.bottom},r));for(let e=0;e<a.length;e++){let t=a[e];for(let e=t.start;e<=t.end;e++)Pu(i,o[e],s)}return new ou({points:i,options:{}})}function Nu(e,t){let n=[],r=e.getMatchingVisibleMetas(`line`);for(let e=0;e<r.length;e++){let i=r[e];if(i.index===t)break;i.hidden||n.unshift(i.dataset)}return n}function Pu(e,t,n){let r=[];for(let i=0;i<n.length;i++){let a=n[i],{first:o,last:s,point:c}=Fu(a,t,`x`);if(!(!c||o&&s)){if(o)r.unshift(c);else if(e.push(c),!s)break}}e.push(...r)}function Fu(e,t,n){let r=e.interpolate(t,n);if(!r)return{};let i=r[n],a=e.segments,o=e.points,s=!1,c=!1;for(let e=0;e<a.length;e++){let t=a[e],r=o[t.start][n],l=o[t.end][n];if(Ei(i,r,l)){s=i===r,c=i===l;break}}return{first:s,last:c,point:r}}var Iu=class{constructor(e){this.x=e.x,this.y=e.y,this.radius=e.radius}pathSegment(e,t,n){let{x:r,y:i,radius:a}=this;return t||={start:0,end:ei},e.arc(r,i,a,t.end,t.start,!0),!n.bounds}interpolate(e){let{x:t,y:n,radius:r}=this,i=e.angle;return{x:t+Math.cos(i)*r,y:n+Math.sin(i)*r,angle:i}}};function Lu(e){let{chart:t,fill:n,line:r}=e;if(Mr(n))return Ru(t,n);if(n===`stack`)return Mu(e);if(n===`shape`)return!0;let i=zu(e);return i instanceof Iu?i:wu(i,r)}function Ru(e,t){let n=e.getDatasetMeta(t);return n&&e.isDatasetVisible(t)?n.dataset:null}function zu(e){return(e.scale||{}).getPointPositionForValue?Vu(e):Bu(e)}function Bu(e){let{scale:t={},fill:n}=e,r=ku(n,t);if(Mr(r)){let e=t.isHorizontal();return{x:e?r:null,y:e?null:r}}return null}function Vu(e){let{scale:t,fill:n}=e,r=t.options,i=t.getLabels().length,a=r.reverse?t.max:t.min,o=Au(n,t,a),s=[];if(r.grid.circular){let e=t.getPointPositionForValue(0,a);return new Iu({x:e.x,y:e.y,radius:t.getDistanceFromCenterForValue(o)})}for(let e=0;e<i;++e)s.push(t.getPointPositionForValue(e,o));return s}function Hu(e,t,n){let r=Lu(t),{chart:i,index:a,line:o,scale:s,axis:c}=t,l=o.options,u=l.fill,d=l.backgroundColor,{above:f=d,below:p=d}=u||{},m=$o(i,i.getDatasetMeta(a));r&&o.points.length&&(ya(e,n),Uu(e,{line:o,target:r,above:f,below:p,area:n,scale:s,axis:c,clip:m}),ba(e))}function Uu(e,t){let{line:n,target:r,above:i,below:a,area:o,scale:s,clip:c}=t,l=n._loop?`angle`:t.axis;e.save();let u=a;a!==i&&(l===`x`?(Wu(e,r,o.top),Ku(e,{line:n,target:r,color:i,scale:s,property:l,clip:c}),e.restore(),e.save(),Wu(e,r,o.bottom)):l===`y`&&(Gu(e,r,o.left),Ku(e,{line:n,target:r,color:a,scale:s,property:l,clip:c}),e.restore(),e.save(),Gu(e,r,o.right),u=i)),Ku(e,{line:n,target:r,color:u,scale:s,property:l,clip:c}),e.restore()}function Wu(e,t,n){let{segments:r,points:i}=t,a=!0,o=!1;e.beginPath();for(let s of r){let{start:r,end:c}=s,l=i[r],u=i[Su(r,c,i)];a?(e.moveTo(l.x,l.y),a=!1):(e.lineTo(l.x,n),e.lineTo(l.x,l.y)),o=!!t.pathSegment(e,s,{move:o}),o?e.closePath():e.lineTo(u.x,n)}e.lineTo(t.first().x,n),e.closePath(),e.clip()}function Gu(e,t,n){let{segments:r,points:i}=t,a=!0,o=!1;e.beginPath();for(let s of r){let{start:r,end:c}=s,l=i[r],u=i[Su(r,c,i)];a?(e.moveTo(l.x,l.y),a=!1):(e.lineTo(n,l.y),e.lineTo(l.x,l.y)),o=!!t.pathSegment(e,s,{move:o}),o?e.closePath():e.lineTo(n,u.y)}e.lineTo(n,t.first().y),e.closePath(),e.clip()}function Ku(e,t){let{line:n,target:r,property:i,color:a,scale:o,clip:s}=t,c=yu(n,r,i);for(let{source:t,target:l,start:u,end:d}of c){let{style:{backgroundColor:c=a}={}}=t,f=r!==!0;e.save(),e.fillStyle=c,qu(e,o,s,f&&bu(i,u,d)),e.beginPath();let p=!!n.pathSegment(e,t),m;if(f){p?e.closePath():Ju(e,r,d,i);let t=!!r.pathSegment(e,l,{move:p,reverse:!0});m=p&&t,m||Ju(e,r,u,i)}e.closePath(),e.fill(m?`evenodd`:`nonzero`),e.restore()}}function qu(e,t,n,r){let i=t.chart.chartArea,{property:a,start:o,end:s}=r||{};if(a===`x`||a===`y`){let t,r,c,l;a===`x`?(t=o,r=i.top,c=s,l=i.bottom):(t=i.left,r=o,c=i.right,l=s),e.beginPath(),n&&(t=Math.max(t,n.left),c=Math.min(c,n.right),r=Math.max(r,n.top),l=Math.min(l,n.bottom)),e.rect(t,r,c-t,l-r),e.clip()}}function Ju(e,t,n,r){let i=t.interpolate(n,r);i&&e.lineTo(i.x,i.y)}var Yu={id:`filler`,afterDatasetsUpdate(e,t,n){let r=(e.data.datasets||[]).length,i=[],a,o,s,c;for(o=0;o<r;++o)a=e.getDatasetMeta(o),s=a.dataset,c=null,s&&s.options&&s instanceof ou&&(c={visible:e.isDatasetVisible(o),index:o,fill:Du(s,o,r),chart:e,axis:a.controller.options.indexAxis,scale:a.vScale,line:s}),a.$filler=c,i.push(c);for(o=0;o<r;++o)c=i[o],!(!c||c.fill===!1)&&(c.fill=Eu(i,o,n.propagate))},beforeDraw(e,t,n){let r=n.drawTime===`beforeDraw`,i=e.getSortedVisibleDatasetMetas(),a=e.chartArea;for(let t=i.length-1;t>=0;--t){let n=i[t].$filler;n&&(n.line.updateControlPoints(a,n.axis),r&&n.fill&&Hu(e.ctx,n,a))}},beforeDatasetsDraw(e,t,n){if(n.drawTime!==`beforeDatasetsDraw`)return;let r=e.getSortedVisibleDatasetMetas();for(let t=r.length-1;t>=0;--t){let n=r[t].$filler;Tu(n)&&Hu(e.ctx,n,e.chartArea)}},beforeDatasetDraw(e,t,n){let r=t.meta.$filler;!Tu(r)||n.drawTime!==`beforeDatasetDraw`||Hu(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:`beforeDatasetDraw`}},Xu=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},Zu=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index,Qu=class extends Vc{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t,n){this.maxWidth=e,this.maxHeight=t,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let e=this.options.labels||{},t=Fr(e.generateLabels,[this.chart],this)||[];e.filter&&(t=t.filter(t=>e.filter(t,this.chart.data))),e.sort&&(t=t.sort((t,n)=>e.sort(t,n,this.chart.data))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){let{options:e,ctx:t}=this;if(!e.display){this.width=this.height=0;return}let n=e.labels,r=Ia(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=Xu(n,i),c,l;t.font=r.string,this.isHorizontal()?(c=this.maxWidth,l=this._fitRows(a,i,o,s)+10):(l=this.maxHeight,c=this._fitCols(a,r,o,s)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(l,e.maxHeight||this.maxHeight)}_fitRows(e,t,n,r){let{ctx:i,maxWidth:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.lineWidths=[0],l=r+o,u=e;i.textAlign=`left`,i.textBaseline=`middle`;let d=-1,f=-l;return this.legendItems.forEach((e,p)=>{let m=n+t/2+i.measureText(e.text).width;(p===0||c[c.length-1]+m+2*o>a)&&(u+=l,c[c.length-(p>0?0:1)]=0,f+=l,d++),s[p]={left:0,top:f,row:d,width:m,height:r},c[c.length-1]+=m+o}),u}_fitCols(e,t,n,r){let{ctx:i,maxHeight:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.columnSizes=[],l=a-e,u=o,d=0,f=0,p=0,m=0;return this.legendItems.forEach((e,a)=>{let{itemWidth:h,itemHeight:g}=$u(n,t,i,e,r);a>0&&f+g+2*o>l&&(u+=d+o,c.push({width:d,height:f}),p+=d+o,m++,d=f=0),s[a]={left:p,top:f,col:m,width:h,height:g},d=Math.max(d,h),f+=g+o}),u+=d,c.push({width:d,height:f}),u}adjustHitBoxes(){if(!this.options.display)return;let e=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:n,labels:{padding:r},rtl:i}}=this,a=Io(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=Ri(n,this.left+r,this.right-this.lineWidths[i]);for(let s of t)i!==s.row&&(i=s.row,o=Ri(n,this.left+r,this.right-this.lineWidths[i])),s.top+=this.top+e+r,s.left=a.leftForLtr(a.x(o),s.width),o+=s.width+r}else{let i=0,o=Ri(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(let s of t)s.col!==i&&(i=s.col,o=Ri(n,this.top+e+r,this.bottom-this.columnSizes[i].height)),s.top=o,s.left+=this.left+r,s.left=a.leftForLtr(a.x(s.left),s.width),o+=s.height+r}}isHorizontal(){return this.options.position===`top`||this.options.position===`bottom`}draw(){if(this.options.display){let e=this.ctx;ya(e,this),this._draw(),ba(e)}}_draw(){let{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=ua.color,s=Io(e.rtl,this.left,this.width),c=Ia(a.font),{padding:l}=a,u=c.size,d=u/2,f;this.drawTitle(),r.textAlign=s.textAlign(`left`),r.textBaseline=`middle`,r.lineWidth=.5,r.font=c.string;let{boxWidth:p,boxHeight:m,itemHeight:h}=Xu(a,u),g=function(e,t,n){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;r.save();let i=G(n.lineWidth,1);if(r.fillStyle=G(n.fillStyle,o),r.lineCap=G(n.lineCap,`butt`),r.lineDashOffset=G(n.lineDashOffset,0),r.lineJoin=G(n.lineJoin,`miter`),r.lineWidth=i,r.strokeStyle=G(n.strokeStyle,o),r.setLineDash(G(n.lineDash,[])),a.usePointStyle)_a(r,{radius:m*Math.SQRT2/2,pointStyle:n.pointStyle,rotation:n.rotation,borderWidth:i},s.xPlus(e,p/2),t+d,a.pointStyleWidth&&p);else{let a=t+Math.max((u-m)/2,0),o=s.leftForLtr(e,p),c=Pa(n.borderRadius);r.beginPath(),Object.values(c).some(e=>e!==0)?Da(r,{x:o,y:a,w:p,h:m,radius:c}):r.rect(o,a,p,m),r.fill(),i!==0&&r.stroke()}r.restore()},_=function(e,t,n){Ea(r,n.text,e,t+h/2,c,{strikethrough:n.hidden,textAlign:s.textAlign(n.textAlign)})},v=this.isHorizontal(),y=this._computeTitleHeight();f=v?{x:Ri(i,this.left+l,this.right-n[0]),y:this.top+l+y,line:0}:{x:this.left+l,y:Ri(i,this.top+y+l,this.bottom-t[0].height),line:0},Lo(this.ctx,e.textDirection);let b=h+l;this.legendItems.forEach((o,u)=>{r.strokeStyle=o.fontColor,r.fillStyle=o.fontColor;let m=r.measureText(o.text).width,h=s.textAlign(o.textAlign||=a.textAlign),x=p+d+m,S=f.x,C=f.y;if(s.setWidth(this.width),v?u>0&&S+x+l>this.right&&(C=f.y+=b,f.line++,S=f.x=Ri(i,this.left+l,this.right-n[f.line])):u>0&&C+b>this.bottom&&(S=f.x=S+t[f.line].width+l,f.line++,C=f.y=Ri(i,this.top+y+l,this.bottom-t[f.line].height)),g(s.x(S),C,o),S=zi(h,S+p+d,v?S+x:this.right,e.rtl),_(s.x(S),C,o),v)f.x+=x+l;else if(typeof o.text!=`string`){let e=c.lineHeight;f.y+=nd(o,e)+l}else f.y+=b}),Ro(this.ctx,e.textDirection)}drawTitle(){let e=this.options,t=e.title,n=Ia(t.font),r=Fa(t.padding);if(!t.display)return;let i=Io(e.rtl,this.left,this.width),a=this.ctx,o=t.position,s=n.size/2,c=r.top+s,l,u=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),l=this.top+c,u=Ri(e.align,u,this.right-d);else{let t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);l=c+Ri(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}let f=Ri(o,u,u+d);a.textAlign=i.textAlign(Li(o)),a.textBaseline=`middle`,a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,Ea(a,t.text,f,l,n)}_computeTitleHeight(){let e=this.options.title,t=Ia(e.font),n=Fa(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(Ei(e,this.left,this.right)&&Ei(t,this.top,this.bottom)){for(i=this.legendHitBoxes,n=0;n<i.length;++n)if(r=i[n],Ei(e,r.left,r.left+r.width)&&Ei(t,r.top,r.top+r.height))return this.legendItems[n]}return null}handleEvent(e){let t=this.options;if(!rd(e.type,t))return;let n=this._getLegendItemAt(e.x,e.y);if(e.type===`mousemove`||e.type===`mouseout`){let r=this._hoveredItem,i=Zu(r,n);r&&!i&&Fr(t.onLeave,[e,r,this],this),this._hoveredItem=n,n&&!i&&Fr(t.onHover,[e,n,this],this)}else n&&Fr(t.onClick,[e,n,this],this)}};function $u(e,t,n,r,i){return{itemWidth:ed(r,e,t,n),itemHeight:td(i,r,t.lineHeight)}}function ed(e,t,n,r){let i=e.text;return i&&typeof i!=`string`&&(i=i.reduce((e,t)=>e.length>t.length?e:t)),t+n.size/2+r.measureText(i).width}function td(e,t,n){let r=e;return typeof t.text!=`string`&&(r=nd(t,n)),r}function nd(e,t){return t*(e.text?e.text.length:0)}function rd(e,t){return!!((e===`mousemove`||e===`mouseout`)&&(t.onHover||t.onLeave)||t.onClick&&(e===`click`||e===`mouseup`))}var id={id:`legend`,_element:Qu,start(e,t,n){let r=e.legend=new Qu({ctx:e.ctx,options:n,chart:e});_c.configure(e,r,n),_c.addBox(e,r)},stop(e){_c.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){let r=e.legend;_c.configure(e,r,n),r.options=n},afterUpdate(e){let t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:`top`,align:`center`,fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){let r=t.datasetIndex,i=n.chart;i.isDatasetVisible(r)?(i.hide(r),t.hidden=!0):(i.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){let t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:i,color:a,useBorderRadius:o,borderRadius:s}}=e.legend.options;return e._getSortedDatasetMetas().map(e=>{let c=e.controller.getStyle(n?0:void 0),l=Fa(c.borderWidth);return{text:t[e.index].label,fillStyle:c.backgroundColor,fontColor:a,hidden:!e.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:c.borderColor,pointStyle:r||c.pointStyle,rotation:c.rotation,textAlign:i||c.textAlign,borderRadius:o&&(s||c.borderRadius),datasetIndex:e.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:`center`,text:``}},descriptors:{_scriptable:e=>!e.startsWith(`on`),labels:{_scriptable:e=>![`generateLabels`,`filter`,`sort`].includes(e)}}},ad=class extends Vc{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t){let n=this.options;if(this.left=0,this.top=0,!n.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=e,this.height=this.bottom=t;let r=U(n.text)?n.text.length:1;this._padding=Fa(n.padding);let i=r*Ia(n.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=i:this.width=i}isHorizontal(){let e=this.options.position;return e===`top`||e===`bottom`}_drawArgs(e){let{top:t,left:n,bottom:r,right:i,options:a}=this,o=a.align,s=0,c,l,u;return this.isHorizontal()?(l=Ri(o,n,i),u=t+e,c=i-n):(a.position===`left`?(l=n+e,u=Ri(o,r,t),s=$r*-.5):(l=i-e,u=Ri(o,t,r),s=$r*.5),c=r-t),{titleX:l,titleY:u,maxWidth:c,rotation:s}}draw(){let e=this.ctx,t=this.options;if(!t.display)return;let n=Ia(t.font),r=n.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:o,rotation:s}=this._drawArgs(r);Ea(e,t.text,0,0,n,{color:t.color,maxWidth:o,rotation:s,textAlign:Li(t.align),textBaseline:`middle`,translation:[i,a]})}};function od(e,t){let n=new ad({ctx:e.ctx,options:t,chart:e});_c.configure(e,n,t),_c.addBox(e,n),e.titleBlock=n}var sd={id:`title`,_element:ad,start(e,t,n){od(e,n)},stop(e){let t=e.titleBlock;_c.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){let r=e.titleBlock;_c.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`bold`},fullSize:!0,padding:10,position:`top`,text:``,weight:2e3},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},cd={average(e){if(!e.length)return!1;let t,n,r=new Set,i=0,a=0;for(t=0,n=e.length;t<n;++t){let n=e[t].element;if(n&&n.hasValue()){let e=n.tooltipPosition();r.add(e.x),i+=e.y,++a}}return a===0||r.size===0?!1:{x:[...r].reduce((e,t)=>e+t)/r.size,y:i/a}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,i=1/0,a,o,s;for(a=0,o=e.length;a<o;++a){let n=e[a].element;if(n&&n.hasValue()){let e=bi(t,n.getCenterPoint());e<i&&(i=e,s=n)}}if(s){let e=s.tooltipPosition();n=e.x,r=e.y}return{x:n,y:r}}};function ld(e,t){return t&&(U(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function ud(e){return(typeof e==`string`||e instanceof String)&&e.indexOf(`
11
+ `)>-1?e.split(`
12
+ `):e}function dd(e,t){let{element:n,datasetIndex:r,index:i}=t,a=e.getDatasetMeta(r).controller,{label:o,value:s}=a.getLabelAndValue(i);return{chart:e,label:o,parsed:a.getParsed(i),raw:e.data.datasets[r].data[i],formattedValue:s,dataset:a.getDataset(),dataIndex:i,datasetIndex:r,element:n}}function fd(e,t){let n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,c=Ia(t.bodyFont),l=Ia(t.titleFont),u=Ia(t.footerFont),d=a.length,f=i.length,p=r.length,m=Fa(t.padding),h=m.height,g=0,_=r.reduce((e,t)=>e+t.before.length+t.lines.length+t.after.length,0);if(_+=e.beforeBody.length+e.afterBody.length,d&&(h+=d*l.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),_){let e=t.displayColors?Math.max(s,c.lineHeight):c.lineHeight;h+=p*e+(_-p)*c.lineHeight+(_-1)*t.bodySpacing}f&&(h+=t.footerMarginTop+f*u.lineHeight+(f-1)*t.footerSpacing);let v=0,y=function(e){g=Math.max(g,n.measureText(e).width+v)};return n.save(),n.font=l.string,Ir(e.title,y),n.font=c.string,Ir(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?o+2+t.boxPadding:0,Ir(r,e=>{Ir(e.before,y),Ir(e.lines,y),Ir(e.after,y)}),v=0,n.font=u.string,Ir(e.footer,y),n.restore(),g+=m.width,{width:g,height:h}}function pd(e,t){let{y:n,height:r}=t;return n<r/2?`top`:n>e.height-r/2?`bottom`:`center`}function md(e,t,n,r){let{x:i,width:a}=r,o=n.caretSize+n.caretPadding;if(e===`left`&&i+a+o>t.width||e===`right`&&i-a-o<0)return!0}function hd(e,t,n,r){let{x:i,width:a}=n,{width:o,chartArea:{left:s,right:c}}=e,l=`center`;return r===`center`?l=i<=(s+c)/2?`left`:`right`:i<=a/2?l=`left`:i>=o-a/2&&(l=`right`),md(l,e,t,n)&&(l=`center`),l}function gd(e,t,n){let r=n.yAlign||t.yAlign||pd(e,n);return{xAlign:n.xAlign||t.xAlign||hd(e,t,n,r),yAlign:r}}function _d(e,t){let{x:n,width:r}=e;return t===`right`?n-=r:t===`center`&&(n-=r/2),n}function vd(e,t,n){let{y:r,height:i}=e;return t===`top`?r+=n:t===`bottom`?r-=i+n:r-=i/2,r}function yd(e,t,n,r){let{caretSize:i,caretPadding:a,cornerRadius:o}=e,{xAlign:s,yAlign:c}=n,l=i+a,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=Pa(o),m=_d(t,s),h=vd(t,c,l);return c===`center`?s===`left`?m+=l:s===`right`&&(m-=l):s===`left`?m-=Math.max(u,f)+i:s===`right`&&(m+=Math.max(d,p)+i),{x:wi(m,0,r.width-t.width),y:wi(h,0,r.height-t.height)}}function bd(e,t,n){let r=Fa(n.padding);return t===`center`?e.x+e.width/2:t===`right`?e.x+e.width-r.right:e.x+r.left}function Z(e){return ld([],ud(e))}function xd(e,t,n){return za(e,{tooltip:t,tooltipItems:n,type:`tooltip`})}function Sd(e,t){let n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}var Cd={beforeTitle:Ar,title(e){if(e.length>0){let t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode===`dataset`)return t.dataset.label||``;if(t.label)return t.label;if(r>0&&t.dataIndex<r)return n[t.dataIndex]}return``},afterTitle:Ar,beforeBody:Ar,beforeLabel:Ar,label(e){if(this&&this.options&&this.options.mode===`dataset`)return e.label+`: `+e.formattedValue||e.formattedValue;let t=e.dataset.label||``;t&&(t+=`: `);let n=e.formattedValue;return H(n)||(t+=n),t},labelColor(e){let t=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{borderColor:t.borderColor,backgroundColor:t.backgroundColor,borderWidth:t.borderWidth,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(e){let t=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{pointStyle:t.pointStyle,rotation:t.rotation}},afterLabel:Ar,afterBody:Ar,beforeFooter:Ar,footer:Ar,afterFooter:Ar};function wd(e,t,n,r){let i=e[t].call(n,r);return i===void 0?Cd[t].call(n,r):i}var Td=class extends Vc{static positioners=cd;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let e=this._cachedAnimations;if(e)return e;let t=this.chart,n=this.options.setContext(this.getContext()),r=n.enabled&&t.options.animation&&n.animations,i=new is(this.chart,r);return r._cacheable&&(this._cachedAnimations=Object.freeze(i)),i}getContext(){return this.$context||=xd(this.chart.getContext(),this,this._tooltipItems)}getTitle(e,t){let{callbacks:n}=t,r=wd(n,`beforeTitle`,this,e),i=wd(n,`title`,this,e),a=wd(n,`afterTitle`,this,e),o=[];return o=ld(o,ud(r)),o=ld(o,ud(i)),o=ld(o,ud(a)),o}getBeforeBody(e,t){return Z(wd(t.callbacks,`beforeBody`,this,e))}getBody(e,t){let{callbacks:n}=t,r=[];return Ir(e,e=>{let t={before:[],lines:[],after:[]},i=Sd(n,e);ld(t.before,ud(wd(i,`beforeLabel`,this,e))),ld(t.lines,wd(i,`label`,this,e)),ld(t.after,ud(wd(i,`afterLabel`,this,e))),r.push(t)}),r}getAfterBody(e,t){return Z(wd(t.callbacks,`afterBody`,this,e))}getFooter(e,t){let{callbacks:n}=t,r=wd(n,`beforeFooter`,this,e),i=wd(n,`footer`,this,e),a=wd(n,`afterFooter`,this,e),o=[];return o=ld(o,ud(r)),o=ld(o,ud(i)),o=ld(o,ud(a)),o}_createItems(e){let t=this._active,n=this.chart.data,r=[],i=[],a=[],o=[],s,c;for(s=0,c=t.length;s<c;++s)o.push(dd(this.chart,t[s]));return e.filter&&(o=o.filter((t,r,i)=>e.filter(t,r,i,n))),e.itemSort&&(o=o.sort((t,r)=>e.itemSort(t,r,n))),Ir(o,t=>{let n=Sd(e.callbacks,t);r.push(wd(n,`labelColor`,this,t)),i.push(wd(n,`labelPointStyle`,this,t)),a.push(wd(n,`labelTextColor`,this,t))}),this.labelColors=r,this.labelPointStyles=i,this.labelTextColors=a,this.dataPoints=o,o}update(e,t){let n=this.options.setContext(this.getContext()),r=this._active,i,a=[];if(!r.length)this.opacity!==0&&(i={opacity:0});else{let e=cd[n.position].call(this,r,this._eventPosition);a=this._createItems(n),this.title=this.getTitle(a,n),this.beforeBody=this.getBeforeBody(a,n),this.body=this.getBody(a,n),this.afterBody=this.getAfterBody(a,n),this.footer=this.getFooter(a,n);let t=this._size=fd(this,n),o=Object.assign({},e,t),s=gd(this.chart,n,o),c=yd(n,o,s,this.chart);this.xAlign=s.xAlign,this.yAlign=s.yAlign,i={opacity:1,x:c.x,y:c.y,width:t.width,height:t.height,caretX:e.x,caretY:e.y}}this._tooltipItems=a,this.$context=void 0,i&&this._resolveAnimations().update(this,i),e&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,n,r){let i=this.getCaretPosition(e,n,r);t.lineTo(i.x1,i.y1),t.lineTo(i.x2,i.y2),t.lineTo(i.x3,i.y3)}getCaretPosition(e,t,n){let{xAlign:r,yAlign:i}=this,{caretSize:a,cornerRadius:o}=n,{topLeft:s,topRight:c,bottomLeft:l,bottomRight:u}=Pa(o),{x:d,y:f}=e,{width:p,height:m}=t,h,g,_,v,y,b;return i===`center`?(y=f+m/2,r===`left`?(h=d,g=h-a,v=y+a,b=y-a):(h=d+p,g=h+a,v=y-a,b=y+a),_=h):(g=r===`left`?d+Math.max(s,l)+a:r===`right`?d+p-Math.max(c,u)-a:this.caretX,i===`top`?(v=f,y=v-a,h=g-a,_=g+a):(v=f+m,y=v+a,h=g+a,_=g-a),b=v),{x1:h,x2:g,x3:_,y1:v,y2:y,y3:b}}drawTitle(e,t,n){let r=this.title,i=r.length,a,o,s;if(i){let c=Io(n.rtl,this.x,this.width);for(e.x=bd(this,n.titleAlign,n),t.textAlign=c.textAlign(n.titleAlign),t.textBaseline=`middle`,a=Ia(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;s<i;++s)t.fillText(r[s],c.x(e.x),e.y+a.lineHeight/2),e.y+=a.lineHeight+o,s+1===i&&(e.y+=n.titleMarginBottom-o)}}_drawColorBox(e,t,n,r,i){let a=this.labelColors[n],o=this.labelPointStyles[n],{boxHeight:s,boxWidth:c}=i,l=Ia(i.bodyFont),u=bd(this,`left`,i),d=r.x(u),f=s<l.lineHeight?(l.lineHeight-s)/2:0,p=t.y+f;if(i.usePointStyle){let t={radius:Math.min(c,s)/2,pointStyle:o.pointStyle,rotation:o.rotation,borderWidth:1},n=r.leftForLtr(d,c)+c/2,l=p+s/2;e.strokeStyle=i.multiKeyBackground,e.fillStyle=i.multiKeyBackground,ga(e,t,n,l),e.strokeStyle=a.borderColor,e.fillStyle=a.backgroundColor,ga(e,t,n,l)}else{e.lineWidth=W(a.borderWidth)?Math.max(...Object.values(a.borderWidth)):a.borderWidth||1,e.strokeStyle=a.borderColor,e.setLineDash(a.borderDash||[]),e.lineDashOffset=a.borderDashOffset||0;let t=r.leftForLtr(d,c),n=r.leftForLtr(r.xPlus(d,1),c-2),o=Pa(a.borderRadius);Object.values(o).some(e=>e!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,Da(e,{x:t,y:p,w:c,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),Da(e,{x:n,y:p+1,w:c-2,h:s-2,radius:o}),e.fill()):(e.fillStyle=i.multiKeyBackground,e.fillRect(t,p,c,s),e.strokeRect(t,p,c,s),e.fillStyle=a.backgroundColor,e.fillRect(n,p+1,c-2,s-2))}e.fillStyle=this.labelTextColors[n]}drawBody(e,t,n){let{body:r}=this,{bodySpacing:i,bodyAlign:a,displayColors:o,boxHeight:s,boxWidth:c,boxPadding:l}=n,u=Ia(n.bodyFont),d=u.lineHeight,f=0,p=Io(n.rtl,this.x,this.width),m=function(n){t.fillText(n,p.x(e.x+f),e.y+d/2),e.y+=d+i},h=p.textAlign(a),g,_,v,y,b,x,S;for(t.textAlign=a,t.textBaseline=`middle`,t.font=u.string,e.x=bd(this,h,n),t.fillStyle=n.bodyColor,Ir(this.beforeBody,m),f=o&&h!==`right`?a===`center`?c/2+l:c+2+l:0,y=0,x=r.length;y<x;++y){for(g=r[y],_=this.labelTextColors[y],t.fillStyle=_,Ir(g.before,m),v=g.lines,o&&v.length&&(this._drawColorBox(t,e,y,p,n),d=Math.max(u.lineHeight,s)),b=0,S=v.length;b<S;++b)m(v[b]),d=u.lineHeight;Ir(g.after,m)}f=0,d=u.lineHeight,Ir(this.afterBody,m),e.y-=i}drawFooter(e,t,n){let r=this.footer,i=r.length,a,o;if(i){let s=Io(n.rtl,this.x,this.width);for(e.x=bd(this,n.footerAlign,n),e.y+=n.footerMarginTop,t.textAlign=s.textAlign(n.footerAlign),t.textBaseline=`middle`,a=Ia(n.footerFont),t.fillStyle=n.footerColor,t.font=a.string,o=0;o<i;++o)t.fillText(r[o],s.x(e.x),e.y+a.lineHeight/2),e.y+=a.lineHeight+n.footerSpacing}}drawBackground(e,t,n,r){let{xAlign:i,yAlign:a}=this,{x:o,y:s}=e,{width:c,height:l}=n,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=Pa(r.cornerRadius);t.fillStyle=r.backgroundColor,t.strokeStyle=r.borderColor,t.lineWidth=r.borderWidth,t.beginPath(),t.moveTo(o+u,s),a===`top`&&this.drawCaret(e,t,n,r),t.lineTo(o+c-d,s),t.quadraticCurveTo(o+c,s,o+c,s+d),a===`center`&&i===`right`&&this.drawCaret(e,t,n,r),t.lineTo(o+c,s+l-p),t.quadraticCurveTo(o+c,s+l,o+c-p,s+l),a===`bottom`&&this.drawCaret(e,t,n,r),t.lineTo(o+f,s+l),t.quadraticCurveTo(o,s+l,o,s+l-f),a===`center`&&i===`left`&&this.drawCaret(e,t,n,r),t.lineTo(o,s+u),t.quadraticCurveTo(o,s,o+u,s),t.closePath(),t.fill(),r.borderWidth>0&&t.stroke()}_updateAnimationTarget(e){let t=this.chart,n=this.$animations,r=n&&n.x,i=n&&n.y;if(r||i){let n=cd[e.position].call(this,this._active,this._eventPosition);if(!n)return;let a=this._size=fd(this,e),o=Object.assign({},n,this._size),s=gd(t,e,o),c=yd(e,o,s,t);(r._to!==c.x||i._to!==c.y)&&(this.xAlign=s.xAlign,this.yAlign=s.yAlign,this.width=a.width,this.height=a.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){let t=this.options.setContext(this.getContext()),n=this.opacity;if(!n)return;this._updateAnimationTarget(t);let r={width:this.width,height:this.height},i={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;let a=Fa(t.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&o&&(e.save(),e.globalAlpha=n,this.drawBackground(i,e,r,t),Lo(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),Ro(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){let n=this._active,r=e.map(({datasetIndex:e,index:t})=>{let n=this.chart.getDatasetMeta(e);if(!n)throw Error(`Cannot find a dataset at index `+e);return{datasetIndex:e,element:n.data[t],index:t}}),i=!Lr(n,r),a=this._positionChanged(r,t);(i||a)&&(this._active=r,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,n=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let r=this.options,i=this._active||[],a=this._getActiveElements(e,i,t,n),o=this._positionChanged(a,e),s=t||!Lr(a,i)||o;return s&&(this._active=a,(r.enabled||r.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),s}_getActiveElements(e,t,n,r){let i=this.options;if(e.type===`mouseout`)return[];if(!r)return t.filter(e=>this.chart.data.datasets[e.datasetIndex]&&this.chart.getDatasetMeta(e.datasetIndex).controller.getParsed(e.index)!==void 0);let a=this.chart.getElementsAtEventForMode(e,i.mode,i,n);return i.reverse&&a.reverse(),a}_positionChanged(e,t){let{caretX:n,caretY:r,options:i}=this,a=cd[i.position].call(this,e,t);return a!==!1&&(n!==a.x||r!==a.y)}},Ed={id:`tooltip`,_element:Td,positioners:cd,afterInit(e,t,n){n&&(e.tooltip=new Td({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){let t=e.tooltip;if(t&&t._willRender()){let n={tooltip:t};if(e.notifyPlugins(`beforeTooltipDraw`,{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins(`afterTooltipDraw`,n)}},afterEvent(e,t){if(e.tooltip){let n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:`average`,backgroundColor:`rgba(0,0,0,0.8)`,titleColor:`#fff`,titleFont:{weight:`bold`},titleSpacing:2,titleMarginBottom:6,titleAlign:`left`,bodyColor:`#fff`,bodySpacing:2,bodyFont:{},bodyAlign:`left`,footerColor:`#fff`,footerSpacing:2,footerMarginTop:6,footerFont:{weight:`bold`},footerAlign:`left`,padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:`#fff`,displayColors:!0,boxPadding:0,borderColor:`rgba(0,0,0,0)`,borderWidth:0,animation:{duration:400,easing:`easeOutQuart`},animations:{numbers:{type:`number`,properties:[`x`,`y`,`width`,`height`,`caretX`,`caretY`]},opacity:{easing:`linear`,duration:200}},callbacks:Cd},defaultRoutes:{bodyFont:`font`,footerFont:`font`,titleFont:`font`},descriptors:{_scriptable:e=>e!==`filter`&&e!==`itemSort`&&e!==`external`,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:`animation`}},additionalOptionScopes:[`interaction`]},Dd=(e,t,n,r)=>(typeof t==`string`?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function Od(e,t,n,r){let i=e.indexOf(t);return i===-1?Dd(e,t,n,r):i===e.lastIndexOf(t)?i:n}var kd=(e,t)=>e===null?null:wi(Math.round(e),0,t);function Ad(e){let t=this.getLabels();return e>=0&&e<t.length?t[e]:e}var jd=class extends sl{static id=`category`;static defaults={ticks:{callback:Ad}};constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){let t=this._addedLabels;if(t.length){let e=this.getLabels();for(let{index:n,label:r}of t)e[n]===r&&e.splice(n,1);this._addedLabels=[]}super.init(e)}parse(e,t){if(H(e))return null;let n=this.getLabels();return t=isFinite(t)&&n[t]===e?t:Od(n,e,G(t,e),this._addedLabels),kd(t,n.length-1)}determineDataLimits(){let{minDefined:e,maxDefined:t}=this.getUserBounds(),{min:n,max:r}=this.getMinMax(!0);this.options.bounds===`ticks`&&(e||(n=0),t||(r=this.getLabels().length-1)),this.min=n,this.max=r}buildTicks(){let e=this.min,t=this.max,n=this.options.offset,r=[],i=this.getLabels();i=e===0&&t===i.length-1?i:i.slice(e,t+1),this._valueRange=Math.max(i.length-+!n,1),this._startValue=this.min-(n?.5:0);for(let n=e;n<=t;n++)r.push({value:n});return r}getLabelForValue(e){return Ad.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return typeof e!=`number`&&(e=this.parse(e)),e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){let t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}};function Md(e,t){let n=[],{bounds:r,step:i,min:a,max:o,precision:s,count:c,maxTicks:l,maxDigits:u,includeBounds:d}=e,f=i||1,p=l-1,{min:m,max:h}=t,g=!H(a),_=!H(o),v=!H(c),y=(h-m)/(u+1),b=ui((h-m)/p/f)*f,x,S,C,w;if(b<1e-14&&!g&&!_)return[{value:m},{value:h}];w=Math.ceil(h/b)-Math.floor(m/b),w>p&&(b=ui(w*b/p/f)*f),H(s)||(x=10**s,b=Math.ceil(b*x)/x),r===`ticks`?(S=Math.floor(m/b)*b,C=Math.ceil(h/b)*b):(S=m,C=h),g&&_&&i&&mi((o-a)/i,b/1e3)?(w=Math.round(Math.min((o-a)/b,l)),b=(o-a)/w,S=a,C=o):v?(S=g?a:S,C=_?o:C,w=c-1,b=(C-S)/w):(w=(C-S)/b,w=li(w,Math.round(w),b/1e3)?Math.round(w):Math.ceil(w));let T=Math.max(vi(b),vi(S));x=10**(H(s)?T:s),S=Math.round(S*x)/x,C=Math.round(C*x)/x;let E=0;for(g&&(d&&S!==a?(n.push({value:a}),S<a&&E++,li(Math.round((S+E*b)*x)/x,a,Nd(a,y,e))&&E++):S<a&&E++);E<w;++E){let e=Math.round((S+E*b)*x)/x;if(_&&e>o)break;n.push({value:e})}return _&&d&&C!==o?n.length&&li(n[n.length-1].value,o,Nd(o,y,e))?n[n.length-1].value=o:n.push({value:o}):(!_||C===o)&&n.push({value:C}),n}function Nd(e,t,{horizontal:n,minRotation:r}){let i=gi(r),a=(n?Math.sin(i):Math.cos(i))||.001,o=.75*t*(``+e).length;return Math.min(t/a,o)}var Q=class extends sl{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,t){return H(e)||(typeof e==`number`||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){let{beginAtZero:e}=this.options,{minDefined:t,maxDefined:n}=this.getUserBounds(),{min:r,max:i}=this,a=e=>r=t?r:e,o=e=>i=n?i:e;if(e){let e=ci(r),t=ci(i);e<0&&t<0?o(0):e>0&&t>0&&a(0)}if(r===i){let t=i===0?1:Math.abs(i*.05);o(i+t),e||a(r-t)}this.min=r,this.max=i}getTickLimit(){let{maxTicksLimit:e,stepSize:t}=this.options.ticks,n;return t?(n=Math.ceil(this.max/t)-Math.floor(this.min/t)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${t} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e||=11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return 1/0}buildTicks(){let e=this.options,t=e.ticks,n=this.getTickLimit();n=Math.max(2,n);let r=Md({maxTicks:n,bounds:e.bounds,min:e.min,max:e.max,precision:t.precision,step:t.stepSize,count:t.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:t.minRotation||0,includeBounds:t.includeBounds!==!1},this._range||this);return e.bounds===`ticks`&&hi(r,this,`value`),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){let e=this.ticks,t=this.min,n=this.max;if(super.configure(),this.options.offset&&e.length){let r=(n-t)/Math.max(e.length-1,1)/2;t-=r,n+=r}this._startValue=t,this._endValue=n,this._valueRange=n-t}getLabelForValue(e){return ta(e,this.chart.options.locale,this.options.ticks.format)}},Pd=class extends Q{static id=`linear`;static defaults={ticks:{callback:ia.formatters.numeric}};determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=Mr(e)?e:0,this.max=Mr(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){let e=this.isHorizontal(),t=e?this.width:this.height,n=gi(this.options.ticks.minRotation),r=(e?Math.sin(n):Math.cos(n))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(t/Math.min(40,i.lineHeight/r))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}},Fd=e=>Math.floor(si(e)),Id=(e,t)=>10**(Fd(e)+t);function Ld(e){return e/10**Fd(e)==1}function Rd(e,t,n){let r=10**n,i=Math.floor(e/r);return Math.ceil(t/r)-i}function zd(e,t){let n=Fd(t-e);for(;Rd(e,t,n)>10;)n++;for(;Rd(e,t,n)<10;)n--;return Math.min(n,Fd(e))}function Bd(e,{min:t,max:n}){t=Nr(e.min,t);let r=[],i=Fd(t),a=zd(t,n),o=a<0?10**Math.abs(a):1,s=10**a,c=i>a?10**i:0,l=Math.round((t-c)*o)/o,u=Math.floor((t-c)/s/10)*s*10,d=Math.floor((l-u)/10**a),f=Nr(e.min,Math.round((c+u+d*10**a)*o)/o);for(;f<n;)r.push({value:f,major:Ld(f),significand:d}),d>=10?d=d<15?15:20:d++,d>=20&&(a++,d=2,o=a>=0?1:o),f=Math.round((c+u+d*10**a)*o)/o;let p=Nr(e.max,f);return r.push({value:p,major:Ld(p),significand:d}),r}(class extends sl{static id=`logarithmic`;static defaults={ticks:{callback:ia.formatters.logarithmic,major:{enabled:!0}}};constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(e,t){let n=Q.prototype.parse.apply(this,[e,t]);if(n===0){this._zero=!0;return}return Mr(n)&&n>0?n:null}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=Mr(e)?Math.max(0,e):null,this.max=Mr(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!Mr(this._userMin)&&(this.min=e===Id(this.min,0)?Id(this.min,-1):Id(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:e,maxDefined:t}=this.getUserBounds(),n=this.min,r=this.max,i=t=>n=e?n:t,a=e=>r=t?r:e;n===r&&(n<=0?(i(1),a(10)):(i(Id(n,-1)),a(Id(r,1)))),n<=0&&i(Id(r,-1)),r<=0&&a(Id(n,1)),this.min=n,this.max=r}buildTicks(){let e=this.options,t=Bd({min:this._userMin,max:this._userMax},this);return e.bounds===`ticks`&&hi(t,this,`value`),e.reverse?(t.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),t}getLabelForValue(e){return e===void 0?`0`:ta(e,this.chart.options.locale,this.options.ticks.format)}configure(){let e=this.min;super.configure(),this._startValue=si(e),this._valueRange=si(this.max)-si(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(si(e)-this._startValue)/this._valueRange)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return 10**(this._startValue+t*this._valueRange)}});function Vd(e){let t=e.ticks;if(t.display&&e.display){let e=Fa(t.backdropPadding);return G(t.font&&t.font.size,ua.font.size)+e.height}return 0}function Hd(e,t,n){return n=U(n)?n:[n],{w:pa(e,t.string,n),h:n.length*t.lineHeight}}function Ud(e,t,n,r,i){return e===r||e===i?{start:t-n/2,end:t+n/2}:e<r||e>i?{start:t-n,end:t}:{start:t,end:t+n}}function Wd(e){let t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},n=Object.assign({},t),r=[],i=[],a=e._pointLabels.length,o=e.options.pointLabels,s=o.centerPointLabels?$r/a:0;for(let c=0;c<a;c++){let a=o.setContext(e.getPointLabelContext(c));i[c]=a.padding;let l=e.getPointPosition(c,e.drawingArea+i[c],s),u=Ia(a.font),d=Hd(e.ctx,u,e._pointLabels[c]);r[c]=d;let f=Si(e.getIndexAngle(c)+s),p=Math.round(_i(f));Gd(n,t,f,Ud(p,l.x,d.w,0,180),Ud(p,l.y,d.h,90,270))}e.setCenterPoint(t.l-n.l,n.r-t.r,t.t-n.t,n.b-t.b),e._pointLabelItems=Jd(e,r,i)}function Gd(e,t,n,r,i){let a=Math.abs(Math.sin(n)),o=Math.abs(Math.cos(n)),s=0,c=0;r.start<t.l?(s=(t.l-r.start)/a,e.l=Math.min(e.l,t.l-s)):r.end>t.r&&(s=(r.end-t.r)/a,e.r=Math.max(e.r,t.r+s)),i.start<t.t?(c=(t.t-i.start)/o,e.t=Math.min(e.t,t.t-c)):i.end>t.b&&(c=(i.end-t.b)/o,e.b=Math.max(e.b,t.b+c))}function Kd(e,t,n){let r=e.drawingArea,{extra:i,additionalAngle:a,padding:o,size:s}=n,c=e.getPointPosition(t,r+i+o,a),l=Math.round(_i(Si(c.angle+ii))),u=Zd(c.y,s.h,l),d=Yd(l),f=Xd(c.x,s.w,d);return{visible:!0,x:c.x,y:u,textAlign:d,left:f,top:u,right:f+s.w,bottom:u+s.h}}function qd(e,t){if(!t)return!0;let{left:n,top:r,right:i,bottom:a}=e;return!(va({x:n,y:r},t)||va({x:n,y:a},t)||va({x:i,y:r},t)||va({x:i,y:a},t))}function Jd(e,t,n){let r=[],i=e._pointLabels.length,a=e.options,{centerPointLabels:o,display:s}=a.pointLabels,c={extra:Vd(a)/2,additionalAngle:o?$r/i:0},l;for(let a=0;a<i;a++){c.padding=n[a],c.size=t[a];let i=Kd(e,a,c);r.push(i),s===`auto`&&(i.visible=qd(i,l),i.visible&&(l=i))}return r}function Yd(e){return e===0||e===180?`center`:e<180?`left`:`right`}function Xd(e,t,n){return n===`right`?e-=t:n===`center`&&(e-=t/2),e}function Zd(e,t,n){return n===90||n===270?e-=t/2:(n>270||n<90)&&(e-=t),e}function Qd(e,t,n){let{left:r,top:i,right:a,bottom:o}=n,{backdropColor:s}=t;if(!H(s)){let n=Pa(t.borderRadius),c=Fa(t.backdropPadding);e.fillStyle=s;let l=r-c.left,u=i-c.top,d=a-r+c.width,f=o-i+c.height;Object.values(n).some(e=>e!==0)?(e.beginPath(),Da(e,{x:l,y:u,w:d,h:f,radius:n}),e.fill()):e.fillRect(l,u,d,f)}}function $d(e,t){let{ctx:n,options:{pointLabels:r}}=e;for(let i=t-1;i>=0;i--){let t=e._pointLabelItems[i];if(!t.visible)continue;let a=r.setContext(e.getPointLabelContext(i));Qd(n,a,t);let o=Ia(a.font),{x:s,y:c,textAlign:l}=t;Ea(n,e._pointLabels[i],s,c+o.lineHeight/2,o,{color:a.color,textAlign:l,textBaseline:`middle`})}}function ef(e,t,n,r){let{ctx:i}=e;if(n)i.arc(e.xCenter,e.yCenter,t,0,ei);else{let n=e.getPointPosition(0,t);i.moveTo(n.x,n.y);for(let a=1;a<r;a++)n=e.getPointPosition(a,t),i.lineTo(n.x,n.y)}}function tf(e,t,n,r,i){let a=e.ctx,o=t.circular,{color:s,lineWidth:c}=t;!o&&!r||!s||!c||n<0||(a.save(),a.strokeStyle=s,a.lineWidth=c,a.setLineDash(i.dash||[]),a.lineDashOffset=i.dashOffset,a.beginPath(),ef(e,n,o,r),a.closePath(),a.stroke(),a.restore())}function nf(e,t,n){return za(e,{label:n,index:t,type:`pointLabel`})}(class extends Q{static id=`radialLinear`;static defaults={display:!0,animate:!0,position:`chartArea`,angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:ia.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(e){return e},padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":`borderColor`,"pointLabels.color":`color`,"ticks.color":`color`};static descriptors={angleLines:{_fallback:`grid`}};constructor(e){super(e),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){let e=this._padding=Fa(Vd(this.options)/2),t=this.width=this.maxWidth-e.width,n=this.height=this.maxHeight-e.height;this.xCenter=Math.floor(this.left+t/2+e.left),this.yCenter=Math.floor(this.top+n/2+e.top),this.drawingArea=Math.floor(Math.min(t,n)/2)}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!1);this.min=Mr(e)&&!isNaN(e)?e:0,this.max=Mr(t)&&!isNaN(t)?t:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/Vd(this.options))}generateTickLabels(e){Q.prototype.generateTickLabels.call(this,e),this._pointLabels=this.getLabels().map((e,t)=>{let n=Fr(this.options.pointLabels.callback,[e,t],this);return n||n===0?n:``}).filter((e,t)=>this.chart.getDataVisibility(t))}fit(){let e=this.options;e.display&&e.pointLabels.display?Wd(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,t,n,r){this.xCenter+=Math.floor((e-t)/2),this.yCenter+=Math.floor((n-r)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,t,n,r))}getIndexAngle(e){let t=ei/(this._pointLabels.length||1),n=this.options.startAngle||0;return Si(e*t+gi(n))}getDistanceFromCenterForValue(e){if(H(e))return NaN;let t=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*t:(e-this.min)*t}getValueForDistanceFromCenter(e){if(H(e))return NaN;let t=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-t:this.min+t}getPointLabelContext(e){let t=this._pointLabels||[];if(e>=0&&e<t.length){let n=t[e];return nf(this.getContext(),e,n)}}getPointPosition(e,t,n=0){let r=this.getIndexAngle(e)-ii+n;return{x:Math.cos(r)*t+this.xCenter,y:Math.sin(r)*t+this.yCenter,angle:r}}getPointPositionForValue(e,t){return this.getPointPosition(e,this.getDistanceFromCenterForValue(t))}getBasePosition(e){return this.getPointPositionForValue(e||0,this.getBaseValue())}getPointLabelPosition(e){let{left:t,top:n,right:r,bottom:i}=this._pointLabelItems[e];return{left:t,top:n,right:r,bottom:i}}drawBackground(){let{backgroundColor:e,grid:{circular:t}}=this.options;if(e){let n=this.ctx;n.save(),n.beginPath(),ef(this,this.getDistanceFromCenterForValue(this._endValue),t,this._pointLabels.length),n.closePath(),n.fillStyle=e,n.fill(),n.restore()}}drawGrid(){let e=this.ctx,t=this.options,{angleLines:n,grid:r,border:i}=t,a=this._pointLabels.length,o,s,c;if(t.pointLabels.display&&$d(this,a),r.display&&this.ticks.forEach((e,t)=>{if(t!==0||t===0&&this.min<0){s=this.getDistanceFromCenterForValue(e.value);let n=this.getContext(t),o=r.setContext(n),c=i.setContext(n);tf(this,o,s,a,c)}}),n.display){for(e.save(),o=a-1;o>=0;o--){let r=n.setContext(this.getPointLabelContext(o)),{color:i,lineWidth:a}=r;!a||!i||(e.lineWidth=a,e.strokeStyle=i,e.setLineDash(r.borderDash),e.lineDashOffset=r.borderDashOffset,s=this.getDistanceFromCenterForValue(t.reverse?this.min:this.max),c=this.getPointPosition(o,s),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(c.x,c.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){let e=this.ctx,t=this.options,n=t.ticks;if(!n.display)return;let r=this.getIndexAngle(0),i,a;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(r),e.textAlign=`center`,e.textBaseline=`middle`,this.ticks.forEach((r,o)=>{if(o===0&&this.min>=0&&!t.reverse)return;let s=n.setContext(this.getContext(o)),c=Ia(s.font);if(i=this.getDistanceFromCenterForValue(this.ticks[o].value),s.showLabelBackdrop){e.font=c.string,a=e.measureText(r.label).width,e.fillStyle=s.backdropColor;let t=Fa(s.backdropPadding);e.fillRect(-a/2-t.left,-i-c.size/2-t.top,a+t.width,c.size+t.height)}Ea(e,r.label,0,-i,c,{color:s.color,strokeColor:s.textStrokeColor,strokeWidth:s.textStrokeWidth})}),e.restore()}drawTitle(){}});var rf={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},af=Object.keys(rf);function of(e,t){return e-t}function sf(e,t){if(H(t))return null;let n=e._adapter,{parser:r,round:i,isoWeekday:a}=e._parseOpts,o=t;return typeof r==`function`&&(o=r(o)),Mr(o)||(o=typeof r==`string`?n.parse(o,r):n.parse(o)),o===null?null:(i&&(o=i===`week`&&(pi(a)||a===!0)?n.startOf(o,`isoWeek`,a):n.startOf(o,i)),+o)}function cf(e,t,n,r){let i=af.length;for(let a=af.indexOf(e);a<i-1;++a){let e=rf[af[a]],i=e.steps?e.steps:2**53-1;if(e.common&&Math.ceil((n-t)/(i*e.size))<=r)return af[a]}return af[i-1]}function lf(e,t,n,r,i){for(let a=af.length-1;a>=af.indexOf(n);a--){let n=af[a];if(rf[n].common&&e._adapter.diff(i,r,n)>=t-1)return n}return af[n?af.indexOf(n):0]}function uf(e){for(let t=af.indexOf(e)+1,n=af.length;t<n;++t)if(rf[af[t]].common)return af[t]}function df(e,t,n){if(!n)e[t]=!0;else if(n.length){let{lo:r,hi:i}=Di(n,t),a=n[r]>=t?n[r]:n[i];e[a]=!0}}function ff(e,t,n,r){let i=e._adapter,a=+i.startOf(t[0].value,r),o=t[t.length-1].value,s,c;for(s=a;s<=o;s=+i.add(s,1,r))c=n[s],c>=0&&(t[c].major=!0);return t}function pf(e,t,n){let r=[],i={},a=t.length,o,s;for(o=0;o<a;++o)s=t[o],i[s]=o,r.push({value:s,major:!1});return a===0||!n?r:ff(e,r,i,n)}var mf=class extends sl{static id=`time`;static defaults={bounds:`data`,adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:`millisecond`,displayFormats:{}},ticks:{source:`auto`,callback:!1,major:{enabled:!1}}};constructor(e){super(e),this._cache={data:[],labels:[],all:[]},this._unit=`day`,this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(e,t={}){let n=e.time||={},r=this._adapter=new Gs._date(e.adapters.date);r.init(t),Hr(n.displayFormats,r.formats()),this._parseOpts={parser:n.parser,round:n.round,isoWeekday:n.isoWeekday},super.init(e),this._normalized=t.normalized}parse(e,t){return e===void 0?null:sf(this,e)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){let e=this.options,t=this._adapter,n=e.time.unit||`day`,{min:r,max:i,minDefined:a,maxDefined:o}=this.getUserBounds();function s(e){!a&&!isNaN(e.min)&&(r=Math.min(r,e.min)),!o&&!isNaN(e.max)&&(i=Math.max(i,e.max))}(!a||!o)&&(s(this._getLabelBounds()),(e.bounds!==`ticks`||e.ticks.source!==`labels`)&&s(this.getMinMax(!1))),r=Mr(r)&&!isNaN(r)?r:+t.startOf(Date.now(),n),i=Mr(i)&&!isNaN(i)?i:+t.endOf(Date.now(),n)+1,this.min=Math.min(r,i-1),this.max=Math.max(r+1,i)}_getLabelBounds(){let e=this.getLabelTimestamps(),t=1/0,n=-1/0;return e.length&&(t=e[0],n=e[e.length-1]),{min:t,max:n}}buildTicks(){let e=this.options,t=e.time,n=e.ticks,r=n.source===`labels`?this.getLabelTimestamps():this._generate();e.bounds===`ticks`&&r.length&&(this.min=this._userMin||r[0],this.max=this._userMax||r[r.length-1]);let i=this.min,a=this.max,o=ki(r,i,a);return this._unit=t.unit||(n.autoSkip?cf(t.minUnit,this.min,this.max,this._getLabelCapacity(i)):lf(this,o.length,t.minUnit,this.min,this.max)),this._majorUnit=!n.major.enabled||this._unit===`year`?void 0:uf(this._unit),this.initOffsets(r),e.reverse&&o.reverse(),pf(this,o,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(e=>+e.value))}initOffsets(e=[]){let t=0,n=0,r,i;this.options.offset&&e.length&&(r=this.getDecimalForValue(e[0]),t=e.length===1?1-r:(this.getDecimalForValue(e[1])-r)/2,i=this.getDecimalForValue(e[e.length-1]),n=e.length===1?i:(i-this.getDecimalForValue(e[e.length-2]))/2);let a=e.length<3?.5:.25;t=wi(t,0,a),n=wi(n,0,a),this._offsets={start:t,end:n,factor:1/(t+1+n)}}_generate(){let e=this._adapter,t=this.min,n=this.max,r=this.options,i=r.time,a=i.unit||cf(i.minUnit,t,n,this._getLabelCapacity(t)),o=G(r.ticks.stepSize,1),s=a===`week`?i.isoWeekday:!1,c=pi(s)||s===!0,l={},u=t,d,f;if(c&&(u=+e.startOf(u,`isoWeek`,s)),u=+e.startOf(u,c?`day`:a),e.diff(n,t,a)>1e5*o)throw Error(t+` and `+n+` are too far apart with stepSize of `+o+` `+a);let p=r.ticks.source===`data`&&this.getDataTimestamps();for(d=u,f=0;d<n;d=+e.add(d,o,a),f++)df(l,d,p);return(d===n||r.bounds===`ticks`||f===1)&&df(l,d,p),Object.keys(l).sort(of).map(e=>+e)}getLabelForValue(e){let t=this._adapter,n=this.options.time;return n.tooltipFormat?t.format(e,n.tooltipFormat):t.format(e,n.displayFormats.datetime)}format(e,t){let n=this.options.time.displayFormats,r=this._unit,i=t||n[r];return this._adapter.format(e,i)}_tickFormatFunction(e,t,n,r){let i=this.options,a=i.ticks.callback;if(a)return Fr(a,[e,t,n],this);let o=i.time.displayFormats,s=this._unit,c=this._majorUnit,l=s&&o[s],u=c&&o[c],d=n[t],f=c&&u&&d&&d.major;return this._adapter.format(e,r||(f?u:l))}generateTickLabels(e){let t,n,r;for(t=0,n=e.length;t<n;++t)r=e[t],r.label=this._tickFormatFunction(r.value,t,e)}getDecimalForValue(e){return e===null?NaN:(e-this.min)/(this.max-this.min)}getPixelForValue(e){let t=this._offsets,n=this.getDecimalForValue(e);return this.getPixelForDecimal((t.start+n)*t.factor)}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return this.min+n*(this.max-this.min)}_getLabelSize(e){let t=this.options.ticks,n=this.ctx.measureText(e).width,r=gi(this.isHorizontal()?t.maxRotation:t.minRotation),i=Math.cos(r),a=Math.sin(r),o=this._resolveTickFontOptions(0).size;return{w:n*i+o*a,h:n*a+o*i}}_getLabelCapacity(e){let t=this.options.time,n=t.displayFormats,r=n[t.unit]||n.millisecond,i=this._tickFormatFunction(e,0,pf(this,[e],this._majorUnit),r),a=this._getLabelSize(i),o=Math.floor(this.isHorizontal()?this.width/a.w:this.height/a.h)-1;return o>0?o:1}getDataTimestamps(){let e=this._cache.data||[],t,n;if(e.length)return e;let r=this.getMatchingVisibleMetas();if(this._normalized&&r.length)return this._cache.data=r[0].controller.getAllParsedValues(this);for(t=0,n=r.length;t<n;++t)e=e.concat(r[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(e)}getLabelTimestamps(){let e=this._cache.labels||[],t,n;if(e.length)return e;let r=this.getLabels();for(t=0,n=r.length;t<n;++t)e.push(sf(this,r[t]));return this._cache.labels=this._normalized?e:this.normalize(e)}normalize(e){return Ni(e.sort(of))}};function hf(e,t,n){let r=0,i=e.length-1,a,o,s,c;n?(t>=e[r].pos&&t<=e[i].pos&&({lo:r,hi:i}=K(e,`pos`,t)),{pos:a,time:s}=e[r],{pos:o,time:c}=e[i]):(t>=e[r].time&&t<=e[i].time&&({lo:r,hi:i}=K(e,`time`,t)),{time:a,pos:s}=e[r],{time:o,pos:c}=e[i]);let l=o-a;return l?s+(c-s)*(t-a)/l:s}(class extends mf{static id=`timeseries`;static defaults=mf.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let e=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(e);this._minPos=hf(t,this.min),this._tableRange=hf(t,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){let{min:t,max:n}=this,r=[],i=[],a,o,s,c,l;for(a=0,o=e.length;a<o;++a)c=e[a],c>=t&&c<=n&&r.push(c);if(r.length<2)return[{time:t,pos:0},{time:n,pos:1}];for(a=0,o=r.length;a<o;++a)l=r[a+1],s=r[a-1],c=r[a],Math.round((l+s)/2)!==c&&i.push({time:c,pos:a/(o-1)});return i}_generate(){let e=this.min,t=this.max,n=super.getDataTimestamps();return(!n.includes(e)||!n.length)&&n.splice(0,0,e),(!n.includes(t)||n.length===1)&&n.push(t),n.sort((e,t)=>e-t)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;let t=this.getDataTimestamps(),n=this.getLabelTimestamps();return e=t.length&&n.length?this.normalize(t.concat(n)):t.length?t:n,e=this._cache.all=e,e}getDecimalForValue(e){return(hf(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return hf(this._table,n*this._tableRange+this._minPos,!0)}});var gf=`label`;function _f(e,t){typeof e==`function`?e(t):e&&(e.current=t)}function vf(e,t){let n=e.options;n&&t&&Object.assign(n,t)}function yf(e,t){e.labels=t}function bf(e,t,n=gf){let r=[];e.datasets=t.map(t=>{let i=e.datasets.find(e=>e[n]===t[n]);return!i||!t.data||r.includes(i)?{...t}:(r.push(i),Object.assign(i,t),i)})}function xf(e,t=gf){let n={labels:[],datasets:[]};return yf(n,e.labels),bf(n,e.datasets,t),n}function Sf(e,t){let{height:n=150,width:r=300,redraw:i=!1,datasetIdKey:a,type:o,data:s,options:c,plugins:l=[],fallbackContent:u,updateMode:d,...f}=e,p=(0,v.useRef)(null),m=(0,v.useRef)(null),h=()=>{p.current&&(m.current=new Kl(p.current,{type:o,data:xf(s,a),options:c&&{...c},plugins:l}),_f(t,m.current))},g=()=>{_f(t,null),m.current&&=(m.current.destroy(),null)};return(0,v.useEffect)(()=>{!i&&m.current&&c&&vf(m.current,c)},[i,c]),(0,v.useEffect)(()=>{!i&&m.current&&yf(m.current.config.data,s.labels)},[i,s.labels]),(0,v.useEffect)(()=>{!i&&m.current&&s.datasets&&bf(m.current.config.data,s.datasets,a)},[i,s.datasets]),(0,v.useEffect)(()=>{m.current&&(i?(g(),setTimeout(h)):m.current.update(d))},[i,c,s.labels,s.datasets,d]),(0,v.useEffect)(()=>{m.current&&(g(),setTimeout(h))},[o]),(0,v.useEffect)(()=>(h(),()=>g()),[]),(0,P.jsx)(`canvas`,{ref:p,role:`img`,height:n,width:r,...f,children:u})}var Cf=(0,v.forwardRef)(Sf);function wf(e,t){return Kl.register(t),(0,v.forwardRef)((t,n)=>(0,P.jsx)(Cf,{...t,ref:n,type:e}))}var Tf=wf(`line`,Us),Ef=wf(`bar`,Hs),Df=365.2425,Of=6048e5,kf=864e5,Af=3600*24;Af*7,Af*Df/12*3;var jf=Symbol.for(`constructDateFrom`);function Mf(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&jf in e?e[jf](t):e instanceof Date?new e.constructor(t):new Date(t)}function Nf(e,t){return Mf(t||e,e)}var Pf={};function Ff(){return Pf}function If(e,t){let n=Ff(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Nf(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function Lf(e,t){return If(e,{...t,weekStartsOn:1})}function Rf(e,t){let n=Nf(e,t?.in),r=n.getFullYear(),i=Mf(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=Lf(i),o=Mf(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=Lf(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function zf(e){let t=Nf(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function Bf(e,...t){let n=Mf.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function Vf(e,t){let n=Nf(e,t?.in);return n.setHours(0,0,0,0),n}function Hf(e,t,n){let[r,i]=Bf(n?.in,e,t),a=Vf(r),o=Vf(i),s=+a-zf(a),c=+o-zf(o);return Math.round((s-c)/kf)}function Uf(e,t){let n=Rf(e,t),r=Mf(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Lf(r)}function Wf(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function Gf(e){return!(!Wf(e)&&typeof e!=`number`||isNaN(+Nf(e)))}function Kf(e,t){let n=Nf(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}var qf={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},Jf=(e,t,n)=>{let r,i=qf[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function Yf(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Xf={date:Yf({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:Yf({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:Yf({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},Zf={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},Qf=(e,t,n,r)=>Zf[e];function $f(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var ep={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:$f({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:$f({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:$f({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:$f({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:$f({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function tp(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?rp(s,e=>e.test(o)):np(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function np(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function rp(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function ip(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var ap={code:`en-US`,formatDistance:Jf,formatLong:Xf,formatRelative:Qf,localize:ep,match:{ordinalNumber:ip({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:tp({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:tp({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:tp({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:tp({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:tp({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function op(e,t){let n=Nf(e,t?.in);return Hf(n,Kf(n))+1}function sp(e,t){let n=Nf(e,t?.in),r=Lf(n)-+Uf(n);return Math.round(r/Of)+1}function cp(e,t){let n=Nf(e,t?.in),r=n.getFullYear(),i=Ff(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=Mf(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=If(o,t),c=Mf(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=If(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function lp(e,t){let n=Ff(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=cp(e,t),a=Mf(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),If(a,t)}function up(e,t){let n=Nf(e,t?.in),r=If(n,t)-+lp(n,t);return Math.round(r/Of)+1}function $(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var dp={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return $(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):$(n+1,2)},d(e,t){return $(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return $(e.getHours()%12||12,t.length)},H(e,t){return $(e.getHours(),t.length)},m(e,t){return $(e.getMinutes(),t.length)},s(e,t){return $(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return $(Math.trunc(r*10**(n-3)),t.length)}},fp={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},pp={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return dp.y(e,t)},Y:function(e,t,n,r){let i=cp(e,r),a=i>0?i:1-i;return t===`YY`?$(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):$(a,t.length)},R:function(e,t){return $(Rf(e),t.length)},u:function(e,t){return $(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return $(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return $(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return dp.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return $(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=up(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):$(i,t.length)},I:function(e,t,n){let r=sp(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):$(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):dp.d(e,t)},D:function(e,t,n){let r=op(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):$(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return $(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return $(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return $(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?fp.noon:r===0?fp.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?fp.evening:r>=12?fp.afternoon:r>=4?fp.morning:fp.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return dp.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):dp.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):$(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):$(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):dp.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):dp.s(e,t)},S:function(e,t){return dp.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return hp(r);case`XXXX`:case`XX`:return gp(r);default:return gp(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return hp(r);case`xxxx`:case`xx`:return gp(r);default:return gp(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+mp(r,`:`);default:return`GMT`+gp(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+mp(r,`:`);default:return`GMT`+gp(r,`:`)}},t:function(e,t,n){return $(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return $(+e,t.length)}};function mp(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+$(a,2)}function hp(e,t){return e%60==0?(e>0?`-`:`+`)+$(Math.abs(e)/60,2):gp(e,t)}function gp(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=$(Math.trunc(r/60),2),a=$(r%60,2);return n+i+t+a}var _p=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},vp=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},yp={p:vp,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return _p(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`});break}return a.replace(`{{date}}`,_p(r,t)).replace(`{{time}}`,vp(i,t))}},bp=/^D+$/,xp=/^Y+$/,Sp=[`D`,`DD`,`YY`,`YYYY`];function Cp(e){return bp.test(e)}function wp(e){return xp.test(e)}function Tp(e,t,n){let r=Ep(e,t,n);if(console.warn(r),Sp.includes(e))throw RangeError(r)}function Ep(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var Dp=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Op=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,kp=/^'([^]*?)'?$/,Ap=/''/g,jp=/[a-zA-Z]/;function Mp(e,t,n){let r=Ff(),i=n?.locale??r.locale??ap,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=Nf(e,n?.in);if(!Gf(s))throw RangeError(`Invalid time value`);let c=t.match(Op).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=yp[t];return n(e,i.formatLong)}return e}).join(``).match(Dp).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:Np(e)};if(pp[t])return{isToken:!0,value:e};if(t.match(jp))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&wp(a)||!n?.useAdditionalDayOfYearTokens&&Cp(a))&&Tp(a,t,String(e));let o=pp[a[0]];return o(s,a,i.localize,l)}).join(``)}function Np(e){let t=e.match(kp);return t?t[1].replace(Ap,`'`):e}Kl.register(jd,Pd,cu,ou,sd,Ed,id,Yu);function Pp({data:e=[],title:t,height:n=300,color:r=`var(--accent)`,fill:i=!1,showGrid:a=!0,timeFormat:o=`HH:mm`,valueFormatter:s=e=>e.toString(),className:c=``}){if(!e||e.length===0)return(0,P.jsx)(`div`,{className:`line-chart ${c}`,style:{height:n},children:(0,P.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:`100%`,color:`var(--text-muted)`,fontSize:`var(--text-sm)`},children:`No data available`})});let l={labels:e.map(e=>typeof e.timestamp==`string`?Mp(new Date(e.timestamp),o):Mp(e.timestamp,o)),datasets:[{label:t||`Data`,data:e.map(e=>e.value),borderColor:r,backgroundColor:i?`${r}20`:`transparent`,borderWidth:2,fill:i,tension:.4,pointRadius:3,pointHoverRadius:5,pointBackgroundColor:r,pointBorderColor:`var(--surface-strong)`,pointBorderWidth:2}]},u={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!!t,labels:{color:`var(--text-secondary)`,font:{family:`Inter, system-ui, sans-serif`,size:12}}},tooltip:{backgroundColor:`var(--surface-strong)`,titleColor:`var(--text-primary)`,bodyColor:`var(--text-secondary)`,borderColor:`var(--line)`,borderWidth:1,cornerRadius:8,displayColors:!1,callbacks:{label:e=>{let t=s(e.parsed.y);return`${e.dataset.label}: ${t}`}}}},scales:{x:{grid:{display:a,color:`var(--line)`},ticks:{color:`var(--text-muted)`,font:{family:`Inter, system-ui, sans-serif`,size:11}}},y:{grid:{display:a,color:`var(--line)`},ticks:{color:`var(--text-muted)`,font:{family:`Inter, system-ui, sans-serif`,size:11},callback:e=>s(e)}}},interaction:{intersect:!1,mode:`index`}};return(0,P.jsx)(`div`,{className:`line-chart ${c}`,style:{height:n},children:(0,P.jsx)(Tf,{data:l,options:u})})}Kl.register(jd,Pd,vu,sd,Ed,id);function Fp({data:e=[],title:t,height:n=300,horizontal:r=!1,showGrid:i=!0,valueFormatter:a=e=>e.toString(),className:o=``}){if(!e||e.length===0)return(0,P.jsx)(`div`,{className:`bar-chart ${o}`,style:{height:n},children:(0,P.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:`100%`,color:`var(--text-muted)`,fontSize:`var(--text-sm)`},children:`No data available`})});let s={labels:e.map(e=>e.label),datasets:[{label:t||`Data`,data:e.map(e=>e.value),backgroundColor:e.map(e=>e.color?e.color.match(/[a-f0-9]{2}$/i)?e.color:e.color+`20`:`var(--chart-primary)20`),borderColor:e.map(e=>e.color?e.color.replace(/[a-f0-9]{2}$/i,``):`var(--chart-primary)`),borderWidth:1,borderRadius:4,borderSkipped:!1}]},c={responsive:!0,maintainAspectRatio:!1,indexAxis:r?`y`:`x`,plugins:{legend:{display:!!t,labels:{color:`var(--text-secondary)`,font:{family:`Inter, system-ui, sans-serif`,size:12}}},tooltip:{backgroundColor:`var(--surface-strong)`,titleColor:`var(--text-primary)`,bodyColor:`var(--text-secondary)`,borderColor:`var(--line)`,borderWidth:1,cornerRadius:8,displayColors:!1,callbacks:{label:e=>{let t=a(e.parsed[r?`x`:`y`]);return`${e.dataset.label}: ${t}`}}}},scales:{x:{grid:{display:i,color:`var(--line)`},ticks:{color:`var(--text-muted)`,font:{family:`Inter, system-ui, sans-serif`,size:11},callback:r?e=>a(e):void 0}},y:{grid:{display:i,color:`var(--line)`},ticks:{color:`var(--text-muted)`,font:{family:`Inter, system-ui, sans-serif`,size:11},callback:r?void 0:e=>a(e)}}}};return(0,P.jsx)(`div`,{className:`bar-chart ${o}`,style:{height:n},children:(0,P.jsx)(Ef,{data:s,options:c})})}function Ip({title:e,value:t,icon:n,trend:r,sparklineData:i,status:a=`neutral`,description:o,className:s=``}){let c=()=>{switch(r?.direction){case`up`:return`var(--success)`;case`down`:return`var(--danger)`;default:return`var(--text-muted)`}},l=()=>{switch(a){case`healthy`:return`var(--status-healthy)`;case`warning`:return`var(--status-warning)`;case`error`:return`var(--status-error)`;default:return`var(--text-muted)`}};return(0,P.jsxs)(`div`,{className:`metric-card metric-card-${a} ${s}`,children:[(0,P.jsxs)(`div`,{className:`metric-card-header`,children:[(0,P.jsxs)(`div`,{className:`metric-card-title-row`,children:[n&&(0,P.jsx)(`div`,{className:`metric-card-icon`,children:(0,P.jsx)(n,{"aria-hidden":`true`})}),(0,P.jsx)(`h3`,{className:`metric-card-title`,children:e}),a!==`neutral`&&(0,P.jsx)(`div`,{className:`metric-card-status-indicator`,style:{backgroundColor:l()},"aria-label":`Status: ${a}`})]}),o&&(0,P.jsx)(`p`,{className:`metric-card-description`,children:o})]}),(0,P.jsxs)(`div`,{className:`metric-card-content`,children:[(0,P.jsxs)(`div`,{className:`metric-card-value-section`,children:[(0,P.jsx)(`div`,{className:`metric-card-value`,children:t}),r&&(0,P.jsxs)(`div`,{className:`metric-card-trend`,style:{color:c()},children:[(0,P.jsx)(`span`,{className:`trend-arrow trend-${r.direction}`,children:r.direction===`up`?`↗`:r.direction===`down`?`↘`:`→`}),(0,P.jsxs)(`span`,{className:`trend-percentage`,children:[r.percentage>0?`+`:``,r.percentage,`%`]}),r.period&&(0,P.jsx)(`span`,{className:`trend-period`,children:r.period})]})]}),i&&i.length>0&&(0,P.jsx)(`div`,{className:`metric-card-sparkline`,children:(0,P.jsx)(Pp,{data:i,height:60,color:l(),fill:!0,showGrid:!1,valueFormatter:()=>``})})]})]})}function Lp({variant:e=`text`,lines:t=3,height:n,width:r,className:i=``}){return e===`text`?(0,P.jsx)(`div`,{className:`skeleton-container ${i}`,children:Array.from({length:t},(e,n)=>(0,P.jsx)(`div`,{className:`skeleton skeleton-text`,style:{width:n===t-1?`60%`:`100%`}},n))}):e===`card`?(0,P.jsx)(`div`,{className:`skeleton skeleton-card ${i}`,style:{height:n,width:r}}):e===`table-row`?(0,P.jsx)(`div`,{className:`skeleton skeleton-table-row ${i}`,style:{height:n,width:r}}):e===`metric-card`?(0,P.jsxs)(`div`,{className:`skeleton-metric-card ${i}`,children:[(0,P.jsx)(`div`,{className:`skeleton skeleton-text`,style:{width:`40%`,height:`14px`}}),(0,P.jsx)(`div`,{className:`skeleton skeleton-text`,style:{width:`60%`,height:`32px`,marginTop:`8px`}}),(0,P.jsx)(`div`,{className:`skeleton skeleton-text`,style:{width:`30%`,height:`12px`,marginTop:`4px`}})]}):(0,P.jsx)(`div`,{className:`skeleton ${i}`,style:{height:n,width:r}})}function Rp(){let{state:e,retry:t}=Wt((0,v.useCallback)(async()=>{let e=await E(),t=await Promise.allSettled([D(),j(),ce()]),[n,r,i]=t,a=t.filter(e=>e.status===`rejected`).length;return{health:e,providers:n.status===`fulfilled`?n.value:null,usage:r.status===`fulfilled`?r.value:null,cache:i.status===`fulfilled`?i.value:null,telemetryWarning:a>0?`${a} optional telemetry source${a===1?``:`s`} unavailable`:void 0}},[])),n=(0,v.useMemo)(()=>{let e=new Date,t=[];for(let n=23;n>=0;n--){let r=new Date(e.getTime()-n*60*60*1e3),i=75+Math.sin(n*.5)*15,a=(Math.random()-.5)*10;t.push({timestamp:r,value:Math.max(0,Math.min(100,i+a))})}return t},[]),r=(0,v.useMemo)(()=>[{label:`OpenAI`,value:95.2,color:`var(--chart-success)`},{label:`Anthropic`,value:97.8,color:`var(--chart-primary)`},{label:`Kiro`,value:89.1,color:`var(--chart-secondary)`},{label:`Fallback`,value:78.5,color:`var(--chart-warning)`}],[]);if(e.status===`loading`||e.status===`idle`)return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:`Dashboard`,title:`System Status`,description:`Live service health, provider readiness, cache activity, and request telemetry at a glance.`}),(0,P.jsx)(`div`,{className:`metric-grid`,children:Array.from({length:6},(e,t)=>(0,P.jsx)(Lp,{variant:`metric-card`},t))}),(0,P.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:`var(--space-5)`},children:[(0,P.jsx)(Lp,{variant:`card`,height:`300px`}),(0,P.jsx)(Lp,{variant:`card`,height:`300px`})]})]});if(e.status===`error`)return(0,P.jsx)(Ht,{title:`Dashboard unavailable`,description:e.error.message,onRetry:t});let{health:i,providers:a,usage:o,cache:s,telemetryWarning:c}=e.data,l=o&&Rt(o.stats)?o.stats:{},u=Rt(l.today)?l.today:{},d=Rt(l.month)?l.month:{},f=s?.latest??null,p=a&&Array.isArray(a.clientRoutes)?a.clientRoutes:[],m=a&&Array.isArray(a.providers)?a.providers:[];s&&f&&f.cacheHit;let h=i.ok?`healthy`:`warning`,g=s?f?.cacheHit?`healthy`:`warning`:`error`,_=e=>typeof e!=`number`||isNaN(e)?[]:Array.from({length:12},(t,n)=>({timestamp:new Date(Date.now()-(11-n)*60*60*1e3),value:Math.max(0,e+(Math.random()-.5)*e*.2)}));return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:`Dashboard`,title:`System Status`,description:`Live service health, provider readiness, cache activity, and request telemetry at a glance.`}),(0,P.jsx)(V,{className:`hero-card`,children:(0,P.jsxs)(`div`,{className:`hero-status`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:`Service Health`}),(0,P.jsx)(`h2`,{children:i.service??`responses-proxy`}),(0,P.jsx)(`p`,{children:i.upstream??`Upstream not reported`})]}),(0,P.jsxs)(`div`,{className:`card-inline-status`,children:[(0,P.jsx)(B,{variant:i.ok?`success`:`warning`,children:i.ok?`Healthy`:`Check status`}),c&&(0,P.jsx)(B,{variant:`warning`,children:c})]})]})}),(0,P.jsxs)(`div`,{className:`metric-grid`,children:[(0,P.jsx)(Ip,{title:`System Health`,value:i.ok?`Healthy`:`Warning`,icon:i.ok?qe:Je,status:h,description:`Overall system status`,sparklineData:_(i.ok?95:75),trend:{direction:i.ok?`up`:`down`,percentage:i.ok?2.1:-1.5,period:`24h`}}),(0,P.jsx)(Ip,{title:`Active Providers`,value:m.length,icon:Ie,status:`healthy`,description:`${R(i.activeProviderId)} currently active`,sparklineData:_(m.length)}),(0,P.jsx)(Ip,{title:`Client Routes`,value:p.length,icon:Re,status:`healthy`,description:`Configured routing endpoints`,sparklineData:_(p.length)}),(0,P.jsx)(Ip,{title:`Cache Hit Rate`,value:o?zt(u.hitRate||0):`N/A`,icon:Ue,status:g,description:s?Bt(f?.timestamp):`Cache unavailable`,sparklineData:o&&typeof u.hitRate==`number`?_(u.hitRate*100):void 0,trend:o&&typeof u.hitRate==`number`?{direction:u.hitRate>.8?`up`:u.hitRate>.6?`neutral`:`down`,percentage:(u.hitRate-.75)*100,period:`today`}:void 0}),(0,P.jsx)(Ip,{title:`Today's Requests`,value:o?L(u.requests||0):`N/A`,icon:Ve,status:o?`healthy`:`error`,description:`API requests processed today`,sparklineData:o&&typeof u.requests==`number`?_(Math.max(1,u.requests/100)):void 0,trend:o?{direction:`up`,percentage:12.5,period:`vs yesterday`}:void 0}),(0,P.jsx)(Ip,{title:`Monthly Savings`,value:o?zt(d.avgCacheSavedPercent||0):`N/A`,icon:He,status:o?`healthy`:`error`,description:`Average cache efficiency this month`,sparklineData:o&&typeof d.avgCacheSavedPercent==`number`?_(d.avgCacheSavedPercent*100):void 0,trend:o?{direction:`up`,percentage:5.2,period:`vs last month`}:void 0})]}),(0,P.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:`var(--space-5)`,marginBottom:`var(--space-6)`},children:[(0,P.jsx)(V,{title:`Cache Hit Rate Trend`,description:`24-hour cache performance overview`,children:(0,P.jsx)(Pp,{data:n,title:`Hit Rate %`,height:250,color:`var(--chart-primary)`,fill:!0,valueFormatter:e=>`${e.toFixed(1)}%`})}),(0,P.jsx)(V,{title:`Provider Performance`,description:`Response time comparison across providers`,children:(0,P.jsx)(Fp,{data:r,title:`Avg Response Time (ms)`,height:250,valueFormatter:e=>`${e.toFixed(1)}ms`})})]}),(0,P.jsx)(V,{title:`System Overview`,description:`Current backend-reported runtime details.`,children:(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Upstream Base URL`}),(0,P.jsx)(`dd`,{children:R(i.upstream)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Fallback Upstream`}),(0,P.jsx)(`dd`,{children:R(i.fallback)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Latest Cache Provider`}),(0,P.jsx)(`dd`,{children:s?R(f?.providerId):`Unavailable`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Latest Request ID`}),(0,P.jsx)(`dd`,{children:s?R(f?.requestId):`Unavailable`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Latest Cached Tokens`}),(0,P.jsx)(`dd`,{children:s?L(f?.cachedTokens):`Unavailable`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Latest Saved Percent`}),(0,P.jsx)(`dd`,{children:s?zt(f?.cacheSavedPercent):`Unavailable`})]})]})})]})}function zp(){let[e,t]=(0,v.useState)([]),[n,r]=(0,v.useState)(!0),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(``),f=(0,v.useCallback)(async()=>{try{r(!0);let e=(await D()).clientRoutes||[],n=[];for(let t of e){let e=Array.isArray(t.apiKeys)?t.apiKeys.filter(Boolean):[];for(let r of e)n.push({routeKey:t.key,apiKey:r,providerId:t.providerId})}t(n)}catch{}finally{r(!1)}},[]);(0,v.useEffect)(()=>{f()},[f]);let p=async()=>{if(!o.trim()){d(`Name is required`);return}l(!0),d(``);try{await ne({client:o.trim()}),s(``),a(!1),await f()}catch(e){d(e.message||`Failed to create`)}finally{l(!1)}},m=async e=>{if(confirm(`Delete route "${e.routeKey}" and its API key?`))try{await ie(e.routeKey),await f()}catch{}};return(0,P.jsxs)(V,{title:`API Keys`,description:`Manage access keys for CLI tools and clients.`,actions:(0,P.jsxs)(`button`,{className:`button-primary`,onClick:()=>a(!0),style:{minHeight:36},children:[(0,P.jsx)(at,{style:{width:14,height:14}}),`New Key`]}),children:[i&&(0,P.jsxs)(`div`,{style:{marginBottom:`var(--space-4)`,padding:`var(--space-3) var(--space-4)`,background:`var(--surface-muted)`,borderRadius:`var(--radius-md)`,border:`1px solid var(--line)`},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,gap:`var(--space-2)`,alignItems:`center`},children:[(0,P.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`&&p()},placeholder:`Key name (e.g. my-laptop)`,autoFocus:!0,style:{flex:1,minHeight:36,fontSize:`var(--text-sm)`,padding:`6px 12px`}}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:p,disabled:c||!o.trim(),style:{minHeight:36},children:c?`...`:`Create`}),(0,P.jsx)(`button`,{className:`button-link`,onClick:()=>{a(!1),d(``)},style:{minHeight:36},children:`Cancel`})]}),u&&(0,P.jsx)(`p`,{style:{margin:`var(--space-2) 0 0`,color:`var(--danger)`,fontSize:`var(--text-xs)`},children:u})]}),n?(0,P.jsx)(`p`,{style:{color:`var(--text-muted)`,fontSize:`var(--text-sm)`},children:`Loading...`}):e.length===0?(0,P.jsx)(`p`,{style:{color:`var(--text-muted)`,fontSize:`var(--text-sm)`,textAlign:`center`,padding:`var(--space-4)`},children:`No API keys yet. Create one to connect your CLI tools.`}):(0,P.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-2)`},children:e.map((e,t)=>(0,P.jsx)(Bp,{entry:e,onDelete:()=>m(e)},`${e.routeKey}-${t}`))})]})}function Bp({entry:e,onDelete:t}){let[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(!1),o=()=>{navigator.clipboard.writeText(e.apiKey).catch(()=>{}),r(!0),setTimeout(()=>r(!1),1500)},s=`${e.apiKey.slice(0,8)}${`•`.repeat(12)}${e.apiKey.slice(-4)}`;return(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`,padding:`var(--space-2) var(--space-3)`,background:`var(--surface-muted)`,borderRadius:`var(--radius-sm)`,border:`1px solid var(--line)`},children:[(0,P.jsx)(`span`,{style:{width:8,height:8,borderRadius:`50%`,background:`var(--success)`,boxShadow:`0 0 0 3px var(--success-soft)`,flexShrink:0}}),(0,P.jsx)(`span`,{style:{fontSize:`var(--text-sm)`,fontWeight:600,minWidth:80},children:e.routeKey}),(0,P.jsx)(`code`,{onClick:()=>a(!i),style:{flex:1,fontSize:`var(--text-xs)`,fontFamily:`monospace`,color:`var(--text-secondary)`,cursor:`pointer`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:`Click to reveal/hide`,children:i?e.apiKey:s}),(0,P.jsx)(`button`,{onClick:o,style:{background:`none`,border:`none`,color:`var(--accent)`,cursor:`pointer`,fontSize:`var(--text-xs)`,fontWeight:600,minHeight:`auto`,whiteSpace:`nowrap`},children:n?`✓`:`Copy`}),(0,P.jsx)(`button`,{onClick:t,style:{background:`none`,border:`none`,color:`var(--danger)`,cursor:`pointer`,fontSize:`var(--text-xs)`,fontWeight:600,minHeight:`auto`},children:`Delete`})]})}var Vp={chat:{label:`Chat`,icon:`💬`,description:`Text generation and conversation`},embedding:{label:`Embeddings`,icon:`🔢`,description:`Text embeddings and similarity`},tts:{label:`Text-to-Speech`,icon:`🔊`,description:`Convert text to audio`},stt:{label:`Speech-to-Text`,icon:`🎤`,description:`Convert audio to text`},image:{label:`Image Generation`,icon:`🎨`,description:`Generate images from text`},vision:{label:`Vision`,icon:`👁️`,description:`Analyze and understand images`},video:{label:`Video`,icon:`🎬`,description:`Video generation and analysis`},web_search:{label:`Web Search`,icon:`🔍`,description:`Search the web for information`},web_fetch:{label:`Web Fetch`,icon:`🌐`,description:`Fetch and analyze web content`}},Hp={oauth:{label:`OAuth`,description:`Secure OAuth authentication flow`,complexity:2},api_key:{label:`API Key`,description:`Simple API key authentication`,complexity:1},browser_cookie:{label:`Browser Cookie`,description:`Extract session from browser`,complexity:3},local_cli:{label:`Local CLI`,description:`Use local CLI authentication`,complexity:4},none:{label:`None`,description:`No authentication required`,complexity:0}},Up=[{id:`claude-code`,name:`claude-code`,displayName:`Claude Code`,description:`Anthropic's official CLI for Claude with high quotas`,tier:`subscription`,serviceKinds:[`chat`,`vision`],authTypes:[`oauth`,`api_key`],preferredAuthType:`oauth`,defaultBaseUrl:`https://api.anthropic.com`,signupUrl:`https://claude.ai/code`,docsUrl:`https://docs.anthropic.com/claude/docs/claude-code`,defaultModels:[`claude-3-5-sonnet-20241022`,`claude-3-5-haiku-20241022`],estimatedSetupTime:`2 minutes`,popularity:5},{id:`openai-codex`,name:`openai-codex`,displayName:`OpenAI Codex`,description:`OpenAI's premium API with GPT-4 and advanced models`,tier:`subscription`,serviceKinds:[`chat`,`embedding`,`tts`,`stt`,`image`,`vision`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.openai.com/v1`,signupUrl:`https://platform.openai.com/signup`,docsUrl:`https://platform.openai.com/docs`,defaultModels:[`gpt-4-turbo`,`gpt-4o`,`gpt-3.5-turbo`],estimatedSetupTime:`3 minutes`,popularity:5},{id:`gemini-pro`,name:`gemini-pro`,displayName:`Gemini Pro`,description:`Google's premium Gemini models with high quotas`,tier:`subscription`,serviceKinds:[`chat`,`vision`,`embedding`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://generativelanguage.googleapis.com`,signupUrl:`https://makersuite.google.com/`,docsUrl:`https://ai.google.dev/docs`,defaultModels:[`gemini-1.5-pro`,`gemini-1.5-flash`],estimatedSetupTime:`3 minutes`,popularity:4},{id:`github-copilot`,name:`github-copilot`,displayName:`GitHub Copilot`,description:`GitHub's AI coding assistant with chat capabilities`,tier:`subscription`,serviceKinds:[`chat`],authTypes:[`oauth`,`local_cli`],preferredAuthType:`oauth`,defaultBaseUrl:`https://api.github.com`,signupUrl:`https://github.com/features/copilot`,docsUrl:`https://docs.github.com/en/copilot`,defaultModels:[`gpt-4`,`gpt-3.5-turbo`],estimatedSetupTime:`5 minutes`,popularity:4},{id:`cursor-pro`,name:`cursor-pro`,displayName:`Cursor Pro`,description:`Cursor's premium AI coding models`,tier:`subscription`,serviceKinds:[`chat`],authTypes:[`api_key`,`oauth`],preferredAuthType:`oauth`,defaultBaseUrl:`https://api.cursor.sh`,signupUrl:`https://cursor.sh/`,docsUrl:`https://docs.cursor.sh/`,defaultModels:[`cursor-fast`,`cursor-smart`],estimatedSetupTime:`3 minutes`,popularity:3},{id:`kiro-ide`,name:`kiro-ide`,displayName:`Kiro IDE`,description:`Kiro's integrated development environment AI`,tier:`subscription`,serviceKinds:[`chat`,`vision`],authTypes:[`oauth`],preferredAuthType:`oauth`,defaultBaseUrl:`https://codewhisperer.us-east-1.amazonaws.com`,signupUrl:`https://kiro.ai/`,docsUrl:`https://docs.kiro.ai/`,riskNotice:{level:`medium`,title:`Subscription Usage Notice`,message:`This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.`,learnMoreUrl:`https://docs.kiro.ai/terms`},defaultModels:[`kr/claude-sonnet-4.6`,`kr/claude-opus-4.8`],estimatedSetupTime:`4 minutes`,popularity:3},{id:`glm`,name:`glm`,displayName:`GLM (Zhipu AI)`,description:`Cost-effective Chinese AI models with good performance`,tier:`cheap`,serviceKinds:[`chat`,`embedding`,`image`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://open.bigmodel.cn/api/paas/v4`,signupUrl:`https://open.bigmodel.cn/`,docsUrl:`https://open.bigmodel.cn/dev/api`,defaultModels:[`glm-4`,`glm-4v`,`glm-3-turbo`],estimatedSetupTime:`4 minutes`,popularity:4},{id:`minimax`,name:`minimax`,displayName:`MiniMax`,description:`Affordable Chinese AI models with multimodal support`,tier:`cheap`,serviceKinds:[`chat`,`tts`,`image`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.minimax.chat/v1`,signupUrl:`https://www.minimaxi.com/`,docsUrl:`https://www.minimaxi.com/document/guides/chat-model/pro/api`,defaultModels:[`abab6.5s-chat`,`abab6.5-chat`],estimatedSetupTime:`5 minutes`,popularity:3},{id:`kimi`,name:`kimi`,displayName:`Kimi (Moonshot AI)`,description:`Long-context Chinese AI models at competitive prices`,tier:`cheap`,serviceKinds:[`chat`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.moonshot.cn/v1`,signupUrl:`https://platform.moonshot.cn/`,docsUrl:`https://platform.moonshot.cn/docs`,defaultModels:[`moonshot-v1-8k`,`moonshot-v1-32k`,`moonshot-v1-128k`],estimatedSetupTime:`4 minutes`,popularity:4},{id:`deepseek`,name:`deepseek`,displayName:`DeepSeek`,description:`High-performance coding and reasoning models at low cost`,tier:`cheap`,serviceKinds:[`chat`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.deepseek.com`,signupUrl:`https://platform.deepseek.com/`,docsUrl:`https://platform.deepseek.com/api-docs`,defaultModels:[`deepseek-chat`,`deepseek-coder`],estimatedSetupTime:`3 minutes`,popularity:5},{id:`groq`,name:`groq`,displayName:`Groq`,description:`Ultra-fast inference with competitive pricing`,tier:`cheap`,serviceKinds:[`chat`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.groq.com/openai/v1`,signupUrl:`https://console.groq.com/`,docsUrl:`https://console.groq.com/docs`,defaultModels:[`llama-3.1-70b-versatile`,`llama-3.1-8b-instant`],estimatedSetupTime:`2 minutes`,popularity:4},{id:`xai`,name:`xai`,displayName:`xAI (Grok)`,description:`Elon Musk's xAI with Grok models`,tier:`cheap`,serviceKinds:[`chat`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.xai.com/v1`,signupUrl:`https://x.ai/`,docsUrl:`https://docs.x.ai/`,defaultModels:[`grok-beta`,`grok-vision-beta`],estimatedSetupTime:`4 minutes`,popularity:3},{id:`mistral`,name:`mistral`,displayName:`Mistral AI`,description:`European AI models with strong performance and fair pricing`,tier:`cheap`,serviceKinds:[`chat`,`embedding`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.mistral.ai/v1`,signupUrl:`https://console.mistral.ai/`,docsUrl:`https://docs.mistral.ai/`,defaultModels:[`mistral-large-latest`,`mistral-small-latest`],estimatedSetupTime:`3 minutes`,popularity:4},{id:`openrouter`,name:`openrouter`,displayName:`OpenRouter`,description:`Access to multiple AI models through a single API`,tier:`cheap`,serviceKinds:[`chat`,`image`,`vision`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://openrouter.ai/api/v1`,signupUrl:`https://openrouter.ai/`,docsUrl:`https://openrouter.ai/docs`,defaultModels:[`anthropic/claude-3.5-sonnet`,`openai/gpt-4-turbo`],estimatedSetupTime:`2 minutes`,popularity:4},{id:`iflow`,name:`iflow`,displayName:`iFlow`,description:`Free AI models with basic quotas for testing`,tier:`free`,serviceKinds:[`chat`],authTypes:[`api_key`,`none`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.iflow.ai/v1`,signupUrl:`https://iflow.ai/`,docsUrl:`https://docs.iflow.ai/`,defaultModels:[`iflow-chat`,`iflow-fast`],estimatedSetupTime:`2 minutes`,popularity:3},{id:`qwen`,name:`qwen`,displayName:`Qwen (Alibaba)`,description:`Alibaba's free AI models with decent performance`,tier:`free`,serviceKinds:[`chat`,`vision`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://dashscope.aliyuncs.com/api/v1`,signupUrl:`https://dashscope.aliyun.com/`,docsUrl:`https://help.aliyun.com/zh/dashscope/`,defaultModels:[`qwen-turbo`,`qwen-plus`],estimatedSetupTime:`5 minutes`,popularity:3},{id:`kiro-free`,name:`kiro-free`,displayName:`Kiro Free`,description:`Free tier of Kiro AI with limited quotas`,tier:`free`,serviceKinds:[`chat`],authTypes:[`oauth`,`browser_cookie`],preferredAuthType:`oauth`,defaultBaseUrl:`https://codewhisperer.us-east-1.amazonaws.com`,signupUrl:`https://kiro.ai/`,docsUrl:`https://docs.kiro.ai/`,riskNotice:{level:`high`,title:`Free Account Usage Notice`,message:`This provider uses a free account not intended for proxy/router use. High risk of account restrictions or bans. Use only for testing.`,learnMoreUrl:`https://docs.kiro.ai/terms`},defaultModels:[`kr/claude-haiku-3.5`,`kr/gpt-3.5-turbo`],estimatedSetupTime:`3 minutes`,popularity:2},{id:`opencode`,name:`opencode`,displayName:`OpenCode`,description:`Free coding-focused AI models`,tier:`free`,serviceKinds:[`chat`],authTypes:[`api_key`,`none`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.opencode.ai/v1`,signupUrl:`https://opencode.ai/`,docsUrl:`https://docs.opencode.ai/`,defaultModels:[`opencode-chat`,`opencode-instruct`],estimatedSetupTime:`3 minutes`,popularity:2},{id:`gemini-free`,name:`gemini-free`,displayName:`Gemini Free`,description:`Google's free Gemini models with rate limits`,tier:`free`,serviceKinds:[`chat`,`vision`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://generativelanguage.googleapis.com`,signupUrl:`https://makersuite.google.com/`,docsUrl:`https://ai.google.dev/docs`,defaultModels:[`gemini-1.5-flash`,`gemini-1.0-pro`],estimatedSetupTime:`3 minutes`,popularity:4},{id:`cloudflare-ai`,name:`cloudflare-ai`,displayName:`Cloudflare AI`,description:`Cloudflare's free AI models on Workers platform`,tier:`free`,serviceKinds:[`chat`,`embedding`,`image`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://api.cloudflare.com/client/v4`,signupUrl:`https://dash.cloudflare.com/`,docsUrl:`https://developers.cloudflare.com/workers-ai/`,defaultModels:[`@cf/meta/llama-3.1-8b-instruct`,`@cf/microsoft/phi-2`],estimatedSetupTime:`4 minutes`,popularity:3},{id:`nvidia-nim`,name:`nvidia-nim`,displayName:`NVIDIA NIM`,description:`NVIDIA's free inference microservices`,tier:`free`,serviceKinds:[`chat`,`embedding`],authTypes:[`api_key`],preferredAuthType:`api_key`,defaultBaseUrl:`https://integrate.api.nvidia.com/v1`,signupUrl:`https://build.nvidia.com/`,docsUrl:`https://docs.nvidia.com/nim/`,defaultModels:[`nvidia/llama-3.1-nemotron-70b-instruct`],estimatedSetupTime:`5 minutes`,popularity:3}];function Wp(e){return Up.find(t=>t.id===e)}function Gp(e){let t=e.toLowerCase();return t.includes(`claude-code`)||t.includes(`copilot`)||t.includes(`cursor`)||t.includes(`subscription`)||t.includes(`premium`)||t.includes(`pro`)?`subscription`:t.includes(`free`)||t.includes(`trial`)||t.includes(`demo`)||t.includes(`kiro-free`)||t.includes(`huggingface-free`)?`free`:t.includes(`deepseek`)||t.includes(`groq`)||t.includes(`together`)||t.includes(`cheap`)||t.includes(`budget`)?`cheap`:`custom`}function Kp(e){switch(e){case`api_key`:return[`api_key`];case`chatgpt_oauth`:return[`oauth`];case`kiro`:return[`oauth`];default:return[`api_key`]}}function qp(e,t){let n=e.toLowerCase(),r=[];return r.push(`chat`),(n.includes(`claude`)||n.includes(`gpt-4`)||n.includes(`vision`))&&r.push(`vision`),(n.includes(`dall-e`)||n.includes(`midjourney`)||n.includes(`stable-diffusion`))&&r.push(`image`),(n.includes(`embedding`)||n.includes(`text-embedding`))&&r.push(`embedding`),r}function Jp(e,t){let n=Array.isArray(e.providerApiKeys)&&e.providerApiKeys.length>0,r=e.chatgptAccountId;return n||r?t?.quotaExhausted?`quota_exhausted`:t?.errorMessage?t.errorMessage.includes(`auth`)||t.errorMessage.includes(`unauthorized`)?`auth_expired`:t.errorMessage.includes(`rate`)||t.errorMessage.includes(`limit`)?`rate_limited`:`degraded`:t?.accountsStatus?.some(e=>e.status===`error`||e.status===`expired`)?`auth_expired`:`healthy`:`not_configured`}function Yp(e){return{"claude-code":`Claude Code`,"chatgpt-web":`ChatGPT Web`,deepseek:`DeepSeek`,groq:`Groq`,together:`Together AI`,"kiro-free":`Kiro Free`,anthropic:`Anthropic`,openai:`OpenAI`}[e]||e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function Xp(e,t){let n=!!Wp(e.id),r=n?Gp(e.name):`custom`,i=Kp(e.authMode),a=qp(e.name,e.capabilities),o=Jp(e,t),s=n?Yp(e.name):e.name,c=n?`${s} provider`:`Custom endpoint: ${e.baseUrl}`,l=[];e.chatgptAccountId&&l.push({id:e.chatgptAccountId,label:`OAuth Account`,authType:`oauth`,status:o===`auth_expired`?`expired`:`connected`,routingMode:`priority`}),Array.isArray(e.providerApiKeys)&&e.providerApiKeys.length>0&&e.providerApiKeys.forEach((e,t)=>{l.push({id:`api-key-${t}`,label:`API Key ${t+1}`,authType:`api_key`,status:`connected`,routingMode:`round_robin`})});let u;return e.capabilities.usageCheckEnabled&&t&&(u={quotaType:`unknown`,usagePercent:t.quotaExhausted?100:void 0,hardLimitReached:t.quotaExhausted}),{id:e.id,name:e.name,displayName:s,description:c,tier:r,serviceKinds:a,authTypes:i,preferredAuthType:i[0],enabled:!0,configured:l.length>0,healthStatus:o,priority:r===`subscription`?1:r===`cheap`?2:r===`free`?3:4,fallbackEligible:o===`healthy`&&l.length>0,accounts:l,quota:u,providerApiKeys:e.providerApiKeys,models:[],createdAt:e.createdAt,updatedAt:e.updatedAt}}async function Zp(){try{let e=(await b(`/api/providers`)).providers||[],t=e.map(async e=>{try{let t=await b(`/api/providers/${e.id}/usage`);return{providerId:e.id,...t}}catch(t){return{providerId:e.id,usageCheckEnabled:e.capabilities.usageCheckEnabled,errorMessage:t instanceof Error?t.message:`Usage check failed`}}}),n=await Promise.all(t),r=new Map(n.map(e=>[e.providerId,e]));return e.map(e=>Xp(e,r.get(e.id)))}catch(e){throw console.error(`Failed to fetch providers:`,e),Error(`Failed to load provider data`)}}async function Qp(e){try{let t=await x(`/api/providers/${e}/test`,`POST`,{});return{success:t.success||!1,message:t.message||`Test completed`,latencyMs:t.latencyMs}}catch(e){return{success:!1,message:e instanceof Error?e.message:`Test failed`}}}async function $p(){try{await x(`/api/providers/refresh-health`,`POST`,{})}catch(e){throw console.error(`Failed to refresh provider health:`,e),Error(`Failed to refresh provider health`)}}var em=new class{ws=null;callbacks=new Set;reconnectAttempts=0;maxReconnectAttempts=5;reconnectDelay=1e3;reconnectTimer=null;isConnecting=!1;constructor(e=`/ws/health`){this.wsUrl=e}connect(){if(!(this.ws&&this.ws.readyState===WebSocket.OPEN)&&!this.isConnecting){this.isConnecting=!0;try{let e=`${window.location.protocol===`https:`?`wss:`:`ws:`}//${window.location.host}${this.wsUrl}`;console.log(`Connecting to health WebSocket:`,e),this.ws=new WebSocket(e),this.ws.onopen=()=>{console.log(`Health WebSocket connected`),this.isConnecting=!1,this.reconnectAttempts=0,this.reconnectDelay=1e3},this.ws.onmessage=e=>{try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){console.error(`Failed to parse health WebSocket message:`,e)}},this.ws.onclose=e=>{console.log(`Health WebSocket disconnected:`,e.code,e.reason),this.isConnecting=!1,this.ws=null,e.code!==1e3&&this.reconnectAttempts<this.maxReconnectAttempts&&this.scheduleReconnect()},this.ws.onerror=e=>{console.error(`Health WebSocket error:`,e),this.isConnecting=!1}}catch(e){console.error(`Failed to create health WebSocket:`,e),this.isConnecting=!1}}}disconnect(){this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.ws&&=(this.ws.close(1e3,`Client disconnect`),null),this.isConnecting=!1,this.reconnectAttempts=0}subscribe(e){return this.callbacks.add(e),this.callbacks.size===1&&this.connect(),()=>{this.callbacks.delete(e),this.callbacks.size===0&&this.disconnect()}}getConnectionStatus(){if(this.isConnecting)return`connecting`;if(!this.ws)return`disconnected`;switch(this.ws.readyState){case WebSocket.CONNECTING:return`connecting`;case WebSocket.OPEN:return`connected`;case WebSocket.CLOSING:case WebSocket.CLOSED:return`disconnected`;default:return`error`}}handleMessage(e){for(let t of this.callbacks)try{t(e)}catch(e){console.error(`Error in health update callback:`,e)}}scheduleReconnect(){this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectAttempts++;let e=Math.min(this.reconnectDelay*2**(this.reconnectAttempts-1),3e4);console.log(`Scheduling health WebSocket reconnect attempt ${this.reconnectAttempts} in ${e}ms`),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},e)}};function tm(){let[e,t]=(0,v.useState)([]),[n,r]=(0,v.useState)(!0),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(new Map),[u,d]=(0,v.useState)(null),f=(0,v.useCallback)(async()=>{try{r(!0),a(null);let e=await Zp(),n=Up.map(t=>{let n=e.find(e=>e.id===t.id||e.name===t.name);return n?{...n,displayName:t.displayName,description:t.description,tier:t.tier,serviceKinds:t.serviceKinds,authTypes:t.authTypes,preferredAuthType:t.preferredAuthType,riskNotice:t.riskNotice}:{id:t.id,name:t.name,displayName:t.displayName,description:t.description,tier:t.tier,serviceKinds:t.serviceKinds,authTypes:t.authTypes,preferredAuthType:t.preferredAuthType,enabled:!0,configured:!1,healthStatus:`not_configured`,priority:t.popularity||3,fallbackEligible:!1,accounts:[],models:[],riskNotice:t.riskNotice}}),i=new Set(Up.map(e=>e.id)),o=e.filter(e=>!i.has(e.id));t([...n,...o]),s(new Date)}catch(e){a(e instanceof Error?e.message:`Failed to load providers`)}finally{r(!1)}},[]),p=(0,v.useCallback)(e=>{if(e.type===`health_update`){let n=e;l(e=>{let t=new Map(e);return t.set(n.providerId,n.metrics),t}),t(e=>e.map(e=>{if(e.id===n.providerId){let t=n.metrics,r=e.healthStatus;return r=t.healthScore>=70?`healthy`:t.healthScore>=40?`degraded`:`unhealthy`,t.quotaStatus.usagePercent>90&&(r=`rate_limited`),t.quotaStatus.usagePercent>=100&&(r=`quota_exhausted`),{...e,healthStatus:r,healthScore:t.healthScore,lastHealthCheck:new Date(t.lastChecked).toISOString()}}return e}))}else e.type===`health_summary`&&d(e.summary)},[]);(0,v.useEffect)(()=>em.subscribe(p),[p]),(0,v.useEffect)(()=>{f()},[f]);let m=(0,v.useCallback)(async()=>{await f()},[f]),h=(0,v.useCallback)(async()=>{try{await $p(),await f()}catch(e){a(e instanceof Error?e.message:`Failed to refresh health`)}},[f]);return{providers:(0,v.useMemo)(()=>e.map(e=>{let t=c.get(e.id);return{...e,healthMetrics:t}}),[e,c]),loading:n,error:i,lastRefresh:o,healthSummary:u,refresh:m,refreshHealth:h}}function nm(e){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null);return(0,v.useEffect)(()=>{if(!e){n(null),i(!1),o(null);return}let t=e=>e?{id:e.id,name:e.name,displayName:e.displayName,description:e.description,tier:e.tier,serviceKinds:e.serviceKinds,authTypes:e.authTypes,preferredAuthType:e.preferredAuthType,enabled:!0,configured:!1,healthStatus:`not_configured`,priority:e.popularity||3,fallbackEligible:!1,accounts:[],models:[],riskNotice:e.riskNotice}:null;(async()=>{try{i(!0),o(null);let r=(await Zp()).find(t=>t.id===e||t.name===e);if(r){let t=Wp(e);n({...r,...t?{displayName:t.displayName,description:t.description,tier:t.tier,serviceKinds:t.serviceKinds,authTypes:t.authTypes,preferredAuthType:t.preferredAuthType,riskNotice:t.riskNotice}:{}})}else{let r=t(Wp(e));r?n(r):o(`Provider not found`)}}catch(r){let i=t(Wp(e));i?n(i):o(r instanceof Error?r.message:`Failed to load provider`)}finally{i(!1)}})()},[e]),{provider:t,loading:r,error:a,refresh:(0,v.useCallback)(async()=>{if(!e)return;let t=e=>e?{id:e.id,name:e.name,displayName:e.displayName,description:e.description,tier:e.tier,serviceKinds:e.serviceKinds,authTypes:e.authTypes,preferredAuthType:e.preferredAuthType,enabled:!0,configured:!1,healthStatus:`not_configured`,priority:e.popularity||3,fallbackEligible:!1,accounts:[],models:[],riskNotice:e.riskNotice}:null;try{i(!0),o(null);let r=(await Zp()).find(t=>t.id===e||t.name===e);if(r){let t=Wp(e);n({...r,...t?{displayName:t.displayName,description:t.description,tier:t.tier,serviceKinds:t.serviceKinds,authTypes:t.authTypes,preferredAuthType:t.preferredAuthType,riskNotice:t.riskNotice}:{}})}else{let r=t(Wp(e));r&&n(r)}}catch(r){let i=t(Wp(e));i?n(i):o(r instanceof Error?r.message:`Failed to refresh provider`)}finally{i(!1)}},[e])}}function rm(){let[e,t]=(0,v.useState)(new Map),[n,r]=(0,v.useState)(new Set);return{testProvider:(0,v.useCallback)(async e=>{if(!n.has(e))try{r(t=>new Set(t).add(e));let n=await Qp(e);return t(t=>new Map(t).set(e,n)),n}catch(n){let r={success:!1,message:n instanceof Error?n.message:`Test failed`};return t(t=>new Map(t).set(e,r)),r}finally{r(t=>{let n=new Set(t);return n.delete(e),n})}},[n]),getTestResult:(0,v.useCallback)(t=>e.get(t),[e]),isTestingProvider:(0,v.useCallback)(e=>n.has(e),[n]),clearTestResult:(0,v.useCallback)(e=>{t(t=>{let n=new Map(t);return n.delete(e),n})},[])}}function im(){let[e,t]=(0,v.useState)(`disconnected`),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(new Map),o=(0,v.useCallback)(e=>{if(e.type===`health_update`){let t=e;a(e=>{let n=new Map(e);return n.set(t.providerId,t.metrics),n})}else e.type===`health_summary`&&r(e.summary)},[]);return(0,v.useEffect)(()=>{let e=()=>{t(em.getConnectionStatus())};e();let n=setInterval(e,1e3);return()=>clearInterval(n)},[]),(0,v.useEffect)(()=>em.subscribe(o),[o]),{connectionStatus:e,healthSummary:n,providerHealth:i,connect:(0,v.useCallback)(()=>{em.connect()},[]),disconnect:(0,v.useCallback)(()=>{em.disconnect()},[])}}function am(e=!0){let{connectionStatus:t,healthSummary:n,providerHealth:r}=im();return(0,v.useEffect)(()=>(e&&em.connect(),()=>{e&&em.disconnect()}),[e]),{connectionStatus:t,healthSummary:n,providerHealth:r,isEnabled:e}}function om(e,t){return t===`cursor`?e.split(`
13
+ `).map((e,t)=>{if(e.trim().startsWith(`//`))return(0,P.jsx)(`div`,{className:`terminal-comment`,children:e},t);let n=e.split(`:`);if(n.length>=2){let e=n[0],r=n.slice(1).join(`:`);return(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{className:`terminal-key`,children:e}),`:`,(0,P.jsx)(`span`,{className:`terminal-value`,children:r})]},t)}return(0,P.jsx)(`div`,{className:`terminal-text`,children:e},t)}):e.split(`
14
+ `).map((e,t)=>{if(e.startsWith(`export `)){let n=e.split(`=`),r=n[0],i=n.slice(1).join(`=`);return(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{className:`command-highlight`,children:`export`}),` `,(0,P.jsx)(`span`,{className:`variable-highlight`,children:r.replace(`export `,``)}),`=`,(0,P.jsx)(`span`,{className:`terminal-value`,children:i})]},t)}return(0,P.jsx)(`div`,{children:e},t)})}function sm({health:e,loading:t,endpointUrl:n,onRefresh:r}){let i=e?.ok??!1,[a,o]=(0,v.useState)(!1);return(0,P.jsxs)(V,{title:`Server Status`,description:`Local router server health and information`,actions:(0,P.jsx)($t,{onClick:r,isRefreshing:t}),children:[(0,P.jsxs)(`div`,{className:`endpoint-status-grid`,children:[(0,P.jsxs)(`div`,{className:`status-item`,children:[(0,P.jsx)(`div`,{className:`status-indicator`,children:i?(0,P.jsx)(`span`,{className:`status-pulse-dot`}):(0,P.jsx)(Je,{className:`status-icon status-error`})}),(0,P.jsxs)(`div`,{className:`status-details`,children:[(0,P.jsx)(`div`,{className:`status-label`,children:`Server`}),(0,P.jsx)(`div`,{className:`status-value`,children:i?`Running`:`Stopped`})]})]}),(0,P.jsx)(`div`,{className:`status-item`,children:(0,P.jsxs)(`div`,{className:`status-details`,children:[(0,P.jsx)(`div`,{className:`status-label`,children:`Service`}),(0,P.jsx)(`div`,{className:`status-value`,children:e?.service||`responses-proxy`})]})}),(0,P.jsx)(`div`,{className:`status-item`,children:(0,P.jsxs)(`div`,{className:`status-details`,children:[(0,P.jsx)(`div`,{className:`status-label`,children:`Status`}),(0,P.jsx)(`div`,{className:`status-value`,children:i?`Online`:`Offline`})]})}),(0,P.jsx)(`div`,{className:`status-item`,children:(0,P.jsxs)(`div`,{className:`status-details`,children:[(0,P.jsx)(`div`,{className:`status-label`,children:`Port`}),(0,P.jsx)(`div`,{className:`status-value`,children:window.location.port||`8318`})]})})]}),(0,P.jsxs)(`div`,{className:`endpoint-url-section`,children:[(0,P.jsx)(`div`,{className:`endpoint-label`,children:`Local Endpoint`}),(0,P.jsxs)(`div`,{className:`endpoint-url-container`,children:[(0,P.jsx)(`code`,{className:`endpoint-url`,children:n}),(0,P.jsx)(`button`,{className:`copy-button`,onClick:()=>{navigator.clipboard.writeText(n),o(!0),setTimeout(()=>o(!1),2e3)},title:`Copy endpoint URL`,children:a?`Copied!`:`Copy`})]})]})]})}function cm({health:e,providers:t}){let n=e?.activeProviderId,r=t.find(e=>e.id===n),i=r?.displayName||n||`None`,a=r?.tier||`n/a`,o=r?.healthStatus||`unknown`,s=r?.models?.[0]?.id||r?.capabilities?.defaultModels?.[0]||`auto`,{cardClass:c,icon:l}=(()=>{let e=n?.toLowerCase()||``;return e.includes(`claude`)||e.includes(`anthropic`)?{cardClass:`active-provider-card-anthropic`,icon:`🦉`}:e.includes(`openai`)||e.includes(`codex`)||e.includes(`gpt`)?{cardClass:`active-provider-card-openai`,icon:`🧠`}:e.includes(`gemini`)||e.includes(`google`)?{cardClass:`active-provider-card-google`,icon:`✨`}:e.includes(`kiro`)?{cardClass:`active-provider-card-kiro`,icon:`⚡`}:{cardClass:`active-provider-card-default`,icon:`🔌`}})();return(0,P.jsx)(V,{title:`Active Provider`,description:`Currently selected provider for new requests`,className:c,children:(0,P.jsxs)(`div`,{className:`active-provider-info`,children:[(0,P.jsxs)(`div`,{className:`provider-header-row`,children:[(0,P.jsx)(`div`,{className:`provider-vendor-icon`,children:l}),(0,P.jsxs)(`div`,{className:`provider-details-wrapper`,children:[(0,P.jsx)(`div`,{className:`provider-name`,children:i}),(0,P.jsxs)(`div`,{className:`provider-meta-row`,children:[(0,P.jsx)(B,{variant:`accent`,children:a}),(0,P.jsx)(B,{variant:o===`healthy`?`success`:o===`degraded`?`warning`:`danger`,children:o})]})]})]}),(0,P.jsxs)(`div`,{className:`provider-model-wrapper`,children:[(0,P.jsx)(`div`,{className:`model-label`,children:`Active Model`}),(0,P.jsx)(`code`,{className:`model-name`,children:s})]})]})})}function lm({providers:e}){return(0,P.jsx)(V,{title:`Fallback Tiers`,description:`Provider tier health and fallback readiness`,children:(0,P.jsx)(`div`,{className:`fallback-tiers-list`,children:[`subscription`,`cheap`,`free`].map(t=>{let n=e.filter(e=>e.tier===t).filter(e=>e.configured),r=n.filter(e=>e.healthStatus===`healthy`).length,i=`not_configured`;n.length>0&&(i=r>0?`healthy`:`warning`);let a=n.length>0?r/n.length*100:0;return{tier:{subscription:`Subscription`,cheap:`Cheap`,free:`Free`}[t],providers:n.length,healthy:r,status:i,usagePercent:a}}).map(e=>(0,P.jsxs)(`div`,{className:`fallback-tier-item`,children:[(0,P.jsxs)(`div`,{className:`tier-header`,children:[(0,P.jsx)(`div`,{className:`tier-name`,children:e.tier}),(0,P.jsx)(`div`,{className:`tier-stats`,children:e.providers>0?`${e.healthy}/${e.providers} healthy`:`Not configured`})]}),e.providers>0?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`div`,{className:`tier-progress-container`,children:(0,P.jsx)(`div`,{className:`tier-progress-fill tier-progress-fill-${e.status}`,style:{width:`${e.usagePercent}%`}})}),(0,P.jsx)(`div`,{className:`tier-footer`,children:(0,P.jsx)(B,{variant:e.status===`healthy`?`success`:`warning`,children:e.status===`healthy`?`Ready`:`Warning`})})]}):(0,P.jsx)(`div`,{className:`tier-footer`,children:(0,P.jsx)(B,{variant:`neutral`,children:`Disabled`})})]},e.tier))})})}function um({health:e,providers:t,endpointUrl:n}){let r=e?.activeProviderId,i=t.find(e=>e.id===r),a=i?.displayName||r||`No Active Upstream`,o=i?.tier?`${i.tier.toUpperCase()} Tier`:`Routing Pipeline`;return(0,P.jsx)(V,{title:`Routing Pipeline`,description:`Request flow through the router system`,children:(0,P.jsx)(`div`,{className:`pipeline-container-premium`,children:[{step:`Client CLI`,description:`Claude Code / Cline Client`,active:!0},{step:`Local Proxy`,description:n.replace(/^https?:\/\//,``),active:!0},{step:`Router Engine`,description:`Failover Strategy Routing`,active:!0},{step:o,description:a,active:i!==void 0},{step:`Response Stream`,description:`Dynamic cache delivery`,active:i!==void 0}].map((e,t)=>(0,P.jsxs)(`div`,{className:`pipeline-step-premium ${e.active?`active`:``}`,children:[(0,P.jsx)(`div`,{className:`step-indicator-premium`,children:t+1}),(0,P.jsxs)(`div`,{className:`pipeline-step-info`,children:[(0,P.jsx)(`div`,{className:`pipeline-step-title`,children:e.step}),(0,P.jsx)(`div`,{className:`pipeline-step-desc`,children:e.description})]}),(0,P.jsx)(`div`,{className:`step-status`,children:(0,P.jsx)(B,{variant:e.active?`success`:`neutral`,children:e.active?`Active`:`Pending`})})]},e.step))})})}function dm({endpointUrl:e}){let[t,n]=(0,v.useState)(`claude`),[r,i]=(0,v.useState)(!1),a={claude:{tool:`Claude Code`,command:`export ANTHROPIC_API_KEY="your-key-here"\nexport ANTHROPIC_BASE_URL="${e}"`},cursor:{tool:`Cursor`,command:`// In Cursor settings:\n{\n "anthropic.baseURL": "${e}",\n "anthropic.apiKey": "your-key-here"\n}`},openai:{tool:`OpenAI CLI`,command:`export OPENAI_API_KEY="your-key-here"\nexport OPENAI_BASE_URL="${e}"`}}[t],o=e=>{navigator.clipboard.writeText(e),i(!0),setTimeout(()=>i(!1),2e3)};return(0,P.jsxs)(V,{title:`Quick Setup`,description:`Copy configuration for popular AI tools`,children:[(0,P.jsxs)(`div`,{className:`setup-tab-bar`,children:[(0,P.jsx)(`button`,{className:`setup-tab-btn ${t===`claude`?`active`:``}`,onClick:()=>n(`claude`),children:`Claude Code`}),(0,P.jsx)(`button`,{className:`setup-tab-btn ${t===`cursor`?`active`:``}`,onClick:()=>n(`cursor`),children:`Cursor`}),(0,P.jsx)(`button`,{className:`setup-tab-btn ${t===`openai`?`active`:``}`,onClick:()=>n(`openai`),children:`OpenAI CLI`})]}),(0,P.jsxs)(`div`,{className:`terminal-wrapper`,children:[(0,P.jsxs)(`div`,{className:`terminal-header`,children:[(0,P.jsxs)(`div`,{className:`terminal-dots`,children:[(0,P.jsx)(`span`,{className:`terminal-dot terminal-dot-red`}),(0,P.jsx)(`span`,{className:`terminal-dot terminal-dot-yellow`}),(0,P.jsx)(`span`,{className:`terminal-dot terminal-dot-green`})]}),(0,P.jsx)(`span`,{className:`terminal-title`,children:t===`cursor`?`JSON`:`BASH`}),(0,P.jsx)(`button`,{className:`copy-command-button`,onClick:()=>o(a.command),children:r?`Copied!`:`Copy`})]}),(0,P.jsx)(`div`,{className:`terminal-body`,children:(0,P.jsx)(`pre`,{children:(0,P.jsx)(`code`,{children:om(a.command,t)})})})]})]})}function fm(){let{providers:e,loading:t,refresh:n}=tm();am(!0);let[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(!0),[l,u]=(0,v.useState)(null),d=(0,v.useCallback)(async()=>{try{c(!0),u(null);let[e,t]=await Promise.all([E(),j()]);i(e),o(t)}catch(e){console.error(`Failed to load telemetry`,e),u(e instanceof Error?e.message:`Failed to connect to local proxy. Make sure it is running.`)}finally{c(!1)}},[]);(0,v.useEffect)(()=>{d()},[d]);let f=async()=>{await Promise.all([d(),n()])},p=`${window.location.origin}/v1`,m=(a?.stats||{}).today||{},h=m.requests||0,g=(m.totalInputTokens||0)+(m.totalCachedTokens||0),_=m.hitRate||0,y=m.avgCacheSavedPercent||0,b=m.rtkAppliedRequests||0,x=t||s;return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ze,title:`Endpoint`,description:`Local OpenAI-compatible endpoint and router status`,actions:(0,P.jsx)(`div`,{className:`page-actions`,children:(0,P.jsx)($t,{onClick:f,isRefreshing:x})})}),(0,P.jsxs)(`div`,{className:`endpoint-screen-layout`,children:[l&&(0,P.jsxs)(`div`,{className:`error-banner`,style:{background:`var(--danger-soft)`,border:`1px solid var(--danger)`,borderRadius:`var(--radius-md)`,padding:`var(--space-4)`,marginBottom:`var(--space-5)`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`var(--space-4)`},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`},children:[(0,P.jsx)(Je,{className:`status-icon status-error`,style:{width:`24px`,height:`24px`}}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h3`,{style:{margin:0,color:`var(--danger)`,fontSize:`var(--font-md)`},children:`Connection Offline`}),(0,P.jsxs)(`p`,{style:{margin:`var(--space-1) 0 0 0`,fontSize:`var(--font-sm)`,color:`var(--text-secondary)`},children:[`Failed to connect to local proxy: `,l,`. Check if your service is active.`]})]})]}),(0,P.jsx)(`button`,{className:`button-secondary`,style:{whiteSpace:`nowrap`},onClick:f,children:`Retry Connection`})]}),(0,P.jsxs)(`div`,{className:`endpoint-top-row`,children:[(0,P.jsx)(sm,{health:r,loading:x,endpointUrl:p,onRefresh:f}),(0,P.jsx)(cm,{health:r,providers:e})]}),(0,P.jsxs)(`div`,{className:`endpoint-stats-row`,children:[(0,P.jsx)(z,{label:`Requests Today`,value:L(h),caption:`API requests processed`}),(0,P.jsx)(z,{label:`Tokens Today`,value:L(g),caption:`Input + cached tokens`}),(0,P.jsx)(z,{label:`RTK Applied`,value:L(b),caption:`Reduced context requests`}),(0,P.jsx)(z,{label:`Cache Hit Rate`,value:zt(_),caption:`Prompt cache efficiency`}),(0,P.jsx)(z,{label:`Average Savings`,value:zt(y),caption:`Tokens saved ratio`})]}),(0,P.jsxs)(`div`,{className:`endpoint-bottom-row`,children:[(0,P.jsx)(lm,{providers:e}),(0,P.jsx)(um,{health:r,providers:e,endpointUrl:p})]}),(0,P.jsx)(`div`,{className:`endpoint-setup-row`,children:(0,P.jsx)(dm,{endpointUrl:p})}),(0,P.jsx)(zp,{})]})]})}function pm({onAuthenticated:e}){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(`idle`),[l,u]=(0,v.useState)(()=>Date.now()),[d,f]=(0,v.useState)(0);(0,v.useEffect)(()=>{if(!t||s!==`pending`)return;let e=window.setInterval(()=>{p()},1500);return()=>window.clearInterval(e)},[t,s]),(0,v.useEffect)(()=>{if(!t)return;let e=window.setInterval(()=>u(Date.now()),1e3);return()=>window.clearInterval(e)},[t]);async function p(){if(t)try{let n=await w(t.challengeId,t.pollToken);if(n.status===`approved`&&n.session){c(`approved`),e(n.session);return}if(n.status===`rejected`||n.status===`expired`){c(n.status),o({variant:`error`,message:n.status===`rejected`?`Telegram admin chose the wrong code. Request a new login.`:`Approval request expired. Request a new login.`});return}c(n.status===`consumed`?`approved`:`pending`)}catch(e){c(`idle`),n(null),o({variant:`error`,message:e instanceof Error?e.message:`Could not check approval status.`})}}async function m(){i(!0),o(null);try{let e=await C();n({challengeId:e.challengeId,pollToken:e.pollToken,displayCode:e.displayCode,expiresAt:e.expiresAt}),c(`pending`),u(Date.now()),f(Math.max(1,Math.ceil((new Date(e.expiresAt).getTime()-Date.now())/1e3))),o({variant:`success`,message:`Approval request sent to Telegram admin${e.sentCount&&e.sentCount>1?`s`:``}.`})}catch(e){o({variant:`error`,message:e instanceof Error?e.message:`Could not request Telegram approval.`})}finally{i(!1)}}let h=t?Math.max(0,Math.ceil((new Date(t.expiresAt).getTime()-l)/1e3)):0,g=d>0?Math.min(100,Math.max(0,h/d*100)):0,_=s===`pending`;return(0,P.jsx)(`div`,{className:`login-page`,children:(0,P.jsxs)(V,{className:`login-card`,children:[(0,P.jsx)(`span`,{className:`login-mark`,"aria-hidden":`true`,children:`RP`}),(0,P.jsx)(`p`,{className:`eyebrow`,children:`Admin dashboard`}),(0,P.jsx)(`h1`,{children:`Approve login in Telegram`}),(0,P.jsx)(`p`,{className:`muted-copy`,children:`Request approval, then choose the matching number in your Telegram admin chat.`}),a?(0,P.jsx)(Ut,{variant:a.variant,message:a.message}):null,(0,P.jsx)(`div`,{className:`login-form`,children:(0,P.jsx)(`button`,{className:`button-primary`,type:`button`,disabled:r,onClick:m,children:r?`Sending…`:t?`Request new approval`:`Request Telegram approval`})}),t?(0,P.jsxs)(`div`,{className:`login-form`,children:[(0,P.jsx)(`div`,{className:`login-code-display`,"aria-label":`Approval code`,children:t.displayCode}),(0,P.jsxs)(`div`,{className:`login-countdown`,children:[(0,P.jsx)(`div`,{className:`login-countdown-track`,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":d,"aria-valuenow":h,children:(0,P.jsx)(`div`,{className:`login-countdown-fill`,style:{width:`${g}%`}})}),(0,P.jsxs)(`div`,{className:`login-status-row`,children:[_?(0,P.jsx)(`span`,{className:`login-spinner`,"aria-hidden":`true`}):null,(0,P.jsxs)(`span`,{children:[_?`Waiting for Telegram admin`:`Status: ${s}`,` · expires in `,h,`s`]})]})]})]}):null]})})}function mm(e){if(!e.enabled)return`disabled`;if(!e.configured)return`not_configured`;if(e.quota?.hardLimitReached)return`quota_exhausted`;let t=e.accounts||[];if(t.filter(e=>e.status===`connected`&&e.routingMode!==`disabled`).length===0&&t.length>0&&t.some(e=>e.status===`expired`||e.status===`needs_reconnect`))return`auth_expired`;let n=e.models?.filter(e=>e.serviceKind===`chat`&&e.enabled)||[];if(e.serviceKinds.includes(`chat`)&&n.length===0)return`not_configured`;if([e.quota?.softLimitReached,e.quota?.usagePercent&&e.quota.usagePercent>85,t.some(e=>e.status===`needs_reconnect`),e.healthMessage&&e.healthMessage.includes(`warning`)].some(e=>e))return`degraded`;if(e.healthStatus&&e.lastHealthCheckAt){let t=new Date(e.lastHealthCheckAt);if((new Date().getTime()-t.getTime())/(1e3*60*60)<1)return e.healthStatus}return`healthy`}function hm(e){if(e.healthStatus===`unknown`||!e.lastHealthCheckAt)return!0;let t=new Date(e.lastHealthCheckAt);return(new Date().getTime()-t.getTime())/(1e3*60*60)>=(e.healthStatus===`healthy`?4:1)}function gm(e){let t=0;switch(e.enabled&&(t+=10),e.configured&&(t+=5),e.fallbackEligible&&(t+=3),e.tier){case`subscription`:t+=8;break;case`cheap`:t+=6;break;case`free`:t+=4;break;case`custom`:t+=2;break}switch(e.healthStatus){case`unknown`:t+=15;break;case`auth_expired`:case`quota_exhausted`:t+=12;break;case`degraded`:case`rate_limited`:t+=8;break;case`not_configured`:t+=5;break}return t}function _m(e){let t=[],n=[],r=`success`;e.status===`failed`?r=`error`:e.status===`partial`&&(r=`warning`),e.authOk||(t.push(`Authentication failed`),n.push(`Reconnect or refresh authentication credentials`),r=`error`),e.quotaOk||(t.push(`Quota limit reached`),n.push(`Wait for quota reset or upgrade plan`),r=`error`),e.modelOk||(t.push(`Model access failed`),n.push(`Check model availability and permissions`),r=`error`),e.routingOk||(t.push(`Routing configuration failed`),n.push(`Verify provider routing settings`),r=`error`),e.latencyMs&&e.latencyMs>5e3&&(t.push(`High latency detected`),n.push(`Check network connection and provider performance`),r===`success`&&(r=`warning`));let i;return i=e.status===`success`?`Health check passed in ${e.latencyMs}ms`:e.status===`partial`?`Health check partially successful with ${t.length} issue(s)`:`Health check failed: ${e.errorMessage||`Unknown error`}`,{summary:i,issues:t,suggestions:n,severity:r}}function vm(e){return e.hardLimitReached?{status:`exhausted`,message:`Quota exhausted`,resetInfo:e.resetAt?`Resets at ${new Date(e.resetAt).toLocaleString()}`:void 0}:e.softLimitReached||e.usagePercent&&e.usagePercent>90?{status:`critical`,message:`Quota usage: ${e.usagePercent?.toFixed(1)}%`,resetInfo:e.resetAt?`Resets at ${new Date(e.resetAt).toLocaleString()}`:void 0}:e.usagePercent&&e.usagePercent>75?{status:`warning`,message:`Quota usage: ${e.usagePercent.toFixed(1)}%`,resetInfo:e.resetAt?`Resets at ${new Date(e.resetAt).toLocaleString()}`:void 0}:{status:`healthy`,message:e.usagePercent?`Quota usage: ${e.usagePercent.toFixed(1)}%`:`Quota available`,resetInfo:e.resetAt?`Resets at ${new Date(e.resetAt).toLocaleString()}`:void 0}}var ym={pollInterval:3e4,maxRetries:3,retryDelay:5e3,batchSize:5,priorityThreshold:50},bm=class{config;isRunning=!1;intervalId=null;subscribers=new Set;statsSubscribers=new Set;providerHealthCache=new Map;stats={totalProviders:0,healthyProviders:0,unhealthyProviders:0,lastUpdateAt:new Date().toISOString(),checksPerformed:0,errorsEncountered:0,averageCheckTime:0};checkTimes=[];constructor(e={}){this.config={...ym,...e}}start(){this.isRunning||(this.isRunning=!0,this.scheduleNextCheck(),console.log(`Provider health monitoring started`))}stop(){this.isRunning&&(this.isRunning=!1,this.intervalId&&=(clearTimeout(this.intervalId),null),console.log(`Provider health monitoring stopped`))}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}subscribeToStats(e){return this.statsSubscribers.add(e),()=>this.statsSubscribers.delete(e)}getProviderHealth(e){return this.providerHealthCache.get(e)||null}getAllProviderHealth(){return new Map(this.providerHealthCache)}getStats(){return{...this.stats}}async checkProviderHealth(e){let t=Date.now();try{let[n,r]=await Promise.all([b(`/api/providers/${e}`),this.fetchProviderUsage(e)]),i=n.provider;if(!i)throw Error(`Provider not found`);let a=this.computeProviderHealthFromData(i,r);this.providerHealthCache.set(e,a),this.notifySubscribers(a);let o=Date.now()-t;return this.updateStats(o,!1),a}catch(n){console.error(`Health check failed for provider ${e}:`,n);let r={providerId:e,healthStatus:`unknown`,healthMessage:n instanceof Error?n.message:`Health check failed`,lastHealthCheckAt:new Date().toISOString(),issues:[`Health check failed`],suggestedFixes:[`Check provider configuration and network connectivity`]};this.providerHealthCache.set(e,r),this.notifySubscribers(r);let i=Date.now()-t;throw this.updateStats(i,!0),n}}async checkMultipleProviders(e){let t=[],n=this.chunkArray(e,this.config.batchSize);for(let e of n){let r=e.map(e=>this.checkProviderHealth(e).catch(t=>(console.error(`Batch health check failed for provider ${e}:`,t),null))),i=await Promise.all(r);t.push(...i.filter(e=>e!==null)),n.length>1&&await this.delay(1e3)}return t}async refreshAllProviders(){try{let e=(await b(`/api/providers`)).providers||[],t=e.filter(e=>this.shouldCheckProvider(e)).sort((e,t)=>{let n=gm(this.mapToProvider(e));return gm(this.mapToProvider(t))-n}).slice(0,20);console.log(`Refreshing health for ${t.length} providers`),await this.checkMultipleProviders(t.map(e=>e.id)),this.updateOverallStats(e)}catch(e){console.error(`Failed to refresh all provider health:`,e)}}scheduleNextCheck(){this.isRunning&&(this.intervalId=setTimeout(async()=>{try{await this.refreshAllProviders()}catch(e){console.error(`Scheduled health check failed:`,e)}finally{this.scheduleNextCheck()}},this.config.pollInterval))}async fetchProviderUsage(e){try{return(await b(`/api/providers/live-usage`)).providers?.find(t=>t.id===e)?.usage||null}catch(t){return console.warn(`Failed to fetch usage for provider ${e}:`,t),null}}computeProviderHealthFromData(e,t){let n=this.mapToProvider(e);t&&n.quota&&(n.quota.used=t.used||n.quota.used,n.quota.limit=t.limit||n.quota.limit,n.quota.remaining=t.remaining,n.quota.used&&n.quota.limit&&(n.quota.usagePercent=n.quota.used/n.quota.limit*100));let r=mm(n);return{providerId:e.id,healthStatus:r.status,healthMessage:r.message,lastHealthCheckAt:new Date().toISOString(),quota:n.quota,issues:r.issues||[],suggestedFixes:r.suggestedFixes||[]}}shouldCheckProvider(e){let t=this.mapToProvider(e);if(!t.enabled)return!1;let n=hm(t),r=gm(t);return n&&r>=this.config.priorityThreshold}mapToProvider(e){return{id:e.id,name:e.name,displayName:e.name,tier:`custom`,serviceKinds:[`chat`],authTypes:[e.authMode||`api_key`],enabled:!0,configured:e.providerApiKeys?.length>0||!!e.chatgptAccountId,healthStatus:`unknown`,priority:1,fallbackEligible:!1,accounts:[],models:[]}}notifySubscribers(e){this.subscribers.forEach(t=>{try{t(e)}catch(e){console.error(`Error in health update subscriber:`,e)}})}notifyStatsSubscribers(){this.statsSubscribers.forEach(e=>{try{e(this.stats)}catch(e){console.error(`Error in stats subscriber:`,e)}})}updateStats(e,t){this.stats.checksPerformed++,t&&this.stats.errorsEncountered++,this.checkTimes.push(e),this.checkTimes.length>100&&this.checkTimes.shift(),this.stats.averageCheckTime=this.checkTimes.reduce((e,t)=>e+t,0)/this.checkTimes.length,this.stats.lastUpdateAt=new Date().toISOString(),this.notifyStatsSubscribers()}updateOverallStats(e){this.stats.totalProviders=e.length;let t=0,n=0;this.providerHealthCache.forEach(e=>{e.healthStatus===`healthy`?t++:e.healthStatus!==`unknown`&&n++}),this.stats.healthyProviders=t,this.stats.unhealthyProviders=n,this.stats.lastUpdateAt=new Date().toISOString(),this.notifyStatsSubscribers()}chunkArray(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}delay(e){return new Promise(t=>setTimeout(t,e))}},xm=null;function Sm(e){return xm||=new bm(e),xm}function Cm(e){let[t,n]=(0,v.useState)(new Map),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(null),l=(0,v.useMemo)(()=>Sm(e),[e]);(0,v.useEffect)(()=>{let e=l.subscribe(e=>{n(t=>new Map(t).set(e.providerId,e)),c(null)}),t=l.subscribeToStats(e=>{i(e)});return n(l.getAllProviderHealth()),i(l.getStats()),()=>{e(),t()}},[l]);let u=(0,v.useCallback)(()=>{try{l.start(),o(!0),c(null)}catch(e){c(e instanceof Error?e.message:`Failed to start monitoring`)}},[l]),d=(0,v.useCallback)(()=>{try{l.stop(),o(!1)}catch(e){c(e instanceof Error?e.message:`Failed to stop monitoring`)}},[l]),f=(0,v.useCallback)(async()=>{try{c(null),await l.refreshAllProviders()}catch(e){c(e instanceof Error?e.message:`Failed to refresh health data`)}},[l]),p=(0,v.useCallback)(async e=>{try{c(null),await l.checkProviderHealth(e)}catch(t){c(t instanceof Error?t.message:`Failed to check health for provider ${e}`)}},[l]);return{healthUpdates:t,stats:r,healthSummary:(0,v.useMemo)(()=>{let e=Array.from(t.values()),n={total:e.length,healthy:0,degraded:0,critical:0,unknown:0,lastUpdateAt:r?.lastUpdateAt||null};return e.forEach(e=>{switch(e.healthStatus){case`healthy`:n.healthy++;break;case`degraded`:case`rate_limited`:n.degraded++;break;case`quota_exhausted`:case`auth_expired`:case`disabled`:case`not_configured`:n.critical++;break;default:n.unknown++}}),n},[t,r]),isMonitoring:a,error:s,startMonitoring:u,stopMonitoring:d,refreshAllHealth:f,checkProviderHealth:p}}function wm(e){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null),s=(0,v.useMemo)(()=>Sm(),[]);return(0,v.useEffect)(()=>{if(!e){n(null);return}return n(s.getProviderHealth(e)),s.subscribe(t=>{t.providerId===e&&(n(t),o(null))})},[e,s]),{healthUpdate:t,isChecking:r,error:a,checkHealth:(0,v.useCallback)(async()=>{if(e)try{i(!0),o(null),await s.checkProviderHealth(e)}catch(e){o(e instanceof Error?e.message:`Health check failed`)}finally{i(!1)}},[e,s]),getHealthAge:(0,v.useCallback)(()=>{if(!t?.lastHealthCheckAt)return null;let e=new Date(t.lastHealthCheckAt),n=new Date().getTime()-e.getTime();return{ageMs:n,ageMinutes:Math.floor(n/(1e3*60)),ageHours:Math.floor(n/(1e3*60*60)),isStale:n>14400*1e3}},[t]),hasHealthData:!!t}}function Tm(e){let{healthUpdates:t}=Cm(),n=(0,v.useMemo)(()=>e.map(e=>{let n=t.get(e.id);return{...e,healthStatus:n?.healthStatus||e.healthStatus,healthMessage:n?.healthMessage||e.healthMessage,lastHealthCheckAt:n?.lastHealthCheckAt||e.lastHealthCheckAt,quota:n?.quota||e.quota,realtimeHealth:n}}),[e,t]);return{enhancedProviders:n,sortedByHealth:(0,v.useMemo)(()=>[...n].sort((e,t)=>{let n={healthy:0,degraded:1,rate_limited:2,quota_exhausted:3,auth_expired:4,not_configured:5,disabled:6,unknown:7},r=n[e.healthStatus]??7,i=n[t.healthStatus]??7;if(r!==i)return r-i;let a={subscription:0,cheap:1,free:2,custom:3},o=a[e.tier]??3,s=a[t.tier]??3;return o===s?e.priority-t.priority:o-s}),[n]),filterByHealth:(0,v.useCallback)(e=>n.filter(t=>e.includes(t.healthStatus)),[n]),getProvidersNeedingAttention:(0,v.useCallback)(()=>n.filter(e=>{let n=t.get(e.id);return n&&(n.issues&&n.issues.length>0||[`quota_exhausted`,`auth_expired`,`not_configured`,`disabled`].includes(n.healthStatus))}),[n,t])}}function Em(e=!0,t){let{isMonitoring:n,startMonitoring:r,stopMonitoring:i}=Cm(t);return(0,v.useEffect)(()=>{e&&!n?r():!e&&n&&i()},[e,n,r,i]),(0,v.useEffect)(()=>()=>{n&&i()},[n,i]),{isMonitoring:n}}function Dm(e){let t=e.toLowerCase();return t.includes(`claude`)||t.includes(`anthropic`)?`linear-gradient(135deg, #d97706, #b45309)`:t.includes(`openai`)||t.includes(`codex`)||t.includes(`copilot`)?`linear-gradient(135deg, #1e293b, #0f172a)`:t.includes(`gemini`)||t.includes(`google`)?`linear-gradient(135deg, #2563eb, #7c3aed)`:t.includes(`deepseek`)?`linear-gradient(135deg, #0d9488, #0f766e)`:t.includes(`groq`)?`linear-gradient(135deg, #ea580c, #c2410c)`:t.includes(`mistral`)?`linear-gradient(135deg, #e11d48, #be123c)`:t.includes(`xai`)||t.includes(`grok`)?`linear-gradient(135deg, #000000, #1e293b)`:t.includes(`cursor`)?`linear-gradient(135deg, #4f46e5, #3730a3)`:t.includes(`qwen`)||t.includes(`alibaba`)?`linear-gradient(135deg, #059669, #047857)`:t.includes(`cloudflare`)?`linear-gradient(135deg, #f97316, #ea580c)`:t.includes(`nvidia`)?`linear-gradient(135deg, #16a34a, #15803d)`:`linear-gradient(135deg, #64748b, #475569)`}function Om(e){let t=e.split(` `);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}function km(e){return e.configured?e.healthStatus===`healthy`?{label:`Ready`,dotClass:`healthy`}:e.healthStatus===`degraded`?{label:`Degraded`,dotClass:`degraded`}:e.healthStatus===`quota_exhausted`?{label:`Quota Exhausted`,dotClass:`quota_exhausted`}:{label:`Ready`,dotClass:`healthy`}:{label:`No connection`,dotClass:`not_configured`}}function Am({provider:e,isDisabled:t,onToggle:n,onClick:r}){let i=t?{label:`Disabled`,dotClass:`not_configured`}:km(e),a=Dm(e.id),o=Om(e.displayName);return(0,P.jsxs)(`div`,{className:`provider-small-card`,onClick:r,children:[(0,P.jsx)(`div`,{className:`provider-small-logo-container`,style:{background:a},children:o}),(0,P.jsxs)(`div`,{className:`provider-small-info`,children:[(0,P.jsxs)(`div`,{className:`provider-small-name-row`,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`var(--space-2)`},children:[(0,P.jsx)(`h4`,{className:`provider-small-name`,title:e.displayName,children:e.displayName}),(0,P.jsx)(`div`,{className:`custom-switch ${t?`off`:`on`}`,onClick:e=>{e.stopPropagation(),n()},title:t?`Enable Provider`:`Disable Provider`,children:(0,P.jsx)(`span`,{className:`custom-switch-slider`})})]}),(0,P.jsxs)(`div`,{className:`provider-small-status`,children:[(0,P.jsx)(`span`,{className:`provider-small-status-dot ${i.dotClass}`}),(0,P.jsx)(`span`,{children:i.label})]})]})]})}function jm(){let[e,t]=(0,v.useState)(``),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(()=>{try{let e=localStorage.getItem(`disabled_providers`);return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),o=e=>{a(t=>{let n=new Set(t);n.has(e)?n.delete(e):n.add(e);try{localStorage.setItem(`disabled_providers`,JSON.stringify(Array.from(n)))}catch(e){console.error(`Failed to persist disabled providers:`,e)}return n})};(0,v.useEffect)(()=>{E().then(e=>{e&&e.activeProviderId&&r(e.activeProviderId)}).catch(()=>{})},[]);let{providers:s,loading:c,error:l,refresh:u}=tm(),{testProvider:d}=rm();Em(!0);let{enhancedProviders:f}=Tm(s),p=(0,v.useMemo)(()=>f.filter(t=>{if(e){let n=e.toLowerCase();return t.name.toLowerCase().includes(n)||t.displayName.toLowerCase().includes(n)||t.description?.toLowerCase().includes(n)}return!0}),[f,e]),m=(0,v.useMemo)(()=>p.filter(e=>e.tier===`custom`),[p]),h=(0,v.useMemo)(()=>p.filter(e=>e.tier!==`custom`&&e.authTypes.includes(`oauth`)),[p]),g=(0,v.useMemo)(()=>p.filter(e=>e.tier===`free`&&!e.authTypes.includes(`oauth`)),[p]),_=(0,v.useMemo)(()=>p.filter(e=>e.tier!==`custom`&&!e.authTypes.includes(`oauth`)&&e.tier!==`free`),[p]),y=e=>{window.location.hash=`#/providers/${e}`},b=async e=>{try{await d(e)}catch(t){console.error(`Failed to test provider ${e}:`,t)}},x=()=>{window.location.hash=`#/providers/new`},S=async e=>{let t=e.filter(e=>e.configured);for(let e of t)b(e.id)},C=async()=>{try{await u()}catch(e){console.error(`Failed to refresh providers:`,e)}};return c?(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ie,title:`Providers`,description:`Manage AI provider connections and routing configuration`}),(0,P.jsx)(jt,{title:`Loading providers`,description:`Fetching provider data and health status...`,cards:3})]}):l?(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ie,title:`Providers`,description:`Manage AI provider connections and routing configuration`}),(0,P.jsx)(At,{title:`Failed to load providers`,description:l,actionLabel:`Retry`,onClick:C})]}):(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ie,title:`Providers`,description:`Manage your AI provider connections`,actions:(0,P.jsxs)(`div`,{className:`page-actions`,style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`},children:[(0,P.jsxs)(`div`,{className:`search-container`,style:{position:`relative`,display:`flex`,alignItems:`center`},children:[(0,P.jsx)(`input`,{type:`text`,className:`search-input`,placeholder:`Search providers...`,value:e,onChange:e=>t(e.target.value),style:{padding:`6px 12px 6px 32px`,fontSize:`var(--font-sm)`,borderRadius:`var(--radius-md)`,border:`1px solid var(--line)`,background:`var(--surface-input)`,color:`var(--text-primary)`,width:`200px`}}),(0,P.jsx)(`span`,{style:{position:`absolute`,left:`10px`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`,pointerEvents:`none`},children:`🔍`})]}),(0,P.jsx)($t,{onClick:C})]})}),(0,P.jsxs)(`div`,{className:`providers-screen-layout`,children:[(0,P.jsxs)(`div`,{className:`provider-section`,style:{marginBottom:`var(--space-6)`},children:[(0,P.jsxs)(`div`,{className:`provider-section-title-row`,children:[(0,P.jsx)(`h3`,{children:`Custom Providers (OpenAI/Anthropic Compatible)`}),(0,P.jsx)(`div`,{className:`provider-section-actions`,children:(0,P.jsx)(`button`,{className:`button-primary`,onClick:x,children:`+ Add Provider`})})]}),m.length===0?(0,P.jsx)(`div`,{className:`provider-empty-state`,style:{textAlign:`center`,padding:`var(--space-6)`,border:`1px dashed var(--line)`,borderRadius:`var(--radius-md)`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`No custom providers — use buttons above to add OpenAI/Anthropic compatible endpoints`}):(0,P.jsx)(`div`,{className:`providers-small-grid`,children:m.map(e=>(0,P.jsx)(Am,{provider:e,isDisabled:i.has(e.id),onToggle:()=>o(e.id),onClick:()=>y(e.id)},e.id))})]}),(0,P.jsxs)(`div`,{className:`provider-section`,style:{marginBottom:`var(--space-6)`},children:[(0,P.jsxs)(`div`,{className:`provider-section-title-row`,children:[(0,P.jsx)(`h3`,{children:`OAuth Providers`}),(0,P.jsx)(`button`,{className:`button-secondary`,style:{fontSize:`var(--font-xs)`,padding:`4px var(--space-2)`},onClick:()=>S(h),disabled:h.filter(e=>e.configured).length===0,children:`▷ Test All`})]}),h.length===0?(0,P.jsx)(`div`,{style:{color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`No OAuth providers found`}):(0,P.jsx)(`div`,{className:`providers-small-grid`,children:h.map(e=>(0,P.jsx)(Am,{provider:e,isDisabled:i.has(e.id),onToggle:()=>o(e.id),onClick:()=>y(e.id)},e.id))})]}),(0,P.jsxs)(`div`,{className:`provider-section`,style:{marginBottom:`var(--space-6)`},children:[(0,P.jsxs)(`div`,{className:`provider-section-title-row`,children:[(0,P.jsx)(`h3`,{children:`Free Tier Providers`}),(0,P.jsx)(`button`,{className:`button-secondary`,style:{fontSize:`var(--font-xs)`,padding:`4px var(--space-2)`},onClick:()=>S(g),disabled:g.filter(e=>e.configured).length===0,children:`▷ Test All`})]}),g.length===0?(0,P.jsx)(`div`,{style:{color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`No Free Tier providers found`}):(0,P.jsx)(`div`,{className:`providers-small-grid`,children:g.map(e=>(0,P.jsx)(Am,{provider:e,isDisabled:i.has(e.id),onToggle:()=>o(e.id),onClick:()=>y(e.id)},e.id))})]}),(0,P.jsxs)(`div`,{className:`provider-section`,style:{marginBottom:`var(--space-6)`},children:[(0,P.jsxs)(`div`,{className:`provider-section-title-row`,children:[(0,P.jsx)(`h3`,{children:`API Key Providers`}),(0,P.jsx)(`button`,{className:`button-secondary`,style:{fontSize:`var(--font-xs)`,padding:`4px var(--space-2)`},onClick:()=>S(_),disabled:_.filter(e=>e.configured).length===0,children:`▷ Test All`})]}),_.length===0?(0,P.jsx)(`div`,{style:{color:`var(--text-secondary)`,fontSize:`var(--font-sm)`},children:`No API Key providers found`}):(0,P.jsx)(`div`,{className:`providers-small-grid`,children:_.map(e=>(0,P.jsx)(Am,{provider:e,isDisabled:i.has(e.id),onToggle:()=>o(e.id),onClick:()=>y(e.id)},e.id))})]})]})]})}function Mm(){return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ie,title:`Media Providers`,description:`Multimodal, voice, image, and video generation upstreams`}),(0,P.jsx)(V,{title:`Feature Coming Soon`,description:`Extended media provider pool`,tone:`info`,children:(0,P.jsxs)(`div`,{style:{padding:`var(--space-6) var(--space-4)`,textAlign:`center`},children:[(0,P.jsx)(`span`,{style:{fontSize:`3rem`},children:`🎨`}),(0,P.jsx)(`h3`,{style:{margin:`var(--space-3) 0 var(--space-2) 0`,fontSize:`var(--font-lg)`},children:`Extended Multimodal Pipeline`}),(0,P.jsx)(`p`,{style:{margin:`0 auto var(--space-4) auto`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`,maxWidth:`540px`,lineHeight:`1.6`},children:`Media Providers will allow responses-proxy to handle multimodal requests (audio processing, text-to-speech, DALL-E image generation, and video upstreams) with automatic cost routing and fallback policies.`}),(0,P.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`var(--space-2)`,justifyContent:`center`},children:[(0,P.jsx)(B,{variant:`accent`,children:`Image Tiers`}),(0,P.jsx)(B,{variant:`accent`,children:`Audio Failover`}),(0,P.jsx)(B,{variant:`accent`,children:`Video Upstreams`})]})]})})]})}function Nm(){return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ie,title:`Proxy Pools`,description:`Distributed network proxies and rotating IP pools`}),(0,P.jsx)(V,{title:`Feature Coming Soon`,description:`Network proxy list configuration`,tone:`info`,children:(0,P.jsxs)(`div`,{style:{padding:`var(--space-6) var(--space-4)`,textAlign:`center`},children:[(0,P.jsx)(`span`,{style:{fontSize:`3rem`},children:`🌐`}),(0,P.jsx)(`h3`,{style:{margin:`var(--space-3) 0 var(--space-2) 0`,fontSize:`var(--font-lg)`},children:`Rotating Network IP Pools`}),(0,P.jsx)(`p`,{style:{margin:`0 auto var(--space-4) auto`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`,maxWidth:`540px`,lineHeight:`1.6`},children:`Proxy Pools will enable routing upstream provider requests through a configured list of residential or datacenter web proxies. This prevents rate-limiting and geographical blocks from impacting high-frequency developer workflows.`}),(0,P.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`var(--space-2)`,justifyContent:`center`},children:[(0,P.jsx)(B,{variant:`accent`,children:`Rotating Proxies`}),(0,P.jsx)(B,{variant:`accent`,children:`IP Health Check`}),(0,P.jsx)(B,{variant:`accent`,children:`Geo-Targeting`})]})]})})]})}function Pm({providerId:e,authType:t,connectionFlow:n,connecting:r,error:i,onStartConnection:a,onCompleteConnection:o,onCancel:s,validationResult:c=null,validating:l=!1}){let[u,d]=(0,v.useState)(`start`),[f,p]=(0,v.useState)(``),[m,h]=(0,v.useState)(``),[g,_]=(0,v.useState)(``),[y,b]=(0,v.useState)(!1),[x,S]=(0,v.useState)(null),[C,w]=(0,v.useState)(`picker`),[T,E]=(0,v.useState)(`builder_id`),[D,O]=(0,v.useState)(``),[ee,k]=(0,v.useState)(`us-east-1`),[te,ne]=(0,v.useState)(null),[re,ie]=(0,v.useState)(``),[ae,A]=(0,v.useState)(``),[j,oe]=(0,v.useState)(``),[se,ce]=(0,v.useState)(5),[le,M]=(0,v.useState)(null),N=(0,v.useRef)(null),ue=n?.type===`kiro`;(0,v.useEffect)(()=>{u===`start`&&n&&(ue?(w(`picker`),d(`device_login`)):t===`api_key`&&n.type===`api_key`?d(`callback`):t===`oauth`&&n.type===`oauth`&&d(`authorize`))},[u,n,t,ue]),(0,v.useEffect)(()=>()=>{N.current&&=(clearInterval(N.current),null)},[u]);let de=(0,v.useCallback)(()=>{N.current&&=(clearInterval(N.current),null)},[]),fe=(0,v.useCallback)(async()=>{try{S(null),M(null),b(!0);let e={authMethod:T};T===`idc`&&(e.startUrl=D.trim(),e.region=ee.trim());let t=await Oe(e);ne(t.sessionId),ie(t.userCode),A(t.verificationUri),oe(t.verificationUriComplete),ce(t.interval),w(`waiting`)}catch(e){M(e instanceof Error?e.message:`Failed to start device login`),w(`error`)}finally{b(!1)}},[T,D,ee]);(0,v.useEffect)(()=>{if(u!==`device_login`||C!==`waiting`||!te)return;let e=async()=>{try{let t=await ke(te);t.status===`pending`?t.interval&&t.interval!==se&&(ce(t.interval),de(),N.current=setInterval(e,t.interval*1e3)):t.status===`completed`?(de(),w(`done`),await o({kiroDeviceLogin:!0,accountId:t.account?.id}),d(`complete`)):t.status===`expired`?(de(),M(`Login expired. Please try again.`),w(`error`)):t.status===`error`&&(de(),M(t.error?.message||`Device login failed.`),w(`error`))}catch(e){de(),M(e instanceof Error?e.message:`Polling failed.`),w(`error`)}};return N.current=setInterval(e,se*1e3),()=>{de()}},[u,C,te,se,de,o]);let pe=(0,v.useCallback)(async()=>{try{if(S(null),ue){d(`device_login`),w(`picker`);return}await a(t),t===`oauth`?d(`authorize`):t===`api_key`&&d(`callback`)}catch(e){console.error(`Failed to start connection:`,e),S(e instanceof Error?e.message:`Failed to start connection`)}},[t,ue,a]),me=(0,v.useCallback)(async()=>{if(f.trim())try{b(!0),S(null),await o({callbackUrl:f.trim(),state:n?.state}),d(`complete`)}catch(e){console.error(`Failed to complete OAuth:`,e),S(e instanceof Error?e.message:`Failed to complete OAuth connection`)}finally{b(!1)}},[f,n?.state,o]),he=(0,v.useCallback)(async()=>{if(m.trim())try{b(!0),S(null),await o({apiKey:m.trim(),keyName:g.trim()||`API Key`}),d(`complete`)}catch(e){console.error(`Failed to add API key:`,e),S(e instanceof Error?e.message:`Failed to add API key connection`)}finally{b(!1)}},[m,g,o]),ge=()=>(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(`h3`,{children:`Connect New Account`}),(0,P.jsx)(`p`,{children:`Add a new ${t===`oauth`?`OAuth`:`API key`} account to this provider.`})]}),(0,P.jsxs)(`div`,{className:`step-content`,children:[t===`oauth`&&(0,P.jsxs)(`div`,{className:`auth-info`,children:[(0,P.jsx)(`div`,{className:`auth-type-badge`,children:(0,P.jsx)(B,{variant:`accent`,size:`sm`,children:`OAuth`})}),(0,P.jsx)(`p`,{children:`This will start an OAuth flow to connect your account securely.`})]}),t===`api_key`&&(0,P.jsxs)(`div`,{className:`auth-info`,children:[(0,P.jsx)(`div`,{className:`auth-type-badge`,children:(0,P.jsx)(B,{variant:`neutral`,size:`sm`,children:`API Key`})}),(0,P.jsx)(`p`,{children:`Enter your API key to connect this provider.`})]}),(i||x)&&(0,P.jsxs)(`div`,{className:`connection-error`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`span`,{children:i||x})]})]}),(0,P.jsxs)(`div`,{className:`step-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,disabled:r,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:pe,disabled:r,children:r?`Starting...`:`Start Connection`})]})]}),_e=()=>C===`picker`?(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(`h3`,{children:`Sign In with Device Code`}),(0,P.jsx)(`p`,{children:`Choose your authentication method to connect a Kiro account.`})]}),(0,P.jsxs)(`div`,{className:`step-content`,children:[(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{children:`Authentication Method`}),(0,P.jsxs)(`div`,{className:`auth-method-cards`,children:[(0,P.jsxs)(`button`,{type:`button`,className:`auth-method-card ${T===`builder_id`?`selected`:``}`,onClick:()=>E(`builder_id`),children:[(0,P.jsx)(`strong`,{children:`AWS Builder ID`}),(0,P.jsx)(`span`,{children:`Personal account`})]}),(0,P.jsxs)(`button`,{type:`button`,className:`auth-method-card ${T===`idc`?`selected`:``}`,onClick:()=>E(`idc`),children:[(0,P.jsx)(`strong`,{children:`IAM Identity Center`}),(0,P.jsx)(`span`,{children:`Enterprise`})]})]})]}),T===`idc`&&(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`deviceStartUrl`,children:`Start URL *`}),(0,P.jsx)(`input`,{id:`deviceStartUrl`,type:`text`,className:`form-input`,placeholder:`https://my-org.awsapps.com/start`,value:D,onChange:e=>O(e.target.value),disabled:y})]}),(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`deviceRegion`,children:`Region *`}),(0,P.jsx)(`input`,{id:`deviceRegion`,type:`text`,className:`form-input`,placeholder:`us-east-1`,value:ee,onChange:e=>k(e.target.value),disabled:y})]})]}),(le||x)&&(0,P.jsxs)(`div`,{className:`connection-error`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`span`,{children:le||x})]})]}),(0,P.jsxs)(`div`,{className:`step-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:()=>d(`start`),disabled:y,children:`Back`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:fe,disabled:y||T===`idc`&&(!D.trim()||!ee.trim()),children:y?`Starting...`:`Start Device Login`})]})]}):C===`waiting`?(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(`h3`,{children:`Enter Code in Browser`}),(0,P.jsx)(`p`,{children:`Enter the code above on the verification page`})]}),(0,P.jsxs)(`div`,{className:`step-content`,children:[(0,P.jsx)(`div`,{className:`device-user-code`,children:re}),(0,P.jsx)(`div`,{className:`auth-url-section`,children:(0,P.jsxs)(`a`,{href:j,target:`_blank`,rel:`noopener noreferrer`,className:`auth-url-link`,children:[(0,P.jsx)(ct,{className:`link-icon`}),`Open verification page`]})}),(0,P.jsxs)(`div`,{className:`connection-validating`,children:[(0,P.jsx)(`span`,{className:`login-spinner`,"aria-hidden":`true`}),(0,P.jsx)(`span`,{children:`Waiting for browser approval...`})]})]}),(0,P.jsx)(`div`,{className:`step-actions`,children:(0,P.jsx)(`button`,{className:`button-secondary`,onClick:()=>{de(),s()},children:`Cancel`})})]}):C===`error`?(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(`h3`,{children:`Device Login Failed`}),(0,P.jsx)(`p`,{children:`Something went wrong during the device login flow.`})]}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsxs)(`div`,{className:`connection-error`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`span`,{children:le||`An unknown error occurred.`})]})}),(0,P.jsxs)(`div`,{className:`step-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:()=>{M(null),w(`picker`)},children:`Try Again`})]})]}):(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(qe,{className:`success-icon`}),(0,P.jsx)(`h3`,{children:`Device Login Successful`}),(0,P.jsx)(`p`,{children:`Your Kiro account has been connected.`})]}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsx)(`div`,{className:`success-message`,children:(0,P.jsx)(`p`,{children:`Account connected successfully via device code flow.`})})}),(0,P.jsx)(`div`,{className:`step-actions`,children:(0,P.jsx)(`button`,{className:`button-primary`,onClick:s,children:`Done`})})]}),ve=()=>(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(`h3`,{children:`Authorize Account`}),(0,P.jsx)(`p`,{children:`Click the link below to authorize with the provider.`})]}),(0,P.jsxs)(`div`,{className:`step-content`,children:[n?.authUrl&&(0,P.jsxs)(`div`,{className:`auth-url-section`,children:[(0,P.jsx)(`div`,{className:`auth-url-container`,children:(0,P.jsxs)(`a`,{href:n.authUrl,target:`_blank`,rel:`noopener noreferrer`,className:`auth-url-link`,children:[(0,P.jsx)(ct,{className:`link-icon`}),`Open Authorization Page`]})}),(0,P.jsx)(`p`,{className:`auth-instructions`,children:n.instructions||`Complete the authorization and return here.`})]}),n?.requiresCallback&&(0,P.jsxs)(`div`,{className:`callback-section`,children:[(0,P.jsx)(`p`,{children:`After authorizing, you'll be redirected to a callback URL. Copy and paste that URL below:`}),(0,P.jsx)(`button`,{className:`button-secondary`,onClick:()=>d(`callback`),children:`I've Completed Authorization`})]})]}),(0,P.jsx)(`div`,{className:`step-actions`,children:(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,children:`Cancel`})})]}),ye=()=>t===`api_key`?(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(`h3`,{children:`Enter API Key`}),(0,P.jsx)(`p`,{children:`Provide your API key and an optional name for this connection.`})]}),(0,P.jsxs)(`div`,{className:`step-content`,children:[(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`apiKey`,children:`API Key *`}),(0,P.jsx)(`input`,{id:`apiKey`,type:`password`,className:`form-input`,placeholder:`Enter your API key...`,value:m,onChange:e=>h(e.target.value),disabled:y})]}),(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`apiKeyName`,children:`Key Name (Optional)`}),(0,P.jsx)(`input`,{id:`apiKeyName`,type:`text`,className:`form-input`,placeholder:`e.g., Production Key, Development Key`,value:g,onChange:e=>_(e.target.value),disabled:y})]}),(i||x)&&(0,P.jsxs)(`div`,{className:`connection-error`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`span`,{children:i||x})]})]}),(0,P.jsxs)(`div`,{className:`step-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,disabled:y,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:he,disabled:!m.trim()||y,children:y?`Adding...`:`Add API Key`})]})]}):(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(`h3`,{children:`Complete Authorization`}),(0,P.jsx)(`p`,{children:`Paste the callback URL you were redirected to after authorization.`})]}),(0,P.jsxs)(`div`,{className:`step-content`,children:[(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`callbackUrl`,children:`Callback URL *`}),(0,P.jsx)(`textarea`,{id:`callbackUrl`,className:`form-textarea`,placeholder:`Paste the full callback URL here...`,value:f,onChange:e=>p(e.target.value),disabled:y,rows:3})]}),(0,P.jsxs)(`div`,{className:`callback-help`,children:[(0,P.jsx)(`p`,{children:`The callback URL should look something like:`}),(0,P.jsx)(`code`,{children:`https://chat.openai.com/auth/callback?code=...`})]}),(i||x)&&(0,P.jsxs)(`div`,{className:`connection-error`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`span`,{children:i||x})]})]}),(0,P.jsxs)(`div`,{className:`step-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:()=>d(`authorize`),disabled:y,children:`Back`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:me,disabled:!f.trim()||y,children:y?`Completing...`:`Complete Connection`})]})]}),be=e=>(0,P.jsx)(`ul`,{className:`validation-check-list`,children:[{label:`Authentication`,ok:e.authOk},{label:`Quota`,ok:e.quotaOk},{label:`Model access`,ok:e.modelOk},{label:`Routing`,ok:e.routingOk}].map(e=>(0,P.jsxs)(`li`,{className:e.ok?`check-pass`:`check-fail`,children:[e.ok?(0,P.jsx)(qe,{className:`success-icon`}):(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsxs)(`span`,{children:[e.label,`: `,e.ok?`Passed`:`Did not pass`]})]},e.label))}),xe=()=>(0,P.jsx)(`div`,{className:`step-actions`,children:(0,P.jsx)(`button`,{className:`button-primary`,onClick:s,children:`Done`})});return r&&!n?(0,P.jsx)(`div`,{className:`connection-flow`,children:(0,P.jsx)(jt,{title:`Starting connection`,description:`Preparing account connection flow...`,cards:1})}):(0,P.jsx)(`div`,{className:`connection-flow`,children:(0,P.jsxs)(`div`,{className:`connection-flow-container`,children:[u===`start`&&ge(),u===`authorize`&&ve(),u===`callback`&&ye(),u===`device_login`&&_e(),u===`complete`&&(()=>{if(l)return(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(`h3`,{children:`Verifying connection`}),(0,P.jsx)(`p`,{children:`Running a quick health check against the new account.`})]}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsxs)(`div`,{className:`connection-validating`,children:[(0,P.jsx)(`span`,{className:`login-spinner`,"aria-hidden":`true`}),(0,P.jsx)(`span`,{children:`Verifying connection...`})]})}),xe()]});if(c){if(c.status===`success`){let e=typeof c.latencyMs==`number`?` (${c.latencyMs}ms)`:``;return(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(qe,{className:`success-icon`}),(0,P.jsx)(`h3`,{children:`Connection Verified`}),(0,P.jsx)(`p`,{children:`Connected successfully${e}.`})]}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsx)(`div`,{className:`success-message`,children:(0,P.jsx)(`p`,{children:`The new account responded to a health check and is ready to use.`})})}),xe()]})}return c.status===`partial`?(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(qe,{className:`success-icon`}),(0,P.jsx)(`h3`,{children:`Connection Saved — Partial Check`}),(0,P.jsx)(`p`,{children:`Your account was saved, but some health checks did not pass.`})]}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsxs)(`div`,{className:`connection-notice`,children:[(0,P.jsx)(`p`,{children:`Health check results:`}),c.checks&&be(c.checks)]})}),xe()]}):c.status===`timeout`?(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`h3`,{children:`Connection Saved — Validation Timed Out`}),(0,P.jsx)(`p`,{children:`Your account was saved, but we couldn't verify it in time.`})]}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsxs)(`div`,{className:`connection-warning`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`span`,{children:`Validation timed out. Test manually.`})]})}),xe()]}):(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`h3`,{children:`Connection Saved — Validation Failed`}),(0,P.jsx)(`p`,{children:`Your account was saved, but the health check did not pass.`})]}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsxs)(`div`,{className:`connection-warning`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsxs)(`div`,{className:`connection-warning-body`,children:[(0,P.jsx)(`span`,{children:c.errorMessage||`Validation failed.`}),c.suggestedFix&&(0,P.jsx)(`span`,{className:`connection-warning-fix`,children:c.suggestedFix})]})]})}),xe()]})}return(0,P.jsxs)(`div`,{className:`connection-flow-step`,children:[(0,P.jsxs)(`div`,{className:`step-header`,children:[(0,P.jsx)(qe,{className:`success-icon`}),(0,P.jsx)(`h3`,{children:`Connection Successful`}),(0,P.jsx)(`p`,{children:`Your account has been connected successfully.`})]}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsx)(`div`,{className:`success-message`,children:(0,P.jsx)(`p`,{children:`The new account is now available for this provider and will be included in the routing configuration.`})})}),xe()]})})()]})})}async function Fm(e){if(e===`kiro-ide`||e===`kiro-free`||e===`account-kiro`||e.startsWith(`kiro-`))return Im(e);try{let t=(await b(`/api/providers/${e}`)).provider;if(!t)return[];if(t.authMode===`kiro`)return Im(e);let n=[];switch(t.authMode){case`chatgpt_oauth`:let r=await Lm(e,t);n.push(...r);break;case`api_key`:let i=await Rm(e,t);n.push(...i);break;default:console.warn(`Unknown auth mode: ${t.authMode}`)}return n}catch{return[]}}async function Im(e){try{let t=await b(`/api/kiro/accounts`),n=[];return t.accounts?.forEach(t=>{n.push(Bm(e,t))}),n}catch(e){return console.error(`Failed to fetch Kiro accounts:`,e),[]}}async function Lm(e,t){try{let n=await b(`/api/chatgpt-oauth/status`),r=[];if(t.chatgptAccountId){let i=n.accounts?.find(e=>e.accountId===t.chatgptAccountId);i&&r.push(zm(e,i))}else n.accounts?.forEach(t=>{r.push(zm(e,t))});return r}catch(e){return console.error(`Failed to fetch ChatGPT OAuth accounts:`,e),[]}}async function Rm(e,t){let n=[];return t.providerApiKeys?.forEach((t,r)=>{n.push({id:`api-key-${r}`,providerId:e,authType:`api_key`,status:`connected`,label:`API Key ${r+1}`,routingMode:`round_robin`,metadata:{keyPrefix:t.substring(0,8)+`...`,keyName:`Key ${r+1}`,priority:r}})}),n}function zm(e,t){let n=new Date,r=t.expiresAt?new Date(t.expiresAt):null,i=r&&r<n,a=r&&r.getTime()-n.getTime()<10080*60*1e3,o=`connected`,s=`valid`;return t.disabled?o=`disabled`:i?(o=`expired`,s=`expired`):a&&(s=`expiring`),{id:t.accountId||t.id,providerId:e,authType:`oauth`,status:o,label:t.email||`OAuth Account`,email:t.email,routingMode:`priority`,tokenStatus:s,expiresAt:t.expiresAt,refreshable:!0,lastUsedAt:t.lastRefreshAt,metadata:{accountId:t.accountId,idToken:t.idToken?`[REDACTED]`:void 0}}}function Bm(e,t){let n=t.tokenStatus||`unknown`,r=`connected`;return t.isActive?n===`expired`?r=`expired`:n===`missing`&&(r=`invalid`):r=`disabled`,{id:t.id,providerId:e,authType:`oauth`,status:r,label:t.name||`Kiro Account`,routingMode:`round_robin`,tokenStatus:n,expiresAt:t.expiresAt,refreshable:!0,lastUsedAt:t.updatedAt,metadata:{profileArn:t.providerSpecificData?.profileArn,region:t.providerSpecificData?.region,clientId:t.providerSpecificData?.clientId,authMethod:t.providerSpecificData?.authMethod,startUrl:t.providerSpecificData?.startUrl,priority:t.priority,isActive:t.isActive}}}async function Vm(e,t){try{if(e===`kiro-ide`||e===`kiro-free`||e===`account-kiro`||e.startsWith(`kiro-`)){let n=await Um(t);return{providerId:e,accountId:t,status:n.success?`success`:`failed`,testedAt:new Date().toISOString(),latencyMs:n.latencyMs,authOk:n.authOk!==!1,quotaOk:n.quotaOk!==!1,modelOk:n.modelOk!==!1,routingOk:n.routingOk!==!1,testedModel:n.testedModel,errorCode:n.errorCode,errorMessage:n.errorMessage,suggestedFix:n.suggestedFix}}let n=(await b(`/api/providers/${e}`)).provider;if(!n)throw Error(`Provider not found`);let r;switch(n.authMode){case`chatgpt_oauth`:r=await Hm(t);break;case`kiro`:r=await Um(t);break;case`api_key`:r=await Wm(e,t);break;default:throw Error(`Unsupported auth mode: ${n.authMode}`)}return{providerId:e,accountId:t,status:r.success?`success`:`failed`,testedAt:new Date().toISOString(),latencyMs:r.latencyMs,authOk:r.authOk!==!1,quotaOk:r.quotaOk!==!1,modelOk:r.modelOk!==!1,routingOk:r.routingOk!==!1,testedModel:r.testedModel,errorCode:r.errorCode,errorMessage:r.errorMessage,suggestedFix:r.suggestedFix}}catch(n){return{providerId:e,accountId:t,status:`failed`,testedAt:new Date().toISOString(),authOk:!1,quotaOk:!1,modelOk:!1,routingOk:!1,errorMessage:n instanceof Error?n.message:`Test failed`,suggestedFix:`Check account configuration and try again`}}}async function Hm(e){try{return await x(`/api/account-auth/accounts/${e}/test`,`POST`,{})}catch(e){return{success:!1,authOk:!1,errorMessage:e instanceof Error?e.message:`OAuth test failed`,suggestedFix:`Try refreshing the account tokens`}}}async function Um(e){try{let t=Date.now();return await x(`/api/kiro/accounts/${e}/refresh`,`POST`,{}),{success:!0,authOk:!0,quotaOk:!0,modelOk:!0,routingOk:!0,latencyMs:Date.now()-t}}catch(e){return{success:!1,authOk:!1,errorMessage:e instanceof Error?e.message:`Kiro test failed`,suggestedFix:`Check Kiro account configuration and refresh tokens`}}}async function Wm(e,t){try{return await x(`/api/providers/${e}/test`,`POST`,{accountId:t})}catch(e){return{success:!1,authOk:!1,errorMessage:e instanceof Error?e.message:`API key test failed`,suggestedFix:`Verify API key is valid and has necessary permissions`}}}async function Gm(e,t,n){if(e===`kiro-ide`||e===`kiro-free`||e===`account-kiro`||e.startsWith(`kiro-`)){await x(`/api/kiro/accounts/${t}`,`PATCH`,{routingMode:n});return}try{let r=(await b(`/api/providers/${e}`)).provider;if(!r)throw Error(`Provider not found`);switch(r.authMode){case`chatgpt_oauth`:await x(`/api/chatgpt-oauth/settings`,`PATCH`,{rotationMode:Km(n)});break;case`kiro`:await x(`/api/kiro/accounts/${t}`,`PATCH`,{routingMode:n});break;case`api_key`:console.warn(`API key accounts do not support individual routing modes`);break;default:throw Error(`Unsupported auth mode: ${r.authMode}`)}}catch(e){throw console.error(`Failed to update routing mode for account ${t}:`,e),Error(`Failed to update account routing mode`)}}function Km(e){switch(e){case`round_robin`:return`round_robin`;case`priority`:return`first_available`;case`sticky`:return`first_available`;case`failover_only`:return`first_available`;default:return`round_robin`}}async function qm(e,t){if(e===`kiro-ide`||e===`kiro-free`||e===`account-kiro`||e.startsWith(`kiro-`)){await x(`/api/kiro/accounts/${t}/refresh`,`POST`,{});let n=(await Fm(e)).find(e=>e.id===t);if(!n)throw Error(`Account not found after refresh`);return n}try{let n=(await b(`/api/providers/${e}`)).provider;if(!n)throw Error(`Provider not found`);switch(n.authMode){case`chatgpt_oauth`:await x(`/api/account-auth/accounts/${t}/refresh`,`POST`,{});break;case`kiro`:await x(`/api/kiro/accounts/${t}/refresh`,`POST`,{});break;case`api_key`:throw Error(`API key accounts do not support token refresh`);default:throw Error(`Unsupported auth mode: ${n.authMode}`)}let r=(await Fm(e)).find(e=>e.id===t);if(!r)throw Error(`Account not found after refresh`);return r}catch(e){throw console.error(`Failed to refresh account ${t}:`,e),Error(`Failed to refresh account`)}}async function Jm(e,t){if(e===`kiro-ide`||e===`kiro-free`||e===`account-kiro`||e.startsWith(`kiro-`)){await x(`/api/kiro/accounts/${t}`,`DELETE`,{});return}try{let n=(await b(`/api/providers/${e}`)).provider;if(!n)throw Error(`Provider not found`);switch(n.authMode){case`chatgpt_oauth`:await x(`/api/account-auth/accounts/${t}`,`DELETE`,{});break;case`kiro`:await x(`/api/kiro/accounts/${t}`,`DELETE`,{});break;case`api_key`:let r=parseInt(t.replace(`api-key-`,``),10);if(isNaN(r))throw Error(`Invalid account ID for API key: ${t}`);let i=(Array.isArray(n.providerApiKeys)?n.providerApiKeys:[]).filter((e,t)=>t!==r);await x(`/api/providers/${encodeURIComponent(e)}`,`PUT`,{name:n.name,baseUrl:n.baseUrl,authMode:n.authMode,providerApiKeys:i,capabilities:n.capabilities});break;default:throw Error(`Unsupported auth mode: ${n.authMode}`)}}catch(e){throw console.error(`Failed to delete account ${t}:`,e),Error(`Failed to delete account`)}}async function Ym(e,t){try{switch(t){case`oauth`:{let t=null;try{t=(await b(`/api/providers/${e}`)).provider}catch{}let n=Wp(e),r=t?.authMode||n?.preferredAuthType||`api_key`;if(r===`chatgpt_oauth`||e===`openai-codex`||e.includes(`chatgpt`)||e===`account-openai-codex`){let e=await x(`/api/chatgpt-oauth/start`,`POST`,{});return{type:`oauth`,authUrl:e.authUrl,state:e.state,instructions:`Click the link to authorize with ChatGPT, then paste the callback URL below.`,requiresCallback:!0}}else if(r===`kiro`||e.startsWith(`kiro-`))return{type:`kiro`,instructions:`Kiro accounts are imported from a 9router database. The proxy then owns token refresh (write-back) without sharing 9router's live database.`,requiresCallback:!1};throw Error(`OAuth authentication is not supported for this provider on the backend. Please use API Key authentication instead.`)}case`api_key`:return{type:`api_key`,instructions:`Enter your API key below. Make sure it has the necessary permissions for this provider.`,requiresCallback:!1};default:throw Error(`Unsupported auth type: ${t}`)}}catch(e){throw console.error(`Failed to start connection flow for ${t}:`,e),e instanceof Error?e:Error(`Failed to start account connection`)}}function Xm(e){let[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(null),l=(0,v.useCallback)(async()=>{if(!e){n([]),i(!1),o(null);return}try{i(!0),o(null),n(await Fm(e)),c(new Date)}catch(e){o(e instanceof Error?e.message:`Failed to load accounts`),n([])}finally{i(!1)}},[e]);(0,v.useEffect)(()=>{l()},[l]);let u=(0,v.useCallback)(async()=>{await l()},[l]);return{accounts:t,loading:r,error:a,lastRefresh:s,stats:(0,v.useMemo)(()=>{let e=t.length,n=t.filter(e=>e.status===`connected`).length,r=t.filter(e=>e.status===`expired`).length,i=t.filter(e=>e.tokenStatus===`expiring`).length;return{total:e,connected:n,expired:r,expiring:i,disabled:t.filter(e=>e.status===`disabled`).length,healthy:n,needsAttention:r+i}},[t]),refresh:u}}function Zm(e){let[t,n]=(0,v.useState)(new Map),[r,i]=(0,v.useState)(new Set);return{testAccount:(0,v.useCallback)(async t=>{if(!(!e||r.has(t)))try{i(e=>new Set(e).add(t));let r=await Vm(e,t);return n(e=>new Map(e).set(t,r)),r}catch(r){let i={providerId:e,accountId:t,status:`failed`,testedAt:new Date().toISOString(),authOk:!1,quotaOk:!1,modelOk:!1,routingOk:!1,errorMessage:r instanceof Error?r.message:`Test failed`,suggestedFix:`Check account configuration and try again`};return n(e=>new Map(e).set(t,i)),i}finally{i(e=>{let n=new Set(e);return n.delete(t),n})}},[e,r]),getTestResult:(0,v.useCallback)(e=>t.get(e),[t]),isTestingAccount:(0,v.useCallback)(e=>r.has(e),[r]),clearTestResult:(0,v.useCallback)(e=>{n(t=>{let n=new Map(t);return n.delete(e),n})},[]),clearAllTestResults:(0,v.useCallback)(()=>{n(new Map)},[]),hasTestResults:t.size>0}}function Qm(e){let[t,n]=(0,v.useState)(new Map),[r,i]=(0,v.useState)(null),a=(0,v.useCallback)((e,t)=>{n(n=>new Map(n).set(e,t)),i(null)},[]),o=(0,v.useCallback)(e=>{n(t=>{let n=new Map(t);return n.delete(e),n})},[]);return{updateRoutingMode:(0,v.useCallback)(async(t,n)=>{if(!e)throw Error(`Provider ID is required`);try{a(t,`updating`),await Gm(e,t,n)}catch(e){throw i(e instanceof Error?e.message:`Failed to update routing mode`),e}finally{o(t)}},[e,a,o]),refreshAccount:(0,v.useCallback)(async t=>{if(!e)throw Error(`Provider ID is required`);try{return a(t,`refreshing`),await qm(e,t)}catch(e){throw i(e instanceof Error?e.message:`Failed to refresh account`),e}finally{o(t)}},[e,a,o]),deleteAccount:(0,v.useCallback)(async t=>{if(!e)throw Error(`Provider ID is required`);try{a(t,`deleting`),await Jm(e,t)}catch(e){throw i(e instanceof Error?e.message:`Failed to delete account`),e}finally{o(t)}},[e,a,o]),isAccountLoading:(0,v.useCallback)(e=>t.has(e),[t]),getAccountOperation:(0,v.useCallback)(e=>t.get(e),[t]),operationError:r,clearError:(0,v.useCallback)(()=>{i(null)},[])}}function $m(e){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null);return{connectionFlow:t,connecting:r,connectionError:a,startConnection:(0,v.useCallback)(async t=>{if(!e)throw Error(`Provider ID is required`);try{i(!0),o(null);let r=await Ym(e,t);return n(r),r}catch(e){throw o(e instanceof Error?e.message:`Failed to start connection`),e}finally{i(!1)}},[e]),clearConnectionFlow:(0,v.useCallback)(()=>{n(null),o(null)},[]),clearError:(0,v.useCallback)(()=>{o(null)},[])}}function eh(e){let t=(0,v.useMemo)(()=>{let t={healthy:0,warning:0,critical:0,total:e.length};return e.forEach(e=>{switch(e.status){case`connected`:e.tokenStatus===`expiring`?t.warning++:t.healthy++;break;case`expired`:case`invalid`:t.critical++;break;case`disabled`:break;default:t.warning++}}),t},[e]),n=(0,v.useMemo)(()=>e.filter(e=>e.tokenStatus===`expiring`||e.expiresAt&&new Date(e.expiresAt).getTime()-Date.now()<10080*60*1e3),[e]),r=(0,v.useMemo)(()=>e.filter(e=>e.status===`expired`||e.tokenStatus===`expired`),[e]),i=(0,v.useMemo)(()=>e.filter(e=>e.status===`expired`||e.status===`invalid`||e.status===`needs_reconnect`||e.tokenStatus===`expiring`||e.tokenStatus===`expired`),[e]);return{healthSummary:t,expiringAccounts:n,expiredAccounts:r,needsAttentionAccounts:i,hasHealthIssues:i.length>0}}async function th({providerId:e,apiKey:t}){let n=Wp(e);if(!n)throw Error(`Provider ${e} not found in catalog.`);let r={id:e,name:n.name,baseUrl:n.defaultBaseUrl||`https://api.example.com`,authMode:`api_key`,providerApiKeys:[t],capabilities:{transportMode:`chat_completions`}};try{await O(r)}catch(n){let r=n instanceof Error?n.message:String(n);if(r.includes(`already assigned to another provider`))throw Error(`This API key is already registered with a different provider. Remove it from that provider first.`);if(r.includes(`already exists`)){await nh(e,t);return}throw n}}async function nh(e,t){let n=(await b(`/api/providers/${encodeURIComponent(e)}`)).provider;if(!n)throw Error(`Provider ${e} reported as existing but could not be fetched.`);let r=Array.isArray(n.providerApiKeys)?n.providerApiKeys:[];if(!r.includes(t))try{await ee(e,{name:n.name??``,baseUrl:n.baseUrl??``,authMode:n.authMode??`api_key`,providerApiKeys:[...r,t],capabilities:n.capabilities})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to add API key to existing provider: ${t}`)}}var rh=`__TIMEOUT__`,ih=1e4;function ah(e){let t={authOk:e.authOk,quotaOk:e.quotaOk,modelOk:e.modelOk,routingOk:e.routingOk};return e.status===`success`?{status:`success`,latencyMs:e.latencyMs,checks:t}:e.status===`partial`?{status:`partial`,latencyMs:e.latencyMs,checks:t}:{status:`failed`,errorMessage:e.errorMessage,suggestedFix:e.suggestedFix,checks:t}}async function oh(e,t,n=ih){let r,i=Vm(e,t),a=new Promise((e,t)=>{r=setTimeout(()=>t(Error(rh)),n)});try{return ah(await Promise.race([i,a]))}catch(e){return e instanceof Error&&e.message===rh?{status:`timeout`}:{status:`failed`,errorMessage:e instanceof Error?e.message:`Validation failed`,suggestedFix:`Try testing the connection manually from the accounts list.`}}finally{r!==void 0&&clearTimeout(r)}}function sh({providerId:e,providerName:t,supportedAuthTypes:n,accounts:r,isOpen:i,mode:a,editingAccount:o,onClose:s,onAccountsChanged:c}){let[l,u]=(0,v.useState)(n[0]),[d,f]=(0,v.useState)(!1),[p,m]=(0,v.useState)(!1),[h,g]=(0,v.useState)(null),{connectionFlow:_,connecting:y,connectionError:x,startConnection:S,clearConnectionFlow:C,clearError:w}=$m(e),{updateRoutingMode:T,refreshAccount:E,deleteAccount:D,isAccountLoading:O,getAccountOperation:k,operationError:te,clearError:ne}=Qm(e);(0,v.useEffect)(()=>{i&&(C(),w(),ne(),f(!1),m(!1),g(null),o&&u(o.authType))},[i,o,C,w,ne]);let re=(0,v.useCallback)(async e=>{try{await S(e)}catch(e){console.error(`Failed to start connection:`,e)}},[S]),ie=(0,v.useCallback)(async t=>{m(!0),g(null);try{g(await oh(e,t))}finally{m(!1)}},[e]),ae=(0,v.useCallback)(async t=>{try{let n=null;if(t.kiroImport){let e=await Ce(t.sourcePath?{sourcePath:t.sourcePath}:void 0);if(e.imported===0)throw Error(`No Kiro accounts were found in the source database. Sign in through 9router first.`);if(e.imported===1)try{n=(await ye()).accounts?.[0]?.id??null}catch(e){console.warn(`Could not resolve imported Kiro account for validation:`,e)}}else if(t.callbackUrl)n=(await N({redirectUrl:t.callbackUrl})).account?.accountId??null;else if(t.apiKey){let r=t.apiKey,i=null;try{let t=await b(`/api/providers/${encodeURIComponent(e)}`);t.ok&&t.provider&&(i=t.provider)}catch(e){console.log(`Provider does not exist on backend:`,e)}if(!i)await th({providerId:e,apiKey:r}),n=`api-key-0`;else{let t=Array.isArray(i.providerApiKeys)?i.providerApiKeys:[];t.includes(r)?n=`api-key-${t.indexOf(r)}`:(n=`api-key-${t.length}`,await ee(e,{name:i.name??``,baseUrl:i.baseUrl??``,authMode:i.authMode??`api_key`,providerApiKeys:[...t,r],capabilities:i.capabilities}))}}c(),n&&ie(n)}catch(e){throw console.error(`Failed to complete connection:`,e),e}},[e,c,ie]),A=(0,v.useCallback)(async(e,t)=>{try{await T(e,t),c()}catch(e){console.error(`Failed to update routing mode:`,e)}},[T,c]),j=(0,v.useCallback)(async e=>{try{await E(e),c()}catch(e){console.error(`Failed to refresh account:`,e)}},[E,c]),oe=(0,v.useCallback)(async e=>{try{await D(e),c(),f(!1),a===`edit`&&s()}catch(e){console.error(`Failed to delete account:`,e)}},[D,c,a,s]),[se,ce]=(0,v.useState)(``),[le,M]=(0,v.useState)(``),[ue,de]=(0,v.useState)(`idle`),[fe,pe]=(0,v.useState)(!1),[me,he]=(0,v.useState)(null);(0,v.useEffect)(()=>{i&&a===`add`&&(ce(``),M(``),de(`idle`),pe(!1),he(null))},[i,a]);let ge=(0,v.useCallback)(async()=>{if(le.trim()){pe(!0),he(null);try{await ae({apiKey:le.trim(),keyName:se.trim()||`API Key`})}catch(e){he(e instanceof Error?e.message:`Failed to save`)}finally{pe(!1)}}},[le,se,ae]),_e=n.length===1&&n[0]===`api_key`,ve=n.includes(`oauth`)||_?.type===`kiro`,be=(0,v.useRef)(!1);return(0,v.useEffect)(()=>{i&&a===`add`&&ve&&!_&&!be.current&&(be.current=!0,re(n.includes(`oauth`)?`oauth`:n[0])),i||(be.current=!1)},[i,a,ve,n,_,re]),i?(0,P.jsx)(`div`,{className:`modal-backdrop`,onClick:s,children:(0,P.jsxs)(`div`,{className:`modal-card account-management-modal`,onClick:e=>e.stopPropagation(),children:[a===`add`&&(_e?!fe&&!me&&h?(0,P.jsxs)(`div`,{className:`account-modal-content`,children:[(0,P.jsx)(`div`,{className:`modal-header`,children:(0,P.jsx)(`h2`,{children:`Account Added`})}),(0,P.jsx)(`div`,{className:`step-content`,children:(0,P.jsx)(`div`,{className:`add-key-badge ${h.status===`success`?`valid`:`warning`}`,children:h.status===`success`?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(qe,{className:`success-icon`}),` Connected`,h.latencyMs?` (${h.latencyMs}ms)`:``]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(Je,{className:`error-icon`}),` Saved — `,h.errorMessage||`verify manually`]})})}),(0,P.jsx)(`div`,{className:`modal-actions`,children:(0,P.jsx)(`button`,{className:`button-primary`,onClick:s,children:`Done`})})]}):p?(0,P.jsxs)(`div`,{className:`account-modal-content`,children:[(0,P.jsx)(`div`,{className:`modal-header`,children:(0,P.jsx)(`h2`,{children:`Verifying...`})}),(0,P.jsxs)(`div`,{className:`connection-validating`,style:{padding:`var(--space-4)`,justifyContent:`center`},children:[(0,P.jsx)(`span`,{className:`login-spinner`,"aria-hidden":`true`}),(0,P.jsx)(`span`,{children:`Verifying connection...`})]}),(0,P.jsx)(`div`,{className:`modal-actions`,children:(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,children:`Done`})})]}):(0,P.jsxs)(`div`,{className:`account-modal-content`,children:[(0,P.jsx)(`div`,{className:`modal-header`,children:(0,P.jsxs)(`h2`,{children:[`Add `,t,` API Key`]})}),(0,P.jsxs)(`div`,{className:`add-key-form`,children:[(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`add-key-name`,className:`form-label`,children:`Name`}),(0,P.jsx)(`input`,{id:`add-key-name`,type:`text`,className:`form-input`,placeholder:`Production Key`,value:se,onChange:e=>ce(e.target.value),disabled:fe})]}),(0,P.jsxs)(`div`,{className:`form-group`,children:[(0,P.jsx)(`label`,{htmlFor:`add-key-value`,className:`form-label`,children:`API Key`}),(0,P.jsx)(`div`,{className:`form-input-row`,children:(0,P.jsx)(`input`,{id:`add-key-value`,type:`password`,className:`form-input`,placeholder:`sk-...`,value:le,onChange:e=>{M(e.target.value),de(`idle`)},disabled:fe})})]}),ue===`valid`&&(0,P.jsxs)(`div`,{className:`add-key-badge valid`,children:[(0,P.jsx)(qe,{className:`success-icon`}),` Valid`]}),ue===`invalid`&&(0,P.jsxs)(`div`,{className:`add-key-badge invalid`,children:[(0,P.jsx)(Je,{className:`error-icon`}),` Invalid`]}),me&&(0,P.jsxs)(`div`,{className:`connection-error`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`span`,{children:me})]})]}),(0,P.jsxs)(`div`,{className:`modal-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,disabled:fe,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:ge,disabled:!le.trim()||fe,children:fe?`Saving...`:`Save`})]})]}):_?(0,P.jsx)(`div`,{className:`account-modal-content`,children:(0,P.jsx)(Pm,{providerId:e,authType:l,connectionFlow:_,connecting:y,error:x,onStartConnection:re,onCompleteConnection:ae,onCancel:s,validating:p,validationResult:h})}):n.length>1&&!ve?(0,P.jsxs)(`div`,{className:`account-modal-content`,children:[(0,P.jsxs)(`div`,{className:`modal-header`,children:[(0,P.jsxs)(`h2`,{children:[`Add Account to `,t]}),(0,P.jsx)(`p`,{children:`Choose how to connect.`})]}),(0,P.jsx)(`div`,{className:`auth-type-options`,children:n.map(e=>(0,P.jsx)(`button`,{className:`auth-type-option ${l===e?`selected`:``}`,onClick:()=>u(e),children:(0,P.jsxs)(`div`,{className:`auth-type-info`,children:[(0,P.jsx)(B,{variant:e===`oauth`?`accent`:`neutral`,size:`sm`,children:e===`oauth`?`OAuth`:`API Key`}),(0,P.jsxs)(`div`,{className:`auth-type-description`,children:[e===`oauth`&&`Secure OAuth authentication`,e===`api_key`&&`Direct API key authentication`]})]})},e))}),(0,P.jsxs)(`div`,{className:`modal-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:()=>re(l),disabled:y,children:y?`Starting...`:`Continue`})]})]}):(0,P.jsx)(`div`,{className:`account-modal-content`,children:(0,P.jsxs)(`div`,{className:`connection-validating`,style:{padding:`var(--space-6)`,justifyContent:`center`},children:[(0,P.jsx)(`span`,{className:`login-spinner`,"aria-hidden":`true`}),(0,P.jsx)(`span`,{children:`Preparing connection...`})]})})),a===`edit`&&(o?(0,P.jsxs)(`div`,{className:`account-modal-content`,children:[(0,P.jsxs)(`div`,{className:`modal-header`,children:[(0,P.jsx)(`h2`,{children:`Manage Account`}),(0,P.jsxs)(`p`,{children:[`Configure settings for `,o.label]})]}),(0,P.jsxs)(`div`,{className:`account-details`,children:[(0,P.jsxs)(`div`,{className:`account-info-section`,children:[(0,P.jsx)(`h3`,{children:`Account Information`}),(0,P.jsxs)(`div`,{className:`account-info-grid`,children:[(0,P.jsxs)(`div`,{className:`info-item`,children:[(0,P.jsx)(`label`,{children:`Account Name`}),(0,P.jsx)(`span`,{children:o.label})]}),o.email&&(0,P.jsxs)(`div`,{className:`info-item`,children:[(0,P.jsx)(`label`,{children:`Email`}),(0,P.jsx)(`span`,{children:o.email})]}),(0,P.jsxs)(`div`,{className:`info-item`,children:[(0,P.jsx)(`label`,{children:`Authentication`}),(0,P.jsx)(B,{variant:o.authType===`oauth`?`accent`:`neutral`,size:`sm`,children:o.authType===`oauth`?`OAuth`:`API Key`})]}),(0,P.jsxs)(`div`,{className:`info-item`,children:[(0,P.jsx)(`label`,{children:`Status`}),(0,P.jsx)(B,{variant:o.status===`connected`?`success`:o.status===`expired`?`error`:`warning`,size:`sm`,children:o.status})]})]})]}),(0,P.jsxs)(`div`,{className:`routing-config-section`,children:[(0,P.jsx)(`h3`,{children:`Routing Configuration`}),(0,P.jsxs)(`div`,{className:`routing-mode-selector`,children:[(0,P.jsx)(`label`,{htmlFor:`routingMode`,children:`Routing Mode`}),(0,P.jsxs)(`select`,{id:`routingMode`,value:o.routingMode,onChange:e=>A(o.id,e.target.value),disabled:O(o.id),children:[(0,P.jsx)(`option`,{value:`priority`,children:`Priority (Use first)`}),(0,P.jsx)(`option`,{value:`round_robin`,children:`Round Robin`}),(0,P.jsx)(`option`,{value:`sticky`,children:`Sticky (Session-based)`}),(0,P.jsx)(`option`,{value:`failover_only`,children:`Failover Only`}),(0,P.jsx)(`option`,{value:`disabled`,children:`Disabled`})]})]})]}),o.tokenStatus&&(0,P.jsxs)(`div`,{className:`token-status-section`,children:[(0,P.jsx)(`h3`,{children:`Token Status`}),(0,P.jsxs)(`div`,{className:`token-info`,children:[(0,P.jsx)(B,{variant:o.tokenStatus===`valid`?`success`:o.tokenStatus===`expiring`?`warning`:`error`,size:`sm`,children:o.tokenStatus}),o.expiresAt&&(0,P.jsxs)(`span`,{className:`token-expiry`,children:[`Expires: `,new Date(o.expiresAt).toLocaleString()]})]})]}),(x||te)&&(0,P.jsxs)(`div`,{className:`modal-error`,children:[(0,P.jsx)(Je,{className:`error-icon`}),(0,P.jsx)(`span`,{children:x||te})]})]}),(0,P.jsx)(`div`,{className:`account-actions`,children:(0,P.jsxs)(`div`,{className:`account-action-buttons`,children:[o.refreshable&&(0,P.jsxs)(`button`,{className:`button-secondary`,onClick:()=>j(o.id),disabled:O(o.id),children:[(0,P.jsx)(We,{className:`button-icon`}),k(o.id)===`refreshing`?`Refreshing...`:`Refresh Tokens`]}),(0,P.jsxs)(`button`,{className:`button-danger`,onClick:()=>f(!0),disabled:O(o.id),children:[(0,P.jsx)(st,{className:`button-icon`}),`Delete Account`]})]})}),(0,P.jsx)(`div`,{className:`modal-actions`,children:(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,children:`Close`})}),d&&(0,P.jsx)(`div`,{className:`delete-confirm-overlay`,children:(0,P.jsxs)(`div`,{className:`delete-confirm-dialog`,children:[(0,P.jsx)(`h3`,{children:`Delete Account`}),(0,P.jsxs)(`p`,{children:[`Are you sure you want to delete "`,o.label,`"? This will remove the account from this provider and cannot be undone.`]}),(0,P.jsxs)(`div`,{className:`delete-confirm-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:()=>f(!1),disabled:O(o.id),children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-danger`,onClick:()=>oe(o.id),disabled:O(o.id),children:k(o.id)===`deleting`?`Deleting...`:`Delete Account`})]})]})})]}):null),a===`manage`&&(0,P.jsxs)(`div`,{className:`account-modal-content`,children:[(0,P.jsxs)(`div`,{className:`modal-header`,children:[(0,P.jsxs)(`h2`,{children:[`Manage Accounts for `,t]}),(0,P.jsx)(`p`,{children:`Configure all accounts connected to this provider.`})]}),(0,P.jsx)(`div`,{className:`accounts-list`,children:r.length===0?(0,P.jsxs)(`div`,{className:`no-accounts`,children:[(0,P.jsx)(`p`,{children:`No accounts connected to this provider.`}),(0,P.jsx)(`button`,{className:`button-primary`,onClick:()=>re(n[0]),children:`Add First Account`})]}):(0,P.jsx)(`div`,{className:`accounts-grid`,children:r.map(e=>(0,P.jsxs)(`div`,{className:`account-summary-card`,children:[(0,P.jsxs)(`div`,{className:`account-summary-header`,children:[(0,P.jsx)(`div`,{className:`account-name`,children:e.label}),(0,P.jsx)(B,{variant:e.status===`connected`?`success`:e.status===`expired`?`error`:`warning`,size:`sm`,children:e.status})]}),(0,P.jsxs)(`div`,{className:`account-summary-details`,children:[e.email&&(0,P.jsx)(`div`,{className:`account-email`,children:e.email}),(0,P.jsxs)(`div`,{className:`account-routing`,children:[`Routing: `,e.routingMode]})]}),(0,P.jsx)(`div`,{className:`account-summary-actions`,children:(0,P.jsx)(`button`,{className:`button-secondary button-sm`,onClick:()=>{},children:`Edit`})})]},e.id))})}),(0,P.jsxs)(`div`,{className:`modal-actions`,children:[(0,P.jsx)(`button`,{className:`button-secondary`,onClick:s,children:`Close`}),r.length>0&&(0,P.jsx)(`button`,{className:`button-primary`,onClick:()=>re(n[0]),children:`Add Another Account`})]})]})]})}):null}var ch={requireEnabled:!0,requireConfigured:!0,requireHealthy:!0,requireQuotaAvailable:!0,requireActiveAccount:!0,requireServiceKinds:[`chat`],allowDegraded:!0,minimumScore:50};function lh(e,t=ch){let n=[],r=[],i=100,a=!0;if(t.requireEnabled&&!e.enabled&&(a=!1,n.push(`Provider is disabled`),i-=50),t.requireConfigured&&!e.configured&&(a=!1,n.push(`Provider is not configured`),i-=40),t.requireHealthy){let o=uh(e.healthStatus);i=Math.min(i,o),e.healthStatus===`not_configured`?(a=!1,n.push(`Provider is not configured`)):e.healthStatus===`disabled`?(a=!1,n.push(`Provider is disabled`)):e.healthStatus===`auth_expired`?(a=!1,n.push(`Authentication has expired`)):e.healthStatus===`quota_exhausted`?t.requireQuotaAvailable?(a=!1,n.push(`Quota is exhausted`)):r.push(`Quota is exhausted but may recover`):e.healthStatus===`rate_limited`?(r.push(`Provider is currently rate limited`),i-=20):e.healthStatus===`degraded`?t.allowDegraded?(r.push(`Provider is degraded but still usable`),i-=15):(a=!1,n.push(`Provider is degraded and strict health is required`)):e.healthStatus===`unknown`&&(r.push(`Provider health status is unknown`),i-=10)}if(t.requireQuotaAvailable&&e.quota&&(e.quota.hardLimitReached?(a=!1,n.push(`Hard quota limit reached`)):e.quota.softLimitReached?(r.push(`Soft quota limit reached`),i-=10):e.quota.usagePercent&&e.quota.usagePercent>90&&(r.push(`Quota usage is very high (>90%)`),i-=5)),t.requireActiveAccount){let t=dh(e.accounts||[]);if(t.length===0)a=!1,n.push(`No active accounts available`);else{let e=fh(t);i=Math.min(i,e),e<50&&r.push(`Account health is poor`)}}if(t.requireServiceKinds&&t.requireServiceKinds.length>0){let r=t.requireServiceKinds.filter(t=>!e.serviceKinds.includes(t));r.length>0&&(a=!1,n.push(`Missing required services: ${r.join(`, `)}`))}return t.requireServiceKinds?.includes(`chat`)&&(e.models?.filter(e=>e.serviceKind===`chat`&&e.enabled)||[]).length===0&&(a=!1,n.push(`No enabled chat models available`)),t.minimumScore&&i<t.minimumScore&&(a=!1,n.push(`Provider score (${i}) below minimum required (${t.minimumScore})`)),e.fallbackEligible||(a=!1,n.push(`Provider is marked as not fallback eligible`)),{eligible:a,reasons:n,warnings:r,score:Math.max(0,i),lastCheckedAt:new Date().toISOString()}}function uh(e){switch(e){case`healthy`:return 100;case`degraded`:return 75;case`rate_limited`:return 60;case`quota_exhausted`:return 40;case`unknown`:return 50;case`auth_expired`:return 20;case`disabled`:return 0;case`not_configured`:return 0;default:return 50}}function dh(e){return e.filter(e=>e.status===`connected`&&e.routingMode!==`disabled`)}function fh(e){if(e.length===0)return 0;let t=e.map(e=>{switch(e.status){case`connected`:return 100;case`needs_reconnect`:return 60;case`expired`:return 30;case`invalid`:return 20;case`disabled`:return 0;case`unknown`:return 50;default:return 50}});return Math.round(t.reduce((e,t)=>e+t,0)/t.length)}function ph(e){return(0,P.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e.className,children:(0,P.jsx)(`path`,{d:`M4 10l4-4 4 4`})})}function mh(e){return(0,P.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e.className,children:(0,P.jsx)(`path`,{d:`M4 6l4 4 4-4`})})}function hh(e){return(0,P.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:`15`,height:`15`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e.className,children:[(0,P.jsx)(`rect`,{x:`3.5`,y:`7`,width:`9`,height:`6.5`,rx:`1.5`}),(0,P.jsx)(`path`,{d:`M5.5 7V5a2.5 2.5 0 0 1 5 0v2`})]})}function gh(e){return(0,P.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`15`,height:`15`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e.className,children:(0,P.jsx)(`path`,{d:`M11.5 2.5l2 2L6 12l-2.5.5L4 10z`})})}function _h(e){return(0,P.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e.className,children:[(0,P.jsx)(`rect`,{x:`5.5`,y:`5.5`,width:`8`,height:`8`,rx:`1.5`}),(0,P.jsx)(`path`,{d:`M3.5 10.5h-1A1 1 0 0 1 1.5 9.5v-7a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v1`})]})}function vh({provider:e,onToggleEnabled:t}){let n=Wp(e.id),r=e.accounts?.length||0,i=e.enabled!==!1;return(0,P.jsxs)(`div`,{className:`pd9-header`,children:[(0,P.jsx)(`button`,{className:`pd9-back`,onClick:()=>window.location.hash=`#/providers`,children:`← Back to Providers`}),(0,P.jsxs)(`div`,{className:`pd9-title-row`,children:[(0,P.jsx)(`div`,{className:`pd9-icon-tile`,children:(0,P.jsx)(Ie,{})}),(0,P.jsxs)(`div`,{className:`pd9-title-main`,children:[(0,P.jsxs)(`div`,{className:`pd9-title-line`,children:[(0,P.jsx)(`h1`,{className:`pd9-title`,children:e.displayName}),t&&(0,P.jsx)(`button`,{type:`button`,className:`pd9-switch ${i?`on`:``}`,role:`switch`,"aria-checked":i,onClick:()=>t(!i),title:i?`Disable provider`:`Enable provider`,children:(0,P.jsx)(`span`,{className:`pd9-switch-knob`})}),!i&&(0,P.jsx)(B,{variant:`neutral`,size:`sm`,children:`Disabled`}),n?.signupUrl&&(0,P.jsx)(`a`,{href:n.signupUrl,target:`_blank`,rel:`noopener noreferrer`,className:`pd9-signup-link`,children:`Sign up / Learn more ↗`})]}),(0,P.jsxs)(`div`,{className:`pd9-connection-count`,children:[r,` connection`,r===1?``:`s`]})]})]})]})}function yh({provider:e}){if(!e.riskNotice)return null;let t={none:{bg:`var(--neutral-soft)`,border:`var(--line)`,text:`var(--text-secondary)`},low:{bg:`var(--success-soft)`,border:`var(--success)`,text:`var(--success)`},medium:{bg:`var(--warning-soft)`,border:`var(--warning)`,text:`var(--warning)`},high:{bg:`var(--danger-soft)`,border:`var(--danger)`,text:`var(--danger)`}}[e.riskNotice.level];return(0,P.jsx)(`div`,{className:`provider-risk-banner`,style:{background:t.bg,borderColor:t.border,color:t.text},children:(0,P.jsxs)(`div`,{className:`risk-banner-content`,children:[(0,P.jsx)(Je,{className:`risk-banner-icon`}),(0,P.jsxs)(`div`,{className:`risk-banner-text`,children:[(0,P.jsx)(`div`,{className:`risk-banner-title`,children:e.riskNotice.title}),(0,P.jsx)(`div`,{className:`risk-banner-message`,children:e.riskNotice.message})]}),e.riskNotice.learnMoreUrl&&(0,P.jsx)(`a`,{href:e.riskNotice.learnMoreUrl,target:`_blank`,rel:`noopener noreferrer`,className:`risk-banner-link`,children:`Learn More`})]})})}function bh({provider:e,accounts:t,accountsLoading:n,accountsError:r,onAddAccount:i,onEditAccount:a,onTestAccount:o,onUpdateRoutingMode:s,onReorderAccount:c,onDeleteAccount:l,getTestResult:u,isTestingAccount:d}){let[f,p]=(0,v.useState)(t.some(e=>e.routingMode===`round_robin`)),[m,h]=(0,v.useState)(1);(0,v.useEffect)(()=>{p(t.some(e=>e.routingMode===`round_robin`))},[t]);let g=t.some(e=>d(e.id)),_=async()=>{for(let e of t)o(e.id)},y=()=>{let e=!f;p(e);let n=e?`round_robin`:`sticky`;t.forEach(e=>s(e.id,n))},b=e=>e===`connected`?`active`:e;return(0,P.jsxs)(V,{title:`Connections`,actions:(0,P.jsxs)(`div`,{className:`pd9-conn-controls`,children:[(0,P.jsxs)(`button`,{className:`pd9-test-onebyone`,onClick:_,disabled:g||t.length===0,children:[(0,P.jsx)(ot,{className:`pd9-btn-icon`}),g?`Testing...`:`Test Connection One-by-One`]}),(0,P.jsxs)(`div`,{className:`pd9-rotation-control`,children:[(0,P.jsx)(`span`,{className:`pd9-rotation-label`,children:`Round Robin`}),(0,P.jsx)(`button`,{type:`button`,className:`pd9-switch ${f?`on`:``}`,role:`switch`,"aria-checked":f,onClick:y,disabled:t.length===0,title:`Toggle round-robin rotation across connections`,children:(0,P.jsx)(`span`,{className:`pd9-switch-knob`})})]}),(0,P.jsxs)(`div`,{className:`pd9-sticky-control`,title:`Sticky session count (visual only)`,children:[(0,P.jsx)(`span`,{className:`pd9-rotation-label`,children:`Sticky:`}),(0,P.jsx)(`input`,{type:`number`,min:1,className:`pd9-sticky-input`,value:m,onChange:e=>h(Math.max(1,parseInt(e.target.value,10)||1)),disabled:!f})]})]}),children:[r&&(0,P.jsxs)(`div`,{className:`connections-error`,style:{color:`var(--danger)`,padding:`var(--space-2) 0`},children:[`Error loading accounts: `,r]}),(0,P.jsxs)(`div`,{className:`pd9-conn-list`,children:[t.map((e,n)=>{let r=d(e.id),i=u(e.id),f=e.status!==`disabled`,p=!!c&&t.length>1;return(0,P.jsxs)(`div`,{className:`pd9-conn-row ${f?``:`is-disabled`}`,children:[(0,P.jsxs)(`div`,{className:`pd9-conn-reorder`,children:[(0,P.jsx)(`button`,{className:`pd9-reorder-btn`,"aria-label":`Move up`,disabled:!p||n===0,onClick:()=>c&&c(n,`up`),children:(0,P.jsx)(ph,{})}),(0,P.jsx)(`button`,{className:`pd9-reorder-btn`,"aria-label":`Move down`,disabled:!p||n===t.length-1,onClick:()=>c&&c(n,`down`),children:(0,P.jsx)(mh,{})})]}),(0,P.jsx)(`div`,{className:`pd9-conn-lock`,title:`This connection is managed securely`,children:(0,P.jsx)(hh,{})}),(0,P.jsxs)(`div`,{className:`pd9-conn-main`,children:[(0,P.jsx)(`div`,{className:`pd9-conn-label`,children:e.label}),(0,P.jsxs)(`div`,{className:`pd9-conn-badges`,children:[(0,P.jsx)(`span`,{className:`pd9-status-dot ${e.status===`connected`?`ok`:`bad`}`}),(0,P.jsx)(`span`,{className:`pd9-status-text`,children:b(e.status)}),(0,P.jsx)(`span`,{className:`pd9-conn-chip`,children:Hp[e.authType]?.label||e.authType}),(0,P.jsxs)(`span`,{className:`pd9-conn-index`,children:[`#`,n+1]})]}),i&&(0,P.jsxs)(`div`,{className:`pd9-conn-testresult ${i.status===`success`?`ok`:`bad`}`,children:[i.status===`success`?`✓`:`✕`,` `,_m(i).summary,i.latencyMs?` • ${i.latencyMs}ms`:``]})]}),(0,P.jsxs)(`div`,{className:`pd9-conn-actions`,children:[(0,P.jsx)(`button`,{className:`pd9-icon-btn`,title:`Test connection`,onClick:()=>o(e.id),disabled:r,children:(0,P.jsx)(ot,{className:`pd9-action-icon`})}),(0,P.jsx)(`button`,{className:`pd9-icon-btn`,title:`Edit connection`,onClick:()=>a(e),children:(0,P.jsx)(gh,{})}),(0,P.jsx)(`button`,{className:`pd9-icon-btn danger`,title:`Delete connection`,onClick:()=>{window.confirm(`Are you sure you want to remove account connection "${e.label}"?`)&&l(e.id)},children:(0,P.jsx)(st,{className:`pd9-action-icon`})}),(0,P.jsx)(`button`,{type:`button`,className:`pd9-switch sm ${f?`on`:``}`,role:`switch`,"aria-checked":f,title:f?`Disable connection`:`Enable connection`,onClick:()=>s(e.id,f?`disabled`:`round_robin`),children:(0,P.jsx)(`span`,{className:`pd9-switch-knob`})})]})]},e.id)}),t.length===0&&!n&&(0,P.jsx)(At,{title:`No accounts connected`,description:`Connect an account to start using this provider.`,actionLabel:`Add Account`,onClick:i}),(0,P.jsxs)(`button`,{className:`pd9-add-btn`,onClick:i,children:[(0,P.jsx)(at,{className:`pd9-btn-icon`}),`Add`]})]})]})}function xh({models:e,loading:t,onRefresh:n,isKiro:r}){let i=e.filter(e=>e.enabled),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(!1),[h,g]=(0,v.useState)(null),[_,y]=(0,v.useState)(null),[b,x]=(0,v.useState)(new Map),S=e=>{navigator.clipboard.writeText(e),o(e),setTimeout(()=>o(null),1500)},C=async e=>{if(!_){y(e);try{let t=await Ee(e);x(n=>new Map(n).set(e,{ok:t.ok,latencyMs:t.latencyMs,error:t.error}))}catch(t){x(n=>new Map(n).set(e,{ok:!1,error:t instanceof Error?t.message:`Test failed`}))}finally{y(null)}}},w=async()=>{if(!(!l.trim()||!d.trim())){m(!0),g(null);try{await we(l.trim(),d.trim()),u(``),f(``),c(!1),n&&n()}catch(e){g(e instanceof Error?e.message:`Failed to add alias`)}finally{m(!1)}}},T=async e=>{if(window.confirm(`Remove model alias "${e}"?`))try{await Te(e),n&&n()}catch(e){console.error(`Failed to delete alias:`,e)}};return(0,P.jsx)(V,{title:`Available Models`,description:t?`Loading models...`:`${i.length} enabled • ${e.length} total`,actions:(0,P.jsx)(`div`,{className:`pd9-models-actions`,children:n&&(0,P.jsx)(`button`,{className:`pd9-test-onebyone`,onClick:n,disabled:t,children:t?`Loading...`:`⟳ Fetch Models`})}),children:t?(0,P.jsx)(`div`,{style:{padding:`var(--space-6)`,textAlign:`center`,color:`var(--text-secondary)`},children:`Loading available models...`}):(0,P.jsxs)(`div`,{className:`pd9-models-grid`,children:[e.map(e=>{let t=b.get(e.id),n=_===e.id,i=t?t.ok?`2px solid var(--success, #22c55e)`:`2px solid var(--danger, #ef4444)`:void 0;return(0,P.jsxs)(`div`,{className:`pd9-model-pill`,title:e.id,style:i?{border:i}:void 0,children:[(0,P.jsx)(`span`,{className:`pd9-model-icon`,children:t?t.ok?`✓`:`✕`:Vp[e.serviceKind]?.icon||`🧠`}),(0,P.jsx)(`span`,{className:`pd9-model-id`,children:e.id}),t?.ok&&t.latencyMs&&(0,P.jsxs)(`span`,{style:{fontSize:`0.65rem`,color:`var(--success, #22c55e)`},children:[t.latencyMs,`ms`]}),t&&!t.ok&&(0,P.jsx)(`span`,{style:{fontSize:`0.65rem`,color:`var(--danger)`},title:t.error,children:`✕`}),r&&(0,P.jsx)(`button`,{className:`pd9-model-copy`,onClick:()=>C(e.id),title:`Test model`,disabled:n,style:n?{animation:`spin 1s linear infinite`}:void 0,children:n?`⏳`:`🧪`}),(0,P.jsx)(`button`,{className:`pd9-model-copy`,onClick:()=>S(e.id),title:`Copy model ID`,children:a===e.id?`✓`:(0,P.jsx)(_h,{})}),r&&(0,P.jsx)(`button`,{className:`pd9-model-copy`,onClick:()=>T(e.id),title:`Remove alias`,style:{color:`var(--danger)`},children:`✕`})]},e.id)}),s?(0,P.jsxs)(`div`,{className:`pd9-add-model-form`,children:[(0,P.jsx)(`input`,{type:`text`,className:`form-input`,placeholder:`Alias (e.g. claude-4)`,value:l,onChange:e=>u(e.target.value),disabled:p}),(0,P.jsx)(`input`,{type:`text`,className:`form-input`,placeholder:`Target (e.g. claude-sonnet-4)`,value:d,onChange:e=>f(e.target.value),disabled:p}),(0,P.jsxs)(`div`,{style:{display:`flex`,gap:`var(--space-2)`},children:[(0,P.jsx)(`button`,{className:`button-primary`,onClick:w,disabled:!l.trim()||!d.trim()||p,children:p?`...`:`Add`}),(0,P.jsx)(`button`,{className:`button-secondary`,onClick:()=>{c(!1),g(null)},children:`Cancel`})]}),h&&(0,P.jsx)(`span`,{style:{color:`var(--danger)`,fontSize:`0.75rem`},children:h})]}):(0,P.jsxs)(`button`,{className:`pd9-add-model`,onClick:()=>c(!0),children:[(0,P.jsx)(at,{className:`pd9-btn-icon`}),`Add Model Alias`]}),e.length===0&&!s&&(0,P.jsx)(`div`,{className:`pd9-models-empty`,children:`No models available yet.`})]})})}function Sh({providerId:e}){let[t,n]=(0,v.useState)(!1),[r,i]=(0,v.useState)(`add`),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(!1);Em(!0);let{provider:l,loading:u,error:d,refresh:f}=nm(e||null),{accounts:p,loading:m,error:h,stats:g,refresh:_}=Xm(e||null),[y,b]=(0,v.useState)([]);(0,v.useEffect)(()=>{b(p)},[p]);let{testAccount:x,getTestResult:S,isTestingAccount:C,clearTestResult:w}=Zm(e||null),{updateRoutingMode:T,refreshAccount:E,deleteAccount:D,isAccountLoading:O,getAccountOperation:ne,operationError:re,clearError:ie}=Qm(e||null),{healthSummary:ae,needsAttentionAccounts:A,hasHealthIssues:j}=eh(p),{healthUpdate:oe,isChecking:se,error:ce,checkHealth:le,getHealthAge:M,hasHealthData:N}=wm(e||null);oe?.healthStatus||l?.healthStatus,oe?.healthMessage||l?.healthMessage;let ue=oe?.quota||l?.quota,[de,fe]=(0,v.useState)(``),[pe,me]=(0,v.useState)(``),[he,ge]=(0,v.useState)(`chat_completions`),[ve,ye]=(0,v.useState)(!1),[be,xe]=(0,v.useState)(null),[Se,Ce]=(0,v.useState)(!1),[we,Te]=(0,v.useState)([]),[Ee,De]=(0,v.useState)(!1);(0,v.useEffect)(()=>{l&&l.tier===`custom`&&(fe(l.displayName||``),me(l.baseUrl||``),ge(l.capabilities?.transportMode===`responses`?`responses`:`chat_completions`))},[l]);let Oe=(0,v.useCallback)(async()=>{if(e)try{De(!0);let t=await _e(e===`kiro-ide`||e===`kiro-free`||e.startsWith(`kiro-`)?`account-kiro`:e);t&&Array.isArray(t.models)?Te(t.models.map(e=>{let t=typeof e==`string`?e:e.id||``;return{id:t,displayName:t.split(`/`).pop()||t,enabled:!0,serviceKind:`chat`,supportsStreaming:!0,supportsTools:!0,supportsVision:t.includes(`vision`)||t.includes(`gpt-4o`),supportsJsonMode:!0}})):Te([])}catch{Te([])}finally{De(!1)}},[e]);(0,v.useEffect)(()=>{e&&Oe()},[e,Oe]),l&&lh(l),ue&&vm(ue);let ke=async e=>{try{await x(e)}catch(t){console.error(`Failed to test account ${e}:`,t)}},Ae=async(e,t)=>{try{await T(e,t),await _()}catch(t){console.error(`Failed to update routing mode for account ${e}:`,t)}},je=async e=>{try{await D(e),await _()}catch(t){console.error(`Failed to delete account ${e}:`,t)}},Me=()=>{i(`add`),o(null),n(!0)},Ne=e=>{i(`edit`),o(e),n(!0)},Pe=()=>{_(),f()},F=(e,t)=>{b(n=>{let r=[...n],i=t===`up`?e-1:e+1;return i<0||i>=r.length?n:([r[e],r[i]]=[r[i],r[e]],r)})},Fe=async t=>{if(t.preventDefault(),e){if(xe(null),Ce(!1),!de.trim()){xe(`Name is required`);return}if(!pe.trim()){xe(`Base URL is required`);return}try{new URL(pe)}catch{xe(`Base URL must be a valid URL`);return}try{ye(!0),await ee(e,{name:de.trim(),baseUrl:pe.trim(),authMode:l?.preferredAuthType||`api_key`,providerApiKeys:l?.providerApiKeys||[],capabilities:{...l?.capabilities,transportMode:he}}),Ce(!0),await f(),setTimeout(()=>Ce(!1),3e3)}catch(e){xe(e instanceof Error?e.message:`Failed to update provider settings`)}finally{ye(!1)}}},Le=async()=>{if(!(!e||!l)&&window.confirm(`Are you sure you want to permanently delete custom provider "${l.displayName}"? This action cannot be undone.`))try{await k(e),window.location.hash=`#/providers`}catch(e){alert(e instanceof Error?e.message:`Failed to delete provider`)}};return u?(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ie,title:`Provider Details`,description:`Manage provider connections, models, and configuration`}),(0,P.jsx)(jt,{title:`Loading provider`,description:`Fetching provider details and account information...`,cards:3})]}):d||!l?(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ie,title:`Provider Details`,description:`Manage provider connections, models, and configuration`}),(0,P.jsx)(At,{title:`Provider not found`,description:d||`The requested provider could not be found.`,actionLabel:`Back to Providers`,actionHref:`#/providers`})]}):(0,P.jsxs)(`div`,{className:`screen-stack pd9-screen`,children:[(0,P.jsxs)(`div`,{className:`provider-detail-layout pd9-layout`,children:[(0,P.jsx)(vh,{provider:l,onToggleEnabled:async t=>{try{await te(e,t),await f()}catch(e){console.error(`Failed to toggle provider:`,e)}}}),(0,P.jsx)(yh,{provider:l}),(0,P.jsx)(`div`,{className:`provider-detail-grid pd9-grid`,children:(0,P.jsxs)(`div`,{className:`provider-detail-main`,children:[l.tier===`custom`&&(0,P.jsx)(V,{title:`Configuration`,description:`Edit endpoint settings and transport mode for this custom provider`,actions:(0,P.jsx)(`button`,{className:`button-danger`,onClick:Le,style:{fontSize:`var(--font-xs)`,padding:`4px var(--space-3)`},children:`🗑 Delete Provider`}),children:(0,P.jsxs)(`form`,{onSubmit:Fe,className:`custom-provider-config-form`,style:{display:`flex`,flexDirection:`column`,gap:`var(--space-4)`},children:[be&&(0,P.jsxs)(`div`,{className:`modal-error`,style:{color:`var(--danger)`,padding:`var(--space-2) 0`},children:[`⚠️ `,be]}),Se&&(0,P.jsx)(`div`,{className:`modal-success`,style:{color:`var(--success)`,padding:`var(--space-2) 0`,fontWeight:`600`},children:`✓ Configuration updated successfully`}),(0,P.jsxs)(`div`,{className:`form-group`,style:{display:`flex`,flexDirection:`column`,gap:`var(--space-1)`},children:[(0,P.jsx)(`label`,{htmlFor:`custom-name`,style:{fontSize:`var(--font-xs)`,fontWeight:`600`,color:`var(--text-secondary)`},children:`Provider Name`}),(0,P.jsx)(`input`,{id:`custom-name`,type:`text`,className:`search-input`,value:de,onChange:e=>fe(e.target.value),required:!0,style:{padding:`8px 12px`,fontSize:`var(--font-sm)`,borderRadius:`var(--radius-md)`,border:`1px solid var(--line)`,background:`var(--surface-input)`,color:`var(--text-primary)`,width:`100%`}})]}),(0,P.jsxs)(`div`,{className:`form-group`,style:{display:`flex`,flexDirection:`column`,gap:`var(--space-1)`},children:[(0,P.jsx)(`label`,{htmlFor:`custom-url`,style:{fontSize:`var(--font-xs)`,fontWeight:`600`,color:`var(--text-secondary)`},children:`Base URL / Endpoint`}),(0,P.jsx)(`input`,{id:`custom-url`,type:`url`,className:`search-input`,value:pe,onChange:e=>me(e.target.value),placeholder:`https://api.openai.com/v1`,required:!0,style:{padding:`8px 12px`,fontSize:`var(--font-sm)`,borderRadius:`var(--radius-md)`,border:`1px solid var(--line)`,background:`var(--surface-input)`,color:`var(--text-primary)`,width:`100%`}})]}),(0,P.jsxs)(`div`,{className:`form-group`,style:{display:`flex`,flexDirection:`column`,gap:`var(--space-1)`},children:[(0,P.jsx)(`label`,{htmlFor:`custom-transport`,style:{fontSize:`var(--font-xs)`,fontWeight:`600`,color:`var(--text-secondary)`},children:`Transport Mode`}),(0,P.jsxs)(`select`,{id:`custom-transport`,className:`search-input`,value:he,onChange:e=>ge(e.target.value),style:{padding:`8px 12px`,fontSize:`var(--font-sm)`,borderRadius:`var(--radius-md)`,border:`1px solid var(--line)`,background:`var(--surface-input)`,color:`var(--text-primary)`,width:`100%`},children:[(0,P.jsx)(`option`,{value:`responses`,children:`Responses API (/responses)`}),(0,P.jsx)(`option`,{value:`chat_completions`,children:`Chat Completions (/chat/completions)`})]})]}),(0,P.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,marginTop:`var(--space-2)`},children:(0,P.jsx)(`button`,{type:`submit`,className:`button-primary`,disabled:ve,children:ve?`Saving...`:`Save Configuration`})})]})}),l.tier!==`custom`&&l.configured&&(0,P.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,marginBottom:`var(--space-3)`},children:(0,P.jsx)(`button`,{className:`button-danger`,onClick:Le,style:{fontSize:`var(--font-xs)`,padding:`4px var(--space-3)`},children:`🗑 Remove Provider`})}),(0,P.jsx)(bh,{provider:l,accounts:y,accountsLoading:m,accountsError:h,onAddAccount:Me,onEditAccount:Ne,onTestAccount:ke,onUpdateRoutingMode:Ae,onReorderAccount:F,onDeleteAccount:je,getTestResult:S,isTestingAccount:C}),(0,P.jsx)(xh,{models:we,loading:Ee,onRefresh:Oe,isKiro:e===`kiro-ide`||e===`kiro-free`||e?.startsWith(`kiro-`)||!1})]})})]}),(0,P.jsx)(sh,{providerId:l.id,providerName:l.displayName,supportedAuthTypes:l.authTypes,accounts:p,isOpen:t,mode:r,editingAccount:a,onClose:()=>n(!1),onAccountsChanged:Pe})]})}function Ch(e){return e.split(/\r?\n|,/).map(e=>e.trim()).filter(Boolean)}function wh({mode:e,initialData:t,onSubmit:n,onCancel:r}){let[i,a]=(0,v.useState)({name:t?.name??``,baseUrl:t?.baseUrl??``,authMode:t?.authMode===`chatgpt_oauth`?`chatgpt_oauth`:`api_key`,chatgptAccountId:t?.chatgptAccountId??``,providerApiKeysText:t?.providerApiKeysText??``,transportMode:t?.transportMode===`chat_completions`?`chat_completions`:`responses`}),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),u=(0,v.useMemo)(()=>e===`edit`?`Leave blank to keep the currently configured keys, or enter new keys to replace them.`:`Optional. Enter one provider API key per line.`,[e]);async function d(t){t.preventDefault(),s(null);let r=i.name.trim(),a=i.baseUrl.trim(),o=i.chatgptAccountId.trim(),c=Ch(i.providerApiKeysText),u=i.providerApiKeysText.trim().length>0;if(!r){s(`Name is required.`);return}if(!a){s(`Base URL is required.`);return}try{new URL(a)}catch{s(`Base URL must be a valid URL.`);return}if(i.authMode===`chatgpt_oauth`&&!o){s(`Account ID is required for ChatGPT OAuth providers.`);return}i.authMode===`api_key`&&e===`create`&&c.length===0&&s(`At least one provider API key is recommended for API key providers.`),l(!0);try{await n({name:r,baseUrl:a,authMode:i.authMode,chatgptAccountId:o||void 0,providerApiKeys:c,replaceKeys:u,transportMode:i.transportMode})}catch(e){s(e instanceof Error?e.message:`Could not save provider.`),l(!1);return}l(!1)}return(0,P.jsxs)(`form`,{className:`provider-form`,onSubmit:d,children:[(0,P.jsx)(`div`,{className:`modal-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:e===`create`?`Create provider`:`Edit provider`}),(0,P.jsx)(`h2`,{children:e===`create`?`New provider`:`Update provider`})]})}),(0,P.jsx)(`p`,{className:`modal-copy`,children:e===`create`?`Create a runtime provider with routing metadata, auth mode, and upstream credentials.`:`Update provider metadata, account binding, and credentials without exposing existing keys.`}),o?(0,P.jsx)(Ut,{message:o,title:`Could not save provider`,variant:`error`}):null,(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Name`}),(0,P.jsx)(`input`,{className:`search-input`,onChange:e=>a(t=>({...t,name:e.target.value})),required:!0,type:`text`,value:i.name})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Base URL`}),(0,P.jsx)(`input`,{className:`search-input`,onChange:e=>a(t=>({...t,baseUrl:e.target.value})),placeholder:`https://example.com/v1`,required:!0,type:`url`,value:i.baseUrl})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Auth mode`}),(0,P.jsxs)(`select`,{className:`search-input`,onChange:e=>a(t=>({...t,authMode:e.target.value===`chatgpt_oauth`?`chatgpt_oauth`:`api_key`})),value:i.authMode,children:[(0,P.jsx)(`option`,{value:`api_key`,children:`API key`}),(0,P.jsx)(`option`,{value:`chatgpt_oauth`,children:`ChatGPT OAuth`})]})]}),i.authMode===`chatgpt_oauth`?(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Account ID`}),(0,P.jsx)(`input`,{className:`search-input`,onChange:e=>a(t=>({...t,chatgptAccountId:e.target.value})),placeholder:`acct_123`,type:`text`,value:i.chatgptAccountId})]}):null,(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Transport mode`}),(0,P.jsxs)(`select`,{className:`search-input`,onChange:e=>a(t=>({...t,transportMode:e.target.value===`chat_completions`?`chat_completions`:`responses`})),value:i.transportMode,children:[(0,P.jsx)(`option`,{value:`responses`,children:`Responses API (/responses)`}),(0,P.jsx)(`option`,{value:`chat_completions`,children:`Chat Completions (/chat/completions)`})]})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:e===`create`?`Provider API keys`:`Replace provider API keys`}),(0,P.jsx)(`textarea`,{className:`search-input form-textarea`,onChange:e=>a(t=>({...t,providerApiKeysText:e.target.value})),placeholder:e===`create`?`sk-provider-...`:`Enter new keys only if you want to replace them`,rows:4,value:i.providerApiKeysText}),(0,P.jsx)(`span`,{className:`field-help`,children:u})]}),(0,P.jsxs)(`div`,{className:`modal-actions`,children:[(0,P.jsx)(`button`,{className:`button-link`,disabled:c,onClick:r,type:`button`,children:`Cancel`}),(0,P.jsx)(`button`,{className:`button-link button-primary`,disabled:c,type:`submit`,children:c?e===`create`?`Creating...`:`Saving...`:e===`create`?`Create provider`:`Save changes`})]})]})}var Th={anthropic:{label:`Anthropic Compatible`,description:`Claude-style upstream using the Responses API transport.`,initialData:{name:``,baseUrl:``,authMode:`api_key`,chatgptAccountId:``,providerApiKeysText:``,transportMode:`responses`}},openai:{label:`OpenAI Compatible`,description:`OpenAI-style upstream using the Chat Completions transport.`,initialData:{name:``,baseUrl:``,authMode:`api_key`,chatgptAccountId:``,providerApiKeysText:``,transportMode:`chat_completions`}}};function Eh(){let[e,t]=(0,v.useState)(`openai`),n=(0,v.useMemo)(()=>Th[e].initialData,[e]),r=()=>{window.location.hash=`#/providers`};return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:Ie,eyebrow:`Providers`,title:`Add Provider`,description:`Connect an OpenAI or Anthropic compatible endpoint`,actions:(0,P.jsx)(`div`,{className:`page-actions`,children:(0,P.jsx)(`button`,{className:`back-button`,onClick:r,type:`button`,children:`← Back to Providers`})})}),(0,P.jsxs)(`div`,{className:`provider-new-layout`,children:[(0,P.jsx)(V,{title:`Provider Type`,description:`Pick the upstream protocol this provider speaks`,children:(0,P.jsx)(`div`,{className:`provider-preset-grid`,children:Object.keys(Th).map(n=>{let r=e===n;return(0,P.jsxs)(`button`,{type:`button`,className:`provider-preset-card${r?` active`:``}`,onClick:()=>t(n),"aria-pressed":r,children:[(0,P.jsx)(`span`,{className:`provider-preset-name`,children:Th[n].label}),(0,P.jsx)(`span`,{className:`provider-preset-desc`,children:Th[n].description})]},n)})})}),(0,P.jsx)(V,{title:`Configuration`,description:`Set the provider name, endpoint, and credentials`,children:(0,P.jsx)(wh,{mode:`create`,initialData:n,onCancel:r,onSubmit:async e=>{await O({name:e.name,baseUrl:e.baseUrl,authMode:e.authMode,chatgptAccountId:e.authMode===`chatgpt_oauth`?e.chatgptAccountId??``:``,providerApiKeys:e.providerApiKeys??[],capabilities:{transportMode:e.transportMode}}),r()}},e)})]})]})}var Dh={enabled:`inherit`,toolOutputEnabled:`inherit`,maxChars:``,maxLines:``,tailLines:``,tailChars:``,detectFormat:`inherit`};function Oh(e){if(!Rt(e))return`Inherit`;let t=[];return typeof e.enabled==`boolean`&&t.push(e.enabled?`enabled`:`disabled`),typeof e.toolOutputEnabled==`boolean`&&t.push(e.toolOutputEnabled?`tool-output:on`:`tool-output:off`),typeof e.maxChars==`number`&&t.push(`chars:${e.maxChars}`),typeof e.maxLines==`number`&&t.push(`lines:${e.maxLines}`),typeof e.tailLines==`number`&&t.push(`tail:${e.tailLines}`),typeof e.tailChars==`number`&&t.push(`tailChars:${e.tailChars}`),typeof e.detectFormat==`string`&&e.detectFormat.trim()&&t.push(`format:${e.detectFormat}`),t.length?t.join(` | `):`Inherit`}function kh(e){return Array.isArray(e.apiKeys)?e.apiKeys.length:0}function Ah(e){return Array.isArray(e.providers)&&e.providers.length?e.providers:Array.isArray(e.providerOptions)?e.providerOptions:[]}function jh(e){return Rt(e)?e:{}}function Mh(e){return typeof e==`boolean`?String(e):`inherit`}function Nh(e){return typeof e==`string`&&e.trim()?e:`inherit`}function Ph(e){return typeof e==`number`&&Number.isFinite(e)?String(e):``}function Fh(e){let t=Rt(e)?e:{};return{enabled:Mh(t.enabled),toolOutputEnabled:Mh(t.toolOutputEnabled),maxChars:Ph(t.maxChars),maxLines:Ph(t.maxLines),tailLines:Ph(t.tailLines),tailChars:Ph(t.tailChars),detectFormat:Nh(t.detectFormat)}}function Ih(e){let t=e.trim();if(!t)return;let n=Number(t);return Number.isInteger(n)&&n>0?n:void 0}function Lh(e){let t=e.trim();if(!t)return;let n=Number(t);return Number.isInteger(n)&&n>=0?n:void 0}function Rh(e){return{...e.enabled===`inherit`?{}:{enabled:e.enabled===`true`},...e.toolOutputEnabled===`inherit`?{}:{toolOutputEnabled:e.toolOutputEnabled===`true`},...Ih(e.maxChars)===void 0?{}:{maxChars:Ih(e.maxChars)},...Ih(e.maxLines)===void 0?{}:{maxLines:Ih(e.maxLines)},...Lh(e.tailLines)===void 0?{}:{tailLines:Lh(e.tailLines)},...Lh(e.tailChars)===void 0?{}:{tailChars:Lh(e.tailChars)},...e.detectFormat===`inherit`?{}:{detectFormat:e.detectFormat}}}function zh(e){return typeof e.enabled==`boolean`||typeof e.toolOutputEnabled==`boolean`||typeof e.maxChars==`number`||typeof e.maxLines==`number`}function Bh(e,t){return typeof t.rtkRequests!=`number`||t.rtkRequests<=0?null:(0,P.jsx)(V,{title:`${e} RTK telemetry`,description:`Observed RTK reductions from recorded requests.`,children:(0,P.jsxs)(`div`,{className:`stat-grid`,children:[(0,P.jsx)(z,{label:`Requests seen`,value:L(t.rtkRequests)}),(0,P.jsx)(z,{label:`Applied requests`,value:L(t.rtkAppliedRequests)}),(0,P.jsx)(z,{label:`Applied rate`,value:zt(t.rtkAppliedRate)}),(0,P.jsx)(z,{label:`Tool outputs reduced`,value:L(t.rtkToolOutputsReduced)}),(0,P.jsx)(z,{label:`Chars before`,value:L(t.rtkCharsBefore)}),(0,P.jsx)(z,{label:`Chars after`,value:L(t.rtkCharsAfter)}),(0,P.jsx)(z,{label:`Chars saved`,value:L(t.rtkCharsSaved)}),(0,P.jsx)(z,{label:`Avg chars saved`,value:L(t.rtkAvgCharsSaved)})]})})}function Vh(){if(window.location.hash.includes(`skills`))return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{icon:nt,title:`Skills Hub`,description:`Cognitive abilities, tool registries, and agentic workflows`}),(0,P.jsx)(V,{title:`Feature Coming Soon`,description:`Advanced cognitive skills registry`,tone:`info`,children:(0,P.jsxs)(`div`,{style:{padding:`var(--space-6) var(--space-4)`,textAlign:`center`},children:[(0,P.jsx)(`span`,{style:{fontSize:`3rem`},children:`🧠`}),(0,P.jsx)(`h3`,{style:{margin:`var(--space-3) 0 var(--space-2) 0`,fontSize:`var(--font-lg)`},children:`Cognitive & Agentic Skills`}),(0,P.jsx)(`p`,{style:{margin:`0 auto var(--space-4) auto`,color:`var(--text-secondary)`,fontSize:`var(--font-sm)`,maxWidth:`540px`,lineHeight:`1.6`},children:`Skills Hub will enable configuring advanced prompt injections, system instructions, and tool schemas directly inside responses-proxy. Developers can register and deploy cognitive behaviors that are injected dynamically into client sessions based on model compatibility.`}),(0,P.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`var(--space-2)`,justifyContent:`center`},children:[(0,P.jsx)(B,{variant:`accent`,children:`Prompt Injectors`}),(0,P.jsx)(B,{variant:`accent`,children:`Tool Schemas`}),(0,P.jsx)(B,{variant:`accent`,children:`Context Trimming`})]})]})})]});let{state:e,retry:t}=Wt((0,v.useCallback)(async()=>{let[e,t]=await Promise.all([D(),j()]);return{providers:e,usage:t}},[])),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(Dh),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(null),u=e.status===`success`?Ah(e.data.providers):[],d=e.status===`success`&&Array.isArray(e.data.providers.clientRoutes)?e.data.providers.clientRoutes:[];(0,v.useEffect)(()=>{if(!d.length){n!==null&&r(null);return}n&&d.some(e=>e.key===n)||r((d.find(e=>e.key!==`default`)??d[0]).key)},[d,n]);let f=d.find(e=>e.key===n)??d[0]??null;if((0,v.useEffect)(()=>{if(!f){a(Dh);return}a(Fh(f.rtkPolicy))},[f?.key,f?.rtkPolicy]),e.status===`loading`||e.status===`idle`)return(0,P.jsx)(jt,{title:`Loading RTK overview`,description:`Reading route policies and RTK usage telemetry.`});if(e.status===`error`)return(0,P.jsx)(Ht,{title:`RTK overview unavailable`,description:e.error.message,onRetry:t});let p=Rt(e.data.usage.stats)?e.data.usage.stats:{},m=jh(p.today),h=jh(p.month),g=d.map(e=>({clientRoute:e.key,provider:e.providerName||e.providerId||`Unbound`,modelOverride:e.modelOverride||`Inherited`,apiKeys:kh(e),policySummary:Oh(e.rtkPolicy)})),_=u.map(e=>{let t=Rt(e.capabilities)?e.capabilities:null;return{provider:e.name||e.id,authMode:e.authMode||`Not reported`,defaultPolicy:Oh(t?.rtkPolicy)}}).filter(e=>e.defaultPolicy!==`Inherit`),y=g.filter(e=>e.policySummary!==`Inherit`).length,b=_.length,x=typeof m.rtkRequests==`number`&&m.rtkRequests>0||typeof h.rtkRequests==`number`&&h.rtkRequests>0,S=Rh(i),C=Object.keys(S).length>0&&!zh(S)?`Current backend behavior only persists RTK overrides when at least one of enabled, tool output, max chars, or max lines is set.`:null;async function w(){if(f){s(!0),l(null);try{await se(f.key,S),l({variant:`success`,message:Object.keys(S).length===0?`RTK policy for ${f.key} reset to inherit.`:`RTK policy for ${f.key} saved.`}),t()}catch(e){l({variant:`error`,message:e instanceof Error?e.message:`Could not save RTK policy`})}finally{s(!1)}}}function T(){a(Dh),l(null)}return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{eyebrow:`RTK`,title:`RTK reduction overview`,description:`Tune route-level RTK policy, review recent savings, and compare live telemetry against your current rules.`,actions:(0,P.jsx)($t,{onClick:t})}),(0,P.jsx)(V,{children:(0,P.jsxs)(`div`,{className:`hero-status`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:`Policy coverage`}),(0,P.jsx)(`h2`,{children:L(y)}),(0,P.jsx)(`p`,{children:y===1?`client route with explicit RTK policy`:`client routes with explicit RTK policy`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`eyebrow`,children:`Provider defaults`}),(0,P.jsx)(`h2`,{children:L(b)}),(0,P.jsx)(`p`,{children:b===1?`provider exposes an RTK default`:`providers expose RTK defaults`})]})]})}),(0,P.jsxs)(`div`,{className:`stat-grid`,children:[(0,P.jsx)(z,{label:`Today RTK requests`,value:L(m.rtkRequests)}),(0,P.jsx)(z,{label:`Today applied rate`,value:zt(m.rtkAppliedRate)}),(0,P.jsx)(z,{label:`Month RTK requests`,value:L(h.rtkRequests)}),(0,P.jsx)(z,{label:`Month chars saved`,value:L(h.rtkCharsSaved)})]}),Bh(`Today`,m),Bh(`This month`,h),x?null:(0,P.jsx)(At,{title:`No RTK telemetry yet`,description:`RTK telemetry will appear here after requests are processed with session logging enabled.`}),(0,P.jsxs)(V,{title:`Edit client route RTK policy`,description:`Save route-level RTK policy changes against the live backend contract used by the proxy.`,children:[c?(0,P.jsx)(Ut,{variant:c.variant,message:c.message,title:c.variant===`error`?`Save failed`:`Saved`}):null,C?(0,P.jsx)(Ut,{variant:`error`,title:`Persistence note`,message:C}):null,f?(0,P.jsxs)(`div`,{className:`surface-card-body`,children:[(0,P.jsxs)(`div`,{className:`client-form-grid rtk-form-grid`,children:[(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Client route`}),(0,P.jsx)(`select`,{className:`search-input`,value:f.key,onChange:e=>{r(e.target.value),l(null)},children:d.map(e=>(0,P.jsx)(`option`,{value:e.key,children:e.key},e.key))})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Enabled`}),(0,P.jsxs)(`select`,{className:`search-input`,value:i.enabled,onChange:e=>a(t=>({...t,enabled:e.target.value})),children:[(0,P.jsx)(`option`,{value:`inherit`,children:`Inherit`}),(0,P.jsx)(`option`,{value:`true`,children:`Enabled`}),(0,P.jsx)(`option`,{value:`false`,children:`Disabled`})]})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Tool output reduction`}),(0,P.jsxs)(`select`,{className:`search-input`,value:i.toolOutputEnabled,onChange:e=>a(t=>({...t,toolOutputEnabled:e.target.value})),children:[(0,P.jsx)(`option`,{value:`inherit`,children:`Inherit`}),(0,P.jsx)(`option`,{value:`true`,children:`Enabled`}),(0,P.jsx)(`option`,{value:`false`,children:`Disabled`})]})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Max chars`}),(0,P.jsx)(`input`,{className:`search-input`,inputMode:`numeric`,placeholder:`e.g. 2800`,value:i.maxChars,onChange:e=>a(t=>({...t,maxChars:e.target.value}))})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Max lines`}),(0,P.jsx)(`input`,{className:`search-input`,inputMode:`numeric`,placeholder:`e.g. 90`,value:i.maxLines,onChange:e=>a(t=>({...t,maxLines:e.target.value}))})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Tail lines`}),(0,P.jsx)(`input`,{className:`search-input`,inputMode:`numeric`,placeholder:`e.g. 12`,value:i.tailLines,onChange:e=>a(t=>({...t,tailLines:e.target.value}))})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Tail chars`}),(0,P.jsx)(`input`,{className:`search-input`,inputMode:`numeric`,placeholder:`e.g. 400`,value:i.tailChars,onChange:e=>a(t=>({...t,tailChars:e.target.value}))})]}),(0,P.jsxs)(`label`,{className:`form-field`,children:[(0,P.jsx)(`span`,{className:`field-label`,children:`Detect format`}),(0,P.jsxs)(`select`,{className:`search-input`,value:i.detectFormat,onChange:e=>a(t=>({...t,detectFormat:e.target.value})),children:[(0,P.jsx)(`option`,{value:`inherit`,children:`Inherit`}),(0,P.jsx)(`option`,{value:`auto`,children:`Auto`}),(0,P.jsx)(`option`,{value:`plain`,children:`Plain`}),(0,P.jsx)(`option`,{value:`json`,children:`JSON`}),(0,P.jsx)(`option`,{value:`stack`,children:`Stack`}),(0,P.jsx)(`option`,{value:`command`,children:`Command`})]})]})]}),(0,P.jsxs)(`div`,{className:`rtk-form-actions`,children:[(0,P.jsx)(`button`,{className:`button-link`,disabled:o,onClick:T,type:`button`,children:`Reset form`}),(0,P.jsx)(`button`,{className:`button-link`,disabled:o,onClick:()=>a(Fh(f.rtkPolicy)),type:`button`,children:`Load saved policy`}),(0,P.jsx)(`button`,{className:`button-primary`,disabled:o,onClick:w,type:`button`,children:o?`Saving...`:`Save RTK policy`})]})]}):(0,P.jsx)(At,{title:`No client routes available`,description:`Create a client route first, then return here to adjust RTK policy.`})]}),(0,P.jsx)(V,{title:`Client route RTK policy`,description:`Route-level RTK settings currently configured in the backend. Inherited means the route follows provider defaults.`,children:(0,P.jsx)(Vt,{columns:[{key:`clientRoute`,label:`Client route`},{key:`provider`,label:`Provider`},{key:`modelOverride`,label:`Model override`},{key:`apiKeys`,label:`API keys`,align:`right`,render:e=>L(e)},{key:`policySummary`,label:`RTK policy`}],rows:g,emptyTitle:`No client routes reported`,emptyDescription:`Route policy details will appear after providers are loaded.`})}),(0,P.jsx)(V,{title:`Provider RTK defaults`,description:`Provider-level defaults used when a client route inherits RTK behavior.`,children:(0,P.jsx)(Vt,{columns:[{key:`provider`,label:`Provider`},{key:`authMode`,label:`Auth`},{key:`defaultPolicy`,label:`Default RTK policy`}],rows:_,emptyTitle:`No provider RTK defaults reported`,emptyDescription:`Providers without explicit RTK defaults will continue to inherit backend behavior.`})}),(0,P.jsx)(V,{title:`Policy notes`,description:`Helpful context for choosing conservative defaults before widening route-level policy.`,children:(0,P.jsxs)(`dl`,{className:`detail-list`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Selected route`}),(0,P.jsx)(`dd`,{children:f?f.key:`Not reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Saved summary`}),(0,P.jsx)(`dd`,{children:f?Oh(f.rtkPolicy):`Not reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Provider defaults`}),(0,P.jsx)(`dd`,{children:b>0?`${b} provider default${b===1?``:`s`} detected`:`No explicit provider defaults reported`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Telemetry fallback`}),(0,P.jsx)(`dd`,{children:x?`Telemetry is flowing and can be compared against policy summaries above.`:`Telemetry is still sparse, so compare recent requests after saving a policy update.`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Top-level request reduction`}),(0,P.jsx)(`dd`,{children:typeof h.rtkAppliedRate==`number`?`${zt(h.rtkAppliedRate)} applied this month`:`Not reported yet`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:`Tool-output trimming`}),(0,P.jsx)(`dd`,{children:R(h.rtkToolOutputsReduced)})]})]})})]})}var Hh=[{value:`today`,label:`Today`},{value:`7d`,label:`7D`},{value:`30d`,label:`30D`}],Uh=e=>new Intl.NumberFormat().format(Number(e)||0),Wh=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e||0);function Gh(){let[e,t]=(0,v.useState)(`overview`),[n,r]=(0,v.useState)(`today`),[i,a]=(0,v.useState)(`tokens`),{state:o,retry:s}=Wt((0,v.useCallback)(()=>j(),[])),[c,l]=(0,v.useState)({status:`idle`}),u=(0,v.useCallback)(async()=>{l(e=>({status:`loading`,data:e.data}));try{l({status:`success`,data:await oe()})}catch{l({status:`success`,data:{ok:!0,providers:[]}})}},[]);(0,v.useEffect)(()=>{let e=!0,t=async()=>{l(e=>({status:`loading`,data:e.data}));try{let t=await oe();e&&l({status:`success`,data:t})}catch{e&&l({status:`success`,data:{ok:!0,providers:[]}})}};t();let n=setInterval(()=>void t(),3e4);return()=>{e=!1,clearInterval(n)}},[]);let d=o.status===`success`&&Rt(o.data.stats)?o.data.stats:{},f=Rt(d.today)?d.today:{},p=Rt(d.month)?d.month:{},m=Array.isArray(d.daily)?d.daily:[],h=Array.isArray(d.byProvider)?d.byProvider:[],g=Array.isArray(d.byModel)?d.byModel:[],_=Array.isArray(d.byClientRoute)?d.byClientRoute:[],y=Array.isArray(c.data?.providers)?c.data.providers:[],b=n===`30d`?p:f,x=Number(b.totalInputTokens)||0,S=Number(b.totalCachedTokens)||0,C=Number(b.requests)||0,w=(0,v.useMemo)(()=>m.map(e=>({timestamp:e.date||new Date().toISOString(),value:i===`tokens`?Number(e.totalInputTokens||0)+Number(e.totalCachedTokens||0):Number(e.requests||0)})),[m,i]);return o.status===`loading`||o.status===`idle`?(0,P.jsx)(jt,{title:`Loading usage`,description:`Reading usage data...`}):o.status===`error`?(0,P.jsx)(Ht,{title:`Usage unavailable`,description:o.error.message,onRetry:s}):(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{title:`Usage & Analytics`,description:`Track requests, tokens, cost, and provider utilization.`,actions:(0,P.jsx)($t,{onClick:s})}),(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`var(--space-4)`,flexWrap:`wrap`},children:[(0,P.jsx)(qh,{options:[{value:`overview`,label:`Overview`},{value:`details`,label:`Details`}],value:e,onChange:e=>t(e)}),e===`overview`&&(0,P.jsx)(qh,{options:Hh,value:n,onChange:e=>r(e),size:`sm`})]}),e===`overview`&&(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`,gap:`var(--space-4)`},children:[(0,P.jsx)(Kh,{label:`Total Requests`,value:Uh(C)}),(0,P.jsx)(Kh,{label:`Total Input Tokens`,value:Wh(x),color:`var(--accent)`}),(0,P.jsx)(Kh,{label:`Cached Tokens`,value:Wh(S),color:`var(--success)`}),(0,P.jsx)(Kh,{label:`Cache Hit Rate`,value:zt(b.hitRate),color:`var(--warning)`,subtitle:`Prompt cache efficiency`})]}),w.length>0&&(0,P.jsxs)(V,{children:[(0,P.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:`var(--space-3)`},children:[(0,P.jsx)(`h3`,{style:{margin:0,fontSize:`var(--text-sm)`,fontWeight:600},children:`Usage Over Time`}),(0,P.jsx)(qh,{options:[{value:`tokens`,label:`Tokens`},{value:`cost`,label:`Requests`}],value:i,onChange:e=>a(e),size:`sm`})]}),(0,P.jsx)(Pp,{data:w,height:200,color:i===`tokens`?`var(--accent)`:`var(--warning)`,fill:!0,valueFormatter:e=>i===`tokens`?Wh(e):Uh(e)})]}),typeof b.rtkRequests==`number`&&b.rtkRequests>0&&(0,P.jsx)(V,{title:`RTK Token Saver`,description:`Tool output compression statistics`,children:(0,P.jsxs)(`div`,{className:`stat-grid`,children:[(0,P.jsx)(z,{label:`RTK Requests`,value:Uh(b.rtkRequests)}),(0,P.jsx)(z,{label:`Applied`,value:Uh(b.rtkAppliedRequests)}),(0,P.jsx)(z,{label:`Apply Rate`,value:zt(b.rtkAppliedRate)}),(0,P.jsx)(z,{label:`Chars Saved`,value:Uh(b.rtkCharsSaved)})]})}),(0,P.jsx)(V,{title:`By Provider`,description:`Request distribution across providers`,children:(0,P.jsx)(Vt,{columns:[{key:`key`,label:`Provider`},{key:`requests`,label:`Requests`,align:`right`,render:e=>Uh(e)},{key:`totalCachedTokens`,label:`Cached Tokens`,align:`right`,render:e=>Uh(e)},{key:`hitRate`,label:`Hit Rate`,align:`right`,render:e=>zt(e)},{key:`rtkCharsSaved`,label:`RTK Saved`,align:`right`,render:e=>Uh(e)}],rows:h,emptyTitle:`No provider data`,emptyDescription:`Usage will appear after requests are processed.`})}),g.length>0&&(0,P.jsx)(V,{title:`By Model`,description:`Token usage per model`,children:(0,P.jsx)(Vt,{columns:[{key:`key`,label:`Model`},{key:`requests`,label:`Requests`,align:`right`,render:e=>Uh(e)},{key:`totalCachedTokens`,label:`Cached`,align:`right`,render:e=>Uh(e)},{key:`avgCacheSavedPercent`,label:`Avg Saved`,align:`right`,render:e=>zt(e)}],rows:g,emptyTitle:`No model data`,emptyDescription:``})}),(0,P.jsx)(V,{title:`By Client Route`,description:`Usage per API key route`,children:(0,P.jsx)(Vt,{columns:[{key:`key`,label:`Route`},{key:`requests`,label:`Requests`,align:`right`,render:e=>Uh(e)},{key:`hitRate`,label:`Hit Rate`,align:`right`,render:e=>zt(e)},{key:`rtkCharsSaved`,label:`RTK Saved`,align:`right`,render:e=>Uh(e)}],rows:_,emptyTitle:`No route data`,emptyDescription:`Client route usage will appear when route-specific logs exist.`})})]}),e===`details`&&(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(V,{title:`Live Provider Status`,description:`Real-time provider availability. Auto-refreshes every 30s.`,actions:(0,P.jsx)($t,{onClick:u,label:`Refresh`}),children:y.length===0?(0,P.jsx)(`p`,{style:{color:`var(--text-muted)`,fontSize:`var(--text-sm)`,textAlign:`center`,padding:`var(--space-4)`},children:`No live data available.`}):(0,P.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-2)`},children:y.map(e=>{let t=Rt(e.usage)?e.usage:{},n=e.ok!==!1&&t.allowed!==!1;return(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`,padding:`var(--space-3) var(--space-4)`,background:`var(--surface-muted)`,borderRadius:`var(--radius-sm)`,border:`1px solid var(--line)`},children:[(0,P.jsx)(`span`,{style:{width:8,height:8,borderRadius:`50%`,flexShrink:0,background:n?`var(--success)`:`var(--danger)`,boxShadow:`0 0 0 3px ${n?`var(--success-soft)`:`var(--danger-soft)`}`}}),(0,P.jsx)(`span`,{style:{flex:1,fontWeight:600,fontSize:`var(--text-sm)`},children:e.providerName||e.providerId}),typeof t.remaining==`number`&&typeof t.limit==`number`&&(0,P.jsxs)(`span`,{style:{fontSize:`var(--text-xs)`,color:`var(--text-secondary)`},children:[Uh(t.remaining),` / `,Uh(t.limit)]}),(0,P.jsx)(B,{status:n?`success`:`danger`,children:n?`Available`:e.error?`Error`:`Exhausted`})]},e.providerId||e.providerName)})})}),(0,P.jsx)(V,{title:`Cache Performance`,description:`Detailed cache statistics`,children:(0,P.jsxs)(`div`,{className:`stat-grid`,children:[(0,P.jsx)(z,{label:`Today Requests`,value:Uh(f.requests)}),(0,P.jsx)(z,{label:`Today Hit Rate`,value:zt(f.hitRate)}),(0,P.jsx)(z,{label:`Today Cached`,value:Uh(f.totalCachedTokens)}),(0,P.jsx)(z,{label:`Today Avg Saved`,value:zt(f.avgCacheSavedPercent)}),(0,P.jsx)(z,{label:`Month Requests`,value:Uh(p.requests)}),(0,P.jsx)(z,{label:`Month Hit Rate`,value:zt(p.hitRate)}),(0,P.jsx)(z,{label:`Month Cached`,value:Uh(p.totalCachedTokens)}),(0,P.jsx)(z,{label:`Month Avg Saved`,value:zt(p.avgCacheSavedPercent)})]})})]})]})}function Kh({label:e,value:t,color:n,subtitle:r}){return(0,P.jsxs)(`section`,{className:`surface-card`,style:{padding:`var(--space-4) var(--space-5)`},children:[(0,P.jsx)(`span`,{style:{fontSize:`var(--text-xs)`,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`,color:`var(--text-muted)`},children:e}),(0,P.jsx)(`span`,{style:{display:`block`,marginTop:4,fontSize:`var(--text-2xl)`,fontWeight:700,letterSpacing:`-0.04em`,color:n||`var(--text-primary)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:t}),r&&(0,P.jsx)(`span`,{style:{fontSize:`0.65rem`,color:`var(--text-muted)`},children:r})]})}function qh({options:e,value:t,onChange:n,size:r}){return(0,P.jsx)(`div`,{style:{display:`inline-flex`,borderRadius:`var(--radius-pill)`,overflow:`hidden`,border:`1px solid var(--line)`,background:`var(--surface-muted)`},children:e.map(e=>(0,P.jsx)(`button`,{onClick:()=>n(e.value),style:{padding:r===`sm`?`var(--space-1) var(--space-3)`:`var(--space-2) var(--space-4)`,fontSize:`var(--text-xs)`,fontWeight:600,cursor:`pointer`,background:t===e.value?`var(--accent)`:`transparent`,color:t===e.value?`#fff`:`var(--text-secondary)`,border:`none`,minHeight:r===`sm`?28:34,transition:`background var(--animation-fast), color var(--animation-fast)`},children:e.label},e.value))})}var Jh=6e4;function Yh(){let[e,t]=(0,v.useState)([]),[n,r]=(0,v.useState)([]),[i,a]=(0,v.useState)(!0),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!0),[u,d]=(0,v.useState)(60),[f,p]=(0,v.useState)(null),m=(0,v.useRef)(null),h=(0,v.useRef)(null),g=(0,v.useCallback)(async()=>{try{s(!0);let[e,n]=await Promise.all([D(),oe()]);t(e.providerOptions||e.providers||[]),r(n.providers||[]),p(new Date),d(60)}catch(e){console.error(`Failed to fetch quota data:`,e)}finally{a(!1),s(!1)}},[]);(0,v.useEffect)(()=>{g()},[g]),(0,v.useEffect)(()=>{if(!c){m.current&&clearInterval(m.current),h.current&&clearInterval(h.current);return}return m.current=setInterval(g,Jh),h.current=setInterval(()=>{d(e=>e<=1?60:e-1)},1e3),()=>{m.current&&clearInterval(m.current),h.current&&clearInterval(h.current)}},[c,g]);let _=(0,v.useMemo)(()=>{let t=new Map;for(let e of n)e.providerId&&t.set(e.providerId,e);return e.map(e=>{let n=t.get(e.id),r=n&&Rt(n.usage)?n.usage:null;return{id:e.id,name:e.name,live:n,ok:n?.ok!==!1&&r?.allowed!==!1,allowed:r?.allowed,remaining:typeof r?.remaining==`number`?r.remaining:void 0,limit:typeof r?.limit==`number`?r.limit:void 0,used:typeof r?.used==`number`?r.used:void 0,error:n?.error,hasQuota:n!==void 0}})},[e,n]),y=(0,v.useMemo)(()=>_.filter(e=>e.hasQuota),[_]);return i?(0,P.jsx)(jt,{title:`Loading quotas`,description:`Fetching provider quota status...`,cards:4}):(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{title:`Quota Tracker`,description:`Real-time provider quota limits and usage status.`,actions:(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-2)`},children:[(0,P.jsxs)(`button`,{onClick:()=>l(e=>!e),className:`button-link`,style:{minHeight:36,gap:`var(--space-2)`},title:c?`Disable auto-refresh`:`Enable auto-refresh`,children:[(0,P.jsx)(`span`,{style:{color:c?`var(--accent)`:`var(--text-muted)`},children:c?`⟳`:`⏸`}),(0,P.jsx)(`span`,{children:`Auto`}),c&&(0,P.jsxs)(`span`,{style:{fontSize:`var(--text-xs)`,color:`var(--text-muted)`,fontVariantNumeric:`tabular-nums`},children:[`(`,u,`s)`]})]}),(0,P.jsx)($t,{onClick:g,isRefreshing:o})]})}),f&&(0,P.jsxs)(`p`,{style:{fontSize:`var(--text-xs)`,color:`var(--text-muted)`,margin:0},children:[`Last updated: `,f.toLocaleTimeString()]}),y.length===0?(0,P.jsx)(V,{children:(0,P.jsxs)(`div`,{style:{textAlign:`center`,padding:`var(--space-8)`},children:[(0,P.jsx)(`p`,{style:{fontSize:`var(--text-base)`,fontWeight:600,margin:`0 0 var(--space-2)`},children:`No Quota Data Available`}),(0,P.jsx)(`p`,{style:{fontSize:`var(--text-sm)`,color:`var(--text-secondary)`,margin:0,maxWidth:400,marginInline:`auto`},children:`Connect providers with quota tracking (OAuth subscriptions like Claude Code, Codex) to see quota limits and usage here.`})]})}):(0,P.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(320px, 1fr))`,gap:`var(--space-4)`},children:y.map(e=>(0,P.jsx)(Xh,{provider:e,onRefresh:g},e.id))})]})}function Xh({provider:e,onRefresh:t}){let n=e.limit&&e.limit>0?Math.round((e.used||0)/e.limit*100):null,r=n===null?null:100-n;return(0,P.jsxs)(`section`,{className:`surface-card`,style:{padding:0,overflow:`hidden`},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`var(--space-3)`,padding:`var(--space-3) var(--space-4)`,borderBottom:`1px solid var(--line)`},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`,minWidth:0},children:[(0,P.jsx)(`div`,{style:{width:32,height:32,borderRadius:8,background:`var(--accent-soft)`,display:`flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0},children:(0,P.jsx)(`span`,{style:{fontSize:14,fontWeight:700,color:`var(--accent)`},children:e.name.charAt(0).toUpperCase()})}),(0,P.jsx)(`div`,{style:{minWidth:0},children:(0,P.jsx)(`h3`,{style:{margin:0,fontSize:`var(--text-sm)`,fontWeight:600,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name})})]}),(0,P.jsx)(B,{status:e.ok?`success`:`danger`,children:e.ok?`Active`:e.error?`Error`:`Exhausted`})]}),(0,P.jsx)(`div`,{style:{padding:`var(--space-3) var(--space-4)`},children:e.error?(0,P.jsx)(`p`,{style:{margin:0,fontSize:`var(--text-xs)`,color:`var(--danger)`},children:e.error}):e.limit===void 0?(0,P.jsx)(`p`,{style:{margin:0,fontSize:`var(--text-xs)`,color:`var(--text-muted)`,textAlign:`center`,padding:`var(--space-2)`},children:e.ok?`Connected — no quota limits reported`:`Unable to fetch quota`}):(0,P.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-3)`},children:[(0,P.jsxs)(`div`,{children:[(0,P.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,marginBottom:4},children:[(0,P.jsxs)(`span`,{style:{fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:[L(e.remaining),` remaining`]}),(0,P.jsx)(`span`,{style:{fontSize:`var(--text-xs)`,fontWeight:600},children:r===null?`—`:`${r}%`})]}),(0,P.jsx)(`div`,{style:{height:8,borderRadius:`var(--radius-pill)`,background:`var(--neutral-soft)`,overflow:`hidden`},children:(0,P.jsx)(`div`,{style:{height:`100%`,width:`${r??0}%`,borderRadius:`var(--radius-pill)`,background:!e.ok||r!==null&&r<=10?`var(--danger)`:r!==null&&r<=30?`var(--warning)`:`var(--success)`,transition:`width var(--animation-slow) var(--animation-easing)`}})})]}),(0,P.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr 1fr`,gap:`var(--space-2)`},children:[(0,P.jsxs)(`div`,{style:{textAlign:`center`},children:[(0,P.jsx)(`span`,{style:{display:`block`,fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:`Used`}),(0,P.jsx)(`span`,{style:{display:`block`,fontSize:`var(--text-sm)`,fontWeight:600},children:L(e.used)})]}),(0,P.jsxs)(`div`,{style:{textAlign:`center`},children:[(0,P.jsx)(`span`,{style:{display:`block`,fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:`Remaining`}),(0,P.jsx)(`span`,{style:{display:`block`,fontSize:`var(--text-sm)`,fontWeight:600,color:`var(--success)`},children:L(e.remaining)})]}),(0,P.jsxs)(`div`,{style:{textAlign:`center`},children:[(0,P.jsx)(`span`,{style:{display:`block`,fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:`Limit`}),(0,P.jsx)(`span`,{style:{display:`block`,fontSize:`var(--text-sm)`,fontWeight:600},children:L(e.limit)})]})]})]})})]})}var Zh=[{id:`antigravity`,name:`Antigravity (Google)`,color:`#4285F4`,description:`Google Antigravity IDE — intercepts daily-cloudcode-pa.googleapis.com`,mitmDomain:`daily-cloudcode-pa.googleapis.com`,models:[{id:`gemini-3.5-flash-low`,name:`Gemini 3.5 Flash (Medium)`},{id:`gemini-3-flash-agent`,name:`Gemini 3.5 Flash (High)`},{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (Thinking)`},{id:`claude-opus-4-6-thinking`,name:`Claude Opus 4.6 (Thinking)`}]},{id:`copilot`,name:`GitHub Copilot`,color:`#1F6FEB`,description:`GitHub Copilot IDE — intercepts api.individual.githubcopilot.com`,mitmDomain:`api.individual.githubcopilot.com`,models:[{id:`gpt-4o`,name:`GPT-4o`},{id:`gpt-4.1`,name:`GPT-4.1`},{id:`claude-haiku-4.5`,name:`Claude Haiku 4.5`}]},{id:`kiro`,name:`Kiro IDE`,color:`#FF6B00`,description:`Kiro IDE — intercepts q.us-east-1.amazonaws.com`,mitmDomain:`q.us-east-1.amazonaws.com`,models:[{id:`claude-sonnet-4.5`,name:`Claude Sonnet 4.5`},{id:`claude-sonnet-4`,name:`Claude Sonnet 4`},{id:`deepseek-3.2`,name:`DeepSeek 3.2`},{id:`minimax-m2.1`,name:`MiniMax M2.1`}]}];function Qh(){let[e,t]=(0,v.useState)(null),[n,r]=(0,v.useState)(!0),[i,a]=(0,v.useState)(null),o=(0,v.useCallback)(async()=>{try{let e=await fetch(`/api/cli-tools/mitm-status`);e.ok?t(await e.json()):t({running:!1,certExists:!1,certTrusted:!1,dnsStatus:{}})}catch{t({running:!1,certExists:!1,certTrusted:!1,dnsStatus:{}})}finally{r(!1)}},[]);if((0,v.useEffect)(()=>{o()},[o]),n)return(0,P.jsx)(jt,{title:`Loading MITM status`,description:`Checking MITM server and certificates...`,cards:3});let s=e?.running||!1;return(0,P.jsxs)(`div`,{className:`screen-stack`,children:[(0,P.jsx)(I,{title:`MITM Proxy`,description:`Intercept IDE HTTPS traffic to route through your providers.`}),(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:`var(--space-3)`,padding:`var(--space-3) var(--space-4)`,borderRadius:`var(--radius-md)`,background:`var(--warning-soft)`,border:`1px solid color-mix(in srgb, var(--warning) 30%, transparent)`},children:[(0,P.jsx)(`span`,{style:{color:`var(--warning)`,fontSize:`16px`,marginTop:2,flexShrink:0},children:`⚠️`}),(0,P.jsx)(`p`,{style:{margin:0,fontSize:`var(--text-xs)`,color:`var(--danger)`,lineHeight:1.5},children:`MITM intercepts HTTPS traffic of IDE tools (Antigravity, GitHub Copilot, Kiro) via local CA to redirect requests to your providers. May violate ToS → account ban. Use at your own risk.`})]}),(0,P.jsx)($h,{status:e,isRunning:s,onRefresh:o}),(0,P.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-3)`},children:Zh.map(t=>(0,P.jsx)(eg,{tool:t,isExpanded:i===t.id,onToggle:()=>a(i===t.id?null:t.id),serverRunning:s,dnsActive:e?.dnsStatus?.[t.id]||!1},t.id))})]})}function $h({status:e,isRunning:t,onRefresh:n}){let[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null);return(0,P.jsx)(`section`,{className:`surface-card surface-card-info`,style:{padding:`var(--space-4) var(--space-5)`},children:(0,P.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-4)`},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,flexWrap:`wrap`,gap:`var(--space-3)`},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`},children:[(0,P.jsx)(`span`,{style:{fontSize:20,color:`var(--accent)`},children:`🔒`}),(0,P.jsx)(`span`,{style:{fontWeight:600,fontSize:`var(--text-sm)`},children:`MITM Server`}),(0,P.jsx)(B,{status:t?`success`:`neutral`,children:t?`Running`:`Stopped`})]}),(0,P.jsxs)(`div`,{style:{display:`flex`,gap:`var(--space-3)`,fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:[(0,P.jsx)(tg,{label:`Cert`,ok:e?.certExists}),(0,P.jsx)(tg,{label:`Trusted`,ok:e?.certTrusted}),(0,P.jsx)(tg,{label:`Server`,ok:t})]})]}),(0,P.jsxs)(`div`,{style:{padding:`var(--space-3)`,background:`var(--surface-muted)`,borderRadius:`var(--radius-sm)`,border:`1px solid var(--line)`},children:[(0,P.jsxs)(`p`,{style:{margin:`0 0 4px`,fontSize:`0.68rem`,color:`var(--text-secondary)`},children:[(0,P.jsx)(`strong`,{style:{color:`var(--text-primary)`},children:`Purpose:`}),` Use Antigravity IDE & GitHub Copilot with ANY provider/model from the proxy`]}),(0,P.jsxs)(`p`,{style:{margin:0,fontSize:`0.68rem`,color:`var(--text-secondary)`},children:[(0,P.jsx)(`strong`,{style:{color:`var(--text-primary)`},children:`How it works:`}),` IDE request → DNS redirect to localhost:443 → MITM intercepts → Proxy routes → response to IDE`]})]}),(0,P.jsxs)(`div`,{style:{display:`flex`,gap:`var(--space-2)`,flexWrap:`wrap`,alignItems:`center`},children:[t?(0,P.jsx)(`button`,{className:`button-danger`,onClick:async()=>{i(!0),o(null);try{let e=await fetch(`/api/cli-tools/mitm-stop`,{method:`POST`});e.ok?await n():o((await e.json().catch(()=>({}))).error||`Failed to stop MITM server`)}catch(e){o(e.message||`Network error`)}finally{i(!1)}},disabled:r,style:{minHeight:36},children:r?`Stopping...`:`Stop Server`}):(0,P.jsx)(`button`,{className:`button-primary`,onClick:async()=>{i(!0),o(null);try{let e=await fetch(`/api/cli-tools/mitm-start`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})});e.ok?await n():o((await e.json().catch(()=>({}))).error||`Failed to start MITM server`)}catch(e){o(e.message||`Network error`)}finally{i(!1)}},disabled:r,style:{minHeight:36},children:r?`Starting...`:`Start Server`}),(0,P.jsx)(`button`,{className:`button-link`,onClick:n,style:{minHeight:36},children:`Refresh Status`}),t&&(0,P.jsx)(`span`,{style:{fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:`Enable DNS per tool below to activate interception`})]}),a&&(0,P.jsx)(`div`,{style:{padding:`var(--space-2) var(--space-3)`,background:`var(--danger-soft)`,borderRadius:`var(--radius-sm)`,fontSize:`var(--text-xs)`,color:`var(--danger)`},children:a})]})})}function eg({tool:e,isExpanded:t,onToggle:n,serverRunning:r,dnsActive:i}){let[a,o]=(0,v.useState)(!1);return(0,P.jsxs)(`section`,{className:`surface-card`,style:{padding:0,overflow:`hidden`},children:[(0,P.jsxs)(`div`,{onClick:n,style:{display:`flex`,alignItems:`center`,gap:`var(--space-3)`,padding:`var(--space-3) var(--space-4)`,cursor:`pointer`},children:[(0,P.jsx)(`div`,{style:{width:32,height:32,borderRadius:8,flexShrink:0,background:`${e.color}18`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,P.jsx)(`span`,{style:{fontSize:14,fontWeight:700,color:e.color},children:e.name.charAt(0)})}),(0,P.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`var(--space-2)`},children:[(0,P.jsx)(`h3`,{style:{margin:0,fontSize:`var(--text-sm)`,fontWeight:600},children:e.name}),i&&(0,P.jsx)(B,{status:`success`,children:`Intercepting`})]}),(0,P.jsx)(`p`,{style:{margin:`2px 0 0`,fontSize:`var(--text-xs)`,color:`var(--text-muted)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.mitmDomain})]}),(0,P.jsx)(`span`,{style:{color:`var(--text-muted)`,transition:`transform var(--animation-normal)`,transform:t?`rotate(180deg)`:`none`},children:`▾`})]}),t&&(0,P.jsxs)(`div`,{style:{borderTop:`1px solid var(--line)`,padding:`var(--space-4)`,display:`grid`,gap:`var(--space-3)`},children:[(0,P.jsx)(`p`,{style:{margin:0,fontSize:`var(--text-xs)`,color:`var(--text-secondary)`},children:e.description}),(0,P.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`var(--space-2) var(--space-3)`,background:`var(--surface-muted)`,borderRadius:`var(--radius-sm)`,border:`1px solid var(--line)`},children:[(0,P.jsx)(`span`,{style:{fontSize:`var(--text-xs)`,fontWeight:600},children:`DNS Interception`}),(0,P.jsx)(`button`,{onClick:async()=>{o(!0);try{await fetch(`/api/cli-tools/mitm-dns`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({toolId:e.id,enable:!i})})}catch{}finally{o(!1)}},disabled:!r||a,style:{position:`relative`,display:`inline-flex`,width:36,height:20,borderRadius:`var(--radius-pill)`,border:`none`,background:i?`var(--success)`:`var(--neutral-soft)`,cursor:r?`pointer`:`not-allowed`,opacity:r?1:.5,padding:0,transition:`background var(--animation-normal)`},title:r?i?`Disable DNS interception`:`Enable DNS interception`:`Start MITM server first`,children:(0,P.jsx)(`span`,{style:{position:`absolute`,top:2,left:i?18:2,width:16,height:16,borderRadius:`50%`,background:`#fff`,boxShadow:`0 2px 4px rgba(0,0,0,0.2)`,transition:`left var(--animation-normal)`}})})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{style:{fontSize:`var(--text-xs)`,fontWeight:600,color:`var(--text-muted)`,display:`block`,marginBottom:`var(--space-2)`},children:`Available Models`}),(0,P.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:4},children:e.models.map(e=>(0,P.jsx)(`code`,{className:`metadata-pill`,style:{fontSize:`0.6rem`,padding:`2px 6px`,minHeight:`auto`},children:e.name},e.id))})]}),(0,P.jsxs)(`div`,{style:{fontSize:`var(--text-xs)`,color:`var(--text-muted)`},children:[(0,P.jsx)(`strong`,{children:`Target domain:`}),` `,(0,P.jsx)(`code`,{style:{fontSize:`0.65rem`},children:e.mitmDomain})]})]})]})}function tg({label:e,ok:t}){return(0,P.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:3},children:[(0,P.jsx)(`span`,{style:{color:t?`var(--success)`:`var(--text-muted)`,fontSize:`0.7rem`},children:t?`✓`:`✗`}),e]})}var ng=`responses-proxy-theme`,rg=`endpoint`,ig=[...pt,...mt],ag=new Set(ig.map(e=>e.route));Object.keys(ft).forEach(e=>{let t=ht(e);t&&ag.add(t)});function og(e){try{return decodeURIComponent(e)}catch{return e}}function sg(){let e=window.location.hash.replace(/^#\/?/,``).trim().split(`/`).filter(Boolean),t=e[0];if(!t)return{route:rg,baseRoute:rg,params:{},isUnknown:!1};let n=ht(t);if(n&&(t=n),!ag.has(t))return{route:rg,baseRoute:rg,params:{},isUnknown:!0};let r=t,i=e[1]?og(e[1]):``;return r===`providers`?i===`new`?{route:`provider-new`,baseRoute:r,params:{},isUnknown:e.length>2}:{route:i?`provider-detail`:`providers`,baseRoute:r,params:i?{providerId:i}:{},isUnknown:e.length>2}:r===`clients`?{route:i?`client-detail`:`clients`,baseRoute:r,params:i?{clientKey:i}:{},isUnknown:e.length>2}:r===`oauth`?{route:i?`account-detail`:`oauth`,baseRoute:r,params:i?{accountId:i}:{},isUnknown:e.length>2}:r===`kiro`?{route:i?`account-detail`:`oauth`,baseRoute:`oauth`,params:i?{accountId:i}:{},isUnknown:e.length>2}:{route:r,baseRoute:r,params:{},isUnknown:e.length>1}}function cg(){try{let e=window.localStorage.getItem(ng);if(e===`light`||e===`dark`)return e}catch{}return`light`}function lg(e){if(e.isUnknown)return(0,P.jsx)(At,{title:`Route not found`,description:`This dashboard uses the current React route map. Return to Endpoint to continue.`,actionHref:`#/endpoint`,actionLabel:`Go to Endpoint`});switch(e.route){case`endpoint`:return(0,P.jsx)(fm,{});case`combos`:return(0,P.jsx)(Sn,{});case`quota-tracker`:return(0,P.jsx)(Yh,{});case`mitm`:return(0,P.jsx)(Qh,{});case`cli-tools`:return(0,P.jsx)(On,{});case`media-providers`:return(0,P.jsx)(Mm,{});case`proxy-pools`:return(0,P.jsx)(Nm,{});case`skills`:return(0,P.jsx)(Vh,{});case`console-log`:return(0,P.jsx)(on,{});case`settings`:return(0,P.jsx)(rn,{});case`providers`:return(0,P.jsx)(jm,{});case`provider-new`:return(0,P.jsx)(Eh,{});case`provider-detail`:return(0,P.jsx)(Sh,{providerId:e.params.providerId});case`clients`:return(0,P.jsx)(vn,{});case`client-detail`:return(0,P.jsx)(vn,{clientKey:e.params.clientKey});case`oauth`:return(0,P.jsx)(Qt,{initialTab:window.location.hash.includes(`/kiro`)?`kiro`:`oauth`});case`account-detail`:return(0,P.jsx)(Qt,{accountId:e.params.accountId});case`auth-management`:return(0,P.jsx)(rn,{});case`config-helper`:return(0,P.jsx)(Rn,{});case`usage`:return(0,P.jsx)(Gh,{});case`rtk`:return(0,P.jsx)(Vh,{});case`cache`:return(0,P.jsx)(an,{});case`dashboard`:return(0,P.jsx)(Rp,{});default:return(0,P.jsx)(fm,{})}}function ug(){let[e,t]=(0,v.useState)(sg),[n,r]=(0,v.useState)(cg),[i,a]=(0,v.useState)({status:`loading`});(0,v.useEffect)(()=>{document.documentElement.dataset.theme=n,document.documentElement.style.colorScheme=n;try{window.localStorage.setItem(ng,n)}catch{}},[n]),(0,v.useEffect)(()=>{let e=!1;return S().then(t=>{e||a(t.authenticated&&t.session?{status:`authenticated`,session:t.session}:{status:`anonymous`})}).catch(()=>{e||a({status:`anonymous`})}),()=>{e=!0}},[]),(0,v.useEffect)(()=>{window.location.hash||window.history.replaceState(null,``,`#/endpoint`);let e=()=>t(sg());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let o=(0,v.useCallback)(()=>{r(e=>e===`dark`?`light`:`dark`)},[]),s=(0,v.useCallback)(async()=>{await T().catch(()=>void 0),a({status:`anonymous`})},[]),c=(0,v.useCallback)(e=>{window.location.hash=`#/${e}`},[]),l=(0,v.useMemo)(()=>lg(e),[e]);return i.status===`loading`?(0,P.jsx)(`div`,{className:`app-page`,children:(0,P.jsx)(`main`,{className:`app-panel`,children:(0,P.jsx)(jt,{title:`Checking dashboard login`,description:`Validating your admin session.`,cards:3})})}):i.status===`anonymous`?(0,P.jsx)(pm,{onAuthenticated:e=>a({status:`authenticated`,session:e})}):(0,P.jsx)(Pt,{children:(0,P.jsx)(kt,{currentRoute:e.baseRoute,theme:n,session:i.session,onToggleTheme:o,onLogout:s,onNavigate:c,children:l})})}(0,y.createRoot)(document.getElementById(`root`)).render((0,P.jsx)(v.StrictMode,{children:(0,P.jsx)(ug,{})}));