agent-dag 1.35.9 → 1.35.10
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.
|
@@ -63,7 +63,7 @@ burn: ${y}`:"");return g.jsxs("span",{className:"cost-meta",title:w,children:[g.
|
|
|
63
63
|
Blocked for ${Tv(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:QP(e)}),g.jsx("b",{children:Tv(e.since,void 0,n)})]})}function JP(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function eL({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,S=`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:S},w)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function di(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 Ux(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function tL(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 nL({tool:e,onClose:n}){const r=mo(n),i=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{ref:r,className:"modal",onClick:o=>o.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 ${i}`,"aria-hidden":!0}),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:tL(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:Ux(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",i==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":Ux(e.response??e.errorPreview)})]})]})]})})}const tu=18,Hx=26,rL=12;function sL(e){return iL(e.nodeInternals.values())}function iL(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=Wx(l)??d.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:h,maxY:p,label:Wx(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} · ${oL(o)}`:l.label;i.push({sessionId:o,label:c,x:l.minX-tu,y:l.minY-tu-Hx,w:l.maxX-l.minX+tu*2,h:l.maxY-l.minY+tu*2+Hx})}return i}function oL(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function Wx(e){if(e.kind==="root")return e.label}function aL(){const{x:e,y:n,zoom:r}=oC(),i=Ta(),o=Ke(sL,lL);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=ty(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-rL)*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 lL(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 uL({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 Ra={exec:{category:"shell",emoji:"⚡",label:"Shell",shell:!0},shell:{category:"shell",emoji:"⚡",label:"Shell",shell:!0},exec_command:{category:"shell",emoji:"⚡",label:"Shell",shell:!0},shell_command:{category:"shell",emoji:"⚡",label:"Shell",shell:!0},write_stdin:{category:"shell",emoji:"💻",label:"stdin",shell:!0},wait:{category:"shell",emoji:"⏳",label:"wait",shell:!0},apply_patch:{category:"file",emoji:"🩹",label:"Edit"},update_plan:{category:"task",emoji:"📋",label:"Plan"},run:{category:"web",emoji:"🌐",label:"Web"}},cL=Object.fromEntries(Object.entries(Ra).map(([e,n])=>[e,n.category])),dL=Object.fromEntries(Object.entries(Ra).map(([e,n])=>[e,n.emoji])),fL=Object.fromEntries(Object.entries(Ra).map(([e,n])=>[e,n.label])),hL=new Set(Object.keys(Ra)),pL=new Set(Object.entries(Ra).filter(([,e])=>e.shell).map(([e])=>e)),mL={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",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",...cL};function bC(e){return e.startsWith("mcp__")?"mcp":mL[e]??"other"}const gL=/\btools\.exec_command\s*\(\s*\{[^{}]*?\bcmd\s*:\s*(["'`])((?:\\.|(?!\1)[^\\])*)\1/,vL=/\btools\.([A-Za-z_$][\w$]*)\s*\(/;function yL(e){if(typeof e!="string"||!e)return null;const n=gL.exec(e);if(n){const i=wL(n[2]);if(i.trim())return i}const r=vL.exec(e);return r?r[1]:null}function wL(e){return e.replace(/\\(["'`\\nrt])/g,(n,r)=>r==="n"?`
|
|
64
64
|
`:r==="r"?"\r":r==="t"?" ":r)}const SC=600,xL=4,_L=36,jv=16,bL=60,SL=6,Vx=220,Gx=96,kL=28,EL={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",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:"📡",...dL};function Yx(e){return e.startsWith("mcp__")?"🔌":EL[e]??"✨"}const NL={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 kC(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 kC(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 CL(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.script=="string"){const r=yL(n.script);if(r)return r}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 TL=new Set(["Bash","PowerShell",...pL]),jL=hL;function RL(e,n){return jL.has(e)||e.startsWith("mcp__")?Math.max(Gx,34+n.length*7.5):Gx}function AL(e,n){if(!TL.has(e))return null;const r=CL(n);if(!r)return null;const i=kC(r);return i?{emoji:NL[i]??"⚙️",label:i,category:"shell",detail:r}:null}const IL=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),Kx={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:"🗄️"},Xx={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 ML(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),i=r.lastIndexOf("/");return i>=0?r.slice(i+1):r}function OL(e){const n=e.toLowerCase();if(Xx[n])return Xx[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(Kx[i])return Kx[i]}return"📄"}function PL(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 LL(e,n){if(!IL.has(e))return null;const r=PL(e,n);if(!r)return null;const i=ML(r);return i?{emoji:e==="LS"?"📂":OL(i),label:i,category:"file",detail:r}:null}const EC={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 NC(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 $L(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 qL(e,n){const r=NC(e);if(!r)return null;const{server:i,method:o}=r;if(!o)return null;const l=EC[i.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${i} · ${o}`}}function DL(e,n){return AL(e,n)??LL(e,n)??qL(e)}const FL=fL;function zL(e){const n=NC(e);if(n){const i=EC[n.server.toLowerCase()];return i?{emoji:i.emoji,label:i.name}:{emoji:"🔌",label:n.server,hue:$L(n.server)}}const r=FL[e];return r?{emoji:Yx(e),label:r}:{emoji:Yx(e),label:e}}function BL(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function UL(e,n,r){if(r==null)return 1;const i=n-r;return i<0?1:Math.max(0,1-i/SC)}function HL(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 WL(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>SC)continue;const h=i.get(c.id)??r.get(c.id);if(!h)continue;const p=HL(c.tools,xL);if(p.length===0)continue;const d=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??Vx,Vx),w=(m==null?void 0:m.height)??130,N=h.x,_=h.y,b=N+y,S=_+w/2;p.forEach((k,E)=>{const T=E*_L,I=N+y+bL,O=_+SL+T,A=UL(k,l,d),U=k.inputPreview??"",z=BL(k),P=A<.999,D=zL(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:D.label,emoji:D.emoji,status:z,category:bC(k.name),mcpHue:D.hue,inputPreview:U,fade:A,fading:P,worldX:I,worldY:O,anchorX:b,anchorY:S,spawnDx:b-I,spawnDy:S-(O+jv)});const V=DL(k.name,k.input);if(V){const B=RL(k.name,D.label),C=I+B+kL,q=O,L=I+B,re=O+jv;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:V.label,emoji:V.emoji,isSub:!0,status:z,category:V.category,inputPreview:V.detail??U,fade:A,fading:P,worldX:C,worldY:q,anchorX:L,anchorY:re,spawnDx:L-C,spawnDy:0})}})}return u}function VL({agents:e,visibleAgentIds:n,positions:r,pinned:i,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:h,onOpenTool:p}){const d=WL(e,n,r,i,o,h),m=c&&c.size>0?d.filter(y=>!c.has(y.category)):d;return g.jsx(GL,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:p})}function GL({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:i}){const{x:o,y:l,zoom:u}=oC();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+jv)*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),b=r!=null&&!r.has(c.agentId),S=_||b?" 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":""}${S}`,style:N,title:y,onClick:w?()=>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 YL({state:e,sessionId:n,onClose:r}){const i=R.useMemo(()=>XL(e,n),[e,n]),o=R.useRef(null),l=mo(r,{focusRef:o});return i?g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{ref:l,className:"modal session-summary",onClick:u=>u.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:De(i.cost.total)}),i.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:i.modelChips.map(u=>g.jsx("span",{className:"model-chip",title:u,children:di(u)},u))})]}),g.jsx("div",{className:"ss-hero-right",children:i.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(KL,{cost:i.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:De(i.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:De(i.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:De(i.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:De(i.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(Zi,{label:"agents",value:i.agentCount}),g.jsx(Zi,{label:"subagents",value:i.subagentCount}),g.jsx(Zi,{label:"tool calls",value:i.toolCount}),g.jsx(Zi,{label:"prompts",value:i.promptCount}),g.jsx(Zi,{label:"tokens",value:i.tokensSum.toLocaleString()}),i.errCount>0&&g.jsx(Zi,{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(([u,c])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:u}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${c/i.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:c})]},u))})]}),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 Zi({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 KL({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}: ${De(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg",role:"img","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 XL(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 T=dn(E.usage,E.model);o.input+=T.input,o.output+=T.output,o.cacheRead+=T.cacheRead,o.cacheWrite+=T.cacheWrite,o.total+=T.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 I of E.tools)u.set(I.name,(u.get(I.name)??0)+1),I.ok===!1&&d++}const _=Math.max(0,N-w),b=Math.floor(_/1e3),S=b<60?`${b}s`:b<3600?`${Math.floor(b/60)}m ${String(b%60).padStart(2,"0")}s`:`${Math.floor(b/3600)}h ${Math.floor(b%3600/60)}m`,k=Array.from(u.entries()).sort((E,T)=>T[1]-E[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:S,cost:o,modelChips:Array.from(l),agentCount:i.length,subagentCount:m,toolCount:c,promptCount:h,tokensSum:p,errCount:d,topTools:k,firstPrompt:y}}function sy(e){return(e==null?void 0:e.kind)==="permission"}function QL(e){const n=[];for(const r of e)r.kind==="root"&&sy(r.waiting)&&n.push({id:r.id,label:r.label,waiting:r.waiting});return n.sort((r,i)=>r.waiting.since-i.waiting.since)}function ZL(e){const n=new Set;for(const r of e)r.state==="active"&&n.add(r.sessionId);return n.size}function Qx(e){return e.waiting?sy(e.waiting)?0:1:e.state==="active"?2:3}function JL(e,n){const r=[];for(const i of e.agents.values()){if(i.kind!=="root")continue;let o=i.toolCount,l=dn(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+=dn(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=Qx(i),u=Qx(o);return l!==u?l-u:i.waiting&&o.waiting?i.waiting.since-o.waiting.since:o.lastActivity-i.lastActivity}),r}function Zx(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 e3({state:e,now:n,selectedIds:r,onSelect:i,onClose:o}){const l=R.useMemo(()=>JL(e),[e,e.lastSeq,n]),u=l.filter(h=>h.state==="active").length,c=l.filter(h=>sy(h.waiting)).length;return g.jsxs("aside",{className:"session-list",id:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h2",{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.jsx("span",{className:"vis-hidden",children:ry(h.state)}),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:di(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:De(h.cost)})}),h.waiting?g.jsxs("span",{className:"sl-waiting",title:`${Pu(h.waiting)}
|
|
65
65
|
Blocked since ${new Date(h.waiting.since).toLocaleTimeString()} · started ${new Date(h.startedAt).toLocaleString()}`,children:["waiting ",Zx(h.waiting.since,void 0,n)]}):g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(h.startedAt).toLocaleString()}`,children:Zx(h.startedAt,h.state==="active"?void 0:h.lastActivity,n)})]})]})]},h.sessionId)})]})]})}const en="ccdeck";function qt(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 Jx(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 t3(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"}const Ud="__unknown__";function n3({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}: ${De(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar",role:"img","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 r3(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 s3(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 ri({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?r3(i,u):null,w=i&&o?s3(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 i3=6e4;function o3(e){const[n,r]=R.useState(null),[i,o]=R.useState(!1),l=R.useRef(null),u=async(h=!1)=>{h&&o(!0);try{const d=await fetch(h?"/api/quota?refresh=1":"/api/quota");d.ok&&r(await d.json())}catch{}finally{h&&o(!1)}};return R.useEffect(()=>{if(e)return u(!0),l.current=window.setInterval(()=>u(!1),i3),()=>{l.current!=null&&window.clearInterval(l.current)}},[e]),{quota:n,loading:i,refresh:()=>{e&&u(!0)}}}function a3(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.";case"untrusted_base_url":return"chatgpt_base_url in ~/.codex/config.toml is not an https OpenAI host, so the token was not sent.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const CC=6e4;function l3(e){const[n,r]=R.useState(null),[i,o]=R.useState(!1),l=R.useRef(null),u=async(h=!1)=>{h&&o(!0);try{const d=await fetch(h?"/api/codex-quota?refresh=1":"/api/codex-quota");d.ok&&r(await d.json())}catch{}finally{h&&o(!1)}};return R.useEffect(()=>{if(e)return u(!0),l.current=window.setInterval(()=>u(!1),CC),()=>{l.current!=null&&window.clearInterval(l.current)}},[e]),{data:n,loading:i,refresh:()=>{e&&u(!0)}}}function u3(e){const[n,r]=R.useState(null),i=R.useRef(null),o=async()=>{try{const l=await fetch("/api/codex-usage");l.ok&&r(await l.json())}catch{}};return R.useEffect(()=>{if(e)return o(),i.current=window.setInterval(o,CC),()=>{i.current!=null&&window.clearInterval(i.current)}},[e]),{data:n}}function c3({state:e,now:n,providers:r,onClose:i}){var V,B;const{quota:o,loading:l,refresh:u}=o3(r.claude),{data:c,loading:h,refresh:p}=l3(r.codex),{data:d}=u3(r.codex),[m,y]=R.useState(()=>Math.floor(Date.now()/1e3));R.useEffect(()=>{const C=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(C)},[]);const{byModel:w,totalCost:N,totalTokens:_,burnRate:b}=R.useMemo(()=>{const C=new Map,q={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let L=0,re=0,Z=0,H=0;for(const $ of e.agents.values()){const Q=$.model??Ud,ne=dn($.usage,$.model),oe=C.get(Q);oe?(oe.inputTokens+=$.usage.inputTokens,oe.outputTokens+=$.usage.outputTokens,oe.cacheReadTokens+=$.usage.cacheReadTokens,oe.cacheCreateTokens+=$.usage.cacheCreateTokens,oe.cost.total+=ne.total,oe.cost.input+=ne.input,oe.cost.output+=ne.output,oe.cost.cacheRead+=ne.cacheRead,oe.cost.cacheWrite+=ne.cacheWrite,oe.agentCount++):C.set(Q,{model:Q,inputTokens:$.usage.inputTokens,outputTokens:$.usage.outputTokens,cacheReadTokens:$.usage.cacheReadTokens,cacheCreateTokens:$.usage.cacheCreateTokens,cost:{...ne},agentCount:1,priced:fo($.model)!=null}),q.total+=ne.total,q.input+=ne.input,q.output+=ne.output,q.cacheRead+=ne.cacheRead,q.cacheWrite+=ne.cacheWrite,L+=$.usage.inputTokens,re+=$.usage.outputTokens,Z+=$.usage.cacheReadTokens,H+=$.usage.cacheCreateTokens}const J=Array.from(C.values()).sort(($,Q)=>Q.cost.total-$.cost.total||Q.inputTokens+Q.outputTokens-($.inputTokens+$.outputTokens));let M=0,G=0;for(const $ of e.agents.values()){if($.state!=="active")continue;const Q=dn($.usage,$.model);M+=Q.total,G=Math.max(G,(($.endedAt??n)-$.startedAt)/1e3)}const Y=G>0?ku(M,G):null;return{byModel:J,totalCost:q,totalTokens:{in:L,out:re,cacheR:Z,cacheC:H},burnRate:Y}},[e,e.lastSeq,n]),S=R.useMemo(()=>{const C=[],q=L=>fo(L.model)==null?L.usage.inputTokens+L.usage.outputTokens:0;for(const L of e.agents.values()){if(L.kind!=="root")continue;let re=dn(L.usage,L.model).total,Z=L.usage.inputTokens,H=L.usage.outputTokens,J=q(L);for(const M of e.agents.values())M.sessionId!==L.sessionId||M.kind==="root"||(re+=dn(M.usage,M.model).total,Z+=M.usage.inputTokens,H+=M.usage.outputTokens,J+=q(M));C.push({sessionId:L.sessionId,label:L.label||L.cwdBasename||"session",state:L.state,cost:re,inputTokens:Z,outputTokens:H,unpricedTokens:J})}return C.sort((L,re)=>re.cost-L.cost||re.inputTokens+re.outputTokens-(L.inputTokens+L.outputTokens)).slice(0,12)},[e,e.lastSeq]),k=N.total>0,E=_.in+_.out,T=w.filter(C=>C.cost.total>0||C.inputTokens+C.outputTokens>0),I=S.filter(C=>C.cost>0||C.inputTokens+C.outputTokens>0),O=T.some(C=>!C.priced),A=l||h,U=Jx(o==null?void 0:o.fetchedAt,m),z=Jx(c==null?void 0:c.fetchedAt,m),P=()=>{u(),p()},D=r.claude&&r.codex?"Refresh Claude + Codex quota":r.codex?"Refresh Codex quota":"Refresh Claude quota";return g.jsxs("aside",{className:"usage-panel",id:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h2",{children:"Usage"}),b&&g.jsx("span",{className:"up-rate",children:b}),g.jsxs("div",{className:"up-header-right",children:[(r.claude||r.codex)&&g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:P,disabled:A,"aria-label":D,title:D,children:A?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:i,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),r.claude&&g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h3",{className:"up-section-title",children:["Claude quota",U&&!l&&g.jsx("span",{className:"up-section-age",title:t3(o==null?void 0:o.source),children:U})]}),o!=null&&o.ok?g.jsxs("div",{className:"up-quota-bars",children:[o.session5hPct!=null&&g.jsx(ri,{label:"5-hour window",pct:o.session5hPct,reset:o.session5hReset,resetAt:o.session5hResetAt,windowSec:o.session5hWindowSec,nowSec:m}),o.week7dPct!=null&&g.jsx(ri,{label:"7-day window",pct:o.week7dPct,reset:o.week7dReset,resetAt:o.week7dResetAt,windowSec:o.week7dWindowSec,nowSec:m}),o.weekSonnetPct!=null&&g.jsx(ri,{label:"Sonnet (7d)",pct:o.weekSonnetPct,nowSec:m}),o.weekOpusPct!=null&&g.jsx(ri,{label:"Opus (7d)",pct:o.weekOpusPct,nowSec:m})]}):(o==null?void 0:o.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…"})]}),r.codex&&g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h3",{className:"up-section-title",children:["Codex quota",(c==null?void 0:c.ok)&&c.planLabel&&g.jsx("span",{className:"up-plan-badge",children:c.planLabel}),z&&!h&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:z})]}),c!=null&&c.ok?g.jsxs("div",{className:"up-quota-bars",children:[(V=c.windows)==null?void 0:V.map(C=>g.jsx(ri,{label:C.label,pct:C.pct,reset:C.reset??void 0,resetAt:C.resetAt??void 0,windowSec:C.windowSec??void 0,limitReached:c.limitReached&&C.pct>=100,nowSec:m},C.id)),(B=c.extraWindows)==null?void 0:B.map(C=>g.jsx(ri,{label:C.label,pct:C.pct,reset:C.reset??void 0,resetAt:C.resetAt??void 0,windowSec:C.windowSec??void 0,nowSec:m},C.id)),c.creditLimit&&g.jsx(ri,{label:`spend cap · $${Math.round(c.creditLimit.used)} of $${Math.round(c.creditLimit.limit)}`,pct:c.creditLimit.usedPct,reset:c.creditLimit.reset??void 0,resetAt:c.creditLimit.resetAt??void 0,limitReached:c.spendControlReached,nowSec:m}),c.creditsBalance&&!c.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",c.creditsBalance,c.overageReached&&" · overage limit reached"]}),c.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),c.resetCredits&&c.resetCredits.availableCount>0&&g.jsxs("div",{className:"up-quota-sub up-reset-credits",title:`Redeem in the Codex CLI or ChatGPT — ${en} only reports them`,children:[c.resetCredits.availableCount," rate-limit reset",c.resetCredits.availableCount!==1?"s":""," available",c.resetCredits.nextExpiryAt&&` · expires ${new Date(c.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),c.promo&&g.jsx("div",{className:"up-quota-sub",children:c.promo}),c.partial&&g.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(c==null?void 0:c.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:a3(c.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"}),(d==null?void 0:d.ok)&&d.window7d&&d.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",title:`Counted from the rollout files under CODEX_HOME — no network, no account${d.window5h?`
|
|
66
|
-
last 5h: ${qt(d.window5h.totalTokens)} tokens · ${d.window5h.sessionCount} session${d.window5h.sessionCount!==1?"s":""}`:""}`,children:[qt(d.window7d.totalTokens)," tokens · ",d.window7d.sessionCount," session",d.window7d.sessionCount!==1?"s":""," (7d)"]})]}),E>0?g.jsxs(g.Fragment,{children:[k&&g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:De(N.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(n3,{cost:N})]}),g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),qt(_.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),qt(_.out)]}),_.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),qt(_.cacheR)]}),_.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),qt(_.cacheC)]})]}),T.length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h3",{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:T.map(C=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:C.model===Ud?"no model reported yet":C.model,children:C.model===Ud?"unknown":di(C.model)}),g.jsx("td",{className:"up-num",children:qt(C.inputTokens+C.outputTokens)}),C.priced?g.jsx("td",{className:"up-num up-cost-val",children:De(C.cost.total)}):g.jsx("td",{className:"up-num up-unpriced",children:fu})]},C.model))})]})]}),I.length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h3",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:I.map(C=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${C.state}`,"aria-hidden":!0}),g.jsx("span",{className:"vis-hidden",children:ry(C.state)}),g.jsx("span",{className:"up-session-label",children:C.label}),g.jsx("span",{className:"up-session-tokens",children:qt(C.inputTokens+C.outputTokens)}),C.cost>0?g.jsxs("span",{className:"up-session-cost",title:C.unpricedTokens>0?`${qt(C.unpricedTokens)} tokens in this session are on an unpriced model, so this is a floor`:void 0,children:[De(C.cost),C.unpricedTokens>0?"+":""]}):g.jsx("span",{className:"up-session-cost up-unpriced",children:fu})]},C.sessionId))})]}),O&&g.jsxs("div",{className:"up-hint",children:["“",fu,"” means this build holds no published rate for that model — those tokens are counted above and their dollars are not."]})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const e_=18,d3=1100,Ji=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},f3=Array.from({length:e_},(e,n)=>{const r=-72+144*n/(e_-1)+(Ji(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Ji(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+Ji(n,3)*260),delay:Math.round(Ji(n,4)*90),dur:760+Math.round(Ji(n,5)*260),scale:.8+Ji(n,6)*.45,hue:n%4,round:n%3===0}});function t_({anchor:e,lifetimeMs:n=d3}){var l;const[r,i]=R.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return R.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:UI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:f3.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 TC=new Set(["awaiting_url","awaiting_code","registering"]);function h3(e){return e!=null&&TC.has(e)}function jC(e){return e!=null&&e!=="done"&&!TC.has(e)}const p3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",m3="the sign-in did not complete";function g3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?p3:m3)}}const v3="done";function y3(){let e=!1;return{shouldAnnounce(n){return n!==v3?(e=!1,!1):e?!1:(e=!0,!0)}}}const n_={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 ${en}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import",bad_value:"an alias can only use letters, numbers, spaces, dots, dashes and underscores, up to 64 characters"},r_={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"},w3=`claude-swap could not read the login keychain — start ${en} from a Terminal window rather than a background service`;function Rv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(ho(e))?w3:e!=null&&e.reason&&r_[e.reason]?r_[e.reason]:(e==null?void 0:e.reason)||n}function ho(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const s_={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"},x3="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 _3(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function b3(e,n){return _3(ho(e))?x3:e!=null&&e.reason&&s_[e.reason]?s_[e.reason]:(e==null?void 0:e.reason)||n}function hu(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&jC(e.state)?e.error:e!=null&&e.reason&&n_[e.reason]?n_[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const S3=1500;async function nu(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const Av=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"})]}));Av.displayName="SuccessMark";function k3({onClose:e,onChanged:n}){const[r,i]=R.useState("login"),[o,l]=R.useState(null),[u,c]=R.useState(""),[h,p]=R.useState(""),[d,m]=R.useState(!1),[y,w]=R.useState(null),[N,_]=R.useState(null),b=R.useRef(!1),S=R.useRef(null),k=R.useRef(null),E=R.useRef(null),T=R.useRef(null),I=R.useCallback(()=>{b.current&&nu({action:"login-cancel"}).catch(()=>{}),e()},[e]),O=mo(I,{focusRef:E}),A=R.useCallback(async()=>{m(!0),w(null),b.current=!0;const q=await nu({action:"login"}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"could not start the sign-in"));return}l(q)},[]);R.useEffect(()=>{if(!h3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const L=await fetch("/api/claude-accounts/login");L.ok&&l(await L.json())}catch{}},S3);return()=>window.clearInterval(q)},[o]);const U=R.useRef(n);U.current=n;const z=R.useRef(y3());R.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=S.current)==null||q.focus()),z.current.shouldAnnounce(o==null?void 0:o.state)&&U.current()},[o==null?void 0:o.state]),R.useEffect(()=>{var q;r==="paste"&&((q=k.current)==null||q.focus())},[r]);const P=R.useCallback(async()=>{var L;m(!0),w(null);const q=await nu({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"the code was not accepted")),q!=null&&q.state&&l(q),(L=S.current)==null||L.select();return}c(""),l(q)},[u,o]),D=R.useCallback(async()=>{m(!0),w(null);const q=await nu({action:"import",blob:h}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"the import failed"));return}p(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[h,n]),V=(o==null?void 0:o.state)==="done"?o.account:null,B=jC(o==null?void 0:o.state)||!!(y&&b.current&&!d),C=g3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:I,role:"presentation",children:g.jsxs("div",{ref:O,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:I,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?V?g.jsxs("div",{className:"aa-done",children:[g.jsx(Av,{ref:T}),g.jsx(t_,{anchor:T}),g.jsx("h4",{children:V.added?`Account ${V.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:V.email}),V.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:S,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!d&&P()},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:P,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."})]})]}):B?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:C.title}),g.jsx("p",{className:"aa-err",children:C.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{b.current=!1,l(null),w(null),A()},children:"Try again"})]}):d||b.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",ref:E,className:"btn primary",onClick:A,disabled:d,children:"Open the sign-in page"})})]}):N?g.jsxs("div",{className:"aa-done",children:[g.jsx(Av,{ref:T}),N.added&&g.jsx(t_,{anchor:T}),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&&D()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!h.trim(),onClick:D,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 E3(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 N3(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}}const C3=64;function T3(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const j3=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function i_(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function R3(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=ho(n.body);return{text:Rv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function o_(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 a_=15e3,A3=8e3,I3=1800,M3=3e4,O3=[70,80,85,90,95];function P3(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 l_(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 L3(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 $3(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 q3({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?P3(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 D3(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 F3(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 z3({onClose:e}){var ne,oe,fe;const[n,r]=R.useState(null),[i,o]=R.useState(null),[l,u]=R.useState(null),[c,h]=R.useState(!1),[p,d]=R.useState(null),[m,y]=R.useState(null),[w,N]=R.useState(()=>Math.floor(Date.now()/1e3)),_=R.useRef(null),[b,S]=R.useState(null),[k,E]=R.useState(!1),[T,I]=R.useState(""),[O,A]=R.useState(null),[U,z]=R.useState(null),[P,D]=R.useState(null),[V,B]=R.useState(!1),[C,q]=R.useState(null),L=R.useCallback(async(te=!1)=>{te&&h(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),M3);try{const[ve,Re]=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()),Re.ok&&o(await Re.json());const ye=R3([await i_(ve),await i_(Re)]);y(ke=>o_(ke,ye))}catch{y(ve=>o_(ve,j3))}finally{window.clearTimeout(Ce),te&&h(!1)}},[]),re=R.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:Rv(ve,"command failed"),raw:ho(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=R.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:hu(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);R.useEffect(()=>(L(!0),_.current=window.setInterval(()=>L(!1),a_),()=>{_.current!=null&&window.clearInterval(_.current)}),[L]),R.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const H=((ne=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:ne.value)??"90",J=(oe=n==null?void 0:n.accounts)==null?void 0:oe.find(te=>te.active),M=J!=null&&J.lanes.length?Math.max(...J.lanes.map(te=>te.pct)):null,G=M!=null&&M>=Number(H)-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:Rv(Ce,"the switch failed"),raw:ho(Ce)}),await L(!0)}catch{y({text:"server unreachable"})}finally{d(null)}},$=async(te,ce)=>{const{commit:Ce,alias:ve}=T3(T,ce);if(Ce){const Re=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await L(!0),!(Re!=null&&Re.ok))return;I(ve)}A(te),window.setTimeout(()=>A(Re=>Re===te?null:Re),I3)},Q=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=N3({menuFor:b,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await L(!0),ve){S(ve.menuFor),z(ve.confirmRemove),ve.shareFor==null&&(D(null),B(!1)),q(ve.swapNote);const Re=ve.swapNote;Re&&window.setTimeout(()=>q(ye=>ye===Re?null:ye),A3)}};return g.jsxs("aside",{className:"accounts-panel",id:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h2",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>E(!0),"aria-label":"Add an account",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:()=>L(!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 ",a_/1e3," seconds."]}),g.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>L(!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",title:te.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${b===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":b===te.num,"aria-controls":b===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{S(b===te.num?null:te.num),I(te.alias??""),z(null),D(null),B(!1),q(null),A(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(q3,{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=$3(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:()=>re({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>L(!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 ",l_(te.fetchedAt,w),L3(te.nextAt,w)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),b===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:"vis-hidden",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),g.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:T,onChange:ce=>I(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&$(te.num,te.alias)},maxLength:C3,placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>$(te.num,te.alias),title:"A short name to show instead of the email",children:O===te.num?"saved":"save"})]}),g.jsxs("div",{className:"ap-manage-acts",children:[g.jsx("label",{className:"vis-hidden",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=>Q(te.num,Number(ce.target.value)),children:E3((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 ${en}. Anyone who has the text can use the account — treat it as the password. The other deck stops accepting it after 10 minutes; that does not make an escaped copy safe.`,onClick:async()=>{B(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&D({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${U===te.num?" armed":""}`,disabled:l!=null,title:U===te.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(U!==te.num){z(te.num),window.setTimeout(()=>z(ce=>ce===te.num?null:ce),4e3);return}z(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{S(null),L(!0)})},children:U===te.num?"confirm":"remove"})]}),(C==null?void 0:C.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(Re=>Re.num===C.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 ${C.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${C.displaced}.`,children:["swapped with slot ",C.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=F3(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){B(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&D({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await D3(P.blob)&&(B(!0),window.setTimeout(()=>B(!1),1800))},children:Ce?"make a new share":V?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",title:"This text is the account's password. It is base64 of plain JSON — the expiry inside it is not signed, so anyone holding a copy can change it, and the login itself is in there in the clear either way. The countdown only says how long another deck's import dialog will still accept it. If a copy escapes, sign the account out and back in.",children:[g.jsx("span",{className:"ap-share-warn",children:"this is the password"})," · ",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:[M!=null&&g.jsxs("span",{className:`ap-auto-now${G?" near":""}`,children:[Math.round(M),"%"]}),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:H,disabled:l!=null,onChange:te=>re({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>L(!0)),children:O3.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:()=>re({action:"enable",enabled:!i.enabled},"enable").then(()=>L(!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 ",l_(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(k3,{onClose:()=>E(!1),onChanged:()=>L(!0)})]})}const B3=3e4;function U3({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function H3({bundle:e,running:n,pending:r,lastTried:i}){return n?U3({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function W3(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function V3({asked:e,reported:n}){return n?n!==e:!1}function G3(e){const n=e.thresholdMs??B3;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 Y3({agentCount:e,onConfirm:n,onCancel:r}){const i=R.useRef(null),o=mo(r,{focusRef:i,layer:IP}),l=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",{ref:o,className:"modal clear-confirm",onClick:u=>u.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:[l," — 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 K3(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function X3(e){return e.slice().sort((n,r)=>n.y-r.y||n.x-r.x)}function Q3(e,n,r){var u;if(e.length===0)return null;const i=X3(e),o=n?i.findIndex(c=>c.id===n):-1,l=o===-1?r===1?0:i.length-1:(o+r+i.length)%i.length;return((u=i[l])==null?void 0:u.id)??null}const Z3=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Escape","Delete","Backspace"]);function J3(e,n){return n==null?{kind:"deck",nodeId:null}:e.key==="Enter"||e.key===" "?{kind:"activate",nodeId:n,additive:e.shiftKey}:Z3.has(e.key)?{kind:"node",nodeId:n}:{kind:"deck",nodeId:n}}const e$=new Set(["","BODY","HTML","#DOCUMENT"]);function t$(e){return!e||ny(e)?!1:!e$.has(String(e.tagName??"").toUpperCase())}function ru(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function n$(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function RC(e,n,r){return!n.has(e)||r.has(e)}function r$(e,n,r,i){return!n.has(e)&&RC(e,r,i)}function s$(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function i$(e,n,r,i){r.set(e,n),i.delete(e)}const o$=40,a$=120;function l$(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=o$){const p=n.now(),d=Math.max(o+h,p);if(d<=p){u(),l();return}c(d,p,h)},replay(h=a$){u(),i=n.now()+h,r=n.setTimeout(l,h)},flush(){u(),l()},cancel(){u()}}}function u$(){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 c$="1",u_="agent-dag.schema",d$=["agent-dag.layout","agent-dag.viewport"];function AC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function f$(e,n=c$){let r=null;try{r=e.getItem(u_)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of d$)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(u_,n)}catch{}return i}const IC="agent-dag.theme";function h$(e){return e==="light"?"light":"dark"}function p$(){return h$(AC(IC))}function m$({waiting:e,running:n}){return{title:e>0?`(${e}) ${en}`:en,icon:e>0?"waiting":n>0?"running":"idle"}}const Hd={waiting:"#c97d12",running:"#2a90d4",idle:"#7e828c"};function Wd(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 g$=Object.freeze({waiting:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.waiting,"waiting"))}`,running:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.running,"running"))}`,idle:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.idle,"idle"))}`}),v$="No sessions are waiting for you.";function y$(e){if(e.length===0)return"";const[n,...r]=e;if(r.length===0)return`${n.label} is waiting for your permission.`;const i=`${r.length} more session${r.length===1?"":"s"}`;return`${n.label} and ${i} are waiting for your permission.`}function w$(e,n){return n!==""?n:e===""?"":v$}function x$(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function _$(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function b$(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 su(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 S$=[7,14,30,90];function k$(e){const[n,r]=R.useState(null),[i,o]=R.useState(!1),l=R.useRef(x$()).current,u=(c=!1)=>{const h=l.begin(),p=e;o(!0);const m=`/api/ccusage?since=${_$(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 R.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function E$({onClose:e}){var T,I,O;const[n,r]=R.useState(30),[i,o]=R.useState(null),{landed:l,loading:u,reload:c}=k$(n),h=R.useRef(null),p=mo(e,{focusRef:h}),d=b$({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((T=l.resp.days)==null?void 0:T.length)??0}}),m=d.phase==="chart"?l.resp.days??[]:[],y=R.useMemo(()=>m.reduce((A,U)=>Math.max(A,U.totalCost),0),[m]),{totalCost:w,totalTok:N,inOut:_,cacheRead:b,modelCosts:S}=R.useMemo(()=>{let A=0,U=0,z=0,P=0;const D=new Map;for(const V of m){A+=V.totalCost,U+=V.totalTokens,z+=V.inputTokens+V.outputTokens,P+=V.cacheReadTokens;for(const B of V.modelBreakdowns)D.set(B.modelName,(D.get(B.modelName)??0)+B.cost)}return{totalCost:A,totalTok:U,inOut:z,cacheRead:P,modelCosts:D}},[m]),k=R.useMemo(()=>Array.from(S.entries()).sort((A,U)=>U[1]-A[1]),[S]),E=i?m.find(A=>A.period===i)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{ref:p,className:"uh-modal",onClick:A=>A.stopPropagation(),role:"dialog","aria-modal":"true","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:"group","aria-label":"Range",children:S$.map(A=>g.jsxs("button",{type:"button","aria-pressed":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",{ref:h,className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),d.phase==="busy"?g.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):d.phase==="error"?g.jsxs("div",{className:"uh-status uh-err",title:ho(l.resp)||void 0,children:[b3(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"})})]}):d.phase==="empty"?g.jsx("div",{className:`uh-status${d.stale?" uh-stale":""}`,"aria-busy":d.stale||void 0,children:"no usage in this range"}):g.jsxs("div",{className:d.stale?"uh-stale":void 0,"aria-busy":d.stale||void 0,children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(iu,{label:"total cost",val:De(w),accent:!0}),g.jsx(iu,{label:"tokens",val:qt(N)}),g.jsx(iu,{label:"input+output",val:qt(_)}),g.jsx(iu,{label:"cache reads",val:qt(b)})]}),g.jsx("div",{className:"uh-chart",role:"group","aria-label":"Daily cost by model",children:m.map(A=>{const U=y>0?A.totalCost/y*100:0,z=A.period===i,P=`${A.period}, ${De(A.totalCost)}`;return g.jsxs("button",{className:`uh-bar-col${z?" sel":""}`,onClick:()=>o(z?null:A.period),"aria-pressed":z,"aria-label":P,title:`${A.period} · ${De(A.totalCost)}`,style:{flexBasis:`${100/m.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(U,A.totalCost>0?2:0)}%`},children:A.modelBreakdowns.slice().sort((D,V)=>V.cost-D.cost).map(D=>{const V=A.totalCost>0?D.cost/A.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${V}%`,background:su(D.modelName)}},D.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:A.period.slice(5)})]},A.period)})}),g.jsx("div",{className:"uh-legend",children:k.map(([A,U])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:su(A)}}),di(A)," ",g.jsx("span",{className:"uh-legend-cost",children:De(U)})]},A))}),E&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:E.period}),g.jsx("span",{className:"uh-detail-cost",children:De(E.totalCost)}),(O=(I=E.metadata)==null?void 0:I.agents)!=null&&O.length?g.jsx("span",{className:"uh-detail-agents",children:E.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(ou,{label:"input",val:qt(E.inputTokens)}),g.jsx(ou,{label:"output",val:qt(E.outputTokens)}),g.jsx(ou,{label:"cache write",val:qt(E.cacheCreationTokens)}),g.jsx(ou,{label:"cache read",val:qt(E.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:E.modelBreakdowns.slice().sort((A,U)=>U.cost-A.cost).map(A=>{const U=E.totalCost>0?A.cost/E.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:su(A.modelName)}}),di(A.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${U}%`,background:su(A.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:De(A.cost)})]},A.modelName)})})]})]})]})})}function iu({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 ou({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 iy(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 Vd,c_;function N$(){if(c_)return Vd;c_=1;function e(){this.__data__=[],this.size=0}return Vd=e,Vd}var Gd,d_;function go(){if(d_)return Gd;d_=1;function e(n,r){return n===r||n!==n&&r!==r}return Gd=e,Gd}var Yd,f_;function Lu(){if(f_)return Yd;f_=1;var e=go();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Yd=n,Yd}var Kd,h_;function C$(){if(h_)return Kd;h_=1;var e=Lu(),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 Kd=i,Kd}var Xd,p_;function T$(){if(p_)return Xd;p_=1;var e=Lu();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return Xd=n,Xd}var Qd,m_;function j$(){if(m_)return Qd;m_=1;var e=Lu();function n(r){return e(this.__data__,r)>-1}return Qd=n,Qd}var Zd,g_;function R$(){if(g_)return Zd;g_=1;var e=Lu();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 Zd=n,Zd}var Jd,v_;function $u(){if(v_)return Jd;v_=1;var e=N$(),n=C$(),r=T$(),i=j$(),o=R$();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,Jd=l,Jd}var ef,y_;function A$(){if(y_)return ef;y_=1;var e=$u();function n(){this.__data__=new e,this.size=0}return ef=n,ef}var tf,w_;function I$(){if(w_)return tf;w_=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return tf=e,tf}var nf,x_;function M$(){if(x_)return nf;x_=1;function e(n){return this.__data__.get(n)}return nf=e,nf}var rf,__;function O$(){if(__)return rf;__=1;function e(n){return this.__data__.has(n)}return rf=e,rf}var sf,b_;function MC(){if(b_)return sf;b_=1;var e=typeof Ul=="object"&&Ul&&Ul.Object===Object&&Ul;return sf=e,sf}var of,S_;function sr(){if(S_)return of;S_=1;var e=MC(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return of=r,of}var af,k_;function vo(){if(k_)return af;k_=1;var e=sr(),n=e.Symbol;return af=n,af}var lf,E_;function P$(){if(E_)return lf;E_=1;var e=vo(),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 lf=l,lf}var uf,N_;function L$(){if(N_)return uf;N_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return uf=r,uf}var cf,C_;function fi(){if(C_)return cf;C_=1;var e=vo(),n=P$(),r=L$(),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 cf=u,cf}var df,T_;function qn(){if(T_)return df;T_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return df=e,df}var ff,j_;function Aa(){if(j_)return ff;j_=1;var e=fi(),n=qn(),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 ff=u,ff}var hf,R_;function $$(){if(R_)return hf;R_=1;var e=sr(),n=e["__core-js_shared__"];return hf=n,hf}var pf,A_;function q$(){if(A_)return pf;A_=1;var e=$$(),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 pf=r,pf}var mf,I_;function OC(){if(I_)return mf;I_=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 mf=r,mf}var gf,M_;function D$(){if(M_)return gf;M_=1;var e=Aa(),n=q$(),r=qn(),i=OC(),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 gf=m,gf}var vf,O_;function F$(){if(O_)return vf;O_=1;function e(n,r){return n==null?void 0:n[r]}return vf=e,vf}var yf,P_;function hi(){if(P_)return yf;P_=1;var e=D$(),n=F$();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return yf=r,yf}var wf,L_;function oy(){if(L_)return wf;L_=1;var e=hi(),n=sr(),r=e(n,"Map");return wf=r,wf}var xf,$_;function qu(){if($_)return xf;$_=1;var e=hi(),n=e(Object,"create");return xf=n,xf}var _f,q_;function z$(){if(q_)return _f;q_=1;var e=qu();function n(){this.__data__=e?e(null):{},this.size=0}return _f=n,_f}var bf,D_;function B$(){if(D_)return bf;D_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return bf=e,bf}var Sf,F_;function U$(){if(F_)return Sf;F_=1;var e=qu(),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 Sf=o,Sf}var kf,z_;function H$(){if(z_)return kf;z_=1;var e=qu(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return kf=i,kf}var Ef,B_;function W$(){if(B_)return Ef;B_=1;var e=qu(),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 Ef=r,Ef}var Nf,U_;function V$(){if(U_)return Nf;U_=1;var e=z$(),n=B$(),r=U$(),i=H$(),o=W$();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,Nf=l,Nf}var Cf,H_;function G$(){if(H_)return Cf;H_=1;var e=V$(),n=$u(),r=oy();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return Cf=i,Cf}var Tf,W_;function Y$(){if(W_)return Tf;W_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Tf=e,Tf}var jf,V_;function Du(){if(V_)return jf;V_=1;var e=Y$();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return jf=n,jf}var Rf,G_;function K$(){if(G_)return Rf;G_=1;var e=Du();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return Rf=n,Rf}var Af,Y_;function X$(){if(Y_)return Af;Y_=1;var e=Du();function n(r){return e(this,r).get(r)}return Af=n,Af}var If,K_;function Q$(){if(K_)return If;K_=1;var e=Du();function n(r){return e(this,r).has(r)}return If=n,If}var Mf,X_;function Z$(){if(X_)return Mf;X_=1;var e=Du();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 Mf=n,Mf}var Of,Q_;function ay(){if(Q_)return Of;Q_=1;var e=G$(),n=K$(),r=X$(),i=Q$(),o=Z$();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,Of=l,Of}var Pf,Z_;function J$(){if(Z_)return Pf;Z_=1;var e=$u(),n=oy(),r=ay(),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 Pf=o,Pf}var Lf,J_;function Fu(){if(J_)return Lf;J_=1;var e=$u(),n=A$(),r=I$(),i=M$(),o=O$(),l=J$();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,Lf=u,Lf}var $f,e1;function ly(){if(e1)return $f;e1=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 $f=e,$f}var qf,t1;function PC(){if(t1)return qf;t1=1;var e=hi(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return qf=n,qf}var Df,n1;function zu(){if(n1)return Df;n1=1;var e=PC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return Df=n,Df}var Ff,r1;function Bu(){if(r1)return Ff;r1=1;var e=zu(),n=go(),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 Ff=o,Ff}var zf,s1;function Ia(){if(s1)return zf;s1=1;var e=Bu(),n=zu();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 zf=r,zf}var Bf,i1;function eq(){if(i1)return Bf;i1=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return Bf=e,Bf}var Uf,o1;function mr(){if(o1)return Uf;o1=1;function e(n){return n!=null&&typeof n=="object"}return Uf=e,Uf}var Hf,a1;function tq(){if(a1)return Hf;a1=1;var e=fi(),n=mr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Hf=i,Hf}var Wf,l1;function Ma(){if(l1)return Wf;l1=1;var e=tq(),n=mr(),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 Wf=l,Wf}var Vf,u1;function bt(){if(u1)return Vf;u1=1;var e=Array.isArray;return Vf=e,Vf}var ca={exports:{}},Gf,c1;function nq(){if(c1)return Gf;c1=1;function e(){return!1}return Gf=e,Gf}ca.exports;var d1;function yo(){return d1||(d1=1,(function(e,n){var r=sr(),i=nq(),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})(ca,ca.exports)),ca.exports}var Yf,f1;function Uu(){if(f1)return Yf;f1=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 Yf=r,Yf}var Kf,h1;function uy(){if(h1)return Kf;h1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return Kf=n,Kf}var Xf,p1;function rq(){if(p1)return Xf;p1=1;var e=fi(),n=uy(),r=mr(),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]",b="[object ArrayBuffer]",S="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",T="[object Int8Array]",I="[object Int16Array]",O="[object Int32Array]",A="[object Uint8Array]",U="[object Uint8ClampedArray]",z="[object Uint16Array]",P="[object Uint32Array]",D={};D[k]=D[E]=D[T]=D[I]=D[O]=D[A]=D[U]=D[z]=D[P]=!0,D[i]=D[o]=D[b]=D[l]=D[S]=D[u]=D[c]=D[h]=D[p]=D[d]=D[m]=D[y]=D[w]=D[N]=D[_]=!1;function V(B){return r(B)&&n(B.length)&&!!D[e(B)]}return Xf=V,Xf}var Qf,m1;function Hu(){if(m1)return Qf;m1=1;function e(n){return function(r){return n(r)}}return Qf=e,Qf}var da={exports:{}};da.exports;var g1;function cy(){return g1||(g1=1,(function(e,n){var r=MC(),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})(da,da.exports)),da.exports}var Zf,v1;function Oa(){if(v1)return Zf;v1=1;var e=rq(),n=Hu(),r=cy(),i=r&&r.isTypedArray,o=i?n(i):e;return Zf=o,Zf}var Jf,y1;function LC(){if(y1)return Jf;y1=1;var e=eq(),n=Ma(),r=bt(),i=yo(),o=Uu(),l=Oa(),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,b=_?e(p.length,String):[],S=b.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,S)))&&b.push(k);return b}return Jf=h,Jf}var eh,w1;function Wu(){if(w1)return eh;w1=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return eh=n,eh}var th,x1;function $C(){if(x1)return th;x1=1;function e(n,r){return function(i){return n(r(i))}}return th=e,th}var nh,_1;function sq(){if(_1)return nh;_1=1;var e=$C(),n=e(Object.keys,Object);return nh=n,nh}var rh,b1;function dy(){if(b1)return rh;b1=1;var e=Wu(),n=sq(),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 rh=o,rh}var sh,S1;function Ur(){if(S1)return sh;S1=1;var e=Aa(),n=uy();function r(i){return i!=null&&n(i.length)&&!e(i)}return sh=r,sh}var ih,k1;function Ns(){if(k1)return ih;k1=1;var e=LC(),n=dy(),r=Ur();function i(o){return r(o)?e(o):n(o)}return ih=i,ih}var oh,E1;function iq(){if(E1)return oh;E1=1;var e=Ia(),n=Ns();function r(i,o){return i&&e(o,n(o),i)}return oh=r,oh}var ah,N1;function oq(){if(N1)return ah;N1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return ah=e,ah}var lh,C1;function aq(){if(C1)return lh;C1=1;var e=qn(),n=Wu(),r=oq(),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 lh=l,lh}var uh,T1;function pi(){if(T1)return uh;T1=1;var e=LC(),n=aq(),r=Ur();function i(o){return r(o)?e(o,!0):n(o)}return uh=i,uh}var ch,j1;function lq(){if(j1)return ch;j1=1;var e=Ia(),n=pi();function r(i,o){return i&&e(o,n(o),i)}return ch=r,ch}var fa={exports:{}};fa.exports;var R1;function qC(){return R1||(R1=1,(function(e,n){var r=sr(),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})(fa,fa.exports)),fa.exports}var dh,A1;function DC(){if(A1)return dh;A1=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 dh=e,dh}var fh,I1;function FC(){if(I1)return fh;I1=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 fh=e,fh}var hh,M1;function zC(){if(M1)return hh;M1=1;function e(){return[]}return hh=e,hh}var ph,O1;function fy(){if(O1)return ph;O1=1;var e=FC(),n=zC(),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 ph=l,ph}var mh,P1;function uq(){if(P1)return mh;P1=1;var e=Ia(),n=fy();function r(i,o){return e(i,n(i),o)}return mh=r,mh}var gh,L1;function hy(){if(L1)return gh;L1=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 gh=e,gh}var vh,$1;function Vu(){if($1)return vh;$1=1;var e=$C(),n=e(Object.getPrototypeOf,Object);return vh=n,vh}var yh,q1;function BC(){if(q1)return yh;q1=1;var e=hy(),n=Vu(),r=fy(),i=zC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return yh=l,yh}var wh,D1;function cq(){if(D1)return wh;D1=1;var e=Ia(),n=BC();function r(i,o){return e(i,n(i),o)}return wh=r,wh}var xh,F1;function UC(){if(F1)return xh;F1=1;var e=hy(),n=bt();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return xh=r,xh}var _h,z1;function HC(){if(z1)return _h;z1=1;var e=UC(),n=fy(),r=Ns();function i(o){return e(o,r,n)}return _h=i,_h}var bh,B1;function dq(){if(B1)return bh;B1=1;var e=UC(),n=BC(),r=pi();function i(o){return e(o,r,n)}return bh=i,bh}var Sh,U1;function fq(){if(U1)return Sh;U1=1;var e=hi(),n=sr(),r=e(n,"DataView");return Sh=r,Sh}var kh,H1;function hq(){if(H1)return kh;H1=1;var e=hi(),n=sr(),r=e(n,"Promise");return kh=r,kh}var Eh,W1;function WC(){if(W1)return Eh;W1=1;var e=hi(),n=sr(),r=e(n,"Set");return Eh=r,Eh}var Nh,V1;function pq(){if(V1)return Nh;V1=1;var e=hi(),n=sr(),r=e(n,"WeakMap");return Nh=r,Nh}var Ch,G1;function wo(){if(G1)return Ch;G1=1;var e=fq(),n=oy(),r=hq(),i=WC(),o=pq(),l=fi(),u=OC(),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),b=u(i),S=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 T=l(E),I=T==h?E.constructor:void 0,O=I?u(I):"";if(O)switch(O){case w:return y;case N:return c;case _:return p;case b:return d;case S:return m}return T}),Ch=k,Ch}var Th,Y1;function mq(){if(Y1)return Th;Y1=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 Th=r,Th}var jh,K1;function VC(){if(K1)return jh;K1=1;var e=sr(),n=e.Uint8Array;return jh=n,jh}var Rh,X1;function py(){if(X1)return Rh;X1=1;var e=VC();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return Rh=n,Rh}var Ah,Q1;function gq(){if(Q1)return Ah;Q1=1;var e=py();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Ah=n,Ah}var Ih,Z1;function vq(){if(Z1)return Ih;Z1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return Ih=n,Ih}var Mh,J1;function yq(){if(J1)return Mh;J1=1;var e=vo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return Mh=i,Mh}var Oh,eb;function GC(){if(eb)return Oh;eb=1;var e=py();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Oh=n,Oh}var Ph,tb;function wq(){if(tb)return Ph;tb=1;var e=py(),n=gq(),r=vq(),i=yq(),o=GC(),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]",b="[object Float64Array]",S="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",T="[object Uint8Array]",I="[object Uint8ClampedArray]",O="[object Uint16Array]",A="[object Uint32Array]";function U(z,P,D){var V=z.constructor;switch(P){case w:return e(z);case l:case u:return new V(+z);case N:return n(z,D);case _:case b:case S:case k:case E:case T:case I:case O:case A:return o(z,D);case c:return new V;case h:case m:return new V(z);case p:return r(z);case d:return new V;case y:return i(z)}}return Ph=U,Ph}var Lh,nb;function YC(){if(nb)return Lh;nb=1;var e=qn(),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 Lh=r,Lh}var $h,rb;function KC(){if(rb)return $h;rb=1;var e=YC(),n=Vu(),r=Wu();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return $h=i,$h}var qh,sb;function xq(){if(sb)return qh;sb=1;var e=wo(),n=mr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return qh=i,qh}var Dh,ib;function _q(){if(ib)return Dh;ib=1;var e=xq(),n=Hu(),r=cy(),i=r&&r.isMap,o=i?n(i):e;return Dh=o,Dh}var Fh,ob;function bq(){if(ob)return Fh;ob=1;var e=wo(),n=mr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return Fh=i,Fh}var zh,ab;function Sq(){if(ab)return zh;ab=1;var e=bq(),n=Hu(),r=cy(),i=r&&r.isSet,o=i?n(i):e;return zh=o,zh}var Bh,lb;function XC(){if(lb)return Bh;lb=1;var e=Fu(),n=ly(),r=Bu(),i=iq(),o=lq(),l=qC(),u=DC(),c=uq(),h=cq(),p=HC(),d=dq(),m=wo(),y=mq(),w=wq(),N=KC(),_=bt(),b=yo(),S=_q(),k=qn(),E=Sq(),T=Ns(),I=pi(),O=1,A=2,U=4,z="[object Arguments]",P="[object Array]",D="[object Boolean]",V="[object Date]",B="[object Error]",C="[object Function]",q="[object GeneratorFunction]",L="[object Map]",re="[object Number]",Z="[object Object]",H="[object RegExp]",J="[object Set]",M="[object String]",G="[object Symbol]",Y="[object WeakMap]",$="[object ArrayBuffer]",Q="[object DataView]",ne="[object Float32Array]",oe="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",Re="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[z]=ke[P]=ke[$]=ke[Q]=ke[D]=ke[V]=ke[ne]=ke[oe]=ke[fe]=ke[te]=ke[ce]=ke[L]=ke[re]=ke[Z]=ke[H]=ke[J]=ke[M]=ke[G]=ke[Ce]=ke[ve]=ke[Re]=ke[ye]=!0,ke[B]=ke[C]=ke[Y]=!1;function Ye(we,_e,Be,it,pt,Ze){var Fe,Je=_e&O,Xe=_e&A,Mt=_e&U;if(Be&&(Fe=pt?Be(we,it,pt,Ze):Be(we)),Fe!==void 0)return Fe;if(!k(we))return we;var ut=_(we);if(ut){if(Fe=y(we),!Je)return u(we,Fe)}else{var Qe=m(we),Ot=Qe==C||Qe==q;if(b(we))return l(we,Je);if(Qe==Z||Qe==z||Ot&&!pt){if(Fe=Xe||Ot?{}:N(we),!Je)return Xe?h(we,o(Fe,we)):c(we,i(Fe,we))}else{if(!ke[Qe])return pt?we:{};Fe=w(we,Qe,Je)}}Ze||(Ze=new e);var Ft=Ze.get(we);if(Ft)return Ft;Ze.set(we,Fe),E(we)?we.forEach(function(mt){Fe.add(Ye(mt,_e,Be,mt,we,Ze))}):S(we)&&we.forEach(function(mt,wt){Fe.set(wt,Ye(mt,_e,Be,wt,we,Ze))});var et=Mt?Xe?d:p:Xe?I:T,St=ut?void 0:et(we);return n(St||we,function(mt,wt){St&&(wt=mt,mt=we[wt]),r(Fe,wt,Ye(mt,_e,Be,wt,we,Ze))}),Fe}return Bh=Ye,Bh}var Uh,ub;function kq(){if(ub)return Uh;ub=1;var e=XC(),n=4;function r(i){return e(i,n)}return Uh=r,Uh}var Hh,cb;function my(){if(cb)return Hh;cb=1;function e(n){return function(){return n}}return Hh=e,Hh}var Wh,db;function Eq(){if(db)return Wh;db=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 Wh=e,Wh}var Vh,fb;function gy(){if(fb)return Vh;fb=1;var e=Eq(),n=e();return Vh=n,Vh}var Gh,hb;function vy(){if(hb)return Gh;hb=1;var e=gy(),n=Ns();function r(i,o){return i&&e(i,o,n)}return Gh=r,Gh}var Yh,pb;function Nq(){if(pb)return Yh;pb=1;var e=Ur();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 Yh=n,Yh}var Kh,mb;function Gu(){if(mb)return Kh;mb=1;var e=vy(),n=Nq(),r=n(e);return Kh=r,Kh}var Xh,gb;function mi(){if(gb)return Xh;gb=1;function e(n){return n}return Xh=e,Xh}var Qh,vb;function QC(){if(vb)return Qh;vb=1;var e=mi();function n(r){return typeof r=="function"?r:e}return Qh=n,Qh}var Zh,yb;function ZC(){if(yb)return Zh;yb=1;var e=ly(),n=Gu(),r=QC(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Zh=o,Zh}var Jh,wb;function JC(){return wb||(wb=1,Jh=ZC()),Jh}var ep,xb;function Cq(){if(xb)return ep;xb=1;var e=Gu();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return ep=n,ep}var tp,_b;function Tq(){if(_b)return tp;_b=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return tp=n,tp}var np,bb;function jq(){if(bb)return np;bb=1;function e(n){return this.__data__.has(n)}return np=e,np}var rp,Sb;function eT(){if(Sb)return rp;Sb=1;var e=ay(),n=Tq(),r=jq();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,rp=i,rp}var sp,kb;function Rq(){if(kb)return sp;kb=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 sp=e,sp}var ip,Eb;function tT(){if(Eb)return ip;Eb=1;function e(n,r){return n.has(r)}return ip=e,ip}var op,Nb;function nT(){if(Nb)return op;Nb=1;var e=eT(),n=Rq(),r=tT(),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),b=m.get(c);if(_&&b)return _==c&&b==u;var S=-1,k=!0,E=h&o?new e:void 0;for(m.set(u,c),m.set(c,u);++S<w;){var T=u[S],I=c[S];if(p)var O=y?p(I,T,S,c,u,m):p(T,I,S,u,c,m);if(O!==void 0){if(O)continue;k=!1;break}if(E){if(!n(c,function(A,U){if(!r(E,U)&&(T===A||d(T,A,h,p,m)))return E.push(U)})){k=!1;break}}else if(!(T===I||d(T,I,h,p,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return op=l,op}var ap,Cb;function Aq(){if(Cb)return ap;Cb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return ap=e,ap}var lp,Tb;function yy(){if(Tb)return lp;Tb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return lp=e,lp}var up,jb;function Iq(){if(jb)return up;jb=1;var e=vo(),n=VC(),r=go(),i=nT(),o=Aq(),l=yy(),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]",b="[object Symbol]",S="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,T=E?E.valueOf:void 0;function I(O,A,U,z,P,D,V){switch(U){case k:if(O.byteLength!=A.byteLength||O.byteOffset!=A.byteOffset)return!1;O=O.buffer,A=A.buffer;case S:return!(O.byteLength!=A.byteLength||!D(new n(O),new n(A)));case h:case p:case y:return r(+O,+A);case d:return O.name==A.name&&O.message==A.message;case w:case _:return O==A+"";case m:var B=o;case N:var C=z&u;if(B||(B=l),O.size!=A.size&&!C)return!1;var q=V.get(O);if(q)return q==A;z|=c,V.set(O,A);var L=i(B(O),B(A),z,P,D,V);return V.delete(O),L;case b:if(T)return T.call(O)==T.call(A)}return!1}return up=I,up}var cp,Rb;function Mq(){if(Rb)return cp;Rb=1;var e=HC(),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 b=w;b--;){var S=y[b];if(!(m?S in u:i.call(u,S)))return!1}var k=d.get(l),E=d.get(u);if(k&&E)return k==u&&E==l;var T=!0;d.set(l,u),d.set(u,l);for(var I=m;++b<w;){S=y[b];var O=l[S],A=u[S];if(h)var U=m?h(A,O,S,u,l,d):h(O,A,S,l,u,d);if(!(U===void 0?O===A||p(O,A,c,h,d):U)){T=!1;break}I||(I=S=="constructor")}if(T&&!I){var z=l.constructor,P=u.constructor;z!=P&&"constructor"in l&&"constructor"in u&&!(typeof z=="function"&&z instanceof z&&typeof P=="function"&&P instanceof P)&&(T=!1)}return d.delete(l),d.delete(u),T}return cp=o,cp}var dp,Ab;function Oq(){if(Ab)return dp;Ab=1;var e=Fu(),n=nT(),r=Iq(),i=Mq(),o=wo(),l=bt(),u=yo(),c=Oa(),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function N(_,b,S,k,E,T){var I=l(_),O=l(b),A=I?d:o(_),U=O?d:o(b);A=A==p?m:A,U=U==p?m:U;var z=A==m,P=U==m,D=A==U;if(D&&u(_)){if(!u(b))return!1;I=!0,z=!1}if(D&&!z)return T||(T=new e),I||c(_)?n(_,b,S,k,E,T):r(_,b,A,S,k,E,T);if(!(S&h)){var V=z&&w.call(_,"__wrapped__"),B=P&&w.call(b,"__wrapped__");if(V||B){var C=V?_.value():_,q=B?b.value():b;return T||(T=new e),E(C,q,S,k,T)}}return D?(T||(T=new e),i(_,b,S,k,E,T)):!1}return dp=N,dp}var fp,Ib;function rT(){if(Ib)return fp;Ib=1;var e=Oq(),n=mr();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 fp=r,fp}var hp,Mb;function Pq(){if(Mb)return hp;Mb=1;var e=Fu(),n=rT(),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 b=new e;if(h)var S=h(N,_,w,l,u,b);if(!(S===void 0?n(_,N,r|i,h,b):S))return!1}}return!0}return hp=o,hp}var pp,Ob;function sT(){if(Ob)return pp;Ob=1;var e=qn();function n(r){return r===r&&!e(r)}return pp=n,pp}var mp,Pb;function Lq(){if(Pb)return mp;Pb=1;var e=sT(),n=Ns();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 mp=r,mp}var gp,Lb;function iT(){if(Lb)return gp;Lb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return gp=e,gp}var vp,$b;function $q(){if($b)return vp;$b=1;var e=Pq(),n=Lq(),r=iT();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 vp=i,vp}var yp,qb;function xo(){if(qb)return yp;qb=1;var e=fi(),n=mr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return yp=i,yp}var wp,Db;function wy(){if(Db)return wp;Db=1;var e=bt(),n=xo(),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 wp=o,wp}var xp,Fb;function qq(){if(Fb)return xp;Fb=1;var e=ay(),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,xp=r,xp}var _p,zb;function Dq(){if(zb)return _p;zb=1;var e=qq(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return _p=r,_p}var bp,Bb;function Fq(){if(Bb)return bp;Bb=1;var e=Dq(),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 bp=i,bp}var Sp,Ub;function Yu(){if(Ub)return Sp;Ub=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 Sp=e,Sp}var kp,Hb;function zq(){if(Hb)return kp;Hb=1;var e=vo(),n=Yu(),r=bt(),i=xo(),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 kp=u,kp}var Ep,Wb;function oT(){if(Wb)return Ep;Wb=1;var e=zq();function n(r){return r==null?"":e(r)}return Ep=n,Ep}var Np,Vb;function Ku(){if(Vb)return Np;Vb=1;var e=bt(),n=wy(),r=Fq(),i=oT();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return Np=o,Np}var Cp,Gb;function Pa(){if(Gb)return Cp;Gb=1;var e=xo();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return Cp=n,Cp}var Tp,Yb;function Xu(){if(Yb)return Tp;Yb=1;var e=Ku(),n=Pa();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 Tp=r,Tp}var jp,Kb;function Bq(){if(Kb)return jp;Kb=1;var e=Xu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return jp=n,jp}var Rp,Xb;function Uq(){if(Xb)return Rp;Xb=1;function e(n,r){return n!=null&&r in Object(n)}return Rp=e,Rp}var Ap,Qb;function aT(){if(Qb)return Ap;Qb=1;var e=Ku(),n=Ma(),r=bt(),i=Uu(),o=uy(),l=Pa();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 Ap=u,Ap}var Ip,Zb;function lT(){if(Zb)return Ip;Zb=1;var e=Uq(),n=aT();function r(i,o){return i!=null&&n(i,o,e)}return Ip=r,Ip}var Mp,Jb;function Hq(){if(Jb)return Mp;Jb=1;var e=rT(),n=Bq(),r=lT(),i=wy(),o=sT(),l=iT(),u=Pa(),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 Mp=p,Mp}var Op,eS;function uT(){if(eS)return Op;eS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Op=e,Op}var Pp,tS;function Wq(){if(tS)return Pp;tS=1;var e=Xu();function n(r){return function(i){return e(i,r)}}return Pp=n,Pp}var Lp,nS;function Vq(){if(nS)return Lp;nS=1;var e=uT(),n=Wq(),r=wy(),i=Pa();function o(l){return r(l)?e(i(l)):n(l)}return Lp=o,Lp}var $p,rS;function Hr(){if(rS)return $p;rS=1;var e=$q(),n=Hq(),r=mi(),i=bt(),o=Vq();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 $p=l,$p}var qp,sS;function cT(){if(sS)return qp;sS=1;var e=FC(),n=Cq(),r=Hr(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return qp=o,qp}var Dp,iS;function Gq(){if(iS)return Dp;iS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return Dp=r,Dp}var Fp,oS;function dT(){if(oS)return Fp;oS=1;var e=Gq(),n=aT();function r(i,o){return i!=null&&n(i,o,e)}return Fp=r,Fp}var zp,aS;function Yq(){if(aS)return zp;aS=1;var e=dy(),n=wo(),r=Ma(),i=bt(),o=Ur(),l=yo(),u=Wu(),c=Oa(),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 zp=y,zp}var Bp,lS;function fT(){if(lS)return Bp;lS=1;function e(n){return n===void 0}return Bp=e,Bp}var Up,uS;function hT(){if(uS)return Up;uS=1;var e=Gu(),n=Ur();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 Up=r,Up}var Hp,cS;function pT(){if(cS)return Hp;cS=1;var e=Yu(),n=Hr(),r=hT(),i=bt();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Hp=o,Hp}var Wp,dS;function Kq(){if(dS)return Wp;dS=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 Wp=e,Wp}var Vp,fS;function Xq(){if(fS)return Vp;fS=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 Vp=e,Vp}var Gp,hS;function mT(){if(hS)return Gp;hS=1;var e=Kq(),n=Gu(),r=Hr(),i=Xq(),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 Gp=l,Gp}var Yp,pS;function Qq(){if(pS)return Yp;pS=1;var e=fi(),n=bt(),r=mr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Yp=o,Yp}var Kp,mS;function Zq(){if(mS)return Kp;mS=1;var e=uT(),n=e("length");return Kp=n,Kp}var Xp,gS;function Jq(){if(gS)return Xp;gS=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 Xp=h,Xp}var Qp,vS;function eD(){if(vS)return Qp;vS=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+"]?",b="(?:"+w+"(?:"+[d,m,y].join("|")+")"+_+N+")*",S=_+N+b,k="(?:"+[d+c+"?",c,m,y,u].join("|")+")",E=RegExp(h+"(?="+h+")|"+k+S,"g");function T(I){for(var O=E.lastIndex=0;E.test(I);)++O;return O}return Qp=T,Qp}var Zp,yS;function tD(){if(yS)return Zp;yS=1;var e=Zq(),n=Jq(),r=eD();function i(o){return n(o)?r(o):e(o)}return Zp=i,Zp}var Jp,wS;function nD(){if(wS)return Jp;wS=1;var e=dy(),n=wo(),r=Ur(),i=Qq(),o=tD(),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 Jp=c,Jp}var em,xS;function rD(){if(xS)return em;xS=1;var e=ly(),n=YC(),r=vy(),i=Hr(),o=Vu(),l=bt(),u=yo(),c=Aa(),h=qn(),p=Oa();function d(m,y,w){var N=l(m),_=N||u(m)||p(m);if(y=i(y,4),w==null){var b=m&&m.constructor;_?w=N?new b:[]:h(m)?w=c(b)?n(o(m)):{}:w={}}return(_?e:r)(m,function(S,k,E){return y(w,S,k,E)}),w}return em=d,em}var tm,_S;function sD(){if(_S)return tm;_S=1;var e=vo(),n=Ma(),r=bt(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return tm=o,tm}var nm,bS;function xy(){if(bS)return nm;bS=1;var e=hy(),n=sD();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 nm=r,nm}var rm,SS;function iD(){if(SS)return rm;SS=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 rm=e,rm}var sm,kS;function gT(){if(kS)return sm;kS=1;var e=iD(),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 sm=r,sm}var im,ES;function oD(){if(ES)return im;ES=1;var e=my(),n=PC(),r=mi(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return im=i,im}var om,NS;function aD(){if(NS)return om;NS=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 om=i,om}var am,CS;function vT(){if(CS)return am;CS=1;var e=oD(),n=aD(),r=n(e);return am=r,am}var lm,TS;function Qu(){if(TS)return lm;TS=1;var e=mi(),n=gT(),r=vT();function i(o,l){return r(n(o,l,e),o+"")}return lm=i,lm}var um,jS;function yT(){if(jS)return um;jS=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 um=e,um}var cm,RS;function lD(){if(RS)return cm;RS=1;function e(n){return n!==n}return cm=e,cm}var dm,AS;function uD(){if(AS)return dm;AS=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 dm=e,dm}var fm,IS;function cD(){if(IS)return fm;IS=1;var e=yT(),n=lD(),r=uD();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return fm=i,fm}var hm,MS;function dD(){if(MS)return hm;MS=1;var e=cD();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return hm=n,hm}var pm,OS;function fD(){if(OS)return pm;OS=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 pm=e,pm}var mm,PS;function hD(){if(PS)return mm;PS=1;function e(){}return mm=e,mm}var gm,LS;function pD(){if(LS)return gm;LS=1;var e=WC(),n=hD(),r=yy(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return gm=o,gm}var vm,$S;function mD(){if($S)return vm;$S=1;var e=eT(),n=dD(),r=fD(),i=tT(),o=pD(),l=yy(),u=200;function c(h,p,d){var m=-1,y=n,w=h.length,N=!0,_=[],b=_;if(d)N=!1,y=r;else if(w>=u){var S=p?null:o(h);if(S)return l(S);N=!1,y=i,b=new e}else b=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 T=b.length;T--;)if(b[T]===E)continue e;p&&b.push(E),_.push(k)}else y(b,E,d)||(b!==_&&b.push(E),_.push(k))}return _}return vm=c,vm}var ym,qS;function wT(){if(qS)return ym;qS=1;var e=Ur(),n=mr();function r(i){return n(i)&&e(i)}return ym=r,ym}var wm,DS;function gD(){if(DS)return wm;DS=1;var e=xy(),n=Qu(),r=mD(),i=wT(),o=n(function(l){return r(e(l,1,i,!0))});return wm=o,wm}var xm,FS;function vD(){if(FS)return xm;FS=1;var e=Yu();function n(r,i){return e(i,function(o){return r[o]})}return xm=n,xm}var _m,zS;function xT(){if(zS)return _m;zS=1;var e=vD(),n=Ns();function r(i){return i==null?[]:e(i,n(i))}return _m=r,_m}var bm,BS;function Dn(){if(BS)return bm;BS=1;var e;if(typeof iy=="function")try{e={clone:kq(),constant:my(),each:JC(),filter:cT(),has:dT(),isArray:bt(),isEmpty:Yq(),isFunction:Aa(),isUndefined:fT(),keys:Ns(),map:pT(),reduce:mT(),size:nD(),transform:rD(),union:gD(),values:xT()}}catch{}return e||(e=window._),bm=e,bm}var Sm,US;function _y(){if(US)return Sm;US=1;var e=Dn();Sm=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(_,b){d(b)&&m.setNode(b,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var w={};function N(_){var b=y.parent(_);return b===void 0||m.hasNode(b)?(w[_]=b,b):b in w?w[b]:N(b)}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 b=c(this._isDirected,d,m,y);if(e.has(this._edgeLabels,b))return N&&(this._edgeLabels[b]=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[b]=N?w:this._defaultEdgeLabelFn(d,m,y);var S=h(this._isDirected,d,m,y);return d=S.v,m=S.w,Object.freeze(S),this._edgeObjs[b]=S,l(this._preds[m],d),l(this._sucs[d],m),this._in[m][b]=S,this._out[d][b]=S,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 b=N;N=_,_=b}return N+i+_+i+(e.isUndefined(w)?n:w)}function h(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}var S={v:N,w:_};return w&&(S.name=w),S}function p(d,m){return c(d,m.v,m.w,m.name)}return Sm}var km,HS;function yD(){return HS||(HS=1,km="2.1.8"),km}var Em,WS;function wD(){return WS||(WS=1,Em={Graph:_y(),version:yD()}),Em}var Nm,VS;function xD(){if(VS)return Nm;VS=1;var e=Dn(),n=_y();Nm={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 Nm}var Cm,GS;function _D(){if(GS)return Cm;GS=1;var e=Dn();Cm=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 Cm}var Tm,YS;function _T(){if(YS)return Tm;YS=1;var e=Dn();Tm=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},Tm}var jm,KS;function bT(){if(KS)return jm;KS=1;var e=Dn(),n=_T();jm=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,b=p[_],S=c(N),k=y.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+S);k<b.distance&&(b.distance=k,b.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 jm}var Rm,XS;function bD(){if(XS)return Rm;XS=1;var e=bT(),n=Dn();Rm=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return Rm}var Am,QS;function ST(){if(QS)return Am;QS=1;var e=Dn();Am=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 Am}var Im,ZS;function SD(){if(ZS)return Im;ZS=1;var e=Dn(),n=ST();Im=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 Im}var Mm,JS;function kD(){if(JS)return Mm;JS=1;var e=Dn();Mm=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],b=y[w],S=N.distance+_.distance;S<b.distance&&(b.distance=S,b.predecessor=_.predecessor)})})}),c}return Mm}var Om,ek;function kT(){if(ek)return Om;ek=1;var e=Dn();Om=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,Om}var Pm,tk;function ED(){if(tk)return Pm;tk=1;var e=kT();Pm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Pm}var Lm,nk;function ET(){if(nk)return Lm;nk=1;var e=Dn();Lm=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 Lm}var $m,rk;function ND(){if(rk)return $m;rk=1;var e=ET();$m=n;function n(r,i){return e(r,i,"post")}return $m}var qm,sk;function CD(){if(sk)return qm;sk=1;var e=ET();qm=n;function n(r,i){return e(r,i,"pre")}return qm}var Dm,ik;function TD(){if(ik)return Dm;ik=1;var e=Dn(),n=_y(),r=_T();Dm=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 Dm}var Fm,ok;function jD(){return ok||(ok=1,Fm={components:_D(),dijkstra:bT(),dijkstraAll:bD(),findCycles:SD(),floydWarshall:kD(),isAcyclic:ED(),postorder:ND(),preorder:CD(),prim:TD(),tarjan:ST(),topsort:kT()}),Fm}var zm,ak;function RD(){if(ak)return zm;ak=1;var e=wD();return zm={Graph:e.Graph,json:xD(),alg:jD(),version:e.version},zm}var Bm,lk;function nr(){if(lk)return Bm;lk=1;var e;if(typeof iy=="function")try{e=RD()}catch{}return e||(e=window.graphlib),Bm=e,Bm}var Um,uk;function AD(){if(uk)return Um;uk=1;var e=XC(),n=1,r=4;function i(o){return e(o,n|r)}return Um=i,Um}var Hm,ck;function Zu(){if(ck)return Hm;ck=1;var e=go(),n=Ur(),r=Uu(),i=qn();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 Hm=o,Hm}var Wm,dk;function ID(){if(dk)return Wm;dk=1;var e=Qu(),n=go(),r=Zu(),i=pi(),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 b=w[N],S=c[b];(S===void 0||n(S,o[b])&&!l.call(c,b))&&(c[b]=y[b])}return c});return Wm=u,Wm}var Vm,fk;function MD(){if(fk)return Vm;fk=1;var e=Hr(),n=Ur(),r=Ns();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 Vm=i,Vm}var Gm,hk;function OD(){if(hk)return Gm;hk=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return Gm=n,Gm}var Ym,pk;function PD(){if(pk)return Ym;pk=1;var e=OD(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Ym=r,Ym}var Km,mk;function LD(){if(mk)return Km;mk=1;var e=PD(),n=qn(),r=xo(),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 Km=h,Km}var Xm,gk;function NT(){if(gk)return Xm;gk=1;var e=LD(),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 Xm=i,Xm}var Qm,vk;function $D(){if(vk)return Qm;vk=1;var e=NT();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Qm=n,Qm}var Zm,yk;function qD(){if(yk)return Zm;yk=1;var e=yT(),n=Hr(),r=$D(),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 Zm=o,Zm}var Jm,wk;function DD(){if(wk)return Jm;wk=1;var e=MD(),n=qD(),r=e(n);return Jm=r,Jm}var eg,xk;function CT(){if(xk)return eg;xk=1;var e=xy();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return eg=n,eg}var tg,_k;function FD(){if(_k)return tg;_k=1;var e=gy(),n=QC(),r=pi();function i(o,l){return o==null?o:e(o,n(l),r)}return tg=i,tg}var ng,bk;function zD(){if(bk)return ng;bk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return ng=e,ng}var rg,Sk;function BD(){if(Sk)return rg;Sk=1;var e=zu(),n=vy(),r=Hr();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 rg=i,rg}var sg,kk;function by(){if(kk)return sg;kk=1;var e=xo();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 sg=n,sg}var ig,Ek;function UD(){if(Ek)return ig;Ek=1;function e(n,r){return n>r}return ig=e,ig}var og,Nk;function HD(){if(Nk)return og;Nk=1;var e=by(),n=UD(),r=mi();function i(o){return o&&o.length?e(o,r,n):void 0}return og=i,og}var ag,Ck;function TT(){if(Ck)return ag;Ck=1;var e=zu(),n=go();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return ag=r,ag}var lg,Tk;function WD(){if(Tk)return lg;Tk=1;var e=fi(),n=Vu(),r=mr(),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 lg=p,lg}var ug,jk;function jT(){if(jk)return ug;jk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return ug=e,ug}var cg,Rk;function VD(){if(Rk)return cg;Rk=1;var e=Ia(),n=pi();function r(i){return e(i,n(i))}return cg=r,cg}var dg,Ak;function GD(){if(Ak)return dg;Ak=1;var e=TT(),n=qC(),r=GC(),i=DC(),o=KC(),l=Ma(),u=bt(),c=wT(),h=yo(),p=Aa(),d=qn(),m=WD(),y=Oa(),w=jT(),N=VD();function _(b,S,k,E,T,I,O){var A=w(b,k),U=w(S,k),z=O.get(U);if(z){e(b,k,z);return}var P=I?I(A,U,k+"",b,S,O):void 0,D=P===void 0;if(D){var V=u(U),B=!V&&h(U),C=!V&&!B&&y(U);P=U,V||B||C?u(A)?P=A:c(A)?P=i(A):B?(D=!1,P=n(U,!0)):C?(D=!1,P=r(U,!0)):P=[]:m(U)||l(U)?(P=A,l(A)?P=N(A):(!d(A)||p(A))&&(P=o(U))):D=!1}D&&(O.set(U,P),T(P,U,E,I,O),O.delete(U)),e(b,k,P)}return dg=_,dg}var fg,Ik;function YD(){if(Ik)return fg;Ik=1;var e=Fu(),n=TT(),r=gy(),i=GD(),o=qn(),l=pi(),u=jT();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 fg=c,fg}var hg,Mk;function KD(){if(Mk)return hg;Mk=1;var e=Qu(),n=Zu();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 hg=r,hg}var pg,Ok;function XD(){if(Ok)return pg;Ok=1;var e=YD(),n=KD(),r=n(function(i,o,l){e(i,o,l)});return pg=r,pg}var mg,Pk;function RT(){if(Pk)return mg;Pk=1;function e(n,r){return n<r}return mg=e,mg}var gg,Lk;function QD(){if(Lk)return gg;Lk=1;var e=by(),n=RT(),r=mi();function i(o){return o&&o.length?e(o,r,n):void 0}return gg=i,gg}var vg,$k;function ZD(){if($k)return vg;$k=1;var e=by(),n=Hr(),r=RT();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return vg=i,vg}var yg,qk;function JD(){if(qk)return yg;qk=1;var e=sr(),n=function(){return e.Date.now()};return yg=n,yg}var wg,Dk;function e4(){if(Dk)return wg;Dk=1;var e=Bu(),n=Ku(),r=Uu(),i=qn(),o=Pa();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 b=w[N];_=p?p(b,N,w):void 0,_===void 0&&(_=i(b)?b:r(c[d+1])?[]:{})}e(w,N,_),w=w[N]}return u}return wg=l,wg}var xg,Fk;function t4(){if(Fk)return xg;Fk=1;var e=Xu(),n=e4(),r=Ku();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 xg=i,xg}var _g,zk;function n4(){if(zk)return _g;zk=1;var e=t4(),n=lT();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return _g=r,_g}var bg,Bk;function r4(){if(Bk)return bg;Bk=1;var e=CT(),n=gT(),r=vT();function i(o){return r(n(o,void 0,e),o+"")}return bg=i,bg}var Sg,Uk;function s4(){if(Uk)return Sg;Uk=1;var e=n4(),n=r4(),r=n(function(i,o){return i==null?{}:e(i,o)});return Sg=r,Sg}var kg,Hk;function i4(){if(Hk)return kg;Hk=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 kg=r,kg}var Eg,Wk;function o4(){if(Wk)return Eg;Wk=1;var e=i4(),n=Zu(),r=NT();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 Eg=i,Eg}var Ng,Vk;function a4(){if(Vk)return Ng;Vk=1;var e=o4(),n=e();return Ng=n,Ng}var Cg,Gk;function l4(){if(Gk)return Cg;Gk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return Cg=e,Cg}var Tg,Yk;function u4(){if(Yk)return Tg;Yk=1;var e=xo();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 Tg=n,Tg}var jg,Kk;function c4(){if(Kk)return jg;Kk=1;var e=u4();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 jg=n,jg}var Rg,Xk;function d4(){if(Xk)return Rg;Xk=1;var e=Yu(),n=Xu(),r=Hr(),i=hT(),o=l4(),l=Hu(),u=c4(),c=mi(),h=bt();function p(d,m,y){m.length?m=e(m,function(_){return h(_)?function(b){return n(b,_.length===1?_[0]:_)}:_}):m=[c];var w=-1;m=e(m,l(r));var N=i(d,function(_,b,S){var k=e(m,function(E){return E(_)});return{criteria:k,index:++w,value:_}});return o(N,function(_,b){return u(_,b,y)})}return Rg=p,Rg}var Ag,Qk;function f4(){if(Qk)return Ag;Qk=1;var e=xy(),n=d4(),r=Qu(),i=Zu(),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 Ag=o,Ag}var Ig,Zk;function h4(){if(Zk)return Ig;Zk=1;var e=oT(),n=0;function r(i){var o=++n;return e(i)+o}return Ig=r,Ig}var Mg,Jk;function p4(){if(Jk)return Mg;Jk=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 Mg=e,Mg}var Og,eE;function m4(){if(eE)return Og;eE=1;var e=Bu(),n=p4();function r(i,o){return n(i||[],o||[],e)}return Og=r,Og}var Pg,tE;function lt(){if(tE)return Pg;tE=1;var e;if(typeof iy=="function")try{e={cloneDeep:AD(),constant:my(),defaults:ID(),each:JC(),filter:cT(),find:DD(),flatten:CT(),forEach:ZC(),forIn:FD(),has:dT(),isUndefined:fT(),last:zD(),map:pT(),mapValues:BD(),max:HD(),merge:XD(),min:QD(),minBy:ZD(),now:JD(),pick:s4(),range:a4(),reduce:mT(),sortBy:f4(),uniqueId:h4(),values:xT(),zipObject:m4()}}catch{}return e||(e=window._),Pg=e,Pg}var Lg,nE;function g4(){if(nE)return Lg;nE=1,Lg=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 Lg}var $g,rE;function v4(){if(rE)return $g;rE=1;var e=lt(),n=nr().Graph,r=g4();$g=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 b=d.length-2;b>0;--b)if(_=d[b].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 b=p.edge(_),S=p.node(_.v);w&&N.push({v:_.v,w:_.w}),S.out-=b,h(d,m,S)}),e.forEach(p.outEdges(y.v),function(_){var b=p.edge(_),S=_.w,k=p.node(S);k.in-=b,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(b){m.setNode(b,{v:b,in:0,out:0})}),e.forEach(p.edges(),function(b){var S=m.edge(b.v,b.w)||0,k=d(b),E=S+k;m.setEdge(b.v,b.w,E),w=Math.max(w,m.node(b.v).out+=k),y=Math.max(y,m.node(b.w).in+=k)});var N=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(b){h(N,_,m.node(b))}),{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 $g}var qg,sE;function y4(){if(sE)return qg;sE=1;var e=lt(),n=v4();qg={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 qg}var Dg,iE;function fn(){if(iE)return Dg;iE=1;var e=lt(),n=nr().Graph;Dg={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(b,S,k,E){var T;do T=e.uniqueId(E);while(b.hasNode(T));return k.dummy=S,b.setNode(T,k),T}function i(b){var S=new n().setGraph(b.graph());return e.forEach(b.nodes(),function(k){S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){var E=S.edge(k.v,k.w)||{weight:0,minlen:1},T=b.edge(k);S.setEdge(k.v,k.w,{weight:E.weight+T.weight,minlen:Math.max(E.minlen,T.minlen)})}),S}function o(b){var S=new n({multigraph:b.isMultigraph()}).setGraph(b.graph());return e.forEach(b.nodes(),function(k){b.children(k).length||S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){S.setEdge(k,b.edge(k))}),S}function l(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.outEdges(k),function(T){E[T.w]=(E[T.w]||0)+b.edge(T).weight}),E});return e.zipObject(b.nodes(),S)}function u(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.inEdges(k),function(T){E[T.v]=(E[T.v]||0)+b.edge(T).weight}),E});return e.zipObject(b.nodes(),S)}function c(b,S){var k=b.x,E=b.y,T=S.x-k,I=S.y-E,O=b.width/2,A=b.height/2;if(!T&&!I)throw new Error("Not possible to find intersection inside of the rectangle");var U,z;return Math.abs(I)*O>Math.abs(T)*A?(I<0&&(A=-A),U=A*T/I,z=A):(T<0&&(O=-O),U=O,z=O*I/T),{x:k+U,y:E+z}}function h(b){var S=e.map(e.range(y(b)+1),function(){return[]});return e.forEach(b.nodes(),function(k){var E=b.node(k),T=E.rank;e.isUndefined(T)||(S[T][E.order]=k)}),S}function p(b){var S=e.min(e.map(b.nodes(),function(k){return b.node(k).rank}));e.forEach(b.nodes(),function(k){var E=b.node(k);e.has(E,"rank")&&(E.rank-=S)})}function d(b){var S=e.min(e.map(b.nodes(),function(I){return b.node(I).rank})),k=[];e.forEach(b.nodes(),function(I){var O=b.node(I).rank-S;k[O]||(k[O]=[]),k[O].push(I)});var E=0,T=b.graph().nodeRankFactor;e.forEach(k,function(I,O){e.isUndefined(I)&&O%T!==0?--E:E&&e.forEach(I,function(A){b.node(A).rank+=E})})}function m(b,S,k,E){var T={width:0,height:0};return arguments.length>=4&&(T.rank=k,T.order=E),r(b,"border",T,S)}function y(b){return e.max(e.map(b.nodes(),function(S){var k=b.node(S).rank;if(!e.isUndefined(k))return k}))}function w(b,S){var k={lhs:[],rhs:[]};return e.forEach(b,function(E){S(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(b,S){var k=e.now();try{return S()}finally{console.log(b+" time: "+(e.now()-k)+"ms")}}function _(b,S){return S()}return Dg}var Fg,oE;function w4(){if(oE)return Fg;oE=1;var e=lt(),n=fn();Fg={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,_,b;for(b=0,++h;h<d;++b,++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),b===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 Fg}var zg,aE;function Nu(){if(aE)return zg;aE=1;var e=lt();zg={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 zg}var Bg,lE;function AT(){if(lE)return Bg;lE=1;var e=lt(),n=nr().Graph,r=Nu().slack;Bg=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 Bg}var Ug,uE;function x4(){if(uE)return Ug;uE=1;var e=lt(),n=AT(),r=Nu().slack,i=Nu().longestPath,o=nr().alg.preorder,l=nr().alg.postorder,u=fn().simplify;Ug=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 T=n(E);m(T),h(T,E);for(var I,O;I=w(T);)O=N(T,E,I),_(T,E,I,O)}function h(E,T){var I=l(E,E.nodes());I=I.slice(0,I.length-1),e.forEach(I,function(O){p(E,T,O)})}function p(E,T,I){var O=E.node(I),A=O.parent;E.edge(I,A).cutvalue=d(E,T,I)}function d(E,T,I){var O=E.node(I),A=O.parent,U=!0,z=T.edge(I,A),P=0;return z||(U=!1,z=T.edge(A,I)),P=z.weight,e.forEach(T.nodeEdges(I),function(D){var V=D.v===I,B=V?D.w:D.v;if(B!==A){var C=V===U,q=T.edge(D).weight;if(P+=C?q:-q,S(E,I,B)){var L=E.edge(I,B).cutvalue;P+=C?-L:L}}}),P}function m(E,T){arguments.length<2&&(T=E.nodes()[0]),y(E,{},1,T)}function y(E,T,I,O,A){var U=I,z=E.node(O);return T[O]=!0,e.forEach(E.neighbors(O),function(P){e.has(T,P)||(I=y(E,T,I,P,O))}),z.low=U,z.lim=I++,A?z.parent=A:delete z.parent,I}function w(E){return e.find(E.edges(),function(T){return E.edge(T).cutvalue<0})}function N(E,T,I){var O=I.v,A=I.w;T.hasEdge(O,A)||(O=I.w,A=I.v);var U=E.node(O),z=E.node(A),P=U,D=!1;U.lim>z.lim&&(P=z,D=!0);var V=e.filter(T.edges(),function(B){return D===k(E,E.node(B.v),P)&&D!==k(E,E.node(B.w),P)});return e.minBy(V,function(B){return r(T,B)})}function _(E,T,I,O){var A=I.v,U=I.w;E.removeEdge(A,U),E.setEdge(O.v,O.w,{}),m(E),h(E,T),b(E,T)}function b(E,T){var I=e.find(E.nodes(),function(A){return!T.node(A).parent}),O=o(E,I);O=O.slice(1),e.forEach(O,function(A){var U=E.node(A).parent,z=T.edge(A,U),P=!1;z||(z=T.edge(U,A),P=!0),T.node(A).rank=T.node(U).rank+(P?z.minlen:-z.minlen)})}function S(E,T,I){return E.hasEdge(T,I)}function k(E,T,I){return I.low<=T.lim&&T.lim<=I.lim}return Ug}var Hg,cE;function _4(){if(cE)return Hg;cE=1;var e=Nu(),n=e.longestPath,r=AT(),i=x4();Hg=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 Hg}var Wg,dE;function b4(){if(dE)return Wg;dE=1;var e=lt();Wg=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 Wg}var Vg,fE;function S4(){if(fE)return Vg;fE=1;var e=lt(),n=fn();Vg={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"),b=n.addBorderNode(c,"_bb"),S=c.node(w);c.setParent(_,w),S.borderTop=_,c.setParent(b,w),S.borderBottom=b,e.forEach(N,function(k){i(c,h,p,d,m,y,k);var E=c.node(k),T=E.borderTop?E.borderTop:k,I=E.borderBottom?E.borderBottom:k,O=E.borderTop?d:2*d,A=T!==I?1:m-y[w]+1;c.setEdge(_,T,{weight:O,minlen:A,nestingEdge:!0}),c.setEdge(I,b,{weight:O,minlen:A,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 Vg}var Gg,hE;function k4(){if(hE)return Gg;hE=1;var e=lt(),n=fn();Gg=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 Gg}var Yg,pE;function E4(){if(pE)return Yg;pE=1;var e=lt();Yg={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 Yg}var Kg,mE;function N4(){if(mE)return Kg;mE=1;var e=lt();Kg=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 Kg}var Xg,gE;function C4(){if(gE)return Xg;gE=1;var e=lt();Xg=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 Xg}var Qg,vE;function T4(){if(vE)return Qg;vE=1;var e=lt();Qg=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 Qg}var Zg,yE;function j4(){if(yE)return Zg;yE=1;var e=lt();Zg=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 Zg}var Jg,wE;function R4(){if(wE)return Jg;wE=1;var e=lt(),n=fn();Jg=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 Jg}var ev,xE;function A4(){if(xE)return ev;xE=1;var e=lt(),n=T4(),r=j4(),i=R4();ev=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(I){return I!==w&&I!==N}));var b=n(c,m);e.forEach(b,function(I){if(c.children(I.v).length){var O=o(c,I.v,p,d);_[I.v]=O,e.has(O,"barycenter")&&u(I,O)}});var S=r(b,p);l(S,_);var k=i(S,d);if(w&&(k.vs=e.flatten([w,k.vs,N],!0),c.predecessors(w).length)){var E=c.node(c.predecessors(w)[0]),T=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+T.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 ev}var tv,_E;function I4(){if(_E)return tv;_E=1;var e=lt(),n=nr().Graph;tv=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 tv}var nv,bE;function M4(){if(bE)return nv;bE=1;var e=lt();nv=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 nv}var rv,SE;function O4(){if(SE)return rv;SE=1;var e=lt(),n=N4(),r=C4(),i=A4(),o=I4(),l=M4(),u=nr().Graph,c=fn();rv=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"),b=n(y);m(y,b);for(var S=Number.POSITIVE_INFINITY,k,E=0,T=0;T<4;++E,++T){d(E%2?N:_,E%4>=2),b=c.buildLayerMatrix(y);var I=r(y,b);I<S&&(T=0,k=e.cloneDeep(b),S=I)}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 b=_.graph().root,S=i(_,b,N,w);e.forEach(S.vs,function(k,E){_.node(k).order=E}),l(_,N,S.vs)})}function m(y,w){e.forEach(w,function(N){e.forEach(N,function(_,b){y.node(_).order=b})})}return rv}var sv,kE;function P4(){if(kE)return sv;kE=1;var e=lt(),n=nr().Graph,r=fn();sv={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:h,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:m,balance:w};function i(S,k){var E={};function T(I,O){var A=0,U=0,z=I.length,P=e.last(O);return e.forEach(O,function(D,V){var B=l(S,D),C=B?S.node(B).order:z;(B||D===P)&&(e.forEach(O.slice(U,V+1),function(q){e.forEach(S.predecessors(q),function(L){var re=S.node(L),Z=re.order;(Z<A||C<Z)&&!(re.dummy&&S.node(q).dummy)&&u(E,L,q)})}),U=V+1,A=C)}),O}return e.reduce(k,T),E}function o(S,k){var E={};function T(O,A,U,z,P){var D;e.forEach(e.range(A,U),function(V){D=O[V],S.node(D).dummy&&e.forEach(S.predecessors(D),function(B){var C=S.node(B);C.dummy&&(C.order<z||C.order>P)&&u(E,B,D)})})}function I(O,A){var U=-1,z,P=0;return e.forEach(A,function(D,V){if(S.node(D).dummy==="border"){var B=S.predecessors(D);B.length&&(z=S.node(B[0]).order,T(A,P,V,U,z),P=V,U=z)}T(A,P,A.length,z,O.length)}),A}return e.reduce(k,I),E}function l(S,k){if(S.node(k).dummy)return e.find(S.predecessors(k),function(E){return S.node(E).dummy})}function u(S,k,E){if(k>E){var T=k;k=E,E=T}var I=S[k];I||(S[k]=I={}),I[E]=!0}function c(S,k,E){if(k>E){var T=k;k=E,E=T}return e.has(S[k],E)}function h(S,k,E,T){var I={},O={},A={};return e.forEach(k,function(U){e.forEach(U,function(z,P){I[z]=z,O[z]=z,A[z]=P})}),e.forEach(k,function(U){var z=-1;e.forEach(U,function(P){var D=T(P);if(D.length){D=e.sortBy(D,function(L){return A[L]});for(var V=(D.length-1)/2,B=Math.floor(V),C=Math.ceil(V);B<=C;++B){var q=D[B];O[P]===P&&z<A[q]&&!c(E,P,q)&&(O[q]=P,O[P]=I[P]=I[q],z=A[q])}}})}),{root:I,align:O}}function p(S,k,E,T,I){var O={},A=d(S,k,E,I),U=I?"borderLeft":"borderRight";function z(V,B){for(var C=A.nodes(),q=C.pop(),L={};q;)L[q]?V(q):(L[q]=!0,C.push(q),C=C.concat(B(q))),q=C.pop()}function P(V){O[V]=A.inEdges(V).reduce(function(B,C){return Math.max(B,O[C.v]+A.edge(C))},0)}function D(V){var B=A.outEdges(V).reduce(function(q,L){return Math.min(q,O[L.w]-A.edge(L))},Number.POSITIVE_INFINITY),C=S.node(V);B!==Number.POSITIVE_INFINITY&&C.borderType!==U&&(O[V]=Math.max(O[V],B))}return z(P,A.predecessors.bind(A)),z(D,A.successors.bind(A)),e.forEach(T,function(V){O[V]=O[E[V]]}),O}function d(S,k,E,T){var I=new n,O=S.graph(),A=_(O.nodesep,O.edgesep,T);return e.forEach(k,function(U){var z;e.forEach(U,function(P){var D=E[P];if(I.setNode(D),z){var V=E[z],B=I.edge(V,D);I.setEdge(V,D,Math.max(A(S,P,z),B||0))}z=P})}),I}function m(S,k){return e.minBy(e.values(k),function(E){var T=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;return e.forIn(E,function(O,A){var U=b(S,A)/2;T=Math.max(O+U,T),I=Math.min(O-U,I)}),T-I})}function y(S,k){var E=e.values(k),T=e.min(E),I=e.max(E);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(A){var U=O+A,z=S[U],P;if(z!==k){var D=e.values(z);P=A==="l"?T-e.min(D):I-e.max(D),P&&(S[U]=e.mapValues(z,function(V){return V+P}))}})})}function w(S,k){return e.mapValues(S.ul,function(E,T){if(k)return S[k.toLowerCase()][T];var I=e.sortBy(e.map(S,T));return(I[1]+I[2])/2})}function N(S){var k=r.buildLayerMatrix(S),E=e.merge(i(S,k),o(S,k)),T={},I;e.forEach(["u","d"],function(A){I=A==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(U){U==="r"&&(I=e.map(I,function(V){return e.values(V).reverse()}));var z=(A==="u"?S.predecessors:S.successors).bind(S),P=h(S,I,E,z),D=p(S,I,P.root,P.align,U==="r");U==="r"&&(D=e.mapValues(D,function(V){return-V})),T[A+U]=D})});var O=m(S,T);return y(T,O),w(T,S.graph().align)}function _(S,k,E){return function(T,I,O){var A=T.node(I),U=T.node(O),z=0,P;if(z+=A.width/2,e.has(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":P=-A.width/2;break;case"r":P=A.width/2;break}if(P&&(z+=E?P:-P),P=0,z+=(A.dummy?k:S)/2,z+=(U.dummy?k:S)/2,z+=U.width/2,e.has(U,"labelpos"))switch(U.labelpos.toLowerCase()){case"l":P=U.width/2;break;case"r":P=-U.width/2;break}return P&&(z+=E?P:-P),P=0,z}}function b(S,k){return S.node(k).width}return sv}var iv,EE;function L4(){if(EE)return iv;EE=1;var e=lt(),n=fn(),r=P4().positionX;iv=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 iv}var ov,NE;function $4(){if(NE)return ov;NE=1;var e=lt(),n=y4(),r=w4(),i=_4(),o=fn().normalizeRanks,l=b4(),u=fn().removeEmptyRanks,c=S4(),h=k4(),p=E4(),d=O4(),m=L4(),y=fn(),w=nr().Graph;ov=N;function N($,Q){var ne=Q&&Q.debugTiming?y.time:y.notime;ne("layout",function(){var oe=ne(" buildLayoutGraph",function(){return z($)});ne(" runLayout",function(){_(oe,ne)}),ne(" updateInputGraph",function(){b($,oe)})})}function _($,Q){Q(" makeSpaceForEdgeLabels",function(){P($)}),Q(" removeSelfEdges",function(){H($)}),Q(" acyclic",function(){n.run($)}),Q(" nestingGraph.run",function(){c.run($)}),Q(" rank",function(){i(y.asNonCompoundGraph($))}),Q(" injectEdgeLabelProxies",function(){D($)}),Q(" removeEmptyRanks",function(){u($)}),Q(" nestingGraph.cleanup",function(){c.cleanup($)}),Q(" normalizeRanks",function(){o($)}),Q(" assignRankMinMax",function(){V($)}),Q(" removeEdgeLabelProxies",function(){B($)}),Q(" normalize.run",function(){r.run($)}),Q(" parentDummyChains",function(){l($)}),Q(" addBorderSegments",function(){h($)}),Q(" order",function(){d($)}),Q(" insertSelfEdges",function(){J($)}),Q(" adjustCoordinateSystem",function(){p.adjust($)}),Q(" position",function(){m($)}),Q(" positionSelfEdges",function(){M($)}),Q(" removeBorderNodes",function(){Z($)}),Q(" normalize.undo",function(){r.undo($)}),Q(" fixupEdgeLabelCoords",function(){L($)}),Q(" undoCoordinateSystem",function(){p.undo($)}),Q(" translateGraph",function(){C($)}),Q(" assignNodeIntersects",function(){q($)}),Q(" reversePoints",function(){re($)}),Q(" acyclic.undo",function(){n.undo($)})}function b($,Q){e.forEach($.nodes(),function(ne){var oe=$.node(ne),fe=Q.node(ne);oe&&(oe.x=fe.x,oe.y=fe.y,Q.children(ne).length&&(oe.width=fe.width,oe.height=fe.height))}),e.forEach($.edges(),function(ne){var oe=$.edge(ne),fe=Q.edge(ne);oe.points=fe.points,e.has(fe,"x")&&(oe.x=fe.x,oe.y=fe.y)}),$.graph().width=Q.graph().width,$.graph().height=Q.graph().height}var S=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],T=["width","height"],I={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},U=["labelpos"];function z($){var Q=new w({multigraph:!0,compound:!0}),ne=Y($.graph());return Q.setGraph(e.merge({},k,G(ne,S),e.pick(ne,E))),e.forEach($.nodes(),function(oe){var fe=Y($.node(oe));Q.setNode(oe,e.defaults(G(fe,T),I)),Q.setParent(oe,$.parent(oe))}),e.forEach($.edges(),function(oe){var fe=Y($.edge(oe));Q.setEdge(oe,e.merge({},A,G(fe,O),e.pick(fe,U)))}),Q}function P($){var Q=$.graph();Q.ranksep/=2,e.forEach($.edges(),function(ne){var oe=$.edge(ne);oe.minlen*=2,oe.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?oe.width+=oe.labeloffset:oe.height+=oe.labeloffset)})}function D($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);if(ne.width&&ne.height){var oe=$.node(Q.v),fe=$.node(Q.w),te={rank:(fe.rank-oe.rank)/2+oe.rank,e:Q};y.addDummyNode($,"edge-proxy",te,"_ep")}})}function V($){var Q=0;e.forEach($.nodes(),function(ne){var oe=$.node(ne);oe.borderTop&&(oe.minRank=$.node(oe.borderTop).rank,oe.maxRank=$.node(oe.borderBottom).rank,Q=e.max(Q,oe.maxRank))}),$.graph().maxRank=Q}function B($){e.forEach($.nodes(),function(Q){var ne=$.node(Q);ne.dummy==="edge-proxy"&&($.edge(ne.e).labelRank=ne.rank,$.removeNode(Q))})}function C($){var Q=Number.POSITIVE_INFINITY,ne=0,oe=Number.POSITIVE_INFINITY,fe=0,te=$.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(Re){var ye=Re.x,ke=Re.y,Ye=Re.width,we=Re.height;Q=Math.min(Q,ye-Ye/2),ne=Math.max(ne,ye+Ye/2),oe=Math.min(oe,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach($.nodes(),function(Re){ve($.node(Re))}),e.forEach($.edges(),function(Re){var ye=$.edge(Re);e.has(ye,"x")&&ve(ye)}),Q-=ce,oe-=Ce,e.forEach($.nodes(),function(Re){var ye=$.node(Re);ye.x-=Q,ye.y-=oe}),e.forEach($.edges(),function(Re){var ye=$.edge(Re);e.forEach(ye.points,function(ke){ke.x-=Q,ke.y-=oe}),e.has(ye,"x")&&(ye.x-=Q),e.has(ye,"y")&&(ye.y-=oe)}),te.width=ne-Q+ce,te.height=fe-oe+Ce}function q($){e.forEach($.edges(),function(Q){var ne=$.edge(Q),oe=$.node(Q.v),fe=$.node(Q.w),te,ce;ne.points?(te=ne.points[0],ce=ne.points[ne.points.length-1]):(ne.points=[],te=fe,ce=oe),ne.points.unshift(y.intersectRect(oe,te)),ne.points.push(y.intersectRect(fe,ce))})}function L($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);if(e.has(ne,"x"))switch((ne.labelpos==="l"||ne.labelpos==="r")&&(ne.width-=ne.labeloffset),ne.labelpos){case"l":ne.x-=ne.width/2+ne.labeloffset;break;case"r":ne.x+=ne.width/2+ne.labeloffset;break}})}function re($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);ne.reversed&&ne.points.reverse()})}function Z($){e.forEach($.nodes(),function(Q){if($.children(Q).length){var ne=$.node(Q),oe=$.node(ne.borderTop),fe=$.node(ne.borderBottom),te=$.node(e.last(ne.borderLeft)),ce=$.node(e.last(ne.borderRight));ne.width=Math.abs(ce.x-te.x),ne.height=Math.abs(fe.y-oe.y),ne.x=te.x+ne.width/2,ne.y=oe.y+ne.height/2}}),e.forEach($.nodes(),function(Q){$.node(Q).dummy==="border"&&$.removeNode(Q)})}function H($){e.forEach($.edges(),function(Q){if(Q.v===Q.w){var ne=$.node(Q.v);ne.selfEdges||(ne.selfEdges=[]),ne.selfEdges.push({e:Q,label:$.edge(Q)}),$.removeEdge(Q)}})}function J($){var Q=y.buildLayerMatrix($);e.forEach(Q,function(ne){var oe=0;e.forEach(ne,function(fe,te){var ce=$.node(fe);ce.order=te+oe,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode($,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++oe,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function M($){e.forEach($.nodes(),function(Q){var ne=$.node(Q);if(ne.dummy==="selfedge"){var oe=$.node(ne.e.v),fe=oe.x+oe.width/2,te=oe.y,ce=ne.x-fe,Ce=oe.height/2;$.setEdge(ne.e,ne.label),$.removeNode(Q),ne.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}],ne.label.x=ne.x,ne.label.y=ne.y}})}function G($,Q){return e.mapValues(e.pick($,Q),Number)}function Y($){var Q={};return e.forEach($,function(ne,oe){Q[oe.toLowerCase()]=ne}),Q}return ov}var av,CE;function q4(){if(CE)return av;CE=1;var e=lt(),n=fn(),r=nr().Graph;av={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 av}var lv,TE;function D4(){return TE||(TE=1,lv="0.8.5"),lv}var uv,jE;function F4(){return jE||(jE=1,uv={graphlib:nr(),layout:$4(),debug:q4(),util:{time:fn().time,notime:fn().notime},version:D4()}),uv}var z4=F4();const RE=$v(z4),po=240,Cu=130,oo=74,Ju=72,AE=oo+Ju;function B4(e,n){var i;let r=po;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??po);return r}const IT=420,U4=2;function ba(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function H4(e,n){return((n==null?void 0:n.get(e))??0)>0?IT:0}function W4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function Sa(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??po)+H4(e,r),h:Math.max((i==null?void 0:i.height)??Cu,W4(e,r))}}function V4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function G4(e,n,r,i,o,l){const u=new RE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(S=>!o.has(S)),h=new Set(c);for(const S of c){const{w:k,h:E}=Sa(S,i,l);u.setNode(S,{width:k,height:E})}for(const S of n)h.has(S.source)&&h.has(S.target)&&u.setEdge(S.source,S.target);RE.layout(u);const p=new Map;let d=1/0,m=1/0,y=-1/0,w=-1/0;for(const S of c){const k=u.node(S);if(!k)continue;const E=i.get(S),T=(E==null?void 0:E.width)??po,I=(E==null?void 0:E.height)??Cu,O=Sa(S,i,l),A=k.x-O.w/2,U=k.y-O.h/2;p.set(S,{x:A,y:U}),A<d&&(d=A),U<m&&(m=U),A+T>y&&(y=A+T),U+I>w&&(w=U+I)}if(Number.isFinite(d)&&Number.isFinite(m))for(const[S,k]of p)p.set(S,{x:k.x-d,y:k.y-m});const N=Number.isFinite(y)?y-d:0,_=Number.isFinite(w)?w-m:0;let b=null;for(const S of e){const k=o.get(S);if(!k)continue;const E=i.get(S),T=(E==null?void 0:E.width)??po,I=(E==null?void 0:E.height)??Cu;b=b===null?{minX:k.x,minY:k.y,maxX:k.x+T,maxY:k.y+I}:{minX:Math.min(b.minX,k.x),minY:Math.min(b.minY,k.y),maxX:Math.max(b.maxX,k.x+T),maxY:Math.max(b.maxY,k.y+I)}}return{positions:p,width:N,height:_,pinnedBox:b}}function Y4(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 S of e){const k=ba(S),E=c.get(k);E?E.push(S.id):c.set(k,[S.id])}const p=Array.from(c.keys()).sort().map(S=>({sid:S,...G4(c.get(S),n,i,l,o,u)})),d=B4(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=S=>{const k=[[]];let E=0;for(const T of p)k.length<S&&E>0&&E+T.height>m&&(k.push([]),E=0),k[k.length-1].push(T),E+=T.height+AE;return k},w=S=>S.reduce((k,E)=>Math.max(k,E.width),0)+IT;let N=y(r.availableWidth?U4: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 b=0;for(const S of N){const k=w(S);let E=0;for(const{positions:T,height:I,pinnedBox:O}of S){for(const[U,z]of T)_.set(U,{x:z.x+b,y:z.y+E});let A=E+I;O&&O.maxY>A&&O.minX<b+k&&b<O.maxX&&(A=O.maxY),E=A+AE}b+=k+d}return e.map(S=>{const k=o.get(S.id);if(k)return{...S,position:k};const E=_.get(S.id);return E?{...S,position:E}:S})}function K4(e,n,r,i,o){const u=oo+Ju,c=60,h=w=>Sa(w,i,o),p=new Map(e.map(w=>[w.id,ba(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:b}=h(w),S=p.get(w)??"_default";if(r.has(w)){d.push({x:N.x,y:N.y,w:_,h:b,sid:S});continue}let k=N.y;for(let E=0;E<d.length+1;E++){const T=d.find(I=>{const O=I.sid===S?24:c,A=I.sid===S?24:u;return N.x<I.x+I.w+O&&I.x<N.x+_+O&&k<I.y+I.h+A&&I.y<k+b+A});if(!T)break;k=T.y+T.h+(T.sid===S?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:b,sid:S})}return y}function X4(e,n,r,i,o,l){const u=_=>Sa(_,i,l),c=_=>r.get(_)??n.get(_),h=new Map;for(const _ of e){if(!c(_.id))continue;const b=ba(_),S=h.get(b);S?S.push(_):h.set(b,[_])}const p=new Set;for(const[_,b]of h)b.every(S=>o.has(S.id)&&!r.has(S.id))&&p.add(_);const d=new Map,m=[];for(const _ of e){const b=c(_.id);if(!b)continue;const{w:S,h:k}=u(_.id),E=ba(_);p.has(E)?(d.get(E)??d.set(E,[]).get(E)).push(_):m.push({x:b.x,y:b.y,w:S,h:k})}if(d.size===0)return[];const y=oo+Ju,w=(_,b,S,k)=>m.some(E=>_<E.x+E.w+oo&&E.x<_+S+oo&&b<E.y+E.h+y&&E.y<b+k+y),N=[];for(const _ of[...d.keys()].sort()){const b=d.get(_);let S=1/0,k=1/0,E=-1/0,T=-1/0;for(const D of b){const V=c(D.id),{w:B,h:C}=u(D.id);S=Math.min(S,V.x),k=Math.min(k,V.y),E=Math.max(E,V.x+B),T=Math.max(T,V.y+C)}const I=E-S,O=T-k,A=[...new Set(m.map(D=>Math.round(D.x)))].sort((D,V)=>D-V),U=A.length?A:[S],z=[0,...m.map(D=>D.y+D.h+y)].sort((D,V)=>D-V);let P=null;e:for(const D of U)for(const V of z){if(V>=k)break;if(!w(D,V,I,O)){P={x:D,y:V};break e}}if(P){const D=P.x-S,V=P.y-k;for(const B of b){const C=c(B.id);n.set(B.id,{x:C.x+D,y:C.y+V})}N.push(_)}for(const D of b){const V=c(D.id),{w:B,h:C}=u(D.id);m.push({x:V.x,y:V.y,w:B,h:C})}}return N}function Q4(e,n,r,i,o,l=!1,u){const p=oo+Ju+1,d=8,m=1.75,y=200,w=.7,N=.01,_=P=>Sa(P,i,u),b=P=>r.get(P)??n.get(P),S=new Map;for(const P of e){if(!b(P.id))continue;const D=ba(P),V=S.get(D);V?V.push(P):S.set(D,[P])}const k=[],E=new Set,T=new Set,I=o.size===0;for(const P of[...S.keys()].sort()){const D=S.get(P);let V=1/0,B=1/0,C=-1/0,q=-1/0,L=!1;for(const J of D){const M=b(J.id),{w:G,h:Y}=_(J.id);V=Math.min(V,M.x),B=Math.min(B,M.y),C=Math.max(C,M.x+G),q=Math.max(q,M.y+Y),r.has(J.id)&&(L=!0)}const re=C-V,Z=q-B;T.add(P);const H=o.get(P);H&&(re>H.w+d||Z>H.h+d)&&E.add(P),o.set(P,{w:re,h:Z}),k.push({sid:P,members:D.map(J=>J.id),x:V,y:B,w:re,h:Z,anchored:L,mass:1})}for(const P of[...o.keys()])T.has(P)||o.delete(P);if(l||I)return[];let O=!1;for(let P=0;P<k.length&&!O;P++)for(let D=P+1;D<k.length;D++){const V=k[P],B=k[D];if(!(V.anchored&&B.anchored)&&Math.abs(V.x+V.w/2-(B.x+B.w/2))<(V.w+B.w)/2+61&&Math.abs(V.y+V.h/2-(B.y+B.h/2))<(V.h+B.h)/2+p){O=!0;break}}if(E.size===0&&!O)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/(po*Cu));const A=new Map(k.map(P=>[P.sid,P.x])),U=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const D=new Map,V=new Map;let B=0;for(let C=0;C<k.length;C++)for(let q=C+1;q<k.length;q++){const L=k[C],re=k[q];if(L.anchored&&re.anchored)continue;const Z=L.x+L.w/2,H=L.y+L.h/2,J=re.x+re.w/2,M=re.y+re.h/2,G=(L.w+re.w)/2+61-Math.abs(Z-J),Y=(L.h+re.h)/2+p-Math.abs(H-M);if(G<=0||Y<=0)continue;const $=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.x<=0),Q=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.y<=0),ne=(Fe,Je,Xe)=>{const Mt=Fe===Je,ut=Mt?L.sid<re.sid?-1:1:Math.sign(Fe-Je);return Xe(L,ut)||Xe(re,-ut)?ut:Mt&&(Xe(L,-ut)||Xe(re,ut))?-ut:0},oe=ne(Z,J,$),fe=ne(H,M,Q),te=oe!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||G*m<Y),[ve,Re,ye,ke]=Ce?[oe,G,D,$]:[fe,Y,V,Q],Ye=ke(L,ve),we=ke(re,-ve),_e=L.mass,Be=re.mass,it=Ye?we?Be/(_e+Be):1:0,pt=we?Ye?_e/(_e+Be):1:0,Ze=Re*w;ye.set(L.sid,(ye.get(L.sid)??0)+ve*Ze*it),ye.set(re.sid,(ye.get(re.sid)??0)-ve*Ze*pt),B+=Ze}for(const C of k)C.anchored||(C.x=Math.max(0,C.x+(D.get(C.sid)??0)),C.y=Math.max(0,C.y+(V.get(C.sid)??0)));if(B<N)break}const z=[];for(const P of k){const D=P.x-A.get(P.sid),V=P.y-U.get(P.sid);if(!(Math.abs(D)<1&&Math.abs(V)<1)){for(const B of P.members){if(r.has(B))continue;const C=n.get(B);C&&n.set(B,{x:C.x+D,y:C.y+V})}z.push(P.sid)}}return z}const Z4=600;function Iv(e,n){return!(e.exitAt!=null&&n-e.exitAt>Z4||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function J4(e,n){const r=new Set;for(const i of e.agents.values())Iv(i,n)&&r.add(i.id);return r}function e5(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 t5(e,n,r=0){if(!e)return!1;for(const i of n)if(e5(e,i,r))return!0;return!1}const MT="sessionGroup";function n5(e,n){var i;if(e.type===MT)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const r5="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function s5(e){if(e.checkDisabled)return r5;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 i5(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 o5(e){const n=e.kind==="restart"?`v${e.to} is installed and waiting for a restart`:`v${e.to} is available on npm`;return`Version v${e.from}, ${n} — ${e.open?"hide":"show"} the notice`}function a5(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."}}const Mv={kind:"assumed",claude:!0,codex:!0};function l5(e){if(!e||typeof e!="object")return Mv;const n=e.providers;if(!n||typeof n!="object")return Mv;const r=n;return{kind:"reported",claude:r.claude!==!1,codex:r.codex!==!1}}function OT(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function u5(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${OT(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 c5(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:`${OT(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 PT(e,n){return e!==""&&n>0}function d5(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:PT(e,n)}}function Ov(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 f5(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function h5(e,n,r){const i=new Date(e),o=Ov(n-e);return{label:f5(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function aa(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const p5={agent:KP,sessionGroup:uL},LT="react-flow__node";function IE(e){var n,r;return!!e&&((r=(n=e.classList)==null?void 0:n.contains)==null?void 0:r.call(n,LT))===!0}function m5(e){try{const n=document.querySelector(`.${LT}[data-id="${CSS.escape(e)}"]`);n==null||n.focus({preventScroll:!0})}catch{}}const g5=420,au=18,v5=9e4,y5=200,w5=5*6e4,x5=6,_5=2*6e4,Sy="agent-dag.layout",ky="agent-dag.viewport",$T="agent-dag.summariesDismissed",qT="agent-dag.sessionListOpen",DT="agent-dag.detailOpen",FT="agent-dag.usagePanelOpen",ME="agent-dag.accountsPanelOpen",OE="agent-dag.versionNoticeDismissed",PE="agent-dag.oldNameNoticeDismissed",b5=15*6e4,LE={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:"},$E="agent-dag.autoRestart",qE="agent-dag.bundleReloadedFor";function S5(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(qT)==="1"}catch{return!1}}function k5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(qT,e?"1":"0")}catch{}}function E5(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(DT)==="1"}catch{return!1}}function N5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(DT,e?"1":"0")}catch{}}function C5(){const e=AC(FT);return e===null?!0:e==="1"}function T5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(FT,e?"1":"0")}catch{}}function j5(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem($T);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 DE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem($T,JSON.stringify(r))}catch{}}function R5(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Sy);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 cv(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(Sy,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function A5(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(ky);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 I5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(ky,JSON.stringify(e))}catch{}}function FE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Sy)}catch{}try{window.localStorage.removeItem(ky)}catch{}}}function M5(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=`${en}-${p}-${n.slice(0,8)}.json`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Pv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Lv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},zT=bC;function BT(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 O5(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 P5(e,n,r,i,o,l,u,c,h,p,d,m,y,w,N,_,b,S,k){const E=[],T=[],I=new Set;if(l)for(const B of e.agents.values())S.has(B.id)&&BT(B,l)&&I.add(B.id);const O=PT(l,I.size);for(const B of e.agents.values()){if(!S.has(B.id))continue;const C=O&&!I.has(B.id),q=B.exitAt!=null,L=b!=null&&!b.has(B.id),re=[C?"rf-dim":"",q?"rf-exiting":"",L?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(B.id);if(E.push({id:B.id,type:"agent",position:{x:0,y:0},data:{...B,now:n,onOpenContext:k},className:re,...Z?{width:Z.width,height:Z.height}:null}),B.parentId&&S.has(B.parentId)){const H=ty(B.sessionId),J=l&&!I.has(B.id)&&!I.has(B.parentId),M=q,G=_.size>0&&(_.has(B.id)||_.has(B.parentId)),Y=b!=null&&!b.has(B.id)&&!b.has(B.parentId),$=B.state==="active"?2:1.5,Q=G?$+1.5:$,ne=J||M?.2:Y?.12:1,oe=["sess-edge",B.state==="active"?"sess-live":"sess-idle",M?"rf-edge-exiting":"",G?"rf-edge-selected":""].filter(Boolean).join(" ");T.push({id:`e:${B.parentId}->${B.id}`,source:B.parentId,target:B.id,animated:(B.state==="active"||G)&&!J&&!M,type:"smoothstep",style:{"--session-hue":H,strokeWidth:Q,opacity:ne,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:oe})}}const A=new Map;for(const B of e.agents.values())B.tools.length>0&&A.set(B.id,Math.min(4,B.tools.length));const U=`${w}#lanes:${V4(A)}`,z=E.filter(B=>r$(B.id,o,m,y));if(z.length>0||U!==N.current){if(z.length>0){const B=Y4(E,T,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:A});for(const C of B)RC(C.id,m,y)&&i$(C.id,C.position,m,y);X4(E,m,o,u,new Set(z.map(C=>C.id)),A)}K4(E,m,o,u,A),N.current=U}const P=Q4(E,m,o,u,c,!p||d,A);P.length>0&&h(P),ru(m,e.agents),ru(y,e.agents),ru(o,e.agents),ru(u,n$(e.agents.values()));const D=[];let V=!1;for(const B of E){let C=o.get(B.id)??m.get(B.id);C||(C=s$(B.id,m,y),V=!0),D.push({...B,position:C})}return V&&(N.current=""),{nodes:D,edges:T}}function L5(){return g.jsx(ey,{children:g.jsx($5,{})})}function $5(){var Wa,Va,Ga,Ya;const e=Ta(),n=R.useRef(Cv()),[,r]=R.useState(0),i=R.useCallback(()=>r(W=>W+1),[]),[o,l]=R.useState(()=>new Set),[u,c]=R.useState(null),[h,p]=R.useState(null),d=R.useCallback((W,K)=>{l(le=>{if(!K)return new Set([W]);const de=new Set(le);return de.has(W)?de.delete(W):de.add(W),de}),c(le=>K&&le===W?le:W)},[]),m=R.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=R.useState(null),[N,_]=R.useState(null),b=R.useCallback(W=>_(W),[]),[S,k]=R.useState(!1),E=R.useRef(j5()),[T,I]=R.useState(S5);R.useEffect(()=>{k5(T)},[T]);const[O,A]=R.useState(E5);R.useEffect(()=>{N5(O)},[O]);const[U,z]=R.useState(C5);R.useEffect(()=>{T5(U)},[U]);const[P,D]=R.useState(()=>{try{const W=window.localStorage.getItem(ME);return W===null?!0:W==="1"}catch{return!0}});R.useEffect(()=>{try{window.localStorage.setItem(ME,P?"1":"0")}catch{}},[P]);const[V,B]=R.useState(null),[C,q]=R.useState(!1),[L,re]=R.useState(0),[Z,H]=R.useState(0);R.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(B(W.enabled===!0),re((W.foreign??[]).filter(K=>K.worksHere).length),H(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const J=R.useCallback(async()=>{q(!0);try{const K=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!V})})).json().catch(()=>null);K!=null&&K.ok&&B(K.enabled===!0),fetch("/api/sound-hook").then(le=>le.ok?le.json():null).then(le=>{le!=null&&le.ok&&(re((le.foreign??[]).filter(de=>de.worksHere).length),H(typeof le.parked=="number"?le.parked:0))}).catch(()=>{})}catch{}finally{q(!1)}},[V]),[M,G]=R.useState(!1),[Y,$]=R.useState(null),[Q,ne]=R.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(OE)??""}catch{return""}}),[oe,fe]=R.useState(!1),te=R.useRef(0),[ce,Ce]=R.useState(!1),ve=R.useCallback((W=!1)=>{W&&(te.current=Date.now(),Ce(!0)),fetch(W?"/api/version?refresh=1":"/api/version").then(K=>K.ok?K.json():null).then(K=>{K&&$(K)}).catch(()=>{}).finally(()=>{W&&Ce(!1)})},[]),Re=R.useCallback(()=>{ve(Date.now()-te.current>=b5)},[ve]);R.useEffect(()=>{ve();const W=window.setInterval(Re,5*6e4),K=()=>{document.visibilityState==="visible"&&Re()};return document.addEventListener("visibilitychange",K),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",K)}},[ve,Re]),R.useEffect(()=>{M&&ve()},[M,ve]);const ye=(Y==null?void 0:Y.notice)??null,[ke,Ye]=R.useState(null),[we,_e]=R.useState(Mv);R.useEffect(()=>{let W=!1;return fetch("/api/health").then(K=>K.ok?K.json():null).then(K=>{W||(_e(l5(K)),!(!K||typeof K.workspace!="string")&&Ye(K.workspace))}).catch(()=>{}),()=>{W=!0}},[M]);const Be=R.useRef(we);Be.current=we;const it=ye?`${ye.kind}:${ye.to}`:"",pt=ye!=null&&Q!==it,Ze=R.useCallback(()=>{if(!ye)return;const W=Q===it?"":it;ne(W);try{window.localStorage.setItem(OE,W)}catch{}},[ye,it,Q]),[Fe,Je]=R.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(PE)??""}catch{return""}}),Xe=Y!=null&&Y.invokedAs&&Y.invokedAs!==en?Y.invokedAs:null,Mt=Xe!=null&&Fe!==Xe,ut=R.useCallback(()=>{if(Xe){Je(Xe);try{window.localStorage.setItem(PE,Xe)}catch{}}},[Xe]),Qe=((Wa=Y==null?void 0:Y.upgrade)==null?void 0:Wa.state)??"idle",Ot=W3(Y==null?void 0:Y.upgrade),Ft=R.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);R.useEffect(()=>{if(Qe!=="running")return;const W=window.setInterval(ve,3e3);return()=>window.clearInterval(W)},[Qe,ve]);const et=R.useCallback(async()=>{var le;const W=Y==null?void 0:Y.command;if(!W)return;let K=!1;try{K=await Promise.race([((le=navigator.clipboard)==null?void 0:le.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{K=!1}if(!K)try{const de=document.createElement("textarea");de.value=W,de.setAttribute("readonly",""),de.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(de),de.select(),K=document.execCommand("copy"),de.remove()}catch{K=!1}K&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[Y==null?void 0:Y.command]),St=R.useCallback(()=>{I(W=>(W||D(!1),!W))},[]),mt=R.useCallback(()=>{D(W=>(W||I(!1),!W))},[]),[wt,hn]=R.useState(!1),[Yt,Pt]=R.useState(0),Sn=R.useRef(null),[gr,kn]=R.useState(!1),zt=R.useRef(null),[Fn,pn]=R.useState(0),vr=R.useRef(u$()),[Wr,gi]=R.useState(!1),Vr=R.useCallback(()=>{const W=vr.current,K=W.setPaused(!W.paused);for(const le of K)n.current=qx(n.current,le);gi(W.paused)},[]),[ct,vi]=R.useState(Date.now()),[mn,Cs]=R.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem($E)!=="0"}catch{return!0}}),yr=R.useCallback(()=>{Cs(W=>{const K=!W;try{window.localStorage.setItem($E,K?"1":"0")}catch{}return K})},[]),[zn,En]=R.useState(!1),[Gr,Yr]=R.useState("restart"),[Kr,yi]=R.useState(null),ir=R.useRef(!1),Ts=R.useRef(null),Nn=R.useRef(0),wr=R.useCallback(async W=>{if(ir.current)return;const K=(W==null?void 0:W.upgrade)===!0;ir.current=!0,Ts.current=Ot;const le=++Nn.current;Yr(K?"npx":"restart"),En(!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:K})})}catch{}window.setTimeout(()=>{if(Nn.current===le&&ir.current){ir.current=!1,En(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},K?18e4:3e4)},[ye==null?void 0:ye.to,Ot]),js=R.useRef(null);R.useEffect(()=>{let W=!1;for(const le of n.current.agents.values())if(le.state==="active"){W=!0;break}const K=G3({enabled:mn,kind:ye==null?void 0:ye.kind,canRestart:(Y==null?void 0:Y.canRestart)===!0,busy:W,idleSince:js.current,now:ct});js.current=K.idleSince,K.restart&&wr()},[mn,ye==null?void 0:ye.kind,Y==null?void 0:Y.canRestart,ct,wr]),R.useEffect(()=>{const W=Y==null?void 0:Y.running;let K=null,le=null;try{K=window.sessionStorage.getItem("agent-dag.restartPending"),le=window.sessionStorage.getItem(qE)}catch{return}const de=H3({bundle:"1.35.9",running:W,pending:K,lastTried:le});if(de==="reload"){try{window.sessionStorage.setItem(qE,W??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}ir.current=!1,En(!1),yi(W??null);const xe=window.setTimeout(()=>yi(null),6e3);return()=>window.clearTimeout(xe)},[Y==null?void 0:Y.running]),R.useEffect(()=>{if(zn&&V3({asked:Ts.current,reported:Ot})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}ir.current=!1,En(!1)}},[zn,Ot]);const Rs=R.useRef(R5()).current;R.useRef(!1);const jt=R.useRef(new Map(Rs.positions.filter(([W])=>Rs.pins.includes(W)))),xr=R.useRef(null),_r=R.useState(()=>A5())[0],[Kt,Xr]=R.useState(""),[wi,nt]=R.useState(()=>new Set),[br,Qr]=R.useState(p$),[As,Zr]=R.useState(!1),Jr=R.useRef(null);R.useEffect(()=>{document.documentElement.dataset.theme=br;try{window.localStorage.setItem(IC,br)}catch{}},[br]),R.useEffect(()=>{if(!_r)return;const W=window.setTimeout(()=>{try{e.setViewport(_r,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,_r]);const Is=R.useRef(!0);R.useEffect(()=>{const W=new EventSource("/events"),K=l$(i,{now:()=>Date.now(),setTimeout:(le,de)=>window.setTimeout(le,de),clearTimeout:le=>window.clearTimeout(le)});return W.addEventListener("open",()=>{G(!0),Zr(!0)}),W.addEventListener("error",()=>G(!1)),W.addEventListener("replay-end",()=>{Is.current=!1,K.flush()}),W.addEventListener("hook",le=>{try{const de=JSON.parse(le.data);if(!vr.current.accept(de))return;n.current=qx(n.current,de),de.replay===!0||Is.current||Date.now()-de.receivedAt>3e4?K.replay():K.live()}catch{}}),()=>{W.close(),K.cancel()}},[i]),R.useEffect(()=>{const W=setInterval(()=>{const K=Date.now();vi(K);let le=hP(n.current,K,v5);mP(n.current,K,pP)&&(le=!0),dP(n.current,K,y5,w5)&&(le=!0),fP(n.current,K,x5,_5)&&(le=!0),le&&i()},250);return()=>clearInterval(W)},[i]);const or=R.useRef(null),kt=R.useRef(0),Ms=420,gt=R.useCallback((W=500)=>{try{const Ee=document.querySelector(".canvas-wrap"),Oe=Array.from(document.querySelectorAll(".react-flow__node")).filter(ot=>ot.offsetWidth>0);if(!Ee||Oe.length===0)return;const ze=Ee.getBoundingClientRect(),Ge=e.getViewport();if(!Number.isFinite(Ge.zoom)||Ge.zoom<=0)return;const Ve=ot=>(ot-ze.left-Ge.x)/Ge.zoom,qe=ot=>(ot-ze.top-Ge.y)/Ge.zoom,Tn=Oe.map(ot=>ot.getBoundingClientRect()),Us=Math.min(...Tn.map(ot=>Ve(ot.left))),Ro=Math.max(...Tn.map(ot=>Ve(ot.right))),Hs=Math.min(...Tn.map(ot=>qe(ot.top))),Ao=Math.max(...Tn.map(ot=>qe(ot.bottom))),Ka=Ro-Us,Ci=Ao-Hs;if(!(Ka>0&&Ci>0))return;const yn=Math.max(.2,Math.min(1,(ze.width-160)/(Ka+Ms)*.86,(ze.height-160)/Ci*.86));e.setViewport({x:80-Us*yn,y:Math.max(80,(ze.height-Ci*yn)/2)-Hs*yn,zoom:yn},{duration:W}),kt.current=Date.now(),window.setTimeout(()=>{try{const ot={x:80-Us*yn,y:Math.max(80,(ze.height-Ci*yn)/2)-Hs*yn,zoom:yn},Xa=e.getViewport();(Math.abs(Xa.zoom-yn)>.01||Math.abs(Xa.x-ot.x)>2)&&e.setViewport(ot,{duration:0})}catch{}},W+60)}catch{}},[e]),_o=R.useRef(""),bo=R.useRef(null),La=R.useRef(0),Sr=R.useCallback(()=>{La.current=Date.now()},[]),es="agent-dag.autoFitDisabled",gn=R.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(es)==="1"}catch{return!1}})()),[Os,$a]=R.useState(gn.current),qa=R.useCallback(()=>{if(!gn.current){gn.current=!0,$a(!0);try{window.localStorage.setItem(es,"1")}catch{}}},[]),So=R.useCallback(()=>{gn.current=!1,$a(!1);try{window.localStorage.removeItem(es)}catch{}gt(400)},[e,gt]);R.useEffect(()=>{const W=setInterval(()=>{if(gn.current||Date.now()-La.current<800)return;const K=n.current,le=Date.now(),de=[];for(const Ve of K.agents.values())Iv(Ve,le)&&de.push({id:Ve.id});if(de.length===0)return;const xe=e.getViewport(),Ee=window.innerWidth-360,Oe=window.innerHeight-52;let ze=!1,Ge=!1;for(const{id:Ve}of de){const qe=ar.current.get(Ve),Tn=jt.current.get(Ve)??Xt.current.get(Ve);if(!qe||!Tn)continue;Ge=!0;const Us=Tn.x*xe.zoom+xe.x,Ro=Tn.y*xe.zoom+xe.y,Hs=(Tn.x+qe.width)*xe.zoom+xe.x,Ao=(Tn.y+qe.height)*xe.zoom+xe.y;if(Hs>0&&Us<Ee&&Ao>0&&Ro<Oe){ze=!0;break}}Ge&&!ze&>(600)},1500);return()=>clearInterval(W)},[e]);const xi=R.useRef(!1),ar=R.useRef(new Map),ts=R.useRef(0),ec=R.useCallback(W=>{const K=ar.current;let le=!1;for(const de of W.nodeInternals.values()){const xe=de.width,Ee=de.height;if(xe==null||Ee==null)continue;const Oe=K.get(de.id);Oe?(Math.abs(Oe.height-Ee)>4||Math.abs(Oe.width-xe)>4)&&(K.set(de.id,{width:xe,height:Ee}),le=!0):(K.set(de.id,{width:xe,height:Ee}),le=!0)}return le&&(ts.current+=1),ts.current},[]),_i=Ke(ec),[He,Da]=R.useState(0);R.useEffect(()=>{let W=0;const K=()=>{const de=ar.current;let xe=!1;for(const Ee of document.querySelectorAll(".react-flow__node[data-id]")){const Oe=Ee.getAttribute("data-id");if(!Oe)continue;const ze=Ee.offsetWidth,Ge=Ee.offsetHeight;if(!ze||!Ge)continue;const Ve=de.get(Oe);(!Ve||Math.abs(Ve.width-ze)>4||Math.abs(Ve.height-Ge)>4)&&(de.set(Oe,{width:ze,height:Ge}),xe=!0)}xe&&Da(Ee=>Ee+1)};if(xi.current)return;let le=0;return document.visibilityState==="hidden"?le=window.setTimeout(K,32):W=requestAnimationFrame(K),()=>{cancelAnimationFrame(W),window.clearTimeout(le)}});const Xt=R.useRef(new Map(Rs.positions)),ko=R.useRef(new Set),bi=R.useRef(""),kr=R.useMemo(()=>{const W=[];for(const K of n.current.agents.values())Iv(K,ct)&&W.push(K.id+(K.parentId?`>${K.parentId}`:""));return W.sort(),`${W.join("|")}#sv${_i}.${He}`},[n.current,n.current.lastSeq,ct,_i,He]),ns=R.useRef(null);R.useEffect(()=>(ns.current!=null&&window.clearTimeout(ns.current),ns.current=window.setTimeout(()=>{cv(Xt.current,jt.current)},1500),()=>{ns.current!=null&&window.clearTimeout(ns.current)}),[kr]),R.useEffect(()=>{if(_o.current===kr)return;const W=_o.current;if(_o.current=kr,!W||gn.current)return;Date.now()-kt.current>1200&>(400),or.current&&window.clearTimeout(or.current),or.current=window.setTimeout(()=>{gn.current||gt(500)},280)},[kr,e,gt]);const Ps=R.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const K of o){const le=O5(n.current,K);if(le)for(const de of le)W.add(de)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),Cn=R.useMemo(()=>J4(n.current,ct),[n.current,n.current.lastSeq,ct]),Bn=R.useRef(null),[vn,Un]=R.useState({w:0,h:0});R.useEffect(()=>{const W=Bn.current;if(!W||typeof ResizeObserver>"u")return;const K=new ResizeObserver(le=>{var xe;const de=(xe=le[0])==null?void 0:xe.contentRect;de&&Un(Ee=>Math.abs(Ee.w-de.width)>40||Math.abs(Ee.h-de.height)>40?{w:de.width,h:de.height}:Ee)});return K.observe(W),Un({w:W.clientWidth,h:W.clientHeight}),()=>K.disconnect()},[]);const Ls=R.useRef(new Map),[rs,lr]=R.useState(!1);R.useEffect(()=>{const W=window.setTimeout(()=>lr(!0),2500);return()=>window.clearTimeout(W)},[]);const[tc,Si]=R.useState(!1),tn=R.useRef(null),[Eo,No]=R.useState(!1),ki=R.useCallback(()=>{tn.current&&(window.clearTimeout(tn.current),tn.current=null),Si(!1)},[]),Fa=R.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{Si(!0),tn.current&&window.clearTimeout(tn.current),tn.current=window.setTimeout(()=>Si(!1),g5+80)})},[]);R.useEffect(()=>()=>{tn.current&&window.clearTimeout(tn.current)},[]);const za=vn.w>0?vn.w*.92:0,ss=vn.h>0?vn.h:0,{nodes:nn,edges:is}=R.useMemo(()=>P5(n.current,ct,za,ss,jt.current,Kt,ar.current,Ls.current,Fa,rs,Eo,Xt.current,ko.current,kr,bi,o,Ps,Cn,b),[n.current,n.current.lastSeq,ct,za,ss,rs,Eo,Kt,kr,o,Ps,Cn,b,Yt]),$s=R.useMemo(()=>{const W=new Map;for(const le of nn){const de=le.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=le.width,Ee=le.height;if(xe==null||Ee==null)continue;const Oe=le.position.x,ze=le.position.y,Ge=Oe+xe,Ve=ze+Ee,qe=W.get(de.sessionId);qe?(qe.minX=Math.min(qe.minX,Oe),qe.minY=Math.min(qe.minY,ze),qe.maxX=Math.max(qe.maxX,Ge),qe.maxY=Math.max(qe.maxY,Ve)):W.set(de.sessionId,{minX:Oe,minY:ze,maxX:Ge,maxY:Ve})}const K=[];for(const[le,de]of W){const xe=de.maxX-de.minX+au*2,Ee=de.maxY-de.minY+au*2;K.push({id:`group:${le}`,type:MT,position:{x:de.minX-au,y:de.minY-au},data:{sessionId:le,w:xe,h:Ee},width:xe,height:Ee,style:{width:xe,height:Ee},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return K},[nn,ct]),nc=R.useMemo(()=>{const W=[...$s,...nn],K=zt.current;return!K||K.size===0?W:W.map(le=>{const de=K.get(le.id);return de?{...le,position:de}:le})},[$s,nn,Fn]),qs=R.useMemo(()=>{if(!Kt)return null;const W=new Set;for(const K of n.current.agents.values())Cn.has(K.id)&&BT(K,Kt)&&W.add(K.id);return W},[n.current,n.current.lastSeq,Kt,Cn]),Hn=R.useMemo(()=>d5(Kt,(qs==null?void 0:qs.size)??0,Cn.size),[Kt,qs,Cn]),Er=R.useMemo(()=>{const W=new Set;for(const K of n.current.agents.values())for(const le of K.tools)W.add(zT(le.name));return Object.keys(Pv).filter(K=>W.has(K))},[n.current,n.current.lastSeq]);R.useEffect(()=>{if(Er.length<=1){kn(!1);return}let W=0;const K=()=>{const le=Sn.current;if(le&&!document.hidden){const de=le.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Oe=>Oe.getBoundingClientRect()),Ee=t5(de,xe,8);kn(Oe=>Oe===Ee?Oe:Ee)}W=window.setTimeout(K,300)};return K(),()=>window.clearTimeout(W)},[Er.length]);const Nr=R.useMemo(()=>{const W=new Map;for(const le of n.current.agents.values())for(const de of le.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ee=xe.indexOf("__"),Oe=Ee>0?xe.slice(0,Ee):xe;W.set(Oe,(W.get(Oe)??0)+1)}const K=[];for(const[le,de]of W){let xe=5381;for(let Ee=0;Ee<le.length;Ee++)xe=(xe<<5)+xe^le.charCodeAt(Ee);K.push({server:le,count:de,hue:Math.abs(xe)%360})}return K.sort((le,de)=>de.count-le.count),K},[n.current,n.current.lastSeq]),Ba=R.useCallback(W=>{nt(K=>{const le=new Set(K);return le.has(W)?le.delete(W):le.add(W),le})},[]),dt=u?n.current.agents.get(u):null,Ds=h?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===h)??null:null,Fs=R.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Cv(),jt.current.clear(),ar.current.clear(),Xt.current.clear(),bi.current="",FE(),m(),i()},[i,m]),Co=R.useRef(S);Co.current=S;const zs=R.useRef(!1);zs.current=Ds!=null||wt||N!=null||y!=null;const Cr=R.useCallback(W=>{const K=K3(W,{confirmOpen:Co.current,modalOpen:zs.current});K==="confirm"?k(!0):K==="clear"&&(k(!1),Fs())},[Fs]),Ei=R.useCallback(()=>{jt.current.clear(),Xt.current.clear(),bi.current="",FE(),i(),window.setTimeout(()=>gt(500),80)},[i,e,gt]),Bt=R.useCallback(()=>gt(500),[gt]),Wn=R.useRef(nn);Wn.current=nn;const Ni=R.useRef(u);Ni.current=u;const Tr=R.useCallback(W=>{const K=Wn.current,le=Q3(K.map(Ee=>({id:Ee.id,x:Ee.position.x,y:Ee.position.y})),Ni.current,W),de=le?K.find(Ee=>Ee.id===le):void 0;if(!de)return;const xe=IE(document.activeElement);d(de.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[de]})}catch{}kt.current=Date.now(),xe&&m5(de.id)},30)},[d,e]),Ua=R.useCallback(W=>{d(W,!1),window.setTimeout(()=>{try{const K=Wn.current.find(le=>le.id===W);K&&e.fitView({padding:.3,duration:500,nodes:[K]}),kt.current=Date.now()}catch{}},60)},[d,e]);R.useEffect(()=>{const W=K=>{var ze,Ge,Ve;const le=K.target,de={tagName:le==null?void 0:le.tagName,isContentEditable:le==null?void 0:le.isContentEditable,role:(ze=le==null?void 0:le.getAttribute)==null?void 0:ze.call(le,"role"),type:le==null?void 0:le.type};if(K.key==="Escape"){const qe=OP({overlayOpen:Eu.depth()>0,typing:ny(de)});qe==="dismiss"?Eu.dismissTop():qe==="blur"?le==null||le.blur():(t$(de)&&(le==null||le.blur()),m());return}if(wC(K))return;const xe=IE(le)?(Ge=le==null?void 0:le.getAttribute)==null?void 0:Ge.call(le,"data-id"):null,Ee=xe&&Wn.current.some(qe=>qe.id===xe)?xe:null,Oe=J3(K,Ee);if(Oe.kind==="activate"){K.preventDefault(),d(Oe.nodeId,Oe.additive);return}if(Oe.kind!=="node"&&!(Oe.nodeId==null&&BP(de))){if(K.key==="/"){K.preventDefault(),(Ve=Jr.current)==null||Ve.focus();return}K.key===" "&&(K.preventDefault(),Vr()),(K.key==="c"||K.key==="C")&&Cr("shortcut"),(K.key==="r"||K.key==="R")&&Ei(),(K.key==="f"||K.key==="F")&&Bt(),(K.key==="l"||K.key==="L")&&St(),(K.key==="h"||K.key==="H")&&hn(qe=>!qe),(K.key==="u"||K.key==="U")&&z(qe=>!qe),(K.key==="a"||K.key==="A")&&Be.current.claude&&mt(),(K.key==="j"||K.key==="J")&&Tr(1),(K.key==="k"||K.key==="K")&&Tr(-1),(K.key==="t"||K.key==="T")&&Qr(qe=>qe==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[Cr,Ei,Bt,m,d,Tr,Vr]);const jr=n.current.agents.size,To=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,Qt=R.useMemo(()=>QL(n.current.agents.values()),[n.current,n.current.lastSeq]),Bs=R.useMemo(()=>ZL(n.current.agents.values()),[n.current,n.current.lastSeq]),jo=R.useRef(null);R.useEffect(()=>{const W=m$({waiting:Qt.length,running:Bs}),K=jo.current;if(jo.current=W,(K==null?void 0:K.title)!==W.title&&(document.title=W.title),(K==null?void 0:K.icon)!==W.icon){const le=document.querySelector('link[rel="icon"]');le&&(le.href=g$[W.icon])}},[Qt.length,Bs]);const[rc,sc]=R.useState(""),Ha=y$(Qt);R.useEffect(()=>{sc(W=>w$(W,Ha))},[Ha]);const Ut=R.useMemo(()=>{let W=0,K=0,le=0,de=0,xe=0,Ee=0,Oe=0,ze=0,Ge=0;for(const Ve of n.current.agents.values()){W+=Ve.usage.inputTokens,K+=Ve.usage.outputTokens,le+=Ve.usage.cacheReadTokens,de+=Ve.usage.cacheCreateTokens;const qe=dn(Ve.usage,Ve.model);xe+=qe.total,Ee+=qe.input,Oe+=qe.output,ze+=qe.cacheRead,Ge+=qe.cacheWrite}return{inT:W,outT:K,cacheR:le,cacheC:de,sum:W+K,cost:{total:xe,input:Ee,output:Oe,cacheRead:ze,cacheWrite:Ge}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsx("a",{className:"skip-link",href:"#canvas",children:"Skip to the canvas"}),g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),g.jsx("h1",{children:en}),ye?g.jsxs("button",{type:"button",className:"v stale",onClick:Ze,"aria-label":o5({...ye,open:pt}),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 W={running:(Y==null?void 0:Y.running)??"1.35.9",latest:Y==null?void 0:Y.latest,latestPending:Y==null?void 0:Y.latestPending,checkedAgo:Y!=null&&Y.checkedAt?Ov(ct-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":i5(W),title:s5(W),children:["v",W.running]})})()]}),dt&&(()=>{const W=dn(dt.usage,dt.model),K=Math.max(0,((dt.endedAt??ct)-dt.startedAt)/1e3),le=dt.state==="active"?ku(W.total,K):null,de=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${dt.label}`,onClick:()=>{try{const xe=nn.find(Ee=>Ee.id===dt.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),kt.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${dt.state}`,children:dt.state==="active"?"live":dt.state}),g.jsx("span",{className:"selected-label",children:dt.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[De(W.total),le?g.jsxs("span",{className:"selected-rate",children:[" · ",le]}):null]}),de>0&&g.jsxs("span",{className:"selected-extra",children:["+",de]}),g.jsx("span",{"aria-hidden":!0,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:Jr,type:"text",placeholder:"Search agents, cwd, tools…",value:Kt,onChange:W=>Xr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Kt?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Xr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),Hn.count&&g.jsx("span",{className:`search-count${Hn.empty?" none":""}`,"aria-live":"polite",title:`${Hn.count} agents on the canvas match “${Kt}”`,children:Hn.count})]}),g.jsxs("span",{className:"status",children:[(()=>{const W=u5({connected:M,paused:Wr,held:vr.current.size});return g.jsx("span",{className:`pill ${W.tone}`,title:W.title,children:W.label})})(),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:To}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:jr}),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"})]}),Ut.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Ut.inT.toLocaleString()} out:${Ut.outT.toLocaleString()} cache-r:${Ut.cacheR.toLocaleString()} cache-c:${Ut.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:qt(Ut.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Nr.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
66
|
+
last 5h: ${qt(d.window5h.totalTokens)} tokens · ${d.window5h.sessionCount} session${d.window5h.sessionCount!==1?"s":""}`:""}`,children:[qt(d.window7d.totalTokens)," tokens · ",d.window7d.sessionCount," session",d.window7d.sessionCount!==1?"s":""," (7d)"]})]}),E>0?g.jsxs(g.Fragment,{children:[k&&g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:De(N.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(n3,{cost:N})]}),g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),qt(_.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),qt(_.out)]}),_.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),qt(_.cacheR)]}),_.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),qt(_.cacheC)]})]}),T.length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h3",{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:T.map(C=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:C.model===Ud?"no model reported yet":C.model,children:C.model===Ud?"unknown":di(C.model)}),g.jsx("td",{className:"up-num",children:qt(C.inputTokens+C.outputTokens)}),C.priced?g.jsx("td",{className:"up-num up-cost-val",children:De(C.cost.total)}):g.jsx("td",{className:"up-num up-unpriced",children:fu})]},C.model))})]})]}),I.length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h3",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:I.map(C=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${C.state}`,"aria-hidden":!0}),g.jsx("span",{className:"vis-hidden",children:ry(C.state)}),g.jsx("span",{className:"up-session-label",children:C.label}),g.jsx("span",{className:"up-session-tokens",children:qt(C.inputTokens+C.outputTokens)}),C.cost>0?g.jsxs("span",{className:"up-session-cost",title:C.unpricedTokens>0?`${qt(C.unpricedTokens)} tokens in this session are on an unpriced model, so this is a floor`:void 0,children:[De(C.cost),C.unpricedTokens>0?"+":""]}):g.jsx("span",{className:"up-session-cost up-unpriced",children:fu})]},C.sessionId))})]}),O&&g.jsxs("div",{className:"up-hint",children:["“",fu,"” means this build holds no published rate for that model — those tokens are counted above and their dollars are not."]})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const e_=18,d3=1100,Ji=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},f3=Array.from({length:e_},(e,n)=>{const r=-72+144*n/(e_-1)+(Ji(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Ji(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+Ji(n,3)*260),delay:Math.round(Ji(n,4)*90),dur:760+Math.round(Ji(n,5)*260),scale:.8+Ji(n,6)*.45,hue:n%4,round:n%3===0}});function t_({anchor:e,lifetimeMs:n=d3}){var l;const[r,i]=R.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return R.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:UI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:f3.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 TC=new Set(["awaiting_url","awaiting_code","registering"]);function h3(e){return e!=null&&TC.has(e)}function jC(e){return e!=null&&e!=="done"&&!TC.has(e)}const p3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",m3="the sign-in did not complete";function g3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?p3:m3)}}const v3="done";function y3(){let e=!1;return{shouldAnnounce(n){return n!==v3?(e=!1,!1):e?!1:(e=!0,!0)}}}const n_={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 ${en}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import",bad_value:"an alias can only use letters, numbers, spaces, dots, dashes and underscores, up to 64 characters"},r_={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"},w3=`claude-swap could not read the login keychain — start ${en} from a Terminal window rather than a background service`;function Rv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(ho(e))?w3:e!=null&&e.reason&&r_[e.reason]?r_[e.reason]:(e==null?void 0:e.reason)||n}function ho(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const s_={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"},x3="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 _3(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function b3(e,n){return _3(ho(e))?x3:e!=null&&e.reason&&s_[e.reason]?s_[e.reason]:(e==null?void 0:e.reason)||n}function hu(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&jC(e.state)?e.error:e!=null&&e.reason&&n_[e.reason]?n_[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const S3=1500;async function nu(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const Av=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"})]}));Av.displayName="SuccessMark";function k3({onClose:e,onChanged:n}){const[r,i]=R.useState("login"),[o,l]=R.useState(null),[u,c]=R.useState(""),[h,p]=R.useState(""),[d,m]=R.useState(!1),[y,w]=R.useState(null),[N,_]=R.useState(null),b=R.useRef(!1),S=R.useRef(null),k=R.useRef(null),E=R.useRef(null),T=R.useRef(null),I=R.useCallback(()=>{b.current&&nu({action:"login-cancel"}).catch(()=>{}),e()},[e]),O=mo(I,{focusRef:E}),A=R.useCallback(async()=>{m(!0),w(null),b.current=!0;const q=await nu({action:"login"}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"could not start the sign-in"));return}l(q)},[]);R.useEffect(()=>{if(!h3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const L=await fetch("/api/claude-accounts/login");L.ok&&l(await L.json())}catch{}},S3);return()=>window.clearInterval(q)},[o]);const U=R.useRef(n);U.current=n;const z=R.useRef(y3());R.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=S.current)==null||q.focus()),z.current.shouldAnnounce(o==null?void 0:o.state)&&U.current()},[o==null?void 0:o.state]),R.useEffect(()=>{var q;r==="paste"&&((q=k.current)==null||q.focus())},[r]);const P=R.useCallback(async()=>{var L;m(!0),w(null);const q=await nu({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"the code was not accepted")),q!=null&&q.state&&l(q),(L=S.current)==null||L.select();return}c(""),l(q)},[u,o]),D=R.useCallback(async()=>{m(!0),w(null);const q=await nu({action:"import",blob:h}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"the import failed"));return}p(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[h,n]),V=(o==null?void 0:o.state)==="done"?o.account:null,B=jC(o==null?void 0:o.state)||!!(y&&b.current&&!d),C=g3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:I,role:"presentation",children:g.jsxs("div",{ref:O,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:I,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?V?g.jsxs("div",{className:"aa-done",children:[g.jsx(Av,{ref:T}),g.jsx(t_,{anchor:T}),g.jsx("h4",{children:V.added?`Account ${V.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:V.email}),V.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:S,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!d&&P()},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:P,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."})]})]}):B?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:C.title}),g.jsx("p",{className:"aa-err",children:C.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{b.current=!1,l(null),w(null),A()},children:"Try again"})]}):d||b.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",ref:E,className:"btn primary",onClick:A,disabled:d,children:"Open the sign-in page"})})]}):N?g.jsxs("div",{className:"aa-done",children:[g.jsx(Av,{ref:T}),N.added&&g.jsx(t_,{anchor:T}),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&&D()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!h.trim(),onClick:D,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 E3(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 N3(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}}const C3=64;function T3(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const j3=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function i_(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function R3(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=ho(n.body);return{text:Rv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function o_(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 a_=15e3,A3=8e3,I3=1800,M3=3e4,O3=[70,80,85,90,95];function P3(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 l_(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 L3(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 $3(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 q3({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?P3(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 D3(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 F3(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 z3({onClose:e}){var ne,oe,fe;const[n,r]=R.useState(null),[i,o]=R.useState(null),[l,u]=R.useState(null),[c,h]=R.useState(!1),[p,d]=R.useState(null),[m,y]=R.useState(null),[w,N]=R.useState(()=>Math.floor(Date.now()/1e3)),_=R.useRef(null),[b,S]=R.useState(null),[k,E]=R.useState(!1),[T,I]=R.useState(""),[O,A]=R.useState(null),[U,z]=R.useState(null),[P,D]=R.useState(null),[V,B]=R.useState(!1),[C,q]=R.useState(null),L=R.useCallback(async(te=!1)=>{te&&h(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),M3);try{const[ve,Re]=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()),Re.ok&&o(await Re.json());const ye=R3([await i_(ve),await i_(Re)]);y(ke=>o_(ke,ye))}catch{y(ve=>o_(ve,j3))}finally{window.clearTimeout(Ce),te&&h(!1)}},[]),re=R.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:Rv(ve,"command failed"),raw:ho(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=R.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:hu(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);R.useEffect(()=>(L(!0),_.current=window.setInterval(()=>L(!1),a_),()=>{_.current!=null&&window.clearInterval(_.current)}),[L]),R.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const H=((ne=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:ne.value)??"90",J=(oe=n==null?void 0:n.accounts)==null?void 0:oe.find(te=>te.active),M=J!=null&&J.lanes.length?Math.max(...J.lanes.map(te=>te.pct)):null,G=M!=null&&M>=Number(H)-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:Rv(Ce,"the switch failed"),raw:ho(Ce)}),await L(!0)}catch{y({text:"server unreachable"})}finally{d(null)}},$=async(te,ce)=>{const{commit:Ce,alias:ve}=T3(T,ce);if(Ce){const Re=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await L(!0),!(Re!=null&&Re.ok))return;I(ve)}A(te),window.setTimeout(()=>A(Re=>Re===te?null:Re),I3)},Q=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=N3({menuFor:b,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await L(!0),ve){S(ve.menuFor),z(ve.confirmRemove),ve.shareFor==null&&(D(null),B(!1)),q(ve.swapNote);const Re=ve.swapNote;Re&&window.setTimeout(()=>q(ye=>ye===Re?null:ye),A3)}};return g.jsxs("aside",{className:"accounts-panel",id:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h2",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>E(!0),"aria-label":"Add an account",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:()=>L(!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 ",a_/1e3," seconds."]}),g.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>L(!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",title:te.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${b===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":b===te.num,"aria-controls":b===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{S(b===te.num?null:te.num),I(te.alias??""),z(null),D(null),B(!1),q(null),A(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(q3,{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=$3(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:()=>re({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>L(!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 ",l_(te.fetchedAt,w),L3(te.nextAt,w)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),b===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:"vis-hidden",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),g.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:T,onChange:ce=>I(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&$(te.num,te.alias)},maxLength:C3,placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>$(te.num,te.alias),title:"A short name to show instead of the email",children:O===te.num?"saved":"save"})]}),g.jsxs("div",{className:"ap-manage-acts",children:[g.jsx("label",{className:"vis-hidden",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=>Q(te.num,Number(ce.target.value)),children:E3((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 ${en}. Anyone who has the text can use the account — treat it as the password. The other deck stops accepting it after 10 minutes; that does not make an escaped copy safe.`,onClick:async()=>{B(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&D({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${U===te.num?" armed":""}`,disabled:l!=null,title:U===te.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(U!==te.num){z(te.num),window.setTimeout(()=>z(ce=>ce===te.num?null:ce),4e3);return}z(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{S(null),L(!0)})},children:U===te.num?"confirm":"remove"})]}),(C==null?void 0:C.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(Re=>Re.num===C.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 ${C.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${C.displaced}.`,children:["swapped with slot ",C.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=F3(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){B(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&D({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await D3(P.blob)&&(B(!0),window.setTimeout(()=>B(!1),1800))},children:Ce?"make a new share":V?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",title:"This text is the account's password. It is base64 of plain JSON — the expiry inside it is not signed, so anyone holding a copy can change it, and the login itself is in there in the clear either way. The countdown only says how long another deck's import dialog will still accept it. If a copy escapes, sign the account out and back in.",children:[g.jsx("span",{className:"ap-share-warn",children:"this is the password"})," · ",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:[M!=null&&g.jsxs("span",{className:`ap-auto-now${G?" near":""}`,children:[Math.round(M),"%"]}),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:H,disabled:l!=null,onChange:te=>re({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>L(!0)),children:O3.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:()=>re({action:"enable",enabled:!i.enabled},"enable").then(()=>L(!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 ",l_(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(k3,{onClose:()=>E(!1),onChanged:()=>L(!0)})]})}const B3=3e4;function U3({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function H3({bundle:e,running:n,pending:r,lastTried:i}){return n?U3({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function W3(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function V3({asked:e,reported:n}){return n?n!==e:!1}function G3(e){const n=e.thresholdMs??B3;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 Y3({agentCount:e,onConfirm:n,onCancel:r}){const i=R.useRef(null),o=mo(r,{focusRef:i,layer:IP}),l=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",{ref:o,className:"modal clear-confirm",onClick:u=>u.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:[l," — 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 K3(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function X3(e){return e.slice().sort((n,r)=>n.y-r.y||n.x-r.x)}function Q3(e,n,r){var u;if(e.length===0)return null;const i=X3(e),o=n?i.findIndex(c=>c.id===n):-1,l=o===-1?r===1?0:i.length-1:(o+r+i.length)%i.length;return((u=i[l])==null?void 0:u.id)??null}const Z3=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Escape","Delete","Backspace"]);function J3(e,n){return n==null?{kind:"deck",nodeId:null}:e.key==="Enter"||e.key===" "?{kind:"activate",nodeId:n,additive:e.shiftKey}:Z3.has(e.key)?{kind:"node",nodeId:n}:{kind:"deck",nodeId:n}}const e$=new Set(["","BODY","HTML","#DOCUMENT"]);function t$(e){return!e||ny(e)?!1:!e$.has(String(e.tagName??"").toUpperCase())}function ru(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function n$(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function RC(e,n,r){return!n.has(e)||r.has(e)}function r$(e,n,r,i){return!n.has(e)&&RC(e,r,i)}function s$(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function i$(e,n,r,i){r.set(e,n),i.delete(e)}const o$=40,a$=120;function l$(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=o$){const p=n.now(),d=Math.max(o+h,p);if(d<=p){u(),l();return}c(d,p,h)},replay(h=a$){u(),i=n.now()+h,r=n.setTimeout(l,h)},flush(){u(),l()},cancel(){u()}}}function u$(){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 c$="1",u_="agent-dag.schema",d$=["agent-dag.layout","agent-dag.viewport"];function AC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function f$(e,n=c$){let r=null;try{r=e.getItem(u_)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of d$)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(u_,n)}catch{}return i}const IC="agent-dag.theme";function h$(e){return e==="light"?"light":"dark"}function p$(){return h$(AC(IC))}function m$({waiting:e,running:n}){return{title:e>0?`(${e}) ${en}`:en,icon:e>0?"waiting":n>0?"running":"idle"}}const Hd={waiting:"#c97d12",running:"#2a90d4",idle:"#7e828c"};function Wd(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 g$=Object.freeze({waiting:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.waiting,"waiting"))}`,running:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.running,"running"))}`,idle:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.idle,"idle"))}`}),v$="No sessions are waiting for you.";function y$(e){if(e.length===0)return"";const[n,...r]=e;if(r.length===0)return`${n.label} is waiting for your permission.`;const i=`${r.length} more session${r.length===1?"":"s"}`;return`${n.label} and ${i} are waiting for your permission.`}function w$(e,n){return n!==""?n:e===""?"":v$}function x$(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function _$(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function b$(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 su(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 S$=[7,14,30,90];function k$(e){const[n,r]=R.useState(null),[i,o]=R.useState(!1),l=R.useRef(x$()).current,u=(c=!1)=>{const h=l.begin(),p=e;o(!0);const m=`/api/ccusage?since=${_$(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 R.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function E$({onClose:e}){var T,I,O;const[n,r]=R.useState(30),[i,o]=R.useState(null),{landed:l,loading:u,reload:c}=k$(n),h=R.useRef(null),p=mo(e,{focusRef:h}),d=b$({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((T=l.resp.days)==null?void 0:T.length)??0}}),m=d.phase==="chart"?l.resp.days??[]:[],y=R.useMemo(()=>m.reduce((A,U)=>Math.max(A,U.totalCost),0),[m]),{totalCost:w,totalTok:N,inOut:_,cacheRead:b,modelCosts:S}=R.useMemo(()=>{let A=0,U=0,z=0,P=0;const D=new Map;for(const V of m){A+=V.totalCost,U+=V.totalTokens,z+=V.inputTokens+V.outputTokens,P+=V.cacheReadTokens;for(const B of V.modelBreakdowns)D.set(B.modelName,(D.get(B.modelName)??0)+B.cost)}return{totalCost:A,totalTok:U,inOut:z,cacheRead:P,modelCosts:D}},[m]),k=R.useMemo(()=>Array.from(S.entries()).sort((A,U)=>U[1]-A[1]),[S]),E=i?m.find(A=>A.period===i)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{ref:p,className:"uh-modal",onClick:A=>A.stopPropagation(),role:"dialog","aria-modal":"true","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:"group","aria-label":"Range",children:S$.map(A=>g.jsxs("button",{type:"button","aria-pressed":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",{ref:h,className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),d.phase==="busy"?g.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):d.phase==="error"?g.jsxs("div",{className:"uh-status uh-err",title:ho(l.resp)||void 0,children:[b3(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"})})]}):d.phase==="empty"?g.jsx("div",{className:`uh-status${d.stale?" uh-stale":""}`,"aria-busy":d.stale||void 0,children:"no usage in this range"}):g.jsxs("div",{className:d.stale?"uh-stale":void 0,"aria-busy":d.stale||void 0,children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(iu,{label:"total cost",val:De(w),accent:!0}),g.jsx(iu,{label:"tokens",val:qt(N)}),g.jsx(iu,{label:"input+output",val:qt(_)}),g.jsx(iu,{label:"cache reads",val:qt(b)})]}),g.jsx("div",{className:"uh-chart",role:"group","aria-label":"Daily cost by model",children:m.map(A=>{const U=y>0?A.totalCost/y*100:0,z=A.period===i,P=`${A.period}, ${De(A.totalCost)}`;return g.jsxs("button",{className:`uh-bar-col${z?" sel":""}`,onClick:()=>o(z?null:A.period),"aria-pressed":z,"aria-label":P,title:`${A.period} · ${De(A.totalCost)}`,style:{flexBasis:`${100/m.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(U,A.totalCost>0?2:0)}%`},children:A.modelBreakdowns.slice().sort((D,V)=>V.cost-D.cost).map(D=>{const V=A.totalCost>0?D.cost/A.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${V}%`,background:su(D.modelName)}},D.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:A.period.slice(5)})]},A.period)})}),g.jsx("div",{className:"uh-legend",children:k.map(([A,U])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:su(A)}}),di(A)," ",g.jsx("span",{className:"uh-legend-cost",children:De(U)})]},A))}),E&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:E.period}),g.jsx("span",{className:"uh-detail-cost",children:De(E.totalCost)}),(O=(I=E.metadata)==null?void 0:I.agents)!=null&&O.length?g.jsx("span",{className:"uh-detail-agents",children:E.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(ou,{label:"input",val:qt(E.inputTokens)}),g.jsx(ou,{label:"output",val:qt(E.outputTokens)}),g.jsx(ou,{label:"cache write",val:qt(E.cacheCreationTokens)}),g.jsx(ou,{label:"cache read",val:qt(E.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:E.modelBreakdowns.slice().sort((A,U)=>U.cost-A.cost).map(A=>{const U=E.totalCost>0?A.cost/E.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:su(A.modelName)}}),di(A.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${U}%`,background:su(A.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:De(A.cost)})]},A.modelName)})})]})]})]})})}function iu({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 ou({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 iy(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 Vd,c_;function N$(){if(c_)return Vd;c_=1;function e(){this.__data__=[],this.size=0}return Vd=e,Vd}var Gd,d_;function go(){if(d_)return Gd;d_=1;function e(n,r){return n===r||n!==n&&r!==r}return Gd=e,Gd}var Yd,f_;function Lu(){if(f_)return Yd;f_=1;var e=go();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Yd=n,Yd}var Kd,h_;function C$(){if(h_)return Kd;h_=1;var e=Lu(),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 Kd=i,Kd}var Xd,p_;function T$(){if(p_)return Xd;p_=1;var e=Lu();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return Xd=n,Xd}var Qd,m_;function j$(){if(m_)return Qd;m_=1;var e=Lu();function n(r){return e(this.__data__,r)>-1}return Qd=n,Qd}var Zd,g_;function R$(){if(g_)return Zd;g_=1;var e=Lu();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 Zd=n,Zd}var Jd,v_;function $u(){if(v_)return Jd;v_=1;var e=N$(),n=C$(),r=T$(),i=j$(),o=R$();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,Jd=l,Jd}var ef,y_;function A$(){if(y_)return ef;y_=1;var e=$u();function n(){this.__data__=new e,this.size=0}return ef=n,ef}var tf,w_;function I$(){if(w_)return tf;w_=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return tf=e,tf}var nf,x_;function M$(){if(x_)return nf;x_=1;function e(n){return this.__data__.get(n)}return nf=e,nf}var rf,__;function O$(){if(__)return rf;__=1;function e(n){return this.__data__.has(n)}return rf=e,rf}var sf,b_;function MC(){if(b_)return sf;b_=1;var e=typeof Ul=="object"&&Ul&&Ul.Object===Object&&Ul;return sf=e,sf}var of,S_;function sr(){if(S_)return of;S_=1;var e=MC(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return of=r,of}var af,k_;function vo(){if(k_)return af;k_=1;var e=sr(),n=e.Symbol;return af=n,af}var lf,E_;function P$(){if(E_)return lf;E_=1;var e=vo(),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 lf=l,lf}var uf,N_;function L$(){if(N_)return uf;N_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return uf=r,uf}var cf,C_;function fi(){if(C_)return cf;C_=1;var e=vo(),n=P$(),r=L$(),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 cf=u,cf}var df,T_;function qn(){if(T_)return df;T_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return df=e,df}var ff,j_;function Aa(){if(j_)return ff;j_=1;var e=fi(),n=qn(),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 ff=u,ff}var hf,R_;function $$(){if(R_)return hf;R_=1;var e=sr(),n=e["__core-js_shared__"];return hf=n,hf}var pf,A_;function q$(){if(A_)return pf;A_=1;var e=$$(),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 pf=r,pf}var mf,I_;function OC(){if(I_)return mf;I_=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 mf=r,mf}var gf,M_;function D$(){if(M_)return gf;M_=1;var e=Aa(),n=q$(),r=qn(),i=OC(),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 gf=m,gf}var vf,O_;function F$(){if(O_)return vf;O_=1;function e(n,r){return n==null?void 0:n[r]}return vf=e,vf}var yf,P_;function hi(){if(P_)return yf;P_=1;var e=D$(),n=F$();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return yf=r,yf}var wf,L_;function oy(){if(L_)return wf;L_=1;var e=hi(),n=sr(),r=e(n,"Map");return wf=r,wf}var xf,$_;function qu(){if($_)return xf;$_=1;var e=hi(),n=e(Object,"create");return xf=n,xf}var _f,q_;function z$(){if(q_)return _f;q_=1;var e=qu();function n(){this.__data__=e?e(null):{},this.size=0}return _f=n,_f}var bf,D_;function B$(){if(D_)return bf;D_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return bf=e,bf}var Sf,F_;function U$(){if(F_)return Sf;F_=1;var e=qu(),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 Sf=o,Sf}var kf,z_;function H$(){if(z_)return kf;z_=1;var e=qu(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return kf=i,kf}var Ef,B_;function W$(){if(B_)return Ef;B_=1;var e=qu(),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 Ef=r,Ef}var Nf,U_;function V$(){if(U_)return Nf;U_=1;var e=z$(),n=B$(),r=U$(),i=H$(),o=W$();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,Nf=l,Nf}var Cf,H_;function G$(){if(H_)return Cf;H_=1;var e=V$(),n=$u(),r=oy();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return Cf=i,Cf}var Tf,W_;function Y$(){if(W_)return Tf;W_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Tf=e,Tf}var jf,V_;function Du(){if(V_)return jf;V_=1;var e=Y$();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return jf=n,jf}var Rf,G_;function K$(){if(G_)return Rf;G_=1;var e=Du();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return Rf=n,Rf}var Af,Y_;function X$(){if(Y_)return Af;Y_=1;var e=Du();function n(r){return e(this,r).get(r)}return Af=n,Af}var If,K_;function Q$(){if(K_)return If;K_=1;var e=Du();function n(r){return e(this,r).has(r)}return If=n,If}var Mf,X_;function Z$(){if(X_)return Mf;X_=1;var e=Du();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 Mf=n,Mf}var Of,Q_;function ay(){if(Q_)return Of;Q_=1;var e=G$(),n=K$(),r=X$(),i=Q$(),o=Z$();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,Of=l,Of}var Pf,Z_;function J$(){if(Z_)return Pf;Z_=1;var e=$u(),n=oy(),r=ay(),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 Pf=o,Pf}var Lf,J_;function Fu(){if(J_)return Lf;J_=1;var e=$u(),n=A$(),r=I$(),i=M$(),o=O$(),l=J$();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,Lf=u,Lf}var $f,e1;function ly(){if(e1)return $f;e1=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 $f=e,$f}var qf,t1;function PC(){if(t1)return qf;t1=1;var e=hi(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return qf=n,qf}var Df,n1;function zu(){if(n1)return Df;n1=1;var e=PC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return Df=n,Df}var Ff,r1;function Bu(){if(r1)return Ff;r1=1;var e=zu(),n=go(),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 Ff=o,Ff}var zf,s1;function Ia(){if(s1)return zf;s1=1;var e=Bu(),n=zu();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 zf=r,zf}var Bf,i1;function eq(){if(i1)return Bf;i1=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return Bf=e,Bf}var Uf,o1;function mr(){if(o1)return Uf;o1=1;function e(n){return n!=null&&typeof n=="object"}return Uf=e,Uf}var Hf,a1;function tq(){if(a1)return Hf;a1=1;var e=fi(),n=mr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Hf=i,Hf}var Wf,l1;function Ma(){if(l1)return Wf;l1=1;var e=tq(),n=mr(),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 Wf=l,Wf}var Vf,u1;function bt(){if(u1)return Vf;u1=1;var e=Array.isArray;return Vf=e,Vf}var ca={exports:{}},Gf,c1;function nq(){if(c1)return Gf;c1=1;function e(){return!1}return Gf=e,Gf}ca.exports;var d1;function yo(){return d1||(d1=1,(function(e,n){var r=sr(),i=nq(),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})(ca,ca.exports)),ca.exports}var Yf,f1;function Uu(){if(f1)return Yf;f1=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 Yf=r,Yf}var Kf,h1;function uy(){if(h1)return Kf;h1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return Kf=n,Kf}var Xf,p1;function rq(){if(p1)return Xf;p1=1;var e=fi(),n=uy(),r=mr(),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]",b="[object ArrayBuffer]",S="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",T="[object Int8Array]",I="[object Int16Array]",O="[object Int32Array]",A="[object Uint8Array]",U="[object Uint8ClampedArray]",z="[object Uint16Array]",P="[object Uint32Array]",D={};D[k]=D[E]=D[T]=D[I]=D[O]=D[A]=D[U]=D[z]=D[P]=!0,D[i]=D[o]=D[b]=D[l]=D[S]=D[u]=D[c]=D[h]=D[p]=D[d]=D[m]=D[y]=D[w]=D[N]=D[_]=!1;function V(B){return r(B)&&n(B.length)&&!!D[e(B)]}return Xf=V,Xf}var Qf,m1;function Hu(){if(m1)return Qf;m1=1;function e(n){return function(r){return n(r)}}return Qf=e,Qf}var da={exports:{}};da.exports;var g1;function cy(){return g1||(g1=1,(function(e,n){var r=MC(),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})(da,da.exports)),da.exports}var Zf,v1;function Oa(){if(v1)return Zf;v1=1;var e=rq(),n=Hu(),r=cy(),i=r&&r.isTypedArray,o=i?n(i):e;return Zf=o,Zf}var Jf,y1;function LC(){if(y1)return Jf;y1=1;var e=eq(),n=Ma(),r=bt(),i=yo(),o=Uu(),l=Oa(),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,b=_?e(p.length,String):[],S=b.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,S)))&&b.push(k);return b}return Jf=h,Jf}var eh,w1;function Wu(){if(w1)return eh;w1=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return eh=n,eh}var th,x1;function $C(){if(x1)return th;x1=1;function e(n,r){return function(i){return n(r(i))}}return th=e,th}var nh,_1;function sq(){if(_1)return nh;_1=1;var e=$C(),n=e(Object.keys,Object);return nh=n,nh}var rh,b1;function dy(){if(b1)return rh;b1=1;var e=Wu(),n=sq(),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 rh=o,rh}var sh,S1;function Ur(){if(S1)return sh;S1=1;var e=Aa(),n=uy();function r(i){return i!=null&&n(i.length)&&!e(i)}return sh=r,sh}var ih,k1;function Ns(){if(k1)return ih;k1=1;var e=LC(),n=dy(),r=Ur();function i(o){return r(o)?e(o):n(o)}return ih=i,ih}var oh,E1;function iq(){if(E1)return oh;E1=1;var e=Ia(),n=Ns();function r(i,o){return i&&e(o,n(o),i)}return oh=r,oh}var ah,N1;function oq(){if(N1)return ah;N1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return ah=e,ah}var lh,C1;function aq(){if(C1)return lh;C1=1;var e=qn(),n=Wu(),r=oq(),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 lh=l,lh}var uh,T1;function pi(){if(T1)return uh;T1=1;var e=LC(),n=aq(),r=Ur();function i(o){return r(o)?e(o,!0):n(o)}return uh=i,uh}var ch,j1;function lq(){if(j1)return ch;j1=1;var e=Ia(),n=pi();function r(i,o){return i&&e(o,n(o),i)}return ch=r,ch}var fa={exports:{}};fa.exports;var R1;function qC(){return R1||(R1=1,(function(e,n){var r=sr(),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})(fa,fa.exports)),fa.exports}var dh,A1;function DC(){if(A1)return dh;A1=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 dh=e,dh}var fh,I1;function FC(){if(I1)return fh;I1=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 fh=e,fh}var hh,M1;function zC(){if(M1)return hh;M1=1;function e(){return[]}return hh=e,hh}var ph,O1;function fy(){if(O1)return ph;O1=1;var e=FC(),n=zC(),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 ph=l,ph}var mh,P1;function uq(){if(P1)return mh;P1=1;var e=Ia(),n=fy();function r(i,o){return e(i,n(i),o)}return mh=r,mh}var gh,L1;function hy(){if(L1)return gh;L1=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 gh=e,gh}var vh,$1;function Vu(){if($1)return vh;$1=1;var e=$C(),n=e(Object.getPrototypeOf,Object);return vh=n,vh}var yh,q1;function BC(){if(q1)return yh;q1=1;var e=hy(),n=Vu(),r=fy(),i=zC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return yh=l,yh}var wh,D1;function cq(){if(D1)return wh;D1=1;var e=Ia(),n=BC();function r(i,o){return e(i,n(i),o)}return wh=r,wh}var xh,F1;function UC(){if(F1)return xh;F1=1;var e=hy(),n=bt();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return xh=r,xh}var _h,z1;function HC(){if(z1)return _h;z1=1;var e=UC(),n=fy(),r=Ns();function i(o){return e(o,r,n)}return _h=i,_h}var bh,B1;function dq(){if(B1)return bh;B1=1;var e=UC(),n=BC(),r=pi();function i(o){return e(o,r,n)}return bh=i,bh}var Sh,U1;function fq(){if(U1)return Sh;U1=1;var e=hi(),n=sr(),r=e(n,"DataView");return Sh=r,Sh}var kh,H1;function hq(){if(H1)return kh;H1=1;var e=hi(),n=sr(),r=e(n,"Promise");return kh=r,kh}var Eh,W1;function WC(){if(W1)return Eh;W1=1;var e=hi(),n=sr(),r=e(n,"Set");return Eh=r,Eh}var Nh,V1;function pq(){if(V1)return Nh;V1=1;var e=hi(),n=sr(),r=e(n,"WeakMap");return Nh=r,Nh}var Ch,G1;function wo(){if(G1)return Ch;G1=1;var e=fq(),n=oy(),r=hq(),i=WC(),o=pq(),l=fi(),u=OC(),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),b=u(i),S=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 T=l(E),I=T==h?E.constructor:void 0,O=I?u(I):"";if(O)switch(O){case w:return y;case N:return c;case _:return p;case b:return d;case S:return m}return T}),Ch=k,Ch}var Th,Y1;function mq(){if(Y1)return Th;Y1=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 Th=r,Th}var jh,K1;function VC(){if(K1)return jh;K1=1;var e=sr(),n=e.Uint8Array;return jh=n,jh}var Rh,X1;function py(){if(X1)return Rh;X1=1;var e=VC();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return Rh=n,Rh}var Ah,Q1;function gq(){if(Q1)return Ah;Q1=1;var e=py();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Ah=n,Ah}var Ih,Z1;function vq(){if(Z1)return Ih;Z1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return Ih=n,Ih}var Mh,J1;function yq(){if(J1)return Mh;J1=1;var e=vo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return Mh=i,Mh}var Oh,eb;function GC(){if(eb)return Oh;eb=1;var e=py();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Oh=n,Oh}var Ph,tb;function wq(){if(tb)return Ph;tb=1;var e=py(),n=gq(),r=vq(),i=yq(),o=GC(),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]",b="[object Float64Array]",S="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",T="[object Uint8Array]",I="[object Uint8ClampedArray]",O="[object Uint16Array]",A="[object Uint32Array]";function U(z,P,D){var V=z.constructor;switch(P){case w:return e(z);case l:case u:return new V(+z);case N:return n(z,D);case _:case b:case S:case k:case E:case T:case I:case O:case A:return o(z,D);case c:return new V;case h:case m:return new V(z);case p:return r(z);case d:return new V;case y:return i(z)}}return Ph=U,Ph}var Lh,nb;function YC(){if(nb)return Lh;nb=1;var e=qn(),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 Lh=r,Lh}var $h,rb;function KC(){if(rb)return $h;rb=1;var e=YC(),n=Vu(),r=Wu();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return $h=i,$h}var qh,sb;function xq(){if(sb)return qh;sb=1;var e=wo(),n=mr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return qh=i,qh}var Dh,ib;function _q(){if(ib)return Dh;ib=1;var e=xq(),n=Hu(),r=cy(),i=r&&r.isMap,o=i?n(i):e;return Dh=o,Dh}var Fh,ob;function bq(){if(ob)return Fh;ob=1;var e=wo(),n=mr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return Fh=i,Fh}var zh,ab;function Sq(){if(ab)return zh;ab=1;var e=bq(),n=Hu(),r=cy(),i=r&&r.isSet,o=i?n(i):e;return zh=o,zh}var Bh,lb;function XC(){if(lb)return Bh;lb=1;var e=Fu(),n=ly(),r=Bu(),i=iq(),o=lq(),l=qC(),u=DC(),c=uq(),h=cq(),p=HC(),d=dq(),m=wo(),y=mq(),w=wq(),N=KC(),_=bt(),b=yo(),S=_q(),k=qn(),E=Sq(),T=Ns(),I=pi(),O=1,A=2,U=4,z="[object Arguments]",P="[object Array]",D="[object Boolean]",V="[object Date]",B="[object Error]",C="[object Function]",q="[object GeneratorFunction]",L="[object Map]",re="[object Number]",Z="[object Object]",H="[object RegExp]",J="[object Set]",M="[object String]",G="[object Symbol]",Y="[object WeakMap]",$="[object ArrayBuffer]",Q="[object DataView]",ne="[object Float32Array]",oe="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",Re="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[z]=ke[P]=ke[$]=ke[Q]=ke[D]=ke[V]=ke[ne]=ke[oe]=ke[fe]=ke[te]=ke[ce]=ke[L]=ke[re]=ke[Z]=ke[H]=ke[J]=ke[M]=ke[G]=ke[Ce]=ke[ve]=ke[Re]=ke[ye]=!0,ke[B]=ke[C]=ke[Y]=!1;function Ye(we,_e,Be,it,pt,Ze){var Fe,Je=_e&O,Xe=_e&A,Mt=_e&U;if(Be&&(Fe=pt?Be(we,it,pt,Ze):Be(we)),Fe!==void 0)return Fe;if(!k(we))return we;var ut=_(we);if(ut){if(Fe=y(we),!Je)return u(we,Fe)}else{var Qe=m(we),Ot=Qe==C||Qe==q;if(b(we))return l(we,Je);if(Qe==Z||Qe==z||Ot&&!pt){if(Fe=Xe||Ot?{}:N(we),!Je)return Xe?h(we,o(Fe,we)):c(we,i(Fe,we))}else{if(!ke[Qe])return pt?we:{};Fe=w(we,Qe,Je)}}Ze||(Ze=new e);var Ft=Ze.get(we);if(Ft)return Ft;Ze.set(we,Fe),E(we)?we.forEach(function(mt){Fe.add(Ye(mt,_e,Be,mt,we,Ze))}):S(we)&&we.forEach(function(mt,wt){Fe.set(wt,Ye(mt,_e,Be,wt,we,Ze))});var et=Mt?Xe?d:p:Xe?I:T,St=ut?void 0:et(we);return n(St||we,function(mt,wt){St&&(wt=mt,mt=we[wt]),r(Fe,wt,Ye(mt,_e,Be,wt,we,Ze))}),Fe}return Bh=Ye,Bh}var Uh,ub;function kq(){if(ub)return Uh;ub=1;var e=XC(),n=4;function r(i){return e(i,n)}return Uh=r,Uh}var Hh,cb;function my(){if(cb)return Hh;cb=1;function e(n){return function(){return n}}return Hh=e,Hh}var Wh,db;function Eq(){if(db)return Wh;db=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 Wh=e,Wh}var Vh,fb;function gy(){if(fb)return Vh;fb=1;var e=Eq(),n=e();return Vh=n,Vh}var Gh,hb;function vy(){if(hb)return Gh;hb=1;var e=gy(),n=Ns();function r(i,o){return i&&e(i,o,n)}return Gh=r,Gh}var Yh,pb;function Nq(){if(pb)return Yh;pb=1;var e=Ur();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 Yh=n,Yh}var Kh,mb;function Gu(){if(mb)return Kh;mb=1;var e=vy(),n=Nq(),r=n(e);return Kh=r,Kh}var Xh,gb;function mi(){if(gb)return Xh;gb=1;function e(n){return n}return Xh=e,Xh}var Qh,vb;function QC(){if(vb)return Qh;vb=1;var e=mi();function n(r){return typeof r=="function"?r:e}return Qh=n,Qh}var Zh,yb;function ZC(){if(yb)return Zh;yb=1;var e=ly(),n=Gu(),r=QC(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Zh=o,Zh}var Jh,wb;function JC(){return wb||(wb=1,Jh=ZC()),Jh}var ep,xb;function Cq(){if(xb)return ep;xb=1;var e=Gu();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return ep=n,ep}var tp,_b;function Tq(){if(_b)return tp;_b=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return tp=n,tp}var np,bb;function jq(){if(bb)return np;bb=1;function e(n){return this.__data__.has(n)}return np=e,np}var rp,Sb;function eT(){if(Sb)return rp;Sb=1;var e=ay(),n=Tq(),r=jq();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,rp=i,rp}var sp,kb;function Rq(){if(kb)return sp;kb=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 sp=e,sp}var ip,Eb;function tT(){if(Eb)return ip;Eb=1;function e(n,r){return n.has(r)}return ip=e,ip}var op,Nb;function nT(){if(Nb)return op;Nb=1;var e=eT(),n=Rq(),r=tT(),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),b=m.get(c);if(_&&b)return _==c&&b==u;var S=-1,k=!0,E=h&o?new e:void 0;for(m.set(u,c),m.set(c,u);++S<w;){var T=u[S],I=c[S];if(p)var O=y?p(I,T,S,c,u,m):p(T,I,S,u,c,m);if(O!==void 0){if(O)continue;k=!1;break}if(E){if(!n(c,function(A,U){if(!r(E,U)&&(T===A||d(T,A,h,p,m)))return E.push(U)})){k=!1;break}}else if(!(T===I||d(T,I,h,p,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return op=l,op}var ap,Cb;function Aq(){if(Cb)return ap;Cb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return ap=e,ap}var lp,Tb;function yy(){if(Tb)return lp;Tb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return lp=e,lp}var up,jb;function Iq(){if(jb)return up;jb=1;var e=vo(),n=VC(),r=go(),i=nT(),o=Aq(),l=yy(),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]",b="[object Symbol]",S="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,T=E?E.valueOf:void 0;function I(O,A,U,z,P,D,V){switch(U){case k:if(O.byteLength!=A.byteLength||O.byteOffset!=A.byteOffset)return!1;O=O.buffer,A=A.buffer;case S:return!(O.byteLength!=A.byteLength||!D(new n(O),new n(A)));case h:case p:case y:return r(+O,+A);case d:return O.name==A.name&&O.message==A.message;case w:case _:return O==A+"";case m:var B=o;case N:var C=z&u;if(B||(B=l),O.size!=A.size&&!C)return!1;var q=V.get(O);if(q)return q==A;z|=c,V.set(O,A);var L=i(B(O),B(A),z,P,D,V);return V.delete(O),L;case b:if(T)return T.call(O)==T.call(A)}return!1}return up=I,up}var cp,Rb;function Mq(){if(Rb)return cp;Rb=1;var e=HC(),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 b=w;b--;){var S=y[b];if(!(m?S in u:i.call(u,S)))return!1}var k=d.get(l),E=d.get(u);if(k&&E)return k==u&&E==l;var T=!0;d.set(l,u),d.set(u,l);for(var I=m;++b<w;){S=y[b];var O=l[S],A=u[S];if(h)var U=m?h(A,O,S,u,l,d):h(O,A,S,l,u,d);if(!(U===void 0?O===A||p(O,A,c,h,d):U)){T=!1;break}I||(I=S=="constructor")}if(T&&!I){var z=l.constructor,P=u.constructor;z!=P&&"constructor"in l&&"constructor"in u&&!(typeof z=="function"&&z instanceof z&&typeof P=="function"&&P instanceof P)&&(T=!1)}return d.delete(l),d.delete(u),T}return cp=o,cp}var dp,Ab;function Oq(){if(Ab)return dp;Ab=1;var e=Fu(),n=nT(),r=Iq(),i=Mq(),o=wo(),l=bt(),u=yo(),c=Oa(),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function N(_,b,S,k,E,T){var I=l(_),O=l(b),A=I?d:o(_),U=O?d:o(b);A=A==p?m:A,U=U==p?m:U;var z=A==m,P=U==m,D=A==U;if(D&&u(_)){if(!u(b))return!1;I=!0,z=!1}if(D&&!z)return T||(T=new e),I||c(_)?n(_,b,S,k,E,T):r(_,b,A,S,k,E,T);if(!(S&h)){var V=z&&w.call(_,"__wrapped__"),B=P&&w.call(b,"__wrapped__");if(V||B){var C=V?_.value():_,q=B?b.value():b;return T||(T=new e),E(C,q,S,k,T)}}return D?(T||(T=new e),i(_,b,S,k,E,T)):!1}return dp=N,dp}var fp,Ib;function rT(){if(Ib)return fp;Ib=1;var e=Oq(),n=mr();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 fp=r,fp}var hp,Mb;function Pq(){if(Mb)return hp;Mb=1;var e=Fu(),n=rT(),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 b=new e;if(h)var S=h(N,_,w,l,u,b);if(!(S===void 0?n(_,N,r|i,h,b):S))return!1}}return!0}return hp=o,hp}var pp,Ob;function sT(){if(Ob)return pp;Ob=1;var e=qn();function n(r){return r===r&&!e(r)}return pp=n,pp}var mp,Pb;function Lq(){if(Pb)return mp;Pb=1;var e=sT(),n=Ns();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 mp=r,mp}var gp,Lb;function iT(){if(Lb)return gp;Lb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return gp=e,gp}var vp,$b;function $q(){if($b)return vp;$b=1;var e=Pq(),n=Lq(),r=iT();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 vp=i,vp}var yp,qb;function xo(){if(qb)return yp;qb=1;var e=fi(),n=mr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return yp=i,yp}var wp,Db;function wy(){if(Db)return wp;Db=1;var e=bt(),n=xo(),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 wp=o,wp}var xp,Fb;function qq(){if(Fb)return xp;Fb=1;var e=ay(),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,xp=r,xp}var _p,zb;function Dq(){if(zb)return _p;zb=1;var e=qq(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return _p=r,_p}var bp,Bb;function Fq(){if(Bb)return bp;Bb=1;var e=Dq(),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 bp=i,bp}var Sp,Ub;function Yu(){if(Ub)return Sp;Ub=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 Sp=e,Sp}var kp,Hb;function zq(){if(Hb)return kp;Hb=1;var e=vo(),n=Yu(),r=bt(),i=xo(),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 kp=u,kp}var Ep,Wb;function oT(){if(Wb)return Ep;Wb=1;var e=zq();function n(r){return r==null?"":e(r)}return Ep=n,Ep}var Np,Vb;function Ku(){if(Vb)return Np;Vb=1;var e=bt(),n=wy(),r=Fq(),i=oT();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return Np=o,Np}var Cp,Gb;function Pa(){if(Gb)return Cp;Gb=1;var e=xo();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return Cp=n,Cp}var Tp,Yb;function Xu(){if(Yb)return Tp;Yb=1;var e=Ku(),n=Pa();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 Tp=r,Tp}var jp,Kb;function Bq(){if(Kb)return jp;Kb=1;var e=Xu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return jp=n,jp}var Rp,Xb;function Uq(){if(Xb)return Rp;Xb=1;function e(n,r){return n!=null&&r in Object(n)}return Rp=e,Rp}var Ap,Qb;function aT(){if(Qb)return Ap;Qb=1;var e=Ku(),n=Ma(),r=bt(),i=Uu(),o=uy(),l=Pa();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 Ap=u,Ap}var Ip,Zb;function lT(){if(Zb)return Ip;Zb=1;var e=Uq(),n=aT();function r(i,o){return i!=null&&n(i,o,e)}return Ip=r,Ip}var Mp,Jb;function Hq(){if(Jb)return Mp;Jb=1;var e=rT(),n=Bq(),r=lT(),i=wy(),o=sT(),l=iT(),u=Pa(),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 Mp=p,Mp}var Op,eS;function uT(){if(eS)return Op;eS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Op=e,Op}var Pp,tS;function Wq(){if(tS)return Pp;tS=1;var e=Xu();function n(r){return function(i){return e(i,r)}}return Pp=n,Pp}var Lp,nS;function Vq(){if(nS)return Lp;nS=1;var e=uT(),n=Wq(),r=wy(),i=Pa();function o(l){return r(l)?e(i(l)):n(l)}return Lp=o,Lp}var $p,rS;function Hr(){if(rS)return $p;rS=1;var e=$q(),n=Hq(),r=mi(),i=bt(),o=Vq();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 $p=l,$p}var qp,sS;function cT(){if(sS)return qp;sS=1;var e=FC(),n=Cq(),r=Hr(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return qp=o,qp}var Dp,iS;function Gq(){if(iS)return Dp;iS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return Dp=r,Dp}var Fp,oS;function dT(){if(oS)return Fp;oS=1;var e=Gq(),n=aT();function r(i,o){return i!=null&&n(i,o,e)}return Fp=r,Fp}var zp,aS;function Yq(){if(aS)return zp;aS=1;var e=dy(),n=wo(),r=Ma(),i=bt(),o=Ur(),l=yo(),u=Wu(),c=Oa(),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 zp=y,zp}var Bp,lS;function fT(){if(lS)return Bp;lS=1;function e(n){return n===void 0}return Bp=e,Bp}var Up,uS;function hT(){if(uS)return Up;uS=1;var e=Gu(),n=Ur();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 Up=r,Up}var Hp,cS;function pT(){if(cS)return Hp;cS=1;var e=Yu(),n=Hr(),r=hT(),i=bt();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Hp=o,Hp}var Wp,dS;function Kq(){if(dS)return Wp;dS=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 Wp=e,Wp}var Vp,fS;function Xq(){if(fS)return Vp;fS=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 Vp=e,Vp}var Gp,hS;function mT(){if(hS)return Gp;hS=1;var e=Kq(),n=Gu(),r=Hr(),i=Xq(),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 Gp=l,Gp}var Yp,pS;function Qq(){if(pS)return Yp;pS=1;var e=fi(),n=bt(),r=mr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Yp=o,Yp}var Kp,mS;function Zq(){if(mS)return Kp;mS=1;var e=uT(),n=e("length");return Kp=n,Kp}var Xp,gS;function Jq(){if(gS)return Xp;gS=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 Xp=h,Xp}var Qp,vS;function eD(){if(vS)return Qp;vS=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+"]?",b="(?:"+w+"(?:"+[d,m,y].join("|")+")"+_+N+")*",S=_+N+b,k="(?:"+[d+c+"?",c,m,y,u].join("|")+")",E=RegExp(h+"(?="+h+")|"+k+S,"g");function T(I){for(var O=E.lastIndex=0;E.test(I);)++O;return O}return Qp=T,Qp}var Zp,yS;function tD(){if(yS)return Zp;yS=1;var e=Zq(),n=Jq(),r=eD();function i(o){return n(o)?r(o):e(o)}return Zp=i,Zp}var Jp,wS;function nD(){if(wS)return Jp;wS=1;var e=dy(),n=wo(),r=Ur(),i=Qq(),o=tD(),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 Jp=c,Jp}var em,xS;function rD(){if(xS)return em;xS=1;var e=ly(),n=YC(),r=vy(),i=Hr(),o=Vu(),l=bt(),u=yo(),c=Aa(),h=qn(),p=Oa();function d(m,y,w){var N=l(m),_=N||u(m)||p(m);if(y=i(y,4),w==null){var b=m&&m.constructor;_?w=N?new b:[]:h(m)?w=c(b)?n(o(m)):{}:w={}}return(_?e:r)(m,function(S,k,E){return y(w,S,k,E)}),w}return em=d,em}var tm,_S;function sD(){if(_S)return tm;_S=1;var e=vo(),n=Ma(),r=bt(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return tm=o,tm}var nm,bS;function xy(){if(bS)return nm;bS=1;var e=hy(),n=sD();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 nm=r,nm}var rm,SS;function iD(){if(SS)return rm;SS=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 rm=e,rm}var sm,kS;function gT(){if(kS)return sm;kS=1;var e=iD(),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 sm=r,sm}var im,ES;function oD(){if(ES)return im;ES=1;var e=my(),n=PC(),r=mi(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return im=i,im}var om,NS;function aD(){if(NS)return om;NS=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 om=i,om}var am,CS;function vT(){if(CS)return am;CS=1;var e=oD(),n=aD(),r=n(e);return am=r,am}var lm,TS;function Qu(){if(TS)return lm;TS=1;var e=mi(),n=gT(),r=vT();function i(o,l){return r(n(o,l,e),o+"")}return lm=i,lm}var um,jS;function yT(){if(jS)return um;jS=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 um=e,um}var cm,RS;function lD(){if(RS)return cm;RS=1;function e(n){return n!==n}return cm=e,cm}var dm,AS;function uD(){if(AS)return dm;AS=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 dm=e,dm}var fm,IS;function cD(){if(IS)return fm;IS=1;var e=yT(),n=lD(),r=uD();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return fm=i,fm}var hm,MS;function dD(){if(MS)return hm;MS=1;var e=cD();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return hm=n,hm}var pm,OS;function fD(){if(OS)return pm;OS=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 pm=e,pm}var mm,PS;function hD(){if(PS)return mm;PS=1;function e(){}return mm=e,mm}var gm,LS;function pD(){if(LS)return gm;LS=1;var e=WC(),n=hD(),r=yy(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return gm=o,gm}var vm,$S;function mD(){if($S)return vm;$S=1;var e=eT(),n=dD(),r=fD(),i=tT(),o=pD(),l=yy(),u=200;function c(h,p,d){var m=-1,y=n,w=h.length,N=!0,_=[],b=_;if(d)N=!1,y=r;else if(w>=u){var S=p?null:o(h);if(S)return l(S);N=!1,y=i,b=new e}else b=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 T=b.length;T--;)if(b[T]===E)continue e;p&&b.push(E),_.push(k)}else y(b,E,d)||(b!==_&&b.push(E),_.push(k))}return _}return vm=c,vm}var ym,qS;function wT(){if(qS)return ym;qS=1;var e=Ur(),n=mr();function r(i){return n(i)&&e(i)}return ym=r,ym}var wm,DS;function gD(){if(DS)return wm;DS=1;var e=xy(),n=Qu(),r=mD(),i=wT(),o=n(function(l){return r(e(l,1,i,!0))});return wm=o,wm}var xm,FS;function vD(){if(FS)return xm;FS=1;var e=Yu();function n(r,i){return e(i,function(o){return r[o]})}return xm=n,xm}var _m,zS;function xT(){if(zS)return _m;zS=1;var e=vD(),n=Ns();function r(i){return i==null?[]:e(i,n(i))}return _m=r,_m}var bm,BS;function Dn(){if(BS)return bm;BS=1;var e;if(typeof iy=="function")try{e={clone:kq(),constant:my(),each:JC(),filter:cT(),has:dT(),isArray:bt(),isEmpty:Yq(),isFunction:Aa(),isUndefined:fT(),keys:Ns(),map:pT(),reduce:mT(),size:nD(),transform:rD(),union:gD(),values:xT()}}catch{}return e||(e=window._),bm=e,bm}var Sm,US;function _y(){if(US)return Sm;US=1;var e=Dn();Sm=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(_,b){d(b)&&m.setNode(b,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var w={};function N(_){var b=y.parent(_);return b===void 0||m.hasNode(b)?(w[_]=b,b):b in w?w[b]:N(b)}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 b=c(this._isDirected,d,m,y);if(e.has(this._edgeLabels,b))return N&&(this._edgeLabels[b]=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[b]=N?w:this._defaultEdgeLabelFn(d,m,y);var S=h(this._isDirected,d,m,y);return d=S.v,m=S.w,Object.freeze(S),this._edgeObjs[b]=S,l(this._preds[m],d),l(this._sucs[d],m),this._in[m][b]=S,this._out[d][b]=S,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 b=N;N=_,_=b}return N+i+_+i+(e.isUndefined(w)?n:w)}function h(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}var S={v:N,w:_};return w&&(S.name=w),S}function p(d,m){return c(d,m.v,m.w,m.name)}return Sm}var km,HS;function yD(){return HS||(HS=1,km="2.1.8"),km}var Em,WS;function wD(){return WS||(WS=1,Em={Graph:_y(),version:yD()}),Em}var Nm,VS;function xD(){if(VS)return Nm;VS=1;var e=Dn(),n=_y();Nm={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 Nm}var Cm,GS;function _D(){if(GS)return Cm;GS=1;var e=Dn();Cm=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 Cm}var Tm,YS;function _T(){if(YS)return Tm;YS=1;var e=Dn();Tm=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},Tm}var jm,KS;function bT(){if(KS)return jm;KS=1;var e=Dn(),n=_T();jm=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,b=p[_],S=c(N),k=y.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+S);k<b.distance&&(b.distance=k,b.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 jm}var Rm,XS;function bD(){if(XS)return Rm;XS=1;var e=bT(),n=Dn();Rm=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return Rm}var Am,QS;function ST(){if(QS)return Am;QS=1;var e=Dn();Am=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 Am}var Im,ZS;function SD(){if(ZS)return Im;ZS=1;var e=Dn(),n=ST();Im=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 Im}var Mm,JS;function kD(){if(JS)return Mm;JS=1;var e=Dn();Mm=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],b=y[w],S=N.distance+_.distance;S<b.distance&&(b.distance=S,b.predecessor=_.predecessor)})})}),c}return Mm}var Om,ek;function kT(){if(ek)return Om;ek=1;var e=Dn();Om=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,Om}var Pm,tk;function ED(){if(tk)return Pm;tk=1;var e=kT();Pm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Pm}var Lm,nk;function ET(){if(nk)return Lm;nk=1;var e=Dn();Lm=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 Lm}var $m,rk;function ND(){if(rk)return $m;rk=1;var e=ET();$m=n;function n(r,i){return e(r,i,"post")}return $m}var qm,sk;function CD(){if(sk)return qm;sk=1;var e=ET();qm=n;function n(r,i){return e(r,i,"pre")}return qm}var Dm,ik;function TD(){if(ik)return Dm;ik=1;var e=Dn(),n=_y(),r=_T();Dm=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 Dm}var Fm,ok;function jD(){return ok||(ok=1,Fm={components:_D(),dijkstra:bT(),dijkstraAll:bD(),findCycles:SD(),floydWarshall:kD(),isAcyclic:ED(),postorder:ND(),preorder:CD(),prim:TD(),tarjan:ST(),topsort:kT()}),Fm}var zm,ak;function RD(){if(ak)return zm;ak=1;var e=wD();return zm={Graph:e.Graph,json:xD(),alg:jD(),version:e.version},zm}var Bm,lk;function nr(){if(lk)return Bm;lk=1;var e;if(typeof iy=="function")try{e=RD()}catch{}return e||(e=window.graphlib),Bm=e,Bm}var Um,uk;function AD(){if(uk)return Um;uk=1;var e=XC(),n=1,r=4;function i(o){return e(o,n|r)}return Um=i,Um}var Hm,ck;function Zu(){if(ck)return Hm;ck=1;var e=go(),n=Ur(),r=Uu(),i=qn();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 Hm=o,Hm}var Wm,dk;function ID(){if(dk)return Wm;dk=1;var e=Qu(),n=go(),r=Zu(),i=pi(),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 b=w[N],S=c[b];(S===void 0||n(S,o[b])&&!l.call(c,b))&&(c[b]=y[b])}return c});return Wm=u,Wm}var Vm,fk;function MD(){if(fk)return Vm;fk=1;var e=Hr(),n=Ur(),r=Ns();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 Vm=i,Vm}var Gm,hk;function OD(){if(hk)return Gm;hk=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return Gm=n,Gm}var Ym,pk;function PD(){if(pk)return Ym;pk=1;var e=OD(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Ym=r,Ym}var Km,mk;function LD(){if(mk)return Km;mk=1;var e=PD(),n=qn(),r=xo(),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 Km=h,Km}var Xm,gk;function NT(){if(gk)return Xm;gk=1;var e=LD(),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 Xm=i,Xm}var Qm,vk;function $D(){if(vk)return Qm;vk=1;var e=NT();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Qm=n,Qm}var Zm,yk;function qD(){if(yk)return Zm;yk=1;var e=yT(),n=Hr(),r=$D(),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 Zm=o,Zm}var Jm,wk;function DD(){if(wk)return Jm;wk=1;var e=MD(),n=qD(),r=e(n);return Jm=r,Jm}var eg,xk;function CT(){if(xk)return eg;xk=1;var e=xy();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return eg=n,eg}var tg,_k;function FD(){if(_k)return tg;_k=1;var e=gy(),n=QC(),r=pi();function i(o,l){return o==null?o:e(o,n(l),r)}return tg=i,tg}var ng,bk;function zD(){if(bk)return ng;bk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return ng=e,ng}var rg,Sk;function BD(){if(Sk)return rg;Sk=1;var e=zu(),n=vy(),r=Hr();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 rg=i,rg}var sg,kk;function by(){if(kk)return sg;kk=1;var e=xo();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 sg=n,sg}var ig,Ek;function UD(){if(Ek)return ig;Ek=1;function e(n,r){return n>r}return ig=e,ig}var og,Nk;function HD(){if(Nk)return og;Nk=1;var e=by(),n=UD(),r=mi();function i(o){return o&&o.length?e(o,r,n):void 0}return og=i,og}var ag,Ck;function TT(){if(Ck)return ag;Ck=1;var e=zu(),n=go();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return ag=r,ag}var lg,Tk;function WD(){if(Tk)return lg;Tk=1;var e=fi(),n=Vu(),r=mr(),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 lg=p,lg}var ug,jk;function jT(){if(jk)return ug;jk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return ug=e,ug}var cg,Rk;function VD(){if(Rk)return cg;Rk=1;var e=Ia(),n=pi();function r(i){return e(i,n(i))}return cg=r,cg}var dg,Ak;function GD(){if(Ak)return dg;Ak=1;var e=TT(),n=qC(),r=GC(),i=DC(),o=KC(),l=Ma(),u=bt(),c=wT(),h=yo(),p=Aa(),d=qn(),m=WD(),y=Oa(),w=jT(),N=VD();function _(b,S,k,E,T,I,O){var A=w(b,k),U=w(S,k),z=O.get(U);if(z){e(b,k,z);return}var P=I?I(A,U,k+"",b,S,O):void 0,D=P===void 0;if(D){var V=u(U),B=!V&&h(U),C=!V&&!B&&y(U);P=U,V||B||C?u(A)?P=A:c(A)?P=i(A):B?(D=!1,P=n(U,!0)):C?(D=!1,P=r(U,!0)):P=[]:m(U)||l(U)?(P=A,l(A)?P=N(A):(!d(A)||p(A))&&(P=o(U))):D=!1}D&&(O.set(U,P),T(P,U,E,I,O),O.delete(U)),e(b,k,P)}return dg=_,dg}var fg,Ik;function YD(){if(Ik)return fg;Ik=1;var e=Fu(),n=TT(),r=gy(),i=GD(),o=qn(),l=pi(),u=jT();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 fg=c,fg}var hg,Mk;function KD(){if(Mk)return hg;Mk=1;var e=Qu(),n=Zu();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 hg=r,hg}var pg,Ok;function XD(){if(Ok)return pg;Ok=1;var e=YD(),n=KD(),r=n(function(i,o,l){e(i,o,l)});return pg=r,pg}var mg,Pk;function RT(){if(Pk)return mg;Pk=1;function e(n,r){return n<r}return mg=e,mg}var gg,Lk;function QD(){if(Lk)return gg;Lk=1;var e=by(),n=RT(),r=mi();function i(o){return o&&o.length?e(o,r,n):void 0}return gg=i,gg}var vg,$k;function ZD(){if($k)return vg;$k=1;var e=by(),n=Hr(),r=RT();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return vg=i,vg}var yg,qk;function JD(){if(qk)return yg;qk=1;var e=sr(),n=function(){return e.Date.now()};return yg=n,yg}var wg,Dk;function e4(){if(Dk)return wg;Dk=1;var e=Bu(),n=Ku(),r=Uu(),i=qn(),o=Pa();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 b=w[N];_=p?p(b,N,w):void 0,_===void 0&&(_=i(b)?b:r(c[d+1])?[]:{})}e(w,N,_),w=w[N]}return u}return wg=l,wg}var xg,Fk;function t4(){if(Fk)return xg;Fk=1;var e=Xu(),n=e4(),r=Ku();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 xg=i,xg}var _g,zk;function n4(){if(zk)return _g;zk=1;var e=t4(),n=lT();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return _g=r,_g}var bg,Bk;function r4(){if(Bk)return bg;Bk=1;var e=CT(),n=gT(),r=vT();function i(o){return r(n(o,void 0,e),o+"")}return bg=i,bg}var Sg,Uk;function s4(){if(Uk)return Sg;Uk=1;var e=n4(),n=r4(),r=n(function(i,o){return i==null?{}:e(i,o)});return Sg=r,Sg}var kg,Hk;function i4(){if(Hk)return kg;Hk=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 kg=r,kg}var Eg,Wk;function o4(){if(Wk)return Eg;Wk=1;var e=i4(),n=Zu(),r=NT();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 Eg=i,Eg}var Ng,Vk;function a4(){if(Vk)return Ng;Vk=1;var e=o4(),n=e();return Ng=n,Ng}var Cg,Gk;function l4(){if(Gk)return Cg;Gk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return Cg=e,Cg}var Tg,Yk;function u4(){if(Yk)return Tg;Yk=1;var e=xo();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 Tg=n,Tg}var jg,Kk;function c4(){if(Kk)return jg;Kk=1;var e=u4();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 jg=n,jg}var Rg,Xk;function d4(){if(Xk)return Rg;Xk=1;var e=Yu(),n=Xu(),r=Hr(),i=hT(),o=l4(),l=Hu(),u=c4(),c=mi(),h=bt();function p(d,m,y){m.length?m=e(m,function(_){return h(_)?function(b){return n(b,_.length===1?_[0]:_)}:_}):m=[c];var w=-1;m=e(m,l(r));var N=i(d,function(_,b,S){var k=e(m,function(E){return E(_)});return{criteria:k,index:++w,value:_}});return o(N,function(_,b){return u(_,b,y)})}return Rg=p,Rg}var Ag,Qk;function f4(){if(Qk)return Ag;Qk=1;var e=xy(),n=d4(),r=Qu(),i=Zu(),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 Ag=o,Ag}var Ig,Zk;function h4(){if(Zk)return Ig;Zk=1;var e=oT(),n=0;function r(i){var o=++n;return e(i)+o}return Ig=r,Ig}var Mg,Jk;function p4(){if(Jk)return Mg;Jk=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 Mg=e,Mg}var Og,eE;function m4(){if(eE)return Og;eE=1;var e=Bu(),n=p4();function r(i,o){return n(i||[],o||[],e)}return Og=r,Og}var Pg,tE;function lt(){if(tE)return Pg;tE=1;var e;if(typeof iy=="function")try{e={cloneDeep:AD(),constant:my(),defaults:ID(),each:JC(),filter:cT(),find:DD(),flatten:CT(),forEach:ZC(),forIn:FD(),has:dT(),isUndefined:fT(),last:zD(),map:pT(),mapValues:BD(),max:HD(),merge:XD(),min:QD(),minBy:ZD(),now:JD(),pick:s4(),range:a4(),reduce:mT(),sortBy:f4(),uniqueId:h4(),values:xT(),zipObject:m4()}}catch{}return e||(e=window._),Pg=e,Pg}var Lg,nE;function g4(){if(nE)return Lg;nE=1,Lg=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 Lg}var $g,rE;function v4(){if(rE)return $g;rE=1;var e=lt(),n=nr().Graph,r=g4();$g=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 b=d.length-2;b>0;--b)if(_=d[b].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 b=p.edge(_),S=p.node(_.v);w&&N.push({v:_.v,w:_.w}),S.out-=b,h(d,m,S)}),e.forEach(p.outEdges(y.v),function(_){var b=p.edge(_),S=_.w,k=p.node(S);k.in-=b,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(b){m.setNode(b,{v:b,in:0,out:0})}),e.forEach(p.edges(),function(b){var S=m.edge(b.v,b.w)||0,k=d(b),E=S+k;m.setEdge(b.v,b.w,E),w=Math.max(w,m.node(b.v).out+=k),y=Math.max(y,m.node(b.w).in+=k)});var N=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(b){h(N,_,m.node(b))}),{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 $g}var qg,sE;function y4(){if(sE)return qg;sE=1;var e=lt(),n=v4();qg={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 qg}var Dg,iE;function fn(){if(iE)return Dg;iE=1;var e=lt(),n=nr().Graph;Dg={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(b,S,k,E){var T;do T=e.uniqueId(E);while(b.hasNode(T));return k.dummy=S,b.setNode(T,k),T}function i(b){var S=new n().setGraph(b.graph());return e.forEach(b.nodes(),function(k){S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){var E=S.edge(k.v,k.w)||{weight:0,minlen:1},T=b.edge(k);S.setEdge(k.v,k.w,{weight:E.weight+T.weight,minlen:Math.max(E.minlen,T.minlen)})}),S}function o(b){var S=new n({multigraph:b.isMultigraph()}).setGraph(b.graph());return e.forEach(b.nodes(),function(k){b.children(k).length||S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){S.setEdge(k,b.edge(k))}),S}function l(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.outEdges(k),function(T){E[T.w]=(E[T.w]||0)+b.edge(T).weight}),E});return e.zipObject(b.nodes(),S)}function u(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.inEdges(k),function(T){E[T.v]=(E[T.v]||0)+b.edge(T).weight}),E});return e.zipObject(b.nodes(),S)}function c(b,S){var k=b.x,E=b.y,T=S.x-k,I=S.y-E,O=b.width/2,A=b.height/2;if(!T&&!I)throw new Error("Not possible to find intersection inside of the rectangle");var U,z;return Math.abs(I)*O>Math.abs(T)*A?(I<0&&(A=-A),U=A*T/I,z=A):(T<0&&(O=-O),U=O,z=O*I/T),{x:k+U,y:E+z}}function h(b){var S=e.map(e.range(y(b)+1),function(){return[]});return e.forEach(b.nodes(),function(k){var E=b.node(k),T=E.rank;e.isUndefined(T)||(S[T][E.order]=k)}),S}function p(b){var S=e.min(e.map(b.nodes(),function(k){return b.node(k).rank}));e.forEach(b.nodes(),function(k){var E=b.node(k);e.has(E,"rank")&&(E.rank-=S)})}function d(b){var S=e.min(e.map(b.nodes(),function(I){return b.node(I).rank})),k=[];e.forEach(b.nodes(),function(I){var O=b.node(I).rank-S;k[O]||(k[O]=[]),k[O].push(I)});var E=0,T=b.graph().nodeRankFactor;e.forEach(k,function(I,O){e.isUndefined(I)&&O%T!==0?--E:E&&e.forEach(I,function(A){b.node(A).rank+=E})})}function m(b,S,k,E){var T={width:0,height:0};return arguments.length>=4&&(T.rank=k,T.order=E),r(b,"border",T,S)}function y(b){return e.max(e.map(b.nodes(),function(S){var k=b.node(S).rank;if(!e.isUndefined(k))return k}))}function w(b,S){var k={lhs:[],rhs:[]};return e.forEach(b,function(E){S(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(b,S){var k=e.now();try{return S()}finally{console.log(b+" time: "+(e.now()-k)+"ms")}}function _(b,S){return S()}return Dg}var Fg,oE;function w4(){if(oE)return Fg;oE=1;var e=lt(),n=fn();Fg={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,_,b;for(b=0,++h;h<d;++b,++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),b===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 Fg}var zg,aE;function Nu(){if(aE)return zg;aE=1;var e=lt();zg={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 zg}var Bg,lE;function AT(){if(lE)return Bg;lE=1;var e=lt(),n=nr().Graph,r=Nu().slack;Bg=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 Bg}var Ug,uE;function x4(){if(uE)return Ug;uE=1;var e=lt(),n=AT(),r=Nu().slack,i=Nu().longestPath,o=nr().alg.preorder,l=nr().alg.postorder,u=fn().simplify;Ug=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 T=n(E);m(T),h(T,E);for(var I,O;I=w(T);)O=N(T,E,I),_(T,E,I,O)}function h(E,T){var I=l(E,E.nodes());I=I.slice(0,I.length-1),e.forEach(I,function(O){p(E,T,O)})}function p(E,T,I){var O=E.node(I),A=O.parent;E.edge(I,A).cutvalue=d(E,T,I)}function d(E,T,I){var O=E.node(I),A=O.parent,U=!0,z=T.edge(I,A),P=0;return z||(U=!1,z=T.edge(A,I)),P=z.weight,e.forEach(T.nodeEdges(I),function(D){var V=D.v===I,B=V?D.w:D.v;if(B!==A){var C=V===U,q=T.edge(D).weight;if(P+=C?q:-q,S(E,I,B)){var L=E.edge(I,B).cutvalue;P+=C?-L:L}}}),P}function m(E,T){arguments.length<2&&(T=E.nodes()[0]),y(E,{},1,T)}function y(E,T,I,O,A){var U=I,z=E.node(O);return T[O]=!0,e.forEach(E.neighbors(O),function(P){e.has(T,P)||(I=y(E,T,I,P,O))}),z.low=U,z.lim=I++,A?z.parent=A:delete z.parent,I}function w(E){return e.find(E.edges(),function(T){return E.edge(T).cutvalue<0})}function N(E,T,I){var O=I.v,A=I.w;T.hasEdge(O,A)||(O=I.w,A=I.v);var U=E.node(O),z=E.node(A),P=U,D=!1;U.lim>z.lim&&(P=z,D=!0);var V=e.filter(T.edges(),function(B){return D===k(E,E.node(B.v),P)&&D!==k(E,E.node(B.w),P)});return e.minBy(V,function(B){return r(T,B)})}function _(E,T,I,O){var A=I.v,U=I.w;E.removeEdge(A,U),E.setEdge(O.v,O.w,{}),m(E),h(E,T),b(E,T)}function b(E,T){var I=e.find(E.nodes(),function(A){return!T.node(A).parent}),O=o(E,I);O=O.slice(1),e.forEach(O,function(A){var U=E.node(A).parent,z=T.edge(A,U),P=!1;z||(z=T.edge(U,A),P=!0),T.node(A).rank=T.node(U).rank+(P?z.minlen:-z.minlen)})}function S(E,T,I){return E.hasEdge(T,I)}function k(E,T,I){return I.low<=T.lim&&T.lim<=I.lim}return Ug}var Hg,cE;function _4(){if(cE)return Hg;cE=1;var e=Nu(),n=e.longestPath,r=AT(),i=x4();Hg=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 Hg}var Wg,dE;function b4(){if(dE)return Wg;dE=1;var e=lt();Wg=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 Wg}var Vg,fE;function S4(){if(fE)return Vg;fE=1;var e=lt(),n=fn();Vg={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"),b=n.addBorderNode(c,"_bb"),S=c.node(w);c.setParent(_,w),S.borderTop=_,c.setParent(b,w),S.borderBottom=b,e.forEach(N,function(k){i(c,h,p,d,m,y,k);var E=c.node(k),T=E.borderTop?E.borderTop:k,I=E.borderBottom?E.borderBottom:k,O=E.borderTop?d:2*d,A=T!==I?1:m-y[w]+1;c.setEdge(_,T,{weight:O,minlen:A,nestingEdge:!0}),c.setEdge(I,b,{weight:O,minlen:A,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 Vg}var Gg,hE;function k4(){if(hE)return Gg;hE=1;var e=lt(),n=fn();Gg=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 Gg}var Yg,pE;function E4(){if(pE)return Yg;pE=1;var e=lt();Yg={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 Yg}var Kg,mE;function N4(){if(mE)return Kg;mE=1;var e=lt();Kg=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 Kg}var Xg,gE;function C4(){if(gE)return Xg;gE=1;var e=lt();Xg=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 Xg}var Qg,vE;function T4(){if(vE)return Qg;vE=1;var e=lt();Qg=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 Qg}var Zg,yE;function j4(){if(yE)return Zg;yE=1;var e=lt();Zg=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 Zg}var Jg,wE;function R4(){if(wE)return Jg;wE=1;var e=lt(),n=fn();Jg=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 Jg}var ev,xE;function A4(){if(xE)return ev;xE=1;var e=lt(),n=T4(),r=j4(),i=R4();ev=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(I){return I!==w&&I!==N}));var b=n(c,m);e.forEach(b,function(I){if(c.children(I.v).length){var O=o(c,I.v,p,d);_[I.v]=O,e.has(O,"barycenter")&&u(I,O)}});var S=r(b,p);l(S,_);var k=i(S,d);if(w&&(k.vs=e.flatten([w,k.vs,N],!0),c.predecessors(w).length)){var E=c.node(c.predecessors(w)[0]),T=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+T.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 ev}var tv,_E;function I4(){if(_E)return tv;_E=1;var e=lt(),n=nr().Graph;tv=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 tv}var nv,bE;function M4(){if(bE)return nv;bE=1;var e=lt();nv=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 nv}var rv,SE;function O4(){if(SE)return rv;SE=1;var e=lt(),n=N4(),r=C4(),i=A4(),o=I4(),l=M4(),u=nr().Graph,c=fn();rv=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"),b=n(y);m(y,b);for(var S=Number.POSITIVE_INFINITY,k,E=0,T=0;T<4;++E,++T){d(E%2?N:_,E%4>=2),b=c.buildLayerMatrix(y);var I=r(y,b);I<S&&(T=0,k=e.cloneDeep(b),S=I)}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 b=_.graph().root,S=i(_,b,N,w);e.forEach(S.vs,function(k,E){_.node(k).order=E}),l(_,N,S.vs)})}function m(y,w){e.forEach(w,function(N){e.forEach(N,function(_,b){y.node(_).order=b})})}return rv}var sv,kE;function P4(){if(kE)return sv;kE=1;var e=lt(),n=nr().Graph,r=fn();sv={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:h,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:m,balance:w};function i(S,k){var E={};function T(I,O){var A=0,U=0,z=I.length,P=e.last(O);return e.forEach(O,function(D,V){var B=l(S,D),C=B?S.node(B).order:z;(B||D===P)&&(e.forEach(O.slice(U,V+1),function(q){e.forEach(S.predecessors(q),function(L){var re=S.node(L),Z=re.order;(Z<A||C<Z)&&!(re.dummy&&S.node(q).dummy)&&u(E,L,q)})}),U=V+1,A=C)}),O}return e.reduce(k,T),E}function o(S,k){var E={};function T(O,A,U,z,P){var D;e.forEach(e.range(A,U),function(V){D=O[V],S.node(D).dummy&&e.forEach(S.predecessors(D),function(B){var C=S.node(B);C.dummy&&(C.order<z||C.order>P)&&u(E,B,D)})})}function I(O,A){var U=-1,z,P=0;return e.forEach(A,function(D,V){if(S.node(D).dummy==="border"){var B=S.predecessors(D);B.length&&(z=S.node(B[0]).order,T(A,P,V,U,z),P=V,U=z)}T(A,P,A.length,z,O.length)}),A}return e.reduce(k,I),E}function l(S,k){if(S.node(k).dummy)return e.find(S.predecessors(k),function(E){return S.node(E).dummy})}function u(S,k,E){if(k>E){var T=k;k=E,E=T}var I=S[k];I||(S[k]=I={}),I[E]=!0}function c(S,k,E){if(k>E){var T=k;k=E,E=T}return e.has(S[k],E)}function h(S,k,E,T){var I={},O={},A={};return e.forEach(k,function(U){e.forEach(U,function(z,P){I[z]=z,O[z]=z,A[z]=P})}),e.forEach(k,function(U){var z=-1;e.forEach(U,function(P){var D=T(P);if(D.length){D=e.sortBy(D,function(L){return A[L]});for(var V=(D.length-1)/2,B=Math.floor(V),C=Math.ceil(V);B<=C;++B){var q=D[B];O[P]===P&&z<A[q]&&!c(E,P,q)&&(O[q]=P,O[P]=I[P]=I[q],z=A[q])}}})}),{root:I,align:O}}function p(S,k,E,T,I){var O={},A=d(S,k,E,I),U=I?"borderLeft":"borderRight";function z(V,B){for(var C=A.nodes(),q=C.pop(),L={};q;)L[q]?V(q):(L[q]=!0,C.push(q),C=C.concat(B(q))),q=C.pop()}function P(V){O[V]=A.inEdges(V).reduce(function(B,C){return Math.max(B,O[C.v]+A.edge(C))},0)}function D(V){var B=A.outEdges(V).reduce(function(q,L){return Math.min(q,O[L.w]-A.edge(L))},Number.POSITIVE_INFINITY),C=S.node(V);B!==Number.POSITIVE_INFINITY&&C.borderType!==U&&(O[V]=Math.max(O[V],B))}return z(P,A.predecessors.bind(A)),z(D,A.successors.bind(A)),e.forEach(T,function(V){O[V]=O[E[V]]}),O}function d(S,k,E,T){var I=new n,O=S.graph(),A=_(O.nodesep,O.edgesep,T);return e.forEach(k,function(U){var z;e.forEach(U,function(P){var D=E[P];if(I.setNode(D),z){var V=E[z],B=I.edge(V,D);I.setEdge(V,D,Math.max(A(S,P,z),B||0))}z=P})}),I}function m(S,k){return e.minBy(e.values(k),function(E){var T=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;return e.forIn(E,function(O,A){var U=b(S,A)/2;T=Math.max(O+U,T),I=Math.min(O-U,I)}),T-I})}function y(S,k){var E=e.values(k),T=e.min(E),I=e.max(E);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(A){var U=O+A,z=S[U],P;if(z!==k){var D=e.values(z);P=A==="l"?T-e.min(D):I-e.max(D),P&&(S[U]=e.mapValues(z,function(V){return V+P}))}})})}function w(S,k){return e.mapValues(S.ul,function(E,T){if(k)return S[k.toLowerCase()][T];var I=e.sortBy(e.map(S,T));return(I[1]+I[2])/2})}function N(S){var k=r.buildLayerMatrix(S),E=e.merge(i(S,k),o(S,k)),T={},I;e.forEach(["u","d"],function(A){I=A==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(U){U==="r"&&(I=e.map(I,function(V){return e.values(V).reverse()}));var z=(A==="u"?S.predecessors:S.successors).bind(S),P=h(S,I,E,z),D=p(S,I,P.root,P.align,U==="r");U==="r"&&(D=e.mapValues(D,function(V){return-V})),T[A+U]=D})});var O=m(S,T);return y(T,O),w(T,S.graph().align)}function _(S,k,E){return function(T,I,O){var A=T.node(I),U=T.node(O),z=0,P;if(z+=A.width/2,e.has(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":P=-A.width/2;break;case"r":P=A.width/2;break}if(P&&(z+=E?P:-P),P=0,z+=(A.dummy?k:S)/2,z+=(U.dummy?k:S)/2,z+=U.width/2,e.has(U,"labelpos"))switch(U.labelpos.toLowerCase()){case"l":P=U.width/2;break;case"r":P=-U.width/2;break}return P&&(z+=E?P:-P),P=0,z}}function b(S,k){return S.node(k).width}return sv}var iv,EE;function L4(){if(EE)return iv;EE=1;var e=lt(),n=fn(),r=P4().positionX;iv=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 iv}var ov,NE;function $4(){if(NE)return ov;NE=1;var e=lt(),n=y4(),r=w4(),i=_4(),o=fn().normalizeRanks,l=b4(),u=fn().removeEmptyRanks,c=S4(),h=k4(),p=E4(),d=O4(),m=L4(),y=fn(),w=nr().Graph;ov=N;function N($,Q){var ne=Q&&Q.debugTiming?y.time:y.notime;ne("layout",function(){var oe=ne(" buildLayoutGraph",function(){return z($)});ne(" runLayout",function(){_(oe,ne)}),ne(" updateInputGraph",function(){b($,oe)})})}function _($,Q){Q(" makeSpaceForEdgeLabels",function(){P($)}),Q(" removeSelfEdges",function(){H($)}),Q(" acyclic",function(){n.run($)}),Q(" nestingGraph.run",function(){c.run($)}),Q(" rank",function(){i(y.asNonCompoundGraph($))}),Q(" injectEdgeLabelProxies",function(){D($)}),Q(" removeEmptyRanks",function(){u($)}),Q(" nestingGraph.cleanup",function(){c.cleanup($)}),Q(" normalizeRanks",function(){o($)}),Q(" assignRankMinMax",function(){V($)}),Q(" removeEdgeLabelProxies",function(){B($)}),Q(" normalize.run",function(){r.run($)}),Q(" parentDummyChains",function(){l($)}),Q(" addBorderSegments",function(){h($)}),Q(" order",function(){d($)}),Q(" insertSelfEdges",function(){J($)}),Q(" adjustCoordinateSystem",function(){p.adjust($)}),Q(" position",function(){m($)}),Q(" positionSelfEdges",function(){M($)}),Q(" removeBorderNodes",function(){Z($)}),Q(" normalize.undo",function(){r.undo($)}),Q(" fixupEdgeLabelCoords",function(){L($)}),Q(" undoCoordinateSystem",function(){p.undo($)}),Q(" translateGraph",function(){C($)}),Q(" assignNodeIntersects",function(){q($)}),Q(" reversePoints",function(){re($)}),Q(" acyclic.undo",function(){n.undo($)})}function b($,Q){e.forEach($.nodes(),function(ne){var oe=$.node(ne),fe=Q.node(ne);oe&&(oe.x=fe.x,oe.y=fe.y,Q.children(ne).length&&(oe.width=fe.width,oe.height=fe.height))}),e.forEach($.edges(),function(ne){var oe=$.edge(ne),fe=Q.edge(ne);oe.points=fe.points,e.has(fe,"x")&&(oe.x=fe.x,oe.y=fe.y)}),$.graph().width=Q.graph().width,$.graph().height=Q.graph().height}var S=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],T=["width","height"],I={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},U=["labelpos"];function z($){var Q=new w({multigraph:!0,compound:!0}),ne=Y($.graph());return Q.setGraph(e.merge({},k,G(ne,S),e.pick(ne,E))),e.forEach($.nodes(),function(oe){var fe=Y($.node(oe));Q.setNode(oe,e.defaults(G(fe,T),I)),Q.setParent(oe,$.parent(oe))}),e.forEach($.edges(),function(oe){var fe=Y($.edge(oe));Q.setEdge(oe,e.merge({},A,G(fe,O),e.pick(fe,U)))}),Q}function P($){var Q=$.graph();Q.ranksep/=2,e.forEach($.edges(),function(ne){var oe=$.edge(ne);oe.minlen*=2,oe.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?oe.width+=oe.labeloffset:oe.height+=oe.labeloffset)})}function D($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);if(ne.width&&ne.height){var oe=$.node(Q.v),fe=$.node(Q.w),te={rank:(fe.rank-oe.rank)/2+oe.rank,e:Q};y.addDummyNode($,"edge-proxy",te,"_ep")}})}function V($){var Q=0;e.forEach($.nodes(),function(ne){var oe=$.node(ne);oe.borderTop&&(oe.minRank=$.node(oe.borderTop).rank,oe.maxRank=$.node(oe.borderBottom).rank,Q=e.max(Q,oe.maxRank))}),$.graph().maxRank=Q}function B($){e.forEach($.nodes(),function(Q){var ne=$.node(Q);ne.dummy==="edge-proxy"&&($.edge(ne.e).labelRank=ne.rank,$.removeNode(Q))})}function C($){var Q=Number.POSITIVE_INFINITY,ne=0,oe=Number.POSITIVE_INFINITY,fe=0,te=$.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(Re){var ye=Re.x,ke=Re.y,Ye=Re.width,we=Re.height;Q=Math.min(Q,ye-Ye/2),ne=Math.max(ne,ye+Ye/2),oe=Math.min(oe,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach($.nodes(),function(Re){ve($.node(Re))}),e.forEach($.edges(),function(Re){var ye=$.edge(Re);e.has(ye,"x")&&ve(ye)}),Q-=ce,oe-=Ce,e.forEach($.nodes(),function(Re){var ye=$.node(Re);ye.x-=Q,ye.y-=oe}),e.forEach($.edges(),function(Re){var ye=$.edge(Re);e.forEach(ye.points,function(ke){ke.x-=Q,ke.y-=oe}),e.has(ye,"x")&&(ye.x-=Q),e.has(ye,"y")&&(ye.y-=oe)}),te.width=ne-Q+ce,te.height=fe-oe+Ce}function q($){e.forEach($.edges(),function(Q){var ne=$.edge(Q),oe=$.node(Q.v),fe=$.node(Q.w),te,ce;ne.points?(te=ne.points[0],ce=ne.points[ne.points.length-1]):(ne.points=[],te=fe,ce=oe),ne.points.unshift(y.intersectRect(oe,te)),ne.points.push(y.intersectRect(fe,ce))})}function L($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);if(e.has(ne,"x"))switch((ne.labelpos==="l"||ne.labelpos==="r")&&(ne.width-=ne.labeloffset),ne.labelpos){case"l":ne.x-=ne.width/2+ne.labeloffset;break;case"r":ne.x+=ne.width/2+ne.labeloffset;break}})}function re($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);ne.reversed&&ne.points.reverse()})}function Z($){e.forEach($.nodes(),function(Q){if($.children(Q).length){var ne=$.node(Q),oe=$.node(ne.borderTop),fe=$.node(ne.borderBottom),te=$.node(e.last(ne.borderLeft)),ce=$.node(e.last(ne.borderRight));ne.width=Math.abs(ce.x-te.x),ne.height=Math.abs(fe.y-oe.y),ne.x=te.x+ne.width/2,ne.y=oe.y+ne.height/2}}),e.forEach($.nodes(),function(Q){$.node(Q).dummy==="border"&&$.removeNode(Q)})}function H($){e.forEach($.edges(),function(Q){if(Q.v===Q.w){var ne=$.node(Q.v);ne.selfEdges||(ne.selfEdges=[]),ne.selfEdges.push({e:Q,label:$.edge(Q)}),$.removeEdge(Q)}})}function J($){var Q=y.buildLayerMatrix($);e.forEach(Q,function(ne){var oe=0;e.forEach(ne,function(fe,te){var ce=$.node(fe);ce.order=te+oe,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode($,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++oe,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function M($){e.forEach($.nodes(),function(Q){var ne=$.node(Q);if(ne.dummy==="selfedge"){var oe=$.node(ne.e.v),fe=oe.x+oe.width/2,te=oe.y,ce=ne.x-fe,Ce=oe.height/2;$.setEdge(ne.e,ne.label),$.removeNode(Q),ne.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}],ne.label.x=ne.x,ne.label.y=ne.y}})}function G($,Q){return e.mapValues(e.pick($,Q),Number)}function Y($){var Q={};return e.forEach($,function(ne,oe){Q[oe.toLowerCase()]=ne}),Q}return ov}var av,CE;function q4(){if(CE)return av;CE=1;var e=lt(),n=fn(),r=nr().Graph;av={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 av}var lv,TE;function D4(){return TE||(TE=1,lv="0.8.5"),lv}var uv,jE;function F4(){return jE||(jE=1,uv={graphlib:nr(),layout:$4(),debug:q4(),util:{time:fn().time,notime:fn().notime},version:D4()}),uv}var z4=F4();const RE=$v(z4),po=240,Cu=130,oo=74,Ju=72,AE=oo+Ju;function B4(e,n){var i;let r=po;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??po);return r}const IT=420,U4=2;function ba(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function H4(e,n){return((n==null?void 0:n.get(e))??0)>0?IT:0}function W4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function Sa(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??po)+H4(e,r),h:Math.max((i==null?void 0:i.height)??Cu,W4(e,r))}}function V4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function G4(e,n,r,i,o,l){const u=new RE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(S=>!o.has(S)),h=new Set(c);for(const S of c){const{w:k,h:E}=Sa(S,i,l);u.setNode(S,{width:k,height:E})}for(const S of n)h.has(S.source)&&h.has(S.target)&&u.setEdge(S.source,S.target);RE.layout(u);const p=new Map;let d=1/0,m=1/0,y=-1/0,w=-1/0;for(const S of c){const k=u.node(S);if(!k)continue;const E=i.get(S),T=(E==null?void 0:E.width)??po,I=(E==null?void 0:E.height)??Cu,O=Sa(S,i,l),A=k.x-O.w/2,U=k.y-O.h/2;p.set(S,{x:A,y:U}),A<d&&(d=A),U<m&&(m=U),A+T>y&&(y=A+T),U+I>w&&(w=U+I)}if(Number.isFinite(d)&&Number.isFinite(m))for(const[S,k]of p)p.set(S,{x:k.x-d,y:k.y-m});const N=Number.isFinite(y)?y-d:0,_=Number.isFinite(w)?w-m:0;let b=null;for(const S of e){const k=o.get(S);if(!k)continue;const E=i.get(S),T=(E==null?void 0:E.width)??po,I=(E==null?void 0:E.height)??Cu;b=b===null?{minX:k.x,minY:k.y,maxX:k.x+T,maxY:k.y+I}:{minX:Math.min(b.minX,k.x),minY:Math.min(b.minY,k.y),maxX:Math.max(b.maxX,k.x+T),maxY:Math.max(b.maxY,k.y+I)}}return{positions:p,width:N,height:_,pinnedBox:b}}function Y4(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 S of e){const k=ba(S),E=c.get(k);E?E.push(S.id):c.set(k,[S.id])}const p=Array.from(c.keys()).sort().map(S=>({sid:S,...G4(c.get(S),n,i,l,o,u)})),d=B4(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=S=>{const k=[[]];let E=0;for(const T of p)k.length<S&&E>0&&E+T.height>m&&(k.push([]),E=0),k[k.length-1].push(T),E+=T.height+AE;return k},w=S=>S.reduce((k,E)=>Math.max(k,E.width),0)+IT;let N=y(r.availableWidth?U4: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 b=0;for(const S of N){const k=w(S);let E=0;for(const{positions:T,height:I,pinnedBox:O}of S){for(const[U,z]of T)_.set(U,{x:z.x+b,y:z.y+E});let A=E+I;O&&O.maxY>A&&O.minX<b+k&&b<O.maxX&&(A=O.maxY),E=A+AE}b+=k+d}return e.map(S=>{const k=o.get(S.id);if(k)return{...S,position:k};const E=_.get(S.id);return E?{...S,position:E}:S})}function K4(e,n,r,i,o){const u=oo+Ju,c=60,h=w=>Sa(w,i,o),p=new Map(e.map(w=>[w.id,ba(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:b}=h(w),S=p.get(w)??"_default";if(r.has(w)){d.push({x:N.x,y:N.y,w:_,h:b,sid:S});continue}let k=N.y;for(let E=0;E<d.length+1;E++){const T=d.find(I=>{const O=I.sid===S?24:c,A=I.sid===S?24:u;return N.x<I.x+I.w+O&&I.x<N.x+_+O&&k<I.y+I.h+A&&I.y<k+b+A});if(!T)break;k=T.y+T.h+(T.sid===S?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:b,sid:S})}return y}function X4(e,n,r,i,o,l){const u=_=>Sa(_,i,l),c=_=>r.get(_)??n.get(_),h=new Map;for(const _ of e){if(!c(_.id))continue;const b=ba(_),S=h.get(b);S?S.push(_):h.set(b,[_])}const p=new Set;for(const[_,b]of h)b.every(S=>o.has(S.id)&&!r.has(S.id))&&p.add(_);const d=new Map,m=[];for(const _ of e){const b=c(_.id);if(!b)continue;const{w:S,h:k}=u(_.id),E=ba(_);p.has(E)?(d.get(E)??d.set(E,[]).get(E)).push(_):m.push({x:b.x,y:b.y,w:S,h:k})}if(d.size===0)return[];const y=oo+Ju,w=(_,b,S,k)=>m.some(E=>_<E.x+E.w+oo&&E.x<_+S+oo&&b<E.y+E.h+y&&E.y<b+k+y),N=[];for(const _ of[...d.keys()].sort()){const b=d.get(_);let S=1/0,k=1/0,E=-1/0,T=-1/0;for(const D of b){const V=c(D.id),{w:B,h:C}=u(D.id);S=Math.min(S,V.x),k=Math.min(k,V.y),E=Math.max(E,V.x+B),T=Math.max(T,V.y+C)}const I=E-S,O=T-k,A=[...new Set(m.map(D=>Math.round(D.x)))].sort((D,V)=>D-V),U=A.length?A:[S],z=[0,...m.map(D=>D.y+D.h+y)].sort((D,V)=>D-V);let P=null;e:for(const D of U)for(const V of z){if(V>=k)break;if(!w(D,V,I,O)){P={x:D,y:V};break e}}if(P){const D=P.x-S,V=P.y-k;for(const B of b){const C=c(B.id);n.set(B.id,{x:C.x+D,y:C.y+V})}N.push(_)}for(const D of b){const V=c(D.id),{w:B,h:C}=u(D.id);m.push({x:V.x,y:V.y,w:B,h:C})}}return N}function Q4(e,n,r,i,o,l=!1,u){const p=oo+Ju+1,d=8,m=1.75,y=200,w=.7,N=.01,_=P=>Sa(P,i,u),b=P=>r.get(P)??n.get(P),S=new Map;for(const P of e){if(!b(P.id))continue;const D=ba(P),V=S.get(D);V?V.push(P):S.set(D,[P])}const k=[],E=new Set,T=new Set,I=o.size===0;for(const P of[...S.keys()].sort()){const D=S.get(P);let V=1/0,B=1/0,C=-1/0,q=-1/0,L=!1;for(const J of D){const M=b(J.id),{w:G,h:Y}=_(J.id);V=Math.min(V,M.x),B=Math.min(B,M.y),C=Math.max(C,M.x+G),q=Math.max(q,M.y+Y),r.has(J.id)&&(L=!0)}const re=C-V,Z=q-B;T.add(P);const H=o.get(P);H&&(re>H.w+d||Z>H.h+d)&&E.add(P),o.set(P,{w:re,h:Z}),k.push({sid:P,members:D.map(J=>J.id),x:V,y:B,w:re,h:Z,anchored:L,mass:1})}for(const P of[...o.keys()])T.has(P)||o.delete(P);if(l||I)return[];let O=!1;for(let P=0;P<k.length&&!O;P++)for(let D=P+1;D<k.length;D++){const V=k[P],B=k[D];if(!(V.anchored&&B.anchored)&&Math.abs(V.x+V.w/2-(B.x+B.w/2))<(V.w+B.w)/2+61&&Math.abs(V.y+V.h/2-(B.y+B.h/2))<(V.h+B.h)/2+p){O=!0;break}}if(E.size===0&&!O)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/(po*Cu));const A=new Map(k.map(P=>[P.sid,P.x])),U=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const D=new Map,V=new Map;let B=0;for(let C=0;C<k.length;C++)for(let q=C+1;q<k.length;q++){const L=k[C],re=k[q];if(L.anchored&&re.anchored)continue;const Z=L.x+L.w/2,H=L.y+L.h/2,J=re.x+re.w/2,M=re.y+re.h/2,G=(L.w+re.w)/2+61-Math.abs(Z-J),Y=(L.h+re.h)/2+p-Math.abs(H-M);if(G<=0||Y<=0)continue;const $=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.x<=0),Q=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.y<=0),ne=(Fe,Je,Xe)=>{const Mt=Fe===Je,ut=Mt?L.sid<re.sid?-1:1:Math.sign(Fe-Je);return Xe(L,ut)||Xe(re,-ut)?ut:Mt&&(Xe(L,-ut)||Xe(re,ut))?-ut:0},oe=ne(Z,J,$),fe=ne(H,M,Q),te=oe!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||G*m<Y),[ve,Re,ye,ke]=Ce?[oe,G,D,$]:[fe,Y,V,Q],Ye=ke(L,ve),we=ke(re,-ve),_e=L.mass,Be=re.mass,it=Ye?we?Be/(_e+Be):1:0,pt=we?Ye?_e/(_e+Be):1:0,Ze=Re*w;ye.set(L.sid,(ye.get(L.sid)??0)+ve*Ze*it),ye.set(re.sid,(ye.get(re.sid)??0)-ve*Ze*pt),B+=Ze}for(const C of k)C.anchored||(C.x=Math.max(0,C.x+(D.get(C.sid)??0)),C.y=Math.max(0,C.y+(V.get(C.sid)??0)));if(B<N)break}const z=[];for(const P of k){const D=P.x-A.get(P.sid),V=P.y-U.get(P.sid);if(!(Math.abs(D)<1&&Math.abs(V)<1)){for(const B of P.members){if(r.has(B))continue;const C=n.get(B);C&&n.set(B,{x:C.x+D,y:C.y+V})}z.push(P.sid)}}return z}const Z4=600;function Iv(e,n){return!(e.exitAt!=null&&n-e.exitAt>Z4||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function J4(e,n){const r=new Set;for(const i of e.agents.values())Iv(i,n)&&r.add(i.id);return r}function e5(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 t5(e,n,r=0){if(!e)return!1;for(const i of n)if(e5(e,i,r))return!0;return!1}const MT="sessionGroup";function n5(e,n){var i;if(e.type===MT)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const r5="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function s5(e){if(e.checkDisabled)return r5;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 i5(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 o5(e){const n=e.kind==="restart"?`v${e.to} is installed and waiting for a restart`:`v${e.to} is available on npm`;return`Version v${e.from}, ${n} — ${e.open?"hide":"show"} the notice`}function a5(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."}}const Mv={kind:"assumed",claude:!0,codex:!0};function l5(e){if(!e||typeof e!="object")return Mv;const n=e.providers;if(!n||typeof n!="object")return Mv;const r=n;return{kind:"reported",claude:r.claude!==!1,codex:r.codex!==!1}}function OT(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function u5(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${OT(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 c5(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:`${OT(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 PT(e,n){return e!==""&&n>0}function d5(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:PT(e,n)}}function Ov(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 f5(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function h5(e,n,r){const i=new Date(e),o=Ov(n-e);return{label:f5(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function aa(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const p5={agent:KP,sessionGroup:uL},LT="react-flow__node";function IE(e){var n,r;return!!e&&((r=(n=e.classList)==null?void 0:n.contains)==null?void 0:r.call(n,LT))===!0}function m5(e){try{const n=document.querySelector(`.${LT}[data-id="${CSS.escape(e)}"]`);n==null||n.focus({preventScroll:!0})}catch{}}const g5=420,au=18,v5=9e4,y5=200,w5=5*6e4,x5=6,_5=2*6e4,Sy="agent-dag.layout",ky="agent-dag.viewport",$T="agent-dag.summariesDismissed",qT="agent-dag.sessionListOpen",DT="agent-dag.detailOpen",FT="agent-dag.usagePanelOpen",ME="agent-dag.accountsPanelOpen",OE="agent-dag.versionNoticeDismissed",PE="agent-dag.oldNameNoticeDismissed",b5=15*6e4,LE={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:"},$E="agent-dag.autoRestart",qE="agent-dag.bundleReloadedFor";function S5(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(qT)==="1"}catch{return!1}}function k5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(qT,e?"1":"0")}catch{}}function E5(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(DT)==="1"}catch{return!1}}function N5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(DT,e?"1":"0")}catch{}}function C5(){const e=AC(FT);return e===null?!0:e==="1"}function T5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(FT,e?"1":"0")}catch{}}function j5(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem($T);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 DE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem($T,JSON.stringify(r))}catch{}}function R5(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Sy);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 cv(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(Sy,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function A5(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(ky);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 I5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(ky,JSON.stringify(e))}catch{}}function FE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Sy)}catch{}try{window.localStorage.removeItem(ky)}catch{}}}function M5(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=`${en}-${p}-${n.slice(0,8)}.json`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Pv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Lv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},zT=bC;function BT(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 O5(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 P5(e,n,r,i,o,l,u,c,h,p,d,m,y,w,N,_,b,S,k){const E=[],T=[],I=new Set;if(l)for(const B of e.agents.values())S.has(B.id)&&BT(B,l)&&I.add(B.id);const O=PT(l,I.size);for(const B of e.agents.values()){if(!S.has(B.id))continue;const C=O&&!I.has(B.id),q=B.exitAt!=null,L=b!=null&&!b.has(B.id),re=[C?"rf-dim":"",q?"rf-exiting":"",L?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(B.id);if(E.push({id:B.id,type:"agent",position:{x:0,y:0},data:{...B,now:n,onOpenContext:k},className:re,...Z?{width:Z.width,height:Z.height}:null}),B.parentId&&S.has(B.parentId)){const H=ty(B.sessionId),J=l&&!I.has(B.id)&&!I.has(B.parentId),M=q,G=_.size>0&&(_.has(B.id)||_.has(B.parentId)),Y=b!=null&&!b.has(B.id)&&!b.has(B.parentId),$=B.state==="active"?2:1.5,Q=G?$+1.5:$,ne=J||M?.2:Y?.12:1,oe=["sess-edge",B.state==="active"?"sess-live":"sess-idle",M?"rf-edge-exiting":"",G?"rf-edge-selected":""].filter(Boolean).join(" ");T.push({id:`e:${B.parentId}->${B.id}`,source:B.parentId,target:B.id,animated:(B.state==="active"||G)&&!J&&!M,type:"smoothstep",style:{"--session-hue":H,strokeWidth:Q,opacity:ne,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:oe})}}const A=new Map;for(const B of e.agents.values())B.tools.length>0&&A.set(B.id,Math.min(4,B.tools.length));const U=`${w}#lanes:${V4(A)}`,z=E.filter(B=>r$(B.id,o,m,y));if(z.length>0||U!==N.current){if(z.length>0){const B=Y4(E,T,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:A});for(const C of B)RC(C.id,m,y)&&i$(C.id,C.position,m,y);X4(E,m,o,u,new Set(z.map(C=>C.id)),A)}K4(E,m,o,u,A),N.current=U}const P=Q4(E,m,o,u,c,!p||d,A);P.length>0&&h(P),ru(m,e.agents),ru(y,e.agents),ru(o,e.agents),ru(u,n$(e.agents.values()));const D=[];let V=!1;for(const B of E){let C=o.get(B.id)??m.get(B.id);C||(C=s$(B.id,m,y),V=!0),D.push({...B,position:C})}return V&&(N.current=""),{nodes:D,edges:T}}function L5(){return g.jsx(ey,{children:g.jsx($5,{})})}function $5(){var Wa,Va,Ga,Ya;const e=Ta(),n=R.useRef(Cv()),[,r]=R.useState(0),i=R.useCallback(()=>r(W=>W+1),[]),[o,l]=R.useState(()=>new Set),[u,c]=R.useState(null),[h,p]=R.useState(null),d=R.useCallback((W,K)=>{l(le=>{if(!K)return new Set([W]);const de=new Set(le);return de.has(W)?de.delete(W):de.add(W),de}),c(le=>K&&le===W?le:W)},[]),m=R.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=R.useState(null),[N,_]=R.useState(null),b=R.useCallback(W=>_(W),[]),[S,k]=R.useState(!1),E=R.useRef(j5()),[T,I]=R.useState(S5);R.useEffect(()=>{k5(T)},[T]);const[O,A]=R.useState(E5);R.useEffect(()=>{N5(O)},[O]);const[U,z]=R.useState(C5);R.useEffect(()=>{T5(U)},[U]);const[P,D]=R.useState(()=>{try{const W=window.localStorage.getItem(ME);return W===null?!0:W==="1"}catch{return!0}});R.useEffect(()=>{try{window.localStorage.setItem(ME,P?"1":"0")}catch{}},[P]);const[V,B]=R.useState(null),[C,q]=R.useState(!1),[L,re]=R.useState(0),[Z,H]=R.useState(0);R.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(B(W.enabled===!0),re((W.foreign??[]).filter(K=>K.worksHere).length),H(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const J=R.useCallback(async()=>{q(!0);try{const K=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!V})})).json().catch(()=>null);K!=null&&K.ok&&B(K.enabled===!0),fetch("/api/sound-hook").then(le=>le.ok?le.json():null).then(le=>{le!=null&&le.ok&&(re((le.foreign??[]).filter(de=>de.worksHere).length),H(typeof le.parked=="number"?le.parked:0))}).catch(()=>{})}catch{}finally{q(!1)}},[V]),[M,G]=R.useState(!1),[Y,$]=R.useState(null),[Q,ne]=R.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(OE)??""}catch{return""}}),[oe,fe]=R.useState(!1),te=R.useRef(0),[ce,Ce]=R.useState(!1),ve=R.useCallback((W=!1)=>{W&&(te.current=Date.now(),Ce(!0)),fetch(W?"/api/version?refresh=1":"/api/version").then(K=>K.ok?K.json():null).then(K=>{K&&$(K)}).catch(()=>{}).finally(()=>{W&&Ce(!1)})},[]),Re=R.useCallback(()=>{ve(Date.now()-te.current>=b5)},[ve]);R.useEffect(()=>{ve();const W=window.setInterval(Re,5*6e4),K=()=>{document.visibilityState==="visible"&&Re()};return document.addEventListener("visibilitychange",K),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",K)}},[ve,Re]),R.useEffect(()=>{M&&ve()},[M,ve]);const ye=(Y==null?void 0:Y.notice)??null,[ke,Ye]=R.useState(null),[we,_e]=R.useState(Mv);R.useEffect(()=>{let W=!1;return fetch("/api/health").then(K=>K.ok?K.json():null).then(K=>{W||(_e(l5(K)),!(!K||typeof K.workspace!="string")&&Ye(K.workspace))}).catch(()=>{}),()=>{W=!0}},[M]);const Be=R.useRef(we);Be.current=we;const it=ye?`${ye.kind}:${ye.to}`:"",pt=ye!=null&&Q!==it,Ze=R.useCallback(()=>{if(!ye)return;const W=Q===it?"":it;ne(W);try{window.localStorage.setItem(OE,W)}catch{}},[ye,it,Q]),[Fe,Je]=R.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(PE)??""}catch{return""}}),Xe=Y!=null&&Y.invokedAs&&Y.invokedAs!==en?Y.invokedAs:null,Mt=Xe!=null&&Fe!==Xe,ut=R.useCallback(()=>{if(Xe){Je(Xe);try{window.localStorage.setItem(PE,Xe)}catch{}}},[Xe]),Qe=((Wa=Y==null?void 0:Y.upgrade)==null?void 0:Wa.state)??"idle",Ot=W3(Y==null?void 0:Y.upgrade),Ft=R.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);R.useEffect(()=>{if(Qe!=="running")return;const W=window.setInterval(ve,3e3);return()=>window.clearInterval(W)},[Qe,ve]);const et=R.useCallback(async()=>{var le;const W=Y==null?void 0:Y.command;if(!W)return;let K=!1;try{K=await Promise.race([((le=navigator.clipboard)==null?void 0:le.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{K=!1}if(!K)try{const de=document.createElement("textarea");de.value=W,de.setAttribute("readonly",""),de.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(de),de.select(),K=document.execCommand("copy"),de.remove()}catch{K=!1}K&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[Y==null?void 0:Y.command]),St=R.useCallback(()=>{I(W=>(W||D(!1),!W))},[]),mt=R.useCallback(()=>{D(W=>(W||I(!1),!W))},[]),[wt,hn]=R.useState(!1),[Yt,Pt]=R.useState(0),Sn=R.useRef(null),[gr,kn]=R.useState(!1),zt=R.useRef(null),[Fn,pn]=R.useState(0),vr=R.useRef(u$()),[Wr,gi]=R.useState(!1),Vr=R.useCallback(()=>{const W=vr.current,K=W.setPaused(!W.paused);for(const le of K)n.current=qx(n.current,le);gi(W.paused)},[]),[ct,vi]=R.useState(Date.now()),[mn,Cs]=R.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem($E)!=="0"}catch{return!0}}),yr=R.useCallback(()=>{Cs(W=>{const K=!W;try{window.localStorage.setItem($E,K?"1":"0")}catch{}return K})},[]),[zn,En]=R.useState(!1),[Gr,Yr]=R.useState("restart"),[Kr,yi]=R.useState(null),ir=R.useRef(!1),Ts=R.useRef(null),Nn=R.useRef(0),wr=R.useCallback(async W=>{if(ir.current)return;const K=(W==null?void 0:W.upgrade)===!0;ir.current=!0,Ts.current=Ot;const le=++Nn.current;Yr(K?"npx":"restart"),En(!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:K})})}catch{}window.setTimeout(()=>{if(Nn.current===le&&ir.current){ir.current=!1,En(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},K?18e4:3e4)},[ye==null?void 0:ye.to,Ot]),js=R.useRef(null);R.useEffect(()=>{let W=!1;for(const le of n.current.agents.values())if(le.state==="active"){W=!0;break}const K=G3({enabled:mn,kind:ye==null?void 0:ye.kind,canRestart:(Y==null?void 0:Y.canRestart)===!0,busy:W,idleSince:js.current,now:ct});js.current=K.idleSince,K.restart&&wr()},[mn,ye==null?void 0:ye.kind,Y==null?void 0:Y.canRestart,ct,wr]),R.useEffect(()=>{const W=Y==null?void 0:Y.running;let K=null,le=null;try{K=window.sessionStorage.getItem("agent-dag.restartPending"),le=window.sessionStorage.getItem(qE)}catch{return}const de=H3({bundle:"1.35.10",running:W,pending:K,lastTried:le});if(de==="reload"){try{window.sessionStorage.setItem(qE,W??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}ir.current=!1,En(!1),yi(W??null);const xe=window.setTimeout(()=>yi(null),6e3);return()=>window.clearTimeout(xe)},[Y==null?void 0:Y.running]),R.useEffect(()=>{if(zn&&V3({asked:Ts.current,reported:Ot})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}ir.current=!1,En(!1)}},[zn,Ot]);const Rs=R.useRef(R5()).current;R.useRef(!1);const jt=R.useRef(new Map(Rs.positions.filter(([W])=>Rs.pins.includes(W)))),xr=R.useRef(null),_r=R.useState(()=>A5())[0],[Kt,Xr]=R.useState(""),[wi,nt]=R.useState(()=>new Set),[br,Qr]=R.useState(p$),[As,Zr]=R.useState(!1),Jr=R.useRef(null);R.useEffect(()=>{document.documentElement.dataset.theme=br;try{window.localStorage.setItem(IC,br)}catch{}},[br]),R.useEffect(()=>{if(!_r)return;const W=window.setTimeout(()=>{try{e.setViewport(_r,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,_r]);const Is=R.useRef(!0);R.useEffect(()=>{const W=new EventSource("/events"),K=l$(i,{now:()=>Date.now(),setTimeout:(le,de)=>window.setTimeout(le,de),clearTimeout:le=>window.clearTimeout(le)});return W.addEventListener("open",()=>{G(!0),Zr(!0)}),W.addEventListener("error",()=>G(!1)),W.addEventListener("replay-end",()=>{Is.current=!1,K.flush()}),W.addEventListener("hook",le=>{try{const de=JSON.parse(le.data);if(!vr.current.accept(de))return;n.current=qx(n.current,de),de.replay===!0||Is.current||Date.now()-de.receivedAt>3e4?K.replay():K.live()}catch{}}),()=>{W.close(),K.cancel()}},[i]),R.useEffect(()=>{const W=setInterval(()=>{const K=Date.now();vi(K);let le=hP(n.current,K,v5);mP(n.current,K,pP)&&(le=!0),dP(n.current,K,y5,w5)&&(le=!0),fP(n.current,K,x5,_5)&&(le=!0),le&&i()},250);return()=>clearInterval(W)},[i]);const or=R.useRef(null),kt=R.useRef(0),Ms=420,gt=R.useCallback((W=500)=>{try{const Ee=document.querySelector(".canvas-wrap"),Oe=Array.from(document.querySelectorAll(".react-flow__node")).filter(ot=>ot.offsetWidth>0);if(!Ee||Oe.length===0)return;const ze=Ee.getBoundingClientRect(),Ge=e.getViewport();if(!Number.isFinite(Ge.zoom)||Ge.zoom<=0)return;const Ve=ot=>(ot-ze.left-Ge.x)/Ge.zoom,qe=ot=>(ot-ze.top-Ge.y)/Ge.zoom,Tn=Oe.map(ot=>ot.getBoundingClientRect()),Us=Math.min(...Tn.map(ot=>Ve(ot.left))),Ro=Math.max(...Tn.map(ot=>Ve(ot.right))),Hs=Math.min(...Tn.map(ot=>qe(ot.top))),Ao=Math.max(...Tn.map(ot=>qe(ot.bottom))),Ka=Ro-Us,Ci=Ao-Hs;if(!(Ka>0&&Ci>0))return;const yn=Math.max(.2,Math.min(1,(ze.width-160)/(Ka+Ms)*.86,(ze.height-160)/Ci*.86));e.setViewport({x:80-Us*yn,y:Math.max(80,(ze.height-Ci*yn)/2)-Hs*yn,zoom:yn},{duration:W}),kt.current=Date.now(),window.setTimeout(()=>{try{const ot={x:80-Us*yn,y:Math.max(80,(ze.height-Ci*yn)/2)-Hs*yn,zoom:yn},Xa=e.getViewport();(Math.abs(Xa.zoom-yn)>.01||Math.abs(Xa.x-ot.x)>2)&&e.setViewport(ot,{duration:0})}catch{}},W+60)}catch{}},[e]),_o=R.useRef(""),bo=R.useRef(null),La=R.useRef(0),Sr=R.useCallback(()=>{La.current=Date.now()},[]),es="agent-dag.autoFitDisabled",gn=R.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(es)==="1"}catch{return!1}})()),[Os,$a]=R.useState(gn.current),qa=R.useCallback(()=>{if(!gn.current){gn.current=!0,$a(!0);try{window.localStorage.setItem(es,"1")}catch{}}},[]),So=R.useCallback(()=>{gn.current=!1,$a(!1);try{window.localStorage.removeItem(es)}catch{}gt(400)},[e,gt]);R.useEffect(()=>{const W=setInterval(()=>{if(gn.current||Date.now()-La.current<800)return;const K=n.current,le=Date.now(),de=[];for(const Ve of K.agents.values())Iv(Ve,le)&&de.push({id:Ve.id});if(de.length===0)return;const xe=e.getViewport(),Ee=window.innerWidth-360,Oe=window.innerHeight-52;let ze=!1,Ge=!1;for(const{id:Ve}of de){const qe=ar.current.get(Ve),Tn=jt.current.get(Ve)??Xt.current.get(Ve);if(!qe||!Tn)continue;Ge=!0;const Us=Tn.x*xe.zoom+xe.x,Ro=Tn.y*xe.zoom+xe.y,Hs=(Tn.x+qe.width)*xe.zoom+xe.x,Ao=(Tn.y+qe.height)*xe.zoom+xe.y;if(Hs>0&&Us<Ee&&Ao>0&&Ro<Oe){ze=!0;break}}Ge&&!ze&>(600)},1500);return()=>clearInterval(W)},[e]);const xi=R.useRef(!1),ar=R.useRef(new Map),ts=R.useRef(0),ec=R.useCallback(W=>{const K=ar.current;let le=!1;for(const de of W.nodeInternals.values()){const xe=de.width,Ee=de.height;if(xe==null||Ee==null)continue;const Oe=K.get(de.id);Oe?(Math.abs(Oe.height-Ee)>4||Math.abs(Oe.width-xe)>4)&&(K.set(de.id,{width:xe,height:Ee}),le=!0):(K.set(de.id,{width:xe,height:Ee}),le=!0)}return le&&(ts.current+=1),ts.current},[]),_i=Ke(ec),[He,Da]=R.useState(0);R.useEffect(()=>{let W=0;const K=()=>{const de=ar.current;let xe=!1;for(const Ee of document.querySelectorAll(".react-flow__node[data-id]")){const Oe=Ee.getAttribute("data-id");if(!Oe)continue;const ze=Ee.offsetWidth,Ge=Ee.offsetHeight;if(!ze||!Ge)continue;const Ve=de.get(Oe);(!Ve||Math.abs(Ve.width-ze)>4||Math.abs(Ve.height-Ge)>4)&&(de.set(Oe,{width:ze,height:Ge}),xe=!0)}xe&&Da(Ee=>Ee+1)};if(xi.current)return;let le=0;return document.visibilityState==="hidden"?le=window.setTimeout(K,32):W=requestAnimationFrame(K),()=>{cancelAnimationFrame(W),window.clearTimeout(le)}});const Xt=R.useRef(new Map(Rs.positions)),ko=R.useRef(new Set),bi=R.useRef(""),kr=R.useMemo(()=>{const W=[];for(const K of n.current.agents.values())Iv(K,ct)&&W.push(K.id+(K.parentId?`>${K.parentId}`:""));return W.sort(),`${W.join("|")}#sv${_i}.${He}`},[n.current,n.current.lastSeq,ct,_i,He]),ns=R.useRef(null);R.useEffect(()=>(ns.current!=null&&window.clearTimeout(ns.current),ns.current=window.setTimeout(()=>{cv(Xt.current,jt.current)},1500),()=>{ns.current!=null&&window.clearTimeout(ns.current)}),[kr]),R.useEffect(()=>{if(_o.current===kr)return;const W=_o.current;if(_o.current=kr,!W||gn.current)return;Date.now()-kt.current>1200&>(400),or.current&&window.clearTimeout(or.current),or.current=window.setTimeout(()=>{gn.current||gt(500)},280)},[kr,e,gt]);const Ps=R.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const K of o){const le=O5(n.current,K);if(le)for(const de of le)W.add(de)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),Cn=R.useMemo(()=>J4(n.current,ct),[n.current,n.current.lastSeq,ct]),Bn=R.useRef(null),[vn,Un]=R.useState({w:0,h:0});R.useEffect(()=>{const W=Bn.current;if(!W||typeof ResizeObserver>"u")return;const K=new ResizeObserver(le=>{var xe;const de=(xe=le[0])==null?void 0:xe.contentRect;de&&Un(Ee=>Math.abs(Ee.w-de.width)>40||Math.abs(Ee.h-de.height)>40?{w:de.width,h:de.height}:Ee)});return K.observe(W),Un({w:W.clientWidth,h:W.clientHeight}),()=>K.disconnect()},[]);const Ls=R.useRef(new Map),[rs,lr]=R.useState(!1);R.useEffect(()=>{const W=window.setTimeout(()=>lr(!0),2500);return()=>window.clearTimeout(W)},[]);const[tc,Si]=R.useState(!1),tn=R.useRef(null),[Eo,No]=R.useState(!1),ki=R.useCallback(()=>{tn.current&&(window.clearTimeout(tn.current),tn.current=null),Si(!1)},[]),Fa=R.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{Si(!0),tn.current&&window.clearTimeout(tn.current),tn.current=window.setTimeout(()=>Si(!1),g5+80)})},[]);R.useEffect(()=>()=>{tn.current&&window.clearTimeout(tn.current)},[]);const za=vn.w>0?vn.w*.92:0,ss=vn.h>0?vn.h:0,{nodes:nn,edges:is}=R.useMemo(()=>P5(n.current,ct,za,ss,jt.current,Kt,ar.current,Ls.current,Fa,rs,Eo,Xt.current,ko.current,kr,bi,o,Ps,Cn,b),[n.current,n.current.lastSeq,ct,za,ss,rs,Eo,Kt,kr,o,Ps,Cn,b,Yt]),$s=R.useMemo(()=>{const W=new Map;for(const le of nn){const de=le.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=le.width,Ee=le.height;if(xe==null||Ee==null)continue;const Oe=le.position.x,ze=le.position.y,Ge=Oe+xe,Ve=ze+Ee,qe=W.get(de.sessionId);qe?(qe.minX=Math.min(qe.minX,Oe),qe.minY=Math.min(qe.minY,ze),qe.maxX=Math.max(qe.maxX,Ge),qe.maxY=Math.max(qe.maxY,Ve)):W.set(de.sessionId,{minX:Oe,minY:ze,maxX:Ge,maxY:Ve})}const K=[];for(const[le,de]of W){const xe=de.maxX-de.minX+au*2,Ee=de.maxY-de.minY+au*2;K.push({id:`group:${le}`,type:MT,position:{x:de.minX-au,y:de.minY-au},data:{sessionId:le,w:xe,h:Ee},width:xe,height:Ee,style:{width:xe,height:Ee},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return K},[nn,ct]),nc=R.useMemo(()=>{const W=[...$s,...nn],K=zt.current;return!K||K.size===0?W:W.map(le=>{const de=K.get(le.id);return de?{...le,position:de}:le})},[$s,nn,Fn]),qs=R.useMemo(()=>{if(!Kt)return null;const W=new Set;for(const K of n.current.agents.values())Cn.has(K.id)&&BT(K,Kt)&&W.add(K.id);return W},[n.current,n.current.lastSeq,Kt,Cn]),Hn=R.useMemo(()=>d5(Kt,(qs==null?void 0:qs.size)??0,Cn.size),[Kt,qs,Cn]),Er=R.useMemo(()=>{const W=new Set;for(const K of n.current.agents.values())for(const le of K.tools)W.add(zT(le.name));return Object.keys(Pv).filter(K=>W.has(K))},[n.current,n.current.lastSeq]);R.useEffect(()=>{if(Er.length<=1){kn(!1);return}let W=0;const K=()=>{const le=Sn.current;if(le&&!document.hidden){const de=le.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Oe=>Oe.getBoundingClientRect()),Ee=t5(de,xe,8);kn(Oe=>Oe===Ee?Oe:Ee)}W=window.setTimeout(K,300)};return K(),()=>window.clearTimeout(W)},[Er.length]);const Nr=R.useMemo(()=>{const W=new Map;for(const le of n.current.agents.values())for(const de of le.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ee=xe.indexOf("__"),Oe=Ee>0?xe.slice(0,Ee):xe;W.set(Oe,(W.get(Oe)??0)+1)}const K=[];for(const[le,de]of W){let xe=5381;for(let Ee=0;Ee<le.length;Ee++)xe=(xe<<5)+xe^le.charCodeAt(Ee);K.push({server:le,count:de,hue:Math.abs(xe)%360})}return K.sort((le,de)=>de.count-le.count),K},[n.current,n.current.lastSeq]),Ba=R.useCallback(W=>{nt(K=>{const le=new Set(K);return le.has(W)?le.delete(W):le.add(W),le})},[]),dt=u?n.current.agents.get(u):null,Ds=h?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===h)??null:null,Fs=R.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Cv(),jt.current.clear(),ar.current.clear(),Xt.current.clear(),bi.current="",FE(),m(),i()},[i,m]),Co=R.useRef(S);Co.current=S;const zs=R.useRef(!1);zs.current=Ds!=null||wt||N!=null||y!=null;const Cr=R.useCallback(W=>{const K=K3(W,{confirmOpen:Co.current,modalOpen:zs.current});K==="confirm"?k(!0):K==="clear"&&(k(!1),Fs())},[Fs]),Ei=R.useCallback(()=>{jt.current.clear(),Xt.current.clear(),bi.current="",FE(),i(),window.setTimeout(()=>gt(500),80)},[i,e,gt]),Bt=R.useCallback(()=>gt(500),[gt]),Wn=R.useRef(nn);Wn.current=nn;const Ni=R.useRef(u);Ni.current=u;const Tr=R.useCallback(W=>{const K=Wn.current,le=Q3(K.map(Ee=>({id:Ee.id,x:Ee.position.x,y:Ee.position.y})),Ni.current,W),de=le?K.find(Ee=>Ee.id===le):void 0;if(!de)return;const xe=IE(document.activeElement);d(de.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[de]})}catch{}kt.current=Date.now(),xe&&m5(de.id)},30)},[d,e]),Ua=R.useCallback(W=>{d(W,!1),window.setTimeout(()=>{try{const K=Wn.current.find(le=>le.id===W);K&&e.fitView({padding:.3,duration:500,nodes:[K]}),kt.current=Date.now()}catch{}},60)},[d,e]);R.useEffect(()=>{const W=K=>{var ze,Ge,Ve;const le=K.target,de={tagName:le==null?void 0:le.tagName,isContentEditable:le==null?void 0:le.isContentEditable,role:(ze=le==null?void 0:le.getAttribute)==null?void 0:ze.call(le,"role"),type:le==null?void 0:le.type};if(K.key==="Escape"){const qe=OP({overlayOpen:Eu.depth()>0,typing:ny(de)});qe==="dismiss"?Eu.dismissTop():qe==="blur"?le==null||le.blur():(t$(de)&&(le==null||le.blur()),m());return}if(wC(K))return;const xe=IE(le)?(Ge=le==null?void 0:le.getAttribute)==null?void 0:Ge.call(le,"data-id"):null,Ee=xe&&Wn.current.some(qe=>qe.id===xe)?xe:null,Oe=J3(K,Ee);if(Oe.kind==="activate"){K.preventDefault(),d(Oe.nodeId,Oe.additive);return}if(Oe.kind!=="node"&&!(Oe.nodeId==null&&BP(de))){if(K.key==="/"){K.preventDefault(),(Ve=Jr.current)==null||Ve.focus();return}K.key===" "&&(K.preventDefault(),Vr()),(K.key==="c"||K.key==="C")&&Cr("shortcut"),(K.key==="r"||K.key==="R")&&Ei(),(K.key==="f"||K.key==="F")&&Bt(),(K.key==="l"||K.key==="L")&&St(),(K.key==="h"||K.key==="H")&&hn(qe=>!qe),(K.key==="u"||K.key==="U")&&z(qe=>!qe),(K.key==="a"||K.key==="A")&&Be.current.claude&&mt(),(K.key==="j"||K.key==="J")&&Tr(1),(K.key==="k"||K.key==="K")&&Tr(-1),(K.key==="t"||K.key==="T")&&Qr(qe=>qe==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[Cr,Ei,Bt,m,d,Tr,Vr]);const jr=n.current.agents.size,To=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,Qt=R.useMemo(()=>QL(n.current.agents.values()),[n.current,n.current.lastSeq]),Bs=R.useMemo(()=>ZL(n.current.agents.values()),[n.current,n.current.lastSeq]),jo=R.useRef(null);R.useEffect(()=>{const W=m$({waiting:Qt.length,running:Bs}),K=jo.current;if(jo.current=W,(K==null?void 0:K.title)!==W.title&&(document.title=W.title),(K==null?void 0:K.icon)!==W.icon){const le=document.querySelector('link[rel="icon"]');le&&(le.href=g$[W.icon])}},[Qt.length,Bs]);const[rc,sc]=R.useState(""),Ha=y$(Qt);R.useEffect(()=>{sc(W=>w$(W,Ha))},[Ha]);const Ut=R.useMemo(()=>{let W=0,K=0,le=0,de=0,xe=0,Ee=0,Oe=0,ze=0,Ge=0;for(const Ve of n.current.agents.values()){W+=Ve.usage.inputTokens,K+=Ve.usage.outputTokens,le+=Ve.usage.cacheReadTokens,de+=Ve.usage.cacheCreateTokens;const qe=dn(Ve.usage,Ve.model);xe+=qe.total,Ee+=qe.input,Oe+=qe.output,ze+=qe.cacheRead,Ge+=qe.cacheWrite}return{inT:W,outT:K,cacheR:le,cacheC:de,sum:W+K,cost:{total:xe,input:Ee,output:Oe,cacheRead:ze,cacheWrite:Ge}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsx("a",{className:"skip-link",href:"#canvas",children:"Skip to the canvas"}),g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),g.jsx("h1",{children:en}),ye?g.jsxs("button",{type:"button",className:"v stale",onClick:Ze,"aria-label":o5({...ye,open:pt}),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 W={running:(Y==null?void 0:Y.running)??"1.35.10",latest:Y==null?void 0:Y.latest,latestPending:Y==null?void 0:Y.latestPending,checkedAgo:Y!=null&&Y.checkedAt?Ov(ct-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":i5(W),title:s5(W),children:["v",W.running]})})()]}),dt&&(()=>{const W=dn(dt.usage,dt.model),K=Math.max(0,((dt.endedAt??ct)-dt.startedAt)/1e3),le=dt.state==="active"?ku(W.total,K):null,de=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${dt.label}`,onClick:()=>{try{const xe=nn.find(Ee=>Ee.id===dt.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),kt.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${dt.state}`,children:dt.state==="active"?"live":dt.state}),g.jsx("span",{className:"selected-label",children:dt.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[De(W.total),le?g.jsxs("span",{className:"selected-rate",children:[" · ",le]}):null]}),de>0&&g.jsxs("span",{className:"selected-extra",children:["+",de]}),g.jsx("span",{"aria-hidden":!0,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:Jr,type:"text",placeholder:"Search agents, cwd, tools…",value:Kt,onChange:W=>Xr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Kt?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Xr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),Hn.count&&g.jsx("span",{className:`search-count${Hn.empty?" none":""}`,"aria-live":"polite",title:`${Hn.count} agents on the canvas match “${Kt}”`,children:Hn.count})]}),g.jsxs("span",{className:"status",children:[(()=>{const W=u5({connected:M,paused:Wr,held:vr.current.size});return g.jsx("span",{className:`pill ${W.tone}`,title:W.title,children:W.label})})(),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:To}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:jr}),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"})]}),Ut.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Ut.inT.toLocaleString()} out:${Ut.outT.toLocaleString()} cache-r:${Ut.cacheR.toLocaleString()} cache-c:${Ut.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:qt(Ut.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Nr.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
67
67
|
${Nr.map(W=>` ${W.server}: ${W.count} call${W.count===1?"":"s"}`).join(`
|
|
68
68
|
`)}`,children:[Nr.slice(0,6).map(W=>g.jsx("span",{className:"mcp-dot",style:{"--mcp-hue":W.hue}},W.server)),Nr.length>6&&g.jsxs("span",{className:"mcp-more",children:["+",Nr.length-6]}),g.jsx("span",{className:"lbl",children:"mcp"})]}),Ut.cost.total>0&&(()=>{let W=0,K=0;for(const xe of n.current.agents.values()){if(xe.state!=="active")continue;const Ee=dn(xe.usage,xe.model);W+=Ee.total,K=Math.max(K,((xe.endedAt??ct)-xe.startedAt)/1e3)}const le=K>0?ku(W,K):null,de=`input ${De(Ut.cost.input)} + output ${De(Ut.cost.output)} + cache r ${De(Ut.cost.cacheRead)} + cache w ${De(Ut.cost.cacheWrite)}${le?`
|
|
69
69
|
active burn: ${le}`:""}`;return g.jsxs("span",{className:"stat",title:de,children:[g.jsx("span",{className:"count",children:De(Ut.cost.total)}),g.jsxs("span",{className:"lbl",children:["cost",le?` · ${le}`:""]})]})})()]}),g.jsx("div",{className:"vis-hidden",role:"status","aria-atomic":"true",children:rc}),Qt.length>0&&g.jsxs("button",{type:"button",className:"waiting-stat",onClick:()=>Ua(Qt[0].id),title:`Blocked waiting for you — click to go to the one that has been stuck longest:
|