agent-dag 1.33.145 → 1.33.146
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.
|
@@ -58,7 +58,7 @@ Error generating stack: `+x.message+`
|
|
|
58
58
|
`)}function xv(e,n,r){const i=(n??r)-e;if(i<1e3)return`${Math.max(0,i)}ms`;const o=Math.floor(i/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60),u=o%60;return`${l}m ${String(u).padStart(2,"0")}s`}function NO({data:e,selected:n}){var h;const r=e.now??Date.now(),i=["agent-node",`state-${e.state}`,e.synthetic?"synthetic":"",n?"selected":""].filter(Boolean).join(" "),o=e.tools.filter(p=>!p.endedAt).length,l=Vv(e.sessionId),u=((h=e.context)==null?void 0:h.currentContextTokens)??0,c=e.kind==="root"&&u>0;return g.jsxs("div",{className:i,style:{"--session-hue":l},children:[g.jsx("span",{className:"accent-stripe"}),g.jsx(po,{type:"target",position:Ae.Left,style:{background:"transparent",border:"none"}}),g.jsxs("div",{className:"head",children:[g.jsxs("div",{className:"title",children:[g.jsx(CO,{state:e.state}),g.jsx("span",{className:"label",title:e.cwd,children:e.label}),e.synthetic&&g.jsx("span",{className:"synth-tag",title:"No SessionStart captured — synthesised",children:"?"})]}),g.jsxs("div",{className:"head-right",children:[c&&e.onOpenContext&&g.jsx(kO,{currentContextTokens:u,modelId:e.model,contextWindow:e.contextWindow,onClick:()=>e.onOpenContext(e.sessionId)}),g.jsx("div",{className:"time",title:`Started ${new Date(e.startedAt).toLocaleTimeString()}`,children:xv(e.startedAt,e.endedAt,r)})]})]}),g.jsxs("div",{className:"sub",children:[e.kind==="root"?"session":"subagent",e.childCount>0&&g.jsxs("span",{className:"spawn-badge",title:`${e.childCount} subagents spawned`,children:["→ ",e.childCount]}),e.cwdBasename&&e.kind==="subagent"?` · ${e.cwdBasename}`:"",e.model&&g.jsx("span",{className:"model-chip",title:e.model,children:li(e.model)})]}),e.waiting&&g.jsx(RO,{waiting:e.waiting,now:r}),e.tools.length>0&&g.jsx(AO,{tools:e.tools,now:r}),g.jsxs("div",{className:"meta",children:[g.jsxs("span",{children:[g.jsx("b",{children:e.toolCount})," tools"]}),o>0&&g.jsxs("span",{className:"inflight-meta",children:[g.jsx("b",{children:o})," in-flight"]}),e.usage.inputTokens+e.usage.outputTokens>0&&g.jsxs("span",{className:"tokens-meta",title:`in:${e.usage.inputTokens} out:${e.usage.outputTokens} cache-r:${e.usage.cacheReadTokens} cache-c:${e.usage.cacheCreateTokens}${(e.usage.reasoningOutputTokens??0)>0?` reasoning:${e.usage.reasoningOutputTokens}`:""}`,children:[g.jsx("b",{children:TO(e.usage.inputTokens+e.usage.outputTokens)})," tok"]}),e.model&&Gv(e.model)&&(()=>{const p=fn(e.usage,e.model);if(p.total<=0)return null;const d=Math.max(0,((e.endedAt??r)-e.startedAt)/1e3),m=e.state==="active"?yu(p.total,d):null,y=EO(e.usage,e.model)+(m?`
|
|
59
59
|
burn: ${m}`:"");return g.jsxs("span",{className:"cost-meta",title:y,children:[g.jsx("b",{children:Fe(p.total)}),m&&g.jsx("span",{className:"cost-rate",children:m})]})})()]}),g.jsx(po,{type:"source",position:Ae.Right,style:{background:"transparent",border:"none"}})]})}function CO({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return g.jsx("span",{className:`state-pill state-${e}`,children:n})}function ju(e){return e.message?e.message:e.kind==="permission"?"Needs your permission":"Waiting for your input"}function jO(e){return e.kind==="permission"?ju(e):"Your turn"}function RO({waiting:e,now:n}){const r=e.kind==="permission",i=ju(e);return g.jsxs("div",{className:r?"waiting-row permission":"waiting-row idle",title:`${i}
|
|
60
60
|
Blocked for ${xv(e.since,void 0,n)} — the answer goes in the terminal, not here.`,children:[r?g.jsx("span",{className:"ap-pulse","aria-hidden":!0}):g.jsx("span",{className:"waiting-dot","aria-hidden":!0}),g.jsx("span",{className:"waiting-said",children:jO(e)}),g.jsx("b",{children:xv(e.since,void 0,n)})]})}function TO(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function AO({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const w=n-y.startedAt;if(w<0||w>=6e4)continue;const N=23-Math.floor(w/2500);N>=0&&N<24&&(l[N]+=1,u+=1)}const c=Math.max(1,...l),h=132,p=14,d=h/24,m=c/(2500/1e3);return g.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${m.toFixed(1)}/s`,children:[g.jsx("svg",{className:"tool-spark",width:h,height:p,viewBox:`0 0 ${h} ${p}`,"aria-hidden":!0,children:l.map((y,w)=>{const N=y===0?1.5:Math.max(1.5,y/c*p),_=w===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:w*d+.4,y:p-N,width:Math.max(.5,d-1),height:N,rx:.8,className:b},w)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function li(e){const n=e.replace(/^anthropic\./,"").replace(/[-_]\d{8}(?!\d)/,""),r=n.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(r){const l=r[1][0].toUpperCase()+r[1].slice(1).toLowerCase(),u=r[2].replace(/[-_]/g,".");return`${l} ${u}`}const i=n.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(i)return`GPT-${i[1].replace(/[-_]/g,".")} Codex`;const o=n.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return o?`GPT-${o[1].replace(/[-_]/g,".")}`:e}function Tx(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function IO(e){if(e.endedAt==null)return"in-flight…";const n=e.endedAt-e.startedAt;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(2)}s`}function MO({tool:e,onClose:n}){vo(n);const r=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{className:"modal",onClick:i=>i.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"tool-modal-title",children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:`status-dot ${r}`}),g.jsx("span",{id:"tool-modal-title",className:"modal-tool-name",children:e.name}),g.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",children:IO(e)}),g.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("section",{className:"modal-body",children:[e.trimmed&&g.jsx("div",{className:"modal-section",children:g.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),g.jsxs("div",{className:"modal-section",children:[g.jsx("h4",{children:"Input"}),g.jsx("pre",{children:Tx(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",r==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":Tx(e.response??e.errorPreview)})]})]})]})})}const Xl=18,Ax=26,PO=12;function OO(e){return LO(e.nodeInternals.values())}function LO(e){const n=new Map;for(const o of e){if(o.type!=="agent")continue;const l=o.data;if(!(l!=null&&l.sessionId)||l.exitAt!=null||o.width==null||o.height==null)continue;const u=o.position.x,c=o.position.y,h=u+o.width,p=c+o.height,d=n.get(l.sessionId);d?(d.minX=Math.min(d.minX,u),d.minY=Math.min(d.minY,c),d.maxX=Math.max(d.maxX,h),d.maxY=Math.max(d.maxY,p),l.kind==="root"&&(d.label=Ix(l)??d.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:h,maxY:p,label:Ix(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const i=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${qO(o)}`:l.label;i.push({sessionId:o,label:c,x:l.minX-Xl,y:l.minY-Xl-Ax,w:l.maxX-l.minX+Xl*2,h:l.maxY-l.minY+Xl*2+Ax})}return i}function qO(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function Ix(e){if(e.kind==="root")return e.label}function $O(){const{x:e,y:n,zoom:r}=VN(),i=Oa(),o=Ke(OO,DO);if(o.length<=1)return null;const l=u=>{try{const c=i.getNodes().filter(h=>{const p=h.data;return(p==null?void 0:p.sessionId)===u});if(c.length===0)return;i.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=Vv(u.sessionId),h={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,"--session-hue":c},p={position:"absolute",left:u.x*r+e+16*r,top:(u.y-PO)*r+n,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top","--session-hue":c};return g.jsxs(ue.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:h,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:p,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function DO(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const i=e[r],o=n[r];if(i.sessionId!==o.sessionId||i.label!==o.label||i.x!==o.x||i.y!==o.y||i.w!==o.w||i.h!==o.h)return!1}return!0}function FO({data:e}){return g.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const iC=600,zO=4,BO=36,_v=16,UO=60,HO=6,Mx=220,Px=96,WO=28,VO={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan",ScheduleWakeup:"other",CronCreate:"other",CronList:"other",CronDelete:"other",Monitor:"other",PushNotification:"other",RemoteTrigger:"other",ToolSearch:"other"};function GO(e){return e.startsWith("mcp__")?"mcp":VO[e]??"other"}const YO={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",shell:"⚡",exec_command:"⚡",shell_command:"⚡",write_stdin:"💻",wait:"⏳",apply_patch:"🩹",update_plan:"📋",LS:"📂",Task:"🤖",Agent:"🤖",TodoWrite:"📋",TaskCreate:"📋",TaskUpdate:"📝",TaskList:"🗂️",TaskGet:"🗂️",TaskOutput:"📤",TaskStop:"🛑",WebFetch:"🌐",WebSearch:"🔭",ToolSearch:"🧰",NotebookEdit:"📓",EnterPlanMode:"🧭",ExitPlanMode:"🏁",AskUserQuestion:"❓",ScheduleWakeup:"⏰",CronCreate:"⏰",CronList:"📅",CronDelete:"🗑️",Skill:"🎯",Workflow:"🎬",Monitor:"📡",PushNotification:"🔔",RemoteTrigger:"📡"};function Ox(e){return e.startsWith("mcp__")?"🔌":YO[e]??"✨"}const KO={git:"🐙",gh:"🐙",glab:"🐙",npm:"📦",pnpm:"📦",yarn:"📦",bun:"📦",brew:"🍺",node:"🟢",deno:"🟢",python:"🐍",python3:"🐍",py:"🐍",pip:"🐍",pip3:"🐍",uv:"🐍",ruby:"💎",bundle:"💎",gem:"💎",cargo:"🦀",rustc:"🦀",rustup:"🦀",go:"🐹",docker:"🐳","docker-compose":"🐳",podman:"🐳",kubectl:"☸️",helm:"☸️",k9s:"☸️",grep:"🔎",rg:"🔎",ag:"🔎",ack:"🔎",find:"🔍",fd:"🔍",locate:"🔍",which:"🔍",ls:"📂",dir:"📂",tree:"📂",cat:"📄",head:"📄",tail:"📄",less:"📄",more:"📄",bat:"📄",cp:"📋",mv:"✂️",rm:"🗑️",rmdir:"🗑️",mkdir:"📁",touch:"📁",sed:"✏️",awk:"✏️",tr:"✏️",curl:"🌐",wget:"🌐",http:"🌐",httpie:"🌐",ssh:"🔐",scp:"🔐",rsync:"🔐",ping:"📡",make:"🔨",cmake:"🔨",ninja:"🔨",bazel:"🔨",just:"🔨",terraform:"🏗️",ansible:"📕",pulumi:"🏗️",ps:"📊",top:"📊",htop:"📊",btm:"📊",kill:"💀",pkill:"💀",systemctl:"⚙️",service:"⚙️",tar:"🗜️",zip:"🗜️",unzip:"🗜️",gzip:"🗜️","7z":"🗜️",vim:"📝",nvim:"📝",nano:"📝",emacs:"📝",code:"📝",jq:"🪺",yq:"🪺",echo:"💬",printf:"💬",ffmpeg:"🎞️",ffprobe:"🎞️",imagemagick:"🖼️",convert:"🖼️","Get-ChildItem":"📂","Get-Content":"📄","Set-Content":"💾","Out-File":"💾","Add-Content":"💾","Set-Location":"📍","Get-Location":"📍","Get-Process":"📊","Start-Process":"▶️","Stop-Process":"💀","Invoke-WebRequest":"🌐","Invoke-RestMethod":"🌐","New-Item":"📁","Remove-Item":"🗑️","Copy-Item":"📋","Move-Item":"✂️","Test-Path":"🔍","Where-Object":"🔎","ForEach-Object":"🔁","Select-Object":"🎯","Measure-Object":"📊","Get-Service":"⚙️","Restart-Service":"⚙️","ConvertTo-Json":"🪺","ConvertFrom-Json":"🪺"};function oC(e){if(!e)return null;let n=e.trim();if(!n)return null;const r=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(r)return oC(r[1]);for(;;){const l=n.match(/^([A-Z_][A-Z0-9_]*=\S*)\s+/);if(!l)break;n=n.slice(l[0].length)}n=n.replace(/^sudo(?:\s+-\S+)*\s+/,""),n=n.replace(/^(?:time|nohup|xargs)\s+/,"");const i=n.match(/^([^\s|;&<>(]+)/);if(!i)return null;let o=i[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function XO(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const i=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(i>=0&&i+1<r.length)return r[i+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const QO=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),ZO=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function JO(e,n){return ZO.has(e)||e.startsWith("mcp__")?Math.max(Px,34+n.length*7.5):Px}function e3(e,n){if(!QO.has(e))return null;const r=XO(n);if(!r)return null;const i=oC(r);return i?{emoji:KO[i]??"⚙️",label:i,category:"shell",detail:r}:null}const t3=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),Lx={ts:"🟦",tsx:"🟦",d:"🟦",js:"🟨",jsx:"🟨",mjs:"🟨",cjs:"🟨",py:"🐍",pyi:"🐍",ipynb:"📓",rs:"🦀",go:"🐹",rb:"💎",erb:"💎",java:"☕",kt:"☕",scala:"☕",gradle:"☕",cs:"🔷",fs:"🔷",php:"🐘",swift:"🦅",c:"🇨",cpp:"🇨",cc:"🇨",h:"🇨",hpp:"🇨",md:"📝",mdx:"📝",rst:"📝",json:"🪺",json5:"🪺",jsonl:"🪺",yaml:"⚙️",yml:"⚙️",toml:"⚙️",ini:"⚙️",conf:"⚙️",cfg:"⚙️",xml:"📰",html:"🌐",htm:"🌐",vue:"🌐",svelte:"🌐",css:"🎨",scss:"🎨",sass:"🎨",less:"🎨",sh:"⚡",bash:"⚡",zsh:"⚡",fish:"⚡",ps1:"⚡",txt:"📄",log:"📄",out:"📄",csv:"📊",tsv:"📊",xlsx:"📊",xls:"📊",pdf:"📕",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",webp:"🖼️",svg:"🖼️",ico:"🖼️",mp4:"🎬",mov:"🎬",avi:"🎬",mkv:"🎬",webm:"🎬",mp3:"🎵",wav:"🎵",ogg:"🎵",flac:"🎵",zip:"🗜️",tar:"🗜️",gz:"🗜️",bz2:"🗜️","7z":"🗜️",xz:"🗜️",rar:"🗜️",env:"🔐",lock:"🔐",pem:"🔐",key:"🔐",crt:"🔐",sql:"🗄️",db:"🗄️",sqlite:"🗄️",parquet:"🗄️"},qx={dockerfile:"🐳",makefile:"🔨",rakefile:"💎","package.json":"📦","pnpm-lock.yaml":"📦","yarn.lock":"📦","cargo.toml":"🦀","cargo.lock":"🦀","go.mod":"🐹","go.sum":"🐹","pyproject.toml":"🐍","requirements.txt":"🐍","readme.md":"📖",readme:"📖",license:"📜",".gitignore":"🐙",".gitattributes":"🐙",".env":"🔐",".dockerignore":"🐳"};function n3(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),i=r.lastIndexOf("/");return i>=0?r.slice(i+1):r}function r3(e){const n=e.toLowerCase();if(qx[n])return qx[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const r=n.lastIndexOf(".");if(r>0&&r<n.length-1){const i=n.slice(r+1);if(Lx[i])return Lx[i]}return"📄"}function s3(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const i=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return i?i[1].trim():null}return typeof r.file_path=="string"?r.file_path:typeof r.notebook_path=="string"?r.notebook_path:typeof r.path=="string"?r.path:e==="Glob"&&typeof r.pattern=="string"?r.pattern:null}function i3(e,n){if(!t3.has(e))return null;const r=s3(e,n);if(!r)return null;const i=n3(r);return i?{emoji:e==="LS"?"📂":r3(i),label:i,category:"file",detail:r}:null}const aC={github:{emoji:"🐙",name:"GitHub"},git:{emoji:"🐙",name:"Git"},gitlab:{emoji:"🦊",name:"GitLab"},slack:{emoji:"💬",name:"Slack"},discord:{emoji:"💬",name:"Discord"},linear:{emoji:"📐",name:"Linear"},jira:{emoji:"🅹",name:"Jira"},atlassian:{emoji:"🅰️",name:"Atlassian"},notion:{emoji:"📓",name:"Notion"},asana:{emoji:"📋",name:"Asana"},intercom:{emoji:"💬",name:"Intercom"},figma:{emoji:"🎨",name:"Figma"},gmail:{emoji:"📧",name:"Gmail"},calendar:{emoji:"📅",name:"Calendar"},drive:{emoji:"☁️",name:"Drive"},zoom:{emoji:"📹",name:"Zoom"},spotify:{emoji:"🎵",name:"Spotify"},youtube:{emoji:"📺",name:"YouTube"},ccd_session:{emoji:"📡",name:"Session"},ccd_directory:{emoji:"📂",name:"Directory"},ccd_session_mgmt:{emoji:"📡",name:"Sessions"},mcp_registry:{emoji:"🧰",name:"Registry"},"computer-use":{emoji:"🖱️",name:"Computer"},"claude-in-chrome":{emoji:"🌐",name:"Chrome"},"claude-preview":{emoji:"👀",name:"Preview"},"scheduled-tasks":{emoji:"⏰",name:"Scheduler"},visualize:{emoji:"🎨",name:"Visualize"},"plugin-design-asana":{emoji:"📋",name:"Asana"},"plugin-design-atlassian":{emoji:"🅰️",name:"Atlassian"},"plugin-design-figma":{emoji:"🎨",name:"Figma"},"plugin-design-intercom":{emoji:"💬",name:"Intercom"},"plugin-design-linear":{emoji:"📐",name:"Linear"},"plugin-design-notion":{emoji:"📓",name:"Notion"},"plugin-design-slack":{emoji:"💬",name:"Slack"}};function lC(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),r=n.indexOf("__");return r<=0?{server:n,method:""}:{server:n.slice(0,r),method:n.slice(r+2)}}function o3(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}function a3(e,n){const r=lC(e);if(!r)return null;const{server:i,method:o}=r;if(!o)return null;const l=aC[i.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${i} · ${o}`}}function l3(e,n){return e3(e,n)??i3(e,n)??a3(e)}const u3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function c3(e){const n=lC(e);if(n){const i=aC[n.server.toLowerCase()];return i?{emoji:i.emoji,label:i.name}:{emoji:"🔌",label:n.server,hue:o3(n.server)}}const r=u3[e];return r?{emoji:Ox(e),label:r}:{emoji:Ox(e),label:e}}function d3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function f3(e,n,r){if(r==null)return 1;const i=n-r;return i<0?1:Math.max(0,1-i/iC)}function h3(e,n){const r=[],i=new Set;for(let o=e.length-1;o>=0&&r.length<n;o--){const l=e[o];i.has(l.id)||(i.add(l.id),r.push(l))}return r.reverse()}function p3(e,n,r,i,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>iC)continue;const h=i.get(c.id)??r.get(c.id);if(!h)continue;const p=h3(c.tools,zO);if(p.length===0)continue;const d=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??Mx,Mx),w=(m==null?void 0:m.height)??130,N=h.x,_=h.y,S=N+y,b=_+w/2;p.forEach((k,E)=>{const C=E*BO,A=N+y+UO,M=_+HO+C,L=f3(k,l,d),H=k.inputPreview??"",O=d3(k),P=L<.999,F=c3(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:F.label,emoji:F.emoji,status:O,category:GO(k.name),mcpHue:F.hue,inputPreview:H,fade:L,fading:P,worldX:A,worldY:M,anchorX:S,anchorY:b,spawnDx:S-A,spawnDy:b-(M+_v)});const G=l3(k.name,k.input);if(G){const q=JO(k.name,F.label),R=A+q+WO,Q=M,z=A+q,ne=M+_v;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:G.label,emoji:G.emoji,isSub:!0,status:O,category:G.category,inputPreview:G.detail??H,fade:L,fading:P,worldX:R,worldY:Q,anchorX:z,anchorY:ne,spawnDx:z-R,spawnDy:0})}})}return u}function m3({agents:e,visibleAgentIds:n,positions:r,pinned:i,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:h,onOpenTool:p}){const d=p3(e,n,r,i,o,h),m=c&&c.size>0?d.filter(y=>!c.has(y.category)):d;return g.jsx(g3,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:p})}function g3({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:i}){const{x:o,y:l,zoom:u}=VN();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const h=c.anchorX*u+o,p=c.anchorY*u+l,d=(c.worldX+6)*u+o,m=(c.worldY+_v)*u+l,y=h+(d-h)*.55,w=n!=null&&!n.has(c.agentId),N=r!=null&&!r.has(c.agentId),_=c.fade*(w||N?.14:1);return g.jsx("path",{d:`M ${h} ${p} Q ${y} ${p}, ${d} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const h=c.worldX*u+o,p=c.worldY*u+l,d={left:`${h}px`,top:`${p}px`,transform:`scale(${u})`,transformOrigin:"left top","--spawn-dx":`${c.spawnDx}px`,"--spawn-dy":`${c.spawnDy}px`},m=c.isSub?`${c.toolName} · ${c.name}`:c.toolName,y=c.inputPreview?`${m} · ${c.inputPreview}`:m,w=i!=null,N=c.mcpHue!=null?{"--mcp-hue":c.mcpHue}:{},_=n!=null&&!n.has(c.agentId),S=r!=null&&!r.has(c.agentId),b=_||S?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:d,children:g.jsxs("div",{className:`tool-burst cat-${c.category}${c.mcpHue!=null?" mcp-hue":""} status-${c.status}${c.fading?" fading":""}${w?" clickable":""}${c.isSub?" sub":""}${b}`,style:N,title:y,role:w?"button":void 0,tabIndex:w?0:void 0,"aria-label":w?`Open ${c.toolName} ${c.status==="inflight"?"in flight":c.status} — click for details`:void 0,onClick:w?()=>i(c.toolId):void 0,onKeyDown:w?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),i(c.toolId))}:void 0,children:[g.jsx("span",{className:"tb-emoji",children:c.emoji}),g.jsx("span",{className:"tb-name",children:c.name}),c.status==="inflight"&&g.jsx("span",{className:"tb-spin"}),c.status==="done"&&g.jsx("span",{className:"tb-mark done",children:"✓"}),c.status==="err"&&g.jsx("span",{className:"tb-mark err",children:"×"})]})},c.id)})]})}function v3({state:e,sessionId:n,onClose:r}){const i=T.useMemo(()=>w3(e,n),[e,n]),o=T.useRef(null);return vo(r,{focusRef:o}),i?g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{className:"modal session-summary",onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[g.jsxs("div",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),g.jsx("span",{id:"ss-title",className:"modal-tool-name",title:i.cwd??i.sessionId,children:i.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",i.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:i.durationLabel}),g.jsx("button",{type:"button",ref:o,className:"btn",onClick:r,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("div",{className:"modal-body",children:[g.jsxs("section",{className:"ss-hero",children:[g.jsxs("div",{className:"ss-hero-left",children:[g.jsx("div",{className:"ss-cost-label",children:"total spend"}),g.jsx("div",{className:"ss-cost",children:Fe(i.cost.total)}),i.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:i.modelChips.map(l=>g.jsx("span",{className:"model-chip",title:l,children:li(l)},l))})]}),g.jsx("div",{className:"ss-hero-right",children:i.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(y3,{cost:i.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:Fe(i.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:Fe(i.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:Fe(i.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:Fe(i.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(to,{label:"agents",value:i.agentCount}),g.jsx(to,{label:"subagents",value:i.subagentCount}),g.jsx(to,{label:"tool calls",value:i.toolCount}),g.jsx(to,{label:"prompts",value:i.promptCount}),g.jsx(to,{label:"tokens",value:i.tokensSum.toLocaleString()}),i.errCount>0&&g.jsx(to,{label:"errors",value:i.errCount,tone:"err"})]}),i.topTools.length>0&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Most-used tools"}),g.jsx("div",{className:"ss-top-tools",children:i.topTools.map(([l,u])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:l}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${u/i.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:u})]},l))})]}),i.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:i.firstPrompt})]})]})]})}):null}function to({label:e,value:n,tone:r}){return g.jsxs("div",{className:`ss-stat${r?` tone-${r}`:""}`,children:[g.jsx("div",{className:"ss-stat-value",children:n}),g.jsx("div",{className:"ss-stat-label",children:e})]})}function y3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Fe(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function w3(e,n){const r=e.agents.get(n);if(!r)return null;const i=[];for(const E of e.agents.values())E.sessionId===n&&i.push(E);if(i.length===0)return null;const o={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},l=new Set,u=new Map;let c=0,h=0,p=0,d=0,m=0,y,w=1/0,N=0;for(const E of i){const C=fn(E.usage,E.model);o.input+=C.input,o.output+=C.output,o.cacheRead+=C.cacheRead,o.cacheWrite+=C.cacheWrite,o.total+=C.total,E.model&&l.add(E.model),E.kind==="subagent"&&m++,h+=E.prompts.length,!y&&E.prompts.length>0&&(y=E.prompts[0].text),p+=E.usage.inputTokens+E.usage.outputTokens,c+=E.toolCount,w=Math.min(w,E.startedAt),N=Math.max(N,E.endedAt??Date.now());for(const A of E.tools)u.set(A.name,(u.get(A.name)??0)+1),A.ok===!1&&d++}const _=Math.max(0,N-w),S=Math.floor(_/1e3),b=S<60?`${S}s`:S<3600?`${Math.floor(S/60)}m ${String(S%60).padStart(2,"0")}s`:`${Math.floor(S/3600)}h ${Math.floor(S%3600/60)}m`,k=Array.from(u.entries()).sort((E,C)=>C[1]-E[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:i.length,subagentCount:m,toolCount:c,promptCount:h,tokensSum:p,errCount:d,topTools:k,firstPrompt:y}}function $x(e){return e.waiting?e.waiting.kind==="permission"?0:1:e.state==="active"?2:3}function x3(e,n){const r=[];for(const i of e.agents.values()){if(i.kind!=="root")continue;let o=i.toolCount,l=fn(i.usage,i.model).total,u=i.endedAt??i.startedAt;for(const c of e.agents.values()){if(c.sessionId!==i.sessionId||c.kind==="root")continue;o+=c.toolCount,l+=fn(c.usage,c.model).total;const h=c.endedAt??c.startedAt;h>u&&(u=h)}r.push({sessionId:i.sessionId,label:i.label||i.cwdBasename||"session",cwdBasename:i.cwdBasename,state:i.state,waiting:i.waiting,modelId:i.model,toolCount:o,cost:l,startedAt:i.startedAt,lastActivity:u})}return r.sort((i,o)=>{const l=$x(i),u=$x(o);return l!==u?l-u:i.waiting&&o.waiting?i.waiting.since-o.waiting.since:o.lastActivity-i.lastActivity}),r}function Dx(e,n,r){const i=(n??r)-e;if(i<1e3)return"<1s";const o=Math.floor(i/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60);return l<60?`${l}m`:`${Math.floor(l/60)}h ${l%60}m`}function _3({state:e,now:n,selectedIds:r,onSelect:i,onClose:o}){const l=T.useMemo(()=>x3(e),[e,e.lastSeq,n]),u=l.filter(h=>h.state==="active").length,c=l.filter(h=>{var p;return((p=h.waiting)==null?void 0:p.kind)==="permission"}).length;return g.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h3",{children:["Sessions ",g.jsx("span",{className:"sl-count",children:l.length})]}),c>0&&g.jsxs("span",{className:"sl-waiting-count",children:[c," waiting"]}),u>0&&g.jsxs("span",{className:"sl-live-count",children:[u," live"]}),g.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),g.jsxs("div",{className:"sl-rows",children:[l.length===0&&g.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(h=>{const p=r.has(h.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${h.state}${p?" selected":""}`,onClick:()=>i(h.sessionId),title:`Focus ${h.label}`,children:[g.jsx("span",{className:`sl-dot state-${h.state}`,"aria-hidden":!0}),g.jsxs("div",{className:"sl-row-body",children:[g.jsxs("div",{className:"sl-row-head",children:[g.jsx("span",{className:"sl-label",children:h.label}),h.modelId&&g.jsx("span",{className:"model-chip",title:h.modelId,children:li(h.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:h.toolCount})," tools"]}),h.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:Fe(h.cost)})}),h.waiting?g.jsxs("span",{className:"sl-waiting",title:`${ju(h.waiting)}
|
|
61
|
-
Blocked since ${new Date(h.waiting.since).toLocaleTimeString()} · started ${new Date(h.startedAt).toLocaleString()}`,children:["waiting ",Dx(h.waiting.since,void 0,n)]}):g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(h.startedAt).toLocaleString()}`,children:Dx(h.startedAt,h.state==="active"?void 0:h.lastActivity,n)})]})]})]},h.sessionId)})]})]})}const zt="ccdeck";function Ft(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:e<1e9?`${(e/1e6).toFixed(2)}M`:`${(e/1e9).toFixed(2)}B`}function Fx(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function b3(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function S3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Fe(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function k3(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/3600),o=Math.floor(r%3600/60);if(i>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return i>0?`${i}h ${o}m`:`${o}m`}function E3(e,n,r,i){const o=Math.max(0,n-i),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const h=100-e,p=l>0?e/l:0,d=p>0?h/p:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(d<o&&d<86400){const y=Math.floor(d/3600),w=Math.floor(d%3600/60);m.runsOutIn=y>0?`${y}h ${w}m`:`${w}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function ei({pct:e,label:n,reset:r,resetAt:i,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),p=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",d=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=i?k3(i,u):null,w=i&&o?E3(c,i,o,u):null;return g.jsxs("div",{className:"qb-row",children:[g.jsxs("div",{className:"qb-meta",children:[g.jsxs("span",{className:"qb-label",children:[n,l&&g.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),g.jsx("span",{className:"qb-pct",style:{color:p},children:d})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:p,opacity:c===0?.4:1}}),w&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${w.expectedPct}%`,background:w.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(w.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?g.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,w&&g.jsx("span",{className:"qb-pace",style:{color:w.color},children:w.runsOutIn?`runs out in ${w.runsOutIn}`:w.label})]})]})}const N3=6e4;function C3(){const[e,n]=T.useState(null),[r,i]=T.useState(!1),o=T.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const p=await fetch(c?"/api/quota?refresh=1":"/api/quota");p.ok&&n(await p.json())}catch{}finally{c&&i(!1)}};return T.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),N3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function j3(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const uC=6e4;function R3(){const[e,n]=T.useState(null),[r,i]=T.useState(!1),o=T.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const p=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");p.ok&&n(await p.json())}catch{}finally{c&&i(!1)}};return T.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),uC),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function T3(){const[e,n]=T.useState(null),r=T.useRef(null),i=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return T.useEffect(()=>(i(),r.current=window.setInterval(i,uC),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function A3({state:e,now:n,onClose:r}){var L,H;const{quota:i,loading:o,refresh:l}=C3(),{data:u,loading:c,refresh:h}=R3(),{data:p}=T3(),[d,m]=T.useState(()=>Math.floor(Date.now()/1e3));T.useEffect(()=>{const O=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(O)},[]);const{byModel:y,totalCost:w,totalTokens:N,burnRate:_}=T.useMemo(()=>{const O=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let F=0,G=0,q=0,R=0;for(const $ of e.agents.values()){const X=$.model??"__unknown__",I=fn($.usage,$.model),W=O.get(X);W?(W.inputTokens+=$.usage.inputTokens,W.outputTokens+=$.usage.outputTokens,W.cacheReadTokens+=$.usage.cacheReadTokens,W.cacheCreateTokens+=$.usage.cacheCreateTokens,W.cost.total+=I.total,W.cost.input+=I.input,W.cost.output+=I.output,W.cost.cacheRead+=I.cacheRead,W.cost.cacheWrite+=I.cacheWrite,W.agentCount++):O.set(X,{model:X,inputTokens:$.usage.inputTokens,outputTokens:$.usage.outputTokens,cacheReadTokens:$.usage.cacheReadTokens,cacheCreateTokens:$.usage.cacheCreateTokens,cost:{...I},agentCount:1}),P.total+=I.total,P.input+=I.input,P.output+=I.output,P.cacheRead+=I.cacheRead,P.cacheWrite+=I.cacheWrite,F+=$.usage.inputTokens,G+=$.usage.outputTokens,q+=$.usage.cacheReadTokens,R+=$.usage.cacheCreateTokens}const Q=Array.from(O.values()).sort(($,X)=>X.cost.total-$.cost.total);let z=0,ne=0;for(const $ of e.agents.values()){if($.state!=="active")continue;const X=fn($.usage,$.model);z+=X.total,ne=Math.max(ne,(($.endedAt??n)-$.startedAt)/1e3)}const Z=ne>0?yu(z,ne):null;return{byModel:Q,totalCost:P,totalTokens:{in:F,out:G,cacheR:q,cacheC:R},burnRate:Z}},[e,e.lastSeq,n]),S=T.useMemo(()=>{const O=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let F=fn(P.usage,P.model).total,G=P.usage.inputTokens,q=P.usage.outputTokens;for(const R of e.agents.values())R.sessionId!==P.sessionId||R.kind==="root"||(F+=fn(R.usage,R.model).total,G+=R.usage.inputTokens,q+=R.usage.outputTokens);O.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:F,inputTokens:G,outputTokens:q})}return O.sort((P,F)=>F.cost-P.cost).slice(0,12)},[e,e.lastSeq]),b=w.total>0,k=N.in+N.out,E=o||c,C=Fx(i==null?void 0:i.fetchedAt,d),A=Fx(u==null?void 0:u.fetchedAt,d),M=()=>{l(),h()};return g.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h3",{children:"Usage"}),_&&g.jsx("span",{className:"up-rate",children:_}),g.jsxs("div",{className:"up-header-right",children:[g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:M,disabled:E,title:"Refresh Claude + Codex quota",children:E?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Claude quota",C&&!o&&g.jsx("span",{className:"up-section-age",title:b3(i==null?void 0:i.source),children:C})]}),i!=null&&i.ok?g.jsxs("div",{className:"up-quota-bars",children:[i.session5hPct!=null&&g.jsx(ei,{label:"5-hour window",pct:i.session5hPct,reset:i.session5hReset,resetAt:i.session5hResetAt,windowSec:i.session5hWindowSec,nowSec:d}),i.week7dPct!=null&&g.jsx(ei,{label:"7-day window",pct:i.week7dPct,reset:i.week7dReset,resetAt:i.week7dResetAt,windowSec:i.week7dWindowSec,nowSec:d}),i.weekSonnetPct!=null&&g.jsx(ei,{label:"Sonnet (7d)",pct:i.weekSonnetPct,nowSec:d}),i.weekOpusPct!=null&&g.jsx(ei,{label:"Opus (7d)",pct:i.weekOpusPct,nowSec:d})]}):(i==null?void 0:i.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&g.jsx("span",{className:"up-plan-badge",children:u.planLabel}),A&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:A})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(L=u.windows)==null?void 0:L.map(O=>g.jsx(ei,{label:O.label,pct:O.pct,reset:O.reset??void 0,resetAt:O.resetAt??void 0,windowSec:O.windowSec??void 0,limitReached:u.limitReached&&O.pct>=100,nowSec:d},O.id)),(H=u.extraWindows)==null?void 0:H.map(O=>g.jsx(ei,{label:O.label,pct:O.pct,reset:O.reset??void 0,resetAt:O.resetAt??void 0,windowSec:O.windowSec??void 0,nowSec:d},O.id)),u.creditLimit&&g.jsx(ei,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:d}),(p==null?void 0:p.ok)&&p.window7d&&p.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Ft(p.window7d.totalTokens)," tokens · ",p.window7d.sessionCount," session",p.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&g.jsxs("div",{className:"up-quota-sub up-reset-credits",title:`Redeem in the Codex CLI or ChatGPT — ${zt} only reports them`,children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&g.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&g.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:j3(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:Fe(w.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(S3,{cost:w}),k>0&&g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Ft(N.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]}),N.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Ft(N.cacheR)]}),N.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Ft(N.cacheC)]})]}),y.filter(O=>O.cost.total>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:y.filter(O=>O.cost.total>0).map(O=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:O.model,children:li(O.model)}),g.jsx("td",{className:"up-num",children:Ft(O.inputTokens+O.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:Fe(O.cost.total)})]},O.model))})]})]}),S.filter(O=>O.cost>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:S.filter(O=>O.cost>0).map(O=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${O.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:O.label}),g.jsx("span",{className:"up-session-tokens",children:Ft(O.inputTokens+O.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:Fe(O.cost)})]},O.sessionId))})]})]}):k>0?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Ft(N.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]})]}),g.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const zx=18,I3=1100,no=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},M3=Array.from({length:zx},(e,n)=>{const r=-72+144*n/(zx-1)+(no(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+no(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+no(n,3)*260),delay:Math.round(no(n,4)*90),dur:760+Math.round(no(n,5)*260),scale:.8+no(n,6)*.45,hue:n%4,round:n%3===0}});function Bx({anchor:e,lifetimeMs:n=I3}){var l;const[r,i]=T.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return T.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();i({x:c.left+c.width/2,y:c.top+c.height/2});const h=window.setTimeout(()=>i(null),n);return()=>window.clearTimeout(h)},[e,n,o]),o||!r?null:TI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:M3.map((u,c)=>g.jsx("span",{className:`confetti-bit${u.round?" round":""}`,"data-hue":u.hue,style:{"--dx":`${u.dx.toFixed(1)}px`,"--dy":`${u.dy.toFixed(1)}px`,"--rot":`${u.rot}deg`,"--s":u.scale.toFixed(2),animationDelay:`${u.delay}ms`,animationDuration:`${u.dur}ms, ${u.dur}ms`}},c))}),document.body)}const cC=new Set(["awaiting_url","awaiting_code","registering"]);function P3(e){return e!=null&&cC.has(e)}function dC(e){return e!=null&&e!=="done"&&!cC.has(e)}const O3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",L3="the sign-in did not complete";function q3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?O3:L3)}}const $3="done";function D3(){let e=!1;return{shouldAnnounce(n){return n!==$3?(e=!1,!1):e?!1:(e=!0,!0)}}}const Ux={already_running:"a sign-in is already in progress",no_url:"the claude CLI did not offer a sign-in link — is it installed?",not_waiting:"that sign-in is no longer waiting for a code",not_prompted:"the CLI has not asked for a code yet",code_rejected:"that code was not accepted — copy it again from the browser",no_verdict:"the claude CLI has not answered — try the code again",empty_code:"paste the code from the browser first",login_failed:"the code was not accepted",no_identity:"signed in, but the CLI still reports nobody logged in",add_failed:"signed in, but claude-swap could not record the account",not_a_share:"that does not look like a shared account — it should start with ccdeck1:",corrupt:"that share is incomplete — copy the whole thing",wrong_version:`that share was made by a newer ${zt}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},Hx={no_cswap:"claude-swap could not be run — it is not on this deck's PATH. Set AGENTS_DECK_CSWAP to its full path",timeout:"claude-swap took too long and was stopped — try again",switch_failed:"claude-swap refused the switch",bad_account:"that is not an account claude-swap has",unknown_setting:"claude-swap has no such setting",out_of_range:"that value is outside what the setting allows",bad_value:"claude-swap does not accept that value",set_failed:"claude-swap refused the change",command_failed:"claude-swap refused the command"},F3=`claude-swap could not read the login keychain — start ${zt} from a Terminal window rather than a background service`;function bv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(mo(e))?F3:e!=null&&e.reason&&Hx[e.reason]?Hx[e.reason]:(e==null?void 0:e.reason)||n}function mo(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const Wx={no_install:"ccusage is not installed, and AGENTS_DECK_NO_INSTALL=1 forbids fetching it — unset that variable and restart the deck, or install ccusage yourself",timeout:"ccusage took more than 90 seconds and was stopped — a narrower range usually finishes",bad_output:"ccusage ran but printed no usage data — try again, and run ccusage daily --json in a terminal if it keeps happening",run_failed:"ccusage could not report usage — try again",unreachable:"the deck did not answer — check it is still running, then try again"},z3="ccusage could not be started — npx is not on this deck's PATH. Install Node's npm/npx, or put ccusage on PATH yourself";function B3(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function U3(e,n){return B3(mo(e))?z3:e!=null&&e.reason&&Wx[e.reason]?Wx[e.reason]:(e==null?void 0:e.reason)||n}function au(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&dC(e.state)?e.error:e!=null&&e.reason&&Ux[e.reason]?Ux[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const H3=1500;async function Ql(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const Sv=ue.forwardRef((e,n)=>g.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[g.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),g.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Sv.displayName="SuccessMark";function W3({onClose:e,onChanged:n}){const[r,i]=T.useState("login"),[o,l]=T.useState(null),[u,c]=T.useState(""),[h,p]=T.useState(""),[d,m]=T.useState(!1),[y,w]=T.useState(null),[N,_]=T.useState(null),S=T.useRef(!1),b=T.useRef(null),k=T.useRef(null),E=T.useRef(null),C=T.useCallback(()=>{S.current&&Ql({action:"login-cancel"}).catch(()=>{}),e()},[e]);vo(C);const A=T.useCallback(async()=>{m(!0),w(null),S.current=!0;const q=await Ql({action:"login"}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(au(q,"could not start the sign-in"));return}l(q)},[]);T.useEffect(()=>{if(!P3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const R=await fetch("/api/claude-accounts/login");R.ok&&l(await R.json())}catch{}},H3);return()=>window.clearInterval(q)},[o]);const M=T.useRef(n);M.current=n;const L=T.useRef(D3());T.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=b.current)==null||q.focus()),L.current.shouldAnnounce(o==null?void 0:o.state)&&M.current()},[o==null?void 0:o.state]),T.useEffect(()=>{var q;r==="paste"&&((q=k.current)==null||q.focus())},[r]);const H=T.useCallback(async()=>{var R;m(!0),w(null);const q=await Ql({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(au(q,"the code was not accepted")),q!=null&&q.state&&l(q),(R=b.current)==null||R.select();return}c(""),l(q)},[u,o]),O=T.useCallback(async()=>{m(!0),w(null);const q=await Ql({action:"import",blob:h}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(au(q,"the import failed"));return}p(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[h,n]),P=(o==null?void 0:o.state)==="done"?o.account:null,F=dC(o==null?void 0:o.state)||!!(y&&S.current&&!d),G=q3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:C,role:"presentation",children:g.jsxs("div",{className:"modal aa-modal",onClick:q=>q.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[g.jsxs("header",{className:"modal-head",children:[g.jsx("div",{className:"modal-title",children:g.jsxs("span",{className:"aa-tabs",role:"tablist",children:[g.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>i("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>i("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:C,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?P?g.jsxs("div",{className:"aa-done",children:[g.jsx(Sv,{ref:E}),g.jsx(Bx,{anchor:E}),g.jsx("h4",{children:P.added?`Account ${P.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:P.email}),P.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:b,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!d&&H()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!u.trim()||o.state==="registering",onClick:H,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&g.jsx("p",{className:"aa-err",children:y??o.error}),g.jsx("p",{className:"aa-note",children:"The code goes straight to the claude CLI on this machine. It is never stored or sent anywhere else."})]})]}):F?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:G.title}),g.jsx("p",{className:"aa-err",children:G.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),w(null),A()},children:"Try again"})]}):d||S.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",className:"btn primary",onClick:A,disabled:d,children:"Open the sign-in page"})})]}):N?g.jsxs("div",{className:"aa-done",children:[g.jsx(Sv,{ref:E}),N.added&&g.jsx(Bx,{anchor:E}),g.jsx("h4",{children:N.added?`Account ${N.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:N.added?g.jsxs(g.Fragment,{children:[N.email?g.jsx("strong",{children:N.email}):"That account"," is in the rotation now. Nothing changed on the deck you copied it from."]}):"This deck already holds that account, so nothing changed."}),g.jsxs("div",{className:"aa-actions",children:[g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),g.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"Paste an account shared from another deck"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:k,type:"text",value:h,onChange:q=>p(q.target.value),onKeyDown:q=>{q.key==="Enter"&&h.trim()&&!d&&O()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!h.trim(),onClick:O,children:d?"importing…":"Import"})]}),y&&g.jsx("p",{className:"aa-err",children:y}),g.jsxs("p",{className:"aa-note",children:["Use ",g.jsx("strong",{children:"share"})," on an account in the other deck. A share carries a live login and expires ten minutes after it is made."]})]})})]})})}function V3(e,n){const r=new Set(e),i=e.length?Math.max(...e):0;return[...new Set([...e,i+1])].sort((o,l)=>o-l).map(o=>{const l=o===n?"here":r.has(o)?"swap":"free";return{slot:o,kind:l,label:l==="here"?`slot ${o}`:`slot ${o} · ${l}`}})}function G3(e,n,r){if(!(r!=null&&r.ok))return null;const i=Number.isInteger(r.to)?r.to:null;if(i==null)return{menuFor:null,confirmRemove:null,shareFor:null,swapNote:null};const o=r.swapped===!0&&i!==n;return{menuFor:e.menuFor===n?i:o&&e.menuFor===i?n:e.menuFor,confirmRemove:null,shareFor:null,swapNote:o?{at:i,displaced:n}:null}}function Y3(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const K3=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function Vx(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function X3(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=mo(n.body);return{text:bv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function Gx(e,n){return n?e!=null&&e.reload&&e.text===n.text&&e.raw===n.raw?e:n:e!=null&&e.reload?null:e}const Yx=15e3,Q3=8e3,Z3=1800,J3=3e4,eL=[70,80,85,90,95];function tL(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function Kx(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function nL(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function rL(e){switch(e){case"invalid_grant":case"no_refresh_token":return{text:"login expired",hint:"claude-swap's stored login for this account was rejected and cannot be refreshed. Signing in again replaces it — the account keeps its slot, its alias and its history.",fixable:!0};case"http-401":return{text:"re-login needed",hint:"Anthropic refused this account's token.",fixable:!0};case"http-429":return{text:"rate limited",hint:"Anthropic is throttling requests for this account. It clears on its own.",fixable:!1};case"transient":return{text:"temporary error",hint:"A network or server hiccup while reading usage. The next collection retries.",fixable:!1};case"timeout":return{text:"timed out",hint:"Reading this account's usage took too long. The next collection retries.",fixable:!1};case"network":return{text:"unreachable",hint:"Could not reach Anthropic to read this account's usage.",fixable:!1};default:return{text:e,hint:`claude-swap reported "${e}" for this account.`,fixable:!1}}}function sL({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),i=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?tL(e.resetAt,n):null;return g.jsxs("div",{className:"ap-lane",children:[g.jsx("span",{className:"ap-lane-label",children:e.label}),g.jsx("div",{className:"ap-lane-track",children:g.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:i,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:i},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}async function iL(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(i=>window.setTimeout(()=>i(!1),500))])}catch{n=!1}if(n)return!0;try{const i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(i),i.select(),n=document.execCommand("copy"),i.remove()}catch{n=!1}return n}function oL(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function aL({onClose:e}){var re,le,fe;const[n,r]=T.useState(null),[i,o]=T.useState(null),[l,u]=T.useState(null),[c,h]=T.useState(!1),[p,d]=T.useState(null),[m,y]=T.useState(null),[w,N]=T.useState(()=>Math.floor(Date.now()/1e3)),_=T.useRef(null),[S,b]=T.useState(null),[k,E]=T.useState(!1),[C,A]=T.useState(""),[M,L]=T.useState(null),[H,O]=T.useState(null),[P,F]=T.useState(null),[G,q]=T.useState(!1),[R,Q]=T.useState(null),z=T.useCallback(async(te=!1)=>{te&&h(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),J3);try{const[ve,Te]=await Promise.all([fetch(`/api/claude-accounts${te?"?refresh=1":""}`,{signal:ce.signal}),fetch("/api/cswap-auto",{signal:ce.signal})]);ve.ok&&r(await ve.json()),Te.ok&&o(await Te.json());const ye=X3([await Vx(ve),await Vx(Te)]);y(ke=>Gx(ke,ye))}catch{y(ve=>Gx(ve,K3))}finally{window.clearTimeout(Ce),te&&h(!1)}},[]),ne=T.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:bv(ve,"command failed"),raw:mo(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=T.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:au(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);T.useEffect(()=>(z(!0),_.current=window.setInterval(()=>z(!1),Yx),()=>{_.current!=null&&window.clearInterval(_.current)}),[z]),T.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const $=((re=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:re.value)??"90",X=(le=n==null?void 0:n.accounts)==null?void 0:le.find(te=>te.active),I=X!=null&&X.lanes.length?Math.max(...X.lanes.map(te=>te.pct)):null,W=I!=null&&I>=Number($)-15,Y=async te=>{d(te),y(null);try{const Ce=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:te})})).json().catch(()=>null);Ce!=null&&Ce.ok||y({text:bv(Ce,"the switch failed"),raw:mo(Ce)}),await z(!0)}catch{y({text:"server unreachable"})}finally{d(null)}},U=async(te,ce)=>{const{commit:Ce,alias:ve}=Y3(C,ce);if(Ce){const Te=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await z(!0),!(Te!=null&&Te.ok))return;A(ve)}L(te),window.setTimeout(()=>L(Te=>Te===te?null:Te),Z3)},J=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=G3({menuFor:S,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await z(!0),ve){b(ve.menuFor),O(ve.confirmRemove),ve.shareFor==null&&(F(null),q(!1)),Q(ve.swapNote);const Te=ve.swapNote;Te&&window.setTimeout(()=>Q(ye=>ye===Te?null:ye),Q3)}};return g.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h3",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>E(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>z(!0),disabled:c,"aria-label":"Reload accounts",title:"Reload from claude-swap",children:c?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?m?g.jsxs("div",{className:"ap-empty",role:"alert",children:[g.jsx("span",{title:m.raw||void 0,children:m.text}),g.jsxs("span",{className:"ap-hint",children:["No accounts have arrived, so there is nothing to show yet. The panel keeps trying every ",Yx/1e3," seconds."]}),g.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>z(!0),children:c?"trying…":"try again"})]}):g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(fe=n.accounts)==null?void 0:fe.map(te=>g.jsxs("div",{className:`ap-account${te.active?" active":""}${te.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:te.num}),te.alias&&g.jsx("span",{className:"ap-alias",children:te.alias}),g.jsx("span",{className:"ap-email",title:te.org??void 0,children:te.email}),g.jsx("button",{type:"button",className:`ap-more${S===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":S===te.num,"aria-controls":S===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{b(S===te.num?null:te.num),A(te.alias??""),O(null),F(null),q(!1),Q(null),L(null)},children:"⋯"}),te.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:p!=null||te.disabled,onClick:()=>Y(te.num),title:te.disabled?"Held out of rotation":`Switch to ${te.alias??te.email}`,children:p===te.num?"…":"switch"})]}),te.lanes.length>0?te.lanes.map(ce=>g.jsx(sL,{lane:ce,nowSec:w},ce.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[te.error&&(()=>{const ce=rL(te.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:ce.hint,children:ce.text}),ce.fixable&&g.jsx("button",{type:"button",className:"ap-fix",onClick:()=>E(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((i==null?void 0:i.enabled)||(i==null?void 0:i.external))&&!te.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>ne({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>z(!0)),title:te.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:te.disabled?"held out":"in rotation"}),te.fetchedAt?g.jsxs("span",{className:`ap-age${te.stale?" ap-stale":""}`,title:"When claude-swap last read this account's usage, and when it plans to read it again. It sets that interval itself — 3 minutes at the fastest, wider while an account is recovering from a rate limit — and every surface, including `cswap watch`, follows the same plan.",children:["collected ",Kx(te.fetchedAt,w),nL(te.nextAt,w)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),S===te.num&&g.jsxs("div",{className:"ap-manage",id:`ap-manage-${te.num}`,role:"group","aria-label":`Manage account ${te.num}`,children:[g.jsxs("div",{className:"ap-manage-name",children:[g.jsx("label",{className:"ap-vh",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),g.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:C,onChange:ce=>A(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&U(te.num,te.alias)},placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>U(te.num,te.alias),title:"A short name to show instead of the email",children:M===te.num?"saved":"save"})]}),g.jsxs("div",{className:"ap-manage-acts",children:[g.jsx("label",{className:"ap-vh",htmlFor:`ap-slot-${te.num}`,children:"Slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{id:`ap-slot-${te.num}`,value:String(te.num),disabled:l!=null,onChange:ce=>J(te.num,Number(ce.target.value)),children:V3((n.accounts??[]).map(ce=>ce.num),te.num).map(ce=>g.jsx("option",{value:ce.slot,children:ce.label},ce.slot))})}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:`Copy this account to another ${zt}. The share carries a live login and expires in 10 minutes.`,onClick:async()=>{q(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&F({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${H===te.num?" armed":""}`,disabled:l!=null,title:H===te.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(H!==te.num){O(te.num),window.setTimeout(()=>O(ce=>ce===te.num?null:ce),4e3);return}O(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{b(null),z(!0)})},children:H===te.num?"confirm":"remove"})]}),(R==null?void 0:R.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(Te=>Te.num===R.displaced),Ce=(ce==null?void 0:ce.alias)??(ce==null?void 0:ce.email)??"the account that was there";return g.jsxs("span",{className:"ap-manage-hint ap-manage-swap",title:`Slot ${R.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${R.displaced}.`,children:["swapped with slot ",R.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=oL(P.expiresAt,w),Ce=ce.tone==="gone";return g.jsxs("div",{className:`ap-share${Ce?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:P.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(Ce){q(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&F({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await iL(P.blob)&&(q(!0),window.setTimeout(()=>q(!1),1800))},children:Ce?"make a new share":G?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${ce.tone}`,children:ce.text})]})]})]})})()]})]},te.num)),(i==null?void 0:i.ok)&&g.jsxs("div",{className:"ap-auto",children:[g.jsxs("div",{className:"ap-auto-head",children:[g.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),g.jsxs("span",{className:"ap-auto-ctl",children:[I!=null&&g.jsxs("span",{className:`ap-auto-now${W?" near":""}`,children:[Math.round(I),"%"]}),g.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:g.jsx("select",{"aria-label":"Switch threshold",value:$,disabled:l!=null,onChange:te=>ne({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>z(!0)),children:eL.map(te=>g.jsxs("option",{value:te,children:[te,"%"]},te))})}),g.jsxs("button",{type:"button",className:`ap-auto-state${i.enabled?" live":""}`,role:"switch","aria-checked":i.enabled,disabled:l!=null,onClick:()=>ne({action:"enable",enabled:!i.enabled},"enable").then(()=>z(!0)),title:i.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:i.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),i.enabled?"on":"off"]})]})]}),i.external&&g.jsxs("p",{className:"ap-auto-note",children:[g.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",g.jsx("code",{children:"cswap auto"})," loop in your terminal is doing the switching. The deck stands down while it runs",i.enabled?" — this toggle takes over when you stop it.":"."]}),i.lastTick&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",Kx(i.lastTick.at,w)]})})]}),m&&g.jsxs("div",{className:"ap-failure",role:"alert",children:[g.jsx("span",{className:"ap-failure-text",title:m.raw||void 0,children:m.text}),g.jsx("button",{type:"button",className:"ap-failure-x",onClick:()=>y(null),"aria-label":"Dismiss this message",title:"Dismiss",children:"×"})]}),g.jsx("p",{className:"ap-footnote",title:"Anthropic's usage endpoint allows roughly 28–30 requests per hour per account, shared by every tool on this machine — polling it from here would rate-limit your account. So the deck never fetches: it asks claude-swap to collect while this panel is open, at most once every three minutes, and claude-swap decides whether that touches the network at all.",children:"Collected by claude-swap while this panel is open."})]}):g.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"claude-swap isn't installed."}),g.jsx("span",{className:"ap-hint",children:"This panel reads the account store claude-swap keeps — without it there is nothing to show. It is a separate tool, published on PyPI, so it does not come with this package."}),n.hint&&g.jsx("code",{className:"ap-cmd",children:n.hint}),g.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",g.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"No accounts added yet."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",g.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"Couldn't read the account store."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),k&&g.jsx(W3,{onClose:()=>E(!1),onChanged:()=>z(!0)})]})}const lL=3e4;function uL({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function cL({bundle:e,running:n,pending:r,lastTried:i}){return n?uL({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function dL(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function fL({asked:e,reported:n}){return n?n!==e:!1}function hL(e){const n=e.thresholdMs??lL;return!e.enabled||e.kind!=="restart"||!e.canRestart?{idleSince:null,restart:!1}:e.busy?{idleSince:null,restart:!1}:e.idleSince==null?{idleSince:e.now,restart:!1}:e.now<e.idleSince?{idleSince:e.now,restart:!1}:{idleSince:e.idleSince,restart:e.now-e.idleSince>=n}}function pL(e){return e.ctrlKey||e.metaKey||e.altKey}const mL=new Set(["button","checkbox","color","file","image","radio","range","reset","submit"]),gL=new Set(["INPUT","TEXTAREA","SELECT","OPTION","BUTTON","SUMMARY","A"]),vL=new Set(["button","checkbox","combobox","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","searchbox","slider","spinbutton","switch","tab","textbox","treeitem"]);function fC(e){return typeof e.tagName=="string"?e.tagName.toUpperCase():""}function hC(e){if(!e)return!1;if(e.isContentEditable)return!0;const n=fC(e);return n==="TEXTAREA"?!0:n!=="INPUT"?!1:!mL.has(String(e.type??"text").toLowerCase())}function yL(e){if(!e)return!1;if(hC(e)||gL.has(fC(e)))return!0;const n=typeof e.role=="string"?e.role.trim().toLowerCase():"";return n!==""&&n.split(/\s+/).some(r=>vL.has(r))}function wL({agentCount:e,onConfirm:n,onCancel:r}){const i=T.useRef(null);vo(r,{focusRef:i,layer:gO});const o=e===0?"This deletes the server's event log":`This removes ${e===1?"the one agent":`all ${e} agents`} on the canvas and deletes the server's event log`;return g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{className:"modal clear-confirm",onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"clear-confirm-title",children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"status-dot err","aria-hidden":!0}),g.jsx("span",{id:"clear-confirm-title",className:"modal-tool-name",children:"Clear the deck?"})]}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:r,"aria-label":"Cancel (Esc)",title:"Cancel (Esc)",children:"×"})})]}),g.jsxs("section",{className:"modal-body",children:[g.jsxs("p",{className:"modal-note",children:[o," — the file a restarted deck replays to rebuild what you see. Layout, pins and selection go with it. This cannot be undone."]}),g.jsxs("div",{className:"cc-actions",children:[g.jsx("button",{type:"button",ref:i,className:"btn",onClick:r,children:"Cancel"}),g.jsx("button",{type:"button",className:"btn danger",onClick:n,children:"Clear everything"})]})]})]})})}function xL(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function Zl(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function _L(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function pC(e,n,r){return!n.has(e)||r.has(e)}function bL(e,n,r,i){return!n.has(e)&&pC(e,r,i)}function SL(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function kL(e,n,r,i){r.set(e,n),i.delete(e)}const EL=40,NL=120;function CL(e,n){let r=null,i=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(h,p,d)=>{if(r!=null){if(i<=h)return;u()}const m=Math.min(d,Math.max(0,h-p));i=h,r=n.setTimeout(l,m)};return{live(h=EL){const p=n.now(),d=Math.max(o+h,p);if(d<=p){u(),l();return}c(d,p,h)},replay(h=NL){u(),i=n.now()+h,r=n.setTimeout(l,h)},flush(){u(),l()},cancel(){u()}}}function jL(){let e=!1,n=[];return{get paused(){return e},get size(){return n.length},accept(r){return e?(n.push(r),!1):!0},setPaused(r){if(e=r,r||n.length===0)return[];const i=n;return n=[],i}}}const RL="1",Xx="agent-dag.schema",TL=["agent-dag.layout","agent-dag.viewport"];function mC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function AL(e,n=RL){let r=null;try{r=e.getItem(Xx)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of TL)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(Xx,n)}catch{}return i}const gC="agent-dag.theme";function IL(e){return e==="light"?"light":"dark"}function ML(){return IL(mC(gC))}function PL({waiting:e,running:n}){return{title:e>0?`(${e}) ${zt}`:zt,icon:e>0?"waiting":n>0?"running":"idle"}}const Od={waiting:"#c97d12",running:"#2a90d4",idle:"#7e828c"};function Ld(e,n){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">${n==="waiting"?`<circle cx="16" cy="16" r="14.5" fill="${e}"/>`:`<circle cx="16" cy="16" r="12" fill="none" stroke="${e}" stroke-width="5"/>`+(n==="running"?`<circle cx="16" cy="16" r="5" fill="${e}"/>`:"")}</svg>`}const OL=Object.freeze({waiting:`data:image/svg+xml,${encodeURIComponent(Ld(Od.waiting,"waiting"))}`,running:`data:image/svg+xml,${encodeURIComponent(Ld(Od.running,"running"))}`,idle:`data:image/svg+xml,${encodeURIComponent(Ld(Od.idle,"idle"))}`});function LL(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function qL(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function $L(e){return!e.answer||e.answer.range!==e.want?{phase:"busy",stale:!1}:e.answer.ok?{phase:e.answer.days>0?"chart":"empty",stale:e.loading}:{phase:"error",stale:e.loading}}function Jl(e){const n=e.toLowerCase();return n.includes("opus")?"#c4b5fd":n.includes("sonnet")?"#7dd3fc":n.includes("haiku")?"#86efac":n.includes("gpt-5")||n.includes("gpt5")?"#fcd34d":n.includes("gpt")?"#fca5a5":n.includes("gemini")?"#a5b4fc":n.includes("codex")?"#fdba74":"#94a3b8"}const DL=[7,14,30,90];function FL(e){const[n,r]=T.useState(null),[i,o]=T.useState(!1),l=T.useRef(LL()).current,u=(c=!1)=>{const h=l.begin(),p=e;o(!0);const m=`/api/ccusage?since=${qL(p)}${c?"&refresh=1":""}`;fetch(m).then(y=>y.json()).then(y=>{h()&&r({range:p,resp:y})}).catch(()=>{h()&&r({range:p,resp:{ok:!1,reason:"unreachable"}})}).finally(()=>{h()&&o(!1)})};return T.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function zL({onClose:e}){var k,E,C;const[n,r]=T.useState(30),[i,o]=T.useState(null),{landed:l,loading:u,reload:c}=FL(n);vo(e);const h=$L({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((k=l.resp.days)==null?void 0:k.length)??0}}),p=h.phase==="chart"?l.resp.days??[]:[],d=T.useMemo(()=>p.reduce((A,M)=>Math.max(A,M.totalCost),0),[p]),{totalCost:m,totalTok:y,inOut:w,cacheRead:N,modelCosts:_}=T.useMemo(()=>{let A=0,M=0,L=0,H=0;const O=new Map;for(const P of p){A+=P.totalCost,M+=P.totalTokens,L+=P.inputTokens+P.outputTokens,H+=P.cacheReadTokens;for(const F of P.modelBreakdowns)O.set(F.modelName,(O.get(F.modelName)??0)+F.cost)}return{totalCost:A,totalTok:M,inOut:L,cacheRead:H,modelCosts:O}},[p]),S=T.useMemo(()=>Array.from(_.entries()).sort((A,M)=>M[1]-A[1]),[_]),b=i?p.find(A=>A.period===i)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{className:"uh-modal",onClick:A=>A.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:DL.map(A=>g.jsxs("button",{role:"tab","aria-selected":n===A,className:`uh-range-btn${n===A?" on":""}`,onClick:()=>{r(A),o(null)},children:[A,"d"]},A))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,disabled:u,title:"Re-run ccusage","aria-label":"Reload",children:u?"…":"↻"}),g.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),h.phase==="busy"?g.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):h.phase==="error"?g.jsxs("div",{className:"uh-status uh-err",title:mo(l.resp)||void 0,children:[U3(l.resp,"ccusage did not report usage"),g.jsx("div",{children:g.jsx("button",{className:"btn uh-retry",onClick:c,disabled:u,children:u?"trying…":"Try again"})})]}):h.phase==="empty"?g.jsx("div",{className:`uh-status${h.stale?" uh-stale":""}`,"aria-busy":h.stale||void 0,children:"no usage in this range"}):g.jsxs("div",{className:h.stale?"uh-stale":void 0,"aria-busy":h.stale||void 0,children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(eu,{label:"total cost",val:Fe(m),accent:!0}),g.jsx(eu,{label:"tokens",val:Ft(y)}),g.jsx(eu,{label:"input+output",val:Ft(w)}),g.jsx(eu,{label:"cache reads",val:Ft(N)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:p.map(A=>{const M=d>0?A.totalCost/d*100:0,L=A.period===i;return g.jsxs("button",{className:`uh-bar-col${L?" sel":""}`,onClick:()=>o(L?null:A.period),title:`${A.period} · ${Fe(A.totalCost)}`,style:{flexBasis:`${100/p.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(M,A.totalCost>0?2:0)}%`},children:A.modelBreakdowns.slice().sort((H,O)=>O.cost-H.cost).map(H=>{const O=A.totalCost>0?H.cost/A.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${O}%`,background:Jl(H.modelName)}},H.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:A.period.slice(5)})]},A.period)})}),g.jsx("div",{className:"uh-legend",children:S.map(([A,M])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Jl(A)}}),li(A)," ",g.jsx("span",{className:"uh-legend-cost",children:Fe(M)})]},A))}),b&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:b.period}),g.jsx("span",{className:"uh-detail-cost",children:Fe(b.totalCost)}),(C=(E=b.metadata)==null?void 0:E.agents)!=null&&C.length?g.jsx("span",{className:"uh-detail-agents",children:b.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(tu,{label:"input",val:Ft(b.inputTokens)}),g.jsx(tu,{label:"output",val:Ft(b.outputTokens)}),g.jsx(tu,{label:"cache write",val:Ft(b.cacheCreationTokens)}),g.jsx(tu,{label:"cache read",val:Ft(b.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:b.modelBreakdowns.slice().sort((A,M)=>M.cost-A.cost).map(A=>{const M=b.totalCost>0?A.cost/b.totalCost*100:0;return g.jsxs("div",{className:"uh-model-row",children:[g.jsxs("span",{className:"uh-model-name",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Jl(A.modelName)}}),li(A.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${M}%`,background:Jl(A.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:Fe(A.cost)})]},A.modelName)})})]})]})]})})}function eu({label:e,val:n,accent:r}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function tu({label:e,val:n}){return g.jsxs("div",{className:"uh-ministat",children:[g.jsx("span",{className:"uh-ministat-val",children:n}),g.jsx("span",{className:"uh-ministat-label",children:e})]})}function Yv(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var qd,Qx;function BL(){if(Qx)return qd;Qx=1;function e(){this.__data__=[],this.size=0}return qd=e,qd}var $d,Zx;function yo(){if(Zx)return $d;Zx=1;function e(n,r){return n===r||n!==n&&r!==r}return $d=e,$d}var Dd,Jx;function Ru(){if(Jx)return Dd;Jx=1;var e=yo();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Dd=n,Dd}var Fd,e_;function UL(){if(e_)return Fd;e_=1;var e=Ru(),n=Array.prototype,r=n.splice;function i(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return Fd=i,Fd}var zd,t_;function HL(){if(t_)return zd;t_=1;var e=Ru();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return zd=n,zd}var Bd,n_;function WL(){if(n_)return Bd;n_=1;var e=Ru();function n(r){return e(this.__data__,r)>-1}return Bd=n,Bd}var Ud,r_;function VL(){if(r_)return Ud;r_=1;var e=Ru();function n(r,i){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,i])):o[l][1]=i,this}return Ud=n,Ud}var Hd,s_;function Tu(){if(s_)return Hd;s_=1;var e=BL(),n=UL(),r=HL(),i=WL(),o=VL();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Hd=l,Hd}var Wd,i_;function GL(){if(i_)return Wd;i_=1;var e=Tu();function n(){this.__data__=new e,this.size=0}return Wd=n,Wd}var Vd,o_;function YL(){if(o_)return Vd;o_=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return Vd=e,Vd}var Gd,a_;function KL(){if(a_)return Gd;a_=1;function e(n){return this.__data__.get(n)}return Gd=e,Gd}var Yd,l_;function XL(){if(l_)return Yd;l_=1;function e(n){return this.__data__.has(n)}return Yd=e,Yd}var Kd,u_;function vC(){if(u_)return Kd;u_=1;var e=typeof $l=="object"&&$l&&$l.Object===Object&&$l;return Kd=e,Kd}var Xd,c_;function tr(){if(c_)return Xd;c_=1;var e=vC(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return Xd=r,Xd}var Qd,d_;function wo(){if(d_)return Qd;d_=1;var e=tr(),n=e.Symbol;return Qd=n,Qd}var Zd,f_;function QL(){if(f_)return Zd;f_=1;var e=wo(),n=Object.prototype,r=n.hasOwnProperty,i=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),h=u[o];try{u[o]=void 0;var p=!0}catch{}var d=i.call(u);return p&&(c?u[o]=h:delete u[o]),d}return Zd=l,Zd}var Jd,h_;function ZL(){if(h_)return Jd;h_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return Jd=r,Jd}var ef,p_;function ui(){if(p_)return ef;p_=1;var e=wo(),n=QL(),r=ZL(),i="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:i:l&&l in Object(c)?n(c):r(c)}return ef=u,ef}var tf,m_;function Ln(){if(m_)return tf;m_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return tf=e,tf}var nf,g_;function qa(){if(g_)return nf;g_=1;var e=ui(),n=Ln(),r="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var h=e(c);return h==i||h==o||h==r||h==l}return nf=u,nf}var rf,v_;function JL(){if(v_)return rf;v_=1;var e=tr(),n=e["__core-js_shared__"];return rf=n,rf}var sf,y_;function eq(){if(y_)return sf;y_=1;var e=JL(),n=(function(){var i=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function r(i){return!!n&&n in i}return sf=r,sf}var of,w_;function yC(){if(w_)return of;w_=1;var e=Function.prototype,n=e.toString;function r(i){if(i!=null){try{return n.call(i)}catch{}try{return i+""}catch{}}return""}return of=r,of}var af,x_;function tq(){if(x_)return af;x_=1;var e=qa(),n=eq(),r=Ln(),i=yC(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,h=u.toString,p=c.hasOwnProperty,d=RegExp("^"+h.call(p).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var w=e(y)?d:l;return w.test(i(y))}return af=m,af}var lf,__;function nq(){if(__)return lf;__=1;function e(n,r){return n==null?void 0:n[r]}return lf=e,lf}var uf,b_;function ci(){if(b_)return uf;b_=1;var e=tq(),n=nq();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return uf=r,uf}var cf,S_;function Kv(){if(S_)return cf;S_=1;var e=ci(),n=tr(),r=e(n,"Map");return cf=r,cf}var df,k_;function Au(){if(k_)return df;k_=1;var e=ci(),n=e(Object,"create");return df=n,df}var ff,E_;function rq(){if(E_)return ff;E_=1;var e=Au();function n(){this.__data__=e?e(null):{},this.size=0}return ff=n,ff}var hf,N_;function sq(){if(N_)return hf;N_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return hf=e,hf}var pf,C_;function iq(){if(C_)return pf;C_=1;var e=Au(),n="__lodash_hash_undefined__",r=Object.prototype,i=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return i.call(u,l)?u[l]:void 0}return pf=o,pf}var mf,j_;function oq(){if(j_)return mf;j_=1;var e=Au(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return mf=i,mf}var gf,R_;function aq(){if(R_)return gf;R_=1;var e=Au(),n="__lodash_hash_undefined__";function r(i,o){var l=this.__data__;return this.size+=this.has(i)?0:1,l[i]=e&&o===void 0?n:o,this}return gf=r,gf}var vf,T_;function lq(){if(T_)return vf;T_=1;var e=rq(),n=sq(),r=iq(),i=oq(),o=aq();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,vf=l,vf}var yf,A_;function uq(){if(A_)return yf;A_=1;var e=lq(),n=Tu(),r=Kv();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return yf=i,yf}var wf,I_;function cq(){if(I_)return wf;I_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return wf=e,wf}var xf,M_;function Iu(){if(M_)return xf;M_=1;var e=cq();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return xf=n,xf}var _f,P_;function dq(){if(P_)return _f;P_=1;var e=Iu();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return _f=n,_f}var bf,O_;function fq(){if(O_)return bf;O_=1;var e=Iu();function n(r){return e(this,r).get(r)}return bf=n,bf}var Sf,L_;function hq(){if(L_)return Sf;L_=1;var e=Iu();function n(r){return e(this,r).has(r)}return Sf=n,Sf}var kf,q_;function pq(){if(q_)return kf;q_=1;var e=Iu();function n(r,i){var o=e(this,r),l=o.size;return o.set(r,i),this.size+=o.size==l?0:1,this}return kf=n,kf}var Ef,$_;function Xv(){if($_)return Ef;$_=1;var e=uq(),n=dq(),r=fq(),i=hq(),o=pq();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Ef=l,Ef}var Nf,D_;function mq(){if(D_)return Nf;D_=1;var e=Tu(),n=Kv(),r=Xv(),i=200;function o(l,u){var c=this.__data__;if(c instanceof e){var h=c.__data__;if(!n||h.length<i-1)return h.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(h)}return c.set(l,u),this.size=c.size,this}return Nf=o,Nf}var Cf,F_;function Mu(){if(F_)return Cf;F_=1;var e=Tu(),n=GL(),r=YL(),i=KL(),o=XL(),l=mq();function u(c){var h=this.__data__=new e(c);this.size=h.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,Cf=u,Cf}var jf,z_;function Qv(){if(z_)return jf;z_=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o&&r(n[i],i,n)!==!1;);return n}return jf=e,jf}var Rf,B_;function wC(){if(B_)return Rf;B_=1;var e=ci(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return Rf=n,Rf}var Tf,U_;function Pu(){if(U_)return Tf;U_=1;var e=wC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return Tf=n,Tf}var Af,H_;function Ou(){if(H_)return Af;H_=1;var e=Pu(),n=yo(),r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c){var h=l[u];(!(i.call(l,u)&&n(h,c))||c===void 0&&!(u in l))&&e(l,u,c)}return Af=o,Af}var If,W_;function $a(){if(W_)return If;W_=1;var e=Ou(),n=Pu();function r(i,o,l,u){var c=!l;l||(l={});for(var h=-1,p=o.length;++h<p;){var d=o[h],m=u?u(l[d],i[d],d,l,i):void 0;m===void 0&&(m=i[d]),c?n(l,d,m):e(l,d,m)}return l}return If=r,If}var Mf,V_;function gq(){if(V_)return Mf;V_=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return Mf=e,Mf}var Pf,G_;function vr(){if(G_)return Pf;G_=1;function e(n){return n!=null&&typeof n=="object"}return Pf=e,Pf}var Of,Y_;function vq(){if(Y_)return Of;Y_=1;var e=ui(),n=vr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Of=i,Of}var Lf,K_;function Da(){if(K_)return Lf;K_=1;var e=vq(),n=vr(),r=Object.prototype,i=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&i.call(u,"callee")&&!o.call(u,"callee")};return Lf=l,Lf}var qf,X_;function bt(){if(X_)return qf;X_=1;var e=Array.isArray;return qf=e,qf}var va={exports:{}},$f,Q_;function yq(){if(Q_)return $f;Q_=1;function e(){return!1}return $f=e,$f}va.exports;var Z_;function xo(){return Z_||(Z_=1,(function(e,n){var r=tr(),i=yq(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,h=c?c.isBuffer:void 0,p=h||i;e.exports=p})(va,va.exports)),va.exports}var Df,J_;function Lu(){if(J_)return Df;J_=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(i,o){var l=typeof i;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(i))&&i>-1&&i%1==0&&i<o}return Df=r,Df}var Ff,e1;function Zv(){if(e1)return Ff;e1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return Ff=n,Ff}var zf,t1;function wq(){if(t1)return zf;t1=1;var e=ui(),n=Zv(),r=vr(),i="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",h="[object Function]",p="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",w="[object Set]",N="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",C="[object Int8Array]",A="[object Int16Array]",M="[object Int32Array]",L="[object Uint8Array]",H="[object Uint8ClampedArray]",O="[object Uint16Array]",P="[object Uint32Array]",F={};F[k]=F[E]=F[C]=F[A]=F[M]=F[L]=F[H]=F[O]=F[P]=!0,F[i]=F[o]=F[S]=F[l]=F[b]=F[u]=F[c]=F[h]=F[p]=F[d]=F[m]=F[y]=F[w]=F[N]=F[_]=!1;function G(q){return r(q)&&n(q.length)&&!!F[e(q)]}return zf=G,zf}var Bf,n1;function qu(){if(n1)return Bf;n1=1;function e(n){return function(r){return n(r)}}return Bf=e,Bf}var ya={exports:{}};ya.exports;var r1;function Jv(){return r1||(r1=1,(function(e,n){var r=vC(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l&&r.process,c=(function(){try{var h=o&&o.require&&o.require("util").types;return h||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(ya,ya.exports)),ya.exports}var Uf,s1;function Fa(){if(s1)return Uf;s1=1;var e=wq(),n=qu(),r=Jv(),i=r&&r.isTypedArray,o=i?n(i):e;return Uf=o,Uf}var Hf,i1;function xC(){if(i1)return Hf;i1=1;var e=gq(),n=Da(),r=bt(),i=xo(),o=Lu(),l=Fa(),u=Object.prototype,c=u.hasOwnProperty;function h(p,d){var m=r(p),y=!m&&n(p),w=!m&&!y&&i(p),N=!m&&!y&&!w&&l(p),_=m||y||w||N,S=_?e(p.length,String):[],b=S.length;for(var k in p)(d||c.call(p,k))&&!(_&&(k=="length"||w&&(k=="offset"||k=="parent")||N&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return Hf=h,Hf}var Wf,o1;function $u(){if(o1)return Wf;o1=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return Wf=n,Wf}var Vf,a1;function _C(){if(a1)return Vf;a1=1;function e(n,r){return function(i){return n(r(i))}}return Vf=e,Vf}var Gf,l1;function xq(){if(l1)return Gf;l1=1;var e=_C(),n=e(Object.keys,Object);return Gf=n,Gf}var Yf,u1;function ey(){if(u1)return Yf;u1=1;var e=$u(),n=xq(),r=Object.prototype,i=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))i.call(l,c)&&c!="constructor"&&u.push(c);return u}return Yf=o,Yf}var Kf,c1;function Wr(){if(c1)return Kf;c1=1;var e=qa(),n=Zv();function r(i){return i!=null&&n(i.length)&&!e(i)}return Kf=r,Kf}var Xf,d1;function ks(){if(d1)return Xf;d1=1;var e=xC(),n=ey(),r=Wr();function i(o){return r(o)?e(o):n(o)}return Xf=i,Xf}var Qf,f1;function _q(){if(f1)return Qf;f1=1;var e=$a(),n=ks();function r(i,o){return i&&e(o,n(o),i)}return Qf=r,Qf}var Zf,h1;function bq(){if(h1)return Zf;h1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return Zf=e,Zf}var Jf,p1;function Sq(){if(p1)return Jf;p1=1;var e=Ln(),n=$u(),r=bq(),i=Object.prototype,o=i.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),h=[];for(var p in u)p=="constructor"&&(c||!o.call(u,p))||h.push(p);return h}return Jf=l,Jf}var eh,m1;function di(){if(m1)return eh;m1=1;var e=xC(),n=Sq(),r=Wr();function i(o){return r(o)?e(o,!0):n(o)}return eh=i,eh}var th,g1;function kq(){if(g1)return th;g1=1;var e=$a(),n=di();function r(i,o){return i&&e(o,n(o),i)}return th=r,th}var wa={exports:{}};wa.exports;var v1;function bC(){return v1||(v1=1,(function(e,n){var r=tr(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function h(p,d){if(d)return p.slice();var m=p.length,y=c?c(m):new p.constructor(m);return p.copy(y),y}e.exports=h})(wa,wa.exports)),wa.exports}var nh,y1;function SC(){if(y1)return nh;y1=1;function e(n,r){var i=-1,o=n.length;for(r||(r=Array(o));++i<o;)r[i]=n[i];return r}return nh=e,nh}var rh,w1;function kC(){if(w1)return rh;w1=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=0,u=[];++i<o;){var c=n[i];r(c,i,n)&&(u[l++]=c)}return u}return rh=e,rh}var sh,x1;function EC(){if(x1)return sh;x1=1;function e(){return[]}return sh=e,sh}var ih,_1;function ty(){if(_1)return ih;_1=1;var e=kC(),n=EC(),r=Object.prototype,i=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return i.call(u,c)}))}:n;return ih=l,ih}var oh,b1;function Eq(){if(b1)return oh;b1=1;var e=$a(),n=ty();function r(i,o){return e(i,n(i),o)}return oh=r,oh}var ah,S1;function ny(){if(S1)return ah;S1=1;function e(n,r){for(var i=-1,o=r.length,l=n.length;++i<o;)n[l+i]=r[i];return n}return ah=e,ah}var lh,k1;function Du(){if(k1)return lh;k1=1;var e=_C(),n=e(Object.getPrototypeOf,Object);return lh=n,lh}var uh,E1;function NC(){if(E1)return uh;E1=1;var e=ny(),n=Du(),r=ty(),i=EC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return uh=l,uh}var ch,N1;function Nq(){if(N1)return ch;N1=1;var e=$a(),n=NC();function r(i,o){return e(i,n(i),o)}return ch=r,ch}var dh,C1;function CC(){if(C1)return dh;C1=1;var e=ny(),n=bt();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return dh=r,dh}var fh,j1;function jC(){if(j1)return fh;j1=1;var e=CC(),n=ty(),r=ks();function i(o){return e(o,r,n)}return fh=i,fh}var hh,R1;function Cq(){if(R1)return hh;R1=1;var e=CC(),n=NC(),r=di();function i(o){return e(o,r,n)}return hh=i,hh}var ph,T1;function jq(){if(T1)return ph;T1=1;var e=ci(),n=tr(),r=e(n,"DataView");return ph=r,ph}var mh,A1;function Rq(){if(A1)return mh;A1=1;var e=ci(),n=tr(),r=e(n,"Promise");return mh=r,mh}var gh,I1;function RC(){if(I1)return gh;I1=1;var e=ci(),n=tr(),r=e(n,"Set");return gh=r,gh}var vh,M1;function Tq(){if(M1)return vh;M1=1;var e=ci(),n=tr(),r=e(n,"WeakMap");return vh=r,vh}var yh,P1;function _o(){if(P1)return yh;P1=1;var e=jq(),n=Kv(),r=Rq(),i=RC(),o=Tq(),l=ui(),u=yC(),c="[object Map]",h="[object Object]",p="[object Promise]",d="[object Set]",m="[object WeakMap]",y="[object DataView]",w=u(e),N=u(n),_=u(r),S=u(i),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=p||i&&k(new i)!=d||o&&k(new o)!=m)&&(k=function(E){var C=l(E),A=C==h?E.constructor:void 0,M=A?u(A):"";if(M)switch(M){case w:return y;case N:return c;case _:return p;case S:return d;case b:return m}return C}),yh=k,yh}var wh,O1;function Aq(){if(O1)return wh;O1=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i){var o=i.length,l=new i.constructor(o);return o&&typeof i[0]=="string"&&n.call(i,"index")&&(l.index=i.index,l.input=i.input),l}return wh=r,wh}var xh,L1;function TC(){if(L1)return xh;L1=1;var e=tr(),n=e.Uint8Array;return xh=n,xh}var _h,q1;function ry(){if(q1)return _h;q1=1;var e=TC();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return _h=n,_h}var bh,$1;function Iq(){if($1)return bh;$1=1;var e=ry();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return bh=n,bh}var Sh,D1;function Mq(){if(D1)return Sh;D1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return Sh=n,Sh}var kh,F1;function Pq(){if(F1)return kh;F1=1;var e=wo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return kh=i,kh}var Eh,z1;function AC(){if(z1)return Eh;z1=1;var e=ry();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Eh=n,Eh}var Nh,B1;function Oq(){if(B1)return Nh;B1=1;var e=ry(),n=Iq(),r=Mq(),i=Pq(),o=AC(),l="[object Boolean]",u="[object Date]",c="[object Map]",h="[object Number]",p="[object RegExp]",d="[object Set]",m="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",N="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",C="[object Uint8Array]",A="[object Uint8ClampedArray]",M="[object Uint16Array]",L="[object Uint32Array]";function H(O,P,F){var G=O.constructor;switch(P){case w:return e(O);case l:case u:return new G(+O);case N:return n(O,F);case _:case S:case b:case k:case E:case C:case A:case M:case L:return o(O,F);case c:return new G;case h:case m:return new G(O);case p:return r(O);case d:return new G;case y:return i(O)}}return Nh=H,Nh}var Ch,U1;function IC(){if(U1)return Ch;U1=1;var e=Ln(),n=Object.create,r=(function(){function i(){}return function(o){if(!e(o))return{};if(n)return n(o);i.prototype=o;var l=new i;return i.prototype=void 0,l}})();return Ch=r,Ch}var jh,H1;function MC(){if(H1)return jh;H1=1;var e=IC(),n=Du(),r=$u();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return jh=i,jh}var Rh,W1;function Lq(){if(W1)return Rh;W1=1;var e=_o(),n=vr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return Rh=i,Rh}var Th,V1;function qq(){if(V1)return Th;V1=1;var e=Lq(),n=qu(),r=Jv(),i=r&&r.isMap,o=i?n(i):e;return Th=o,Th}var Ah,G1;function $q(){if(G1)return Ah;G1=1;var e=_o(),n=vr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return Ah=i,Ah}var Ih,Y1;function Dq(){if(Y1)return Ih;Y1=1;var e=$q(),n=qu(),r=Jv(),i=r&&r.isSet,o=i?n(i):e;return Ih=o,Ih}var Mh,K1;function PC(){if(K1)return Mh;K1=1;var e=Mu(),n=Qv(),r=Ou(),i=_q(),o=kq(),l=bC(),u=SC(),c=Eq(),h=Nq(),p=jC(),d=Cq(),m=_o(),y=Aq(),w=Oq(),N=MC(),_=bt(),S=xo(),b=qq(),k=Ln(),E=Dq(),C=ks(),A=di(),M=1,L=2,H=4,O="[object Arguments]",P="[object Array]",F="[object Boolean]",G="[object Date]",q="[object Error]",R="[object Function]",Q="[object GeneratorFunction]",z="[object Map]",ne="[object Number]",Z="[object Object]",$="[object RegExp]",X="[object Set]",I="[object String]",W="[object Symbol]",Y="[object WeakMap]",U="[object ArrayBuffer]",J="[object DataView]",re="[object Float32Array]",le="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",Te="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[O]=ke[P]=ke[U]=ke[J]=ke[F]=ke[G]=ke[re]=ke[le]=ke[fe]=ke[te]=ke[ce]=ke[z]=ke[ne]=ke[Z]=ke[$]=ke[X]=ke[I]=ke[W]=ke[Ce]=ke[ve]=ke[Te]=ke[ye]=!0,ke[q]=ke[R]=ke[Y]=!1;function Ge(we,_e,ze,ft,ht,Ue){var De,Ze=_e&M,Ye=_e&L,vt=_e&H;if(ze&&(De=ht?ze(we,ft,ht,Ue):ze(we)),De!==void 0)return De;if(!k(we))return we;var ot=_(we);if(ot){if(De=y(we),!Ze)return u(we,De)}else{var yt=m(we),Kt=yt==R||yt==Q;if(S(we))return l(we,Ze);if(yt==Z||yt==O||Kt&&!ht){if(De=Ye||Kt?{}:N(we),!Ze)return Ye?h(we,o(De,we)):c(we,i(De,we))}else{if(!ke[yt])return ht?we:{};De=w(we,yt,Ze)}}Ue||(Ue=new e);var Mt=Ue.get(we);if(Mt)return Mt;Ue.set(we,De),E(we)?we.forEach(function(pt){De.add(Ge(pt,_e,ze,pt,we,Ue))}):b(we)&&we.forEach(function(pt,mt){De.set(mt,Ge(pt,_e,ze,mt,we,Ue))});var Xe=vt?Ye?d:p:Ye?A:C,wt=ot?void 0:Xe(we);return n(wt||we,function(pt,mt){wt&&(mt=pt,pt=we[mt]),r(De,mt,Ge(pt,_e,ze,mt,we,Ue))}),De}return Mh=Ge,Mh}var Ph,X1;function Fq(){if(X1)return Ph;X1=1;var e=PC(),n=4;function r(i){return e(i,n)}return Ph=r,Ph}var Oh,Q1;function sy(){if(Q1)return Oh;Q1=1;function e(n){return function(){return n}}return Oh=e,Oh}var Lh,Z1;function zq(){if(Z1)return Lh;Z1=1;function e(n){return function(r,i,o){for(var l=-1,u=Object(r),c=o(r),h=c.length;h--;){var p=c[n?h:++l];if(i(u[p],p,u)===!1)break}return r}}return Lh=e,Lh}var qh,J1;function iy(){if(J1)return qh;J1=1;var e=zq(),n=e();return qh=n,qh}var $h,eb;function oy(){if(eb)return $h;eb=1;var e=iy(),n=ks();function r(i,o){return i&&e(i,o,n)}return $h=r,$h}var Dh,tb;function Bq(){if(tb)return Dh;tb=1;var e=Wr();function n(r,i){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=i?u:-1,h=Object(o);(i?c--:++c<u)&&l(h[c],c,h)!==!1;);return o}}return Dh=n,Dh}var Fh,nb;function Fu(){if(nb)return Fh;nb=1;var e=oy(),n=Bq(),r=n(e);return Fh=r,Fh}var zh,rb;function fi(){if(rb)return zh;rb=1;function e(n){return n}return zh=e,zh}var Bh,sb;function OC(){if(sb)return Bh;sb=1;var e=fi();function n(r){return typeof r=="function"?r:e}return Bh=n,Bh}var Uh,ib;function LC(){if(ib)return Uh;ib=1;var e=Qv(),n=Fu(),r=OC(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Uh=o,Uh}var Hh,ob;function qC(){return ob||(ob=1,Hh=LC()),Hh}var Wh,ab;function Uq(){if(ab)return Wh;ab=1;var e=Fu();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return Wh=n,Wh}var Vh,lb;function Hq(){if(lb)return Vh;lb=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return Vh=n,Vh}var Gh,ub;function Wq(){if(ub)return Gh;ub=1;function e(n){return this.__data__.has(n)}return Gh=e,Gh}var Yh,cb;function $C(){if(cb)return Yh;cb=1;var e=Xv(),n=Hq(),r=Wq();function i(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return i.prototype.add=i.prototype.push=n,i.prototype.has=r,Yh=i,Yh}var Kh,db;function Vq(){if(db)return Kh;db=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o;)if(r(n[i],i,n))return!0;return!1}return Kh=e,Kh}var Xh,fb;function DC(){if(fb)return Xh;fb=1;function e(n,r){return n.has(r)}return Xh=e,Xh}var Qh,hb;function FC(){if(hb)return Qh;hb=1;var e=$C(),n=Vq(),r=DC(),i=1,o=2;function l(u,c,h,p,d,m){var y=h&i,w=u.length,N=c.length;if(w!=N&&!(y&&N>w))return!1;var _=m.get(u),S=m.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,E=h&o?new e:void 0;for(m.set(u,c),m.set(c,u);++b<w;){var C=u[b],A=c[b];if(p)var M=y?p(A,C,b,c,u,m):p(C,A,b,u,c,m);if(M!==void 0){if(M)continue;k=!1;break}if(E){if(!n(c,function(L,H){if(!r(E,H)&&(C===L||d(C,L,h,p,m)))return E.push(H)})){k=!1;break}}else if(!(C===A||d(C,A,h,p,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return Qh=l,Qh}var Zh,pb;function Gq(){if(pb)return Zh;pb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return Zh=e,Zh}var Jh,mb;function ay(){if(mb)return Jh;mb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return Jh=e,Jh}var ep,gb;function Yq(){if(gb)return ep;gb=1;var e=wo(),n=TC(),r=yo(),i=FC(),o=Gq(),l=ay(),u=1,c=2,h="[object Boolean]",p="[object Date]",d="[object Error]",m="[object Map]",y="[object Number]",w="[object RegExp]",N="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,C=E?E.valueOf:void 0;function A(M,L,H,O,P,F,G){switch(H){case k:if(M.byteLength!=L.byteLength||M.byteOffset!=L.byteOffset)return!1;M=M.buffer,L=L.buffer;case b:return!(M.byteLength!=L.byteLength||!F(new n(M),new n(L)));case h:case p:case y:return r(+M,+L);case d:return M.name==L.name&&M.message==L.message;case w:case _:return M==L+"";case m:var q=o;case N:var R=O&u;if(q||(q=l),M.size!=L.size&&!R)return!1;var Q=G.get(M);if(Q)return Q==L;O|=c,G.set(M,L);var z=i(q(M),q(L),O,P,F,G);return G.delete(M),z;case S:if(C)return C.call(M)==C.call(L)}return!1}return ep=A,ep}var tp,vb;function Kq(){if(vb)return tp;vb=1;var e=jC(),n=1,r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c,h,p,d){var m=c&n,y=e(l),w=y.length,N=e(u),_=N.length;if(w!=_&&!m)return!1;for(var S=w;S--;){var b=y[S];if(!(m?b in u:i.call(u,b)))return!1}var k=d.get(l),E=d.get(u);if(k&&E)return k==u&&E==l;var C=!0;d.set(l,u),d.set(u,l);for(var A=m;++S<w;){b=y[S];var M=l[b],L=u[b];if(h)var H=m?h(L,M,b,u,l,d):h(M,L,b,l,u,d);if(!(H===void 0?M===L||p(M,L,c,h,d):H)){C=!1;break}A||(A=b=="constructor")}if(C&&!A){var O=l.constructor,P=u.constructor;O!=P&&"constructor"in l&&"constructor"in u&&!(typeof O=="function"&&O instanceof O&&typeof P=="function"&&P instanceof P)&&(C=!1)}return d.delete(l),d.delete(u),C}return tp=o,tp}var np,yb;function Xq(){if(yb)return np;yb=1;var e=Mu(),n=FC(),r=Yq(),i=Kq(),o=_o(),l=bt(),u=xo(),c=Fa(),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function N(_,S,b,k,E,C){var A=l(_),M=l(S),L=A?d:o(_),H=M?d:o(S);L=L==p?m:L,H=H==p?m:H;var O=L==m,P=H==m,F=L==H;if(F&&u(_)){if(!u(S))return!1;A=!0,O=!1}if(F&&!O)return C||(C=new e),A||c(_)?n(_,S,b,k,E,C):r(_,S,L,b,k,E,C);if(!(b&h)){var G=O&&w.call(_,"__wrapped__"),q=P&&w.call(S,"__wrapped__");if(G||q){var R=G?_.value():_,Q=q?S.value():S;return C||(C=new e),E(R,Q,b,k,C)}}return F?(C||(C=new e),i(_,S,b,k,E,C)):!1}return np=N,np}var rp,wb;function zC(){if(wb)return rp;wb=1;var e=Xq(),n=vr();function r(i,o,l,u,c){return i===o?!0:i==null||o==null||!n(i)&&!n(o)?i!==i&&o!==o:e(i,o,l,u,r,c)}return rp=r,rp}var sp,xb;function Qq(){if(xb)return sp;xb=1;var e=Mu(),n=zC(),r=1,i=2;function o(l,u,c,h){var p=c.length,d=p,m=!h;if(l==null)return!d;for(l=Object(l);p--;){var y=c[p];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++p<d;){y=c[p];var w=y[0],N=l[w],_=y[1];if(m&&y[2]){if(N===void 0&&!(w in l))return!1}else{var S=new e;if(h)var b=h(N,_,w,l,u,S);if(!(b===void 0?n(_,N,r|i,h,S):b))return!1}}return!0}return sp=o,sp}var ip,_b;function BC(){if(_b)return ip;_b=1;var e=Ln();function n(r){return r===r&&!e(r)}return ip=n,ip}var op,bb;function Zq(){if(bb)return op;bb=1;var e=BC(),n=ks();function r(i){for(var o=n(i),l=o.length;l--;){var u=o[l],c=i[u];o[l]=[u,c,e(c)]}return o}return op=r,op}var ap,Sb;function UC(){if(Sb)return ap;Sb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return ap=e,ap}var lp,kb;function Jq(){if(kb)return lp;kb=1;var e=Qq(),n=Zq(),r=UC();function i(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return lp=i,lp}var up,Eb;function bo(){if(Eb)return up;Eb=1;var e=ui(),n=vr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return up=i,up}var cp,Nb;function ly(){if(Nb)return cp;Nb=1;var e=bt(),n=bo(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;function o(l,u){if(e(l))return!1;var c=typeof l;return c=="number"||c=="symbol"||c=="boolean"||l==null||n(l)?!0:i.test(l)||!r.test(l)||u!=null&&l in Object(u)}return cp=o,cp}var dp,Cb;function e$(){if(Cb)return dp;Cb=1;var e=Xv(),n="Expected a function";function r(i,o){if(typeof i!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],h=l.cache;if(h.has(c))return h.get(c);var p=i.apply(this,u);return l.cache=h.set(c,p)||h,p};return l.cache=new(r.Cache||e),l}return r.Cache=e,dp=r,dp}var fp,jb;function t$(){if(jb)return fp;jb=1;var e=e$(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return fp=r,fp}var hp,Rb;function n$(){if(Rb)return hp;Rb=1;var e=t$(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,i=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,h,p){l.push(h?p.replace(r,"$1"):c||u)}),l});return hp=i,hp}var pp,Tb;function zu(){if(Tb)return pp;Tb=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=Array(o);++i<o;)l[i]=r(n[i],i,n);return l}return pp=e,pp}var mp,Ab;function r$(){if(Ab)return mp;Ab=1;var e=wo(),n=zu(),r=bt(),i=bo(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(i(c))return l?l.call(c):"";var h=c+"";return h=="0"&&1/c==-1/0?"-0":h}return mp=u,mp}var gp,Ib;function HC(){if(Ib)return gp;Ib=1;var e=r$();function n(r){return r==null?"":e(r)}return gp=n,gp}var vp,Mb;function Bu(){if(Mb)return vp;Mb=1;var e=bt(),n=ly(),r=n$(),i=HC();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return vp=o,vp}var yp,Pb;function za(){if(Pb)return yp;Pb=1;var e=bo();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return yp=n,yp}var wp,Ob;function Uu(){if(Ob)return wp;Ob=1;var e=Bu(),n=za();function r(i,o){o=e(o,i);for(var l=0,u=o.length;i!=null&&l<u;)i=i[n(o[l++])];return l&&l==u?i:void 0}return wp=r,wp}var xp,Lb;function s$(){if(Lb)return xp;Lb=1;var e=Uu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return xp=n,xp}var _p,qb;function i$(){if(qb)return _p;qb=1;function e(n,r){return n!=null&&r in Object(n)}return _p=e,_p}var bp,$b;function WC(){if($b)return bp;$b=1;var e=Bu(),n=Da(),r=bt(),i=Lu(),o=Zv(),l=za();function u(c,h,p){h=e(h,c);for(var d=-1,m=h.length,y=!1;++d<m;){var w=l(h[d]);if(!(y=c!=null&&p(c,w)))break;c=c[w]}return y||++d!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&i(w,m)&&(r(c)||n(c)))}return bp=u,bp}var Sp,Db;function VC(){if(Db)return Sp;Db=1;var e=i$(),n=WC();function r(i,o){return i!=null&&n(i,o,e)}return Sp=r,Sp}var kp,Fb;function o$(){if(Fb)return kp;Fb=1;var e=zC(),n=s$(),r=VC(),i=ly(),o=BC(),l=UC(),u=za(),c=1,h=2;function p(d,m){return i(d)&&o(m)?l(u(d),m):function(y){var w=n(y,d);return w===void 0&&w===m?r(y,d):e(m,w,c|h)}}return kp=p,kp}var Ep,zb;function GC(){if(zb)return Ep;zb=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Ep=e,Ep}var Np,Bb;function a$(){if(Bb)return Np;Bb=1;var e=Uu();function n(r){return function(i){return e(i,r)}}return Np=n,Np}var Cp,Ub;function l$(){if(Ub)return Cp;Ub=1;var e=GC(),n=a$(),r=ly(),i=za();function o(l){return r(l)?e(i(l)):n(l)}return Cp=o,Cp}var jp,Hb;function Vr(){if(Hb)return jp;Hb=1;var e=Jq(),n=o$(),r=fi(),i=bt(),o=l$();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?i(u)?n(u[0],u[1]):e(u):o(u)}return jp=l,jp}var Rp,Wb;function YC(){if(Wb)return Rp;Wb=1;var e=kC(),n=Uq(),r=Vr(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return Rp=o,Rp}var Tp,Vb;function u$(){if(Vb)return Tp;Vb=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return Tp=r,Tp}var Ap,Gb;function KC(){if(Gb)return Ap;Gb=1;var e=u$(),n=WC();function r(i,o){return i!=null&&n(i,o,e)}return Ap=r,Ap}var Ip,Yb;function c$(){if(Yb)return Ip;Yb=1;var e=ey(),n=_o(),r=Da(),i=bt(),o=Wr(),l=xo(),u=$u(),c=Fa(),h="[object Map]",p="[object Set]",d=Object.prototype,m=d.hasOwnProperty;function y(w){if(w==null)return!0;if(o(w)&&(i(w)||typeof w=="string"||typeof w.splice=="function"||l(w)||c(w)||r(w)))return!w.length;var N=n(w);if(N==h||N==p)return!w.size;if(u(w))return!e(w).length;for(var _ in w)if(m.call(w,_))return!1;return!0}return Ip=y,Ip}var Mp,Kb;function XC(){if(Kb)return Mp;Kb=1;function e(n){return n===void 0}return Mp=e,Mp}var Pp,Xb;function QC(){if(Xb)return Pp;Xb=1;var e=Fu(),n=Wr();function r(i,o){var l=-1,u=n(i)?Array(i.length):[];return e(i,function(c,h,p){u[++l]=o(c,h,p)}),u}return Pp=r,Pp}var Op,Qb;function ZC(){if(Qb)return Op;Qb=1;var e=zu(),n=Vr(),r=QC(),i=bt();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Op=o,Op}var Lp,Zb;function d$(){if(Zb)return Lp;Zb=1;function e(n,r,i,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(i=n[++l]);++l<u;)i=r(i,n[l],l,n);return i}return Lp=e,Lp}var qp,Jb;function f$(){if(Jb)return qp;Jb=1;function e(n,r,i,o,l){return l(n,function(u,c,h){i=o?(o=!1,u):r(i,u,c,h)}),i}return qp=e,qp}var $p,eS;function JC(){if(eS)return $p;eS=1;var e=d$(),n=Fu(),r=Vr(),i=f$(),o=bt();function l(u,c,h){var p=o(u)?e:i,d=arguments.length<3;return p(u,r(c,4),h,d,n)}return $p=l,$p}var Dp,tS;function h$(){if(tS)return Dp;tS=1;var e=ui(),n=bt(),r=vr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Dp=o,Dp}var Fp,nS;function p$(){if(nS)return Fp;nS=1;var e=GC(),n=e("length");return Fp=n,Fp}var zp,rS;function m$(){if(rS)return zp;rS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function h(p){return c.test(p)}return zp=h,zp}var Bp,sS;function g$(){if(sS)return Bp;sS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",h="\\ud83c[\\udffb-\\udfff]",p="(?:"+c+"|"+h+")",d="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",w="\\u200d",N=p+"?",_="["+l+"]?",S="(?:"+w+"(?:"+[d,m,y].join("|")+")"+_+N+")*",b=_+N+S,k="(?:"+[d+c+"?",c,m,y,u].join("|")+")",E=RegExp(h+"(?="+h+")|"+k+b,"g");function C(A){for(var M=E.lastIndex=0;E.test(A);)++M;return M}return Bp=C,Bp}var Up,iS;function v$(){if(iS)return Up;iS=1;var e=p$(),n=m$(),r=g$();function i(o){return n(o)?r(o):e(o)}return Up=i,Up}var Hp,oS;function y$(){if(oS)return Hp;oS=1;var e=ey(),n=_o(),r=Wr(),i=h$(),o=v$(),l="[object Map]",u="[object Set]";function c(h){if(h==null)return 0;if(r(h))return i(h)?o(h):h.length;var p=n(h);return p==l||p==u?h.size:e(h).length}return Hp=c,Hp}var Wp,aS;function w$(){if(aS)return Wp;aS=1;var e=Qv(),n=IC(),r=oy(),i=Vr(),o=Du(),l=bt(),u=xo(),c=qa(),h=Ln(),p=Fa();function d(m,y,w){var N=l(m),_=N||u(m)||p(m);if(y=i(y,4),w==null){var S=m&&m.constructor;_?w=N?new S:[]:h(m)?w=c(S)?n(o(m)):{}:w={}}return(_?e:r)(m,function(b,k,E){return y(w,b,k,E)}),w}return Wp=d,Wp}var Vp,lS;function x$(){if(lS)return Vp;lS=1;var e=wo(),n=Da(),r=bt(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return Vp=o,Vp}var Gp,uS;function uy(){if(uS)return Gp;uS=1;var e=ny(),n=x$();function r(i,o,l,u,c){var h=-1,p=i.length;for(l||(l=n),c||(c=[]);++h<p;){var d=i[h];o>0&&l(d)?o>1?r(d,o-1,l,u,c):e(c,d):u||(c[c.length]=d)}return c}return Gp=r,Gp}var Yp,cS;function _$(){if(cS)return Yp;cS=1;function e(n,r,i){switch(i.length){case 0:return n.call(r);case 1:return n.call(r,i[0]);case 2:return n.call(r,i[0],i[1]);case 3:return n.call(r,i[0],i[1],i[2])}return n.apply(r,i)}return Yp=e,Yp}var Kp,dS;function ej(){if(dS)return Kp;dS=1;var e=_$(),n=Math.max;function r(i,o,l){return o=n(o===void 0?i.length-1:o,0),function(){for(var u=arguments,c=-1,h=n(u.length-o,0),p=Array(h);++c<h;)p[c]=u[o+c];c=-1;for(var d=Array(o+1);++c<o;)d[c]=u[c];return d[o]=l(p),e(i,this,d)}}return Kp=r,Kp}var Xp,fS;function b$(){if(fS)return Xp;fS=1;var e=sy(),n=wC(),r=fi(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return Xp=i,Xp}var Qp,hS;function S$(){if(hS)return Qp;hS=1;var e=800,n=16,r=Date.now;function i(o){var l=0,u=0;return function(){var c=r(),h=n-(c-u);if(u=c,h>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return Qp=i,Qp}var Zp,pS;function tj(){if(pS)return Zp;pS=1;var e=b$(),n=S$(),r=n(e);return Zp=r,Zp}var Jp,mS;function Hu(){if(mS)return Jp;mS=1;var e=fi(),n=ej(),r=tj();function i(o,l){return r(n(o,l,e),o+"")}return Jp=i,Jp}var em,gS;function nj(){if(gS)return em;gS=1;function e(n,r,i,o){for(var l=n.length,u=i+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return em=e,em}var tm,vS;function k$(){if(vS)return tm;vS=1;function e(n){return n!==n}return tm=e,tm}var nm,yS;function E$(){if(yS)return nm;yS=1;function e(n,r,i){for(var o=i-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return nm=e,nm}var rm,wS;function N$(){if(wS)return rm;wS=1;var e=nj(),n=k$(),r=E$();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return rm=i,rm}var sm,xS;function C$(){if(xS)return sm;xS=1;var e=N$();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return sm=n,sm}var im,_S;function j$(){if(_S)return im;_S=1;function e(n,r,i){for(var o=-1,l=n==null?0:n.length;++o<l;)if(i(r,n[o]))return!0;return!1}return im=e,im}var om,bS;function R$(){if(bS)return om;bS=1;function e(){}return om=e,om}var am,SS;function T$(){if(SS)return am;SS=1;var e=RC(),n=R$(),r=ay(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return am=o,am}var lm,kS;function A$(){if(kS)return lm;kS=1;var e=$C(),n=C$(),r=j$(),i=DC(),o=T$(),l=ay(),u=200;function c(h,p,d){var m=-1,y=n,w=h.length,N=!0,_=[],S=_;if(d)N=!1,y=r;else if(w>=u){var b=p?null:o(h);if(b)return l(b);N=!1,y=i,S=new e}else S=p?[]:_;e:for(;++m<w;){var k=h[m],E=p?p(k):k;if(k=d||k!==0?k:0,N&&E===E){for(var C=S.length;C--;)if(S[C]===E)continue e;p&&S.push(E),_.push(k)}else y(S,E,d)||(S!==_&&S.push(E),_.push(k))}return _}return lm=c,lm}var um,ES;function rj(){if(ES)return um;ES=1;var e=Wr(),n=vr();function r(i){return n(i)&&e(i)}return um=r,um}var cm,NS;function I$(){if(NS)return cm;NS=1;var e=uy(),n=Hu(),r=A$(),i=rj(),o=n(function(l){return r(e(l,1,i,!0))});return cm=o,cm}var dm,CS;function M$(){if(CS)return dm;CS=1;var e=zu();function n(r,i){return e(i,function(o){return r[o]})}return dm=n,dm}var fm,jS;function sj(){if(jS)return fm;jS=1;var e=M$(),n=ks();function r(i){return i==null?[]:e(i,n(i))}return fm=r,fm}var hm,RS;function qn(){if(RS)return hm;RS=1;var e;if(typeof Yv=="function")try{e={clone:Fq(),constant:sy(),each:qC(),filter:YC(),has:KC(),isArray:bt(),isEmpty:c$(),isFunction:qa(),isUndefined:XC(),keys:ks(),map:ZC(),reduce:JC(),size:y$(),transform:w$(),union:I$(),values:sj()}}catch{}return e||(e=window._),hm=e,hm}var pm,TS;function cy(){if(TS)return pm;TS=1;var e=qn();pm=o;var n="\0",r="\0",i="";function o(d){this._isDirected=e.has(d,"directed")?d.directed:!0,this._isMultigraph=e.has(d,"multigraph")?d.multigraph:!1,this._isCompound=e.has(d,"compound")?d.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(d){return this._label=d,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultNodeLabelFn=d,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._in[m])})},o.prototype.sinks=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._out[m])})},o.prototype.setNodes=function(d,m){var y=arguments,w=this;return e.each(d,function(N){y.length>1?w.setNode(N,m):w.setNode(N)}),this},o.prototype.setNode=function(d,m){return e.has(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=m),this):(this._nodes[d]=arguments.length>1?m:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=r,this._children[d]={},this._children[r][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)},o.prototype.node=function(d){return this._nodes[d]},o.prototype.hasNode=function(d){return e.has(this._nodes,d)},o.prototype.removeNode=function(d){var m=this;if(e.has(this._nodes,d)){var y=function(w){m.removeEdge(m._edgeObjs[w])};delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],e.each(this.children(d),function(w){m.setParent(w)}),delete this._children[d]),e.each(e.keys(this._in[d]),y),delete this._in[d],delete this._preds[d],e.each(e.keys(this._out[d]),y),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this},o.prototype.setParent=function(d,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=r;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===d)throw new Error("Setting "+m+" as parent of "+d+" would create a cycle");this.setNode(m)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=m,this._children[m][d]=!0,this},o.prototype._removeFromParentsChildList=function(d){delete this._children[this._parent[d]][d]},o.prototype.parent=function(d){if(this._isCompound){var m=this._parent[d];if(m!==r)return m}},o.prototype.children=function(d){if(e.isUndefined(d)&&(d=r),this._isCompound){var m=this._children[d];if(m)return e.keys(m)}else{if(d===r)return this.nodes();if(this.hasNode(d))return[]}},o.prototype.predecessors=function(d){var m=this._preds[d];if(m)return e.keys(m)},o.prototype.successors=function(d){var m=this._sucs[d];if(m)return e.keys(m)},o.prototype.neighbors=function(d){var m=this.predecessors(d);if(m)return e.union(m,this.successors(d))},o.prototype.isLeaf=function(d){var m;return this.isDirected()?m=this.successors(d):m=this.neighbors(d),m.length===0},o.prototype.filterNodes=function(d){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){d(S)&&m.setNode(S,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var w={};function N(_){var S=y.parent(_);return S===void 0||m.hasNode(S)?(w[_]=S,S):S in w?w[S]:N(S)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,N(_))}),m},o.prototype.setDefaultEdgeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultEdgeLabelFn=d,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(d,m){var y=this,w=arguments;return e.reduce(d,function(N,_){return w.length>1?y.setEdge(N,_,m):y.setEdge(N,_),_}),this},o.prototype.setEdge=function(){var d,m,y,w,N=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(d=_.v,m=_.w,y=_.name,arguments.length===2&&(w=arguments[1],N=!0)):(d=_,m=arguments[1],y=arguments[3],arguments.length>2&&(w=arguments[2],N=!0)),d=""+d,m=""+m,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,d,m,y);if(e.has(this._edgeLabels,S))return N&&(this._edgeLabels[S]=w),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(m),this._edgeLabels[S]=N?w:this._defaultEdgeLabelFn(d,m,y);var b=h(this._isDirected,d,m,y);return d=b.v,m=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[m],d),l(this._sucs[d],m),this._in[m][S]=b,this._out[d][S]=b,this._edgeCount++,this},o.prototype.edge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return this._edgeLabels[w]},o.prototype.hasEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return e.has(this._edgeLabels,w)},o.prototype.removeEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y),N=this._edgeObjs[w];return N&&(d=N.v,m=N.w,delete this._edgeLabels[w],delete this._edgeObjs[w],u(this._preds[m],d),u(this._sucs[d],m),delete this._in[m][w],delete this._out[d][w],this._edgeCount--),this},o.prototype.inEdges=function(d,m){var y=this._in[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.v===m}):w}},o.prototype.outEdges=function(d,m){var y=this._out[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.w===m}):w}},o.prototype.nodeEdges=function(d,m){var y=this.inEdges(d,m);if(y)return y.concat(this.outEdges(d,m))};function l(d,m){d[m]?d[m]++:d[m]=1}function u(d,m){--d[m]||delete d[m]}function c(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var S=N;N=_,_=S}return N+i+_+i+(e.isUndefined(w)?n:w)}function h(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var S=N;N=_,_=S}var b={v:N,w:_};return w&&(b.name=w),b}function p(d,m){return c(d,m.v,m.w,m.name)}return pm}var mm,AS;function P$(){return AS||(AS=1,mm="2.1.8"),mm}var gm,IS;function O$(){return IS||(IS=1,gm={Graph:cy(),version:P$()}),gm}var vm,MS;function L$(){if(MS)return vm;MS=1;var e=qn(),n=cy();vm={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:i(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function i(u){return e.map(u.nodes(),function(c){var h=u.node(c),p=u.parent(c),d={v:c};return e.isUndefined(h)||(d.value=h),e.isUndefined(p)||(d.parent=p),d})}function o(u){return e.map(u.edges(),function(c){var h=u.edge(c),p={v:c.v,w:c.w};return e.isUndefined(c.name)||(p.name=c.name),e.isUndefined(h)||(p.value=h),p})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(h){c.setNode(h.v,h.value),h.parent&&c.setParent(h.v,h.parent)}),e.each(u.edges,function(h){c.setEdge({v:h.v,w:h.w,name:h.name},h.value)}),c}return vm}var ym,PS;function q$(){if(PS)return ym;PS=1;var e=qn();ym=n;function n(r){var i={},o=[],l;function u(c){e.has(i,c)||(i[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return ym}var wm,OS;function ij(){if(OS)return wm;OS=1;var e=qn();wm=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var i=this._keyIndices[r];if(i!==void 0)return this._arr[i].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,i){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:i}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,i){var o=this._keyIndices[r];if(i>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+i);this._arr[o].priority=i,this._decrease(o)},n.prototype._heapify=function(r){var i=this._arr,o=2*r,l=o+1,u=r;o<i.length&&(u=i[o].priority<i[u].priority?o:u,l<i.length&&(u=i[l].priority<i[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var i=this._arr,o=i[r].priority,l;r!==0&&(l=r>>1,!(i[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,i){var o=this._arr,l=this._keyIndices,u=o[r],c=o[i];o[r]=c,o[i]=u,l[c.key]=r,l[u.key]=i},wm}var xm,LS;function oj(){if(LS)return xm;LS=1;var e=qn(),n=ij();xm=i;var r=e.constant(1);function i(l,u,c,h){return o(l,String(u),c||r,h||function(p){return l.outEdges(p)})}function o(l,u,c,h){var p={},d=new n,m,y,w=function(N){var _=N.v!==m?N.v:N.w,S=p[_],b=c(N),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=m,d.decrease(_,k))};for(l.nodes().forEach(function(N){var _=N===u?0:Number.POSITIVE_INFINITY;p[N]={distance:_},d.add(N,_)});d.size()>0&&(m=d.removeMin(),y=p[m],y.distance!==Number.POSITIVE_INFINITY);)h(m).forEach(w);return p}return xm}var _m,qS;function $$(){if(qS)return _m;qS=1;var e=oj(),n=qn();_m=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return _m}var bm,$S;function aj(){if($S)return bm;$S=1;var e=qn();bm=n;function n(r){var i=0,o=[],l={},u=[];function c(h){var p=l[h]={onStack:!0,lowlink:i,index:i++};if(o.push(h),r.successors(h).forEach(function(y){e.has(l,y)?l[y].onStack&&(p.lowlink=Math.min(p.lowlink,l[y].index)):(c(y),p.lowlink=Math.min(p.lowlink,l[y].lowlink))}),p.lowlink===p.index){var d=[],m;do m=o.pop(),l[m].onStack=!1,d.push(m);while(h!==m);u.push(d)}}return r.nodes().forEach(function(h){e.has(l,h)||c(h)}),u}return bm}var Sm,DS;function D$(){if(DS)return Sm;DS=1;var e=qn(),n=aj();Sm=r;function r(i){return e.filter(n(i),function(o){return o.length>1||o.length===1&&i.hasEdge(o[0],o[0])})}return Sm}var km,FS;function F$(){if(FS)return km;FS=1;var e=qn();km=r;var n=e.constant(1);function r(o,l,u){return i(o,l||n,u||function(c){return o.outEdges(c)})}function i(o,l,u){var c={},h=o.nodes();return h.forEach(function(p){c[p]={},c[p][p]={distance:0},h.forEach(function(d){p!==d&&(c[p][d]={distance:Number.POSITIVE_INFINITY})}),u(p).forEach(function(d){var m=d.v===p?d.w:d.v,y=l(d);c[p][m]={distance:y,predecessor:p}})}),h.forEach(function(p){var d=c[p];h.forEach(function(m){var y=c[m];h.forEach(function(w){var N=y[p],_=d[w],S=y[w],b=N.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return km}var Em,zS;function lj(){if(zS)return Em;zS=1;var e=qn();Em=n,n.CycleException=r;function n(i){var o={},l={},u=[];function c(h){if(e.has(l,h))throw new r;e.has(o,h)||(l[h]=!0,o[h]=!0,e.each(i.predecessors(h),c),delete l[h],u.push(h))}if(e.each(i.sinks(),c),e.size(o)!==i.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Em}var Nm,BS;function z$(){if(BS)return Nm;BS=1;var e=lj();Nm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Nm}var Cm,US;function uj(){if(US)return Cm;US=1;var e=qn();Cm=n;function n(i,o,l){e.isArray(o)||(o=[o]);var u=(i.isDirected()?i.successors:i.neighbors).bind(i),c=[],h={};return e.each(o,function(p){if(!i.hasNode(p))throw new Error("Graph does not have node: "+p);r(i,p,l==="post",h,u,c)}),c}function r(i,o,l,u,c,h){e.has(u,o)||(u[o]=!0,l||h.push(o),e.each(c(o),function(p){r(i,p,l,u,c,h)}),l&&h.push(o))}return Cm}var jm,HS;function B$(){if(HS)return jm;HS=1;var e=uj();jm=n;function n(r,i){return e(r,i,"post")}return jm}var Rm,WS;function U$(){if(WS)return Rm;WS=1;var e=uj();Rm=n;function n(r,i){return e(r,i,"pre")}return Rm}var Tm,VS;function H$(){if(VS)return Tm;VS=1;var e=qn(),n=cy(),r=ij();Tm=i;function i(o,l){var u=new n,c={},h=new r,p;function d(y){var w=y.v===p?y.w:y.v,N=h.priority(w);if(N!==void 0){var _=l(y);_<N&&(c[w]=p,h.decrease(w,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){h.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),h.decrease(o.nodes()[0],0);for(var m=!1;h.size()>0;){if(p=h.removeMin(),e.has(c,p))u.setEdge(p,c[p]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(p).forEach(d)}return u}return Tm}var Am,GS;function W$(){return GS||(GS=1,Am={components:q$(),dijkstra:oj(),dijkstraAll:$$(),findCycles:D$(),floydWarshall:F$(),isAcyclic:z$(),postorder:B$(),preorder:U$(),prim:H$(),tarjan:aj(),topsort:lj()}),Am}var Im,YS;function V$(){if(YS)return Im;YS=1;var e=O$();return Im={Graph:e.Graph,json:L$(),alg:W$(),version:e.version},Im}var Mm,KS;function Jn(){if(KS)return Mm;KS=1;var e;if(typeof Yv=="function")try{e=V$()}catch{}return e||(e=window.graphlib),Mm=e,Mm}var Pm,XS;function G$(){if(XS)return Pm;XS=1;var e=PC(),n=1,r=4;function i(o){return e(o,n|r)}return Pm=i,Pm}var Om,QS;function Wu(){if(QS)return Om;QS=1;var e=yo(),n=Wr(),r=Lu(),i=Ln();function o(l,u,c){if(!i(c))return!1;var h=typeof u;return(h=="number"?n(c)&&r(u,c.length):h=="string"&&u in c)?e(c[u],l):!1}return Om=o,Om}var Lm,ZS;function Y$(){if(ZS)return Lm;ZS=1;var e=Hu(),n=yo(),r=Wu(),i=di(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,h){c=Object(c);var p=-1,d=h.length,m=d>2?h[2]:void 0;for(m&&r(h[0],h[1],m)&&(d=1);++p<d;)for(var y=h[p],w=i(y),N=-1,_=w.length;++N<_;){var S=w[N],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return Lm=u,Lm}var qm,JS;function K$(){if(JS)return qm;JS=1;var e=Vr(),n=Wr(),r=ks();function i(o){return function(l,u,c){var h=Object(l);if(!n(l)){var p=e(u,3);l=r(l),u=function(m){return p(h[m],m,h)}}var d=o(l,u,c);return d>-1?h[p?l[d]:d]:void 0}}return qm=i,qm}var $m,ek;function X$(){if(ek)return $m;ek=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return $m=n,$m}var Dm,tk;function Q$(){if(tk)return Dm;tk=1;var e=X$(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Dm=r,Dm}var Fm,nk;function Z$(){if(nk)return Fm;nk=1;var e=Q$(),n=Ln(),r=bo(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function h(p){if(typeof p=="number")return p;if(r(p))return i;if(n(p)){var d=typeof p.valueOf=="function"?p.valueOf():p;p=n(d)?d+"":d}if(typeof p!="string")return p===0?p:+p;p=e(p);var m=l.test(p);return m||u.test(p)?c(p.slice(2),m?2:8):o.test(p)?i:+p}return Fm=h,Fm}var zm,rk;function cj(){if(rk)return zm;rk=1;var e=Z$(),n=1/0,r=17976931348623157e292;function i(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return zm=i,zm}var Bm,sk;function J$(){if(sk)return Bm;sk=1;var e=cj();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Bm=n,Bm}var Um,ik;function e4(){if(ik)return Um;ik=1;var e=nj(),n=Vr(),r=J$(),i=Math.max;function o(l,u,c){var h=l==null?0:l.length;if(!h)return-1;var p=c==null?0:r(c);return p<0&&(p=i(h+p,0)),e(l,n(u,3),p)}return Um=o,Um}var Hm,ok;function t4(){if(ok)return Hm;ok=1;var e=K$(),n=e4(),r=e(n);return Hm=r,Hm}var Wm,ak;function dj(){if(ak)return Wm;ak=1;var e=uy();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return Wm=n,Wm}var Vm,lk;function n4(){if(lk)return Vm;lk=1;var e=iy(),n=OC(),r=di();function i(o,l){return o==null?o:e(o,n(l),r)}return Vm=i,Vm}var Gm,uk;function r4(){if(uk)return Gm;uk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return Gm=e,Gm}var Ym,ck;function s4(){if(ck)return Ym;ck=1;var e=Pu(),n=oy(),r=Vr();function i(o,l){var u={};return l=r(l,3),n(o,function(c,h,p){e(u,h,l(c,h,p))}),u}return Ym=i,Ym}var Km,dk;function dy(){if(dk)return Km;dk=1;var e=bo();function n(r,i,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],h=i(c);if(h!=null&&(p===void 0?h===h&&!e(h):o(h,p)))var p=h,d=c}return d}return Km=n,Km}var Xm,fk;function i4(){if(fk)return Xm;fk=1;function e(n,r){return n>r}return Xm=e,Xm}var Qm,hk;function o4(){if(hk)return Qm;hk=1;var e=dy(),n=i4(),r=fi();function i(o){return o&&o.length?e(o,r,n):void 0}return Qm=i,Qm}var Zm,pk;function fj(){if(pk)return Zm;pk=1;var e=Pu(),n=yo();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return Zm=r,Zm}var Jm,mk;function a4(){if(mk)return Jm;mk=1;var e=ui(),n=Du(),r=vr(),i="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,h=u.call(Object);function p(d){if(!r(d)||e(d)!=i)return!1;var m=n(d);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==h}return Jm=p,Jm}var eg,gk;function hj(){if(gk)return eg;gk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return eg=e,eg}var tg,vk;function l4(){if(vk)return tg;vk=1;var e=$a(),n=di();function r(i){return e(i,n(i))}return tg=r,tg}var ng,yk;function u4(){if(yk)return ng;yk=1;var e=fj(),n=bC(),r=AC(),i=SC(),o=MC(),l=Da(),u=bt(),c=rj(),h=xo(),p=qa(),d=Ln(),m=a4(),y=Fa(),w=hj(),N=l4();function _(S,b,k,E,C,A,M){var L=w(S,k),H=w(b,k),O=M.get(H);if(O){e(S,k,O);return}var P=A?A(L,H,k+"",S,b,M):void 0,F=P===void 0;if(F){var G=u(H),q=!G&&h(H),R=!G&&!q&&y(H);P=H,G||q||R?u(L)?P=L:c(L)?P=i(L):q?(F=!1,P=n(H,!0)):R?(F=!1,P=r(H,!0)):P=[]:m(H)||l(H)?(P=L,l(L)?P=N(L):(!d(L)||p(L))&&(P=o(H))):F=!1}F&&(M.set(H,P),C(P,H,E,A,M),M.delete(H)),e(S,k,P)}return ng=_,ng}var rg,wk;function c4(){if(wk)return rg;wk=1;var e=Mu(),n=fj(),r=iy(),i=u4(),o=Ln(),l=di(),u=hj();function c(h,p,d,m,y){h!==p&&r(p,function(w,N){if(y||(y=new e),o(w))i(h,p,N,d,c,m,y);else{var _=m?m(u(h,N),w,N+"",h,p,y):void 0;_===void 0&&(_=w),n(h,N,_)}},l)}return rg=c,rg}var sg,xk;function d4(){if(xk)return sg;xk=1;var e=Hu(),n=Wu();function r(i){return e(function(o,l){var u=-1,c=l.length,h=c>1?l[c-1]:void 0,p=c>2?l[2]:void 0;for(h=i.length>3&&typeof h=="function"?(c--,h):void 0,p&&n(l[0],l[1],p)&&(h=c<3?void 0:h,c=1),o=Object(o);++u<c;){var d=l[u];d&&i(o,d,u,h)}return o})}return sg=r,sg}var ig,_k;function f4(){if(_k)return ig;_k=1;var e=c4(),n=d4(),r=n(function(i,o,l){e(i,o,l)});return ig=r,ig}var og,bk;function pj(){if(bk)return og;bk=1;function e(n,r){return n<r}return og=e,og}var ag,Sk;function h4(){if(Sk)return ag;Sk=1;var e=dy(),n=pj(),r=fi();function i(o){return o&&o.length?e(o,r,n):void 0}return ag=i,ag}var lg,kk;function p4(){if(kk)return lg;kk=1;var e=dy(),n=Vr(),r=pj();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return lg=i,lg}var ug,Ek;function m4(){if(Ek)return ug;Ek=1;var e=tr(),n=function(){return e.Date.now()};return ug=n,ug}var cg,Nk;function g4(){if(Nk)return cg;Nk=1;var e=Ou(),n=Bu(),r=Lu(),i=Ln(),o=za();function l(u,c,h,p){if(!i(u))return u;c=n(c,u);for(var d=-1,m=c.length,y=m-1,w=u;w!=null&&++d<m;){var N=o(c[d]),_=h;if(N==="__proto__"||N==="constructor"||N==="prototype")return u;if(d!=y){var S=w[N];_=p?p(S,N,w):void 0,_===void 0&&(_=i(S)?S:r(c[d+1])?[]:{})}e(w,N,_),w=w[N]}return u}return cg=l,cg}var dg,Ck;function v4(){if(Ck)return dg;Ck=1;var e=Uu(),n=g4(),r=Bu();function i(o,l,u){for(var c=-1,h=l.length,p={};++c<h;){var d=l[c],m=e(o,d);u(m,d)&&n(p,r(d,o),m)}return p}return dg=i,dg}var fg,jk;function y4(){if(jk)return fg;jk=1;var e=v4(),n=VC();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return fg=r,fg}var hg,Rk;function w4(){if(Rk)return hg;Rk=1;var e=dj(),n=ej(),r=tj();function i(o){return r(n(o,void 0,e),o+"")}return hg=i,hg}var pg,Tk;function x4(){if(Tk)return pg;Tk=1;var e=y4(),n=w4(),r=n(function(i,o){return i==null?{}:e(i,o)});return pg=r,pg}var mg,Ak;function _4(){if(Ak)return mg;Ak=1;var e=Math.ceil,n=Math.max;function r(i,o,l,u){for(var c=-1,h=n(e((o-i)/(l||1)),0),p=Array(h);h--;)p[u?h:++c]=i,i+=l;return p}return mg=r,mg}var gg,Ik;function b4(){if(Ik)return gg;Ik=1;var e=_4(),n=Wu(),r=cj();function i(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return gg=i,gg}var vg,Mk;function S4(){if(Mk)return vg;Mk=1;var e=b4(),n=e();return vg=n,vg}var yg,Pk;function k4(){if(Pk)return yg;Pk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return yg=e,yg}var wg,Ok;function E4(){if(Ok)return wg;Ok=1;var e=bo();function n(r,i){if(r!==i){var o=r!==void 0,l=r===null,u=r===r,c=e(r),h=i!==void 0,p=i===null,d=i===i,m=e(i);if(!p&&!m&&!c&&r>i||c&&h&&d&&!p&&!m||l&&h&&d||!o&&d||!u)return 1;if(!l&&!c&&!m&&r<i||m&&o&&u&&!l&&!c||p&&o&&u||!h&&u||!d)return-1}return 0}return wg=n,wg}var xg,Lk;function N4(){if(Lk)return xg;Lk=1;var e=E4();function n(r,i,o){for(var l=-1,u=r.criteria,c=i.criteria,h=u.length,p=o.length;++l<h;){var d=e(u[l],c[l]);if(d){if(l>=p)return d;var m=o[l];return d*(m=="desc"?-1:1)}}return r.index-i.index}return xg=n,xg}var _g,qk;function C4(){if(qk)return _g;qk=1;var e=zu(),n=Uu(),r=Vr(),i=QC(),o=k4(),l=qu(),u=N4(),c=fi(),h=bt();function p(d,m,y){m.length?m=e(m,function(_){return h(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):m=[c];var w=-1;m=e(m,l(r));var N=i(d,function(_,S,b){var k=e(m,function(E){return E(_)});return{criteria:k,index:++w,value:_}});return o(N,function(_,S){return u(_,S,y)})}return _g=p,_g}var bg,$k;function j4(){if($k)return bg;$k=1;var e=uy(),n=C4(),r=Hu(),i=Wu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&i(l,u[0],u[1])?u=[]:c>2&&i(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return bg=o,bg}var Sg,Dk;function R4(){if(Dk)return Sg;Dk=1;var e=HC(),n=0;function r(i){var o=++n;return e(i)+o}return Sg=r,Sg}var kg,Fk;function T4(){if(Fk)return kg;Fk=1;function e(n,r,i){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var h=o<u?r[o]:void 0;i(c,n[o],h)}return c}return kg=e,kg}var Eg,zk;function A4(){if(zk)return Eg;zk=1;var e=Ou(),n=T4();function r(i,o){return n(i||[],o||[],e)}return Eg=r,Eg}var Ng,Bk;function it(){if(Bk)return Ng;Bk=1;var e;if(typeof Yv=="function")try{e={cloneDeep:G$(),constant:sy(),defaults:Y$(),each:qC(),filter:YC(),find:t4(),flatten:dj(),forEach:LC(),forIn:n4(),has:KC(),isUndefined:XC(),last:r4(),map:ZC(),mapValues:s4(),max:o4(),merge:f4(),min:h4(),minBy:p4(),now:m4(),pick:x4(),range:S4(),reduce:JC(),sortBy:j4(),uniqueId:R4(),values:sj(),zipObject:A4()}}catch{}return e||(e=window._),Ng=e,Ng}var Cg,Uk;function I4(){if(Uk)return Cg;Uk=1,Cg=e;function e(){var i={};i._next=i._prev=i,this._sentinel=i}e.prototype.dequeue=function(){var i=this._sentinel,o=i._prev;if(o!==i)return n(o),o},e.prototype.enqueue=function(i){var o=this._sentinel;i._prev&&i._next&&n(i),i._next=o._next,o._next._prev=i,o._next=i,i._prev=o},e.prototype.toString=function(){for(var i=[],o=this._sentinel,l=o._prev;l!==o;)i.push(JSON.stringify(l,r)),l=l._prev;return"["+i.join(", ")+"]"};function n(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function r(i,o){if(i!=="_next"&&i!=="_prev")return o}return Cg}var jg,Hk;function M4(){if(Hk)return jg;Hk=1;var e=it(),n=Jn().Graph,r=I4();jg=o;var i=e.constant(1);function o(p,d){if(p.nodeCount()<=1)return[];var m=c(p,d||i),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(w){return p.outEdges(w.v,w.w)}),!0)}function l(p,d,m){for(var y=[],w=d[d.length-1],N=d[0],_;p.nodeCount();){for(;_=N.dequeue();)u(p,d,m,_);for(;_=w.dequeue();)u(p,d,m,_);if(p.nodeCount()){for(var S=d.length-2;S>0;--S)if(_=d[S].dequeue(),_){y=y.concat(u(p,d,m,_,!0));break}}}return y}function u(p,d,m,y,w){var N=w?[]:void 0;return e.forEach(p.inEdges(y.v),function(_){var S=p.edge(_),b=p.node(_.v);w&&N.push({v:_.v,w:_.w}),b.out-=S,h(d,m,b)}),e.forEach(p.outEdges(y.v),function(_){var S=p.edge(_),b=_.w,k=p.node(b);k.in-=S,h(d,m,k)}),p.removeNode(y.v),N}function c(p,d){var m=new n,y=0,w=0;e.forEach(p.nodes(),function(S){m.setNode(S,{v:S,in:0,out:0})}),e.forEach(p.edges(),function(S){var b=m.edge(S.v,S.w)||0,k=d(S),E=b+k;m.setEdge(S.v,S.w,E),w=Math.max(w,m.node(S.v).out+=k),y=Math.max(y,m.node(S.w).in+=k)});var N=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(S){h(N,_,m.node(S))}),{graph:m,buckets:N,zeroIdx:_}}function h(p,d,m){m.out?m.in?p[m.out-m.in+d].enqueue(m):p[p.length-1].enqueue(m):p[0].enqueue(m)}return jg}var Rg,Wk;function P4(){if(Wk)return Rg;Wk=1;var e=it(),n=M4();Rg={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):i(l);e.forEach(u,function(h){var p=l.edge(h);l.removeEdge(h),p.forwardName=h.name,p.reversed=!0,l.setEdge(h.w,h.v,p,e.uniqueId("rev"))});function c(h){return function(p){return h.edge(p).weight}}}function i(l){var u=[],c={},h={};function p(d){e.has(h,d)||(h[d]=!0,c[d]=!0,e.forEach(l.outEdges(d),function(m){e.has(c,m.w)?u.push(m):p(m.w)}),delete c[d])}return e.forEach(l.nodes(),p),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var h=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,h)}})}return Rg}var Tg,Vk;function hn(){if(Vk)return Tg;Vk=1;var e=it(),n=Jn().Graph;Tg={addDummyNode:r,simplify:i,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:h,normalizeRanks:p,removeEmptyRanks:d,addBorderNode:m,maxRank:y,partition:w,time:N,notime:_};function r(S,b,k,E){var C;do C=e.uniqueId(E);while(S.hasNode(C));return k.dummy=b,S.setNode(C,k),C}function i(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var E=b.edge(k.v,k.w)||{weight:0,minlen:1},C=S.edge(k);b.setEdge(k.v,k.w,{weight:E.weight+C.weight,minlen:Math.max(E.minlen,C.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var E={};return e.forEach(S.outEdges(k),function(C){E[C.w]=(E[C.w]||0)+S.edge(C).weight}),E});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(k){var E={};return e.forEach(S.inEdges(k),function(C){E[C.v]=(E[C.v]||0)+S.edge(C).weight}),E});return e.zipObject(S.nodes(),b)}function c(S,b){var k=S.x,E=S.y,C=b.x-k,A=b.y-E,M=S.width/2,L=S.height/2;if(!C&&!A)throw new Error("Not possible to find intersection inside of the rectangle");var H,O;return Math.abs(A)*M>Math.abs(C)*L?(A<0&&(L=-L),H=L*C/A,O=L):(C<0&&(M=-M),H=M,O=M*A/C),{x:k+H,y:E+O}}function h(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var E=S.node(k),C=E.rank;e.isUndefined(C)||(b[C][E.order]=k)}),b}function p(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var E=S.node(k);e.has(E,"rank")&&(E.rank-=b)})}function d(S){var b=e.min(e.map(S.nodes(),function(A){return S.node(A).rank})),k=[];e.forEach(S.nodes(),function(A){var M=S.node(A).rank-b;k[M]||(k[M]=[]),k[M].push(A)});var E=0,C=S.graph().nodeRankFactor;e.forEach(k,function(A,M){e.isUndefined(A)&&M%C!==0?--E:E&&e.forEach(A,function(L){S.node(L).rank+=E})})}function m(S,b,k,E){var C={width:0,height:0};return arguments.length>=4&&(C.rank=k,C.order=E),r(S,"border",C,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function w(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(E){b(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return Tg}var Ag,Gk;function O4(){if(Gk)return Ag;Gk=1;var e=it(),n=hn();Ag={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){i(l,u)})}function i(l,u){var c=u.v,h=l.node(c).rank,p=u.w,d=l.node(p).rank,m=u.name,y=l.edge(u),w=y.labelRank;if(d!==h+1){l.removeEdge(u);var N,_,S;for(S=0,++h;h<d;++S,++h)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:h},N=n.addDummyNode(l,"edge",_,"_d"),h===w&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,N,{weight:y.weight},m),S===0&&l.graph().dummyChains.push(N),c=N;l.setEdge(c,p,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),h=c.edgeLabel,p;for(l.setEdge(c.edgeObj,h);c.dummy;)p=l.successors(u)[0],l.removeNode(u),h.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(h.x=c.x,h.y=c.y,h.width=c.width,h.height=c.height),u=p,c=l.node(u)})}return Ag}var Ig,Yk;function wu(){if(Yk)return Ig;Yk=1;var e=it();Ig={longestPath:n,slack:r};function n(i){var o={};function l(u){var c=i.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var h=e.min(e.map(i.outEdges(u),function(p){return l(p.w)-i.edge(p).minlen}));return(h===Number.POSITIVE_INFINITY||h===void 0||h===null)&&(h=0),c.rank=h}e.forEach(i.sources(),l)}function r(i,o){return i.node(o.w).rank-i.node(o.v).rank-i.edge(o).minlen}return Ig}var Mg,Kk;function mj(){if(Kk)return Mg;Kk=1;var e=it(),n=Jn().Graph,r=wu().slack;Mg=i;function i(c){var h=new n({directed:!1}),p=c.nodes()[0],d=c.nodeCount();h.setNode(p,{});for(var m,y;o(h,c)<d;)m=l(h,c),y=h.hasNode(m.v)?r(c,m):-r(c,m),u(h,c,y);return h}function o(c,h){function p(d){e.forEach(h.nodeEdges(d),function(m){var y=m.v,w=d===y?m.w:y;!c.hasNode(w)&&!r(h,m)&&(c.setNode(w,{}),c.setEdge(d,w,{}),p(w))})}return e.forEach(c.nodes(),p),c.nodeCount()}function l(c,h){return e.minBy(h.edges(),function(p){if(c.hasNode(p.v)!==c.hasNode(p.w))return r(h,p)})}function u(c,h,p){e.forEach(c.nodes(),function(d){h.node(d).rank+=p})}return Mg}var Pg,Xk;function L4(){if(Xk)return Pg;Xk=1;var e=it(),n=mj(),r=wu().slack,i=wu().longestPath,o=Jn().alg.preorder,l=Jn().alg.postorder,u=hn().simplify;Pg=c,c.initLowLimValues=m,c.initCutValues=h,c.calcCutValue=d,c.leaveEdge=w,c.enterEdge=N,c.exchangeEdges=_;function c(E){E=u(E),i(E);var C=n(E);m(C),h(C,E);for(var A,M;A=w(C);)M=N(C,E,A),_(C,E,A,M)}function h(E,C){var A=l(E,E.nodes());A=A.slice(0,A.length-1),e.forEach(A,function(M){p(E,C,M)})}function p(E,C,A){var M=E.node(A),L=M.parent;E.edge(A,L).cutvalue=d(E,C,A)}function d(E,C,A){var M=E.node(A),L=M.parent,H=!0,O=C.edge(A,L),P=0;return O||(H=!1,O=C.edge(L,A)),P=O.weight,e.forEach(C.nodeEdges(A),function(F){var G=F.v===A,q=G?F.w:F.v;if(q!==L){var R=G===H,Q=C.edge(F).weight;if(P+=R?Q:-Q,b(E,A,q)){var z=E.edge(A,q).cutvalue;P+=R?-z:z}}}),P}function m(E,C){arguments.length<2&&(C=E.nodes()[0]),y(E,{},1,C)}function y(E,C,A,M,L){var H=A,O=E.node(M);return C[M]=!0,e.forEach(E.neighbors(M),function(P){e.has(C,P)||(A=y(E,C,A,P,M))}),O.low=H,O.lim=A++,L?O.parent=L:delete O.parent,A}function w(E){return e.find(E.edges(),function(C){return E.edge(C).cutvalue<0})}function N(E,C,A){var M=A.v,L=A.w;C.hasEdge(M,L)||(M=A.w,L=A.v);var H=E.node(M),O=E.node(L),P=H,F=!1;H.lim>O.lim&&(P=O,F=!0);var G=e.filter(C.edges(),function(q){return F===k(E,E.node(q.v),P)&&F!==k(E,E.node(q.w),P)});return e.minBy(G,function(q){return r(C,q)})}function _(E,C,A,M){var L=A.v,H=A.w;E.removeEdge(L,H),E.setEdge(M.v,M.w,{}),m(E),h(E,C),S(E,C)}function S(E,C){var A=e.find(E.nodes(),function(L){return!C.node(L).parent}),M=o(E,A);M=M.slice(1),e.forEach(M,function(L){var H=E.node(L).parent,O=C.edge(L,H),P=!1;O||(O=C.edge(H,L),P=!0),C.node(L).rank=C.node(H).rank+(P?O.minlen:-O.minlen)})}function b(E,C,A){return E.hasEdge(C,A)}function k(E,C,A){return A.low<=C.lim&&C.lim<=A.lim}return Pg}var Og,Qk;function q4(){if(Qk)return Og;Qk=1;var e=wu(),n=e.longestPath,r=mj(),i=L4();Og=o;function o(h){switch(h.graph().ranker){case"network-simplex":c(h);break;case"tight-tree":u(h);break;case"longest-path":l(h);break;default:c(h)}}var l=n;function u(h){n(h),r(h)}function c(h){i(h)}return Og}var Lg,Zk;function $4(){if(Zk)return Lg;Zk=1;var e=it();Lg=n;function n(o){var l=i(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),h=c.edgeObj,p=r(o,l,h.v,h.w),d=p.path,m=p.lca,y=0,w=d[y],N=!0;u!==h.w;){if(c=o.node(u),N){for(;(w=d[y])!==m&&o.node(w).maxRank<c.rank;)y++;w===m&&(N=!1)}if(!N){for(;y<d.length-1&&o.node(w=d[y+1]).minRank<=c.rank;)y++;w=d[y]}o.setParent(u,w),u=o.successors(u)[0]}})}function r(o,l,u,c){var h=[],p=[],d=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,w;y=u;do y=o.parent(y),h.push(y);while(y&&(l[y].low>d||m>l[y].lim));for(w=y,y=c;(y=o.parent(y))!==w;)p.push(y);return{path:h.concat(p.reverse()),lca:w}}function i(o){var l={},u=0;function c(h){var p=u;e.forEach(o.children(h),c),l[h]={low:p,lim:u++}}return e.forEach(o.children(),c),l}return Lg}var qg,Jk;function D4(){if(Jk)return qg;Jk=1;var e=it(),n=hn();qg={run:r,cleanup:u};function r(c){var h=n.addDummyNode(c,"root",{},"_root"),p=o(c),d=e.max(e.values(p))-1,m=2*d+1;c.graph().nestingRoot=h,e.forEach(c.edges(),function(w){c.edge(w).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(w){i(c,h,m,y,d,p,w)}),c.graph().nodeRankFactor=m}function i(c,h,p,d,m,y,w){var N=c.children(w);if(!N.length){w!==h&&c.setEdge(h,w,{weight:0,minlen:p});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(w);c.setParent(_,w),b.borderTop=_,c.setParent(S,w),b.borderBottom=S,e.forEach(N,function(k){i(c,h,p,d,m,y,k);var E=c.node(k),C=E.borderTop?E.borderTop:k,A=E.borderBottom?E.borderBottom:k,M=E.borderTop?d:2*d,L=C!==A?1:m-y[w]+1;c.setEdge(_,C,{weight:M,minlen:L,nestingEdge:!0}),c.setEdge(A,S,{weight:M,minlen:L,nestingEdge:!0})}),c.parent(w)||c.setEdge(h,_,{weight:0,minlen:m+y[w]})}function o(c){var h={};function p(d,m){var y=c.children(d);y&&y.length&&e.forEach(y,function(w){p(w,m+1)}),h[d]=m}return e.forEach(c.children(),function(d){p(d,1)}),h}function l(c){return e.reduce(c.edges(),function(h,p){return h+c.edge(p).weight},0)}function u(c){var h=c.graph();c.removeNode(h.nestingRoot),delete h.nestingRoot,e.forEach(c.edges(),function(p){var d=c.edge(p);d.nestingEdge&&c.removeEdge(p)})}return qg}var $g,eE;function F4(){if(eE)return $g;eE=1;var e=it(),n=hn();$g=r;function r(o){function l(u){var c=o.children(u),h=o.node(u);if(c.length&&e.forEach(c,l),e.has(h,"minRank")){h.borderLeft=[],h.borderRight=[];for(var p=h.minRank,d=h.maxRank+1;p<d;++p)i(o,"borderLeft","_bl",u,h,p),i(o,"borderRight","_br",u,h,p)}}e.forEach(o.children(),l)}function i(o,l,u,c,h,p){var d={width:0,height:0,rank:p,borderType:l},m=h[l][p-1],y=n.addDummyNode(o,"border",d,u);h[l][p]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return $g}var Dg,tE;function z4(){if(tE)return Dg;tE=1;var e=it();Dg={adjust:n,undo:r};function n(p){var d=p.graph().rankdir.toLowerCase();(d==="lr"||d==="rl")&&i(p)}function r(p){var d=p.graph().rankdir.toLowerCase();(d==="bt"||d==="rl")&&l(p),(d==="lr"||d==="rl")&&(c(p),i(p))}function i(p){e.forEach(p.nodes(),function(d){o(p.node(d))}),e.forEach(p.edges(),function(d){o(p.edge(d))})}function o(p){var d=p.width;p.width=p.height,p.height=d}function l(p){e.forEach(p.nodes(),function(d){u(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(p){p.y=-p.y}function c(p){e.forEach(p.nodes(),function(d){h(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,h),e.has(m,"x")&&h(m)})}function h(p){var d=p.x;p.x=p.y,p.y=d}return Dg}var Fg,nE;function B4(){if(nE)return Fg;nE=1;var e=it();Fg=n;function n(r){var i={},o=e.filter(r.nodes(),function(p){return!r.children(p).length}),l=e.max(e.map(o,function(p){return r.node(p).rank})),u=e.map(e.range(l+1),function(){return[]});function c(p){if(!e.has(i,p)){i[p]=!0;var d=r.node(p);u[d.rank].push(p),e.forEach(r.successors(p),c)}}var h=e.sortBy(o,function(p){return r.node(p).rank});return e.forEach(h,c),u}return Fg}var zg,rE;function U4(){if(rE)return zg;rE=1;var e=it();zg=n;function n(i,o){for(var l=0,u=1;u<o.length;++u)l+=r(i,o[u-1],o[u]);return l}function r(i,o,l){for(var u=e.zipObject(l,e.map(l,function(y,w){return w})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(i.outEdges(y),function(w){return{pos:u[w.w],weight:i.edge(w).weight}}),"pos")}),!0),h=1;h<l.length;)h<<=1;var p=2*h-1;h-=1;var d=e.map(new Array(p),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var w=y.pos+h;d[w]+=y.weight;for(var N=0;w>0;)w%2&&(N+=d[w+1]),w=w-1>>1,d[w]+=y.weight;m+=y.weight*N})),m}return zg}var Bg,sE;function H4(){if(sE)return Bg;sE=1;var e=it();Bg=n;function n(r,i){return e.map(i,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,h){var p=r.edge(h),d=r.node(h.v);return{sum:c.sum+p.weight*d.order,weight:c.weight+p.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return Bg}var Ug,iE;function W4(){if(iE)return Ug;iE=1;var e=it();Ug=n;function n(o,l){var u={};e.forEach(o,function(h,p){var d=u[h.v]={indegree:0,in:[],out:[],vs:[h.v],i:p};e.isUndefined(h.barycenter)||(d.barycenter=h.barycenter,d.weight=h.weight)}),e.forEach(l.edges(),function(h){var p=u[h.v],d=u[h.w];!e.isUndefined(p)&&!e.isUndefined(d)&&(d.indegree++,p.out.push(u[h.w]))});var c=e.filter(u,function(h){return!h.indegree});return r(c)}function r(o){var l=[];function u(p){return function(d){d.merged||(e.isUndefined(d.barycenter)||e.isUndefined(p.barycenter)||d.barycenter>=p.barycenter)&&i(p,d)}}function c(p){return function(d){d.in.push(p),--d.indegree===0&&o.push(d)}}for(;o.length;){var h=o.pop();l.push(h),e.forEach(h.in.reverse(),u(h)),e.forEach(h.out,c(h))}return e.map(e.filter(l,function(p){return!p.merged}),function(p){return e.pick(p,["vs","i","barycenter","weight"])})}function i(o,l){var u=0,c=0;o.weight&&(u+=o.barycenter*o.weight,c+=o.weight),l.weight&&(u+=l.barycenter*l.weight,c+=l.weight),o.vs=l.vs.concat(o.vs),o.barycenter=u/c,o.weight=c,o.i=Math.min(l.i,o.i),l.merged=!0}return Ug}var Hg,oE;function V4(){if(oE)return Hg;oE=1;var e=it(),n=hn();Hg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),h=c.lhs,p=e.sortBy(c.rhs,function(_){return-_.i}),d=[],m=0,y=0,w=0;h.sort(o(!!u)),w=i(d,p,w),e.forEach(h,function(_){w+=_.vs.length,d.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,w=i(d,p,w)});var N={vs:e.flatten(d,!0)};return y&&(N.barycenter=m/y,N.weight=y),N}function i(l,u,c){for(var h;u.length&&(h=e.last(u)).i<=c;)u.pop(),l.push(h.vs),c++;return c}function o(l){return function(u,c){return u.barycenter<c.barycenter?-1:u.barycenter>c.barycenter?1:l?c.i-u.i:u.i-c.i}}return Hg}var Wg,aE;function G4(){if(aE)return Wg;aE=1;var e=it(),n=H4(),r=W4(),i=V4();Wg=o;function o(c,h,p,d){var m=c.children(h),y=c.node(h),w=y?y.borderLeft:void 0,N=y?y.borderRight:void 0,_={};w&&(m=e.filter(m,function(A){return A!==w&&A!==N}));var S=n(c,m);e.forEach(S,function(A){if(c.children(A.v).length){var M=o(c,A.v,p,d);_[A.v]=M,e.has(M,"barycenter")&&u(A,M)}});var b=r(S,p);l(b,_);var k=i(b,d);if(w&&(k.vs=e.flatten([w,k.vs,N],!0),c.predecessors(w).length)){var E=c.node(c.predecessors(w)[0]),C=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+C.order)/(k.weight+2),k.weight+=2}return k}function l(c,h){e.forEach(c,function(p){p.vs=e.flatten(p.vs.map(function(d){return h[d]?h[d].vs:d}),!0)})}function u(c,h){e.isUndefined(c.barycenter)?(c.barycenter=h.barycenter,c.weight=h.weight):(c.barycenter=(c.barycenter*c.weight+h.barycenter*h.weight)/(c.weight+h.weight),c.weight+=h.weight)}return Wg}var Vg,lE;function Y4(){if(lE)return Vg;lE=1;var e=it(),n=Jn().Graph;Vg=r;function r(o,l,u){var c=i(o),h=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(p){return o.node(p)});return e.forEach(o.nodes(),function(p){var d=o.node(p),m=o.parent(p);(d.rank===l||d.minRank<=l&&l<=d.maxRank)&&(h.setNode(p),h.setParent(p,m||c),e.forEach(o[u](p),function(y){var w=y.v===p?y.w:y.v,N=h.edge(w,p),_=e.isUndefined(N)?0:N.weight;h.setEdge(w,p,{weight:o.edge(y).weight+_})}),e.has(d,"minRank")&&h.setNode(p,{borderLeft:d.borderLeft[l],borderRight:d.borderRight[l]}))}),h}function i(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return Vg}var Gg,uE;function K4(){if(uE)return Gg;uE=1;var e=it();Gg=n;function n(r,i,o){var l={},u;e.forEach(o,function(c){for(var h=r.parent(c),p,d;h;){if(p=r.parent(h),p?(d=l[p],l[p]=h):(d=u,u=h),d&&d!==h){i.setEdge(d,h);return}h=p}})}return Gg}var Yg,cE;function X4(){if(cE)return Yg;cE=1;var e=it(),n=B4(),r=U4(),i=G4(),o=Y4(),l=K4(),u=Jn().Graph,c=hn();Yg=h;function h(y){var w=c.maxRank(y),N=p(y,e.range(1,w+1),"inEdges"),_=p(y,e.range(w-1,-1,-1),"outEdges"),S=n(y);m(y,S);for(var b=Number.POSITIVE_INFINITY,k,E=0,C=0;C<4;++E,++C){d(E%2?N:_,E%4>=2),S=c.buildLayerMatrix(y);var A=r(y,S);A<b&&(C=0,k=e.cloneDeep(S),b=A)}m(y,k)}function p(y,w,N){return e.map(w,function(_){return o(y,_,N)})}function d(y,w){var N=new u;e.forEach(y,function(_){var S=_.graph().root,b=i(_,S,N,w);e.forEach(b.vs,function(k,E){_.node(k).order=E}),l(_,N,b.vs)})}function m(y,w){e.forEach(w,function(N){e.forEach(N,function(_,S){y.node(_).order=S})})}return Yg}var Kg,dE;function Q4(){if(dE)return Kg;dE=1;var e=it(),n=Jn().Graph,r=hn();Kg={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:h,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:m,balance:w};function i(b,k){var E={};function C(A,M){var L=0,H=0,O=A.length,P=e.last(M);return e.forEach(M,function(F,G){var q=l(b,F),R=q?b.node(q).order:O;(q||F===P)&&(e.forEach(M.slice(H,G+1),function(Q){e.forEach(b.predecessors(Q),function(z){var ne=b.node(z),Z=ne.order;(Z<L||R<Z)&&!(ne.dummy&&b.node(Q).dummy)&&u(E,z,Q)})}),H=G+1,L=R)}),M}return e.reduce(k,C),E}function o(b,k){var E={};function C(M,L,H,O,P){var F;e.forEach(e.range(L,H),function(G){F=M[G],b.node(F).dummy&&e.forEach(b.predecessors(F),function(q){var R=b.node(q);R.dummy&&(R.order<O||R.order>P)&&u(E,q,F)})})}function A(M,L){var H=-1,O,P=0;return e.forEach(L,function(F,G){if(b.node(F).dummy==="border"){var q=b.predecessors(F);q.length&&(O=b.node(q[0]).order,C(L,P,G,H,O),P=G,H=O)}C(L,P,L.length,O,M.length)}),L}return e.reduce(k,A),E}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(E){return b.node(E).dummy})}function u(b,k,E){if(k>E){var C=k;k=E,E=C}var A=b[k];A||(b[k]=A={}),A[E]=!0}function c(b,k,E){if(k>E){var C=k;k=E,E=C}return e.has(b[k],E)}function h(b,k,E,C){var A={},M={},L={};return e.forEach(k,function(H){e.forEach(H,function(O,P){A[O]=O,M[O]=O,L[O]=P})}),e.forEach(k,function(H){var O=-1;e.forEach(H,function(P){var F=C(P);if(F.length){F=e.sortBy(F,function(z){return L[z]});for(var G=(F.length-1)/2,q=Math.floor(G),R=Math.ceil(G);q<=R;++q){var Q=F[q];M[P]===P&&O<L[Q]&&!c(E,P,Q)&&(M[Q]=P,M[P]=A[P]=A[Q],O=L[Q])}}})}),{root:A,align:M}}function p(b,k,E,C,A){var M={},L=d(b,k,E,A),H=A?"borderLeft":"borderRight";function O(G,q){for(var R=L.nodes(),Q=R.pop(),z={};Q;)z[Q]?G(Q):(z[Q]=!0,R.push(Q),R=R.concat(q(Q))),Q=R.pop()}function P(G){M[G]=L.inEdges(G).reduce(function(q,R){return Math.max(q,M[R.v]+L.edge(R))},0)}function F(G){var q=L.outEdges(G).reduce(function(Q,z){return Math.min(Q,M[z.w]-L.edge(z))},Number.POSITIVE_INFINITY),R=b.node(G);q!==Number.POSITIVE_INFINITY&&R.borderType!==H&&(M[G]=Math.max(M[G],q))}return O(P,L.predecessors.bind(L)),O(F,L.successors.bind(L)),e.forEach(C,function(G){M[G]=M[E[G]]}),M}function d(b,k,E,C){var A=new n,M=b.graph(),L=_(M.nodesep,M.edgesep,C);return e.forEach(k,function(H){var O;e.forEach(H,function(P){var F=E[P];if(A.setNode(F),O){var G=E[O],q=A.edge(G,F);A.setEdge(G,F,Math.max(L(b,P,O),q||0))}O=P})}),A}function m(b,k){return e.minBy(e.values(k),function(E){var C=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY;return e.forIn(E,function(M,L){var H=S(b,L)/2;C=Math.max(M+H,C),A=Math.min(M-H,A)}),C-A})}function y(b,k){var E=e.values(k),C=e.min(E),A=e.max(E);e.forEach(["u","d"],function(M){e.forEach(["l","r"],function(L){var H=M+L,O=b[H],P;if(O!==k){var F=e.values(O);P=L==="l"?C-e.min(F):A-e.max(F),P&&(b[H]=e.mapValues(O,function(G){return G+P}))}})})}function w(b,k){return e.mapValues(b.ul,function(E,C){if(k)return b[k.toLowerCase()][C];var A=e.sortBy(e.map(b,C));return(A[1]+A[2])/2})}function N(b){var k=r.buildLayerMatrix(b),E=e.merge(i(b,k),o(b,k)),C={},A;e.forEach(["u","d"],function(L){A=L==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(H){H==="r"&&(A=e.map(A,function(G){return e.values(G).reverse()}));var O=(L==="u"?b.predecessors:b.successors).bind(b),P=h(b,A,E,O),F=p(b,A,P.root,P.align,H==="r");H==="r"&&(F=e.mapValues(F,function(G){return-G})),C[L+H]=F})});var M=m(b,C);return y(C,M),w(C,b.graph().align)}function _(b,k,E){return function(C,A,M){var L=C.node(A),H=C.node(M),O=0,P;if(O+=L.width/2,e.has(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":P=-L.width/2;break;case"r":P=L.width/2;break}if(P&&(O+=E?P:-P),P=0,O+=(L.dummy?k:b)/2,O+=(H.dummy?k:b)/2,O+=H.width/2,e.has(H,"labelpos"))switch(H.labelpos.toLowerCase()){case"l":P=H.width/2;break;case"r":P=-H.width/2;break}return P&&(O+=E?P:-P),P=0,O}}function S(b,k){return b.node(k).width}return Kg}var Xg,fE;function Z4(){if(fE)return Xg;fE=1;var e=it(),n=hn(),r=Q4().positionX;Xg=i;function i(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,h=0;e.forEach(u,function(p){var d=e.max(e.map(p,function(m){return l.node(m).height}));e.forEach(p,function(m){l.node(m).y=h+d/2}),h+=d+c})}return Xg}var Qg,hE;function J4(){if(hE)return Qg;hE=1;var e=it(),n=P4(),r=O4(),i=q4(),o=hn().normalizeRanks,l=$4(),u=hn().removeEmptyRanks,c=D4(),h=F4(),p=z4(),d=X4(),m=Z4(),y=hn(),w=Jn().Graph;Qg=N;function N(U,J){var re=J&&J.debugTiming?y.time:y.notime;re("layout",function(){var le=re(" buildLayoutGraph",function(){return O(U)});re(" runLayout",function(){_(le,re)}),re(" updateInputGraph",function(){S(U,le)})})}function _(U,J){J(" makeSpaceForEdgeLabels",function(){P(U)}),J(" removeSelfEdges",function(){$(U)}),J(" acyclic",function(){n.run(U)}),J(" nestingGraph.run",function(){c.run(U)}),J(" rank",function(){i(y.asNonCompoundGraph(U))}),J(" injectEdgeLabelProxies",function(){F(U)}),J(" removeEmptyRanks",function(){u(U)}),J(" nestingGraph.cleanup",function(){c.cleanup(U)}),J(" normalizeRanks",function(){o(U)}),J(" assignRankMinMax",function(){G(U)}),J(" removeEdgeLabelProxies",function(){q(U)}),J(" normalize.run",function(){r.run(U)}),J(" parentDummyChains",function(){l(U)}),J(" addBorderSegments",function(){h(U)}),J(" order",function(){d(U)}),J(" insertSelfEdges",function(){X(U)}),J(" adjustCoordinateSystem",function(){p.adjust(U)}),J(" position",function(){m(U)}),J(" positionSelfEdges",function(){I(U)}),J(" removeBorderNodes",function(){Z(U)}),J(" normalize.undo",function(){r.undo(U)}),J(" fixupEdgeLabelCoords",function(){z(U)}),J(" undoCoordinateSystem",function(){p.undo(U)}),J(" translateGraph",function(){R(U)}),J(" assignNodeIntersects",function(){Q(U)}),J(" reversePoints",function(){ne(U)}),J(" acyclic.undo",function(){n.undo(U)})}function S(U,J){e.forEach(U.nodes(),function(re){var le=U.node(re),fe=J.node(re);le&&(le.x=fe.x,le.y=fe.y,J.children(re).length&&(le.width=fe.width,le.height=fe.height))}),e.forEach(U.edges(),function(re){var le=U.edge(re),fe=J.edge(re);le.points=fe.points,e.has(fe,"x")&&(le.x=fe.x,le.y=fe.y)}),U.graph().width=J.graph().width,U.graph().height=J.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],C=["width","height"],A={width:0,height:0},M=["minlen","weight","width","height","labeloffset"],L={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},H=["labelpos"];function O(U){var J=new w({multigraph:!0,compound:!0}),re=Y(U.graph());return J.setGraph(e.merge({},k,W(re,b),e.pick(re,E))),e.forEach(U.nodes(),function(le){var fe=Y(U.node(le));J.setNode(le,e.defaults(W(fe,C),A)),J.setParent(le,U.parent(le))}),e.forEach(U.edges(),function(le){var fe=Y(U.edge(le));J.setEdge(le,e.merge({},L,W(fe,M),e.pick(fe,H)))}),J}function P(U){var J=U.graph();J.ranksep/=2,e.forEach(U.edges(),function(re){var le=U.edge(re);le.minlen*=2,le.labelpos.toLowerCase()!=="c"&&(J.rankdir==="TB"||J.rankdir==="BT"?le.width+=le.labeloffset:le.height+=le.labeloffset)})}function F(U){e.forEach(U.edges(),function(J){var re=U.edge(J);if(re.width&&re.height){var le=U.node(J.v),fe=U.node(J.w),te={rank:(fe.rank-le.rank)/2+le.rank,e:J};y.addDummyNode(U,"edge-proxy",te,"_ep")}})}function G(U){var J=0;e.forEach(U.nodes(),function(re){var le=U.node(re);le.borderTop&&(le.minRank=U.node(le.borderTop).rank,le.maxRank=U.node(le.borderBottom).rank,J=e.max(J,le.maxRank))}),U.graph().maxRank=J}function q(U){e.forEach(U.nodes(),function(J){var re=U.node(J);re.dummy==="edge-proxy"&&(U.edge(re.e).labelRank=re.rank,U.removeNode(J))})}function R(U){var J=Number.POSITIVE_INFINITY,re=0,le=Number.POSITIVE_INFINITY,fe=0,te=U.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(Te){var ye=Te.x,ke=Te.y,Ge=Te.width,we=Te.height;J=Math.min(J,ye-Ge/2),re=Math.max(re,ye+Ge/2),le=Math.min(le,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach(U.nodes(),function(Te){ve(U.node(Te))}),e.forEach(U.edges(),function(Te){var ye=U.edge(Te);e.has(ye,"x")&&ve(ye)}),J-=ce,le-=Ce,e.forEach(U.nodes(),function(Te){var ye=U.node(Te);ye.x-=J,ye.y-=le}),e.forEach(U.edges(),function(Te){var ye=U.edge(Te);e.forEach(ye.points,function(ke){ke.x-=J,ke.y-=le}),e.has(ye,"x")&&(ye.x-=J),e.has(ye,"y")&&(ye.y-=le)}),te.width=re-J+ce,te.height=fe-le+Ce}function Q(U){e.forEach(U.edges(),function(J){var re=U.edge(J),le=U.node(J.v),fe=U.node(J.w),te,ce;re.points?(te=re.points[0],ce=re.points[re.points.length-1]):(re.points=[],te=fe,ce=le),re.points.unshift(y.intersectRect(le,te)),re.points.push(y.intersectRect(fe,ce))})}function z(U){e.forEach(U.edges(),function(J){var re=U.edge(J);if(e.has(re,"x"))switch((re.labelpos==="l"||re.labelpos==="r")&&(re.width-=re.labeloffset),re.labelpos){case"l":re.x-=re.width/2+re.labeloffset;break;case"r":re.x+=re.width/2+re.labeloffset;break}})}function ne(U){e.forEach(U.edges(),function(J){var re=U.edge(J);re.reversed&&re.points.reverse()})}function Z(U){e.forEach(U.nodes(),function(J){if(U.children(J).length){var re=U.node(J),le=U.node(re.borderTop),fe=U.node(re.borderBottom),te=U.node(e.last(re.borderLeft)),ce=U.node(e.last(re.borderRight));re.width=Math.abs(ce.x-te.x),re.height=Math.abs(fe.y-le.y),re.x=te.x+re.width/2,re.y=le.y+re.height/2}}),e.forEach(U.nodes(),function(J){U.node(J).dummy==="border"&&U.removeNode(J)})}function $(U){e.forEach(U.edges(),function(J){if(J.v===J.w){var re=U.node(J.v);re.selfEdges||(re.selfEdges=[]),re.selfEdges.push({e:J,label:U.edge(J)}),U.removeEdge(J)}})}function X(U){var J=y.buildLayerMatrix(U);e.forEach(J,function(re){var le=0;e.forEach(re,function(fe,te){var ce=U.node(fe);ce.order=te+le,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode(U,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++le,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function I(U){e.forEach(U.nodes(),function(J){var re=U.node(J);if(re.dummy==="selfedge"){var le=U.node(re.e.v),fe=le.x+le.width/2,te=le.y,ce=re.x-fe,Ce=le.height/2;U.setEdge(re.e,re.label),U.removeNode(J),re.label.points=[{x:fe+2*ce/3,y:te-Ce},{x:fe+5*ce/6,y:te-Ce},{x:fe+ce,y:te},{x:fe+5*ce/6,y:te+Ce},{x:fe+2*ce/3,y:te+Ce}],re.label.x=re.x,re.label.y=re.y}})}function W(U,J){return e.mapValues(e.pick(U,J),Number)}function Y(U){var J={};return e.forEach(U,function(re,le){J[le.toLowerCase()]=re}),J}return Qg}var Zg,pE;function eD(){if(pE)return Zg;pE=1;var e=it(),n=hn(),r=Jn().Graph;Zg={debugOrdering:i};function i(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,h){var p="layer"+h;u.setNode(p,{rank:"same"}),e.reduce(c,function(d,m){return u.setEdge(d,m,{style:"invis"}),m})}),u}return Zg}var Jg,mE;function tD(){return mE||(mE=1,Jg="0.8.5"),Jg}var ev,gE;function nD(){return gE||(gE=1,ev={graphlib:Jn(),layout:J4(),debug:eD(),util:{time:hn().time,notime:hn().notime},version:tD()}),ev}var rD=nD();const vE=jv(rD),go=240,xu=130,uo=74,Vu=72,yE=uo+Vu;function sD(e,n){var i;let r=go;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??go);return r}const gj=420,iD=2;function Ra(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function oD(e,n){return((n==null?void 0:n.get(e))??0)>0?gj:0}function aD(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function Ta(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??go)+oD(e,r),h:Math.max((i==null?void 0:i.height)??xu,aD(e,r))}}function lD(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function uD(e,n,r,i,o,l){const u=new vE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),h=new Set(c);for(const b of c){const{w:k,h:E}=Ta(b,i,l);u.setNode(b,{width:k,height:E})}for(const b of n)h.has(b.source)&&h.has(b.target)&&u.setEdge(b.source,b.target);vE.layout(u);const p=new Map;let d=1/0,m=1/0,y=-1/0,w=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const E=i.get(b),C=(E==null?void 0:E.width)??go,A=(E==null?void 0:E.height)??xu,M=Ta(b,i,l),L=k.x-M.w/2,H=k.y-M.h/2;p.set(b,{x:L,y:H}),L<d&&(d=L),H<m&&(m=H),L+C>y&&(y=L+C),H+A>w&&(w=H+A)}if(Number.isFinite(d)&&Number.isFinite(m))for(const[b,k]of p)p.set(b,{x:k.x-d,y:k.y-m});const N=Number.isFinite(y)?y-d:0,_=Number.isFinite(w)?w-m:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const E=i.get(b),C=(E==null?void 0:E.width)??go,A=(E==null?void 0:E.height)??xu;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+C,maxY:k.y+A}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+C),maxY:Math.max(S.maxY,k.y+A)}}return{positions:p,width:N,height:_,pinnedBox:S}}function cD(e,n,r={}){const i=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const k=Ra(b),E=c.get(k);E?E.push(b.id):c.set(k,[b.id])}const p=Array.from(c.keys()).sort().map(b=>({sid:b,...uD(c.get(b),n,i,l,o,u)})),d=sD(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let E=0;for(const C of p)k.length<b&&E>0&&E+C.height>m&&(k.push([]),E=0),k[k.length-1].push(C),E+=C.height+yE;return k},w=b=>b.reduce((k,E)=>Math.max(k,E.width),0)+gj;let N=y(r.availableWidth?iD:1);N.length>1&&N.reduce((k,E)=>k+w(E),0)+d*(N.length-1)>(r.availableWidth??0)&&(N=y(1));const _=new Map;let S=0;for(const b of N){const k=w(b);let E=0;for(const{positions:C,height:A,pinnedBox:M}of b){for(const[H,O]of C)_.set(H,{x:O.x+S,y:O.y+E});let L=E+A;M&&M.maxY>L&&M.minX<S+k&&S<M.maxX&&(L=M.maxY),E=L+yE}S+=k+d}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const E=_.get(b.id);return E?{...b,position:E}:b})}function dD(e,n,r,i,o){const u=uo+Vu,c=60,h=w=>Ta(w,i,o),p=new Map(e.map(w=>[w.id,Ra(w)])),d=[],m=e.map(w=>({id:w.id,pos:r.get(w.id)??n.get(w.id)})).filter(w=>w.pos!=null).sort((w,N)=>w.pos.y-N.pos.y||w.pos.x-N.pos.x||w.id.localeCompare(N.id)),y=[];for(const{id:w,pos:N}of m){const{w:_,h:S}=h(w),b=p.get(w)??"_default";if(r.has(w)){d.push({x:N.x,y:N.y,w:_,h:S,sid:b});continue}let k=N.y;for(let E=0;E<d.length+1;E++){const C=d.find(A=>{const M=A.sid===b?24:c,L=A.sid===b?24:u;return N.x<A.x+A.w+M&&A.x<N.x+_+M&&k<A.y+A.h+L&&A.y<k+S+L});if(!C)break;k=C.y+C.h+(C.sid===b?24:u)}k!==N.y&&(n.set(w,{x:N.x,y:k}),y.push(w)),d.push({x:N.x,y:k,w:_,h:S,sid:b})}return y}function fD(e,n,r,i,o,l){const u=_=>Ta(_,i,l),c=_=>r.get(_)??n.get(_),h=new Map;for(const _ of e){if(!c(_.id))continue;const S=Ra(_),b=h.get(S);b?b.push(_):h.set(S,[_])}const p=new Set;for(const[_,S]of h)S.every(b=>o.has(b.id)&&!r.has(b.id))&&p.add(_);const d=new Map,m=[];for(const _ of e){const S=c(_.id);if(!S)continue;const{w:b,h:k}=u(_.id),E=Ra(_);p.has(E)?(d.get(E)??d.set(E,[]).get(E)).push(_):m.push({x:S.x,y:S.y,w:b,h:k})}if(d.size===0)return[];const y=uo+Vu,w=(_,S,b,k)=>m.some(E=>_<E.x+E.w+uo&&E.x<_+b+uo&&S<E.y+E.h+y&&E.y<S+k+y),N=[];for(const _ of[...d.keys()].sort()){const S=d.get(_);let b=1/0,k=1/0,E=-1/0,C=-1/0;for(const F of S){const G=c(F.id),{w:q,h:R}=u(F.id);b=Math.min(b,G.x),k=Math.min(k,G.y),E=Math.max(E,G.x+q),C=Math.max(C,G.y+R)}const A=E-b,M=C-k,L=[...new Set(m.map(F=>Math.round(F.x)))].sort((F,G)=>F-G),H=L.length?L:[b],O=[0,...m.map(F=>F.y+F.h+y)].sort((F,G)=>F-G);let P=null;e:for(const F of H)for(const G of O){if(G>=k)break;if(!w(F,G,A,M)){P={x:F,y:G};break e}}if(P){const F=P.x-b,G=P.y-k;for(const q of S){const R=c(q.id);n.set(q.id,{x:R.x+F,y:R.y+G})}N.push(_)}for(const F of S){const G=c(F.id),{w:q,h:R}=u(F.id);m.push({x:G.x,y:G.y,w:q,h:R})}}return N}function hD(e,n,r,i,o,l=!1,u){const p=uo+Vu+1,d=8,m=1.75,y=200,w=.7,N=.01,_=P=>Ta(P,i,u),S=P=>r.get(P)??n.get(P),b=new Map;for(const P of e){if(!S(P.id))continue;const F=Ra(P),G=b.get(F);G?G.push(P):b.set(F,[P])}const k=[],E=new Set,C=new Set,A=o.size===0;for(const P of[...b.keys()].sort()){const F=b.get(P);let G=1/0,q=1/0,R=-1/0,Q=-1/0,z=!1;for(const X of F){const I=S(X.id),{w:W,h:Y}=_(X.id);G=Math.min(G,I.x),q=Math.min(q,I.y),R=Math.max(R,I.x+W),Q=Math.max(Q,I.y+Y),r.has(X.id)&&(z=!0)}const ne=R-G,Z=Q-q;C.add(P);const $=o.get(P);$&&(ne>$.w+d||Z>$.h+d)&&E.add(P),o.set(P,{w:ne,h:Z}),k.push({sid:P,members:F.map(X=>X.id),x:G,y:q,w:ne,h:Z,anchored:z,mass:1})}for(const P of[...o.keys()])C.has(P)||o.delete(P);if(l||A)return[];let M=!1;for(let P=0;P<k.length&&!M;P++)for(let F=P+1;F<k.length;F++){const G=k[P],q=k[F];if(!(G.anchored&&q.anchored)&&Math.abs(G.x+G.w/2-(q.x+q.w/2))<(G.w+q.w)/2+61&&Math.abs(G.y+G.h/2-(q.y+q.h/2))<(G.h+q.h)/2+p){M=!0;break}}if(E.size===0&&!M)return[];if(E.size>0)for(const P of k)E.has(P.sid)&&(P.mass=8);else for(const P of k)P.mass=Math.max(1,P.w*P.h/(go*xu));const L=new Map(k.map(P=>[P.sid,P.x])),H=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const F=new Map,G=new Map;let q=0;for(let R=0;R<k.length;R++)for(let Q=R+1;Q<k.length;Q++){const z=k[R],ne=k[Q];if(z.anchored&&ne.anchored)continue;const Z=z.x+z.w/2,$=z.y+z.h/2,X=ne.x+ne.w/2,I=ne.y+ne.h/2,W=(z.w+ne.w)/2+61-Math.abs(Z-X),Y=(z.h+ne.h)/2+p-Math.abs($-I);if(W<=0||Y<=0)continue;const U=(De,Ze)=>!De.anchored&&!(Ze<0&&De.x<=0),J=(De,Ze)=>!De.anchored&&!(Ze<0&&De.y<=0),re=(De,Ze,Ye)=>{const vt=De===Ze,ot=vt?z.sid<ne.sid?-1:1:Math.sign(De-Ze);return Ye(z,ot)||Ye(ne,-ot)?ot:vt&&(Ye(z,-ot)||Ye(ne,ot))?-ot:0},le=re(Z,X,U),fe=re($,I,J),te=le!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||W*m<Y),[ve,Te,ye,ke]=Ce?[le,W,F,U]:[fe,Y,G,J],Ge=ke(z,ve),we=ke(ne,-ve),_e=z.mass,ze=ne.mass,ft=Ge?we?ze/(_e+ze):1:0,ht=we?Ge?_e/(_e+ze):1:0,Ue=Te*w;ye.set(z.sid,(ye.get(z.sid)??0)+ve*Ue*ft),ye.set(ne.sid,(ye.get(ne.sid)??0)-ve*Ue*ht),q+=Ue}for(const R of k)R.anchored||(R.x=Math.max(0,R.x+(F.get(R.sid)??0)),R.y=Math.max(0,R.y+(G.get(R.sid)??0)));if(q<N)break}const O=[];for(const P of k){const F=P.x-L.get(P.sid),G=P.y-H.get(P.sid);if(!(Math.abs(F)<1&&Math.abs(G)<1)){for(const q of P.members){if(r.has(q))continue;const R=n.get(q);R&&n.set(q,{x:R.x+F,y:R.y+G})}O.push(P.sid)}}return O}const pD=600;function kv(e,n){return!(e.exitAt!=null&&n-e.exitAt>pD||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function mD(e,n){const r=new Set;for(const i of e.agents.values())kv(i,n)&&r.add(i.id);return r}function gD(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function vD(e,n,r=0){if(!e)return!1;for(const i of n)if(gD(e,i,r))return!0;return!1}const vj="sessionGroup";function yD(e,n){var i;if(e.type===vj)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const wD="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function xD(e){if(e.checkDisabled)return wD;if(e.checking)return"Asking npm for the newest release…";const n=e.latest?`npm has v${e.latest}`:e.latestPending?`npm's latest tag names v${e.latestPending}, which it cannot serve yet`:"npm not reached yet",r=e.checkedAgo?` · checked ${e.checkedAgo}`:"";return`${n}${r} · re-checked periodically · click to check npm now`}function _D(e){const n=`Version v${e.running}`;return e.checkDisabled?`${n}, update checks are off`:e.checking?`${n}, checking npm for a newer release`:`${n}, check npm for a newer release`}function bD(e){if(e==null)return{kind:"unknown",lead:"No data yet. Start a Claude Code or Codex session — it appears here as soon as its first hook fires.",workspace:null,tail:""};const n=e.trim();return n===""?{kind:"machine",lead:"No data yet. Start a Claude Code or Codex session anywhere on this machine — this deck is unscoped and captures every workspace.",workspace:null,tail:""}:{kind:"scoped",lead:"No data yet. This deck only captures sessions running under",workspace:n,tail:" — start one there, or restart it without --workspace/--scope to watch the whole machine."}}function yj(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function SD(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${yj(e.held)} held until you resume (Space)`:"Connected — updates held until you resume (Space)"}:{tone:"live",label:"live",title:"Receiving events"}:{tone:"dead",label:"offline",title:e.paused?"SSE disconnected — and the canvas is paused, so resuming will not bring events back until it reconnects":"SSE disconnected"}}function kD(e){return e.paused?e.held<=0?{label:"Resume",title:"Nothing has arrived since you paused. Resume to follow the canvas again (Space)"}:{label:`Resume · ${e.held} held`,title:`${yj(e.held)} arrived while paused and will be applied in order when you resume (Space)`}:{label:"Pause",title:"Pause live updates — events keep arriving and are applied when you resume (Space)"}}function wj(e,n){return e!==""&&n>0}function ED(e,n,r){return e===""?{active:!1,matched:n,total:r,count:null,empty:!1,message:null,dim:!1}:{active:!0,matched:n,total:r,count:`${n} of ${r}`,empty:n===0,message:n===0?`No agents match “${e}”`:null,dim:wj(e,n)}}function Ev(e){const n=Math.max(0,Math.floor(e/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}function ND(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function CD(e,n,r){const i=new Date(e),o=Ev(n-e);return{label:ND(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function pa(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const jD={agent:NO,sessionGroup:FO},RD=420,nu=18,TD=9e4,AD=200,ID=5*6e4,MD=6,PD=2*6e4,fy="agent-dag.layout",hy="agent-dag.viewport",xj="agent-dag.summariesDismissed",_j="agent-dag.sessionListOpen",bj="agent-dag.detailOpen",Sj="agent-dag.usagePanelOpen",wE="agent-dag.accountsPanelOpen",xE="agent-dag.versionNoticeDismissed",_E="agent-dag.oldNameNoticeDismissed",OD=15*6e4,bE={git_checkout:"this deck runs from a git checkout — pull instead:",npx:"npx runs from a cache that cannot be upgraded in place — run:",not_writable:"the install directory is not writable by this user — run:",opted_out:"installs are off (AGENTS_DECK_NO_INSTALL=1) — run:"},SE="agent-dag.autoRestart",kE="agent-dag.bundleReloadedFor";function LD(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(_j)==="1"}catch{return!1}}function qD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(_j,e?"1":"0")}catch{}}function $D(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(bj)==="1"}catch{return!1}}function DD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(bj,e?"1":"0")}catch{}}function FD(){const e=mC(Sj);return e===null?!0:e==="1"}function zD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Sj,e?"1":"0")}catch{}}function BD(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(xj);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function EE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(xj,JSON.stringify(r))}catch{}}function UD(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(fy);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function tv(e,n){if(!(typeof window>"u"))try{const r={};for(const[i,o]of e)r[i]=o;for(const[i,o]of n)r[i]=o;window.localStorage.setItem(fy,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function HD(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(hy);if(!e)return null;const n=JSON.parse(e);return typeof(n==null?void 0:n.x)!="number"||typeof(n==null?void 0:n.y)!="number"||typeof(n==null?void 0:n.zoom)!="number"?null:n}catch{return null}}function WD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(hy,JSON.stringify(e))}catch{}}function NE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(fy)}catch{}try{window.localStorage.removeItem(hy)}catch{}}}function VD(e,n){const r=e.agents.get(n);if(!r)return;const i=[];for(const d of e.agents.values())d.sessionId===n&&i.push(d);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:i.map(d=>({id:d.id,kind:d.kind,label:d.label,parentId:d.parentId,state:d.state,startedAt:d.startedAt,endedAt:d.endedAt,model:d.model,cwd:d.cwd,usage:d.usage,prompts:d.prompts,tools:d.tools.map(m=>({id:m.id,name:m.name,inputPreview:m.inputPreview,startedAt:m.startedAt,endedAt:m.endedAt,ok:m.ok,errorPreview:m.errorPreview,usage:m.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),h=document.createElement("a"),p=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");h.href=c,h.download=`${zt}-${p}-${n.slice(0,8)}.json`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Nv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Cv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},GD={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function kj(e){return e.startsWith("mcp__")?"mcp":GD[e]??"other"}function Ej(e,n){var i,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(i=e.cwd)!=null&&i.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function YD(e,n){if(!n)return null;const r=new Set([n]);let i=n;for(;i;){const l=e.agents.get(i);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),i=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function KD(e,n,r,i,o,l,u,c,h,p,d,m,y,w,N,_,S,b,k){const E=[],C=[],A=new Set;if(l)for(const q of e.agents.values())b.has(q.id)&&Ej(q,l)&&A.add(q.id);const M=wj(l,A.size);for(const q of e.agents.values()){if(!b.has(q.id))continue;const R=M&&!A.has(q.id),Q=q.exitAt!=null,z=S!=null&&!S.has(q.id),ne=[R?"rf-dim":"",Q?"rf-exiting":"",z?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(q.id);if(E.push({id:q.id,type:"agent",position:{x:0,y:0},data:{...q,now:n,onOpenContext:k},className:ne,...Z?{width:Z.width,height:Z.height}:null}),q.parentId&&b.has(q.parentId)){const $=Vv(q.sessionId),X=l&&!A.has(q.id)&&!A.has(q.parentId),I=Q,W=_.size>0&&(_.has(q.id)||_.has(q.parentId)),Y=S!=null&&!S.has(q.id)&&!S.has(q.parentId),U=q.state==="active"?2:1.5,J=W?U+1.5:U,re=X||I?.2:Y?.12:1,le=["sess-edge",q.state==="active"?"sess-live":"sess-idle",I?"rf-edge-exiting":"",W?"rf-edge-selected":""].filter(Boolean).join(" ");C.push({id:`e:${q.parentId}->${q.id}`,source:q.parentId,target:q.id,animated:(q.state==="active"||W)&&!X&&!I,type:"smoothstep",style:{"--session-hue":$,strokeWidth:J,opacity:re,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:le})}}const L=new Map;for(const q of e.agents.values())q.tools.length>0&&L.set(q.id,Math.min(4,q.tools.length));const H=`${w}#lanes:${lD(L)}`,O=E.filter(q=>bL(q.id,o,m,y));if(O.length>0||H!==N.current){if(O.length>0){const q=cD(E,C,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:L});for(const R of q)pC(R.id,m,y)&&kL(R.id,R.position,m,y);fD(E,m,o,u,new Set(O.map(R=>R.id)),L)}dD(E,m,o,u,L),N.current=H}const P=hD(E,m,o,u,c,!p||d,L);P.length>0&&h(P),Zl(m,e.agents),Zl(y,e.agents),Zl(o,e.agents),Zl(u,_L(e.agents.values()));const F=[];let G=!1;for(const q of E){let R=o.get(q.id)??m.get(q.id);R||(R=SL(q.id,m,y),G=!0),F.push({...q,position:R})}return G&&(N.current=""),{nodes:F,edges:C}}function XD(){return g.jsx(Wv,{children:g.jsx(QD,{})})}function QD(){var Fs,Po,Ua,Ha;const e=Oa(),n=T.useRef(yv()),[,r]=T.useState(0),i=T.useCallback(()=>r(B=>B+1),[]),[o,l]=T.useState(()=>new Set),[u,c]=T.useState(null),[h,p]=T.useState(null),d=T.useCallback((B,V)=>{l(oe=>{if(!V)return new Set([B]);const de=new Set(oe);return de.has(B)?de.delete(B):de.add(B),de}),c(oe=>V&&oe===B?oe:B)},[]),m=T.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=T.useState(null),[N,_]=T.useState(null),S=T.useCallback(B=>_(B),[]),[b,k]=T.useState(!1),E=T.useRef(BD()),[C,A]=T.useState(LD);T.useEffect(()=>{qD(C)},[C]);const[M,L]=T.useState($D);T.useEffect(()=>{DD(M)},[M]);const[H,O]=T.useState(FD);T.useEffect(()=>{zD(H)},[H]);const[P,F]=T.useState(()=>{try{const B=window.localStorage.getItem(wE);return B===null?!0:B==="1"}catch{return!0}});T.useEffect(()=>{try{window.localStorage.setItem(wE,P?"1":"0")}catch{}},[P]);const[G,q]=T.useState(null),[R,Q]=T.useState(!1),[z,ne]=T.useState(0),[Z,$]=T.useState(0);T.useEffect(()=>{fetch("/api/sound-hook").then(B=>B.ok?B.json():null).then(B=>{B!=null&&B.ok&&(q(B.enabled===!0),ne((B.foreign??[]).filter(V=>V.worksHere).length),$(typeof B.parked=="number"?B.parked:0))}).catch(()=>{})},[]);const X=T.useCallback(async()=>{Q(!0);try{const V=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!G})})).json().catch(()=>null);V!=null&&V.ok&&q(V.enabled===!0),fetch("/api/sound-hook").then(oe=>oe.ok?oe.json():null).then(oe=>{oe!=null&&oe.ok&&(ne((oe.foreign??[]).filter(de=>de.worksHere).length),$(typeof oe.parked=="number"?oe.parked:0))}).catch(()=>{})}catch{}finally{Q(!1)}},[G]),[I,W]=T.useState(!1),[Y,U]=T.useState(null),[J,re]=T.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(xE)??""}catch{return""}}),[le,fe]=T.useState(!1),te=T.useRef(0),[ce,Ce]=T.useState(!1),ve=T.useCallback((B=!1)=>{B&&(te.current=Date.now(),Ce(!0)),fetch(B?"/api/version?refresh=1":"/api/version").then(V=>V.ok?V.json():null).then(V=>{V&&U(V)}).catch(()=>{}).finally(()=>{B&&Ce(!1)})},[]),Te=T.useCallback(()=>{ve(Date.now()-te.current>=OD)},[ve]);T.useEffect(()=>{ve();const B=window.setInterval(Te,5*6e4),V=()=>{document.visibilityState==="visible"&&Te()};return document.addEventListener("visibilitychange",V),()=>{window.clearInterval(B),document.removeEventListener("visibilitychange",V)}},[ve,Te]),T.useEffect(()=>{I&&ve()},[I,ve]);const ye=(Y==null?void 0:Y.notice)??null,[ke,Ge]=T.useState(null);T.useEffect(()=>{let B=!1;return fetch("/api/health").then(V=>V.ok?V.json():null).then(V=>{B||!V||typeof V.workspace!="string"||Ge(V.workspace)}).catch(()=>{}),()=>{B=!0}},[I]);const we=ye?`${ye.kind}:${ye.to}`:"",_e=ye!=null&&J!==we,ze=T.useCallback(()=>{if(!ye)return;const B=J===we?"":we;re(B);try{window.localStorage.setItem(xE,B)}catch{}},[ye,we,J]),[ft,ht]=T.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(_E)??""}catch{return""}}),Ue=Y!=null&&Y.invokedAs&&Y.invokedAs!==zt?Y.invokedAs:null,De=Ue!=null&&ft!==Ue,Ze=T.useCallback(()=>{if(Ue){ht(Ue);try{window.localStorage.setItem(_E,Ue)}catch{}}},[Ue]),Ye=((Fs=Y==null?void 0:Y.upgrade)==null?void 0:Fs.state)??"idle",vt=dL(Y==null?void 0:Y.upgrade),ot=T.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);T.useEffect(()=>{if(Ye!=="running")return;const B=window.setInterval(ve,3e3);return()=>window.clearInterval(B)},[Ye,ve]);const yt=T.useCallback(async()=>{var oe;const B=Y==null?void 0:Y.command;if(!B)return;let V=!1;try{V=await Promise.race([((oe=navigator.clipboard)==null?void 0:oe.writeText(B).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{V=!1}if(!V)try{const de=document.createElement("textarea");de.value=B,de.setAttribute("readonly",""),de.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(de),de.select(),V=document.execCommand("copy"),de.remove()}catch{V=!1}V&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[Y==null?void 0:Y.command]),Kt=T.useCallback(()=>{A(B=>(B||F(!1),!B))},[]),Mt=T.useCallback(()=>{F(B=>(B||A(!1),!B))},[]),[Xe,wt]=T.useState(!1),[pt,mt]=T.useState(0),_n=T.useRef(null),[Xt,Pt]=T.useState(!1),Qt=T.useRef(null),[yr,bn]=T.useState(0),Zt=T.useRef(jL()),[pn,Sn]=T.useState(!1),Gr=T.useCallback(()=>{const B=Zt.current,V=B.setPaused(!B.paused);for(const oe of V)n.current=Cx(n.current,oe);Sn(B.paused)},[]),[ut,hi]=T.useState(Date.now()),[nr,Es]=T.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(SE)!=="0"}catch{return!0}}),pi=T.useCallback(()=>{Es(B=>{const V=!B;try{window.localStorage.setItem(SE,V?"1":"0")}catch{}return V})},[]),[Jt,rr]=T.useState(!1),[wr,So]=T.useState("restart"),[sr,xr]=T.useState(null),mn=T.useRef(!1),Yr=T.useRef(null),mi=T.useRef(0),Kr=T.useCallback(async B=>{if(mn.current)return;const V=(B==null?void 0:B.upgrade)===!0;mn.current=!0,Yr.current=vt;const oe=++mi.current;So(V?"npx":"restart"),rr(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ye==null?void 0:ye.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:V})})}catch{}window.setTimeout(()=>{if(mi.current===oe&&mn.current){mn.current=!1,rr(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},V?18e4:3e4)},[ye==null?void 0:ye.to,vt]),Ns=T.useRef(null);T.useEffect(()=>{let B=!1;for(const oe of n.current.agents.values())if(oe.state==="active"){B=!0;break}const V=hL({enabled:nr,kind:ye==null?void 0:ye.kind,canRestart:(Y==null?void 0:Y.canRestart)===!0,busy:B,idleSince:Ns.current,now:ut});Ns.current=V.idleSince,V.restart&&Kr()},[nr,ye==null?void 0:ye.kind,Y==null?void 0:Y.canRestart,ut,Kr]),T.useEffect(()=>{const B=Y==null?void 0:Y.running;let V=null,oe=null;try{V=window.sessionStorage.getItem("agent-dag.restartPending"),oe=window.sessionStorage.getItem(kE)}catch{return}const de=cL({bundle:"1.33.145",running:B,pending:V,lastTried:oe});if(de==="reload"){try{window.sessionStorage.setItem(kE,B??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}mn.current=!1,rr(!1),xr(B??null);const xe=window.setTimeout(()=>xr(null),6e3);return()=>window.clearTimeout(xe)},[Y==null?void 0:Y.running]),T.useEffect(()=>{if(Jt&&fL({asked:Yr.current,reported:vt})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}mn.current=!1,rr(!1)}},[Jt,vt]);const gn=T.useRef(UD()).current;T.useRef(!1);const jt=T.useRef(new Map(gn.positions.filter(([B])=>gn.pins.includes(B)))),_r=T.useRef(null),Xr=T.useState(()=>HD())[0],[en,Qr]=T.useState(""),[Cs,gi]=T.useState(()=>new Set),[ir,vi]=T.useState(ML),[Je,ko]=T.useState(!1),br=T.useRef(null);T.useEffect(()=>{document.documentElement.dataset.theme=ir;try{window.localStorage.setItem(gC,ir)}catch{}},[ir]),T.useEffect(()=>{if(!Xr)return;const B=window.setTimeout(()=>{try{e.setViewport(Xr,{duration:0})}catch{}},60);return()=>window.clearTimeout(B)},[e,Xr]);const js=T.useRef(!0);T.useEffect(()=>{const B=new EventSource("/events"),V=CL(i,{now:()=>Date.now(),setTimeout:(oe,de)=>window.setTimeout(oe,de),clearTimeout:oe=>window.clearTimeout(oe)});return B.addEventListener("open",()=>{W(!0),ko(!0)}),B.addEventListener("error",()=>W(!1)),B.addEventListener("replay-end",()=>{js.current=!1,V.flush()}),B.addEventListener("hook",oe=>{try{const de=JSON.parse(oe.data);if(!Zt.current.accept(de))return;n.current=Cx(n.current,de),de.replay===!0||js.current||Date.now()-de.receivedAt>3e4?V.replay():V.live()}catch{}}),()=>{B.close(),V.cancel()}},[i]),T.useEffect(()=>{const B=setInterval(()=>{const V=Date.now();hi(V);let oe=eO(n.current,V,TD);nO(n.current,V,tO)&&(oe=!0),ZP(n.current,V,AD,ID)&&(oe=!0),JP(n.current,V,MD,PD)&&(oe=!0),oe&&i()},250);return()=>clearInterval(B)},[i]);const or=T.useRef(null),$n=T.useRef(0),yi=420,Ot=T.useCallback((B=500)=>{try{const Ne=document.querySelector(".canvas-wrap"),Ie=Array.from(document.querySelectorAll(".react-flow__node")).filter(xt=>xt.offsetWidth>0);if(!Ne||Ie.length===0)return;const Le=Ne.getBoundingClientRect(),Ve=e.getViewport();if(!Number.isFinite(Ve.zoom)||Ve.zoom<=0)return;const Qe=xt=>(xt-Le.left-Ve.x)/Ve.zoom,rt=xt=>(xt-Le.top-Ve.y)/Ve.zoom,Nn=Ie.map(xt=>xt.getBoundingClientRect()),Ar=Math.min(...Nn.map(xt=>Qe(xt.left))),Oo=Math.max(...Nn.map(xt=>Qe(xt.right))),zs=Math.min(...Nn.map(xt=>rt(xt.top))),Lo=Math.max(...Nn.map(xt=>rt(xt.bottom))),qo=Oo-Ar,Ti=Lo-zs;if(!(qo>0&&Ti>0))return;const Bn=Math.max(.2,Math.min(1,(Le.width-160)/(qo+yi)*.86,(Le.height-160)/Ti*.86));e.setViewport({x:80-Ar*Bn,y:Math.max(80,(Le.height-Ti*Bn)/2)-zs*Bn,zoom:Bn},{duration:B}),$n.current=Date.now(),window.setTimeout(()=>{try{const xt={x:80-Ar*Bn,y:Math.max(80,(Le.height-Ti*Bn)/2)-zs*Bn,zoom:Bn},Wa=e.getViewport();(Math.abs(Wa.zoom-Bn)>.01||Math.abs(Wa.x-xt.x)>2)&&e.setViewport(xt,{duration:0})}catch{}},B+60)}catch{}},[e]),Ut=T.useRef(""),Sr=T.useRef(null),rn=T.useRef(0),wi=T.useCallback(()=>{rn.current=Date.now()},[]),Eo="agent-dag.autoFitDisabled",kr=T.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Eo)==="1"}catch{return!1}})()),[Rs,Ts]=T.useState(kr.current),Zr=T.useCallback(()=>{if(!kr.current){kr.current=!0,Ts(!0);try{window.localStorage.setItem(Eo,"1")}catch{}}},[]),xi=T.useCallback(()=>{kr.current=!1,Ts(!1);try{window.localStorage.removeItem(Eo)}catch{}Ot(400)},[e,Ot]);T.useEffect(()=>{const B=setInterval(()=>{if(kr.current||Date.now()-rn.current<800)return;const V=n.current,oe=Date.now(),de=[];for(const Qe of V.agents.values())kv(Qe,oe)&&de.push({id:Qe.id});if(de.length===0)return;const xe=e.getViewport(),Ne=window.innerWidth-360,Ie=window.innerHeight-52;let Le=!1,Ve=!1;for(const{id:Qe}of de){const rt=Jr.current.get(Qe),Nn=jt.current.get(Qe)??Ht.current.get(Qe);if(!rt||!Nn)continue;Ve=!0;const Ar=Nn.x*xe.zoom+xe.x,Oo=Nn.y*xe.zoom+xe.y,zs=(Nn.x+rt.width)*xe.zoom+xe.x,Lo=(Nn.y+rt.height)*xe.zoom+xe.y;if(zs>0&&Ar<Ne&&Lo>0&&Oo<Ie){Le=!0;break}}Ve&&!Le&&Ot(600)},1500);return()=>clearInterval(B)},[e]);const No=T.useRef(!1),Jr=T.useRef(new Map),_i=T.useRef(0),Ba=T.useCallback(B=>{const V=Jr.current;let oe=!1;for(const de of B.nodeInternals.values()){const xe=de.width,Ne=de.height;if(xe==null||Ne==null)continue;const Ie=V.get(de.id);Ie?(Math.abs(Ie.height-Ne)>4||Math.abs(Ie.width-xe)>4)&&(V.set(de.id,{width:xe,height:Ne}),oe=!0):(V.set(de.id,{width:xe,height:Ne}),oe=!0)}return oe&&(_i.current+=1),_i.current},[]),bi=Ke(Ba),[es,Gu]=T.useState(0);T.useEffect(()=>{let B=0;const V=()=>{const de=Jr.current;let xe=!1;for(const Ne of document.querySelectorAll(".react-flow__node[data-id]")){const Ie=Ne.getAttribute("data-id");if(!Ie)continue;const Le=Ne.offsetWidth,Ve=Ne.offsetHeight;if(!Le||!Ve)continue;const Qe=de.get(Ie);(!Qe||Math.abs(Qe.width-Le)>4||Math.abs(Qe.height-Ve)>4)&&(de.set(Ie,{width:Le,height:Ve}),xe=!0)}xe&&Gu(Ne=>Ne+1)};if(No.current)return;let oe=0;return document.visibilityState==="hidden"?oe=window.setTimeout(V,32):B=requestAnimationFrame(V),()=>{cancelAnimationFrame(B),window.clearTimeout(oe)}});const Ht=T.useRef(new Map(gn.positions)),We=T.useRef(new Set),Si=T.useRef(""),Er=T.useMemo(()=>{const B=[];for(const V of n.current.agents.values())kv(V,ut)&&B.push(V.id+(V.parentId?`>${V.parentId}`:""));return B.sort(),`${B.join("|")}#sv${bi}.${es}`},[n.current,n.current.lastSeq,ut,bi,es]),Nr=T.useRef(null);T.useEffect(()=>(Nr.current!=null&&window.clearTimeout(Nr.current),Nr.current=window.setTimeout(()=>{tv(Ht.current,jt.current)},1500),()=>{Nr.current!=null&&window.clearTimeout(Nr.current)}),[Er]),T.useEffect(()=>{if(Ut.current===Er)return;const B=Ut.current;if(Ut.current=Er,!B||kr.current)return;Date.now()-$n.current>1200&&Ot(400),or.current&&window.clearTimeout(or.current),or.current=window.setTimeout(()=>{kr.current||Ot(500)},280)},[Er,e,Ot]);const ki=T.useMemo(()=>{if(o.size===0)return null;const B=new Set;for(const V of o){const oe=YD(n.current,V);if(oe)for(const de of oe)B.add(de)}return B.size>0?B:null},[n.current,n.current.lastSeq,o]),ar=T.useMemo(()=>mD(n.current,ut),[n.current,n.current.lastSeq,ut]),Co=T.useRef(null),[ts,As]=T.useState({w:0,h:0});T.useEffect(()=>{const B=Co.current;if(!B||typeof ResizeObserver>"u")return;const V=new ResizeObserver(oe=>{var xe;const de=(xe=oe[0])==null?void 0:xe.contentRect;de&&As(Ne=>Math.abs(Ne.w-de.width)>40||Math.abs(Ne.h-de.height)>40?{w:de.width,h:de.height}:Ne)});return V.observe(B),As({w:B.clientWidth,h:B.clientHeight}),()=>V.disconnect()},[]);const lr=T.useRef(new Map),[Dn,ur]=T.useState(!1);T.useEffect(()=>{const B=window.setTimeout(()=>ur(!0),2500);return()=>window.clearTimeout(B)},[]);const[Is,Cr]=T.useState(!1),Lt=T.useRef(null),[jo,Ro]=T.useState(!1),Ms=T.useCallback(()=>{Lt.current&&(window.clearTimeout(Lt.current),Lt.current=null),Cr(!1)},[]),Yu=T.useCallback(B=>{B.length!==0&&queueMicrotask(()=>{Cr(!0),Lt.current&&window.clearTimeout(Lt.current),Lt.current=window.setTimeout(()=>Cr(!1),RD+80)})},[]);T.useEffect(()=>()=>{Lt.current&&window.clearTimeout(Lt.current)},[]);const To=ts.w>0?ts.w*.92:0,Ps=ts.h>0?ts.h:0,{nodes:Fn,edges:Ku}=T.useMemo(()=>KD(n.current,ut,To,Ps,jt.current,en,Jr.current,lr.current,Yu,Dn,jo,Ht.current,We.current,Er,Si,o,ki,ar,S),[n.current,n.current.lastSeq,ut,To,Ps,Dn,jo,en,Er,o,ki,ar,S,pt]),ns=T.useMemo(()=>{const B=new Map;for(const oe of Fn){const de=oe.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=oe.width,Ne=oe.height;if(xe==null||Ne==null)continue;const Ie=oe.position.x,Le=oe.position.y,Ve=Ie+xe,Qe=Le+Ne,rt=B.get(de.sessionId);rt?(rt.minX=Math.min(rt.minX,Ie),rt.minY=Math.min(rt.minY,Le),rt.maxX=Math.max(rt.maxX,Ve),rt.maxY=Math.max(rt.maxY,Qe)):B.set(de.sessionId,{minX:Ie,minY:Le,maxX:Ve,maxY:Qe})}const V=[];for(const[oe,de]of B){const xe=de.maxX-de.minX+nu*2,Ne=de.maxY-de.minY+nu*2;V.push({id:`group:${oe}`,type:vj,position:{x:de.minX-nu,y:de.minY-nu},data:{sessionId:oe,w:xe,h:Ne},width:xe,height:Ne,style:{width:xe,height:Ne},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return V},[Fn,ut]),Os=T.useMemo(()=>{const B=[...ns,...Fn],V=Qt.current;return!V||V.size===0?B:B.map(oe=>{const de=V.get(oe.id);return de?{...oe,position:de}:oe})},[ns,Fn,yr]),kn=T.useMemo(()=>{if(!en)return null;const B=new Set;for(const V of n.current.agents.values())ar.has(V.id)&&Ej(V,en)&&B.add(V.id);return B},[n.current,n.current.lastSeq,en,ar]),En=T.useMemo(()=>ED(en,(kn==null?void 0:kn.size)??0,ar.size),[en,kn,ar]),Ei=T.useMemo(()=>{const B=new Set;for(const V of n.current.agents.values())for(const oe of V.tools)B.add(kj(oe.name));return Object.keys(Nv).filter(V=>B.has(V))},[n.current,n.current.lastSeq]);T.useEffect(()=>{if(Ei.length<=1){Pt(!1);return}let B=0;const V=()=>{const oe=_n.current;if(oe&&!document.hidden){const de=oe.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ie=>Ie.getBoundingClientRect()),Ne=vD(de,xe,8);Pt(Ie=>Ie===Ne?Ie:Ne)}B=window.setTimeout(V,300)};return V(),()=>window.clearTimeout(B)},[Ei.length]);const Ls=T.useMemo(()=>{const B=new Map;for(const oe of n.current.agents.values())for(const de of oe.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ne=xe.indexOf("__"),Ie=Ne>0?xe.slice(0,Ne):xe;B.set(Ie,(B.get(Ie)??0)+1)}const V=[];for(const[oe,de]of B){let xe=5381;for(let Ne=0;Ne<oe.length;Ne++)xe=(xe<<5)+xe^oe.charCodeAt(Ne);V.push({server:oe,count:de,hue:Math.abs(xe)%360})}return V.sort((oe,de)=>de.count-oe.count),V},[n.current,n.current.lastSeq]),Ao=T.useCallback(B=>{gi(V=>{const oe=new Set(V);return oe.has(B)?oe.delete(B):oe.add(B),oe})},[]),St=u?n.current.agents.get(u):null,qs=h?Array.from(n.current.agents.values()).flatMap(B=>B.tools).find(B=>B.id===h)??null:null,Io=T.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=yv(),jt.current.clear(),Jr.current.clear(),Ht.current.clear(),Si.current="",NE(),m(),i()},[i,m]),zn=T.useRef(b);zn.current=b;const Ni=T.useRef(!1);Ni.current=qs!=null||Xe||N!=null||y!=null;const jr=T.useCallback(B=>{const V=xL(B,{confirmOpen:zn.current,modalOpen:Ni.current});V==="confirm"?k(!0):V==="clear"&&(k(!1),Io())},[Io]),Ci=T.useCallback(()=>{jt.current.clear(),Ht.current.clear(),Si.current="",NE(),i(),window.setTimeout(()=>Ot(500),80)},[i,e,Ot]),$s=T.useCallback(()=>Ot(500),[Ot]),rs=T.useRef(Fn);rs.current=Fn;const Mo=T.useRef(u);Mo.current=u;const qt=T.useCallback(B=>{const V=rs.current;if(V.length===0)return;const oe=V.slice().sort((Le,Ve)=>Le.position.y-Ve.position.y||Le.position.x-Ve.position.x),de=Mo.current,xe=de?oe.findIndex(Le=>Le.id===de):-1;let Ne;xe===-1?Ne=B===1?0:oe.length-1:Ne=(xe+B+oe.length)%oe.length;const Ie=oe[Ne];Ie&&(d(Ie.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[Ie]})}catch{}$n.current=Date.now()},30))},[d,e]),Rr=T.useCallback(B=>{d(B,!1),window.setTimeout(()=>{try{const V=rs.current.find(oe=>oe.id===B);V&&e.fitView({padding:.3,duration:500,nodes:[V]}),$n.current=Date.now()}catch{}},60)},[d,e]);T.useEffect(()=>{const B=V=>{var xe,Ne;const oe=V.target,de={tagName:oe==null?void 0:oe.tagName,isContentEditable:oe==null?void 0:oe.isContentEditable,role:(xe=oe==null?void 0:oe.getAttribute)==null?void 0:xe.call(oe,"role"),type:oe==null?void 0:oe.type};if(V.key==="Escape"){const Ie=yO({overlayOpen:wv.depth()>0,typing:hC(de)});Ie==="dismiss"?wv.dismissTop():Ie==="blur"?oe==null||oe.blur():m();return}if(!yL(de)&&!pL(V)){if(V.key==="/"){V.preventDefault(),(Ne=br.current)==null||Ne.focus();return}V.key===" "&&(V.preventDefault(),Gr()),(V.key==="c"||V.key==="C")&&jr("shortcut"),(V.key==="r"||V.key==="R")&&Ci(),(V.key==="f"||V.key==="F")&&$s(),(V.key==="l"||V.key==="L")&&Kt(),(V.key==="h"||V.key==="H")&&wt(Ie=>!Ie),(V.key==="u"||V.key==="U")&&O(Ie=>!Ie),(V.key==="a"||V.key==="A")&&Mt(),(V.key==="j"||V.key==="J")&&qt(1),(V.key==="k"||V.key==="K")&&qt(-1),(V.key==="t"||V.key==="T")&&vi(Ie=>Ie==="dark"?"light":"dark")}};return window.addEventListener("keydown",B),()=>window.removeEventListener("keydown",B)},[jr,Ci,$s,m,qt,Gr]);const Tr=n.current.agents.size,Ds=new Set(Array.from(n.current.agents.values()).map(B=>B.sessionId)).size,cr=T.useMemo(()=>{var V;const B=[];for(const oe of n.current.agents.values())oe.kind==="root"&&((V=oe.waiting)==null?void 0:V.kind)==="permission"&&B.push({id:oe.id,label:oe.label,waiting:oe.waiting});return B.sort((oe,de)=>oe.waiting.since-de.waiting.since)},[n.current,n.current.lastSeq]),ji=T.useMemo(()=>{const B=new Set;for(const V of n.current.agents.values())V.state==="active"&&B.add(V.sessionId);return B.size},[n.current,n.current.lastSeq]),Ri=T.useRef(null);T.useEffect(()=>{const B=PL({waiting:cr.length,running:ji}),V=Ri.current;if(Ri.current=B,(V==null?void 0:V.title)!==B.title&&(document.title=B.title),(V==null?void 0:V.icon)!==B.icon){const oe=document.querySelector('link[rel="icon"]');oe&&(oe.href=OL[B.icon])}},[cr.length,ji]);const Rt=T.useMemo(()=>{let B=0,V=0,oe=0,de=0,xe=0,Ne=0,Ie=0,Le=0,Ve=0;for(const Qe of n.current.agents.values()){B+=Qe.usage.inputTokens,V+=Qe.usage.outputTokens,oe+=Qe.usage.cacheReadTokens,de+=Qe.usage.cacheCreateTokens;const rt=fn(Qe.usage,Qe.model);xe+=rt.total,Ne+=rt.input,Ie+=rt.output,Le+=rt.cacheRead,Ve+=rt.cacheWrite}return{inT:B,outT:V,cacheR:oe,cacheC:de,sum:B+V,cost:{total:xe,input:Ne,output:Ie,cacheRead:Le,cacheWrite:Ve}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),zt,ye?g.jsxs("button",{type:"button",className:"v stale",onClick:ze,title:ye.kind==="restart"?`Running v${ye.from}; v${ye.to} is installed on disk. Restart to pick it up.`:`Running v${ye.from}; v${ye.to} is on npm.`,children:["v",ye.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const B={running:(Y==null?void 0:Y.running)??"1.33.145",latest:Y==null?void 0:Y.latest,latestPending:Y==null?void 0:Y.latestPending,checkedAgo:Y!=null&&Y.checkedAt?Ev(ut-Y.checkedAt):null,checkDisabled:Y==null?void 0:Y.checkDisabled,checking:ce};return g.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ve(!0),"aria-busy":ce||void 0,"aria-label":_D(B),title:xD(B),children:["v",B.running]})})()]}),St&&(()=>{const B=fn(St.usage,St.model),V=Math.max(0,((St.endedAt??ut)-St.startedAt)/1e3),oe=St.state==="active"?yu(B.total,V):null,de=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${St.label}`,onClick:()=>{try{const xe=Fn.find(Ne=>Ne.id===St.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),$n.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${St.state}`,children:St.state==="active"?"live":St.state}),g.jsx("span",{className:"selected-label",children:St.label}),B.total>0&&g.jsxs("span",{className:"selected-cost",children:[Fe(B.total),oe?g.jsxs("span",{className:"selected-rate",children:[" · ",oe]}):null]}),de>0&&g.jsxs("span",{className:"selected-extra",children:["+",de]}),g.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:xe=>{xe.stopPropagation(),m()},children:"×"})]})})(),g.jsxs("div",{className:"actions",children:[g.jsxs("div",{className:"search",children:[g.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),g.jsx("input",{ref:br,type:"text",placeholder:"Search agents, cwd, tools…",value:en,onChange:B=>Qr(B.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),en?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Qr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),En.count&&g.jsx("span",{className:`search-count${En.empty?" none":""}`,"aria-live":"polite",title:`${En.count} agents on the canvas match “${en}”`,children:En.count})]}),g.jsxs("span",{className:"status",role:"status",children:[(()=>{const B=SD({connected:I,paused:pn,held:Zt.current.size});return g.jsx("span",{className:`pill ${B.tone}`,title:B.title,children:B.label})})(),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Ds}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:Tr}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Rt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Rt.inT.toLocaleString()} out:${Rt.outT.toLocaleString()} cache-r:${Rt.cacheR.toLocaleString()} cache-c:${Rt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:Ft(Rt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Ls.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
61
|
+
Blocked since ${new Date(h.waiting.since).toLocaleTimeString()} · started ${new Date(h.startedAt).toLocaleString()}`,children:["waiting ",Dx(h.waiting.since,void 0,n)]}):g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(h.startedAt).toLocaleString()}`,children:Dx(h.startedAt,h.state==="active"?void 0:h.lastActivity,n)})]})]})]},h.sessionId)})]})]})}const zt="ccdeck";function Ft(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:e<1e9?`${(e/1e6).toFixed(2)}M`:`${(e/1e9).toFixed(2)}B`}function Fx(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function b3(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function S3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Fe(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function k3(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/3600),o=Math.floor(r%3600/60);if(i>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return i>0?`${i}h ${o}m`:`${o}m`}function E3(e,n,r,i){const o=Math.max(0,n-i),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const h=100-e,p=l>0?e/l:0,d=p>0?h/p:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(d<o&&d<86400){const y=Math.floor(d/3600),w=Math.floor(d%3600/60);m.runsOutIn=y>0?`${y}h ${w}m`:`${w}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function ei({pct:e,label:n,reset:r,resetAt:i,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),p=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",d=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=i?k3(i,u):null,w=i&&o?E3(c,i,o,u):null;return g.jsxs("div",{className:"qb-row",children:[g.jsxs("div",{className:"qb-meta",children:[g.jsxs("span",{className:"qb-label",children:[n,l&&g.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),g.jsx("span",{className:"qb-pct",style:{color:p},children:d})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:p,opacity:c===0?.4:1}}),w&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${w.expectedPct}%`,background:w.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(w.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?g.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,w&&g.jsx("span",{className:"qb-pace",style:{color:w.color},children:w.runsOutIn?`runs out in ${w.runsOutIn}`:w.label})]})]})}const N3=6e4;function C3(){const[e,n]=T.useState(null),[r,i]=T.useState(!1),o=T.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const p=await fetch(c?"/api/quota?refresh=1":"/api/quota");p.ok&&n(await p.json())}catch{}finally{c&&i(!1)}};return T.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),N3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function j3(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const uC=6e4;function R3(){const[e,n]=T.useState(null),[r,i]=T.useState(!1),o=T.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const p=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");p.ok&&n(await p.json())}catch{}finally{c&&i(!1)}};return T.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),uC),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function T3(){const[e,n]=T.useState(null),r=T.useRef(null),i=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return T.useEffect(()=>(i(),r.current=window.setInterval(i,uC),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function A3({state:e,now:n,onClose:r}){var L,H;const{quota:i,loading:o,refresh:l}=C3(),{data:u,loading:c,refresh:h}=R3(),{data:p}=T3(),[d,m]=T.useState(()=>Math.floor(Date.now()/1e3));T.useEffect(()=>{const O=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(O)},[]);const{byModel:y,totalCost:w,totalTokens:N,burnRate:_}=T.useMemo(()=>{const O=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let F=0,G=0,q=0,R=0;for(const $ of e.agents.values()){const X=$.model??"__unknown__",I=fn($.usage,$.model),W=O.get(X);W?(W.inputTokens+=$.usage.inputTokens,W.outputTokens+=$.usage.outputTokens,W.cacheReadTokens+=$.usage.cacheReadTokens,W.cacheCreateTokens+=$.usage.cacheCreateTokens,W.cost.total+=I.total,W.cost.input+=I.input,W.cost.output+=I.output,W.cost.cacheRead+=I.cacheRead,W.cost.cacheWrite+=I.cacheWrite,W.agentCount++):O.set(X,{model:X,inputTokens:$.usage.inputTokens,outputTokens:$.usage.outputTokens,cacheReadTokens:$.usage.cacheReadTokens,cacheCreateTokens:$.usage.cacheCreateTokens,cost:{...I},agentCount:1}),P.total+=I.total,P.input+=I.input,P.output+=I.output,P.cacheRead+=I.cacheRead,P.cacheWrite+=I.cacheWrite,F+=$.usage.inputTokens,G+=$.usage.outputTokens,q+=$.usage.cacheReadTokens,R+=$.usage.cacheCreateTokens}const Q=Array.from(O.values()).sort(($,X)=>X.cost.total-$.cost.total);let z=0,ne=0;for(const $ of e.agents.values()){if($.state!=="active")continue;const X=fn($.usage,$.model);z+=X.total,ne=Math.max(ne,(($.endedAt??n)-$.startedAt)/1e3)}const Z=ne>0?yu(z,ne):null;return{byModel:Q,totalCost:P,totalTokens:{in:F,out:G,cacheR:q,cacheC:R},burnRate:Z}},[e,e.lastSeq,n]),S=T.useMemo(()=>{const O=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let F=fn(P.usage,P.model).total,G=P.usage.inputTokens,q=P.usage.outputTokens;for(const R of e.agents.values())R.sessionId!==P.sessionId||R.kind==="root"||(F+=fn(R.usage,R.model).total,G+=R.usage.inputTokens,q+=R.usage.outputTokens);O.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:F,inputTokens:G,outputTokens:q})}return O.sort((P,F)=>F.cost-P.cost).slice(0,12)},[e,e.lastSeq]),b=w.total>0,k=N.in+N.out,E=o||c,C=Fx(i==null?void 0:i.fetchedAt,d),A=Fx(u==null?void 0:u.fetchedAt,d),M=()=>{l(),h()};return g.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h3",{children:"Usage"}),_&&g.jsx("span",{className:"up-rate",children:_}),g.jsxs("div",{className:"up-header-right",children:[g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:M,disabled:E,title:"Refresh Claude + Codex quota",children:E?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Claude quota",C&&!o&&g.jsx("span",{className:"up-section-age",title:b3(i==null?void 0:i.source),children:C})]}),i!=null&&i.ok?g.jsxs("div",{className:"up-quota-bars",children:[i.session5hPct!=null&&g.jsx(ei,{label:"5-hour window",pct:i.session5hPct,reset:i.session5hReset,resetAt:i.session5hResetAt,windowSec:i.session5hWindowSec,nowSec:d}),i.week7dPct!=null&&g.jsx(ei,{label:"7-day window",pct:i.week7dPct,reset:i.week7dReset,resetAt:i.week7dResetAt,windowSec:i.week7dWindowSec,nowSec:d}),i.weekSonnetPct!=null&&g.jsx(ei,{label:"Sonnet (7d)",pct:i.weekSonnetPct,nowSec:d}),i.weekOpusPct!=null&&g.jsx(ei,{label:"Opus (7d)",pct:i.weekOpusPct,nowSec:d})]}):(i==null?void 0:i.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&g.jsx("span",{className:"up-plan-badge",children:u.planLabel}),A&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:A})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(L=u.windows)==null?void 0:L.map(O=>g.jsx(ei,{label:O.label,pct:O.pct,reset:O.reset??void 0,resetAt:O.resetAt??void 0,windowSec:O.windowSec??void 0,limitReached:u.limitReached&&O.pct>=100,nowSec:d},O.id)),(H=u.extraWindows)==null?void 0:H.map(O=>g.jsx(ei,{label:O.label,pct:O.pct,reset:O.reset??void 0,resetAt:O.resetAt??void 0,windowSec:O.windowSec??void 0,nowSec:d},O.id)),u.creditLimit&&g.jsx(ei,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:d}),(p==null?void 0:p.ok)&&p.window7d&&p.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Ft(p.window7d.totalTokens)," tokens · ",p.window7d.sessionCount," session",p.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&g.jsxs("div",{className:"up-quota-sub up-reset-credits",title:`Redeem in the Codex CLI or ChatGPT — ${zt} only reports them`,children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&g.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&g.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:j3(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:Fe(w.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(S3,{cost:w}),k>0&&g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Ft(N.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]}),N.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Ft(N.cacheR)]}),N.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Ft(N.cacheC)]})]}),y.filter(O=>O.cost.total>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:y.filter(O=>O.cost.total>0).map(O=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:O.model,children:li(O.model)}),g.jsx("td",{className:"up-num",children:Ft(O.inputTokens+O.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:Fe(O.cost.total)})]},O.model))})]})]}),S.filter(O=>O.cost>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:S.filter(O=>O.cost>0).map(O=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${O.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:O.label}),g.jsx("span",{className:"up-session-tokens",children:Ft(O.inputTokens+O.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:Fe(O.cost)})]},O.sessionId))})]})]}):k>0?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Ft(N.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]})]}),g.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const zx=18,I3=1100,no=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},M3=Array.from({length:zx},(e,n)=>{const r=-72+144*n/(zx-1)+(no(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+no(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+no(n,3)*260),delay:Math.round(no(n,4)*90),dur:760+Math.round(no(n,5)*260),scale:.8+no(n,6)*.45,hue:n%4,round:n%3===0}});function Bx({anchor:e,lifetimeMs:n=I3}){var l;const[r,i]=T.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return T.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();i({x:c.left+c.width/2,y:c.top+c.height/2});const h=window.setTimeout(()=>i(null),n);return()=>window.clearTimeout(h)},[e,n,o]),o||!r?null:TI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:M3.map((u,c)=>g.jsx("span",{className:`confetti-bit${u.round?" round":""}`,"data-hue":u.hue,style:{"--dx":`${u.dx.toFixed(1)}px`,"--dy":`${u.dy.toFixed(1)}px`,"--rot":`${u.rot}deg`,"--s":u.scale.toFixed(2),animationDelay:`${u.delay}ms`,animationDuration:`${u.dur}ms, ${u.dur}ms`}},c))}),document.body)}const cC=new Set(["awaiting_url","awaiting_code","registering"]);function P3(e){return e!=null&&cC.has(e)}function dC(e){return e!=null&&e!=="done"&&!cC.has(e)}const O3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",L3="the sign-in did not complete";function q3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?O3:L3)}}const $3="done";function D3(){let e=!1;return{shouldAnnounce(n){return n!==$3?(e=!1,!1):e?!1:(e=!0,!0)}}}const Ux={already_running:"a sign-in is already in progress",no_url:"the claude CLI did not offer a sign-in link — is it installed?",not_waiting:"that sign-in is no longer waiting for a code",not_prompted:"the CLI has not asked for a code yet",code_rejected:"that code was not accepted — copy it again from the browser",no_verdict:"the claude CLI has not answered — try the code again",empty_code:"paste the code from the browser first",login_failed:"the code was not accepted",no_identity:"signed in, but the CLI still reports nobody logged in",add_failed:"signed in, but claude-swap could not record the account",not_a_share:"that does not look like a shared account — it should start with ccdeck1:",corrupt:"that share is incomplete — copy the whole thing",wrong_version:`that share was made by a newer ${zt}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},Hx={no_cswap:"claude-swap could not be run — it is not on this deck's PATH. Set AGENTS_DECK_CSWAP to its full path",timeout:"claude-swap took too long and was stopped — try again",switch_failed:"claude-swap refused the switch",bad_account:"that is not an account claude-swap has",unknown_setting:"claude-swap has no such setting",out_of_range:"that value is outside what the setting allows",bad_value:"claude-swap does not accept that value",set_failed:"claude-swap refused the change",command_failed:"claude-swap refused the command"},F3=`claude-swap could not read the login keychain — start ${zt} from a Terminal window rather than a background service`;function bv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(mo(e))?F3:e!=null&&e.reason&&Hx[e.reason]?Hx[e.reason]:(e==null?void 0:e.reason)||n}function mo(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const Wx={no_install:"ccusage is not installed, and AGENTS_DECK_NO_INSTALL=1 forbids fetching it — unset that variable and restart the deck, or install ccusage yourself",timeout:"ccusage took more than 90 seconds and was stopped — a narrower range usually finishes",bad_output:"ccusage ran but printed no usage data — try again, and run ccusage daily --json in a terminal if it keeps happening",run_failed:"ccusage could not report usage — try again",bad_range:"that date range is not a YYYYMMDD date — reopen the modal and pick one of the presets",unreachable:"the deck did not answer — check it is still running, then try again"},z3="ccusage could not be started — npx is not on this deck's PATH. Install Node's npm/npx, or put ccusage on PATH yourself";function B3(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function U3(e,n){return B3(mo(e))?z3:e!=null&&e.reason&&Wx[e.reason]?Wx[e.reason]:(e==null?void 0:e.reason)||n}function au(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&dC(e.state)?e.error:e!=null&&e.reason&&Ux[e.reason]?Ux[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const H3=1500;async function Ql(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const Sv=ue.forwardRef((e,n)=>g.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[g.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),g.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Sv.displayName="SuccessMark";function W3({onClose:e,onChanged:n}){const[r,i]=T.useState("login"),[o,l]=T.useState(null),[u,c]=T.useState(""),[h,p]=T.useState(""),[d,m]=T.useState(!1),[y,w]=T.useState(null),[N,_]=T.useState(null),S=T.useRef(!1),b=T.useRef(null),k=T.useRef(null),E=T.useRef(null),C=T.useCallback(()=>{S.current&&Ql({action:"login-cancel"}).catch(()=>{}),e()},[e]);vo(C);const A=T.useCallback(async()=>{m(!0),w(null),S.current=!0;const q=await Ql({action:"login"}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(au(q,"could not start the sign-in"));return}l(q)},[]);T.useEffect(()=>{if(!P3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const R=await fetch("/api/claude-accounts/login");R.ok&&l(await R.json())}catch{}},H3);return()=>window.clearInterval(q)},[o]);const M=T.useRef(n);M.current=n;const L=T.useRef(D3());T.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=b.current)==null||q.focus()),L.current.shouldAnnounce(o==null?void 0:o.state)&&M.current()},[o==null?void 0:o.state]),T.useEffect(()=>{var q;r==="paste"&&((q=k.current)==null||q.focus())},[r]);const H=T.useCallback(async()=>{var R;m(!0),w(null);const q=await Ql({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(au(q,"the code was not accepted")),q!=null&&q.state&&l(q),(R=b.current)==null||R.select();return}c(""),l(q)},[u,o]),O=T.useCallback(async()=>{m(!0),w(null);const q=await Ql({action:"import",blob:h}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(au(q,"the import failed"));return}p(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[h,n]),P=(o==null?void 0:o.state)==="done"?o.account:null,F=dC(o==null?void 0:o.state)||!!(y&&S.current&&!d),G=q3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:C,role:"presentation",children:g.jsxs("div",{className:"modal aa-modal",onClick:q=>q.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[g.jsxs("header",{className:"modal-head",children:[g.jsx("div",{className:"modal-title",children:g.jsxs("span",{className:"aa-tabs",role:"tablist",children:[g.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>i("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>i("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:C,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?P?g.jsxs("div",{className:"aa-done",children:[g.jsx(Sv,{ref:E}),g.jsx(Bx,{anchor:E}),g.jsx("h4",{children:P.added?`Account ${P.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:P.email}),P.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:b,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!d&&H()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!u.trim()||o.state==="registering",onClick:H,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&g.jsx("p",{className:"aa-err",children:y??o.error}),g.jsx("p",{className:"aa-note",children:"The code goes straight to the claude CLI on this machine. It is never stored or sent anywhere else."})]})]}):F?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:G.title}),g.jsx("p",{className:"aa-err",children:G.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),w(null),A()},children:"Try again"})]}):d||S.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",className:"btn primary",onClick:A,disabled:d,children:"Open the sign-in page"})})]}):N?g.jsxs("div",{className:"aa-done",children:[g.jsx(Sv,{ref:E}),N.added&&g.jsx(Bx,{anchor:E}),g.jsx("h4",{children:N.added?`Account ${N.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:N.added?g.jsxs(g.Fragment,{children:[N.email?g.jsx("strong",{children:N.email}):"That account"," is in the rotation now. Nothing changed on the deck you copied it from."]}):"This deck already holds that account, so nothing changed."}),g.jsxs("div",{className:"aa-actions",children:[g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),g.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"Paste an account shared from another deck"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:k,type:"text",value:h,onChange:q=>p(q.target.value),onKeyDown:q=>{q.key==="Enter"&&h.trim()&&!d&&O()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!h.trim(),onClick:O,children:d?"importing…":"Import"})]}),y&&g.jsx("p",{className:"aa-err",children:y}),g.jsxs("p",{className:"aa-note",children:["Use ",g.jsx("strong",{children:"share"})," on an account in the other deck. A share carries a live login and expires ten minutes after it is made."]})]})})]})})}function V3(e,n){const r=new Set(e),i=e.length?Math.max(...e):0;return[...new Set([...e,i+1])].sort((o,l)=>o-l).map(o=>{const l=o===n?"here":r.has(o)?"swap":"free";return{slot:o,kind:l,label:l==="here"?`slot ${o}`:`slot ${o} · ${l}`}})}function G3(e,n,r){if(!(r!=null&&r.ok))return null;const i=Number.isInteger(r.to)?r.to:null;if(i==null)return{menuFor:null,confirmRemove:null,shareFor:null,swapNote:null};const o=r.swapped===!0&&i!==n;return{menuFor:e.menuFor===n?i:o&&e.menuFor===i?n:e.menuFor,confirmRemove:null,shareFor:null,swapNote:o?{at:i,displaced:n}:null}}function Y3(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const K3=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function Vx(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function X3(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=mo(n.body);return{text:bv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function Gx(e,n){return n?e!=null&&e.reload&&e.text===n.text&&e.raw===n.raw?e:n:e!=null&&e.reload?null:e}const Yx=15e3,Q3=8e3,Z3=1800,J3=3e4,eL=[70,80,85,90,95];function tL(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function Kx(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function nL(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function rL(e){switch(e){case"invalid_grant":case"no_refresh_token":return{text:"login expired",hint:"claude-swap's stored login for this account was rejected and cannot be refreshed. Signing in again replaces it — the account keeps its slot, its alias and its history.",fixable:!0};case"http-401":return{text:"re-login needed",hint:"Anthropic refused this account's token.",fixable:!0};case"http-429":return{text:"rate limited",hint:"Anthropic is throttling requests for this account. It clears on its own.",fixable:!1};case"transient":return{text:"temporary error",hint:"A network or server hiccup while reading usage. The next collection retries.",fixable:!1};case"timeout":return{text:"timed out",hint:"Reading this account's usage took too long. The next collection retries.",fixable:!1};case"network":return{text:"unreachable",hint:"Could not reach Anthropic to read this account's usage.",fixable:!1};default:return{text:e,hint:`claude-swap reported "${e}" for this account.`,fixable:!1}}}function sL({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),i=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?tL(e.resetAt,n):null;return g.jsxs("div",{className:"ap-lane",children:[g.jsx("span",{className:"ap-lane-label",children:e.label}),g.jsx("div",{className:"ap-lane-track",children:g.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:i,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:i},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}async function iL(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(i=>window.setTimeout(()=>i(!1),500))])}catch{n=!1}if(n)return!0;try{const i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(i),i.select(),n=document.execCommand("copy"),i.remove()}catch{n=!1}return n}function oL(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function aL({onClose:e}){var re,le,fe;const[n,r]=T.useState(null),[i,o]=T.useState(null),[l,u]=T.useState(null),[c,h]=T.useState(!1),[p,d]=T.useState(null),[m,y]=T.useState(null),[w,N]=T.useState(()=>Math.floor(Date.now()/1e3)),_=T.useRef(null),[S,b]=T.useState(null),[k,E]=T.useState(!1),[C,A]=T.useState(""),[M,L]=T.useState(null),[H,O]=T.useState(null),[P,F]=T.useState(null),[G,q]=T.useState(!1),[R,Q]=T.useState(null),z=T.useCallback(async(te=!1)=>{te&&h(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),J3);try{const[ve,Te]=await Promise.all([fetch(`/api/claude-accounts${te?"?refresh=1":""}`,{signal:ce.signal}),fetch("/api/cswap-auto",{signal:ce.signal})]);ve.ok&&r(await ve.json()),Te.ok&&o(await Te.json());const ye=X3([await Vx(ve),await Vx(Te)]);y(ke=>Gx(ke,ye))}catch{y(ve=>Gx(ve,K3))}finally{window.clearTimeout(Ce),te&&h(!1)}},[]),ne=T.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:bv(ve,"command failed"),raw:mo(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=T.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:au(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);T.useEffect(()=>(z(!0),_.current=window.setInterval(()=>z(!1),Yx),()=>{_.current!=null&&window.clearInterval(_.current)}),[z]),T.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const $=((re=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:re.value)??"90",X=(le=n==null?void 0:n.accounts)==null?void 0:le.find(te=>te.active),I=X!=null&&X.lanes.length?Math.max(...X.lanes.map(te=>te.pct)):null,W=I!=null&&I>=Number($)-15,Y=async te=>{d(te),y(null);try{const Ce=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:te})})).json().catch(()=>null);Ce!=null&&Ce.ok||y({text:bv(Ce,"the switch failed"),raw:mo(Ce)}),await z(!0)}catch{y({text:"server unreachable"})}finally{d(null)}},U=async(te,ce)=>{const{commit:Ce,alias:ve}=Y3(C,ce);if(Ce){const Te=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await z(!0),!(Te!=null&&Te.ok))return;A(ve)}L(te),window.setTimeout(()=>L(Te=>Te===te?null:Te),Z3)},J=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=G3({menuFor:S,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await z(!0),ve){b(ve.menuFor),O(ve.confirmRemove),ve.shareFor==null&&(F(null),q(!1)),Q(ve.swapNote);const Te=ve.swapNote;Te&&window.setTimeout(()=>Q(ye=>ye===Te?null:ye),Q3)}};return g.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h3",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>E(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>z(!0),disabled:c,"aria-label":"Reload accounts",title:"Reload from claude-swap",children:c?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?m?g.jsxs("div",{className:"ap-empty",role:"alert",children:[g.jsx("span",{title:m.raw||void 0,children:m.text}),g.jsxs("span",{className:"ap-hint",children:["No accounts have arrived, so there is nothing to show yet. The panel keeps trying every ",Yx/1e3," seconds."]}),g.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>z(!0),children:c?"trying…":"try again"})]}):g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(fe=n.accounts)==null?void 0:fe.map(te=>g.jsxs("div",{className:`ap-account${te.active?" active":""}${te.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:te.num}),te.alias&&g.jsx("span",{className:"ap-alias",children:te.alias}),g.jsx("span",{className:"ap-email",title:te.org??void 0,children:te.email}),g.jsx("button",{type:"button",className:`ap-more${S===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":S===te.num,"aria-controls":S===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{b(S===te.num?null:te.num),A(te.alias??""),O(null),F(null),q(!1),Q(null),L(null)},children:"⋯"}),te.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:p!=null||te.disabled,onClick:()=>Y(te.num),title:te.disabled?"Held out of rotation":`Switch to ${te.alias??te.email}`,children:p===te.num?"…":"switch"})]}),te.lanes.length>0?te.lanes.map(ce=>g.jsx(sL,{lane:ce,nowSec:w},ce.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[te.error&&(()=>{const ce=rL(te.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:ce.hint,children:ce.text}),ce.fixable&&g.jsx("button",{type:"button",className:"ap-fix",onClick:()=>E(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((i==null?void 0:i.enabled)||(i==null?void 0:i.external))&&!te.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>ne({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>z(!0)),title:te.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:te.disabled?"held out":"in rotation"}),te.fetchedAt?g.jsxs("span",{className:`ap-age${te.stale?" ap-stale":""}`,title:"When claude-swap last read this account's usage, and when it plans to read it again. It sets that interval itself — 3 minutes at the fastest, wider while an account is recovering from a rate limit — and every surface, including `cswap watch`, follows the same plan.",children:["collected ",Kx(te.fetchedAt,w),nL(te.nextAt,w)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),S===te.num&&g.jsxs("div",{className:"ap-manage",id:`ap-manage-${te.num}`,role:"group","aria-label":`Manage account ${te.num}`,children:[g.jsxs("div",{className:"ap-manage-name",children:[g.jsx("label",{className:"ap-vh",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),g.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:C,onChange:ce=>A(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&U(te.num,te.alias)},placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>U(te.num,te.alias),title:"A short name to show instead of the email",children:M===te.num?"saved":"save"})]}),g.jsxs("div",{className:"ap-manage-acts",children:[g.jsx("label",{className:"ap-vh",htmlFor:`ap-slot-${te.num}`,children:"Slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{id:`ap-slot-${te.num}`,value:String(te.num),disabled:l!=null,onChange:ce=>J(te.num,Number(ce.target.value)),children:V3((n.accounts??[]).map(ce=>ce.num),te.num).map(ce=>g.jsx("option",{value:ce.slot,children:ce.label},ce.slot))})}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:`Copy this account to another ${zt}. The share carries a live login and expires in 10 minutes.`,onClick:async()=>{q(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&F({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${H===te.num?" armed":""}`,disabled:l!=null,title:H===te.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(H!==te.num){O(te.num),window.setTimeout(()=>O(ce=>ce===te.num?null:ce),4e3);return}O(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{b(null),z(!0)})},children:H===te.num?"confirm":"remove"})]}),(R==null?void 0:R.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(Te=>Te.num===R.displaced),Ce=(ce==null?void 0:ce.alias)??(ce==null?void 0:ce.email)??"the account that was there";return g.jsxs("span",{className:"ap-manage-hint ap-manage-swap",title:`Slot ${R.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${R.displaced}.`,children:["swapped with slot ",R.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=oL(P.expiresAt,w),Ce=ce.tone==="gone";return g.jsxs("div",{className:`ap-share${Ce?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:P.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(Ce){q(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&F({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await iL(P.blob)&&(q(!0),window.setTimeout(()=>q(!1),1800))},children:Ce?"make a new share":G?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${ce.tone}`,children:ce.text})]})]})]})})()]})]},te.num)),(i==null?void 0:i.ok)&&g.jsxs("div",{className:"ap-auto",children:[g.jsxs("div",{className:"ap-auto-head",children:[g.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),g.jsxs("span",{className:"ap-auto-ctl",children:[I!=null&&g.jsxs("span",{className:`ap-auto-now${W?" near":""}`,children:[Math.round(I),"%"]}),g.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:g.jsx("select",{"aria-label":"Switch threshold",value:$,disabled:l!=null,onChange:te=>ne({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>z(!0)),children:eL.map(te=>g.jsxs("option",{value:te,children:[te,"%"]},te))})}),g.jsxs("button",{type:"button",className:`ap-auto-state${i.enabled?" live":""}`,role:"switch","aria-checked":i.enabled,disabled:l!=null,onClick:()=>ne({action:"enable",enabled:!i.enabled},"enable").then(()=>z(!0)),title:i.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:i.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),i.enabled?"on":"off"]})]})]}),i.external&&g.jsxs("p",{className:"ap-auto-note",children:[g.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",g.jsx("code",{children:"cswap auto"})," loop in your terminal is doing the switching. The deck stands down while it runs",i.enabled?" — this toggle takes over when you stop it.":"."]}),i.lastTick&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",Kx(i.lastTick.at,w)]})})]}),m&&g.jsxs("div",{className:"ap-failure",role:"alert",children:[g.jsx("span",{className:"ap-failure-text",title:m.raw||void 0,children:m.text}),g.jsx("button",{type:"button",className:"ap-failure-x",onClick:()=>y(null),"aria-label":"Dismiss this message",title:"Dismiss",children:"×"})]}),g.jsx("p",{className:"ap-footnote",title:"Anthropic's usage endpoint allows roughly 28–30 requests per hour per account, shared by every tool on this machine — polling it from here would rate-limit your account. So the deck never fetches: it asks claude-swap to collect while this panel is open, at most once every three minutes, and claude-swap decides whether that touches the network at all.",children:"Collected by claude-swap while this panel is open."})]}):g.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"claude-swap isn't installed."}),g.jsx("span",{className:"ap-hint",children:"This panel reads the account store claude-swap keeps — without it there is nothing to show. It is a separate tool, published on PyPI, so it does not come with this package."}),n.hint&&g.jsx("code",{className:"ap-cmd",children:n.hint}),g.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",g.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"No accounts added yet."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",g.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"Couldn't read the account store."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),k&&g.jsx(W3,{onClose:()=>E(!1),onChanged:()=>z(!0)})]})}const lL=3e4;function uL({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function cL({bundle:e,running:n,pending:r,lastTried:i}){return n?uL({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function dL(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function fL({asked:e,reported:n}){return n?n!==e:!1}function hL(e){const n=e.thresholdMs??lL;return!e.enabled||e.kind!=="restart"||!e.canRestart?{idleSince:null,restart:!1}:e.busy?{idleSince:null,restart:!1}:e.idleSince==null?{idleSince:e.now,restart:!1}:e.now<e.idleSince?{idleSince:e.now,restart:!1}:{idleSince:e.idleSince,restart:e.now-e.idleSince>=n}}function pL(e){return e.ctrlKey||e.metaKey||e.altKey}const mL=new Set(["button","checkbox","color","file","image","radio","range","reset","submit"]),gL=new Set(["INPUT","TEXTAREA","SELECT","OPTION","BUTTON","SUMMARY","A"]),vL=new Set(["button","checkbox","combobox","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","searchbox","slider","spinbutton","switch","tab","textbox","treeitem"]);function fC(e){return typeof e.tagName=="string"?e.tagName.toUpperCase():""}function hC(e){if(!e)return!1;if(e.isContentEditable)return!0;const n=fC(e);return n==="TEXTAREA"?!0:n!=="INPUT"?!1:!mL.has(String(e.type??"text").toLowerCase())}function yL(e){if(!e)return!1;if(hC(e)||gL.has(fC(e)))return!0;const n=typeof e.role=="string"?e.role.trim().toLowerCase():"";return n!==""&&n.split(/\s+/).some(r=>vL.has(r))}function wL({agentCount:e,onConfirm:n,onCancel:r}){const i=T.useRef(null);vo(r,{focusRef:i,layer:gO});const o=e===0?"This deletes the server's event log":`This removes ${e===1?"the one agent":`all ${e} agents`} on the canvas and deletes the server's event log`;return g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{className:"modal clear-confirm",onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"clear-confirm-title",children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"status-dot err","aria-hidden":!0}),g.jsx("span",{id:"clear-confirm-title",className:"modal-tool-name",children:"Clear the deck?"})]}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:r,"aria-label":"Cancel (Esc)",title:"Cancel (Esc)",children:"×"})})]}),g.jsxs("section",{className:"modal-body",children:[g.jsxs("p",{className:"modal-note",children:[o," — the file a restarted deck replays to rebuild what you see. Layout, pins and selection go with it. This cannot be undone."]}),g.jsxs("div",{className:"cc-actions",children:[g.jsx("button",{type:"button",ref:i,className:"btn",onClick:r,children:"Cancel"}),g.jsx("button",{type:"button",className:"btn danger",onClick:n,children:"Clear everything"})]})]})]})})}function xL(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function Zl(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function _L(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function pC(e,n,r){return!n.has(e)||r.has(e)}function bL(e,n,r,i){return!n.has(e)&&pC(e,r,i)}function SL(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function kL(e,n,r,i){r.set(e,n),i.delete(e)}const EL=40,NL=120;function CL(e,n){let r=null,i=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(h,p,d)=>{if(r!=null){if(i<=h)return;u()}const m=Math.min(d,Math.max(0,h-p));i=h,r=n.setTimeout(l,m)};return{live(h=EL){const p=n.now(),d=Math.max(o+h,p);if(d<=p){u(),l();return}c(d,p,h)},replay(h=NL){u(),i=n.now()+h,r=n.setTimeout(l,h)},flush(){u(),l()},cancel(){u()}}}function jL(){let e=!1,n=[];return{get paused(){return e},get size(){return n.length},accept(r){return e?(n.push(r),!1):!0},setPaused(r){if(e=r,r||n.length===0)return[];const i=n;return n=[],i}}}const RL="1",Xx="agent-dag.schema",TL=["agent-dag.layout","agent-dag.viewport"];function mC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function AL(e,n=RL){let r=null;try{r=e.getItem(Xx)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of TL)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(Xx,n)}catch{}return i}const gC="agent-dag.theme";function IL(e){return e==="light"?"light":"dark"}function ML(){return IL(mC(gC))}function PL({waiting:e,running:n}){return{title:e>0?`(${e}) ${zt}`:zt,icon:e>0?"waiting":n>0?"running":"idle"}}const Od={waiting:"#c97d12",running:"#2a90d4",idle:"#7e828c"};function Ld(e,n){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">${n==="waiting"?`<circle cx="16" cy="16" r="14.5" fill="${e}"/>`:`<circle cx="16" cy="16" r="12" fill="none" stroke="${e}" stroke-width="5"/>`+(n==="running"?`<circle cx="16" cy="16" r="5" fill="${e}"/>`:"")}</svg>`}const OL=Object.freeze({waiting:`data:image/svg+xml,${encodeURIComponent(Ld(Od.waiting,"waiting"))}`,running:`data:image/svg+xml,${encodeURIComponent(Ld(Od.running,"running"))}`,idle:`data:image/svg+xml,${encodeURIComponent(Ld(Od.idle,"idle"))}`});function LL(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function qL(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function $L(e){return!e.answer||e.answer.range!==e.want?{phase:"busy",stale:!1}:e.answer.ok?{phase:e.answer.days>0?"chart":"empty",stale:e.loading}:{phase:"error",stale:e.loading}}function Jl(e){const n=e.toLowerCase();return n.includes("opus")?"#c4b5fd":n.includes("sonnet")?"#7dd3fc":n.includes("haiku")?"#86efac":n.includes("gpt-5")||n.includes("gpt5")?"#fcd34d":n.includes("gpt")?"#fca5a5":n.includes("gemini")?"#a5b4fc":n.includes("codex")?"#fdba74":"#94a3b8"}const DL=[7,14,30,90];function FL(e){const[n,r]=T.useState(null),[i,o]=T.useState(!1),l=T.useRef(LL()).current,u=(c=!1)=>{const h=l.begin(),p=e;o(!0);const m=`/api/ccusage?since=${qL(p)}${c?"&refresh=1":""}`;fetch(m).then(y=>y.json()).then(y=>{h()&&r({range:p,resp:y})}).catch(()=>{h()&&r({range:p,resp:{ok:!1,reason:"unreachable"}})}).finally(()=>{h()&&o(!1)})};return T.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function zL({onClose:e}){var k,E,C;const[n,r]=T.useState(30),[i,o]=T.useState(null),{landed:l,loading:u,reload:c}=FL(n);vo(e);const h=$L({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((k=l.resp.days)==null?void 0:k.length)??0}}),p=h.phase==="chart"?l.resp.days??[]:[],d=T.useMemo(()=>p.reduce((A,M)=>Math.max(A,M.totalCost),0),[p]),{totalCost:m,totalTok:y,inOut:w,cacheRead:N,modelCosts:_}=T.useMemo(()=>{let A=0,M=0,L=0,H=0;const O=new Map;for(const P of p){A+=P.totalCost,M+=P.totalTokens,L+=P.inputTokens+P.outputTokens,H+=P.cacheReadTokens;for(const F of P.modelBreakdowns)O.set(F.modelName,(O.get(F.modelName)??0)+F.cost)}return{totalCost:A,totalTok:M,inOut:L,cacheRead:H,modelCosts:O}},[p]),S=T.useMemo(()=>Array.from(_.entries()).sort((A,M)=>M[1]-A[1]),[_]),b=i?p.find(A=>A.period===i)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{className:"uh-modal",onClick:A=>A.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:DL.map(A=>g.jsxs("button",{role:"tab","aria-selected":n===A,className:`uh-range-btn${n===A?" on":""}`,onClick:()=>{r(A),o(null)},children:[A,"d"]},A))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,disabled:u,title:"Re-run ccusage","aria-label":"Reload",children:u?"…":"↻"}),g.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),h.phase==="busy"?g.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):h.phase==="error"?g.jsxs("div",{className:"uh-status uh-err",title:mo(l.resp)||void 0,children:[U3(l.resp,"ccusage did not report usage"),g.jsx("div",{children:g.jsx("button",{className:"btn uh-retry",onClick:c,disabled:u,children:u?"trying…":"Try again"})})]}):h.phase==="empty"?g.jsx("div",{className:`uh-status${h.stale?" uh-stale":""}`,"aria-busy":h.stale||void 0,children:"no usage in this range"}):g.jsxs("div",{className:h.stale?"uh-stale":void 0,"aria-busy":h.stale||void 0,children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(eu,{label:"total cost",val:Fe(m),accent:!0}),g.jsx(eu,{label:"tokens",val:Ft(y)}),g.jsx(eu,{label:"input+output",val:Ft(w)}),g.jsx(eu,{label:"cache reads",val:Ft(N)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:p.map(A=>{const M=d>0?A.totalCost/d*100:0,L=A.period===i;return g.jsxs("button",{className:`uh-bar-col${L?" sel":""}`,onClick:()=>o(L?null:A.period),title:`${A.period} · ${Fe(A.totalCost)}`,style:{flexBasis:`${100/p.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(M,A.totalCost>0?2:0)}%`},children:A.modelBreakdowns.slice().sort((H,O)=>O.cost-H.cost).map(H=>{const O=A.totalCost>0?H.cost/A.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${O}%`,background:Jl(H.modelName)}},H.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:A.period.slice(5)})]},A.period)})}),g.jsx("div",{className:"uh-legend",children:S.map(([A,M])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Jl(A)}}),li(A)," ",g.jsx("span",{className:"uh-legend-cost",children:Fe(M)})]},A))}),b&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:b.period}),g.jsx("span",{className:"uh-detail-cost",children:Fe(b.totalCost)}),(C=(E=b.metadata)==null?void 0:E.agents)!=null&&C.length?g.jsx("span",{className:"uh-detail-agents",children:b.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(tu,{label:"input",val:Ft(b.inputTokens)}),g.jsx(tu,{label:"output",val:Ft(b.outputTokens)}),g.jsx(tu,{label:"cache write",val:Ft(b.cacheCreationTokens)}),g.jsx(tu,{label:"cache read",val:Ft(b.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:b.modelBreakdowns.slice().sort((A,M)=>M.cost-A.cost).map(A=>{const M=b.totalCost>0?A.cost/b.totalCost*100:0;return g.jsxs("div",{className:"uh-model-row",children:[g.jsxs("span",{className:"uh-model-name",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Jl(A.modelName)}}),li(A.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${M}%`,background:Jl(A.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:Fe(A.cost)})]},A.modelName)})})]})]})]})})}function eu({label:e,val:n,accent:r}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function tu({label:e,val:n}){return g.jsxs("div",{className:"uh-ministat",children:[g.jsx("span",{className:"uh-ministat-val",children:n}),g.jsx("span",{className:"uh-ministat-label",children:e})]})}function Yv(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var qd,Qx;function BL(){if(Qx)return qd;Qx=1;function e(){this.__data__=[],this.size=0}return qd=e,qd}var $d,Zx;function yo(){if(Zx)return $d;Zx=1;function e(n,r){return n===r||n!==n&&r!==r}return $d=e,$d}var Dd,Jx;function Ru(){if(Jx)return Dd;Jx=1;var e=yo();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Dd=n,Dd}var Fd,e_;function UL(){if(e_)return Fd;e_=1;var e=Ru(),n=Array.prototype,r=n.splice;function i(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return Fd=i,Fd}var zd,t_;function HL(){if(t_)return zd;t_=1;var e=Ru();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return zd=n,zd}var Bd,n_;function WL(){if(n_)return Bd;n_=1;var e=Ru();function n(r){return e(this.__data__,r)>-1}return Bd=n,Bd}var Ud,r_;function VL(){if(r_)return Ud;r_=1;var e=Ru();function n(r,i){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,i])):o[l][1]=i,this}return Ud=n,Ud}var Hd,s_;function Tu(){if(s_)return Hd;s_=1;var e=BL(),n=UL(),r=HL(),i=WL(),o=VL();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Hd=l,Hd}var Wd,i_;function GL(){if(i_)return Wd;i_=1;var e=Tu();function n(){this.__data__=new e,this.size=0}return Wd=n,Wd}var Vd,o_;function YL(){if(o_)return Vd;o_=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return Vd=e,Vd}var Gd,a_;function KL(){if(a_)return Gd;a_=1;function e(n){return this.__data__.get(n)}return Gd=e,Gd}var Yd,l_;function XL(){if(l_)return Yd;l_=1;function e(n){return this.__data__.has(n)}return Yd=e,Yd}var Kd,u_;function vC(){if(u_)return Kd;u_=1;var e=typeof $l=="object"&&$l&&$l.Object===Object&&$l;return Kd=e,Kd}var Xd,c_;function tr(){if(c_)return Xd;c_=1;var e=vC(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return Xd=r,Xd}var Qd,d_;function wo(){if(d_)return Qd;d_=1;var e=tr(),n=e.Symbol;return Qd=n,Qd}var Zd,f_;function QL(){if(f_)return Zd;f_=1;var e=wo(),n=Object.prototype,r=n.hasOwnProperty,i=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),h=u[o];try{u[o]=void 0;var p=!0}catch{}var d=i.call(u);return p&&(c?u[o]=h:delete u[o]),d}return Zd=l,Zd}var Jd,h_;function ZL(){if(h_)return Jd;h_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return Jd=r,Jd}var ef,p_;function ui(){if(p_)return ef;p_=1;var e=wo(),n=QL(),r=ZL(),i="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:i:l&&l in Object(c)?n(c):r(c)}return ef=u,ef}var tf,m_;function Ln(){if(m_)return tf;m_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return tf=e,tf}var nf,g_;function qa(){if(g_)return nf;g_=1;var e=ui(),n=Ln(),r="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var h=e(c);return h==i||h==o||h==r||h==l}return nf=u,nf}var rf,v_;function JL(){if(v_)return rf;v_=1;var e=tr(),n=e["__core-js_shared__"];return rf=n,rf}var sf,y_;function eq(){if(y_)return sf;y_=1;var e=JL(),n=(function(){var i=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function r(i){return!!n&&n in i}return sf=r,sf}var of,w_;function yC(){if(w_)return of;w_=1;var e=Function.prototype,n=e.toString;function r(i){if(i!=null){try{return n.call(i)}catch{}try{return i+""}catch{}}return""}return of=r,of}var af,x_;function tq(){if(x_)return af;x_=1;var e=qa(),n=eq(),r=Ln(),i=yC(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,h=u.toString,p=c.hasOwnProperty,d=RegExp("^"+h.call(p).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var w=e(y)?d:l;return w.test(i(y))}return af=m,af}var lf,__;function nq(){if(__)return lf;__=1;function e(n,r){return n==null?void 0:n[r]}return lf=e,lf}var uf,b_;function ci(){if(b_)return uf;b_=1;var e=tq(),n=nq();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return uf=r,uf}var cf,S_;function Kv(){if(S_)return cf;S_=1;var e=ci(),n=tr(),r=e(n,"Map");return cf=r,cf}var df,k_;function Au(){if(k_)return df;k_=1;var e=ci(),n=e(Object,"create");return df=n,df}var ff,E_;function rq(){if(E_)return ff;E_=1;var e=Au();function n(){this.__data__=e?e(null):{},this.size=0}return ff=n,ff}var hf,N_;function sq(){if(N_)return hf;N_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return hf=e,hf}var pf,C_;function iq(){if(C_)return pf;C_=1;var e=Au(),n="__lodash_hash_undefined__",r=Object.prototype,i=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return i.call(u,l)?u[l]:void 0}return pf=o,pf}var mf,j_;function oq(){if(j_)return mf;j_=1;var e=Au(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return mf=i,mf}var gf,R_;function aq(){if(R_)return gf;R_=1;var e=Au(),n="__lodash_hash_undefined__";function r(i,o){var l=this.__data__;return this.size+=this.has(i)?0:1,l[i]=e&&o===void 0?n:o,this}return gf=r,gf}var vf,T_;function lq(){if(T_)return vf;T_=1;var e=rq(),n=sq(),r=iq(),i=oq(),o=aq();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,vf=l,vf}var yf,A_;function uq(){if(A_)return yf;A_=1;var e=lq(),n=Tu(),r=Kv();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return yf=i,yf}var wf,I_;function cq(){if(I_)return wf;I_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return wf=e,wf}var xf,M_;function Iu(){if(M_)return xf;M_=1;var e=cq();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return xf=n,xf}var _f,P_;function dq(){if(P_)return _f;P_=1;var e=Iu();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return _f=n,_f}var bf,O_;function fq(){if(O_)return bf;O_=1;var e=Iu();function n(r){return e(this,r).get(r)}return bf=n,bf}var Sf,L_;function hq(){if(L_)return Sf;L_=1;var e=Iu();function n(r){return e(this,r).has(r)}return Sf=n,Sf}var kf,q_;function pq(){if(q_)return kf;q_=1;var e=Iu();function n(r,i){var o=e(this,r),l=o.size;return o.set(r,i),this.size+=o.size==l?0:1,this}return kf=n,kf}var Ef,$_;function Xv(){if($_)return Ef;$_=1;var e=uq(),n=dq(),r=fq(),i=hq(),o=pq();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Ef=l,Ef}var Nf,D_;function mq(){if(D_)return Nf;D_=1;var e=Tu(),n=Kv(),r=Xv(),i=200;function o(l,u){var c=this.__data__;if(c instanceof e){var h=c.__data__;if(!n||h.length<i-1)return h.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(h)}return c.set(l,u),this.size=c.size,this}return Nf=o,Nf}var Cf,F_;function Mu(){if(F_)return Cf;F_=1;var e=Tu(),n=GL(),r=YL(),i=KL(),o=XL(),l=mq();function u(c){var h=this.__data__=new e(c);this.size=h.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,Cf=u,Cf}var jf,z_;function Qv(){if(z_)return jf;z_=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o&&r(n[i],i,n)!==!1;);return n}return jf=e,jf}var Rf,B_;function wC(){if(B_)return Rf;B_=1;var e=ci(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return Rf=n,Rf}var Tf,U_;function Pu(){if(U_)return Tf;U_=1;var e=wC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return Tf=n,Tf}var Af,H_;function Ou(){if(H_)return Af;H_=1;var e=Pu(),n=yo(),r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c){var h=l[u];(!(i.call(l,u)&&n(h,c))||c===void 0&&!(u in l))&&e(l,u,c)}return Af=o,Af}var If,W_;function $a(){if(W_)return If;W_=1;var e=Ou(),n=Pu();function r(i,o,l,u){var c=!l;l||(l={});for(var h=-1,p=o.length;++h<p;){var d=o[h],m=u?u(l[d],i[d],d,l,i):void 0;m===void 0&&(m=i[d]),c?n(l,d,m):e(l,d,m)}return l}return If=r,If}var Mf,V_;function gq(){if(V_)return Mf;V_=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return Mf=e,Mf}var Pf,G_;function vr(){if(G_)return Pf;G_=1;function e(n){return n!=null&&typeof n=="object"}return Pf=e,Pf}var Of,Y_;function vq(){if(Y_)return Of;Y_=1;var e=ui(),n=vr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Of=i,Of}var Lf,K_;function Da(){if(K_)return Lf;K_=1;var e=vq(),n=vr(),r=Object.prototype,i=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&i.call(u,"callee")&&!o.call(u,"callee")};return Lf=l,Lf}var qf,X_;function bt(){if(X_)return qf;X_=1;var e=Array.isArray;return qf=e,qf}var va={exports:{}},$f,Q_;function yq(){if(Q_)return $f;Q_=1;function e(){return!1}return $f=e,$f}va.exports;var Z_;function xo(){return Z_||(Z_=1,(function(e,n){var r=tr(),i=yq(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,h=c?c.isBuffer:void 0,p=h||i;e.exports=p})(va,va.exports)),va.exports}var Df,J_;function Lu(){if(J_)return Df;J_=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(i,o){var l=typeof i;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(i))&&i>-1&&i%1==0&&i<o}return Df=r,Df}var Ff,e1;function Zv(){if(e1)return Ff;e1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return Ff=n,Ff}var zf,t1;function wq(){if(t1)return zf;t1=1;var e=ui(),n=Zv(),r=vr(),i="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",h="[object Function]",p="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",w="[object Set]",N="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",C="[object Int8Array]",A="[object Int16Array]",M="[object Int32Array]",L="[object Uint8Array]",H="[object Uint8ClampedArray]",O="[object Uint16Array]",P="[object Uint32Array]",F={};F[k]=F[E]=F[C]=F[A]=F[M]=F[L]=F[H]=F[O]=F[P]=!0,F[i]=F[o]=F[S]=F[l]=F[b]=F[u]=F[c]=F[h]=F[p]=F[d]=F[m]=F[y]=F[w]=F[N]=F[_]=!1;function G(q){return r(q)&&n(q.length)&&!!F[e(q)]}return zf=G,zf}var Bf,n1;function qu(){if(n1)return Bf;n1=1;function e(n){return function(r){return n(r)}}return Bf=e,Bf}var ya={exports:{}};ya.exports;var r1;function Jv(){return r1||(r1=1,(function(e,n){var r=vC(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l&&r.process,c=(function(){try{var h=o&&o.require&&o.require("util").types;return h||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(ya,ya.exports)),ya.exports}var Uf,s1;function Fa(){if(s1)return Uf;s1=1;var e=wq(),n=qu(),r=Jv(),i=r&&r.isTypedArray,o=i?n(i):e;return Uf=o,Uf}var Hf,i1;function xC(){if(i1)return Hf;i1=1;var e=gq(),n=Da(),r=bt(),i=xo(),o=Lu(),l=Fa(),u=Object.prototype,c=u.hasOwnProperty;function h(p,d){var m=r(p),y=!m&&n(p),w=!m&&!y&&i(p),N=!m&&!y&&!w&&l(p),_=m||y||w||N,S=_?e(p.length,String):[],b=S.length;for(var k in p)(d||c.call(p,k))&&!(_&&(k=="length"||w&&(k=="offset"||k=="parent")||N&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return Hf=h,Hf}var Wf,o1;function $u(){if(o1)return Wf;o1=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return Wf=n,Wf}var Vf,a1;function _C(){if(a1)return Vf;a1=1;function e(n,r){return function(i){return n(r(i))}}return Vf=e,Vf}var Gf,l1;function xq(){if(l1)return Gf;l1=1;var e=_C(),n=e(Object.keys,Object);return Gf=n,Gf}var Yf,u1;function ey(){if(u1)return Yf;u1=1;var e=$u(),n=xq(),r=Object.prototype,i=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))i.call(l,c)&&c!="constructor"&&u.push(c);return u}return Yf=o,Yf}var Kf,c1;function Wr(){if(c1)return Kf;c1=1;var e=qa(),n=Zv();function r(i){return i!=null&&n(i.length)&&!e(i)}return Kf=r,Kf}var Xf,d1;function ks(){if(d1)return Xf;d1=1;var e=xC(),n=ey(),r=Wr();function i(o){return r(o)?e(o):n(o)}return Xf=i,Xf}var Qf,f1;function _q(){if(f1)return Qf;f1=1;var e=$a(),n=ks();function r(i,o){return i&&e(o,n(o),i)}return Qf=r,Qf}var Zf,h1;function bq(){if(h1)return Zf;h1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return Zf=e,Zf}var Jf,p1;function Sq(){if(p1)return Jf;p1=1;var e=Ln(),n=$u(),r=bq(),i=Object.prototype,o=i.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),h=[];for(var p in u)p=="constructor"&&(c||!o.call(u,p))||h.push(p);return h}return Jf=l,Jf}var eh,m1;function di(){if(m1)return eh;m1=1;var e=xC(),n=Sq(),r=Wr();function i(o){return r(o)?e(o,!0):n(o)}return eh=i,eh}var th,g1;function kq(){if(g1)return th;g1=1;var e=$a(),n=di();function r(i,o){return i&&e(o,n(o),i)}return th=r,th}var wa={exports:{}};wa.exports;var v1;function bC(){return v1||(v1=1,(function(e,n){var r=tr(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function h(p,d){if(d)return p.slice();var m=p.length,y=c?c(m):new p.constructor(m);return p.copy(y),y}e.exports=h})(wa,wa.exports)),wa.exports}var nh,y1;function SC(){if(y1)return nh;y1=1;function e(n,r){var i=-1,o=n.length;for(r||(r=Array(o));++i<o;)r[i]=n[i];return r}return nh=e,nh}var rh,w1;function kC(){if(w1)return rh;w1=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=0,u=[];++i<o;){var c=n[i];r(c,i,n)&&(u[l++]=c)}return u}return rh=e,rh}var sh,x1;function EC(){if(x1)return sh;x1=1;function e(){return[]}return sh=e,sh}var ih,_1;function ty(){if(_1)return ih;_1=1;var e=kC(),n=EC(),r=Object.prototype,i=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return i.call(u,c)}))}:n;return ih=l,ih}var oh,b1;function Eq(){if(b1)return oh;b1=1;var e=$a(),n=ty();function r(i,o){return e(i,n(i),o)}return oh=r,oh}var ah,S1;function ny(){if(S1)return ah;S1=1;function e(n,r){for(var i=-1,o=r.length,l=n.length;++i<o;)n[l+i]=r[i];return n}return ah=e,ah}var lh,k1;function Du(){if(k1)return lh;k1=1;var e=_C(),n=e(Object.getPrototypeOf,Object);return lh=n,lh}var uh,E1;function NC(){if(E1)return uh;E1=1;var e=ny(),n=Du(),r=ty(),i=EC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return uh=l,uh}var ch,N1;function Nq(){if(N1)return ch;N1=1;var e=$a(),n=NC();function r(i,o){return e(i,n(i),o)}return ch=r,ch}var dh,C1;function CC(){if(C1)return dh;C1=1;var e=ny(),n=bt();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return dh=r,dh}var fh,j1;function jC(){if(j1)return fh;j1=1;var e=CC(),n=ty(),r=ks();function i(o){return e(o,r,n)}return fh=i,fh}var hh,R1;function Cq(){if(R1)return hh;R1=1;var e=CC(),n=NC(),r=di();function i(o){return e(o,r,n)}return hh=i,hh}var ph,T1;function jq(){if(T1)return ph;T1=1;var e=ci(),n=tr(),r=e(n,"DataView");return ph=r,ph}var mh,A1;function Rq(){if(A1)return mh;A1=1;var e=ci(),n=tr(),r=e(n,"Promise");return mh=r,mh}var gh,I1;function RC(){if(I1)return gh;I1=1;var e=ci(),n=tr(),r=e(n,"Set");return gh=r,gh}var vh,M1;function Tq(){if(M1)return vh;M1=1;var e=ci(),n=tr(),r=e(n,"WeakMap");return vh=r,vh}var yh,P1;function _o(){if(P1)return yh;P1=1;var e=jq(),n=Kv(),r=Rq(),i=RC(),o=Tq(),l=ui(),u=yC(),c="[object Map]",h="[object Object]",p="[object Promise]",d="[object Set]",m="[object WeakMap]",y="[object DataView]",w=u(e),N=u(n),_=u(r),S=u(i),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=p||i&&k(new i)!=d||o&&k(new o)!=m)&&(k=function(E){var C=l(E),A=C==h?E.constructor:void 0,M=A?u(A):"";if(M)switch(M){case w:return y;case N:return c;case _:return p;case S:return d;case b:return m}return C}),yh=k,yh}var wh,O1;function Aq(){if(O1)return wh;O1=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i){var o=i.length,l=new i.constructor(o);return o&&typeof i[0]=="string"&&n.call(i,"index")&&(l.index=i.index,l.input=i.input),l}return wh=r,wh}var xh,L1;function TC(){if(L1)return xh;L1=1;var e=tr(),n=e.Uint8Array;return xh=n,xh}var _h,q1;function ry(){if(q1)return _h;q1=1;var e=TC();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return _h=n,_h}var bh,$1;function Iq(){if($1)return bh;$1=1;var e=ry();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return bh=n,bh}var Sh,D1;function Mq(){if(D1)return Sh;D1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return Sh=n,Sh}var kh,F1;function Pq(){if(F1)return kh;F1=1;var e=wo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return kh=i,kh}var Eh,z1;function AC(){if(z1)return Eh;z1=1;var e=ry();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Eh=n,Eh}var Nh,B1;function Oq(){if(B1)return Nh;B1=1;var e=ry(),n=Iq(),r=Mq(),i=Pq(),o=AC(),l="[object Boolean]",u="[object Date]",c="[object Map]",h="[object Number]",p="[object RegExp]",d="[object Set]",m="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",N="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",C="[object Uint8Array]",A="[object Uint8ClampedArray]",M="[object Uint16Array]",L="[object Uint32Array]";function H(O,P,F){var G=O.constructor;switch(P){case w:return e(O);case l:case u:return new G(+O);case N:return n(O,F);case _:case S:case b:case k:case E:case C:case A:case M:case L:return o(O,F);case c:return new G;case h:case m:return new G(O);case p:return r(O);case d:return new G;case y:return i(O)}}return Nh=H,Nh}var Ch,U1;function IC(){if(U1)return Ch;U1=1;var e=Ln(),n=Object.create,r=(function(){function i(){}return function(o){if(!e(o))return{};if(n)return n(o);i.prototype=o;var l=new i;return i.prototype=void 0,l}})();return Ch=r,Ch}var jh,H1;function MC(){if(H1)return jh;H1=1;var e=IC(),n=Du(),r=$u();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return jh=i,jh}var Rh,W1;function Lq(){if(W1)return Rh;W1=1;var e=_o(),n=vr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return Rh=i,Rh}var Th,V1;function qq(){if(V1)return Th;V1=1;var e=Lq(),n=qu(),r=Jv(),i=r&&r.isMap,o=i?n(i):e;return Th=o,Th}var Ah,G1;function $q(){if(G1)return Ah;G1=1;var e=_o(),n=vr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return Ah=i,Ah}var Ih,Y1;function Dq(){if(Y1)return Ih;Y1=1;var e=$q(),n=qu(),r=Jv(),i=r&&r.isSet,o=i?n(i):e;return Ih=o,Ih}var Mh,K1;function PC(){if(K1)return Mh;K1=1;var e=Mu(),n=Qv(),r=Ou(),i=_q(),o=kq(),l=bC(),u=SC(),c=Eq(),h=Nq(),p=jC(),d=Cq(),m=_o(),y=Aq(),w=Oq(),N=MC(),_=bt(),S=xo(),b=qq(),k=Ln(),E=Dq(),C=ks(),A=di(),M=1,L=2,H=4,O="[object Arguments]",P="[object Array]",F="[object Boolean]",G="[object Date]",q="[object Error]",R="[object Function]",Q="[object GeneratorFunction]",z="[object Map]",ne="[object Number]",Z="[object Object]",$="[object RegExp]",X="[object Set]",I="[object String]",W="[object Symbol]",Y="[object WeakMap]",U="[object ArrayBuffer]",J="[object DataView]",re="[object Float32Array]",le="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",Te="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[O]=ke[P]=ke[U]=ke[J]=ke[F]=ke[G]=ke[re]=ke[le]=ke[fe]=ke[te]=ke[ce]=ke[z]=ke[ne]=ke[Z]=ke[$]=ke[X]=ke[I]=ke[W]=ke[Ce]=ke[ve]=ke[Te]=ke[ye]=!0,ke[q]=ke[R]=ke[Y]=!1;function Ge(we,_e,ze,ft,ht,Ue){var De,Ze=_e&M,Ye=_e&L,vt=_e&H;if(ze&&(De=ht?ze(we,ft,ht,Ue):ze(we)),De!==void 0)return De;if(!k(we))return we;var ot=_(we);if(ot){if(De=y(we),!Ze)return u(we,De)}else{var yt=m(we),Kt=yt==R||yt==Q;if(S(we))return l(we,Ze);if(yt==Z||yt==O||Kt&&!ht){if(De=Ye||Kt?{}:N(we),!Ze)return Ye?h(we,o(De,we)):c(we,i(De,we))}else{if(!ke[yt])return ht?we:{};De=w(we,yt,Ze)}}Ue||(Ue=new e);var Mt=Ue.get(we);if(Mt)return Mt;Ue.set(we,De),E(we)?we.forEach(function(pt){De.add(Ge(pt,_e,ze,pt,we,Ue))}):b(we)&&we.forEach(function(pt,mt){De.set(mt,Ge(pt,_e,ze,mt,we,Ue))});var Xe=vt?Ye?d:p:Ye?A:C,wt=ot?void 0:Xe(we);return n(wt||we,function(pt,mt){wt&&(mt=pt,pt=we[mt]),r(De,mt,Ge(pt,_e,ze,mt,we,Ue))}),De}return Mh=Ge,Mh}var Ph,X1;function Fq(){if(X1)return Ph;X1=1;var e=PC(),n=4;function r(i){return e(i,n)}return Ph=r,Ph}var Oh,Q1;function sy(){if(Q1)return Oh;Q1=1;function e(n){return function(){return n}}return Oh=e,Oh}var Lh,Z1;function zq(){if(Z1)return Lh;Z1=1;function e(n){return function(r,i,o){for(var l=-1,u=Object(r),c=o(r),h=c.length;h--;){var p=c[n?h:++l];if(i(u[p],p,u)===!1)break}return r}}return Lh=e,Lh}var qh,J1;function iy(){if(J1)return qh;J1=1;var e=zq(),n=e();return qh=n,qh}var $h,eb;function oy(){if(eb)return $h;eb=1;var e=iy(),n=ks();function r(i,o){return i&&e(i,o,n)}return $h=r,$h}var Dh,tb;function Bq(){if(tb)return Dh;tb=1;var e=Wr();function n(r,i){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=i?u:-1,h=Object(o);(i?c--:++c<u)&&l(h[c],c,h)!==!1;);return o}}return Dh=n,Dh}var Fh,nb;function Fu(){if(nb)return Fh;nb=1;var e=oy(),n=Bq(),r=n(e);return Fh=r,Fh}var zh,rb;function fi(){if(rb)return zh;rb=1;function e(n){return n}return zh=e,zh}var Bh,sb;function OC(){if(sb)return Bh;sb=1;var e=fi();function n(r){return typeof r=="function"?r:e}return Bh=n,Bh}var Uh,ib;function LC(){if(ib)return Uh;ib=1;var e=Qv(),n=Fu(),r=OC(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Uh=o,Uh}var Hh,ob;function qC(){return ob||(ob=1,Hh=LC()),Hh}var Wh,ab;function Uq(){if(ab)return Wh;ab=1;var e=Fu();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return Wh=n,Wh}var Vh,lb;function Hq(){if(lb)return Vh;lb=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return Vh=n,Vh}var Gh,ub;function Wq(){if(ub)return Gh;ub=1;function e(n){return this.__data__.has(n)}return Gh=e,Gh}var Yh,cb;function $C(){if(cb)return Yh;cb=1;var e=Xv(),n=Hq(),r=Wq();function i(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return i.prototype.add=i.prototype.push=n,i.prototype.has=r,Yh=i,Yh}var Kh,db;function Vq(){if(db)return Kh;db=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o;)if(r(n[i],i,n))return!0;return!1}return Kh=e,Kh}var Xh,fb;function DC(){if(fb)return Xh;fb=1;function e(n,r){return n.has(r)}return Xh=e,Xh}var Qh,hb;function FC(){if(hb)return Qh;hb=1;var e=$C(),n=Vq(),r=DC(),i=1,o=2;function l(u,c,h,p,d,m){var y=h&i,w=u.length,N=c.length;if(w!=N&&!(y&&N>w))return!1;var _=m.get(u),S=m.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,E=h&o?new e:void 0;for(m.set(u,c),m.set(c,u);++b<w;){var C=u[b],A=c[b];if(p)var M=y?p(A,C,b,c,u,m):p(C,A,b,u,c,m);if(M!==void 0){if(M)continue;k=!1;break}if(E){if(!n(c,function(L,H){if(!r(E,H)&&(C===L||d(C,L,h,p,m)))return E.push(H)})){k=!1;break}}else if(!(C===A||d(C,A,h,p,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return Qh=l,Qh}var Zh,pb;function Gq(){if(pb)return Zh;pb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return Zh=e,Zh}var Jh,mb;function ay(){if(mb)return Jh;mb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return Jh=e,Jh}var ep,gb;function Yq(){if(gb)return ep;gb=1;var e=wo(),n=TC(),r=yo(),i=FC(),o=Gq(),l=ay(),u=1,c=2,h="[object Boolean]",p="[object Date]",d="[object Error]",m="[object Map]",y="[object Number]",w="[object RegExp]",N="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,C=E?E.valueOf:void 0;function A(M,L,H,O,P,F,G){switch(H){case k:if(M.byteLength!=L.byteLength||M.byteOffset!=L.byteOffset)return!1;M=M.buffer,L=L.buffer;case b:return!(M.byteLength!=L.byteLength||!F(new n(M),new n(L)));case h:case p:case y:return r(+M,+L);case d:return M.name==L.name&&M.message==L.message;case w:case _:return M==L+"";case m:var q=o;case N:var R=O&u;if(q||(q=l),M.size!=L.size&&!R)return!1;var Q=G.get(M);if(Q)return Q==L;O|=c,G.set(M,L);var z=i(q(M),q(L),O,P,F,G);return G.delete(M),z;case S:if(C)return C.call(M)==C.call(L)}return!1}return ep=A,ep}var tp,vb;function Kq(){if(vb)return tp;vb=1;var e=jC(),n=1,r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c,h,p,d){var m=c&n,y=e(l),w=y.length,N=e(u),_=N.length;if(w!=_&&!m)return!1;for(var S=w;S--;){var b=y[S];if(!(m?b in u:i.call(u,b)))return!1}var k=d.get(l),E=d.get(u);if(k&&E)return k==u&&E==l;var C=!0;d.set(l,u),d.set(u,l);for(var A=m;++S<w;){b=y[S];var M=l[b],L=u[b];if(h)var H=m?h(L,M,b,u,l,d):h(M,L,b,l,u,d);if(!(H===void 0?M===L||p(M,L,c,h,d):H)){C=!1;break}A||(A=b=="constructor")}if(C&&!A){var O=l.constructor,P=u.constructor;O!=P&&"constructor"in l&&"constructor"in u&&!(typeof O=="function"&&O instanceof O&&typeof P=="function"&&P instanceof P)&&(C=!1)}return d.delete(l),d.delete(u),C}return tp=o,tp}var np,yb;function Xq(){if(yb)return np;yb=1;var e=Mu(),n=FC(),r=Yq(),i=Kq(),o=_o(),l=bt(),u=xo(),c=Fa(),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function N(_,S,b,k,E,C){var A=l(_),M=l(S),L=A?d:o(_),H=M?d:o(S);L=L==p?m:L,H=H==p?m:H;var O=L==m,P=H==m,F=L==H;if(F&&u(_)){if(!u(S))return!1;A=!0,O=!1}if(F&&!O)return C||(C=new e),A||c(_)?n(_,S,b,k,E,C):r(_,S,L,b,k,E,C);if(!(b&h)){var G=O&&w.call(_,"__wrapped__"),q=P&&w.call(S,"__wrapped__");if(G||q){var R=G?_.value():_,Q=q?S.value():S;return C||(C=new e),E(R,Q,b,k,C)}}return F?(C||(C=new e),i(_,S,b,k,E,C)):!1}return np=N,np}var rp,wb;function zC(){if(wb)return rp;wb=1;var e=Xq(),n=vr();function r(i,o,l,u,c){return i===o?!0:i==null||o==null||!n(i)&&!n(o)?i!==i&&o!==o:e(i,o,l,u,r,c)}return rp=r,rp}var sp,xb;function Qq(){if(xb)return sp;xb=1;var e=Mu(),n=zC(),r=1,i=2;function o(l,u,c,h){var p=c.length,d=p,m=!h;if(l==null)return!d;for(l=Object(l);p--;){var y=c[p];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++p<d;){y=c[p];var w=y[0],N=l[w],_=y[1];if(m&&y[2]){if(N===void 0&&!(w in l))return!1}else{var S=new e;if(h)var b=h(N,_,w,l,u,S);if(!(b===void 0?n(_,N,r|i,h,S):b))return!1}}return!0}return sp=o,sp}var ip,_b;function BC(){if(_b)return ip;_b=1;var e=Ln();function n(r){return r===r&&!e(r)}return ip=n,ip}var op,bb;function Zq(){if(bb)return op;bb=1;var e=BC(),n=ks();function r(i){for(var o=n(i),l=o.length;l--;){var u=o[l],c=i[u];o[l]=[u,c,e(c)]}return o}return op=r,op}var ap,Sb;function UC(){if(Sb)return ap;Sb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return ap=e,ap}var lp,kb;function Jq(){if(kb)return lp;kb=1;var e=Qq(),n=Zq(),r=UC();function i(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return lp=i,lp}var up,Eb;function bo(){if(Eb)return up;Eb=1;var e=ui(),n=vr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return up=i,up}var cp,Nb;function ly(){if(Nb)return cp;Nb=1;var e=bt(),n=bo(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;function o(l,u){if(e(l))return!1;var c=typeof l;return c=="number"||c=="symbol"||c=="boolean"||l==null||n(l)?!0:i.test(l)||!r.test(l)||u!=null&&l in Object(u)}return cp=o,cp}var dp,Cb;function e$(){if(Cb)return dp;Cb=1;var e=Xv(),n="Expected a function";function r(i,o){if(typeof i!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],h=l.cache;if(h.has(c))return h.get(c);var p=i.apply(this,u);return l.cache=h.set(c,p)||h,p};return l.cache=new(r.Cache||e),l}return r.Cache=e,dp=r,dp}var fp,jb;function t$(){if(jb)return fp;jb=1;var e=e$(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return fp=r,fp}var hp,Rb;function n$(){if(Rb)return hp;Rb=1;var e=t$(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,i=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,h,p){l.push(h?p.replace(r,"$1"):c||u)}),l});return hp=i,hp}var pp,Tb;function zu(){if(Tb)return pp;Tb=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=Array(o);++i<o;)l[i]=r(n[i],i,n);return l}return pp=e,pp}var mp,Ab;function r$(){if(Ab)return mp;Ab=1;var e=wo(),n=zu(),r=bt(),i=bo(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(i(c))return l?l.call(c):"";var h=c+"";return h=="0"&&1/c==-1/0?"-0":h}return mp=u,mp}var gp,Ib;function HC(){if(Ib)return gp;Ib=1;var e=r$();function n(r){return r==null?"":e(r)}return gp=n,gp}var vp,Mb;function Bu(){if(Mb)return vp;Mb=1;var e=bt(),n=ly(),r=n$(),i=HC();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return vp=o,vp}var yp,Pb;function za(){if(Pb)return yp;Pb=1;var e=bo();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return yp=n,yp}var wp,Ob;function Uu(){if(Ob)return wp;Ob=1;var e=Bu(),n=za();function r(i,o){o=e(o,i);for(var l=0,u=o.length;i!=null&&l<u;)i=i[n(o[l++])];return l&&l==u?i:void 0}return wp=r,wp}var xp,Lb;function s$(){if(Lb)return xp;Lb=1;var e=Uu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return xp=n,xp}var _p,qb;function i$(){if(qb)return _p;qb=1;function e(n,r){return n!=null&&r in Object(n)}return _p=e,_p}var bp,$b;function WC(){if($b)return bp;$b=1;var e=Bu(),n=Da(),r=bt(),i=Lu(),o=Zv(),l=za();function u(c,h,p){h=e(h,c);for(var d=-1,m=h.length,y=!1;++d<m;){var w=l(h[d]);if(!(y=c!=null&&p(c,w)))break;c=c[w]}return y||++d!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&i(w,m)&&(r(c)||n(c)))}return bp=u,bp}var Sp,Db;function VC(){if(Db)return Sp;Db=1;var e=i$(),n=WC();function r(i,o){return i!=null&&n(i,o,e)}return Sp=r,Sp}var kp,Fb;function o$(){if(Fb)return kp;Fb=1;var e=zC(),n=s$(),r=VC(),i=ly(),o=BC(),l=UC(),u=za(),c=1,h=2;function p(d,m){return i(d)&&o(m)?l(u(d),m):function(y){var w=n(y,d);return w===void 0&&w===m?r(y,d):e(m,w,c|h)}}return kp=p,kp}var Ep,zb;function GC(){if(zb)return Ep;zb=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Ep=e,Ep}var Np,Bb;function a$(){if(Bb)return Np;Bb=1;var e=Uu();function n(r){return function(i){return e(i,r)}}return Np=n,Np}var Cp,Ub;function l$(){if(Ub)return Cp;Ub=1;var e=GC(),n=a$(),r=ly(),i=za();function o(l){return r(l)?e(i(l)):n(l)}return Cp=o,Cp}var jp,Hb;function Vr(){if(Hb)return jp;Hb=1;var e=Jq(),n=o$(),r=fi(),i=bt(),o=l$();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?i(u)?n(u[0],u[1]):e(u):o(u)}return jp=l,jp}var Rp,Wb;function YC(){if(Wb)return Rp;Wb=1;var e=kC(),n=Uq(),r=Vr(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return Rp=o,Rp}var Tp,Vb;function u$(){if(Vb)return Tp;Vb=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return Tp=r,Tp}var Ap,Gb;function KC(){if(Gb)return Ap;Gb=1;var e=u$(),n=WC();function r(i,o){return i!=null&&n(i,o,e)}return Ap=r,Ap}var Ip,Yb;function c$(){if(Yb)return Ip;Yb=1;var e=ey(),n=_o(),r=Da(),i=bt(),o=Wr(),l=xo(),u=$u(),c=Fa(),h="[object Map]",p="[object Set]",d=Object.prototype,m=d.hasOwnProperty;function y(w){if(w==null)return!0;if(o(w)&&(i(w)||typeof w=="string"||typeof w.splice=="function"||l(w)||c(w)||r(w)))return!w.length;var N=n(w);if(N==h||N==p)return!w.size;if(u(w))return!e(w).length;for(var _ in w)if(m.call(w,_))return!1;return!0}return Ip=y,Ip}var Mp,Kb;function XC(){if(Kb)return Mp;Kb=1;function e(n){return n===void 0}return Mp=e,Mp}var Pp,Xb;function QC(){if(Xb)return Pp;Xb=1;var e=Fu(),n=Wr();function r(i,o){var l=-1,u=n(i)?Array(i.length):[];return e(i,function(c,h,p){u[++l]=o(c,h,p)}),u}return Pp=r,Pp}var Op,Qb;function ZC(){if(Qb)return Op;Qb=1;var e=zu(),n=Vr(),r=QC(),i=bt();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Op=o,Op}var Lp,Zb;function d$(){if(Zb)return Lp;Zb=1;function e(n,r,i,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(i=n[++l]);++l<u;)i=r(i,n[l],l,n);return i}return Lp=e,Lp}var qp,Jb;function f$(){if(Jb)return qp;Jb=1;function e(n,r,i,o,l){return l(n,function(u,c,h){i=o?(o=!1,u):r(i,u,c,h)}),i}return qp=e,qp}var $p,eS;function JC(){if(eS)return $p;eS=1;var e=d$(),n=Fu(),r=Vr(),i=f$(),o=bt();function l(u,c,h){var p=o(u)?e:i,d=arguments.length<3;return p(u,r(c,4),h,d,n)}return $p=l,$p}var Dp,tS;function h$(){if(tS)return Dp;tS=1;var e=ui(),n=bt(),r=vr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Dp=o,Dp}var Fp,nS;function p$(){if(nS)return Fp;nS=1;var e=GC(),n=e("length");return Fp=n,Fp}var zp,rS;function m$(){if(rS)return zp;rS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function h(p){return c.test(p)}return zp=h,zp}var Bp,sS;function g$(){if(sS)return Bp;sS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",h="\\ud83c[\\udffb-\\udfff]",p="(?:"+c+"|"+h+")",d="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",w="\\u200d",N=p+"?",_="["+l+"]?",S="(?:"+w+"(?:"+[d,m,y].join("|")+")"+_+N+")*",b=_+N+S,k="(?:"+[d+c+"?",c,m,y,u].join("|")+")",E=RegExp(h+"(?="+h+")|"+k+b,"g");function C(A){for(var M=E.lastIndex=0;E.test(A);)++M;return M}return Bp=C,Bp}var Up,iS;function v$(){if(iS)return Up;iS=1;var e=p$(),n=m$(),r=g$();function i(o){return n(o)?r(o):e(o)}return Up=i,Up}var Hp,oS;function y$(){if(oS)return Hp;oS=1;var e=ey(),n=_o(),r=Wr(),i=h$(),o=v$(),l="[object Map]",u="[object Set]";function c(h){if(h==null)return 0;if(r(h))return i(h)?o(h):h.length;var p=n(h);return p==l||p==u?h.size:e(h).length}return Hp=c,Hp}var Wp,aS;function w$(){if(aS)return Wp;aS=1;var e=Qv(),n=IC(),r=oy(),i=Vr(),o=Du(),l=bt(),u=xo(),c=qa(),h=Ln(),p=Fa();function d(m,y,w){var N=l(m),_=N||u(m)||p(m);if(y=i(y,4),w==null){var S=m&&m.constructor;_?w=N?new S:[]:h(m)?w=c(S)?n(o(m)):{}:w={}}return(_?e:r)(m,function(b,k,E){return y(w,b,k,E)}),w}return Wp=d,Wp}var Vp,lS;function x$(){if(lS)return Vp;lS=1;var e=wo(),n=Da(),r=bt(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return Vp=o,Vp}var Gp,uS;function uy(){if(uS)return Gp;uS=1;var e=ny(),n=x$();function r(i,o,l,u,c){var h=-1,p=i.length;for(l||(l=n),c||(c=[]);++h<p;){var d=i[h];o>0&&l(d)?o>1?r(d,o-1,l,u,c):e(c,d):u||(c[c.length]=d)}return c}return Gp=r,Gp}var Yp,cS;function _$(){if(cS)return Yp;cS=1;function e(n,r,i){switch(i.length){case 0:return n.call(r);case 1:return n.call(r,i[0]);case 2:return n.call(r,i[0],i[1]);case 3:return n.call(r,i[0],i[1],i[2])}return n.apply(r,i)}return Yp=e,Yp}var Kp,dS;function ej(){if(dS)return Kp;dS=1;var e=_$(),n=Math.max;function r(i,o,l){return o=n(o===void 0?i.length-1:o,0),function(){for(var u=arguments,c=-1,h=n(u.length-o,0),p=Array(h);++c<h;)p[c]=u[o+c];c=-1;for(var d=Array(o+1);++c<o;)d[c]=u[c];return d[o]=l(p),e(i,this,d)}}return Kp=r,Kp}var Xp,fS;function b$(){if(fS)return Xp;fS=1;var e=sy(),n=wC(),r=fi(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return Xp=i,Xp}var Qp,hS;function S$(){if(hS)return Qp;hS=1;var e=800,n=16,r=Date.now;function i(o){var l=0,u=0;return function(){var c=r(),h=n-(c-u);if(u=c,h>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return Qp=i,Qp}var Zp,pS;function tj(){if(pS)return Zp;pS=1;var e=b$(),n=S$(),r=n(e);return Zp=r,Zp}var Jp,mS;function Hu(){if(mS)return Jp;mS=1;var e=fi(),n=ej(),r=tj();function i(o,l){return r(n(o,l,e),o+"")}return Jp=i,Jp}var em,gS;function nj(){if(gS)return em;gS=1;function e(n,r,i,o){for(var l=n.length,u=i+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return em=e,em}var tm,vS;function k$(){if(vS)return tm;vS=1;function e(n){return n!==n}return tm=e,tm}var nm,yS;function E$(){if(yS)return nm;yS=1;function e(n,r,i){for(var o=i-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return nm=e,nm}var rm,wS;function N$(){if(wS)return rm;wS=1;var e=nj(),n=k$(),r=E$();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return rm=i,rm}var sm,xS;function C$(){if(xS)return sm;xS=1;var e=N$();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return sm=n,sm}var im,_S;function j$(){if(_S)return im;_S=1;function e(n,r,i){for(var o=-1,l=n==null?0:n.length;++o<l;)if(i(r,n[o]))return!0;return!1}return im=e,im}var om,bS;function R$(){if(bS)return om;bS=1;function e(){}return om=e,om}var am,SS;function T$(){if(SS)return am;SS=1;var e=RC(),n=R$(),r=ay(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return am=o,am}var lm,kS;function A$(){if(kS)return lm;kS=1;var e=$C(),n=C$(),r=j$(),i=DC(),o=T$(),l=ay(),u=200;function c(h,p,d){var m=-1,y=n,w=h.length,N=!0,_=[],S=_;if(d)N=!1,y=r;else if(w>=u){var b=p?null:o(h);if(b)return l(b);N=!1,y=i,S=new e}else S=p?[]:_;e:for(;++m<w;){var k=h[m],E=p?p(k):k;if(k=d||k!==0?k:0,N&&E===E){for(var C=S.length;C--;)if(S[C]===E)continue e;p&&S.push(E),_.push(k)}else y(S,E,d)||(S!==_&&S.push(E),_.push(k))}return _}return lm=c,lm}var um,ES;function rj(){if(ES)return um;ES=1;var e=Wr(),n=vr();function r(i){return n(i)&&e(i)}return um=r,um}var cm,NS;function I$(){if(NS)return cm;NS=1;var e=uy(),n=Hu(),r=A$(),i=rj(),o=n(function(l){return r(e(l,1,i,!0))});return cm=o,cm}var dm,CS;function M$(){if(CS)return dm;CS=1;var e=zu();function n(r,i){return e(i,function(o){return r[o]})}return dm=n,dm}var fm,jS;function sj(){if(jS)return fm;jS=1;var e=M$(),n=ks();function r(i){return i==null?[]:e(i,n(i))}return fm=r,fm}var hm,RS;function qn(){if(RS)return hm;RS=1;var e;if(typeof Yv=="function")try{e={clone:Fq(),constant:sy(),each:qC(),filter:YC(),has:KC(),isArray:bt(),isEmpty:c$(),isFunction:qa(),isUndefined:XC(),keys:ks(),map:ZC(),reduce:JC(),size:y$(),transform:w$(),union:I$(),values:sj()}}catch{}return e||(e=window._),hm=e,hm}var pm,TS;function cy(){if(TS)return pm;TS=1;var e=qn();pm=o;var n="\0",r="\0",i="";function o(d){this._isDirected=e.has(d,"directed")?d.directed:!0,this._isMultigraph=e.has(d,"multigraph")?d.multigraph:!1,this._isCompound=e.has(d,"compound")?d.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(d){return this._label=d,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultNodeLabelFn=d,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._in[m])})},o.prototype.sinks=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._out[m])})},o.prototype.setNodes=function(d,m){var y=arguments,w=this;return e.each(d,function(N){y.length>1?w.setNode(N,m):w.setNode(N)}),this},o.prototype.setNode=function(d,m){return e.has(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=m),this):(this._nodes[d]=arguments.length>1?m:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=r,this._children[d]={},this._children[r][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)},o.prototype.node=function(d){return this._nodes[d]},o.prototype.hasNode=function(d){return e.has(this._nodes,d)},o.prototype.removeNode=function(d){var m=this;if(e.has(this._nodes,d)){var y=function(w){m.removeEdge(m._edgeObjs[w])};delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],e.each(this.children(d),function(w){m.setParent(w)}),delete this._children[d]),e.each(e.keys(this._in[d]),y),delete this._in[d],delete this._preds[d],e.each(e.keys(this._out[d]),y),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this},o.prototype.setParent=function(d,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=r;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===d)throw new Error("Setting "+m+" as parent of "+d+" would create a cycle");this.setNode(m)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=m,this._children[m][d]=!0,this},o.prototype._removeFromParentsChildList=function(d){delete this._children[this._parent[d]][d]},o.prototype.parent=function(d){if(this._isCompound){var m=this._parent[d];if(m!==r)return m}},o.prototype.children=function(d){if(e.isUndefined(d)&&(d=r),this._isCompound){var m=this._children[d];if(m)return e.keys(m)}else{if(d===r)return this.nodes();if(this.hasNode(d))return[]}},o.prototype.predecessors=function(d){var m=this._preds[d];if(m)return e.keys(m)},o.prototype.successors=function(d){var m=this._sucs[d];if(m)return e.keys(m)},o.prototype.neighbors=function(d){var m=this.predecessors(d);if(m)return e.union(m,this.successors(d))},o.prototype.isLeaf=function(d){var m;return this.isDirected()?m=this.successors(d):m=this.neighbors(d),m.length===0},o.prototype.filterNodes=function(d){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){d(S)&&m.setNode(S,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var w={};function N(_){var S=y.parent(_);return S===void 0||m.hasNode(S)?(w[_]=S,S):S in w?w[S]:N(S)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,N(_))}),m},o.prototype.setDefaultEdgeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultEdgeLabelFn=d,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(d,m){var y=this,w=arguments;return e.reduce(d,function(N,_){return w.length>1?y.setEdge(N,_,m):y.setEdge(N,_),_}),this},o.prototype.setEdge=function(){var d,m,y,w,N=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(d=_.v,m=_.w,y=_.name,arguments.length===2&&(w=arguments[1],N=!0)):(d=_,m=arguments[1],y=arguments[3],arguments.length>2&&(w=arguments[2],N=!0)),d=""+d,m=""+m,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,d,m,y);if(e.has(this._edgeLabels,S))return N&&(this._edgeLabels[S]=w),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(m),this._edgeLabels[S]=N?w:this._defaultEdgeLabelFn(d,m,y);var b=h(this._isDirected,d,m,y);return d=b.v,m=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[m],d),l(this._sucs[d],m),this._in[m][S]=b,this._out[d][S]=b,this._edgeCount++,this},o.prototype.edge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return this._edgeLabels[w]},o.prototype.hasEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return e.has(this._edgeLabels,w)},o.prototype.removeEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y),N=this._edgeObjs[w];return N&&(d=N.v,m=N.w,delete this._edgeLabels[w],delete this._edgeObjs[w],u(this._preds[m],d),u(this._sucs[d],m),delete this._in[m][w],delete this._out[d][w],this._edgeCount--),this},o.prototype.inEdges=function(d,m){var y=this._in[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.v===m}):w}},o.prototype.outEdges=function(d,m){var y=this._out[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.w===m}):w}},o.prototype.nodeEdges=function(d,m){var y=this.inEdges(d,m);if(y)return y.concat(this.outEdges(d,m))};function l(d,m){d[m]?d[m]++:d[m]=1}function u(d,m){--d[m]||delete d[m]}function c(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var S=N;N=_,_=S}return N+i+_+i+(e.isUndefined(w)?n:w)}function h(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var S=N;N=_,_=S}var b={v:N,w:_};return w&&(b.name=w),b}function p(d,m){return c(d,m.v,m.w,m.name)}return pm}var mm,AS;function P$(){return AS||(AS=1,mm="2.1.8"),mm}var gm,IS;function O$(){return IS||(IS=1,gm={Graph:cy(),version:P$()}),gm}var vm,MS;function L$(){if(MS)return vm;MS=1;var e=qn(),n=cy();vm={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:i(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function i(u){return e.map(u.nodes(),function(c){var h=u.node(c),p=u.parent(c),d={v:c};return e.isUndefined(h)||(d.value=h),e.isUndefined(p)||(d.parent=p),d})}function o(u){return e.map(u.edges(),function(c){var h=u.edge(c),p={v:c.v,w:c.w};return e.isUndefined(c.name)||(p.name=c.name),e.isUndefined(h)||(p.value=h),p})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(h){c.setNode(h.v,h.value),h.parent&&c.setParent(h.v,h.parent)}),e.each(u.edges,function(h){c.setEdge({v:h.v,w:h.w,name:h.name},h.value)}),c}return vm}var ym,PS;function q$(){if(PS)return ym;PS=1;var e=qn();ym=n;function n(r){var i={},o=[],l;function u(c){e.has(i,c)||(i[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return ym}var wm,OS;function ij(){if(OS)return wm;OS=1;var e=qn();wm=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var i=this._keyIndices[r];if(i!==void 0)return this._arr[i].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,i){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:i}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,i){var o=this._keyIndices[r];if(i>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+i);this._arr[o].priority=i,this._decrease(o)},n.prototype._heapify=function(r){var i=this._arr,o=2*r,l=o+1,u=r;o<i.length&&(u=i[o].priority<i[u].priority?o:u,l<i.length&&(u=i[l].priority<i[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var i=this._arr,o=i[r].priority,l;r!==0&&(l=r>>1,!(i[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,i){var o=this._arr,l=this._keyIndices,u=o[r],c=o[i];o[r]=c,o[i]=u,l[c.key]=r,l[u.key]=i},wm}var xm,LS;function oj(){if(LS)return xm;LS=1;var e=qn(),n=ij();xm=i;var r=e.constant(1);function i(l,u,c,h){return o(l,String(u),c||r,h||function(p){return l.outEdges(p)})}function o(l,u,c,h){var p={},d=new n,m,y,w=function(N){var _=N.v!==m?N.v:N.w,S=p[_],b=c(N),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=m,d.decrease(_,k))};for(l.nodes().forEach(function(N){var _=N===u?0:Number.POSITIVE_INFINITY;p[N]={distance:_},d.add(N,_)});d.size()>0&&(m=d.removeMin(),y=p[m],y.distance!==Number.POSITIVE_INFINITY);)h(m).forEach(w);return p}return xm}var _m,qS;function $$(){if(qS)return _m;qS=1;var e=oj(),n=qn();_m=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return _m}var bm,$S;function aj(){if($S)return bm;$S=1;var e=qn();bm=n;function n(r){var i=0,o=[],l={},u=[];function c(h){var p=l[h]={onStack:!0,lowlink:i,index:i++};if(o.push(h),r.successors(h).forEach(function(y){e.has(l,y)?l[y].onStack&&(p.lowlink=Math.min(p.lowlink,l[y].index)):(c(y),p.lowlink=Math.min(p.lowlink,l[y].lowlink))}),p.lowlink===p.index){var d=[],m;do m=o.pop(),l[m].onStack=!1,d.push(m);while(h!==m);u.push(d)}}return r.nodes().forEach(function(h){e.has(l,h)||c(h)}),u}return bm}var Sm,DS;function D$(){if(DS)return Sm;DS=1;var e=qn(),n=aj();Sm=r;function r(i){return e.filter(n(i),function(o){return o.length>1||o.length===1&&i.hasEdge(o[0],o[0])})}return Sm}var km,FS;function F$(){if(FS)return km;FS=1;var e=qn();km=r;var n=e.constant(1);function r(o,l,u){return i(o,l||n,u||function(c){return o.outEdges(c)})}function i(o,l,u){var c={},h=o.nodes();return h.forEach(function(p){c[p]={},c[p][p]={distance:0},h.forEach(function(d){p!==d&&(c[p][d]={distance:Number.POSITIVE_INFINITY})}),u(p).forEach(function(d){var m=d.v===p?d.w:d.v,y=l(d);c[p][m]={distance:y,predecessor:p}})}),h.forEach(function(p){var d=c[p];h.forEach(function(m){var y=c[m];h.forEach(function(w){var N=y[p],_=d[w],S=y[w],b=N.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return km}var Em,zS;function lj(){if(zS)return Em;zS=1;var e=qn();Em=n,n.CycleException=r;function n(i){var o={},l={},u=[];function c(h){if(e.has(l,h))throw new r;e.has(o,h)||(l[h]=!0,o[h]=!0,e.each(i.predecessors(h),c),delete l[h],u.push(h))}if(e.each(i.sinks(),c),e.size(o)!==i.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Em}var Nm,BS;function z$(){if(BS)return Nm;BS=1;var e=lj();Nm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Nm}var Cm,US;function uj(){if(US)return Cm;US=1;var e=qn();Cm=n;function n(i,o,l){e.isArray(o)||(o=[o]);var u=(i.isDirected()?i.successors:i.neighbors).bind(i),c=[],h={};return e.each(o,function(p){if(!i.hasNode(p))throw new Error("Graph does not have node: "+p);r(i,p,l==="post",h,u,c)}),c}function r(i,o,l,u,c,h){e.has(u,o)||(u[o]=!0,l||h.push(o),e.each(c(o),function(p){r(i,p,l,u,c,h)}),l&&h.push(o))}return Cm}var jm,HS;function B$(){if(HS)return jm;HS=1;var e=uj();jm=n;function n(r,i){return e(r,i,"post")}return jm}var Rm,WS;function U$(){if(WS)return Rm;WS=1;var e=uj();Rm=n;function n(r,i){return e(r,i,"pre")}return Rm}var Tm,VS;function H$(){if(VS)return Tm;VS=1;var e=qn(),n=cy(),r=ij();Tm=i;function i(o,l){var u=new n,c={},h=new r,p;function d(y){var w=y.v===p?y.w:y.v,N=h.priority(w);if(N!==void 0){var _=l(y);_<N&&(c[w]=p,h.decrease(w,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){h.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),h.decrease(o.nodes()[0],0);for(var m=!1;h.size()>0;){if(p=h.removeMin(),e.has(c,p))u.setEdge(p,c[p]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(p).forEach(d)}return u}return Tm}var Am,GS;function W$(){return GS||(GS=1,Am={components:q$(),dijkstra:oj(),dijkstraAll:$$(),findCycles:D$(),floydWarshall:F$(),isAcyclic:z$(),postorder:B$(),preorder:U$(),prim:H$(),tarjan:aj(),topsort:lj()}),Am}var Im,YS;function V$(){if(YS)return Im;YS=1;var e=O$();return Im={Graph:e.Graph,json:L$(),alg:W$(),version:e.version},Im}var Mm,KS;function Jn(){if(KS)return Mm;KS=1;var e;if(typeof Yv=="function")try{e=V$()}catch{}return e||(e=window.graphlib),Mm=e,Mm}var Pm,XS;function G$(){if(XS)return Pm;XS=1;var e=PC(),n=1,r=4;function i(o){return e(o,n|r)}return Pm=i,Pm}var Om,QS;function Wu(){if(QS)return Om;QS=1;var e=yo(),n=Wr(),r=Lu(),i=Ln();function o(l,u,c){if(!i(c))return!1;var h=typeof u;return(h=="number"?n(c)&&r(u,c.length):h=="string"&&u in c)?e(c[u],l):!1}return Om=o,Om}var Lm,ZS;function Y$(){if(ZS)return Lm;ZS=1;var e=Hu(),n=yo(),r=Wu(),i=di(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,h){c=Object(c);var p=-1,d=h.length,m=d>2?h[2]:void 0;for(m&&r(h[0],h[1],m)&&(d=1);++p<d;)for(var y=h[p],w=i(y),N=-1,_=w.length;++N<_;){var S=w[N],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return Lm=u,Lm}var qm,JS;function K$(){if(JS)return qm;JS=1;var e=Vr(),n=Wr(),r=ks();function i(o){return function(l,u,c){var h=Object(l);if(!n(l)){var p=e(u,3);l=r(l),u=function(m){return p(h[m],m,h)}}var d=o(l,u,c);return d>-1?h[p?l[d]:d]:void 0}}return qm=i,qm}var $m,ek;function X$(){if(ek)return $m;ek=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return $m=n,$m}var Dm,tk;function Q$(){if(tk)return Dm;tk=1;var e=X$(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Dm=r,Dm}var Fm,nk;function Z$(){if(nk)return Fm;nk=1;var e=Q$(),n=Ln(),r=bo(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function h(p){if(typeof p=="number")return p;if(r(p))return i;if(n(p)){var d=typeof p.valueOf=="function"?p.valueOf():p;p=n(d)?d+"":d}if(typeof p!="string")return p===0?p:+p;p=e(p);var m=l.test(p);return m||u.test(p)?c(p.slice(2),m?2:8):o.test(p)?i:+p}return Fm=h,Fm}var zm,rk;function cj(){if(rk)return zm;rk=1;var e=Z$(),n=1/0,r=17976931348623157e292;function i(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return zm=i,zm}var Bm,sk;function J$(){if(sk)return Bm;sk=1;var e=cj();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Bm=n,Bm}var Um,ik;function e4(){if(ik)return Um;ik=1;var e=nj(),n=Vr(),r=J$(),i=Math.max;function o(l,u,c){var h=l==null?0:l.length;if(!h)return-1;var p=c==null?0:r(c);return p<0&&(p=i(h+p,0)),e(l,n(u,3),p)}return Um=o,Um}var Hm,ok;function t4(){if(ok)return Hm;ok=1;var e=K$(),n=e4(),r=e(n);return Hm=r,Hm}var Wm,ak;function dj(){if(ak)return Wm;ak=1;var e=uy();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return Wm=n,Wm}var Vm,lk;function n4(){if(lk)return Vm;lk=1;var e=iy(),n=OC(),r=di();function i(o,l){return o==null?o:e(o,n(l),r)}return Vm=i,Vm}var Gm,uk;function r4(){if(uk)return Gm;uk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return Gm=e,Gm}var Ym,ck;function s4(){if(ck)return Ym;ck=1;var e=Pu(),n=oy(),r=Vr();function i(o,l){var u={};return l=r(l,3),n(o,function(c,h,p){e(u,h,l(c,h,p))}),u}return Ym=i,Ym}var Km,dk;function dy(){if(dk)return Km;dk=1;var e=bo();function n(r,i,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],h=i(c);if(h!=null&&(p===void 0?h===h&&!e(h):o(h,p)))var p=h,d=c}return d}return Km=n,Km}var Xm,fk;function i4(){if(fk)return Xm;fk=1;function e(n,r){return n>r}return Xm=e,Xm}var Qm,hk;function o4(){if(hk)return Qm;hk=1;var e=dy(),n=i4(),r=fi();function i(o){return o&&o.length?e(o,r,n):void 0}return Qm=i,Qm}var Zm,pk;function fj(){if(pk)return Zm;pk=1;var e=Pu(),n=yo();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return Zm=r,Zm}var Jm,mk;function a4(){if(mk)return Jm;mk=1;var e=ui(),n=Du(),r=vr(),i="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,h=u.call(Object);function p(d){if(!r(d)||e(d)!=i)return!1;var m=n(d);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==h}return Jm=p,Jm}var eg,gk;function hj(){if(gk)return eg;gk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return eg=e,eg}var tg,vk;function l4(){if(vk)return tg;vk=1;var e=$a(),n=di();function r(i){return e(i,n(i))}return tg=r,tg}var ng,yk;function u4(){if(yk)return ng;yk=1;var e=fj(),n=bC(),r=AC(),i=SC(),o=MC(),l=Da(),u=bt(),c=rj(),h=xo(),p=qa(),d=Ln(),m=a4(),y=Fa(),w=hj(),N=l4();function _(S,b,k,E,C,A,M){var L=w(S,k),H=w(b,k),O=M.get(H);if(O){e(S,k,O);return}var P=A?A(L,H,k+"",S,b,M):void 0,F=P===void 0;if(F){var G=u(H),q=!G&&h(H),R=!G&&!q&&y(H);P=H,G||q||R?u(L)?P=L:c(L)?P=i(L):q?(F=!1,P=n(H,!0)):R?(F=!1,P=r(H,!0)):P=[]:m(H)||l(H)?(P=L,l(L)?P=N(L):(!d(L)||p(L))&&(P=o(H))):F=!1}F&&(M.set(H,P),C(P,H,E,A,M),M.delete(H)),e(S,k,P)}return ng=_,ng}var rg,wk;function c4(){if(wk)return rg;wk=1;var e=Mu(),n=fj(),r=iy(),i=u4(),o=Ln(),l=di(),u=hj();function c(h,p,d,m,y){h!==p&&r(p,function(w,N){if(y||(y=new e),o(w))i(h,p,N,d,c,m,y);else{var _=m?m(u(h,N),w,N+"",h,p,y):void 0;_===void 0&&(_=w),n(h,N,_)}},l)}return rg=c,rg}var sg,xk;function d4(){if(xk)return sg;xk=1;var e=Hu(),n=Wu();function r(i){return e(function(o,l){var u=-1,c=l.length,h=c>1?l[c-1]:void 0,p=c>2?l[2]:void 0;for(h=i.length>3&&typeof h=="function"?(c--,h):void 0,p&&n(l[0],l[1],p)&&(h=c<3?void 0:h,c=1),o=Object(o);++u<c;){var d=l[u];d&&i(o,d,u,h)}return o})}return sg=r,sg}var ig,_k;function f4(){if(_k)return ig;_k=1;var e=c4(),n=d4(),r=n(function(i,o,l){e(i,o,l)});return ig=r,ig}var og,bk;function pj(){if(bk)return og;bk=1;function e(n,r){return n<r}return og=e,og}var ag,Sk;function h4(){if(Sk)return ag;Sk=1;var e=dy(),n=pj(),r=fi();function i(o){return o&&o.length?e(o,r,n):void 0}return ag=i,ag}var lg,kk;function p4(){if(kk)return lg;kk=1;var e=dy(),n=Vr(),r=pj();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return lg=i,lg}var ug,Ek;function m4(){if(Ek)return ug;Ek=1;var e=tr(),n=function(){return e.Date.now()};return ug=n,ug}var cg,Nk;function g4(){if(Nk)return cg;Nk=1;var e=Ou(),n=Bu(),r=Lu(),i=Ln(),o=za();function l(u,c,h,p){if(!i(u))return u;c=n(c,u);for(var d=-1,m=c.length,y=m-1,w=u;w!=null&&++d<m;){var N=o(c[d]),_=h;if(N==="__proto__"||N==="constructor"||N==="prototype")return u;if(d!=y){var S=w[N];_=p?p(S,N,w):void 0,_===void 0&&(_=i(S)?S:r(c[d+1])?[]:{})}e(w,N,_),w=w[N]}return u}return cg=l,cg}var dg,Ck;function v4(){if(Ck)return dg;Ck=1;var e=Uu(),n=g4(),r=Bu();function i(o,l,u){for(var c=-1,h=l.length,p={};++c<h;){var d=l[c],m=e(o,d);u(m,d)&&n(p,r(d,o),m)}return p}return dg=i,dg}var fg,jk;function y4(){if(jk)return fg;jk=1;var e=v4(),n=VC();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return fg=r,fg}var hg,Rk;function w4(){if(Rk)return hg;Rk=1;var e=dj(),n=ej(),r=tj();function i(o){return r(n(o,void 0,e),o+"")}return hg=i,hg}var pg,Tk;function x4(){if(Tk)return pg;Tk=1;var e=y4(),n=w4(),r=n(function(i,o){return i==null?{}:e(i,o)});return pg=r,pg}var mg,Ak;function _4(){if(Ak)return mg;Ak=1;var e=Math.ceil,n=Math.max;function r(i,o,l,u){for(var c=-1,h=n(e((o-i)/(l||1)),0),p=Array(h);h--;)p[u?h:++c]=i,i+=l;return p}return mg=r,mg}var gg,Ik;function b4(){if(Ik)return gg;Ik=1;var e=_4(),n=Wu(),r=cj();function i(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return gg=i,gg}var vg,Mk;function S4(){if(Mk)return vg;Mk=1;var e=b4(),n=e();return vg=n,vg}var yg,Pk;function k4(){if(Pk)return yg;Pk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return yg=e,yg}var wg,Ok;function E4(){if(Ok)return wg;Ok=1;var e=bo();function n(r,i){if(r!==i){var o=r!==void 0,l=r===null,u=r===r,c=e(r),h=i!==void 0,p=i===null,d=i===i,m=e(i);if(!p&&!m&&!c&&r>i||c&&h&&d&&!p&&!m||l&&h&&d||!o&&d||!u)return 1;if(!l&&!c&&!m&&r<i||m&&o&&u&&!l&&!c||p&&o&&u||!h&&u||!d)return-1}return 0}return wg=n,wg}var xg,Lk;function N4(){if(Lk)return xg;Lk=1;var e=E4();function n(r,i,o){for(var l=-1,u=r.criteria,c=i.criteria,h=u.length,p=o.length;++l<h;){var d=e(u[l],c[l]);if(d){if(l>=p)return d;var m=o[l];return d*(m=="desc"?-1:1)}}return r.index-i.index}return xg=n,xg}var _g,qk;function C4(){if(qk)return _g;qk=1;var e=zu(),n=Uu(),r=Vr(),i=QC(),o=k4(),l=qu(),u=N4(),c=fi(),h=bt();function p(d,m,y){m.length?m=e(m,function(_){return h(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):m=[c];var w=-1;m=e(m,l(r));var N=i(d,function(_,S,b){var k=e(m,function(E){return E(_)});return{criteria:k,index:++w,value:_}});return o(N,function(_,S){return u(_,S,y)})}return _g=p,_g}var bg,$k;function j4(){if($k)return bg;$k=1;var e=uy(),n=C4(),r=Hu(),i=Wu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&i(l,u[0],u[1])?u=[]:c>2&&i(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return bg=o,bg}var Sg,Dk;function R4(){if(Dk)return Sg;Dk=1;var e=HC(),n=0;function r(i){var o=++n;return e(i)+o}return Sg=r,Sg}var kg,Fk;function T4(){if(Fk)return kg;Fk=1;function e(n,r,i){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var h=o<u?r[o]:void 0;i(c,n[o],h)}return c}return kg=e,kg}var Eg,zk;function A4(){if(zk)return Eg;zk=1;var e=Ou(),n=T4();function r(i,o){return n(i||[],o||[],e)}return Eg=r,Eg}var Ng,Bk;function it(){if(Bk)return Ng;Bk=1;var e;if(typeof Yv=="function")try{e={cloneDeep:G$(),constant:sy(),defaults:Y$(),each:qC(),filter:YC(),find:t4(),flatten:dj(),forEach:LC(),forIn:n4(),has:KC(),isUndefined:XC(),last:r4(),map:ZC(),mapValues:s4(),max:o4(),merge:f4(),min:h4(),minBy:p4(),now:m4(),pick:x4(),range:S4(),reduce:JC(),sortBy:j4(),uniqueId:R4(),values:sj(),zipObject:A4()}}catch{}return e||(e=window._),Ng=e,Ng}var Cg,Uk;function I4(){if(Uk)return Cg;Uk=1,Cg=e;function e(){var i={};i._next=i._prev=i,this._sentinel=i}e.prototype.dequeue=function(){var i=this._sentinel,o=i._prev;if(o!==i)return n(o),o},e.prototype.enqueue=function(i){var o=this._sentinel;i._prev&&i._next&&n(i),i._next=o._next,o._next._prev=i,o._next=i,i._prev=o},e.prototype.toString=function(){for(var i=[],o=this._sentinel,l=o._prev;l!==o;)i.push(JSON.stringify(l,r)),l=l._prev;return"["+i.join(", ")+"]"};function n(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function r(i,o){if(i!=="_next"&&i!=="_prev")return o}return Cg}var jg,Hk;function M4(){if(Hk)return jg;Hk=1;var e=it(),n=Jn().Graph,r=I4();jg=o;var i=e.constant(1);function o(p,d){if(p.nodeCount()<=1)return[];var m=c(p,d||i),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(w){return p.outEdges(w.v,w.w)}),!0)}function l(p,d,m){for(var y=[],w=d[d.length-1],N=d[0],_;p.nodeCount();){for(;_=N.dequeue();)u(p,d,m,_);for(;_=w.dequeue();)u(p,d,m,_);if(p.nodeCount()){for(var S=d.length-2;S>0;--S)if(_=d[S].dequeue(),_){y=y.concat(u(p,d,m,_,!0));break}}}return y}function u(p,d,m,y,w){var N=w?[]:void 0;return e.forEach(p.inEdges(y.v),function(_){var S=p.edge(_),b=p.node(_.v);w&&N.push({v:_.v,w:_.w}),b.out-=S,h(d,m,b)}),e.forEach(p.outEdges(y.v),function(_){var S=p.edge(_),b=_.w,k=p.node(b);k.in-=S,h(d,m,k)}),p.removeNode(y.v),N}function c(p,d){var m=new n,y=0,w=0;e.forEach(p.nodes(),function(S){m.setNode(S,{v:S,in:0,out:0})}),e.forEach(p.edges(),function(S){var b=m.edge(S.v,S.w)||0,k=d(S),E=b+k;m.setEdge(S.v,S.w,E),w=Math.max(w,m.node(S.v).out+=k),y=Math.max(y,m.node(S.w).in+=k)});var N=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(S){h(N,_,m.node(S))}),{graph:m,buckets:N,zeroIdx:_}}function h(p,d,m){m.out?m.in?p[m.out-m.in+d].enqueue(m):p[p.length-1].enqueue(m):p[0].enqueue(m)}return jg}var Rg,Wk;function P4(){if(Wk)return Rg;Wk=1;var e=it(),n=M4();Rg={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):i(l);e.forEach(u,function(h){var p=l.edge(h);l.removeEdge(h),p.forwardName=h.name,p.reversed=!0,l.setEdge(h.w,h.v,p,e.uniqueId("rev"))});function c(h){return function(p){return h.edge(p).weight}}}function i(l){var u=[],c={},h={};function p(d){e.has(h,d)||(h[d]=!0,c[d]=!0,e.forEach(l.outEdges(d),function(m){e.has(c,m.w)?u.push(m):p(m.w)}),delete c[d])}return e.forEach(l.nodes(),p),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var h=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,h)}})}return Rg}var Tg,Vk;function hn(){if(Vk)return Tg;Vk=1;var e=it(),n=Jn().Graph;Tg={addDummyNode:r,simplify:i,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:h,normalizeRanks:p,removeEmptyRanks:d,addBorderNode:m,maxRank:y,partition:w,time:N,notime:_};function r(S,b,k,E){var C;do C=e.uniqueId(E);while(S.hasNode(C));return k.dummy=b,S.setNode(C,k),C}function i(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var E=b.edge(k.v,k.w)||{weight:0,minlen:1},C=S.edge(k);b.setEdge(k.v,k.w,{weight:E.weight+C.weight,minlen:Math.max(E.minlen,C.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var E={};return e.forEach(S.outEdges(k),function(C){E[C.w]=(E[C.w]||0)+S.edge(C).weight}),E});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(k){var E={};return e.forEach(S.inEdges(k),function(C){E[C.v]=(E[C.v]||0)+S.edge(C).weight}),E});return e.zipObject(S.nodes(),b)}function c(S,b){var k=S.x,E=S.y,C=b.x-k,A=b.y-E,M=S.width/2,L=S.height/2;if(!C&&!A)throw new Error("Not possible to find intersection inside of the rectangle");var H,O;return Math.abs(A)*M>Math.abs(C)*L?(A<0&&(L=-L),H=L*C/A,O=L):(C<0&&(M=-M),H=M,O=M*A/C),{x:k+H,y:E+O}}function h(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var E=S.node(k),C=E.rank;e.isUndefined(C)||(b[C][E.order]=k)}),b}function p(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var E=S.node(k);e.has(E,"rank")&&(E.rank-=b)})}function d(S){var b=e.min(e.map(S.nodes(),function(A){return S.node(A).rank})),k=[];e.forEach(S.nodes(),function(A){var M=S.node(A).rank-b;k[M]||(k[M]=[]),k[M].push(A)});var E=0,C=S.graph().nodeRankFactor;e.forEach(k,function(A,M){e.isUndefined(A)&&M%C!==0?--E:E&&e.forEach(A,function(L){S.node(L).rank+=E})})}function m(S,b,k,E){var C={width:0,height:0};return arguments.length>=4&&(C.rank=k,C.order=E),r(S,"border",C,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function w(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(E){b(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return Tg}var Ag,Gk;function O4(){if(Gk)return Ag;Gk=1;var e=it(),n=hn();Ag={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){i(l,u)})}function i(l,u){var c=u.v,h=l.node(c).rank,p=u.w,d=l.node(p).rank,m=u.name,y=l.edge(u),w=y.labelRank;if(d!==h+1){l.removeEdge(u);var N,_,S;for(S=0,++h;h<d;++S,++h)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:h},N=n.addDummyNode(l,"edge",_,"_d"),h===w&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,N,{weight:y.weight},m),S===0&&l.graph().dummyChains.push(N),c=N;l.setEdge(c,p,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),h=c.edgeLabel,p;for(l.setEdge(c.edgeObj,h);c.dummy;)p=l.successors(u)[0],l.removeNode(u),h.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(h.x=c.x,h.y=c.y,h.width=c.width,h.height=c.height),u=p,c=l.node(u)})}return Ag}var Ig,Yk;function wu(){if(Yk)return Ig;Yk=1;var e=it();Ig={longestPath:n,slack:r};function n(i){var o={};function l(u){var c=i.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var h=e.min(e.map(i.outEdges(u),function(p){return l(p.w)-i.edge(p).minlen}));return(h===Number.POSITIVE_INFINITY||h===void 0||h===null)&&(h=0),c.rank=h}e.forEach(i.sources(),l)}function r(i,o){return i.node(o.w).rank-i.node(o.v).rank-i.edge(o).minlen}return Ig}var Mg,Kk;function mj(){if(Kk)return Mg;Kk=1;var e=it(),n=Jn().Graph,r=wu().slack;Mg=i;function i(c){var h=new n({directed:!1}),p=c.nodes()[0],d=c.nodeCount();h.setNode(p,{});for(var m,y;o(h,c)<d;)m=l(h,c),y=h.hasNode(m.v)?r(c,m):-r(c,m),u(h,c,y);return h}function o(c,h){function p(d){e.forEach(h.nodeEdges(d),function(m){var y=m.v,w=d===y?m.w:y;!c.hasNode(w)&&!r(h,m)&&(c.setNode(w,{}),c.setEdge(d,w,{}),p(w))})}return e.forEach(c.nodes(),p),c.nodeCount()}function l(c,h){return e.minBy(h.edges(),function(p){if(c.hasNode(p.v)!==c.hasNode(p.w))return r(h,p)})}function u(c,h,p){e.forEach(c.nodes(),function(d){h.node(d).rank+=p})}return Mg}var Pg,Xk;function L4(){if(Xk)return Pg;Xk=1;var e=it(),n=mj(),r=wu().slack,i=wu().longestPath,o=Jn().alg.preorder,l=Jn().alg.postorder,u=hn().simplify;Pg=c,c.initLowLimValues=m,c.initCutValues=h,c.calcCutValue=d,c.leaveEdge=w,c.enterEdge=N,c.exchangeEdges=_;function c(E){E=u(E),i(E);var C=n(E);m(C),h(C,E);for(var A,M;A=w(C);)M=N(C,E,A),_(C,E,A,M)}function h(E,C){var A=l(E,E.nodes());A=A.slice(0,A.length-1),e.forEach(A,function(M){p(E,C,M)})}function p(E,C,A){var M=E.node(A),L=M.parent;E.edge(A,L).cutvalue=d(E,C,A)}function d(E,C,A){var M=E.node(A),L=M.parent,H=!0,O=C.edge(A,L),P=0;return O||(H=!1,O=C.edge(L,A)),P=O.weight,e.forEach(C.nodeEdges(A),function(F){var G=F.v===A,q=G?F.w:F.v;if(q!==L){var R=G===H,Q=C.edge(F).weight;if(P+=R?Q:-Q,b(E,A,q)){var z=E.edge(A,q).cutvalue;P+=R?-z:z}}}),P}function m(E,C){arguments.length<2&&(C=E.nodes()[0]),y(E,{},1,C)}function y(E,C,A,M,L){var H=A,O=E.node(M);return C[M]=!0,e.forEach(E.neighbors(M),function(P){e.has(C,P)||(A=y(E,C,A,P,M))}),O.low=H,O.lim=A++,L?O.parent=L:delete O.parent,A}function w(E){return e.find(E.edges(),function(C){return E.edge(C).cutvalue<0})}function N(E,C,A){var M=A.v,L=A.w;C.hasEdge(M,L)||(M=A.w,L=A.v);var H=E.node(M),O=E.node(L),P=H,F=!1;H.lim>O.lim&&(P=O,F=!0);var G=e.filter(C.edges(),function(q){return F===k(E,E.node(q.v),P)&&F!==k(E,E.node(q.w),P)});return e.minBy(G,function(q){return r(C,q)})}function _(E,C,A,M){var L=A.v,H=A.w;E.removeEdge(L,H),E.setEdge(M.v,M.w,{}),m(E),h(E,C),S(E,C)}function S(E,C){var A=e.find(E.nodes(),function(L){return!C.node(L).parent}),M=o(E,A);M=M.slice(1),e.forEach(M,function(L){var H=E.node(L).parent,O=C.edge(L,H),P=!1;O||(O=C.edge(H,L),P=!0),C.node(L).rank=C.node(H).rank+(P?O.minlen:-O.minlen)})}function b(E,C,A){return E.hasEdge(C,A)}function k(E,C,A){return A.low<=C.lim&&C.lim<=A.lim}return Pg}var Og,Qk;function q4(){if(Qk)return Og;Qk=1;var e=wu(),n=e.longestPath,r=mj(),i=L4();Og=o;function o(h){switch(h.graph().ranker){case"network-simplex":c(h);break;case"tight-tree":u(h);break;case"longest-path":l(h);break;default:c(h)}}var l=n;function u(h){n(h),r(h)}function c(h){i(h)}return Og}var Lg,Zk;function $4(){if(Zk)return Lg;Zk=1;var e=it();Lg=n;function n(o){var l=i(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),h=c.edgeObj,p=r(o,l,h.v,h.w),d=p.path,m=p.lca,y=0,w=d[y],N=!0;u!==h.w;){if(c=o.node(u),N){for(;(w=d[y])!==m&&o.node(w).maxRank<c.rank;)y++;w===m&&(N=!1)}if(!N){for(;y<d.length-1&&o.node(w=d[y+1]).minRank<=c.rank;)y++;w=d[y]}o.setParent(u,w),u=o.successors(u)[0]}})}function r(o,l,u,c){var h=[],p=[],d=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,w;y=u;do y=o.parent(y),h.push(y);while(y&&(l[y].low>d||m>l[y].lim));for(w=y,y=c;(y=o.parent(y))!==w;)p.push(y);return{path:h.concat(p.reverse()),lca:w}}function i(o){var l={},u=0;function c(h){var p=u;e.forEach(o.children(h),c),l[h]={low:p,lim:u++}}return e.forEach(o.children(),c),l}return Lg}var qg,Jk;function D4(){if(Jk)return qg;Jk=1;var e=it(),n=hn();qg={run:r,cleanup:u};function r(c){var h=n.addDummyNode(c,"root",{},"_root"),p=o(c),d=e.max(e.values(p))-1,m=2*d+1;c.graph().nestingRoot=h,e.forEach(c.edges(),function(w){c.edge(w).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(w){i(c,h,m,y,d,p,w)}),c.graph().nodeRankFactor=m}function i(c,h,p,d,m,y,w){var N=c.children(w);if(!N.length){w!==h&&c.setEdge(h,w,{weight:0,minlen:p});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(w);c.setParent(_,w),b.borderTop=_,c.setParent(S,w),b.borderBottom=S,e.forEach(N,function(k){i(c,h,p,d,m,y,k);var E=c.node(k),C=E.borderTop?E.borderTop:k,A=E.borderBottom?E.borderBottom:k,M=E.borderTop?d:2*d,L=C!==A?1:m-y[w]+1;c.setEdge(_,C,{weight:M,minlen:L,nestingEdge:!0}),c.setEdge(A,S,{weight:M,minlen:L,nestingEdge:!0})}),c.parent(w)||c.setEdge(h,_,{weight:0,minlen:m+y[w]})}function o(c){var h={};function p(d,m){var y=c.children(d);y&&y.length&&e.forEach(y,function(w){p(w,m+1)}),h[d]=m}return e.forEach(c.children(),function(d){p(d,1)}),h}function l(c){return e.reduce(c.edges(),function(h,p){return h+c.edge(p).weight},0)}function u(c){var h=c.graph();c.removeNode(h.nestingRoot),delete h.nestingRoot,e.forEach(c.edges(),function(p){var d=c.edge(p);d.nestingEdge&&c.removeEdge(p)})}return qg}var $g,eE;function F4(){if(eE)return $g;eE=1;var e=it(),n=hn();$g=r;function r(o){function l(u){var c=o.children(u),h=o.node(u);if(c.length&&e.forEach(c,l),e.has(h,"minRank")){h.borderLeft=[],h.borderRight=[];for(var p=h.minRank,d=h.maxRank+1;p<d;++p)i(o,"borderLeft","_bl",u,h,p),i(o,"borderRight","_br",u,h,p)}}e.forEach(o.children(),l)}function i(o,l,u,c,h,p){var d={width:0,height:0,rank:p,borderType:l},m=h[l][p-1],y=n.addDummyNode(o,"border",d,u);h[l][p]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return $g}var Dg,tE;function z4(){if(tE)return Dg;tE=1;var e=it();Dg={adjust:n,undo:r};function n(p){var d=p.graph().rankdir.toLowerCase();(d==="lr"||d==="rl")&&i(p)}function r(p){var d=p.graph().rankdir.toLowerCase();(d==="bt"||d==="rl")&&l(p),(d==="lr"||d==="rl")&&(c(p),i(p))}function i(p){e.forEach(p.nodes(),function(d){o(p.node(d))}),e.forEach(p.edges(),function(d){o(p.edge(d))})}function o(p){var d=p.width;p.width=p.height,p.height=d}function l(p){e.forEach(p.nodes(),function(d){u(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(p){p.y=-p.y}function c(p){e.forEach(p.nodes(),function(d){h(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,h),e.has(m,"x")&&h(m)})}function h(p){var d=p.x;p.x=p.y,p.y=d}return Dg}var Fg,nE;function B4(){if(nE)return Fg;nE=1;var e=it();Fg=n;function n(r){var i={},o=e.filter(r.nodes(),function(p){return!r.children(p).length}),l=e.max(e.map(o,function(p){return r.node(p).rank})),u=e.map(e.range(l+1),function(){return[]});function c(p){if(!e.has(i,p)){i[p]=!0;var d=r.node(p);u[d.rank].push(p),e.forEach(r.successors(p),c)}}var h=e.sortBy(o,function(p){return r.node(p).rank});return e.forEach(h,c),u}return Fg}var zg,rE;function U4(){if(rE)return zg;rE=1;var e=it();zg=n;function n(i,o){for(var l=0,u=1;u<o.length;++u)l+=r(i,o[u-1],o[u]);return l}function r(i,o,l){for(var u=e.zipObject(l,e.map(l,function(y,w){return w})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(i.outEdges(y),function(w){return{pos:u[w.w],weight:i.edge(w).weight}}),"pos")}),!0),h=1;h<l.length;)h<<=1;var p=2*h-1;h-=1;var d=e.map(new Array(p),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var w=y.pos+h;d[w]+=y.weight;for(var N=0;w>0;)w%2&&(N+=d[w+1]),w=w-1>>1,d[w]+=y.weight;m+=y.weight*N})),m}return zg}var Bg,sE;function H4(){if(sE)return Bg;sE=1;var e=it();Bg=n;function n(r,i){return e.map(i,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,h){var p=r.edge(h),d=r.node(h.v);return{sum:c.sum+p.weight*d.order,weight:c.weight+p.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return Bg}var Ug,iE;function W4(){if(iE)return Ug;iE=1;var e=it();Ug=n;function n(o,l){var u={};e.forEach(o,function(h,p){var d=u[h.v]={indegree:0,in:[],out:[],vs:[h.v],i:p};e.isUndefined(h.barycenter)||(d.barycenter=h.barycenter,d.weight=h.weight)}),e.forEach(l.edges(),function(h){var p=u[h.v],d=u[h.w];!e.isUndefined(p)&&!e.isUndefined(d)&&(d.indegree++,p.out.push(u[h.w]))});var c=e.filter(u,function(h){return!h.indegree});return r(c)}function r(o){var l=[];function u(p){return function(d){d.merged||(e.isUndefined(d.barycenter)||e.isUndefined(p.barycenter)||d.barycenter>=p.barycenter)&&i(p,d)}}function c(p){return function(d){d.in.push(p),--d.indegree===0&&o.push(d)}}for(;o.length;){var h=o.pop();l.push(h),e.forEach(h.in.reverse(),u(h)),e.forEach(h.out,c(h))}return e.map(e.filter(l,function(p){return!p.merged}),function(p){return e.pick(p,["vs","i","barycenter","weight"])})}function i(o,l){var u=0,c=0;o.weight&&(u+=o.barycenter*o.weight,c+=o.weight),l.weight&&(u+=l.barycenter*l.weight,c+=l.weight),o.vs=l.vs.concat(o.vs),o.barycenter=u/c,o.weight=c,o.i=Math.min(l.i,o.i),l.merged=!0}return Ug}var Hg,oE;function V4(){if(oE)return Hg;oE=1;var e=it(),n=hn();Hg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),h=c.lhs,p=e.sortBy(c.rhs,function(_){return-_.i}),d=[],m=0,y=0,w=0;h.sort(o(!!u)),w=i(d,p,w),e.forEach(h,function(_){w+=_.vs.length,d.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,w=i(d,p,w)});var N={vs:e.flatten(d,!0)};return y&&(N.barycenter=m/y,N.weight=y),N}function i(l,u,c){for(var h;u.length&&(h=e.last(u)).i<=c;)u.pop(),l.push(h.vs),c++;return c}function o(l){return function(u,c){return u.barycenter<c.barycenter?-1:u.barycenter>c.barycenter?1:l?c.i-u.i:u.i-c.i}}return Hg}var Wg,aE;function G4(){if(aE)return Wg;aE=1;var e=it(),n=H4(),r=W4(),i=V4();Wg=o;function o(c,h,p,d){var m=c.children(h),y=c.node(h),w=y?y.borderLeft:void 0,N=y?y.borderRight:void 0,_={};w&&(m=e.filter(m,function(A){return A!==w&&A!==N}));var S=n(c,m);e.forEach(S,function(A){if(c.children(A.v).length){var M=o(c,A.v,p,d);_[A.v]=M,e.has(M,"barycenter")&&u(A,M)}});var b=r(S,p);l(b,_);var k=i(b,d);if(w&&(k.vs=e.flatten([w,k.vs,N],!0),c.predecessors(w).length)){var E=c.node(c.predecessors(w)[0]),C=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+C.order)/(k.weight+2),k.weight+=2}return k}function l(c,h){e.forEach(c,function(p){p.vs=e.flatten(p.vs.map(function(d){return h[d]?h[d].vs:d}),!0)})}function u(c,h){e.isUndefined(c.barycenter)?(c.barycenter=h.barycenter,c.weight=h.weight):(c.barycenter=(c.barycenter*c.weight+h.barycenter*h.weight)/(c.weight+h.weight),c.weight+=h.weight)}return Wg}var Vg,lE;function Y4(){if(lE)return Vg;lE=1;var e=it(),n=Jn().Graph;Vg=r;function r(o,l,u){var c=i(o),h=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(p){return o.node(p)});return e.forEach(o.nodes(),function(p){var d=o.node(p),m=o.parent(p);(d.rank===l||d.minRank<=l&&l<=d.maxRank)&&(h.setNode(p),h.setParent(p,m||c),e.forEach(o[u](p),function(y){var w=y.v===p?y.w:y.v,N=h.edge(w,p),_=e.isUndefined(N)?0:N.weight;h.setEdge(w,p,{weight:o.edge(y).weight+_})}),e.has(d,"minRank")&&h.setNode(p,{borderLeft:d.borderLeft[l],borderRight:d.borderRight[l]}))}),h}function i(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return Vg}var Gg,uE;function K4(){if(uE)return Gg;uE=1;var e=it();Gg=n;function n(r,i,o){var l={},u;e.forEach(o,function(c){for(var h=r.parent(c),p,d;h;){if(p=r.parent(h),p?(d=l[p],l[p]=h):(d=u,u=h),d&&d!==h){i.setEdge(d,h);return}h=p}})}return Gg}var Yg,cE;function X4(){if(cE)return Yg;cE=1;var e=it(),n=B4(),r=U4(),i=G4(),o=Y4(),l=K4(),u=Jn().Graph,c=hn();Yg=h;function h(y){var w=c.maxRank(y),N=p(y,e.range(1,w+1),"inEdges"),_=p(y,e.range(w-1,-1,-1),"outEdges"),S=n(y);m(y,S);for(var b=Number.POSITIVE_INFINITY,k,E=0,C=0;C<4;++E,++C){d(E%2?N:_,E%4>=2),S=c.buildLayerMatrix(y);var A=r(y,S);A<b&&(C=0,k=e.cloneDeep(S),b=A)}m(y,k)}function p(y,w,N){return e.map(w,function(_){return o(y,_,N)})}function d(y,w){var N=new u;e.forEach(y,function(_){var S=_.graph().root,b=i(_,S,N,w);e.forEach(b.vs,function(k,E){_.node(k).order=E}),l(_,N,b.vs)})}function m(y,w){e.forEach(w,function(N){e.forEach(N,function(_,S){y.node(_).order=S})})}return Yg}var Kg,dE;function Q4(){if(dE)return Kg;dE=1;var e=it(),n=Jn().Graph,r=hn();Kg={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:h,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:m,balance:w};function i(b,k){var E={};function C(A,M){var L=0,H=0,O=A.length,P=e.last(M);return e.forEach(M,function(F,G){var q=l(b,F),R=q?b.node(q).order:O;(q||F===P)&&(e.forEach(M.slice(H,G+1),function(Q){e.forEach(b.predecessors(Q),function(z){var ne=b.node(z),Z=ne.order;(Z<L||R<Z)&&!(ne.dummy&&b.node(Q).dummy)&&u(E,z,Q)})}),H=G+1,L=R)}),M}return e.reduce(k,C),E}function o(b,k){var E={};function C(M,L,H,O,P){var F;e.forEach(e.range(L,H),function(G){F=M[G],b.node(F).dummy&&e.forEach(b.predecessors(F),function(q){var R=b.node(q);R.dummy&&(R.order<O||R.order>P)&&u(E,q,F)})})}function A(M,L){var H=-1,O,P=0;return e.forEach(L,function(F,G){if(b.node(F).dummy==="border"){var q=b.predecessors(F);q.length&&(O=b.node(q[0]).order,C(L,P,G,H,O),P=G,H=O)}C(L,P,L.length,O,M.length)}),L}return e.reduce(k,A),E}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(E){return b.node(E).dummy})}function u(b,k,E){if(k>E){var C=k;k=E,E=C}var A=b[k];A||(b[k]=A={}),A[E]=!0}function c(b,k,E){if(k>E){var C=k;k=E,E=C}return e.has(b[k],E)}function h(b,k,E,C){var A={},M={},L={};return e.forEach(k,function(H){e.forEach(H,function(O,P){A[O]=O,M[O]=O,L[O]=P})}),e.forEach(k,function(H){var O=-1;e.forEach(H,function(P){var F=C(P);if(F.length){F=e.sortBy(F,function(z){return L[z]});for(var G=(F.length-1)/2,q=Math.floor(G),R=Math.ceil(G);q<=R;++q){var Q=F[q];M[P]===P&&O<L[Q]&&!c(E,P,Q)&&(M[Q]=P,M[P]=A[P]=A[Q],O=L[Q])}}})}),{root:A,align:M}}function p(b,k,E,C,A){var M={},L=d(b,k,E,A),H=A?"borderLeft":"borderRight";function O(G,q){for(var R=L.nodes(),Q=R.pop(),z={};Q;)z[Q]?G(Q):(z[Q]=!0,R.push(Q),R=R.concat(q(Q))),Q=R.pop()}function P(G){M[G]=L.inEdges(G).reduce(function(q,R){return Math.max(q,M[R.v]+L.edge(R))},0)}function F(G){var q=L.outEdges(G).reduce(function(Q,z){return Math.min(Q,M[z.w]-L.edge(z))},Number.POSITIVE_INFINITY),R=b.node(G);q!==Number.POSITIVE_INFINITY&&R.borderType!==H&&(M[G]=Math.max(M[G],q))}return O(P,L.predecessors.bind(L)),O(F,L.successors.bind(L)),e.forEach(C,function(G){M[G]=M[E[G]]}),M}function d(b,k,E,C){var A=new n,M=b.graph(),L=_(M.nodesep,M.edgesep,C);return e.forEach(k,function(H){var O;e.forEach(H,function(P){var F=E[P];if(A.setNode(F),O){var G=E[O],q=A.edge(G,F);A.setEdge(G,F,Math.max(L(b,P,O),q||0))}O=P})}),A}function m(b,k){return e.minBy(e.values(k),function(E){var C=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY;return e.forIn(E,function(M,L){var H=S(b,L)/2;C=Math.max(M+H,C),A=Math.min(M-H,A)}),C-A})}function y(b,k){var E=e.values(k),C=e.min(E),A=e.max(E);e.forEach(["u","d"],function(M){e.forEach(["l","r"],function(L){var H=M+L,O=b[H],P;if(O!==k){var F=e.values(O);P=L==="l"?C-e.min(F):A-e.max(F),P&&(b[H]=e.mapValues(O,function(G){return G+P}))}})})}function w(b,k){return e.mapValues(b.ul,function(E,C){if(k)return b[k.toLowerCase()][C];var A=e.sortBy(e.map(b,C));return(A[1]+A[2])/2})}function N(b){var k=r.buildLayerMatrix(b),E=e.merge(i(b,k),o(b,k)),C={},A;e.forEach(["u","d"],function(L){A=L==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(H){H==="r"&&(A=e.map(A,function(G){return e.values(G).reverse()}));var O=(L==="u"?b.predecessors:b.successors).bind(b),P=h(b,A,E,O),F=p(b,A,P.root,P.align,H==="r");H==="r"&&(F=e.mapValues(F,function(G){return-G})),C[L+H]=F})});var M=m(b,C);return y(C,M),w(C,b.graph().align)}function _(b,k,E){return function(C,A,M){var L=C.node(A),H=C.node(M),O=0,P;if(O+=L.width/2,e.has(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":P=-L.width/2;break;case"r":P=L.width/2;break}if(P&&(O+=E?P:-P),P=0,O+=(L.dummy?k:b)/2,O+=(H.dummy?k:b)/2,O+=H.width/2,e.has(H,"labelpos"))switch(H.labelpos.toLowerCase()){case"l":P=H.width/2;break;case"r":P=-H.width/2;break}return P&&(O+=E?P:-P),P=0,O}}function S(b,k){return b.node(k).width}return Kg}var Xg,fE;function Z4(){if(fE)return Xg;fE=1;var e=it(),n=hn(),r=Q4().positionX;Xg=i;function i(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,h=0;e.forEach(u,function(p){var d=e.max(e.map(p,function(m){return l.node(m).height}));e.forEach(p,function(m){l.node(m).y=h+d/2}),h+=d+c})}return Xg}var Qg,hE;function J4(){if(hE)return Qg;hE=1;var e=it(),n=P4(),r=O4(),i=q4(),o=hn().normalizeRanks,l=$4(),u=hn().removeEmptyRanks,c=D4(),h=F4(),p=z4(),d=X4(),m=Z4(),y=hn(),w=Jn().Graph;Qg=N;function N(U,J){var re=J&&J.debugTiming?y.time:y.notime;re("layout",function(){var le=re(" buildLayoutGraph",function(){return O(U)});re(" runLayout",function(){_(le,re)}),re(" updateInputGraph",function(){S(U,le)})})}function _(U,J){J(" makeSpaceForEdgeLabels",function(){P(U)}),J(" removeSelfEdges",function(){$(U)}),J(" acyclic",function(){n.run(U)}),J(" nestingGraph.run",function(){c.run(U)}),J(" rank",function(){i(y.asNonCompoundGraph(U))}),J(" injectEdgeLabelProxies",function(){F(U)}),J(" removeEmptyRanks",function(){u(U)}),J(" nestingGraph.cleanup",function(){c.cleanup(U)}),J(" normalizeRanks",function(){o(U)}),J(" assignRankMinMax",function(){G(U)}),J(" removeEdgeLabelProxies",function(){q(U)}),J(" normalize.run",function(){r.run(U)}),J(" parentDummyChains",function(){l(U)}),J(" addBorderSegments",function(){h(U)}),J(" order",function(){d(U)}),J(" insertSelfEdges",function(){X(U)}),J(" adjustCoordinateSystem",function(){p.adjust(U)}),J(" position",function(){m(U)}),J(" positionSelfEdges",function(){I(U)}),J(" removeBorderNodes",function(){Z(U)}),J(" normalize.undo",function(){r.undo(U)}),J(" fixupEdgeLabelCoords",function(){z(U)}),J(" undoCoordinateSystem",function(){p.undo(U)}),J(" translateGraph",function(){R(U)}),J(" assignNodeIntersects",function(){Q(U)}),J(" reversePoints",function(){ne(U)}),J(" acyclic.undo",function(){n.undo(U)})}function S(U,J){e.forEach(U.nodes(),function(re){var le=U.node(re),fe=J.node(re);le&&(le.x=fe.x,le.y=fe.y,J.children(re).length&&(le.width=fe.width,le.height=fe.height))}),e.forEach(U.edges(),function(re){var le=U.edge(re),fe=J.edge(re);le.points=fe.points,e.has(fe,"x")&&(le.x=fe.x,le.y=fe.y)}),U.graph().width=J.graph().width,U.graph().height=J.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],C=["width","height"],A={width:0,height:0},M=["minlen","weight","width","height","labeloffset"],L={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},H=["labelpos"];function O(U){var J=new w({multigraph:!0,compound:!0}),re=Y(U.graph());return J.setGraph(e.merge({},k,W(re,b),e.pick(re,E))),e.forEach(U.nodes(),function(le){var fe=Y(U.node(le));J.setNode(le,e.defaults(W(fe,C),A)),J.setParent(le,U.parent(le))}),e.forEach(U.edges(),function(le){var fe=Y(U.edge(le));J.setEdge(le,e.merge({},L,W(fe,M),e.pick(fe,H)))}),J}function P(U){var J=U.graph();J.ranksep/=2,e.forEach(U.edges(),function(re){var le=U.edge(re);le.minlen*=2,le.labelpos.toLowerCase()!=="c"&&(J.rankdir==="TB"||J.rankdir==="BT"?le.width+=le.labeloffset:le.height+=le.labeloffset)})}function F(U){e.forEach(U.edges(),function(J){var re=U.edge(J);if(re.width&&re.height){var le=U.node(J.v),fe=U.node(J.w),te={rank:(fe.rank-le.rank)/2+le.rank,e:J};y.addDummyNode(U,"edge-proxy",te,"_ep")}})}function G(U){var J=0;e.forEach(U.nodes(),function(re){var le=U.node(re);le.borderTop&&(le.minRank=U.node(le.borderTop).rank,le.maxRank=U.node(le.borderBottom).rank,J=e.max(J,le.maxRank))}),U.graph().maxRank=J}function q(U){e.forEach(U.nodes(),function(J){var re=U.node(J);re.dummy==="edge-proxy"&&(U.edge(re.e).labelRank=re.rank,U.removeNode(J))})}function R(U){var J=Number.POSITIVE_INFINITY,re=0,le=Number.POSITIVE_INFINITY,fe=0,te=U.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(Te){var ye=Te.x,ke=Te.y,Ge=Te.width,we=Te.height;J=Math.min(J,ye-Ge/2),re=Math.max(re,ye+Ge/2),le=Math.min(le,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach(U.nodes(),function(Te){ve(U.node(Te))}),e.forEach(U.edges(),function(Te){var ye=U.edge(Te);e.has(ye,"x")&&ve(ye)}),J-=ce,le-=Ce,e.forEach(U.nodes(),function(Te){var ye=U.node(Te);ye.x-=J,ye.y-=le}),e.forEach(U.edges(),function(Te){var ye=U.edge(Te);e.forEach(ye.points,function(ke){ke.x-=J,ke.y-=le}),e.has(ye,"x")&&(ye.x-=J),e.has(ye,"y")&&(ye.y-=le)}),te.width=re-J+ce,te.height=fe-le+Ce}function Q(U){e.forEach(U.edges(),function(J){var re=U.edge(J),le=U.node(J.v),fe=U.node(J.w),te,ce;re.points?(te=re.points[0],ce=re.points[re.points.length-1]):(re.points=[],te=fe,ce=le),re.points.unshift(y.intersectRect(le,te)),re.points.push(y.intersectRect(fe,ce))})}function z(U){e.forEach(U.edges(),function(J){var re=U.edge(J);if(e.has(re,"x"))switch((re.labelpos==="l"||re.labelpos==="r")&&(re.width-=re.labeloffset),re.labelpos){case"l":re.x-=re.width/2+re.labeloffset;break;case"r":re.x+=re.width/2+re.labeloffset;break}})}function ne(U){e.forEach(U.edges(),function(J){var re=U.edge(J);re.reversed&&re.points.reverse()})}function Z(U){e.forEach(U.nodes(),function(J){if(U.children(J).length){var re=U.node(J),le=U.node(re.borderTop),fe=U.node(re.borderBottom),te=U.node(e.last(re.borderLeft)),ce=U.node(e.last(re.borderRight));re.width=Math.abs(ce.x-te.x),re.height=Math.abs(fe.y-le.y),re.x=te.x+re.width/2,re.y=le.y+re.height/2}}),e.forEach(U.nodes(),function(J){U.node(J).dummy==="border"&&U.removeNode(J)})}function $(U){e.forEach(U.edges(),function(J){if(J.v===J.w){var re=U.node(J.v);re.selfEdges||(re.selfEdges=[]),re.selfEdges.push({e:J,label:U.edge(J)}),U.removeEdge(J)}})}function X(U){var J=y.buildLayerMatrix(U);e.forEach(J,function(re){var le=0;e.forEach(re,function(fe,te){var ce=U.node(fe);ce.order=te+le,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode(U,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++le,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function I(U){e.forEach(U.nodes(),function(J){var re=U.node(J);if(re.dummy==="selfedge"){var le=U.node(re.e.v),fe=le.x+le.width/2,te=le.y,ce=re.x-fe,Ce=le.height/2;U.setEdge(re.e,re.label),U.removeNode(J),re.label.points=[{x:fe+2*ce/3,y:te-Ce},{x:fe+5*ce/6,y:te-Ce},{x:fe+ce,y:te},{x:fe+5*ce/6,y:te+Ce},{x:fe+2*ce/3,y:te+Ce}],re.label.x=re.x,re.label.y=re.y}})}function W(U,J){return e.mapValues(e.pick(U,J),Number)}function Y(U){var J={};return e.forEach(U,function(re,le){J[le.toLowerCase()]=re}),J}return Qg}var Zg,pE;function eD(){if(pE)return Zg;pE=1;var e=it(),n=hn(),r=Jn().Graph;Zg={debugOrdering:i};function i(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,h){var p="layer"+h;u.setNode(p,{rank:"same"}),e.reduce(c,function(d,m){return u.setEdge(d,m,{style:"invis"}),m})}),u}return Zg}var Jg,mE;function tD(){return mE||(mE=1,Jg="0.8.5"),Jg}var ev,gE;function nD(){return gE||(gE=1,ev={graphlib:Jn(),layout:J4(),debug:eD(),util:{time:hn().time,notime:hn().notime},version:tD()}),ev}var rD=nD();const vE=jv(rD),go=240,xu=130,uo=74,Vu=72,yE=uo+Vu;function sD(e,n){var i;let r=go;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??go);return r}const gj=420,iD=2;function Ra(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function oD(e,n){return((n==null?void 0:n.get(e))??0)>0?gj:0}function aD(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function Ta(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??go)+oD(e,r),h:Math.max((i==null?void 0:i.height)??xu,aD(e,r))}}function lD(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function uD(e,n,r,i,o,l){const u=new vE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),h=new Set(c);for(const b of c){const{w:k,h:E}=Ta(b,i,l);u.setNode(b,{width:k,height:E})}for(const b of n)h.has(b.source)&&h.has(b.target)&&u.setEdge(b.source,b.target);vE.layout(u);const p=new Map;let d=1/0,m=1/0,y=-1/0,w=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const E=i.get(b),C=(E==null?void 0:E.width)??go,A=(E==null?void 0:E.height)??xu,M=Ta(b,i,l),L=k.x-M.w/2,H=k.y-M.h/2;p.set(b,{x:L,y:H}),L<d&&(d=L),H<m&&(m=H),L+C>y&&(y=L+C),H+A>w&&(w=H+A)}if(Number.isFinite(d)&&Number.isFinite(m))for(const[b,k]of p)p.set(b,{x:k.x-d,y:k.y-m});const N=Number.isFinite(y)?y-d:0,_=Number.isFinite(w)?w-m:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const E=i.get(b),C=(E==null?void 0:E.width)??go,A=(E==null?void 0:E.height)??xu;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+C,maxY:k.y+A}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+C),maxY:Math.max(S.maxY,k.y+A)}}return{positions:p,width:N,height:_,pinnedBox:S}}function cD(e,n,r={}){const i=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const k=Ra(b),E=c.get(k);E?E.push(b.id):c.set(k,[b.id])}const p=Array.from(c.keys()).sort().map(b=>({sid:b,...uD(c.get(b),n,i,l,o,u)})),d=sD(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let E=0;for(const C of p)k.length<b&&E>0&&E+C.height>m&&(k.push([]),E=0),k[k.length-1].push(C),E+=C.height+yE;return k},w=b=>b.reduce((k,E)=>Math.max(k,E.width),0)+gj;let N=y(r.availableWidth?iD:1);N.length>1&&N.reduce((k,E)=>k+w(E),0)+d*(N.length-1)>(r.availableWidth??0)&&(N=y(1));const _=new Map;let S=0;for(const b of N){const k=w(b);let E=0;for(const{positions:C,height:A,pinnedBox:M}of b){for(const[H,O]of C)_.set(H,{x:O.x+S,y:O.y+E});let L=E+A;M&&M.maxY>L&&M.minX<S+k&&S<M.maxX&&(L=M.maxY),E=L+yE}S+=k+d}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const E=_.get(b.id);return E?{...b,position:E}:b})}function dD(e,n,r,i,o){const u=uo+Vu,c=60,h=w=>Ta(w,i,o),p=new Map(e.map(w=>[w.id,Ra(w)])),d=[],m=e.map(w=>({id:w.id,pos:r.get(w.id)??n.get(w.id)})).filter(w=>w.pos!=null).sort((w,N)=>w.pos.y-N.pos.y||w.pos.x-N.pos.x||w.id.localeCompare(N.id)),y=[];for(const{id:w,pos:N}of m){const{w:_,h:S}=h(w),b=p.get(w)??"_default";if(r.has(w)){d.push({x:N.x,y:N.y,w:_,h:S,sid:b});continue}let k=N.y;for(let E=0;E<d.length+1;E++){const C=d.find(A=>{const M=A.sid===b?24:c,L=A.sid===b?24:u;return N.x<A.x+A.w+M&&A.x<N.x+_+M&&k<A.y+A.h+L&&A.y<k+S+L});if(!C)break;k=C.y+C.h+(C.sid===b?24:u)}k!==N.y&&(n.set(w,{x:N.x,y:k}),y.push(w)),d.push({x:N.x,y:k,w:_,h:S,sid:b})}return y}function fD(e,n,r,i,o,l){const u=_=>Ta(_,i,l),c=_=>r.get(_)??n.get(_),h=new Map;for(const _ of e){if(!c(_.id))continue;const S=Ra(_),b=h.get(S);b?b.push(_):h.set(S,[_])}const p=new Set;for(const[_,S]of h)S.every(b=>o.has(b.id)&&!r.has(b.id))&&p.add(_);const d=new Map,m=[];for(const _ of e){const S=c(_.id);if(!S)continue;const{w:b,h:k}=u(_.id),E=Ra(_);p.has(E)?(d.get(E)??d.set(E,[]).get(E)).push(_):m.push({x:S.x,y:S.y,w:b,h:k})}if(d.size===0)return[];const y=uo+Vu,w=(_,S,b,k)=>m.some(E=>_<E.x+E.w+uo&&E.x<_+b+uo&&S<E.y+E.h+y&&E.y<S+k+y),N=[];for(const _ of[...d.keys()].sort()){const S=d.get(_);let b=1/0,k=1/0,E=-1/0,C=-1/0;for(const F of S){const G=c(F.id),{w:q,h:R}=u(F.id);b=Math.min(b,G.x),k=Math.min(k,G.y),E=Math.max(E,G.x+q),C=Math.max(C,G.y+R)}const A=E-b,M=C-k,L=[...new Set(m.map(F=>Math.round(F.x)))].sort((F,G)=>F-G),H=L.length?L:[b],O=[0,...m.map(F=>F.y+F.h+y)].sort((F,G)=>F-G);let P=null;e:for(const F of H)for(const G of O){if(G>=k)break;if(!w(F,G,A,M)){P={x:F,y:G};break e}}if(P){const F=P.x-b,G=P.y-k;for(const q of S){const R=c(q.id);n.set(q.id,{x:R.x+F,y:R.y+G})}N.push(_)}for(const F of S){const G=c(F.id),{w:q,h:R}=u(F.id);m.push({x:G.x,y:G.y,w:q,h:R})}}return N}function hD(e,n,r,i,o,l=!1,u){const p=uo+Vu+1,d=8,m=1.75,y=200,w=.7,N=.01,_=P=>Ta(P,i,u),S=P=>r.get(P)??n.get(P),b=new Map;for(const P of e){if(!S(P.id))continue;const F=Ra(P),G=b.get(F);G?G.push(P):b.set(F,[P])}const k=[],E=new Set,C=new Set,A=o.size===0;for(const P of[...b.keys()].sort()){const F=b.get(P);let G=1/0,q=1/0,R=-1/0,Q=-1/0,z=!1;for(const X of F){const I=S(X.id),{w:W,h:Y}=_(X.id);G=Math.min(G,I.x),q=Math.min(q,I.y),R=Math.max(R,I.x+W),Q=Math.max(Q,I.y+Y),r.has(X.id)&&(z=!0)}const ne=R-G,Z=Q-q;C.add(P);const $=o.get(P);$&&(ne>$.w+d||Z>$.h+d)&&E.add(P),o.set(P,{w:ne,h:Z}),k.push({sid:P,members:F.map(X=>X.id),x:G,y:q,w:ne,h:Z,anchored:z,mass:1})}for(const P of[...o.keys()])C.has(P)||o.delete(P);if(l||A)return[];let M=!1;for(let P=0;P<k.length&&!M;P++)for(let F=P+1;F<k.length;F++){const G=k[P],q=k[F];if(!(G.anchored&&q.anchored)&&Math.abs(G.x+G.w/2-(q.x+q.w/2))<(G.w+q.w)/2+61&&Math.abs(G.y+G.h/2-(q.y+q.h/2))<(G.h+q.h)/2+p){M=!0;break}}if(E.size===0&&!M)return[];if(E.size>0)for(const P of k)E.has(P.sid)&&(P.mass=8);else for(const P of k)P.mass=Math.max(1,P.w*P.h/(go*xu));const L=new Map(k.map(P=>[P.sid,P.x])),H=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const F=new Map,G=new Map;let q=0;for(let R=0;R<k.length;R++)for(let Q=R+1;Q<k.length;Q++){const z=k[R],ne=k[Q];if(z.anchored&&ne.anchored)continue;const Z=z.x+z.w/2,$=z.y+z.h/2,X=ne.x+ne.w/2,I=ne.y+ne.h/2,W=(z.w+ne.w)/2+61-Math.abs(Z-X),Y=(z.h+ne.h)/2+p-Math.abs($-I);if(W<=0||Y<=0)continue;const U=(De,Ze)=>!De.anchored&&!(Ze<0&&De.x<=0),J=(De,Ze)=>!De.anchored&&!(Ze<0&&De.y<=0),re=(De,Ze,Ye)=>{const vt=De===Ze,ot=vt?z.sid<ne.sid?-1:1:Math.sign(De-Ze);return Ye(z,ot)||Ye(ne,-ot)?ot:vt&&(Ye(z,-ot)||Ye(ne,ot))?-ot:0},le=re(Z,X,U),fe=re($,I,J),te=le!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||W*m<Y),[ve,Te,ye,ke]=Ce?[le,W,F,U]:[fe,Y,G,J],Ge=ke(z,ve),we=ke(ne,-ve),_e=z.mass,ze=ne.mass,ft=Ge?we?ze/(_e+ze):1:0,ht=we?Ge?_e/(_e+ze):1:0,Ue=Te*w;ye.set(z.sid,(ye.get(z.sid)??0)+ve*Ue*ft),ye.set(ne.sid,(ye.get(ne.sid)??0)-ve*Ue*ht),q+=Ue}for(const R of k)R.anchored||(R.x=Math.max(0,R.x+(F.get(R.sid)??0)),R.y=Math.max(0,R.y+(G.get(R.sid)??0)));if(q<N)break}const O=[];for(const P of k){const F=P.x-L.get(P.sid),G=P.y-H.get(P.sid);if(!(Math.abs(F)<1&&Math.abs(G)<1)){for(const q of P.members){if(r.has(q))continue;const R=n.get(q);R&&n.set(q,{x:R.x+F,y:R.y+G})}O.push(P.sid)}}return O}const pD=600;function kv(e,n){return!(e.exitAt!=null&&n-e.exitAt>pD||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function mD(e,n){const r=new Set;for(const i of e.agents.values())kv(i,n)&&r.add(i.id);return r}function gD(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function vD(e,n,r=0){if(!e)return!1;for(const i of n)if(gD(e,i,r))return!0;return!1}const vj="sessionGroup";function yD(e,n){var i;if(e.type===vj)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const wD="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function xD(e){if(e.checkDisabled)return wD;if(e.checking)return"Asking npm for the newest release…";const n=e.latest?`npm has v${e.latest}`:e.latestPending?`npm's latest tag names v${e.latestPending}, which it cannot serve yet`:"npm not reached yet",r=e.checkedAgo?` · checked ${e.checkedAgo}`:"";return`${n}${r} · re-checked periodically · click to check npm now`}function _D(e){const n=`Version v${e.running}`;return e.checkDisabled?`${n}, update checks are off`:e.checking?`${n}, checking npm for a newer release`:`${n}, check npm for a newer release`}function bD(e){if(e==null)return{kind:"unknown",lead:"No data yet. Start a Claude Code or Codex session — it appears here as soon as its first hook fires.",workspace:null,tail:""};const n=e.trim();return n===""?{kind:"machine",lead:"No data yet. Start a Claude Code or Codex session anywhere on this machine — this deck is unscoped and captures every workspace.",workspace:null,tail:""}:{kind:"scoped",lead:"No data yet. This deck only captures sessions running under",workspace:n,tail:" — start one there, or restart it without --workspace/--scope to watch the whole machine."}}function yj(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function SD(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${yj(e.held)} held until you resume (Space)`:"Connected — updates held until you resume (Space)"}:{tone:"live",label:"live",title:"Receiving events"}:{tone:"dead",label:"offline",title:e.paused?"SSE disconnected — and the canvas is paused, so resuming will not bring events back until it reconnects":"SSE disconnected"}}function kD(e){return e.paused?e.held<=0?{label:"Resume",title:"Nothing has arrived since you paused. Resume to follow the canvas again (Space)"}:{label:`Resume · ${e.held} held`,title:`${yj(e.held)} arrived while paused and will be applied in order when you resume (Space)`}:{label:"Pause",title:"Pause live updates — events keep arriving and are applied when you resume (Space)"}}function wj(e,n){return e!==""&&n>0}function ED(e,n,r){return e===""?{active:!1,matched:n,total:r,count:null,empty:!1,message:null,dim:!1}:{active:!0,matched:n,total:r,count:`${n} of ${r}`,empty:n===0,message:n===0?`No agents match “${e}”`:null,dim:wj(e,n)}}function Ev(e){const n=Math.max(0,Math.floor(e/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}function ND(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function CD(e,n,r){const i=new Date(e),o=Ev(n-e);return{label:ND(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function pa(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const jD={agent:NO,sessionGroup:FO},RD=420,nu=18,TD=9e4,AD=200,ID=5*6e4,MD=6,PD=2*6e4,fy="agent-dag.layout",hy="agent-dag.viewport",xj="agent-dag.summariesDismissed",_j="agent-dag.sessionListOpen",bj="agent-dag.detailOpen",Sj="agent-dag.usagePanelOpen",wE="agent-dag.accountsPanelOpen",xE="agent-dag.versionNoticeDismissed",_E="agent-dag.oldNameNoticeDismissed",OD=15*6e4,bE={git_checkout:"this deck runs from a git checkout — pull instead:",npx:"npx runs from a cache that cannot be upgraded in place — run:",not_writable:"the install directory is not writable by this user — run:",opted_out:"installs are off (AGENTS_DECK_NO_INSTALL=1) — run:"},SE="agent-dag.autoRestart",kE="agent-dag.bundleReloadedFor";function LD(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(_j)==="1"}catch{return!1}}function qD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(_j,e?"1":"0")}catch{}}function $D(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(bj)==="1"}catch{return!1}}function DD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(bj,e?"1":"0")}catch{}}function FD(){const e=mC(Sj);return e===null?!0:e==="1"}function zD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Sj,e?"1":"0")}catch{}}function BD(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(xj);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function EE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(xj,JSON.stringify(r))}catch{}}function UD(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(fy);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function tv(e,n){if(!(typeof window>"u"))try{const r={};for(const[i,o]of e)r[i]=o;for(const[i,o]of n)r[i]=o;window.localStorage.setItem(fy,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function HD(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(hy);if(!e)return null;const n=JSON.parse(e);return typeof(n==null?void 0:n.x)!="number"||typeof(n==null?void 0:n.y)!="number"||typeof(n==null?void 0:n.zoom)!="number"?null:n}catch{return null}}function WD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(hy,JSON.stringify(e))}catch{}}function NE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(fy)}catch{}try{window.localStorage.removeItem(hy)}catch{}}}function VD(e,n){const r=e.agents.get(n);if(!r)return;const i=[];for(const d of e.agents.values())d.sessionId===n&&i.push(d);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:i.map(d=>({id:d.id,kind:d.kind,label:d.label,parentId:d.parentId,state:d.state,startedAt:d.startedAt,endedAt:d.endedAt,model:d.model,cwd:d.cwd,usage:d.usage,prompts:d.prompts,tools:d.tools.map(m=>({id:m.id,name:m.name,inputPreview:m.inputPreview,startedAt:m.startedAt,endedAt:m.endedAt,ok:m.ok,errorPreview:m.errorPreview,usage:m.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),h=document.createElement("a"),p=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");h.href=c,h.download=`${zt}-${p}-${n.slice(0,8)}.json`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Nv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Cv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},GD={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function kj(e){return e.startsWith("mcp__")?"mcp":GD[e]??"other"}function Ej(e,n){var i,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(i=e.cwd)!=null&&i.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function YD(e,n){if(!n)return null;const r=new Set([n]);let i=n;for(;i;){const l=e.agents.get(i);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),i=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function KD(e,n,r,i,o,l,u,c,h,p,d,m,y,w,N,_,S,b,k){const E=[],C=[],A=new Set;if(l)for(const q of e.agents.values())b.has(q.id)&&Ej(q,l)&&A.add(q.id);const M=wj(l,A.size);for(const q of e.agents.values()){if(!b.has(q.id))continue;const R=M&&!A.has(q.id),Q=q.exitAt!=null,z=S!=null&&!S.has(q.id),ne=[R?"rf-dim":"",Q?"rf-exiting":"",z?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(q.id);if(E.push({id:q.id,type:"agent",position:{x:0,y:0},data:{...q,now:n,onOpenContext:k},className:ne,...Z?{width:Z.width,height:Z.height}:null}),q.parentId&&b.has(q.parentId)){const $=Vv(q.sessionId),X=l&&!A.has(q.id)&&!A.has(q.parentId),I=Q,W=_.size>0&&(_.has(q.id)||_.has(q.parentId)),Y=S!=null&&!S.has(q.id)&&!S.has(q.parentId),U=q.state==="active"?2:1.5,J=W?U+1.5:U,re=X||I?.2:Y?.12:1,le=["sess-edge",q.state==="active"?"sess-live":"sess-idle",I?"rf-edge-exiting":"",W?"rf-edge-selected":""].filter(Boolean).join(" ");C.push({id:`e:${q.parentId}->${q.id}`,source:q.parentId,target:q.id,animated:(q.state==="active"||W)&&!X&&!I,type:"smoothstep",style:{"--session-hue":$,strokeWidth:J,opacity:re,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:le})}}const L=new Map;for(const q of e.agents.values())q.tools.length>0&&L.set(q.id,Math.min(4,q.tools.length));const H=`${w}#lanes:${lD(L)}`,O=E.filter(q=>bL(q.id,o,m,y));if(O.length>0||H!==N.current){if(O.length>0){const q=cD(E,C,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:L});for(const R of q)pC(R.id,m,y)&&kL(R.id,R.position,m,y);fD(E,m,o,u,new Set(O.map(R=>R.id)),L)}dD(E,m,o,u,L),N.current=H}const P=hD(E,m,o,u,c,!p||d,L);P.length>0&&h(P),Zl(m,e.agents),Zl(y,e.agents),Zl(o,e.agents),Zl(u,_L(e.agents.values()));const F=[];let G=!1;for(const q of E){let R=o.get(q.id)??m.get(q.id);R||(R=SL(q.id,m,y),G=!0),F.push({...q,position:R})}return G&&(N.current=""),{nodes:F,edges:C}}function XD(){return g.jsx(Wv,{children:g.jsx(QD,{})})}function QD(){var Fs,Po,Ua,Ha;const e=Oa(),n=T.useRef(yv()),[,r]=T.useState(0),i=T.useCallback(()=>r(B=>B+1),[]),[o,l]=T.useState(()=>new Set),[u,c]=T.useState(null),[h,p]=T.useState(null),d=T.useCallback((B,V)=>{l(oe=>{if(!V)return new Set([B]);const de=new Set(oe);return de.has(B)?de.delete(B):de.add(B),de}),c(oe=>V&&oe===B?oe:B)},[]),m=T.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=T.useState(null),[N,_]=T.useState(null),S=T.useCallback(B=>_(B),[]),[b,k]=T.useState(!1),E=T.useRef(BD()),[C,A]=T.useState(LD);T.useEffect(()=>{qD(C)},[C]);const[M,L]=T.useState($D);T.useEffect(()=>{DD(M)},[M]);const[H,O]=T.useState(FD);T.useEffect(()=>{zD(H)},[H]);const[P,F]=T.useState(()=>{try{const B=window.localStorage.getItem(wE);return B===null?!0:B==="1"}catch{return!0}});T.useEffect(()=>{try{window.localStorage.setItem(wE,P?"1":"0")}catch{}},[P]);const[G,q]=T.useState(null),[R,Q]=T.useState(!1),[z,ne]=T.useState(0),[Z,$]=T.useState(0);T.useEffect(()=>{fetch("/api/sound-hook").then(B=>B.ok?B.json():null).then(B=>{B!=null&&B.ok&&(q(B.enabled===!0),ne((B.foreign??[]).filter(V=>V.worksHere).length),$(typeof B.parked=="number"?B.parked:0))}).catch(()=>{})},[]);const X=T.useCallback(async()=>{Q(!0);try{const V=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!G})})).json().catch(()=>null);V!=null&&V.ok&&q(V.enabled===!0),fetch("/api/sound-hook").then(oe=>oe.ok?oe.json():null).then(oe=>{oe!=null&&oe.ok&&(ne((oe.foreign??[]).filter(de=>de.worksHere).length),$(typeof oe.parked=="number"?oe.parked:0))}).catch(()=>{})}catch{}finally{Q(!1)}},[G]),[I,W]=T.useState(!1),[Y,U]=T.useState(null),[J,re]=T.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(xE)??""}catch{return""}}),[le,fe]=T.useState(!1),te=T.useRef(0),[ce,Ce]=T.useState(!1),ve=T.useCallback((B=!1)=>{B&&(te.current=Date.now(),Ce(!0)),fetch(B?"/api/version?refresh=1":"/api/version").then(V=>V.ok?V.json():null).then(V=>{V&&U(V)}).catch(()=>{}).finally(()=>{B&&Ce(!1)})},[]),Te=T.useCallback(()=>{ve(Date.now()-te.current>=OD)},[ve]);T.useEffect(()=>{ve();const B=window.setInterval(Te,5*6e4),V=()=>{document.visibilityState==="visible"&&Te()};return document.addEventListener("visibilitychange",V),()=>{window.clearInterval(B),document.removeEventListener("visibilitychange",V)}},[ve,Te]),T.useEffect(()=>{I&&ve()},[I,ve]);const ye=(Y==null?void 0:Y.notice)??null,[ke,Ge]=T.useState(null);T.useEffect(()=>{let B=!1;return fetch("/api/health").then(V=>V.ok?V.json():null).then(V=>{B||!V||typeof V.workspace!="string"||Ge(V.workspace)}).catch(()=>{}),()=>{B=!0}},[I]);const we=ye?`${ye.kind}:${ye.to}`:"",_e=ye!=null&&J!==we,ze=T.useCallback(()=>{if(!ye)return;const B=J===we?"":we;re(B);try{window.localStorage.setItem(xE,B)}catch{}},[ye,we,J]),[ft,ht]=T.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(_E)??""}catch{return""}}),Ue=Y!=null&&Y.invokedAs&&Y.invokedAs!==zt?Y.invokedAs:null,De=Ue!=null&&ft!==Ue,Ze=T.useCallback(()=>{if(Ue){ht(Ue);try{window.localStorage.setItem(_E,Ue)}catch{}}},[Ue]),Ye=((Fs=Y==null?void 0:Y.upgrade)==null?void 0:Fs.state)??"idle",vt=dL(Y==null?void 0:Y.upgrade),ot=T.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);T.useEffect(()=>{if(Ye!=="running")return;const B=window.setInterval(ve,3e3);return()=>window.clearInterval(B)},[Ye,ve]);const yt=T.useCallback(async()=>{var oe;const B=Y==null?void 0:Y.command;if(!B)return;let V=!1;try{V=await Promise.race([((oe=navigator.clipboard)==null?void 0:oe.writeText(B).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{V=!1}if(!V)try{const de=document.createElement("textarea");de.value=B,de.setAttribute("readonly",""),de.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(de),de.select(),V=document.execCommand("copy"),de.remove()}catch{V=!1}V&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[Y==null?void 0:Y.command]),Kt=T.useCallback(()=>{A(B=>(B||F(!1),!B))},[]),Mt=T.useCallback(()=>{F(B=>(B||A(!1),!B))},[]),[Xe,wt]=T.useState(!1),[pt,mt]=T.useState(0),_n=T.useRef(null),[Xt,Pt]=T.useState(!1),Qt=T.useRef(null),[yr,bn]=T.useState(0),Zt=T.useRef(jL()),[pn,Sn]=T.useState(!1),Gr=T.useCallback(()=>{const B=Zt.current,V=B.setPaused(!B.paused);for(const oe of V)n.current=Cx(n.current,oe);Sn(B.paused)},[]),[ut,hi]=T.useState(Date.now()),[nr,Es]=T.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(SE)!=="0"}catch{return!0}}),pi=T.useCallback(()=>{Es(B=>{const V=!B;try{window.localStorage.setItem(SE,V?"1":"0")}catch{}return V})},[]),[Jt,rr]=T.useState(!1),[wr,So]=T.useState("restart"),[sr,xr]=T.useState(null),mn=T.useRef(!1),Yr=T.useRef(null),mi=T.useRef(0),Kr=T.useCallback(async B=>{if(mn.current)return;const V=(B==null?void 0:B.upgrade)===!0;mn.current=!0,Yr.current=vt;const oe=++mi.current;So(V?"npx":"restart"),rr(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ye==null?void 0:ye.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:V})})}catch{}window.setTimeout(()=>{if(mi.current===oe&&mn.current){mn.current=!1,rr(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},V?18e4:3e4)},[ye==null?void 0:ye.to,vt]),Ns=T.useRef(null);T.useEffect(()=>{let B=!1;for(const oe of n.current.agents.values())if(oe.state==="active"){B=!0;break}const V=hL({enabled:nr,kind:ye==null?void 0:ye.kind,canRestart:(Y==null?void 0:Y.canRestart)===!0,busy:B,idleSince:Ns.current,now:ut});Ns.current=V.idleSince,V.restart&&Kr()},[nr,ye==null?void 0:ye.kind,Y==null?void 0:Y.canRestart,ut,Kr]),T.useEffect(()=>{const B=Y==null?void 0:Y.running;let V=null,oe=null;try{V=window.sessionStorage.getItem("agent-dag.restartPending"),oe=window.sessionStorage.getItem(kE)}catch{return}const de=cL({bundle:"1.33.146",running:B,pending:V,lastTried:oe});if(de==="reload"){try{window.sessionStorage.setItem(kE,B??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}mn.current=!1,rr(!1),xr(B??null);const xe=window.setTimeout(()=>xr(null),6e3);return()=>window.clearTimeout(xe)},[Y==null?void 0:Y.running]),T.useEffect(()=>{if(Jt&&fL({asked:Yr.current,reported:vt})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}mn.current=!1,rr(!1)}},[Jt,vt]);const gn=T.useRef(UD()).current;T.useRef(!1);const jt=T.useRef(new Map(gn.positions.filter(([B])=>gn.pins.includes(B)))),_r=T.useRef(null),Xr=T.useState(()=>HD())[0],[en,Qr]=T.useState(""),[Cs,gi]=T.useState(()=>new Set),[ir,vi]=T.useState(ML),[Je,ko]=T.useState(!1),br=T.useRef(null);T.useEffect(()=>{document.documentElement.dataset.theme=ir;try{window.localStorage.setItem(gC,ir)}catch{}},[ir]),T.useEffect(()=>{if(!Xr)return;const B=window.setTimeout(()=>{try{e.setViewport(Xr,{duration:0})}catch{}},60);return()=>window.clearTimeout(B)},[e,Xr]);const js=T.useRef(!0);T.useEffect(()=>{const B=new EventSource("/events"),V=CL(i,{now:()=>Date.now(),setTimeout:(oe,de)=>window.setTimeout(oe,de),clearTimeout:oe=>window.clearTimeout(oe)});return B.addEventListener("open",()=>{W(!0),ko(!0)}),B.addEventListener("error",()=>W(!1)),B.addEventListener("replay-end",()=>{js.current=!1,V.flush()}),B.addEventListener("hook",oe=>{try{const de=JSON.parse(oe.data);if(!Zt.current.accept(de))return;n.current=Cx(n.current,de),de.replay===!0||js.current||Date.now()-de.receivedAt>3e4?V.replay():V.live()}catch{}}),()=>{B.close(),V.cancel()}},[i]),T.useEffect(()=>{const B=setInterval(()=>{const V=Date.now();hi(V);let oe=eO(n.current,V,TD);nO(n.current,V,tO)&&(oe=!0),ZP(n.current,V,AD,ID)&&(oe=!0),JP(n.current,V,MD,PD)&&(oe=!0),oe&&i()},250);return()=>clearInterval(B)},[i]);const or=T.useRef(null),$n=T.useRef(0),yi=420,Ot=T.useCallback((B=500)=>{try{const Ne=document.querySelector(".canvas-wrap"),Ie=Array.from(document.querySelectorAll(".react-flow__node")).filter(xt=>xt.offsetWidth>0);if(!Ne||Ie.length===0)return;const Le=Ne.getBoundingClientRect(),Ve=e.getViewport();if(!Number.isFinite(Ve.zoom)||Ve.zoom<=0)return;const Qe=xt=>(xt-Le.left-Ve.x)/Ve.zoom,rt=xt=>(xt-Le.top-Ve.y)/Ve.zoom,Nn=Ie.map(xt=>xt.getBoundingClientRect()),Ar=Math.min(...Nn.map(xt=>Qe(xt.left))),Oo=Math.max(...Nn.map(xt=>Qe(xt.right))),zs=Math.min(...Nn.map(xt=>rt(xt.top))),Lo=Math.max(...Nn.map(xt=>rt(xt.bottom))),qo=Oo-Ar,Ti=Lo-zs;if(!(qo>0&&Ti>0))return;const Bn=Math.max(.2,Math.min(1,(Le.width-160)/(qo+yi)*.86,(Le.height-160)/Ti*.86));e.setViewport({x:80-Ar*Bn,y:Math.max(80,(Le.height-Ti*Bn)/2)-zs*Bn,zoom:Bn},{duration:B}),$n.current=Date.now(),window.setTimeout(()=>{try{const xt={x:80-Ar*Bn,y:Math.max(80,(Le.height-Ti*Bn)/2)-zs*Bn,zoom:Bn},Wa=e.getViewport();(Math.abs(Wa.zoom-Bn)>.01||Math.abs(Wa.x-xt.x)>2)&&e.setViewport(xt,{duration:0})}catch{}},B+60)}catch{}},[e]),Ut=T.useRef(""),Sr=T.useRef(null),rn=T.useRef(0),wi=T.useCallback(()=>{rn.current=Date.now()},[]),Eo="agent-dag.autoFitDisabled",kr=T.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Eo)==="1"}catch{return!1}})()),[Rs,Ts]=T.useState(kr.current),Zr=T.useCallback(()=>{if(!kr.current){kr.current=!0,Ts(!0);try{window.localStorage.setItem(Eo,"1")}catch{}}},[]),xi=T.useCallback(()=>{kr.current=!1,Ts(!1);try{window.localStorage.removeItem(Eo)}catch{}Ot(400)},[e,Ot]);T.useEffect(()=>{const B=setInterval(()=>{if(kr.current||Date.now()-rn.current<800)return;const V=n.current,oe=Date.now(),de=[];for(const Qe of V.agents.values())kv(Qe,oe)&&de.push({id:Qe.id});if(de.length===0)return;const xe=e.getViewport(),Ne=window.innerWidth-360,Ie=window.innerHeight-52;let Le=!1,Ve=!1;for(const{id:Qe}of de){const rt=Jr.current.get(Qe),Nn=jt.current.get(Qe)??Ht.current.get(Qe);if(!rt||!Nn)continue;Ve=!0;const Ar=Nn.x*xe.zoom+xe.x,Oo=Nn.y*xe.zoom+xe.y,zs=(Nn.x+rt.width)*xe.zoom+xe.x,Lo=(Nn.y+rt.height)*xe.zoom+xe.y;if(zs>0&&Ar<Ne&&Lo>0&&Oo<Ie){Le=!0;break}}Ve&&!Le&&Ot(600)},1500);return()=>clearInterval(B)},[e]);const No=T.useRef(!1),Jr=T.useRef(new Map),_i=T.useRef(0),Ba=T.useCallback(B=>{const V=Jr.current;let oe=!1;for(const de of B.nodeInternals.values()){const xe=de.width,Ne=de.height;if(xe==null||Ne==null)continue;const Ie=V.get(de.id);Ie?(Math.abs(Ie.height-Ne)>4||Math.abs(Ie.width-xe)>4)&&(V.set(de.id,{width:xe,height:Ne}),oe=!0):(V.set(de.id,{width:xe,height:Ne}),oe=!0)}return oe&&(_i.current+=1),_i.current},[]),bi=Ke(Ba),[es,Gu]=T.useState(0);T.useEffect(()=>{let B=0;const V=()=>{const de=Jr.current;let xe=!1;for(const Ne of document.querySelectorAll(".react-flow__node[data-id]")){const Ie=Ne.getAttribute("data-id");if(!Ie)continue;const Le=Ne.offsetWidth,Ve=Ne.offsetHeight;if(!Le||!Ve)continue;const Qe=de.get(Ie);(!Qe||Math.abs(Qe.width-Le)>4||Math.abs(Qe.height-Ve)>4)&&(de.set(Ie,{width:Le,height:Ve}),xe=!0)}xe&&Gu(Ne=>Ne+1)};if(No.current)return;let oe=0;return document.visibilityState==="hidden"?oe=window.setTimeout(V,32):B=requestAnimationFrame(V),()=>{cancelAnimationFrame(B),window.clearTimeout(oe)}});const Ht=T.useRef(new Map(gn.positions)),We=T.useRef(new Set),Si=T.useRef(""),Er=T.useMemo(()=>{const B=[];for(const V of n.current.agents.values())kv(V,ut)&&B.push(V.id+(V.parentId?`>${V.parentId}`:""));return B.sort(),`${B.join("|")}#sv${bi}.${es}`},[n.current,n.current.lastSeq,ut,bi,es]),Nr=T.useRef(null);T.useEffect(()=>(Nr.current!=null&&window.clearTimeout(Nr.current),Nr.current=window.setTimeout(()=>{tv(Ht.current,jt.current)},1500),()=>{Nr.current!=null&&window.clearTimeout(Nr.current)}),[Er]),T.useEffect(()=>{if(Ut.current===Er)return;const B=Ut.current;if(Ut.current=Er,!B||kr.current)return;Date.now()-$n.current>1200&&Ot(400),or.current&&window.clearTimeout(or.current),or.current=window.setTimeout(()=>{kr.current||Ot(500)},280)},[Er,e,Ot]);const ki=T.useMemo(()=>{if(o.size===0)return null;const B=new Set;for(const V of o){const oe=YD(n.current,V);if(oe)for(const de of oe)B.add(de)}return B.size>0?B:null},[n.current,n.current.lastSeq,o]),ar=T.useMemo(()=>mD(n.current,ut),[n.current,n.current.lastSeq,ut]),Co=T.useRef(null),[ts,As]=T.useState({w:0,h:0});T.useEffect(()=>{const B=Co.current;if(!B||typeof ResizeObserver>"u")return;const V=new ResizeObserver(oe=>{var xe;const de=(xe=oe[0])==null?void 0:xe.contentRect;de&&As(Ne=>Math.abs(Ne.w-de.width)>40||Math.abs(Ne.h-de.height)>40?{w:de.width,h:de.height}:Ne)});return V.observe(B),As({w:B.clientWidth,h:B.clientHeight}),()=>V.disconnect()},[]);const lr=T.useRef(new Map),[Dn,ur]=T.useState(!1);T.useEffect(()=>{const B=window.setTimeout(()=>ur(!0),2500);return()=>window.clearTimeout(B)},[]);const[Is,Cr]=T.useState(!1),Lt=T.useRef(null),[jo,Ro]=T.useState(!1),Ms=T.useCallback(()=>{Lt.current&&(window.clearTimeout(Lt.current),Lt.current=null),Cr(!1)},[]),Yu=T.useCallback(B=>{B.length!==0&&queueMicrotask(()=>{Cr(!0),Lt.current&&window.clearTimeout(Lt.current),Lt.current=window.setTimeout(()=>Cr(!1),RD+80)})},[]);T.useEffect(()=>()=>{Lt.current&&window.clearTimeout(Lt.current)},[]);const To=ts.w>0?ts.w*.92:0,Ps=ts.h>0?ts.h:0,{nodes:Fn,edges:Ku}=T.useMemo(()=>KD(n.current,ut,To,Ps,jt.current,en,Jr.current,lr.current,Yu,Dn,jo,Ht.current,We.current,Er,Si,o,ki,ar,S),[n.current,n.current.lastSeq,ut,To,Ps,Dn,jo,en,Er,o,ki,ar,S,pt]),ns=T.useMemo(()=>{const B=new Map;for(const oe of Fn){const de=oe.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=oe.width,Ne=oe.height;if(xe==null||Ne==null)continue;const Ie=oe.position.x,Le=oe.position.y,Ve=Ie+xe,Qe=Le+Ne,rt=B.get(de.sessionId);rt?(rt.minX=Math.min(rt.minX,Ie),rt.minY=Math.min(rt.minY,Le),rt.maxX=Math.max(rt.maxX,Ve),rt.maxY=Math.max(rt.maxY,Qe)):B.set(de.sessionId,{minX:Ie,minY:Le,maxX:Ve,maxY:Qe})}const V=[];for(const[oe,de]of B){const xe=de.maxX-de.minX+nu*2,Ne=de.maxY-de.minY+nu*2;V.push({id:`group:${oe}`,type:vj,position:{x:de.minX-nu,y:de.minY-nu},data:{sessionId:oe,w:xe,h:Ne},width:xe,height:Ne,style:{width:xe,height:Ne},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return V},[Fn,ut]),Os=T.useMemo(()=>{const B=[...ns,...Fn],V=Qt.current;return!V||V.size===0?B:B.map(oe=>{const de=V.get(oe.id);return de?{...oe,position:de}:oe})},[ns,Fn,yr]),kn=T.useMemo(()=>{if(!en)return null;const B=new Set;for(const V of n.current.agents.values())ar.has(V.id)&&Ej(V,en)&&B.add(V.id);return B},[n.current,n.current.lastSeq,en,ar]),En=T.useMemo(()=>ED(en,(kn==null?void 0:kn.size)??0,ar.size),[en,kn,ar]),Ei=T.useMemo(()=>{const B=new Set;for(const V of n.current.agents.values())for(const oe of V.tools)B.add(kj(oe.name));return Object.keys(Nv).filter(V=>B.has(V))},[n.current,n.current.lastSeq]);T.useEffect(()=>{if(Ei.length<=1){Pt(!1);return}let B=0;const V=()=>{const oe=_n.current;if(oe&&!document.hidden){const de=oe.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ie=>Ie.getBoundingClientRect()),Ne=vD(de,xe,8);Pt(Ie=>Ie===Ne?Ie:Ne)}B=window.setTimeout(V,300)};return V(),()=>window.clearTimeout(B)},[Ei.length]);const Ls=T.useMemo(()=>{const B=new Map;for(const oe of n.current.agents.values())for(const de of oe.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ne=xe.indexOf("__"),Ie=Ne>0?xe.slice(0,Ne):xe;B.set(Ie,(B.get(Ie)??0)+1)}const V=[];for(const[oe,de]of B){let xe=5381;for(let Ne=0;Ne<oe.length;Ne++)xe=(xe<<5)+xe^oe.charCodeAt(Ne);V.push({server:oe,count:de,hue:Math.abs(xe)%360})}return V.sort((oe,de)=>de.count-oe.count),V},[n.current,n.current.lastSeq]),Ao=T.useCallback(B=>{gi(V=>{const oe=new Set(V);return oe.has(B)?oe.delete(B):oe.add(B),oe})},[]),St=u?n.current.agents.get(u):null,qs=h?Array.from(n.current.agents.values()).flatMap(B=>B.tools).find(B=>B.id===h)??null:null,Io=T.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=yv(),jt.current.clear(),Jr.current.clear(),Ht.current.clear(),Si.current="",NE(),m(),i()},[i,m]),zn=T.useRef(b);zn.current=b;const Ni=T.useRef(!1);Ni.current=qs!=null||Xe||N!=null||y!=null;const jr=T.useCallback(B=>{const V=xL(B,{confirmOpen:zn.current,modalOpen:Ni.current});V==="confirm"?k(!0):V==="clear"&&(k(!1),Io())},[Io]),Ci=T.useCallback(()=>{jt.current.clear(),Ht.current.clear(),Si.current="",NE(),i(),window.setTimeout(()=>Ot(500),80)},[i,e,Ot]),$s=T.useCallback(()=>Ot(500),[Ot]),rs=T.useRef(Fn);rs.current=Fn;const Mo=T.useRef(u);Mo.current=u;const qt=T.useCallback(B=>{const V=rs.current;if(V.length===0)return;const oe=V.slice().sort((Le,Ve)=>Le.position.y-Ve.position.y||Le.position.x-Ve.position.x),de=Mo.current,xe=de?oe.findIndex(Le=>Le.id===de):-1;let Ne;xe===-1?Ne=B===1?0:oe.length-1:Ne=(xe+B+oe.length)%oe.length;const Ie=oe[Ne];Ie&&(d(Ie.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[Ie]})}catch{}$n.current=Date.now()},30))},[d,e]),Rr=T.useCallback(B=>{d(B,!1),window.setTimeout(()=>{try{const V=rs.current.find(oe=>oe.id===B);V&&e.fitView({padding:.3,duration:500,nodes:[V]}),$n.current=Date.now()}catch{}},60)},[d,e]);T.useEffect(()=>{const B=V=>{var xe,Ne;const oe=V.target,de={tagName:oe==null?void 0:oe.tagName,isContentEditable:oe==null?void 0:oe.isContentEditable,role:(xe=oe==null?void 0:oe.getAttribute)==null?void 0:xe.call(oe,"role"),type:oe==null?void 0:oe.type};if(V.key==="Escape"){const Ie=yO({overlayOpen:wv.depth()>0,typing:hC(de)});Ie==="dismiss"?wv.dismissTop():Ie==="blur"?oe==null||oe.blur():m();return}if(!yL(de)&&!pL(V)){if(V.key==="/"){V.preventDefault(),(Ne=br.current)==null||Ne.focus();return}V.key===" "&&(V.preventDefault(),Gr()),(V.key==="c"||V.key==="C")&&jr("shortcut"),(V.key==="r"||V.key==="R")&&Ci(),(V.key==="f"||V.key==="F")&&$s(),(V.key==="l"||V.key==="L")&&Kt(),(V.key==="h"||V.key==="H")&&wt(Ie=>!Ie),(V.key==="u"||V.key==="U")&&O(Ie=>!Ie),(V.key==="a"||V.key==="A")&&Mt(),(V.key==="j"||V.key==="J")&&qt(1),(V.key==="k"||V.key==="K")&&qt(-1),(V.key==="t"||V.key==="T")&&vi(Ie=>Ie==="dark"?"light":"dark")}};return window.addEventListener("keydown",B),()=>window.removeEventListener("keydown",B)},[jr,Ci,$s,m,qt,Gr]);const Tr=n.current.agents.size,Ds=new Set(Array.from(n.current.agents.values()).map(B=>B.sessionId)).size,cr=T.useMemo(()=>{var V;const B=[];for(const oe of n.current.agents.values())oe.kind==="root"&&((V=oe.waiting)==null?void 0:V.kind)==="permission"&&B.push({id:oe.id,label:oe.label,waiting:oe.waiting});return B.sort((oe,de)=>oe.waiting.since-de.waiting.since)},[n.current,n.current.lastSeq]),ji=T.useMemo(()=>{const B=new Set;for(const V of n.current.agents.values())V.state==="active"&&B.add(V.sessionId);return B.size},[n.current,n.current.lastSeq]),Ri=T.useRef(null);T.useEffect(()=>{const B=PL({waiting:cr.length,running:ji}),V=Ri.current;if(Ri.current=B,(V==null?void 0:V.title)!==B.title&&(document.title=B.title),(V==null?void 0:V.icon)!==B.icon){const oe=document.querySelector('link[rel="icon"]');oe&&(oe.href=OL[B.icon])}},[cr.length,ji]);const Rt=T.useMemo(()=>{let B=0,V=0,oe=0,de=0,xe=0,Ne=0,Ie=0,Le=0,Ve=0;for(const Qe of n.current.agents.values()){B+=Qe.usage.inputTokens,V+=Qe.usage.outputTokens,oe+=Qe.usage.cacheReadTokens,de+=Qe.usage.cacheCreateTokens;const rt=fn(Qe.usage,Qe.model);xe+=rt.total,Ne+=rt.input,Ie+=rt.output,Le+=rt.cacheRead,Ve+=rt.cacheWrite}return{inT:B,outT:V,cacheR:oe,cacheC:de,sum:B+V,cost:{total:xe,input:Ne,output:Ie,cacheRead:Le,cacheWrite:Ve}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),zt,ye?g.jsxs("button",{type:"button",className:"v stale",onClick:ze,title:ye.kind==="restart"?`Running v${ye.from}; v${ye.to} is installed on disk. Restart to pick it up.`:`Running v${ye.from}; v${ye.to} is on npm.`,children:["v",ye.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const B={running:(Y==null?void 0:Y.running)??"1.33.146",latest:Y==null?void 0:Y.latest,latestPending:Y==null?void 0:Y.latestPending,checkedAgo:Y!=null&&Y.checkedAt?Ev(ut-Y.checkedAt):null,checkDisabled:Y==null?void 0:Y.checkDisabled,checking:ce};return g.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ve(!0),"aria-busy":ce||void 0,"aria-label":_D(B),title:xD(B),children:["v",B.running]})})()]}),St&&(()=>{const B=fn(St.usage,St.model),V=Math.max(0,((St.endedAt??ut)-St.startedAt)/1e3),oe=St.state==="active"?yu(B.total,V):null,de=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${St.label}`,onClick:()=>{try{const xe=Fn.find(Ne=>Ne.id===St.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),$n.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${St.state}`,children:St.state==="active"?"live":St.state}),g.jsx("span",{className:"selected-label",children:St.label}),B.total>0&&g.jsxs("span",{className:"selected-cost",children:[Fe(B.total),oe?g.jsxs("span",{className:"selected-rate",children:[" · ",oe]}):null]}),de>0&&g.jsxs("span",{className:"selected-extra",children:["+",de]}),g.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:xe=>{xe.stopPropagation(),m()},children:"×"})]})})(),g.jsxs("div",{className:"actions",children:[g.jsxs("div",{className:"search",children:[g.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),g.jsx("input",{ref:br,type:"text",placeholder:"Search agents, cwd, tools…",value:en,onChange:B=>Qr(B.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),en?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Qr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),En.count&&g.jsx("span",{className:`search-count${En.empty?" none":""}`,"aria-live":"polite",title:`${En.count} agents on the canvas match “${en}”`,children:En.count})]}),g.jsxs("span",{className:"status",role:"status",children:[(()=>{const B=SD({connected:I,paused:pn,held:Zt.current.size});return g.jsx("span",{className:`pill ${B.tone}`,title:B.title,children:B.label})})(),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Ds}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:Tr}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Rt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Rt.inT.toLocaleString()} out:${Rt.outT.toLocaleString()} cache-r:${Rt.cacheR.toLocaleString()} cache-c:${Rt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:Ft(Rt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Ls.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
62
62
|
${Ls.map(B=>` ${B.server}: ${B.count} call${B.count===1?"":"s"}`).join(`
|
|
63
63
|
`)}`,children:[Ls.slice(0,6).map(B=>g.jsx("span",{className:"mcp-dot",style:{"--mcp-hue":B.hue}},B.server)),Ls.length>6&&g.jsxs("span",{className:"mcp-more",children:["+",Ls.length-6]}),g.jsx("span",{className:"lbl",children:"mcp"})]}),Rt.cost.total>0&&(()=>{let B=0,V=0;for(const xe of n.current.agents.values()){if(xe.state!=="active")continue;const Ne=fn(xe.usage,xe.model);B+=Ne.total,V=Math.max(V,((xe.endedAt??ut)-xe.startedAt)/1e3)}const oe=V>0?yu(B,V):null,de=`input ${Fe(Rt.cost.input)} + output ${Fe(Rt.cost.output)} + cache r ${Fe(Rt.cost.cacheRead)} + cache w ${Fe(Rt.cost.cacheWrite)}${oe?`
|
|
64
64
|
active burn: ${oe}`:""}`;return g.jsxs("span",{className:"stat",title:de,children:[g.jsx("span",{className:"count",children:Fe(Rt.cost.total)}),g.jsxs("span",{className:"lbl",children:["cost",oe?` · ${oe}`:""]})]})})()]}),cr.length>0&&g.jsxs("button",{type:"button",className:"waiting-stat",onClick:()=>Rr(cr[0].id),title:`Blocked waiting for you — click to go to the one that has been stuck longest:
|