ima2-gen 2.0.4 → 2.0.5

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 (34) hide show
  1. package/README.md +6 -2
  2. package/bin/commands/video.js +26 -11
  3. package/docs/API.md +91 -5
  4. package/docs/CLI.md +8 -7
  5. package/docs/README.ja.md +86 -8
  6. package/docs/README.ko.md +31 -16
  7. package/docs/README.zh-CN.md +84 -9
  8. package/docs/migration/runtime-test-inventory.md +4 -1
  9. package/lib/agentGenerationPlanner.js +2 -2
  10. package/lib/agentImageVideoGen.js +19 -2
  11. package/lib/agentPlannerModel.js +1 -1
  12. package/lib/agentToolManifest.js +2 -2
  13. package/lib/capabilities.js +4 -2
  14. package/lib/grokVideoAdapter.js +22 -11
  15. package/lib/grokVideoCanvas.js +1 -1
  16. package/lib/imageModels.js +31 -4
  17. package/package.json +2 -1
  18. package/routes/video.js +6 -1
  19. package/skills/ima2/SKILL.md +6 -6
  20. package/ui/dist/.vite/manifest.json +12 -12
  21. package/ui/dist/assets/{AgentWorkspace-CMP9XZrL.js → AgentWorkspace-CKjpho46.js} +1 -1
  22. package/ui/dist/assets/{CardNewsWorkspace-DtOwgYzf.js → CardNewsWorkspace-BW52bztP.js} +1 -1
  23. package/ui/dist/assets/{GenerationRequestLogPanel-CB1i5dWd.js → GenerationRequestLogPanel-BPc4gDcY.js} +1 -1
  24. package/ui/dist/assets/{NodeCanvas-DwX2jRHf.js → NodeCanvas-d7dH6h99.js} +1 -1
  25. package/ui/dist/assets/{PromptBuilderPanel-B3VhUc5u.js → PromptBuilderPanel-CWbdfzpF.js} +1 -1
  26. package/ui/dist/assets/{PromptImportDialog-4FQd2YVS.js → PromptImportDialog-DORdifOt.js} +2 -2
  27. package/ui/dist/assets/{PromptImportDiscoverySection-CTNr6ft3.js → PromptImportDiscoverySection-XA3ZzwAo.js} +1 -1
  28. package/ui/dist/assets/{PromptImportFolderSection-zCJ1lBH8.js → PromptImportFolderSection-BjALahD0.js} +1 -1
  29. package/ui/dist/assets/{PromptLibraryPanel-B784T1KR.js → PromptLibraryPanel-Co9xIawD.js} +2 -2
  30. package/ui/dist/assets/{SettingsWorkspace-BpM6lWH-.js → SettingsWorkspace-BS_gSTTl.js} +1 -1
  31. package/ui/dist/assets/index-TRRNueAb.js +23 -0
  32. package/ui/dist/assets/{index-CwAzer33.js → index-bMxZBOnc.js} +1 -1
  33. package/ui/dist/index.html +1 -1
  34. package/ui/dist/assets/index-BzjrmmIG.js +0 -23
@@ -0,0 +1,23 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCanvas-d7dH6h99.js","assets/NodeCanvas-BZV40eAE.css"])))=>i.map(i=>d[i]);
2
+ (function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))o(c);new MutationObserver(c=>{for(const f of c)if(f.type==="childList")for(const p of f.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&o(p)}).observe(document,{childList:!0,subtree:!0});function l(c){const f={};return c.integrity&&(f.integrity=c.integrity),c.referrerPolicy&&(f.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?f.credentials="include":c.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function o(c){if(c.ep)return;c.ep=!0;const f=l(c);fetch(c.href,f)}})();function SS(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var bu={exports:{}},Ci={};var mh;function xS(){if(mh)return Ci;mh=1;var a=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function l(o,c,f){var p=null;if(f!==void 0&&(p=""+f),c.key!==void 0&&(p=""+c.key),"key"in c){f={};for(var m in c)m!=="key"&&(f[m]=c[m])}else f=c;return c=f.ref,{$$typeof:a,type:o,key:p,ref:c!==void 0?c:null,props:f}}return Ci.Fragment=r,Ci.jsx=l,Ci.jsxs=l,Ci}var ph;function _S(){return ph||(ph=1,bu.exports=xS()),bu.exports}var d=_S(),Su={exports:{}},pe={};var hh;function TS(){if(hh)return pe;hh=1;var a=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),p=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),v=Symbol.iterator;function _(w){return w===null||typeof w!="object"?null:(w=v&&w[v]||w["@@iterator"],typeof w=="function"?w:null)}var T={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,R={};function C(w,k,Q){this.props=w,this.context=k,this.refs=R,this.updater=Q||T}C.prototype.isReactComponent={},C.prototype.setState=function(w,k){if(typeof w!="object"&&typeof w!="function"&&w!=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,w,k,"setState")},C.prototype.forceUpdate=function(w){this.updater.enqueueForceUpdate(this,w,"forceUpdate")};function A(){}A.prototype=C.prototype;function K(w,k,Q){this.props=w,this.context=k,this.refs=R,this.updater=Q||T}var V=K.prototype=new A;V.constructor=K,j(V,C.prototype),V.isPureReactComponent=!0;var te=Array.isArray;function ee(){}var I={H:null,A:null,T:null,S:null},le=Object.prototype.hasOwnProperty;function Ce(w,k,Q){var ne=Q.ref;return{$$typeof:a,type:w,key:k,ref:ne!==void 0?ne:null,props:Q}}function Be(w,k){return Ce(w.type,k,w.props)}function De(w){return typeof w=="object"&&w!==null&&w.$$typeof===a}function we(w){var k={"=":"=0",":":"=2"};return"$"+w.replace(/[=:]/g,function(Q){return k[Q]})}var Ie=/\/+/g;function W(w,k){return typeof w=="object"&&w!==null&&w.key!=null?we(""+w.key):k.toString(36)}function G(w){switch(w.status){case"fulfilled":return w.value;case"rejected":throw w.reason;default:switch(typeof w.status=="string"?w.then(ee,ee):(w.status="pending",w.then(function(k){w.status==="pending"&&(w.status="fulfilled",w.value=k)},function(k){w.status==="pending"&&(w.status="rejected",w.reason=k)})),w.status){case"fulfilled":return w.value;case"rejected":throw w.reason}}throw w}function L(w,k,Q,ne,ce){var de=typeof w;(de==="undefined"||de==="boolean")&&(w=null);var he=!1;if(w===null)he=!0;else switch(de){case"bigint":case"string":case"number":he=!0;break;case"object":switch(w.$$typeof){case a:case r:he=!0;break;case x:return he=w._init,L(he(w._payload),k,Q,ne,ce)}}if(he)return ce=ce(w),he=ne===""?"."+W(w,0):ne,te(ce)?(Q="",he!=null&&(Q=he.replace(Ie,"$&/")+"/"),L(ce,k,Q,"",function(Xe){return Xe})):ce!=null&&(De(ce)&&(ce=Be(ce,Q+(ce.key==null||w&&w.key===ce.key?"":(""+ce.key).replace(Ie,"$&/")+"/")+he)),k.push(ce)),1;he=0;var je=ne===""?".":ne+":";if(te(w))for(var $=0;$<w.length;$++)ne=w[$],de=je+W(ne,$),he+=L(ne,k,Q,de,ce);else if($=_(w),typeof $=="function")for(w=$.call(w),$=0;!(ne=w.next()).done;)ne=ne.value,de=je+W(ne,$++),he+=L(ne,k,Q,de,ce);else if(de==="object"){if(typeof w.then=="function")return L(G(w),k,Q,ne,ce);throw k=String(w),Error("Objects are not valid as a React child (found: "+(k==="[object Object]"?"object with keys {"+Object.keys(w).join(", ")+"}":k)+"). If you meant to render a collection of children, use an array instead.")}return he}function D(w,k,Q){if(w==null)return w;var ne=[],ce=0;return L(w,ne,"","",function(de){return k.call(Q,de,ce++)}),ne}function J(w){if(w._status===-1){var k=w._result;k=k(),k.then(function(Q){(w._status===0||w._status===-1)&&(w._status=1,w._result=Q)},function(Q){(w._status===0||w._status===-1)&&(w._status=2,w._result=Q)}),w._status===-1&&(w._status=0,w._result=k)}if(w._status===1)return w._result.default;throw w._result}var se=typeof reportError=="function"?reportError:function(w){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var k=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof w=="object"&&w!==null&&typeof w.message=="string"?String(w.message):String(w),error:w});if(!window.dispatchEvent(k))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",w);return}console.error(w)},me={map:D,forEach:function(w,k,Q){D(w,function(){k.apply(this,arguments)},Q)},count:function(w){var k=0;return D(w,function(){k++}),k},toArray:function(w){return D(w,function(k){return k})||[]},only:function(w){if(!De(w))throw Error("React.Children.only expected to receive a single React element child.");return w}};return pe.Activity=b,pe.Children=me,pe.Component=C,pe.Fragment=l,pe.Profiler=c,pe.PureComponent=K,pe.StrictMode=o,pe.Suspense=y,pe.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=I,pe.__COMPILER_RUNTIME={__proto__:null,c:function(w){return I.H.useMemoCache(w)}},pe.cache=function(w){return function(){return w.apply(null,arguments)}},pe.cacheSignal=function(){return null},pe.cloneElement=function(w,k,Q){if(w==null)throw Error("The argument must be a React element, but you passed "+w+".");var ne=j({},w.props),ce=w.key;if(k!=null)for(de in k.key!==void 0&&(ce=""+k.key),k)!le.call(k,de)||de==="key"||de==="__self"||de==="__source"||de==="ref"&&k.ref===void 0||(ne[de]=k[de]);var de=arguments.length-2;if(de===1)ne.children=Q;else if(1<de){for(var he=Array(de),je=0;je<de;je++)he[je]=arguments[je+2];ne.children=he}return Ce(w.type,ce,ne)},pe.createContext=function(w){return w={$$typeof:p,_currentValue:w,_currentValue2:w,_threadCount:0,Provider:null,Consumer:null},w.Provider=w,w.Consumer={$$typeof:f,_context:w},w},pe.createElement=function(w,k,Q){var ne,ce={},de=null;if(k!=null)for(ne in k.key!==void 0&&(de=""+k.key),k)le.call(k,ne)&&ne!=="key"&&ne!=="__self"&&ne!=="__source"&&(ce[ne]=k[ne]);var he=arguments.length-2;if(he===1)ce.children=Q;else if(1<he){for(var je=Array(he),$=0;$<he;$++)je[$]=arguments[$+2];ce.children=je}if(w&&w.defaultProps)for(ne in he=w.defaultProps,he)ce[ne]===void 0&&(ce[ne]=he[ne]);return Ce(w,de,ce)},pe.createRef=function(){return{current:null}},pe.forwardRef=function(w){return{$$typeof:m,render:w}},pe.isValidElement=De,pe.lazy=function(w){return{$$typeof:x,_payload:{_status:-1,_result:w},_init:J}},pe.memo=function(w,k){return{$$typeof:h,type:w,compare:k===void 0?null:k}},pe.startTransition=function(w){var k=I.T,Q={};I.T=Q;try{var ne=w(),ce=I.S;ce!==null&&ce(Q,ne),typeof ne=="object"&&ne!==null&&typeof ne.then=="function"&&ne.then(ee,se)}catch(de){se(de)}finally{k!==null&&Q.types!==null&&(k.types=Q.types),I.T=k}},pe.unstable_useCacheRefresh=function(){return I.H.useCacheRefresh()},pe.use=function(w){return I.H.use(w)},pe.useActionState=function(w,k,Q){return I.H.useActionState(w,k,Q)},pe.useCallback=function(w,k){return I.H.useCallback(w,k)},pe.useContext=function(w){return I.H.useContext(w)},pe.useDebugValue=function(){},pe.useDeferredValue=function(w,k){return I.H.useDeferredValue(w,k)},pe.useEffect=function(w,k){return I.H.useEffect(w,k)},pe.useEffectEvent=function(w){return I.H.useEffectEvent(w)},pe.useId=function(){return I.H.useId()},pe.useImperativeHandle=function(w,k,Q){return I.H.useImperativeHandle(w,k,Q)},pe.useInsertionEffect=function(w,k){return I.H.useInsertionEffect(w,k)},pe.useLayoutEffect=function(w,k){return I.H.useLayoutEffect(w,k)},pe.useMemo=function(w,k){return I.H.useMemo(w,k)},pe.useOptimistic=function(w,k){return I.H.useOptimistic(w,k)},pe.useReducer=function(w,k,Q){return I.H.useReducer(w,k,Q)},pe.useRef=function(w){return I.H.useRef(w)},pe.useState=function(w){return I.H.useState(w)},pe.useSyncExternalStore=function(w,k,Q){return I.H.useSyncExternalStore(w,k,Q)},pe.useTransition=function(){return I.H.useTransition()},pe.version="19.2.5",pe}var gh;function Ku(){return gh||(gh=1,Su.exports=TS()),Su.exports}var z=Ku();const br=SS(z);var xu={exports:{}},wi={},_u={exports:{}},Tu={};var yh;function NS(){return yh||(yh=1,(function(a){function r(L,D){var J=L.length;L.push(D);e:for(;0<J;){var se=J-1>>>1,me=L[se];if(0<c(me,D))L[se]=D,L[J]=me,J=se;else break e}}function l(L){return L.length===0?null:L[0]}function o(L){if(L.length===0)return null;var D=L[0],J=L.pop();if(J!==D){L[0]=J;e:for(var se=0,me=L.length,w=me>>>1;se<w;){var k=2*(se+1)-1,Q=L[k],ne=k+1,ce=L[ne];if(0>c(Q,J))ne<me&&0>c(ce,Q)?(L[se]=ce,L[ne]=J,se=ne):(L[se]=Q,L[k]=J,se=k);else if(ne<me&&0>c(ce,J))L[se]=ce,L[ne]=J,se=ne;else break e}}return D}function c(L,D){var J=L.sortIndex-D.sortIndex;return J!==0?J:L.id-D.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;a.unstable_now=function(){return f.now()}}else{var p=Date,m=p.now();a.unstable_now=function(){return p.now()-m}}var y=[],h=[],x=1,b=null,v=3,_=!1,T=!1,j=!1,R=!1,C=typeof setTimeout=="function"?setTimeout:null,A=typeof clearTimeout=="function"?clearTimeout:null,K=typeof setImmediate<"u"?setImmediate:null;function V(L){for(var D=l(h);D!==null;){if(D.callback===null)o(h);else if(D.startTime<=L)o(h),D.sortIndex=D.expirationTime,r(y,D);else break;D=l(h)}}function te(L){if(j=!1,V(L),!T)if(l(y)!==null)T=!0,ee||(ee=!0,we());else{var D=l(h);D!==null&&G(te,D.startTime-L)}}var ee=!1,I=-1,le=5,Ce=-1;function Be(){return R?!0:!(a.unstable_now()-Ce<le)}function De(){if(R=!1,ee){var L=a.unstable_now();Ce=L;var D=!0;try{e:{T=!1,j&&(j=!1,A(I),I=-1),_=!0;var J=v;try{t:{for(V(L),b=l(y);b!==null&&!(b.expirationTime>L&&Be());){var se=b.callback;if(typeof se=="function"){b.callback=null,v=b.priorityLevel;var me=se(b.expirationTime<=L);if(L=a.unstable_now(),typeof me=="function"){b.callback=me,V(L),D=!0;break t}b===l(y)&&o(y),V(L)}else o(y);b=l(y)}if(b!==null)D=!0;else{var w=l(h);w!==null&&G(te,w.startTime-L),D=!1}}break e}finally{b=null,v=J,_=!1}D=void 0}}finally{D?we():ee=!1}}}var we;if(typeof K=="function")we=function(){K(De)};else if(typeof MessageChannel<"u"){var Ie=new MessageChannel,W=Ie.port2;Ie.port1.onmessage=De,we=function(){W.postMessage(null)}}else we=function(){C(De,0)};function G(L,D){I=C(function(){L(a.unstable_now())},D)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(L){L.callback=null},a.unstable_forceFrameRate=function(L){0>L||125<L?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):le=0<L?Math.floor(1e3/L):5},a.unstable_getCurrentPriorityLevel=function(){return v},a.unstable_next=function(L){switch(v){case 1:case 2:case 3:var D=3;break;default:D=v}var J=v;v=D;try{return L()}finally{v=J}},a.unstable_requestPaint=function(){R=!0},a.unstable_runWithPriority=function(L,D){switch(L){case 1:case 2:case 3:case 4:case 5:break;default:L=3}var J=v;v=L;try{return D()}finally{v=J}},a.unstable_scheduleCallback=function(L,D,J){var se=a.unstable_now();switch(typeof J=="object"&&J!==null?(J=J.delay,J=typeof J=="number"&&0<J?se+J:se):J=se,L){case 1:var me=-1;break;case 2:me=250;break;case 5:me=1073741823;break;case 4:me=1e4;break;default:me=5e3}return me=J+me,L={id:x++,callback:D,priorityLevel:L,startTime:J,expirationTime:me,sortIndex:-1},J>se?(L.sortIndex=J,r(h,L),l(y)===null&&L===l(h)&&(j?(A(I),I=-1):j=!0,G(te,J-se))):(L.sortIndex=me,r(y,L),T||_||(T=!0,ee||(ee=!0,we()))),L},a.unstable_shouldYield=Be,a.unstable_wrapCallback=function(L){var D=v;return function(){var J=v;v=D;try{return L.apply(this,arguments)}finally{v=J}}}})(Tu)),Tu}var vh;function AS(){return vh||(vh=1,_u.exports=NS()),_u.exports}var Nu={exports:{}},gt={};var bh;function ES(){if(bh)return gt;bh=1;var a=Ku();function r(y){var h="https://react.dev/errors/"+y;if(1<arguments.length){h+="?args[]="+encodeURIComponent(arguments[1]);for(var x=2;x<arguments.length;x++)h+="&args[]="+encodeURIComponent(arguments[x])}return"Minified React error #"+y+"; visit "+h+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(){}var o={d:{f:l,r:function(){throw Error(r(522))},D:l,C:l,L:l,m:l,X:l,S:l,M:l},p:0,findDOMNode:null},c=Symbol.for("react.portal");function f(y,h,x){var b=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:c,key:b==null?null:""+b,children:y,containerInfo:h,implementation:x}}var p=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function m(y,h){if(y==="font")return"";if(typeof h=="string")return h==="use-credentials"?h:""}return gt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=o,gt.createPortal=function(y,h){var x=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!h||h.nodeType!==1&&h.nodeType!==9&&h.nodeType!==11)throw Error(r(299));return f(y,h,null,x)},gt.flushSync=function(y){var h=p.T,x=o.p;try{if(p.T=null,o.p=2,y)return y()}finally{p.T=h,o.p=x,o.d.f()}},gt.preconnect=function(y,h){typeof y=="string"&&(h?(h=h.crossOrigin,h=typeof h=="string"?h==="use-credentials"?h:"":void 0):h=null,o.d.C(y,h))},gt.prefetchDNS=function(y){typeof y=="string"&&o.d.D(y)},gt.preinit=function(y,h){if(typeof y=="string"&&h&&typeof h.as=="string"){var x=h.as,b=m(x,h.crossOrigin),v=typeof h.integrity=="string"?h.integrity:void 0,_=typeof h.fetchPriority=="string"?h.fetchPriority:void 0;x==="style"?o.d.S(y,typeof h.precedence=="string"?h.precedence:void 0,{crossOrigin:b,integrity:v,fetchPriority:_}):x==="script"&&o.d.X(y,{crossOrigin:b,integrity:v,fetchPriority:_,nonce:typeof h.nonce=="string"?h.nonce:void 0})}},gt.preinitModule=function(y,h){if(typeof y=="string")if(typeof h=="object"&&h!==null){if(h.as==null||h.as==="script"){var x=m(h.as,h.crossOrigin);o.d.M(y,{crossOrigin:x,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0})}}else h==null&&o.d.M(y)},gt.preload=function(y,h){if(typeof y=="string"&&typeof h=="object"&&h!==null&&typeof h.as=="string"){var x=h.as,b=m(x,h.crossOrigin);o.d.L(y,x,{crossOrigin:b,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0,type:typeof h.type=="string"?h.type:void 0,fetchPriority:typeof h.fetchPriority=="string"?h.fetchPriority:void 0,referrerPolicy:typeof h.referrerPolicy=="string"?h.referrerPolicy:void 0,imageSrcSet:typeof h.imageSrcSet=="string"?h.imageSrcSet:void 0,imageSizes:typeof h.imageSizes=="string"?h.imageSizes:void 0,media:typeof h.media=="string"?h.media:void 0})}},gt.preloadModule=function(y,h){if(typeof y=="string")if(h){var x=m(h.as,h.crossOrigin);o.d.m(y,{as:typeof h.as=="string"&&h.as!=="script"?h.as:void 0,crossOrigin:x,integrity:typeof h.integrity=="string"?h.integrity:void 0})}else o.d.m(y)},gt.requestFormReset=function(y){o.d.r(y)},gt.unstable_batchedUpdates=function(y,h){return y(h)},gt.useFormState=function(y,h,x){return p.H.useFormState(y,h,x)},gt.useFormStatus=function(){return p.H.useHostTransitionStatus()},gt.version="19.2.5",gt}var Sh;function vg(){if(Sh)return Nu.exports;Sh=1;function a(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(r){console.error(r)}}return a(),Nu.exports=ES(),Nu.exports}var xh;function CS(){if(xh)return wi;xh=1;var a=AS(),r=Ku(),l=vg();function o(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 c(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function f(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function p(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 m(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 y(e){if(f(e)!==e)throw Error(o(188))}function h(e){var t=e.alternate;if(!t){if(t=f(e),t===null)throw Error(o(188));return t!==e?null:e}for(var n=e,i=t;;){var s=n.return;if(s===null)break;var u=s.alternate;if(u===null){if(i=s.return,i!==null){n=i;continue}break}if(s.child===u.child){for(u=s.child;u;){if(u===n)return y(s),e;if(u===i)return y(s),t;u=u.sibling}throw Error(o(188))}if(n.return!==i.return)n=s,i=u;else{for(var g=!1,S=s.child;S;){if(S===n){g=!0,n=s,i=u;break}if(S===i){g=!0,i=s,n=u;break}S=S.sibling}if(!g){for(S=u.child;S;){if(S===n){g=!0,n=u,i=s;break}if(S===i){g=!0,i=u,n=s;break}S=S.sibling}if(!g)throw Error(o(189))}}if(n.alternate!==i)throw Error(o(190))}if(n.tag!==3)throw Error(o(188));return n.stateNode.current===n?e:t}function x(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=x(e),t!==null)return t;e=e.sibling}return null}var b=Object.assign,v=Symbol.for("react.element"),_=Symbol.for("react.transitional.element"),T=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),R=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),A=Symbol.for("react.consumer"),K=Symbol.for("react.context"),V=Symbol.for("react.forward_ref"),te=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),I=Symbol.for("react.memo"),le=Symbol.for("react.lazy"),Ce=Symbol.for("react.activity"),Be=Symbol.for("react.memo_cache_sentinel"),De=Symbol.iterator;function we(e){return e===null||typeof e!="object"?null:(e=De&&e[De]||e["@@iterator"],typeof e=="function"?e:null)}var Ie=Symbol.for("react.client.reference");function W(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Ie?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case C:return"Profiler";case R:return"StrictMode";case te:return"Suspense";case ee:return"SuspenseList";case Ce:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case T:return"Portal";case K:return e.displayName||"Context";case A:return(e._context.displayName||"Context")+".Consumer";case V:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case I:return t=e.displayName||null,t!==null?t:W(e.type)||"Memo";case le:t=e._payload,e=e._init;try{return W(e(t))}catch{}}return null}var G=Array.isArray,L=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D=l.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J={pending:!1,data:null,method:null,action:null},se=[],me=-1;function w(e){return{current:e}}function k(e){0>me||(e.current=se[me],se[me]=null,me--)}function Q(e,t){me++,se[me]=e.current,e.current=t}var ne=w(null),ce=w(null),de=w(null),he=w(null);function je(e,t){switch(Q(de,t),Q(ce,e),Q(ne,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Lp(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Lp(t),e=Dp(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}k(ne),Q(ne,e)}function $(){k(ne),k(ce),k(de)}function Xe(e){e.memoizedState!==null&&Q(he,e);var t=ne.current,n=Dp(t,e.type);t!==n&&(Q(ce,e),Q(ne,n))}function lt(e){ce.current===e&&(k(ne),k(ce)),he.current===e&&(k(he),Ti._currentValue=J)}var ia,ya;function B(e){if(ia===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);ia=t&&t[1]||"",ya=-1<n.stack.indexOf(`
3
+ at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`
4
+ `+ia+e+ya}var xe=!1;function He(e,t){if(!e||xe)return"";xe=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var i={DetermineComponentFrameRoot:function(){try{if(t){var X=function(){throw Error()};if(Object.defineProperty(X.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(X,[])}catch(H){var U=H}Reflect.construct(e,[],X)}else{try{X.call()}catch(H){U=H}e.call(X.prototype)}}else{try{throw Error()}catch(H){U=H}(X=e())&&typeof X.catch=="function"&&X.catch(function(){})}}catch(H){if(H&&U&&typeof H.stack=="string")return[H.stack,U.stack]}return[null,null]}};i.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var s=Object.getOwnPropertyDescriptor(i.DetermineComponentFrameRoot,"name");s&&s.configurable&&Object.defineProperty(i.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var u=i.DetermineComponentFrameRoot(),g=u[0],S=u[1];if(g&&S){var E=g.split(`
5
+ `),P=S.split(`
6
+ `);for(s=i=0;i<E.length&&!E[i].includes("DetermineComponentFrameRoot");)i++;for(;s<P.length&&!P[s].includes("DetermineComponentFrameRoot");)s++;if(i===E.length||s===P.length)for(i=E.length-1,s=P.length-1;1<=i&&0<=s&&E[i]!==P[s];)s--;for(;1<=i&&0<=s;i--,s--)if(E[i]!==P[s]){if(i!==1||s!==1)do if(i--,s--,0>s||E[i]!==P[s]){var F=`
7
+ `+E[i].replace(" at new "," at ");return e.displayName&&F.includes("<anonymous>")&&(F=F.replace("<anonymous>",e.displayName)),F}while(1<=i&&0<=s);break}}}finally{xe=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?B(n):""}function ct(e,t){switch(e.tag){case 26:case 27:case 5:return B(e.type);case 16:return B("Lazy");case 13:return e.child!==t&&t!==null?B("Suspense Fallback"):B("Suspense");case 19:return B("SuspenseList");case 0:case 15:return He(e.type,!1);case 11:return He(e.type.render,!1);case 1:return He(e.type,!0);case 31:return B("Activity");default:return""}}function Jt(e){try{var t="",n=null;do t+=ct(e,n),n=e,e=e.return;while(e);return t}catch(i){return`
8
+ Error generating stack: `+i.message+`
9
+ `+i.stack}}var un=Object.prototype.hasOwnProperty,Z=a.unstable_scheduleCallback,ke=a.unstable_cancelCallback,wt=a.unstable_shouldYield,ie=a.unstable_requestPaint,Ke=a.unstable_now,qn=a.unstable_getCurrentPriorityLevel,qt=a.unstable_ImmediatePriority,pd=a.unstable_UserBlockingPriority,to=a.unstable_NormalPriority,tv=a.unstable_LowPriority,hd=a.unstable_IdlePriority,av=a.log,nv=a.unstable_setDisableYieldValue,zl=null,It=null;function La(e){if(typeof av=="function"&&nv(e),It&&typeof It.setStrictMode=="function")try{It.setStrictMode(zl,e)}catch{}}var Mt=Math.clz32?Math.clz32:ov,lv=Math.log,iv=Math.LN2;function ov(e){return e>>>=0,e===0?32:31-(lv(e)/iv|0)|0}var ao=256,no=262144,lo=4194304;function dn(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 io(e,t,n){var i=e.pendingLanes;if(i===0)return 0;var s=0,u=e.suspendedLanes,g=e.pingedLanes;e=e.warmLanes;var S=i&134217727;return S!==0?(i=S&~u,i!==0?s=dn(i):(g&=S,g!==0?s=dn(g):n||(n=S&~e,n!==0&&(s=dn(n))))):(S=i&~u,S!==0?s=dn(S):g!==0?s=dn(g):n||(n=i&~e,n!==0&&(s=dn(n)))),s===0?0:t!==0&&t!==s&&(t&u)===0&&(u=s&-s,n=t&-t,u>=n||u===32&&(n&4194048)!==0)?t:s}function Ll(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function rv(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 gd(){var e=lo;return lo<<=1,(lo&62914560)===0&&(lo=4194304),e}function rs(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Dl(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function sv(e,t,n,i,s,u){var g=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,E=e.expirationTimes,P=e.hiddenUpdates;for(n=g&~n;0<n;){var F=31-Mt(n),X=1<<F;S[F]=0,E[F]=-1;var U=P[F];if(U!==null)for(P[F]=null,F=0;F<U.length;F++){var H=U[F];H!==null&&(H.lane&=-536870913)}n&=~X}i!==0&&yd(e,i,0),u!==0&&s===0&&e.tag!==0&&(e.suspendedLanes|=u&~(g&~t))}function yd(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var i=31-Mt(t);e.entangledLanes|=t,e.entanglements[i]=e.entanglements[i]|1073741824|n&261930}function vd(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var i=31-Mt(n),s=1<<i;s&t|e[i]&t&&(e[i]|=t),n&=~s}}function bd(e,t){var n=t&-t;return n=(n&42)!==0?1:ss(n),(n&(e.suspendedLanes|t))!==0?0:n}function ss(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 cs(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Sd(){var e=D.p;return e!==0?e:(e=window.event,e===void 0?32:oh(e.type))}function xd(e,t){var n=D.p;try{return D.p=e,t()}finally{D.p=n}}var Da=Math.random().toString(36).slice(2),ut="__reactFiber$"+Da,xt="__reactProps$"+Da,Pn="__reactContainer$"+Da,us="__reactEvents$"+Da,cv="__reactListeners$"+Da,uv="__reactHandles$"+Da,_d="__reactResources$"+Da,Gl="__reactMarker$"+Da;function ds(e){delete e[ut],delete e[xt],delete e[us],delete e[cv],delete e[uv]}function Un(e){var t=e[ut];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Pn]||n[ut]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Fp(e);e!==null;){if(n=e[ut])return n;e=Fp(e)}return t}e=n,n=e.parentNode}return null}function Hn(e){if(e=e[ut]||e[Pn]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function ql(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(o(33))}function Bn(e){var t=e[_d];return t||(t=e[_d]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function ot(e){e[Gl]=!0}var Td=new Set,Nd={};function fn(e,t){Fn(e,t),Fn(e+"Capture",t)}function Fn(e,t){for(Nd[e]=t,e=0;e<t.length;e++)Td.add(t[e])}var dv=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]*$"),Ad={},Ed={};function fv(e){return un.call(Ed,e)?!0:un.call(Ad,e)?!1:dv.test(e)?Ed[e]=!0:(Ad[e]=!0,!1)}function oo(e,t,n){if(fv(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var i=t.toLowerCase().slice(0,5);if(i!=="data-"&&i!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function ro(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 va(e,t,n,i){if(i===null)e.removeAttribute(n);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+i)}}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 Cd(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function mv(e,t,n){var i=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof i<"u"&&typeof i.get=="function"&&typeof i.set=="function"){var s=i.get,u=i.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(g){n=""+g,u.call(this,g)}}),Object.defineProperty(e,t,{enumerable:i.enumerable}),{getValue:function(){return n},setValue:function(g){n=""+g},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fs(e){if(!e._valueTracker){var t=Cd(e)?"checked":"value";e._valueTracker=mv(e,t,""+e[t])}}function wd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=Cd(e)?e.checked?"true":"false":e.value),e=i,e!==n?(t.setValue(e),!0):!1}function so(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var pv=/[\n"\\]/g;function Ut(e){return e.replace(pv,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function ms(e,t,n,i,s,u,g,S){e.name="",g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"?e.type=g:e.removeAttribute("type"),t!=null?g==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Pt(t)):e.value!==""+Pt(t)&&(e.value=""+Pt(t)):g!=="submit"&&g!=="reset"||e.removeAttribute("value"),t!=null?ps(e,g,Pt(t)):n!=null?ps(e,g,Pt(n)):i!=null&&e.removeAttribute("value"),s==null&&u!=null&&(e.defaultChecked=!!u),s!=null&&(e.checked=s&&typeof s!="function"&&typeof s!="symbol"),S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"?e.name=""+Pt(S):e.removeAttribute("name")}function Id(e,t,n,i,s,u,g,S){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),t!=null||n!=null){if(!(u!=="submit"&&u!=="reset"||t!=null)){fs(e);return}n=n!=null?""+Pt(n):"",t=t!=null?""+Pt(t):n,S||t===e.value||(e.value=t),e.defaultValue=t}i=i??s,i=typeof i!="function"&&typeof i!="symbol"&&!!i,e.checked=S?e.checked:!!i,e.defaultChecked=!!i,g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"&&(e.name=g),fs(e)}function ps(e,t,n){t==="number"&&so(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Vn(e,t,n,i){if(e=e.options,t){t={};for(var s=0;s<n.length;s++)t["$"+n[s]]=!0;for(n=0;n<e.length;n++)s=t.hasOwnProperty("$"+e[n].value),e[n].selected!==s&&(e[n].selected=s),s&&i&&(e[n].defaultSelected=!0)}else{for(n=""+Pt(n),t=null,s=0;s<e.length;s++){if(e[s].value===n){e[s].selected=!0,i&&(e[s].defaultSelected=!0);return}t!==null||e[s].disabled||(t=e[s])}t!==null&&(t.selected=!0)}}function Md(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 Rd(e,t,n,i){if(t==null){if(i!=null){if(n!=null)throw Error(o(92));if(G(i)){if(1<i.length)throw Error(o(93));i=i[0]}n=i}n==null&&(n=""),t=n}n=Pt(t),e.defaultValue=n,i=e.textContent,i===n&&i!==""&&i!==null&&(e.value=i),fs(e)}function Kn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var hv=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 Od(e,t,n){var i=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?i?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":i?e.setProperty(t,n):typeof n!="number"||n===0||hv.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function jd(e,t,n){if(t!=null&&typeof t!="object")throw Error(o(62));if(e=e.style,n!=null){for(var i in n)!n.hasOwnProperty(i)||t!=null&&t.hasOwnProperty(i)||(i.indexOf("--")===0?e.setProperty(i,""):i==="float"?e.cssFloat="":e[i]="");for(var s in t)i=t[s],t.hasOwnProperty(s)&&n[s]!==i&&Od(e,s,i)}else for(var u in t)t.hasOwnProperty(u)&&Od(e,u,t[u])}function hs(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 gv=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"]]),yv=/^[\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 co(e){return yv.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function ba(){}var gs=null;function ys(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Yn=null,Xn=null;function kd(e){var t=Hn(e);if(t&&(e=t.stateNode)){var n=e[xt]||null;e:switch(e=t.stateNode,t.type){case"input":if(ms(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="'+Ut(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var i=n[t];if(i!==e&&i.form===e.form){var s=i[xt]||null;if(!s)throw Error(o(90));ms(i,s.value,s.defaultValue,s.defaultValue,s.checked,s.defaultChecked,s.type,s.name)}}for(t=0;t<n.length;t++)i=n[t],i.form===e.form&&wd(i)}break e;case"textarea":Md(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Vn(e,!!n.multiple,t,!1)}}}var vs=!1;function zd(e,t,n){if(vs)return e(t,n);vs=!0;try{var i=e(t);return i}finally{if(vs=!1,(Yn!==null||Xn!==null)&&($o(),Yn&&(t=Yn,e=Xn,Xn=Yn=null,kd(t),e)))for(t=0;t<e.length;t++)kd(e[t])}}function Pl(e,t){var n=e.stateNode;if(n===null)return null;var i=n[xt]||null;if(i===null)return null;n=i[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(e=e.type,i=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!i;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(o(231,t,typeof n));return n}var Sa=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bs=!1;if(Sa)try{var Ul={};Object.defineProperty(Ul,"passive",{get:function(){bs=!0}}),window.addEventListener("test",Ul,Ul),window.removeEventListener("test",Ul,Ul)}catch{bs=!1}var Ga=null,Ss=null,uo=null;function Ld(){if(uo)return uo;var e,t=Ss,n=t.length,i,s="value"in Ga?Ga.value:Ga.textContent,u=s.length;for(e=0;e<n&&t[e]===s[e];e++);var g=n-e;for(i=1;i<=g&&t[n-i]===s[u-i];i++);return uo=s.slice(e,1<i?1-i:void 0)}function fo(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 mo(){return!0}function Dd(){return!1}function _t(e){function t(n,i,s,u,g){this._reactName=n,this._targetInst=s,this.type=i,this.nativeEvent=u,this.target=g,this.currentTarget=null;for(var S in e)e.hasOwnProperty(S)&&(n=e[S],this[S]=n?n(u):u[S]);return this.isDefaultPrevented=(u.defaultPrevented!=null?u.defaultPrevented:u.returnValue===!1)?mo:Dd,this.isPropagationStopped=Dd,this}return b(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=mo)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=mo)},persist:function(){},isPersistent:mo}),t}var mn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},po=_t(mn),Hl=b({},mn,{view:0,detail:0}),vv=_t(Hl),xs,_s,Bl,ho=b({},Hl,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ns,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!==Bl&&(Bl&&e.type==="mousemove"?(xs=e.screenX-Bl.screenX,_s=e.screenY-Bl.screenY):_s=xs=0,Bl=e),xs)},movementY:function(e){return"movementY"in e?e.movementY:_s}}),Gd=_t(ho),bv=b({},ho,{dataTransfer:0}),Sv=_t(bv),xv=b({},Hl,{relatedTarget:0}),Ts=_t(xv),_v=b({},mn,{animationName:0,elapsedTime:0,pseudoElement:0}),Tv=_t(_v),Nv=b({},mn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Av=_t(Nv),Ev=b({},mn,{data:0}),qd=_t(Ev),Cv={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},wv={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"},Iv={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Mv(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Iv[e])?!!t[e]:!1}function Ns(){return Mv}var Rv=b({},Hl,{key:function(e){if(e.key){var t=Cv[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=fo(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?wv[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ns,charCode:function(e){return e.type==="keypress"?fo(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?fo(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Ov=_t(Rv),jv=b({},ho,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Pd=_t(jv),kv=b({},Hl,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ns}),zv=_t(kv),Lv=b({},mn,{propertyName:0,elapsedTime:0,pseudoElement:0}),Dv=_t(Lv),Gv=b({},ho,{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}),qv=_t(Gv),Pv=b({},mn,{newState:0,oldState:0}),Uv=_t(Pv),Hv=[9,13,27,32],As=Sa&&"CompositionEvent"in window,Fl=null;Sa&&"documentMode"in document&&(Fl=document.documentMode);var Bv=Sa&&"TextEvent"in window&&!Fl,Ud=Sa&&(!As||Fl&&8<Fl&&11>=Fl),Hd=" ",Bd=!1;function Fd(e,t){switch(e){case"keyup":return Hv.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Vd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Qn=!1;function Fv(e,t){switch(e){case"compositionend":return Vd(t);case"keypress":return t.which!==32?null:(Bd=!0,Hd);case"textInput":return e=t.data,e===Hd&&Bd?null:e;default:return null}}function Vv(e,t){if(Qn)return e==="compositionend"||!As&&Fd(e,t)?(e=Ld(),uo=Ss=Ga=null,Qn=!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 Ud&&t.locale!=="ko"?null:t.data;default:return null}}var Kv={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 Kd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Kv[e.type]:t==="textarea"}function Yd(e,t,n,i){Yn?Xn?Xn.push(i):Xn=[i]:Yn=i,t=lr(t,"onChange"),0<t.length&&(n=new po("onChange","change",null,n,i),e.push({event:n,listeners:t}))}var Vl=null,Kl=null;function Yv(e){Mp(e,0)}function go(e){var t=ql(e);if(wd(t))return e}function Xd(e,t){if(e==="change")return t}var Qd=!1;if(Sa){var Es;if(Sa){var Cs="oninput"in document;if(!Cs){var Zd=document.createElement("div");Zd.setAttribute("oninput","return;"),Cs=typeof Zd.oninput=="function"}Es=Cs}else Es=!1;Qd=Es&&(!document.documentMode||9<document.documentMode)}function $d(){Vl&&(Vl.detachEvent("onpropertychange",Jd),Kl=Vl=null)}function Jd(e){if(e.propertyName==="value"&&go(Kl)){var t=[];Yd(t,Kl,e,ys(e)),zd(Yv,t)}}function Xv(e,t,n){e==="focusin"?($d(),Vl=t,Kl=n,Vl.attachEvent("onpropertychange",Jd)):e==="focusout"&&$d()}function Qv(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return go(Kl)}function Zv(e,t){if(e==="click")return go(t)}function $v(e,t){if(e==="input"||e==="change")return go(t)}function Jv(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Rt=typeof Object.is=="function"?Object.is:Jv;function Yl(e,t){if(Rt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(i=0;i<n.length;i++){var s=n[i];if(!un.call(t,s)||!Rt(e[s],t[s]))return!1}return!0}function Wd(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ef(e,t){var n=Wd(e);e=0;for(var i;n;){if(n.nodeType===3){if(i=e+n.textContent.length,e<=t&&i>=t)return{node:n,offset:t-e};e=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Wd(n)}}function tf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?tf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function af(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=so(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=so(e.document)}return t}function ws(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 Wv=Sa&&"documentMode"in document&&11>=document.documentMode,Zn=null,Is=null,Xl=null,Ms=!1;function nf(e,t,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ms||Zn==null||Zn!==so(i)||(i=Zn,"selectionStart"in i&&ws(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Xl&&Yl(Xl,i)||(Xl=i,i=lr(Is,"onSelect"),0<i.length&&(t=new po("onSelect","select",null,t,n),e.push({event:t,listeners:i}),t.target=Zn)))}function pn(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var $n={animationend:pn("Animation","AnimationEnd"),animationiteration:pn("Animation","AnimationIteration"),animationstart:pn("Animation","AnimationStart"),transitionrun:pn("Transition","TransitionRun"),transitionstart:pn("Transition","TransitionStart"),transitioncancel:pn("Transition","TransitionCancel"),transitionend:pn("Transition","TransitionEnd")},Rs={},lf={};Sa&&(lf=document.createElement("div").style,"AnimationEvent"in window||(delete $n.animationend.animation,delete $n.animationiteration.animation,delete $n.animationstart.animation),"TransitionEvent"in window||delete $n.transitionend.transition);function hn(e){if(Rs[e])return Rs[e];if(!$n[e])return e;var t=$n[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in lf)return Rs[e]=t[n];return e}var of=hn("animationend"),rf=hn("animationiteration"),sf=hn("animationstart"),eb=hn("transitionrun"),tb=hn("transitionstart"),ab=hn("transitioncancel"),cf=hn("transitionend"),uf=new Map,Os="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(" ");Os.push("scrollEnd");function Wt(e,t){uf.set(e,t),fn(t,[e])}var yo=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!==null&&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)},Ht=[],Jn=0,js=0;function vo(){for(var e=Jn,t=js=Jn=0;t<e;){var n=Ht[t];Ht[t++]=null;var i=Ht[t];Ht[t++]=null;var s=Ht[t];Ht[t++]=null;var u=Ht[t];if(Ht[t++]=null,i!==null&&s!==null){var g=i.pending;g===null?s.next=s:(s.next=g.next,g.next=s),i.pending=s}u!==0&&df(n,s,u)}}function bo(e,t,n,i){Ht[Jn++]=e,Ht[Jn++]=t,Ht[Jn++]=n,Ht[Jn++]=i,js|=i,e.lanes|=i,e=e.alternate,e!==null&&(e.lanes|=i)}function ks(e,t,n,i){return bo(e,t,n,i),So(e)}function gn(e,t){return bo(e,null,null,t),So(e)}function df(e,t,n){e.lanes|=n;var i=e.alternate;i!==null&&(i.lanes|=n);for(var s=!1,u=e.return;u!==null;)u.childLanes|=n,i=u.alternate,i!==null&&(i.childLanes|=n),u.tag===22&&(e=u.stateNode,e===null||e._visibility&1||(s=!0)),e=u,u=u.return;return e.tag===3?(u=e.stateNode,s&&t!==null&&(s=31-Mt(n),e=u.hiddenUpdates,i=e[s],i===null?e[s]=[t]:i.push(t),t.lane=n|536870912),u):null}function So(e){if(50<gi)throw gi=0,Bc=null,Error(o(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Wn={};function nb(e,t,n,i){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=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ot(e,t,n,i){return new nb(e,t,n,i)}function zs(e){return e=e.prototype,!(!e||!e.isReactComponent)}function xa(e,t){var n=e.alternate;return n===null?(n=Ot(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 ff(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 xo(e,t,n,i,s,u){var g=0;if(i=e,typeof e=="function")zs(e)&&(g=1);else if(typeof e=="string")g=sS(e,n,ne.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case Ce:return e=Ot(31,n,t,s),e.elementType=Ce,e.lanes=u,e;case j:return yn(n.children,s,u,t);case R:g=8,s|=24;break;case C:return e=Ot(12,n,t,s|2),e.elementType=C,e.lanes=u,e;case te:return e=Ot(13,n,t,s),e.elementType=te,e.lanes=u,e;case ee:return e=Ot(19,n,t,s),e.elementType=ee,e.lanes=u,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case K:g=10;break e;case A:g=9;break e;case V:g=11;break e;case I:g=14;break e;case le:g=16,i=null;break e}g=29,n=Error(o(130,e===null?"null":typeof e,"")),i=null}return t=Ot(g,n,t,s),t.elementType=e,t.type=i,t.lanes=u,t}function yn(e,t,n,i){return e=Ot(7,e,i,t),e.lanes=n,e}function Ls(e,t,n){return e=Ot(6,e,null,t),e.lanes=n,e}function mf(e){var t=Ot(18,null,null,0);return t.stateNode=e,t}function Ds(e,t,n){return t=Ot(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var pf=new WeakMap;function Bt(e,t){if(typeof e=="object"&&e!==null){var n=pf.get(e);return n!==void 0?n:(t={value:e,source:t,stack:Jt(t)},pf.set(e,t),t)}return{value:e,source:t,stack:Jt(t)}}var el=[],tl=0,_o=null,Ql=0,Ft=[],Vt=0,qa=null,oa=1,ra="";function _a(e,t){el[tl++]=Ql,el[tl++]=_o,_o=e,Ql=t}function hf(e,t,n){Ft[Vt++]=oa,Ft[Vt++]=ra,Ft[Vt++]=qa,qa=e;var i=oa;e=ra;var s=32-Mt(i)-1;i&=~(1<<s),n+=1;var u=32-Mt(t)+s;if(30<u){var g=s-s%5;u=(i&(1<<g)-1).toString(32),i>>=g,s-=g,oa=1<<32-Mt(t)+s|n<<s|i,ra=u+e}else oa=1<<u|n<<s|i,ra=e}function Gs(e){e.return!==null&&(_a(e,1),hf(e,1,0))}function qs(e){for(;e===_o;)_o=el[--tl],el[tl]=null,Ql=el[--tl],el[tl]=null;for(;e===qa;)qa=Ft[--Vt],Ft[Vt]=null,ra=Ft[--Vt],Ft[Vt]=null,oa=Ft[--Vt],Ft[Vt]=null}function gf(e,t){Ft[Vt++]=oa,Ft[Vt++]=ra,Ft[Vt++]=qa,oa=t.id,ra=t.overflow,qa=e}var dt=null,Fe=null,Ee=!1,Pa=null,Kt=!1,Ps=Error(o(519));function Ua(e){var t=Error(o(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Zl(Bt(t,e)),Ps}function yf(e){var t=e.stateNode,n=e.type,i=e.memoizedProps;switch(t[ut]=e,t[xt]=i,n){case"dialog":Te("cancel",t),Te("close",t);break;case"iframe":case"object":case"embed":Te("load",t);break;case"video":case"audio":for(n=0;n<vi.length;n++)Te(vi[n],t);break;case"source":Te("error",t);break;case"img":case"image":case"link":Te("error",t),Te("load",t);break;case"details":Te("toggle",t);break;case"input":Te("invalid",t),Id(t,i.value,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name,!0);break;case"select":Te("invalid",t);break;case"textarea":Te("invalid",t),Rd(t,i.value,i.defaultValue,i.children)}n=i.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||i.suppressHydrationWarning===!0||kp(t.textContent,n)?(i.popover!=null&&(Te("beforetoggle",t),Te("toggle",t)),i.onScroll!=null&&Te("scroll",t),i.onScrollEnd!=null&&Te("scrollend",t),i.onClick!=null&&(t.onclick=ba),t=!0):t=!1,t||Ua(e,!0)}function vf(e){for(dt=e.return;dt;)switch(dt.tag){case 5:case 31:case 13:Kt=!1;return;case 27:case 3:Kt=!0;return;default:dt=dt.return}}function al(e){if(e!==dt)return!1;if(!Ee)return vf(e),Ee=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||lu(e.type,e.memoizedProps)),n=!n),n&&Fe&&Ua(e),vf(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(317));Fe=Bp(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(317));Fe=Bp(e)}else t===27?(t=Fe,tn(e.type)?(e=cu,cu=null,Fe=e):Fe=t):Fe=dt?Xt(e.stateNode.nextSibling):null;return!0}function vn(){Fe=dt=null,Ee=!1}function Us(){var e=Pa;return e!==null&&(Et===null?Et=e:Et.push.apply(Et,e),Pa=null),e}function Zl(e){Pa===null?Pa=[e]:Pa.push(e)}var Hs=w(null),bn=null,Ta=null;function Ha(e,t,n){Q(Hs,t._currentValue),t._currentValue=n}function Na(e){e._currentValue=Hs.current,k(Hs)}function Bs(e,t,n){for(;e!==null;){var i=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,i!==null&&(i.childLanes|=t)):i!==null&&(i.childLanes&t)!==t&&(i.childLanes|=t),e===n)break;e=e.return}}function Fs(e,t,n,i){var s=e.child;for(s!==null&&(s.return=e);s!==null;){var u=s.dependencies;if(u!==null){var g=s.child;u=u.firstContext;e:for(;u!==null;){var S=u;u=s;for(var E=0;E<t.length;E++)if(S.context===t[E]){u.lanes|=n,S=u.alternate,S!==null&&(S.lanes|=n),Bs(u.return,n,e),i||(g=null);break e}u=S.next}}else if(s.tag===18){if(g=s.return,g===null)throw Error(o(341));g.lanes|=n,u=g.alternate,u!==null&&(u.lanes|=n),Bs(g,n,e),g=null}else g=s.child;if(g!==null)g.return=s;else for(g=s;g!==null;){if(g===e){g=null;break}if(s=g.sibling,s!==null){s.return=g.return,g=s;break}g=g.return}s=g}}function nl(e,t,n,i){e=null;for(var s=t,u=!1;s!==null;){if(!u){if((s.flags&524288)!==0)u=!0;else if((s.flags&262144)!==0)break}if(s.tag===10){var g=s.alternate;if(g===null)throw Error(o(387));if(g=g.memoizedProps,g!==null){var S=s.type;Rt(s.pendingProps.value,g.value)||(e!==null?e.push(S):e=[S])}}else if(s===he.current){if(g=s.alternate,g===null)throw Error(o(387));g.memoizedState.memoizedState!==s.memoizedState.memoizedState&&(e!==null?e.push(Ti):e=[Ti])}s=s.return}e!==null&&Fs(t,e,n,i),t.flags|=262144}function To(e){for(e=e.firstContext;e!==null;){if(!Rt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Sn(e){bn=e,Ta=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ft(e){return bf(bn,e)}function No(e,t){return bn===null&&Sn(e),bf(e,t)}function bf(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Ta===null){if(e===null)throw Error(o(308));Ta=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Ta=Ta.next=t;return n}var lb=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,i){e.push(i)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},ib=a.unstable_scheduleCallback,ob=a.unstable_NormalPriority,et={$$typeof:K,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Vs(){return{controller:new lb,data:new Map,refCount:0}}function $l(e){e.refCount--,e.refCount===0&&ib(ob,function(){e.controller.abort()})}var Jl=null,Ks=0,ll=0,il=null;function rb(e,t){if(Jl===null){var n=Jl=[];Ks=0,ll=Qc(),il={status:"pending",value:void 0,then:function(i){n.push(i)}}}return Ks++,t.then(Sf,Sf),t}function Sf(){if(--Ks===0&&Jl!==null){il!==null&&(il.status="fulfilled");var e=Jl;Jl=null,ll=0,il=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function sb(e,t){var n=[],i={status:"pending",value:null,reason:null,then:function(s){n.push(s)}};return e.then(function(){i.status="fulfilled",i.value=t;for(var s=0;s<n.length;s++)(0,n[s])(t)},function(s){for(i.status="rejected",i.reason=s,s=0;s<n.length;s++)(0,n[s])(void 0)}),i}var xf=L.S;L.S=function(e,t){lp=Ke(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&rb(e,t),xf!==null&&xf(e,t)};var xn=w(null);function Ys(){var e=xn.current;return e!==null?e:Ue.pooledCache}function Ao(e,t){t===null?Q(xn,xn.current):Q(xn,t.pool)}function _f(){var e=Ys();return e===null?null:{parent:et._currentValue,pool:e}}var ol=Error(o(460)),Xs=Error(o(474)),Eo=Error(o(542)),Co={then:function(){}};function Tf(e){return e=e.status,e==="fulfilled"||e==="rejected"}function Nf(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(ba,ba),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Ef(e),e;default:if(typeof t.status=="string")t.then(ba,ba);else{if(e=Ue,e!==null&&100<e.shellSuspendCounter)throw Error(o(482));e=t,e.status="pending",e.then(function(i){if(t.status==="pending"){var s=t;s.status="fulfilled",s.value=i}},function(i){if(t.status==="pending"){var s=t;s.status="rejected",s.reason=i}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Ef(e),e}throw Tn=t,ol}}function _n(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Tn=n,ol):n}}var Tn=null;function Af(){if(Tn===null)throw Error(o(459));var e=Tn;return Tn=null,e}function Ef(e){if(e===ol||e===Eo)throw Error(o(483))}var rl=null,Wl=0;function wo(e){var t=Wl;return Wl+=1,rl===null&&(rl=[]),Nf(rl,e,t)}function ei(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function Io(e,t){throw t.$$typeof===v?Error(o(525)):(e=Object.prototype.toString.call(t),Error(o(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function Cf(e){function t(O,M){if(e){var q=O.deletions;q===null?(O.deletions=[M],O.flags|=16):q.push(M)}}function n(O,M){if(!e)return null;for(;M!==null;)t(O,M),M=M.sibling;return null}function i(O){for(var M=new Map;O!==null;)O.key!==null?M.set(O.key,O):M.set(O.index,O),O=O.sibling;return M}function s(O,M){return O=xa(O,M),O.index=0,O.sibling=null,O}function u(O,M,q){return O.index=q,e?(q=O.alternate,q!==null?(q=q.index,q<M?(O.flags|=67108866,M):q):(O.flags|=67108866,M)):(O.flags|=1048576,M)}function g(O){return e&&O.alternate===null&&(O.flags|=67108866),O}function S(O,M,q,Y){return M===null||M.tag!==6?(M=Ls(q,O.mode,Y),M.return=O,M):(M=s(M,q),M.return=O,M)}function E(O,M,q,Y){var ue=q.type;return ue===j?F(O,M,q.props.children,Y,q.key):M!==null&&(M.elementType===ue||typeof ue=="object"&&ue!==null&&ue.$$typeof===le&&_n(ue)===M.type)?(M=s(M,q.props),ei(M,q),M.return=O,M):(M=xo(q.type,q.key,q.props,null,O.mode,Y),ei(M,q),M.return=O,M)}function P(O,M,q,Y){return M===null||M.tag!==4||M.stateNode.containerInfo!==q.containerInfo||M.stateNode.implementation!==q.implementation?(M=Ds(q,O.mode,Y),M.return=O,M):(M=s(M,q.children||[]),M.return=O,M)}function F(O,M,q,Y,ue){return M===null||M.tag!==7?(M=yn(q,O.mode,Y,ue),M.return=O,M):(M=s(M,q),M.return=O,M)}function X(O,M,q){if(typeof M=="string"&&M!==""||typeof M=="number"||typeof M=="bigint")return M=Ls(""+M,O.mode,q),M.return=O,M;if(typeof M=="object"&&M!==null){switch(M.$$typeof){case _:return q=xo(M.type,M.key,M.props,null,O.mode,q),ei(q,M),q.return=O,q;case T:return M=Ds(M,O.mode,q),M.return=O,M;case le:return M=_n(M),X(O,M,q)}if(G(M)||we(M))return M=yn(M,O.mode,q,null),M.return=O,M;if(typeof M.then=="function")return X(O,wo(M),q);if(M.$$typeof===K)return X(O,No(O,M),q);Io(O,M)}return null}function U(O,M,q,Y){var ue=M!==null?M.key:null;if(typeof q=="string"&&q!==""||typeof q=="number"||typeof q=="bigint")return ue!==null?null:S(O,M,""+q,Y);if(typeof q=="object"&&q!==null){switch(q.$$typeof){case _:return q.key===ue?E(O,M,q,Y):null;case T:return q.key===ue?P(O,M,q,Y):null;case le:return q=_n(q),U(O,M,q,Y)}if(G(q)||we(q))return ue!==null?null:F(O,M,q,Y,null);if(typeof q.then=="function")return U(O,M,wo(q),Y);if(q.$$typeof===K)return U(O,M,No(O,q),Y);Io(O,q)}return null}function H(O,M,q,Y,ue){if(typeof Y=="string"&&Y!==""||typeof Y=="number"||typeof Y=="bigint")return O=O.get(q)||null,S(M,O,""+Y,ue);if(typeof Y=="object"&&Y!==null){switch(Y.$$typeof){case _:return O=O.get(Y.key===null?q:Y.key)||null,E(M,O,Y,ue);case T:return O=O.get(Y.key===null?q:Y.key)||null,P(M,O,Y,ue);case le:return Y=_n(Y),H(O,M,q,Y,ue)}if(G(Y)||we(Y))return O=O.get(q)||null,F(M,O,Y,ue,null);if(typeof Y.then=="function")return H(O,M,q,wo(Y),ue);if(Y.$$typeof===K)return H(O,M,q,No(M,Y),ue);Io(M,Y)}return null}function oe(O,M,q,Y){for(var ue=null,Me=null,re=M,ve=M=0,Ae=null;re!==null&&ve<q.length;ve++){re.index>ve?(Ae=re,re=null):Ae=re.sibling;var Re=U(O,re,q[ve],Y);if(Re===null){re===null&&(re=Ae);break}e&&re&&Re.alternate===null&&t(O,re),M=u(Re,M,ve),Me===null?ue=Re:Me.sibling=Re,Me=Re,re=Ae}if(ve===q.length)return n(O,re),Ee&&_a(O,ve),ue;if(re===null){for(;ve<q.length;ve++)re=X(O,q[ve],Y),re!==null&&(M=u(re,M,ve),Me===null?ue=re:Me.sibling=re,Me=re);return Ee&&_a(O,ve),ue}for(re=i(re);ve<q.length;ve++)Ae=H(re,O,ve,q[ve],Y),Ae!==null&&(e&&Ae.alternate!==null&&re.delete(Ae.key===null?ve:Ae.key),M=u(Ae,M,ve),Me===null?ue=Ae:Me.sibling=Ae,Me=Ae);return e&&re.forEach(function(rn){return t(O,rn)}),Ee&&_a(O,ve),ue}function fe(O,M,q,Y){if(q==null)throw Error(o(151));for(var ue=null,Me=null,re=M,ve=M=0,Ae=null,Re=q.next();re!==null&&!Re.done;ve++,Re=q.next()){re.index>ve?(Ae=re,re=null):Ae=re.sibling;var rn=U(O,re,Re.value,Y);if(rn===null){re===null&&(re=Ae);break}e&&re&&rn.alternate===null&&t(O,re),M=u(rn,M,ve),Me===null?ue=rn:Me.sibling=rn,Me=rn,re=Ae}if(Re.done)return n(O,re),Ee&&_a(O,ve),ue;if(re===null){for(;!Re.done;ve++,Re=q.next())Re=X(O,Re.value,Y),Re!==null&&(M=u(Re,M,ve),Me===null?ue=Re:Me.sibling=Re,Me=Re);return Ee&&_a(O,ve),ue}for(re=i(re);!Re.done;ve++,Re=q.next())Re=H(re,O,ve,Re.value,Y),Re!==null&&(e&&Re.alternate!==null&&re.delete(Re.key===null?ve:Re.key),M=u(Re,M,ve),Me===null?ue=Re:Me.sibling=Re,Me=Re);return e&&re.forEach(function(bS){return t(O,bS)}),Ee&&_a(O,ve),ue}function Pe(O,M,q,Y){if(typeof q=="object"&&q!==null&&q.type===j&&q.key===null&&(q=q.props.children),typeof q=="object"&&q!==null){switch(q.$$typeof){case _:e:{for(var ue=q.key;M!==null;){if(M.key===ue){if(ue=q.type,ue===j){if(M.tag===7){n(O,M.sibling),Y=s(M,q.props.children),Y.return=O,O=Y;break e}}else if(M.elementType===ue||typeof ue=="object"&&ue!==null&&ue.$$typeof===le&&_n(ue)===M.type){n(O,M.sibling),Y=s(M,q.props),ei(Y,q),Y.return=O,O=Y;break e}n(O,M);break}else t(O,M);M=M.sibling}q.type===j?(Y=yn(q.props.children,O.mode,Y,q.key),Y.return=O,O=Y):(Y=xo(q.type,q.key,q.props,null,O.mode,Y),ei(Y,q),Y.return=O,O=Y)}return g(O);case T:e:{for(ue=q.key;M!==null;){if(M.key===ue)if(M.tag===4&&M.stateNode.containerInfo===q.containerInfo&&M.stateNode.implementation===q.implementation){n(O,M.sibling),Y=s(M,q.children||[]),Y.return=O,O=Y;break e}else{n(O,M);break}else t(O,M);M=M.sibling}Y=Ds(q,O.mode,Y),Y.return=O,O=Y}return g(O);case le:return q=_n(q),Pe(O,M,q,Y)}if(G(q))return oe(O,M,q,Y);if(we(q)){if(ue=we(q),typeof ue!="function")throw Error(o(150));return q=ue.call(q),fe(O,M,q,Y)}if(typeof q.then=="function")return Pe(O,M,wo(q),Y);if(q.$$typeof===K)return Pe(O,M,No(O,q),Y);Io(O,q)}return typeof q=="string"&&q!==""||typeof q=="number"||typeof q=="bigint"?(q=""+q,M!==null&&M.tag===6?(n(O,M.sibling),Y=s(M,q),Y.return=O,O=Y):(n(O,M),Y=Ls(q,O.mode,Y),Y.return=O,O=Y),g(O)):n(O,M)}return function(O,M,q,Y){try{Wl=0;var ue=Pe(O,M,q,Y);return rl=null,ue}catch(re){if(re===ol||re===Eo)throw re;var Me=Ot(29,re,null,O.mode);return Me.lanes=Y,Me.return=O,Me}}}var Nn=Cf(!0),wf=Cf(!1),Ba=!1;function Qs(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Zs(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 Fa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Va(e,t,n){var i=e.updateQueue;if(i===null)return null;if(i=i.shared,(Oe&2)!==0){var s=i.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),i.pending=t,t=So(e),df(e,null,n),t}return bo(e,i,t,n),So(e)}function ti(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var i=t.lanes;i&=e.pendingLanes,n|=i,t.lanes=n,vd(e,n)}}function $s(e,t){var n=e.updateQueue,i=e.alternate;if(i!==null&&(i=i.updateQueue,n===i)){var s=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var g={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};u===null?s=u=g:u=u.next=g,n=n.next}while(n!==null);u===null?s=u=t:u=u.next=t}else s=u=t;n={baseState:i.baseState,firstBaseUpdate:s,lastBaseUpdate:u,shared:i.shared,callbacks:i.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Js=!1;function ai(){if(Js){var e=il;if(e!==null)throw e}}function ni(e,t,n,i){Js=!1;var s=e.updateQueue;Ba=!1;var u=s.firstBaseUpdate,g=s.lastBaseUpdate,S=s.shared.pending;if(S!==null){s.shared.pending=null;var E=S,P=E.next;E.next=null,g===null?u=P:g.next=P,g=E;var F=e.alternate;F!==null&&(F=F.updateQueue,S=F.lastBaseUpdate,S!==g&&(S===null?F.firstBaseUpdate=P:S.next=P,F.lastBaseUpdate=E))}if(u!==null){var X=s.baseState;g=0,F=P=E=null,S=u;do{var U=S.lane&-536870913,H=U!==S.lane;if(H?(Ne&U)===U:(i&U)===U){U!==0&&U===ll&&(Js=!0),F!==null&&(F=F.next={lane:0,tag:S.tag,payload:S.payload,callback:null,next:null});e:{var oe=e,fe=S;U=t;var Pe=n;switch(fe.tag){case 1:if(oe=fe.payload,typeof oe=="function"){X=oe.call(Pe,X,U);break e}X=oe;break e;case 3:oe.flags=oe.flags&-65537|128;case 0:if(oe=fe.payload,U=typeof oe=="function"?oe.call(Pe,X,U):oe,U==null)break e;X=b({},X,U);break e;case 2:Ba=!0}}U=S.callback,U!==null&&(e.flags|=64,H&&(e.flags|=8192),H=s.callbacks,H===null?s.callbacks=[U]:H.push(U))}else H={lane:U,tag:S.tag,payload:S.payload,callback:S.callback,next:null},F===null?(P=F=H,E=X):F=F.next=H,g|=U;if(S=S.next,S===null){if(S=s.shared.pending,S===null)break;H=S,S=H.next,H.next=null,s.lastBaseUpdate=H,s.shared.pending=null}}while(!0);F===null&&(E=X),s.baseState=E,s.firstBaseUpdate=P,s.lastBaseUpdate=F,u===null&&(s.shared.lanes=0),Za|=g,e.lanes=g,e.memoizedState=X}}function If(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function Mf(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)If(n[e],t)}var sl=w(null),Mo=w(0);function Rf(e,t){e=ja,Q(Mo,e),Q(sl,t),ja=e|t.baseLanes}function Ws(){Q(Mo,ja),Q(sl,sl.current)}function ec(){ja=Mo.current,k(sl),k(Mo)}var jt=w(null),Yt=null;function Ka(e){var t=e.alternate;Q(Je,Je.current&1),Q(jt,e),Yt===null&&(t===null||sl.current!==null||t.memoizedState!==null)&&(Yt=e)}function tc(e){Q(Je,Je.current),Q(jt,e),Yt===null&&(Yt=e)}function Of(e){e.tag===22?(Q(Je,Je.current),Q(jt,e),Yt===null&&(Yt=e)):Ya()}function Ya(){Q(Je,Je.current),Q(jt,jt.current)}function kt(e){k(jt),Yt===e&&(Yt=null),k(Je)}var Je=w(0);function Ro(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||ru(n)||su(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)!==0)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 Aa=0,ge=null,Ge=null,tt=null,Oo=!1,cl=!1,An=!1,jo=0,li=0,ul=null,cb=0;function Qe(){throw Error(o(321))}function ac(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Rt(e[n],t[n]))return!1;return!0}function nc(e,t,n,i,s,u){return Aa=u,ge=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,L.H=e===null||e.memoizedState===null?hm:vc,An=!1,u=n(i,s),An=!1,cl&&(u=kf(t,n,i,s)),jf(e),u}function jf(e){L.H=ri;var t=Ge!==null&&Ge.next!==null;if(Aa=0,tt=Ge=ge=null,Oo=!1,li=0,ul=null,t)throw Error(o(300));e===null||at||(e=e.dependencies,e!==null&&To(e)&&(at=!0))}function kf(e,t,n,i){ge=e;var s=0;do{if(cl&&(ul=null),li=0,cl=!1,25<=s)throw Error(o(301));if(s+=1,tt=Ge=null,e.updateQueue!=null){var u=e.updateQueue;u.lastEffect=null,u.events=null,u.stores=null,u.memoCache!=null&&(u.memoCache.index=0)}L.H=gm,u=t(n,i)}while(cl);return u}function ub(){var e=L.H,t=e.useState()[0];return t=typeof t.then=="function"?ii(t):t,e=e.useState()[0],(Ge!==null?Ge.memoizedState:null)!==e&&(ge.flags|=1024),t}function lc(){var e=jo!==0;return jo=0,e}function ic(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function oc(e){if(Oo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}Oo=!1}Aa=0,tt=Ge=ge=null,cl=!1,li=jo=0,ul=null}function vt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return tt===null?ge.memoizedState=tt=e:tt=tt.next=e,tt}function We(){if(Ge===null){var e=ge.alternate;e=e!==null?e.memoizedState:null}else e=Ge.next;var t=tt===null?ge.memoizedState:tt.next;if(t!==null)tt=t,Ge=e;else{if(e===null)throw ge.alternate===null?Error(o(467)):Error(o(310));Ge=e,e={memoizedState:Ge.memoizedState,baseState:Ge.baseState,baseQueue:Ge.baseQueue,queue:Ge.queue,next:null},tt===null?ge.memoizedState=tt=e:tt=tt.next=e}return tt}function ko(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ii(e){var t=li;return li+=1,ul===null&&(ul=[]),e=Nf(ul,e,t),t=ge,(tt===null?t.memoizedState:tt.next)===null&&(t=t.alternate,L.H=t===null||t.memoizedState===null?hm:vc),e}function zo(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return ii(e);if(e.$$typeof===K)return ft(e)}throw Error(o(438,String(e)))}function rc(e){var t=null,n=ge.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var i=ge.alternate;i!==null&&(i=i.updateQueue,i!==null&&(i=i.memoCache,i!=null&&(t={data:i.data.map(function(s){return s.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=ko(),ge.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),i=0;i<e;i++)n[i]=Be;return t.index++,n}function Ea(e,t){return typeof t=="function"?t(e):t}function Lo(e){var t=We();return sc(t,Ge,e)}function sc(e,t,n){var i=e.queue;if(i===null)throw Error(o(311));i.lastRenderedReducer=n;var s=e.baseQueue,u=i.pending;if(u!==null){if(s!==null){var g=s.next;s.next=u.next,u.next=g}t.baseQueue=s=u,i.pending=null}if(u=e.baseState,s===null)e.memoizedState=u;else{t=s.next;var S=g=null,E=null,P=t,F=!1;do{var X=P.lane&-536870913;if(X!==P.lane?(Ne&X)===X:(Aa&X)===X){var U=P.revertLane;if(U===0)E!==null&&(E=E.next={lane:0,revertLane:0,gesture:null,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null}),X===ll&&(F=!0);else if((Aa&U)===U){P=P.next,U===ll&&(F=!0);continue}else X={lane:0,revertLane:P.revertLane,gesture:null,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null},E===null?(S=E=X,g=u):E=E.next=X,ge.lanes|=U,Za|=U;X=P.action,An&&n(u,X),u=P.hasEagerState?P.eagerState:n(u,X)}else U={lane:X,revertLane:P.revertLane,gesture:P.gesture,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null},E===null?(S=E=U,g=u):E=E.next=U,ge.lanes|=X,Za|=X;P=P.next}while(P!==null&&P!==t);if(E===null?g=u:E.next=S,!Rt(u,e.memoizedState)&&(at=!0,F&&(n=il,n!==null)))throw n;e.memoizedState=u,e.baseState=g,e.baseQueue=E,i.lastRenderedState=u}return s===null&&(i.lanes=0),[e.memoizedState,i.dispatch]}function cc(e){var t=We(),n=t.queue;if(n===null)throw Error(o(311));n.lastRenderedReducer=e;var i=n.dispatch,s=n.pending,u=t.memoizedState;if(s!==null){n.pending=null;var g=s=s.next;do u=e(u,g.action),g=g.next;while(g!==s);Rt(u,t.memoizedState)||(at=!0),t.memoizedState=u,t.baseQueue===null&&(t.baseState=u),n.lastRenderedState=u}return[u,i]}function zf(e,t,n){var i=ge,s=We(),u=Ee;if(u){if(n===void 0)throw Error(o(407));n=n()}else n=t();var g=!Rt((Ge||s).memoizedState,n);if(g&&(s.memoizedState=n,at=!0),s=s.queue,fc(Gf.bind(null,i,s,e),[e]),s.getSnapshot!==t||g||tt!==null&&tt.memoizedState.tag&1){if(i.flags|=2048,dl(9,{destroy:void 0},Df.bind(null,i,s,n,t),null),Ue===null)throw Error(o(349));u||(Aa&127)!==0||Lf(i,t,n)}return n}function Lf(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=ge.updateQueue,t===null?(t=ko(),ge.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Df(e,t,n,i){t.value=n,t.getSnapshot=i,qf(t)&&Pf(e)}function Gf(e,t,n){return n(function(){qf(t)&&Pf(e)})}function qf(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Rt(e,n)}catch{return!0}}function Pf(e){var t=gn(e,2);t!==null&&Ct(t,e,2)}function uc(e){var t=vt();if(typeof e=="function"){var n=e;if(e=n(),An){La(!0);try{n()}finally{La(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ea,lastRenderedState:e},t}function Uf(e,t,n,i){return e.baseState=n,sc(e,Ge,typeof i=="function"?i:Ea)}function db(e,t,n,i,s){if(qo(e))throw Error(o(485));if(e=t.action,e!==null){var u={payload:s,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(g){u.listeners.push(g)}};L.T!==null?n(!0):u.isTransition=!1,i(u),n=t.pending,n===null?(u.next=t.pending=u,Hf(t,u)):(u.next=n.next,t.pending=n.next=u)}}function Hf(e,t){var n=t.action,i=t.payload,s=e.state;if(t.isTransition){var u=L.T,g={};L.T=g;try{var S=n(s,i),E=L.S;E!==null&&E(g,S),Bf(e,t,S)}catch(P){dc(e,t,P)}finally{u!==null&&g.types!==null&&(u.types=g.types),L.T=u}}else try{u=n(s,i),Bf(e,t,u)}catch(P){dc(e,t,P)}}function Bf(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(i){Ff(e,t,i)},function(i){return dc(e,t,i)}):Ff(e,t,n)}function Ff(e,t,n){t.status="fulfilled",t.value=n,Vf(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Hf(e,n)))}function dc(e,t,n){var i=e.pending;if(e.pending=null,i!==null){i=i.next;do t.status="rejected",t.reason=n,Vf(t),t=t.next;while(t!==i)}e.action=null}function Vf(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Kf(e,t){return t}function Yf(e,t){if(Ee){var n=Ue.formState;if(n!==null){e:{var i=ge;if(Ee){if(Fe){t:{for(var s=Fe,u=Kt;s.nodeType!==8;){if(!u){s=null;break t}if(s=Xt(s.nextSibling),s===null){s=null;break t}}u=s.data,s=u==="F!"||u==="F"?s:null}if(s){Fe=Xt(s.nextSibling),i=s.data==="F!";break e}}Ua(i)}i=!1}i&&(t=n[0])}}return n=vt(),n.memoizedState=n.baseState=t,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Kf,lastRenderedState:t},n.queue=i,n=fm.bind(null,ge,i),i.dispatch=n,i=uc(!1),u=yc.bind(null,ge,!1,i.queue),i=vt(),s={state:t,dispatch:null,action:e,pending:null},i.queue=s,n=db.bind(null,ge,s,u,n),s.dispatch=n,i.memoizedState=e,[t,n,!1]}function Xf(e){var t=We();return Qf(t,Ge,e)}function Qf(e,t,n){if(t=sc(e,t,Kf)[0],e=Lo(Ea)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var i=ii(t)}catch(g){throw g===ol?Eo:g}else i=t;t=We();var s=t.queue,u=s.dispatch;return n!==t.memoizedState&&(ge.flags|=2048,dl(9,{destroy:void 0},fb.bind(null,s,n),null)),[i,u,e]}function fb(e,t){e.action=t}function Zf(e){var t=We(),n=Ge;if(n!==null)return Qf(t,n,e);We(),t=t.memoizedState,n=We();var i=n.queue.dispatch;return n.memoizedState=e,[t,i,!1]}function dl(e,t,n,i){return e={tag:e,create:n,deps:i,inst:t,next:null},t=ge.updateQueue,t===null&&(t=ko(),ge.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(i=n.next,n.next=e,e.next=i,t.lastEffect=e),e}function $f(){return We().memoizedState}function Do(e,t,n,i){var s=vt();ge.flags|=e,s.memoizedState=dl(1|t,{destroy:void 0},n,i===void 0?null:i)}function Go(e,t,n,i){var s=We();i=i===void 0?null:i;var u=s.memoizedState.inst;Ge!==null&&i!==null&&ac(i,Ge.memoizedState.deps)?s.memoizedState=dl(t,u,n,i):(ge.flags|=e,s.memoizedState=dl(1|t,u,n,i))}function Jf(e,t){Do(8390656,8,e,t)}function fc(e,t){Go(2048,8,e,t)}function mb(e){ge.flags|=4;var t=ge.updateQueue;if(t===null)t=ko(),ge.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Wf(e){var t=We().memoizedState;return mb({ref:t,nextImpl:e}),function(){if((Oe&2)!==0)throw Error(o(440));return t.impl.apply(void 0,arguments)}}function em(e,t){return Go(4,2,e,t)}function tm(e,t){return Go(4,4,e,t)}function am(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 nm(e,t,n){n=n!=null?n.concat([e]):null,Go(4,4,am.bind(null,t,e),n)}function mc(){}function lm(e,t){var n=We();t=t===void 0?null:t;var i=n.memoizedState;return t!==null&&ac(t,i[1])?i[0]:(n.memoizedState=[e,t],e)}function im(e,t){var n=We();t=t===void 0?null:t;var i=n.memoizedState;if(t!==null&&ac(t,i[1]))return i[0];if(i=e(),An){La(!0);try{e()}finally{La(!1)}}return n.memoizedState=[i,t],i}function pc(e,t,n){return n===void 0||(Aa&1073741824)!==0&&(Ne&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=op(),ge.lanes|=e,Za|=e,n)}function om(e,t,n,i){return Rt(n,t)?n:sl.current!==null?(e=pc(e,n,i),Rt(e,t)||(at=!0),e):(Aa&42)===0||(Aa&1073741824)!==0&&(Ne&261930)===0?(at=!0,e.memoizedState=n):(e=op(),ge.lanes|=e,Za|=e,t)}function rm(e,t,n,i,s){var u=D.p;D.p=u!==0&&8>u?u:8;var g=L.T,S={};L.T=S,yc(e,!1,t,n);try{var E=s(),P=L.S;if(P!==null&&P(S,E),E!==null&&typeof E=="object"&&typeof E.then=="function"){var F=sb(E,i);oi(e,t,F,Dt(e))}else oi(e,t,i,Dt(e))}catch(X){oi(e,t,{then:function(){},status:"rejected",reason:X},Dt())}finally{D.p=u,g!==null&&S.types!==null&&(g.types=S.types),L.T=g}}function pb(){}function hc(e,t,n,i){if(e.tag!==5)throw Error(o(476));var s=sm(e).queue;rm(e,s,t,J,n===null?pb:function(){return cm(e),n(i)})}function sm(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ea,lastRenderedState:J},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ea,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function cm(e){var t=sm(e);t.next===null&&(t=e.alternate.memoizedState),oi(e,t.next.queue,{},Dt())}function gc(){return ft(Ti)}function um(){return We().memoizedState}function dm(){return We().memoizedState}function hb(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Dt();e=Fa(n);var i=Va(t,e,n);i!==null&&(Ct(i,t,n),ti(i,t,n)),t={cache:Vs()},e.payload=t;return}t=t.return}}function gb(e,t,n){var i=Dt();n={lane:i,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},qo(e)?mm(t,n):(n=ks(e,t,n,i),n!==null&&(Ct(n,e,i),pm(n,t,i)))}function fm(e,t,n){var i=Dt();oi(e,t,n,i)}function oi(e,t,n,i){var s={lane:i,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(qo(e))mm(t,s);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var g=t.lastRenderedState,S=u(g,n);if(s.hasEagerState=!0,s.eagerState=S,Rt(S,g))return bo(e,t,s,0),Ue===null&&vo(),!1}catch{}if(n=ks(e,t,s,i),n!==null)return Ct(n,e,i),pm(n,t,i),!0}return!1}function yc(e,t,n,i){if(i={lane:2,revertLane:Qc(),gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},qo(e)){if(t)throw Error(o(479))}else t=ks(e,n,i,2),t!==null&&Ct(t,e,2)}function qo(e){var t=e.alternate;return e===ge||t!==null&&t===ge}function mm(e,t){cl=Oo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function pm(e,t,n){if((n&4194048)!==0){var i=t.lanes;i&=e.pendingLanes,n|=i,t.lanes=n,vd(e,n)}}var ri={readContext:ft,use:zo,useCallback:Qe,useContext:Qe,useEffect:Qe,useImperativeHandle:Qe,useLayoutEffect:Qe,useInsertionEffect:Qe,useMemo:Qe,useReducer:Qe,useRef:Qe,useState:Qe,useDebugValue:Qe,useDeferredValue:Qe,useTransition:Qe,useSyncExternalStore:Qe,useId:Qe,useHostTransitionStatus:Qe,useFormState:Qe,useActionState:Qe,useOptimistic:Qe,useMemoCache:Qe,useCacheRefresh:Qe};ri.useEffectEvent=Qe;var hm={readContext:ft,use:zo,useCallback:function(e,t){return vt().memoizedState=[e,t===void 0?null:t],e},useContext:ft,useEffect:Jf,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,Do(4194308,4,am.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Do(4194308,4,e,t)},useInsertionEffect:function(e,t){Do(4,2,e,t)},useMemo:function(e,t){var n=vt();t=t===void 0?null:t;var i=e();if(An){La(!0);try{e()}finally{La(!1)}}return n.memoizedState=[i,t],i},useReducer:function(e,t,n){var i=vt();if(n!==void 0){var s=n(t);if(An){La(!0);try{n(t)}finally{La(!1)}}}else s=t;return i.memoizedState=i.baseState=s,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:s},i.queue=e,e=e.dispatch=gb.bind(null,ge,e),[i.memoizedState,e]},useRef:function(e){var t=vt();return e={current:e},t.memoizedState=e},useState:function(e){e=uc(e);var t=e.queue,n=fm.bind(null,ge,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:mc,useDeferredValue:function(e,t){var n=vt();return pc(n,e,t)},useTransition:function(){var e=uc(!1);return e=rm.bind(null,ge,e.queue,!0,!1),vt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var i=ge,s=vt();if(Ee){if(n===void 0)throw Error(o(407));n=n()}else{if(n=t(),Ue===null)throw Error(o(349));(Ne&127)!==0||Lf(i,t,n)}s.memoizedState=n;var u={value:n,getSnapshot:t};return s.queue=u,Jf(Gf.bind(null,i,u,e),[e]),i.flags|=2048,dl(9,{destroy:void 0},Df.bind(null,i,u,n,t),null),n},useId:function(){var e=vt(),t=Ue.identifierPrefix;if(Ee){var n=ra,i=oa;n=(i&~(1<<32-Mt(i)-1)).toString(32)+n,t="_"+t+"R_"+n,n=jo++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=cb++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:gc,useFormState:Yf,useActionState:Yf,useOptimistic:function(e){var t=vt();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=yc.bind(null,ge,!0,n),n.dispatch=t,[e,t]},useMemoCache:rc,useCacheRefresh:function(){return vt().memoizedState=hb.bind(null,ge)},useEffectEvent:function(e){var t=vt(),n={impl:e};return t.memoizedState=n,function(){if((Oe&2)!==0)throw Error(o(440));return n.impl.apply(void 0,arguments)}}},vc={readContext:ft,use:zo,useCallback:lm,useContext:ft,useEffect:fc,useImperativeHandle:nm,useInsertionEffect:em,useLayoutEffect:tm,useMemo:im,useReducer:Lo,useRef:$f,useState:function(){return Lo(Ea)},useDebugValue:mc,useDeferredValue:function(e,t){var n=We();return om(n,Ge.memoizedState,e,t)},useTransition:function(){var e=Lo(Ea)[0],t=We().memoizedState;return[typeof e=="boolean"?e:ii(e),t]},useSyncExternalStore:zf,useId:um,useHostTransitionStatus:gc,useFormState:Xf,useActionState:Xf,useOptimistic:function(e,t){var n=We();return Uf(n,Ge,e,t)},useMemoCache:rc,useCacheRefresh:dm};vc.useEffectEvent=Wf;var gm={readContext:ft,use:zo,useCallback:lm,useContext:ft,useEffect:fc,useImperativeHandle:nm,useInsertionEffect:em,useLayoutEffect:tm,useMemo:im,useReducer:cc,useRef:$f,useState:function(){return cc(Ea)},useDebugValue:mc,useDeferredValue:function(e,t){var n=We();return Ge===null?pc(n,e,t):om(n,Ge.memoizedState,e,t)},useTransition:function(){var e=cc(Ea)[0],t=We().memoizedState;return[typeof e=="boolean"?e:ii(e),t]},useSyncExternalStore:zf,useId:um,useHostTransitionStatus:gc,useFormState:Zf,useActionState:Zf,useOptimistic:function(e,t){var n=We();return Ge!==null?Uf(n,Ge,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:rc,useCacheRefresh:dm};gm.useEffectEvent=Wf;function bc(e,t,n,i){t=e.memoizedState,n=n(i,t),n=n==null?t:b({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Sc={enqueueSetState:function(e,t,n){e=e._reactInternals;var i=Dt(),s=Fa(i);s.payload=t,n!=null&&(s.callback=n),t=Va(e,s,i),t!==null&&(Ct(t,e,i),ti(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var i=Dt(),s=Fa(i);s.tag=1,s.payload=t,n!=null&&(s.callback=n),t=Va(e,s,i),t!==null&&(Ct(t,e,i),ti(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Dt(),i=Fa(n);i.tag=2,t!=null&&(i.callback=t),t=Va(e,i,n),t!==null&&(Ct(t,e,n),ti(t,e,n))}};function ym(e,t,n,i,s,u,g){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(i,u,g):t.prototype&&t.prototype.isPureReactComponent?!Yl(n,i)||!Yl(s,u):!0}function vm(e,t,n,i){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,i),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,i),t.state!==e&&Sc.enqueueReplaceState(t,t.state,null)}function En(e,t){var n=t;if("ref"in t){n={};for(var i in t)i!=="ref"&&(n[i]=t[i])}if(e=e.defaultProps){n===t&&(n=b({},n));for(var s in e)n[s]===void 0&&(n[s]=e[s])}return n}function bm(e){yo(e)}function Sm(e){console.error(e)}function xm(e){yo(e)}function Po(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(i){setTimeout(function(){throw i})}}function _m(e,t,n){try{var i=e.onCaughtError;i(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(s){setTimeout(function(){throw s})}}function xc(e,t,n){return n=Fa(n),n.tag=3,n.payload={element:null},n.callback=function(){Po(e,t)},n}function Tm(e){return e=Fa(e),e.tag=3,e}function Nm(e,t,n,i){var s=n.type.getDerivedStateFromError;if(typeof s=="function"){var u=i.value;e.payload=function(){return s(u)},e.callback=function(){_m(t,n,i)}}var g=n.stateNode;g!==null&&typeof g.componentDidCatch=="function"&&(e.callback=function(){_m(t,n,i),typeof s!="function"&&($a===null?$a=new Set([this]):$a.add(this));var S=i.stack;this.componentDidCatch(i.value,{componentStack:S!==null?S:""})})}function yb(e,t,n,i,s){if(n.flags|=32768,i!==null&&typeof i=="object"&&typeof i.then=="function"){if(t=n.alternate,t!==null&&nl(t,n,s,!0),n=jt.current,n!==null){switch(n.tag){case 31:case 13:return Yt===null?Jo():n.alternate===null&&Ze===0&&(Ze=3),n.flags&=-257,n.flags|=65536,n.lanes=s,i===Co?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([i]):t.add(i),Kc(e,i,s)),!1;case 22:return n.flags|=65536,i===Co?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([i])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([i]):n.add(i)),Kc(e,i,s)),!1}throw Error(o(435,n.tag))}return Kc(e,i,s),Jo(),!1}if(Ee)return t=jt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=s,i!==Ps&&(e=Error(o(422),{cause:i}),Zl(Bt(e,n)))):(i!==Ps&&(t=Error(o(423),{cause:i}),Zl(Bt(t,n))),e=e.current.alternate,e.flags|=65536,s&=-s,e.lanes|=s,i=Bt(i,n),s=xc(e.stateNode,i,s),$s(e,s),Ze!==4&&(Ze=2)),!1;var u=Error(o(520),{cause:i});if(u=Bt(u,n),hi===null?hi=[u]:hi.push(u),Ze!==4&&(Ze=2),t===null)return!0;i=Bt(i,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=s&-s,n.lanes|=e,e=xc(n.stateNode,i,e),$s(n,e),!1;case 1:if(t=n.type,u=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||u!==null&&typeof u.componentDidCatch=="function"&&($a===null||!$a.has(u))))return n.flags|=65536,s&=-s,n.lanes|=s,s=Tm(s),Nm(s,e,n,i),$s(n,s),!1}n=n.return}while(n!==null);return!1}var _c=Error(o(461)),at=!1;function mt(e,t,n,i){t.child=e===null?wf(t,null,n,i):Nn(t,e.child,n,i)}function Am(e,t,n,i,s){n=n.render;var u=t.ref;if("ref"in i){var g={};for(var S in i)S!=="ref"&&(g[S]=i[S])}else g=i;return Sn(t),i=nc(e,t,n,g,u,s),S=lc(),e!==null&&!at?(ic(e,t,s),Ca(e,t,s)):(Ee&&S&&Gs(t),t.flags|=1,mt(e,t,i,s),t.child)}function Em(e,t,n,i,s){if(e===null){var u=n.type;return typeof u=="function"&&!zs(u)&&u.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=u,Cm(e,t,u,i,s)):(e=xo(n.type,null,i,t,t.mode,s),e.ref=t.ref,e.return=t,t.child=e)}if(u=e.child,!Mc(e,s)){var g=u.memoizedProps;if(n=n.compare,n=n!==null?n:Yl,n(g,i)&&e.ref===t.ref)return Ca(e,t,s)}return t.flags|=1,e=xa(u,i),e.ref=t.ref,e.return=t,t.child=e}function Cm(e,t,n,i,s){if(e!==null){var u=e.memoizedProps;if(Yl(u,i)&&e.ref===t.ref)if(at=!1,t.pendingProps=i=u,Mc(e,s))(e.flags&131072)!==0&&(at=!0);else return t.lanes=e.lanes,Ca(e,t,s)}return Tc(e,t,n,i,s)}function wm(e,t,n,i){var s=i.children,u=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),i.mode==="hidden"){if((t.flags&128)!==0){if(u=u!==null?u.baseLanes|n:n,e!==null){for(i=t.child=e.child,s=0;i!==null;)s=s|i.lanes|i.childLanes,i=i.sibling;i=s&~u}else i=0,t.child=null;return Im(e,t,u,n,i)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Ao(t,u!==null?u.cachePool:null),u!==null?Rf(t,u):Ws(),Of(t);else return i=t.lanes=536870912,Im(e,t,u!==null?u.baseLanes|n:n,n,i)}else u!==null?(Ao(t,u.cachePool),Rf(t,u),Ya(),t.memoizedState=null):(e!==null&&Ao(t,null),Ws(),Ya());return mt(e,t,s,n),t.child}function si(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Im(e,t,n,i,s){var u=Ys();return u=u===null?null:{parent:et._currentValue,pool:u},t.memoizedState={baseLanes:n,cachePool:u},e!==null&&Ao(t,null),Ws(),Of(t),e!==null&&nl(e,t,i,!0),t.childLanes=s,null}function Uo(e,t){return t=Bo({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Mm(e,t,n){return Nn(t,e.child,null,n),e=Uo(t,t.pendingProps),e.flags|=2,kt(t),t.memoizedState=null,e}function vb(e,t,n){var i=t.pendingProps,s=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(Ee){if(i.mode==="hidden")return e=Uo(t,i),t.lanes=536870912,si(null,e);if(tc(t),(e=Fe)?(e=Hp(e,Kt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:qa!==null?{id:oa,overflow:ra}:null,retryLane:536870912,hydrationErrors:null},n=mf(e),n.return=t,t.child=n,dt=t,Fe=null)):e=null,e===null)throw Ua(t);return t.lanes=536870912,null}return Uo(t,i)}var u=e.memoizedState;if(u!==null){var g=u.dehydrated;if(tc(t),s)if(t.flags&256)t.flags&=-257,t=Mm(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(o(558));else if(at||nl(e,t,n,!1),s=(n&e.childLanes)!==0,at||s){if(i=Ue,i!==null&&(g=bd(i,n),g!==0&&g!==u.retryLane))throw u.retryLane=g,gn(e,g),Ct(i,e,g),_c;Jo(),t=Mm(e,t,n)}else e=u.treeContext,Fe=Xt(g.nextSibling),dt=t,Ee=!0,Pa=null,Kt=!1,e!==null&&gf(t,e),t=Uo(t,i),t.flags|=4096;return t}return e=xa(e.child,{mode:i.mode,children:i.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Ho(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(o(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Tc(e,t,n,i,s){return Sn(t),n=nc(e,t,n,i,void 0,s),i=lc(),e!==null&&!at?(ic(e,t,s),Ca(e,t,s)):(Ee&&i&&Gs(t),t.flags|=1,mt(e,t,n,s),t.child)}function Rm(e,t,n,i,s,u){return Sn(t),t.updateQueue=null,n=kf(t,i,n,s),jf(e),i=lc(),e!==null&&!at?(ic(e,t,u),Ca(e,t,u)):(Ee&&i&&Gs(t),t.flags|=1,mt(e,t,n,u),t.child)}function Om(e,t,n,i,s){if(Sn(t),t.stateNode===null){var u=Wn,g=n.contextType;typeof g=="object"&&g!==null&&(u=ft(g)),u=new n(i,u),t.memoizedState=u.state!==null&&u.state!==void 0?u.state:null,u.updater=Sc,t.stateNode=u,u._reactInternals=t,u=t.stateNode,u.props=i,u.state=t.memoizedState,u.refs={},Qs(t),g=n.contextType,u.context=typeof g=="object"&&g!==null?ft(g):Wn,u.state=t.memoizedState,g=n.getDerivedStateFromProps,typeof g=="function"&&(bc(t,n,g,i),u.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof u.getSnapshotBeforeUpdate=="function"||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(g=u.state,typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount(),g!==u.state&&Sc.enqueueReplaceState(u,u.state,null),ni(t,i,u,s),ai(),u.state=t.memoizedState),typeof u.componentDidMount=="function"&&(t.flags|=4194308),i=!0}else if(e===null){u=t.stateNode;var S=t.memoizedProps,E=En(n,S);u.props=E;var P=u.context,F=n.contextType;g=Wn,typeof F=="object"&&F!==null&&(g=ft(F));var X=n.getDerivedStateFromProps;F=typeof X=="function"||typeof u.getSnapshotBeforeUpdate=="function",S=t.pendingProps!==S,F||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(S||P!==g)&&vm(t,u,i,g),Ba=!1;var U=t.memoizedState;u.state=U,ni(t,i,u,s),ai(),P=t.memoizedState,S||U!==P||Ba?(typeof X=="function"&&(bc(t,n,X,i),P=t.memoizedState),(E=Ba||ym(t,n,E,i,U,P,g))?(F||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount()),typeof u.componentDidMount=="function"&&(t.flags|=4194308)):(typeof u.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=i,t.memoizedState=P),u.props=i,u.state=P,u.context=g,i=E):(typeof u.componentDidMount=="function"&&(t.flags|=4194308),i=!1)}else{u=t.stateNode,Zs(e,t),g=t.memoizedProps,F=En(n,g),u.props=F,X=t.pendingProps,U=u.context,P=n.contextType,E=Wn,typeof P=="object"&&P!==null&&(E=ft(P)),S=n.getDerivedStateFromProps,(P=typeof S=="function"||typeof u.getSnapshotBeforeUpdate=="function")||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(g!==X||U!==E)&&vm(t,u,i,E),Ba=!1,U=t.memoizedState,u.state=U,ni(t,i,u,s),ai();var H=t.memoizedState;g!==X||U!==H||Ba||e!==null&&e.dependencies!==null&&To(e.dependencies)?(typeof S=="function"&&(bc(t,n,S,i),H=t.memoizedState),(F=Ba||ym(t,n,F,i,U,H,E)||e!==null&&e.dependencies!==null&&To(e.dependencies))?(P||typeof u.UNSAFE_componentWillUpdate!="function"&&typeof u.componentWillUpdate!="function"||(typeof u.componentWillUpdate=="function"&&u.componentWillUpdate(i,H,E),typeof u.UNSAFE_componentWillUpdate=="function"&&u.UNSAFE_componentWillUpdate(i,H,E)),typeof u.componentDidUpdate=="function"&&(t.flags|=4),typeof u.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof u.componentDidUpdate!="function"||g===e.memoizedProps&&U===e.memoizedState||(t.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||g===e.memoizedProps&&U===e.memoizedState||(t.flags|=1024),t.memoizedProps=i,t.memoizedState=H),u.props=i,u.state=H,u.context=E,i=F):(typeof u.componentDidUpdate!="function"||g===e.memoizedProps&&U===e.memoizedState||(t.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||g===e.memoizedProps&&U===e.memoizedState||(t.flags|=1024),i=!1)}return u=i,Ho(e,t),i=(t.flags&128)!==0,u||i?(u=t.stateNode,n=i&&typeof n.getDerivedStateFromError!="function"?null:u.render(),t.flags|=1,e!==null&&i?(t.child=Nn(t,e.child,null,s),t.child=Nn(t,null,n,s)):mt(e,t,n,s),t.memoizedState=u.state,e=t.child):e=Ca(e,t,s),e}function jm(e,t,n,i){return vn(),t.flags|=256,mt(e,t,n,i),t.child}var Nc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Ac(e){return{baseLanes:e,cachePool:_f()}}function Ec(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=Lt),e}function km(e,t,n){var i=t.pendingProps,s=!1,u=(t.flags&128)!==0,g;if((g=u)||(g=e!==null&&e.memoizedState===null?!1:(Je.current&2)!==0),g&&(s=!0,t.flags&=-129),g=(t.flags&32)!==0,t.flags&=-33,e===null){if(Ee){if(s?Ka(t):Ya(),(e=Fe)?(e=Hp(e,Kt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:qa!==null?{id:oa,overflow:ra}:null,retryLane:536870912,hydrationErrors:null},n=mf(e),n.return=t,t.child=n,dt=t,Fe=null)):e=null,e===null)throw Ua(t);return su(e)?t.lanes=32:t.lanes=536870912,null}var S=i.children;return i=i.fallback,s?(Ya(),s=t.mode,S=Bo({mode:"hidden",children:S},s),i=yn(i,s,n,null),S.return=t,i.return=t,S.sibling=i,t.child=S,i=t.child,i.memoizedState=Ac(n),i.childLanes=Ec(e,g,n),t.memoizedState=Nc,si(null,i)):(Ka(t),Cc(t,S))}var E=e.memoizedState;if(E!==null&&(S=E.dehydrated,S!==null)){if(u)t.flags&256?(Ka(t),t.flags&=-257,t=wc(e,t,n)):t.memoizedState!==null?(Ya(),t.child=e.child,t.flags|=128,t=null):(Ya(),S=i.fallback,s=t.mode,i=Bo({mode:"visible",children:i.children},s),S=yn(S,s,n,null),S.flags|=2,i.return=t,S.return=t,i.sibling=S,t.child=i,Nn(t,e.child,null,n),i=t.child,i.memoizedState=Ac(n),i.childLanes=Ec(e,g,n),t.memoizedState=Nc,t=si(null,i));else if(Ka(t),su(S)){if(g=S.nextSibling&&S.nextSibling.dataset,g)var P=g.dgst;g=P,i=Error(o(419)),i.stack="",i.digest=g,Zl({value:i,source:null,stack:null}),t=wc(e,t,n)}else if(at||nl(e,t,n,!1),g=(n&e.childLanes)!==0,at||g){if(g=Ue,g!==null&&(i=bd(g,n),i!==0&&i!==E.retryLane))throw E.retryLane=i,gn(e,i),Ct(g,e,i),_c;ru(S)||Jo(),t=wc(e,t,n)}else ru(S)?(t.flags|=192,t.child=e.child,t=null):(e=E.treeContext,Fe=Xt(S.nextSibling),dt=t,Ee=!0,Pa=null,Kt=!1,e!==null&&gf(t,e),t=Cc(t,i.children),t.flags|=4096);return t}return s?(Ya(),S=i.fallback,s=t.mode,E=e.child,P=E.sibling,i=xa(E,{mode:"hidden",children:i.children}),i.subtreeFlags=E.subtreeFlags&65011712,P!==null?S=xa(P,S):(S=yn(S,s,n,null),S.flags|=2),S.return=t,i.return=t,i.sibling=S,t.child=i,si(null,i),i=t.child,S=e.child.memoizedState,S===null?S=Ac(n):(s=S.cachePool,s!==null?(E=et._currentValue,s=s.parent!==E?{parent:E,pool:E}:s):s=_f(),S={baseLanes:S.baseLanes|n,cachePool:s}),i.memoizedState=S,i.childLanes=Ec(e,g,n),t.memoizedState=Nc,si(e.child,i)):(Ka(t),n=e.child,e=n.sibling,n=xa(n,{mode:"visible",children:i.children}),n.return=t,n.sibling=null,e!==null&&(g=t.deletions,g===null?(t.deletions=[e],t.flags|=16):g.push(e)),t.child=n,t.memoizedState=null,n)}function Cc(e,t){return t=Bo({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Bo(e,t){return e=Ot(22,e,null,t),e.lanes=0,e}function wc(e,t,n){return Nn(t,e.child,null,n),e=Cc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function zm(e,t,n){e.lanes|=t;var i=e.alternate;i!==null&&(i.lanes|=t),Bs(e.return,t,n)}function Ic(e,t,n,i,s,u){var g=e.memoizedState;g===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:n,tailMode:s,treeForkCount:u}:(g.isBackwards=t,g.rendering=null,g.renderingStartTime=0,g.last=i,g.tail=n,g.tailMode=s,g.treeForkCount=u)}function Lm(e,t,n){var i=t.pendingProps,s=i.revealOrder,u=i.tail;i=i.children;var g=Je.current,S=(g&2)!==0;if(S?(g=g&1|2,t.flags|=128):g&=1,Q(Je,g),mt(e,t,i,n),i=Ee?Ql:0,!S&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&zm(e,n,t);else if(e.tag===19)zm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(s){case"forwards":for(n=t.child,s=null;n!==null;)e=n.alternate,e!==null&&Ro(e)===null&&(s=n),n=n.sibling;n=s,n===null?(s=t.child,t.child=null):(s=n.sibling,n.sibling=null),Ic(t,!1,s,n,u,i);break;case"backwards":case"unstable_legacy-backwards":for(n=null,s=t.child,t.child=null;s!==null;){if(e=s.alternate,e!==null&&Ro(e)===null){t.child=s;break}e=s.sibling,s.sibling=n,n=s,s=e}Ic(t,!0,n,null,u,i);break;case"together":Ic(t,!1,null,null,void 0,i);break;default:t.memoizedState=null}return t.child}function Ca(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Za|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(nl(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(o(153));if(t.child!==null){for(e=t.child,n=xa(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=xa(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Mc(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&To(e)))}function bb(e,t,n){switch(t.tag){case 3:je(t,t.stateNode.containerInfo),Ha(t,et,e.memoizedState.cache),vn();break;case 27:case 5:Xe(t);break;case 4:je(t,t.stateNode.containerInfo);break;case 10:Ha(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,tc(t),null;break;case 13:var i=t.memoizedState;if(i!==null)return i.dehydrated!==null?(Ka(t),t.flags|=128,null):(n&t.child.childLanes)!==0?km(e,t,n):(Ka(t),e=Ca(e,t,n),e!==null?e.sibling:null);Ka(t);break;case 19:var s=(e.flags&128)!==0;if(i=(n&t.childLanes)!==0,i||(nl(e,t,n,!1),i=(n&t.childLanes)!==0),s){if(i)return Lm(e,t,n);t.flags|=128}if(s=t.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),Q(Je,Je.current),i)break;return null;case 22:return t.lanes=0,wm(e,t,n,t.pendingProps);case 24:Ha(t,et,e.memoizedState.cache)}return Ca(e,t,n)}function Dm(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)at=!0;else{if(!Mc(e,n)&&(t.flags&128)===0)return at=!1,bb(e,t,n);at=(e.flags&131072)!==0}else at=!1,Ee&&(t.flags&1048576)!==0&&hf(t,Ql,t.index);switch(t.lanes=0,t.tag){case 16:e:{var i=t.pendingProps;if(e=_n(t.elementType),t.type=e,typeof e=="function")zs(e)?(i=En(e,i),t.tag=1,t=Om(null,t,e,i,n)):(t.tag=0,t=Tc(null,t,e,i,n));else{if(e!=null){var s=e.$$typeof;if(s===V){t.tag=11,t=Am(null,t,e,i,n);break e}else if(s===I){t.tag=14,t=Em(null,t,e,i,n);break e}}throw t=W(e)||e,Error(o(306,t,""))}}return t;case 0:return Tc(e,t,t.type,t.pendingProps,n);case 1:return i=t.type,s=En(i,t.pendingProps),Om(e,t,i,s,n);case 3:e:{if(je(t,t.stateNode.containerInfo),e===null)throw Error(o(387));i=t.pendingProps;var u=t.memoizedState;s=u.element,Zs(e,t),ni(t,i,null,n);var g=t.memoizedState;if(i=g.cache,Ha(t,et,i),i!==u.cache&&Fs(t,[et],n,!0),ai(),i=g.element,u.isDehydrated)if(u={element:i,isDehydrated:!1,cache:g.cache},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){t=jm(e,t,i,n);break e}else if(i!==s){s=Bt(Error(o(424)),t),Zl(s),t=jm(e,t,i,n);break e}else for(e=t.stateNode.containerInfo,e.nodeType===9?e=e.body:e=e.nodeName==="HTML"?e.ownerDocument.body:e,Fe=Xt(e.firstChild),dt=t,Ee=!0,Pa=null,Kt=!0,n=wf(t,null,i,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(vn(),i===s){t=Ca(e,t,n);break e}mt(e,t,i,n)}t=t.child}return t;case 26:return Ho(e,t),e===null?(n=Xp(t.type,null,t.pendingProps,null))?t.memoizedState=n:Ee||(n=t.type,e=t.pendingProps,i=ir(de.current).createElement(n),i[ut]=t,i[xt]=e,pt(i,n,e),ot(i),t.stateNode=i):t.memoizedState=Xp(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Xe(t),e===null&&Ee&&(i=t.stateNode=Vp(t.type,t.pendingProps,de.current),dt=t,Kt=!0,s=Fe,tn(t.type)?(cu=s,Fe=Xt(i.firstChild)):Fe=s),mt(e,t,t.pendingProps.children,n),Ho(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Ee&&((s=i=Fe)&&(i=Qb(i,t.type,t.pendingProps,Kt),i!==null?(t.stateNode=i,dt=t,Fe=Xt(i.firstChild),Kt=!1,s=!0):s=!1),s||Ua(t)),Xe(t),s=t.type,u=t.pendingProps,g=e!==null?e.memoizedProps:null,i=u.children,lu(s,u)?i=null:g!==null&&lu(s,g)&&(t.flags|=32),t.memoizedState!==null&&(s=nc(e,t,ub,null,null,n),Ti._currentValue=s),Ho(e,t),mt(e,t,i,n),t.child;case 6:return e===null&&Ee&&((e=n=Fe)&&(n=Zb(n,t.pendingProps,Kt),n!==null?(t.stateNode=n,dt=t,Fe=null,e=!0):e=!1),e||Ua(t)),null;case 13:return km(e,t,n);case 4:return je(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=Nn(t,null,i,n):mt(e,t,i,n),t.child;case 11:return Am(e,t,t.type,t.pendingProps,n);case 7:return mt(e,t,t.pendingProps,n),t.child;case 8:return mt(e,t,t.pendingProps.children,n),t.child;case 12:return mt(e,t,t.pendingProps.children,n),t.child;case 10:return i=t.pendingProps,Ha(t,t.type,i.value),mt(e,t,i.children,n),t.child;case 9:return s=t.type._context,i=t.pendingProps.children,Sn(t),s=ft(s),i=i(s),t.flags|=1,mt(e,t,i,n),t.child;case 14:return Em(e,t,t.type,t.pendingProps,n);case 15:return Cm(e,t,t.type,t.pendingProps,n);case 19:return Lm(e,t,n);case 31:return vb(e,t,n);case 22:return wm(e,t,n,t.pendingProps);case 24:return Sn(t),i=ft(et),e===null?(s=Ys(),s===null&&(s=Ue,u=Vs(),s.pooledCache=u,u.refCount++,u!==null&&(s.pooledCacheLanes|=n),s=u),t.memoizedState={parent:i,cache:s},Qs(t),Ha(t,et,s)):((e.lanes&n)!==0&&(Zs(e,t),ni(t,null,null,n),ai()),s=e.memoizedState,u=t.memoizedState,s.parent!==i?(s={parent:i,cache:i},t.memoizedState=s,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=s),Ha(t,et,i)):(i=u.cache,Ha(t,et,i),i!==s.cache&&Fs(t,[et],n,!0))),mt(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(o(156,t.tag))}function wa(e){e.flags|=4}function Rc(e,t,n,i,s){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(s&335544128)===s)if(e.stateNode.complete)e.flags|=8192;else if(up())e.flags|=8192;else throw Tn=Co,Xs}else e.flags&=-16777217}function Gm(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Wp(t))if(up())e.flags|=8192;else throw Tn=Co,Xs}function Fo(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?gd():536870912,e.lanes|=t,hl|=t)}function ci(e,t){if(!Ee)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 i=null;n!==null;)n.alternate!==null&&(i=n),n=n.sibling;i===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:i.sibling=null}}function Ve(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,i=0;if(t)for(var s=e.child;s!==null;)n|=s.lanes|s.childLanes,i|=s.subtreeFlags&65011712,i|=s.flags&65011712,s.return=e,s=s.sibling;else for(s=e.child;s!==null;)n|=s.lanes|s.childLanes,i|=s.subtreeFlags,i|=s.flags,s.return=e,s=s.sibling;return e.subtreeFlags|=i,e.childLanes=n,t}function Sb(e,t,n){var i=t.pendingProps;switch(qs(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ve(t),null;case 1:return Ve(t),null;case 3:return n=t.stateNode,i=null,e!==null&&(i=e.memoizedState.cache),t.memoizedState.cache!==i&&(t.flags|=2048),Na(et),$(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(al(t)?wa(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Us())),Ve(t),null;case 26:var s=t.type,u=t.memoizedState;return e===null?(wa(t),u!==null?(Ve(t),Gm(t,u)):(Ve(t),Rc(t,s,null,i,n))):u?u!==e.memoizedState?(wa(t),Ve(t),Gm(t,u)):(Ve(t),t.flags&=-16777217):(e=e.memoizedProps,e!==i&&wa(t),Ve(t),Rc(t,s,e,i,n)),null;case 27:if(lt(t),n=de.current,s=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==i&&wa(t);else{if(!i){if(t.stateNode===null)throw Error(o(166));return Ve(t),null}e=ne.current,al(t)?yf(t):(e=Vp(s,i,n),t.stateNode=e,wa(t))}return Ve(t),null;case 5:if(lt(t),s=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==i&&wa(t);else{if(!i){if(t.stateNode===null)throw Error(o(166));return Ve(t),null}if(u=ne.current,al(t))yf(t);else{var g=ir(de.current);switch(u){case 1:u=g.createElementNS("http://www.w3.org/2000/svg",s);break;case 2:u=g.createElementNS("http://www.w3.org/1998/Math/MathML",s);break;default:switch(s){case"svg":u=g.createElementNS("http://www.w3.org/2000/svg",s);break;case"math":u=g.createElementNS("http://www.w3.org/1998/Math/MathML",s);break;case"script":u=g.createElement("div"),u.innerHTML="<script><\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof i.is=="string"?g.createElement("select",{is:i.is}):g.createElement("select"),i.multiple?u.multiple=!0:i.size&&(u.size=i.size);break;default:u=typeof i.is=="string"?g.createElement(s,{is:i.is}):g.createElement(s)}}u[ut]=t,u[xt]=i;e:for(g=t.child;g!==null;){if(g.tag===5||g.tag===6)u.appendChild(g.stateNode);else if(g.tag!==4&&g.tag!==27&&g.child!==null){g.child.return=g,g=g.child;continue}if(g===t)break e;for(;g.sibling===null;){if(g.return===null||g.return===t)break e;g=g.return}g.sibling.return=g.return,g=g.sibling}t.stateNode=u;e:switch(pt(u,s,i),s){case"button":case"input":case"select":case"textarea":i=!!i.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&wa(t)}}return Ve(t),Rc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==i&&wa(t);else{if(typeof i!="string"&&t.stateNode===null)throw Error(o(166));if(e=de.current,al(t)){if(e=t.stateNode,n=t.memoizedProps,i=null,s=dt,s!==null)switch(s.tag){case 27:case 5:i=s.memoizedProps}e[ut]=t,e=!!(e.nodeValue===n||i!==null&&i.suppressHydrationWarning===!0||kp(e.nodeValue,n)),e||Ua(t,!0)}else e=ir(e).createTextNode(i),e[ut]=t,t.stateNode=e}return Ve(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(i=al(t),n!==null){if(e===null){if(!i)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[ut]=t}else vn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ve(t),e=!1}else n=Us(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(kt(t),t):(kt(t),null);if((t.flags&128)!==0)throw Error(o(558))}return Ve(t),null;case 13:if(i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(s=al(t),i!==null&&i.dehydrated!==null){if(e===null){if(!s)throw Error(o(318));if(s=t.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(o(317));s[ut]=t}else vn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ve(t),s=!1}else s=Us(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=s),s=!0;if(!s)return t.flags&256?(kt(t),t):(kt(t),null)}return kt(t),(t.flags&128)!==0?(t.lanes=n,t):(n=i!==null,e=e!==null&&e.memoizedState!==null,n&&(i=t.child,s=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(s=i.alternate.memoizedState.cachePool.pool),u=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(u=i.memoizedState.cachePool.pool),u!==s&&(i.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Fo(t,t.updateQueue),Ve(t),null);case 4:return $(),e===null&&Wc(t.stateNode.containerInfo),Ve(t),null;case 10:return Na(t.type),Ve(t),null;case 19:if(k(Je),i=t.memoizedState,i===null)return Ve(t),null;if(s=(t.flags&128)!==0,u=i.rendering,u===null)if(s)ci(i,!1);else{if(Ze!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(u=Ro(e),u!==null){for(t.flags|=128,ci(i,!1),e=u.updateQueue,t.updateQueue=e,Fo(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ff(n,e),n=n.sibling;return Q(Je,Je.current&1|2),Ee&&_a(t,i.treeForkCount),t.child}e=e.sibling}i.tail!==null&&Ke()>Qo&&(t.flags|=128,s=!0,ci(i,!1),t.lanes=4194304)}else{if(!s)if(e=Ro(u),e!==null){if(t.flags|=128,s=!0,e=e.updateQueue,t.updateQueue=e,Fo(t,e),ci(i,!0),i.tail===null&&i.tailMode==="hidden"&&!u.alternate&&!Ee)return Ve(t),null}else 2*Ke()-i.renderingStartTime>Qo&&n!==536870912&&(t.flags|=128,s=!0,ci(i,!1),t.lanes=4194304);i.isBackwards?(u.sibling=t.child,t.child=u):(e=i.last,e!==null?e.sibling=u:t.child=u,i.last=u)}return i.tail!==null?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=Ke(),e.sibling=null,n=Je.current,Q(Je,s?n&1|2:n&1),Ee&&_a(t,i.treeForkCount),e):(Ve(t),null);case 22:case 23:return kt(t),ec(),i=t.memoizedState!==null,e!==null?e.memoizedState!==null!==i&&(t.flags|=8192):i&&(t.flags|=8192),i?(n&536870912)!==0&&(t.flags&128)===0&&(Ve(t),t.subtreeFlags&6&&(t.flags|=8192)):Ve(t),n=t.updateQueue,n!==null&&Fo(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),i=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),i!==n&&(t.flags|=2048),e!==null&&k(xn),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Na(et),Ve(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function xb(e,t){switch(qs(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Na(et),$(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return lt(t),null;case 31:if(t.memoizedState!==null){if(kt(t),t.alternate===null)throw Error(o(340));vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(kt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return k(Je),null;case 4:return $(),null;case 10:return Na(t.type),null;case 22:case 23:return kt(t),ec(),e!==null&&k(xn),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Na(et),null;case 25:return null;default:return null}}function qm(e,t){switch(qs(t),t.tag){case 3:Na(et),$();break;case 26:case 27:case 5:lt(t);break;case 4:$();break;case 31:t.memoizedState!==null&&kt(t);break;case 13:kt(t);break;case 19:k(Je);break;case 10:Na(t.type);break;case 22:case 23:kt(t),ec(),e!==null&&k(xn);break;case 24:Na(et)}}function ui(e,t){try{var n=t.updateQueue,i=n!==null?n.lastEffect:null;if(i!==null){var s=i.next;n=s;do{if((n.tag&e)===e){i=void 0;var u=n.create,g=n.inst;i=u(),g.destroy=i}n=n.next}while(n!==s)}}catch(S){Le(t,t.return,S)}}function Xa(e,t,n){try{var i=t.updateQueue,s=i!==null?i.lastEffect:null;if(s!==null){var u=s.next;i=u;do{if((i.tag&e)===e){var g=i.inst,S=g.destroy;if(S!==void 0){g.destroy=void 0,s=t;var E=n,P=S;try{P()}catch(F){Le(s,E,F)}}}i=i.next}while(i!==u)}}catch(F){Le(t,t.return,F)}}function Pm(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Mf(t,n)}catch(i){Le(e,e.return,i)}}}function Um(e,t,n){n.props=En(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(i){Le(e,t,i)}}function di(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var i=e.stateNode;break;case 30:i=e.stateNode;break;default:i=e.stateNode}typeof n=="function"?e.refCleanup=n(i):n.current=i}}catch(s){Le(e,t,s)}}function sa(e,t){var n=e.ref,i=e.refCleanup;if(n!==null)if(typeof i=="function")try{i()}catch(s){Le(e,t,s)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(s){Le(e,t,s)}else n.current=null}function Hm(e){var t=e.type,n=e.memoizedProps,i=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&i.focus();break e;case"img":n.src?i.src=n.src:n.srcSet&&(i.srcset=n.srcSet)}}catch(s){Le(e,e.return,s)}}function Oc(e,t,n){try{var i=e.stateNode;Bb(i,e.type,n,t),i[xt]=t}catch(s){Le(e,e.return,s)}}function Bm(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&tn(e.type)||e.tag===4}function jc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Bm(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&&tn(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function kc(e,t,n){var i=e.tag;if(i===5||i===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=ba));else if(i!==4&&(i===27&&tn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(kc(e,t,n),e=e.sibling;e!==null;)kc(e,t,n),e=e.sibling}function Vo(e,t,n){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(i!==4&&(i===27&&tn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Vo(e,t,n),e=e.sibling;e!==null;)Vo(e,t,n),e=e.sibling}function Fm(e){var t=e.stateNode,n=e.memoizedProps;try{for(var i=e.type,s=t.attributes;s.length;)t.removeAttributeNode(s[0]);pt(t,i,n),t[ut]=e,t[xt]=n}catch(u){Le(e,e.return,u)}}var Ia=!1,nt=!1,zc=!1,Vm=typeof WeakSet=="function"?WeakSet:Set,rt=null;function _b(e,t){if(e=e.containerInfo,au=fr,e=af(e),ws(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var s=i.anchorOffset,u=i.focusNode;i=i.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var g=0,S=-1,E=-1,P=0,F=0,X=e,U=null;t:for(;;){for(var H;X!==n||s!==0&&X.nodeType!==3||(S=g+s),X!==u||i!==0&&X.nodeType!==3||(E=g+i),X.nodeType===3&&(g+=X.nodeValue.length),(H=X.firstChild)!==null;)U=X,X=H;for(;;){if(X===e)break t;if(U===n&&++P===s&&(S=g),U===u&&++F===i&&(E=g),(H=X.nextSibling)!==null)break;X=U,U=X.parentNode}X=H}n=S===-1||E===-1?null:{start:S,end:E}}else n=null}n=n||{start:0,end:0}}else n=null;for(nu={focusedElem:e,selectionRange:n},fr=!1,rt=t;rt!==null;)if(t=rt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,rt=e;else for(;rt!==null;){switch(t=rt,u=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)s=e[n],s.ref.impl=s.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&u!==null){e=void 0,n=t,s=u.memoizedProps,u=u.memoizedState,i=n.stateNode;try{var oe=En(n.type,s);e=i.getSnapshotBeforeUpdate(oe,u),i.__reactInternalSnapshotBeforeUpdate=e}catch(fe){Le(n,n.return,fe)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)ou(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":ou(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(o(163))}if(e=t.sibling,e!==null){e.return=t.return,rt=e;break}rt=t.return}}function Km(e,t,n){var i=n.flags;switch(n.tag){case 0:case 11:case 15:Ra(e,n),i&4&&ui(5,n);break;case 1:if(Ra(e,n),i&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(g){Le(n,n.return,g)}else{var s=En(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(s,t,e.__reactInternalSnapshotBeforeUpdate)}catch(g){Le(n,n.return,g)}}i&64&&Pm(n),i&512&&di(n,n.return);break;case 3:if(Ra(e,n),i&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{Mf(e,t)}catch(g){Le(n,n.return,g)}}break;case 27:t===null&&i&4&&Fm(n);case 26:case 5:Ra(e,n),t===null&&i&4&&Hm(n),i&512&&di(n,n.return);break;case 12:Ra(e,n);break;case 31:Ra(e,n),i&4&&Qm(e,n);break;case 13:Ra(e,n),i&4&&Zm(e,n),i&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Rb.bind(null,n),$b(e,n))));break;case 22:if(i=n.memoizedState!==null||Ia,!i){t=t!==null&&t.memoizedState!==null||nt,s=Ia;var u=nt;Ia=i,(nt=t)&&!u?Oa(e,n,(n.subtreeFlags&8772)!==0):Ra(e,n),Ia=s,nt=u}break;case 30:break;default:Ra(e,n)}}function Ym(e){var t=e.alternate;t!==null&&(e.alternate=null,Ym(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ds(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 Ye=null,Tt=!1;function Ma(e,t,n){for(n=n.child;n!==null;)Xm(e,t,n),n=n.sibling}function Xm(e,t,n){if(It&&typeof It.onCommitFiberUnmount=="function")try{It.onCommitFiberUnmount(zl,n)}catch{}switch(n.tag){case 26:nt||sa(n,t),Ma(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:nt||sa(n,t);var i=Ye,s=Tt;tn(n.type)&&(Ye=n.stateNode,Tt=!1),Ma(e,t,n),Si(n.stateNode),Ye=i,Tt=s;break;case 5:nt||sa(n,t);case 6:if(i=Ye,s=Tt,Ye=null,Ma(e,t,n),Ye=i,Tt=s,Ye!==null)if(Tt)try{(Ye.nodeType===9?Ye.body:Ye.nodeName==="HTML"?Ye.ownerDocument.body:Ye).removeChild(n.stateNode)}catch(u){Le(n,t,u)}else try{Ye.removeChild(n.stateNode)}catch(u){Le(n,t,u)}break;case 18:Ye!==null&&(Tt?(e=Ye,Pp(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),Tl(e)):Pp(Ye,n.stateNode));break;case 4:i=Ye,s=Tt,Ye=n.stateNode.containerInfo,Tt=!0,Ma(e,t,n),Ye=i,Tt=s;break;case 0:case 11:case 14:case 15:Xa(2,n,t),nt||Xa(4,n,t),Ma(e,t,n);break;case 1:nt||(sa(n,t),i=n.stateNode,typeof i.componentWillUnmount=="function"&&Um(n,t,i)),Ma(e,t,n);break;case 21:Ma(e,t,n);break;case 22:nt=(i=nt)||n.memoizedState!==null,Ma(e,t,n),nt=i;break;default:Ma(e,t,n)}}function Qm(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Tl(e)}catch(n){Le(t,t.return,n)}}}function Zm(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Tl(e)}catch(n){Le(t,t.return,n)}}function Tb(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Vm),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Vm),t;default:throw Error(o(435,e.tag))}}function Ko(e,t){var n=Tb(e);t.forEach(function(i){if(!n.has(i)){n.add(i);var s=Ob.bind(null,e,i);i.then(s,s)}})}function Nt(e,t){var n=t.deletions;if(n!==null)for(var i=0;i<n.length;i++){var s=n[i],u=e,g=t,S=g;e:for(;S!==null;){switch(S.tag){case 27:if(tn(S.type)){Ye=S.stateNode,Tt=!1;break e}break;case 5:Ye=S.stateNode,Tt=!1;break e;case 3:case 4:Ye=S.stateNode.containerInfo,Tt=!0;break e}S=S.return}if(Ye===null)throw Error(o(160));Xm(u,g,s),Ye=null,Tt=!1,u=s.alternate,u!==null&&(u.return=null),s.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)$m(t,e),t=t.sibling}var ea=null;function $m(e,t){var n=e.alternate,i=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Nt(t,e),At(e),i&4&&(Xa(3,e,e.return),ui(3,e),Xa(5,e,e.return));break;case 1:Nt(t,e),At(e),i&512&&(nt||n===null||sa(n,n.return)),i&64&&Ia&&(e=e.updateQueue,e!==null&&(i=e.callbacks,i!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?i:n.concat(i))));break;case 26:var s=ea;if(Nt(t,e),At(e),i&512&&(nt||n===null||sa(n,n.return)),i&4){var u=n!==null?n.memoizedState:null;if(i=e.memoizedState,n===null)if(i===null)if(e.stateNode===null){e:{i=e.type,n=e.memoizedProps,s=s.ownerDocument||s;t:switch(i){case"title":u=s.getElementsByTagName("title")[0],(!u||u[Gl]||u[ut]||u.namespaceURI==="http://www.w3.org/2000/svg"||u.hasAttribute("itemprop"))&&(u=s.createElement(i),s.head.insertBefore(u,s.querySelector("head > title"))),pt(u,i,n),u[ut]=e,ot(u),i=u;break e;case"link":var g=$p("link","href",s).get(i+(n.href||""));if(g){for(var S=0;S<g.length;S++)if(u=g[S],u.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&u.getAttribute("rel")===(n.rel==null?null:n.rel)&&u.getAttribute("title")===(n.title==null?null:n.title)&&u.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){g.splice(S,1);break t}}u=s.createElement(i),pt(u,i,n),s.head.appendChild(u);break;case"meta":if(g=$p("meta","content",s).get(i+(n.content||""))){for(S=0;S<g.length;S++)if(u=g[S],u.getAttribute("content")===(n.content==null?null:""+n.content)&&u.getAttribute("name")===(n.name==null?null:n.name)&&u.getAttribute("property")===(n.property==null?null:n.property)&&u.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&u.getAttribute("charset")===(n.charSet==null?null:n.charSet)){g.splice(S,1);break t}}u=s.createElement(i),pt(u,i,n),s.head.appendChild(u);break;default:throw Error(o(468,i))}u[ut]=e,ot(u),i=u}e.stateNode=i}else Jp(s,e.type,e.stateNode);else e.stateNode=Zp(s,i,e.memoizedProps);else u!==i?(u===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):u.count--,i===null?Jp(s,e.type,e.stateNode):Zp(s,i,e.memoizedProps)):i===null&&e.stateNode!==null&&Oc(e,e.memoizedProps,n.memoizedProps)}break;case 27:Nt(t,e),At(e),i&512&&(nt||n===null||sa(n,n.return)),n!==null&&i&4&&Oc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Nt(t,e),At(e),i&512&&(nt||n===null||sa(n,n.return)),e.flags&32){s=e.stateNode;try{Kn(s,"")}catch(oe){Le(e,e.return,oe)}}i&4&&e.stateNode!=null&&(s=e.memoizedProps,Oc(e,s,n!==null?n.memoizedProps:s)),i&1024&&(zc=!0);break;case 6:if(Nt(t,e),At(e),i&4){if(e.stateNode===null)throw Error(o(162));i=e.memoizedProps,n=e.stateNode;try{n.nodeValue=i}catch(oe){Le(e,e.return,oe)}}break;case 3:if(sr=null,s=ea,ea=or(t.containerInfo),Nt(t,e),ea=s,At(e),i&4&&n!==null&&n.memoizedState.isDehydrated)try{Tl(t.containerInfo)}catch(oe){Le(e,e.return,oe)}zc&&(zc=!1,Jm(e));break;case 4:i=ea,ea=or(e.stateNode.containerInfo),Nt(t,e),At(e),ea=i;break;case 12:Nt(t,e),At(e);break;case 31:Nt(t,e),At(e),i&4&&(i=e.updateQueue,i!==null&&(e.updateQueue=null,Ko(e,i)));break;case 13:Nt(t,e),At(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Xo=Ke()),i&4&&(i=e.updateQueue,i!==null&&(e.updateQueue=null,Ko(e,i)));break;case 22:s=e.memoizedState!==null;var E=n!==null&&n.memoizedState!==null,P=Ia,F=nt;if(Ia=P||s,nt=F||E,Nt(t,e),nt=F,Ia=P,At(e),i&8192)e:for(t=e.stateNode,t._visibility=s?t._visibility&-2:t._visibility|1,s&&(n===null||E||Ia||nt||Cn(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){E=n=t;try{if(u=E.stateNode,s)g=u.style,typeof g.setProperty=="function"?g.setProperty("display","none","important"):g.display="none";else{S=E.stateNode;var X=E.memoizedProps.style,U=X!=null&&X.hasOwnProperty("display")?X.display:null;S.style.display=U==null||typeof U=="boolean"?"":(""+U).trim()}}catch(oe){Le(E,E.return,oe)}}}else if(t.tag===6){if(n===null){E=t;try{E.stateNode.nodeValue=s?"":E.memoizedProps}catch(oe){Le(E,E.return,oe)}}}else if(t.tag===18){if(n===null){E=t;try{var H=E.stateNode;s?Up(H,!0):Up(E.stateNode,!1)}catch(oe){Le(E,E.return,oe)}}}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 e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}i&4&&(i=e.updateQueue,i!==null&&(n=i.retryQueue,n!==null&&(i.retryQueue=null,Ko(e,n))));break;case 19:Nt(t,e),At(e),i&4&&(i=e.updateQueue,i!==null&&(e.updateQueue=null,Ko(e,i)));break;case 30:break;case 21:break;default:Nt(t,e),At(e)}}function At(e){var t=e.flags;if(t&2){try{for(var n,i=e.return;i!==null;){if(Bm(i)){n=i;break}i=i.return}if(n==null)throw Error(o(160));switch(n.tag){case 27:var s=n.stateNode,u=jc(e);Vo(e,u,s);break;case 5:var g=n.stateNode;n.flags&32&&(Kn(g,""),n.flags&=-33);var S=jc(e);Vo(e,S,g);break;case 3:case 4:var E=n.stateNode.containerInfo,P=jc(e);kc(e,P,E);break;default:throw Error(o(161))}}catch(F){Le(e,e.return,F)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Jm(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Jm(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Ra(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)Km(e,t.alternate,t),t=t.sibling}function Cn(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Xa(4,t,t.return),Cn(t);break;case 1:sa(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Um(t,t.return,n),Cn(t);break;case 27:Si(t.stateNode);case 26:case 5:sa(t,t.return),Cn(t);break;case 22:t.memoizedState===null&&Cn(t);break;case 30:Cn(t);break;default:Cn(t)}e=e.sibling}}function Oa(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var i=t.alternate,s=e,u=t,g=u.flags;switch(u.tag){case 0:case 11:case 15:Oa(s,u,n),ui(4,u);break;case 1:if(Oa(s,u,n),i=u,s=i.stateNode,typeof s.componentDidMount=="function")try{s.componentDidMount()}catch(P){Le(i,i.return,P)}if(i=u,s=i.updateQueue,s!==null){var S=i.stateNode;try{var E=s.shared.hiddenCallbacks;if(E!==null)for(s.shared.hiddenCallbacks=null,s=0;s<E.length;s++)If(E[s],S)}catch(P){Le(i,i.return,P)}}n&&g&64&&Pm(u),di(u,u.return);break;case 27:Fm(u);case 26:case 5:Oa(s,u,n),n&&i===null&&g&4&&Hm(u),di(u,u.return);break;case 12:Oa(s,u,n);break;case 31:Oa(s,u,n),n&&g&4&&Qm(s,u);break;case 13:Oa(s,u,n),n&&g&4&&Zm(s,u);break;case 22:u.memoizedState===null&&Oa(s,u,n),di(u,u.return);break;case 30:break;default:Oa(s,u,n)}t=t.sibling}}function Lc(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&&$l(n))}function Dc(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&$l(e))}function ta(e,t,n,i){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Wm(e,t,n,i),t=t.sibling}function Wm(e,t,n,i){var s=t.flags;switch(t.tag){case 0:case 11:case 15:ta(e,t,n,i),s&2048&&ui(9,t);break;case 1:ta(e,t,n,i);break;case 3:ta(e,t,n,i),s&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&$l(e)));break;case 12:if(s&2048){ta(e,t,n,i),e=t.stateNode;try{var u=t.memoizedProps,g=u.id,S=u.onPostCommit;typeof S=="function"&&S(g,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(E){Le(t,t.return,E)}}else ta(e,t,n,i);break;case 31:ta(e,t,n,i);break;case 13:ta(e,t,n,i);break;case 23:break;case 22:u=t.stateNode,g=t.alternate,t.memoizedState!==null?u._visibility&2?ta(e,t,n,i):fi(e,t):u._visibility&2?ta(e,t,n,i):(u._visibility|=2,fl(e,t,n,i,(t.subtreeFlags&10256)!==0||!1)),s&2048&&Lc(g,t);break;case 24:ta(e,t,n,i),s&2048&&Dc(t.alternate,t);break;default:ta(e,t,n,i)}}function fl(e,t,n,i,s){for(s=s&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var u=e,g=t,S=n,E=i,P=g.flags;switch(g.tag){case 0:case 11:case 15:fl(u,g,S,E,s),ui(8,g);break;case 23:break;case 22:var F=g.stateNode;g.memoizedState!==null?F._visibility&2?fl(u,g,S,E,s):fi(u,g):(F._visibility|=2,fl(u,g,S,E,s)),s&&P&2048&&Lc(g.alternate,g);break;case 24:fl(u,g,S,E,s),s&&P&2048&&Dc(g.alternate,g);break;default:fl(u,g,S,E,s)}t=t.sibling}}function fi(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,i=t,s=i.flags;switch(i.tag){case 22:fi(n,i),s&2048&&Lc(i.alternate,i);break;case 24:fi(n,i),s&2048&&Dc(i.alternate,i);break;default:fi(n,i)}t=t.sibling}}var mi=8192;function ml(e,t,n){if(e.subtreeFlags&mi)for(e=e.child;e!==null;)ep(e,t,n),e=e.sibling}function ep(e,t,n){switch(e.tag){case 26:ml(e,t,n),e.flags&mi&&e.memoizedState!==null&&cS(n,ea,e.memoizedState,e.memoizedProps);break;case 5:ml(e,t,n);break;case 3:case 4:var i=ea;ea=or(e.stateNode.containerInfo),ml(e,t,n),ea=i;break;case 22:e.memoizedState===null&&(i=e.alternate,i!==null&&i.memoizedState!==null?(i=mi,mi=16777216,ml(e,t,n),mi=i):ml(e,t,n));break;default:ml(e,t,n)}}function tp(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 pi(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var i=t[n];rt=i,np(i,e)}tp(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)ap(e),e=e.sibling}function ap(e){switch(e.tag){case 0:case 11:case 15:pi(e),e.flags&2048&&Xa(9,e,e.return);break;case 3:pi(e);break;case 12:pi(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Yo(e)):pi(e);break;default:pi(e)}}function Yo(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var i=t[n];rt=i,np(i,e)}tp(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Xa(8,t,t.return),Yo(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Yo(t));break;default:Yo(t)}e=e.sibling}}function np(e,t){for(;rt!==null;){var n=rt;switch(n.tag){case 0:case 11:case 15:Xa(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var i=n.memoizedState.cachePool.pool;i!=null&&i.refCount++}break;case 24:$l(n.memoizedState.cache)}if(i=n.child,i!==null)i.return=n,rt=i;else e:for(n=e;rt!==null;){i=rt;var s=i.sibling,u=i.return;if(Ym(i),i===n){rt=null;break e}if(s!==null){s.return=u,rt=s;break e}rt=u}}}var Nb={getCacheForType:function(e){var t=ft(et),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ft(et).controller.signal}},Ab=typeof WeakMap=="function"?WeakMap:Map,Oe=0,Ue=null,_e=null,Ne=0,ze=0,zt=null,Qa=!1,pl=!1,Gc=!1,ja=0,Ze=0,Za=0,wn=0,qc=0,Lt=0,hl=0,hi=null,Et=null,Pc=!1,Xo=0,lp=0,Qo=1/0,Zo=null,$a=null,it=0,Ja=null,gl=null,ka=0,Uc=0,Hc=null,ip=null,gi=0,Bc=null;function Dt(){return(Oe&2)!==0&&Ne!==0?Ne&-Ne:L.T!==null?Qc():Sd()}function op(){if(Lt===0)if((Ne&536870912)===0||Ee){var e=no;no<<=1,(no&3932160)===0&&(no=262144),Lt=e}else Lt=536870912;return e=jt.current,e!==null&&(e.flags|=32),Lt}function Ct(e,t,n){(e===Ue&&(ze===2||ze===9)||e.cancelPendingCommit!==null)&&(yl(e,0),Wa(e,Ne,Lt,!1)),Dl(e,n),((Oe&2)===0||e!==Ue)&&(e===Ue&&((Oe&2)===0&&(wn|=n),Ze===4&&Wa(e,Ne,Lt,!1)),ca(e))}function rp(e,t,n){if((Oe&6)!==0)throw Error(o(327));var i=!n&&(t&127)===0&&(t&e.expiredLanes)===0||Ll(e,t),s=i?wb(e,t):Vc(e,t,!0),u=i;do{if(s===0){pl&&!i&&Wa(e,t,0,!1);break}else{if(n=e.current.alternate,u&&!Eb(n)){s=Vc(e,t,!1),u=!1;continue}if(s===2){if(u=t,e.errorRecoveryDisabledLanes&u)var g=0;else g=e.pendingLanes&-536870913,g=g!==0?g:g&536870912?536870912:0;if(g!==0){t=g;e:{var S=e;s=hi;var E=S.current.memoizedState.isDehydrated;if(E&&(yl(S,g).flags|=256),g=Vc(S,g,!1),g!==2){if(Gc&&!E){S.errorRecoveryDisabledLanes|=u,wn|=u,s=4;break e}u=Et,Et=s,u!==null&&(Et===null?Et=u:Et.push.apply(Et,u))}s=g}if(u=!1,s!==2)continue}}if(s===1){yl(e,0),Wa(e,t,0,!0);break}e:{switch(i=e,u=s,u){case 0:case 1:throw Error(o(345));case 4:if((t&4194048)!==t)break;case 6:Wa(i,t,Lt,!Qa);break e;case 2:Et=null;break;case 3:case 5:break;default:throw Error(o(329))}if((t&62914560)===t&&(s=Xo+300-Ke(),10<s)){if(Wa(i,t,Lt,!Qa),io(i,0,!0)!==0)break e;ka=t,i.timeoutHandle=Gp(sp.bind(null,i,n,Et,Zo,Pc,t,Lt,wn,hl,Qa,u,"Throttled",-0,0),s);break e}sp(i,n,Et,Zo,Pc,t,Lt,wn,hl,Qa,u,null,-0,0)}}break}while(!0);ca(e)}function sp(e,t,n,i,s,u,g,S,E,P,F,X,U,H){if(e.timeoutHandle=-1,X=t.subtreeFlags,X&8192||(X&16785408)===16785408){X={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:ba},ep(t,u,X);var oe=(u&62914560)===u?Xo-Ke():(u&4194048)===u?lp-Ke():0;if(oe=uS(X,oe),oe!==null){ka=u,e.cancelPendingCommit=oe(gp.bind(null,e,t,u,n,i,s,g,S,E,F,X,null,U,H)),Wa(e,u,g,!P);return}}gp(e,t,u,n,i,s,g,S,E)}function Eb(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 i=0;i<n.length;i++){var s=n[i],u=s.getSnapshot;s=s.value;try{if(!Rt(u(),s))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 Wa(e,t,n,i){t&=~qc,t&=~wn,e.suspendedLanes|=t,e.pingedLanes&=~t,i&&(e.warmLanes|=t),i=e.expirationTimes;for(var s=t;0<s;){var u=31-Mt(s),g=1<<u;i[u]=-1,s&=~g}n!==0&&yd(e,n,t)}function $o(){return(Oe&6)===0?(yi(0),!1):!0}function Fc(){if(_e!==null){if(ze===0)var e=_e.return;else e=_e,Ta=bn=null,oc(e),rl=null,Wl=0,e=_e;for(;e!==null;)qm(e.alternate,e),e=e.return;_e=null}}function yl(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Kb(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),ka=0,Fc(),Ue=e,_e=n=xa(e.current,null),Ne=t,ze=0,zt=null,Qa=!1,pl=Ll(e,t),Gc=!1,hl=Lt=qc=wn=Za=Ze=0,Et=hi=null,Pc=!1,(t&8)!==0&&(t|=t&32);var i=e.entangledLanes;if(i!==0)for(e=e.entanglements,i&=t;0<i;){var s=31-Mt(i),u=1<<s;t|=e[s],i&=~u}return ja=t,vo(),n}function cp(e,t){ge=null,L.H=ri,t===ol||t===Eo?(t=Af(),ze=3):t===Xs?(t=Af(),ze=4):ze=t===_c?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,zt=t,_e===null&&(Ze=1,Po(e,Bt(t,e.current)))}function up(){var e=jt.current;return e===null?!0:(Ne&4194048)===Ne?Yt===null:(Ne&62914560)===Ne||(Ne&536870912)!==0?e===Yt:!1}function dp(){var e=L.H;return L.H=ri,e===null?ri:e}function fp(){var e=L.A;return L.A=Nb,e}function Jo(){Ze=4,Qa||(Ne&4194048)!==Ne&&jt.current!==null||(pl=!0),(Za&134217727)===0&&(wn&134217727)===0||Ue===null||Wa(Ue,Ne,Lt,!1)}function Vc(e,t,n){var i=Oe;Oe|=2;var s=dp(),u=fp();(Ue!==e||Ne!==t)&&(Zo=null,yl(e,t)),t=!1;var g=Ze;e:do try{if(ze!==0&&_e!==null){var S=_e,E=zt;switch(ze){case 8:Fc(),g=6;break e;case 3:case 2:case 9:case 6:jt.current===null&&(t=!0);var P=ze;if(ze=0,zt=null,vl(e,S,E,P),n&&pl){g=0;break e}break;default:P=ze,ze=0,zt=null,vl(e,S,E,P)}}Cb(),g=Ze;break}catch(F){cp(e,F)}while(!0);return t&&e.shellSuspendCounter++,Ta=bn=null,Oe=i,L.H=s,L.A=u,_e===null&&(Ue=null,Ne=0,vo()),g}function Cb(){for(;_e!==null;)mp(_e)}function wb(e,t){var n=Oe;Oe|=2;var i=dp(),s=fp();Ue!==e||Ne!==t?(Zo=null,Qo=Ke()+500,yl(e,t)):pl=Ll(e,t);e:do try{if(ze!==0&&_e!==null){t=_e;var u=zt;t:switch(ze){case 1:ze=0,zt=null,vl(e,t,u,1);break;case 2:case 9:if(Tf(u)){ze=0,zt=null,pp(t);break}t=function(){ze!==2&&ze!==9||Ue!==e||(ze=7),ca(e)},u.then(t,t);break e;case 3:ze=7;break e;case 4:ze=5;break e;case 7:Tf(u)?(ze=0,zt=null,pp(t)):(ze=0,zt=null,vl(e,t,u,7));break;case 5:var g=null;switch(_e.tag){case 26:g=_e.memoizedState;case 5:case 27:var S=_e;if(g?Wp(g):S.stateNode.complete){ze=0,zt=null;var E=S.sibling;if(E!==null)_e=E;else{var P=S.return;P!==null?(_e=P,Wo(P)):_e=null}break t}}ze=0,zt=null,vl(e,t,u,5);break;case 6:ze=0,zt=null,vl(e,t,u,6);break;case 8:Fc(),Ze=6;break e;default:throw Error(o(462))}}Ib();break}catch(F){cp(e,F)}while(!0);return Ta=bn=null,L.H=i,L.A=s,Oe=n,_e!==null?0:(Ue=null,Ne=0,vo(),Ze)}function Ib(){for(;_e!==null&&!wt();)mp(_e)}function mp(e){var t=Dm(e.alternate,e,ja);e.memoizedProps=e.pendingProps,t===null?Wo(e):_e=t}function pp(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Rm(n,t,t.pendingProps,t.type,void 0,Ne);break;case 11:t=Rm(n,t,t.pendingProps,t.type.render,t.ref,Ne);break;case 5:oc(t);default:qm(n,t),t=_e=ff(t,ja),t=Dm(n,t,ja)}e.memoizedProps=e.pendingProps,t===null?Wo(e):_e=t}function vl(e,t,n,i){Ta=bn=null,oc(t),rl=null,Wl=0;var s=t.return;try{if(yb(e,s,t,n,Ne)){Ze=1,Po(e,Bt(n,e.current)),_e=null;return}}catch(u){if(s!==null)throw _e=s,u;Ze=1,Po(e,Bt(n,e.current)),_e=null;return}t.flags&32768?(Ee||i===1?e=!0:pl||(Ne&536870912)!==0?e=!1:(Qa=e=!0,(i===2||i===9||i===3||i===6)&&(i=jt.current,i!==null&&i.tag===13&&(i.flags|=16384))),hp(t,e)):Wo(t)}function Wo(e){var t=e;do{if((t.flags&32768)!==0){hp(t,Qa);return}e=t.return;var n=Sb(t.alternate,t,ja);if(n!==null){_e=n;return}if(t=t.sibling,t!==null){_e=t;return}_e=t=e}while(t!==null);Ze===0&&(Ze=5)}function hp(e,t){do{var n=xb(e.alternate,e);if(n!==null){n.flags&=32767,_e=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){_e=e;return}_e=e=n}while(e!==null);Ze=6,_e=null}function gp(e,t,n,i,s,u,g,S,E){e.cancelPendingCommit=null;do er();while(it!==0);if((Oe&6)!==0)throw Error(o(327));if(t!==null){if(t===e.current)throw Error(o(177));if(u=t.lanes|t.childLanes,u|=js,sv(e,n,u,g,S,E),e===Ue&&(_e=Ue=null,Ne=0),gl=t,Ja=e,ka=n,Uc=u,Hc=s,ip=i,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,jb(to,function(){return xp(),null})):(e.callbackNode=null,e.callbackPriority=0),i=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||i){i=L.T,L.T=null,s=D.p,D.p=2,g=Oe,Oe|=4;try{_b(e,t,n)}finally{Oe=g,D.p=s,L.T=i}}it=1,yp(),vp(),bp()}}function yp(){if(it===1){it=0;var e=Ja,t=gl,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=L.T,L.T=null;var i=D.p;D.p=2;var s=Oe;Oe|=4;try{$m(t,e);var u=nu,g=af(e.containerInfo),S=u.focusedElem,E=u.selectionRange;if(g!==S&&S&&S.ownerDocument&&tf(S.ownerDocument.documentElement,S)){if(E!==null&&ws(S)){var P=E.start,F=E.end;if(F===void 0&&(F=P),"selectionStart"in S)S.selectionStart=P,S.selectionEnd=Math.min(F,S.value.length);else{var X=S.ownerDocument||document,U=X&&X.defaultView||window;if(U.getSelection){var H=U.getSelection(),oe=S.textContent.length,fe=Math.min(E.start,oe),Pe=E.end===void 0?fe:Math.min(E.end,oe);!H.extend&&fe>Pe&&(g=Pe,Pe=fe,fe=g);var O=ef(S,fe),M=ef(S,Pe);if(O&&M&&(H.rangeCount!==1||H.anchorNode!==O.node||H.anchorOffset!==O.offset||H.focusNode!==M.node||H.focusOffset!==M.offset)){var q=X.createRange();q.setStart(O.node,O.offset),H.removeAllRanges(),fe>Pe?(H.addRange(q),H.extend(M.node,M.offset)):(q.setEnd(M.node,M.offset),H.addRange(q))}}}}for(X=[],H=S;H=H.parentNode;)H.nodeType===1&&X.push({element:H,left:H.scrollLeft,top:H.scrollTop});for(typeof S.focus=="function"&&S.focus(),S=0;S<X.length;S++){var Y=X[S];Y.element.scrollLeft=Y.left,Y.element.scrollTop=Y.top}}fr=!!au,nu=au=null}finally{Oe=s,D.p=i,L.T=n}}e.current=t,it=2}}function vp(){if(it===2){it=0;var e=Ja,t=gl,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=L.T,L.T=null;var i=D.p;D.p=2;var s=Oe;Oe|=4;try{Km(e,t.alternate,t)}finally{Oe=s,D.p=i,L.T=n}}it=3}}function bp(){if(it===4||it===3){it=0,ie();var e=Ja,t=gl,n=ka,i=ip;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?it=5:(it=0,gl=Ja=null,Sp(e,e.pendingLanes));var s=e.pendingLanes;if(s===0&&($a=null),cs(n),t=t.stateNode,It&&typeof It.onCommitFiberRoot=="function")try{It.onCommitFiberRoot(zl,t,void 0,(t.current.flags&128)===128)}catch{}if(i!==null){t=L.T,s=D.p,D.p=2,L.T=null;try{for(var u=e.onRecoverableError,g=0;g<i.length;g++){var S=i[g];u(S.value,{componentStack:S.stack})}}finally{L.T=t,D.p=s}}(ka&3)!==0&&er(),ca(e),s=e.pendingLanes,(n&261930)!==0&&(s&42)!==0?e===Bc?gi++:(gi=0,Bc=e):gi=0,yi(0)}}function Sp(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,$l(t)))}function er(){return yp(),vp(),bp(),xp()}function xp(){if(it!==5)return!1;var e=Ja,t=Uc;Uc=0;var n=cs(ka),i=L.T,s=D.p;try{D.p=32>n?32:n,L.T=null,n=Hc,Hc=null;var u=Ja,g=ka;if(it=0,gl=Ja=null,ka=0,(Oe&6)!==0)throw Error(o(331));var S=Oe;if(Oe|=4,ap(u.current),Wm(u,u.current,g,n),Oe=S,yi(0,!1),It&&typeof It.onPostCommitFiberRoot=="function")try{It.onPostCommitFiberRoot(zl,u)}catch{}return!0}finally{D.p=s,L.T=i,Sp(e,t)}}function _p(e,t,n){t=Bt(n,t),t=xc(e.stateNode,t,2),e=Va(e,t,2),e!==null&&(Dl(e,2),ca(e))}function Le(e,t,n){if(e.tag===3)_p(e,e,n);else for(;t!==null;){if(t.tag===3){_p(t,e,n);break}else if(t.tag===1){var i=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&($a===null||!$a.has(i))){e=Bt(n,e),n=Tm(2),i=Va(t,n,2),i!==null&&(Nm(n,i,t,e),Dl(i,2),ca(i));break}}t=t.return}}function Kc(e,t,n){var i=e.pingCache;if(i===null){i=e.pingCache=new Ab;var s=new Set;i.set(t,s)}else s=i.get(t),s===void 0&&(s=new Set,i.set(t,s));s.has(n)||(Gc=!0,s.add(n),e=Mb.bind(null,e,t,n),t.then(e,e))}function Mb(e,t,n){var i=e.pingCache;i!==null&&i.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ue===e&&(Ne&n)===n&&(Ze===4||Ze===3&&(Ne&62914560)===Ne&&300>Ke()-Xo?(Oe&2)===0&&yl(e,0):qc|=n,hl===Ne&&(hl=0)),ca(e)}function Tp(e,t){t===0&&(t=gd()),e=gn(e,t),e!==null&&(Dl(e,t),ca(e))}function Rb(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Tp(e,n)}function Ob(e,t){var n=0;switch(e.tag){case 31:case 13:var i=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:i=e.stateNode;break;case 22:i=e.stateNode._retryCache;break;default:throw Error(o(314))}i!==null&&i.delete(t),Tp(e,n)}function jb(e,t){return Z(e,t)}var tr=null,bl=null,Yc=!1,ar=!1,Xc=!1,en=0;function ca(e){e!==bl&&e.next===null&&(bl===null?tr=bl=e:bl=bl.next=e),ar=!0,Yc||(Yc=!0,zb())}function yi(e,t){if(!Xc&&ar){Xc=!0;do for(var n=!1,i=tr;i!==null;){if(e!==0){var s=i.pendingLanes;if(s===0)var u=0;else{var g=i.suspendedLanes,S=i.pingedLanes;u=(1<<31-Mt(42|e)+1)-1,u&=s&~(g&~S),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(n=!0,Cp(i,u))}else u=Ne,u=io(i,i===Ue?u:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),(u&3)===0||Ll(i,u)||(n=!0,Cp(i,u));i=i.next}while(n);Xc=!1}}function kb(){Np()}function Np(){ar=Yc=!1;var e=0;en!==0&&Vb()&&(e=en);for(var t=Ke(),n=null,i=tr;i!==null;){var s=i.next,u=Ap(i,t);u===0?(i.next=null,n===null?tr=s:n.next=s,s===null&&(bl=n)):(n=i,(e!==0||(u&3)!==0)&&(ar=!0)),i=s}it!==0&&it!==5||yi(e),en!==0&&(en=0)}function Ap(e,t){for(var n=e.suspendedLanes,i=e.pingedLanes,s=e.expirationTimes,u=e.pendingLanes&-62914561;0<u;){var g=31-Mt(u),S=1<<g,E=s[g];E===-1?((S&n)===0||(S&i)!==0)&&(s[g]=rv(S,t)):E<=t&&(e.expiredLanes|=S),u&=~S}if(t=Ue,n=Ne,n=io(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),i=e.callbackNode,n===0||e===t&&(ze===2||ze===9)||e.cancelPendingCommit!==null)return i!==null&&i!==null&&ke(i),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||Ll(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(i!==null&&ke(i),cs(n)){case 2:case 8:n=pd;break;case 32:n=to;break;case 268435456:n=hd;break;default:n=to}return i=Ep.bind(null,e),n=Z(n,i),e.callbackPriority=t,e.callbackNode=n,t}return i!==null&&i!==null&&ke(i),e.callbackPriority=2,e.callbackNode=null,2}function Ep(e,t){if(it!==0&&it!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(er()&&e.callbackNode!==n)return null;var i=Ne;return i=io(e,e===Ue?i:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),i===0?null:(rp(e,i,t),Ap(e,Ke()),e.callbackNode!=null&&e.callbackNode===n?Ep.bind(null,e):null)}function Cp(e,t){if(er())return null;rp(e,t,!0)}function zb(){Yb(function(){(Oe&6)!==0?Z(qt,kb):Np()})}function Qc(){if(en===0){var e=ll;e===0&&(e=ao,ao<<=1,(ao&261888)===0&&(ao=256)),en=e}return en}function wp(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:co(""+e)}function Ip(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 Lb(e,t,n,i,s){if(t==="submit"&&n&&n.stateNode===s){var u=wp((s[xt]||null).action),g=i.submitter;g&&(t=(t=g[xt]||null)?wp(t.formAction):g.getAttribute("formAction"),t!==null&&(u=t,g=null));var S=new po("action","action",null,i,s);e.push({event:S,listeners:[{instance:null,listener:function(){if(i.defaultPrevented){if(en!==0){var E=g?Ip(s,g):new FormData(s);hc(n,{pending:!0,data:E,method:s.method,action:u},null,E)}}else typeof u=="function"&&(S.preventDefault(),E=g?Ip(s,g):new FormData(s),hc(n,{pending:!0,data:E,method:s.method,action:u},u,E))},currentTarget:s}]})}}for(var Zc=0;Zc<Os.length;Zc++){var $c=Os[Zc],Db=$c.toLowerCase(),Gb=$c[0].toUpperCase()+$c.slice(1);Wt(Db,"on"+Gb)}Wt(of,"onAnimationEnd"),Wt(rf,"onAnimationIteration"),Wt(sf,"onAnimationStart"),Wt("dblclick","onDoubleClick"),Wt("focusin","onFocus"),Wt("focusout","onBlur"),Wt(eb,"onTransitionRun"),Wt(tb,"onTransitionStart"),Wt(ab,"onTransitionCancel"),Wt(cf,"onTransitionEnd"),Fn("onMouseEnter",["mouseout","mouseover"]),Fn("onMouseLeave",["mouseout","mouseover"]),Fn("onPointerEnter",["pointerout","pointerover"]),Fn("onPointerLeave",["pointerout","pointerover"]),fn("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),fn("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),fn("onBeforeInput",["compositionend","keypress","textInput","paste"]),fn("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),fn("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),fn("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var vi="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(" "),qb=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(vi));function Mp(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var i=e[n],s=i.event;i=i.listeners;e:{var u=void 0;if(t)for(var g=i.length-1;0<=g;g--){var S=i[g],E=S.instance,P=S.currentTarget;if(S=S.listener,E!==u&&s.isPropagationStopped())break e;u=S,s.currentTarget=P;try{u(s)}catch(F){yo(F)}s.currentTarget=null,u=E}else for(g=0;g<i.length;g++){if(S=i[g],E=S.instance,P=S.currentTarget,S=S.listener,E!==u&&s.isPropagationStopped())break e;u=S,s.currentTarget=P;try{u(s)}catch(F){yo(F)}s.currentTarget=null,u=E}}}}function Te(e,t){var n=t[us];n===void 0&&(n=t[us]=new Set);var i=e+"__bubble";n.has(i)||(Rp(t,e,2,!1),n.add(i))}function Jc(e,t,n){var i=0;t&&(i|=4),Rp(n,e,i,t)}var nr="_reactListening"+Math.random().toString(36).slice(2);function Wc(e){if(!e[nr]){e[nr]=!0,Td.forEach(function(n){n!=="selectionchange"&&(qb.has(n)||Jc(n,!1,e),Jc(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[nr]||(t[nr]=!0,Jc("selectionchange",!1,t))}}function Rp(e,t,n,i){switch(oh(t)){case 2:var s=mS;break;case 8:s=pS;break;default:s=pu}n=s.bind(null,t,n,e),s=void 0,!bs||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(s=!0),i?s!==void 0?e.addEventListener(t,n,{capture:!0,passive:s}):e.addEventListener(t,n,!0):s!==void 0?e.addEventListener(t,n,{passive:s}):e.addEventListener(t,n,!1)}function eu(e,t,n,i,s){var u=i;if((t&1)===0&&(t&2)===0&&i!==null)e:for(;;){if(i===null)return;var g=i.tag;if(g===3||g===4){var S=i.stateNode.containerInfo;if(S===s)break;if(g===4)for(g=i.return;g!==null;){var E=g.tag;if((E===3||E===4)&&g.stateNode.containerInfo===s)return;g=g.return}for(;S!==null;){if(g=Un(S),g===null)return;if(E=g.tag,E===5||E===6||E===26||E===27){i=u=g;continue e}S=S.parentNode}}i=i.return}zd(function(){var P=u,F=ys(n),X=[];e:{var U=uf.get(e);if(U!==void 0){var H=po,oe=e;switch(e){case"keypress":if(fo(n)===0)break e;case"keydown":case"keyup":H=Ov;break;case"focusin":oe="focus",H=Ts;break;case"focusout":oe="blur",H=Ts;break;case"beforeblur":case"afterblur":H=Ts;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":H=Gd;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":H=Sv;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":H=zv;break;case of:case rf:case sf:H=Tv;break;case cf:H=Dv;break;case"scroll":case"scrollend":H=vv;break;case"wheel":H=qv;break;case"copy":case"cut":case"paste":H=Av;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":H=Pd;break;case"toggle":case"beforetoggle":H=Uv}var fe=(t&4)!==0,Pe=!fe&&(e==="scroll"||e==="scrollend"),O=fe?U!==null?U+"Capture":null:U;fe=[];for(var M=P,q;M!==null;){var Y=M;if(q=Y.stateNode,Y=Y.tag,Y!==5&&Y!==26&&Y!==27||q===null||O===null||(Y=Pl(M,O),Y!=null&&fe.push(bi(M,Y,q))),Pe)break;M=M.return}0<fe.length&&(U=new H(U,oe,null,n,F),X.push({event:U,listeners:fe}))}}if((t&7)===0){e:{if(U=e==="mouseover"||e==="pointerover",H=e==="mouseout"||e==="pointerout",U&&n!==gs&&(oe=n.relatedTarget||n.fromElement)&&(Un(oe)||oe[Pn]))break e;if((H||U)&&(U=F.window===F?F:(U=F.ownerDocument)?U.defaultView||U.parentWindow:window,H?(oe=n.relatedTarget||n.toElement,H=P,oe=oe?Un(oe):null,oe!==null&&(Pe=f(oe),fe=oe.tag,oe!==Pe||fe!==5&&fe!==27&&fe!==6)&&(oe=null)):(H=null,oe=P),H!==oe)){if(fe=Gd,Y="onMouseLeave",O="onMouseEnter",M="mouse",(e==="pointerout"||e==="pointerover")&&(fe=Pd,Y="onPointerLeave",O="onPointerEnter",M="pointer"),Pe=H==null?U:ql(H),q=oe==null?U:ql(oe),U=new fe(Y,M+"leave",H,n,F),U.target=Pe,U.relatedTarget=q,Y=null,Un(F)===P&&(fe=new fe(O,M+"enter",oe,n,F),fe.target=q,fe.relatedTarget=Pe,Y=fe),Pe=Y,H&&oe)t:{for(fe=Pb,O=H,M=oe,q=0,Y=O;Y;Y=fe(Y))q++;Y=0;for(var ue=M;ue;ue=fe(ue))Y++;for(;0<q-Y;)O=fe(O),q--;for(;0<Y-q;)M=fe(M),Y--;for(;q--;){if(O===M||M!==null&&O===M.alternate){fe=O;break t}O=fe(O),M=fe(M)}fe=null}else fe=null;H!==null&&Op(X,U,H,fe,!1),oe!==null&&Pe!==null&&Op(X,Pe,oe,fe,!0)}}e:{if(U=P?ql(P):window,H=U.nodeName&&U.nodeName.toLowerCase(),H==="select"||H==="input"&&U.type==="file")var Me=Xd;else if(Kd(U))if(Qd)Me=$v;else{Me=Qv;var re=Xv}else H=U.nodeName,!H||H.toLowerCase()!=="input"||U.type!=="checkbox"&&U.type!=="radio"?P&&hs(P.elementType)&&(Me=Xd):Me=Zv;if(Me&&(Me=Me(e,P))){Yd(X,Me,n,F);break e}re&&re(e,U,P),e==="focusout"&&P&&U.type==="number"&&P.memoizedProps.value!=null&&ps(U,"number",U.value)}switch(re=P?ql(P):window,e){case"focusin":(Kd(re)||re.contentEditable==="true")&&(Zn=re,Is=P,Xl=null);break;case"focusout":Xl=Is=Zn=null;break;case"mousedown":Ms=!0;break;case"contextmenu":case"mouseup":case"dragend":Ms=!1,nf(X,n,F);break;case"selectionchange":if(Wv)break;case"keydown":case"keyup":nf(X,n,F)}var ve;if(As)e:{switch(e){case"compositionstart":var Ae="onCompositionStart";break e;case"compositionend":Ae="onCompositionEnd";break e;case"compositionupdate":Ae="onCompositionUpdate";break e}Ae=void 0}else Qn?Fd(e,n)&&(Ae="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(Ae="onCompositionStart");Ae&&(Ud&&n.locale!=="ko"&&(Qn||Ae!=="onCompositionStart"?Ae==="onCompositionEnd"&&Qn&&(ve=Ld()):(Ga=F,Ss="value"in Ga?Ga.value:Ga.textContent,Qn=!0)),re=lr(P,Ae),0<re.length&&(Ae=new qd(Ae,e,null,n,F),X.push({event:Ae,listeners:re}),ve?Ae.data=ve:(ve=Vd(n),ve!==null&&(Ae.data=ve)))),(ve=Bv?Fv(e,n):Vv(e,n))&&(Ae=lr(P,"onBeforeInput"),0<Ae.length&&(re=new qd("onBeforeInput","beforeinput",null,n,F),X.push({event:re,listeners:Ae}),re.data=ve)),Lb(X,e,P,n,F)}Mp(X,t)})}function bi(e,t,n){return{instance:e,listener:t,currentTarget:n}}function lr(e,t){for(var n=t+"Capture",i=[];e!==null;){var s=e,u=s.stateNode;if(s=s.tag,s!==5&&s!==26&&s!==27||u===null||(s=Pl(e,n),s!=null&&i.unshift(bi(e,s,u)),s=Pl(e,t),s!=null&&i.push(bi(e,s,u))),e.tag===3)return i;e=e.return}return[]}function Pb(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Op(e,t,n,i,s){for(var u=t._reactName,g=[];n!==null&&n!==i;){var S=n,E=S.alternate,P=S.stateNode;if(S=S.tag,E!==null&&E===i)break;S!==5&&S!==26&&S!==27||P===null||(E=P,s?(P=Pl(n,u),P!=null&&g.unshift(bi(n,P,E))):s||(P=Pl(n,u),P!=null&&g.push(bi(n,P,E)))),n=n.return}g.length!==0&&e.push({event:t,listeners:g})}var Ub=/\r\n?/g,Hb=/\u0000|\uFFFD/g;function jp(e){return(typeof e=="string"?e:""+e).replace(Ub,`
10
+ `).replace(Hb,"")}function kp(e,t){return t=jp(t),jp(e)===t}function qe(e,t,n,i,s,u){switch(n){case"children":typeof i=="string"?t==="body"||t==="textarea"&&i===""||Kn(e,i):(typeof i=="number"||typeof i=="bigint")&&t!=="body"&&Kn(e,""+i);break;case"className":ro(e,"class",i);break;case"tabIndex":ro(e,"tabindex",i);break;case"dir":case"role":case"viewBox":case"width":case"height":ro(e,n,i);break;case"style":jd(e,i,u);break;case"data":if(t!=="object"){ro(e,"data",i);break}case"src":case"href":if(i===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(i==null||typeof i=="function"||typeof i=="symbol"||typeof i=="boolean"){e.removeAttribute(n);break}i=co(""+i),e.setAttribute(n,i);break;case"action":case"formAction":if(typeof i=="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 u=="function"&&(n==="formAction"?(t!=="input"&&qe(e,t,"name",s.name,s,null),qe(e,t,"formEncType",s.formEncType,s,null),qe(e,t,"formMethod",s.formMethod,s,null),qe(e,t,"formTarget",s.formTarget,s,null)):(qe(e,t,"encType",s.encType,s,null),qe(e,t,"method",s.method,s,null),qe(e,t,"target",s.target,s,null)));if(i==null||typeof i=="symbol"||typeof i=="boolean"){e.removeAttribute(n);break}i=co(""+i),e.setAttribute(n,i);break;case"onClick":i!=null&&(e.onclick=ba);break;case"onScroll":i!=null&&Te("scroll",e);break;case"onScrollEnd":i!=null&&Te("scrollend",e);break;case"dangerouslySetInnerHTML":if(i!=null){if(typeof i!="object"||!("__html"in i))throw Error(o(61));if(n=i.__html,n!=null){if(s.children!=null)throw Error(o(60));e.innerHTML=n}}break;case"multiple":e.multiple=i&&typeof i!="function"&&typeof i!="symbol";break;case"muted":e.muted=i&&typeof i!="function"&&typeof i!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(i==null||typeof i=="function"||typeof i=="boolean"||typeof i=="symbol"){e.removeAttribute("xlink:href");break}n=co(""+i),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":i!=null&&typeof i!="function"&&typeof i!="symbol"?e.setAttribute(n,""+i):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":i&&typeof i!="function"&&typeof i!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":i===!0?e.setAttribute(n,""):i!==!1&&i!=null&&typeof i!="function"&&typeof i!="symbol"?e.setAttribute(n,i):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":i!=null&&typeof i!="function"&&typeof i!="symbol"&&!isNaN(i)&&1<=i?e.setAttribute(n,i):e.removeAttribute(n);break;case"rowSpan":case"start":i==null||typeof i=="function"||typeof i=="symbol"||isNaN(i)?e.removeAttribute(n):e.setAttribute(n,i);break;case"popover":Te("beforetoggle",e),Te("toggle",e),oo(e,"popover",i);break;case"xlinkActuate":va(e,"http://www.w3.org/1999/xlink","xlink:actuate",i);break;case"xlinkArcrole":va(e,"http://www.w3.org/1999/xlink","xlink:arcrole",i);break;case"xlinkRole":va(e,"http://www.w3.org/1999/xlink","xlink:role",i);break;case"xlinkShow":va(e,"http://www.w3.org/1999/xlink","xlink:show",i);break;case"xlinkTitle":va(e,"http://www.w3.org/1999/xlink","xlink:title",i);break;case"xlinkType":va(e,"http://www.w3.org/1999/xlink","xlink:type",i);break;case"xmlBase":va(e,"http://www.w3.org/XML/1998/namespace","xml:base",i);break;case"xmlLang":va(e,"http://www.w3.org/XML/1998/namespace","xml:lang",i);break;case"xmlSpace":va(e,"http://www.w3.org/XML/1998/namespace","xml:space",i);break;case"is":oo(e,"is",i);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=gv.get(n)||n,oo(e,n,i))}}function tu(e,t,n,i,s,u){switch(n){case"style":jd(e,i,u);break;case"dangerouslySetInnerHTML":if(i!=null){if(typeof i!="object"||!("__html"in i))throw Error(o(61));if(n=i.__html,n!=null){if(s.children!=null)throw Error(o(60));e.innerHTML=n}}break;case"children":typeof i=="string"?Kn(e,i):(typeof i=="number"||typeof i=="bigint")&&Kn(e,""+i);break;case"onScroll":i!=null&&Te("scroll",e);break;case"onScrollEnd":i!=null&&Te("scrollend",e);break;case"onClick":i!=null&&(e.onclick=ba);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Nd.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(s=n.endsWith("Capture"),t=n.slice(2,s?n.length-7:void 0),u=e[xt]||null,u=u!=null?u[n]:null,typeof u=="function"&&e.removeEventListener(t,u,s),typeof i=="function")){typeof u!="function"&&u!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,i,s);break e}n in e?e[n]=i:i===!0?e.setAttribute(n,""):oo(e,n,i)}}}function pt(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Te("error",e),Te("load",e);var i=!1,s=!1,u;for(u in n)if(n.hasOwnProperty(u)){var g=n[u];if(g!=null)switch(u){case"src":i=!0;break;case"srcSet":s=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(o(137,t));default:qe(e,t,u,g,n,null)}}s&&qe(e,t,"srcSet",n.srcSet,n,null),i&&qe(e,t,"src",n.src,n,null);return;case"input":Te("invalid",e);var S=u=g=s=null,E=null,P=null;for(i in n)if(n.hasOwnProperty(i)){var F=n[i];if(F!=null)switch(i){case"name":s=F;break;case"type":g=F;break;case"checked":E=F;break;case"defaultChecked":P=F;break;case"value":u=F;break;case"defaultValue":S=F;break;case"children":case"dangerouslySetInnerHTML":if(F!=null)throw Error(o(137,t));break;default:qe(e,t,i,F,n,null)}}Id(e,u,S,E,P,g,s,!1);return;case"select":Te("invalid",e),i=g=u=null;for(s in n)if(n.hasOwnProperty(s)&&(S=n[s],S!=null))switch(s){case"value":u=S;break;case"defaultValue":g=S;break;case"multiple":i=S;default:qe(e,t,s,S,n,null)}t=u,n=g,e.multiple=!!i,t!=null?Vn(e,!!i,t,!1):n!=null&&Vn(e,!!i,n,!0);return;case"textarea":Te("invalid",e),u=s=i=null;for(g in n)if(n.hasOwnProperty(g)&&(S=n[g],S!=null))switch(g){case"value":i=S;break;case"defaultValue":s=S;break;case"children":u=S;break;case"dangerouslySetInnerHTML":if(S!=null)throw Error(o(91));break;default:qe(e,t,g,S,n,null)}Rd(e,i,s,u);return;case"option":for(E in n)n.hasOwnProperty(E)&&(i=n[E],i!=null)&&(E==="selected"?e.selected=i&&typeof i!="function"&&typeof i!="symbol":qe(e,t,E,i,n,null));return;case"dialog":Te("beforetoggle",e),Te("toggle",e),Te("cancel",e),Te("close",e);break;case"iframe":case"object":Te("load",e);break;case"video":case"audio":for(i=0;i<vi.length;i++)Te(vi[i],e);break;case"image":Te("error",e),Te("load",e);break;case"details":Te("toggle",e);break;case"embed":case"source":case"link":Te("error",e),Te("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(P in n)if(n.hasOwnProperty(P)&&(i=n[P],i!=null))switch(P){case"children":case"dangerouslySetInnerHTML":throw Error(o(137,t));default:qe(e,t,P,i,n,null)}return;default:if(hs(t)){for(F in n)n.hasOwnProperty(F)&&(i=n[F],i!==void 0&&tu(e,t,F,i,n,void 0));return}}for(S in n)n.hasOwnProperty(S)&&(i=n[S],i!=null&&qe(e,t,S,i,n,null))}function Bb(e,t,n,i){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var s=null,u=null,g=null,S=null,E=null,P=null,F=null;for(H in n){var X=n[H];if(n.hasOwnProperty(H)&&X!=null)switch(H){case"checked":break;case"value":break;case"defaultValue":E=X;default:i.hasOwnProperty(H)||qe(e,t,H,null,i,X)}}for(var U in i){var H=i[U];if(X=n[U],i.hasOwnProperty(U)&&(H!=null||X!=null))switch(U){case"type":u=H;break;case"name":s=H;break;case"checked":P=H;break;case"defaultChecked":F=H;break;case"value":g=H;break;case"defaultValue":S=H;break;case"children":case"dangerouslySetInnerHTML":if(H!=null)throw Error(o(137,t));break;default:H!==X&&qe(e,t,U,H,i,X)}}ms(e,g,S,E,P,F,u,s);return;case"select":H=g=S=U=null;for(u in n)if(E=n[u],n.hasOwnProperty(u)&&E!=null)switch(u){case"value":break;case"multiple":H=E;default:i.hasOwnProperty(u)||qe(e,t,u,null,i,E)}for(s in i)if(u=i[s],E=n[s],i.hasOwnProperty(s)&&(u!=null||E!=null))switch(s){case"value":U=u;break;case"defaultValue":S=u;break;case"multiple":g=u;default:u!==E&&qe(e,t,s,u,i,E)}t=S,n=g,i=H,U!=null?Vn(e,!!n,U,!1):!!i!=!!n&&(t!=null?Vn(e,!!n,t,!0):Vn(e,!!n,n?[]:"",!1));return;case"textarea":H=U=null;for(S in n)if(s=n[S],n.hasOwnProperty(S)&&s!=null&&!i.hasOwnProperty(S))switch(S){case"value":break;case"children":break;default:qe(e,t,S,null,i,s)}for(g in i)if(s=i[g],u=n[g],i.hasOwnProperty(g)&&(s!=null||u!=null))switch(g){case"value":U=s;break;case"defaultValue":H=s;break;case"children":break;case"dangerouslySetInnerHTML":if(s!=null)throw Error(o(91));break;default:s!==u&&qe(e,t,g,s,i,u)}Md(e,U,H);return;case"option":for(var oe in n)U=n[oe],n.hasOwnProperty(oe)&&U!=null&&!i.hasOwnProperty(oe)&&(oe==="selected"?e.selected=!1:qe(e,t,oe,null,i,U));for(E in i)U=i[E],H=n[E],i.hasOwnProperty(E)&&U!==H&&(U!=null||H!=null)&&(E==="selected"?e.selected=U&&typeof U!="function"&&typeof U!="symbol":qe(e,t,E,U,i,H));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 fe in n)U=n[fe],n.hasOwnProperty(fe)&&U!=null&&!i.hasOwnProperty(fe)&&qe(e,t,fe,null,i,U);for(P in i)if(U=i[P],H=n[P],i.hasOwnProperty(P)&&U!==H&&(U!=null||H!=null))switch(P){case"children":case"dangerouslySetInnerHTML":if(U!=null)throw Error(o(137,t));break;default:qe(e,t,P,U,i,H)}return;default:if(hs(t)){for(var Pe in n)U=n[Pe],n.hasOwnProperty(Pe)&&U!==void 0&&!i.hasOwnProperty(Pe)&&tu(e,t,Pe,void 0,i,U);for(F in i)U=i[F],H=n[F],!i.hasOwnProperty(F)||U===H||U===void 0&&H===void 0||tu(e,t,F,U,i,H);return}}for(var O in n)U=n[O],n.hasOwnProperty(O)&&U!=null&&!i.hasOwnProperty(O)&&qe(e,t,O,null,i,U);for(X in i)U=i[X],H=n[X],!i.hasOwnProperty(X)||U===H||U==null&&H==null||qe(e,t,X,U,i,H)}function zp(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Fb(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),i=0;i<n.length;i++){var s=n[i],u=s.transferSize,g=s.initiatorType,S=s.duration;if(u&&S&&zp(g)){for(g=0,S=s.responseEnd,i+=1;i<n.length;i++){var E=n[i],P=E.startTime;if(P>S)break;var F=E.transferSize,X=E.initiatorType;F&&zp(X)&&(E=E.responseEnd,g+=F*(E<S?1:(S-P)/(E-P)))}if(--i,t+=8*(u+g)/(s.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 au=null,nu=null;function ir(e){return e.nodeType===9?e:e.ownerDocument}function Lp(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 Dp(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 lu(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 iu=null;function Vb(){var e=window.event;return e&&e.type==="popstate"?e===iu?!1:(iu=e,!0):(iu=null,!1)}var Gp=typeof setTimeout=="function"?setTimeout:void 0,Kb=typeof clearTimeout=="function"?clearTimeout:void 0,qp=typeof Promise=="function"?Promise:void 0,Yb=typeof queueMicrotask=="function"?queueMicrotask:typeof qp<"u"?function(e){return qp.resolve(null).then(e).catch(Xb)}:Gp;function Xb(e){setTimeout(function(){throw e})}function tn(e){return e==="head"}function Pp(e,t){var n=t,i=0;do{var s=n.nextSibling;if(e.removeChild(n),s&&s.nodeType===8)if(n=s.data,n==="/$"||n==="/&"){if(i===0){e.removeChild(s),Tl(t);return}i--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")i++;else if(n==="html")Si(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,Si(n);for(var u=n.firstChild;u;){var g=u.nextSibling,S=u.nodeName;u[Gl]||S==="SCRIPT"||S==="STYLE"||S==="LINK"&&u.rel.toLowerCase()==="stylesheet"||n.removeChild(u),u=g}}else n==="body"&&Si(e.ownerDocument.body);n=s}while(n);Tl(t)}function Up(e,t){var n=e;e=0;do{var i=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||""),i&&i.nodeType===8)if(n=i.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=i}while(n)}function ou(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":ou(n),ds(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Qb(e,t,n,i){for(;e.nodeType===1;){var s=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!i&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(i){if(!e[Gl])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(u=e.getAttribute("rel"),u==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(u!==s.rel||e.getAttribute("href")!==(s.href==null||s.href===""?null:s.href)||e.getAttribute("crossorigin")!==(s.crossOrigin==null?null:s.crossOrigin)||e.getAttribute("title")!==(s.title==null?null:s.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(u=e.getAttribute("src"),(u!==(s.src==null?null:s.src)||e.getAttribute("type")!==(s.type==null?null:s.type)||e.getAttribute("crossorigin")!==(s.crossOrigin==null?null:s.crossOrigin))&&u&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var u=s.name==null?null:""+s.name;if(s.type==="hidden"&&e.getAttribute("name")===u)return e}else return e;if(e=Xt(e.nextSibling),e===null)break}return null}function Zb(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Xt(e.nextSibling),e===null))return null;return e}function Hp(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Xt(e.nextSibling),e===null))return null;return e}function ru(e){return e.data==="$?"||e.data==="$~"}function su(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function $b(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var i=function(){t(),n.removeEventListener("DOMContentLoaded",i)};n.addEventListener("DOMContentLoaded",i),e._reactRetry=i}}function Xt(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 cu=null;function Bp(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Xt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function Fp(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 Vp(e,t,n){switch(t=ir(n),e){case"html":if(e=t.documentElement,!e)throw Error(o(452));return e;case"head":if(e=t.head,!e)throw Error(o(453));return e;case"body":if(e=t.body,!e)throw Error(o(454));return e;default:throw Error(o(451))}}function Si(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ds(e)}var Qt=new Map,Kp=new Set;function or(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var za=D.d;D.d={f:Jb,r:Wb,D:eS,C:tS,L:aS,m:nS,X:iS,S:lS,M:oS};function Jb(){var e=za.f(),t=$o();return e||t}function Wb(e){var t=Hn(e);t!==null&&t.tag===5&&t.type==="form"?cm(t):za.r(e)}var Sl=typeof document>"u"?null:document;function Yp(e,t,n){var i=Sl;if(i&&typeof t=="string"&&t){var s=Ut(t);s='link[rel="'+e+'"][href="'+s+'"]',typeof n=="string"&&(s+='[crossorigin="'+n+'"]'),Kp.has(s)||(Kp.add(s),e={rel:e,crossOrigin:n,href:t},i.querySelector(s)===null&&(t=i.createElement("link"),pt(t,"link",e),ot(t),i.head.appendChild(t)))}}function eS(e){za.D(e),Yp("dns-prefetch",e,null)}function tS(e,t){za.C(e,t),Yp("preconnect",e,t)}function aS(e,t,n){za.L(e,t,n);var i=Sl;if(i&&e&&t){var s='link[rel="preload"][as="'+Ut(t)+'"]';t==="image"&&n&&n.imageSrcSet?(s+='[imagesrcset="'+Ut(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(s+='[imagesizes="'+Ut(n.imageSizes)+'"]')):s+='[href="'+Ut(e)+'"]';var u=s;switch(t){case"style":u=xl(e);break;case"script":u=_l(e)}Qt.has(u)||(e=b({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Qt.set(u,e),i.querySelector(s)!==null||t==="style"&&i.querySelector(xi(u))||t==="script"&&i.querySelector(_i(u))||(t=i.createElement("link"),pt(t,"link",e),ot(t),i.head.appendChild(t)))}}function nS(e,t){za.m(e,t);var n=Sl;if(n&&e){var i=t&&typeof t.as=="string"?t.as:"script",s='link[rel="modulepreload"][as="'+Ut(i)+'"][href="'+Ut(e)+'"]',u=s;switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=_l(e)}if(!Qt.has(u)&&(e=b({rel:"modulepreload",href:e},t),Qt.set(u,e),n.querySelector(s)===null)){switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(_i(u)))return}i=n.createElement("link"),pt(i,"link",e),ot(i),n.head.appendChild(i)}}}function lS(e,t,n){za.S(e,t,n);var i=Sl;if(i&&e){var s=Bn(i).hoistableStyles,u=xl(e);t=t||"default";var g=s.get(u);if(!g){var S={loading:0,preload:null};if(g=i.querySelector(xi(u)))S.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Qt.get(u))&&uu(e,n);var E=g=i.createElement("link");ot(E),pt(E,"link",e),E._p=new Promise(function(P,F){E.onload=P,E.onerror=F}),E.addEventListener("load",function(){S.loading|=1}),E.addEventListener("error",function(){S.loading|=2}),S.loading|=4,rr(g,t,i)}g={type:"stylesheet",instance:g,count:1,state:S},s.set(u,g)}}}function iS(e,t){za.X(e,t);var n=Sl;if(n&&e){var i=Bn(n).hoistableScripts,s=_l(e),u=i.get(s);u||(u=n.querySelector(_i(s)),u||(e=b({src:e,async:!0},t),(t=Qt.get(s))&&du(e,t),u=n.createElement("script"),ot(u),pt(u,"link",e),n.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},i.set(s,u))}}function oS(e,t){za.M(e,t);var n=Sl;if(n&&e){var i=Bn(n).hoistableScripts,s=_l(e),u=i.get(s);u||(u=n.querySelector(_i(s)),u||(e=b({src:e,async:!0,type:"module"},t),(t=Qt.get(s))&&du(e,t),u=n.createElement("script"),ot(u),pt(u,"link",e),n.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},i.set(s,u))}}function Xp(e,t,n,i){var s=(s=de.current)?or(s):null;if(!s)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=xl(n.href),n=Bn(s).hoistableStyles,i=n.get(t),i||(i={type:"style",instance:null,count:0,state:null},n.set(t,i)),i):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=xl(n.href);var u=Bn(s).hoistableStyles,g=u.get(e);if(g||(s=s.ownerDocument||s,g={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,g),(u=s.querySelector(xi(e)))&&!u._p&&(g.instance=u,g.state.loading=5),Qt.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},Qt.set(e,n),u||rS(s,e,n,g.state))),t&&i===null)throw Error(o(528,""));return g}if(t&&i!==null)throw Error(o(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=_l(n),n=Bn(s).hoistableScripts,i=n.get(t),i||(i={type:"script",instance:null,count:0,state:null},n.set(t,i)),i):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function xl(e){return'href="'+Ut(e)+'"'}function xi(e){return'link[rel="stylesheet"]['+e+"]"}function Qp(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function rS(e,t,n,i){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?i.loading=1:(t=e.createElement("link"),i.preload=t,t.addEventListener("load",function(){return i.loading|=1}),t.addEventListener("error",function(){return i.loading|=2}),pt(t,"link",n),ot(t),e.head.appendChild(t))}function _l(e){return'[src="'+Ut(e)+'"]'}function _i(e){return"script[async]"+e}function Zp(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var i=e.querySelector('style[data-href~="'+Ut(n.href)+'"]');if(i)return t.instance=i,ot(i),i;var s=b({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return i=(e.ownerDocument||e).createElement("style"),ot(i),pt(i,"style",s),rr(i,n.precedence,e),t.instance=i;case"stylesheet":s=xl(n.href);var u=e.querySelector(xi(s));if(u)return t.state.loading|=4,t.instance=u,ot(u),u;i=Qp(n),(s=Qt.get(s))&&uu(i,s),u=(e.ownerDocument||e).createElement("link"),ot(u);var g=u;return g._p=new Promise(function(S,E){g.onload=S,g.onerror=E}),pt(u,"link",i),t.state.loading|=4,rr(u,n.precedence,e),t.instance=u;case"script":return u=_l(n.src),(s=e.querySelector(_i(u)))?(t.instance=s,ot(s),s):(i=n,(s=Qt.get(u))&&(i=b({},n),du(i,s)),e=e.ownerDocument||e,s=e.createElement("script"),ot(s),pt(s,"link",i),e.head.appendChild(s),t.instance=s);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(i=t.instance,t.state.loading|=4,rr(i,n.precedence,e));return t.instance}function rr(e,t,n){for(var i=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),s=i.length?i[i.length-1]:null,u=s,g=0;g<i.length;g++){var S=i[g];if(S.dataset.precedence===t)u=S;else if(u!==s)break}u?u.parentNode.insertBefore(e,u.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function uu(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function du(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var sr=null;function $p(e,t,n){if(sr===null){var i=new Map,s=sr=new Map;s.set(n,i)}else s=sr,i=s.get(n),i||(i=new Map,s.set(n,i));if(i.has(e))return i;for(i.set(e,null),n=n.getElementsByTagName(e),s=0;s<n.length;s++){var u=n[s];if(!(u[Gl]||u[ut]||e==="link"&&u.getAttribute("rel")==="stylesheet")&&u.namespaceURI!=="http://www.w3.org/2000/svg"){var g=u.getAttribute(t)||"";g=e+g;var S=i.get(g);S?S.push(u):i.set(g,[u])}}return i}function Jp(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function sS(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;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!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 Wp(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function cS(e,t,n,i){if(n.type==="stylesheet"&&(typeof i.media!="string"||matchMedia(i.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var s=xl(i.href),u=t.querySelector(xi(s));if(u){t=u._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=cr.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=u,ot(u);return}u=t.ownerDocument||t,i=Qp(i),(s=Qt.get(s))&&uu(i,s),u=u.createElement("link"),ot(u);var g=u;g._p=new Promise(function(S,E){g.onload=S,g.onerror=E}),pt(u,"link",i),n.instance=u}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=cr.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var fu=0;function uS(e,t){return e.stylesheets&&e.count===0&&dr(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var i=setTimeout(function(){if(e.stylesheets&&dr(e,e.stylesheets),e.unsuspend){var u=e.unsuspend;e.unsuspend=null,u()}},6e4+t);0<e.imgBytes&&fu===0&&(fu=62500*Fb());var s=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&dr(e,e.stylesheets),e.unsuspend)){var u=e.unsuspend;e.unsuspend=null,u()}},(e.imgBytes>fu?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(i),clearTimeout(s)}}:null}function cr(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)dr(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ur=null;function dr(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ur=new Map,t.forEach(dS,e),ur=null,cr.call(e))}function dS(e,t){if(!(t.state.loading&4)){var n=ur.get(e);if(n)var i=n.get(null);else{n=new Map,ur.set(e,n);for(var s=e.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u<s.length;u++){var g=s[u];(g.nodeName==="LINK"||g.getAttribute("media")!=="not all")&&(n.set(g.dataset.precedence,g),i=g)}i&&n.set(null,i)}s=t.instance,g=s.getAttribute("data-precedence"),u=n.get(g)||i,u===i&&n.set(null,s),n.set(g,s),this.count++,i=cr.bind(this),s.addEventListener("load",i),s.addEventListener("error",i),u?u.parentNode.insertBefore(s,u.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(s,e.firstChild)),t.state.loading|=4}}var Ti={$$typeof:K,Provider:null,Consumer:null,_currentValue:J,_currentValue2:J,_threadCount:0};function fS(e,t,n,i,s,u,g,S,E){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=rs(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=rs(0),this.hiddenUpdates=rs(null),this.identifierPrefix=i,this.onUncaughtError=s,this.onCaughtError=u,this.onRecoverableError=g,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=E,this.incompleteTransitions=new Map}function eh(e,t,n,i,s,u,g,S,E,P,F,X){return e=new fS(e,t,n,g,E,P,F,X,S),t=1,u===!0&&(t|=24),u=Ot(3,null,null,t),e.current=u,u.stateNode=e,t=Vs(),t.refCount++,e.pooledCache=t,t.refCount++,u.memoizedState={element:i,isDehydrated:n,cache:t},Qs(u),e}function th(e){return e?(e=Wn,e):Wn}function ah(e,t,n,i,s,u){s=th(s),i.context===null?i.context=s:i.pendingContext=s,i=Fa(t),i.payload={element:n},u=u===void 0?null:u,u!==null&&(i.callback=u),n=Va(e,i,t),n!==null&&(Ct(n,e,t),ti(n,e,t))}function nh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function mu(e,t){nh(e,t),(e=e.alternate)&&nh(e,t)}function lh(e){if(e.tag===13||e.tag===31){var t=gn(e,67108864);t!==null&&Ct(t,e,67108864),mu(e,67108864)}}function ih(e){if(e.tag===13||e.tag===31){var t=Dt();t=ss(t);var n=gn(e,t);n!==null&&Ct(n,e,t),mu(e,t)}}var fr=!0;function mS(e,t,n,i){var s=L.T;L.T=null;var u=D.p;try{D.p=2,pu(e,t,n,i)}finally{D.p=u,L.T=s}}function pS(e,t,n,i){var s=L.T;L.T=null;var u=D.p;try{D.p=8,pu(e,t,n,i)}finally{D.p=u,L.T=s}}function pu(e,t,n,i){if(fr){var s=hu(i);if(s===null)eu(e,t,i,mr,n),rh(e,i);else if(gS(s,e,t,n,i))i.stopPropagation();else if(rh(e,i),t&4&&-1<hS.indexOf(e)){for(;s!==null;){var u=Hn(s);if(u!==null)switch(u.tag){case 3:if(u=u.stateNode,u.current.memoizedState.isDehydrated){var g=dn(u.pendingLanes);if(g!==0){var S=u;for(S.pendingLanes|=2,S.entangledLanes|=2;g;){var E=1<<31-Mt(g);S.entanglements[1]|=E,g&=~E}ca(u),(Oe&6)===0&&(Qo=Ke()+500,yi(0))}}break;case 31:case 13:S=gn(u,2),S!==null&&Ct(S,u,2),$o(),mu(u,2)}if(u=hu(i),u===null&&eu(e,t,i,mr,n),u===s)break;s=u}s!==null&&i.stopPropagation()}else eu(e,t,i,null,n)}}function hu(e){return e=ys(e),gu(e)}var mr=null;function gu(e){if(mr=null,e=Un(e),e!==null){var t=f(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=p(t),e!==null)return e;e=null}else if(n===31){if(e=m(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 mr=e,null}function oh(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(qn()){case qt:return 2;case pd:return 8;case to:case tv:return 32;case hd:return 268435456;default:return 32}default:return 32}}var yu=!1,an=null,nn=null,ln=null,Ni=new Map,Ai=new Map,on=[],hS="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 rh(e,t){switch(e){case"focusin":case"focusout":an=null;break;case"dragenter":case"dragleave":nn=null;break;case"mouseover":case"mouseout":ln=null;break;case"pointerover":case"pointerout":Ni.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ai.delete(t.pointerId)}}function Ei(e,t,n,i,s,u){return e===null||e.nativeEvent!==u?(e={blockedOn:t,domEventName:n,eventSystemFlags:i,nativeEvent:u,targetContainers:[s]},t!==null&&(t=Hn(t),t!==null&&lh(t)),e):(e.eventSystemFlags|=i,t=e.targetContainers,s!==null&&t.indexOf(s)===-1&&t.push(s),e)}function gS(e,t,n,i,s){switch(t){case"focusin":return an=Ei(an,e,t,n,i,s),!0;case"dragenter":return nn=Ei(nn,e,t,n,i,s),!0;case"mouseover":return ln=Ei(ln,e,t,n,i,s),!0;case"pointerover":var u=s.pointerId;return Ni.set(u,Ei(Ni.get(u)||null,e,t,n,i,s)),!0;case"gotpointercapture":return u=s.pointerId,Ai.set(u,Ei(Ai.get(u)||null,e,t,n,i,s)),!0}return!1}function sh(e){var t=Un(e.target);if(t!==null){var n=f(t);if(n!==null){if(t=n.tag,t===13){if(t=p(n),t!==null){e.blockedOn=t,xd(e.priority,function(){ih(n)});return}}else if(t===31){if(t=m(n),t!==null){e.blockedOn=t,xd(e.priority,function(){ih(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 pr(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=hu(e.nativeEvent);if(n===null){n=e.nativeEvent;var i=new n.constructor(n.type,n);gs=i,n.target.dispatchEvent(i),gs=null}else return t=Hn(n),t!==null&&lh(t),e.blockedOn=n,!1;t.shift()}return!0}function ch(e,t,n){pr(e)&&n.delete(t)}function yS(){yu=!1,an!==null&&pr(an)&&(an=null),nn!==null&&pr(nn)&&(nn=null),ln!==null&&pr(ln)&&(ln=null),Ni.forEach(ch),Ai.forEach(ch)}function hr(e,t){e.blockedOn===t&&(e.blockedOn=null,yu||(yu=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yS)))}var gr=null;function uh(e){gr!==e&&(gr=e,a.unstable_scheduleCallback(a.unstable_NormalPriority,function(){gr===e&&(gr=null);for(var t=0;t<e.length;t+=3){var n=e[t],i=e[t+1],s=e[t+2];if(typeof i!="function"){if(gu(i||n)===null)continue;break}var u=Hn(n);u!==null&&(e.splice(t,3),t-=3,hc(u,{pending:!0,data:s,method:n.method,action:i},i,s))}}))}function Tl(e){function t(E){return hr(E,e)}an!==null&&hr(an,e),nn!==null&&hr(nn,e),ln!==null&&hr(ln,e),Ni.forEach(t),Ai.forEach(t);for(var n=0;n<on.length;n++){var i=on[n];i.blockedOn===e&&(i.blockedOn=null)}for(;0<on.length&&(n=on[0],n.blockedOn===null);)sh(n),n.blockedOn===null&&on.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(i=0;i<n.length;i+=3){var s=n[i],u=n[i+1],g=s[xt]||null;if(typeof u=="function")g||uh(n);else if(g){var S=null;if(u&&u.hasAttribute("formAction")){if(s=u,g=u[xt]||null)S=g.formAction;else if(gu(s)!==null)continue}else S=g.action;typeof S=="function"?n[i+1]=S:(n.splice(i,3),i-=3),uh(n)}}}function dh(){function e(u){u.canIntercept&&u.info==="react-transition"&&u.intercept({handler:function(){return new Promise(function(g){return s=g})},focusReset:"manual",scroll:"manual"})}function t(){s!==null&&(s(),s=null),i||setTimeout(n,20)}function n(){if(!i&&!navigation.transition){var u=navigation.currentEntry;u&&u.url!=null&&navigation.navigate(u.url,{state:u.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var i=!1,s=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){i=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),s!==null&&(s(),s=null)}}}function vu(e){this._internalRoot=e}yr.prototype.render=vu.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(o(409));var n=t.current,i=Dt();ah(n,i,e,t,null,null)},yr.prototype.unmount=vu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;ah(e.current,2,null,e,null,null),$o(),t[Pn]=null}};function yr(e){this._internalRoot=e}yr.prototype.unstable_scheduleHydration=function(e){if(e){var t=Sd();e={blockedOn:null,target:e,priority:t};for(var n=0;n<on.length&&t!==0&&t<on[n].priority;n++);on.splice(n,0,e),n===0&&sh(e)}};var fh=r.version;if(fh!=="19.2.5")throw Error(o(527,fh,"19.2.5"));D.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(o(188)):(e=Object.keys(e).join(","),Error(o(268,e)));return e=h(t),e=e!==null?x(e):null,e=e===null?null:e.stateNode,e};var vS={bundleType:0,version:"19.2.5",rendererPackageName:"react-dom",currentDispatcherRef:L,reconcilerVersion:"19.2.5"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var vr=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vr.isDisabled&&vr.supportsFiber)try{zl=vr.inject(vS),It=vr}catch{}}return wi.createRoot=function(e,t){if(!c(e))throw Error(o(299));var n=!1,i="",s=bm,u=Sm,g=xm;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(i=t.identifierPrefix),t.onUncaughtError!==void 0&&(s=t.onUncaughtError),t.onCaughtError!==void 0&&(u=t.onCaughtError),t.onRecoverableError!==void 0&&(g=t.onRecoverableError)),t=eh(e,1,!1,null,null,n,i,null,s,u,g,dh),e[Pn]=t.current,Wc(e),new vu(t)},wi.hydrateRoot=function(e,t,n){if(!c(e))throw Error(o(299));var i=!1,s="",u=bm,g=Sm,S=xm,E=null;return n!=null&&(n.unstable_strictMode===!0&&(i=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onUncaughtError!==void 0&&(u=n.onUncaughtError),n.onCaughtError!==void 0&&(g=n.onCaughtError),n.onRecoverableError!==void 0&&(S=n.onRecoverableError),n.formState!==void 0&&(E=n.formState)),t=eh(e,1,!0,t,n??null,i,s,E,u,g,S,dh),t.context=th(null),n=t.current,i=Dt(),i=ss(i),s=Fa(i),s.callback=null,Va(n,s,i),n=i,t.current.lanes=n,Dl(t,n),ca(t),e[Pn]=t.current,Wc(e),new yr(t)},wi.version="19.2.5",wi}var _h;function wS(){if(_h)return xu.exports;_h=1;function a(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(r){console.error(r)}}return a(),xu.exports=CS(),xu.exports}var IS=wS();const MS="modulepreload",RS=function(a){return"/"+a},Th={},ha=function(r,l,o){let c=Promise.resolve();if(l&&l.length>0){let y=function(h){return Promise.all(h.map(x=>Promise.resolve(x).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};document.getElementsByTagName("link");const p=document.querySelector("meta[property=csp-nonce]"),m=p?.nonce||p?.getAttribute("nonce");c=y(l.map(h=>{if(h=RS(h),h in Th)return;Th[h]=!0;const x=h.endsWith(".css"),b=x?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${h}"]${b}`))return;const v=document.createElement("link");if(v.rel=x?"stylesheet":MS,x||(v.as="script"),v.crossOrigin="",v.href=h,m&&v.setAttribute("nonce",m),document.head.appendChild(v),x)return new Promise((_,T)=>{v.addEventListener("load",_),v.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${h}`)))})}))}function f(p){const m=new Event("vite:preloadError",{cancelable:!0});if(m.payload=p,window.dispatchEvent(m),!m.defaultPrevented)throw p}return c.then(p=>{for(const m of p||[])m.status==="rejected"&&f(m.reason);return r().catch(f)})},Nh=a=>{let r;const l=new Set,o=(h,x)=>{const b=typeof h=="function"?h(r):h;if(!Object.is(b,r)){const v=r;r=x??(typeof b!="object"||b===null)?b:Object.assign({},r,b),l.forEach(_=>_(r,v))}},c=()=>r,m={setState:o,getState:c,getInitialState:()=>y,subscribe:h=>(l.add(h),()=>l.delete(h))},y=r=a(o,c,m);return m},OS=(a=>a?Nh(a):Nh),jS=a=>a;function kS(a,r=jS){const l=br.useSyncExternalStore(a.subscribe,br.useCallback(()=>r(a.getState()),[a,r]),br.useCallback(()=>r(a.getInitialState()),[a,r]));return br.useDebugValue(l),l}const Ah=a=>{const r=OS(a),l=o=>kS(r,o);return Object.assign(l,r),l},bg=(a=>a?Ah(a):Ah);async function Se(a,r){const l=await fetch(a,r),o=await l.json().catch(()=>({}));if(!l.ok){const c=o.error,f=o.code,p=typeof c=="string"?c:c?.message??`Request failed: ${l.status}`,m=new Error(p);throw m.status=l.status,typeof c!="string"&&c?.code?m.code=c.code:f&&(m.code=f),typeof o.currentVersion=="number"&&(m.currentVersion=o.currentVersion),m}return o}let Ii=null;function Sg(){if(!Ii){const a=localStorage.getItem("ima2.browserId");a?Ii=a:(Ii=`${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`,localStorage.setItem("ima2.browserId",Ii))}return Ii}function Ol(a,r){const l={...r?.headers,"X-Ima2-Browser-Id":Sg()};return Se(a,{...r,headers:l})}function zS(){return Se("/api/capabilities")}function xg(a){const r=new URLSearchParams;a?.kind&&r.set("kind",a.kind),a?.sessionId&&r.set("sessionId",a.sessionId),a?.includeTerminal&&r.set("includeTerminal","1");const l=r.size>0?`?${r.toString()}`:"";return Se(`/api/inflight${l}`)}function St(a){return Se(`/api/inflight/${encodeURIComponent(a)}`,{method:"DELETE"})}function LS(){return Se("/api/oauth/status")}function DS(){return Se("/api/billing")}const GS=1800*1e3,qS=2e3,PS=3e4;let Zt=null,zu="";const Lu=new Set;let _g=null,Sr=null,Eh=!1,xr=0;const US=3;let Du=null;const HS=["phase","partial","image","done","error","submitted","progress","planning"];function BS(){return zu?`/api/events?lastEventId=${encodeURIComponent(zu)}`:"/api/events"}function Yu(){if(!(Zt&&Zt.readyState!==EventSource.CLOSED)){Zt=new EventSource(BS()),Zt.onopen=()=>{Sr&&(clearTimeout(Sr),Sr=null),xr=0,Eh&&_g?.(),Eh=!0,Du?.("connected")};for(const a of HS)Zt.addEventListener(a,r=>FS(a,r));Zt.onerror=()=>{Zt?.close(),Zt=null;const a=Math.min(qS*Math.pow(1.5,xr),PS);xr+=1,Du?.(xr>=US?"failed":"reconnecting"),Sr=setTimeout(Yu,a)}}}function FS(a,r){r.lastEventId&&(zu=r.lastEventId);let l;try{l=JSON.parse(r.data)}catch{return}const o=l.jobId??l.requestId??"";if(o)for(const c of Lu)c.jobId===o&&(c.event!==null&&c.event!==a||c.handler(a,l))}function Zr(a,r,l){const o={jobId:a,event:r,handler:l};return Lu.add(o),(!Zt||Zt.readyState===EventSource.CLOSED)&&Yu(),()=>{Lu.delete(o)}}function $r(a,r=GS){const l=setTimeout(a,r);return()=>clearTimeout(l)}function VS(a){_g=a}function KS(a){Du=a}function Bi(){(!Zt||Zt.readyState===EventSource.CLOSED)&&Yu()}function Li(a,r="Generation failed"){const l=a.error;let o=r,c;if(typeof l=="string")o=l;else if(l&&typeof l=="object"){const m=l;typeof m.message=="string"&&m.message&&(o=m.message),typeof m.code=="string"&&(c=m.code)}typeof a.code=="string"&&(c=c??a.code);const f=typeof a.status=="number"?a.status:void 0,p=new Error(o);return p.code=c,p.status=f,p}const Ch=5e3,wh=3e4;function YS(a){if(!a)return Ch;const r=Number.parseFloat(a);if(Number.isFinite(r)&&r>0)return Math.min(wh,Math.max(1e3,Math.round(r*1e3)));const l=Date.parse(a);return Number.isFinite(l)?Math.min(wh,Math.max(1e3,l-Date.now())):Ch}function XS(a,r){return a.status===429&&r.code==="TOO_MANY_JOBS"}function Au(){return new DOMException("Aborted","AbortError")}function Jr(...a){const r=a.filter(c=>!!c);if(r.length===0)return;if(r.length===1)return r[0];if(typeof AbortSignal.any=="function")return AbortSignal.any(r);const l=new AbortController,o=()=>{for(const c of r)c.removeEventListener("abort",o);l.abort()};return r.some(c=>c.aborted)?o():r.forEach(c=>c.addEventListener("abort",o,{once:!0})),l.signal}async function Wr({url:a,payload:r,requestId:l,signal:o,parseError:c}){let f=null;const p=m=>new Promise((y,h)=>{if(o?.aborted){h(Au());return}const x=()=>{f&&(clearTimeout(f),f=null),h(Au())};f=setTimeout(()=>{f=null,o?.removeEventListener("abort",x),y()},m),o?.addEventListener("abort",x,{once:!0})});for(;;){if(o?.aborted)throw Au();const m=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,async:!0,requestId:l}),signal:o});if(m.ok)return;const y=await m.json().catch(()=>({}));if(XS(m,y)){await p(YS(m.headers.get("Retry-After")));continue}throw c(m,y)}}async function QS(a,r={}){const l=a.requestId??`freq_${crypto.randomUUID()}`;return Bi(),new Promise((o,c)=>{let f=!1;const p=new AbortController,m=Jr(r.signal,p.signal),y=b=>{f||(f=!0,x(),h(),b())},h=Zr(l,null,(b,v)=>{f||(b==="done"?y(()=>o(v)):b==="error"&&y(()=>c(Li(v,"Generation failed"))))}),x=$r(()=>{y(()=>{p.abort(),St(l),c(new Error("Generation stream timed out"))})});if(r.signal){if(r.signal.aborted){y(()=>{p.abort(),St(l),c(new DOMException("Aborted","AbortError"))});return}r.signal.addEventListener("abort",()=>{y(()=>{p.abort(),St(l),c(new DOMException("Aborted","AbortError"))})},{once:!0})}Wr({url:"/api/generate",payload:a,requestId:l,signal:m,parseError:(b,v)=>{const _=Li(v,`Request failed: ${b.status}`);return _.status=_.status??b.status,_}}).then(()=>{}).catch(b=>{y(()=>c(b instanceof Error?b:new Error(String(b))))})})}async function ZS(a,r={},l={}){const o=a.requestId??`req_${crypto.randomUUID()}`;return Bi(),new Promise((c,f)=>{let p=!1;const m=new AbortController,y=Jr(l.signal,m.signal),h=v=>{p||(p=!0,b(),x(),v())},x=Zr(o,null,(v,_)=>{p||(v==="partial"?r.onPartial?.(_):v==="image"?r.onImage?.(_):v==="phase"?r.onPhase?.(_):v==="done"?h(()=>c(_)):v==="error"&&h(()=>f(Li(_,"Multimode generation failed"))))}),b=$r(()=>{h(()=>{m.abort(),St(o),f(new Error("Multimode generation stream timed out"))})});if(l.signal){if(l.signal.aborted){h(()=>{m.abort(),St(o),f(new DOMException("Aborted","AbortError"))});return}l.signal.addEventListener("abort",()=>{h(()=>{m.abort(),St(o),f(new DOMException("Aborted","AbortError"))})},{once:!0})}Wr({url:"/api/generate/multimode",payload:a,requestId:o,signal:y,parseError:(v,_)=>{const T=new Error(_.error??`Request failed: ${v.status}`);return T.code=_.code,T.status=_.status??v.status,T}}).then(()=>{}).catch(v=>{h(()=>f(v instanceof Error?v:new Error(String(v))))})})}function GC(a){return Se("/api/edit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function $S(a){const r=await a.arrayBuffer(),l=await fetch("/api/history/import-local",{method:"POST",headers:{"Content-Type":a.type||"image/png","X-Ima2-Original-Filename":encodeURIComponent(a.name)},body:r});if(!l.ok){let c={};try{c=await l.json()}catch{}const f=new Error(c.error||`Import failed (${l.status})`);throw f.code=c.code||"IMPORT_FAILED",f}return(await l.json()).item}function qC(a){return Se("/api/prompt-builder/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function Tg(a,r={},l={}){const o=a.requestId??`vreq_${crypto.randomUUID()}`;return Bi(),new Promise((c,f)=>{let p=!1;const m=new AbortController,y=Jr(l.signal,m.signal),h=v=>{p||(p=!0,b(),x(),v())},x=Zr(o,null,(v,_)=>{p||(v==="planning"?r.onPlanning?.():v==="submitted"?r.onSubmitted?.(_):v==="progress"?r.onProgress?.(_):v==="done"?h(()=>c(_)):v==="error"&&h(()=>f(Li(_,"Video generation failed"))))}),b=$r(()=>{h(()=>{m.abort(),St(o),f(new Error("Video generation stream timed out"))})});if(l.signal){if(l.signal.aborted){h(()=>{m.abort(),St(o),f(new DOMException("Aborted","AbortError"))});return}l.signal.addEventListener("abort",()=>{h(()=>{m.abort(),St(o),f(new DOMException("Aborted","AbortError"))})},{once:!0})}Wr({url:"/api/video/generate",payload:{provider:"grok",...a},requestId:o,signal:y,parseError:(v,_)=>{const T=new Error(_.error??`Request failed: ${v.status}`);return T.code=_.code,T.status=_.status??v.status,T}}).then(()=>{}).catch(v=>{h(()=>f(v instanceof Error?v:new Error(String(v))))})})}function jl(a={}){const r=new URLSearchParams;return r.set("limit",String(a.limit??50)),a.since!=null&&r.set("since",String(a.since)),a.cursor&&(r.set("before",String(a.cursor.before)),r.set("beforeFilename",a.cursor.beforeFilename)),a.sessionId&&r.set("sessionId",a.sessionId),a.favoritesOnly&&r.set("favoritesOnly","1"),Ol(`/api/history?${r.toString()}`)}function JS(a={}){const r=new URLSearchParams;return r.set("groupBy","session"),r.set("limit",String(a.limit??200)),a.cursor&&(r.set("before",String(a.cursor.before)),r.set("beforeFilename",a.cursor.beforeFilename)),a.sessionId&&r.set("sessionId",a.sessionId),Ol(`/api/history?${r.toString()}`)}function WS(a){return Ol("/api/history/favorite",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:a})})}async function e0(){return(await Se("/api/storage/status")).data}function t0(){return Se("/api/storage/open-generated-dir",{method:"POST"})}function Ng(a){return Se(`/api/history/${encodeURIComponent(a)}`,{method:"DELETE"})}function a0(a){return Se(`/api/history/${encodeURIComponent(a)}/permanent`,{method:"DELETE"})}function n0(a,r){return Se(`/api/history/${encodeURIComponent(a)}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({trashId:r})})}function l0(a){return Se("/api/comfy/export-image",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:a.filename})})}function i0(){return Se("/api/sessions")}function o0(a){return Se("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a})})}function Ag(a){return Se(`/api/sessions/${encodeURIComponent(a)}`)}function r0(a,r){return Se(`/api/sessions/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:r})})}function s0(a){return Se(`/api/sessions/${encodeURIComponent(a)}`,{method:"DELETE"})}function c0(a,r,l,o,c={}){const f={"Content-Type":"application/json","If-Match":String(r)};return c.saveId&&(f["X-Ima2-Graph-Save-Id"]=c.saveId),c.saveReason&&(f["X-Ima2-Graph-Save-Reason"]=c.saveReason),c.tabId&&(f["X-Ima2-Tab-Id"]=c.tabId),Se(`/api/sessions/${encodeURIComponent(a)}/graph`,{method:"PUT",headers:f,body:JSON.stringify({nodes:l,edges:o})})}function u0(a){return Se("/api/metadata/read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function PC(a){return Ol(`/api/annotations/${encodeURIComponent(a)}`)}async function UC(a,r){await Ol(`/api/annotations/${encodeURIComponent(a)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({annotations:r})})}async function HC(a){await Ol(`/api/annotations/${encodeURIComponent(a)}`,{method:"DELETE"})}function BC(a){const r=new URLSearchParams({sourceFilename:a.sourceFilename});return Se(`/api/canvas-versions?${r.toString()}`,{method:"POST",headers:{"Content-Type":"image/png"},body:a.image})}function FC(a,r){const l=new URLSearchParams;r.sourceFilename&&l.set("sourceFilename",r.sourceFilename);const o=l.size>0?`?${l.toString()}`:"";return Se(`/api/canvas-versions/${encodeURIComponent(a)}${o}`,{method:"PUT",headers:{"Content-Type":"image/png"},body:r.image})}function d0(a){const r=new URLSearchParams;return Se(`/api/prompts?${r.toString()}`)}function f0(a){return Se("/api/prompts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function m0(a){return Se(`/api/prompts/${encodeURIComponent(a)}`,{method:"DELETE"})}function p0(a){return Se(`/api/prompts/${encodeURIComponent(a)}/favorite`,{method:"POST"})}function h0(a){return Se("/api/prompts/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function VC(a){return Se("/api/prompts/import/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function KC(a){return Se("/api/prompts/import/commit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function YC(){return Se("/api/prompts/import/curated-sources")}function XC(a){return Se("/api/prompts/import/curated-search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function QC(a){return Se("/api/prompts/import/curated-refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function ZC(a){const r=new URLSearchParams,l=r.size>0?`?${r.toString()}`:"";return Se(`/api/prompts/import/discovery${l}`)}function $C(a){return Se("/api/prompts/import/discovery-search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({q:a.q,seeds:a.seeds,limit:a.limit})})}function JC(a){return Se("/api/prompts/import/discovery-review",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function WC(a){return Se("/api/prompts/import/folder-files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:{kind:"github-folder",input:a.source.input}})})}function ew(a){return Se("/api/prompts/import/folder-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:{kind:"github-folder",input:a.source.input},paths:a.paths})})}async function g0(a,r={},l={}){const o=a.requestId??`nreq_${crypto.randomUUID()}`;return Bi(),new Promise((c,f)=>{let p=!1;const m=new AbortController,y=Jr(l.signal,m.signal),h=v=>{p||(p=!0,b(),x(),v())},x=Zr(o,null,(v,_)=>{p||(v==="partial"?r.onPartial?.(_):v==="phase"?r.onPhase?.(_):v==="done"?h(()=>c(_)):v==="error"&&h(()=>f(Li(_,"Node generation failed"))))}),b=$r(()=>{h(()=>{m.abort(),St(o),f(new Error("Node generation stream timed out"))})});if(l.signal){if(l.signal.aborted){h(()=>{m.abort(),St(o),f(new DOMException("Aborted","AbortError"))});return}l.signal.addEventListener("abort",()=>{h(()=>{m.abort(),St(o),f(new DOMException("Aborted","AbortError"))})},{once:!0})}Wr({url:"/api/node/generate",payload:a,requestId:o,signal:y,parseError:(v,_)=>{const T=_?.error?.message??`Request failed: ${v.status}`,j=new Error(T);return j.code=_?.error?.code,j.status=_?.status??v.status,j}}).then(()=>{}).catch(v=>{h(()=>f(v instanceof Error?v:new Error(String(v))))})})}const Gu="gpt-5.4-mini",Ln=[{value:"gpt-5.4-mini",shortLabel:"5.4m",fullLabelKey:"settings.imageModel.gpt54Mini"},{value:"gpt-5.4",shortLabel:"5.4",fullLabelKey:"settings.imageModel.gpt54"},{value:"gpt-5.5",shortLabel:"5.5",fullLabelKey:"settings.imageModel.gpt55"},{value:"grok-imagine-image",shortLabel:"grok",fullLabelKey:"settings.imageModel.grokImagine"},{value:"grok-imagine-image-quality",shortLabel:"grok+",fullLabelKey:"settings.imageModel.grokImagineQuality"},{value:"nano-banana-2",shortLabel:"nb2 agy",fullLabelKey:"settings.imageModel.nanoBanana2",providerHint:"agy"},{value:"nano-banana-2",shortLabel:"nb2 api",fullLabelKey:"settings.imageModel.nanoBanana2Api",providerHint:"gemini-api"},{value:"nano-banana-pro",shortLabel:"nbp api",fullLabelKey:"settings.imageModel.nanoBananaPro",providerHint:"gemini-api"}],es=new Set(["nano-banana-2","nano-banana-pro"]),Eu=Ln.filter(a=>!a.value.startsWith("grok-")&&!es.has(a.value)),Ih=Ln.filter(a=>a.value.startsWith("grok-")),y0=Ln.filter(a=>es.has(a.value)),v0=[{value:"gpt-5.3-codex-spark",fullLabelKey:"settings.imageModel.gpt53CodexSpark"}];function Eg(a){return Ln.some(r=>r.value===a)}function Pr(a){return typeof a=="string"&&a.startsWith("grok-")}function Di(a){return typeof a=="string"&&es.has(a)}function b0(a,r){return a?es.has(a)?`${a} ${r==="gemini-api"?"gemini-api":r==="agy"?"agy":r||"agy"}`:Ln.find(l=>l.value===a)?.shortLabel??a:null}const Xu="grok-imagine-video",jn="grok-imagine-video-1.5",Cg="grok-imagine-video-1.5-preview",_r=[{value:Xu,shortLabel:"grokv",fullLabelKey:"settings.videoModel.grokImagine"},{value:jn,shortLabel:"grokv1.5",fullLabelKey:"settings.videoModel.grokImagine15"}];function S0(a){return a===Xu||a===jn||a===Cg}function wg(a){return S0(a)?a===Cg?jn:a:!1}const Ig=10;function Mg(a){return a>=2?"reference-to-video":a===1?"image-to-video":"text-to-video"}function x0(a,r){return r==="reference-to-video"?Math.min(a,Ig):a}function Cu(a,r,l){return r!=="1080p"?!0:a===jn&&(l==="text-to-video"||l==="image-to-video")}const ht=["ima2.rightPanelOpen","ima2.uiMode","ima2.historyStripLayout","ima2:theme","ima2:themeFamily","ima2.canvas.exportBackground.v1","ima2.imageModel","ima2.reasoningEffort","ima2.webSearchEnabled","ima2.generationDefaults","ima2.inFlight","ima2.selectedFilename","ima2.activeSessionId","ima2.graphTabId","ima2.galleryScope","ima2.galleryDefaultScope","ima2.locale","ima2.workspaceProfile","ima2.workspaceOverrides","ima2.videoDefaults"],Rg=ht[0],Og=ht[1],jg=ht[2],kg=ht[3],zg=ht[4],Lg=ht[5],Dg=ht[6],Gg=ht[7],qg=ht[8],Pg=ht[9],Ug=ht[10],qu=ht[11],Pu=ht[12],Mh=ht[13],Qu=ht[14],Hg=ht[15],Bg=ht[19];function _0(a,r,l){const o=new Set(a.map(m=>m.id));if(!o.has(l))return[];const c=new Map;for(const m of o)c.set(m,new Set);for(const m of r)!o.has(m.source)||!o.has(m.target)||(c.get(m.source)?.add(m.target),c.get(m.target)?.add(m.source));const f=new Set,p=[l];for(let m=0;m<p.length;m++){const y=p[m];if(!f.has(y)){f.add(y);for(const h of c.get(y)??[])f.has(h)||p.push(h)}}return a.filter(m=>f.has(m.id)).map(m=>m.id)}function Fg(a){return a.filter(r=>r.selected).map(r=>r.id)}function Gi(a,r){const l=new Set(r);return a.map(o=>({...o,selected:l.has(o.id)}))}function T0(a,r,l,o){const c=new Set(_0(a,r,l));if(!c.size)return a;if(!o)return Gi(a,c);const f=a.find(y=>y.id===l),p=a.some(y=>c.has(y.id)&&y.selected),m=new Set(Fg(a));if(p)f?.selected?m.delete(l):m.add(l);else for(const y of c)m.add(y);return Gi(a,m)}const N0={ok:"확인",cancel:"취소",delete:"삭제",close:"닫기",saving:"저장 중...",loading:"불러오는 중..."},A0={modeImage:"이미지",settings:"설정",controls:"생성 옵션",generate:"생성",generateAria:"이미지 생성을 위한 프롬프트 시트 열기"},E0={close:"프롬프트 시트 닫기",generate:"이미지 생성",controlsOpen:"생성 옵션 열기",tabs:{prompt:"프롬프트",controls:"옵션",library:"라이브러리"}},C0={localImportSuccess:"이미지가 갤러리에 추가됐어요",localImportFailed:"이미지 가져오기 실패",localImportInvalid:"PNG, JPEG, WebP만 지원해요",localStorageFull:"로컬 저장소가 가득 차서 최근 상태가 저장되지 않을 수 있습니다.",refLimitExceeded:"참조 이미지는 최대 5장까지 추가할 수 있습니다. 초과한 이미지는 제외되었습니다.",refTooLarge:"이미지가 너무 큽니다. JPEG/PNG로 미리 변환하거나 해상도를 낮춰 다시 시도해 주세요.",refNotBase64:"이미지 파일이 손상되었거나 지원하지 않는 형식입니다.",refEmpty:"빈 이미지 파일입니다. 다른 파일을 선택해 주세요.",refHeicUnsupported:"HEIC/HEIF는 지원하지 않습니다. JPEG 또는 PNG로 변환 후 다시 시도해 주세요.",noCurrentImageForRef:"참조로 사용할 현재 이미지가 없습니다.",refSlotFull:"참조 이미지 슬롯이 가득 찼습니다. 최대 5장까지 가능합니다.",currentImageLoadFailed:"현재 이미지를 불러오지 못했습니다.",addedCurrentAsRef:"현재 이미지를 참조에 추가했습니다.",sessionLoadFailed:"세션을 불러오지 못했습니다.",sessionCreateFailed:"세션을 만들지 못했습니다.",sessionRenameFailed:"세션 이름을 바꾸지 못했습니다.",sessionDeleteFailed:"세션을 삭제하지 못했습니다.",promptRequired:"프롬프트를 입력하세요.",nodeCreated:"노드 {id} 생성 완료 ({elapsed}초)",nodeRootCreated:"이 이미지를 첫 노드로 만들었습니다.",animateStarted:"이미지를 비디오로 변환 중…",animateProgress:"비디오 렌더링 중… {n}%",animateDone:"비디오가 준비됐어요. 히스토리를 확인하세요.",animateFailed:"비디오 생성에 실패했습니다.",nodeCreateFailed:"노드 생성에 실패했습니다.",generatedBatch:"{count}장을 {elapsed}초 만에 생성했습니다.",generatedSingle:"{elapsed}초 만에 생성했습니다.",generateFailed:"생성에 실패했습니다.",sessionReloadedElsewhere:"그래프 버전이 달라져 최신 그래프를 다시 불러왔습니다.",promptCopied:"프롬프트를 복사했습니다",metadataCopied:"복사했습니다",imageCopied:"클립보드에 복사했습니다",frameCopied:"프레임을 클립보드에 복사했습니다",copyFailed:"복사에 실패했습니다",openGeneratedDirFailed:"이미지 폴더를 열지 못했습니다. ima2 doctor로 저장 경로를 확인해 주세요.",openGeneratedDirOpened:"생성 이미지 폴더를 열었습니다.",noPromptToFork:"가져올 프롬프트가 없습니다",forkStarted:"이 이미지의 프롬프트를 가져왔습니다. 수정 후 다시 생성하세요",forkStartedNoPrompt:"이미지를 참조로 첨부했어요. 프롬프트 입력 후 생성하세요",continueAsUrlStarted:"원본 URL을 참조로 설정했어요. 생성하면 원본 이미지가 사용됩니다.",continueAsUrlExpired:"원본 URL이 만료됐어요. 일반 이어서 생성을 사용해주세요.",comfyExported:"ComfyUI로 보냈습니다: {filename}",comfyExportInvalidUrl:"ComfyUI URL은 로컬 HTTP 주소여야 합니다.",comfyExportInvalidImage:"이 저장 이미지는 ComfyUI로 보낼 수 없습니다.",comfyExportImageNotFound:"저장된 이미지 파일을 찾지 못했습니다.",comfyExportFailed:"ComfyUI로 이미지를 업로드하지 못했습니다.",cancelFailed:"생성을 취소하지 못했습니다."},w0={queued:"대기 중",planning:"프롬프트 생성 중",streaming:"생성 중",decoding:"마무리 중",canceling:"취소 중",noPrompt:"프롬프트 없음",cancelAria:"생성 취소: {prompt}"},I0={title:"크기",grokAspectTitle:"종횡비",grokResolutionTitle:"해상도",width:"가로",height:"세로",hint:"16px 단위, 최대 변 3840, 비율 3:1 이하, 65.5만-829만 픽셀",autoLabel:"자동",autoSub:"모델 추천",customLabel:"직접 입력",customSub:"자유 설정",customPlus:"+ 직접",customSlots:"저장 크기",customSlot:"커스텀",customSlotLimit:"커스텀 크기는 최대 3개",saveCustomSlot:"커스텀 크기 저장",replaceCustomSlot:"슬롯 교체",ratioFree:"자유",ratio21x9:"21:9",normalizedPreview:"전송 크기",noAdjustment:"조정 없음",squareMaxHint:"829만 픽셀 제한 때문에 정사각형 최대는 {size}입니다.",adjustedReasons:{snap:"16px 보정",maxEdge:"최대 변",ratio:"비율 제한",minPixels:"최소 픽셀",maxPixels:"최대 픽셀",min:"최소 변",max:"최대 변",pixels:"픽셀 제한"}},M0={title:"크기 조정이 필요합니다",body:"입력한 크기가 이미지 생성 제한을 벗어나 자동 조정이 필요합니다.",requested:"요청한 크기",adjusted:"조정될 크기",approve:"승인 후 생성",cancel:"취소",reasonRatio:"비율 제한 3:1을 초과했습니다.",reasonPixels:"최대 픽셀 수 제한을 초과했습니다.",reasonMinPixels:"요청한 이미지의 픽셀 수가 너무 적습니다.",reasonMin:"최소 크기보다 작습니다.",reasonMax:"최대 크기보다 큽니다.",reasonSnap:"16px 단위에 맞춰야 합니다."},R0={title:"품질",grokTitle:"Grok 품질",grokModelTitle:"모델",lowLabel:"낮음",lowSub:"빠름",mediumLabel:"중간",mediumSub:"균형",highLabel:"높음",highSub:"최상"},O0={title:"모더레이션",autoLabel:"자동",autoSub:"표준 필터",lowLabel:"낮음",lowSub:"완화 필터",explain:"자동은 표준 안전 필터를 사용합니다. 낮음은 제한을 조금 완화해 경계선 프롬프트가 더 통과할 수 있습니다."},j0={title:"포맷"},k0={title:"개수",customPlus:"+n",customLabel:"직접 입력 개수",highCountHint:"고품질이나 참조 이미지에서는 시간이 더 걸릴 수 있습니다.",minMaxHint:"1-24장까지 가능합니다.",decrease:"개수 줄이기",increase:"개수 늘리기"},z0={label:"시퀀스",tooltip:"한 프롬프트를 단계별 결과로 나눠 생성합니다",shortHint:"단계 계획",maxStages:"최대 단계",highCountHint:"단계가 많으면 몇 분 걸릴 수 있습니다.",minMaxHint:"1-24단계까지 가능합니다.",composerBadge:"시퀀스 · 최대 {count}장",composerAriaLabel:"시퀀스 프롬프트 입력창, 최대 {count}개의 별도 단계",promptPlaceholder:"단계별로 만들 장면을 입력하세요. 같은 프롬프트 반복은 시퀀스를 끄고 개수만 지정하세요.",promptPlaceholderWithRefs:"첨부한 참조를 바탕으로 단계별 시퀀스를 입력하세요.",toggleDisabledGenerating:"현재 생성이 끝난 뒤 변경할 수 있습니다",sequenceTitle:"시퀀스 결과",sequenceProgress:"{returned}/{requested}장",stageLabel:"{index}단계",generating:"생성 중...",partialAlt:"멀티모드 중간 미리보기",partial:"{requested}장 중 {returned}장을 {elapsed}초 만에 생성했습니다.",complete:"{requested}장 중 {returned}장을 {elapsed}초 만에 생성했습니다.",notReturned:"반환되지 않음",empty:"반환된 이미지 없음",error:"생성 실패",canceled:"취소됨",cancel:"취소"},L0={restoreTitle:"이미지 설정 복원",restoreBody:"이 이미지에 ima2 생성 정보가 있습니다. 프롬프트와 설정을 적용하거나 참조 이미지만 추가할 수 있습니다.",applySettings:"설정 적용",useAsReferenceOnly:"참조만 추가",noMetadata:"ima2 메타데이터가 없습니다.",invalidMetadata:"이미지 메타데이터가 올바르지 않습니다.",unsupportedFormat:"PNG, JPEG, WebP 메타데이터만 복원할 수 있습니다.",readFailed:"메타데이터를 읽지 못했습니다.",applied:"이미지 설정을 복원했습니다.",sourceXmp:"XMP",sourcePngComment:"PNG comment",imageAlt:"드롭한 이미지 미리보기",prompt:"프롬프트",size:"크기",quality:"품질",model:"모델",source:"출처",title:"생성 세부 정보",asset:"에셋",summary:"생성 요약",copy:"복사",copyRaw:"원본 JSON 복사",copyField:"{label} 복사",rawJson:"원본 메타데이터 JSON",sections:{provider:"Provider & Model",settings:"생성 설정",usage:"사용량 및 시간",lineage:"출처",video:"비디오",videoContinuity:"비디오 연속성",prompts:"프롬프트"},fields:{provider:"Provider",authPath:"인증 경로",model:"모델",providerUrl:"Provider URL",requestId:"Request ID",quality:"품질",size:"크기",format:"포맷",moderation:"Moderation",reasoning:"Reasoning",promptMode:"프롬프트 모드",kind:"종류",mediaType:"미디어 타입",elapsed:"소요 시간",tokens:"토큰",totalTokens:"총 토큰",inputTokens:"입력",cachedTokens:"캐시됨",outputTokens:"출력",reasoningTokens:"추론",webSearchCalls:"웹 검색",grokCostTicks:"Grok 비용 ticks",usage:"사용량",filename:"파일명",createdAt:"생성 시각",sessionId:"세션",nodeId:"노드",parentNodeId:"부모 노드",clientNodeId:"클라이언트 노드",refsCount:"참조",sequence:"시퀀스",setId:"세트",cardId:"카드",videoDuration:"길이",videoResolution:"해상도",videoAspectRatio:"화면비",videoRequestedModel:"요청 모델",videoEffectiveModel:"실제 모델",videoModelFallback:"모델 대체",xaiVideoRequestId:"xAI 비디오 요청",sourceImageFilename:"소스 이미지",lineageId:"Lineage",parentFilename:"부모 파일",sourceFrame:"소스 프레임",continuityEntries:"항목",latestContinuityPrompt:"최근 연속성 프롬프트",promptPrimary:"프롬프트",userPrompt:"사용자 프롬프트",prompt:"저장된 프롬프트",revisedPrompt:"수정된 프롬프트",composerPrompt:"작성기 프롬프트",insertedPrompts:"삽입된 프롬프트"}},D0={title:"안녕하세요, 처음이신가요?",body:"여기서 로그인하세요. ChatGPT, Grok, Gemini를 연결할 수 있어요.",login:"네",skip:"알아서 진행하겠습니다"},G0={title:"생성 준비 상태",open:"준비 상태 확인",openTitle:"프로바이더, 인증, 모델, 웹 검색 준비 상태 확인",settingsTitle:"생성 준비 상태",settingsBody:"프로바이더, 인증, 모델, 추론, 웹 검색 상태를 팝업으로 확인합니다.",ready:"생성 준비 완료",readyBody:"선택한 프로바이더를 사용할 수 있습니다.",blocked:"프로바이더 확인 필요",provider:"프로바이더",model:"모델",reasoning:"추론",webSearch:"웹 검색",grokApi:"Grok API",grokApiBody:"번들된 progrok에서 필수 검색 → grok-4.3 이미지+텍스트 tool planning(영어 프롬프트) → xAI Images API 순서로 실행됩니다. 첨부 레퍼런스는 xAI 이미지 편집으로 보내 i2i 맥락을 보존합니다.",openAccount:"계정 설정 열기"},q0={button:"생성",buttonLoading:"생성 중 ({n})"},P0={label:"API 상태",checking:"확인 중...",offline:"오프라인",remaining:"${remaining} 남음",thisMonth:"이번 달 ${amount}",oauthFree:"GPT OAuth 무료 사용 가능",apiDisabled:"API 키 사용 가능",apiReady:"API 키 사용 가능",oauthMode:"GPT OAuth 모드"},U0={openGalleryAria:"갤러리 열기",openGalleryTitle:"전체 갤러리 열기",openGalleryShort:"전체",galleryCard:"갤러리 열기",recentTitle:"최근 생성",collapseRecent:"최근 생성 접기",expandRecent:"최근 생성 펼치기",collapseRecentShort:"접기",expandRecentShort:"펼치기",emptyRecent:"생성 히스토리가 여기에 표시됩니다.",selectRecent:"생성 히스토리 선택",deleteImageAria:"이미지 기록 삭제",deleteSequenceAria:"{count}장 시퀀스 삭제",deleteSequenceConfirm:"이 멀티모드 시퀀스의 이미지 {count}장을 삭제할까요?",sequenceDeleted:"시퀀스 이미지 {count}장을 히스토리에서 삭제했습니다"},H0={closeSettings:"설정 닫기",detailSettings:"세부 설정",toggleShow:"세부 설정 보기",toggleHide:"세부 설정 숨기기",open:"열기",close:"닫기"},B0={label:"프롬프트",refCount:"참조 {count}/{max}",refChipTitle:"참조 이미지 {n}",refChipAlt:"참조 이미지 {n}",refRemoveAria:"참조 이미지 {n} 제거",placeholder:"원하는 이미지를 설명하고, 드래그 앤 드롭이나 붙여넣기로 참조 이미지를 추가할 수 있어요...",placeholderWithRefs:"첨부한 이미지로 무엇을 만들지 설명해 주세요...",attach:"첨부",attachTitle:"참조 이미지 첨부",useCurrent:"현재 결과 사용",useCurrentTitle:"현재 결과를 참조로 사용",continue:"이어가기",continueTitle:"현재 결과를 참조로 이어서 작업",savePrompt:"저장",storyboard:"스토리보드",storyboardTitle:"스토리보드 모드 — 인물과 장면의 연속성을 유지하며 순차 프레임 생성",videoToggleTitle:"비디오 모드 전환 (Grok 1.5)",directMode:"Direct",directModeActive:"1:1 Direct 켜짐",directModeTitle:"프롬프트를 원문 그대로 전달 (Direct 모드)",urlRefActive:"URL 참조",urlRefActiveTitle:"URL 참조가 활성화되어 첨부 이미지 대신 사용됩니다. 클릭하면 해제합니다.",urlRefClear:"URL 참조 해제",moveBlockUp:"{name} 위로 이동",moveBlockDown:"{name} 아래로 이동",afterBlocks:"본문 프롬프트 뒤",hint:"Ctrl + Enter로 생성",dropHere:"놓아서 참조 이미지로 추가 ({max}장까지)"},F0={resultAlt:"생성 결과",imageViewerAria:"생성 이미지 뷰어. 좌우 방향키로 이전 또는 다음 이미지를 볼 수 있습니다.",tokens:"{n} 토큰",open:"캔버스 열기",openAria:"캔버스 모드에서 이미지 열기",dragToComposer:"작성창으로 드래그해서 참조 추가",close:"캔버스 닫기",blank:{title:"흰 캔버스",subtitle:"흰 종이에 그린 뒤 여기서 이어가세요.",create:"흰 캔버스 만들기",creating:"만드는 중...",failed:"흰 캔버스를 만들 수 없습니다"},drop:{hint:"이미지를 떨어뜨려 갤러리에 추가"},toolbar:{label:"캔버스 주석 도구",select:"선택",bgGroup:"내보내기 배경",bgAlpha:"투명",bgMatte:"단색",bgMatteColor:"단색 색상",cleanup:"배경 정리",cleanupMark:"표시",cleanupRemove:"제거",cleanupPreserve:"보존",cleanupInput:"입력",cleanupClick:"클릭",cleanupBrush:"브러시",cleanupBrushSize:"브러시",cleanupTolerance:"감도",cleanupAutoSample:"모서리",cleanupPickSeed:"배경 찍기",cleanupPickingSeed:"배경 클릭",cleanupActive:"활성",cleanupPreview:"미리보기",cleanupPreviewing:"미리보기 중...",cleanupApply:"PNG 적용",cleanupApplying:"적용 중...",cleanupReset:"초기화",cleanupSeedCount:"{n}개 seed",cleanupRemoved:"{n}% 제거",cleanupPickHint:"이미지 위 배경을 클릭하세요",cleanupBrushHint:"표시할 영역을 칠하세요",cleanupMaskHint:"보라색 영역이 제거 예정",cleanupApplied:"투명 PNG 생성됨",cleanupFailed:"배경 정리 실패",zoomGroup:"캔버스 확대/축소",zoomIn:"확대",zoomOut:"축소",zoomReset:"확대 초기화",zoomShortcutHint:"핀치 확대 · 두손가락 이동 · [ / ] · 0",pen:"펜",box:"박스",arrow:"화살표",memo:"메모",eraser:"지우개",eraserMenu:"지우개 옵션",objectEraser:"객체 지우개",brushEraser:"브러시 지우개",apply:"캔버스 버전 저장",applyDone:"캔버스 버전 저장됨",applyFailed:"캔버스 버전 저장 실패",export:"이미지 내보내기",exporting:"내보내는 중...",exportFailed:"내보내기 실패",undo:"실행 취소",redo:"다시 실행",deleteSelected:"선택 삭제",editMask:"박스 영역 편집",editMaskDisabled:"먼저 박스를 그려주세요",editMaskFailed:"마스크 편집 실패",editMaskUnsupported:"현재 이미지 제공자는 마스크 편집을 지원하지 않습니다",style:"스타일",color:"색상",strokeWidth:"선 굵기",clear:"모두 지우기"},version:{saving:"캔버스 버전 저장 중...",saved:"캔버스 버전 저장됨",failed:"캔버스 버전 저장 실패",usingAsReference:"캔버스 버전을 참조 이미지로 사용할 수 있습니다"}},V0={today:"오늘",yesterday:"어제",thisWeek:"이번 주",earlier:"이전",imageAltFallback:"생성 이미지",deleteTitle:"시스템 휴지통으로 이동",deleteAria:"이미지 삭제",ariaLabel:"이미지 갤러리",title:"갤러리",total:"총 {n}장",totalFiltered:" / 전체 {n}장",sortByAria:"정렬 기준",sortByDate:"날짜",sortBySession:"세션",favoriteFilterAria:"즐겨찾기 필터",filterAll:"전체",filterFavorites:"즐겨찾기",searchPlaceholder:"프롬프트나 파일명을 검색",searchDisabledPlaceholder:"세션 보기에서는 검색이 비활성화됩니다",closeAria:"갤러리 닫기",closeTitle:"닫기 (Esc)",sessionLabel:"세션 {name}",standalone:"독립 이미지",emptySessions:"아직 저장된 세션이 없습니다.",emptyAll:"아직 생성된 이미지가 없습니다. 먼저 하나 만들어보세요.",emptyFavorites:"아직 즐겨찾기한 이미지가 없습니다.",noResults:"검색 결과가 없습니다.",loadOlder:"이전 이미지 더 불러오기",loadingOlder:"이전 이미지 불러오는 중...",loadOlderFavorites:"이전 즐겨찾기 더 불러오기",loadingOlderFavorites:"이전 즐겨찾기 불러오는 중...",sessionPaginationHint:"세션 보기는 현재 페이지 기준입니다. 이전 이미지를 더 보려면 날짜 보기로 전환해 주세요.",loadOlderFailed:"이전 갤러리 항목을 불러오지 못했습니다.",storageNoticeTitle:"저장 위치 안내",storageNoticeRecoverable:"놀라게 해드려 죄송합니다. 최근 버전에서 갤러리 저장 위치가 설치 폴더에서 사용자 데이터 폴더로 바뀌었습니다. 예전 이미지가 이전 generated 폴더에 남아 있을 수 있어요. ima2 doctor를 실행하거나 복구 안내를 확인해 주세요.",storageNoticeNotFound:"놀라게 해드려 죄송합니다. 현재 이 컴퓨터에서 이전 generated 폴더를 찾지 못했습니다. 업데이트 중 예전 전역 설치 폴더가 교체된 경우 자동 복구가 어려울 수 있습니다. ima2 doctor와 복구 안내의 수동 검색 방법을 확인해 주세요.",storageNoticeUnknown:"저장 위치 상태를 확인하지 못했습니다. 업데이트 후 갤러리가 비어 보인다면 ima2 doctor로 이미지 폴더를 확인해 주세요.",openGeneratedDir:"폴더 열기",openGeneratedDirTitle:"생성 이미지 폴더 열기",cardNewsSet:"카드뉴스 세트",cardNewsCard:"카드뉴스 카드",openCardNewsSet:"세트 열기",openCardNewsSetFailed:"카드뉴스 세트를 열지 못했습니다.",copyCardNewsSetPath:"경로 복사",cardNewsPathCopied:"카드뉴스 세트 경로를 복사했습니다.",downloadCardNewsManifest:"매니페스트",cardNewsCount:"{n}장",deleted:"삭제됨: {filename}",undo:"되돌리기",secondsSuffix:"{n}초",permanentDeleted:"완전 삭제됨: {filename}",movedToSystemTrash:"시스템 휴지통으로 이동됨: {filename}",deleteFailed:"이미지를 삭제하지 못했습니다.",restoreFailed:"이미지를 복구하지 못했습니다.",favoriteTitle:"즐겨찾기 추가",unfavoriteTitle:"즐겨찾기 해제",favoriteAria:"즐겨찾기 추가",unfavoriteAria:"즐겨찾기 해제",scopeAria:"갤러리 범위",scope:{current:"현재 세션",all:"전체 이미지"},empty:{currentSession:"이번 세션에는 아직 이미지가 없습니다."}},K0={empty:"비어 있음",pending:"생성 중",reconciling:"동기화 중",reconcilingPhase:"동기화 중 · {phase}",ready:"완료 · {elapsed}s",readyWithSearch:"완료 · {elapsed}s · 검색 {searches}",stale:"오래된 상태",staleWithError:"오래된 상태: {error}",assetMissing:"에셋 누락",assetMissingWithError:"에셋 누락: {error}",error:"오류: {error}",errorUnknown:"알 수 없음",nodeImageAlt:"노드 이미지",partialImageAlt:"노드 중간 이미지 미리보기",noAsset:"에셋 없음",stateStale:"상태 오래됨",noImage:"이미지 없음",editPromptPlaceholder:"수정 프롬프트...",promptPlaceholder:"프롬프트...",regenerate:"재생성",newVariation:"새 변형",generate:"생성",generateTitle:"노드 이미지 생성",addChild:"자식",addChildTitle:"자식 노드 추가",duplicateBranch:"복제",duplicateBranchTitle:"새 브랜치 루트로 복제",deleteTitle:"삭제",regenerateTitle:"현재 노드 이미지를 제자리에서 다시 생성",newVariationTitle:"같은 부모 아래 새 변형 노드를 생성",parentImageRequired:"부모 이미지를 먼저 생성해야 합니다.",attachRef:"첨부",attachRefTitle:"노드 참조 이미지 첨부",refAlt:"노드 참조 이미지 {n}",removeRef:"참조 이미지 {n} 제거",dropRefs:"이미지를 여기에 놓기",nodeRefsUnsupportedForEdit:"추가 참조 이미지는 현재 루트 노드에서만 지원합니다.",nodeRefsUsedWithParent:"부모 이미지와 함께 참조로 사용됩니다.",classicRefsParkedTitle:"클래식 참조 이미지가 보관 중입니다",classicRefsParkedBody:"이 이미지는 클래식 작성창용이라 노드 모드 생성에는 사용되지 않습니다.",clearParkedRefs:"보관된 참조 비우기"},Y0={selectionOn:"선택중",selectionOff:"선택",selectAll:"전체",summary:"선택 {selected} · 미생성 {missing} · 영향 {stale}",generateMissing:"미생성",regenerateSelected:"재생성",stopRemaining:"중단",stopping:"중단중",clear:"해제",noneSelected:"선택된 노드가 없습니다.",parentRequired:"부모 이미지가 준비되지 않은 선택 노드가 {count}개 있습니다.",nothingToRun:"생성할 선택 노드가 없습니다.",stopQueued:"현재 노드가 끝나면 남은 작업을 중단합니다.",failed:"{done}/{total} 완료 후 중단되었습니다.",finished:"{done}/{total} 노드 작업 완료",staleBecauseParentChanged:"상위 노드가 재생성되어 다시 확인이 필요합니다."},X0={disconnect:"끊기",disconnectTitle:"선택한 연결선 끊기",disconnected:"연결선을 끊었습니다.",parentConflict:"한 노드에는 부모 연결을 하나만 둘 수 있습니다."},Q0={authTitle:"공급자",apiLabel:"API 키",oauthNotReady:"GPT OAuth 프록시가 아직 준비되지 않았습니다.",codexLoginRequired:"Codex 로그인이 필요합니다.",codexLoginHint:"터미널에서 `codex login`을 실행한 뒤 이 페이지를 새로고침하세요.",oauthStarting:"GPT OAuth 프록시가 시작 중입니다. 몇 초 후 다시 시도하세요.",serverUnreachable:"서버에 연결할 수 없습니다. 백엔드가 실행 중인지 확인하세요.",apiInvalid:"API 키가 없거나 유효하지 않습니다. 서버의 .env 파일에서 OPENAI_API_KEY를 확인하세요.",grokOffline:"Grok 프록시가 실행되지 않고 있습니다.",grokNoImageModel:"Grok 이미지 생성 모델을 찾을 수 없습니다.",grokNotReady:"Grok을 사용할 수 없습니다.",grokOfflineHint:"필요하면 `ima2 grok login`을 한 번 실행한 뒤 `ima2 serve`를 시작하세요. ima2가 번들된 Grok 프록시를 자동으로 띄웁니다.",grokManagedByIma2:"Grok은 `ima2 serve` 안에서 번들된 progrok 프록시(127.0.0.1:18645)로 로컬 실행됩니다.",grokClassicOnly:"이 화면에서는 Grok 이미지 생성을 사용할 수 없습니다.",grokClassicOnlyHint:"Grok이 켜진 생성 화면에서 사용하세요.",grokCompatTitle:"Grok 이미지 API",grokCompatBody:"ima2 serve가 번들된 progrok 프록시(127.0.0.1:18645)를 관리합니다. Grok은 검색을 항상 사용한 뒤 첨부 레퍼런스를 grok-4.3 planner에 함께 보내고, xAI 이미지 편집으로 유지하며, 크기는 xAI aspect ratio/resolution으로 매핑됩니다. 출력 포맷, 모더레이션, 추론은 OpenAI 공급자에서만 설정됩니다.",settingsBody:"앞으로 생성 요청에 사용할 공급자를 선택합니다.",availableTitle:"{name} 사용 가능",availableAria:"{name}: 사용 가능",unavailableAria:"{name}: 사용 불가",availableSr:"(사용 가능)",unavailableSr:"(사용 불가)",xaiApiKeyRequired:"xAI API 키 필요",geminiApiKeyRequired:"Gemini API 키 필요",comingSoon:"준비 중",agyCompatTitle:"Gemini (agy)",agyCompatBody:"1024x1024 고정, JPEG 출력, 최대 3개 참조. 품질/크기 조절 없음.",agyCompatBodyLong:"1024x1024 고정 출력, JPEG 형식, 최대 3개 참조 이미지. 웹 검색, 품질/크기 조절 없음.",geminiApiCompatTitle:"Gemini API",geminiApiCompatBody:"Google Gemini API. 512px부터 4K까지 종횡비와 해상도를 조절할 수 있습니다.",geminiApiCompatBodyLong:"Google Gemini API 직접 호출. nano-banana-2(Flash), nano-banana-pro(Pro)를 지원하며 512px부터 4K까지 종횡비와 해상도를 조절할 수 있습니다.",gptCompatTitle:"GPT Image",gptCompatBody:"OpenAI Responses API를 통한 이미지 생성. 품질, 크기, 형식, 모더레이션, 웹 검색 설정 지원."},Z0={image:"이미지",video:"비디오"},$0={free:"무료",approx:"약 ${amount}",multimodeApprox:"최대 약 ${amount} ({count}장)",label:"예상 비용"},J0={download:"다운로드",copyImage:"이미지 복사",copyLastFrame:`마지막
11
+ 프레임`,copyFirstFrame:`처음
12
+ 프레임`,copyMidFrame:`중간
13
+ 프레임`,copyPrompt:"프롬프트 복사",continueHere:"여기서 이어서",continueHereTitle:"이 이미지의 프롬프트를 가져와 이어서 작업",continueAsUrl:"URL로 이어서",continueAsUrlTitle:"원본 URL을 사용해 이어서 생성 (1시간 내 만료)",animate:"애니메이트",animating:"애니메이트 중…",animateTitle:"이 이미지로 Grok 비디오 생성 (이미지→비디오)",firstNode:"첫 노드",firstNodeTitle:"이 이미지를 Node Mode의 준비된 첫 노드로 보냅니다",info:"정보",infoTitle:"생성 세부 정보와 출처를 표시합니다",delete:"삭제",deleteTitle:"휴지통으로 이동",more:"더보기",sendToComfyUI:"ComfyUI로 보내기",sendToComfyUITitle:"이 저장된 이미지를 로컬 ComfyUI로 업로드",permanentDelete:"완전 삭제",permanentDeleteConfirm:'"{filename}" 이미지를 완전히 삭제할까요? 이 작업은 되돌릴 수 없습니다.'},W0={switchTitle:"세션 전환",loading:"불러오는 중...",newSession:"새 세션",newSessionTitle:"새 세션",renameTitle:"이름 변경",renamePrompt:"세션 이름",deleteTitle:"삭제",deleteConfirm:'"{title}" 세션을 삭제할까요? 이 작업은 되돌릴 수 없습니다.',empty:"아직 세션이 없습니다",firstGraph:"첫 번째 그래프",untitled:"제목 없는 세션",assetAbortedError:"생성이 정상적으로 끝나지 않았습니다. 이 노드에서 다시 시도하세요."},ex={ariaLabel:"UI 모드",classic:"기본",node:"노드",cardNews:"카드뉴스",agent:"에이전트"},tx={workspace:"에이전트 작업공간",title:"에이전트",newSession:"새 에이전트",sessions:"세션",openSessions:"세션 열기",closeSessions:"세션 닫기",sessionSearch:"세션 검색",renameSession:"세션 이름 바꾸기",deleteSession:"세션 삭제",deleteConfirm:'"{title}" 세션을 삭제할까요?',imageCount:"{count}장",compacted:"컴팩트됨",web:"웹",chat:"채팅",user:"사용자",assistant:"에이전트",tool:"도구",toolExpand:"도구 상세 펼치기",toolCollapse:"도구 상세 접기",toolImageCount:"{count}장",toolCallCount:"{count}개 호출",toolGroup:"도구 실행",toolInput:"입력",toolOutput:"출력",toolArtifacts:"결과물",requestId:"요청 ID",duration:"소요 시간",toolStatus:{queued:"대기",running:"실행 중",complete:"완료",error:"오류"},rightSidebar:"에이전트 사이드 도구",sidebarTabs:{image:"이미지",library:"라이브러리",forms:"양식",quality:"품질",model:"모델",queue:"큐"},modelSettings:"모델 설정",closeModelSettings:"모델 설정 닫기",openModelSettings:"모델 설정 열기",model:"모델",provider:"프로바이더",reasoningEffort:"추론",generationStrategy:"생성 계획",generationStrategyAuto:"사용자 요청 기준",generationStrategyManual:"고정 개수",quality:"품질",size:"크기",format:"포맷",moderation:"모더레이션",variantsCount:"변형 수",maxAutoVariants:"자동 최대",parallelism:"병렬 수",promptLibrary:"프롬프트 라이브러리",forms:"양식",noForms:"양식 템플릿이 없습니다",insertPrompt:"삽입",queue:"큐",runningShort:"실행",queuedShort:"대기",queueEmpty:"대기 중인 에이전트 작업이 없습니다.",cancelQueue:"취소",retryQueue:"재시도",sessionRunning:"생성 실행 중",sessionQueued:"{count}개 대기",sessionError:"생성 오류",queueStatus:{queued:"대기",running:"실행 중",succeeded:"완료",failed:"실패",canceled:"취소됨"},statusReady:"준비됨",statusGenerating:"생성 중",statusReconnecting:"연결 복구 중",pending:"응답을 생성하는 중...",pendingQueued:"대기열에서 기다리는 중...",pendingPlanning:"응답을 계획하는 중...",pendingGenerating:"도구 실행·생성 진행 중...",runError:"실행 중 오류가 발생했어요",errorRole:"오류",composerPlaceholder:"무엇이든 물어보거나 만들 것을 설명하세요",slashCommands:"에이전트 슬래시 명령",slashDesc_question:"이미지 생성 없이 질문",slashDesc_variants:"N개 이미지 변형 생성 (1-24)",slashDesc_generate:"bounded fanout 생성 (1-24)",slashDesc_parallelism:"동시 실행 제한",slashDesc_help:"사용 가능한 명령어 도움말",attachReference:"참조 첨부",send:"전송",webSearch:"검색 사용",emptyChat:"메시지를 입력하면 이미지 작업이 시작됩니다.",imagePane:"이미지",currentImage:"현재 이미지",openImage:"이미지 열기",closeImage:"이미지 닫기",selectImage:"이미지 포커스",variants:"변형",contextTabs:"이미지 컨텍스트",imageTab:"이미지",refsTab:"참조",webTab:"웹 근거",memoryTab:"기억",noImage:"현재 이미지 없음",noRefs:"참조 없음",noWeb:"웹 근거 없음",memoryItemStyle:"스타일 잠금은 이미지 컨텍스트에 보존됩니다.",memoryItemSubject:"피사체 잠금은 재개 후에도 복원됩니다.",imageAlt:"에이전트 이미지",filename:"파일",prompt:"프롬프트"},ax={workspace:"카드뉴스 작업공간",composer:"카드뉴스",composerHint:"템플릿은 스냅샷 기준이고, 출력 크기는 별도로 지정합니다.",topic:"주제",topicPlaceholder:"예: 중간고사 역전 플랜",audience:"대상",audiencePlaceholder:"예: 학부모",goal:"목표",goalPlaceholder:"예: 상담 신청",brief:"내용",briefPlaceholder:"카드뉴스에 들어갈 핵심 내용과 금지사항을 적어주세요.",outputSize:"출력 크기",customSize:"직접",draft:"초안 만들기",drafting:"초안 작성 중...",generateSet:"세트 생성",batchGenerate:"일괄 생성",generating:"생성 중...",generated:"{count}장 생성 완료.",missingGeneratedCard:"생성 응답에 이 카드가 포함되지 않았습니다.",error:"카드 생성에 실패했습니다.",imageTemplate:"이미지 템플릿",roleTemplate:"카드 구조",newTemplateLater:"커스텀 템플릿은 dev MVP 이후에 지원합니다",emptyTitle:"초안 대기 중",emptyBody:"왼쪽 설정으로 카드 덱을 준비합니다.",inspector:"카드 편집",cardTitle:"카드 제목",headline:"제목",body:"본문",visualPrompt:"이미지 프롬프트",summaryCopy:"요약 문구",designPrompt:"장면 / 디자인 프롬프트",textFields:"텍스트 박스",addTextField:"텍스트 박스 추가",removeTextField:"삭제",noTextFields:"아직 텍스트 박스가 없습니다.",textFieldText:"텍스트",textKind:"종류",placement:"위치",renderMode:"표시 방식",hierarchyLabel:"위계",textTooLong:"권장 길이를 초과했습니다.",selectTextField:"텍스트 박스 선택: {text}",textKinds:{headline:"제목",body:"설명 텍스트",caption:"캡션",cta:"행동 유도",badge:"배지",number:"숫자"},renderModes:{"in-image":"이미지에 표시","ui-only":"메모만"},hierarchy:{primary:"주요",secondary:"보조",supporting:"부가"},placements:{"top-left":"좌측 상단","top-center":"상단 중앙","top-right":"우측 상단","center-left":"좌측 중앙",center:"중앙","center-right":"우측 중앙","bottom-left":"좌측 하단","bottom-center":"하단 중앙","bottom-right":"우측 하단",free:"직접 지정"},roles:{cover:"표지",hook:"후킹",problem:"문제",insight:"인사이트",example:"예시",data:"데이터",summary:"요약",cta:"행동 유도"},locked:"잠김",unlocked:"열림",noCard:"선택된 카드 없음",generatedMeta:"생성 메타데이터",lockedHelp:"잠긴 카드는 일괄 생성과 재시도에서 제외됩니다.",retryCard:"이 카드 재시도",actions:{copyPrompt:"프롬프트 복사",copyCopy:"문구 복사",openImage:"이미지 열기",downloadCard:"다운로드"},status:{draft:"초안",queued:"대기",generating:"생성 중",generated:"완료",error:"오류",skipped:"제외",locked:"잠김"},progress:{generating:"생성 중 {done}/{total}",summary:"완료 {done}/{total}",detail:"대기 {queued} · 오류 {errors} · 제외 {skipped}",cardGenerating:"이 카드를 생성 중입니다."},planner:{structured:"구조화 JSON",jsonMode:"JSON 모드",repaired:"보정됨",fallback:"기본 초안",jsonOnlyHelp:"초안은 JSON만 만들고 이미지는 나중에 생성합니다.",error:"초안 생성 실패"}},nx={plannerModelTitle:"플래너 모델",reasoningEffortTitle:"추론 강도",modeLabel:"비디오 모드",mode:{"text-to-video":"텍스트 → 비디오 (참조 이미지 없음)","image-to-video":"이미지 → 비디오 (참조 1장)","reference-to-video":"레퍼런스 → 비디오 (참조 {n}장)"},seriesTopicTitle:"시리즈 주제",seriesTopicPlaceholder:"예: 한국 여행 브이로그",durationTitle:"길이",resolutionTitle:"해상도",resolution1080Help:"1080p는 Grok V1.5의 프롬프트 전용 또는 단일 이미지/프레임 영상에서 사용합니다. 참조 2장 이상에서는 사용할 수 없습니다.",aspectTitle:"비율"},lx={appName:"이미지 생성기",imageModelLabel:"모델",imageSectionLabel:"이미지",gptImageSubLabel:"GPT-IMAGE-2",grokImageSubLabel:"Grok Imagine",geminiImageSubLabel:"Gemini",videoSectionLabel:"비디오",imageModelAria:"이미지 모델 선택",quickSettingsAria:"모델과 추론 강도 선택. 현재 모델 {model}, 추론 {effort}",quickSettingsModelOnlyAria:"이미지 모델 선택. 현재 모델 {model}",quickSettingsMenu:"모델 및 추론 빠른 설정",reasoningLabel:"추론",videoModelLabel:"비디오",nodeModeHint:"노드 모드에서는 노드를 눌러 프롬프트를 수정한 뒤 생성하세요. 오른쪽 패널의 설정 (품질/크기)은 새로 만드는 모든 결과에 적용됩니다."},ix={openAria:"설정 열기",openTitle:"설정",closeAria:"설정 닫기",closeTitle:"캔버스로 돌아가기",navAria:"설정 섹션",contentAria:"설정 내용",jumpTo:"{section} 섹션으로 이동",eyebrow:"작업공간 설정",title:"설정",subtitle:"계정, 화면, 앞으로 늘어날 작업공간 옵션을 이곳에 모아 생성 흐름은 가볍게 유지합니다.",sections:{account:{title:"계정",hint:"GPT OAuth 상태"},generation:{title:"생성",hint:"모델 기본값"},appearance:{title:"화면",hint:"라이트/다크"},workspace:{title:"작업공간",hint:"프로필"},language:{title:"언어",hint:"UI 문구"},future:{title:"예정",hint:"확장 공간"}},account:{primaryEyebrow:"현재 공급자",oauthTitle:"GPT OAuth 사용 중",oauthBody:"GPT OAuth 생성은 Codex OAuth 세션으로 실행됩니다. 유효한 키가 설정되어 있으면 API-Key 모드로 전환할 수 있습니다.",apiSourceEnv:"OPENAI_API_KEY 감지됨",apiSourceConfig:"config.json API 키 감지됨",apiTitle:"API 키 공급자 사용 가능",apiBody:"ima2-gen은 이 API 키로 Responses API 기반 생성, 편집, 멀티모드, 노드 요청을 처리할 수 있습니다.",apiDisabled:"사용 불가",apiReady:"준비됨",apiUnavailable:"사용 불가",apiUnknown:"상태 불명",grokEyebrow:"로컬 xAI 프록시",grokTitle:"Grok 이미지 공급자",grokBody:"설정된 로컬 포트의 progrok을 통해 xAI Images API 생성을 사용합니다.",agyEyebrow:"Antigravity CLI",agyTitle:"Gemini (agy)",agyInstalledBody:"로그인 상태는 확인할 수 없습니다. 생성이 실패하면 터미널에서 agy login 을 실행하세요.",agyMissingBody:"설치되지 않았습니다. 설치:",agyMissingLink:"Antigravity CLI",agyFineprint:"antigravity 모델과 이미지 할당량은 별도입니다.",agyInstalled:"설치됨",agyMissing:"미설치",status:{ready:"준비됨",authRequired:"로그인 필요",starting:"시작 중",offline:"오프라인",noImageModel:"이미지 모델 없음",error:"오류",checking:"확인 중"}},quota:{eyebrow:"사용량 쿼타",title:"속도 제한",codexNotLoggedIn:"로그인 필요",fetchError:"쿼타를 불러올 수 없음",noData:"사용량 데이터 없음",grokUsageLink:"Grok 사용량 보기 →"},imageModel:{title:"이미지 모델",body:"앞으로 생성 요청에 사용할 이미지 모델을 선택합니다. Grok 모델을 선택하면 공급자도 Grok으로 전환됩니다.",gpt54Mini:"GPT-5.4 Mini",gpt54:"GPT-5.4",gpt55:"GPT-5.5",grokImagine:"Grok Imagine",grokImagineQuality:"Grok Imagine Quality",nanoBanana2:"Nano Banana 2",nanoBanana2Api:"Nano Banana 2",nanoBananaPro:"나노 바나나 Pro",agy:"Antigravity (agy)",gpt53CodexSpark:"GPT-5.3 Codex Spark — 이미지 생성 미지원",unsupportedHelp:"Grok 모델은 번들된 로컬 프록시를 통해 xAI Images API를 사용합니다. GPT 모델은 OpenAI Responses 이미지 생성을 사용합니다."},apiKeys:{accordionTitle:"API Keys",envSource:"환경 변수에서 로드됨",configSource:"설정 파일에서 로드됨",openai:{label:"GPT API Key (OpenAI)",placeholder:"OpenAI API 키 붙여넣기 (sk-...)"},xai:{label:"Grok API Key (xAI)",placeholder:"xAI API 키 붙여넣기 (xai-...)"},gemini:{label:"Gemini (Google)",placeholder:"Gemini API 키 붙여넣기 (AI...)"},vertex:{label:"Vertex AI (서비스 계정)",placeholder:'Google Cloud 서비스 계정 JSON 붙여넣기 { "type": "service_account", ... }',authModeApiKey:"API Key",authModeVertex:"Vertex JSON"},save:"저장",saved:"저장됨 ✓",saving:"검증 중...",remove:"삭제",status:{valid:"유효",notConfigured:"미설정"}},videoModel:{grokImagine:"Grok Imagine Video",grokImagine15:"Grok Imagine Video 1.5"},reasoning:{title:"추론 강도",body:"값이 높을수록 생성 전에 plan/검색/프롬프트 보강에 더 많은 reasoning 토큰을 사용합니다.",none:"Off — 추가 추론 없음",low:"Low — 가장 빠름, 추론 최소",medium:"Medium — 기본 균형값",high:"High — 더 깊은 리서치와 통합",xhigh:"Xhigh — 최대 추론, 가장 느림"},webSearch:{title:"웹서치",body:"실존 인물, 브랜드, 제품, 장소, 최신 이벤트를 생성 전에 실시간 검색해서 반영합니다.",on:"검색 켬",off:"검색 끔"},grokCompatibility:{title:"Grok 호환성",body:"Grok 이미지 생성은 먼저 필수 웹 검색을 수행하고, 그 다음 텍스트와 첨부 이미지를 함께 보는 image-tool planner가 최종 이미지 프롬프트를 영어로 작성한 뒤 xAI Images API로 실행됩니다. 첨부 레퍼런스는 xAI 이미지 편집 경로로 유지되고, 크기는 aspect ratio/resolution으로 매핑됩니다. 출력 포맷·모더레이션·추론은 GPT OAuth/API 키 공급자에서만 사용됩니다."},grokPlanner:{title:"Grok planner 모델",body:"검색과 이미지/비디오 프롬프트 기획에 사용하는 모델입니다. grok-4.3이 기본값이며 I2V/Ref2V 기획 시 이미지 입력을 지원합니다."},gallery:{defaultScopeTitle:"기본 갤러리 보기",defaultScopeBody:"갤러리를 열 때 처음 보여줄 범위를 선택합니다."},appearance:{themeTitle:"테마",themeBody:"이 기기에서 사용할 테마 스타일과 밝기를 선택합니다.",historyStripLayoutTitle:"히스토리 썸네일",historyStripLayoutBody:"작업공간 옆 작은 히스토리 배열 방식을 고릅니다.",historyStripLayout:{rail:"세로",horizontal:"상단 가로",sidebar:"사이드바"}},language:{title:"언어",body:"생성 프롬프트와 무관하게 인터페이스 언어만 바꿉니다."},future:{title:"나중을 위한 자리",body:"GPT OAuth 복구 도구나 작업공간 옵션이 실제로 필요해지면 이곳에 추가합니다."}},ox={loading:"세션 불러오는 중...",addFirst:"+ 첫 노드 추가",addRootTitle:"루트 노드 추가",hint:"핸들을 빈 공간으로 드래그하면 새 브랜치가 생깁니다. Delete 또는 Backspace로 삭제할 수 있습니다."},rx={title:"{provider} 사용 불가",ariaLabel:"{provider} 사용 불가"},sx={label:"언어",ko:"한국어",en:"English"},cx={label:"테마",modeLabel:"밝기",styleLabel:"테마 스타일",system:"시스템",dark:"다크",light:"라이트",family:{default:"기본",gpt:"GPT",claude:"Claude",gemini:"Gemini",grok:"Grok"}},ux={close:"닫기",details:"자세한 원본 오류 보기",unknown:{title:"알 수 없는 오류가 발생했어요",body:"잠시 후 다시 시도해 주세요. 문제가 계속되면 원본 오류 메시지를 복사해 제보해 주세요."},moderationRefused:{title:"프롬프트가 모더레이션에 걸렸어요",body:"표현 수위를 낮추거나 다른 문구로 바꿔 보세요. 레퍼런스 이미지의 선정적/폭력적 요소도 영향을 줄 수 있어요.",cta:"프롬프트 수정",bodyInput:"프롬프트 텍스트가 입력 필터에 걸렸어요. 표현을 바꾸거나 다른 문구로 시도해 보세요.",bodyOutput:"이미지가 생성 후 출력 필터에 걸렸어요. 스타일이나 품질 설정을 바꿔 보세요."},emptyResponse:{title:"이미지가 돌아오지 않았어요",body:"Codex가 응답을 보냈지만 이미지 데이터가 비어 있었어요. 모더레이션 문제가 아니라 일시적 오류이거나 지원되지 않는 옵션 조합일 수 있어요. 다시 시도하거나 크기·품질·모델을 바꿔 보세요.",cta:"다시 시도"},streamParseFailed:{title:"이미지 응답 스트림을 해석하지 못했어요",body:"응답 데이터는 도착했지만 앱이 이미지 스트림을 끝까지 읽지 못했어요. 네트워크 프록시나 일시적인 스트림 오류일 수 있어요.",cta:"다시 시도"},imageToolNotCalled:{title:"이미지 도구가 호출되지 않았어요",body:"응답은 완료됐지만 이미지 생성 도구 호출이 확인되지 않았어요. 같은 프롬프트로 다시 시도하거나 모델/검색 옵션을 바꿔 보세요.",cta:"다시 시도"},webSearchOnlyResponse:{title:"이미지 도구가 호출되지 않았어요",body:"웹 검색 도구만 호출되고 이미지 생성 도구가 실행되지 않았어요. 검색 옵션을 끄거나 다시 시도해 주세요.",cta:"다시 시도"},imageToolFailed:{title:"이미지 도구 호출이 실패했어요",body:"이미지 생성 도구가 호출됐지만 실패 상태로 끝났어요. 문제가 반복되면 `ima2 doctor image-probe --json` 결과와 함께 제보해 주세요.",cta:"다시 시도"},imageToolNoResult:{title:"이미지 데이터가 비어 있었어요",body:"이미지 도구 호출은 완료됐지만 결과 이미지가 포함되지 않았어요. 옵션 조합이나 계정 권한 문제일 수 있어요.",cta:"다시 시도"},oauthImageCapabilityUnavailable:{title:"현재 계정에서 이미지 도구를 사용할 수 없는 것 같아요",body:"GPT OAuth 로그인은 되어 있지만, 이 계정/모델 조합에서 이미지 생성 도구 권한이 없을 수 있어요. API-Key 모드나 다른 모델로 확인해 주세요.",cta:"확인"},responsesStreamError:{title:"이미지 응답 스트림이 오류로 종료됐어요",body:"OpenAI 응답 스트림에서 오류 이벤트가 반환됐어요. 잠시 후 다시 시도하고, 반복되면 원본 오류 세부 정보를 확인해 주세요.",cta:"다시 시도"},upstream5xx:{title:"OpenAI 서버가 혼잡합니다",body:"잠시 후 다시 시도하면 대부분 해결돼요. 상태 페이지(status.openai.com)도 확인해 보세요.",cta:"다시 시도"},authChatgptExpired:{title:"Codex ChatGPT 로그인이 만료됐어요",body:"터미널에서 `ima2 setup`을 다시 실행한 뒤(옵션 1) 앱을 새로고침해 주세요.",cta:"새로고침"},authApiKeyInvalid:{title:"API 키 인증 실패",body:"키가 없거나 잘못됐거나, 한도/조직 권한 문제가 있을 수 있어요. GPT OAuth로 전환하거나 설정된 API 키를 갱신해 주세요.",cta:"확인"},networkFailed:{title:"네트워크 연결 실패",body:"OpenAI 또는 로컬 런타임 서비스에 연결하지 못했어요. 먼저 새로고침하고, 계속되면 VPN/방화벽과 `ima2 doctor`에 표시되는 포트를 확인해 주세요.",cta:"새로고침"},oauthUnavailable:{title:"GPT OAuth 프록시를 사용할 수 없어요",body:"GPT OAuth 프록시가 아직 시작 중이거나, 사용할 수 없거나, fallback 포트로 이동했을 수 있어요. 먼저 새로고침하고, 계속되면 `ima2 doctor`의 GPT OAuth URL을 확인해 주세요.",cta:"새로고침"},invalidRequest:{title:"이미지 요청을 수정해야 해요",body:"생성 요청의 일부 값이 올바르지 않습니다. 아래 원본 오류를 확인한 뒤 프롬프트나 크기를 수정해 다시 시도해 주세요.",cta:"입력 수정"},apikeyDisabled:{title:"API-Key 모드를 사용할 수 없어요",body:"이 빌드는 API-Key 생성을 지원하지만 현재 요청에서 설정된 키를 사용할 수 없었습니다. GPT OAuth로 전환하거나 API 키를 갱신해 주세요.",cta:"확인"},agyGenerationFailed:{title:"Gemini 생성 실패",body:"Antigravity CLI에서 오류가 발생했습니다. agy 바이너리가 설치되어 있고 Gemini 계정이 활성화되어 있는지 확인하세요.",cta:"재시도"},agyTimeout:{title:"Gemini 생성 시간 초과",body:"agy 프로세스가 제한 시간(360초) 내에 응답하지 않았습니다. 다시 시도하거나 agy CLI 상태를 확인하세요.",cta:"재시도"},agyProcessError:{title:"Gemini 프로세스 오류",body:"agy CLI가 예기치 않은 오류로 종료되었습니다. 'agy --version'으로 바이너리가 정상인지 확인하세요.",cta:"재시도"},agyQuotaExhausted:{title:"Gemini 할당량 소진",body:"Gemini 이미지 생성 용량이 소진되었습니다. 할당량은 자동으로 리셋됩니다 — 에러 상세에서 리셋 타이머를 확인하세요.",cta:"확인"}},dx={title:"프롬프트 라이브러리",saveTitle:"프롬프트 라이브러리에 저장",save:"저장",saved:"프롬프트를 저장했습니다",saveFailed:"저장에 실패했습니다",name:"이름",tags:"태그",search:"프롬프트 검색...",favorites:"즐겨찾기",load:"불러오기",insert:"삽입",inserted:"프롬프트를 삽입했습니다",removeInserted:"삽입한 프롬프트 {name} 제거",favorite:"즐겨찾기",unfavorite:"즐겨찾기 해제",empty:"저장된 프롬프트가 없어요.",content:"내용",copy:"복사",untitled:"제목 없음",addNew:"새 프롬프트 추가",import:"불러오기",importFiles:".txt, .md, .markdown 또는 GitHub 파일 불러오기",dropImport:".txt, .md, .markdown 파일을 놓으면 프롬프트로 가져옵니다",importTitle:"프롬프트 가져오기",importDropTitle:"파일을 여기에 드래그하세요",importDropHint:".txt, .md, .markdown 파일을 preview한 뒤 저장합니다",importChooseFiles:"파일 선택",importGithubLabel:"GitHub 파일 URL 또는 경로",importPreview:"미리보기",importPreviewEmpty:"파일을 드래그하거나 GitHub 경로를 입력하면 후보가 표시됩니다.",importCommit:"선택 항목 저장",importSelected:"선택한 프롬프트 불러오기 ({count})",importThisPrompt:"이 프롬프트 불러오기",previewPrompt:"내용 보기",selectPrompt:"선택",selectedPrompt:"선택됨",selectedCount:"{count}개 선택됨",selectAllCandidates:"전체 선택",clearCandidateSelection:"선택 해제",addAnotherSource:"다른 소스 추가",searchResultsHeader:"검색 결과 ({count}개)",searchResults:"검색 결과",promptText:"프롬프트 내용",importSelectAtLeastOne:"저장할 프롬프트를 하나 이상 선택하세요.",imported:"프롬프트 {count}개를 가져왔습니다",importFailed:"가져오기에 실패했습니다",importNoValidFiles:".txt, .md, .markdown 프롬프트 파일이 없습니다.",curatedSources:"추천 소스",curatedSourcesHint:"검토된 공개 프롬프트 소스 검색",curatedSearch:"검색",curatedSearchPlaceholder:"nano banana, gpt-image-2, typography...",refreshSource:"갱신",curatedRefreshed:"프롬프트 후보 {count}개를 인덱싱했습니다",sourceTrustTier:"소스 신뢰도",requiresAttribution:"출처 표시 필요",sourceDetails:"출처",license:"라이선스",attributionRequired:"출처 표기 필요",modelHints:"모델 힌트",taskHints:"작업 힌트",warnings:"경고",compatibilityWarnings:"호환성 경고",transparentUnsupportedGptImage2:"gpt-image-2는 투명 배경을 지원하지 않습니다",noCuratedResults:"추천 소스에서 프롬프트 후보를 찾지 못했습니다.",discovery:"발견",discoverySearch:"GitHub 검색",discoverySearchPlaceholder:"프롬프트 저장소 검색...",discoveryCandidates:"발견 후보",discoveryApprove:"승인",discoveryReject:"거절",discoveryApproved:"승인됨",discoveryRejected:"거절됨",discoveryScore:"점수",discoveryWarnings:"발견 경고",discoveryRateLimited:"GitHub discovery가 rate limit에 걸렸습니다.",discoveryNoResults:"발견 후보가 없습니다.",discoveryReviewQueue:"검토 대기열",discoveryRequiresPaths:"기본 검색 전에 검토된 파일 경로를 추가하세요.",folderBrowse:"폴더 보기",folderBrowseHint:"GitHub 폴더의 지원 파일만 불러옵니다",folderFiles:"폴더 파일",folderFilesEmpty:"가져올 수 있는 .md / .markdown / .txt 파일이 없습니다",folderPreviewSelected:"선택 파일 미리보기",folderSelectedCount:"{count}개 선택됨",folderWarnings:"폴더 경고",folderTooManyFiles:"파일이 너무 많아 일부만 표시했습니다",folderNoSelection:"미리볼 파일을 선택하세요",folderUnsupported:"GitHub 폴더만 지원합니다"},fx={title:"프롬프트 빌더",subtitle:"맥락을 이어가며 최종 프롬프트를 정리합니다.",scopeDraft:"새 작업",scopeImage:"선택 이미지: {name}",scopeImageFallback:"현재 이미지",newWorkTitle:"이미지 컨텍스트 없이 새 작업 시작",model:"빌더 모델",empty:"원하는 방향을 말해보세요. 현재 프롬프트와 설정을 함께 참고합니다.",user:"나",assistant:"빌더",placeholder:"어떤 이미지를 만들어볼까요?",send:"전송",sending:"작성 중",thinking:"프롬프트를 정리하는 중...",clear:"비우기",applyToPrompt:"본문에 적용",insertAsBlock:"블록 삽입",finalKoreanPrompt:"한국어 프롬프트",finalEnglishPrompt:"영어 프롬프트",blockName:"빌더 제안",applied:"빌더 제안을 본문 프롬프트에 적용했습니다",inserted:"빌더 제안을 프롬프트 블록으로 삽입했습니다",failed:"프롬프트 빌더 호출에 실패했습니다",removeScopeImage:"빌더에서 선택 이미지 제외",removeAttachment:"첨부 {name} 제거",attach:"파일 첨부",attachmentOnlyMessage:"첨부한 파일을 참고해서 프롬프트를 도와줘"},mx={sectionTitle:"작업 공간",sectionBody:"작업 공간 레이아웃 프로필을 선택합니다.",profileLabel:"작업 공간 프로필",defaultLabel:"기본",defaultDesc:"사이드바 컴포저가 있는 기본 생성 흐름.",promptStudioLabel:"프롬프트 스튜디오",promptStudioDesc:"프롬프트 빌더 패널, 그룹 히스토리, 향상된 뷰어."},px={controls:"이미지 확대 컨트롤",zoomIn:"확대",zoomOut:"축소",reset:"확대 초기화"},hx={title:"로그",empty:"생성 로그가 없습니다",copied:"프롬프트 복사됨",copy:"클릭하여 프롬프트 복사"},gx={common:N0,appBar:A0,sheet:E0,toast:C0,inflight:w0,size:I0,sizeConfirm:M0,quality:R0,moderation:O0,format:j0,count:k0,multimode:z0,metadata:L0,onboarding:D0,readiness:G0,generate:q0,billing:P0,history:U0,panel:H0,prompt:B0,canvas:F0,gallery:V0,node:K0,nodeBatch:Y0,edge:X0,provider:Q0,grokMode:Z0,cost:$0,result:J0,session:W0,uiMode:ex,agent:tx,cardNews:ax,video:nx,sidebar:lx,settings:ix,nodeCanvas:ox,apiDisabled:rx,language:sx,theme:cx,errorCard:ux,promptLibrary:dx,promptBuilder:fx,workspace:mx,viewer:px,generationLog:hx},yx={ok:"OK",cancel:"Cancel",delete:"Delete",close:"Close",saving:"Saving...",loading:"Loading..."},vx={modeImage:"Image",settings:"Settings",controls:"Generation controls",generate:"Generate",generateAria:"Open prompt sheet to generate an image"},bx={close:"Close prompt sheet",generate:"Generate image",controlsOpen:"Open generation controls",tabs:{prompt:"Prompt",controls:"Controls",library:"Library"}},Sx={localImportSuccess:"Image added to gallery",localImportFailed:"Failed to import image",localImportInvalid:"Only PNG, JPEG, or WebP is supported",localStorageFull:"Local storage is full — recent state may not persist.",refLimitExceeded:"References are capped at 5. Extra images were dropped.",refTooLarge:"Image is too large. Convert to JPEG/PNG or lower the resolution and try again.",refNotBase64:"Image file is corrupted or uses an unsupported encoding.",refEmpty:"Empty image file. Please pick a different file.",refHeicUnsupported:"HEIC/HEIF is not supported. Convert to JPEG or PNG and try again.",noCurrentImageForRef:"No current image to use as reference.",refSlotFull:"Reference slots are full (max 5).",currentImageLoadFailed:"Failed to load current image.",addedCurrentAsRef:"Added current image as a reference.",sessionLoadFailed:"Failed to load session.",sessionCreateFailed:"Failed to create session.",sessionRenameFailed:"Failed to rename session.",sessionDeleteFailed:"Failed to delete session.",promptRequired:"Enter a prompt.",nodeCreated:"Node {id} created ({elapsed}s)",nodeRootCreated:"Created a first node from this image.",animateStarted:"Animating image to video…",animateProgress:"Rendering video… {n}%",animateDone:"Video ready. Check your history.",animateFailed:"Video generation failed.",nodeCreateFailed:"Node generation failed.",generatedBatch:"Generated {count} images in {elapsed}s.",generatedSingle:"Generated in {elapsed}s.",generateFailed:"Generation failed.",sessionReloadedElsewhere:"Graph version changed, so the latest graph was reloaded.",promptCopied:"Prompt copied",metadataCopied:"Copied",imageCopied:"Copied to clipboard",frameCopied:"Frame copied to clipboard",copyFailed:"Copy failed",openGeneratedDirFailed:"Could not open the image folder. Run ima2 doctor to check the storage path.",openGeneratedDirOpened:"Opened the generated image folder.",noPromptToFork:"No prompt to fork",forkStarted:"Prompt imported. Edit and generate again.",forkStartedNoPrompt:"Image attached as reference. Type a prompt and generate.",continueAsUrlStarted:"Provider URL set as reference. Generate to use the original image.",continueAsUrlExpired:"The provider URL has expired. Use Continue here instead.",comfyExported:"Sent to ComfyUI as {filename}.",comfyExportInvalidUrl:"ComfyUI URL must be a local HTTP address.",comfyExportInvalidImage:"This saved image cannot be sent to ComfyUI.",comfyExportImageNotFound:"Saved image file was not found.",comfyExportFailed:"Could not upload image to ComfyUI.",cancelFailed:"Could not cancel generation."},xx={queued:"Queued",planning:"Planning",streaming:"Generating",decoding:"Finalizing",canceling:"Canceling",noPrompt:"No prompt",cancelAria:"Cancel generation: {prompt}"},_x={title:"Size",grokAspectTitle:"Aspect Ratio",grokResolutionTitle:"Resolution",width:"Width",height:"Height",hint:"16px steps, max edge 3840, ratio up to 3:1, 655K–8.29M pixels",autoLabel:"Auto",autoSub:"Model pick",customLabel:"Custom",customSub:"Free form",customPlus:"+ Custom",customSlots:"Saved sizes",customSlot:"Custom",customSlotLimit:"Up to 3 custom sizes",saveCustomSlot:"Save custom size",replaceCustomSlot:"Replace slot",ratioFree:"Free",ratio21x9:"21:9",normalizedPreview:"Will send",noAdjustment:"No adjustment",squareMaxHint:"Square maximum is {size} because of the 8.29M pixel limit.",adjustedReasons:{snap:"snapped to 16px",maxEdge:"max edge",ratio:"ratio limit",minPixels:"minimum pixels",maxPixels:"maximum pixels",min:"minimum edge",max:"maximum edge",pixels:"pixel limit"}},Tx={title:"Size adjustment required",body:"The requested size is outside the image generation limits.",requested:"Requested size",adjusted:"Adjusted size",approve:"Approve and generate",cancel:"Cancel",reasonRatio:"The ratio exceeds the 3:1 limit.",reasonPixels:"The maximum pixel limit is exceeded.",reasonMinPixels:"The requested image has too few pixels.",reasonMin:"The size is below the minimum.",reasonMax:"The size is above the maximum.",reasonSnap:"The size must align to 16px increments."},Nx={title:"Quality",grokTitle:"Grok quality",grokModelTitle:"Model",lowLabel:"Low",lowSub:"Fast",mediumLabel:"Medium",mediumSub:"Balanced",highLabel:"High",highSub:"Best"},Ax={title:"Moderation",autoLabel:"Auto",autoSub:"Standard filter",lowLabel:"Low",lowSub:"Relaxed filter",explain:"Auto uses the standard safety filter. Low relaxes limits so borderline prompts may pass through."},Ex={title:"Format"},Cx={title:"Count",customPlus:"+n",customLabel:"Custom count",highCountHint:"Higher counts can take longer with references or high quality.",minMaxHint:"Use 1-24 images.",decrease:"Decrease count",increase:"Increase count"},wx={label:"Sequence",tooltip:"Generate ordered stages from one prompt",shortHint:"planned stages",maxStages:"Max stages",highCountHint:"Higher stage counts can take several minutes.",minMaxHint:"Use 1-24 stages.",composerBadge:"Sequence · up to {count}",composerAriaLabel:"Sequence prompt composer, up to {count} separate stages",promptPlaceholder:"Describe the sequence. Use Count with Sequence off for same-prompt batches.",promptPlaceholderWithRefs:"Describe the staged sequence using the attached references.",toggleDisabledGenerating:"Wait for the current generation to finish",sequenceTitle:"Sequence results",sequenceProgress:"{returned}/{requested} images",stageLabel:"Stage {index}",generating:"Generating...",partialAlt:"Partial multimode preview",partial:"Generated {returned}/{requested} images in {elapsed}s.",complete:"Generated {returned}/{requested} images in {elapsed}s.",notReturned:"Not returned",empty:"No image returned",error:"Generation failed",canceled:"Canceled",cancel:"Cancel"},Ix={restoreTitle:"Restore image settings",restoreBody:"This image contains ima2 generation metadata. Apply its prompt and settings, or attach it as a reference only.",applySettings:"Apply settings",useAsReferenceOnly:"Reference only",noMetadata:"No ima2 metadata found.",invalidMetadata:"Invalid image metadata.",unsupportedFormat:"Only PNG, JPEG, and WebP metadata can be restored.",readFailed:"Could not read image metadata.",applied:"Image settings restored.",sourceXmp:"XMP",sourcePngComment:"PNG comment",imageAlt:"Dropped image preview",prompt:"Prompt",size:"Size",quality:"Quality",model:"Model",source:"Source",title:"Generation Details",asset:"asset",summary:"Generation summary",copy:"Copy",copyRaw:"Copy raw JSON",copyField:"Copy {label}",rawJson:"Raw metadata JSON",sections:{provider:"Provider & Model",settings:"Generation Settings",usage:"Usage & Timing",lineage:"Lineage",video:"Video",videoContinuity:"Video Continuity",prompts:"Prompts"},fields:{provider:"Provider",authPath:"Auth path",model:"Model",providerUrl:"Provider URL",requestId:"Request ID",quality:"Quality",size:"Size",format:"Format",moderation:"Moderation",reasoning:"Reasoning",promptMode:"Prompt mode",kind:"Kind",mediaType:"Media type",elapsed:"Elapsed",tokens:"Tokens",totalTokens:"Total tokens",inputTokens:"Input",cachedTokens:"Cached",outputTokens:"Output",reasoningTokens:"Reasoning",webSearchCalls:"Web searches",grokCostTicks:"Grok cost ticks",usage:"Usage",filename:"Filename",createdAt:"Created",sessionId:"Session",nodeId:"Node",parentNodeId:"Parent node",clientNodeId:"Client node",refsCount:"References",sequence:"Sequence",setId:"Set",cardId:"Card",videoDuration:"Duration",videoResolution:"Resolution",videoAspectRatio:"Aspect ratio",videoRequestedModel:"Requested model",videoEffectiveModel:"Effective model",videoModelFallback:"Model fallback",xaiVideoRequestId:"xAI video request",sourceImageFilename:"Source image",lineageId:"Lineage",parentFilename:"Parent file",sourceFrame:"Source frame",continuityEntries:"Entries",latestContinuityPrompt:"Latest continuity prompt",promptPrimary:"Prompt",userPrompt:"User prompt",prompt:"Stored prompt",revisedPrompt:"Revised prompt",composerPrompt:"Composer prompt",insertedPrompts:"Inserted prompts"}},Mx={title:"Hello! First time here?",body:"Sign in to start generating. You can connect ChatGPT, Grok, or Gemini.",login:"Yes, sign me in",skip:"I'll set it up myself"},Rx={title:"Generation readiness",open:"Check readiness",openTitle:"Check provider, auth, model, and web-search readiness",settingsTitle:"Generation readiness",settingsBody:"Open a compact popup with provider, auth, model, reasoning, and web-search state.",ready:"Ready to generate",readyBody:"The selected provider is available.",blocked:"Provider needs attention",provider:"Provider",model:"Model",reasoning:"Reasoning",webSearch:"Web search",grokApi:"Grok API",grokApiBody:"Runs through bundled progrok: mandatory search, grok-4.3 image+text tool planning in English, then xAI Images API. Attached references use xAI image editing so i2i context is preserved.",openAccount:"Open account settings"},Ox={button:"Generate",buttonLoading:"Generating ({n})"},jx={label:"API Status",checking:"Checking...",offline:"Offline",remaining:"${remaining} remaining",thisMonth:"${amount} this month",oauthFree:"GPT OAuth · free via codex",apiDisabled:"API key ready",apiReady:"API key ready",oauthMode:"GPT OAuth mode"},kx={openGalleryAria:"Open gallery",openGalleryTitle:"Open full gallery",openGalleryShort:"All",galleryCard:"Open gallery",recentTitle:"Recent Generations",collapseRecent:"Collapse recent generations",expandRecent:"Expand recent generations",collapseRecentShort:"Hide",expandRecentShort:"Show",emptyRecent:"Generated images will appear here.",selectRecent:"Select generated image",deleteImageAria:"Delete image from history",deleteSequenceAria:"Delete {count}-image sequence",deleteSequenceConfirm:"Delete all {count} images in this multimode sequence?",sequenceDeleted:"Deleted {count} sequence images from history"},zx={closeSettings:"Close settings",detailSettings:"Settings",toggleShow:"Show settings",toggleHide:"Hide settings",open:"Open",close:"Close"},Lx={label:"Prompt",refCount:"Refs {count}/{max}",refChipTitle:"Reference {n}",refChipAlt:"Reference {n}",refRemoveAria:"Remove reference {n}",placeholder:"Describe the image you want. Drag & drop or paste to attach reference images...",placeholderWithRefs:"Describe what to do with the attached images...",attach:"Attach",attachTitle:"Attach reference images",useCurrent:"Use current",useCurrentTitle:"Use current result as a reference",continue:"Continue",continueTitle:"Continue from current result as reference",savePrompt:"Save",storyboard:"Storyboard",storyboardTitle:"Enable storyboard mode — maintains character and scene continuity across sequential frames",videoToggleTitle:"Toggle video mode (Grok 1.5)",directMode:"Direct",directModeActive:"1:1 Direct on",directModeTitle:"Pass prompt through verbatim (Direct mode)",urlRefActive:"URL ref",urlRefActiveTitle:"Provider URL reference is active and will be used instead of attached image refs. Click to clear.",urlRefClear:"Clear provider URL reference",moveBlockUp:"Move {name} up",moveBlockDown:"Move {name} down",afterBlocks:"After main prompt",hint:"Ctrl + Enter to generate",dropHere:"Drop to attach as reference (up to {max})"},Dx={resultAlt:"result",imageViewerAria:"Generated image viewer. Use left and right arrow keys to move between images.",tokens:"{n} tokens",open:"Open Canvas",openAria:"Open image in canvas mode",dragToComposer:"Drag to composer as reference",close:"Close Canvas",blank:{title:"Blank canvas",subtitle:"Sketch on white paper, then continue from it.",create:"Create blank canvas",creating:"Creating...",failed:"Could not create blank canvas"},drop:{hint:"Drop image to add to gallery"},toolbar:{label:"Canvas annotation tools",select:"Select",bgGroup:"Export background",bgAlpha:"Alpha",bgMatte:"Matte",bgMatteColor:"Matte color",cleanup:"Clean background",cleanupMark:"Mark",cleanupRemove:"Remove",cleanupPreserve:"Preserve",cleanupInput:"Input",cleanupClick:"Click",cleanupBrush:"Brush",cleanupBrushSize:"Brush",cleanupTolerance:"Tolerance",cleanupAutoSample:"Corners",cleanupPickSeed:"Pick seed",cleanupPickingSeed:"Click background",cleanupActive:"Active",cleanupPreview:"Preview",cleanupPreviewing:"Previewing...",cleanupApply:"Apply PNG",cleanupApplying:"Applying...",cleanupReset:"Reset",cleanupSeedCount:"{n} seeds",cleanupRemoved:"{n}% removed",cleanupPickHint:"Click the background on the image",cleanupBrushHint:"Paint the area to mark",cleanupMaskHint:"Purple mask will be removed",cleanupApplied:"Transparent PNG created",cleanupFailed:"Background cleanup failed",zoomGroup:"Canvas zoom",zoomIn:"Zoom in",zoomOut:"Zoom out",zoomReset:"Reset zoom",zoomShortcutHint:"Pinch zoom · two-finger pan · [ / ] · 0",pen:"Pen",box:"Box",arrow:"Arrow",memo:"Sticky memo",eraser:"Eraser",eraserMenu:"Eraser options",objectEraser:"Object eraser",brushEraser:"Brush eraser",apply:"Save canvas version",applyDone:"Canvas version saved",applyFailed:"Could not save canvas version",export:"Export image",exporting:"Exporting...",exportFailed:"Export failed",undo:"Undo",redo:"Redo",deleteSelected:"Delete selected",editMask:"Edit boxed areas",editMaskDisabled:"Draw a box first",editMaskFailed:"Masked edit failed",editMaskUnsupported:"Masked edit is not supported by the current image provider",style:"Style",color:"Color",strokeWidth:"Stroke width",clear:"Clear all"},version:{saving:"Saving canvas version...",saved:"Canvas version saved",failed:"Could not save canvas version",usingAsReference:"Canvas version is ready as a reference"}},Gx={today:"Today",yesterday:"Yesterday",thisWeek:"This week",earlier:"Earlier",imageAltFallback:"Generated image",deleteTitle:"Move to system trash",deleteAria:"Delete image",ariaLabel:"Image gallery",title:"Gallery",total:"{n} total",totalFiltered:" / {n} total",sortByAria:"Sort by",sortByDate:"Date",sortBySession:"Session",favoriteFilterAria:"Favorite filter",filterAll:"All",filterFavorites:"Favorites",searchPlaceholder:"Search prompts or filenames",searchDisabledPlaceholder:"Search is disabled in session view",closeAria:"Close gallery",closeTitle:"Close (Esc)",sessionLabel:"Session {name}",standalone:"Standalone images",emptySessions:"No sessions saved yet.",emptyAll:"No images yet. Create one first.",emptyFavorites:"No favorite images yet.",noResults:"No results.",loadOlder:"Load older",loadingOlder:"Loading older...",loadOlderFavorites:"Load older favorites",loadingOlderFavorites:"Loading older favorites...",sessionPaginationHint:"Session view uses the current page. Switch to Date view to load older images.",loadOlderFailed:"Could not load older gallery items.",storageNoticeTitle:"Storage notice",storageNoticeRecoverable:"Sorry for the scare. Recent versions moved the gallery folder from the installed package to your user data folder. Your old images may still be in the previous generated folder. Run ima2 doctor or open the recovery guide.",storageNoticeNotFound:"Sorry for the scare. We could not find a previous generated folder on this machine. If the old global install folder was replaced during update, automatic recovery may not be possible. Run ima2 doctor and check the recovery guide for manual search steps.",storageNoticeUnknown:"Storage status could not be checked. If the gallery looks empty after an update, run ima2 doctor to inspect the image folder.",openGeneratedDir:"Open folder",openGeneratedDirTitle:"Open generated image folder",cardNewsSet:"Card News set",cardNewsCard:"Card News card",openCardNewsSet:"Open set",openCardNewsSetFailed:"Could not open the Card News set.",copyCardNewsSetPath:"Copy path",cardNewsPathCopied:"Card News set path copied.",downloadCardNewsManifest:"Manifest",cardNewsCount:"{n} cards",deleted:"Deleted: {filename}",undo:"Undo",secondsSuffix:"{n}s",permanentDeleted:"Permanently deleted: {filename}",movedToSystemTrash:"Moved to system trash: {filename}",deleteFailed:"Could not delete image.",restoreFailed:"Could not restore image.",favoriteTitle:"Add to favorites",unfavoriteTitle:"Remove from favorites",favoriteAria:"Add to favorites",unfavoriteAria:"Remove from favorites",scopeAria:"Gallery scope",scope:{current:"Current session",all:"All images"},empty:{currentSession:"No images in this session yet."}},qx={empty:"Empty",pending:"Generating",reconciling:"Syncing",reconcilingPhase:"Syncing · {phase}",ready:"Done · {elapsed}s",readyWithSearch:"Done · {elapsed}s · searched {searches}",stale:"Stale",staleWithError:"Stale: {error}",assetMissing:"Asset missing",assetMissingWithError:"Asset missing: {error}",error:"Error: {error}",errorUnknown:"unknown",nodeImageAlt:"Node image",partialImageAlt:"Partial node image preview",noAsset:"No asset",stateStale:"State stale",noImage:"No image",editPromptPlaceholder:"Edit prompt...",promptPlaceholder:"Prompt...",regenerate:"Regen",newVariation:"New variant",generate:"Gen",generateTitle:"Generate node image",addChild:"Child",addChildTitle:"Add child node",duplicateBranch:"Branch",duplicateBranchTitle:"Duplicate as a new branch root",deleteTitle:"Delete",regenerateTitle:"Regenerate this node in place",newVariationTitle:"Create a new sibling variant under the same parent",parentImageRequired:"Generate the parent image first.",attachRef:"Attach",attachRefTitle:"Attach node reference images",refAlt:"Node reference {n}",removeRef:"Remove reference {n}",dropRefs:"Drop images here",nodeRefsUnsupportedForEdit:"Extra references are only supported on root nodes for now.",nodeRefsUsedWithParent:"Used together with the parent image.",classicRefsParkedTitle:"Classic references are parked",classicRefsParkedBody:"These images belong to the classic composer and are inactive in node mode.",clearParkedRefs:"Clear parked references"},Px={selectionOn:"Selecting",selectionOff:"Select",selectAll:"Select all",summary:"{selected} selected · {missing} missing · {stale} affected",generateMissing:"Generate missing",regenerateSelected:"Regenerate selected",stopRemaining:"Stop remaining",stopping:"Stopping",clear:"Clear",noneSelected:"No nodes selected.",parentRequired:"{count} selected node(s) need a ready parent image first.",nothingToRun:"No selected nodes need generation.",stopQueued:"The current node will finish, then the remaining queue will stop.",failed:"Stopped after {done}/{total} node(s).",finished:"Finished {done}/{total} node(s).",staleBecauseParentChanged:"An upstream node was regenerated; refresh this node when needed."},Ux={disconnect:"Disconnect",disconnectTitle:"Disconnect selected edge",disconnected:"Connection removed.",parentConflict:"A node can only have one parent connection."},Hx={authTitle:"Provider",apiLabel:"API Key",oauthNotReady:"GPT OAuth proxy is not ready yet.",codexLoginRequired:"Codex login required.",codexLoginHint:"Run `codex login` in your terminal, then refresh this page.",oauthStarting:"GPT OAuth proxy is starting. Try again in a few seconds.",serverUnreachable:"Cannot reach the server. Make sure the backend is running.",apiInvalid:"API key is missing or invalid. Check OPENAI_API_KEY in the server's .env.",grokOffline:"Grok proxy is not running.",grokNoImageModel:"No Grok image generation model found.",grokNotReady:"Grok is not available.",grokOfflineHint:"Run `ima2 grok login` once if needed, then start `ima2 serve`; ima2 starts the bundled Grok proxy automatically.",grokManagedByIma2:"Grok runs locally inside `ima2 serve` through the bundled progrok proxy at 127.0.0.1:18645.",grokClassicOnly:"Grok image generation is not available in this surface.",grokClassicOnlyHint:"Use a generation surface with Grok enabled.",grokCompatTitle:"Grok image API",grokCompatBody:"ima2 serve manages the bundled progrok proxy at 127.0.0.1:18645. Grok always searches before image generation, sends attached references into the grok-4.3 planner, keeps them through xAI image editing, and maps size to xAI aspect ratio/resolution. Output format, moderation, and reasoning are OpenAI-provider settings only.",settingsBody:"Choose which provider future generation requests use.",availableTitle:"{name} available",availableAria:"{name}: available",unavailableAria:"{name}: unavailable",availableSr:"(available)",unavailableSr:"(unavailable)",xaiApiKeyRequired:"xAI API key required",geminiApiKeyRequired:"Gemini API key required",comingSoon:"Coming soon",agyCompatTitle:"Gemini (agy)",agyCompatBody:"1024x1024 fixed, JPEG output, max 3 refs. No quality/size control.",agyCompatBodyLong:"1024x1024 fixed output, JPEG format, max 3 reference images. No web search, no quality/size control.",geminiApiCompatTitle:"Gemini API",geminiApiCompatBody:"Google Gemini API. Supports aspect ratio and resolution control from 512px to 4K.",geminiApiCompatBodyLong:"Google Gemini API direct. Supports nano-banana-2 (Flash) and nano-banana-pro (Pro), with aspect ratio and resolution control from 512px to 4K.",gptCompatTitle:"GPT Image",gptCompatBody:"OpenAI image generation via Responses API. Supports quality, size, format, moderation, and web search settings."},Bx={image:"Image",video:"Video"},Fx={free:"free",approx:"~${amount}",multimodeApprox:"up to ~${amount} ({count})",label:"Est. cost"},Vx={download:"Download",copyImage:"Copy image",copyLastFrame:`Last
14
+ Frame`,copyFirstFrame:`First
15
+ Frame`,copyMidFrame:`Mid
16
+ Frame`,copyPrompt:"Copy prompt",continueHere:"Continue here",continueHereTitle:"Import this image's prompt and keep working",continueAsUrl:"URL continue",continueAsUrlTitle:"Continue using the original provider URL (expires in 1 hour)",animate:"Animate",animating:"Animating…",animateTitle:"Generate a Grok video from this image (image-to-video)",firstNode:"First node",firstNodeTitle:"Send this image to Node Mode as a ready first node",info:"Info",infoTitle:"Show generation details and provenance",delete:"Delete",deleteTitle:"Move to trash",more:"More",sendToComfyUI:"Send to ComfyUI",sendToComfyUITitle:"Upload this saved image to local ComfyUI",permanentDelete:"Permanently delete",permanentDeleteConfirm:'Permanently delete "{filename}"? This cannot be undone.'},Kx={switchTitle:"Switch session",loading:"Loading...",newSession:"New session",newSessionTitle:"New session",renameTitle:"Rename",renamePrompt:"Session name",deleteTitle:"Delete",deleteConfirm:'Delete session "{title}"? This cannot be undone.',empty:"No sessions yet",firstGraph:"My first graph",untitled:"Untitled session",assetAbortedError:"Generation did not finish cleanly. Retry from this node."},Yx={ariaLabel:"UI mode",classic:"Classic",node:"Node",cardNews:"Card News",agent:"Agent"},Xx={workspace:"Agent workspace",title:"Agent",newSession:"New Agent",sessions:"Sessions",openSessions:"Open sessions",closeSessions:"Close sessions",sessionSearch:"Search sessions",renameSession:"Rename session",deleteSession:"Delete session",deleteConfirm:'Delete "{title}"?',imageCount:"{count} images",compacted:"Compacted",web:"Web",chat:"Chat",user:"User",assistant:"Agent",tool:"Tool",toolExpand:"Show tool details",toolCollapse:"Hide tool details",toolImageCount:"{count} img",toolCallCount:"{count} calls",toolGroup:"Tool run",toolInput:"Input",toolOutput:"Output",toolArtifacts:"Artifacts",requestId:"Request ID",duration:"Duration",toolStatus:{queued:"Queued",running:"Running",complete:"Complete",error:"Error"},rightSidebar:"Agent side tools",sidebarTabs:{image:"Image",library:"Library",forms:"Forms",quality:"Quality",model:"Model",queue:"Queue"},modelSettings:"Model settings",closeModelSettings:"Close model settings",openModelSettings:"Open model settings",model:"Model",provider:"Provider",reasoningEffort:"Reasoning",generationStrategy:"Generation plan",generationStrategyAuto:"Based on user request",generationStrategyManual:"Fixed count",quality:"Quality",size:"Size",format:"Format",moderation:"Moderation",variantsCount:"Variants",maxAutoVariants:"Auto max",parallelism:"Parallelism",promptLibrary:"Prompt library",forms:"Forms",noForms:"No form templates",insertPrompt:"Insert",queue:"Queue",runningShort:"run",queuedShort:"wait",queueEmpty:"No queued Agent work.",cancelQueue:"Cancel",retryQueue:"Retry",sessionRunning:"Generation running",sessionQueued:"{count} queued",sessionError:"Generation error",queueStatus:{queued:"Queued",running:"Running",succeeded:"Done",failed:"Failed",canceled:"Canceled"},statusReady:"Ready",statusGenerating:"Generating",statusReconnecting:"Reconnecting",pending:"Generating response...",pendingQueued:"Waiting in queue...",pendingPlanning:"Planning the response...",pendingGenerating:"Running tools and generating...",runError:"Run failed",errorRole:"Error",composerPlaceholder:"Ask anything or describe what to create",slashCommands:"Agent slash commands",slashDesc_question:"Ask a question without generating images",slashDesc_variants:"Generate N image variants (1-24)",slashDesc_generate:"Bounded fanout generation (1-24)",slashDesc_parallelism:"Limit concurrent tool calls",slashDesc_help:"Show available commands",attachReference:"Attach reference",send:"Send",webSearch:"Use search",emptyChat:"Enter a message to start image work.",imagePane:"Image",currentImage:"Current image",openImage:"Open image",closeImage:"Close image",selectImage:"Focus image",variants:"Variants",contextTabs:"Image context",imageTab:"Image",refsTab:"Refs",webTab:"Web",memoryTab:"Memory",noImage:"No current image",noRefs:"No references",noWeb:"No web evidence",memoryItemStyle:"Style locks are retained in image context.",memoryItemSubject:"Subject locks are restored after resume.",imageAlt:"Agent image",filename:"File",prompt:"Prompt"},Qx={workspace:"Card News workspace",composer:"Card News",composerHint:"Templates are visual snapshots; output size is set separately.",topic:"Topic",topicPlaceholder:"e.g. Exam comeback plan",audience:"Audience",audiencePlaceholder:"e.g. Parents",goal:"Goal",goalPlaceholder:"e.g. Book a consultation",brief:"Brief",briefPlaceholder:"Describe the card news content, required points, and exclusions.",outputSize:"Output size",customSize:"Custom",draft:"Draft outline",drafting:"Drafting...",generateSet:"Generate set",batchGenerate:"Batch generate",generating:"Generating...",generated:"Generated {count} cards.",missingGeneratedCard:"The generation response did not include this card.",error:"Card generation failed.",imageTemplate:"Image template",roleTemplate:"Card structure",newTemplateLater:"Custom templates are planned after the dev MVP",emptyTitle:"Waiting for a draft",emptyBody:"Use the left setup panel to prepare the card deck.",inspector:"Card inspector",cardTitle:"Card title",headline:"Headline",body:"Body",visualPrompt:"Image prompt",summaryCopy:"Summary copy",designPrompt:"Scene / design prompt",textFields:"Text boxes",addTextField:"Add text box",removeTextField:"Remove",noTextFields:"No text boxes yet.",textFieldText:"Text",textKind:"Kind",placement:"Placement",renderMode:"Render mode",hierarchyLabel:"Hierarchy",textTooLong:"Text exceeds the suggested length.",selectTextField:"Select text box: {text}",textKinds:{headline:"Headline",body:"Supporting text",caption:"Caption",cta:"CTA",badge:"Badge",number:"Number"},renderModes:{"in-image":"In image","ui-only":"UI only"},hierarchy:{primary:"Primary",secondary:"Secondary",supporting:"Supporting"},placements:{"top-left":"Top-left","top-center":"Top-center","top-right":"Top-right","center-left":"Center-left",center:"Center","center-right":"Center-right","bottom-left":"Bottom-left","bottom-center":"Bottom-center","bottom-right":"Bottom-right",free:"Free"},roles:{cover:"Cover",hook:"Hook",problem:"Problem",insight:"Insight",example:"Example",data:"Data",summary:"Summary",cta:"CTA"},locked:"Locked",unlocked:"Unlocked",noCard:"No card selected",generatedMeta:"Generated metadata",lockedHelp:"Locked cards are excluded from batch generation and retry.",retryCard:"Retry this card",actions:{copyPrompt:"Copy prompt",copyCopy:"Copy copy",openImage:"Open image",downloadCard:"Download"},status:{draft:"Draft",queued:"Queued",generating:"Generating",generated:"Done",error:"Error",skipped:"Skipped",locked:"Locked"},progress:{generating:"Generating {done}/{total}",summary:"Done {done}/{total}",detail:"{queued} queued · {errors} errors · {skipped} skipped",cardGenerating:"Generating this card."},planner:{structured:"Structured JSON",jsonMode:"JSON mode",repaired:"Repaired",fallback:"Fallback draft",jsonOnlyHelp:"Draft creates JSON only. Images are generated later.",error:"Draft failed"}},Zx={plannerModelTitle:"Planner Model",reasoningEffortTitle:"Reasoning Effort",modeLabel:"Video mode",mode:{"text-to-video":"Text → video (no reference images)","image-to-video":"Image → video (1 reference)","reference-to-video":"Reference → video ({n} references)"},seriesTopicTitle:"Series topic",seriesTopicPlaceholder:"e.g. Korean travel vlog",durationTitle:"Length",resolutionTitle:"Resolution",resolution1080Help:"1080p uses Grok V1.5 for prompt-only or single image/frame video. It is not available with 2+ references.",aspectTitle:"Aspect ratio"},$x={appName:"Image Generator",imageModelLabel:"Model",imageSectionLabel:"Image",gptImageSubLabel:"GPT-IMAGE-2",grokImageSubLabel:"Grok Imagine",geminiImageSubLabel:"Gemini",videoSectionLabel:"Video",imageModelAria:"Choose image model",quickSettingsAria:"Choose model and reasoning effort. Current model {model}, reasoning {effort}",quickSettingsModelOnlyAria:"Choose image model. Current model {model}",quickSettingsMenu:"Model and reasoning quick settings",reasoningLabel:"Reasoning",videoModelLabel:"Video",nodeModeHint:"In node mode, click a node to edit its prompt and generate. Settings on the right panel (quality/size) apply to every new result."},Jx={openAria:"Open settings",openTitle:"Settings",closeAria:"Close settings",closeTitle:"Return to canvas",navAria:"Settings sections",contentAria:"Settings content",jumpTo:"Jump to {section}",eyebrow:"Workspace settings",title:"Settings",subtitle:"Account, display, and future workspace controls live here so the generator stays focused.",sections:{account:{title:"Account",hint:"GPT OAuth status"},generation:{title:"Generation",hint:"Model defaults"},appearance:{title:"Appearance",hint:"Light and dark"},workspace:{title:"Workspace",hint:"Profile"},language:{title:"Language",hint:"Interface copy"},future:{title:"Future",hint:"Reserved"}},account:{primaryEyebrow:"Active provider",oauthTitle:"GPT OAuth is active",oauthBody:"GPT OAuth generation runs through your Codex OAuth session. You can switch to API-key mode when a valid key is configured.",apiSourceEnv:"OPENAI_API_KEY detected",apiSourceConfig:"config.json API key detected",apiTitle:"API key provider available",apiBody:"ima2-gen can use this API key for generation, edit, multimode, and node requests through the Responses API.",apiDisabled:"Unavailable",apiReady:"Ready",apiUnavailable:"Unavailable",apiUnknown:"Status unknown",grokEyebrow:"Local xAI proxy",grokTitle:"Grok image provider",grokBody:"Uses progrok at the configured local port for xAI Images API generation.",agyEyebrow:"Antigravity CLI",agyTitle:"Gemini (agy)",agyInstalledBody:"Login status can't be detected. Run `agy login` in your terminal if generation fails.",agyMissingBody:"Not installed. Get the",agyMissingLink:"Antigravity CLI",agyFineprint:"Antigravity models and image quota are billed separately.",agyInstalled:"Installed",agyMissing:"Not installed",status:{ready:"Ready",authRequired:"Login required",starting:"Starting",offline:"Offline",noImageModel:"No image model",error:"Error",checking:"Checking"}},quota:{eyebrow:"Usage quota",title:"Rate limits",codexNotLoggedIn:"Not logged in",fetchError:"Could not load quota",noData:"No usage data",grokUsageLink:"View Grok usage →"},imageModel:{title:"Image model",body:"Choose the image model used for future generations. Selecting a Grok model switches the provider to Grok.",gpt54Mini:"GPT-5.4 Mini",gpt54:"GPT-5.4",gpt55:"GPT-5.5",grokImagine:"Grok Imagine",grokImagineQuality:"Grok Imagine Quality",nanoBanana2:"Nano Banana 2",nanoBanana2Api:"Nano Banana 2",nanoBananaPro:"Nano Banana Pro",agy:"Antigravity (agy)",gpt53CodexSpark:"GPT-5.3 Codex Spark — unsupported for images",unsupportedHelp:"Grok models use xAI's Images API through the bundled local proxy. GPT models use OpenAI Responses image generation."},apiKeys:{accordionTitle:"API Keys",envSource:"Loaded from environment",configSource:"Loaded from config",openai:{label:"GPT API Key (OpenAI)",placeholder:"Paste your OpenAI API key (sk-...)"},xai:{label:"Grok API Key (xAI)",placeholder:"Paste your xAI API key (xai-...)"},gemini:{label:"Gemini (Google)",placeholder:"Paste your Gemini API key (AI...)"},vertex:{label:"Vertex AI (Service Account)",placeholder:'Paste your Google Cloud service account JSON { "type": "service_account", ... }',authModeApiKey:"API Key",authModeVertex:"Vertex JSON"},save:"Save",saved:"Saved ✓",saving:"Validating...",remove:"Remove",status:{valid:"Valid",notConfigured:"Not configured"}},videoModel:{grokImagine:"Grok Imagine Video",grokImagine15:"Grok Imagine Video 1.5"},reasoning:{title:"Reasoning effort",body:"Higher effort spends more reasoning tokens on planning, web search, and prompt enrichment before generating.",none:"Off — no extra reasoning",low:"Low — fastest, minimal reasoning",medium:"Medium — balanced default",high:"High — deeper research and synthesis",xhigh:"Xhigh — maximum reasoning, slowest"},webSearch:{title:"Web search",body:"Use live search before generation for real people, brands, products, places, and recent events.",on:"Search on",off:"Search off"},grokCompatibility:{title:"Grok compatibility",body:"Grok image generation first runs mandatory web search, then sends text and attached images to a local image-tool planner that writes the final image prompt in English. Attached references route through xAI image editing; size is mapped to aspect ratio/resolution. Output format, moderation, and reasoning are only used by GPT OAuth and API key providers."},grokPlanner:{title:"Grok planner model",body:"The model used for search and image/video prompt planning. grok-4.3 is the default and supports image input for I2V/Ref2V planning."},gallery:{defaultScopeTitle:"Default gallery view",defaultScopeBody:"Choose what the gallery shows when you open it."},appearance:{themeTitle:"Theme",themeBody:"Pick a theme style and brightness for this device.",historyStripLayoutTitle:"History thumbnails",historyStripLayoutBody:"Choose how the compact history strip sits beside the workspace.",historyStripLayout:{rail:"Rail",horizontal:"Top row",sidebar:"Sidebar"}},language:{title:"Language",body:"Switch the UI language without changing generated content."},future:{title:"Reserved for later",body:"Future provider repair and workspace controls will appear here when they become useful."}},Wx={loading:"Loading session...",addFirst:"+ Add first node",addRootTitle:"Add root node",hint:"Drag a handle into empty space to branch. Press Delete or Backspace to remove."},e1={title:"{provider} unavailable",ariaLabel:"{provider} unavailable"},t1={label:"Language",ko:"한국어",en:"English"},a1={label:"Theme",modeLabel:"Brightness",styleLabel:"Theme style",system:"System",dark:"Dark",light:"Light",family:{default:"Default",gpt:"GPT",claude:"Claude",gemini:"Gemini",grok:"Grok"}},n1={close:"Close",details:"Show raw error details",unknown:{title:"An unexpected error occurred",body:"Please try again shortly. If it persists, copy the raw error message below and report it."},moderationRefused:{title:"Prompt blocked by moderation",body:"Soften the wording or rephrase. Sensitive/violent content in reference images can also trigger this.",cta:"Edit prompt",bodyInput:"Your prompt text was caught by the input filter. Try rephrasing or using different wording.",bodyOutput:"The generated image was caught by the output filter. Try changing the style or quality settings."},emptyResponse:{title:"No image was returned",body:"Codex responded but didn't include image data. This isn't a moderation block — it's likely a transient hiccup or an unsupported size/quality/model combination. Retry, or try a different size or model.",cta:"Retry"},streamParseFailed:{title:"Could not parse the image response stream",body:"Response data arrived, but the app could not read the image stream cleanly. This can happen with a proxy or transient stream transport issue.",cta:"Retry"},imageToolNotCalled:{title:"The image tool was not called",body:"The response completed, but no image-generation tool call was observed. Retry the same prompt, or try another model/search setting.",cta:"Retry"},webSearchOnlyResponse:{title:"The image tool was not called",body:"Only web search ran; the image-generation tool did not. Turn off search or retry the request.",cta:"Retry"},imageToolFailed:{title:"The image tool call failed",body:"The image-generation tool was called, but it ended in a failed state. If this repeats, report it with `ima2 doctor image-probe --json` output.",cta:"Retry"},imageToolNoResult:{title:"The image result was empty",body:"The image tool call completed but did not include image data. This can point to an unsupported option combination or account capability issue.",cta:"Retry"},oauthImageCapabilityUnavailable:{title:"This account may not have image-tool access",body:"GPT OAuth is connected, but this account/model combination may not be entitled to use image generation. Compare with API-key mode or another model.",cta:"OK"},responsesStreamError:{title:"The image response stream ended with an error",body:"OpenAI returned an error event inside the response stream. Retry shortly, and check the raw error details if it persists.",cta:"Retry"},upstream5xx:{title:"OpenAI is currently busy",body:"Retrying usually resolves this. Check status.openai.com if it persists.",cta:"Retry"},authChatgptExpired:{title:"Codex ChatGPT session expired",body:"Run `ima2 setup` in your terminal (option 1), then reload this app.",cta:"Reload"},authApiKeyInvalid:{title:"API key authentication failed",body:"The key is missing, invalid, revoked, out of quota, or tied to the wrong org. Switch to GPT OAuth or update the configured API key.",cta:"OK"},networkFailed:{title:"Network connection failed",body:"Could not reach OpenAI or the local runtime service. Reload first; if it persists, check VPN/firewall and the port shown by `ima2 doctor`.",cta:"Reload"},oauthUnavailable:{title:"GPT OAuth proxy unavailable",body:"The GPT OAuth proxy is starting, unavailable, or moved to a fallback port. Reload first; if it persists, run `ima2 doctor` and check the reported GPT OAuth URL.",cta:"Reload"},invalidRequest:{title:"Image request needs changes",body:"One or more generation parameters are invalid. Check the raw error details below, then edit the prompt or size and try again.",cta:"Edit input"},apikeyDisabled:{title:"API-key mode is unavailable",body:"This build supports API-key generation, but the current request could not use a configured key. Switch to GPT OAuth or update the API key.",cta:"OK"},agyGenerationFailed:{title:"Gemini generation failed",body:"The Antigravity CLI returned an error. Check that the agy binary is installed and your Gemini account is active.",cta:"Retry"},agyTimeout:{title:"Gemini generation timed out",body:"The agy process did not respond within the timeout window (360s). Try again or check the agy CLI status.",cta:"Retry"},agyProcessError:{title:"Gemini process error",body:"The agy CLI exited with an unexpected error. Verify the binary is working with 'agy --version'.",cta:"Retry"},agyQuotaExhausted:{title:"Gemini quota exhausted",body:"You have exhausted your Gemini image generation capacity. Your quota will reset automatically — check the reset timer in the error details.",cta:"OK"}},l1={title:"Prompt Library",saveTitle:"Save to Prompt Library",save:"Save",saved:"Prompt saved",saveFailed:"Save failed",name:"Name",tags:"Tags",search:"Search prompts...",favorites:"Favorites",load:"Load",insert:"Insert",inserted:"Prompt inserted",removeInserted:"Remove inserted prompt {name}",favorite:"Favorite",unfavorite:"Unfavorite",empty:"No saved prompts yet.",content:"Content",copy:"Copy",untitled:"Untitled",addNew:"Add new prompt",import:"Import",importFiles:"Import .txt, .md, .markdown, or GitHub files",dropImport:"Drop .txt, .md, or .markdown files to import prompts",importTitle:"Import prompts",importDropTitle:"Drag files here",importDropHint:"Preview .txt, .md, and .markdown files before saving",importChooseFiles:"Choose files",importGithubLabel:"GitHub file URL or path",importPreview:"Preview",importPreviewEmpty:"Drop files or enter a GitHub path to preview candidates.",importCommit:"Save selected",importSelected:"Import selected ({count})",importThisPrompt:"Import this prompt",previewPrompt:"Preview",selectPrompt:"Select",selectedPrompt:"Selected",selectedCount:"{count} selected",selectAllCandidates:"Select all",clearCandidateSelection:"Clear",addAnotherSource:"Add another source",searchResultsHeader:"Search results ({count})",searchResults:"Search results",promptText:"Prompt text",importSelectAtLeastOne:"Select at least one prompt to save.",imported:"Imported {count} prompt(s)",importFailed:"Import failed",importNoValidFiles:"No .txt, .md, or .markdown prompt files found.",curatedSources:"Curated sources",curatedSourcesHint:"Search indexed public prompt sources",curatedSearch:"Search",curatedSearchPlaceholder:"nano banana, gpt-image-2, typography...",refreshSource:"Refresh",curatedRefreshed:"Indexed {count} prompt candidate(s)",sourceTrustTier:"Source trust",requiresAttribution:"Attribution required",sourceDetails:"Source",license:"License",attributionRequired:"Attribution required",modelHints:"Model hints",taskHints:"Task hints",warnings:"Warnings",compatibilityWarnings:"Compatibility warnings",transparentUnsupportedGptImage2:"Transparent background is not supported by gpt-image-2",noCuratedResults:"No curated prompt candidates found.",discovery:"Discovery",discoverySearch:"Search GitHub",discoverySearchPlaceholder:"Search prompt repositories...",discoveryCandidates:"Discovery candidates",discoveryApprove:"Approve",discoveryReject:"Reject",discoveryApproved:"Approved",discoveryRejected:"Rejected",discoveryScore:"Score",discoveryWarnings:"Discovery warnings",discoveryRateLimited:"GitHub discovery is rate limited.",discoveryNoResults:"No discovery candidates found.",discoveryReviewQueue:"Review queue",discoveryRequiresPaths:"Add reviewed file paths before default search.",folderBrowse:"Browse folder",folderBrowseHint:"Loads supported files from a GitHub folder",folderFiles:"Folder files",folderFilesEmpty:"No importable .md, .markdown, or .txt files found.",folderPreviewSelected:"Preview selected files",folderSelectedCount:"{count} selected",folderWarnings:"Folder warnings",folderTooManyFiles:"Too many files; showing a limited set.",folderNoSelection:"Select files to preview.",folderUnsupported:"Only GitHub folders are supported."},i1={title:"Prompt Builder",subtitle:"Refine prompts through multi-turn context.",scopeDraft:"New work",scopeImage:"Selected image: {name}",scopeImageFallback:"Current image",newWorkTitle:"Start a new work without image context",model:"Builder model",empty:"Describe the direction you want. I will include your current prompt and settings as context.",user:"You",assistant:"Builder",placeholder:"What kind of image should we make?",send:"Send",sending:"Writing",thinking:"Refining the prompt...",clear:"Clear",applyToPrompt:"Apply to prompt",insertAsBlock:"Insert block",finalKoreanPrompt:"Korean prompt",finalEnglishPrompt:"English prompt",blockName:"Builder suggestion",applied:"Builder suggestion applied to the main prompt",inserted:"Builder suggestion inserted as a prompt block",failed:"Prompt builder request failed",removeScopeImage:"Remove selected image from builder context",removeAttachment:"Remove attachment {name}",attach:"Attach file",attachmentOnlyMessage:"Use the attached file as context and help with the prompt"},o1={sectionTitle:"Workspace",sectionBody:"Choose a workspace layout profile.",profileLabel:"Workspace profile",defaultLabel:"Default",defaultDesc:"Standard generation workflow with sidebar composer.",promptStudioLabel:"Prompt Studio",promptStudioDesc:"Prompt builder panel, grouped history, and enhanced viewer."},r1={controls:"Image zoom controls",zoomIn:"Zoom in",zoomOut:"Zoom out",reset:"Reset zoom"},s1={title:"Log",empty:"No generation logs yet",copied:"Prompt copied",copy:"Click to copy prompt"},c1={common:yx,appBar:vx,sheet:bx,toast:Sx,inflight:xx,size:_x,sizeConfirm:Tx,quality:Nx,moderation:Ax,format:Ex,count:Cx,multimode:wx,metadata:Ix,onboarding:Mx,readiness:Rx,generate:Ox,billing:jx,history:kx,panel:zx,prompt:Lx,canvas:Dx,gallery:Gx,node:qx,nodeBatch:Px,edge:Ux,provider:Hx,grokMode:Bx,cost:Fx,result:Vx,session:Kx,uiMode:Yx,agent:Xx,cardNews:Qx,video:Zx,sidebar:$x,settings:Jx,nodeCanvas:Wx,apiDisabled:e1,language:t1,theme:a1,errorCard:n1,promptLibrary:l1,promptBuilder:i1,workspace:o1,viewer:r1,generationLog:s1},Rh={ko:gx,en:c1};function Oh(a,r){return r.split(".").reduce((l,o)=>{if(l!=null)return l[o]},a)}function u1(a,r){return a.replace(/\{(\w+)\}/g,(l,o)=>o in r?String(r[o]):`{${o}}`)}function ae(a,r){const l=N.getState().locale;return Vg(l,a,r)}function Vg(a,r,l){const o=Oh(Rh[a],r),c=typeof o=="string"?o:Oh(Rh.en,r),f=typeof c=="string"?c:r;return l?u1(f,l):f}function ye(){const a=N(r=>r.locale);return{locale:a,t:(r,l)=>Vg(a,r,l)}}const tw=["ko","en"];function d1(){try{const a=localStorage.getItem("ima2.locale");if(a==="ko"||a==="en")return a}catch{}return typeof navigator<"u"&&(navigator.language||"").toLowerCase().startsWith("ko")?"ko":"en"}function f1(a){try{localStorage.setItem("ima2.locale",a)}catch{}}const m1=["default","gpt","claude","gemini","grok"];function jh(a){return Array.isArray(a.images)}const p1="none",In=[{value:"none",shortLabel:"off",fullLabelKey:"settings.reasoning.none"},{value:"low",shortLabel:"low",fullLabelKey:"settings.reasoning.low"},{value:"medium",shortLabel:"med",fullLabelKey:"settings.reasoning.medium"},{value:"high",shortLabel:"high",fullLabelKey:"settings.reasoning.high"},{value:"xhigh",shortLabel:"xhigh",fullLabelKey:"settings.reasoning.xhigh"}];function Kg(a){return In.some(r=>r.value===a)}const h1={low:"l",medium:"m",high:"h",xhigh:"x"};function g1(a){return!Kg(a)||a==="none"?null:`R:${h1[a]}`}const y1=!0,v1=!1,Fi=!0,Yg=v1,Vi=!0,b1=24;function Uu(a){return Math.min(b1,Math.max(1,Math.trunc(a||1)))}function S1(a){return Math.round(a/16)*16}const Rn=16,Zu=3840,wu=655360,jr=8294400,x1=3,El=3,kh=Math.floor(Math.sqrt(jr)/Rn)*Rn,Xg=Rn,_1=Zu,Tr=x1;function zh(a){return Math.floor(a/16)*16}function Ur(a){return Math.ceil(a/16)*16}function aa(a){return Math.min(_1,Math.max(Xg,a))}function ma(a,r){const l=typeof a=="number"?a:Number.parseInt(a,10);return Number.isFinite(l)?l:r}function kn(a,r){a.includes(r)||a.push(r)}function Lh(a,r){const l=S1(a);return l!==a&&kn(r,"snap"),l}function Dh(a,r){return a<Xg&&kn(r,"min"),a>Zu&&kn(r,"maxEdge"),aa(a)}function Gh(a,r,l){return a>r*Tr?(kn(l,"ratio"),{w:a,h:aa(Ur(a/Tr))}):r>a*Tr?(kn(l,"ratio"),{w:aa(Ur(r/Tr)),h:r}):{w:a,h:r}}function T1(a,r,l){if(a*r<wu){kn(l,"minPixels");const p=Math.sqrt(wu/(a*r));let m=aa(Ur(a*p)),y=aa(Ur(r*p));for(;m*y<wu;)m<=y?m=aa(m+Rn):y=aa(y+Rn);return{w:m,h:y}}if(a*r<=jr)return{w:a,h:r};kn(l,"maxPixels");const o=Math.sqrt(jr/(a*r));let c=aa(zh(a*o)),f=aa(zh(r*o));for(;c*f>jr;)c>=f?c=aa(c-Rn):f=aa(f-Rn);return{w:c,h:f}}function $u(a,r,l,o){const c=[],f=ma(a,l),p=ma(r,o);let m=Dh(Lh(f,c),c),y=Dh(Lh(p,c),c);return{w:m,h:y}=Gh(m,y,c),{w:m,h:y}=T1(m,y,c),{w:m,h:y}=Gh(m,y,c),{requestedW:f,requestedH:p,w:m,h:y,adjusted:m!==f||y!==p,reasons:c}}function Qg(a,r,l,o){const c=$u(a,r,l,o);return{w:c.w,h:c.h}}const N1=[{id:"free",label:"Free",w:0,h:0},{id:"1:1",label:"1:1",w:1,h:1},{id:"3:2",label:"3:2",w:3,h:2},{id:"2:3",label:"2:3",w:2,h:3},{id:"16:9",label:"16:9",w:16,h:9},{id:"9:16",label:"9:16",w:9,h:16},{id:"21:9",label:"21:9",w:21,h:9},{id:"9:21",label:"9:21",w:9,h:21}];function A1(a,r){return`${a}x${r}`}function E1(a,r=1024){if(a.id==="free")return null;const l=r,o=a.w>=a.h,c=o?Math.round(l*a.w/a.h):l,f=o?l:Math.round(l*a.h/a.w);return Qg(c,f,c,f)}function ts(a){const r=Qg(a.w,a.h,2400,1024);return{...a,w:r.w,h:r.h,label:a.label||`${r.w}×${r.h}`}}function Cl(a){return a.slice(0,El).map(ts)}function C1(a,r){const l=ts(r),o=a.findIndex(c=>c.id===l.id);return o>=0?Cl(a.map((c,f)=>f===o?l:c)):a.length>=El?Cl(a):Cl([...a,l])}function w1(a,r,l){const o=ts({...l,id:r});return Cl(a.map(c=>c.id===r?o:c))}const I1=[{value:"1024x1024",label:"1024×1024",sub:"1:1"},{value:"1536x1024",label:"1536×1024",sub:"3:2"},{value:"1024x1536",label:"1024×1536",sub:"2:3"}],M1=[{value:"1360x1024",label:"1360×1024",sub:"4:3"},{value:"1024x1360",label:"1024×1360",sub:"3:4"},{value:"1824x1024",label:"1824×1024",sub:"16:9"}],R1=[{value:"1024x1824",label:"1024×1824",sub:"9:16"},{value:"2048x2048",label:"2048×2048",sub:"2K 1:1"},{value:"2048x1152",label:"2048×1152",sub:"2K 16:9"}],O1=[{value:"1152x2048",label:"1152×2048",sub:"2K 9:16"},{value:"3840x2160",label:"3840×2160",sub:"4K 16:9"},{value:"2160x3840",label:"2160×3840",sub:"4K 9:16"}];function j1(){return[{value:"auto",label:ae("size.autoLabel"),sub:ae("size.autoSub")},{value:"custom",label:ae("size.customLabel"),sub:ae("size.customSub")}]}function as(a,r){const l=r.filter(c=>c.placement!=="after"),o=r.filter(c=>c.placement==="after");return[...l.map(c=>c.text.trim()).filter(Boolean),a.trim(),...o.map(c=>c.text.trim()).filter(Boolean)].filter(Boolean).join(`
17
+
18
+ `)}function k1(a){if(!a||typeof a!="object")return null;const r=a;return typeof r.id!="string"||typeof r.name!="string"||typeof r.text!="string"?null:{id:r.id,name:r.name,text:r.text,placement:r.placement==="after"?"after":"before"}}function Ki(a){if(!Array.isArray(a))return null;const r=a.map(k1);return r.every(l=>l!==null)?r:null}function Ju(a){return a.map(r=>({id:r.id,name:r.name,text:r.text,placement:r.placement==="after"?"after":"before"}))}function z1(a){const r=Ki(a.composerInsertedPrompts);return typeof a.composerPrompt=="string"?{prompt:a.composerPrompt,insertedPrompts:r??[]}:r?{insertedPrompts:r}:{}}function L1(){try{const a=localStorage.getItem(Rg);return a===null?!0:JSON.parse(a)===!0}catch{return!0}}function D1(){try{const a=localStorage.getItem(Og);if(a==="agent")return Vi?a:"classic";if(a==="card-news")return Yg?a:"classic";if(a==="node")return Fi?a:"classic";if(a==="classic")return a}catch{}return"classic"}function Iu(){try{const a=localStorage.getItem(kg);if(a==="system"||a==="dark"||a==="light")return a}catch{}return"system"}function qh(){try{const a=localStorage.getItem(zg);if(a&&m1.includes(a))return a}catch{}return"default"}function G1(){try{const a=localStorage.getItem(jg);if(a==="rail"||a==="horizontal"||a==="sidebar")return a}catch{}return"rail"}function Ph(a){try{const r=localStorage.getItem(a);if(r==="current-session"||r==="all")return r}catch{}return"current-session"}function Uh(){if(typeof window>"u")return{mode:"alpha",matteColor:"#ffffff"};try{const a=window.localStorage.getItem(Lg);if(!a)return{mode:"alpha",matteColor:"#ffffff"};const r=JSON.parse(a),l=r.mode==="matte"?"matte":"alpha",o=typeof r.matteColor=="string"&&/^#[0-9a-fA-F]{6}$/.test(r.matteColor)?r.matteColor:"#ffffff";return{mode:l,matteColor:o}}catch{return{mode:"alpha",matteColor:"#ffffff"}}}function Zg(a,r){if(!(typeof window>"u"))try{window.localStorage.setItem(Lg,JSON.stringify({mode:a,matteColor:r}))}catch{}}function $g(){try{const a=localStorage.getItem(Dg);if(Eg(a))return a}catch{}return Gu}function Oi(a){try{localStorage.setItem(Dg,a)}catch{}}function q1(){try{const a=localStorage.getItem(Gg);if(Kg(a))return a}catch{}return p1}function P1(a){try{localStorage.setItem(Gg,a)}catch{}}function U1(){try{const a=localStorage.getItem(qg);if(a==="false")return!1;if(a==="true")return!0}catch{}return y1}function H1(a){try{localStorage.setItem(qg,String(a))}catch{}}const Hh={model:!1,duration:5,resolution:"480p",aspectRatio:"auto"};function Wu(){try{const a=localStorage.getItem(Bg);if(!a)return Hh;const r=JSON.parse(a);return{model:wg(r.model),duration:typeof r.duration=="number"?r.duration:5,resolution:r.resolution==="480p"||r.resolution==="720p"||r.resolution==="1080p"?r.resolution:"480p",aspectRatio:typeof r.aspectRatio=="string"?r.aspectRatio:"auto"}}catch{return Hh}}function wl(a){try{const r=Wu();localStorage.setItem(Bg,JSON.stringify({...r,...a}))}catch{}}function kr(a){return a==="dark"||a==="light"?a:typeof window>"u"||typeof window.matchMedia!="function"?"dark":window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function Jg(){try{const a=localStorage.getItem(qu);return typeof a=="string"&&a.length>0?a:null}catch{return null}}function ga(a){try{a?localStorage.setItem(qu,a):localStorage.removeItem(qu)}catch{}}function B1(){try{const a=localStorage.getItem(Pu);return typeof a=="string"&&a.length>0?a:null}catch{return null}}function ed(a){try{a?localStorage.setItem(Pu,a):localStorage.removeItem(Pu)}catch{}}function F1(a,r){return`${a}x${r}`}function qi(a){return Uu(a)}const Wg=new Set(["1024x1024","1536x1024","1024x1536","1360x1024","1024x1360","1824x1024","1024x1824","2048x2048","2048x1152","1152x2048","3840x2160","2160x3840","auto","custom"]);function V1(a){if(typeof a!="string")return{};if(Wg.has(a))return{preset:a};const r=/^(\d+)x(\d+)$/.exec(a);if(!r)return{};const l=Number(r[1]),o=Number(r[2]);return!Number.isFinite(l)||!Number.isFinite(o)?{}:{preset:"custom",w:l,h:o}}function ey(a){return a==="low"||a==="medium"||a==="high"}function ty(a){return a==="png"||a==="jpeg"||a==="webp"}function ay(a){return a==="low"||a==="auto"}function K1(a){return a==="oauth"||a==="api"||a==="grok"||a==="grok-api"||a==="agy"||a==="gemini-api"}function Y1(a){return a==="auto"||a==="direct"}function X1(a){return typeof a=="string"&&Wg.has(a)}function ny(){try{const a=localStorage.getItem(Pg);if(!a)return{};const r=JSON.parse(a),l={};K1(r.provider)&&(l.provider=r.provider),ey(r.quality)&&(l.quality=r.quality),X1(r.sizePreset)&&(l.sizePreset=r.sizePreset),typeof r.customW=="number"&&Number.isFinite(r.customW)&&(l.customW=ma(r.customW,1920)),typeof r.customH=="number"&&Number.isFinite(r.customH)&&(l.customH=ma(r.customH,1088)),ty(r.format)&&(l.format=r.format),ay(r.moderation)&&(l.moderation=r.moderation),typeof r.count=="number"&&(l.count=qi(r.count)),typeof r.multimode=="boolean"&&(l.multimode=r.multimode),typeof r.multimodeMaxImages=="number"&&(l.multimodeMaxImages=qi(r.multimodeMaxImages)),Y1(r.promptMode)&&(l.promptMode=r.promptMode),typeof r.prompt=="string"&&(l.prompt=r.prompt);const o=Ki(r.insertedPrompts);return o&&(l.insertedPrompts=o),l}catch{return{}}}function $e(a){try{const r=ny();localStorage.setItem(Pg,JSON.stringify({...r,...a}))}catch{}}const Q1={maxB64Bytes:6e6,preserveTransparency:!1,maxEdge:4096,qualityLadder:[.85,.7,.55]},Bh=16777216;function Fh(a,r,l){let o=a,c=r;if(o<=0||c<=0)return{w:1,h:1};const f=Math.max(o,c);if(f>l){const p=l/f;o=Math.round(o*p),c=Math.round(c*p)}if(o*c>Bh){const p=Math.sqrt(Bh/(o*c));o=Math.max(1,Math.floor(o*p)),c=Math.max(1,Math.floor(c*p))}return{w:o,h:c}}function Nr(a){return new Promise((r,l)=>{const o=new FileReader;o.onload=()=>{typeof o.result=="string"?r(o.result):l(new Error("FileReader returned non-string"))},o.onerror=()=>l(o.error??new Error("FileReader failed")),o.readAsDataURL(a)})}function Mu(a,r,l){return new Promise((o,c)=>{a.toBlob(f=>f?o(f):c(new Error("canvas.toBlob returned null")),r,l)})}function Ar(a){const r=a.indexOf(",");return r<0?a.length:a.length-r-1}async function td(a,r={}){const l={...Q1,...r},o=await Nr(a);if(Ar(o)<=l.maxB64Bytes)return o;let c;try{c=await createImageBitmap(a)}catch(f){throw new Error("이미지 디코드 실패. JPEG/PNG로 변환 후 다시 시도해 주세요.",{cause:f})}try{const{w:f,h:p}=Fh(c.width,c.height,l.maxEdge),m=document.createElement("canvas");m.width=f,m.height=p;const y=m.getContext("2d");if(!y)throw new Error("canvas 2d context unavailable");if(y.drawImage(c,0,0,f,p),l.preserveTransparency){const x=await Mu(m,"image/png"),b=await Nr(x);if(Ar(b)>l.maxB64Bytes)throw new Error("이미지 압축 실패. JPEG/PNG로 미리 변환 후 다시 시도해 주세요.");return b}for(const x of l.qualityLadder){const b=await Mu(m,"image/jpeg",x),v=await Nr(b);if(Ar(v)<=l.maxB64Bytes)return v}const h=Fh(f,p,2048);m.width=h.w,m.height=h.h,y.drawImage(c,0,0,h.w,h.h);for(const x of[.7,.5,.35]){const b=await Mu(m,"image/jpeg",x),v=await Nr(b);if(Ar(v)<=l.maxB64Bytes)return v}throw new Error("이미지 압축 실패. JPEG/PNG로 미리 변환 후 다시 시도해 주세요.")}finally{c.close?.()}}function Hr(a){const r=(a.type||"").toLowerCase();if(r.includes("heic")||r.includes("heif"))return!0;const l=(a.name||"").toLowerCase();return l.endsWith(".heic")||l.endsWith(".heif")}function ly(a){return(a.type||"").toLowerCase()==="image/png"}const iy=18e4;function oy(a){const r=a.uiMode==="node"?[{kind:"node",sessionId:a.activeSessionId??void 0}]:[{kind:"classic"}];return a.inFlight.some(l=>l.kind==="multimode")&&r.push({kind:"multimode"}),r.push({kind:"video"}),r}function ry(a,r){const l=a.kind??"classic";return r.some(o=>l===o.kind&&(o.kind!=="node"||(a.sessionId??null)===(o.sessionId??null)))}async function sy(a){const r=await Promise.all(a.map(l=>xg({kind:l.kind,sessionId:l.sessionId,includeTerminal:!0})));return{jobs:r.flatMap(l=>l.jobs),terminalJobs:r.flatMap(l=>l.terminalJobs??[])}}function Br(a){const r=a.meta??{},l=a.kind==="classic"||a.kind==="node"||a.kind==="multimode"?a.kind:r.kind==="classic"||r.kind==="node"||r.kind==="multimode"?r.kind:void 0;return{id:a.requestId,prompt:typeof a.prompt=="string"?a.prompt:"",startedAt:a.startedAt,composerPrompt:typeof r.composerPrompt=="string"?r.composerPrompt:void 0,composerInsertedPrompts:Ki(r.composerInsertedPrompts)??void 0,phase:typeof a.phase=="string"?a.phase:void 0,sessionId:typeof r.sessionId=="string"?r.sessionId:null,parentNodeId:typeof r.parentNodeId=="string"?r.parentNodeId:null,clientNodeId:typeof r.clientNodeId=="string"?r.clientNodeId:null,kind:l}}function cy(a){const r=typeof a.errorCode=="string"&&a.errorCode?a.errorCode:"UNKNOWN",l=new Error(r==="EMPTY_RESPONSE"?"No image data returned from the image backend.":"Generation failed on the server.");return l.code=r,l.status=typeof a.httpStatus=="number"?a.httpStatus:void 0,l}function Yi(a){if(!a||typeof a!="object")return!1;const r=a;return r.code==="GENERATION_CANCELED"||r.status===499}function Vh(a){return a.filename||a.image}function Kh(a,r){const l=new Map(a.map(o=>[Vh(o),o]));for(const o of r)l.set(Vh(o),o);return[...l.values()].sort((o,c)=>(o.sequenceIndex??Number.MAX_SAFE_INTEGER)-(c.sequenceIndex??Number.MAX_SAFE_INTEGER))}function uy(){try{const a=localStorage.getItem(Ug);if(!a)return[];const r=JSON.parse(a);if(!Array.isArray(r))return[];const l=Date.now();return r.filter(o=>o&&typeof o.id=="string"&&typeof o.prompt=="string"&&typeof o.startedAt=="number"&&l-o.startedAt<iy).map(o=>({id:o.id,prompt:o.prompt,startedAt:o.startedAt,composerPrompt:typeof o.composerPrompt=="string"?o.composerPrompt:void 0,composerInsertedPrompts:Ki(o.composerInsertedPrompts)??void 0,phase:typeof o.phase=="string"?o.phase:void 0,sessionId:typeof o.sessionId=="string"?o.sessionId:null,parentNodeId:typeof o.parentNodeId=="string"?o.parentNodeId:null,clientNodeId:typeof o.clientNodeId=="string"?o.clientNodeId:null,kind:o.kind==="classic"||o.kind==="node"||o.kind==="multimode"||o.kind==="video"?o.kind:void 0}))}catch{return[]}}const la=500,ad=5;function Z1(a){return a==="classic"||a==="edit"||a==="generate"||a==="card-news-card"||a==="card-news-set"?a:null}function Xi(a){const r=Ki(a.composerInsertedPrompts),l=a.mediaType==="video"||/\.(mp4|webm|mov)$/i.test(a.filename??"");return{image:a.url,url:a.url,providerUrl:a.providerUrl??null,mediaType:a.mediaType,video:a.video??null,videoSeries:a.videoSeries??null,videoContinuity:a.videoContinuity??null,filename:a.filename,thumb:a.thumb??(l?void 0:a.url),prompt:a.prompt??void 0,userPrompt:a.userPrompt??null,revisedPrompt:a.revisedPrompt??null,promptMode:a.promptMode??null,composerPrompt:a.composerPrompt??null,composerInsertedPrompts:r?Ju(r):null,size:a.size??void 0,quality:a.quality??void 0,format:a.format,model:a.model??void 0,reasoningEffort:a.reasoningEffort??void 0,elapsed:a.elapsed??void 0,provider:a.provider,usage:a.usage??void 0,createdAt:a.createdAt,sessionId:a.sessionId??null,nodeId:a.nodeId??null,parentNodeId:a.parentNodeId??null,clientNodeId:a.clientNodeId??null,requestId:a.requestId??null,kind:Z1(a.kind),canvasVersion:!!a.canvasVersion,canvasSourceFilename:a.canvasSourceFilename??null,canvasEditableFilename:a.canvasEditableFilename??null,canvasMergedAt:a.canvasMergedAt??void 0,setId:a.setId??null,cardId:a.cardId??null,cardOrder:a.cardOrder??null,headline:a.headline??null,body:a.body??null,cards:a.cards,refsCount:a.refsCount??0,webSearchCalls:a.webSearchCalls??0,isFavorite:a.isFavorite??!1,sequenceId:a.sequenceId??null,sequenceIndex:a.sequenceIndex??null,sequenceTotalRequested:a.sequenceTotalRequested??null,sequenceTotalReturned:a.sequenceTotalReturned??null,sequenceStatus:a.sequenceStatus??null}}function na(a){return a.filename??a.image}function dy(a,r){const l=na(r);return a.filter(o=>na(o)!==l)}function fy(a,r){const l=na(r);return a.find(o=>na(o)===l)}function my(a,r){return r?{...r,...a,createdAt:a.createdAt??r.createdAt,requestId:a.requestId??r.requestId,sessionId:a.sessionId??r.sessionId,kind:a.kind??r.kind,refsCount:a.refsCount??r.refsCount,isFavorite:a.isFavorite??r.isFavorite}:a}function py(a,r){const l=new Map(a.map(o=>[na(o),o]));for(const o of r)l.set(na(o),o);return[...a.map(o=>l.get(na(o))??o),...r.filter(o=>!a.some(c=>na(c)===na(o)))]}function ns(a,r){return a.slice(0,Math.max(la,r))}function nd(a){return a.replace(/^data:[^;]+;base64,/,"")}async function Qi(a,r="reference.png"){const l=await fetch(a);if(!l.ok)throw new Error(`reference fetch failed: ${l.status}`);const o=await l.blob(),c=new File([o],r,{type:o.type||"image/png"});return td(c,{preserveTransparency:!1})}function $1(a,r){let l=!1;const o={};for(const[c,f]of Object.entries(a)){const p=f.images.filter(m=>m.filename!==r);if(p.length===f.images.length){o[c]=f;continue}l=!0,p.length!==0&&(o[c]={...f,images:p,returned:p.length,status:f.status==="complete"&&p.length<f.requested?"partial":f.status})}return l?o:a}function Gt(a){try{localStorage.setItem(Ug,JSON.stringify(a))}catch(r){const l=window;l.__ima2QuotaWarned||(l.__ima2QuotaWarned=!0,console.warn("[ima2] localStorage write failed:",r))}}function ls(a,r){if(a.provider==="grok"||a.provider==="grok-api"||a.provider==="agy"||a.provider==="gemini-api"||a.sizePreset!=="custom")return null;const l=$u(a.customW,a.customH,a.customW,a.customH);return l.adjusted?{requestedW:l.requestedW,requestedH:l.requestedH,adjustedW:l.w,adjustedH:l.h,reasons:l.reasons,continuation:r}:null}function J1(a){const r=typeof a=="number"?a:Number(a);return Number.isFinite(r)?Math.max(1,Math.trunc(r)):ad}async function W1(a){try{const r=await zS();a({referenceLimit:J1(r.limits?.maxRefCount)})}catch{a({referenceLimit:ad})}}function e_(a){return new Promise((r,l)=>{const o=new FileReader;o.onload=()=>r(String(o.result)),o.onerror=()=>l(o.error),o.readAsDataURL(a)})}function t_(a,r=256){return new Promise(l=>{const o=new Image;o.onload=()=>{const c=Math.min(1,r/Math.max(o.width,o.height)),f=document.createElement("canvas");f.width=o.width*c,f.height=o.height*c;const p=f.getContext("2d");if(!p)return l(a);p.drawImage(o,0,0,f.width,f.height),l(f.toDataURL("image/jpeg",.6))},o.onerror=()=>l(a),o.src=a})}function a_(a,r){return a.find(l=>l.target===r)??null}function n_(a,r,l){return a.some(o=>o.target===l&&o.source!==r)}function cn(a,r){const l=new Map(a.map(o=>[o.id,o]));return a.map(o=>{const c=a_(r,o.id),p=(c?l.get(c.source):null)?.data.serverNodeId??null;return o.data.parentServerNodeId===p?o:{...o,data:{...o.data,parentServerNodeId:p}}})}const hy="ima2.nodeRefs.v1";function ld(){try{const a=localStorage.getItem(hy);if(!a)return{};const r=JSON.parse(a);return r&&typeof r=="object"?r:{}}catch{return{}}}function gy(a){try{localStorage.setItem(hy,JSON.stringify(a))}catch{}}function l_(a,r){if(!a)return[];const l=ld()[a]?.[r];return Array.isArray(l)?l.filter(o=>typeof o=="string"):[]}function is(a,r,l){if(!a)return;const o=ld(),c={...o[a]??{}};l.length===0?delete c[r]:c[r]=l,o[a]=c,gy(o)}function id(a,r){is(a,r,[])}function i_(a,r){if(!a)return;const l=ld(),o=l[a];if(!o)return;const c=new Set(r);for(const f of Object.keys(o))c.has(f)||delete o[f];l[a]=o,gy(l)}const o_=/\.(mp4|webm|mov)$/i;function fa(a){if(!a||a.startsWith("data:image/"))return!1;const r=a.split("?")[0];return o_.test(r)||a.startsWith("data:video/")}function $t(a){return a?a.mediaType==="video"?!0:fa(a.filename)||fa(a.url)||fa(a.image):!1}function od(a,r){return new Promise((l,o)=>{const c=document.createElement("video");c.crossOrigin="anonymous",c.preload="auto",c.muted=!0,c.onloadedmetadata=()=>{c.currentTime=Math.max(0,r(c.duration))},c.onseeked=()=>{try{const f=document.createElement("canvas");f.width=c.videoWidth,f.height=c.videoHeight;const p=f.getContext("2d");if(!p){o(new Error("canvas 2d context unavailable"));return}p.drawImage(c,0,0);const m=f.toDataURL("image/jpeg",.85);l(m)}catch(f){o(f)}finally{c.src="",c.load()}},c.onerror=()=>{o(new Error("Failed to load video for frame extraction"))},c.src=a})}function kl(a){return od(a,r=>r-.1)}function r_(a){return od(a,r=>Math.min(r*.3,.4))}function s_(a){return od(a,r=>r/2)}function yy(a){const r=a.nodes.map(o=>{const c=o.data??{},f=typeof c.imageUrl=="string"&&c.imageUrl.length>0?c.imageUrl:null,p=typeof c.serverNodeId=="string"&&c.serverNodeId.length>0?`/generated/${c.serverNodeId}.png`:null,m=f??p,y={clientId:o.id,serverNodeId:c.serverNodeId??null,parentServerNodeId:c.parentServerNodeId??null,prompt:typeof c.prompt=="string"?c.prompt:"",imageUrl:m,status:c.status??(m?"ready":"empty"),pendingRequestId:c.pendingRequestId??null,recoveryRequestId:c.recoveryRequestId??null,pendingPhase:c.pendingPhase??null,pendingStartedAt:typeof c.pendingStartedAt=="number"?c.pendingStartedAt:null,partialImageUrl:null,error:c.error,elapsed:c.elapsed,reasoningEffort:c.reasoningEffort,webSearchCalls:c.webSearchCalls,model:c.model??null,size:c.size??null,referenceImages:l_(a.id,o.id),video:c.video??null};return{id:o.id,type:"imageNode",position:{x:o.x,y:o.y},data:y}}),l=a.edges.map(o=>{const c=o.data??{};return{id:o.id,source:o.source,target:o.target,sourceHandle:typeof c.sourceHandle=="string"?c.sourceHandle:null,targetHandle:typeof c.targetHandle=="string"?c.targetHandle:null}});return{graphNodes:cn(r,l),graphEdges:l,graphVersion:a.graphVersion}}const c_=800;let ua=null,zr=!1,Lr=!1,Mn=null,vy=0;function by(){try{const a=sessionStorage.getItem(Mh);if(a)return a;const r=`tab_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`;return sessionStorage.setItem(Mh,r),r}catch{return"tab_unavailable"}}function Sy(a){const r={...a};return delete r.referenceImages,delete r.partialImageUrl,a.status==="pending"||a.status==="reconciling"?{...r,status:"empty",pendingRequestId:null,recoveryRequestId:a.pendingRequestId??a.recoveryRequestId??null,pendingPhase:null,pendingStartedAt:null,error:void 0}:r}function xy(a){return a.map(r=>({id:r.id,source:r.source,target:r.target,data:{sourceHandle:r.sourceHandle??null,targetHandle:r.targetHandle??null}}))}async function _y(a,r){const l=a().activeSessionId;if(!l||a().graphNodes.filter(m=>!m.data.imageUrl&&!m.data.serverNodeId).length===0)return;let c=[];try{c=(await jl({sessionId:l,limit:la})).items}catch{return}let f=!1;const p=a().graphNodes.map(m=>{if(m.data.imageUrl||m.data.serverNodeId)return m;const y=m.data.pendingStartedAt??0,h=m.data.pendingRequestId??m.data.recoveryRequestId??null,b=(h?c.find(v=>(v.sessionId??null)===l&&(v.requestId??null)===h):null)??c.find(v=>(v.sessionId??null)===l&&(v.clientNodeId??null)===m.id&&(!y||(v.createdAt??0)>=y));return b?(f=!0,{...m,data:{...m.data,status:"ready",imageUrl:b.url,serverNodeId:b.nodeId??m.data.serverNodeId,size:b.size??m.data.size??null,elapsed:b.elapsed??m.data.elapsed,reasoningEffort:b.reasoningEffort??m.data.reasoningEffort,video:b.video??m.data.video??null,pendingRequestId:null,recoveryRequestId:null,pendingPhase:null,pendingStartedAt:null,partialImageUrl:null,error:void 0}}):m});f&&(r({graphNodes:p}),Ny(a,r,"recovery"))}async function u_(a,r){const l=a().activeSessionId;if(!l)return;const{session:o}=await Ag(l),{graphNodes:c,graphEdges:f,graphVersion:p}=yy(o);r({graphNodes:c,graphEdges:f,activeSessionGraphVersion:p}),a().showToast(ae("toast.sessionReloadedElsewhere"),!0),await _y(a,r).catch(()=>{})}async function d_(a,r,l){const o=a().activeSessionId,c=a().activeSessionGraphVersion;if(!o||c==null)return"skipped";const{graphNodes:f,graphEdges:p,sessionLoading:m}=a();if(m||f.length===0&&c>0)return"skipped";const y=f.map(b=>({id:b.id,x:b.position.x,y:b.position.y,data:Sy(b.data)})),h=xy(p),x=`gs_${Date.now().toString(36)}_${++vy}`;try{const b=await c0(o,c,y,h,{saveId:x,saveReason:l,tabId:by()});return a().activeSessionId!==o?"skipped":(i_(o,a().graphNodes.map(v=>v.id)),r({activeSessionGraphVersion:b.graphVersion}),"saved")}catch(b){return b.status===409?(await u_(a,r),"conflict"):(console.warn("[sessions] save failed:",b),"failed")}}async function Ty(a,r,l){if(zr){Lr=!0,Mn&&await Mn;return}zr=!0,Mn=(async()=>{let o=l;do{Lr=!1;const c=await d_(a,r,o);if(c==="conflict"||c==="failed")break;o="queued"}while(Lr)})().finally(()=>{zr=!1,Mn=null}),await Mn}function Ny(a,r,l="debounced"){const o=a();o.activeSessionId&&(o.sessionLoading||(ua&&clearTimeout(ua),ua=setTimeout(()=>{ua=null,Ty(a,r,l)},c_)))}async function f_(a,r,l="manual"){let o=!1;if(ua&&(clearTimeout(ua),ua=null,o=!0),zr){Lr=!0,Mn&&await Mn;return}o&&await Ty(a,r,l)}function m_(a){const r=a();if(!r.activeSessionId||r.activeSessionGraphVersion==null||r.sessionLoading||r.graphNodes.length===0&&r.activeSessionGraphVersion>0)return;ua&&(clearTimeout(ua),ua=null);const l=r.graphNodes.map(p=>({id:p.id,x:p.position.x,y:p.position.y,data:Sy(p.data)})),o=xy(r.graphEdges),c=`/api/sessions/${encodeURIComponent(r.activeSessionId)}/graph`,f=JSON.stringify({nodes:l,edges:o});try{fetch(c,{method:"PUT",headers:{"Content-Type":"application/json","If-Match":String(r.activeSessionGraphVersion),"X-Ima2-Graph-Save-Id":`gs_${Date.now().toString(36)}_${++vy}`,"X-Ima2-Graph-Save-Reason":"beforeunload","X-Ima2-Tab-Id":by()},body:f,keepalive:!0})}catch{}}async function Ml(a,r,l,o={}){const c=$t(a)?void 0:await t_(a.image).catch(()=>a.image),f=a.filename?`/generated/${a.filename}`:a.image,p={...a,thumb:c,url:f,createdAt:a.createdAt||Date.now()},m=l(),y=fy(m.history,p),h=my(p,y),x=dy(m.history,h),b=ns([h,...x],m.loadedHistoryRetainLimit+1),_=!(o.autoSelectStartedAt!=null&&m.lastHistorySelectedAt>o.autoSelectStartedAt)&&(!m.currentImage||o.autoSelectStartedAt==null||m.lastHistorySelectedAt<=o.autoSelectStartedAt);_&&ga(h.filename??null),r({history:b,..._?{currentImage:h}:{},loadedHistoryRetainLimit:Math.max(m.loadedHistoryRetainLimit,Math.min(m.history.length+1,m.loadedHistoryRetainLimit+1)),unseenGeneratedCount:m.unseenGeneratedCount+1})}function p_(a){for(const r of a.history)if(r.sessionId)return r.sessionId;return null}function h_(a){return a.data.status==="ready"&&!!a.data.imageUrl}function g_(a,r,l){const o=new Set(l),c=new Set(a.map(b=>b.id)),f=new Map,p=new Map;for(const b of o)c.has(b)&&(f.set(b,0),p.set(b,[]));for(const b of r)!o.has(b.source)||!o.has(b.target)||(p.get(b.source)?.push(b.target),f.set(b.target,(f.get(b.target)??0)+1));const m=a.map(b=>b.id),y=m.filter(b=>o.has(b)&&(f.get(b)??0)===0),h=[];for(let b=0;b<y.length;b++){const v=y[b];h.push(v);for(const _ of p.get(v)??[])f.set(_,(f.get(_)??0)-1),(f.get(_)??0)===0&&y.push(_)}const x=new Set(h);return h.concat(m.filter(b=>o.has(b)&&!x.has(b)))}function y_(a,r){const l=new Set(r),o=new Set,c=new Map;for(const p of a){const m=c.get(p.source)??[];m.push(p.target),c.set(p.source,m)}const f=[...l];for(let p=0;p<f.length;p++)for(const m of c.get(f[p])??[])l.has(m)||o.has(m)||(o.add(m),f.push(m));return[...o]}function v_(a,r,l){const o=new Set(l);return a.filter(c=>c.source===r&&!o.has(c.target)).map(c=>c.target)}function b_(a,r,l){const o=new Set(l),c=new Map(a.map(p=>[p.id,p])),f=[];for(const p of r){if(!o.has(p.target)||o.has(p.source))continue;c.get(p.source)?.data.serverNodeId||f.push(p.target)}return f}const ji={REF_TOO_LARGE:{surface:"toast",toastKey:"toast.refTooLarge"},REF_NOT_BASE64:{surface:"toast",toastKey:"toast.refNotBase64"},REF_EMPTY:{surface:"toast",toastKey:"toast.refEmpty"},REF_TOO_MANY:{surface:"toast",toastKey:"toast.refLimitExceeded"},MODERATION_REFUSED:{surface:"card",cardKey:"errorCard.moderationRefused",cta:"dismiss"},SAFETY_REFUSAL:{surface:"card",cardKey:"errorCard.moderationRefused",cta:"dismiss"},EMPTY_RESPONSE:{surface:"card",cardKey:"errorCard.emptyResponse",cta:"dismiss"},STREAM_PARSE_FAILED:{surface:"card",cardKey:"errorCard.streamParseFailed",cta:"retry"},IMAGE_TOOL_NOT_CALLED:{surface:"card",cardKey:"errorCard.imageToolNotCalled",cta:"retry"},WEB_SEARCH_ONLY_RESPONSE:{surface:"card",cardKey:"errorCard.webSearchOnlyResponse",cta:"retry"},IMAGE_TOOL_FAILED:{surface:"card",cardKey:"errorCard.imageToolFailed",cta:"retry"},IMAGE_TOOL_COMPLETED_WITHOUT_RESULT:{surface:"card",cardKey:"errorCard.imageToolNoResult",cta:"retry"},OAUTH_IMAGE_CAPABILITY_UNAVAILABLE:{surface:"card",cardKey:"errorCard.oauthImageCapabilityUnavailable",cta:"dismiss"},RESPONSES_STREAM_ERROR:{surface:"card",cardKey:"errorCard.responsesStreamError",cta:"retry"},UPSTREAM_5XX:{surface:"card",cardKey:"errorCard.upstream5xx",cta:"retry"},AUTH_CHATGPT_EXPIRED:{surface:"card",cardKey:"errorCard.authChatgptExpired",cta:"reauth"},AUTH_API_KEY_INVALID:{surface:"card",cardKey:"errorCard.authApiKeyInvalid",cta:"dismiss"},NETWORK_FAILED:{surface:"card",cardKey:"errorCard.networkFailed",cta:"reload"},OAUTH_UNAVAILABLE:{surface:"card",cardKey:"errorCard.oauthUnavailable",cta:"reload"},INVALID_REQUEST:{surface:"card",cardKey:"errorCard.invalidRequest",cta:"dismiss"},INVALID_MODERATION:{surface:"toast",toastKey:"toast.generateFailed"},APIKEY_DISABLED:{surface:"card",cardKey:"errorCard.apikeyDisabled",cta:"dismiss"},AGY_GENERATION_FAILED:{surface:"card",cardKey:"errorCard.agyGenerationFailed",cta:"retry"},AGY_TIMEOUT:{surface:"card",cardKey:"errorCard.agyTimeout",cta:"retry"},AGY_PROCESS_ERROR:{surface:"card",cardKey:"errorCard.agyProcessError",cta:"retry"},AGY_QUOTA_EXHAUSTED:{surface:"card",cardKey:"errorCard.agyQuotaExhausted",cta:"dismiss"},AGY_PARSE_FAILED:{surface:"card",cardKey:"errorCard.agyProcessError",cta:"retry"},AGY_ARTIFACT_NOT_FOUND:{surface:"card",cardKey:"errorCard.agyProcessError",cta:"retry"},DB_ERROR:{surface:"toast",toastKey:"toast.generateFailed"},UNKNOWN:{surface:"toast",toastKey:"toast.generateFailed"}};function S_(a){const r=(a||"").toLowerCase();return r?r.includes("moderation_blocked")||r.includes("moderation refused")?"MODERATION_REFUSED":r.includes("no image data returned")?"EMPTY_RESPONSE":r.includes("stream could not be parsed")?"STREAM_PARSE_FAILED":r.includes("web search but not the image tool")?"WEB_SEARCH_ONLY_RESPONSE":r.includes("without calling the image tool")?"IMAGE_TOOL_NOT_CALLED":r.includes("image tool call failed")?"IMAGE_TOOL_FAILED":r.includes("image tool completed without image data")?"IMAGE_TOOL_COMPLETED_WITHOUT_RESULT":r.includes("token is expired")||r.includes("sign in again")||r.includes("access token")&&r.includes("expired")||r.includes("token")&&r.includes("expired")&&!r.includes("api key")?"AUTH_CHATGPT_EXPIRED":r.includes("incorrect api key")||r.includes("invalid authentication")||r.includes("exceeded your current quota")||r.includes("incorrect organization")?"AUTH_API_KEY_INVALID":r.includes("failed to fetch")||r.includes("econnrefused")||r.includes("econnreset")||r.includes("enotfound")||r.includes("etimedout")||r.includes("network error")?"NETWORK_FAILED":r.includes("oauth")&&(r.includes("not running")||r.includes("unavailable")||r.includes("not ready"))?"OAUTH_UNAVAILABLE":r.includes("invalid_request_error")||r.includes("invalid_value")||r.includes("invalid size")||r.includes("invalid request")||r.includes("requested resolution")||r.includes("minimum pixel budget")||r.includes("unsupported value")?"INVALID_REQUEST":r.includes("resource exhausted")||r.includes("exhausted your capacity")||r.includes("quota will reset")?"AGY_QUOTA_EXHAUSTED":r.includes("agy generation timed out")?"AGY_TIMEOUT":r.includes("agy generation failed")?"AGY_GENERATION_FAILED":r.includes("agy process error")||r.includes("agy exited")?"AGY_PROCESS_ERROR":r.includes("agy artifact not found")?"AGY_ARTIFACT_NOT_FOUND":r.includes("could not parse artifact path from agy")?"AGY_PARSE_FAILED":r.includes("an error occurred while processing")||/\b5\d\d\b/.test(r)?"UPSTREAM_5XX":"UNKNOWN":"UNKNOWN"}function x_(a){const r=(a||"").toLowerCase();return r.includes("request was rejected")||r.includes("prompt was rejected")?"input":r.includes("image was filtered")||r.includes("generated image")?"output":"unknown"}function __(a){const r=a,l=typeof r?.message=="string"?r.message:String(a??""),o=typeof r?.code=="string"?r.code:"",c=o&&o in ji?o:S_(l),f=ji[c]??ji.UNKNOWN,p=c==="MODERATION_REFUSED"||c==="SAFETY_REFUSAL"?r?.moderationStage||x_(l):void 0;return{code:c,spec:f,message:l,moderationStage:p}}function Zi(a,r){const{code:l,spec:o,message:c}=__(a);if(o.surface==="card")r.showErrorCard(l,{fallbackMessage:c});else{const f=o.toastKey?ae(o.toastKey):c||ae("toast.generateFailed");r.showToast(f,!0)}return{code:l,message:c}}const Fr=new Map;function $i(a,r){Fr.set(a,r)}function Ji(a){Fr.delete(a)}function Ay(a){Fr.get(a)?.abort(),Fr.delete(a)}const Nl=new Set;async function T_(a,r,l,o,c){if(Nl.has(a))return null;Nl.add(a);const f=o().graphNodes,p=cn(f,o().graphEdges);p.some((ee,I)=>ee.data.parentServerNodeId!==f[I]?.data.parentServerNodeId)&&l({graphNodes:p});const m=p.find(ee=>ee.id===a);if(!m)return Nl.delete(a),null;const{prompt:y,parentServerNodeId:h}=m.data;if(!y.trim())return o().showToast(ae("toast.promptRequired"),!0),Nl.delete(a),null;const x=m.data.referenceImages??[],b=o(),v=r.sizeOverride??b.getResolvedSize(),_=r.parentServerNodeIdOverride!==void 0?r.parentServerNodeIdOverride:h;if(o().graphEdges.find(ee=>ee.target===a)&&!_)return o().showToast(ae("node.parentImageRequired"),!0),Nl.delete(a),null;const j=b.activeSessionId,R=Date.now(),C=Math.random().toString(36).slice(2,6),A=`fn_${a}_${R}_${C}`,K=new AbortController;$i(A,K);const V=[...b.inFlight,{id:A,prompt:y,startedAt:R,kind:"node",sessionId:j,clientNodeId:a}];c(V),l({graphNodes:o().graphNodes.map(ee=>ee.id===a?{...ee,data:{...ee.data,status:"pending",pendingRequestId:A,recoveryRequestId:A,pendingPhase:"queued",pendingStartedAt:R,partialImageUrl:null,error:void 0,size:v}}:ee),activeGenerations:b.activeGenerations+1,inFlight:V}),o().startInFlightPolling();let te=!0;try{const ee=await g0({parentNodeId:_,prompt:y,quality:b.quality,size:v,format:b.format,moderation:b.moderation,provider:b.provider,model:b.imageModel,reasoningEffort:b.reasoningEffort,storyboard:b.storyboardActive||void 0,requestId:A,sessionId:j,clientNodeId:a,contextMode:"parent-plus-refs",searchMode:b.webSearchEnabled?"on":"off",webSearchEnabled:b.webSearchEnabled,...x.length?{references:x.map(nd)}:{}},{onPartial:I=>{o().activeSessionId===j&&l({graphNodes:o().graphNodes.map(le=>le.id===a?{...le,data:{...le.data,status:"pending",partialImageUrl:I.image,pendingPhase:"partial"}}:le)})},onPhase:I=>{o().activeSessionId===j&&I.phase&&l({graphNodes:o().graphNodes.map(le=>le.id===a?{...le,data:{...le.data,pendingPhase:I.phase??le.data.pendingPhase}}:le)})}},{signal:K.signal});return o().activeSessionId===j&&(l({graphNodes:o().graphNodes.map(I=>{if(I.id!==a)return I;const le={...I.data};return delete le.partialImageUrl,{...I,data:{...le,serverNodeId:ee.nodeId,imageUrl:ee.url,status:"ready",pendingRequestId:null,recoveryRequestId:null,pendingPhase:null,pendingStartedAt:null,elapsed:ee.elapsed,reasoningEffort:ee.reasoningEffort,webSearchCalls:ee.webSearchCalls,model:ee.model??null,size:ee.size??null}}})}),te=!0,r.suppressToast||o().showToast(ae("toast.nodeCreated",{id:ee.nodeId.slice(0,8),elapsed:ee.elapsed}))),ee.nodeId}catch(ee){if(Yi(ee))return o().activeSessionId===j&&(l({graphNodes:o().graphNodes.map(le=>le.id===a?{...le,data:{...le.data,status:le.data.imageUrl?"ready":"empty",pendingRequestId:null,recoveryRequestId:null,pendingPhase:null,pendingStartedAt:null,partialImageUrl:null,error:void 0}}:le)}),te=!0),null;const I=ee instanceof Error?ee.message:ae("toast.nodeCreateFailed");return o().activeSessionId===j&&(l({graphNodes:o().graphNodes.map(le=>le.id===a?{...le,data:{...le.data,status:"error",pendingRequestId:null,pendingPhase:null,pendingStartedAt:null,partialImageUrl:null,error:I}}:le)}),te=!0,Zi(ee,o())),null}finally{Nl.delete(a);const ee=o().inFlight.filter(I=>I.id!==A);c(ee),Ji(A),l({activeGenerations:Math.max(0,o().activeGenerations-1),inFlight:ee}),o().activeSessionId===j&&te&&(o().scheduleGraphSave(),o().flushGraphSave("node-complete"))}}async function N_(a,r,l){if(l().nodeBatchRunning)return;const o=Fg(l().graphNodes);if(o.length===0){l().showToast(ae("nodeBatch.noneSelected"),!0);return}const c=b_(l().graphNodes,l().graphEdges,o);if(c.length>0){l().showToast(ae("nodeBatch.parentRequired",{count:c.length}),!0);return}const f=g_(l().graphNodes,l().graphEdges,o),p=new Set(o),m=f.filter(x=>{if(a==="regenerate-all")return!0;const b=l().graphNodes.find(v=>v.id===x);return b?!h_(b):!1});if(m.length===0){l().showToast(ae("nodeBatch.nothingToRun"));return}r({nodeBatchRunning:!0,nodeBatchStopping:!1});const y=new Map;let h=0;try{for(const x of m){if(l().nodeBatchStopping)break;const b=l().graphEdges.find(R=>R.target===x),v=b?y.get(b.source)??l().graphNodes.find(R=>R.id===x)?.data.parentServerNodeId??null:null,_=l().videoModelSelected?await l().runVideoGenerate(x).then(()=>l().graphNodes.find(C=>C.id===x)?.data.serverNodeId??null):await l().runGenerateNodeInPlace(x,{parentServerNodeIdOverride:v,suppressToast:!0});if(!_){l().showToast(ae("nodeBatch.failed",{done:h,total:m.length}),!0);break}h+=1,y.set(x,_);const T=v_(l().graphEdges,x,p),j=new Set(y_(l().graphEdges,p));r({graphNodes:l().graphNodes.map(R=>j.has(R.id)?{...R,data:{...R.data,status:"stale",parentServerNodeId:T.includes(R.id)?_:R.data.parentServerNodeId,error:ae("nodeBatch.staleBecauseParentChanged")}}:R)})}l().showToast(ae("nodeBatch.finished",{done:h,total:m.length})),l().scheduleGraphSave()}finally{r({nodeBatchRunning:!1,nodeBatchStopping:!1})}}async function A_(a,r,l){const o=l();if(o.uiMode!=="classic")return;const c=as(o.prompt,o.insertedPrompts);if(!c)return;const f=o.prompt,p=Ju(o.insertedPrompts),m=a??o.getResolvedSize(),y=`mm_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,h=new AbortController;$i(y,h);const x=Date.now(),b=x,v=qi(o.multimodeMaxImages),_=[...o.inFlight,{id:y,prompt:c,startedAt:x,kind:"multimode",composerPrompt:f,composerInsertedPrompts:p}],T={sequenceId:y,requestId:y,requested:v,returned:0,images:[],partials:[],status:"pending"};Gt(_),r({activeGenerations:o.activeGenerations+1,inFlight:_,activeFlightIds:new Set([...o.activeFlightIds,y]),multimodeSequences:{...o.multimodeSequences,[y]:T},multimodePreviewFlightId:y}),l().startInFlightPolling();try{const j=await ZS({prompt:c,quality:o.quality,size:m,format:o.format,moderation:o.moderation,provider:o.provider,maxImages:v,model:o.imageModel,reasoningEffort:o.reasoningEffort,webSearchEnabled:o.webSearchEnabled,requestId:y,mode:o.promptMode,composerPrompt:f,composerInsertedPrompts:p,...o.providerUrlReference?{providerUrl:o.providerUrlReference}:o.referenceImages.length?{references:o.referenceImages.map(nd)}:{}},{onPartial:A=>{r(K=>{const V=K.multimodeSequences[y];return V?{multimodeSequences:{...K.multimodeSequences,[y]:{...V,partials:[...V.partials,{image:A.image,index:A.index??null}].slice(-v)}}}:{}})},onImage:A=>{r(K=>{const V=K.multimodeSequences[y];if(!V)return{};const te=Kh(V.images,[A]);return te.length===V.images.length?{}:{multimodeSequences:{...K.multimodeSequences,[y]:{...V,sequenceId:A.sequenceId??V.sequenceId,returned:te.length,images:te,status:"partial"}}}})}},{signal:h.signal}),R=j.images.map(A=>({...A,prompt:c,elapsed:Number.parseFloat(j.elapsed),provider:j.provider,usage:j.usage,requestId:A.requestId??j.requestId??y,composerPrompt:f,composerInsertedPrompts:p,quality:j.quality,size:j.size,model:j.model??null}));for(const A of R)await Ml(A,r,l,{autoSelectStartedAt:b});r(A=>({multimodeSequences:{...A.multimodeSequences,[y]:(()=>{const K=A.multimodeSequences[y],V=Kh(K?.images??[],R);return{sequenceId:j.sequenceId,requestId:y,requested:j.requested,returned:V.length,images:V,partials:[],status:j.status,elapsed:j.elapsed}})()}}));const C=j.status==="complete"?"multimode.complete":"multimode.partial";l().showToast(ae(C,{returned:j.returned,requested:j.requested,elapsed:j.elapsed}))}catch(j){j.name==="AbortError"||Yi(j)?r(R=>{const C=R.multimodeSequences[y];return C?{multimodeSequences:{...R.multimodeSequences,[y]:{...C,status:"canceled"}}}:{}}):(r(R=>{const C=R.multimodeSequences[y];return C?{multimodeSequences:{...R.multimodeSequences,[y]:{...C,status:"error",error:j.message}}}:{}}),Zi(j,l()))}finally{const j=l().inFlight.filter(R=>R.id!==y);Gt(j),Ji(y),r(R=>{const C=new Set(R.activeFlightIds);C.delete(y);let A=R.multimodePreviewFlightId;const K=R.multimodeSequences[y]?.status,V=K==="complete"||K==="partial";if(A===y&&!V){const ee=[...C];A=ee.length>0?ee[ee.length-1]:null}const te={...R.multimodeSequences};return V&&A!==y&&delete te[y],{activeGenerations:Math.max(0,R.activeGenerations-1),inFlight:j,activeFlightIds:C,multimodePreviewFlightId:A,multimodeSequences:te}})}}async function E_(a,r,l){const o=l(),c=as(o.prompt,o.insertedPrompts);if(!c)return;const f=o.prompt,p=Ju(o.insertedPrompts),m=a??o.getResolvedSize(),y=`f_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,h=new AbortController;$i(y,h);const x=Date.now(),b=x,v=[...o.inFlight,{id:y,prompt:c,startedAt:x,composerPrompt:f,composerInsertedPrompts:p}];Gt(v),r({activeGenerations:o.activeGenerations+1,inFlight:v}),l().startInFlightPolling();try{const _={prompt:c,quality:o.quality,size:m,format:o.format,moderation:o.moderation,provider:o.provider,n:o.count,model:o.imageModel,reasoningEffort:o.reasoningEffort,storyboard:o.storyboardActive||void 0,webSearchEnabled:o.webSearchEnabled,requestId:y,mode:o.promptMode,composerPrompt:f,composerInsertedPrompts:p,...o.providerUrlReference?{providerUrl:o.providerUrlReference}:o.referenceImages.length?{references:o.referenceImages.map(nd)}:{}},T=await QS(_,{signal:h.signal});if(jh(T)&&T.images.length>1){for(const j of T.images){const R={image:j.image,filename:j.filename,reasoningEffort:T.reasoningEffort,prompt:c,composerPrompt:f,composerInsertedPrompts:p,elapsed:T.elapsed,provider:T.provider,providerUrl:j.providerUrl??null,usage:T.usage,requestId:T.requestId??y,quality:T.quality,size:T.size,model:T.model??null,createdAt:j.createdAt??Date.now()};await Ml(R,r,l,{autoSelectStartedAt:b})}l().showToast(ae("toast.generatedBatch",{count:T.images.length,elapsed:T.elapsed}))}else{let j;if(jh(T)){const R=T.images[0];j={image:R.image,filename:R.filename,reasoningEffort:T.reasoningEffort,prompt:c,composerPrompt:f,composerInsertedPrompts:p,elapsed:T.elapsed,provider:T.provider,providerUrl:R.providerUrl??null,usage:T.usage,requestId:T.requestId??y,quality:T.quality,size:T.size,model:T.model??null,createdAt:R.createdAt??Date.now()}}else j={image:T.image,filename:T.filename,reasoningEffort:T.reasoningEffort,prompt:c,composerPrompt:f,composerInsertedPrompts:p,elapsed:T.elapsed,provider:T.provider,providerUrl:T.providerUrl??null,usage:T.usage,requestId:T.requestId??y,quality:T.quality,size:T.size,model:T.model??null,createdAt:T.createdAt??Date.now()};await Ml(j,r,l,{autoSelectStartedAt:b}),l().showToast(ae("toast.generatedSingle",{elapsed:T.elapsed}))}}catch(_){Yi(_)||Zi(_,l())}finally{const _=l().inFlight.filter(T=>T.id!==y);Gt(_),Ji(y),r({activeGenerations:Math.max(0,l().activeGenerations-1),inFlight:_})}}const Vr="Your video prompt should describe: visual flow, motion flow, sound/no-music intent, dialogue/no-dialogue, and the desired ending frame. Pace the scene to fill the selected duration naturally — opening composition, connected action/emotion change, and a stable ending frame.";function C_(a){const r=a.length<=4?a:[a[0],...a.slice(-3)];return r.map((l,o)=>({...l,ordinal:o+1,role:o===0?"start":o===r.length-1?"parent":"ancestor"}))}function Er(a){return typeof a=="string"&&a.trim()?a.trim():null}function Ey(a){if(a.videoContinuity?.entries?.length)return{...a.videoContinuity,parentFilename:a.filename??a.videoContinuity.parentFilename??null,sourceFrame:"last",entries:C_(a.videoContinuity.entries)};const r=Er(a.revisedPrompt)??Er(a.prompt);if(!r)return null;const l=a.filename??null;return{lineageId:`lineage:${l??Date.now()}`,parentFilename:l,sourceFrame:"last",maxEntries:4,retention:"keep-start-plus-latest-3",entries:[{id:`clip:${l??"unknown"}`,ordinal:1,role:"start",filename:l,userPrompt:Er(a.userPrompt)??Er(a.prompt),revisedPrompt:r,createdAt:a.createdAt??Date.now()}]}}function Pi(a){return{image:a.url||a.image,url:a.url,filename:a.filename,prompt:a.prompt??null,userPrompt:a.userPrompt??null,revisedPrompt:a.revisedPrompt??null,createdAt:a.createdAt,mediaType:a.mediaType,videoContinuity:a.videoContinuity??null}}function w_(a){const r=a.entries[a.entries.length-1];return{id:`video-continuity:${a.lineageId}`,name:"Video Continuity",text:["Video continuity context:","The attached image is the last frame of the previous video.",r?`Continue from previous revisedPrompt #${r.ordinal}: ${r.revisedPrompt}`:null,"The new prompt must define next motion, camera, sound/music/no-music, dialogue/no-dialogue, and ending frame.","Pace the new clip to naturally fill the selected duration with a production-level sequence from the last-frame anchor."].filter(Boolean).join(`
19
+ `)}}function Cy(a){if(!a?.entries?.length)return null;const r=a.entries[a.entries.length-1];return`${a.entries.length}/4 clips · last frame · ${r?.filename??"unsaved source"}`}async function I_(a,r,l){const o=a?l().graphNodes.find(C=>C.id===a):null,c=o?o.data.referenceImages??[]:l().referenceImages,f=Mg(c.length),p=o?o.data.prompt.trim():as(l().prompt,l().insertedPrompts);if(!p.trim()){l().showToast(Vr,!0);return}let m,y,h=o?o.data.videoContinuity??null:l().videoContinuityLineage,x;if(o&&c.length===0&&o.data.parentServerNodeId){const C=l().graphNodes.find(A=>A.data.serverNodeId===o.data.parentServerNodeId);if(C?.data.imageUrl)if(fa(C.data.imageUrl))try{y=await kl(C.data.imageUrl),h=C.data.videoContinuity??Ey({filename:C.data.imageUrl.replace(/^\/generated\//,""),prompt:C.data.prompt,userPrompt:C.data.prompt,revisedPrompt:C.data.prompt,createdAt:Date.now(),videoContinuity:null}),x=C.data.imageUrl.replace(/^\/generated\//,"")}catch{}else m=C.data.imageUrl.replace(/^\/generated\//,"")}const b=Date.now(),v=b,_=`vid_${b}_${Math.random().toString(36).slice(2,6)}`,T=new AbortController;$i(_,T);const j=l().activeSessionId,R=[...l().inFlight,{id:_,prompt:p,startedAt:b,kind:"video",sessionId:j,clientNodeId:a??null}];Gt(R),o&&r({graphNodes:l().graphNodes.map(C=>C.id===a?{...C,data:{...C.data,status:"pending",pendingRequestId:_,pendingPhase:"queued",pendingStartedAt:b,partialImageUrl:null,error:void 0}}:C)}),r({inFlight:R,activeGenerations:R.length,videoProgress:0}),l().startInFlightPolling();try{const C=l().providerUrlReference,A=await Tg({prompt:p,requestId:_,model:typeof l().videoModelSelected=="string"&&l().videoModelSelected||void 0,referenceImages:c.length>=2?c:void 0,sourceImage:c.length===1?c[0]:y,sourceFilename:c.length===0&&!y?m:void 0,continueFromVideo:x,continuityLineage:h,duration:x0(l().videoDuration,f),resolution:l().videoResolution,aspectRatio:l().videoAspectRatio,topic:l().videoTopic||void 0,storyboard:l().storyboardActive||void 0,sessionId:j,clientNodeId:a??null,...C?{providerUrl:C}:{}},{onPlanning:()=>r({inFlight:l().inFlight.map(K=>K.id===_?{...K,phase:"planning"}:K)}),onSubmitted:()=>r({inFlight:l().inFlight.map(K=>K.id===_?{...K,phase:"streaming"}:K)}),onProgress:({progress:K})=>r({videoProgress:K??null})},{signal:T.signal});if(o&&A&&l().activeSessionId===j&&(r({graphNodes:l().graphNodes.map(K=>K.id===a?{...K,data:{...K.data,serverNodeId:A.filename.replace(/\.[^.]+$/,""),imageUrl:A.url,status:"ready",pendingRequestId:null,pendingPhase:null,pendingStartedAt:null,elapsed:A.elapsed??void 0,model:null,videoContinuity:A.videoContinuity??h,video:{...A.video??{},...A.videoSeries?.topic?{topic:A.videoSeries.topic}:{}}}}:K)}),l().scheduleGraphSave(),l().flushGraphSave("video-node-complete")),A){const K={image:A.url,filename:A.filename,url:A.url,mediaType:"video",prompt:p,elapsed:A.elapsed,video:A.video??{},videoSeries:A.videoSeries??null,videoContinuity:A.videoContinuity??null,revisedPrompt:A.revisedPrompt??null,requestId:A.requestId??_,createdAt:Date.now(),sessionId:j};await Ml(K,r,l,{autoSelectStartedAt:v})}}catch(C){if(Yi(C))o&&l().activeSessionId===j&&r({graphNodes:l().graphNodes.map(A=>A.id===a?{...A,data:{...A.data,status:A.data.imageUrl?"ready":"empty",pendingRequestId:null,pendingPhase:null,pendingStartedAt:null,error:void 0}}:A)});else{const A=C instanceof Error?C.message:"Video generation failed";o&&l().activeSessionId===j&&r({graphNodes:l().graphNodes.map(K=>K.id===a?{...K,data:{...K.data,status:"error",pendingRequestId:null,pendingPhase:null,pendingStartedAt:null,error:A}}:K)}),l().showToast(A,!0)}}finally{const C=l().inFlight.filter(A=>A.id!==_);Gt(C),Ji(_),r({inFlight:C,activeGenerations:C.length,videoProgress:null}),l().startInFlightPolling()}}async function M_(a,r,l,o){const c=r?.trim();if(!c)throw o().showToast(Vr,!0),new Error(Vr);const f=Date.now(),p=f,m=`vid_${f}_${Math.random().toString(36).slice(2,6)}`,y=new AbortController;$i(m,y);const h=[...o().inFlight,{id:m,prompt:c,startedAt:f,kind:"video",sessionId:o().activeSessionId,clientNodeId:null}];Gt(h),l({inFlight:h,activeGenerations:h.length,videoProgress:0}),o().startInFlightPolling();try{const x=await Tg({prompt:c,requestId:m,mode:"image-to-video",sourceFilename:a,duration:5,resolution:"480p",aspectRatio:"auto"},{onPlanning:()=>l({inFlight:o().inFlight.map(v=>v.id===m?{...v,phase:"planning"}:v)}),onSubmitted:()=>l({inFlight:o().inFlight.map(v=>v.id===m?{...v,phase:"streaming"}:v)}),onProgress:({progress:v})=>l({videoProgress:v??null})},{signal:y.signal}),b={image:x.url,filename:x.filename,url:x.url,mediaType:"video",prompt:c,elapsed:x.elapsed,video:x.video??{},videoSeries:x.videoSeries??null,videoContinuity:x.videoContinuity??null,revisedPrompt:x.revisedPrompt??null,requestId:x.requestId??m,createdAt:Date.now(),sessionId:o().activeSessionId};await Ml(b,l,o,{autoSelectStartedAt:p})}catch(x){if(!Yi(x)){const b=x instanceof Error?x.message:"Video generation failed";o().showToast(b,!0)}}finally{const x=o().inFlight.filter(b=>b.id!==m);Gt(x),Ji(m),l({inFlight:x,activeGenerations:x.length,videoProgress:null}),o().startInFlightPolling()}}function R_(a,r){if(typeof window>"u")return;const l=window;if(l.__ima2InflightTimer)return;const o=async()=>{const f=r().inFlight.length===0&&r().activeGenerations===0;f?(l.__ima2StopTicks=(l.__ima2StopTicks??0)+1,l.__ima2StopTicks>=2&&l.__ima2InflightTimer&&(clearInterval(l.__ima2InflightTimer),l.__ima2InflightTimer=void 0,l.__ima2StopTicks=0)):l.__ima2StopTicks=0;let p=new Set;if(!f)try{const m=oy(r()),{jobs:y,terminalJobs:h=[]}=await sy(m);p=new Set(y.map(A=>A.requestId));const x=new Map(y.map(A=>[A.requestId,A])),b=new Map(h.map(A=>[A.requestId,A])),v=[];let _=!1;const T=Date.now(),j=5e3,R=[];for(const A of r().inFlight){if(!ry(A,m)){R.push(A);continue}const K=b.get(A.id);if(K){_=!0,K.status==="error"&&v.push(cy(K));continue}if(!x.has(A.id)&&T-A.startedAt>j){_=!0;continue}const V=x.get(A.id);if(V){const te=Br(V),ee={...A,phase:te.phase,sessionId:te.sessionId,parentNodeId:te.parentNodeId,clientNodeId:te.clientNodeId,kind:te.kind};(ee.phase!==A.phase||ee.sessionId!==A.sessionId||ee.parentNodeId!==A.parentNodeId||ee.clientNodeId!==A.clientNodeId||ee.kind!==A.kind)&&(_=!0),R.push(ee)}else R.push(A)}const C=new Set(R.map(A=>A.id));for(const A of y)C.has(A.requestId)||(R.push(Br(A)),_=!0);_&&(Gt(R),a({inFlight:R,activeGenerations:R.length}));for(const A of v)Zi(A,r())}catch{}try{const m=r().history.reduce((v,_)=>_.createdAt&&_.createdAt>v?_.createdAt:v,0),{items:y}=await jl({limit:la,since:m}),h=y.map(Xi);h.length>0&&a(v=>{const _=new Set(v.history.map(na)),T=h.filter(R=>{const C=na(R);return _.has(C)?!1:(_.add(C),!0)});if(T.length===0)return{};const j=v.currentImage??T[0];return!v.currentImage&&T[0]?.filename&&ga(T[0].filename),{history:ns([...T,...v.history],Math.max(la,v.history.length+T.length)),currentImage:j,loadedHistoryRetainLimit:Math.max(v.loadedHistoryRetainLimit,v.history.length+T.length)}});const x=Date.now(),b=r().inFlight.filter(v=>p.has(v.id)||x-v.startedAt<iy);b.length!==r().inFlight.length&&(Gt(b),a({inFlight:b,activeGenerations:b.length}))}catch{}};l.__ima2InflightTimer=window.setInterval(o,1500)}async function O_(a,r){try{const l=oy(r()),{jobs:o,terminalJobs:c=[]}=await sy(l),f=new Map(o.map(_=>[_.requestId,_])),p=new Map(c.map(_=>[_.requestId,_])),m=[],y=Date.now(),h=r().inFlight,b=(h.length>0?h:uy()).flatMap(_=>{const T=f.get(_.id);if(T){const R=Br(T);return[{..._,...R,prompt:_.prompt||R.prompt,phase:_.phase||R.phase}]}if(!ry(_,l))return[_];const j=p.get(_.id);return j?(j.status==="error"&&m.push(cy(j)),[]):y-_.startedAt<1e4?[_]:[]}),v=new Set(b.map(_=>_.id));for(const _ of o)v.has(_.requestId)||b.push(Br(_));Gt(b),a({inFlight:b,activeGenerations:b.length});for(const _ of m)Zi(_,r());b.length>0&&r().startInFlightPolling()}catch{}}const zn=()=>"nc_"+Math.random().toString(36).slice(2,10);function Yh(a,r){return{x:a*360,y:r*320}}const j_=360,wy=320;function k_(a,r,l){const o=new Set(l.filter(c=>c.source===a).map(c=>c.target));return r.filter(c=>o.has(c.id))}function rd(a){const r=a.filter(o=>!o.data.parentServerNodeId);if(r.length===0)return Yh(0,0);const l=Math.max(...r.map(o=>o.position.y));return{x:Yh(0,0).x,y:l+wy}}function Iy(a,r,l){const o=k_(a.id,r,l),c=a.position.x+j_;if(o.length===0)return{x:c,y:a.position.y};const f=Math.max(...o.map(p=>p.position.y));return{x:c,y:f+wy}}const Ui="source-right",Hi="target-left";function os(a,r,l,o){return`${a}:${l??"auto"}->${r}:${o??"auto"}`}function z_(a,r){return a&&a.startsWith(`${r}-`)?a:null}function L_(a){switch(a){case"source-top":return"target-bottom";case"source-right":return"target-left";case"source-bottom":return"target-top";case"source-left":return"target-right";default:return null}}function D_(a,r){const l=zn(),o={id:l,type:"imageNode",position:rd(r().graphNodes),data:{clientId:l,serverNodeId:null,parentServerNodeId:null,prompt:"",imageUrl:null,status:"empty",pendingRequestId:null,pendingPhase:null}};return a({graphNodes:[...r().graphNodes,o]}),r().scheduleGraphSave(),l}function G_(a,r,l){const o=zn(),c={id:o,type:"imageNode",position:rd(l().graphNodes),data:{clientId:o,serverNodeId:a.nodeId??null,parentServerNodeId:null,prompt:a.prompt??"",imageUrl:a.image,status:"ready",pendingRequestId:null,pendingPhase:null,model:a.model??null,size:a.size??null,elapsed:a.elapsed??void 0,video:a.video??null}};return r({uiMode:"node",graphNodes:[...l().graphNodes,c]}),l().scheduleGraphSave(),o}function q_(a,r,l){const o=l().graphNodes.find(m=>m.id===a);if(!o)return a;const c=zn(),f={id:c,type:"imageNode",position:Iy(o,l().graphNodes,l().graphEdges),data:{clientId:c,serverNodeId:null,parentServerNodeId:o.data.serverNodeId,prompt:fa(o.data.imageUrl)&&o.data.prompt||"",imageUrl:null,status:"empty",pendingRequestId:null,pendingPhase:null}},p={id:os(a,c,Ui,Hi),source:a,target:c,sourceHandle:Ui,targetHandle:Hi};if(r({graphNodes:[...l().graphNodes,f],graphEdges:[...l().graphEdges,p]}),l().scheduleGraphSave(),o.data.imageUrl&&fa(o.data.imageUrl)){const m=o.data.imageUrl;o.data.video&&o.data.video.topic&&l().setVideoTopic(o.data.video.topic),(async()=>{try{const y=await kl(m);r({graphNodes:l().graphNodes.map(h=>h.id===c?{...h,data:{...h.data,referenceImages:[y]}}:h)}),l().scheduleGraphSave()}catch{}})()}return c}function P_(a,r,l){const o=l().graphNodes.find(x=>x.id===a);if(!o)return a;const c=l().graphEdges.find(x=>x.target===a);if(!c){const x=zn(),b={id:x,type:"imageNode",position:rd(l().graphNodes),data:{clientId:x,serverNodeId:null,parentServerNodeId:null,prompt:o.data.prompt,imageUrl:null,status:"empty",pendingRequestId:null,pendingPhase:null}};return r({graphNodes:[...l().graphNodes,b]}),l().scheduleGraphSave(),x}const f=c.source,p=l().graphNodes.find(x=>x.id===f);if(!p)return a;const m=zn(),y={id:m,type:"imageNode",position:Iy(p,l().graphNodes,l().graphEdges),data:{clientId:m,serverNodeId:null,parentServerNodeId:o.data.parentServerNodeId,prompt:o.data.prompt,imageUrl:null,status:"empty",pendingRequestId:null,pendingPhase:null}},h={id:os(f,m,Ui,Hi),source:f,target:m,sourceHandle:Ui,targetHandle:Hi};return r({graphNodes:[...l().graphNodes,y],graphEdges:[...l().graphEdges,h]}),l().scheduleGraphSave(),m}function U_(a,r,l,o,c){const f=c().graphNodes.find(b=>b.id===a);if(!f)return a;const p=zn(),m=z_(l,"source")??Ui,y=L_(m)??Hi,h={id:p,type:"imageNode",position:r,data:{clientId:p,serverNodeId:null,parentServerNodeId:f.data.serverNodeId,prompt:"",imageUrl:null,status:"empty",pendingRequestId:null,pendingPhase:null}},x={id:os(a,p,m,y),source:a,target:p,sourceHandle:m,targetHandle:y};return o({graphNodes:[...c().graphNodes,h],graphEdges:[...c().graphEdges,x]}),c().scheduleGraphSave(),p}function H_(a,r,l){const o=l().graphNodes.find(p=>p.id===a);if(!o)return a;const c=zn(),f={id:c,type:"imageNode",position:{x:o.position.x+420,y:o.position.y+40},data:{clientId:c,serverNodeId:null,parentServerNodeId:null,prompt:o.data.prompt,imageUrl:null,status:"empty",pendingRequestId:null,pendingPhase:null}};if(r({graphNodes:[...l().graphNodes,f]}),l().scheduleGraphSave(),o.data.imageUrl){const p=o.data.imageUrl;(async()=>{try{const m=await Qi(p,"node-reference.png");r({graphNodes:l().graphNodes.map(y=>y.id===c?{...y,data:{...y.data,referenceImages:[m]}}:y)})}catch{}})()}return c}function B_(a,r,l,o){l({graphNodes:o().graphNodes.map(c=>c.id===a?{...c,data:{...c.data,prompt:r}}:c)}),o().scheduleGraphSave()}function F_(a,r,l){const c=l().graphNodes.find(m=>m.id===a)?.data?.pendingRequestId;c&&St(c),id(l().activeSessionId,a);const f=l().graphNodes.filter(m=>m.id!==a),p=l().graphEdges.filter(m=>m.source!==a&&m.target!==a);r({graphNodes:cn(f,p),graphEdges:p}),l().scheduleGraphSave()}function V_(a,r,l){const o=new Set(a);for(const p of o)id(l().activeSessionId,p);for(const p of l().graphNodes)o.has(p.id)&&p.data?.pendingRequestId&&St(p.data.pendingRequestId);const c=l().graphNodes.filter(p=>!o.has(p.id)),f=l().graphEdges.filter(p=>!o.has(p.source)&&!o.has(p.target));r({graphNodes:cn(c,f),graphEdges:f}),l().scheduleGraphSave()}function K_(a,r,l){const o=new Set(a);if(o.size===0)return;const c=l().graphEdges.filter(y=>o.has(y.id));if(c.length===0)return;const f=l().graphEdges.filter(y=>!o.has(y.id)),p=new Set(c.map(y=>y.target)),m=l().graphNodes.map(y=>{if(!p.has(y.id))return y;const h=f.find(b=>b.target===y.id),x=h?l().graphNodes.find(b=>b.id===h.source):null;return{...y,data:{...y.data,parentServerNodeId:x?.data.serverNodeId??null}}});r({graphNodes:cn(m,f),graphEdges:f}),l().scheduleGraphSave(),l().flushGraphSave("edge-disconnect"),l().showToast(ae("edge.disconnected"))}function Y_(a,r,l,o,c,f){if(a===r||f().graphEdges.find(h=>h.source===a&&h.target===r))return;if(n_(f().graphEdges,a,r)){f().showToast(ae("edge.parentConflict"),!0);return}if(!f().graphNodes.find(h=>h.id===a))return;const y=[...f().graphEdges,{id:os(a,r,l,o),source:a,target:r,sourceHandle:l,targetHandle:o}];c({graphNodes:cn(f().graphNodes,y),graphEdges:y}),f().scheduleGraphSave()}async function X_(a,r,l,o){const c=o().graphNodes.find(_=>_.id===a);if(!c)return;const f=c.data.referenceImages??[],m=o().referenceLimit-f.length;if(m<=0){o().showToast(ae("toast.refLimitExceeded"),!0);return}const y=r.slice(0,Math.max(0,m)),h=y.filter(Hr),x=y.filter(_=>!Hr(_)),v=(await Promise.all(x.map(async _=>{try{return await td(_,{preserveTransparency:ly(_)})}catch(T){return console.warn("[addNodeReferences] compress failed",T),null}}))).filter(_=>!!_);if(v.length>0){const _=o().activeSessionId;l({graphNodes:o().graphNodes.map(T=>{if(T.id!==a)return T;const j=[...T.data.referenceImages??[],...v].slice(0,o().referenceLimit);return is(_,a,j),{...T,data:{...T.data,referenceImages:j}}})}),o().scheduleGraphSave()}h.length>0&&o().showToast(ae("toast.refHeicUnsupported"),!0),x.length-v.length>0&&o().showToast(ae("toast.refTooLarge"),!0),r.length>m&&o().showToast(ae("toast.refLimitExceeded"),!0)}function My(a,r,l,o){o().graphNodes.find(f=>f.id===a)&&(l({graphNodes:o().graphNodes.map(f=>{if(f.id!==a)return f;const p=f.data.referenceImages??[];if(p.length>=o().referenceLimit)return f;const m=[...p,r];return is(o().activeSessionId,a,m),{...f,data:{...f.data,referenceImages:m}}})}),o().scheduleGraphSave())}async function Q_(a,r,l,o,c){const f=c().graphNodes.find(m=>m.id===a);if(!f)return;if((f.data.referenceImages??[]).length>=c().referenceLimit){c().showToast(ae("toast.refLimitExceeded"),!0);return}let p;try{p=fa(r)||fa(l)?await kl(r):await Qi(r,l||"node-reference.png")}catch{c().showToast(ae("toast.currentImageLoadFailed"),!0);return}My(a,p,o,c)}function Z_(a,r,l,o){l({graphNodes:o().graphNodes.map(c=>{if(c.id!==a)return c;const f=(c.data.referenceImages??[]).filter((p,m)=>m!==r);return is(o().activeSessionId,a,f),{...c,data:{...c.data,referenceImages:f}}})}),o().scheduleGraphSave()}function $_(a,r,l){id(l().activeSessionId,a),r({graphNodes:l().graphNodes.map(o=>o.id===a?{...o,data:{...o.data,referenceImages:void 0}}:o)}),l().scheduleGraphSave()}const Xh=10;function Ry(a,r){return r?r.filename&&a.filename===r.filename?!0:a.image===r.image:!1}function J_(a){return[a.canvasSourceFilename,a.canvasEditableFilename].filter(r=>!!r)}function Dn(a){return a.filter(r=>!r.canvasVersion)}function pa(a,r){if(!r)return null;const l=Dn(a);if(!r.canvasVersion)return l.find(f=>Ry(f,r))??null;const o=J_(r);return l.find(f=>f.filename?o.includes(f.filename):!1)??null}function W_(a,r){const l=Dn(a),o=pa(a,r);return l.findIndex(c=>Ry(c,o))}function eT(a,r,l){const o=Dn(a);if(o.length===0)return null;if(l==="first")return o[0]??null;if(l==="last")return o[o.length-1]??null;const c=W_(a,r);if(c<0)return null;if(l==="pagePrevious"||l==="pageNext"){const p=l==="pagePrevious"?-Xh:Xh,m=Math.max(0,Math.min(o.length-1,c+p));return o[m]??null}const f=l==="previous"?c-1:c+1;return o[f]??null}function Oy(a,r){const l=Dn(a),o=l.findIndex(c=>c.filename===r);return o<0?null:l[o+1]??l[o-1]??null}function bt(a){return a.filename||a.image}function ki(a){return!a.canvasVersion}function Dr(a){const r=new Set;return a.filter(l=>{const o=bt(l);return r.has(o)?!1:(r.add(o),!0)})}const jy=72,Qh=10;function ky(a,r){const l=a.sequenceIndex??Number.MAX_SAFE_INTEGER,o=r.sequenceIndex??Number.MAX_SAFE_INTEGER;return l!==o?l-o:(a.createdAt??0)-(r.createdAt??0)}function tT(a){return a<=1?1:a===2?2:4}function zy(a){const r=new Set,l=new Map,o=[];for(const c of a){if(!ki(c))continue;if(c.sequenceId){const p=`sequence:${c.sequenceId}`;let m=l.get(c.sequenceId);m||(m={type:"sequence",key:p,sequenceId:c.sequenceId,items:[]},l.set(c.sequenceId,m),o.push(m)),m.items.push(c);continue}const f=bt(c);r.has(f)||(r.add(f),o.push({type:"image",key:f,item:c}))}for(const c of l.values())c.items.sort(ky);return o}function Ly(a,r){return r?`sequence:${r}`:a?.sequenceId?`sequence:${a.sequenceId}`:a?bt(a):null}function Ru(a){return a.type==="sequence"?{type:"sequence",sequenceId:a.sequenceId}:{type:"image",item:a.item}}function aT(a,r,l,o,c=jy){const f=zy(a).slice(0,c);if(f.length===0)return null;const p=f[0],m=f[f.length-1];if(!p||!m)return null;if(l==="first")return Ru(p);if(l==="last")return Ru(m);const y=Ly(r,o),h=y?f.findIndex(_=>_.key===y):-1;if(h<0)return null;const x=l==="pagePrevious"?-Qh:l==="pageNext"?Qh:l==="previous"?-1:1,b=Math.max(0,Math.min(f.length-1,h+x));if(b===h)return null;const v=f[b];return v?Ru(v):null}const Dy={promptBuilderSurface:"right-panel",composerPlacement:"sidebar",multimodeHistoryGrouping:"individual",restoreComposerFromHistory:!0,viewerTools:"basic"},nT={promptBuilderSurface:"right-panel",composerPlacement:"bottom",multimodeHistoryGrouping:"sequence",restoreComposerFromHistory:!1,viewerTools:"zoom-pan"},lT={default:Dy,"prompt-studio":nT};function Wi(a,r){return lT[a]??Dy}function iT(a,r){return Wi(a).promptBuilderSurface!=="off"}const oT="history:";function Gy(a,r,l){if(!r||l||!r.startsWith(oT)||!(r in a))return a;const o={...a};return delete o[r],o}function rT(a){const r=a.multimodePreviewFlightId;return r?r.startsWith("history:")?r.slice(8):a.multimodeSequences[r]?.sequenceId??null:null}async function sT(a,r){const l=r().historyNextCursor;if(!(!l||r().historyLoadingOlder)){a({historyLoadingOlder:!0});try{const o=await jl({limit:la,cursor:l}),c=o.items.map(Xi);a(f=>{const p=new Set(f.history.map(y=>y.filename??y.image)),m=c.filter(y=>{const h=y.filename??y.image;return p.has(h)?!1:(p.add(h),!0)});return{history:[...f.history,...m],historyNextCursor:o.nextCursor,historyLoadingOlder:!1,loadedHistoryRetainLimit:Math.max(f.loadedHistoryRetainLimit,f.history.length+m.length)}})}catch{a({historyLoadingOlder:!1}),r().showToast(ae("gallery.loadOlderFailed"),!0)}}}async function cT(a,r){try{const l=await jl({limit:la,favoritesOnly:!0}),o=l.items.map(Xi);a(c=>{const f=py(c.history,o);return{history:f,favoriteHistoryNextCursor:l.nextCursor,loadedHistoryRetainLimit:Math.max(c.loadedHistoryRetainLimit,f.length),galleryFavorites:new Set([...Array.from(c.galleryFavorites),...o.filter(p=>p.filename).map(p=>p.filename)])}})}catch{r().showToast(ae("gallery.loadOlderFailed"),!0)}}async function uT(a,r){const l=r().favoriteHistoryNextCursor;if(!(!l||r().favoriteHistoryLoadingOlder)){a({favoriteHistoryLoadingOlder:!0});try{const o=await jl({limit:la,cursor:l,favoritesOnly:!0}),c=o.items.map(Xi);a(f=>{const p=py(f.history,c);return{history:p,favoriteHistoryNextCursor:o.nextCursor,favoriteHistoryLoadingOlder:!1,loadedHistoryRetainLimit:Math.max(f.loadedHistoryRetainLimit,p.length),galleryFavorites:new Set([...Array.from(f.galleryFavorites),...c.filter(m=>m.filename).map(m=>m.filename)])}})}catch{a({favoriteHistoryLoadingOlder:!1}),r().showToast(ae("gallery.loadOlderFailed"),!0)}}}function dT(a,r,l){const o=Date.now(),c=l().history,f=a.canvasVersion?pa(c,a)??Dn(c)[0]??null:pa(c,a)??a;ga(f?.filename??null);const p=Wi(l().workspaceProfile).restoreComposerFromHistory,m=l().prompt,y=l().insertedPrompts,h=m.trim()!==""||y.length>0,x=p&&f&&!h?z1(f):{},b=l().multimodePreviewFlightId,v=b?l().multimodeSequences[b]:null,_=v&&f&&v.images.some(T=>T.filename===f.filename);r(T=>({currentImage:f,lastHistorySelectedAt:o,unseenGeneratedCount:0,multimodePreviewFlightId:_?b:null,multimodeSequences:Gy(T.multimodeSequences,b,!!_),...x}))}function fT(a,r,l){const o=Date.now(),c=l().history.filter(h=>h.sequenceId===a&&!h.canvasVersion).sort(ky);if(c.length===0)return;const f=`history:${a}`,p=Math.max(c.length,...c.map(h=>h.sequenceTotalRequested??0)),m=c.length,y=c[0]?.sequenceStatus==="empty"?"empty":m>=p?"complete":"partial";ga(null),r(h=>({currentImage:null,lastHistorySelectedAt:o,unseenGeneratedCount:0,canvasOpen:!1,multimodePreviewFlightId:f,multimodeSequences:{...Gy(h.multimodeSequences,h.multimodePreviewFlightId,!1),[f]:{sequenceId:a,requestId:f,requested:p,returned:m,images:c,partials:[],status:y}}}))}function mT(a,r,l){const o=l(),c=Wi(o.workspaceProfile);if(o.uiMode==="classic"&&c.multimodeHistoryGrouping==="sequence"){const p=aT(o.history,o.currentImage,a,rT(o));if(!p)return;if(p.type==="sequence"){l().showHistorySequence(p.sequenceId);return}l().selectHistory(p.item);return}const f=eT(o.history,o.currentImage,a);f&&l().selectHistory(f)}async function pT(a,r,l){const o=a.canvasVersion?pa(l().history,a):a;if(!o||o.canvasVersion||!o.filename){l().showToast(ae("gallery.deleteFailed"),!0);return}const c=o.filename,f=l().currentImage,m=(f?pa(l().history,f)??f:null)?.filename===c,y=m?Oy(l().history,c):f;try{await Ng(c),r(h=>{const x=$1(h.multimodeSequences,c),b=h.multimodePreviewFlightId&&!x[h.multimodePreviewFlightId]?null:h.multimodePreviewFlightId;return{history:h.history.filter(v=>v.filename!==c),currentImage:y,multimodePreviewFlightId:b,multimodeSequences:x,trashPending:null}}),m&&ga(y?.filename??null),l().showToast(ae("gallery.movedToSystemTrash",{filename:c}))}catch(h){console.error("[history] trash failed",h),l().showToast(ae("gallery.deleteFailed"),!0)}}async function hT(a,r,l){const o=l().history.filter(h=>h.sequenceId===a&&!h.canvasVersion&&!!h.filename);if(o.length===0){l().showToast(ae("gallery.deleteFailed"),!0);return}if(!window.confirm(ae("history.deleteSequenceConfirm",{count:o.length})))return;const f=new Set(o.map(h=>h.filename).filter(h=>!!h)),p=l().currentImage,m=!!(p?.filename&&f.has(p.filename)),y=l().multimodePreviewFlightId===`history:${a}`||l().multimodePreviewFlightId===a;try{for(const h of f)await Ng(h);r(h=>{const x={...h.multimodeSequences};return delete x[`history:${a}`],delete x[a],{history:h.history.filter(b=>!b.filename||!f.has(b.filename)),currentImage:m?null:h.currentImage,multimodePreviewFlightId:y?null:h.multimodePreviewFlightId,multimodeSequences:x,trashPending:null}}),m&&ga(null),l().showToast(ae("history.sequenceDeleted",{count:f.size}))}catch(h){console.error("[history] sequence trash failed",h),l().showToast(ae("gallery.deleteFailed"),!0)}}async function gT(a,r){const l=r().trashPending;if(l)try{await n0(l.filename,l.trashId),r().addHistoryItem(l.item),a({trashPending:null})}catch(o){console.error("[history] restore failed",o),r().showToast(ae("gallery.restoreFailed"),!0)}}async function yT(a,r,l){const o=a.canvasVersion?pa(l().history,a):a;if(!o||o.canvasVersion||!o.filename){l().showToast(ae("gallery.deleteFailed"),!0);return}const c=o.filename;if(!window.confirm(ae("result.permanentDeleteConfirm",{filename:c})))return;const p=l().currentImage,y=(p?pa(l().history,p)??p:null)?.filename===c,h=y?Oy(l().history,c):p;try{await a0(c),r(x=>({history:x.history.filter(b=>b.filename!==c),currentImage:h,trashPending:x.trashPending?.filename===c?null:x.trashPending})),y&&ga(h?.filename??null),l().showToast(ae("gallery.permanentDeleted",{filename:c}))}catch(x){console.error("[history] permanent delete failed",x),l().showToast(ae("gallery.deleteFailed"),!0)}}function vT(a,r,l){const o=l(),c=o.history.filter(p=>p.filename!==a),f=o.currentImage&&o.currentImage.filename===a?null:o.currentImage;r({history:c,currentImage:f}),f===null&&ga(null)}function bT(a,r,l){const o=l(),c={...a,createdAt:a.createdAt||Date.now()},f=fy(o.history,c),p=my(c,f),m=dy(o.history,p);r({history:ns([p,...m],o.loadedHistoryRetainLimit+1),loadedHistoryRetainLimit:Math.max(o.loadedHistoryRetainLimit,Math.min(o.history.length+1,o.loadedHistoryRetainLimit+1))})}async function ST(a,r,l){if(!a.type||!/^image\/(png|jpeg|webp)$/.test(a.type))return l().showToast(ae("toast.localImportInvalid"),!0),null;try{const o=await $S(a);return l().addHistoryItem(o),r({currentImage:o,unseenGeneratedCount:0}),o.filename&&ga(o.filename),l().showToast(ae("toast.localImportSuccess")),o}catch{return l().showToast(ae("toast.localImportFailed"),!0),null}}function xT(a,r){(async()=>{try{const l=await jl({limit:la}),o=l.items.map(Xi);if(a({historyNextCursor:l.nextCursor,loadedHistoryRetainLimit:la}),o.length>0){const c=Jg(),f=c?o.find(y=>y.filename===c):null,p=Dn(o),m=(f?pa(o,f):null)??p[0]??null;a({history:o,currentImage:m,historyNextCursor:l.nextCursor,loadedHistoryRetainLimit:Math.max(la,o.length)}),m?.filename!==c&&ga(m?.filename??null)}}catch(l){console.warn("[history] load failed:",l)}})()}async function _T(a,r){try{const{sessions:l}=await i0();if(a({sessions:l}),!r().activeSessionId){const c=B1(),f=c?l.some(p=>p.id===c):!1;c&&f?await r().switchSession(c):await r().createAndSwitchSession(ae("session.firstGraph"))}}catch(l){console.warn("[sessions] load failed:",l)}}async function TT(a,r,l){r({sessionLoading:!0}),await l().flushGraphSave("switch-session");try{const{session:o}=await Ag(a),{graphNodes:c,graphEdges:f,graphVersion:p}=yy(o);r({activeSessionId:a,activeSessionGraphVersion:p,graphNodes:c,graphEdges:f,sessionLoading:!1}),ed(a),await l().reconcileGraphPending().catch(()=>{})}catch(o){console.warn("[sessions] switch failed:",o),r({sessionLoading:!1}),l().showToast(ae("toast.sessionLoadFailed"),!0)}}async function NT(a,r){const l=r().activeSessionId;if(!l)return;if(r().graphNodes.filter(c=>c.data?.pendingRequestId&&(c.data.status==="pending"||c.data.status==="reconciling")).length>0){let c=[];try{c=(await xg({kind:"node",sessionId:l})).jobs}catch{c=[]}const f=new Map(c.map(h=>[h.requestId,h.phase])),p=Date.now(),m=1e4,y=r().graphNodes.map(h=>{const x=h.data?.pendingRequestId;if(!x||h.data.status!=="pending"&&h.data.status!=="reconciling")return h;if(f.has(x)){const _=f.get(x)??null;return{...h,data:{...h.data,status:"reconciling",pendingPhase:_}}}const b=h.data.pendingStartedAt??0;if(b&&p-b<m)return{...h,data:{...h.data,status:"reconciling"}};const v=!!h.data.imageUrl||!!h.data.serverNodeId;return{...h,data:{...h.data,pendingRequestId:null,pendingPhase:null,pendingStartedAt:null,partialImageUrl:null,status:v?"ready":"stale",error:v?void 0:ae("session.assetAbortedError")}}});a({graphNodes:y})}await _y(r,a).catch(()=>{})}async function AT(a,r,l){a==null&&(a=ae("session.untitled"));try{const{session:o}=await o0(a);r({sessions:[o,...l().sessions],activeSessionId:o.id,activeSessionGraphVersion:o.graphVersion,graphNodes:[],graphEdges:[]}),ed(o.id)}catch(o){console.warn("[sessions] create failed:",o),l().showToast(ae("toast.sessionCreateFailed"),!0)}}async function ET(a,r,l){const o=l().activeSessionId;if(o)try{await r0(o,a),r({sessions:l().sessions.map(c=>c.id===o?{...c,title:a,updatedAt:Date.now()}:c)})}catch{l().showToast(ae("toast.sessionRenameFailed"),!0)}}async function CT(a,r,l){try{await s0(a);const o=l().sessions.filter(c=>c.id!==a);r({sessions:o}),l().activeSessionId===a&&(r({activeSessionId:null,activeSessionGraphVersion:null,graphNodes:[],graphEdges:[]}),ed(null),o.length>0?await l().switchSession(o[0].id):await l().createAndSwitchSession(ae("session.firstGraph")))}catch{l().showToast(ae("toast.sessionDeleteFailed"),!0)}}function wT(a,r){const l={},o=r.userPrompt||r.prompt;typeof o=="string"&&(l.prompt=o),ey(r.quality)&&(l.quality=r.quality),ty(r.format)&&(l.format=r.format),ay(r.moderation)&&(l.moderation=r.moderation),(r.promptMode==="auto"||r.promptMode==="direct")&&(l.promptMode=r.promptMode),r.model&&Eg(r.model)&&(l.imageModel=r.model);const c=V1(r.size);return c.preset&&(l.sizePreset=c.preset),c.preset==="custom"&&c.w&&c.h&&(l.customW=ma(c.w,a.customW),l.customH=ma(c.h,a.customH)),l}async function IT(a,r,l){const c=l().referenceLimit-l().referenceImages.length,f=a.slice(0,Math.max(0,c)),p=f.filter(Hr),m=f.filter(x=>!Hr(x)),h=(await Promise.all(m.map(async x=>{try{return await td(x,{preserveTransparency:ly(x)})}catch(b){return console.warn("[addReferences] compress failed",b),null}}))).filter(x=>!!x);r(x=>({referenceImages:[...x.referenceImages,...h].slice(0,x.referenceLimit),providerUrlReference:h.length>0?null:x.providerUrlReference})),p.length>0&&l().showToast(ae("toast.refHeicUnsupported"),!0),m.length-h.length>0&&l().showToast(ae("toast.refTooLarge"),!0),a.length>c&&l().showToast(ae("toast.refLimitExceeded"),!0)}async function MT(a,r,l,o){if(!a.type.startsWith("image/"))return!1;let c="";try{c=await e_(a);const f=await u0({filename:a.name,dataUrl:c});return f.metadata?(l({metadataRestore:{filename:a.name,image:c,metadata:f.metadata,source:f.source??"xmp",targetNodeId:r}}),!0):!1}catch{return o().showToast(ae("metadata.readFailed"),!0),!1}}function RT(a,r){const l=r().metadataRestore;if(!l)return;const o=wT(r(),l.metadata);if(o.imageModel&&Oi(o.imageModel),l.targetNodeId&&typeof o.prompt=="string"){const c=o.prompt;a({...o,metadataRestore:null,graphNodes:r().graphNodes.map(f=>f.id===l.targetNodeId?{...f,data:{...f.data,prompt:c}}:f)}),r().scheduleGraphSave()}else a({...o,metadataRestore:null});r().showToast(ae("metadata.applied"))}function OT(a,r,l){r(o=>{const c=o.referenceImages.filter((m,y)=>y!==a),f=c.length===0,p=f?o.insertedPrompts.filter(m=>!m.id.startsWith("video-continuity:")):o.insertedPrompts;return p.length!==o.insertedPrompts.length&&$e({insertedPrompts:p}),{referenceImages:c,insertedPrompts:p,videoContinuityLineage:f?null:o.videoContinuityLineage,canvasReferenceImage:o.referenceImages[a]===o.canvasReferenceImage?null:o.canvasReferenceImage}})}function jT(a,r){const l=r().insertedPrompts.filter(o=>!o.id.startsWith("video-continuity:"));l.length!==r().insertedPrompts.length&&$e({insertedPrompts:l}),a({referenceImages:[],canvasReferenceImage:null,videoContinuityLineage:null,insertedPrompts:l,providerUrlReference:null})}async function kT(a,r,l,o){let c;try{c=await Qi(o??a.image,a.filename||"canvas-version-reference.png")}catch{throw l().showToast(ae("toast.currentImageLoadFailed"),!0),new Error("canvas_reference_attach_failed")}r(f=>{const m=(f.canvasReferenceImage?f.referenceImages.filter(y=>y!==f.canvasReferenceImage):f.referenceImages).filter(y=>y!==c);return{canvasReferenceImage:c,referenceImages:[c,...m].slice(0,f.referenceLimit),providerUrlReference:null}}),l().showToast(ae("canvas.version.usingAsReference"))}async function zT(a,r){const l=r().currentImage;if(!l){r().showToast(ae("toast.noCurrentImageForRef"),!0);return}if(r().referenceImages.length>=r().referenceLimit){r().showToast(ae("toast.refSlotFull"),!0);return}let o;try{o=await Qi(l.image,l.filename||"current-reference.png")}catch{r().showToast(ae("toast.currentImageLoadFailed"),!0);return}a(c=>({referenceImages:[...c.referenceImages,o].slice(0,c.referenceLimit),providerUrlReference:null})),r().showToast(ae("toast.addedCurrentAsRef"))}async function LT(a,r,l){if(l().referenceImages.length>=l().referenceLimit){l().showToast(ae("toast.refSlotFull"),!0);return}let o;try{o=await Qi(a.image,a.filename||"canvas-reference.png")}catch{l().showToast(ae("toast.currentImageLoadFailed"),!0);return}r(c=>({referenceImages:[...c.referenceImages,o].slice(0,c.referenceLimit),providerUrlReference:null})),l().showToast(ae("toast.addedCurrentAsRef"))}function DT(a,r,l){const o=l.data?.parentServerNodeId;if(o){const f=a.find(p=>p.data?.serverNodeId===o);if(f)return f}const c=r.find(f=>f.target===l.id);return c?a.find(f=>f.id===c.source):void 0}function GT(a){if(a.providerUrlReference)return 1;if(a.uiMode==="node"){const r=a.graphNodes??[],l=r.find(f=>f.selected),o=l?.data?.referenceImages?.length??0;return o>0?o:l&&DT(r,a.graphEdges??[],l)?.data?.imageUrl?1:0}return a.referenceImages?.length??0}function qT(a,r,l){$e({provider:a});const o=l().imageModel;if(!(a==="grok"||a==="grok-api")&&l().videoModelSelected&&(r({videoModelSelected:!1}),wl({model:!1})),(a==="grok"||a==="grok-api")&&!Pr(o)){const f="grok-imagine-image";Oi(f),r({provider:a,imageModel:f})}else if((a==="agy"||a==="gemini-api")&&!Di(o)){const f=a==="gemini-api"?"nano-banana-pro":"nano-banana-2";Oi(f),r({provider:a,imageModel:f})}else a!=="grok"&&a!=="grok-api"&&a!=="agy"&&a!=="gemini-api"&&(Pr(o)||Di(o))?(r({provider:a,imageModel:Gu}),Oi(Gu)):r({provider:a})}function PT(a,r){$e({quality:a}),r({quality:a})}function UT(a,r){$e({sizePreset:a}),r({sizePreset:a})}function HT(a,r,l,o){const c=ma(a,o().customW),f=ma(r,o().customH);$e({customW:c,customH:f}),l({customW:c,customH:f})}function BT(a,r){$e({grokAspectRatio:a}),r({grokAspectRatio:a})}function FT(a,r){$e({grokResolution:a}),r({grokResolution:a})}function VT(a,r){$e({format:a}),r({format:a})}function KT(a,r){$e({moderation:a}),r({moderation:a})}function YT(a,r,l){if(Oi(a),r({videoModelSelected:!1}),wl({model:!1}),Pr(a)){$e({provider:"grok"}),r({provider:"grok",imageModel:a});return}if(Di(a)){const o=l().provider;o!=="agy"&&o!=="gemini-api"?($e({provider:"agy"}),r({provider:"agy",imageModel:a})):r({imageModel:a});return}if(l().provider==="grok"||l().provider==="agy"||l().provider==="gemini-api"){$e({provider:"oauth"}),r({provider:"oauth",imageModel:a});return}r({imageModel:a})}function XT(a,r,l){const o=wg(a)||"grok-imagine-video";r({videoModelSelected:o}),wl({model:o}),l().provider!=="grok"&&l().setProvider("grok")}function QT(a){return GT(a())}function ZT(a,r){P1(a),r({reasoningEffort:a})}function $T(a,r){H1(a),r({webSearchEnabled:a})}function JT(a,r){const l=qi(a);$e({count:l}),r({count:l})}function WT(a,r,l){if(a&&l().uiMode!=="classic")return;$e({multimode:a});const o=l();r({multimode:a,multimodeSequences:a?o.multimodeSequences:{},multimodePreviewFlightId:a?o.multimodePreviewFlightId:null})}function eN(a,r){const l=qi(a);$e({multimodeMaxImages:l}),r({multimodeMaxImages:l})}function tN(a,r){$e({promptMode:a}),r({promptMode:a})}function aN(a,r){$e({prompt:a}),r({prompt:a})}function nN(a){const{provider:r,sizePreset:l,customW:o,customH:c,grokAspectRatio:f,grokResolution:p}=a();return r==="grok"||r==="grok-api"?`grok:${f}:${p}`:l==="custom"?`${o}x${c}`:l}function lN(a,r){r(l=>{const o=l.insertedPrompts.some(p=>p.id===a.id),c={...a,placement:a.placement==="after"?"after":"before"},f=o?l.insertedPrompts:[...l.insertedPrompts,c];return $e({insertedPrompts:f}),{insertedPrompts:f}})}function iN(a,r){r(l=>{const o=l.insertedPrompts.filter(c=>c.id!==a);return $e({insertedPrompts:o}),{insertedPrompts:o,videoContinuityLineage:a.startsWith("video-continuity:")?null:l.videoContinuityLineage}})}function oN(a,r,l){l(o=>{const c=o.insertedPrompts.filter(v=>v.placement!=="after"),f=o.insertedPrompts.filter(v=>v.placement==="after"),p=[...c.map(v=>({kind:"prompt",prompt:v})),{kind:"main"},...f.map(v=>({kind:"prompt",prompt:v}))],m=p.findIndex(v=>v.kind==="prompt"&&v.prompt.id===a);if(m<0)return{};const y=r==="up"?m-1:m+1;if(y<0||y>=p.length)return{};const[h]=p.splice(m,1);p.splice(y,0,h);const x=p.findIndex(v=>v.kind==="main"),b=p.filter(v=>v.kind==="prompt").map((v,_)=>({...v.prompt,placement:_<x?"before":"after"}));return $e({insertedPrompts:b}),{insertedPrompts:b}})}function rN(a){$e({insertedPrompts:[]}),a({insertedPrompts:[],videoContinuityLineage:null})}async function sN(a){a({promptLibraryLoading:!0});try{const r=await d0();a({promptLibrary:{prompts:r.prompts,folders:r.folders},promptLibraryLoading:!1})}catch(r){console.error("[PromptLibrary] load failed",r),a({promptLibraryLoading:!1})}}async function cN(a,r,l){try{await f0(a),await l().loadPromptLibrary(),l().showToast(ae("promptLibrary.saved"))}catch(o){console.error("[PromptLibrary] save failed",o),l().showToast(ae("promptLibrary.saveFailed"),!0)}}async function uN(a,r,l){try{await m0(a),await l().loadPromptLibrary()}catch(o){console.error("[PromptLibrary] delete failed",o)}}async function dN(a,r,l){try{await p0(a),await l().loadPromptLibrary()}catch(o){console.error("[PromptLibrary] favorite toggle failed",o)}}async function fN(a,r,l){try{const o=[];for(const f of a){if(!/\.(txt|md|markdown)$/i.test(f.name))continue;const p=await f.text();if(!p.trim())continue;const m=f.name.replace(/\.(txt|md|markdown)$/i,"");o.push({name:m.trim()||ae("promptLibrary.untitled"),text:p.trim(),tags:[]})}if(o.length===0){l().showToast(ae("promptLibrary.importNoValidFiles"),!0);return}const c=await h0({prompts:o});await l().loadPromptLibrary(),l().showToast(ae("promptLibrary.imported",{count:c.promptsImported}))}catch(o){console.error("[PromptLibrary] import failed",o),l().showToast(ae("promptLibrary.importFailed"),!0)}}async function mN(a,r,l){try{const o=await WS(a);r(c=>{const f=new Set(c.galleryFavorites);return o.isFavorite?f.add(a):f.delete(a),{galleryFavorites:f}}),r(c=>({history:c.history.map(f=>f.filename===a?{...f,isFavorite:o.isFavorite}:f)}))}catch(o){console.error("[GalleryFavorite] toggle failed",o)}}async function pN(a,r){const l=r();if(!as(l.prompt,l.insertedPrompts))return;if(l.videoModelSelected)return r().runVideoGenerate();const c=l.uiMode==="classic"&&l.multimode,f=ls(l,{kind:c?"multimode":"classic"});if(f){a({customSizeConfirm:f});return}if(c){await r().generateMultimode();return}await r().runGenerate()}function hN(a,r){const l=r().multimodePreviewFlightId;l&&(Ay(l),r().cancelInFlightJob(l),a(o=>{const c=o.multimodeSequences[l];return c?{multimodeSequences:{...o.multimodeSequences,[l]:{...c,status:"canceled"}}}:{}}))}async function gN(a,r){const l=r().customSizeConfirm;if(!l)return;const o=F1(l.adjustedW,l.adjustedH);if(a({customW:l.adjustedW,customH:l.adjustedH,customSizeConfirm:null}),l.continuation.kind==="classic"){await r().runGenerate(o);return}if(l.continuation.kind==="multimode"){await r().generateMultimode(o);return}if(l.continuation.kind==="node-in-place"){await r().runGenerateNodeInPlace(l.continuation.clientId,{sizeOverride:o});return}if(l.continuation.kind==="node-variation"){await r().generateNodeVariation(l.continuation.clientId,o);return}await r().runGenerateNode(l.continuation.clientId,o)}async function yN(a,r,l){const o=l().graphNodes.find(p=>p.id===a);if(!o)return;const{prompt:c}=o.data;if(!c.trim()){l().showToast(ae("toast.promptRequired"),!0);return}if(l().videoModelSelected)return l().runVideoGenerate(a);const f=ls(l(),{kind:"node",clientId:a});if(f){r({customSizeConfirm:f});return}await l().runGenerateNode(a)}async function vN(a,r,l){const o=l().graphNodes.find(f=>f.id===a);if(!o)return;if(!o.data.prompt.trim()){l().showToast(ae("toast.promptRequired"),!0);return}if(l().videoModelSelected)return l().runVideoGenerate(a);const c=ls(l(),{kind:"node-in-place",clientId:a});if(c){r({customSizeConfirm:c});return}await l().runGenerateNodeInPlace(a)}async function bN(a,r,l,o){const c=o().graphNodes.find(p=>p.id===a);if(!c)return;if(!c.data.prompt.trim()){o().showToast(ae("toast.promptRequired"),!0);return}if(o().videoModelSelected){const p=o().addSiblingNode(a);return o().runVideoGenerate(p)}if(!r){const p=ls(o(),{kind:"node-variation",clientId:a});if(p){l({customSizeConfirm:p});return}}const f=o().addSiblingNode(a);await o().runGenerateNodeInPlace(f,{sizeOverride:r})}async function SN(a,r,l,o){const f=o().graphNodes.find(p=>p.id===a)?.data.status==="ready"?o().addSiblingNode(a):a;await o().runGenerateNodeInPlace(f,{sizeOverride:r})}async function xN(a,r,l){if(a){Ay(a),r(o=>{const c=o.inFlight.map(f=>f.id===a?{...f,phase:"canceling"}:f);return Gt(c),{inFlight:c}});try{await St(a),l().startInFlightPolling()}catch{l().showToast(ae("toast.cancelFailed"),!0)}}}function _N(a,r){const l=uy(),o=Jg(),c=$g(),f=Wu();a(p=>{const m=o?p.history.find(b=>b.filename===o)??null:null,y=m?pa(p.history,m):null,h=Dn(p.history)[0]??null,x=p.currentImage?.canvasVersion?pa(p.history,p.currentImage)??h:p.currentImage;return{inFlight:l,activeGenerations:l.length,imageModel:c,videoModelSelected:f.model,videoDuration:f.duration,videoResolution:f.resolution,videoAspectRatio:f.aspectRatio,currentImage:o&&x?.filename!==o?y??x:x}}),l.length>0&&r().startInFlightPolling()}function TN(a,r){r(l=>({history:a.filename?l.history.some(o=>o.filename===a.filename)?l.history.map(o=>o.filename===a.filename?a:o):ns([a,...l.history],l.loadedHistoryRetainLimit+1):l.history,loadedHistoryRetainLimit:Math.max(l.loadedHistoryRetainLimit,Math.min(l.history.length+1,l.loadedHistoryRetainLimit+1))}))}function NN(a,r,l){r(o=>o.referenceImages.length>=l().referenceLimit?o:{referenceImages:[...o.referenceImages,a],providerUrlReference:null})}function AN(a,r){const l=r().metadataRestore;l&&(l.targetNodeId?r().addNodeReferenceDataUrl(l.targetNodeId,l.image):r().addReferenceDataUrl(l.image),a({metadataRestore:null}))}function EN(a,r){const l=!r().rightPanelOpen;try{localStorage.setItem(Rg,JSON.stringify(l))}catch{}a({rightPanelOpen:l})}function CN(a,r){try{localStorage.setItem(Qu,a)}catch{}r({galleryScope:a})}function wN(a,r){try{localStorage.setItem(Hg,a),localStorage.setItem(Qu,a)}catch{}r({galleryDefaultScope:a,galleryScope:a})}function IN(a,r){const l=a==="card-news"&&!Yg?"classic":a;try{localStorage.setItem(Og,l)}catch{}r({uiMode:l})}function MN(a,r){try{localStorage.setItem(kg,a)}catch{}r({theme:a,resolvedTheme:kr(a)})}function RN(a,r){try{localStorage.setItem(zg,a)}catch{}r({themeFamily:a})}function ON(a,r){try{localStorage.setItem(jg,a)}catch{}r({historyStripLayout:a})}function jN(a,r,l){const o=Date.now(),c={message:a,error:r,id:o+Math.random(),createdAt:o};l(f=>({toast:c,toastLog:[...f.toastLog,c].slice(-50)}))}function kN(a,r){r(l=>{const o=l.toastLog.filter(c=>c.id!==a);return{toastLog:o,toast:l.toast?.id===a?o[o.length-1]??null:l.toast}})}function zN(a,r,l){const o=Date.now(),c={code:a,fallbackMessage:r?.fallbackMessage,id:o+Math.random(),createdAt:o};l(f=>({errorCard:c,errorCardLog:[...f.errorCardLog,c]}))}function LN(a,r){r(l=>{if(a==null)return{errorCard:null,errorCardLog:[]};const o=l.errorCardLog.filter(c=>c.id!==a);return{errorCardLog:o,errorCard:l.errorCard?.id===a?o[o.length-1]??null:l.errorCard}})}function DN(a,r,l){r({graphNodes:cn(a,l().graphEdges)}),l().scheduleGraphSave()}function GN(a,r,l){r({graphEdges:a,graphNodes:cn(l().graphNodes,a)}),l().scheduleGraphSave()}function qN(a,r){const l=!r().nodeSelectionMode;a({nodeSelectionMode:l,...l?{}:{graphNodes:Gi(r().graphNodes,[])}})}function PN(a,r,l,o){l({graphNodes:T0(o().graphNodes,o().graphEdges,a,r)})}function UN(a,r){r().nodeBatchRunning&&(a({nodeBatchStopping:!0}),r().showToast(ae("nodeBatch.stopQueued")))}function HN(a,r,l){l({canvasPanX:Math.max(-4e3,Math.min(4e3,a)),canvasPanY:Math.max(-4e3,Math.min(4e3,r))})}function BN(a,r,l){r({canvasExportBackground:a}),Zg(a,l().canvasExportMatteColor)}function FN(a,r,l){r({canvasExportMatteColor:a}),Zg(l().canvasExportBackground,a)}const yt=ny(),qy=$g(),Ri=Wu(),VN=Ri.model||Pr(qy)?"grok":(yt.provider??"oauth")==="grok"?"oauth":yt.provider??"oauth",N=bg((a,r)=>({provider:VN,quality:yt.quality??"medium",sizePreset:yt.sizePreset??"1024x1024",customW:yt.customW??1920,customH:yt.customH??1088,grokAspectRatio:yt.grokAspectRatio??"1:1",grokResolution:yt.grokResolution??"1k",format:yt.format??"png",moderation:yt.moderation??"low",count:yt.count??1,multimode:yt.multimode??!1,multimodeMaxImages:yt.multimodeMaxImages??4,multimodeSequences:{},activeFlightIds:new Set,multimodePreviewFlightId:null,promptMode:yt.promptMode??"auto",prompt:yt.prompt??"",insertedPrompts:yt.insertedPrompts??[],referenceImages:[],referenceLimit:ad,providerUrlReference:null,canvasReferenceImage:null,workspaceProfile:(()=>{try{return localStorage.getItem("ima2.workspaceProfile")==="prompt-studio"?"prompt-studio":"default"}catch{return"default"}})(),promptBuilderOpen:!1,storyboardActive:!1,promptLibraryOpen:!1,promptLibrary:{prompts:[],folders:[]},promptLibraryLoading:!1,galleryFavorites:new Set,browserId:Sg(),canvasOpen:!1,canvasZoom:1,canvasPanX:0,canvasPanY:0,canvasExportBackground:Uh().mode,canvasExportMatteColor:Uh().matteColor,syncCapabilities:()=>W1(a),addReferences:l=>IT(l,a,r),addReferenceDataUrl:l=>NN(l,a,r),metadataRestore:null,readDroppedImageMetadata:(l,o=null)=>MT(l,o,a,r),applyMetadataRestore:()=>RT(a,r),cancelMetadataRestore:()=>a({metadataRestore:null}),addMetadataRestoreAsReference:()=>AN(a,r),removeReference:l=>OT(l,a),setProviderUrlReference:l=>a({providerUrlReference:l}),clearReferences:()=>jT(a,r),attachCanvasVersionReference:(l,o)=>kT(l,a,r,o),useCurrentAsReference:()=>zT(a,r),useImageAsReference:l=>LT(l,a,r),activeGenerations:0,unseenGeneratedCount:0,inFlight:[],cancelInFlightJob:l=>xN(l,a,r),startInFlightPolling:()=>{R_(a,r)},reconcileInflight:async()=>{await O_(a,r)},syncFromStorage:()=>_N(a,r),currentImage:null,lastHistorySelectedAt:0,applyMergedCanvasImage:l=>TN(l,a),addGeneratedHistoryItem:async l=>{await Ml(l,a,r)},history:[],historyNextCursor:null,historyLoadingOlder:!1,favoriteHistoryNextCursor:null,favoriteHistoryLoadingOlder:!1,loadedHistoryRetainLimit:la,loadOlderHistory:async()=>sT(a,r),loadFavoriteHistory:async()=>cT(a,r),loadOlderFavoriteHistory:async()=>uT(a,r),trashPending:null,toast:null,toastLog:[],customSizeConfirm:null,errorCard:null,errorCardLog:[],rightPanelOpen:L1(),toggleRightPanel:()=>EN(a,r),composeSheetOpen:!1,composeSheetTab:"prompt",openComposeSheet:(l="prompt")=>a({composeSheetOpen:!0,composeSheetTab:l}),setComposeSheetTab:l=>a({composeSheetTab:l}),closeComposeSheet:()=>a({composeSheetOpen:!1}),galleryOpen:!1,openGallery:()=>a(l=>({galleryOpen:!0,galleryScope:l.galleryDefaultScope})),closeGallery:()=>a({galleryOpen:!1}),galleryScope:Ph(Qu),galleryDefaultScope:Ph(Hg),setGalleryScope:l=>CN(l,a),setGalleryDefaultScope:l=>wN(l,a),imageModel:qy,reasoningEffort:q1(),webSearchEnabled:U1(),settingsOpen:!1,activeSettingsSection:"account",readinessPopupOpen:!1,openSettings:(l="account")=>a({settingsOpen:!0,activeSettingsSection:l}),closeSettings:()=>a({settingsOpen:!1}),toggleSettings:()=>a(l=>({settingsOpen:!l.settingsOpen,activeSettingsSection:l.settingsOpen?l.activeSettingsSection:"account"})),setActiveSettingsSection:l=>a({activeSettingsSection:l}),openReadinessPopup:()=>a({readinessPopupOpen:!0}),closeReadinessPopup:()=>a({readinessPopupOpen:!1}),uiMode:D1(),setUIMode:l=>IN(l,a),theme:Iu(),resolvedTheme:kr(Iu()),themeFamily:qh(),historyStripLayout:G1(),setTheme:l=>MN(l,a),setThemeFamily:l=>RN(l,a),setHistoryStripLayout:l=>ON(l,a),syncThemeFromStorage:()=>{const l=Iu();a({theme:l,resolvedTheme:kr(l)})},syncThemeFamilyFromStorage:()=>{a({themeFamily:qh()})},refreshResolvedTheme:()=>{a(l=>({resolvedTheme:kr(l.theme)}))},locale:d1(),setLocale:l=>{f1(l),a({locale:l})},graphNodes:[],graphEdges:[],setGraphNodes:l=>DN(l,a,r),setGraphEdges:l=>GN(l,a,r),disconnectEdge:l=>{r().disconnectEdges([l])},disconnectEdges:l=>K_(l,a,r),nodeSelectionMode:!1,nodeBatchRunning:!1,nodeBatchStopping:!1,toggleNodeSelectionMode:()=>qN(a,r),selectAllGraphNodes:()=>{a({graphNodes:Gi(r().graphNodes,r().graphNodes.map(l=>l.id))})},selectNodeGraph:(l,o)=>PN(l,o,a,r),clearNodeSelection:()=>{a({graphNodes:Gi(r().graphNodes,[])})},cancelNodeBatch:()=>UN(a,r),sessions:[],activeSessionId:null,activeSessionGraphVersion:null,sessionLoading:!1,async loadSessions(){await _T(a,r)},async switchSession(l){await TT(l,a,r)},async reconcileGraphPending(){await NT(a,r)},async createAndSwitchSession(l){await AT(l,a,r)},async renameCurrentSession(l){await ET(l,a,r)},async deleteSessionById(l){await CT(l,a,r)},scheduleGraphSave(){Ny(r,a)},async flushGraphSave(l="manual"){await f_(r,a,l)},addRootNode:()=>D_(a,r),createRootNodeFromHistoryItem:l=>G_(l,a,r),addChildNode:l=>q_(l,a,r),addSiblingNode:l=>P_(l,a,r),updateNodePrompt:(l,o)=>B_(l,o,a,r),addNodeReferences:async(l,o)=>X_(l,o,a,r),addNodeReferenceDataUrl:(l,o)=>My(l,o,a,r),addNodeReferenceFromUrl:async(l,o,c)=>Q_(l,o,c,a,r),removeNodeReference:(l,o)=>Z_(l,o,a,r),clearNodeReferences:l=>$_(l,a,r),duplicateBranchRoot:l=>H_(l,a,r),generateNode:l=>yN(l,a,r),generateNodeInPlace:l=>vN(l,a,r),generateNodeVariation:(l,o)=>bN(l,o,a,r),runGenerateNode:(l,o)=>SN(l,o,a,r),async runGenerateNodeInPlace(l,o={}){return T_(l,o,a,r,Gt)},async runNodeBatch(l){await N_(l,a,r)},deleteNode:l=>F_(l,a,r),deleteNodes:l=>V_(l,a,r),addChildNodeAt:(l,o,c)=>U_(l,o,c,a,r),connectNodes:(l,o,c,f)=>Y_(l,o,c,f,a,r),setProvider:l=>qT(l,a,r),setQuality:l=>PT(l,a),setSizePreset:l=>UT(l,a),setCustomSize:(l,o)=>HT(l,o,a,r),setGrokAspectRatio:l=>BT(l,a),setGrokResolution:l=>FT(l,a),setFormat:l=>VT(l,a),setModeration:l=>KT(l,a),setImageModel:l=>YT(l,a,r),videoModelSelected:Ri.model,videoDuration:Ri.duration,videoResolution:Ri.resolution,videoAspectRatio:Ri.aspectRatio,videoTopic:"",videoContinuityLineage:null,videoProgress:null,selectVideoModel:l=>XT(l,a,r),setVideoDuration:l=>{a({videoDuration:l}),wl({duration:l})},setVideoResolution:l=>{a({videoResolution:l}),wl({resolution:l})},setVideoAspectRatio:l=>{a({videoAspectRatio:l}),wl({aspectRatio:l})},setVideoTopic:l=>a({videoTopic:l}),setVideoContinuityLineage:l=>a({videoContinuityLineage:l}),activeVideoRefCount:()=>QT(r),runVideoGenerate:async l=>{await I_(l,a,r)},animateImage:async(l,o)=>{await M_(l,o,a,r)},setReasoningEffort:l=>ZT(l,a),setWebSearchEnabled:l=>$T(l,a),setCount:l=>JT(l,a),setMultimode:l=>WT(l,a,r),setMultimodeMaxImages:l=>eN(l,a),setPromptMode:l=>tN(l,a),setPrompt:l=>aN(l,a),insertPromptToComposer:l=>lN(l,a),removeInsertedPromptFromComposer:l=>iN(l,a),moveInsertedPromptInComposer:(l,o)=>oN(l,o,a),clearInsertedPrompts:()=>rN(a),selectHistory:l=>dT(l,a,r),showHistorySequence:l=>fT(l,a,r),markGeneratedResultsSeen:()=>a({unseenGeneratedCount:0}),selectHistoryShortcutTarget:l=>mT(l,a,r),trashHistoryItem:async l=>pT(l,a,r),trashHistorySequence:async l=>hT(l,a,r),restorePendingTrash:async()=>gT(a,r),clearPendingTrash:()=>a({trashPending:null}),permanentlyDeleteHistoryItemByClick:async l=>{await r().permanentlyDeleteHistoryItemByShortcut(l)},permanentlyDeleteHistoryItemByShortcut:async l=>yT(l,a,r),removeFromHistory:l=>vT(l,a,r),addHistoryItem:l=>bT(l,a,r),importLocalImageToHistory:async l=>ST(l,a,r),getResolvedSize:()=>nN(r),generate:()=>pN(a,r),async generateMultimode(l){await A_(l,a,r)},cancelMultimode:()=>hN(a,r),async runGenerate(l){await E_(l,a,r)},confirmCustomSizeAdjustment:()=>gN(a,r),cancelCustomSizeAdjustment:()=>a({customSizeConfirm:null}),hydrateHistory(){xT(a)},showToast:(l,o=!1)=>jN(l,o,a),dismissToast:l=>kN(l,a),showErrorCard:(l,o)=>zN(l,o,a),dismissErrorCard:l=>LN(l,a),setWorkspaceProfile(l){a({workspaceProfile:l});try{localStorage.setItem("ima2.workspaceProfile",l)}catch{}},togglePromptBuilder(){a(l=>({promptBuilderOpen:!l.promptBuilderOpen}))},toggleStoryboard(){a(l=>({storyboardActive:!l.storyboardActive}))},setPromptLibraryOpen(l){a({promptLibraryOpen:l})},togglePromptLibrary(){a(l=>({promptLibraryOpen:!l.promptLibraryOpen}))},loadPromptLibrary:()=>sN(a),savePromptToLibrary:l=>cN(l,a,r),deletePromptFromLibrary:l=>uN(l,a,r),togglePromptFavorite:l=>dN(l,a,r),importPromptsToLibrary:l=>fN(l,a,r),toggleGalleryFavorite:l=>mN(l,a),openCanvas:()=>a({canvasOpen:!0,canvasZoom:1,canvasPanX:0,canvasPanY:0}),closeCanvas:()=>a({canvasOpen:!1}),setCanvasZoom:l=>a({canvasZoom:Math.max(.5,Math.min(3,l))}),resetCanvasZoom:()=>a({canvasZoom:1,canvasPanX:0,canvasPanY:0}),setCanvasPan:(l,o)=>HN(l,o,a),resetCanvasPan:()=>a({canvasPanX:0,canvasPanY:0}),setCanvasExportBackground:l=>BN(l,a,r),setCanvasExportMatteColor:l=>FN(l,a,r)}));function KN(){const{t:a}=ye(),r=N(o=>o.uiMode),l=N(o=>o.setUIMode);return d.jsxs("div",{className:"ui-mode-switch",role:"tablist","aria-label":a("uiMode.ariaLabel"),children:[d.jsx("button",{type:"button",role:"tab","aria-selected":r==="classic",className:`ui-mode-switch__tab${r==="classic"?" active":""}`,onClick:()=>l("classic"),children:a("uiMode.classic")}),d.jsx("button",{type:"button",role:"tab","aria-selected":r==="node",className:`ui-mode-switch__tab${r==="node"?" active":""}`,onClick:()=>l("node"),children:a("uiMode.node")}),null,d.jsx("button",{type:"button",role:"tab","aria-selected":r==="agent",className:`ui-mode-switch__tab${r==="agent"?" active":""}`,onClick:()=>l("agent"),children:a("uiMode.agent")})]})}function YN({text:a,mode:r,onClose:l}){const{t:o}=ye(),c=N(T=>T.savePromptToLibrary),[f,p]=z.useState(a.slice(0,30)),[m,y]=z.useState(a),[h,x]=z.useState(""),[b,v]=z.useState(!1),_=async()=>{m.trim()&&(v(!0),await c({name:f.trim()||m.slice(0,30),text:m.trim(),tags:h.split(",").map(T=>T.trim()).filter(Boolean),mode:r||void 0}),v(!1),l())};return d.jsxs("div",{className:"save-prompt-popover",onClick:T=>T.stopPropagation(),children:[d.jsxs("div",{className:"save-prompt-popover__header",children:[d.jsx("span",{children:o("promptLibrary.saveTitle")}),d.jsx("button",{className:"save-prompt-popover__close",onClick:l,"aria-label":o("common.close"),children:"×"})]}),d.jsxs("div",{className:"save-prompt-popover__body",children:[d.jsxs("label",{children:[o("promptLibrary.name"),d.jsx("input",{type:"text",value:f,onChange:T=>p(T.target.value),placeholder:m.slice(0,30)})]}),d.jsxs("label",{children:[o("promptLibrary.content"),d.jsx("textarea",{value:m,onChange:T=>y(T.target.value),placeholder:"Enter prompt...",rows:4,autoFocus:!0})]}),d.jsxs("label",{children:[o("promptLibrary.tags"),d.jsx("input",{type:"text",value:h,onChange:T=>x(T.target.value),placeholder:"cta, product, summer"})]})]}),d.jsx("div",{className:"save-prompt-popover__footer",children:d.jsx("button",{onClick:_,disabled:b||!m.trim(),className:"save-prompt-popover__save",children:o(b?"common.saving":"promptLibrary.save")})})]})}function XN({variant:a="label"}){const{t:r}=ye(),l=N(f=>f.webSearchEnabled),o=N(f=>f.setWebSearchEnabled),c=r(l?"settings.webSearch.on":"settings.webSearch.off");return d.jsx("button",{type:"button",className:`${a==="compact"?"composer__tool ":""}web-search-toggle web-search-toggle--${a}${l?" is-active":""}`,onClick:()=>o(!l),"aria-pressed":l,"aria-label":c,title:c,children:a==="compact"?d.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[d.jsx("circle",{cx:"12",cy:"12",r:"10"}),d.jsx("path",{d:"M2 12h20"}),d.jsx("path",{d:"M12 2a15.3 15.3 0 0 1 0 20"}),d.jsx("path",{d:"M12 2a15.3 15.3 0 0 0 0 20"})]}):d.jsx("span",{children:c})})}async function sd(a){const r=N.getState(),l=$t(a),o=!!a.prompt;if(r.clearReferences(),r.setPrompt(o&&!l?a.prompt:""),l){const c=a.url||a.image,f=await kl(c);r.addReferenceDataUrl(f);const p=Ey(a);r.setVideoContinuityLineage(p),p&&r.insertPromptToComposer(w_(p)),a.videoSeries?.topic&&r.setVideoTopic(a.videoSeries.topic),r.videoModelSelected||r.selectVideoModel("grok-imagine-video-1.5")}else await r.useImageAsReference(a);return{ok:!0,isVideo:l,hasPrompt:o}}async function QN(a){const r=await sd(a);return a.providerUrl&&N.getState().setProviderUrlReference(a.providerUrl),r}function ZN(a){const r=Number.parseFloat(a);return Number.isFinite(r)&&r>0?r:null}function cd({variant:a="sidebar"}){const r=N(B=>B.prompt),l=N(B=>B.setPrompt),o=N(B=>B.insertedPrompts),c=N(B=>B.removeInsertedPromptFromComposer),f=N(B=>B.moveInsertedPromptInComposer),p=N(B=>B.generate),{t:m}=ye(),y=N(B=>B.referenceImages),h=N(B=>B.referenceLimit),x=N(B=>B.providerUrlReference),b=N(B=>B.setProviderUrlReference),v=N(B=>B.addReferences),_=N(B=>B.addReferenceDataUrl),T=N(B=>B.useImageAsReference),j=N(B=>B.readDroppedImageMetadata),R=N(B=>B.removeReference),C=N(B=>B.currentImage),A=N(B=>B.videoModelSelected),K=N(B=>B.selectVideoModel),V=N(B=>B.setImageModel),te=N(B=>B.storyboardActive),ee=N(B=>B.toggleStoryboard),I=z.useRef(null),le=z.useRef(null),[Ce,Be]=z.useState(!1),[De,we]=z.useState(!1),Ie=N(B=>B.promptMode),W=N(B=>B.setPromptMode),G=N(B=>B.multimode),L=N(B=>B.multimodeMaxImages),D=Ie==="direct",J=o.filter(B=>B.placement!=="after"),se=o.filter(B=>B.placement==="after"),me=[...J.map(B=>B.id),"__main_prompt__",...se.map(B=>B.id)],w=y.length<h,k=G?y.length>0?m("multimode.promptPlaceholderWithRefs"):m("multimode.promptPlaceholder"):y.length>0?m("prompt.placeholderWithRefs"):m("prompt.placeholder"),Q=async B=>{B.length!==0&&(B.length===1&&await j(B[0])||await v(B))},ne=async B=>{try{const xe=B.url||B.image;if(!xe)return;const He={image:xe,url:B.url,filename:B.filename};if($t(He)){const ct=await kl(xe);ct&&_(ct)}else await T(He)}catch{}},ce=B=>{B.preventDefault(),Be(!1);const xe=B.dataTransfer.getData("application/ima2-ref");if(xe){try{const ct=JSON.parse(xe);ne(ct)}catch{}return}const He=Array.from(B.dataTransfer.files).filter(ct=>ct.type.startsWith("image/"));He.length>0&&Q(He)},de=B=>{B.preventDefault(),Ce||Be(!0)},he=B=>{B.currentTarget.contains(B.relatedTarget)||Be(!1)},je=B=>{if(!B)return[];const xe=[];for(const He of Array.from(B)){if(He.kind!=="file"||!He.type.startsWith("image/"))continue;const ct=He.getAsFile();ct&&xe.push(ct)}return xe},$=B=>{if(!w)return;const xe=je(B.clipboardData?.items??null);if(xe.length===0)return;B.preventDefault();const He=h-y.length;v(xe.slice(0,He))},Xe=z.useRef(null),lt=z.useRef(a);z.useLayoutEffect(()=>{const B=le.current;if(!B)return;(Xe.current===null||lt.current!==a)&&(Xe.current=ZN(window.getComputedStyle(B).maxHeight)??0,lt.current=a),B.style.height="auto";const xe=Xe.current,He=xe?Math.min(B.scrollHeight,xe):B.scrollHeight;B.style.height=`${He}px`},[r,a]),z.useEffect(()=>{const B=xe=>{const He=xe.target,ct=He?.tagName;if(ct==="INPUT"||ct==="TEXTAREA"||He?.isContentEditable)return;const Jt=je(xe.clipboardData?.items??null);if(Jt.length===0||y.length>=h)return;xe.preventDefault();const un=h-y.length;v(Jt.slice(0,un))};return window.addEventListener("paste",B),()=>window.removeEventListener("paste",B)},[y.length,h,v]);const ia=(B,xe)=>{const He=me.indexOf(B);return He<0?!1:xe==="up"?He>0:He<me.length-1},ya=B=>d.jsxs("div",{className:"composer__prompt-chip",title:B.name,children:[d.jsx("span",{className:"composer__prompt-chip-plus","aria-hidden":"true",children:"+"}),d.jsx("span",{className:"composer__prompt-chip-title",children:B.name}),d.jsxs("div",{className:"composer__prompt-chip-actions",children:[d.jsx("button",{type:"button",className:"composer__prompt-chip-move",onClick:()=>f(B.id,"up"),disabled:!ia(B.id,"up"),"aria-label":m("prompt.moveBlockUp",{name:B.name}),title:m("prompt.moveBlockUp",{name:B.name}),children:"^"}),d.jsx("button",{type:"button",className:"composer__prompt-chip-move",onClick:()=>f(B.id,"down"),disabled:!ia(B.id,"down"),"aria-label":m("prompt.moveBlockDown",{name:B.name}),title:m("prompt.moveBlockDown",{name:B.name}),children:"v"}),d.jsx("button",{type:"button",className:"composer__prompt-chip-remove",onClick:()=>c(B.id),"aria-label":m("promptLibrary.removeInserted",{name:B.name}),children:"x"})]})]},B.id);return d.jsxs("div",{className:`composer composer--${a}${Ce?" composer--drag":""}${D?" composer--direct":""}${G?" composer--multimode":""}${D&&G?" composer--combined-modes":""}`,role:"group","aria-label":G?m("multimode.composerAriaLabel",{count:L}):m("prompt.label"),onDrop:ce,onDragOver:de,onDragLeave:he,onPaste:$,children:[d.jsxs("div",{className:"composer__header",children:[d.jsx("span",{className:"section-title composer__label",children:m("prompt.label")}),d.jsxs("div",{className:"composer__header-meta",children:[G&&d.jsx("span",{className:"composer__mode-badge",children:m("multimode.composerBadge",{count:L})}),D&&d.jsx("span",{className:"composer__direct-badge",children:m("prompt.directModeActive")}),x&&d.jsxs("button",{type:"button",className:"composer__url-ref-badge",onClick:()=>b(null),title:m("prompt.urlRefActiveTitle"),"aria-label":m("prompt.urlRefClear"),children:[d.jsx("span",{className:"composer__url-ref-dot","aria-hidden":"true"}),m("prompt.urlRefActive")]}),y.length>0&&d.jsx("span",{className:"composer__count",children:m("prompt.refCount",{count:y.length,max:h})})]})]}),y.length>0&&d.jsx("div",{className:"composer__chips",children:y.map((B,xe)=>d.jsxs("div",{className:"composer__chip",title:m("prompt.refChipTitle",{n:xe+1}),children:[d.jsx("img",{src:B,alt:m("prompt.refChipAlt",{n:xe+1}),loading:"lazy",decoding:"async"}),d.jsx("button",{type:"button",className:"composer__chip-remove",onClick:()=>R(xe),"aria-label":m("prompt.refRemoveAria",{n:xe+1}),children:"×"})]},xe))}),J.length>0&&d.jsx("div",{className:"composer__prompt-chips",children:J.map(ya)}),d.jsx("textarea",{ref:le,className:"prompt-area composer__textarea",value:r,placeholder:k,onChange:B=>l(B.target.value),onKeyDown:B=>{B.key==="Enter"&&(B.metaKey||B.ctrlKey)&&(B.preventDefault(),p())}}),se.length>0&&d.jsxs("div",{className:"composer__prompt-chips composer__prompt-chips--after",children:[d.jsx("span",{className:"composer__prompt-chips-label",children:m("prompt.afterBlocks")}),se.map(ya)]}),d.jsx("div",{className:"composer__hint-row",children:d.jsx("span",{className:"composer__hint",children:m("prompt.hint")})}),d.jsxs("div",{className:"composer__toolbar",children:[d.jsx("button",{type:"button",className:"composer__tool",onClick:()=>w&&I.current?.click(),disabled:!w,title:m("prompt.attachTitle"),"aria-label":m("prompt.attachTitle"),children:d.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:d.jsx("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),d.jsx("button",{type:"button",className:"composer__tool",onClick:()=>C&&void sd(C).catch(()=>{}),disabled:!C||!w,title:m("prompt.continueTitle"),children:m("prompt.continue")}),d.jsxs("button",{type:"button",className:`composer__tool${A?" composer__tool--on":""}`,onClick:()=>{A?V("gpt-5.5"):K("grok-imagine-video-1.5")},title:m("prompt.videoToggleTitle"),"aria-label":m("prompt.videoToggleTitle"),"aria-pressed":!!A,children:[d.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[d.jsx("polygon",{points:"23 7 16 12 23 17 23 7"}),d.jsx("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"})]}),d.jsx("span",{className:"sr-only",children:"Video"})]}),d.jsx("button",{type:"button",className:`composer__tool${D?" composer__tool--on":""}`,onClick:()=>W(D?"auto":"direct"),title:m("prompt.directModeTitle"),"aria-label":m("prompt.directModeTitle"),"aria-pressed":D,children:d.jsx("span",{"aria-hidden":"true",style:{fontWeight:700,fontSize:11},children:"1:1"})}),d.jsx(XN,{variant:"compact"}),d.jsxs("div",{className:"composer__tool-wrap",children:[d.jsx("button",{type:"button",className:"composer__tool composer__tool--full",onClick:()=>we(B=>!B),disabled:!r.trim(),title:m("promptLibrary.saveTitle"),"aria-label":m("promptLibrary.saveTitle"),children:m("prompt.savePrompt")}),De&&d.jsx(YN,{text:r,mode:Ie,onClose:()=>we(!1)})]})]}),d.jsx("div",{className:"composer__storyboard-row",children:d.jsx("button",{type:"button",className:`composer__tool composer__tool--storyboard${te?" composer__tool--on":""}`,onClick:ee,title:m("prompt.storyboardTitle"),"aria-pressed":te,children:m("prompt.storyboard")})}),Ce&&d.jsx("div",{className:"composer__dropzone","aria-hidden":"true",children:m("prompt.dropHere",{max:h})}),d.jsx("input",{ref:I,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:B=>{const xe=Array.from(B.target.files??[]);xe.length>0&&Q(xe),B.target.value=""}})]})}function ud(){const a=N(f=>f.activeGenerations),r=N(f=>f.generate),l=N(f=>f.openReadinessPopup),{t:o}=ye(),c=a>0;return d.jsxs("div",{className:"generate-row",children:[d.jsxs("button",{type:"button",className:`generate-btn${c?" generate-btn--active":""}`,onClick:()=>{r()},children:[o("generate.button"),c?d.jsx("span",{className:"generate-btn__count","aria-label":o("generate.buttonLoading",{n:a}),children:a}):null]}),d.jsx("button",{type:"button",className:"generate-row__readiness",onClick:l,title:o("readiness.openTitle"),"aria-label":o("readiness.openTitle"),children:"?"})]})}function $N(a,r=28){const l=a.trim().replace(/\s+/g," ");return l.length>r?`${l.slice(0,r)}...`:l}function Gr(){const a=N(f=>f.inFlight),r=N(f=>f.cancelInFlightJob),l=N(f=>f.videoProgress),{t:o}=ye(),c={queued:o("inflight.queued"),planning:o("inflight.planning"),streaming:o("inflight.streaming"),decoding:o("inflight.decoding"),canceling:o("inflight.canceling")};return a.length===0?null:d.jsx("ul",{className:"in-flight-list",children:a.map(f=>{const p=f.phase?c[f.phase]??f.phase:o("inflight.queued"),y=f.prompt.trim().replace(/\s+/g," ")||o("inflight.noPrompt");return d.jsxs("li",{className:"in-flight-item","data-phase":f.phase??"queued",title:y,"aria-label":`${p}: ${y}`,children:[d.jsx("span",{className:"in-flight-prompt",children:$N(f.prompt)}),d.jsx("span",{className:"in-flight-phase",children:f.kind==="video"&&l!=null&&l>0?`${Math.round(l*100)}%`:p}),d.jsx("button",{type:"button",className:"in-flight-cancel",onClick:()=>{r(f.id)},disabled:f.phase==="canceling","aria-label":o("inflight.cancelAria",{prompt:y}),title:o("common.cancel"),children:"×"}),d.jsx("span",{className:"in-flight-spinner","aria-hidden":"true"})]},f.id)})})}function JN(){const{t:a}=ye(),r=N(v=>v.sessions),l=N(v=>v.activeSessionId),o=N(v=>v.switchSession),c=N(v=>v.createAndSwitchSession),f=N(v=>v.renameCurrentSession),p=N(v=>v.deleteSessionById),[m,y]=z.useState(!1),h=r.find(v=>v.id===l),x=()=>{const v=window.prompt(a("session.renamePrompt"),h?.title??a("session.newSession"));v&&v.trim()&&f(v.trim())},b=(v,_)=>{window.confirm(a("session.deleteConfirm",{title:_}))&&p(v)};return d.jsxs("div",{className:"session-picker",children:[d.jsxs("div",{className:"session-picker-row",children:[d.jsxs("button",{type:"button",className:"session-current",onClick:()=>y(v=>!v),title:a("session.switchTitle"),children:[d.jsx("span",{className:"session-title",children:h?.title??a("session.loading")}),d.jsx("span",{className:"session-caret",children:m?"▴":"▾"})]}),d.jsx("button",{type:"button",className:"session-btn",onClick:()=>{c(a("session.newSession"))},title:a("session.newSessionTitle"),children:"+"}),d.jsx("button",{type:"button",className:"session-btn",onClick:x,title:a("session.renameTitle"),disabled:!h,children:"✎"})]}),m&&d.jsxs("ul",{className:"session-list",children:[r.map(v=>d.jsxs("li",{className:v.id===l?"is-active":"",children:[d.jsxs("button",{type:"button",className:"session-item",onClick:()=>{y(!1),o(v.id)},children:[d.jsx("span",{className:"session-item-title",children:v.title}),d.jsx("span",{className:"session-item-count",children:v.nodeCount})]}),d.jsx("button",{type:"button",className:"session-del",onClick:()=>b(v.id,v.title),title:a("session.deleteTitle"),children:"×"})]},v.id)),r.length===0&&d.jsx("li",{className:"session-empty",children:a("session.empty")})]})]})}function WN(){const{t:a}=ye(),r=N(o=>o.settingsOpen),l=N(o=>o.toggleSettings);return d.jsx("button",{type:"button",className:`settings-button${r?" is-active":""}`,onClick:l,"aria-label":a("settings.openAria"),"aria-pressed":r,title:a("settings.openTitle"),children:d.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:[d.jsx("path",{d:"M12 8.2a3.8 3.8 0 1 0 0 7.6 3.8 3.8 0 0 0 0-7.6Zm0 5.7a1.9 1.9 0 1 1 0-3.8 1.9 1.9 0 0 1 0 3.8Z"}),d.jsx("path",{d:"m20.3 13.4.1-1.4-.1-1.4-2.2-.5a6.9 6.9 0 0 0-.6-1.3l1.2-1.9a9.6 9.6 0 0 0-2-2l-1.9 1.2c-.4-.2-.9-.4-1.3-.6L13 3.3a9.5 9.5 0 0 0-2.8 0l-.5 2.2c-.5.2-.9.3-1.3.6L6.5 4.9a9.6 9.6 0 0 0-2 2l1.2 1.9c-.2.4-.4.9-.6 1.3l-2.2.5a9.5 9.5 0 0 0 0 2.8l2.2.5c.2.5.3.9.6 1.3l-1.2 1.9a9.6 9.6 0 0 0 2 2l1.9-1.2c.4.2.9.4 1.3.6l.5 2.2a9.5 9.5 0 0 0 2.8 0l.5-2.2c.5-.2.9-.3 1.3-.6l1.9 1.2a9.6 9.6 0 0 0 2-2l-1.2-1.9c.2-.4.4-.9.6-1.3l2.2-.5Z"})]})})}var Hu=vg();const Il=[{value:"gpt-5.4-mini",shortLabel:"5.4m",fullLabel:"GPT-5.4 mini",provider:"oauth"},{value:"gpt-5.5",shortLabel:"5.5",fullLabel:"GPT-5.5",provider:"oauth"},{value:"gpt-5.4",shortLabel:"5.4",fullLabel:"GPT-5.4",provider:"oauth"},{value:"grok-4.3",shortLabel:"4.3",fullLabel:"Grok 4.3",provider:"grok"}];function eA(a){return Il.find(r=>r.value===a.model)??Il.find(r=>r.provider===a.provider)??Il[0]}function Py({variant:a,agentSettings:r,onAgentSettingsChange:l}){const{t:o}=ye(),[c,f]=z.useState(!1),p=z.useRef(null),m=z.useRef(null),y=z.useRef(null),h=z.useRef([]),[x,b]=z.useState({top:0,left:12,width:280,maxHeight:480}),v=N(G=>G.imageModel),_=N(G=>G.provider),T=N(G=>G.setImageModel),j=N(G=>G.setProvider),R=N(G=>G.videoModelSelected),C=N(G=>G.selectVideoModel),A=N(G=>G.reasoningEffort),K=N(G=>G.setReasoningEffort),V=a==="settings"?"settings-image-model":"sidebar-image-model",te=Ln,ee=te.find(G=>G.value===v&&(!G.providerHint||G.providerHint===_))??te.find(G=>G.value===v)??te[0],I=a==="sidebar"&&!!r&&!!l,le=r?eA(r):null,Ce=In.find(G=>G.value===A)??In[0],Be=In.find(G=>G.value===r?.reasoningEffort)??In[0],De=G=>{T(G.target.value)},we=()=>h.current.filter(G=>G!==null),Ie=G=>{const L=we();if(L.length===0)return;const D=(G+L.length)%L.length;L[D]?.focus()},W=G=>{const L=we();if(L.length===0)return;const D=L.findIndex(se=>se===document.activeElement),J=L.length-1;if(G.key==="ArrowDown"||G.key==="ArrowRight"){G.preventDefault(),Ie(D>=0?D+1:0);return}if(G.key==="ArrowUp"||G.key==="ArrowLeft"){G.preventDefault(),Ie(D>=0?D-1:J);return}if(G.key==="Home"){G.preventDefault(),Ie(0);return}if(G.key==="End"){G.preventDefault(),Ie(J);return}G.key==="Escape"&&(G.preventDefault(),f(!1),m.current?.focus())};if(z.useEffect(()=>{if(a!=="sidebar"||!c)return;const G=D=>{const J=D.target;J instanceof Node&&(p.current?.contains(J)||y.current?.contains(J)||f(!1))},L=D=>{D.key==="Escape"&&f(!1)};return document.addEventListener("pointerdown",G),document.addEventListener("keydown",L),()=>{document.removeEventListener("pointerdown",G),document.removeEventListener("keydown",L)}},[c,a]),z.useLayoutEffect(()=>{if(a!=="sidebar"||!c)return;(()=>{const J=m.current?.getBoundingClientRect();if(J){const me=Math.min(280,Math.max(218,window.innerWidth-24)),w=J.right-me,k=window.innerWidth-me-12,Q=Math.max(12,Math.min(w,k)),ne=J.bottom+7,ce=Math.max(160,window.innerHeight-ne-12);b({top:ne,left:Q,width:me,maxHeight:ce})}})();const L=J=>{J&&y.current?.contains(J.target)||f(!1)},D=document.querySelector(".sidebar__scroll");return D?.addEventListener("scroll",L,{passive:!0}),window.addEventListener("scroll",L,!0),window.addEventListener("resize",L),()=>{D?.removeEventListener("scroll",L),window.removeEventListener("scroll",L,!0),window.removeEventListener("resize",L)}},[c,a]),z.useEffect(()=>{if(a!=="sidebar"||!c)return;const G=I?Il.findIndex(D=>D.value===le?.value):te.findIndex(D=>D.value===v),L=requestAnimationFrame(()=>{Ie(G>=0?G:0)});return()=>cancelAnimationFrame(L)},[I,le?.value,v,te,c,a]),a==="sidebar"){const G=I&&le?le.shortLabel:R?_r.find(D=>D.value===R)?.shortLabel??_r[0].shortLabel:ee.shortLabel.split(" ")[0],L=I?Be.shortLabel:Di(v)?ee.shortLabel.split(" ")[1]||"":Ce.shortLabel;return d.jsxs("div",{ref:p,className:"image-model-select image-model-select--sidebar",children:[d.jsxs("button",{ref:m,id:V,type:"button",className:"image-model-select__trigger image-model-select__trigger--pill","aria-haspopup":"menu","aria-expanded":c,"aria-label":o("sidebar.quickSettingsAria",{model:G,effort:L}),onClick:()=>f(D=>!D),children:[d.jsxs("span",{className:"image-model-select__trigger-top",children:[d.jsx("span",{className:"image-model-select__trigger-model",children:G}),d.jsx("span",{className:"image-model-select__trigger-chevron","aria-hidden":"true",children:"▾"})]}),d.jsx("span",{className:"image-model-select__trigger-effort",children:L})]}),c&&I&&le&&l?Hu.createPortal(d.jsxs("div",{ref:y,className:"image-model-select__menu",role:"menu","aria-label":o("sidebar.quickSettingsMenu"),onKeyDown:W,style:{position:"fixed",top:x.top,left:x.left,width:x.width,maxHeight:x.maxHeight,overflowY:"auto",zIndex:160},children:[d.jsxs("div",{className:"image-model-select__section",role:"group","aria-label":o("agent.model"),children:[d.jsx("div",{className:"image-model-select__section-title",children:o("agent.model")}),Il.map((D,J)=>d.jsxs("button",{ref:se=>{h.current[J]=se},type:"button",className:`image-model-select__item${D.value===le.value?" is-active":""}`,role:"menuitemradio","aria-checked":D.value===le.value,tabIndex:-1,onClick:()=>{l({model:D.value,provider:D.provider}),f(!1)},children:[d.jsx("span",{children:D.shortLabel}),d.jsx("small",{children:D.fullLabel})]},D.value))]}),d.jsxs("div",{className:"image-model-select__section",role:"group","aria-label":o("sidebar.reasoningLabel"),children:[d.jsx("div",{className:"image-model-select__section-title",children:o("sidebar.reasoningLabel")}),In.map((D,J)=>d.jsxs("button",{ref:se=>{h.current[Il.length+J]=se},type:"button",className:`image-model-select__item${D.value===r?.reasoningEffort?" is-active":""}`,role:"menuitemradio","aria-checked":D.value===r?.reasoningEffort,tabIndex:-1,onClick:()=>{l({reasoningEffort:D.value}),f(!1)},children:[d.jsx("span",{children:D.shortLabel}),d.jsx("small",{children:o(D.fullLabelKey)})]},D.value))]})]}),document.body):c?Hu.createPortal(d.jsxs("div",{ref:y,className:"image-model-select__menu",role:"menu","aria-label":o("sidebar.quickSettingsMenu"),onKeyDown:W,style:{position:"fixed",top:x.top,left:x.left,width:x.width,maxHeight:x.maxHeight,overflowY:"auto",zIndex:160},children:[d.jsxs("div",{className:"image-model-select__section",role:"group","aria-label":o("sidebar.imageSectionLabel"),children:[d.jsx("div",{className:"image-model-select__section-title",children:o("sidebar.imageSectionLabel")}),d.jsx("div",{className:"image-model-select__subsection-title",children:o("sidebar.gptImageSubLabel")}),Eu.map((D,J)=>d.jsxs("button",{ref:se=>{h.current[J]=se},type:"button",className:`image-model-select__item${D.value===v&&!R?" is-active":""}`,role:"menuitemradio","aria-checked":D.value===v&&!R,tabIndex:-1,onClick:()=>{T(D.value),f(!1)},children:[d.jsx("span",{children:D.shortLabel}),d.jsx("small",{children:o(D.fullLabelKey)})]},D.value)),d.jsx("div",{className:"image-model-select__subsection-title",children:o("sidebar.grokImageSubLabel")}),Ih.map((D,J)=>d.jsxs("button",{ref:se=>{h.current[Eu.length+J]=se},type:"button",className:`image-model-select__item${D.value===v&&!R?" is-active":""}`,role:"menuitemradio","aria-checked":D.value===v&&!R,tabIndex:-1,onClick:()=>{T(D.value),f(!1)},children:[d.jsx("span",{children:D.shortLabel}),d.jsx("small",{children:o(D.fullLabelKey)})]},D.value)),d.jsx("div",{className:"image-model-select__subsection-title",children:o("sidebar.geminiImageSubLabel")}),y0.map((D,J)=>{const se=D.providerHint,me=D.value===v&&se===_&&!R;return d.jsxs("button",{ref:w=>{h.current[Eu.length+Ih.length+J]=w},type:"button",className:`image-model-select__item${me?" is-active":""}`,role:"menuitemradio","aria-checked":me,tabIndex:-1,onClick:()=>{se&&j(se),T(D.value),f(!1)},children:[d.jsx("span",{children:D.shortLabel}),d.jsx("small",{children:o(D.fullLabelKey)})]},`${D.value}-${se||J}`)})]}),d.jsxs("div",{className:"image-model-select__section",role:"group","aria-label":o("sidebar.videoSectionLabel"),children:[d.jsx("div",{className:"image-model-select__section-title",children:o("sidebar.videoSectionLabel")}),_r.map((D,J)=>d.jsxs("button",{ref:se=>{h.current[te.length+J]=se},type:"button",className:`image-model-select__item${R===D.value?" is-active":""}`,role:"menuitemradio","aria-checked":R===D.value,tabIndex:-1,onClick:()=>{C(D.value),f(!1)},children:[d.jsx("span",{children:D.shortLabel}),d.jsx("small",{children:o(D.fullLabelKey)})]},D.value))]}),!Di(v)&&d.jsxs("details",{className:"image-model-select__section image-model-select__collapsible",children:[d.jsxs("summary",{className:"image-model-select__section-title image-model-select__section-title--toggle",children:[o("sidebar.reasoningLabel"),d.jsx("span",{className:"image-model-select__chevron","aria-hidden":"true",children:"▸"})]}),d.jsx("div",{role:"group","aria-label":o("sidebar.reasoningLabel"),children:In.map((D,J)=>d.jsxs("button",{ref:se=>{h.current[te.length+_r.length+J]=se},type:"button",className:`image-model-select__item${D.value===A?" is-active":""}`,role:"menuitemradio","aria-checked":D.value===A,tabIndex:-1,onClick:()=>{K(D.value),f(!1)},children:[d.jsx("span",{children:D.shortLabel}),d.jsx("small",{children:o(D.fullLabelKey)})]},D.value))})]})]}),document.body):null]})}return d.jsx("div",{className:"image-model-select image-model-select--settings",children:d.jsxs("select",{id:V,value:v,onChange:De,children:[te.map(G=>d.jsx("option",{value:G.value,children:o(G.fullLabelKey)},G.value)),v0.map(G=>d.jsx("option",{value:G.value,disabled:!0,children:o(G.fullLabelKey)},G.value))]})})}function Uy(a){return{...a,textFields:Array.isArray(a.textFields)?a.textFields:[]}}function zi(a){return{...a,cards:Array.isArray(a.cards)?a.cards.map(Uy):[]}}async function Gn(a,r){const l=await fetch(a,r),o=await l.json().catch(()=>({}));if(!l.ok){const c=o,f=typeof c.error=="string"?c.error:c.error?.message||`Request failed: ${l.status}`,p=new Error(f);throw typeof c.error!="string"&&(p.code=c.error?.code),p}return o}function tA(){return Gn("/api/cardnews/image-templates")}function aA(){return Gn("/api/cardnews/role-templates")}async function nA(a){const r=await Gn("/api/cardnews/draft",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});return{...r,plan:zi(r.plan)}}function lA(a){return Gn("/api/cardnews/jobs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function iA(a){return Gn(`/api/cardnews/jobs/${encodeURIComponent(a)}`)}async function oA(a){const l=(await Gn(`/api/cardnews/cards/${encodeURIComponent(a.card.id)}/regenerate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,cards:[a.card]})})).cards.find(o=>o.id===a.card.id);if(!l)throw new Error("Regenerated card not found");return{card:l}}function Zh(a){return Gn(`/api/cardnews/sets/${encodeURIComponent(a)}`).then(r=>({...r,plan:zi(r.plan)}))}function rA(a){return`/api/cardnews/sets/${encodeURIComponent(a)}/manifest?download=1`}function sA(a){return a[0]?.id||"academy-lesson-square"}function cA(a){return a.find(r=>r.id==="mid-5")?.id||a[0]?.id||"mid-5"}function uA(a){return Math.round(a/16)*16}function Kr(a){return Math.min(Zu,Math.max(1024,uA(a)))}function $h(a){return a.outputSizePreset!=="custom"?a.outputSizePreset:`${Kr(a.customW)}x${Kr(a.customH)}`}function Hy(a){if(a){if(typeof a=="string")return a;if(typeof a=="object"&&"message"in a){const r=a.message;return typeof r=="string"?r:void 0}return String(a)}}function dA(a,r){const l=r.status||"generated";return{...a,...r,textFields:Array.isArray(r.textFields)?r.textFields:a.textFields,status:l,error:l==="error"?Hy(r.error)||ae("cardNews.error"):void 0}}function fA(a){return new Promise(r=>setTimeout(r,a))}function Ou(a,r){const l=new Map(r.cards.map(o=>[o.id,o]));return{...a,cards:a.cards.map(o=>{const c=l.get(o.id);return c?{...o,...c,textFields:Array.isArray(c.textFields)?c.textFields:o.textFields,status:c.status||o.status,error:Hy(c.error)}:o})}}const st=bg((a,r)=>({templates:[],roleTemplates:[],activePlan:null,selectedCardId:null,selectedTextFieldId:null,topic:"",audience:"",goal:"",contentBrief:"",imageTemplateId:"academy-lesson-square",roleTemplateId:"mid-5",outputSizePreset:"2048x2048",customW:2048,customH:2048,loading:!1,generating:!1,error:null,draftError:null,plannerMeta:null,async hydrate(){if(!(r().loading||r().templates.length>0)){a({loading:!0,error:null});try{const[l,o]=await Promise.all([tA(),aA()]);a({templates:l.templates,roleTemplates:o.templates,imageTemplateId:sA(l.templates),roleTemplateId:cA(o.templates),loading:!1})}catch(l){a({loading:!1,error:l instanceof Error?l.message:String(l)})}}},setBriefField(l,o){a({[l]:o})},setImageTemplate(l){a({imageTemplateId:l})},setRoleTemplate(l){a({roleTemplateId:l})},setOutputSizePreset(l){a({outputSizePreset:l})},setCustomSize(l,o){a({customW:Kr(l),customH:Kr(o)})},async draft(){const l=r();a({loading:!0,error:null,draftError:null});try{const{plan:o,planner:c}=await nA({topic:l.topic,audience:l.audience,goal:l.goal,contentBrief:l.contentBrief,imageTemplateId:l.imageTemplateId,roleTemplateId:l.roleTemplateId,size:$h(l)});a({activePlan:zi(o),selectedCardId:o.cards[0]?.id||null,selectedTextFieldId:null,plannerMeta:c||null,loading:!1})}catch(o){const c=o instanceof Error?o.message:String(o);a({loading:!1,draftError:c,error:c})}},updateCard(l,o){a(c=>({activePlan:c.activePlan?{...c.activePlan,cards:c.activePlan.cards.map(f=>f.id===l?{...f,...o}:f)}:null}))},updateTextField(l,o,c){a(f=>({activePlan:f.activePlan?{...f.activePlan,cards:f.activePlan.cards.map(p=>p.id!==l||p.locked?p:{...p,textFields:p.textFields.map(m=>m.id===o?{...m,...c,source:c.source||"user"}:m)})}:null}))},addTextField(l,o){a(c=>({activePlan:c.activePlan?{...c.activePlan,cards:c.activePlan.cards.map(f=>f.id===l&&!f.locked?{...f,textFields:[...f.textFields,{...o,source:"user"}]}:f)}:null,selectedTextFieldId:o.id}))},removeTextField(l,o){a(c=>({activePlan:c.activePlan?{...c.activePlan,cards:c.activePlan.cards.map(f=>f.id===l&&!f.locked?{...f,textFields:f.textFields.filter(p=>p.id!==o)}:f)}:null,selectedTextFieldId:c.selectedTextFieldId===o?null:c.selectedTextFieldId}))},selectCard(l){a({selectedCardId:l,selectedTextFieldId:null})},selectTextField(l){a({selectedTextFieldId:l})},getGenerationSummary(){const l=r().activePlan?.cards||[];return{total:l.length,done:l.filter(o=>o.status==="generated").length,queued:l.filter(o=>o.status==="queued").length,generating:l.filter(o=>o.status==="generating").length,errors:l.filter(o=>o.status==="error").length,skipped:l.filter(o=>o.locked||o.status==="skipped").length}},async generateSet(){const l=r();if(!l.activePlan)return;const o=N.getState();a({generating:!0,error:null,activePlan:{...l.activePlan,cards:l.activePlan.cards.map(c=>c.locked?{...c,status:"skipped"}:{...c,status:"queued",error:void 0})}});try{const c=r().activePlan||l.activePlan;let p=await lA({...c,size:$h(l),quality:o.quality,moderation:o.moderation,model:o.imageModel,sessionId:o.activeSessionId});for(a(y=>({activePlan:y.activePlan?Ou(y.activePlan,p):y.activePlan}));["queued","running"].includes(p.status);)await fA(900),p=await iA(p.jobId),a(y=>({activePlan:y.activePlan?Ou(y.activePlan,p):y.activePlan}));const m=await Zh(p.setId).catch(()=>null);a(y=>({generating:!1,activePlan:m?.plan?zi(m.plan):y.activePlan?Ou(y.activePlan,p):y.activePlan,selectedTextFieldId:null})),o.showToast(ae("cardNews.generated",{count:p.generated}))}catch(c){const f=c instanceof Error?c.message:String(c);a(p=>({generating:!1,error:f,activePlan:p.activePlan?{...p.activePlan,cards:p.activePlan.cards.map(m=>m.status==="queued"||m.status==="generating"?{...m,status:"error",error:f}:m)}:p.activePlan}))}},async retryCard(l){const c=r().activePlan,f=c?.cards.find(m=>m.id===l);if(!c||!f||f.locked||!["draft","error"].includes(f.status))return;const p=N.getState();a({error:null,activePlan:{...c,cards:c.cards.map(m=>m.id===l?{...m,status:"generating",error:void 0}:m)}});try{const{card:m}=await oA({setId:c.setId,card:f,quality:p.quality,moderation:p.moderation,model:p.imageModel});a(y=>({activePlan:y.activePlan?{...y.activePlan,cards:y.activePlan.cards.map(h=>h.id===l?dA(h,Uy(m)):h)}:y.activePlan}))}catch(m){const y=m instanceof Error?m.message:String(m);a(h=>({error:y,activePlan:h.activePlan?{...h.activePlan,cards:h.activePlan.cards.map(x=>x.id===l?{...x,status:"error",error:y}:x)}:h.activePlan}))}},async loadSet(l){a({loading:!0,error:null,selectedTextFieldId:null});try{const{plan:o}=await Zh(l);a({activePlan:zi(o),selectedCardId:o.cards[0]?.id||null,selectedTextFieldId:null,loading:!1})}catch(o){a({loading:!1,error:o instanceof Error?o.message:String(o)})}}}));function mA(){const{t:a}=ye(),r=st(V=>V.hydrate),l=st(V=>V.topic),o=st(V=>V.audience),c=st(V=>V.goal),f=st(V=>V.contentBrief),p=st(V=>V.outputSizePreset),m=st(V=>V.customW),y=st(V=>V.customH),h=st(V=>V.setBriefField),x=st(V=>V.setOutputSizePreset),b=st(V=>V.setCustomSize),v=st(V=>V.draft),_=st(V=>V.loading),T=st(V=>V.generating),j=st(V=>V.draftError),R=st(V=>V.generateSet),C=st(V=>V.activePlan),A=C?.cards||[],K={total:A.length,done:A.filter(V=>V.status==="generated").length};return z.useEffect(()=>{r()},[r]),d.jsxs("section",{className:"card-news-composer","aria-label":a("cardNews.composer"),children:[d.jsx("div",{className:"card-news-composer__head",children:d.jsxs("div",{children:[d.jsx("div",{className:"section-title",children:a("cardNews.composer")}),d.jsx("p",{children:a("cardNews.composerHint")})]})}),d.jsxs("label",{className:"card-news-field",children:[d.jsx("span",{children:a("cardNews.topic")}),d.jsx("input",{value:l,placeholder:a("cardNews.topicPlaceholder"),onChange:V=>h("topic",V.target.value)})]}),d.jsxs("label",{className:"card-news-field",children:[d.jsx("span",{children:a("cardNews.audience")}),d.jsx("input",{value:o,placeholder:a("cardNews.audiencePlaceholder"),onChange:V=>h("audience",V.target.value)})]}),d.jsxs("label",{className:"card-news-field",children:[d.jsx("span",{children:a("cardNews.goal")}),d.jsx("input",{value:c,placeholder:a("cardNews.goalPlaceholder"),onChange:V=>h("goal",V.target.value)})]}),d.jsxs("label",{className:"card-news-field",children:[d.jsx("span",{children:a("cardNews.brief")}),d.jsx("textarea",{value:f,placeholder:a("cardNews.briefPlaceholder"),onChange:V=>h("contentBrief",V.target.value)})]}),d.jsxs("div",{className:"card-news-field",children:[d.jsx("span",{children:a("cardNews.outputSize")}),d.jsx("div",{className:"card-news-size-row",role:"group","aria-label":a("cardNews.outputSize"),children:["1024x1024","2048x2048","custom"].map(V=>d.jsx("button",{type:"button",className:`option-btn${p===V?" active":""}`,onClick:()=>x(V),children:V==="custom"?a("cardNews.customSize"):V==="1024x1024"?"1024²":"2048²"},V))}),p==="custom"?d.jsxs("div",{className:"card-news-custom-size",children:[d.jsx("input",{className:"custom-size-input",type:"text",inputMode:"numeric",value:m,onChange:V=>b(Number.parseInt(V.target.value,10)||m,y),"aria-label":a("size.width")}),d.jsx("span",{children:"×"}),d.jsx("input",{className:"custom-size-input",type:"text",inputMode:"numeric",value:y,onChange:V=>b(m,Number.parseInt(V.target.value,10)||y),"aria-label":a("size.height")})]}):null]}),d.jsxs("button",{type:"button",className:"generate-btn card-news-draft-btn",onClick:()=>{v()},disabled:_||!l.trim(),children:[_?d.jsx("span",{className:"card-news-spinner","aria-hidden":"true"}):null,a(_?"cardNews.drafting":"cardNews.draft")]}),j?d.jsx("div",{className:"card-news-error",role:"alert",children:j}):null,_?d.jsxs("div",{className:"card-news-inline-status",role:"status",children:[d.jsx("span",{className:"card-news-spinner","aria-hidden":"true"}),d.jsx("span",{children:a("cardNews.drafting")})]}):null,d.jsxs("button",{type:"button",className:"composer__tool card-news-generate-btn",onClick:()=>{R()},disabled:!C||T||C.cards.every(V=>V.locked),children:[T?d.jsx("span",{className:"card-news-spinner","aria-hidden":"true"}):null,T?a("cardNews.progress.generating",{done:K.done,total:K.total}):a("cardNews.batchGenerate")]})]})}function Rl({className:a}){return d.jsx("span",{className:["video-thumb-placeholder",a].filter(Boolean).join(" "),"aria-hidden":"true"})}function pA({item:a,active:r,selectLabel:l,deleteLabel:o,setRef:c,onSelect:f,onDelete:p}){const m=bt(a),y=$t(a),h=x=>{x.dataTransfer.setData("application/ima2-ref",JSON.stringify(y?Pi(a):{image:a.url||a.image,filename:a.filename})),x.dataTransfer.effectAllowed="copy"};return d.jsxs("div",{className:"sidebar-history__item",children:[d.jsx("button",{ref:x=>c(m,x),type:"button",className:`sidebar-history__thumb${r?" active":""}${y?" sidebar-history__thumb--video":""}`,onClick:()=>f(a),"aria-label":l,title:a.prompt??"",draggable:!0,onDragStart:h,children:y?d.jsxs(d.Fragment,{children:[a.thumb?d.jsx("img",{src:a.thumb,alt:"",loading:"lazy",decoding:"async"}):d.jsx(Rl,{}),d.jsx("span",{className:"sidebar-history__play-badge","aria-hidden":"true",children:"▶"})]}):d.jsx("img",{src:a.thumb||a.url||a.image,alt:"",loading:"lazy",decoding:"async"})}),d.jsx("button",{type:"button",className:"sidebar-history__delete",onClick:x=>{x.preventDefault(),x.stopPropagation(),p(a)},"aria-label":o,title:o,children:"x"})]})}function hA({entry:a,active:r,selectLabel:l,deleteLabel:o,setRef:c,onSelect:f,onDelete:p}){const m=tT(a.items.length);return d.jsxs("div",{className:"sidebar-history__item",children:[d.jsxs("button",{ref:y=>c(a.key,y),type:"button",className:`sidebar-history__sequence${r?" active":""}`,onClick:()=>f(a.sequenceId),"aria-label":l,children:[d.jsx("span",{className:`sidebar-history__sequence-grid count-${m}`,"aria-hidden":"true",children:Array.from({length:m}).map((y,h)=>{const x=a.items[h];return x&&$t(x)&&!x.thumb?d.jsx(Rl,{},bt(x)):x?d.jsx("img",{src:x.thumb||x.url||x.image,alt:"",loading:"lazy",decoding:"async"},bt(x)):d.jsx("span",{className:"sidebar-history__sequence-placeholder"},`sequence-placeholder-${a.sequenceId}-${h}`)})}),d.jsx("span",{className:"sidebar-history__sequence-badge",children:a.items.length})]}),d.jsx("button",{type:"button",className:"sidebar-history__delete",onClick:y=>{y.preventDefault(),y.stopPropagation(),p(a.sequenceId)},"aria-label":o,title:o,children:"x"})]})}const Jh="ima2.sidebarHistoryCollapsed";function Wh(){return d.jsx("div",{className:"sidebar-history__item",children:d.jsx("div",{className:"sidebar-history__thumb sidebar-history__thumb--skeleton","aria-label":"Generating..."})})}function gA({count:a}){const r=Math.min(a,4);return d.jsx("div",{className:"sidebar-history__item",children:d.jsx("div",{className:"sidebar-history__thumb sidebar-history__thumb--collection-skeleton",children:Array.from({length:r},(l,o)=>d.jsx("div",{className:"sidebar-collection-mini sidebar-collection-mini--skeleton"},o))})})}function yA(){const a=N(C=>C.history),r=N(C=>C.currentImage),l=N(C=>C.selectHistory),o=N(C=>C.showHistorySequence),c=N(C=>C.trashHistoryItem),f=N(C=>C.trashHistorySequence),p=N(C=>C.inFlight),m=N(C=>C.multimodeSequences),y=N(C=>{const A=C.multimodePreviewFlightId;return A?A.startsWith("history:")?A.slice(8):C.multimodeSequences[A]?.sequenceId??null:null}),h=N(C=>C.openGallery),x=z.useRef({}),[b,v]=z.useState(()=>{try{return localStorage.getItem(Jh)==="1"}catch{return!1}}),{t:_}=ye(),T=Ly(r,y),j=z.useMemo(()=>zy(a).slice(0,jy),[a]);z.useEffect(()=>{!T||b||x.current[T]?.scrollIntoView({block:"nearest",inline:"nearest"})},[T,b,j]),z.useEffect(()=>{try{localStorage.setItem(Jh,b?"1":"0")}catch{}},[b]);const R=(C,A)=>{x.current[C]=A};return d.jsxs("section",{className:`sidebar-history${b?" sidebar-history--collapsed":""}`,"aria-label":_("history.recentTitle"),children:[d.jsxs("div",{className:"sidebar-history__header",children:[d.jsx("span",{className:"section-title",children:_("history.recentTitle")}),d.jsxs("div",{className:"sidebar-history__header-actions",children:[d.jsx("button",{type:"button",className:"sidebar-history__gallery-button",onClick:h,"aria-label":_("history.galleryCard"),title:_("history.openGalleryTitle"),children:d.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[d.jsx("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),d.jsx("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),d.jsx("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),d.jsx("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})]})}),d.jsx("button",{type:"button",className:"sidebar-history__toggle",onClick:()=>v(C=>!C),title:_(b?"history.expandRecent":"history.collapseRecent"),"aria-expanded":!b,children:_(b?"history.expandRecentShort":"history.collapseRecentShort")})]})]}),b?null:d.jsxs("div",{className:"sidebar-history__grid",children:[p.map(C=>{const A=m[C.id];if(C.kind==="multimode"&&A){const K=[d.jsx(gA,{count:A.requested},`coll-sk-${C.id}`)];for(let V=0;V<A.requested;V++)A.images[V]||K.push(d.jsx(Wh,{},`sk-${C.id}-${V}`));return K}return d.jsx(Wh,{},`sk-${C.id}`)}),j.length===0&&p.length===0?d.jsx("button",{type:"button",className:"sidebar-history__empty",onClick:h,children:_("history.emptyRecent")}):null,j.map(C=>C.type==="sequence"?d.jsx(hA,{entry:C,active:T===C.key,selectLabel:_("history.selectRecent"),deleteLabel:_("history.deleteSequenceAria",{count:C.items.length}),setRef:R,onSelect:o,onDelete:A=>{f(A)}},C.key):d.jsx(pA,{item:C.item,active:T===C.key,selectLabel:_("history.selectRecent"),deleteLabel:_("history.deleteImageAria"),setRef:R,onSelect:l,onDelete:A=>{c(A)}},C.key))]})]})}const eg="(max-width: 800px)";function eo(){const[a,r]=z.useState(()=>typeof window<"u"?window.matchMedia(eg).matches:!1);return z.useEffect(()=>{if(typeof window>"u")return;const l=window.matchMedia(eg),o=()=>r(l.matches);return l.addEventListener("change",o),()=>l.removeEventListener("change",o)},[]),a}function vA(){const{t:a}=ye(),r=N(h=>h.uiMode),l=N(h=>h.workspaceProfile),o=N(h=>h.referenceImages),c=N(h=>h.clearReferences),f=eo(),p=r==="agent"&&Vi?"agent":r==="node"&&Fi?"node":"classic",m=Wi(l),y=!f&&p==="classic"&&m.composerPlacement==="bottom"&&m.multimodeHistoryGrouping==="sequence";return d.jsxs(d.Fragment,{children:[d.jsx(bA,{}),p==="classic"?y?d.jsxs(d.Fragment,{children:[d.jsx(yA,{}),d.jsx(Gr,{})]}):d.jsxs(d.Fragment,{children:[d.jsx(cd,{}),d.jsx(ud,{}),d.jsx(Gr,{})]}):p==="card-news"?d.jsx(d.Fragment,{children:d.jsx(mA,{})}):p==="node"?d.jsxs(d.Fragment,{children:[d.jsx(JN,{}),o.length>0?d.jsxs("div",{className:"node-mode-ref-warning",role:"status",children:[d.jsx("strong",{children:a("node.classicRefsParkedTitle")}),d.jsx("span",{children:a("node.classicRefsParkedBody")}),d.jsx("button",{type:"button",onClick:c,children:a("node.clearParkedRefs")})]}):null,d.jsx("div",{className:"sidebar__node-hint",children:a("sidebar.nodeModeHint")}),d.jsx(Gr,{})]}):null]})}function bA({agentSettings:a,onAgentSettingsChange:r}={}){return d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"logo",children:[d.jsx("div",{className:"logo-mark","aria-hidden":"true"}),d.jsxs("div",{className:"logo-copy",children:[d.jsx("div",{className:"logo-title",children:"ima2"}),d.jsx("div",{className:"logo-title logo-title--gen",children:"gen"})]}),d.jsxs("div",{className:"logo-actions",children:[d.jsx(xA,{}),d.jsx(Py,{variant:"sidebar",agentSettings:a,onAgentSettingsChange:r}),d.jsx(WN,{})]})]}),d.jsx(KN,{})]})}function SA(){return d.jsx("aside",{className:"sidebar",children:d.jsx("div",{className:"sidebar__scroll",children:d.jsx(vA,{})})})}function xA(){const{t:a}=ye(),r=N(p=>p.togglePromptLibrary),l=N(p=>p.promptLibraryOpen),o=N(p=>p.rightPanelOpen),c=N(p=>p.toggleRightPanel),f=()=>{!l&&!o&&c(),r()};return d.jsx("button",{type:"button",className:"settings-button",onClick:f,title:a("promptLibrary.title"),"aria-label":a("promptLibrary.title"),children:d.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:d.jsx("path",{d:"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"})})})}const _A=1024,TA=1024,NA="blank-canvas.png";function tg(a,r){return typeof a!="number"||!Number.isFinite(a)||a<=0?r:Math.max(1,Math.round(a))}async function AA(a){const r=tg(a?.width,_A),l=tg(a?.height,TA),o=document.createElement("canvas");o.width=r,o.height=l;const c=o.getContext("2d");if(!c)throw new Error("blank_canvas_context_unavailable");c.fillStyle="#ffffff",c.fillRect(0,0,o.width,o.height);const f=await new Promise((p,m)=>{o.toBlob(y=>{y?p(y):m(new Error("blank_canvas_blob_unavailable"))},"image/png")});return new File([f],NA,{type:"image/png"})}const Cr=1024;function EA(a){const r=/^(\d+)x(\d+)$/.exec(a);if(!r)return{width:Cr,height:Cr};const l=Number.parseInt(r[1]??"",10),o=Number.parseInt(r[2]??"",10);return!Number.isFinite(l)||!Number.isFinite(o)||l<=0||o<=0?{width:Cr,height:Cr}:{width:l,height:o}}function CA(){const a=N(y=>y.importLocalImageToHistory),r=N(y=>y.openCanvas),l=N(y=>y.showToast),o=N(y=>y.getResolvedSize),{t:c}=ye(),[f,p]=z.useState(!1),m=z.useCallback(async()=>{if(!f){p(!0);try{const y=EA(o()),h=await AA(y);await a(h)&&r()}catch{l(c("canvas.blank.failed"),!0)}finally{p(!1)}}},[f,o,a,r,l,c]);return{creatingBlankCanvas:f,createBlankCanvas:m}}const wA={oauth:"GPT OAuth / Codex login",api:"GPT API key",grok:"Grok OAuth / progrok","grok-api":"Grok API key",agy:"Antigravity Gemini CLI","gemini-api":"Gemini API / Vertex"};function IA(a){return a==null?!1:typeof a=="string"?a.trim().length>0:typeof a=="number"?Number.isFinite(a):typeof a=="boolean"}function dd(a){return IA(a)?String(a):null}function MA(a){return typeof a!="number"||!Number.isFinite(a)?null:new Date(a).toLocaleString()}function ag(a){return a?a.replace("x","×"):null}function RA(a){if(a==null)return null;try{return JSON.stringify(a,null,2)}catch{return String(a)}}function be(a,r,l,o={}){const c=dd(l);c&&a.push({label:r,value:c,...o})}function ju(a,r,l,o={}){typeof l!="number"||l<=0||be(a,r,l,o)}function OA(a,r,l){const o=RA(l);!o||o==="{}"||o==="[]"||a.push({label:r,value:o,copyValue:o,pre:!0})}function jA(a){if(!a.sequenceId)return null;const r=[a.sequenceIndex!=null&&a.sequenceTotalReturned!=null?`${a.sequenceIndex+1}/${a.sequenceTotalReturned}`:null,a.sequenceTotalRequested!=null?`requested ${a.sequenceTotalRequested}`:null,a.sequenceStatus??null].filter(Boolean);return r.length?`${a.sequenceId} (${r.join(", ")})`:a.sequenceId}function kA(a){return a?wA[a]??a:null}function zA(a){return a.trim().replace(/\s+/g," ")}function wr(a,r,l,o){const c=dd(o);if(!c)return;const f=zA(c);!f||r.has(f)||(r.add(f),a.push({label:l,value:c,copyValue:c,pre:!0}))}function ng(a,r){const l=a?.[r];return typeof l=="number"&&Number.isFinite(l)?l:null}function lg(a,r,l){const o=a?.[r];if(!o||typeof o!="object"||Array.isArray(o))return null;const c=o[l];return typeof c=="number"&&Number.isFinite(c)?c:null}function LA(a){const r=["metadata-modal__row"];return a.pre&&r.push("metadata-modal__row--pre"),a.compact&&r.push("metadata-modal__row--compact"),r.join(" ")}function DA({item:a,onClose:r,onCopy:l}){const{t:o}=ye(),c=z.useMemo(()=>JSON.stringify(a,null,2),[a]),f=a.videoContinuity?.entries?.[a.videoContinuity.entries.length-1]??null,p=kA(a.provider),m=[[p,a.model].filter(Boolean).join(" · "),ag(a.size),a.elapsed!=null?`${a.elapsed}s`:null,a.usage?.total_tokens!=null?`${a.usage.total_tokens} ${o("metadata.fields.tokens").toLowerCase()}`:null].filter(C=>!!C),y=[],h=[];be(h,o("metadata.fields.provider"),p,{compact:!0}),be(h,o("metadata.fields.model"),a.model,{compact:!0}),be(h,o("metadata.fields.providerUrl"),a.providerUrl,{copyValue:a.providerUrl??void 0}),be(h,o("metadata.fields.requestId"),a.requestId,{copyValue:a.requestId??void 0}),h.length&&y.push({title:o("metadata.sections.provider"),fields:h,compact:!0});const x=[];be(x,o("metadata.fields.quality"),a.quality,{compact:!0}),be(x,o("metadata.fields.size"),ag(a.size),{compact:!0}),be(x,o("metadata.fields.format"),a.format,{compact:!0}),be(x,o("metadata.fields.moderation"),a.moderation,{compact:!0}),be(x,o("metadata.fields.reasoning"),a.reasoningEffort,{compact:!0}),be(x,o("metadata.fields.promptMode"),a.promptMode,{compact:!0}),be(x,o("metadata.fields.kind"),a.kind,{compact:!0}),be(x,o("metadata.fields.mediaType"),a.mediaType,{compact:!0}),x.length&&y.push({title:o("metadata.sections.settings"),fields:x,compact:!0});const b=[];be(b,o("metadata.fields.elapsed"),a.elapsed!=null?`${a.elapsed}s`:null,{compact:!0}),be(b,o("metadata.fields.totalTokens"),a.usage?.total_tokens,{compact:!0}),be(b,o("metadata.fields.inputTokens"),ng(a.usage,"input_tokens"),{compact:!0}),ju(b,o("metadata.fields.cachedTokens"),lg(a.usage,"input_tokens_details","cached_tokens"),{compact:!0}),be(b,o("metadata.fields.outputTokens"),ng(a.usage,"output_tokens"),{compact:!0}),ju(b,o("metadata.fields.reasoningTokens"),lg(a.usage,"output_tokens_details","reasoning_tokens"),{compact:!0}),ju(b,o("metadata.fields.webSearchCalls"),a.webSearchCalls,{compact:!0}),a.usage?.grok_cost_usd_ticks!=null&&be(b,o("metadata.fields.grokCostTicks"),a.usage.grok_cost_usd_ticks,{compact:!0}),b.length&&y.push({title:o("metadata.sections.usage"),fields:b,compact:!0});const v=[];be(v,o("metadata.fields.filename"),a.filename,{copyValue:a.filename}),be(v,o("metadata.fields.createdAt"),MA(a.createdAt)),be(v,o("metadata.fields.sessionId"),a.sessionId),be(v,o("metadata.fields.nodeId"),a.nodeId),be(v,o("metadata.fields.parentNodeId"),a.parentNodeId),be(v,o("metadata.fields.clientNodeId"),a.clientNodeId),be(v,o("metadata.fields.refsCount"),a.refsCount),be(v,o("metadata.fields.sequence"),jA(a)),be(v,o("metadata.fields.setId"),a.setId),be(v,o("metadata.fields.cardId"),a.cardId),v.length&&y.push({title:o("metadata.sections.lineage"),fields:v});const _=[];be(_,o("metadata.fields.videoDuration"),a.video?.duration?`${a.video.duration}s`:null),be(_,o("metadata.fields.videoResolution"),a.video?.resolution),be(_,o("metadata.fields.videoAspectRatio"),a.video?.aspectRatio),be(_,o("metadata.fields.videoRequestedModel"),a.video?.requestedModel),be(_,o("metadata.fields.videoEffectiveModel"),a.video?.effectiveModel),be(_,o("metadata.fields.videoModelFallback"),a.video?.modelFallback),be(_,o("metadata.fields.xaiVideoRequestId"),a.video?.xaiVideoRequestId,{copyValue:dd(a.video?.xaiVideoRequestId)??void 0}),be(_,o("metadata.fields.sourceImageFilename"),a.video?.sourceImageFilename),_.length&&y.push({title:o("metadata.sections.video"),fields:_});const T=[];be(T,o("metadata.fields.lineageId"),a.videoContinuity?.lineageId),be(T,o("metadata.fields.parentFilename"),a.videoContinuity?.parentFilename),be(T,o("metadata.fields.sourceFrame"),a.videoContinuity?.sourceFrame),be(T,o("metadata.fields.continuityEntries"),a.videoContinuity?.entries?.length),be(T,o("metadata.fields.latestContinuityPrompt"),f?.revisedPrompt,{copyValue:f?.revisedPrompt,pre:!0}),T.length&&y.push({title:o("metadata.sections.videoContinuity"),fields:T});const j=[],R=new Set;return wr(j,R,o("metadata.fields.promptPrimary"),a.userPrompt??a.prompt),wr(j,R,o("metadata.fields.revisedPrompt"),a.revisedPrompt),wr(j,R,o("metadata.fields.prompt"),a.prompt),wr(j,R,o("metadata.fields.composerPrompt"),a.composerPrompt),OA(j,o("metadata.fields.insertedPrompts"),a.composerInsertedPrompts),j.length&&y.push({title:o("metadata.sections.prompts"),fields:j}),d.jsx("div",{className:"modal-backdrop metadata-modal-backdrop",onClick:r,children:d.jsxs("section",{className:"modal metadata-modal",role:"dialog","aria-modal":"true","aria-labelledby":"metadata-modal-title",onClick:C=>C.stopPropagation(),children:[d.jsxs("header",{className:"metadata-modal__header",children:[d.jsxs("div",{children:[d.jsx("h3",{id:"metadata-modal-title",children:o("metadata.title")}),d.jsx("p",{children:[a.mediaType??o("metadata.asset"),a.filename].filter(Boolean).join(" · ")}),m.length?d.jsx("div",{className:"metadata-modal__summary","aria-label":o("metadata.summary"),children:m.map(C=>d.jsx("span",{children:C},C))}):null]}),d.jsx("button",{type:"button",className:"metadata-modal__close",onClick:r,"aria-label":o("common.close"),children:"×"})]}),d.jsxs("div",{className:"metadata-modal__body",children:[y.map(C=>d.jsxs("section",{className:C.compact?"metadata-modal__section metadata-modal__section--compact":"metadata-modal__section",children:[d.jsx("h4",{children:C.title}),d.jsx("dl",{children:C.fields.map(A=>d.jsxs("div",{className:LA(A),children:[d.jsx("dt",{children:A.label}),d.jsxs("dd",{children:[A.pre?d.jsx("pre",{children:A.value}):d.jsx("span",{children:A.value}),A.copyValue?d.jsx("button",{type:"button",onClick:()=>l(A.copyValue),"aria-label":o("metadata.copyField",{label:A.label}),children:o("metadata.copy")}):null]})]},`${C.title}:${A.label}`))})]},C.title)),d.jsxs("details",{className:"metadata-modal__raw",children:[d.jsx("summary",{children:o("metadata.rawJson")}),d.jsx("div",{className:"metadata-modal__raw-actions",children:d.jsx("button",{type:"button",onClick:()=>l(c),children:o("metadata.copyRaw")})}),d.jsx("pre",{children:c})]})]})]})})}const GA="canvas-mode-context",qA="Canvas Mode",ig=36e5,PA=["Canvas Mode context:","The user edited or annotated the reference image on a canvas.","If the image is a blank white canvas or paper with user-drawn strokes, treat those strokes as source content and preserve/complete them.","If the image is an existing picture with circles, arrows, sticky notes, handwritten marks, or memo notes over it, treat those marks as edit instructions. Apply the instruction, then remove the marks from the final image unless explicitly asked to keep them.","Infer the intended edit from the canvas marks and memo text. Preserve unrelated image content."].join(`
20
+ `);function UA({imageOverride:a=null,onAfterDeleteFocus:r}){const{t:l}=ye(),o=N(k=>k.currentImage),c=N(k=>k.showToast),f=N(k=>k.insertPromptToComposer),p=N(k=>k.createRootNodeFromHistoryItem),m=N(k=>k.trashHistoryItem),y=N(k=>k.permanentlyDeleteHistoryItemByClick),h=N(k=>k.canvasOpen),x=N(k=>k.openCanvas),[b,v]=z.useState(!1),[_,T]=z.useState(!1),[j,R]=z.useState(!1),C=a??o;if(!C)return null;const A=$t(C),K=A?C.url||C.image:"",V=!!C.filename,te=!!C.filename&&!A,I=!!((C.provider==="grok"||C.provider==="grok-api")&&!A&&C.providerUrl&&C.createdAt&&Date.now()-C.createdAt<ig),le=async()=>{if(!(!C.filename||_)){T(!0);try{await N.getState().animateImage(C.filename,C.prompt??void 0),c(l("toast.animateDone"))}catch(k){const Q=k instanceof Error?k.message:l("toast.animateFailed");c(Q,!0)}finally{T(!1)}}},Ce=()=>{const k=document.createElement("a");k.href=C.image,k.download=C.filename||"generated.png",k.click()},Be=async k=>{const ne=await(await fetch(k)).blob();let ce;if(ne.type==="image/png")ce=ne;else{const de=new Image;de.crossOrigin="anonymous";const he=URL.createObjectURL(ne);await new Promise(($,Xe)=>{de.onload=()=>$(),de.onerror=Xe,de.src=he});const je=document.createElement("canvas");je.width=de.naturalWidth,je.height=de.naturalHeight,je.getContext("2d").drawImage(de,0,0),URL.revokeObjectURL(he),ce=await new Promise(($,Xe)=>je.toBlob(lt=>lt?$(lt):Xe(),"image/png"))}await navigator.clipboard.write([new ClipboardItem({"image/png":ce})])},De=async()=>{try{if(A){const k=await kl(K);await Be(k)}else await Be(C.image);c(l(A?"toast.frameCopied":"toast.imageCopied"))}catch{c(l("toast.copyFailed"),!0)}},we=async()=>{try{const k=await r_(K);await Be(k),c(l("toast.frameCopied"))}catch{c(l("toast.copyFailed"),!0)}},Ie=async()=>{try{const k=await s_(K);await Be(k),c(l("toast.frameCopied"))}catch{c(l("toast.copyFailed"),!0)}},W=()=>{C.prompt&&(navigator.clipboard.writeText(C.prompt),c(l("toast.promptCopied")))},G=k=>{navigator.clipboard.writeText(k),c(l("toast.metadataCopied"))},L=async()=>{let k={ok:!1,isVideo:!1,hasPrompt:!1};try{k=await sd(C)}catch{}h&&a&&f({id:GA,name:qA,text:PA});const Q=document.querySelector('textarea[name="prompt"], textarea#prompt, .sidebar textarea');Q&&(Q.focus(),Q.setSelectionRange(Q.value.length,Q.value.length)),c(l(k.hasPrompt?"toast.forkStarted":"toast.forkStartedNoPrompt"))},D=async()=>{if(A||!C.providerUrl||!C.createdAt||Date.now()-C.createdAt>=ig){c(l("toast.continueAsUrlExpired"),!0);return}try{await QN(C)}catch{}const k=document.querySelector('textarea[name="prompt"], textarea#prompt, .sidebar textarea');k&&(k.focus(),k.setSelectionRange(k.value.length,k.value.length)),c(l("toast.continueAsUrlStarted"))},J=async()=>{if(!(!C.filename||b)){v(!0);try{const k=await l0({filename:C.filename});c(l("toast.comfyExported",{filename:k.uploadedFilename}))}catch(k){const Q=k instanceof Error?k.code:void 0;c(l(Q==="COMFY_URL_NOT_LOCAL"?"toast.comfyExportInvalidUrl":Q==="COMFY_IMAGE_INVALID"?"toast.comfyExportInvalidImage":Q==="COMFY_IMAGE_NOT_FOUND"?"toast.comfyExportImageNotFound":"toast.comfyExportFailed"),!0)}finally{v(!1)}}},se=()=>{p(C),c(l("toast.nodeRootCreated"))},me=async()=>{try{await m(C)}finally{r?.()}},w=async()=>{try{await y(C)}finally{r?.()}};return d.jsxs("div",{className:"result-actions",children:[d.jsx("button",{type:"button",className:"action-btn",onClick:Ce,children:l("result.download")}),d.jsx("button",{type:"button",className:`action-btn${A?" action-btn--frame":""}`,onClick:De,children:l(A?"result.copyLastFrame":"result.copyImage")}),A&&d.jsxs(d.Fragment,{children:[d.jsx("button",{type:"button",className:"action-btn action-btn--frame",onClick:we,children:l("result.copyFirstFrame")}),d.jsx("button",{type:"button",className:"action-btn action-btn--frame",onClick:Ie,children:l("result.copyMidFrame")})]}),d.jsx("button",{type:"button",className:"action-btn",onClick:W,children:l("result.copyPrompt")}),d.jsx("button",{type:"button",className:"action-btn action-btn--primary",onClick:L,title:l("result.continueHereTitle"),children:l("result.continueHere")}),I&&d.jsx("button",{type:"button",className:"action-btn",onClick:()=>{D()},title:l("result.continueAsUrlTitle"),children:l("result.continueAsUrl")}),te&&d.jsx("button",{type:"button",className:"action-btn",onClick:()=>{le()},disabled:_,title:l("result.animateTitle"),children:l(_?"result.animating":"result.animate")}),d.jsx("button",{type:"button",className:"action-btn",onClick:se,title:l("result.firstNodeTitle"),children:l("result.firstNode")}),d.jsx("button",{type:"button",className:"action-btn",onClick:()=>R(!0),title:l("result.infoTitle"),children:l("result.info")}),!h&&d.jsx("button",{type:"button",className:"action-btn",onClick:x,title:l("canvas.open"),"aria-label":l("canvas.openAria"),children:d.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:d.jsx("path",{d:"M4 4h8v8M12 4l-8 8"})})}),C.filename&&d.jsxs(d.Fragment,{children:[d.jsx("button",{type:"button",className:"action-btn action-btn--danger",onClick:()=>{me()},title:l("result.deleteTitle"),children:l("result.delete")}),d.jsxs("details",{className:"result-actions__more",children:[d.jsx("summary",{className:"action-btn",children:l("result.more")}),d.jsxs("div",{className:"result-actions__menu",children:[V&&d.jsx("button",{type:"button",className:"result-actions__menu-item",onClick:()=>{J()},title:l("result.sendToComfyUITitle"),disabled:b,children:l("result.sendToComfyUI")}),d.jsx("button",{type:"button",className:"result-actions__menu-item result-actions__danger-item",onClick:()=>{w()},children:l("result.permanentDelete")})]})]})]}),j&&d.jsx(DA,{item:C,onClose:()=>R(!1),onCopy:G})]})}function HA({prompt:a,onCopy:r}){const{t:l}=ye(),o=c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),r())};return d.jsx("div",{className:"result-prompt",onClick:r,onKeyDown:o,role:"button",tabIndex:0,title:l("result.copyPrompt"),"aria-label":l("result.copyPrompt"),children:d.jsx("span",{className:"result-prompt__text",children:a})})}function BA(){const a=N(v=>{const _=v.multimodePreviewFlightId;return _?v.multimodeSequences[_]??null:null}),r=N(v=>v.cancelMultimode),l=N(v=>{const _=v.multimodePreviewFlightId;return!!(_&&(v.activeFlightIds.has(_)||v.inFlight.some(T=>T.id===_)))}),o=N(v=>v.selectHistory),c=N(v=>v.currentImage),f=N(v=>v.openCanvas),{t:p}=ye(),m=v=>{o(v)},y=v=>{o(v),f()};if(!a)return null;const h=new Map,x=a.partials.filter(v=>v.index==null);for(const v of a.partials)v.index!=null&&h.set(v.index,v);const b=Array.from({length:a.requested},(v,_)=>{const T=a.images[_],j=h.get(_)??(T?void 0:x.shift());return{index:_,image:T,partial:j}});return d.jsxs("section",{className:"multimode-sequence","aria-live":"polite",children:[d.jsxs("div",{className:"multimode-sequence__header",children:[d.jsxs("div",{children:[d.jsx("div",{className:"multimode-sequence__title",children:p("multimode.sequenceTitle")}),d.jsx("div",{className:"multimode-sequence__meta",children:p("multimode.sequenceProgress",{returned:a.returned,requested:a.requested})})]}),l?d.jsx("button",{type:"button",className:"secondary-btn",onClick:r,children:p("multimode.cancel")}):null]}),d.jsx("div",{className:`multimode-sequence__grid count-${Math.min(a.requested,4)}`,children:b.map(({index:v,image:_,partial:T})=>{const j=_&&c?.filename&&_.filename===c.filename;return d.jsxs("article",{className:`multimode-sequence__slot${_?" done":""}${j?" active":""}`,onClick:_?()=>m(_):void 0,onDoubleClick:_?()=>y(_):void 0,role:_?"button":void 0,tabIndex:_?0:void 0,onKeyDown:_?R=>{(R.key==="Enter"||R.key===" ")&&(R.preventDefault(),m(_))}:void 0,children:[d.jsx("div",{className:"multimode-sequence__badge",children:p("multimode.stageLabel",{index:v+1})}),_?d.jsx("img",{src:_.url??_.image,alt:p("canvas.resultAlt"),loading:"lazy",decoding:"async",className:"multimode-sequence__img-fade"}):T?d.jsx("img",{src:T.image,alt:p("multimode.partialAlt"),loading:"lazy",decoding:"async",className:"multimode-sequence__img-fade"}):a.status==="pending"||a.status==="complete"?d.jsx("div",{className:"multimode-sequence__skeleton"}):d.jsx("div",{className:"multimode-sequence__empty",children:a.status==="error"?p("multimode.error"):a.status==="empty"?p("multimode.empty"):a.status==="canceled"?p("multimode.canceled"):a.status==="partial"?p("multimode.notReturned"):p("multimode.generating")})]},_?.filename??v)})})]})}function FA({zoom:a,minZoom:r,maxZoom:l,onZoomIn:o,onZoomOut:c,onReset:f,labels:p}){return d.jsxs("div",{className:"viewer-controls","aria-label":p.controls,onPointerDown:m=>m.stopPropagation(),onDoubleClick:m=>m.stopPropagation(),onWheel:m=>m.stopPropagation(),children:[d.jsx("button",{type:"button",className:"viewer-control-btn",onClick:m=>{m.stopPropagation(),c()},disabled:a<=r,"aria-label":p.zoomOut,children:"-"}),d.jsxs("button",{type:"button",className:"viewer-control-btn viewer-control-btn--label",onClick:m=>{m.stopPropagation(),f()},"aria-label":p.reset,children:[Math.round(a*100),"%"]}),d.jsx("button",{type:"button",className:"viewer-control-btn",onClick:m=>{m.stopPropagation(),o()},disabled:a>=l,"aria-label":p.zoomIn,children:"+"})]})}function qr(a){return a instanceof HTMLElement?a instanceof HTMLInputElement||a instanceof HTMLTextAreaElement||a instanceof HTMLSelectElement||a instanceof HTMLButtonElement||a.isContentEditable:!1}const On=1,By=5,Ir=.22;function VA(a){return Math.min(By,Math.max(On,a))}function KA(a){const[r,l]=z.useState(1),[o,c]=z.useState({x:0,y:0}),[f,p]=z.useState(null),m=z.useRef(0),y=z.useRef(null),h=z.useCallback(()=>{cancelAnimationFrame(m.current),m.current=0,y.current=null,l(1),c({x:0,y:0}),p(null)},[]);z.useEffect(()=>{h()},[h,a]),z.useEffect(()=>()=>{cancelAnimationFrame(m.current)},[]);const x=z.useCallback(R=>{l(C=>{const A=VA(C+R);return A<=On?(c({x:0,y:0}),On):Number(A.toFixed(2))})},[]),b=z.useCallback(R=>{R.preventDefault(),x(R.deltaY<0?Ir:-Ir)},[x]),v=z.useCallback(()=>{if(r>On){h();return}l(2)},[h,r]),_=z.useCallback(R=>{r<=On||R.button!==0||(R.preventDefault(),R.currentTarget.setPointerCapture(R.pointerId),p({pointerId:R.pointerId,startX:R.clientX,startY:R.clientY,baseX:o.x,baseY:o.y}))},[o.x,o.y,r]),T=z.useCallback(R=>{if(!f||f.pointerId!==R.pointerId)return;const C={x:f.baseX+R.clientX-f.startX,y:f.baseY+R.clientY-f.startY};y.current=C,cancelAnimationFrame(m.current),m.current=requestAnimationFrame(()=>{c(C),y.current=null})},[f]),j=z.useCallback(R=>{!f||f.pointerId!==R.pointerId||(cancelAnimationFrame(m.current),m.current=0,y.current&&(c(y.current),y.current=null),p(null),R.currentTarget.releasePointerCapture(R.pointerId))},[f]);return{zoom:r,pan:o,reset:h,zoomIn:()=>x(Ir),zoomOut:()=>x(-Ir),handleWheel:b,handleDoubleClick:v,handlePointerDown:_,handlePointerMove:T,handlePointerUp:j}}const YA=z.lazy(()=>ha(()=>import("./index-bMxZBOnc.js"),[]).then(a=>({default:a.CanvasModeWorkspace})));function XA(a){return a==="low"?"l":a==="medium"?"m":a==="high"?"h":a??null}function QA(a){if(!a)return null;const r=a.match(/^(\d+)x\1$/);return r?`${r[1]}²`:a.replace("x","×")}function ZA(a){const r=a.url??a.image;if(!a.canvasVersion||!a.canvasMergedAt||r.startsWith("data:"))return r;const l=r.includes("?")?"&":"?";return`${r}${l}canvasMergedAt=${a.canvasMergedAt}`}function Bu(){const a=N(W=>W.currentImage),r=N(W=>W.importLocalImageToHistory),l=N(W=>{const G=W.multimodePreviewFlightId;return G?W.multimodeSequences[G]??null:null}),o=N(W=>W.selectHistoryShortcutTarget),c=N(W=>W.trashHistoryItem),f=N(W=>W.permanentlyDeleteHistoryItemByShortcut),p=N(W=>W.markGeneratedResultsSeen),m=N(W=>W.activeGenerations),y=N(W=>W.canvasOpen),h=N(W=>W.openCanvas),x=N(W=>W.showToast),{t:b}=ye(),[v,_]=z.useState(!1),{creatingBlankCanvas:T,createBlankCanvas:j}=CA(),R=z.useRef(null),C=a?`${a.filename??a.url??a.image}:${a.canvasMergedAt??""}`:null,A=KA(C),K=()=>{a?.prompt&&(navigator.clipboard.writeText(a.prompt),x(b("toast.promptCopied")))},V=W=>{if(W.key==="Delete"||W.key==="Backspace"){if(!a||W.target!==W.currentTarget||qr(W.target))return;if(W.preventDefault(),W.shiftKey){f(a);return}c(a);return}W.key!=="ArrowLeft"&&W.key!=="ArrowRight"&&W.key!=="Home"&&W.key!=="End"||W.target===W.currentTarget&&(qr(W.target)||(W.preventDefault(),W.key==="ArrowLeft"?o("previous"):W.key==="ArrowRight"?o("next"):W.key==="Home"?o("first"):W.key==="End"&&o("last")))},te=W=>{qr(W.target)||(p(),W.currentTarget.focus())},ee=z.useCallback(()=>{window.requestAnimationFrame(()=>R.current?.focus())},[]),I=z.useCallback(W=>{Array.from(W.dataTransfer.types).includes("Files")&&(W.preventDefault(),_(G=>G||!0))},[]),le=z.useCallback(W=>{W.currentTarget.contains(W.relatedTarget)||_(!1)},[]),Ce=z.useCallback(async W=>{if(!Array.from(W.dataTransfer.types).includes("Files"))return;W.preventDefault(),_(!1);const G=Array.from(W.dataTransfer.files).filter(L=>/^image\/(png|jpeg|webp)$/.test(L.type));G.length!==0&&await r(G[0])},[r]);if(y&&a)return d.jsx(z.Suspense,{fallback:d.jsx("main",{className:"canvas canvas--mode-open","aria-busy":"true"}),children:d.jsx(YA,{currentImage:a})});const Be=XA(a?.quality),De=QA(a?.size),we=b0(a?.model,a?.provider),Ie=a?ZA(a):null;return d.jsxs("main",{className:`canvas${v?" canvas--drop-active":""}`,onDragOver:I,onDragLeave:le,onDrop:Ce,children:[v?d.jsx("div",{className:"canvas__drop-overlay","aria-hidden":!0,children:d.jsx("span",{className:"canvas__drop-hint",children:b("canvas.drop.hint")})}):null,d.jsx("div",{className:`progress-bar${m>0?" active":""}`}),l?d.jsx(BA,{}):a&&Ie?d.jsxs("div",{ref:R,className:"result-container visible",tabIndex:0,onMouseDown:te,onKeyDown:V,"aria-label":b("canvas.imageViewerAria"),children:[d.jsxs("div",{className:`result-preview-frame canvas-annotation-frame${A.zoom>On?" canvas-annotation-frame--zoomed":""}`,onWheel:A.handleWheel,onDoubleClick:A.handleDoubleClick,onPointerDown:A.handlePointerDown,onPointerMove:A.handlePointerMove,onPointerUp:A.handlePointerUp,onPointerCancel:A.handlePointerUp,children:[$t(a)?d.jsxs(d.Fragment,{children:[d.jsx("video",{className:"result-img",src:Ie,controls:!0,autoPlay:!0,loop:!0,playsInline:!0,style:{transform:`translate(${A.pan.x}px, ${A.pan.y}px) scale(${A.zoom})`}},C??void 0),d.jsx("div",{className:"result-drag-handle",draggable:!0,onDragStart:W=>{W.dataTransfer.setData("application/ima2-ref",JSON.stringify(Pi(a))),W.dataTransfer.effectAllowed="copy"},title:b("canvas.dragToComposer"),"aria-label":b("canvas.dragToComposer"),children:"DRAG"})]}):d.jsxs(d.Fragment,{children:[d.jsx("img",{className:"result-img",src:Ie,alt:b("canvas.resultAlt"),decoding:"async",fetchPriority:"high",style:{transform:`translate(${A.pan.x}px, ${A.pan.y}px) scale(${A.zoom})`},onDoubleClick:W=>{W.stopPropagation(),h()}},C??void 0),d.jsx("div",{className:"result-drag-handle",draggable:!0,onDragStart:W=>{W.dataTransfer.setData("application/ima2-ref",JSON.stringify({image:a.url||a.image,filename:a.filename})),W.dataTransfer.effectAllowed="copy"},title:b("canvas.dragToComposer"),"aria-label":b("canvas.dragToComposer"),children:"DRAG"})]}),d.jsx(FA,{zoom:A.zoom,minZoom:On,maxZoom:By,onZoomIn:A.zoomIn,onZoomOut:A.zoomOut,onReset:A.reset,labels:{controls:b("viewer.controls"),zoomIn:b("viewer.zoomIn"),zoomOut:b("viewer.zoomOut"),reset:b("viewer.reset")}})]}),d.jsx("div",{className:"result-meta",children:($t(a)?[a.elapsed!=null?`${a.elapsed}s`:null,a.video?.duration?`${a.video.duration}s clip`:null,a.video?.resolution??null,a.video?.aspectRatio??null,Cy(a.videoContinuity),we]:[a.elapsed!=null?`${a.elapsed}s`:null,a.usage?b("canvas.tokens",{n:a.usage.total_tokens??"?"}):null,g1(a.reasoningEffort),Be,De,we]).filter(W=>!!W).join(" · ")}),d.jsx(UA,{onAfterDeleteFocus:ee}),a.prompt?d.jsx(HA,{prompt:a.prompt,onCopy:K}):null]}):a?null:d.jsxs("div",{className:"canvas__blank-entry",children:[d.jsx("div",{className:"canvas__blank-sheet","aria-hidden":!0}),d.jsxs("div",{className:"canvas__blank-copy",children:[d.jsx("strong",{children:b("canvas.blank.title")}),d.jsx("span",{children:b("canvas.blank.subtitle")})]}),d.jsx("button",{type:"button",className:"canvas__blank-button",onClick:()=>{j()},disabled:T,children:b(T?"canvas.blank.creating":"canvas.blank.create")})]})]})}function $A(){return d.jsxs("div",{className:"classic-workspace",children:[d.jsx("div",{className:"classic-workspace__stage",children:d.jsx(Bu,{})}),d.jsxs("div",{className:"classic-workspace__dock",children:[d.jsx(cd,{variant:"bottom"}),d.jsx(ud,{})]})]})}function da({title:a,help:r,items:l,value:o,onChange:c}){return d.jsxs("div",{className:"option-group",children:[a?d.jsx("div",{className:"section-title",children:a}):null,d.jsx("div",{className:"option-row",children:l.map(f=>d.jsxs("button",{className:`option-btn${f.value===o?" active":""}`,style:f.color?{color:f.color}:void 0,disabled:f.disabled,onClick:()=>c(f.value),type:"button",children:[f.label,f.sub?d.jsxs(d.Fragment,{children:[d.jsx("br",{}),d.jsx("span",{className:"option-sub",children:f.sub})]}):null]},f.value))}),r?d.jsx("p",{className:"option-help",children:r}):null]})}const Fy="ima2.customSizeSlots";function JA(a){if(!a||typeof a!="object")return!1;const r=a;return typeof r.id=="string"&&typeof r.w=="number"&&typeof r.h=="number"&&typeof r.updatedAt=="number"}function WA(){try{const a=localStorage.getItem(Fy);if(!a)return[];const r=JSON.parse(a);return Array.isArray(r)?Cl(r.filter(JA)):[]}catch{return[]}}function eE(a){try{localStorage.setItem(Fy,JSON.stringify(Cl(a)))}catch{}}function tE(a,r,l){return ts({id:`slot_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,w:a,h:r,ratio:l,updatedAt:Date.now()})}function Mi(a){return a.map(r=>({value:r.value,label:r.label,sub:r.sub}))}function aE(){const a=N(G=>G.sizePreset),r=N(G=>G.setSizePreset),l=N(G=>G.customW),o=N(G=>G.customH),c=N(G=>G.setCustomSize),{t:f}=ye(),[p,m]=z.useState(String(l)),[y,h]=z.useState(String(o)),[x,b]=z.useState(a==="custom"),[v,_]=z.useState(()=>WA()),[T,j]=z.useState(null),[R,C]=z.useState("free"),A=a==="custom",K=$u(p,y,l,o),V=j1().filter(G=>G.value==="auto");z.useEffect(()=>{m(String(l)),h(String(o))},[l,o]),z.useEffect(()=>{A||(b(!1),j(null))},[A]);function te(G){_(G),eE(G)}function ee(){const G=ma(p,l),L=ma(y,o);c(G,L),m(String(G)),h(String(L))}function I(G){G.key==="Enter"&&(G.preventDefault(),ee())}function le(){r("custom"),b(!0),j(v.length>=El?v[0]?.id??null:null)}function Ce(G){r(G),G!=="custom"&&(b(!1),j(null))}function Be(G){r("custom"),c(G.w,G.h),m(String(G.w)),h(String(G.h)),b(!1),j(G.id)}function De(G){C(G.id);const L=E1(G);L&&(m(String(L.w)),h(String(L.h)))}function we(){const G=tE(K.w,K.h,R),L=v.length>=El&&T?w1(v,T,G):C1(v,G);te(L),r("custom"),c(K.w,K.h),m(String(K.w)),h(String(K.h)),j(G.id),b(!1)}const Ie=K.reasons.length>0?K.reasons.map(G=>f(`size.adjustedReasons.${G}`)).join(", "):f("size.noAdjustment"),W=K.reasons.includes("maxPixels")&&K.requestedW===K.requestedH&&K.w===K.h?f("size.squareMaxHint",{size:`${kh}×${kh}`}):null;return d.jsxs("div",{className:"option-group size-picker",children:[d.jsx("div",{className:"section-title",children:f("size.title")}),d.jsx(da,{title:"",items:Mi(I1),value:a,onChange:Ce}),d.jsx(da,{title:"",items:Mi(M1),value:a,onChange:Ce}),d.jsx(da,{title:"",items:Mi(R1),value:a,onChange:Ce}),d.jsx(da,{title:"",items:Mi(O1),value:a,onChange:Ce}),d.jsxs("div",{className:"option-row size-picker__quick-row",children:[Mi(V).map(G=>d.jsxs("button",{type:"button",className:`option-btn${a===G.value?" active":""}`,onClick:()=>Ce(G.value),children:[G.label,G.sub?d.jsxs(d.Fragment,{children:[d.jsx("br",{}),d.jsx("span",{className:"option-sub",children:G.sub})]}):null]},G.value)),d.jsxs("button",{type:"button",className:`option-btn${A?" active":""}`,onClick:le,children:[f("size.customPlus"),d.jsx("br",{}),d.jsx("span",{className:"option-sub",children:f("size.customSub")})]})]}),v.length>0?d.jsx("div",{className:"option-row size-picker__slot-row",children:v.map(G=>d.jsxs("button",{type:"button",className:`option-btn size-picker__slot${A&&l===G.w&&o===G.h?" active":""}`,onClick:()=>Be(G),children:[G.w,"×",G.h,d.jsx("br",{}),d.jsx("span",{className:"option-sub",children:G.ratio||f("size.customSlot")})]},G.id))}):null,x?d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"size-picker__ratio-row",children:N1.map(G=>d.jsx("button",{type:"button",className:`size-picker__ratio${R===G.id?" active":""}`,onClick:()=>De(G),children:G.id==="free"?f("size.ratioFree"):G.label},G.id))}),d.jsxs("div",{className:"option-row size-picker__custom-row",children:[d.jsx("input",{type:"text",inputMode:"numeric",pattern:"[0-9]*",className:"custom-size-input",value:p,onChange:G=>m(G.target.value.replace(/\D/g,"")),onBlur:ee,onKeyDown:I,placeholder:f("size.width")}),d.jsx("span",{className:"size-picker__dimension-separator","aria-hidden":"true",children:"×"}),d.jsx("input",{type:"text",inputMode:"numeric",pattern:"[0-9]*",className:"custom-size-input",value:y,onChange:G=>h(G.target.value.replace(/\D/g,"")),onBlur:ee,onKeyDown:I,placeholder:f("size.height")})]}),d.jsxs("div",{className:"size-picker__preview",children:[d.jsx("span",{children:f("size.normalizedPreview")}),d.jsx("strong",{children:A1(K.w,K.h)})]}),d.jsx("div",{className:"size-picker__preview size-picker__preview--reason",children:Ie}),W?d.jsx("div",{className:"size-picker__preview size-picker__preview--detail",children:W}):null,v.length>=El?d.jsxs("div",{className:"size-picker__replace-row",children:[d.jsx("span",{children:f("size.replaceCustomSlot")}),v.map(G=>d.jsxs("button",{type:"button",className:`size-picker__replace${T===G.id?" active":""}`,onClick:()=>j(G.id),children:[G.w,"×",G.h]},G.id))]}):null,d.jsx("button",{type:"button",className:"size-picker__save",onClick:we,children:v.length>=El?f("size.replaceCustomSlot"):f("size.saveCustomSlot")}),d.jsx("div",{className:"size-hint",children:f("size.hint")})]}):null]})}const ku=[1,2,4];function nE(){const a=N(A=>A.count),r=N(A=>A.setCount),l=N(A=>A.uiMode),o=N(A=>A.multimode),c=N(A=>A.multimodeMaxImages),f=N(A=>A.setMultimodeMaxImages),{t:p}=ye(),m=l==="classic"&&o,y=m?c:a,h=m?f:r,[x,b]=z.useState(!ku.includes(y)),[v,_]=z.useState(String(y));z.useEffect(()=>{b(!ku.includes(y)),_(String(y))},[m,y]);function T(A=v){const K=Uu(Number.parseInt(A,10));h(K),_(String(K))}function j(A){b(!1),_(String(A)),h(A)}function R(A){const K=Uu(y+A);b(!0),_(String(K)),h(K)}function C(A){A.key==="Enter"&&(A.preventDefault(),T())}return d.jsxs("div",{className:"option-group count-picker",children:[d.jsx("div",{className:"section-title",children:p(m?"multimode.maxStages":"count.title")}),d.jsxs("div",{className:"option-row",children:[ku.map(A=>d.jsx("button",{type:"button",className:`option-btn${y===A&&!x?" active":""}`,onClick:()=>j(A),children:A},A)),d.jsx("button",{type:"button",className:`option-btn${x?" active":""}`,onClick:()=>{b(A=>!A),_(String(y))},children:p("count.customPlus")})]}),x?d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"count-picker__custom",children:[d.jsx("button",{type:"button",className:"count-picker__step",onClick:()=>R(-1),"aria-label":p("count.decrease"),children:"-"}),d.jsx("input",{type:"text",inputMode:"numeric",pattern:"[0-9]*",className:"count-picker__input",value:v,onChange:A=>_(A.target.value.replace(/\D/g,"")),onBlur:()=>T(),onKeyDown:C,"aria-label":p("count.customLabel")}),d.jsx("button",{type:"button",className:"count-picker__step",onClick:()=>R(1),"aria-label":p("count.increase"),children:"+"})]}),d.jsx("p",{className:"option-help",children:y>=5?p(m?"multimode.highCountHint":"count.highCountHint"):p(m?"multimode.minMaxHint":"count.minMaxHint")})]}):null]})}const lE={low:{"1024x1024":.006,"1024x1536":.005,"1536x1024":.005,"1024x1360":.005,"1360x1024":.005,"1024x1824":.006,"1824x1024":.006,"2048x2048":.012,"2048x1152":.009,"1152x2048":.009,"3840x2160":.023,"2160x3840":.023,auto:.006},medium:{"1024x1024":.053,"1024x1536":.041,"1536x1024":.041,"1024x1360":.041,"1360x1024":.041,"1024x1824":.05,"1824x1024":.05,"2048x2048":.106,"2048x1152":.08,"1152x2048":.08,"3840x2160":.2,"2160x3840":.2,auto:.053},high:{"1024x1024":.211,"1024x1536":.165,"1536x1024":.165,"1024x1360":.165,"1360x1024":.165,"1024x1824":.2,"1824x1024":.2,"2048x2048":.422,"2048x1152":.32,"1152x2048":.32,"3840x2160":.8,"2160x3840":.8,auto:.211}},iE={512:.045,"1K":.067,"2K":.101,"4K":.151},oE={512:.134,"1K":.134,"2K":.134,"4K":.24};function rE(a){return a<=512?"512":a<=1024?"1K":a<=2048?"2K":"4K"}function sE(a,r){const l=a.match(/^(\d+)x(\d+)$/);if(!l)return .003;const o=Math.max(Number(l[1]),Number(l[2])),c=rE(o),p=r==="nano-banana-pro"?oE:iE;return p[c]??p["1K"]??.003}function cE(a,r,l,o){return l==="gemini-api"?sE(r,o):lE[a]?.[r]??0}function uE(){const{t:a}=ye(),r=N(v=>v.provider),l=N(v=>v.quality),o=N(v=>v.multimode),c=N(v=>v.multimodeMaxImages),p=N(v=>v.getResolvedSize)(),m=N(v=>v.imageModel),y=r==="oauth"||r==="grok"||r==="agy",h=cE(l,p,r,m),x=y?a("cost.free"):o?a("cost.multimodeApprox",{amount:(h*c).toFixed(3),count:c}):a("cost.approx",{amount:h.toFixed(3)}),b=y?"var(--green)":void 0;return d.jsxs("div",{className:"cost-estimate",children:[d.jsx("span",{children:a("cost.label")}),d.jsx("span",{className:"price",style:b?{color:b}:void 0,children:x})]})}function Vy(){const[a,r]=z.useState(null);return z.useEffect(()=>{let l=!1,o=null;const c=async()=>{try{const f=await LS();if(l)return;r(f),f.status==="starting"&&(o=setTimeout(c,3e3))}catch{l||r(null)}};return c(),()=>{l=!0,o&&clearTimeout(o)}},[]),a}function dE(){const[a,r]=z.useState(null),[l,o]=z.useState(!1);return z.useEffect(()=>{let c=!1;return DS().then(f=>{c||r(f)}).catch(()=>{c||o(!0)}),()=>{c=!0}},[]),{data:a,error:l}}function Ky(){const[a,r]=z.useState(null);return z.useEffect(()=>{let l=!1,o=null;const c=async()=>{try{const f=await fetch("/api/grok/status");if(l)return;const p=await f.json();r(p),p.status!=="ready"&&(o=setTimeout(c,1e4))}catch{l||r({status:"offline"})}};return c(),()=>{l=!0,o&&clearTimeout(o)}},[]),a}function Yy(){const[a,r]=z.useState(null),[l,o]=z.useState(null),c=z.useCallback(async()=>{try{const p=await(await fetch("/api/keys/status")).json();r(p),o(null)}catch(f){o(f instanceof Error?f:new Error(String(f)))}},[]);return z.useEffect(()=>{let f=!1,p=null;return(async()=>(await c(),f||(p=setInterval(c,3e4))))(),()=>{f=!0,p&&clearInterval(p)}},[c]),{data:a,error:l,mutate:c}}function fE({open:a,providerLabel:r,reason:l,hint:o,onClose:c}){const{t:f}=ye();if(z.useEffect(()=>{if(!a)return;const m=y=>{y.key==="Escape"&&c()};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[a,c]),!a)return null;const p=f("apiDisabled.title",{provider:r});return d.jsx("div",{className:"modal-backdrop",onClick:c,role:"presentation",children:d.jsxs("div",{className:"modal",role:"dialog","aria-modal":"true","aria-label":p,onClick:m=>m.stopPropagation(),children:[d.jsx("div",{className:"modal__title",children:p}),d.jsxs("div",{className:"modal__body",children:[d.jsx("p",{children:l}),o?d.jsx("p",{className:"modal__hint",children:o}):null]}),d.jsx("div",{className:"modal__actions",children:d.jsx("button",{type:"button",className:"modal__btn",onClick:c,children:f("common.ok")})})]})})}function Xy(){const{t:a}=ye(),r=Vy(),{data:l}=dE(),o=Ky(),{data:c}=Yy(),f=r?.status==="ready";let p=a("provider.oauthNotReady"),m;r?.status==="auth_required"?(p=a("provider.codexLoginRequired"),m=a("provider.codexLoginHint")):r?.status==="starting"?p=a("provider.oauthStarting"):r||(p=a("provider.serverUnreachable"));const y=l?.apiKeyValid===!0,h=o?.status==="ready",x=o?o.status==="offline"?a("provider.grokOffline"):o.status==="no_image_model"?a("provider.grokNoImageModel"):o.status==="error"?a("provider.grokNotReady"):"":a("provider.grokNotReady"),b=c?.xai?.valid===!0,v=c?.gemini?.valid===!0||c?.vertex?.valid===!0;return{oauth:{ok:f,reason:p,hint:m},api:{ok:y,reason:y?"":a("provider.apiInvalid")},grok:{ok:h,reason:x,hint:h?void 0:a("provider.grokOfflineHint")},"grok-api":{ok:b,reason:b?"":a("provider.xaiApiKeyRequired")},agy:{ok:!0,reason:""},"gemini-api":{ok:v,reason:v?"":a("provider.geminiApiKeyRequired")}}}const og=[{header:"GPT",cells:[{value:"oauth",label:"OAuth"},{value:"api",label:"API"}]},{header:"Grok",cells:[{value:"grok",label:"OAuth"},{value:"grok-api",label:"API"}]},{header:"Gemini",cells:[{value:"agy",label:"agy"},{value:"gemini-api",label:"API"}]}];function mE({allowGrok:a=!0}){const{t:r}=ye(),l=N(b=>b.provider),o=N(b=>b.setProvider),c=Xy(),[f,p]=z.useState(null),m={...c,grok:a?c.grok:{ok:!1,reason:r("provider.grokClassicOnly"),hint:r("provider.grokClassicOnlyHint")}},y=b=>{b.disabled||(m[b.value].ok?o(b.value):p(b.value))},h=f?og.flatMap(b=>b.cells).find(b=>b.value===f)?.label??"":"",x=f?{label:h,...m[f]}:null;return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"section-title",children:r("provider.authTitle")}),d.jsx("div",{className:"provider-grid",children:og.map(b=>d.jsxs("div",{className:"provider-grid__col",children:[d.jsx("div",{className:"provider-grid__header",children:b.header}),b.cells.map((v,_)=>{const T=!v.disabled&&l===v.value,j=v.disabled?!1:m[v.value].ok,R=`${b.header} ${v.label}`;return d.jsxs("button",{type:"button",className:`provider-pill${T?" selected":""}${v.disabled?" disabled":""}`,onClick:()=>y(v),disabled:v.disabled,title:v.disabled?r("provider.comingSoon"):j?R:m[v.value].reason,"aria-label":v.disabled?`${R} (coming soon)`:j?r("provider.availableAria",{name:R}):r("provider.unavailableAria",{name:R}),"aria-pressed":T,children:[!v.disabled&&d.jsx("span",{className:`status-dot ${j?"status-dot--ok":"status-dot--bad"}`,"aria-hidden":"true"}),d.jsx("span",{children:v.label})]},`${b.header}-${_}`)})]},b.header))}),d.jsx(fE,{open:!!x,providerLabel:x?.label??"",reason:x?.reason??"",hint:x?.hint,onClose:()=>p(null)})]})}const pE=[{value:"1:1",label:"1:1"},{value:"3:2",label:"3:2"},{value:"2:3",label:"2:3"},{value:"4:3",label:"4:3"},{value:"3:4",label:"3:4"},{value:"16:9",label:"16:9"},{value:"9:16",label:"9:16"},{value:"2:1",label:"2:1"},{value:"1:2",label:"1:2"},{value:"auto",label:"Auto"}],hE=[{value:"1k",label:"1K"},{value:"2k",label:"2K"}];function gE(){const{t:a}=ye(),r=N(f=>f.grokAspectRatio),l=N(f=>f.grokResolution),o=N(f=>f.setGrokAspectRatio),c=N(f=>f.setGrokResolution);return d.jsxs("div",{className:"option-group grok-size-picker",children:[d.jsx("div",{className:"section-title",children:a("size.grokAspectTitle")}),d.jsx("div",{className:"grok-size-picker__aspects",children:pE.map(f=>d.jsx("button",{type:"button",className:`option-btn grok-size-picker__aspect${r===f.value?" active":""}`,onClick:()=>o(f.value),children:f.label},f.value))}),d.jsx("div",{className:"section-title",style:{marginTop:8},children:a("size.grokResolutionTitle")}),d.jsx("div",{className:"grok-size-picker__resolutions",children:hE.map(f=>d.jsx("button",{type:"button",className:`option-btn grok-size-picker__res${l===f.value?" active":""}`,onClick:()=>c(f.value),children:f.label},f.value))})]})}const yE=[{value:"grok-imagine-image",label:"Grok",sub:"Fast"},{value:"grok-imagine-image-quality",label:"Grok+",sub:"Best"}];function vE(){const{t:a}=ye(),r=N(o=>o.imageModel),l=N(o=>o.setImageModel);return d.jsxs("div",{className:"option-group",children:[d.jsx("div",{className:"section-title",children:a("quality.grokModelTitle")}),d.jsx("div",{className:"option-row",children:yE.map(o=>d.jsxs("button",{type:"button",className:`option-btn${r===o.value?" active":""}`,onClick:()=>l(o.value),children:[o.label,d.jsx("br",{}),d.jsx("span",{className:"option-sub",children:o.sub})]},o.value))})]})}const bE=[{value:"480p",label:"480p"},{value:"720p",label:"720p"},{value:"1080p",label:"1080p",sub:"1.5 HD"}],SE=["auto","1:1","16:9","9:16","4:3","3:4","3:2","2:3"].map(a=>({value:a,label:a})),xE=[3,5,8,10,12,15],_E=[{value:Xu,label:"Grok V",sub:"Fast"},{value:jn,label:"Grok V1.5",sub:"HD"}];function TE(){const{t:a}=ye(),r=N(I=>I.videoModelSelected),l=N(I=>I.selectVideoModel),o=N(I=>I.activeVideoRefCount()),c=N(I=>I.videoDuration),f=N(I=>I.setVideoDuration),p=N(I=>I.videoResolution),m=N(I=>I.setVideoResolution),y=N(I=>I.videoAspectRatio),h=N(I=>I.setVideoAspectRatio),x=N(I=>I.videoTopic),b=N(I=>I.setVideoTopic),v=N(I=>I.videoContinuityLineage),_=o>=2?Ig:15,T=Mg(o),j=Cy(v),R=Cu(r,"1080p",T),C=Cu(jn,"1080p",T),A=bE.map(I=>I.value==="1080p"?{...I,disabled:!C}:I);z.useEffect(()=>{Cu(r,p,T)||m("720p")},[T,p,m,r]);const K=I=>{if(I==="1080p"){if(!C)return;R||l(jn)}m(I)},[V,te]=z.useState(null);z.useEffect(()=>{fetch("/api/config/grok-planner").then(I=>I.json()).then(te).catch(()=>{})},[]);const ee=async I=>{try{await fetch("/api/config/grok-planner",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:I})}),te(le=>le?{...le,model:I}:null)}catch{}};return d.jsxs("div",{className:"right-panel-settings video-controls",children:[d.jsxs("div",{className:"option-group",children:[d.jsx("div",{className:"section-title",children:a("quality.grokModelTitle")??"Model"}),d.jsx("div",{className:"option-row",children:_E.map(I=>d.jsxs("button",{type:"button",className:`option-btn${r===I.value?" active":""}`,onClick:()=>l(I.value),children:[I.label,d.jsx("br",{}),d.jsx("span",{className:"option-sub",children:I.sub})]},I.value))})]}),d.jsxs("div",{className:"provider-compat-note",role:"note",children:[d.jsx("strong",{children:a("video.modeLabel")}),d.jsx("span",{children:a(`video.mode.${T}`,{n:o})})]}),j?d.jsxs("div",{className:"provider-compat-note",role:"note",children:[d.jsx("strong",{children:"Continuity"}),d.jsx("span",{children:j})]}):null,d.jsxs("div",{className:"option-group",children:[d.jsx("div",{className:"section-title",children:a("video.seriesTopicTitle")??"시리즈 주제"}),d.jsx("input",{type:"text",className:"video-topic-input",placeholder:a("video.seriesTopicPlaceholder")??"예: 한국 여행 브이로그",value:x,onChange:I=>b(I.target.value)})]}),d.jsxs("div",{className:"option-group",children:[d.jsx("div",{className:"section-title",children:a("video.durationTitle")}),d.jsx("div",{className:"option-row",children:xE.filter(I=>I<=_).map(I=>d.jsxs("button",{type:"button",className:`option-btn${c===I?" active":""}`,onClick:()=>f(I),children:[I,"s"]},I))})]}),d.jsx(da,{title:a("video.resolutionTitle"),help:C?void 0:a("video.resolution1080Help"),items:A,value:p,onChange:K}),d.jsx(da,{title:a("video.aspectTitle"),items:SE,value:y,onChange:h}),V&&d.jsx("div",{className:"video-controls__pills",children:d.jsx("select",{className:"video-controls__pill",value:V.model,onChange:I=>{ee(I.target.value)},"aria-label":a("video.plannerModelTitle"),children:V.options.map(I=>d.jsx("option",{value:I,children:I},I))})}),d.jsxs("details",{className:"provider-compat-details",style:{marginTop:8},children:[d.jsx("summary",{children:"Active prompt"}),d.jsx("p",{children:Vr})]})]})}const NE=[{value:"png",label:"PNG"},{value:"jpeg",label:"JPEG"},{value:"webp",label:"WebP"}],Mr=[{value:"1:1",label:"1:1"},{value:"2:3",label:"2:3"},{value:"3:2",label:"3:2"},{value:"3:4",label:"3:4"},{value:"4:3",label:"4:3"},{value:"4:5",label:"4:5"},{value:"5:4",label:"5:4"},{value:"9:16",label:"9:16"},{value:"16:9",label:"16:9"},{value:"21:9",label:"21:9"}],AE=[{value:"512",label:"512px"},{value:"1K",label:"1K"},{value:"2K",label:"2K"},{value:"4K",label:"4K"}],Yr={"1:1":{512:"512x512","1K":"1024x1024","2K":"2048x2048","4K":"4096x4096"},"2:3":{512:"424x632","1K":"848x1264","2K":"1696x2528","4K":"3392x5056"},"3:2":{512:"632x424","1K":"1264x848","2K":"2528x1696","4K":"5056x3392"},"3:4":{512:"448x600","1K":"896x1200","2K":"1792x2400","4K":"3584x4800"},"4:3":{512:"600x448","1K":"1200x896","2K":"2400x1792","4K":"4800x3584"},"4:5":{512:"464x576","1K":"928x1152","2K":"1856x2304","4K":"3712x4608"},"5:4":{512:"576x464","1K":"1152x928","2K":"2304x1856","4K":"4608x3712"},"9:16":{512:"384x688","1K":"768x1376","2K":"1536x2752","4K":"3072x5504"},"16:9":{512:"688x384","1K":"1376x768","2K":"2752x1536","4K":"5504x3072"},"21:9":{512:"792x168","1K":"1584x672","2K":"3168x1344","4K":"6336x2688"}};function EE(a){for(const[r,l]of Object.entries(Yr))for(const[o,c]of Object.entries(l))if(c===a)return{ratio:r,res:o};return null}function CE(a,r){const l=a/r;let o="1:1",c=1/0;const f=[...Object.keys(Yr),"1:8","8:1","1:4","4:1"];for(const y of f){const[h,x]=y.split(":").map(Number),b=Math.abs(l-h/x);b<c&&(c=b,o=y)}const p=Math.max(a,r),m=p<=512?"512":p<=1024?"1K":p<=2048?"2K":"4K";return{ratio:o,res:m}}function Qy(){const{t:a}=ye(),r=N($=>$.provider),l=N($=>$.quality),o=N($=>$.setQuality),c=N($=>$.format),f=N($=>$.setFormat),p=N($=>$.moderation),m=N($=>$.setModeration),y=N($=>$.multimode),h=N($=>$.setMultimode),x=N($=>$.imageModel),b=N($=>$.setImageModel),v=N($=>$.selectVideoModel),_=N($=>$.sizePreset),T=N($=>$.customW),j=N($=>$.customH),R=N($=>$.setSizePreset),C=N($=>$.setCustomSize),A=N($=>$.uiMode),K=N($=>$.videoModelSelected),V=A==="classic",te=r==="grok"||r==="grok-api",ee=r==="agy",I=r==="gemini-api",le=ee||I,Ce=te||le,Be=_==="custom"?`${T}x${j}`:"1024x1024",De=I&&_==="auto",we=I&&!De?EE(Be):null,Ie=we??{ratio:"",res:""},W=I&&!De&&_==="custom"&&!we,G=x==="nano-banana-pro"?"nano-banana-pro":"nano-banana-2",[L,D]=z.useState(!1),[J,se]=z.useState(String(T)),[me,w]=z.useState(String(j)),k=($,Xe)=>{const lt=Yr[$||"1:1"]?.[Xe||"1K"]||"1024x1024",[ia,ya]=lt.split("x").map(Number);D(!1),R("custom"),C(ia,ya)},Q=()=>{const $=Number(J),Xe=Number(me);!Number.isFinite($)||!Number.isFinite(Xe)||$<=0||Xe<=0||(R("custom"),C($,Xe),D(!1))},ne=[{value:"low",label:a("quality.lowLabel"),sub:a("quality.lowSub")},{value:"medium",label:a("quality.mediumLabel"),sub:a("quality.mediumSub")},{value:"high",label:a("quality.highLabel"),sub:a("quality.highSub")}],ce=[{value:"auto",label:a("moderation.autoLabel"),sub:a("moderation.autoSub")},{value:"low",label:a("moderation.lowLabel"),sub:a("moderation.lowSub"),color:"var(--amber)"}],de=[{value:"nano-banana-2",label:"Nano",sub:"Banana 2"},{value:"nano-banana-pro",label:"Nano",sub:"Banana Pro"}],he=te?{title:a("provider.grokCompatTitle"),body:a("provider.grokCompatBody")}:ee?{title:a("provider.agyCompatTitle"),body:a("provider.agyCompatBody")}:I?{title:a("provider.geminiApiCompatTitle"),body:a("provider.geminiApiCompatBody")}:{title:a("provider.gptCompatTitle"),body:a("provider.gptCompatBody")},je=$=>{$==="video"?v("grok-imagine-video"):b(x)};return d.jsxs("div",{className:"right-panel-settings",role:"tabpanel",children:[d.jsx(mE,{allowGrok:!0}),d.jsxs("details",{className:"provider-compat-details",children:[d.jsx("summary",{children:he.title}),d.jsx("p",{children:he.body})]}),te&&d.jsx("div",{className:"option-group grok-mode-toggle",children:d.jsxs("div",{className:"option-row",children:[d.jsx("button",{type:"button",className:`option-btn${K?"":" active"}`,onClick:()=>je("image"),children:a("grokMode.image")}),d.jsx("button",{type:"button",className:`option-btn${K?" active":""}`,onClick:()=>je("video"),children:a("grokMode.video")})]})}),K?d.jsx(TE,{}):d.jsxs(d.Fragment,{children:[ee?null:te?d.jsxs(d.Fragment,{children:[d.jsx(vE,{}),d.jsx(gE,{})]}):I?d.jsxs(d.Fragment,{children:[d.jsx(da,{title:a("quality.grokModelTitle"),items:de,value:G,onChange:b}),d.jsxs("div",{className:"option-group",children:[d.jsx("div",{className:"section-title",children:a("size.grokAspectTitle")||"Aspect Ratio"}),[Mr.slice(0,3),Mr.slice(3,6),Mr.slice(6,8),Mr.slice(8)].map(($,Xe)=>d.jsx("div",{className:"option-row",children:$.map(lt=>d.jsx("button",{type:"button",className:`option-btn${Ie.ratio===lt.value?" active":""}`,onClick:()=>k(lt.value,Ie.res),children:lt.label},lt.value))},Xe))]}),d.jsxs("div",{className:"option-group",children:[d.jsx("div",{className:"section-title",children:a("size.grokResolutionTitle")||"Resolution"}),d.jsx("div",{className:"gemini-resolution-grid",children:AE.map($=>d.jsxs("button",{type:"button",className:`option-btn${Ie.res===$.value?" active":""}`,onClick:()=>k(Ie.ratio,$.value),children:[d.jsx("span",{children:$.label}),d.jsx("br",{}),d.jsx("small",{children:Yr[Ie.ratio]?.[$.value]?.replace("x","×")||""})]},$.value))})]}),d.jsxs("div",{className:"option-group",children:[d.jsxs("div",{className:"option-row",children:[d.jsxs("button",{type:"button",className:`option-btn${De?" active":""}`,onClick:()=>{D(!1),R("auto")},children:[a("size.autoLabel"),d.jsx("br",{}),d.jsx("span",{className:"option-sub",children:a("size.autoSub")})]}),d.jsxs("button",{type:"button",className:`option-btn${W||L?" active":""}`,onClick:()=>D($=>!$),children:[a("size.customPlus"),d.jsx("br",{}),d.jsx("span",{className:"option-sub",children:a("size.customSub")})]})]}),L?d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"option-row size-picker__custom-row",children:[d.jsx("input",{type:"text",inputMode:"numeric",pattern:"[0-9]*",className:"custom-size-input",value:J,onChange:$=>se($.target.value.replace(/\D/g,"")),placeholder:a("size.width")}),d.jsx("span",{className:"size-picker__dimension-separator","aria-hidden":"true",children:"×"}),d.jsx("input",{type:"text",inputMode:"numeric",pattern:"[0-9]*",className:"custom-size-input",value:me,onChange:$=>w($.target.value.replace(/\D/g,"")),placeholder:a("size.height")})]}),Number(J)>0&&Number(me)>0?d.jsxs("div",{className:"size-picker__preview",children:[d.jsx("span",{children:a("size.normalizedPreview")}),d.jsx("strong",{children:(()=>{const $=CE(Number(J),Number(me));return`${$.ratio} · ${$.res}`})()})]}):null,d.jsx("button",{type:"button",className:"size-picker__save",onClick:Q,children:a("settings.apiKeys.save")})]}):null]})]}):d.jsxs(d.Fragment,{children:[d.jsx(da,{title:a("quality.title"),items:ne,value:l,onChange:o}),d.jsx(aE,{})]}),Ce?null:d.jsxs(d.Fragment,{children:[d.jsx(da,{title:a("format.title"),items:NE,value:c,onChange:f}),d.jsx(da,{title:a("moderation.title"),items:ce,value:p,onChange:m}),d.jsx("p",{className:"option-help",children:a("moderation.explain")})]}),V&&!le&&d.jsx("div",{className:"option-group multimode-toggle",children:d.jsxs("button",{type:"button",className:`multimode-toggle__button${y?" active":""}`,"aria-pressed":y,title:a("multimode.tooltip"),onClick:()=>h(!y),children:[d.jsx("span",{children:a("multimode.label")}),d.jsx("span",{children:a("multimode.shortHint")})]})}),le?null:d.jsx(nE,{}),d.jsx(uE,{})]})]})}const wE=z.lazy(()=>ha(()=>import("./PromptLibraryPanel-Co9xIawD.js"),[]).then(a=>({default:a.PromptLibraryPanel}))),IE=z.lazy(()=>ha(()=>import("./PromptBuilderPanel-CWbdfzpF.js"),[]).then(a=>({default:a.PromptBuilderPanel}))),ME=z.lazy(()=>ha(()=>import("./GenerationRequestLogPanel-BPc4gDcY.js"),[]).then(a=>({default:a.GenerationRequestLogPanel})));function RE(){const a=N(R=>R.rightPanelOpen),r=N(R=>R.toggleRightPanel),l=N(R=>R.promptLibraryOpen),o=N(R=>R.setPromptLibraryOpen),c=N(R=>R.promptBuilderOpen),f=N(R=>R.togglePromptBuilder),p=N(R=>R.workspaceProfile),{t:m}=ye(),[y,h]=z.useState(typeof window<"u"?window.matchMedia("(max-width: 800px)").matches:!1);z.useEffect(()=>{if(typeof window>"u")return;const R=window.matchMedia("(max-width: 800px)"),C=()=>h(R.matches);return R.addEventListener("change",C),()=>R.removeEventListener("change",C)},[]);const[x,b]=z.useState(!1),v=iT(p)&&!y,_=y?a:!0,T=x?"log":c&&v?"builder":l?"library":"settings",j=R=>{b(R==="log"),R==="builder"?(c||f(),l&&o(!1)):R==="library"?(c&&f(),l||o(!0)):(c&&f(),l&&o(!1))};return d.jsxs(d.Fragment,{children:[y&&a?d.jsx("div",{className:"right-panel-backdrop",role:"button","aria-label":m("panel.closeSettings"),onClick:r}):null,d.jsxs("aside",{className:`right-panel${a?"":" collapsed"}${y&&_?" drawer-open":""}`,"aria-label":m("panel.detailSettings"),children:[!y&&d.jsx("button",{type:"button",className:"right-panel-toggle","aria-expanded":a,"aria-controls":"right-panel-body",onClick:r,title:m(a?"panel.toggleHide":"panel.toggleShow"),children:a?">":"<"}),d.jsxs("div",{id:"right-panel-body",className:"right-panel-body",hidden:!a,children:[d.jsxs("div",{className:"right-panel-tabs",role:"tablist","aria-label":m("panel.detailSettings"),children:[v?d.jsx("button",{type:"button",role:"tab","aria-selected":T==="builder",className:`right-panel-tabs__button${T==="builder"?" active":""}`,onClick:()=>j("builder"),children:m("promptBuilder.title")}):null,d.jsx("button",{type:"button",role:"tab","aria-selected":T==="settings",className:`right-panel-tabs__button${T==="settings"?" active":""}`,onClick:()=>j("settings"),children:m("panel.detailSettings")}),d.jsx("button",{type:"button",role:"tab","aria-selected":T==="library",className:`right-panel-tabs__button right-panel-tabs__button--full${T==="library"?" active":""}`,onClick:()=>j("library"),children:m("promptLibrary.title")}),d.jsx("button",{type:"button",role:"tab","aria-selected":T==="log",className:`right-panel-tabs__button${T==="log"?" active":""}`,onClick:()=>j("log"),children:m("generationLog.title")})]}),T==="builder"&&v?d.jsx(z.Suspense,{fallback:d.jsx("div",{className:"prompt-library-panel__loading",children:m("common.loading")}),children:d.jsx(IE,{variant:"sidebar"})}):T==="library"?d.jsx(z.Suspense,{fallback:d.jsx("div",{className:"prompt-library-panel__loading",children:m("common.loading")}),children:d.jsx(wE,{variant:"embedded"})}):T==="log"?d.jsx(z.Suspense,{fallback:d.jsx("div",{className:"prompt-library-panel__loading",children:m("common.loading")}),children:d.jsx(ME,{})}):d.jsx(Qy,{})]})]})]})}function OE(a){const r=a.currentTarget;if(r.scrollWidth<=r.clientWidth||!(Math.abs(a.deltaY)>Math.abs(a.deltaX)))return;const o=r.scrollLeft<=0,c=r.scrollLeft+r.clientWidth>=r.scrollWidth-1,f=a.deltaY<0,p=a.deltaY>0;f&&o||p&&c||(a.preventDefault(),r.scrollLeft+=a.deltaY)}function jE({id:a}){return d.jsx("div",{className:"history-thumb history-thumb--skeleton","aria-label":"Generating..."},a)}function kE({id:a,count:r}){const l=Math.min(r,4);return d.jsx("div",{className:"history-thumb history-thumb--collection-skeleton","aria-label":`Generating ${r} images...`,children:Array.from({length:l},(o,c)=>d.jsx("div",{className:"collection-mini collection-mini--skeleton"},c))},`coll-${a}`)}function zE({sequenceId:a,images:r}){const l=N(p=>p.showHistorySequence),c=N(p=>p.multimodePreviewFlightId)===`history:${a}`,f=r.slice(0,4);return d.jsx("button",{type:"button",className:`history-thumb history-thumb--collection${c?" active":""}`,onClick:()=>l(a),"aria-label":`${r.length} image collection`,children:f.map((p,m)=>!p.thumb&&(fa(p.url)||fa(p.image))?d.jsx(Rl,{className:"collection-mini"},m):d.jsx("img",{className:"collection-mini",src:p.thumb||p.url||p.image,alt:"",loading:"lazy",decoding:"async"},m))})}function LE(){const a=N(T=>T.history),r=N(T=>T.currentImage),l=N(T=>T.historyStripLayout),o=N(T=>T.selectHistory),c=N(T=>T.openGallery),f=N(T=>T.inFlight),p=N(T=>T.multimodeSequences),m=z.useRef({}),{t:y}=ye(),h=r?bt(r):null,x=z.useMemo(()=>Dr(a.filter(ki)),[a]),b=z.useMemo(()=>{const T=[];for(const j of f){const R=p[j.id];if(j.kind==="multimode"&&R){T.push({type:"collection-skeleton",id:j.id,count:R.requested});for(let C=0;C<R.requested;C++)R.images[C]||T.push({type:"skeleton",id:`${j.id}_${C}`,count:1})}else T.push({type:"skeleton",id:j.id,count:1})}return T},[f,p]),{completedSequences:v,sequenceFirstKeys:_}=z.useMemo(()=>{const T=new Map,j=new Set;for(const R of x)if(R.sequenceId&&(R.sequenceTotalRequested??0)>1){T.has(R.sequenceId)||j.add(bt(R));const C=T.get(R.sequenceId)||[];C.push(R),T.set(R.sequenceId,C)}return{completedSequences:T,sequenceFirstKeys:j}},[x]);return z.useEffect(()=>{h&&m.current[h]?.scrollIntoView({block:"nearest",inline:"nearest"})},[h,x]),d.jsxs("div",{className:`history-strip${l==="horizontal"?" history-strip--horizontal":""}${l==="sidebar"?" history-strip--sidebar":""}`,onWheel:OE,"data-layout":l,children:[d.jsx("button",{type:"button",className:"history-thumb history-thumb--add",onClick:c,"aria-label":y("history.openGalleryAria"),title:y("history.openGalleryTitle"),children:d.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[d.jsx("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),d.jsx("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),d.jsx("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),d.jsx("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})]})}),b.map(T=>T.type==="collection-skeleton"?d.jsx(kE,{id:T.id,count:T.count},`coll-${T.id}`):d.jsx(jE,{id:T.id},T.id)),x.map(T=>{const j=bt(T),R=h===j;if(T.sequenceId&&v.has(T.sequenceId)&&_.has(j)){const C=v.get(T.sequenceId);return[d.jsx(zE,{sequenceId:T.sequenceId,images:C},`coll-${T.sequenceId}`),...C.map(A=>{const K=bt(A),V=h===K;return $t(A)?d.jsxs("div",{ref:te=>{m.current[K]=te},className:`history-thumb history-thumb--video history-thumb--fade-in${V?" active":""}`,onClick:()=>o(A),draggable:!0,onDragStart:te=>{te.dataTransfer.setData("application/ima2-ref",JSON.stringify(Pi(A))),te.dataTransfer.effectAllowed="copy"},children:[A.thumb?d.jsx("img",{src:A.thumb,alt:"",loading:"lazy",decoding:"async"}):d.jsx(Rl,{}),d.jsx("span",{className:"history-thumb__play-badge","aria-hidden":"true",children:"▶"})]},K):d.jsx("img",{ref:te=>{m.current[K]=te},src:A.thumb||A.url||A.image,alt:"",className:`history-thumb history-thumb--fade-in${V?" active":""}`,loading:"lazy",decoding:"async",onClick:()=>o(A),draggable:!0,onDragStart:te=>{te.dataTransfer.setData("application/ima2-ref",JSON.stringify({image:A.url||A.image,filename:A.filename})),te.dataTransfer.effectAllowed="copy"}},K)})]}return T.sequenceId&&v.has(T.sequenceId)&&!_.has(j)?null:$t(T)?d.jsxs("div",{ref:C=>{m.current[j]=C},className:`history-thumb history-thumb--video${R?" active":""}`,onClick:()=>o(T),draggable:!0,onDragStart:C=>{C.dataTransfer.setData("application/ima2-ref",JSON.stringify(Pi(T))),C.dataTransfer.effectAllowed="copy"},children:[T.thumb?d.jsx("img",{src:T.thumb,alt:"",loading:"lazy",decoding:"async"}):d.jsx(Rl,{}),d.jsx("span",{className:"history-thumb__play-badge","aria-hidden":"true",children:"▶"})]},j):d.jsx("img",{ref:C=>{m.current[j]=C},src:T.thumb||T.url||T.image,alt:"",className:`history-thumb${R?" active":""}`,loading:"lazy",decoding:"async",onClick:()=>o(T),draggable:!0,onDragStart:C=>{C.dataTransfer.setData("application/ima2-ref",JSON.stringify({image:T.url||T.image,filename:T.filename})),C.dataTransfer.effectAllowed="copy"}},j)})]})}const rg=3e3;function DE(){const{t:a}=ye(),r=N(h=>h.toastLog),l=N(h=>h.errorCardLog),o=N(h=>h.dismissToast),c=N(h=>h.dismissErrorCard),[f,p]=z.useState(()=>typeof document>"u"?!0:document.visibilityState==="visible"),m=z.useRef(new Map);z.useEffect(()=>{const h=()=>p(document.visibilityState==="visible");return document.addEventListener("visibilitychange",h),window.addEventListener("focus",h),window.addEventListener("blur",h),()=>{document.removeEventListener("visibilitychange",h),window.removeEventListener("focus",h),window.removeEventListener("blur",h)}},[]),z.useEffect(()=>{const h=m.current,x=new Set([...r.map(b=>`toast-${b.id}`),...l.map(b=>`error-card-${b.id}`)]);for(const[b,v]of h)(!x.has(b)||!f)&&(clearTimeout(v),h.delete(b));if(f){for(const b of r){const v=`toast-${b.id}`;if(h.has(v))continue;const _=setTimeout(()=>{h.delete(v),o(b.id)},rg);h.set(v,_)}for(const b of l){const v=`error-card-${b.id}`;if(h.has(v))continue;const _=setTimeout(()=>{h.delete(v),c(b.id)},rg);h.set(v,_)}}},[c,o,l,f,r]),z.useEffect(()=>()=>{for(const h of m.current.values())clearTimeout(h);m.current.clear()},[]);const y=[...r.map(h=>({kind:"toast",id:h.id,key:`toast-${h.id}`,message:h.message,error:h.error,createdAt:h.createdAt})),...l.map(h=>{const x=ji[h.code]??ji.UNKNOWN,b=a(`${x.cardKey??"errorCard.unknown"}.title`),v=a(`${x.cardKey??"errorCard.unknown"}.body`);return{kind:"error-card",id:h.id,key:`error-card-${h.id}`,message:h.fallbackMessage?`${b}: ${v} ${h.fallbackMessage}`:`${b}: ${v}`,error:!0,createdAt:h.createdAt}})].sort((h,x)=>h.createdAt-x.createdAt).slice(-5);return y.length===0?null:d.jsx("div",{className:"toast-stack","aria-live":"polite","aria-relevant":"additions removals",children:y.map(h=>{const x=["toast","visible",h.error?"error":"",h.kind==="error-card"?"toast--card":""].filter(Boolean).join(" ");return d.jsxs("div",{className:x,role:h.error?"alert":"status",children:[d.jsx("span",{className:"toast__message",children:h.message}),d.jsx("button",{type:"button",className:"toast__dismiss","aria-label":"Dismiss notification",onClick:()=>h.kind==="error-card"?c(h.id):o(h.id),children:"x"})]},h.key)})})}function GE(){return null}function qE(a){if(!a)return"earlier";const r=new Date(a);if(Number.isNaN(r.getTime()))return"earlier";const o=Math.floor((new Date().getTime()-r.getTime())/864e5);return o===0?"today":o===1?"yesterday":o<7?"thisWeek":r.toLocaleDateString("ko-KR",{year:"numeric",month:"short",day:"numeric"})}function PE(a,r,l){async function o(p){if(p.setId)try{await st.getState().loadSet(p.setId),N.getState().setUIMode("card-news"),a()}catch{r(l("gallery.openCardNewsSetFailed"),!0)}}async function c(p,m){if(m.stopPropagation(),!p.setId)return;const y=`generated/cardnews/${p.setId}`;try{await navigator.clipboard?.writeText(y),r(l("gallery.cardNewsPathCopied"))}catch{r(l("toast.copyFailed"),!0)}}function f(p,m){m.stopPropagation(),p.setId&&window.open(rA(p.setId),"_blank","noopener,noreferrer")}return{handleOpenCardNewsSet:o,handleCopyCardNewsSetPath:c,handleDownloadCardNewsManifest:f}}function UE({item:a,onOpen:r,onCopyPath:l,onDownloadManifest:o}){const{t:c}=ye(),p=a.cards?.find(m=>m.headline)?.headline||a.headline||c("gallery.cardNewsSet");return d.jsxs(d.Fragment,{children:[d.jsxs("button",{type:"button",className:"gallery__tile",onClick:()=>r(a),title:p,children:[a.image?d.jsx("img",{src:a.image,alt:p,loading:"lazy"}):null,d.jsxs("div",{className:"gallery__caption",children:[d.jsx("small",{children:c("gallery.cardNewsSet")}),d.jsx("span",{className:"gallery__caption-text",children:p})]}),d.jsx("div",{className:"gallery-card-news-strip",children:(a.cards||[]).slice(0,5).map((m,y)=>d.jsxs("span",{children:[m.url?d.jsx("img",{src:m.url,alt:m.headline??"",loading:"lazy"}):null,d.jsx("em",{children:m.cardOrder??y+1})]},`${m.url}-${y}`))})]}),d.jsxs("div",{className:"gallery-card-news-actions",children:[d.jsx("span",{children:c("gallery.cardNewsCount",{n:a.cards?.length??0})}),d.jsx("button",{type:"button",onClick:()=>r(a),children:c("gallery.openCardNewsSet")}),d.jsx("button",{type:"button",onClick:m=>l(a,m),children:c("gallery.copyCardNewsSetPath")}),d.jsx("button",{type:"button",onClick:m=>o(a,m),children:c("gallery.downloadCardNewsManifest")})]})]})}function HE({item:a,active:r,itemRef:l,onSelect:o,onDelete:c,onToggleFavorite:f,t:p}){const m=y=>{y.dataTransfer.setData("application/ima2-ref",JSON.stringify($t(a)?Pi(a):{image:a.url||a.image,filename:a.filename})),y.dataTransfer.effectAllowed="copy"};return d.jsxs("div",{ref:l,className:`gallery__tile-wrap${r?" gallery__tile-wrap--active":""}${a.isFavorite?" gallery__tile-wrap--favorite":""}`,children:[d.jsxs("button",{type:"button",className:`gallery__tile${r?" gallery__tile--active":""}`,onClick:()=>o(a),title:a.prompt??"",draggable:!0,onDragStart:m,children:[$t(a)?d.jsxs("div",{className:"gallery__tile-video-wrap",children:[a.thumb?d.jsx("img",{src:a.thumb,alt:a.prompt??p("gallery.imageAltFallback"),loading:"lazy",decoding:"async",className:"gallery__tile-video"}):d.jsx(Rl,{className:"gallery__tile-video"}),d.jsx("span",{className:"gallery__play-badge","aria-hidden":"true",children:"▶"})]}):d.jsx("img",{src:a.thumb||a.image,alt:a.prompt??p("gallery.imageAltFallback"),loading:"lazy",decoding:"async"}),a.prompt&&d.jsx("div",{className:"gallery__caption",children:d.jsx("span",{className:"gallery__caption-text",children:a.prompt})})]}),a.filename&&f&&d.jsx("button",{type:"button",className:`gallery__favorite${a.isFavorite?" gallery__favorite--on":""}`,onClick:y=>{y.stopPropagation(),f(a)},title:a.isFavorite?p("gallery.unfavoriteTitle"):p("gallery.favoriteTitle"),"aria-label":a.isFavorite?p("gallery.unfavoriteAria"):p("gallery.favoriteAria"),children:a.isFavorite?"★":"☆"}),a.filename&&d.jsx("button",{type:"button",className:"gallery__delete",onClick:y=>c(a,y),title:p("gallery.deleteTitle"),"aria-label":p("gallery.deleteAria"),children:"×"})]})}function Al(a,r,l){let o=l.initialDeps??[],c,f=!0;function p(){var m,y,h;let x;l.key&&((m=l.debug)!=null&&m.call(l))&&(x=Date.now());const b=a();if(!(b.length!==o.length||b.some((T,j)=>o[j]!==T)))return c;o=b;let _;if(l.key&&((y=l.debug)!=null&&y.call(l))&&(_=Date.now()),c=r(...b),l.key&&((h=l.debug)!=null&&h.call(l))){const T=Math.round((Date.now()-x)*100)/100,j=Math.round((Date.now()-_)*100)/100,R=j/16,C=(A,K)=>{for(A=String(A);A.length<K;)A=" "+A;return A};console.info(`%c⏱ ${C(j,5)} /${C(T,5)} ms`,`
21
+ font-size: .6rem;
22
+ font-weight: bold;
23
+ color: hsl(${Math.max(0,Math.min(120-120*R,120))}deg 100% 31%);`,l?.key)}return l?.onChange&&!(f&&l.skipInitialOnChange)&&l.onChange(c),f=!1,c}return p.updateDeps=m=>{o=m},p}function sg(a,r){if(a===void 0)throw new Error("Unexpected undefined");return a}const BE=(a,r)=>Math.abs(a-r)<1.01,FE=(a,r,l)=>{let o;return function(...c){a.clearTimeout(o),o=a.setTimeout(()=>r.apply(this,c),l)}},cg=a=>{const{offsetWidth:r,offsetHeight:l}=a;return{width:r,height:l}},VE=a=>a,KE=a=>{const r=Math.max(a.startIndex-a.overscan,0),l=Math.min(a.endIndex+a.overscan,a.count-1),o=[];for(let c=r;c<=l;c++)o.push(c);return o},YE=(a,r)=>{const l=a.scrollElement;if(!l)return;const o=a.targetWindow;if(!o)return;const c=p=>{const{width:m,height:y}=p;r({width:Math.round(m),height:Math.round(y)})};if(c(cg(l)),!o.ResizeObserver)return()=>{};const f=new o.ResizeObserver(p=>{const m=()=>{const y=p[0];if(y?.borderBoxSize){const h=y.borderBoxSize[0];if(h){c({width:h.inlineSize,height:h.blockSize});return}}c(cg(l))};a.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(m):m()});return f.observe(l,{box:"border-box"}),()=>{f.unobserve(l)}},ug={passive:!0},dg=typeof window>"u"?!0:"onscrollend"in window,XE=(a,r)=>{const l=a.scrollElement;if(!l)return;const o=a.targetWindow;if(!o)return;let c=0;const f=a.options.useScrollendEvent&&dg?()=>{}:FE(o,()=>{r(c,!1)},a.options.isScrollingResetDelay),p=x=>()=>{const{horizontal:b,isRtl:v}=a.options;c=b?l.scrollLeft*(v&&-1||1):l.scrollTop,f(),r(c,x)},m=p(!0),y=p(!1);l.addEventListener("scroll",m,ug);const h=a.options.useScrollendEvent&&dg;return h&&l.addEventListener("scrollend",y,ug),()=>{l.removeEventListener("scroll",m),h&&l.removeEventListener("scrollend",y)}},QE=(a,r,l)=>{if(r?.borderBoxSize){const o=r.borderBoxSize[0];if(o)return Math.round(o[l.options.horizontal?"inlineSize":"blockSize"])}return a[l.options.horizontal?"offsetWidth":"offsetHeight"]},ZE=(a,{adjustments:r=0,behavior:l},o)=>{var c,f;const p=a+r;(f=(c=o.scrollElement)==null?void 0:c.scrollTo)==null||f.call(c,{[o.options.horizontal?"left":"top"]:p,behavior:l})};class $E{constructor(r){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var l,o,c;return((c=(o=(l=this.targetWindow)==null?void 0:l.performance)==null?void 0:o.now)==null?void 0:c.call(o))??Date.now()},this.observer=(()=>{let l=null;const o=()=>l||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:l=new this.targetWindow.ResizeObserver(c=>{c.forEach(f=>{const p=()=>{const m=f.target,y=this.indexFromElement(m);if(!m.isConnected){this.observer.unobserve(m);return}this.shouldMeasureDuringScroll(y)&&this.resizeItem(y,this.options.measureElement(m,f,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(p):p()})}));return{disconnect:()=>{var c;(c=o())==null||c.disconnect(),l=null},observe:c=>{var f;return(f=o())==null?void 0:f.observe(c,{box:"border-box"})},unobserve:c=>{var f;return(f=o())==null?void 0:f.unobserve(c)}}})(),this.range=null,this.setOptions=l=>{Object.entries(l).forEach(([o,c])=>{typeof c>"u"&&delete l[o]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:VE,rangeExtractor:KE,onChange:()=>{},measureElement:QE,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...l}},this.notify=l=>{var o,c;(c=(o=this.options).onChange)==null||c.call(o,this,l)},this.maybeNotify=Al(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),l=>{this.notify(l)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(l=>l()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var l;const o=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==o){if(this.cleanup(),!o){this.maybeNotify();return}this.scrollElement=o,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((l=this.scrollElement)==null?void 0:l.window)??null,this.elementsCache.forEach(c=>{this.observer.observe(c)}),this.unsubs.push(this.options.observeElementRect(this,c=>{this.scrollRect=c,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(c,f)=>{this.scrollAdjustments=0,this.scrollDirection=f?this.getScrollOffset()<c?"forward":"backward":null,this.scrollOffset=c,this.isScrolling=f,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(l,o)=>{const c=new Map,f=new Map;for(let p=o-1;p>=0;p--){const m=l[p];if(c.has(m.lane))continue;const y=f.get(m.lane);if(y==null||m.end>y.end?f.set(m.lane,m):m.end<y.end&&c.set(m.lane,!0),c.size===this.options.lanes)break}return f.size===this.options.lanes?Array.from(f.values()).sort((p,m)=>p.end===m.end?p.index-m.index:p.end-m.end)[0]:void 0},this.getMeasurementOptions=Al(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(l,o,c,f,p,m,y)=>(this.prevLanes!==void 0&&this.prevLanes!==m&&(this.lanesChangedFlag=!0),this.prevLanes=m,this.pendingMeasuredCacheIndexes=[],{count:l,paddingStart:o,scrollMargin:c,getItemKey:f,enabled:p,lanes:m,laneAssignmentMode:y}),{key:!1}),this.getMeasurements=Al(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:l,paddingStart:o,scrollMargin:c,getItemKey:f,enabled:p,lanes:m,laneAssignmentMode:y},h)=>{if(!p)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>l)for(const _ of this.laneAssignments.keys())_>=l&&this.laneAssignments.delete(_);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(_=>{this.itemSizeCache.set(_.key,_.size)}));const x=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===l&&(this.lanesSettling=!1);const b=this.measurementsCache.slice(0,x),v=new Array(m).fill(void 0);for(let _=0;_<x;_++){const T=b[_];T&&(v[T.lane]=_)}for(let _=x;_<l;_++){const T=f(_),j=this.laneAssignments.get(_);let R,C;const A=y==="estimate"||h.has(T);if(j!==void 0&&this.options.lanes>1){R=j;const ee=v[R],I=ee!==void 0?b[ee]:void 0;C=I?I.end+this.options.gap:o+c}else{const ee=this.options.lanes===1?b[_-1]:this.getFurthestMeasurement(b,_);C=ee?ee.end+this.options.gap:o+c,R=ee?ee.lane:_%this.options.lanes,this.options.lanes>1&&A&&this.laneAssignments.set(_,R)}const K=h.get(T),V=typeof K=="number"?K:this.options.estimateSize(_),te=C+V;b[_]={index:_,start:C,size:V,end:te,key:T,lane:R},v[R]=_}return this.measurementsCache=b,b},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Al(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(l,o,c,f)=>this.range=l.length>0&&o>0?JE({measurements:l,outerSize:o,scrollOffset:c,lanes:f}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Al(()=>{let l=null,o=null;const c=this.calculateRange();return c&&(l=c.startIndex,o=c.endIndex),this.maybeNotify.updateDeps([this.isScrolling,l,o]),[this.options.rangeExtractor,this.options.overscan,this.options.count,l,o]},(l,o,c,f,p)=>f===null||p===null?[]:l({startIndex:f,endIndex:p,overscan:o,count:c}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=l=>{const o=this.options.indexAttribute,c=l.getAttribute(o);return c?parseInt(c,10):(console.warn(`Missing attribute name '${o}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=l=>{var o;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const c=this.scrollState.index??((o=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:o.index);if(c!==void 0&&this.range){const f=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),p=Math.max(0,c-f),m=Math.min(this.options.count-1,c+f);return l>=p&&l<=m}return!0},this.measureElement=l=>{if(!l){this.elementsCache.forEach((p,m)=>{p.isConnected||(this.observer.unobserve(p),this.elementsCache.delete(m))});return}const o=this.indexFromElement(l),c=this.options.getItemKey(o),f=this.elementsCache.get(c);f!==l&&(f&&this.observer.unobserve(f),this.observer.observe(l),this.elementsCache.set(c,l)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(o)&&this.resizeItem(o,this.options.measureElement(l,void 0,this))},this.resizeItem=(l,o)=>{var c;const f=this.measurementsCache[l];if(!f)return;const p=this.itemSizeCache.get(f.key)??f.size,m=o-p;m!==0&&(((c=this.scrollState)==null?void 0:c.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(f,m,this):f.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=m,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(f.index),this.itemSizeCache=new Map(this.itemSizeCache.set(f.key,o)),this.notify(!1))},this.getVirtualItems=Al(()=>[this.getVirtualIndexes(),this.getMeasurements()],(l,o)=>{const c=[];for(let f=0,p=l.length;f<p;f++){const m=l[f],y=o[m];c.push(y)}return c},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=l=>{const o=this.getMeasurements();if(o.length!==0)return sg(o[Zy(0,o.length-1,c=>sg(o[c]).start,l)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const l=this.scrollElement.document.documentElement;return this.options.horizontal?l.scrollWidth-this.scrollElement.innerWidth:l.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(l,o,c=0)=>{if(!this.scrollElement)return 0;const f=this.getSize(),p=this.getScrollOffset();o==="auto"&&(o=l>=p+f?"end":"start"),o==="center"?l+=(c-f)/2:o==="end"&&(l-=f);const m=this.getMaxScrollOffset();return Math.max(Math.min(m,l),0)},this.getOffsetForIndex=(l,o="auto")=>{l=Math.max(0,Math.min(l,this.options.count-1));const c=this.getSize(),f=this.getScrollOffset(),p=this.measurementsCache[l];if(!p)return;if(o==="auto")if(p.end>=f+c-this.options.scrollPaddingEnd)o="end";else if(p.start<=f+this.options.scrollPaddingStart)o="start";else return[f,o];if(o==="end"&&l===this.options.count-1)return[this.getMaxScrollOffset(),o];const m=o==="end"?p.end+this.options.scrollPaddingEnd:p.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(m,o,p.size),o]},this.scrollToOffset=(l,{align:o="start",behavior:c="auto"}={})=>{const f=this.getOffsetForAlignment(l,o),p=this.now();this.scrollState={index:null,align:o,behavior:c,startedAt:p,lastTargetOffset:f,stableFrames:0},this._scrollToOffset(f,{adjustments:void 0,behavior:c}),this.scheduleScrollReconcile()},this.scrollToIndex=(l,{align:o="auto",behavior:c="auto"}={})=>{l=Math.max(0,Math.min(l,this.options.count-1));const f=this.getOffsetForIndex(l,o);if(!f)return;const[p,m]=f,y=this.now();this.scrollState={index:l,align:m,behavior:c,startedAt:y,lastTargetOffset:p,stableFrames:0},this._scrollToOffset(p,{adjustments:void 0,behavior:c}),this.scheduleScrollReconcile()},this.scrollBy=(l,{behavior:o="auto"}={})=>{const c=this.getScrollOffset()+l,f=this.now();this.scrollState={index:null,align:"start",behavior:o,startedAt:f,lastTargetOffset:c,stableFrames:0},this._scrollToOffset(c,{adjustments:void 0,behavior:o}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var l;const o=this.getMeasurements();let c;if(o.length===0)c=this.options.paddingStart;else if(this.options.lanes===1)c=((l=o[o.length-1])==null?void 0:l.end)??0;else{const f=Array(this.options.lanes).fill(null);let p=o.length-1;for(;p>=0&&f.some(m=>m===null);){const m=o[p];f[m.lane]===null&&(f[m.lane]=m.end),p--}c=Math.max(...f.filter(m=>m!==null))}return Math.max(c-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(l,{adjustments:o,behavior:c})=>{this.options.scrollToFn(l,{behavior:c,adjustments:o},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(r)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const o=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,c=o?o[0]:this.scrollState.lastTargetOffset,f=1,p=c!==this.scrollState.lastTargetOffset;if(!p&&BE(c,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=f){this.scrollState=null;return}}else this.scrollState.stableFrames=0,p&&(this.scrollState.lastTargetOffset=c,this.scrollState.behavior="auto",this._scrollToOffset(c,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const Zy=(a,r,l,o)=>{for(;a<=r;){const c=(a+r)/2|0,f=l(c);if(f<o)a=c+1;else if(f>o)r=c-1;else return c}return a>0?a-1:0};function JE({measurements:a,outerSize:r,scrollOffset:l,lanes:o}){const c=a.length-1,f=y=>a[y].start;if(a.length<=o)return{startIndex:0,endIndex:c};let p=Zy(0,c,f,l),m=p;if(o===1)for(;m<c&&a[m].end<l+r;)m++;else if(o>1){const y=Array(o).fill(0);for(;m<c&&y.some(x=>x<l+r);){const x=a[m];y[x.lane]=x.end,m++}const h=Array(o).fill(l+r);for(;p>=0&&h.some(x=>x>=l);){const x=a[p];h[x.lane]=x.start,p--}p=Math.max(0,p-p%o),m=Math.min(c,m+(o-1-m%o))}return{startIndex:p,endIndex:m}}const fg=typeof document<"u"?z.useLayoutEffect:z.useEffect;function WE({useFlushSync:a=!0,...r}){const l=z.useReducer(()=>({}),{})[1],o={...r,onChange:(f,p)=>{var m;a&&p?Hu.flushSync(l):l(),(m=r.onChange)==null||m.call(r,f,p)}},[c]=z.useState(()=>new $E(o));return c.setOptions(o),fg(()=>c._didMount(),[]),fg(()=>c._willUpdate()),c}function eC(a){return WE({observeElementRect:YE,observeElementOffset:XE,scrollToFn:ZE,...a})}const Xr=170,Qr=10,$y=36,tC=44;function aC(a){const r=Math.max(Xr,a-$y);return Math.max(1,Math.floor((r+Qr)/(Xr+Qr)))}function nC(a,r){const l=Math.max(Xr,a-$y);return Math.max(Xr,Math.floor((l-Qr*Math.max(0,r-1))/r))+Qr}function lC(a,r){const l=[];for(const[o,c]of a){l.push({type:"header",id:`h-${o}`,label:o,count:c.length});for(let f=0;f<c.length;f+=r)l.push({type:"items",id:`r-${o}-${f}`,items:c.slice(f,f+r)})}return l}function iC({dateGroups:a,selectedKey:r,scrollElement:l,localizeBucket:o,renderTile:c}){const f=z.useRef(null),[p,m]=z.useState(0),y=z.useMemo(()=>aC(p||960),[p]),h=z.useMemo(()=>nC(p||960,y),[p,y]),x=z.useMemo(()=>lC(a,y),[a,y]);z.useEffect(()=>{const v=f.current;if(!v)return;const _=()=>m(v.clientWidth);_();const T=new ResizeObserver(_);return T.observe(v),()=>T.disconnect()},[]);const b=eC({count:x.length,getScrollElement:()=>l,estimateSize:v=>x[v]?.type==="header"?tC:h,overscan:6});return z.useEffect(()=>{if(!r)return;const v=x.findIndex(_=>_.type==="items"&&_.items.some(T=>bt(T)===r));v>=0&&b.scrollToIndex(v,{align:"center"})},[x,r,b]),d.jsx("div",{ref:f,className:"gallery__virtual",style:{height:b.getTotalSize()},children:b.getVirtualItems().map(v=>{const _=x[v.index];return _?d.jsx("div",{className:"gallery__virtual-row",style:{transform:`translateY(${v.start}px)`},children:_.type==="header"?d.jsxs("header",{className:"gallery__group-header gallery__group-header--virtual",children:[d.jsx("span",{className:"gallery__group-label",children:o(_.label)}),d.jsx("span",{className:"gallery__group-count",children:_.count})]}):d.jsx("div",{className:"gallery__grid gallery__grid--virtual",children:_.items.map((T,j)=>c(T,_.id,j))})},_.id):null})})}function mg({showSessions:a,favoritesOnly:r,query:l,historyNextCursor:o,favoriteHistoryNextCursor:c,historyLoadingOlder:f,favoriteHistoryLoadingOlder:p,onLoadOlder:m,onLoadOlderFavorites:y,t:h}){return a?d.jsx("div",{className:"gallery__load-more gallery__load-more--hint",children:h("gallery.sessionPaginationHint")}):l.trim()?null:r?c?d.jsx("div",{className:"gallery__load-more",children:d.jsx("button",{type:"button",onClick:y,disabled:p,children:h(p?"gallery.loadingOlderFavorites":"gallery.loadOlderFavorites")})}):null:o?d.jsx("div",{className:"gallery__load-more",children:d.jsx("button",{type:"button",onClick:m,disabled:f,children:h(f?"gallery.loadingOlder":"gallery.loadOlder")})}):null}function oC({groups:a,loose:r,favoritesOnly:l,galleryScope:o,setGalleryScope:c,renderTile:f,t:p}){return a.length===0&&r.length===0?d.jsx("div",{className:"gallery__empty",children:l?p("gallery.emptyFavorites"):o==="current-session"?d.jsxs(d.Fragment,{children:[d.jsx("p",{children:p("gallery.empty.currentSession")}),d.jsx("button",{type:"button",onClick:()=>c("all"),children:p("gallery.scope.all")})]}):p("gallery.emptySessions")}):d.jsxs(d.Fragment,{children:[a.map(m=>d.jsxs("section",{className:"gallery__group",children:[d.jsxs("header",{className:"gallery__group-header",children:[d.jsx("span",{className:"gallery__group-label",title:m.sessionId,children:m.title?m.displayLabel:p("gallery.sessionLabel",{name:m.displayLabel})}),d.jsx("span",{className:"gallery__group-count",children:m.items.length})]}),d.jsx("div",{className:"gallery__grid",children:m.items.map((y,h)=>f(y,m.sessionId,h))})]},m.sessionId)),r.length>0&&d.jsxs("section",{className:"gallery__group",children:[d.jsxs("header",{className:"gallery__group-header",children:[d.jsx("span",{className:"gallery__group-label",children:p("gallery.standalone")}),d.jsx("span",{className:"gallery__group-count",children:r.length})]}),d.jsx("div",{className:"gallery__grid",children:r.map((m,y)=>f(m,"loose",y))})]})]})}function rC({status:a,dismissed:r,onOpenFolder:l,onDismiss:o,t:c}){const f=a!=null&&a.state!=="ok"&&!r,p=a?.state==="recoverable"?"gallery.storageNoticeRecoverable":a?.state==="not_found"?"gallery.storageNoticeNotFound":"gallery.storageNoticeUnknown";return d.jsxs("div",{className:`gallery__storage-bar${f?" gallery__storage-bar--notice":""}`,children:[f?d.jsxs("div",{className:"gallery__storage-copy",children:[d.jsx("div",{className:"gallery__storage-title",children:c("gallery.storageNoticeTitle")}),d.jsx("div",{className:"gallery__storage-text",children:c(p)})]}):d.jsx("div",{className:"gallery__storage-copy gallery__storage-copy--quiet",children:a?.generatedDirLabel??"~/.ima2/generated"}),d.jsxs("div",{className:"gallery__storage-actions",children:[d.jsx("button",{type:"button",className:"gallery__storage-button",onClick:l,title:c("gallery.openGeneratedDirTitle"),children:c("gallery.openGeneratedDir")}),f&&d.jsx("button",{type:"button",className:"gallery__storage-button gallery__storage-button--ghost",onClick:o,children:c("common.close")})]})]})}const pg="ima2.storageNoticeDismissed.0.09.23";function sC(){const{t:a}=ye(),r=N(Z=>Z.galleryOpen),l=N(Z=>Z.closeGallery),o=N(Z=>Z.history),c=N(Z=>Z.selectHistory),f=N(Z=>Z.currentImage),p=N(Z=>Z.trashHistoryItem),m=N(Z=>Z.showToast),y=N(Z=>Z.toggleGalleryFavorite),h=N(Z=>Z.galleryScope),x=N(Z=>Z.setGalleryScope),b=N(Z=>Z.historyNextCursor),v=N(Z=>Z.historyLoadingOlder),_=N(Z=>Z.favoriteHistoryNextCursor),T=N(Z=>Z.favoriteHistoryLoadingOlder),j=N(Z=>Z.loadOlderHistory),R=N(Z=>Z.loadFavoriteHistory),C=N(Z=>Z.loadOlderFavoriteHistory),A=N(p_),[K,V]=z.useState(""),[te,ee]=z.useState("date"),[I,le]=z.useState(!1),[Ce,Be]=z.useState([]),[De,we]=z.useState([]),[Ie,W]=z.useState(null),[G,L]=z.useState(()=>{try{return localStorage.getItem(pg)==="1"}catch{return!1}}),D=z.useRef(null),J=z.useRef({}),[se,me]=z.useState(null),w=z.useRef(0),k=z.useRef({open:!1,selectedKey:null}),Q=z.useMemo(()=>Dr(o.filter(ki)),[o]),ne=z.useCallback(Z=>{D.current=Z,me(Z)},[]);z.useEffect(()=>{if(!r)return;const Z=ke=>{ke.key==="Escape"&&l()};return window.addEventListener("keydown",Z),()=>window.removeEventListener("keydown",Z)},[r,l]),z.useEffect(()=>{r||V("")},[r]),z.useEffect(()=>{if(!r)return;let Z=!1;return(async()=>{try{const ke=await e0();Z||W(ke)}catch{Z||W({generatedDirLabel:"~/.ima2/generated",generatedCount:0,legacyCandidatesScanned:0,legacySourcesFound:0,legacyFilesFound:0,state:"unknown",messageKind:"unknown",recoveryDocsPath:"docs/RECOVER_OLD_IMAGES.md",doctorCommand:"ima2 doctor",overrides:{generatedDir:!1,configDir:!1}})}})(),()=>{Z=!0}},[r]),z.useEffect(()=>{if(!r||te!=="session")return;let Z=!1;return(async()=>{try{const ke=await JS({limit:500,sessionId:h==="current-session"?A:void 0});if(Z)return;const wt=ie=>{const Ke=ie.kind,qn=Ke==="classic"||Ke==="edit"||Ke==="generate"||Ke==="card-news-card"||Ke==="card-news-set"?Ke:null,qt=ie.mediaType==="video"||/\.(mp4|webm|mov)$/i.test(ie.filename??"");return{image:ie.url,url:ie.url,filename:ie.filename,thumb:ie.thumb??(qt?void 0:ie.url),mediaType:ie.mediaType,video:ie.video??null,videoSeries:ie.videoSeries??null,videoContinuity:ie.videoContinuity??null,prompt:ie.prompt??void 0,userPrompt:ie.userPrompt??null,revisedPrompt:ie.revisedPrompt??null,promptMode:ie.promptMode??null,composerPrompt:ie.composerPrompt??null,composerInsertedPrompts:ie.composerInsertedPrompts??null,size:ie.size??void 0,quality:ie.quality??void 0,format:ie.format,moderation:ie.moderation??void 0,model:ie.model??void 0,reasoningEffort:ie.reasoningEffort,provider:ie.provider,providerUrl:ie.providerUrl??null,usage:ie.usage,elapsed:ie.elapsed??void 0,createdAt:ie.createdAt,sessionId:ie.sessionId??null,nodeId:ie.nodeId??null,parentNodeId:ie.parentNodeId??null,clientNodeId:ie.clientNodeId??null,requestId:ie.requestId??null,kind:qn,setId:ie.setId??null,cardId:ie.cardId??null,cardOrder:ie.cardOrder??null,headline:ie.headline??null,body:ie.body??null,cards:ie.cards,refsCount:ie.refsCount??0,webSearchCalls:ie.webSearchCalls??0,sequenceId:ie.sequenceId??null,sequenceIndex:ie.sequenceIndex??null,sequenceTotalRequested:ie.sequenceTotalRequested??null,sequenceTotalReturned:ie.sequenceTotalReturned??null,sequenceStatus:ie.sequenceStatus??null,isFavorite:ie.isFavorite??!1}};Be(ke.sessions.map(ie=>({sessionId:ie.sessionId,title:ie.title??null,label:ie.label??null,displayLabel:ie.title||ie.label||ie.sessionId.slice(0,8),items:Dr(ie.items.filter(ki).map(wt))})).filter(ie=>ie.items.length>0)),we(Dr(ke.loose.filter(ki).map(wt)))}catch{}})(),()=>{Z=!0}},[r,te,h,A]),z.useEffect(()=>{!r||te==="session"||!I||R()},[r,te,I,R]);const ce=z.useMemo(()=>{const Z=K.trim().toLowerCase().normalize("NFC");return Q.filter(ke=>I&&!ke.isFavorite?!1:Z?(ke.prompt??"").toLowerCase().normalize("NFC").includes(Z)||(ke.filename??"").toLowerCase().normalize("NFC").includes(Z):!0)},[Q,K,I]),de=z.useMemo(()=>I?Ce.map(Z=>({...Z,items:Z.items.filter(ke=>ke.isFavorite)})).filter(Z=>Z.items.length>0):Ce,[Ce,I]),he=z.useMemo(()=>I?De.filter(Z=>Z.isFavorite):De,[De,I]),je=z.useMemo(()=>{const Z=new Map;for(const ke of ce){const wt=qE(ke.createdAt);Z.has(wt)||Z.set(wt,[]),Z.get(wt).push(ke)}return Array.from(Z.entries())},[ce]),$=te==="session"?de.reduce((Z,ke)=>Z+ke.items.length,0)+he.length:ce.length;z.useLayoutEffect(()=>{const Z=f?bt(f):null;if(!r){k.current={open:!1,selectedKey:Z};return}const ke=k.current,wt=!ke.open||ke.selectedKey!==Z;k.current={open:!0,selectedKey:Z};const ie=Z?J.current[Z]:null;if(wt&&ie){ie.scrollIntoView({block:"center"});return}D.current&&(D.current.scrollTop=w.current)},[r,f?.filename,f?.image,te,$,je.length,de.length,he.length]);async function Xe(Z,ke){ke.stopPropagation();const wt=bt(Z);await p(Z),delete J.current[wt],window.requestAnimationFrame(()=>D.current?.focus())}async function lt(){try{await t0(),m(a("toast.openGeneratedDirOpened"))}catch{m(a("toast.openGeneratedDirFailed"),!0)}}const{handleOpenCardNewsSet:ia,handleCopyCardNewsSetPath:ya,handleDownloadCardNewsManifest:B}=PE(l,m,a);function xe(){L(!0);try{localStorage.setItem(pg,"1")}catch{}}if(!r)return null;const He=Z=>Z==="earlier"||Z==="today"||Z==="yesterday"||Z==="thisWeek"?a(`gallery.${Z}`):Z,ct=(Z,ke,wt)=>{const ie=f?.image===Z.image,Ke=bt(Z),qn=qt=>{J.current[Ke]=qt};return Z.kind==="card-news-set"?d.jsx("div",{ref:qn,className:"gallery__tile-wrap gallery-card-news-set",children:d.jsx(UE,{item:Z,onOpen:qt=>{ia(qt)},onCopyPath:ya,onDownloadManifest:B})},`${ke}-${Ke}`):d.jsx(HE,{item:Z,active:ie,itemRef:qn,onSelect:qt=>{c(qt),l()},onDelete:Xe,onToggleFavorite:qt=>{y(qt.filename)},t:a},`${ke}-${Ke}`)},Jt=te==="session",un=f?bt(f):null;return d.jsx("div",{className:"gallery-backdrop",onClick:l,role:"presentation",children:d.jsxs("div",{className:"gallery",role:"dialog","aria-modal":"true","aria-label":a("gallery.ariaLabel"),onClick:Z=>Z.stopPropagation(),children:[d.jsxs("div",{className:"gallery__header",children:[d.jsxs("div",{className:"gallery__title-row",children:[d.jsx("div",{className:"gallery__title",children:a("gallery.title")}),d.jsxs("div",{className:"gallery__meta",children:[a("gallery.total",{n:$}),K||I?a("gallery.totalFiltered",{n:Q.length}):""]}),d.jsxs("div",{className:"gallery__favorite-filter",role:"tablist","aria-label":a("gallery.favoriteFilterAria"),children:[d.jsx("button",{type:"button",role:"tab","aria-selected":!I,className:I?"":"active",onClick:()=>le(!1),children:a("gallery.filterAll")}),d.jsx("button",{type:"button",role:"tab","aria-selected":I,className:I?"active":"",onClick:()=>le(!0),children:a("gallery.filterFavorites")})]}),d.jsxs("div",{className:"gallery__group-toggle",role:"tablist","aria-label":a("gallery.sortByAria"),children:[d.jsx("button",{type:"button",role:"tab","aria-selected":te==="date",className:te==="date"?"active":"",onClick:()=>ee("date"),children:a("gallery.sortByDate")}),d.jsx("button",{type:"button",role:"tab","aria-selected":te==="session",className:te==="session"?"active":"",onClick:()=>ee("session"),children:a("gallery.sortBySession")})]}),d.jsxs("div",{className:"gallery__scope",role:"tablist","aria-label":a("gallery.scopeAria"),children:[d.jsx("button",{type:"button",role:"tab","aria-selected":h==="current-session",className:h==="current-session"?"active":"",onClick:()=>x("current-session"),disabled:!A,children:a("gallery.scope.current")}),d.jsx("button",{type:"button",role:"tab","aria-selected":h==="all",className:h==="all"?"active":"",onClick:()=>x("all"),children:a("gallery.scope.all")})]})]}),d.jsx("input",{type:"text",className:"gallery__search",placeholder:a(Jt?"gallery.searchDisabledPlaceholder":"gallery.searchPlaceholder"),value:K,onChange:Z=>V(Z.target.value),autoFocus:!0,disabled:Jt}),d.jsx("button",{type:"button",className:"gallery__close",onClick:l,"aria-label":a("gallery.closeAria"),title:a("gallery.closeTitle"),children:"×"})]}),d.jsx(rC,{status:Ie,dismissed:G,onOpenFolder:lt,onDismiss:xe,t:a}),d.jsx("div",{className:"gallery__scroll",ref:ne,tabIndex:-1,onScroll:()=>{w.current=D.current?.scrollTop??0},children:Jt?d.jsxs(d.Fragment,{children:[d.jsx(oC,{groups:de,loose:he,favoritesOnly:I,galleryScope:h,setGalleryScope:x,renderTile:ct,t:a}),d.jsx(mg,{showSessions:Jt,favoritesOnly:I,query:K,historyNextCursor:b,favoriteHistoryNextCursor:_,historyLoadingOlder:v,favoriteHistoryLoadingOlder:T,onLoadOlder:()=>{j()},onLoadOlderFavorites:()=>{C()},t:a})]}):ce.length===0?d.jsx("div",{className:"gallery__empty",children:Q.length===0?a("gallery.emptyAll"):a(I?"gallery.emptyFavorites":"gallery.noResults")}):d.jsxs(d.Fragment,{children:[d.jsx(iC,{dateGroups:je,selectedKey:un,scrollElement:se,localizeBucket:He,renderTile:ct}),d.jsx(mg,{showSessions:Jt,favoritesOnly:I,query:K,historyNextCursor:b,favoriteHistoryNextCursor:_,historyLoadingOlder:v,favoriteHistoryLoadingOlder:T,onLoadOlder:()=>{j()},onLoadOlderFavorites:()=>{C()},t:a})]})})]})})}function cC(a){return a.includes("ratio")?"sizeConfirm.reasonRatio":a.includes("maxPixels")||a.includes("pixels")?"sizeConfirm.reasonPixels":a.includes("minPixels")?"sizeConfirm.reasonMinPixels":a.includes("min")?"sizeConfirm.reasonMin":a.includes("maxEdge")||a.includes("max")?"sizeConfirm.reasonMax":"sizeConfirm.reasonSnap"}function uC(){const a=N(m=>m.customSizeConfirm),r=N(m=>m.confirmCustomSizeAdjustment),l=N(m=>m.cancelCustomSizeAdjustment),o=z.useRef(null),{t:c}=ye();if(z.useEffect(()=>{if(!a)return;o.current?.focus();const m=y=>{y.key==="Escape"&&l()};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[l,a]),!a)return null;const f=`${a.requestedW}x${a.requestedH}`,p=`${a.adjustedW}x${a.adjustedH}`;return d.jsx("div",{className:"modal-backdrop custom-size-confirm-backdrop",role:"presentation",children:d.jsxs("div",{className:"modal custom-size-confirm",role:"dialog","aria-modal":"true","aria-labelledby":"custom-size-confirm-title","aria-describedby":"custom-size-confirm-body",children:[d.jsx("div",{id:"custom-size-confirm-title",className:"modal__title",children:c("sizeConfirm.title")}),d.jsxs("div",{id:"custom-size-confirm-body",className:"modal__body",children:[d.jsx("p",{children:c("sizeConfirm.body")}),d.jsxs("dl",{className:"size-confirm__pairs",children:[d.jsxs("div",{className:"size-confirm__pair",children:[d.jsx("dt",{children:c("sizeConfirm.requested")}),d.jsx("dd",{children:f})]}),d.jsxs("div",{className:"size-confirm__pair",children:[d.jsx("dt",{children:c("sizeConfirm.adjusted")}),d.jsx("dd",{children:p})]})]}),d.jsx("p",{className:"size-confirm__reason",children:c(cC(a.reasons))})]}),d.jsxs("div",{className:"modal__actions",children:[d.jsx("button",{ref:o,type:"button",className:"modal__btn modal__btn--secondary",onClick:l,children:c("sizeConfirm.cancel")}),d.jsx("button",{type:"button",className:"modal__btn",onClick:()=>{r()},children:c("sizeConfirm.approve")})]})]})})}function Rr(a){return a==null||a===""?"-":String(a)}function dC(){const{t:a}=ye(),r=N(m=>m.metadataRestore),l=N(m=>m.applyMetadataRestore),o=N(m=>m.addMetadataRestoreAsReference),c=N(m=>m.cancelMetadataRestore);if(!r)return null;const f=r.metadata,p=f.userPrompt||f.prompt||f.revisedPrompt||"";return d.jsx("div",{className:"modal-backdrop metadata-restore-backdrop",role:"presentation",children:d.jsxs("div",{className:"modal metadata-restore",role:"dialog","aria-modal":"true","aria-labelledby":"metadata-restore-title",children:[d.jsx("div",{id:"metadata-restore-title",className:"modal__title",children:a("metadata.restoreTitle")}),d.jsxs("div",{className:"modal__body metadata-restore__body",children:[d.jsx("p",{children:a("metadata.restoreBody")}),d.jsxs("div",{className:"metadata-restore__preview",children:[d.jsx("img",{src:r.image,alt:a("metadata.imageAlt")}),d.jsxs("div",{className:"metadata-restore__details",children:[d.jsxs("div",{children:[d.jsx("span",{children:a("metadata.prompt")}),d.jsx("strong",{title:p,children:Rr(p)})]}),d.jsxs("div",{children:[d.jsx("span",{children:a("metadata.size")}),d.jsx("strong",{children:Rr(f.size)})]}),d.jsxs("div",{children:[d.jsx("span",{children:a("metadata.quality")}),d.jsx("strong",{children:Rr(f.quality)})]}),d.jsxs("div",{children:[d.jsx("span",{children:a("metadata.model")}),d.jsx("strong",{children:Rr(f.model)})]}),d.jsxs("div",{children:[d.jsx("span",{children:a("metadata.source")}),d.jsx("strong",{children:r.source==="png-comment"?a("metadata.sourcePngComment"):a("metadata.sourceXmp")})]})]})]})]}),d.jsxs("div",{className:"modal__actions",children:[d.jsx("button",{type:"button",className:"modal__btn modal__btn--secondary",onClick:c,children:a("common.cancel")}),d.jsx("button",{type:"button",className:"modal__btn modal__btn--secondary",onClick:o,children:a("metadata.useAsReferenceOnly")}),d.jsx("button",{type:"button",className:"modal__btn",onClick:l,children:a("metadata.applySettings")})]})]})})}function fC(){const{t:a}=ye(),r=N(T=>T.readinessPopupOpen),l=N(T=>T.closeReadinessPopup),o=N(T=>T.openSettings),c=N(T=>T.provider),f=N(T=>T.imageModel),p=N(T=>T.reasoningEffort),m=N(T=>T.webSearchEnabled),y=Xy(),h=c==="grok",x=Ln.find(T=>T.value===f);if(!r)return null;const b=y[c],v=b.ok,_=()=>{l(),o("account")};return d.jsx("div",{className:"modal-backdrop provider-readiness-backdrop",onClick:l,role:"presentation",children:d.jsxs("div",{className:"modal provider-readiness",role:"dialog","aria-modal":"true","aria-labelledby":"provider-readiness-title",onClick:T=>T.stopPropagation(),children:[d.jsx("div",{id:"provider-readiness-title",className:"modal__title",children:a("readiness.title")}),d.jsxs("div",{className:"modal__body provider-readiness__body",children:[d.jsxs("div",{className:`provider-readiness__status${v?" is-ok":" is-blocked"}`,children:[d.jsx("span",{"aria-hidden":"true"}),d.jsx("strong",{children:a(v?"readiness.ready":"readiness.blocked")}),d.jsx("small",{children:v?a("readiness.readyBody"):b.reason})]}),b.hint?d.jsx("p",{className:"modal__hint",children:b.hint}):null,d.jsxs("dl",{className:"provider-readiness__facts",children:[d.jsxs("div",{children:[d.jsx("dt",{children:a("readiness.provider")}),d.jsx("dd",{children:c==="agy"?"Gemini":c==="grok"?"Grok OAuth":c==="oauth"?"GPT OAuth":"GPT API"})]}),d.jsxs("div",{children:[d.jsx("dt",{children:a("readiness.model")}),d.jsx("dd",{children:x?a(x.fullLabelKey):f})]}),h?d.jsxs("div",{children:[d.jsx("dt",{children:a("readiness.grokApi")}),d.jsx("dd",{children:a("readiness.grokApiBody")})]}):d.jsxs(d.Fragment,{children:[d.jsxs("div",{children:[d.jsx("dt",{children:a("readiness.reasoning")}),d.jsx("dd",{children:p})]}),d.jsxs("div",{children:[d.jsx("dt",{children:a("readiness.webSearch")}),d.jsx("dd",{children:a(m?"settings.webSearch.on":"settings.webSearch.off")})]})]})]})]}),d.jsxs("div",{className:"modal__actions",children:[d.jsx("button",{type:"button",className:"modal__btn modal__btn--secondary",onClick:l,children:a("common.close")}),d.jsx("button",{type:"button",className:"modal__btn",onClick:_,children:a("readiness.openAccount")})]})]})})}const hg="ima2.onboardingDismissed";function mC(){const{t:a}=ye(),r=N(T=>T.openSettings),l=Vy(),o=Ky(),{data:c}=Yy(),[f,p]=z.useState(()=>{try{return localStorage.getItem(hg)==="1"}catch{return!1}}),m=l!==null&&o!==null&&c!=null,y=l?.status==="auth_required"||l?.status==="offline",h=o?.status==="offline"||o?.status==="error",x=c?!c.gemini?.configured&&!c.vertex?.configured:!1;if(f||!(m&&y&&h&&x))return null;const v=()=>{try{localStorage.setItem(hg,"1")}catch{}p(!0)},_=()=>{v(),r("account")};return d.jsx("div",{className:"modal-backdrop",role:"presentation",children:d.jsxs("div",{className:"modal",role:"dialog","aria-modal":"true","aria-labelledby":"onboarding-title",children:[d.jsx("div",{id:"onboarding-title",className:"modal__title",children:a("onboarding.title")}),d.jsx("div",{className:"modal__body",children:d.jsx("p",{children:a("onboarding.body")})}),d.jsxs("div",{className:"modal__actions",children:[d.jsx("button",{type:"button",className:"modal__btn modal__btn--secondary",onClick:v,children:a("onboarding.skip")}),d.jsx("button",{type:"button",className:"modal__btn",onClick:_,children:a("onboarding.login")})]})]})})}function pC(){const a=N(p=>p.trashPending),r=N(p=>p.restorePendingTrash),l=N(p=>p.clearPendingTrash),{t:o}=ye(),[c,f]=z.useState(Date.now());return z.useEffect(()=>{if(!a)return;f(Date.now());const p=window.setInterval(()=>{const m=Date.now();f(m),m>=a.expiresAt&&l()},500);return()=>window.clearInterval(p)},[l,a]),a?d.jsxs("div",{className:"trash-undo-toast",children:[d.jsx("span",{children:o("gallery.deleted",{filename:a.filename})}),d.jsx("button",{type:"button",onClick:()=>{r()},children:o("gallery.undo")}),d.jsx("span",{className:"trash-undo-toast__timer",children:o("gallery.secondsSuffix",{n:Math.max(0,Math.ceil((a.expiresAt-c)/1e3))})})]}):null}function hC(){return d.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[d.jsx("line",{x1:"4",y1:"6",x2:"14",y2:"6"}),d.jsx("circle",{cx:"17",cy:"6",r:"2.2"}),d.jsx("line",{x1:"4",y1:"12",x2:"8",y2:"12"}),d.jsx("circle",{cx:"11",cy:"12",r:"2.2"}),d.jsx("line",{x1:"14",y1:"12",x2:"20",y2:"12"}),d.jsx("line",{x1:"4",y1:"18",x2:"14",y2:"18"}),d.jsx("circle",{cx:"17",cy:"18",r:"2.2"})]})}function gC(){const a=N(h=>h.composeSheetOpen),r=N(h=>h.composeSheetTab),l=N(h=>h.openComposeSheet),o=N(h=>h.settingsOpen),c=N(h=>h.uiMode),{t:f}=ye();if(!eo()||o||c==="card-news"||c==="agent")return null;const m=a&&r==="controls",y=f("sheet.controlsOpen");return d.jsx("button",{type:"button",className:"mobile-settings-toggle","aria-expanded":m,"aria-controls":"mobile-generate-sheet","aria-label":y,title:y,onClick:()=>l("controls"),children:d.jsx(hC,{})})}function yC(){const{t:a}=ye(),r=N(p=>p.openComposeSheet),l=N(p=>p.settingsOpen),o=N(p=>p.uiMode),c=o==="agent"&&Vi?"agent":o==="node"&&Fi?"node":"classic";return!eo()||l||c!=="classic"?null:d.jsxs("header",{className:"mobile-app-bar",role:"banner",children:[d.jsxs("div",{className:"mobile-app-bar__brand",children:[d.jsx("div",{className:"logo-mark","aria-hidden":"true"}),d.jsxs("div",{className:"mobile-app-bar__brand-copy",children:[d.jsx("span",{className:"mobile-app-bar__title",children:"ima2-gen"}),d.jsx("span",{className:"mobile-app-bar__mode",children:a("appBar.modeImage")})]})]}),d.jsxs("div",{className:"mobile-app-bar__actions",children:[d.jsx(Py,{variant:"sidebar"}),d.jsx("button",{type:"button",className:"mobile-app-bar__icon-button",onClick:()=>r("library"),"aria-label":a("promptLibrary.title"),title:a("promptLibrary.title"),children:d.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:d.jsx("path",{d:"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"})})}),d.jsx("button",{type:"button",className:"mobile-app-bar__icon-button",onClick:()=>r("controls"),"aria-label":a("appBar.controls"),title:a("appBar.controls"),children:d.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[d.jsx("circle",{cx:"12",cy:"12",r:"3"}),d.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]})}),d.jsxs("button",{type:"button",className:"mobile-app-bar__generate",onClick:()=>r("prompt"),"aria-label":a("appBar.generateAria"),children:[d.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[d.jsx("path",{d:"M12 3l1.8 5.4L19 10l-5.2 1.6L12 17l-1.8-5.4L5 10l5.2-1.6L12 3z"}),d.jsx("path",{d:"M19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8L19 15z"})]}),d.jsx("span",{children:a("appBar.generate")})]})]})]})}const vC=z.lazy(()=>ha(()=>import("./PromptLibraryPanel-Co9xIawD.js"),[]).then(a=>({default:a.PromptLibraryPanel}))),bC=["prompt","controls","library"];function SC(){const{t:a}=ye(),r=N(h=>h.composeSheetOpen),l=N(h=>h.composeSheetTab),o=N(h=>h.setComposeSheetTab),c=N(h=>h.closeComposeSheet),f=N(h=>h.settingsOpen),p=N(h=>h.uiMode),m=p==="agent"&&Vi?"agent":p==="node"&&Fi?"node":"classic",y=eo();return z.useEffect(()=>{if(!r)return;const h=x=>{x.key==="Escape"&&c()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[r,c]),!y||f||m!=="classic"?null:d.jsxs(d.Fragment,{children:[r?d.jsx("div",{className:"compose-sheet-backdrop",role:"button","aria-label":a("sheet.close"),onClick:c}):null,d.jsxs("section",{id:"mobile-generate-sheet",className:`compose-sheet${r?" compose-sheet--open":""}`,role:"dialog","aria-modal":r?"true":"false","aria-label":a("sheet.generate"),"aria-hidden":!r,children:[d.jsx("button",{type:"button",className:"compose-sheet__handle",onClick:c,"aria-label":a("sheet.close")}),d.jsx("div",{className:"mobile-sheet-tabs",role:"tablist","aria-label":a("sheet.generate"),children:bC.map(h=>d.jsx("button",{type:"button",role:"tab","aria-selected":l===h,className:`mobile-sheet-tabs__button${l===h?" active":""}`,onClick:()=>o(h),children:a(`sheet.tabs.${h}`)},h))}),d.jsx("div",{className:"compose-sheet__body",children:l==="prompt"?d.jsxs("div",{className:"compose-sheet__panel compose-sheet__panel--prompt",role:"tabpanel",children:[d.jsx(cd,{}),d.jsx(ud,{}),d.jsx(Gr,{})]}):l==="controls"?d.jsx("div",{className:"compose-sheet__panel compose-sheet__panel--controls",role:"tabpanel",children:d.jsx(Qy,{})}):d.jsx("div",{className:"compose-sheet__panel compose-sheet__panel--library",role:"tabpanel",children:d.jsx(z.Suspense,{fallback:d.jsx("div",{className:"prompt-library-panel__loading",children:a("common.loading")}),children:d.jsx(vC,{variant:"embedded",forceOpen:!0,onRequestClose:()=>o("prompt")})})})})]})]})}const xC={ArrowLeft:"previous",ArrowRight:"next",Home:"first",End:"last",PageUp:"pagePrevious",PageDown:"pageNext"};function _C(){const a=N(o=>o.uiMode),r=N(o=>!!o.currentImage||!!o.multimodePreviewFlightId),l=N(o=>o.selectHistoryShortcutTarget);z.useEffect(()=>{if(a!=="classic")return;const o=c=>{const f=xC[c.key];f&&(c.defaultPrevented||qr(c.target)||r&&(c.preventDefault(),l(f)))};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[r,l,a])}const Or=64,Jy="Image Gen";let fd=Jy,Fu=!1,sn=null,md="",Vu=!1;function Wy(){return navigator}function ev(){if(typeof document>"u")return null;if(sn)return sn;const a=document.querySelector('link[rel~="icon"]');if(a)return sn=a,md=a.href||a.getAttribute("href")||"",a;const r=document.createElement("link");return r.rel="icon",document.head.appendChild(r),sn=r,Vu=!0,r}function TC(a){const r=document.createElement("canvas");r.width=Or,r.height=Or;const l=r.getContext("2d");return l?(l.clearRect(0,0,Or,Or),l.fillStyle="#0a0a0a",NC(l,6,6,52,52,12),l.fill(),l.strokeStyle="#ffffff",l.lineWidth=5,l.beginPath(),l.arc(30,32,14,0,Math.PI*2),l.stroke(),l.fillStyle="#ffffff",l.beginPath(),l.arc(30,32,5,0,Math.PI*2),l.fill(),l.beginPath(),l.arc(48,16,a>1?13:10,0,Math.PI*2),l.fillStyle="#ff335f",l.fill(),l.lineWidth=4,l.strokeStyle="#ffffff",l.stroke(),a>1&&(l.fillStyle="#ffffff",l.font="bold 15px sans-serif",l.textAlign="center",l.textBaseline="middle",l.fillText(String(Math.min(a,9)),48,17)),r.toDataURL("image/png")):md}function NC(a,r,l,o,c,f){a.beginPath(),a.moveTo(r+f,l),a.arcTo(r+o,l,r+o,l+c,f),a.arcTo(r+o,l+c,r,l+c,f),a.arcTo(r,l+c,r,l,f),a.arcTo(r,l,r+o,l,f),a.closePath()}async function AC(a){const r=Wy();if(typeof r.setAppBadge=="function")try{await r.setAppBadge(a)}catch{}}async function EC(){const a=Wy();if(typeof a.clearAppBadge=="function")try{await a.clearAppBadge()}catch{}}function CC(a){document.title=`(${a}) ${fd}`;const r=ev();r&&(r.href=TC(a)),AC(a)}function gg(){document.title=fd,sn&&(Vu?(sn.remove(),sn=null,Vu=!1):sn.href=md),EC()}function yg(){Fu||typeof document>"u"||(Fu=!0,fd=document.title||Jy,ev())}function wC(a){z.useEffect(()=>(yg(),()=>{Fu&&gg()}),[]),z.useEffect(()=>{yg(),a>0?CC(a):gg()},[a])}function IC(){z.useEffect(()=>{if(typeof window>"u")return;const a=window.visualViewport;if(!a)return;const r=()=>{const l=Math.round(a.height),o=Math.round(a.offsetTop);document.documentElement.style.setProperty("--vv-h",`${l}px`),document.documentElement.style.setProperty("--vv-offset-top",`${o}px`)};return r(),a.addEventListener("resize",r),a.addEventListener("scroll",r),()=>{a.removeEventListener("resize",r),a.removeEventListener("scroll",r)}},[])}const MC=z.lazy(()=>ha(()=>import("./NodeCanvas-d7dH6h99.js"),__vite__mapDeps([0,1])).then(a=>({default:a.NodeCanvas}))),RC=z.lazy(()=>ha(()=>import("./SettingsWorkspace-BS_gSTTl.js"),[]).then(a=>({default:a.SettingsWorkspace}))),OC=z.lazy(()=>ha(()=>import("./CardNewsWorkspace-BW52bztP.js"),[]).then(a=>({default:a.CardNewsWorkspace}))),jC=z.lazy(()=>ha(()=>import("./AgentWorkspace-CKjpho46.js"),[]).then(a=>({default:a.AgentWorkspace}))),kC=z.lazy(()=>ha(()=>import("./PromptLibraryPanel-Co9xIawD.js"),[]).then(a=>({default:a.PromptLibraryPanel})));function zC(){return d.jsx("main",{className:"canvas canvas--lazy-loading","aria-busy":"true"})}function LC(){_C(),IC();const a=N(I=>I.hydrateHistory),r=N(I=>I.loadSessions),l=N(I=>I.syncCapabilities),o=N(I=>I.startInFlightPolling),c=N(I=>I.reconcileInflight),f=N(I=>I.syncFromStorage),p=N(I=>I.theme),m=N(I=>I.resolvedTheme),y=N(I=>I.themeFamily),h=N(I=>I.settingsOpen),x=N(I=>I.unseenGeneratedCount),b=N(I=>I.historyStripLayout),v=N(I=>I.workspaceProfile),_=N(I=>I.syncThemeFromStorage),T=N(I=>I.syncThemeFamilyFromStorage),j=N(I=>I.refreshResolvedTheme),R=N(I=>I.uiMode),C=R==="agent"&&Vi?"agent":R==="node"&&Fi?"node":"classic",A=C==="agent",K=eo(),V=Wi(v),te=!K&&C==="classic"&&V.composerPlacement==="bottom"&&V.multimodeHistoryGrouping==="sequence",ee=!te&&!A;return wC(x),z.useEffect(()=>{l(),a(),r(),c(),o(),Bi(),VS(()=>c()),KS(I=>{I==="failed"&&console.warn("[SSE] connection failed after multiple retries")})},[a,r,c,o,l]),z.useEffect(()=>{const I=le=>{le.key&&(le.key==="ima2.inFlight"||le.key==="ima2.selectedFilename"?f():le.key==="ima2:theme"?_():le.key==="ima2:themeFamily"&&T())};return window.addEventListener("storage",I),()=>window.removeEventListener("storage",I)},[f,_,T]),z.useEffect(()=>{const I=document.documentElement;I.dataset.theme=m,I.dataset.themeMode=m,I.dataset.themeFamily=y,I.style.colorScheme=m},[m,y]),z.useEffect(()=>{if(p!=="system")return;const I=window.matchMedia("(prefers-color-scheme: light)");return I.addEventListener("change",j),()=>I.removeEventListener("change",j)},[j,p]),z.useEffect(()=>{const I=()=>{m_(N.getState)};return window.addEventListener("beforeunload",I),()=>{window.removeEventListener("beforeunload",I)}},[]),d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:`app${v==="prompt-studio"?" app--prompt-studio":""}${h?" app--settings-open":""}${ee&&b==="horizontal"?" app--history-horizontal":""}${ee&&b==="sidebar"?" app--history-sidebar":""}`,"data-theme-mode":m,"data-theme-family":y,"data-history-strip-layout":b,"data-mobile":K?"1":void 0,"data-ui-mode":C,children:[d.jsx(SA,{}),d.jsx(yC,{}),ee?d.jsx(LE,{}):null,d.jsx(z.Suspense,{fallback:d.jsx(zC,{}),children:h?d.jsx(RC,{}):C==="classic"?te?d.jsx($A,{}):d.jsx(Bu,{}):C==="node"?d.jsx(MC,{}):C==="card-news"?d.jsx(OC,{}):C==="agent"?d.jsx(jC,{}):d.jsx(Bu,{})}),C==="agent"||C==="card-news"?null:d.jsx(RE,{})]}),d.jsx(uC,{}),d.jsx(pC,{}),d.jsx(DE,{}),d.jsx(GE,{}),d.jsx(sC,{}),d.jsx(dC,{}),d.jsx(fC,{}),d.jsx(mC,{}),d.jsx(SC,{}),d.jsx(gC,{}),C==="card-news"?d.jsx(z.Suspense,{fallback:null,children:d.jsx(kC,{})}):null]})}function DC(){if(window.location.protocol!=="http:"||window.location.hostname!=="localhost")return!1;const a=new URL(window.location.href);return a.hostname="127.0.0.1",window.location.replace(a.toString()),!0}DC()||IS.createRoot(document.getElementById("root")).render(d.jsx(z.StrictMode,{children:d.jsx(LC,{})}));export{WC as $,Il as A,qr as B,FC as C,HC as D,GC as E,CA as F,PC as G,UC as H,Py as I,BA as J,bg as K,qC as L,b1 as M,Se as N,YC as O,VC as P,XC as Q,br as R,YN as S,m1 as T,QC as U,KC as V,XN as W,ZC as X,$C as Y,JC as Z,ha as _,z as a,ew as a0,N as b,b0 as c,y_ as d,eo as e,g1 as f,SS as g,Vy as h,fa as i,d as j,Ky as k,dE as l,Yy as m,h_ as n,In as o,tw as p,st as q,Ku as r,OE as s,eA as t,ye as u,bA as v,UA as w,HA as x,jh as y,BC as z};