agent-dag 1.33.77 → 1.33.78
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.
|
@@ -56,7 +56,7 @@ Error generating stack: `+w.message+`
|
|
|
56
56
|
*/var ow;function hR(){if(ow)return Kc;ow=1;var e=oa(),n=fR();function r(h,f){return h===f&&(h!==0||1/h===1/f)||h!==h&&f!==f}var s=typeof Object.is=="function"?Object.is:r,o=n.useSyncExternalStore,l=e.useRef,u=e.useEffect,c=e.useMemo,p=e.useDebugValue;return Kc.useSyncExternalStoreWithSelector=function(h,f,m,y,x){var C=l(null);if(C.current===null){var _={hasValue:!1,value:null};C.current=_}else _=C.current;C=c(function(){function b(P){if(!k){if(k=!0,N=P,P=y(P),x!==void 0&&_.hasValue){var O=_.value;if(x(O,P))return j=O}return j=P}if(O=j,s(N,P))return O;var B=y(P);return x!==void 0&&x(O,B)?(N=P,O):(N=P,j=B)}var k=!1,N,j,M=m===void 0?null:m;return[function(){return b(f())},M===null?void 0:function(){return b(M())}]},[f,m,y,x]);var S=o(h,C[0],C[1]);return u(function(){_.hasValue=!0,_.value=S},[S]),p(S),S},Kc}var aw;function pR(){return aw||(aw=1,Yc.exports=hR()),Yc.exports}var mR=pR();const gR=Zg(mR),vR={},lw=e=>{let n;const r=new Set,s=(f,m)=>{const y=typeof f=="function"?f(n):f;if(!Object.is(y,n)){const x=n;n=m??(typeof y!="object"||y===null)?y:Object.assign({},n,y),r.forEach(C=>C(n,x))}},o=()=>n,p={setState:s,getState:o,getInitialState:()=>h,subscribe:f=>(r.add(f),()=>r.delete(f)),destroy:()=>{(vR?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},h=n=e(s,o,p);return p},yR=e=>e?lw(e):lw,{useDebugValue:wR}=ae,{useSyncExternalStoreWithSelector:xR}=gR,_R=e=>e;function Vk(e,n=_R,r){const s=xR(e.subscribe,e.getState,e.getServerState||e.getInitialState,n,r);return wR(s),s}const uw=(e,n)=>{const r=yR(e),s=(o,l=n)=>Vk(r,o,l);return Object.assign(s,r),s},SR=(e,n)=>e?uw(e,n):uw;function Ct(e,n){if(Object.is(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;if(e instanceof Map&&n instanceof Map){if(e.size!==n.size)return!1;for(const[s,o]of e)if(!Object.is(o,n.get(s)))return!1;return!0}if(e instanceof Set&&n instanceof Set){if(e.size!==n.size)return!1;for(const s of e)if(!n.has(s))return!1;return!0}const r=Object.keys(e);if(r.length!==Object.keys(n).length)return!1;for(const s of r)if(!Object.prototype.hasOwnProperty.call(n,s)||!Object.is(e[s],n[s]))return!1;return!0}var bR={value:()=>{}};function Xl(){for(var e=0,n=arguments.length,r={},s;e<n;++e){if(!(s=arguments[e]+"")||s in r||/[\s.]/.test(s))throw new Error("illegal type: "+s);r[s]=[]}return new Ml(r)}function Ml(e){this._=e}function kR(e,n){return e.trim().split(/^|\s+/).map(function(r){var s="",o=r.indexOf(".");if(o>=0&&(s=r.slice(o+1),r=r.slice(0,o)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:s}})}Ml.prototype=Xl.prototype={constructor:Ml,on:function(e,n){var r=this._,s=kR(e+"",r),o,l=-1,u=s.length;if(arguments.length<2){for(;++l<u;)if((o=(e=s[l]).type)&&(o=ER(r[o],e.name)))return o;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++l<u;)if(o=(e=s[l]).type)r[o]=cw(r[o],e.name,n);else if(n==null)for(o in r)r[o]=cw(r[o],e.name,null);return this},copy:function(){var e={},n=this._;for(var r in n)e[r]=n[r].slice();return new Ml(e)},call:function(e,n){if((o=arguments.length-2)>0)for(var r=new Array(o),s=0,o,l;s<o;++s)r[s]=arguments[s+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(l=this._[e],s=0,o=l.length;s<o;++s)l[s].value.apply(n,r)},apply:function(e,n,r){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var s=this._[e],o=0,l=s.length;o<l;++o)s[o].value.apply(n,r)}};function ER(e,n){for(var r=0,s=e.length,o;r<s;++r)if((o=e[r]).name===n)return o.value}function cw(e,n,r){for(var s=0,o=e.length;s<o;++s)if(e[s].name===n){e[s]=bR,e=e.slice(0,s).concat(e.slice(s+1));break}return r!=null&&e.push({name:n,value:r}),e}var Rg="http://www.w3.org/1999/xhtml";const dw={svg:"http://www.w3.org/2000/svg",xhtml:Rg,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ql(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),dw.hasOwnProperty(n)?{space:dw[n],local:e}:e}function NR(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===Rg&&n.documentElement.namespaceURI===Rg?n.createElement(e):n.createElementNS(r,e)}}function CR(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Wk(e){var n=Ql(e);return(n.local?CR:NR)(n)}function jR(){}function Jg(e){return e==null?jR:function(){return this.querySelector(e)}}function RR(e){typeof e!="function"&&(e=Jg(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=new Array(u),p,h,f=0;f<u;++f)(p=l[f])&&(h=e.call(p,p.__data__,f,l))&&("__data__"in p&&(h.__data__=p.__data__),c[f]=h);return new gn(s,this._parents)}function TR(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function AR(){return[]}function Gk(e){return e==null?AR:function(){return this.querySelectorAll(e)}}function IR(e){return function(){return TR(e.apply(this,arguments))}}function MR(e){typeof e=="function"?e=IR(e):e=Gk(e);for(var n=this._groups,r=n.length,s=[],o=[],l=0;l<r;++l)for(var u=n[l],c=u.length,p,h=0;h<c;++h)(p=u[h])&&(s.push(e.call(p,p.__data__,h,u)),o.push(p));return new gn(s,o)}function Yk(e){return function(){return this.matches(e)}}function Kk(e){return function(n){return n.matches(e)}}var PR=Array.prototype.find;function OR(e){return function(){return PR.call(this.children,e)}}function qR(){return this.firstElementChild}function LR(e){return this.select(e==null?qR:OR(typeof e=="function"?e:Kk(e)))}var $R=Array.prototype.filter;function DR(){return Array.from(this.children)}function FR(e){return function(){return $R.call(this.children,e)}}function zR(e){return this.selectAll(e==null?DR:FR(typeof e=="function"?e:Kk(e)))}function BR(e){typeof e!="function"&&(e=Yk(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=[],p,h=0;h<u;++h)(p=l[h])&&e.call(p,p.__data__,h,l)&&c.push(p);return new gn(s,this._parents)}function Xk(e){return new Array(e.length)}function UR(){return new gn(this._enter||this._groups.map(Xk),this._parents)}function Ll(e,n){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=n}Ll.prototype={constructor:Ll,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,n){return this._parent.insertBefore(e,n)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function HR(e){return function(){return e}}function VR(e,n,r,s,o,l){for(var u=0,c,p=n.length,h=l.length;u<h;++u)(c=n[u])?(c.__data__=l[u],s[u]=c):r[u]=new Ll(e,l[u]);for(;u<p;++u)(c=n[u])&&(o[u]=c)}function WR(e,n,r,s,o,l,u){var c,p,h=new Map,f=n.length,m=l.length,y=new Array(f),x;for(c=0;c<f;++c)(p=n[c])&&(y[c]=x=u.call(p,p.__data__,c,n)+"",h.has(x)?o[c]=p:h.set(x,p));for(c=0;c<m;++c)x=u.call(e,l[c],c,l)+"",(p=h.get(x))?(s[c]=p,p.__data__=l[c],h.delete(x)):r[c]=new Ll(e,l[c]);for(c=0;c<f;++c)(p=n[c])&&h.get(y[c])===p&&(o[c]=p)}function GR(e){return e.__data__}function YR(e,n){if(!arguments.length)return Array.from(this,GR);var r=n?WR:VR,s=this._parents,o=this._groups;typeof e!="function"&&(e=HR(e));for(var l=o.length,u=new Array(l),c=new Array(l),p=new Array(l),h=0;h<l;++h){var f=s[h],m=o[h],y=m.length,x=KR(e.call(f,f&&f.__data__,h,s)),C=x.length,_=c[h]=new Array(C),S=u[h]=new Array(C),b=p[h]=new Array(y);r(f,m,_,S,b,x,n);for(var k=0,N=0,j,M;k<C;++k)if(j=_[k]){for(k>=N&&(N=k+1);!(M=S[N])&&++N<C;);j._next=M||null}}return u=new gn(u,s),u._enter=c,u._exit=p,u}function KR(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function XR(){return new gn(this._exit||this._groups.map(Xk),this._parents)}function QR(e,n,r){var s=this.enter(),o=this,l=this.exit();return typeof e=="function"?(s=e(s),s&&(s=s.selection())):s=s.append(e+""),n!=null&&(o=n(o),o&&(o=o.selection())),r==null?l.remove():r(l),s&&o?s.merge(o).order():o}function ZR(e){for(var n=e.selection?e.selection():e,r=this._groups,s=n._groups,o=r.length,l=s.length,u=Math.min(o,l),c=new Array(o),p=0;p<u;++p)for(var h=r[p],f=s[p],m=h.length,y=c[p]=new Array(m),x,C=0;C<m;++C)(x=h[C]||f[C])&&(y[C]=x);for(;p<o;++p)c[p]=r[p];return new gn(c,this._parents)}function JR(){for(var e=this._groups,n=-1,r=e.length;++n<r;)for(var s=e[n],o=s.length-1,l=s[o],u;--o>=0;)(u=s[o])&&(l&&u.compareDocumentPosition(l)^4&&l.parentNode.insertBefore(u,l),l=u);return this}function eT(e){e||(e=tT);function n(m,y){return m&&y?e(m.__data__,y.__data__):!m-!y}for(var r=this._groups,s=r.length,o=new Array(s),l=0;l<s;++l){for(var u=r[l],c=u.length,p=o[l]=new Array(c),h,f=0;f<c;++f)(h=u[f])&&(p[f]=h);p.sort(n)}return new gn(o,this._parents).order()}function tT(e,n){return e<n?-1:e>n?1:e>=n?0:NaN}function nT(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function rT(){return Array.from(this)}function iT(){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var s=e[n],o=0,l=s.length;o<l;++o){var u=s[o];if(u)return u}return null}function sT(){let e=0;for(const n of this)++e;return e}function oT(){return!this.node()}function aT(e){for(var n=this._groups,r=0,s=n.length;r<s;++r)for(var o=n[r],l=0,u=o.length,c;l<u;++l)(c=o[l])&&e.call(c,c.__data__,l,o);return this}function lT(e){return function(){this.removeAttribute(e)}}function uT(e){return function(){this.removeAttributeNS(e.space,e.local)}}function cT(e,n){return function(){this.setAttribute(e,n)}}function dT(e,n){return function(){this.setAttributeNS(e.space,e.local,n)}}function fT(e,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function hT(e,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function pT(e,n){var r=Ql(e);if(arguments.length<2){var s=this.node();return r.local?s.getAttributeNS(r.space,r.local):s.getAttribute(r)}return this.each((n==null?r.local?uT:lT:typeof n=="function"?r.local?hT:fT:r.local?dT:cT)(r,n))}function Qk(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function mT(e){return function(){this.style.removeProperty(e)}}function gT(e,n,r){return function(){this.style.setProperty(e,n,r)}}function vT(e,n,r){return function(){var s=n.apply(this,arguments);s==null?this.style.removeProperty(e):this.style.setProperty(e,s,r)}}function yT(e,n,r){return arguments.length>1?this.each((n==null?mT:typeof n=="function"?vT:gT)(e,n,r??"")):Bs(this.node(),e)}function Bs(e,n){return e.style.getPropertyValue(n)||Qk(e).getComputedStyle(e,null).getPropertyValue(n)}function wT(e){return function(){delete this[e]}}function xT(e,n){return function(){this[e]=n}}function _T(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function ST(e,n){return arguments.length>1?this.each((n==null?wT:typeof n=="function"?_T:xT)(e,n)):this.node()[e]}function Zk(e){return e.trim().split(/^|\s+/)}function ev(e){return e.classList||new Jk(e)}function Jk(e){this._node=e,this._names=Zk(e.getAttribute("class")||"")}Jk.prototype={add:function(e){var n=this._names.indexOf(e);n<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var n=this._names.indexOf(e);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function eE(e,n){for(var r=ev(e),s=-1,o=n.length;++s<o;)r.add(n[s])}function tE(e,n){for(var r=ev(e),s=-1,o=n.length;++s<o;)r.remove(n[s])}function bT(e){return function(){eE(this,e)}}function kT(e){return function(){tE(this,e)}}function ET(e,n){return function(){(n.apply(this,arguments)?eE:tE)(this,e)}}function NT(e,n){var r=Zk(e+"");if(arguments.length<2){for(var s=ev(this.node()),o=-1,l=r.length;++o<l;)if(!s.contains(r[o]))return!1;return!0}return this.each((typeof n=="function"?ET:n?bT:kT)(r,n))}function CT(){this.textContent=""}function jT(e){return function(){this.textContent=e}}function RT(e){return function(){var n=e.apply(this,arguments);this.textContent=n??""}}function TT(e){return arguments.length?this.each(e==null?CT:(typeof e=="function"?RT:jT)(e)):this.node().textContent}function AT(){this.innerHTML=""}function IT(e){return function(){this.innerHTML=e}}function MT(e){return function(){var n=e.apply(this,arguments);this.innerHTML=n??""}}function PT(e){return arguments.length?this.each(e==null?AT:(typeof e=="function"?MT:IT)(e)):this.node().innerHTML}function OT(){this.nextSibling&&this.parentNode.appendChild(this)}function qT(){return this.each(OT)}function LT(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function $T(){return this.each(LT)}function DT(e){var n=typeof e=="function"?e:Wk(e);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function FT(){return null}function zT(e,n){var r=typeof e=="function"?e:Wk(e),s=n==null?FT:typeof n=="function"?n:Jg(n);return this.select(function(){return this.insertBefore(r.apply(this,arguments),s.apply(this,arguments)||null)})}function BT(){var e=this.parentNode;e&&e.removeChild(this)}function UT(){return this.each(BT)}function HT(){var e=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function VT(){var e=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function WT(e){return this.select(e?VT:HT)}function GT(e){return arguments.length?this.property("__data__",e):this.node().__data__}function YT(e){return function(n){e.call(this,n,this.__data__)}}function KT(e){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");return s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),{type:n,name:r}})}function XT(e){return function(){var n=this.__on;if(n){for(var r=0,s=-1,o=n.length,l;r<o;++r)l=n[r],(!e.type||l.type===e.type)&&l.name===e.name?this.removeEventListener(l.type,l.listener,l.options):n[++s]=l;++s?n.length=s:delete this.__on}}}function QT(e,n,r){return function(){var s=this.__on,o,l=YT(n);if(s){for(var u=0,c=s.length;u<c;++u)if((o=s[u]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=l,o.options=r),o.value=n;return}}this.addEventListener(e.type,l,r),o={type:e.type,name:e.name,value:n,listener:l,options:r},s?s.push(o):this.__on=[o]}}function ZT(e,n,r){var s=KT(e+""),o,l=s.length,u;if(arguments.length<2){var c=this.node().__on;if(c){for(var p=0,h=c.length,f;p<h;++p)for(o=0,f=c[p];o<l;++o)if((u=s[o]).type===f.type&&u.name===f.name)return f.value}return}for(c=n?QT:XT,o=0;o<l;++o)this.each(c(s[o],n,r));return this}function nE(e,n,r){var s=Qk(e),o=s.CustomEvent;typeof o=="function"?o=new o(n,r):(o=s.document.createEvent("Event"),r?(o.initEvent(n,r.bubbles,r.cancelable),o.detail=r.detail):o.initEvent(n,!1,!1)),e.dispatchEvent(o)}function JT(e,n){return function(){return nE(this,e,n)}}function e2(e,n){return function(){return nE(this,e,n.apply(this,arguments))}}function t2(e,n){return this.each((typeof n=="function"?e2:JT)(e,n))}function*n2(){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var s=e[n],o=0,l=s.length,u;o<l;++o)(u=s[o])&&(yield u)}var rE=[null];function gn(e,n){this._groups=e,this._parents=n}function aa(){return new gn([[document.documentElement]],rE)}function r2(){return this}gn.prototype=aa.prototype={constructor:gn,select:RR,selectAll:MR,selectChild:LR,selectChildren:zR,filter:BR,data:YR,enter:UR,exit:XR,join:QR,merge:ZR,selection:r2,order:JR,sort:eT,call:nT,nodes:rT,node:iT,size:sT,empty:oT,each:aT,attr:pT,style:yT,property:ST,classed:NT,text:TT,html:PT,raise:qT,lower:$T,append:DT,insert:zT,remove:UT,clone:WT,datum:GT,on:ZT,dispatch:t2,[Symbol.iterator]:n2};function An(e){return typeof e=="string"?new gn([[document.querySelector(e)]],[document.documentElement]):new gn([[e]],rE)}function i2(e){let n;for(;n=e.sourceEvent;)e=n;return e}function Kn(e,n){if(e=i2(e),n===void 0&&(n=e.currentTarget),n){var r=n.ownerSVGElement||n;if(r.createSVGPoint){var s=r.createSVGPoint();return s.x=e.clientX,s.y=e.clientY,s=s.matrixTransform(n.getScreenCTM().inverse()),[s.x,s.y]}if(n.getBoundingClientRect){var o=n.getBoundingClientRect();return[e.clientX-o.left-n.clientLeft,e.clientY-o.top-n.clientTop]}}return[e.pageX,e.pageY]}const s2={passive:!1},Ko={capture:!0,passive:!1};function Zc(e){e.stopImmediatePropagation()}function $s(e){e.preventDefault(),e.stopImmediatePropagation()}function iE(e){var n=e.document.documentElement,r=An(e).on("dragstart.drag",$s,Ko);"onselectstart"in n?r.on("selectstart.drag",$s,Ko):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function sE(e,n){var r=e.document.documentElement,s=An(e).on("dragstart.drag",null);n&&(s.on("click.drag",$s,Ko),setTimeout(function(){s.on("click.drag",null)},0)),"onselectstart"in r?s.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}const vl=e=>()=>e;function Tg(e,{sourceEvent:n,subject:r,target:s,identifier:o,active:l,x:u,y:c,dx:p,dy:h,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:s,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:l,enumerable:!0,configurable:!0},x:{value:u,enumerable:!0,configurable:!0},y:{value:c,enumerable:!0,configurable:!0},dx:{value:p,enumerable:!0,configurable:!0},dy:{value:h,enumerable:!0,configurable:!0},_:{value:f}})}Tg.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function o2(e){return!e.ctrlKey&&!e.button}function a2(){return this.parentNode}function l2(e,n){return n??{x:e.x,y:e.y}}function u2(){return navigator.maxTouchPoints||"ontouchstart"in this}function c2(){var e=o2,n=a2,r=l2,s=u2,o={},l=Xl("start","drag","end"),u=0,c,p,h,f,m=0;function y(j){j.on("mousedown.drag",x).filter(s).on("touchstart.drag",S).on("touchmove.drag",b,s2).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(j,M){if(!(f||!e.call(this,j,M))){var P=N(this,n.call(this,j,M),j,M,"mouse");P&&(An(j.view).on("mousemove.drag",C,Ko).on("mouseup.drag",_,Ko),iE(j.view),Zc(j),h=!1,c=j.clientX,p=j.clientY,P("start",j))}}function C(j){if($s(j),!h){var M=j.clientX-c,P=j.clientY-p;h=M*M+P*P>m}o.mouse("drag",j)}function _(j){An(j.view).on("mousemove.drag mouseup.drag",null),sE(j.view,h),$s(j),o.mouse("end",j)}function S(j,M){if(e.call(this,j,M)){var P=j.changedTouches,O=n.call(this,j,M),B=P.length,L,q;for(L=0;L<B;++L)(q=N(this,O,j,M,P[L].identifier,P[L]))&&(Zc(j),q("start",j,P[L]))}}function b(j){var M=j.changedTouches,P=M.length,O,B;for(O=0;O<P;++O)(B=o[M[O].identifier])&&($s(j),B("drag",j,M[O]))}function k(j){var M=j.changedTouches,P=M.length,O,B;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),O=0;O<P;++O)(B=o[M[O].identifier])&&(Zc(j),B("end",j,M[O]))}function N(j,M,P,O,B,L){var q=l.copy(),I=Kn(L||P,M),H,X,T;if((T=r.call(j,new Tg("beforestart",{sourceEvent:P,target:y,identifier:B,active:u,x:I[0],y:I[1],dx:0,dy:0,dispatch:q}),O))!=null)return H=T.x-I[0]||0,X=T.y-I[1]||0,function K(U,ee,J){var F=I,G;switch(U){case"start":o[B]=K,G=u++;break;case"end":delete o[B],--u;case"drag":I=Kn(J||ee,M),G=u;break}q.call(U,j,new Tg(U,{sourceEvent:ee,subject:T,target:y,identifier:B,active:G,x:I[0]+H,y:I[1]+X,dx:I[0]-F[0],dy:I[1]-F[1],dispatch:q}),O)}}return y.filter=function(j){return arguments.length?(e=typeof j=="function"?j:vl(!!j),y):e},y.container=function(j){return arguments.length?(n=typeof j=="function"?j:vl(j),y):n},y.subject=function(j){return arguments.length?(r=typeof j=="function"?j:vl(j),y):r},y.touchable=function(j){return arguments.length?(s=typeof j=="function"?j:vl(!!j),y):s},y.on=function(){var j=l.on.apply(l,arguments);return j===l?y:j},y.clickDistance=function(j){return arguments.length?(m=(j=+j)*j,y):Math.sqrt(m)},y}function tv(e,n,r){e.prototype=n.prototype=r,r.constructor=e}function oE(e,n){var r=Object.create(e.prototype);for(var s in n)r[s]=n[s];return r}function la(){}var Xo=.7,$l=1/Xo,Ds="\\s*([+-]?\\d+)\\s*",Qo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",dr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",d2=/^#([0-9a-f]{3,8})$/,f2=new RegExp(`^rgb\\(${Ds},${Ds},${Ds}\\)$`),h2=new RegExp(`^rgb\\(${dr},${dr},${dr}\\)$`),p2=new RegExp(`^rgba\\(${Ds},${Ds},${Ds},${Qo}\\)$`),m2=new RegExp(`^rgba\\(${dr},${dr},${dr},${Qo}\\)$`),g2=new RegExp(`^hsl\\(${Qo},${dr},${dr}\\)$`),v2=new RegExp(`^hsla\\(${Qo},${dr},${dr},${Qo}\\)$`),fw={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};tv(la,Zo,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:hw,formatHex:hw,formatHex8:y2,formatHsl:w2,formatRgb:pw,toString:pw});function hw(){return this.rgb().formatHex()}function y2(){return this.rgb().formatHex8()}function w2(){return aE(this).formatHsl()}function pw(){return this.rgb().formatRgb()}function Zo(e){var n,r;return e=(e+"").trim().toLowerCase(),(n=d2.exec(e))?(r=n[1].length,n=parseInt(n[1],16),r===6?mw(n):r===3?new sn(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):r===8?yl(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):r===4?yl(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=f2.exec(e))?new sn(n[1],n[2],n[3],1):(n=h2.exec(e))?new sn(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=p2.exec(e))?yl(n[1],n[2],n[3],n[4]):(n=m2.exec(e))?yl(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=g2.exec(e))?yw(n[1],n[2]/100,n[3]/100,1):(n=v2.exec(e))?yw(n[1],n[2]/100,n[3]/100,n[4]):fw.hasOwnProperty(e)?mw(fw[e]):e==="transparent"?new sn(NaN,NaN,NaN,0):null}function mw(e){return new sn(e>>16&255,e>>8&255,e&255,1)}function yl(e,n,r,s){return s<=0&&(e=n=r=NaN),new sn(e,n,r,s)}function x2(e){return e instanceof la||(e=Zo(e)),e?(e=e.rgb(),new sn(e.r,e.g,e.b,e.opacity)):new sn}function Ag(e,n,r,s){return arguments.length===1?x2(e):new sn(e,n,r,s??1)}function sn(e,n,r,s){this.r=+e,this.g=+n,this.b=+r,this.opacity=+s}tv(sn,Ag,oE(la,{brighter(e){return e=e==null?$l:Math.pow($l,e),new sn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Xo:Math.pow(Xo,e),new sn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new sn(Wi(this.r),Wi(this.g),Wi(this.b),Dl(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:gw,formatHex:gw,formatHex8:_2,formatRgb:vw,toString:vw}));function gw(){return`#${Hi(this.r)}${Hi(this.g)}${Hi(this.b)}`}function _2(){return`#${Hi(this.r)}${Hi(this.g)}${Hi(this.b)}${Hi((isNaN(this.opacity)?1:this.opacity)*255)}`}function vw(){const e=Dl(this.opacity);return`${e===1?"rgb(":"rgba("}${Wi(this.r)}, ${Wi(this.g)}, ${Wi(this.b)}${e===1?")":`, ${e})`}`}function Dl(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Wi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Hi(e){return e=Wi(e),(e<16?"0":"")+e.toString(16)}function yw(e,n,r,s){return s<=0?e=n=r=NaN:r<=0||r>=1?e=n=NaN:n<=0&&(e=NaN),new Xn(e,n,r,s)}function aE(e){if(e instanceof Xn)return new Xn(e.h,e.s,e.l,e.opacity);if(e instanceof la||(e=Zo(e)),!e)return new Xn;if(e instanceof Xn)return e;e=e.rgb();var n=e.r/255,r=e.g/255,s=e.b/255,o=Math.min(n,r,s),l=Math.max(n,r,s),u=NaN,c=l-o,p=(l+o)/2;return c?(n===l?u=(r-s)/c+(r<s)*6:r===l?u=(s-n)/c+2:u=(n-r)/c+4,c/=p<.5?l+o:2-l-o,u*=60):c=p>0&&p<1?0:u,new Xn(u,c,p,e.opacity)}function S2(e,n,r,s){return arguments.length===1?aE(e):new Xn(e,n,r,s??1)}function Xn(e,n,r,s){this.h=+e,this.s=+n,this.l=+r,this.opacity=+s}tv(Xn,S2,oE(la,{brighter(e){return e=e==null?$l:Math.pow($l,e),new Xn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Xo:Math.pow(Xo,e),new Xn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,n=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,s=r+(r<.5?r:1-r)*n,o=2*r-s;return new sn(Jc(e>=240?e-240:e+120,o,s),Jc(e,o,s),Jc(e<120?e+240:e-120,o,s),this.opacity)},clamp(){return new Xn(ww(this.h),wl(this.s),wl(this.l),Dl(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Dl(this.opacity);return`${e===1?"hsl(":"hsla("}${ww(this.h)}, ${wl(this.s)*100}%, ${wl(this.l)*100}%${e===1?")":`, ${e})`}`}}));function ww(e){return e=(e||0)%360,e<0?e+360:e}function wl(e){return Math.max(0,Math.min(1,e||0))}function Jc(e,n,r){return(e<60?n+(r-n)*e/60:e<180?r:e<240?n+(r-n)*(240-e)/60:n)*255}const lE=e=>()=>e;function b2(e,n){return function(r){return e+r*n}}function k2(e,n,r){return e=Math.pow(e,r),n=Math.pow(n,r)-e,r=1/r,function(s){return Math.pow(e+s*n,r)}}function E2(e){return(e=+e)==1?uE:function(n,r){return r-n?k2(n,r,e):lE(isNaN(n)?r:n)}}function uE(e,n){var r=n-e;return r?b2(e,r):lE(isNaN(e)?n:e)}const xw=(function e(n){var r=E2(n);function s(o,l){var u=r((o=Ag(o)).r,(l=Ag(l)).r),c=r(o.g,l.g),p=r(o.b,l.b),h=uE(o.opacity,l.opacity);return function(f){return o.r=u(f),o.g=c(f),o.b=p(f),o.opacity=h(f),o+""}}return s.gamma=e,s})(1);function ci(e,n){return e=+e,n=+n,function(r){return e*(1-r)+n*r}}var Ig=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ed=new RegExp(Ig.source,"g");function N2(e){return function(){return e}}function C2(e){return function(n){return e(n)+""}}function j2(e,n){var r=Ig.lastIndex=ed.lastIndex=0,s,o,l,u=-1,c=[],p=[];for(e=e+"",n=n+"";(s=Ig.exec(e))&&(o=ed.exec(n));)(l=o.index)>r&&(l=n.slice(r,l),c[u]?c[u]+=l:c[++u]=l),(s=s[0])===(o=o[0])?c[u]?c[u]+=o:c[++u]=o:(c[++u]=null,p.push({i:u,x:ci(s,o)})),r=ed.lastIndex;return r<n.length&&(l=n.slice(r),c[u]?c[u]+=l:c[++u]=l),c.length<2?p[0]?C2(p[0].x):N2(n):(n=p.length,function(h){for(var f=0,m;f<n;++f)c[(m=p[f]).i]=m.x(h);return c.join("")})}var _w=180/Math.PI,Mg={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cE(e,n,r,s,o,l){var u,c,p;return(u=Math.sqrt(e*e+n*n))&&(e/=u,n/=u),(p=e*r+n*s)&&(r-=e*p,s-=n*p),(c=Math.sqrt(r*r+s*s))&&(r/=c,s/=c,p/=c),e*s<n*r&&(e=-e,n=-n,p=-p,u=-u),{translateX:o,translateY:l,rotate:Math.atan2(n,e)*_w,skewX:Math.atan(p)*_w,scaleX:u,scaleY:c}}var xl;function R2(e){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return n.isIdentity?Mg:cE(n.a,n.b,n.c,n.d,n.e,n.f)}function T2(e){return e==null||(xl||(xl=document.createElementNS("http://www.w3.org/2000/svg","g")),xl.setAttribute("transform",e),!(e=xl.transform.baseVal.consolidate()))?Mg:(e=e.matrix,cE(e.a,e.b,e.c,e.d,e.e,e.f))}function dE(e,n,r,s){function o(h){return h.length?h.pop()+" ":""}function l(h,f,m,y,x,C){if(h!==m||f!==y){var _=x.push("translate(",null,n,null,r);C.push({i:_-4,x:ci(h,m)},{i:_-2,x:ci(f,y)})}else(m||y)&&x.push("translate("+m+n+y+r)}function u(h,f,m,y){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),y.push({i:m.push(o(m)+"rotate(",null,s)-2,x:ci(h,f)})):f&&m.push(o(m)+"rotate("+f+s)}function c(h,f,m,y){h!==f?y.push({i:m.push(o(m)+"skewX(",null,s)-2,x:ci(h,f)}):f&&m.push(o(m)+"skewX("+f+s)}function p(h,f,m,y,x,C){if(h!==m||f!==y){var _=x.push(o(x)+"scale(",null,",",null,")");C.push({i:_-4,x:ci(h,m)},{i:_-2,x:ci(f,y)})}else(m!==1||y!==1)&&x.push(o(x)+"scale("+m+","+y+")")}return function(h,f){var m=[],y=[];return h=e(h),f=e(f),l(h.translateX,h.translateY,f.translateX,f.translateY,m,y),u(h.rotate,f.rotate,m,y),c(h.skewX,f.skewX,m,y),p(h.scaleX,h.scaleY,f.scaleX,f.scaleY,m,y),h=f=null,function(x){for(var C=-1,_=y.length,S;++C<_;)m[(S=y[C]).i]=S.x(x);return m.join("")}}}var A2=dE(R2,"px, ","px)","deg)"),I2=dE(T2,", ",")",")"),M2=1e-12;function Sw(e){return((e=Math.exp(e))+1/e)/2}function P2(e){return((e=Math.exp(e))-1/e)/2}function O2(e){return((e=Math.exp(2*e))-1)/(e+1)}const q2=(function e(n,r,s){function o(l,u){var c=l[0],p=l[1],h=l[2],f=u[0],m=u[1],y=u[2],x=f-c,C=m-p,_=x*x+C*C,S,b;if(_<M2)b=Math.log(y/h)/n,S=function(O){return[c+O*x,p+O*C,h*Math.exp(n*O*b)]};else{var k=Math.sqrt(_),N=(y*y-h*h+s*_)/(2*h*r*k),j=(y*y-h*h-s*_)/(2*y*r*k),M=Math.log(Math.sqrt(N*N+1)-N),P=Math.log(Math.sqrt(j*j+1)-j);b=(P-M)/n,S=function(O){var B=O*b,L=Sw(M),q=h/(r*k)*(L*O2(n*B+M)-P2(M));return[c+q*x,p+q*C,h*L/Sw(n*B+M)]}}return S.duration=b*1e3*n/Math.SQRT2,S}return o.rho=function(l){var u=Math.max(.001,+l),c=u*u,p=c*c;return e(u,c,p)},o})(Math.SQRT2,2,4);var Us=0,Uo=0,$o=0,fE=1e3,Fl,Ho,zl=0,Yi=0,Zl=0,Jo=typeof performance=="object"&&performance.now?performance:Date,hE=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function nv(){return Yi||(hE(L2),Yi=Jo.now()+Zl)}function L2(){Yi=0}function Bl(){this._call=this._time=this._next=null}Bl.prototype=pE.prototype={constructor:Bl,restart:function(e,n,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?nv():+r)+(n==null?0:+n),!this._next&&Ho!==this&&(Ho?Ho._next=this:Fl=this,Ho=this),this._call=e,this._time=r,Pg()},stop:function(){this._call&&(this._call=null,this._time=1/0,Pg())}};function pE(e,n,r){var s=new Bl;return s.restart(e,n,r),s}function $2(){nv(),++Us;for(var e=Fl,n;e;)(n=Yi-e._time)>=0&&e._call.call(void 0,n),e=e._next;--Us}function bw(){Yi=(zl=Jo.now())+Zl,Us=Uo=0;try{$2()}finally{Us=0,F2(),Yi=0}}function D2(){var e=Jo.now(),n=e-zl;n>fE&&(Zl-=n,zl=e)}function F2(){for(var e,n=Fl,r,s=1/0;n;)n._call?(s>n._time&&(s=n._time),e=n,n=n._next):(r=n._next,n._next=null,n=e?e._next=r:Fl=r);Ho=e,Pg(s)}function Pg(e){if(!Us){Uo&&(Uo=clearTimeout(Uo));var n=e-Yi;n>24?(e<1/0&&(Uo=setTimeout(bw,e-Jo.now()-Zl)),$o&&($o=clearInterval($o))):($o||(zl=Jo.now(),$o=setInterval(D2,fE)),Us=1,hE(bw))}}function kw(e,n,r){var s=new Bl;return n=n==null?0:+n,s.restart(o=>{s.stop(),e(o+n)},n,r),s}var z2=Xl("start","end","cancel","interrupt"),B2=[],mE=0,Ew=1,Og=2,Pl=3,Nw=4,qg=5,Ol=6;function Jl(e,n,r,s,o,l){var u=e.__transition;if(!u)e.__transition={};else if(r in u)return;U2(e,r,{name:n,index:s,group:o,on:z2,tween:B2,time:l.time,delay:l.delay,duration:l.duration,ease:l.ease,timer:null,state:mE})}function rv(e,n){var r=Jn(e,n);if(r.state>mE)throw new Error("too late; already scheduled");return r}function fr(e,n){var r=Jn(e,n);if(r.state>Pl)throw new Error("too late; already running");return r}function Jn(e,n){var r=e.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function U2(e,n,r){var s=e.__transition,o;s[n]=r,r.timer=pE(l,0,r.time);function l(h){r.state=Ew,r.timer.restart(u,r.delay,r.time),r.delay<=h&&u(h-r.delay)}function u(h){var f,m,y,x;if(r.state!==Ew)return p();for(f in s)if(x=s[f],x.name===r.name){if(x.state===Pl)return kw(u);x.state===Nw?(x.state=Ol,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete s[f]):+f<n&&(x.state=Ol,x.timer.stop(),x.on.call("cancel",e,e.__data__,x.index,x.group),delete s[f])}if(kw(function(){r.state===Pl&&(r.state=Nw,r.timer.restart(c,r.delay,r.time),c(h))}),r.state=Og,r.on.call("start",e,e.__data__,r.index,r.group),r.state===Og){for(r.state=Pl,o=new Array(y=r.tween.length),f=0,m=-1;f<y;++f)(x=r.tween[f].value.call(e,e.__data__,r.index,r.group))&&(o[++m]=x);o.length=m+1}}function c(h){for(var f=h<r.duration?r.ease.call(null,h/r.duration):(r.timer.restart(p),r.state=qg,1),m=-1,y=o.length;++m<y;)o[m].call(e,f);r.state===qg&&(r.on.call("end",e,e.__data__,r.index,r.group),p())}function p(){r.state=Ol,r.timer.stop(),delete s[n];for(var h in s)return;delete e.__transition}}function ql(e,n){var r=e.__transition,s,o,l=!0,u;if(r){n=n==null?null:n+"";for(u in r){if((s=r[u]).name!==n){l=!1;continue}o=s.state>Og&&s.state<qg,s.state=Ol,s.timer.stop(),s.on.call(o?"interrupt":"cancel",e,e.__data__,s.index,s.group),delete r[u]}l&&delete e.__transition}}function H2(e){return this.each(function(){ql(this,e)})}function V2(e,n){var r,s;return function(){var o=fr(this,e),l=o.tween;if(l!==r){s=r=l;for(var u=0,c=s.length;u<c;++u)if(s[u].name===n){s=s.slice(),s.splice(u,1);break}}o.tween=s}}function W2(e,n,r){var s,o;if(typeof r!="function")throw new Error;return function(){var l=fr(this,e),u=l.tween;if(u!==s){o=(s=u).slice();for(var c={name:n,value:r},p=0,h=o.length;p<h;++p)if(o[p].name===n){o[p]=c;break}p===h&&o.push(c)}l.tween=o}}function G2(e,n){var r=this._id;if(e+="",arguments.length<2){for(var s=Jn(this.node(),r).tween,o=0,l=s.length,u;o<l;++o)if((u=s[o]).name===e)return u.value;return null}return this.each((n==null?V2:W2)(r,e,n))}function iv(e,n,r){var s=e._id;return e.each(function(){var o=fr(this,s);(o.value||(o.value={}))[n]=r.apply(this,arguments)}),function(o){return Jn(o,s).value[n]}}function gE(e,n){var r;return(typeof n=="number"?ci:n instanceof Zo?xw:(r=Zo(n))?(n=r,xw):j2)(e,n)}function Y2(e){return function(){this.removeAttribute(e)}}function K2(e){return function(){this.removeAttributeNS(e.space,e.local)}}function X2(e,n,r){var s,o=r+"",l;return function(){var u=this.getAttribute(e);return u===o?null:u===s?l:l=n(s=u,r)}}function Q2(e,n,r){var s,o=r+"",l;return function(){var u=this.getAttributeNS(e.space,e.local);return u===o?null:u===s?l:l=n(s=u,r)}}function Z2(e,n,r){var s,o,l;return function(){var u,c=r(this),p;return c==null?void this.removeAttribute(e):(u=this.getAttribute(e),p=c+"",u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c)))}}function J2(e,n,r){var s,o,l;return function(){var u,c=r(this),p;return c==null?void this.removeAttributeNS(e.space,e.local):(u=this.getAttributeNS(e.space,e.local),p=c+"",u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c)))}}function eA(e,n){var r=Ql(e),s=r==="transform"?I2:gE;return this.attrTween(e,typeof n=="function"?(r.local?J2:Z2)(r,s,iv(this,"attr."+e,n)):n==null?(r.local?K2:Y2)(r):(r.local?Q2:X2)(r,s,n))}function tA(e,n){return function(r){this.setAttribute(e,n.call(this,r))}}function nA(e,n){return function(r){this.setAttributeNS(e.space,e.local,n.call(this,r))}}function rA(e,n){var r,s;function o(){var l=n.apply(this,arguments);return l!==s&&(r=(s=l)&&nA(e,l)),r}return o._value=n,o}function iA(e,n){var r,s;function o(){var l=n.apply(this,arguments);return l!==s&&(r=(s=l)&&tA(e,l)),r}return o._value=n,o}function sA(e,n){var r="attr."+e;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;var s=Ql(e);return this.tween(r,(s.local?rA:iA)(s,n))}function oA(e,n){return function(){rv(this,e).delay=+n.apply(this,arguments)}}function aA(e,n){return n=+n,function(){rv(this,e).delay=n}}function lA(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?oA:aA)(n,e)):Jn(this.node(),n).delay}function uA(e,n){return function(){fr(this,e).duration=+n.apply(this,arguments)}}function cA(e,n){return n=+n,function(){fr(this,e).duration=n}}function dA(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?uA:cA)(n,e)):Jn(this.node(),n).duration}function fA(e,n){if(typeof n!="function")throw new Error;return function(){fr(this,e).ease=n}}function hA(e){var n=this._id;return arguments.length?this.each(fA(n,e)):Jn(this.node(),n).ease}function pA(e,n){return function(){var r=n.apply(this,arguments);if(typeof r!="function")throw new Error;fr(this,e).ease=r}}function mA(e){if(typeof e!="function")throw new Error;return this.each(pA(this._id,e))}function gA(e){typeof e!="function"&&(e=Yk(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=[],p,h=0;h<u;++h)(p=l[h])&&e.call(p,p.__data__,h,l)&&c.push(p);return new Pr(s,this._parents,this._name,this._id)}function vA(e){if(e._id!==this._id)throw new Error;for(var n=this._groups,r=e._groups,s=n.length,o=r.length,l=Math.min(s,o),u=new Array(s),c=0;c<l;++c)for(var p=n[c],h=r[c],f=p.length,m=u[c]=new Array(f),y,x=0;x<f;++x)(y=p[x]||h[x])&&(m[x]=y);for(;c<s;++c)u[c]=n[c];return new Pr(u,this._parents,this._name,this._id)}function yA(e){return(e+"").trim().split(/^|\s+/).every(function(n){var r=n.indexOf(".");return r>=0&&(n=n.slice(0,r)),!n||n==="start"})}function wA(e,n,r){var s,o,l=yA(n)?rv:fr;return function(){var u=l(this,e),c=u.on;c!==s&&(o=(s=c).copy()).on(n,r),u.on=o}}function xA(e,n){var r=this._id;return arguments.length<2?Jn(this.node(),r).on.on(e):this.each(wA(r,e,n))}function _A(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function SA(){return this.on("end.remove",_A(this._id))}function bA(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Jg(e));for(var s=this._groups,o=s.length,l=new Array(o),u=0;u<o;++u)for(var c=s[u],p=c.length,h=l[u]=new Array(p),f,m,y=0;y<p;++y)(f=c[y])&&(m=e.call(f,f.__data__,y,c))&&("__data__"in f&&(m.__data__=f.__data__),h[y]=m,Jl(h[y],n,r,y,h,Jn(f,r)));return new Pr(l,this._parents,n,r)}function kA(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Gk(e));for(var s=this._groups,o=s.length,l=[],u=[],c=0;c<o;++c)for(var p=s[c],h=p.length,f,m=0;m<h;++m)if(f=p[m]){for(var y=e.call(f,f.__data__,m,p),x,C=Jn(f,r),_=0,S=y.length;_<S;++_)(x=y[_])&&Jl(x,n,r,_,y,C);l.push(y),u.push(f)}return new Pr(l,u,n,r)}var EA=aa.prototype.constructor;function NA(){return new EA(this._groups,this._parents)}function CA(e,n){var r,s,o;return function(){var l=Bs(this,e),u=(this.style.removeProperty(e),Bs(this,e));return l===u?null:l===r&&u===s?o:o=n(r=l,s=u)}}function vE(e){return function(){this.style.removeProperty(e)}}function jA(e,n,r){var s,o=r+"",l;return function(){var u=Bs(this,e);return u===o?null:u===s?l:l=n(s=u,r)}}function RA(e,n,r){var s,o,l;return function(){var u=Bs(this,e),c=r(this),p=c+"";return c==null&&(p=c=(this.style.removeProperty(e),Bs(this,e))),u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c))}}function TA(e,n){var r,s,o,l="style."+n,u="end."+l,c;return function(){var p=fr(this,e),h=p.on,f=p.value[l]==null?c||(c=vE(n)):void 0;(h!==r||o!==f)&&(s=(r=h).copy()).on(u,o=f),p.on=s}}function AA(e,n,r){var s=(e+="")=="transform"?A2:gE;return n==null?this.styleTween(e,CA(e,s)).on("end.style."+e,vE(e)):typeof n=="function"?this.styleTween(e,RA(e,s,iv(this,"style."+e,n))).each(TA(this._id,e)):this.styleTween(e,jA(e,s,n),r).on("end.style."+e,null)}function IA(e,n,r){return function(s){this.style.setProperty(e,n.call(this,s),r)}}function MA(e,n,r){var s,o;function l(){var u=n.apply(this,arguments);return u!==o&&(s=(o=u)&&IA(e,u,r)),s}return l._value=n,l}function PA(e,n,r){var s="style."+(e+="");if(arguments.length<2)return(s=this.tween(s))&&s._value;if(n==null)return this.tween(s,null);if(typeof n!="function")throw new Error;return this.tween(s,MA(e,n,r??""))}function OA(e){return function(){this.textContent=e}}function qA(e){return function(){var n=e(this);this.textContent=n??""}}function LA(e){return this.tween("text",typeof e=="function"?qA(iv(this,"text",e)):OA(e==null?"":e+""))}function $A(e){return function(n){this.textContent=e.call(this,n)}}function DA(e){var n,r;function s(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&$A(o)),n}return s._value=e,s}function FA(e){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,DA(e))}function zA(){for(var e=this._name,n=this._id,r=yE(),s=this._groups,o=s.length,l=0;l<o;++l)for(var u=s[l],c=u.length,p,h=0;h<c;++h)if(p=u[h]){var f=Jn(p,n);Jl(p,e,r,h,u,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Pr(s,this._parents,e,r)}function BA(){var e,n,r=this,s=r._id,o=r.size();return new Promise(function(l,u){var c={value:u},p={value:function(){--o===0&&l()}};r.each(function(){var h=fr(this,s),f=h.on;f!==e&&(n=(e=f).copy(),n._.cancel.push(c),n._.interrupt.push(c),n._.end.push(p)),h.on=n}),o===0&&l()})}var UA=0;function Pr(e,n,r,s){this._groups=e,this._parents=n,this._name=r,this._id=s}function yE(){return++UA}var Tr=aa.prototype;Pr.prototype={constructor:Pr,select:bA,selectAll:kA,selectChild:Tr.selectChild,selectChildren:Tr.selectChildren,filter:gA,merge:vA,selection:NA,transition:zA,call:Tr.call,nodes:Tr.nodes,node:Tr.node,size:Tr.size,empty:Tr.empty,each:Tr.each,on:xA,attr:eA,attrTween:sA,style:AA,styleTween:PA,text:LA,textTween:FA,remove:SA,tween:G2,delay:lA,duration:dA,ease:hA,easeVarying:mA,end:BA,[Symbol.iterator]:Tr[Symbol.iterator]};function HA(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var VA={time:null,delay:0,duration:250,ease:HA};function WA(e,n){for(var r;!(r=e.__transition)||!(r=r[n]);)if(!(e=e.parentNode))throw new Error(`transition ${n} not found`);return r}function GA(e){var n,r;e instanceof Pr?(n=e._id,e=e._name):(n=yE(),(r=VA).time=nv(),e=e==null?null:e+"");for(var s=this._groups,o=s.length,l=0;l<o;++l)for(var u=s[l],c=u.length,p,h=0;h<c;++h)(p=u[h])&&Jl(p,e,n,h,u,r||WA(p,n));return new Pr(s,this._parents,e,n)}aa.prototype.interrupt=H2;aa.prototype.transition=GA;const _l=e=>()=>e;function YA(e,{sourceEvent:n,target:r,transform:s,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:s,enumerable:!0,configurable:!0},_:{value:o}})}function Ir(e,n,r){this.k=e,this.x=n,this.y=r}Ir.prototype={constructor:Ir,scale:function(e){return e===1?this:new Ir(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new Ir(this.k,this.x+this.k*e,this.y+this.k*n)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Mr=new Ir(1,0,0);Ir.prototype;function td(e){e.stopImmediatePropagation()}function Do(e){e.preventDefault(),e.stopImmediatePropagation()}function KA(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function XA(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Cw(){return this.__zoom||Mr}function QA(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ZA(){return navigator.maxTouchPoints||"ontouchstart"in this}function JA(e,n,r){var s=e.invertX(n[0][0])-r[0][0],o=e.invertX(n[1][0])-r[1][0],l=e.invertY(n[0][1])-r[0][1],u=e.invertY(n[1][1])-r[1][1];return e.translate(o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o),u>l?(l+u)/2:Math.min(0,l)||Math.max(0,u))}function wE(){var e=KA,n=XA,r=JA,s=QA,o=ZA,l=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],c=250,p=q2,h=Xl("start","zoom","end"),f,m,y,x=500,C=150,_=0,S=10;function b(T){T.property("__zoom",Cw).on("wheel.zoom",B,{passive:!1}).on("mousedown.zoom",L).on("dblclick.zoom",q).filter(o).on("touchstart.zoom",I).on("touchmove.zoom",H).on("touchend.zoom touchcancel.zoom",X).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(T,K,U,ee){var J=T.selection?T.selection():T;J.property("__zoom",Cw),T!==J?M(T,K,U,ee):J.interrupt().each(function(){P(this,arguments).event(ee).start().zoom(null,typeof K=="function"?K.apply(this,arguments):K).end()})},b.scaleBy=function(T,K,U,ee){b.scaleTo(T,function(){var J=this.__zoom.k,F=typeof K=="function"?K.apply(this,arguments):K;return J*F},U,ee)},b.scaleTo=function(T,K,U,ee){b.transform(T,function(){var J=n.apply(this,arguments),F=this.__zoom,G=U==null?j(J):typeof U=="function"?U.apply(this,arguments):U,E=F.invert(G),$=typeof K=="function"?K.apply(this,arguments):K;return r(N(k(F,$),G,E),J,u)},U,ee)},b.translateBy=function(T,K,U,ee){b.transform(T,function(){return r(this.__zoom.translate(typeof K=="function"?K.apply(this,arguments):K,typeof U=="function"?U.apply(this,arguments):U),n.apply(this,arguments),u)},null,ee)},b.translateTo=function(T,K,U,ee,J){b.transform(T,function(){var F=n.apply(this,arguments),G=this.__zoom,E=ee==null?j(F):typeof ee=="function"?ee.apply(this,arguments):ee;return r(Mr.translate(E[0],E[1]).scale(G.k).translate(typeof K=="function"?-K.apply(this,arguments):-K,typeof U=="function"?-U.apply(this,arguments):-U),F,u)},ee,J)};function k(T,K){return K=Math.max(l[0],Math.min(l[1],K)),K===T.k?T:new Ir(K,T.x,T.y)}function N(T,K,U){var ee=K[0]-U[0]*T.k,J=K[1]-U[1]*T.k;return ee===T.x&&J===T.y?T:new Ir(T.k,ee,J)}function j(T){return[(+T[0][0]+ +T[1][0])/2,(+T[0][1]+ +T[1][1])/2]}function M(T,K,U,ee){T.on("start.zoom",function(){P(this,arguments).event(ee).start()}).on("interrupt.zoom end.zoom",function(){P(this,arguments).event(ee).end()}).tween("zoom",function(){var J=this,F=arguments,G=P(J,F).event(ee),E=n.apply(J,F),$=U==null?j(E):typeof U=="function"?U.apply(J,F):U,se=Math.max(E[1][0]-E[0][0],E[1][1]-E[0][1]),D=J.__zoom,Q=typeof K=="function"?K.apply(J,F):K,te=p(D.invert($).concat(se/D.k),Q.invert($).concat(se/Q.k));return function(oe){if(oe===1)oe=Q;else{var ue=te(oe),ge=se/ue[2];oe=new Ir(ge,$[0]-ue[0]*ge,$[1]-ue[1]*ge)}G.zoom(null,oe)}})}function P(T,K,U){return!U&&T.__zooming||new O(T,K)}function O(T,K){this.that=T,this.args=K,this.active=0,this.sourceEvent=null,this.extent=n.apply(T,K),this.taps=0}O.prototype={event:function(T){return T&&(this.sourceEvent=T),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(T,K){return this.mouse&&T!=="mouse"&&(this.mouse[1]=K.invert(this.mouse[0])),this.touch0&&T!=="touch"&&(this.touch0[1]=K.invert(this.touch0[0])),this.touch1&&T!=="touch"&&(this.touch1[1]=K.invert(this.touch1[0])),this.that.__zoom=K,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(T){var K=An(this.that).datum();h.call(T,this.that,new YA(T,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:h}),K)}};function B(T,...K){if(!e.apply(this,arguments))return;var U=P(this,K).event(T),ee=this.__zoom,J=Math.max(l[0],Math.min(l[1],ee.k*Math.pow(2,s.apply(this,arguments)))),F=Kn(T);if(U.wheel)(U.mouse[0][0]!==F[0]||U.mouse[0][1]!==F[1])&&(U.mouse[1]=ee.invert(U.mouse[0]=F)),clearTimeout(U.wheel);else{if(ee.k===J)return;U.mouse=[F,ee.invert(F)],ql(this),U.start()}Do(T),U.wheel=setTimeout(G,C),U.zoom("mouse",r(N(k(ee,J),U.mouse[0],U.mouse[1]),U.extent,u));function G(){U.wheel=null,U.end()}}function L(T,...K){if(y||!e.apply(this,arguments))return;var U=T.currentTarget,ee=P(this,K,!0).event(T),J=An(T.view).on("mousemove.zoom",$,!0).on("mouseup.zoom",se,!0),F=Kn(T,U),G=T.clientX,E=T.clientY;iE(T.view),td(T),ee.mouse=[F,this.__zoom.invert(F)],ql(this),ee.start();function $(D){if(Do(D),!ee.moved){var Q=D.clientX-G,te=D.clientY-E;ee.moved=Q*Q+te*te>_}ee.event(D).zoom("mouse",r(N(ee.that.__zoom,ee.mouse[0]=Kn(D,U),ee.mouse[1]),ee.extent,u))}function se(D){J.on("mousemove.zoom mouseup.zoom",null),sE(D.view,ee.moved),Do(D),ee.event(D).end()}}function q(T,...K){if(e.apply(this,arguments)){var U=this.__zoom,ee=Kn(T.changedTouches?T.changedTouches[0]:T,this),J=U.invert(ee),F=U.k*(T.shiftKey?.5:2),G=r(N(k(U,F),ee,J),n.apply(this,K),u);Do(T),c>0?An(this).transition().duration(c).call(M,G,ee,T):An(this).call(b.transform,G,ee,T)}}function I(T,...K){if(e.apply(this,arguments)){var U=T.touches,ee=U.length,J=P(this,K,T.changedTouches.length===ee).event(T),F,G,E,$;for(td(T),G=0;G<ee;++G)E=U[G],$=Kn(E,this),$=[$,this.__zoom.invert($),E.identifier],J.touch0?!J.touch1&&J.touch0[2]!==$[2]&&(J.touch1=$,J.taps=0):(J.touch0=$,F=!0,J.taps=1+!!f);f&&(f=clearTimeout(f)),F&&(J.taps<2&&(m=$[0],f=setTimeout(function(){f=null},x)),ql(this),J.start())}}function H(T,...K){if(this.__zooming){var U=P(this,K).event(T),ee=T.changedTouches,J=ee.length,F,G,E,$;for(Do(T),F=0;F<J;++F)G=ee[F],E=Kn(G,this),U.touch0&&U.touch0[2]===G.identifier?U.touch0[0]=E:U.touch1&&U.touch1[2]===G.identifier&&(U.touch1[0]=E);if(G=U.that.__zoom,U.touch1){var se=U.touch0[0],D=U.touch0[1],Q=U.touch1[0],te=U.touch1[1],oe=(oe=Q[0]-se[0])*oe+(oe=Q[1]-se[1])*oe,ue=(ue=te[0]-D[0])*ue+(ue=te[1]-D[1])*ue;G=k(G,Math.sqrt(oe/ue)),E=[(se[0]+Q[0])/2,(se[1]+Q[1])/2],$=[(D[0]+te[0])/2,(D[1]+te[1])/2]}else if(U.touch0)E=U.touch0[0],$=U.touch0[1];else return;U.zoom("touch",r(N(G,E,$),U.extent,u))}}function X(T,...K){if(this.__zooming){var U=P(this,K).event(T),ee=T.changedTouches,J=ee.length,F,G;for(td(T),y&&clearTimeout(y),y=setTimeout(function(){y=null},x),F=0;F<J;++F)G=ee[F],U.touch0&&U.touch0[2]===G.identifier?delete U.touch0:U.touch1&&U.touch1[2]===G.identifier&&delete U.touch1;if(U.touch1&&!U.touch0&&(U.touch0=U.touch1,delete U.touch1),U.touch0)U.touch0[1]=this.__zoom.invert(U.touch0[0]);else if(U.end(),U.taps===2&&(G=Kn(G,this),Math.hypot(m[0]-G[0],m[1]-G[1])<S)){var E=An(this).on("dblclick.zoom");E&&E.apply(this,arguments)}}}return b.wheelDelta=function(T){return arguments.length?(s=typeof T=="function"?T:_l(+T),b):s},b.filter=function(T){return arguments.length?(e=typeof T=="function"?T:_l(!!T),b):e},b.touchable=function(T){return arguments.length?(o=typeof T=="function"?T:_l(!!T),b):o},b.extent=function(T){return arguments.length?(n=typeof T=="function"?T:_l([[+T[0][0],+T[0][1]],[+T[1][0],+T[1][1]]]),b):n},b.scaleExtent=function(T){return arguments.length?(l[0]=+T[0],l[1]=+T[1],b):[l[0],l[1]]},b.translateExtent=function(T){return arguments.length?(u[0][0]=+T[0][0],u[1][0]=+T[1][0],u[0][1]=+T[0][1],u[1][1]=+T[1][1],b):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},b.constrain=function(T){return arguments.length?(r=T,b):r},b.duration=function(T){return arguments.length?(c=+T,b):c},b.interpolate=function(T){return arguments.length?(p=T,b):p},b.on=function(){var T=h.on.apply(h,arguments);return T===h?b:T},b.clickDistance=function(T){return arguments.length?(_=(T=+T)*T,b):Math.sqrt(_)},b.tapDistance=function(T){return arguments.length?(S=+T,b):S},b}var eI=Hk();const eu=A.createContext(null),tI=eu.Provider,Or={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,n)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?n.targetHandle:n.sourceHandle}", edge id: ${n.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`},xE=Or.error001();function Ke(e,n){const r=A.useContext(eu);if(r===null)throw new Error(xE);return Vk(r,e,n)}const jt=()=>{const e=A.useContext(eu);if(e===null)throw new Error(xE);return A.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},nI=e=>e.userSelectionActive?"none":"all";function sv({position:e,children:n,className:r,style:s,...o}){const l=Ke(nI),u=`${e}`.split("-");return ae.createElement("div",{className:Lt(["react-flow__panel",r,...u]),style:{...s,pointerEvents:l},...o},n)}function rI({proOptions:e,position:n="bottom-right"}){return e!=null&&e.hideAttribution?null:ae.createElement(sv,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},ae.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const iI=({x:e,y:n,label:r,labelStyle:s={},labelShowBg:o=!0,labelBgStyle:l={},labelBgPadding:u=[2,4],labelBgBorderRadius:c=2,children:p,className:h,...f})=>{const m=A.useRef(null),[y,x]=A.useState({x:0,y:0,width:0,height:0}),C=Lt(["react-flow__edge-textwrapper",h]);return A.useEffect(()=>{if(m.current){const _=m.current.getBBox();x({x:_.x,y:_.y,width:_.width,height:_.height})}},[r]),typeof r>"u"||!r?null:ae.createElement("g",{transform:`translate(${e-y.width/2} ${n-y.height/2})`,className:C,visibility:y.width?"visible":"hidden",...f},o&&ae.createElement("rect",{width:y.width+2*u[0],x:-u[0],y:-u[1],height:y.height+2*u[1],className:"react-flow__edge-textbg",style:l,rx:c,ry:c}),ae.createElement("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:m,style:s},r),p)};var sI=A.memo(iI);const ov=e=>({width:e.offsetWidth,height:e.offsetHeight}),Hs=(e,n=0,r=1)=>Math.min(Math.max(e,n),r),av=(e={x:0,y:0},n)=>({x:Hs(e.x,n[0][0],n[1][0]),y:Hs(e.y,n[0][1],n[1][1])}),jw=(e,n,r)=>e<n?Hs(Math.abs(e-n),1,50)/50:e>r?-Hs(Math.abs(e-r),1,50)/50:0,_E=(e,n)=>{const r=jw(e.x,35,n.width-35)*20,s=jw(e.y,35,n.height-35)*20;return[r,s]},SE=e=>{var n;return((n=e.getRootNode)==null?void 0:n.call(e))||(window==null?void 0:window.document)},bE=(e,n)=>({x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x2,n.x2),y2:Math.max(e.y2,n.y2)}),ea=({x:e,y:n,width:r,height:s})=>({x:e,y:n,x2:e+r,y2:n+s}),kE=({x:e,y:n,x2:r,y2:s})=>({x:e,y:n,width:r-e,height:s-n}),Rw=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),oI=(e,n)=>kE(bE(ea(e),ea(n))),Lg=(e,n)=>{const r=Math.max(0,Math.min(e.x+e.width,n.x+n.width)-Math.max(e.x,n.x)),s=Math.max(0,Math.min(e.y+e.height,n.y+n.height)-Math.max(e.y,n.y));return Math.ceil(r*s)},aI=e=>In(e.width)&&In(e.height)&&In(e.x)&&In(e.y),In=e=>!isNaN(e)&&isFinite(e),mt=Symbol.for("internals"),EE=["Enter"," ","Escape"],lI=(e,n)=>{},uI=e=>"nativeEvent"in e;function $g(e){var o,l;const n=uI(e)?e.nativeEvent:e,r=((l=(o=n.composedPath)==null?void 0:o.call(n))==null?void 0:l[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(r==null?void 0:r.nodeName)||(r==null?void 0:r.hasAttribute("contenteditable"))||!!(r!=null&&r.closest(".nokey"))}const NE=e=>"clientX"in e,hi=(e,n)=>{var l,u;const r=NE(e),s=r?e.clientX:(l=e.touches)==null?void 0:l[0].clientX,o=r?e.clientY:(u=e.touches)==null?void 0:u[0].clientY;return{x:s-((n==null?void 0:n.left)??0),y:o-((n==null?void 0:n.top)??0)}},Ul=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},ua=({id:e,path:n,labelX:r,labelY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x=20})=>ae.createElement(ae.Fragment,null,ae.createElement("path",{id:e,style:f,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:m,markerStart:y}),x&&ae.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:x,className:"react-flow__edge-interaction"}),o&&In(r)&&In(s)?ae.createElement(sI,{x:r,y:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h}):null);ua.displayName="BaseEdge";function Fo(e,n,r){return r===void 0?r:s=>{const o=n().edges.find(l=>l.id===e);o&&r(s,{...o})}}function CE({sourceX:e,sourceY:n,targetX:r,targetY:s}){const o=Math.abs(r-e)/2,l=r<e?r+o:r-o,u=Math.abs(s-n)/2,c=s<n?s+u:s-u;return[l,c,o,u]}function jE({sourceX:e,sourceY:n,targetX:r,targetY:s,sourceControlX:o,sourceControlY:l,targetControlX:u,targetControlY:c}){const p=e*.125+o*.375+u*.375+r*.125,h=n*.125+l*.375+c*.375+s*.125,f=Math.abs(p-e),m=Math.abs(h-n);return[p,h,f,m]}var Ki;(function(e){e.Strict="strict",e.Loose="loose"})(Ki||(Ki={}));var Vi;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Vi||(Vi={}));var ta;(function(e){e.Partial="partial",e.Full="full"})(ta||(ta={}));var fi;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(fi||(fi={}));var Hl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Hl||(Hl={}));var Ce;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Ce||(Ce={}));function Tw({pos:e,x1:n,y1:r,x2:s,y2:o}){return e===Ce.Left||e===Ce.Right?[.5*(n+s),r]:[n,.5*(r+o)]}function RE({sourceX:e,sourceY:n,sourcePosition:r=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top}){const[u,c]=Tw({pos:r,x1:e,y1:n,x2:s,y2:o}),[p,h]=Tw({pos:l,x1:s,y1:o,x2:e,y2:n}),[f,m,y,x]=jE({sourceX:e,sourceY:n,targetX:s,targetY:o,sourceControlX:u,sourceControlY:c,targetControlX:p,targetControlY:h});return[`M${e},${n} C${u},${c} ${p},${h} ${s},${o}`,f,m,y,x]}const lv=A.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,sourcePosition:o=Ce.Bottom,targetPosition:l=Ce.Top,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,interactionWidth:_})=>{const[S,b,k]=RE({sourceX:e,sourceY:n,sourcePosition:o,targetX:r,targetY:s,targetPosition:l});return ae.createElement(ua,{path:S,labelX:b,labelY:k,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,interactionWidth:_})});lv.displayName="SimpleBezierEdge";const Aw={[Ce.Left]:{x:-1,y:0},[Ce.Right]:{x:1,y:0},[Ce.Top]:{x:0,y:-1},[Ce.Bottom]:{x:0,y:1}},cI=({source:e,sourcePosition:n=Ce.Bottom,target:r})=>n===Ce.Left||n===Ce.Right?e.x<r.x?{x:1,y:0}:{x:-1,y:0}:e.y<r.y?{x:0,y:1}:{x:0,y:-1},Iw=(e,n)=>Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2));function dI({source:e,sourcePosition:n=Ce.Bottom,target:r,targetPosition:s=Ce.Top,center:o,offset:l}){const u=Aw[n],c=Aw[s],p={x:e.x+u.x*l,y:e.y+u.y*l},h={x:r.x+c.x*l,y:r.y+c.y*l},f=cI({source:p,sourcePosition:n,target:h}),m=f.x!==0?"x":"y",y=f[m];let x=[],C,_;const S={x:0,y:0},b={x:0,y:0},[k,N,j,M]=CE({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(u[m]*c[m]===-1){C=o.x??k,_=o.y??N;const O=[{x:C,y:p.y},{x:C,y:h.y}],B=[{x:p.x,y:_},{x:h.x,y:_}];u[m]===y?x=m==="x"?O:B:x=m==="x"?B:O}else{const O=[{x:p.x,y:h.y}],B=[{x:h.x,y:p.y}];if(m==="x"?x=u.x===y?B:O:x=u.y===y?O:B,n===s){const X=Math.abs(e[m]-r[m]);if(X<=l){const T=Math.min(l-1,l-X);u[m]===y?S[m]=(p[m]>e[m]?-1:1)*T:b[m]=(h[m]>r[m]?-1:1)*T}}if(n!==s){const X=m==="x"?"y":"x",T=u[m]===c[X],K=p[X]>h[X],U=p[X]<h[X];(u[m]===1&&(!T&&K||T&&U)||u[m]!==1&&(!T&&U||T&&K))&&(x=m==="x"?O:B)}const L={x:p.x+S.x,y:p.y+S.y},q={x:h.x+b.x,y:h.y+b.y},I=Math.max(Math.abs(L.x-x[0].x),Math.abs(q.x-x[0].x)),H=Math.max(Math.abs(L.y-x[0].y),Math.abs(q.y-x[0].y));I>=H?(C=(L.x+q.x)/2,_=x[0].y):(C=x[0].x,_=(L.y+q.y)/2)}return[[e,{x:p.x+S.x,y:p.y+S.y},...x,{x:h.x+b.x,y:h.y+b.y},r],C,_,j,M]}function fI(e,n,r,s){const o=Math.min(Iw(e,n)/2,Iw(n,r)/2,s),{x:l,y:u}=n;if(e.x===l&&l===r.x||e.y===u&&u===r.y)return`L${l} ${u}`;if(e.y===u){const h=e.x<r.x?-1:1,f=e.y<r.y?1:-1;return`L ${l+o*h},${u}Q ${l},${u} ${l},${u+o*f}`}const c=e.x<r.x?1:-1,p=e.y<r.y?-1:1;return`L ${l},${u+o*p}Q ${l},${u} ${l+o*c},${u}`}function Dg({sourceX:e,sourceY:n,sourcePosition:r=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top,borderRadius:u=5,centerX:c,centerY:p,offset:h=20}){const[f,m,y,x,C]=dI({source:{x:e,y:n},sourcePosition:r,target:{x:s,y:o},targetPosition:l,center:{x:c,y:p},offset:h});return[f.reduce((S,b,k)=>{let N="";return k>0&&k<f.length-1?N=fI(f[k-1],b,f[k+1],u):N=`${k===0?"M":"L"}${b.x} ${b.y}`,S+=N,S},""),m,y,x,C]}const tu=A.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,sourcePosition:m=Ce.Bottom,targetPosition:y=Ce.Top,markerEnd:x,markerStart:C,pathOptions:_,interactionWidth:S})=>{const[b,k,N]=Dg({sourceX:e,sourceY:n,sourcePosition:m,targetX:r,targetY:s,targetPosition:y,borderRadius:_==null?void 0:_.borderRadius,offset:_==null?void 0:_.offset});return ae.createElement(ua,{path:b,labelX:k,labelY:N,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:x,markerStart:C,interactionWidth:S})});tu.displayName="SmoothStepEdge";const uv=A.memo(e=>{var n;return ae.createElement(tu,{...e,pathOptions:A.useMemo(()=>{var r;return{borderRadius:0,offset:(r=e.pathOptions)==null?void 0:r.offset}},[(n=e.pathOptions)==null?void 0:n.offset])})});uv.displayName="StepEdge";function hI({sourceX:e,sourceY:n,targetX:r,targetY:s}){const[o,l,u,c]=CE({sourceX:e,sourceY:n,targetX:r,targetY:s});return[`M ${e},${n}L ${r},${s}`,o,l,u,c]}const cv=A.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x})=>{const[C,_,S]=hI({sourceX:e,sourceY:n,targetX:r,targetY:s});return ae.createElement(ua,{path:C,labelX:_,labelY:S,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x})});cv.displayName="StraightEdge";function Sl(e,n){return e>=0?.5*e:n*25*Math.sqrt(-e)}function Mw({pos:e,x1:n,y1:r,x2:s,y2:o,c:l}){switch(e){case Ce.Left:return[n-Sl(n-s,l),r];case Ce.Right:return[n+Sl(s-n,l),r];case Ce.Top:return[n,r-Sl(r-o,l)];case Ce.Bottom:return[n,r+Sl(o-r,l)]}}function TE({sourceX:e,sourceY:n,sourcePosition:r=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top,curvature:u=.25}){const[c,p]=Mw({pos:r,x1:e,y1:n,x2:s,y2:o,c:u}),[h,f]=Mw({pos:l,x1:s,y1:o,x2:e,y2:n,c:u}),[m,y,x,C]=jE({sourceX:e,sourceY:n,targetX:s,targetY:o,sourceControlX:c,sourceControlY:p,targetControlX:h,targetControlY:f});return[`M${e},${n} C${c},${p} ${h},${f} ${s},${o}`,m,y,x,C]}const Vl=A.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,sourcePosition:o=Ce.Bottom,targetPosition:l=Ce.Top,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,pathOptions:_,interactionWidth:S})=>{const[b,k,N]=TE({sourceX:e,sourceY:n,sourcePosition:o,targetX:r,targetY:s,targetPosition:l,curvature:_==null?void 0:_.curvature});return ae.createElement(ua,{path:b,labelX:k,labelY:N,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,interactionWidth:S})});Vl.displayName="BezierEdge";const dv=A.createContext(null),pI=dv.Provider;dv.Consumer;const mI=()=>A.useContext(dv),gI=e=>"id"in e&&"source"in e&&"target"in e,vI=({source:e,sourceHandle:n,target:r,targetHandle:s})=>`reactflow__edge-${e}${n||""}-${r}${s||""}`,Fg=(e,n)=>typeof e>"u"?"":typeof e=="string"?e:`${n?`${n}__`:""}${Object.keys(e).sort().map(s=>`${s}=${e[s]}`).join("&")}`,yI=(e,n)=>n.some(r=>r.source===e.source&&r.target===e.target&&(r.sourceHandle===e.sourceHandle||!r.sourceHandle&&!e.sourceHandle)&&(r.targetHandle===e.targetHandle||!r.targetHandle&&!e.targetHandle)),wI=(e,n)=>{if(!e.source||!e.target)return n;let r;return gI(e)?r={...e}:r={...e,id:vI(e)},yI(r,n)?n:n.concat(r)},zg=({x:e,y:n},[r,s,o],l,[u,c])=>{const p={x:(e-r)/o,y:(n-s)/o};return l?{x:u*Math.round(p.x/u),y:c*Math.round(p.y/c)}:p},AE=({x:e,y:n},[r,s,o])=>({x:e*o+r,y:n*o+s}),Gi=(e,n=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const r=(e.width??0)*n[0],s=(e.height??0)*n[1],o={x:e.position.x-r,y:e.position.y-s};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-r,y:e.positionAbsolute.y-s}:o}},nu=(e,n=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((s,o)=>{const{x:l,y:u}=Gi(o,n).positionAbsolute;return bE(s,ea({x:l,y:u,width:o.width||0,height:o.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return kE(r)},IE=(e,n,[r,s,o]=[0,0,1],l=!1,u=!1,c=[0,0])=>{const p={x:(n.x-r)/o,y:(n.y-s)/o,width:n.width/o,height:n.height/o},h=[];return e.forEach(f=>{const{width:m,height:y,selectable:x=!0,hidden:C=!1}=f;if(u&&!x||C)return!1;const{positionAbsolute:_}=Gi(f,c),S={x:_.x,y:_.y,width:m||0,height:y||0},b=Lg(p,S),k=typeof m>"u"||typeof y>"u"||m===null||y===null,N=l&&b>0,j=(m||0)*(y||0);(k||N||b>=j||f.dragging)&&h.push(f)}),h},ME=(e,n)=>{const r=e.map(s=>s.id);return n.filter(s=>r.includes(s.source)||r.includes(s.target))},PE=(e,n,r,s,o,l=.1)=>{const u=n/(e.width*(1+l)),c=r/(e.height*(1+l)),p=Math.min(u,c),h=Hs(p,s,o),f=e.x+e.width/2,m=e.y+e.height/2,y=n/2-f*h,x=r/2-m*h;return{x:y,y:x,zoom:h}},Ui=(e,n=0)=>e.transition().duration(n);function Pw(e,n,r,s){return(n[r]||[]).reduce((o,l)=>{var u,c;return`${e.id}-${l.id}-${r}`!==s&&o.push({id:l.id||null,type:r,nodeId:e.id,x:(((u=e.positionAbsolute)==null?void 0:u.x)??0)+l.x+l.width/2,y:(((c=e.positionAbsolute)==null?void 0:c.y)??0)+l.y+l.height/2}),o},[])}function xI(e,n,r,s,o,l){const{x:u,y:c}=hi(e),h=n.elementsFromPoint(u,c).find(C=>C.classList.contains("react-flow__handle"));if(h){const C=h.getAttribute("data-nodeid");if(C){const _=fv(void 0,h),S=h.getAttribute("data-handleid"),b=l({nodeId:C,id:S,type:_});if(b){const k=o.find(N=>N.nodeId===C&&N.type===_&&N.id===S);return{handle:{id:S,type:_,nodeId:C,x:(k==null?void 0:k.x)||r.x,y:(k==null?void 0:k.y)||r.y},validHandleResult:b}}}}let f=[],m=1/0;if(o.forEach(C=>{const _=Math.sqrt((C.x-r.x)**2+(C.y-r.y)**2);if(_<=s){const S=l(C);_<=m&&(_<m?f=[{handle:C,validHandleResult:S}]:_===m&&f.push({handle:C,validHandleResult:S}),m=_)}}),!f.length)return{handle:null,validHandleResult:OE()};if(f.length===1)return f[0];const y=f.some(({validHandleResult:C})=>C.isValid),x=f.some(({handle:C})=>C.type==="target");return f.find(({handle:C,validHandleResult:_})=>x?C.type==="target":y?_.isValid:!0)||f[0]}const _I={source:null,target:null,sourceHandle:null,targetHandle:null},OE=()=>({handleDomNode:null,isValid:!1,connection:_I,endHandle:null});function qE(e,n,r,s,o,l,u){const c=o==="target",p=u.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),h={...OE(),handleDomNode:p};if(p){const f=fv(void 0,p),m=p.getAttribute("data-nodeid"),y=p.getAttribute("data-handleid"),x=p.classList.contains("connectable"),C=p.classList.contains("connectableend"),_={source:c?m:r,sourceHandle:c?y:s,target:c?r:m,targetHandle:c?s:y};h.connection=_,x&&C&&(n===Ki.Strict?c&&f==="source"||!c&&f==="target":m!==r||y!==s)&&(h.endHandle={nodeId:m,handleId:y,type:f},h.isValid=l(_))}return h}function SI({nodes:e,nodeId:n,handleId:r,handleType:s}){return e.reduce((o,l)=>{if(l[mt]){const{handleBounds:u}=l[mt];let c=[],p=[];u&&(c=Pw(l,u,"source",`${n}-${r}-${s}`),p=Pw(l,u,"target",`${n}-${r}-${s}`)),o.push(...c,...p)}return o},[])}function fv(e,n){return e||(n!=null&&n.classList.contains("target")?"target":n!=null&&n.classList.contains("source")?"source":null)}function nd(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function bI(e,n){let r=null;return n?r="valid":e&&!n&&(r="invalid"),r}function LE({event:e,handleId:n,nodeId:r,onConnect:s,isTarget:o,getState:l,setState:u,isValidConnection:c,edgeUpdaterType:p,onReconnectEnd:h}){const f=SE(e.target),{connectionMode:m,domNode:y,autoPanOnConnect:x,connectionRadius:C,onConnectStart:_,panBy:S,getNodes:b,cancelConnection:k}=l();let N=0,j;const{x:M,y:P}=hi(e),O=f==null?void 0:f.elementFromPoint(M,P),B=fv(p,O),L=y==null?void 0:y.getBoundingClientRect();if(!L||!B)return;let q,I=hi(e,L),H=!1,X=null,T=!1,K=null;const U=SI({nodes:b(),nodeId:r,handleId:n,handleType:B}),ee=()=>{if(!x)return;const[G,E]=_E(I,L);S({x:G,y:E}),N=requestAnimationFrame(ee)};u({connectionPosition:I,connectionStatus:null,connectionNodeId:r,connectionHandleId:n,connectionHandleType:B,connectionStartHandle:{nodeId:r,handleId:n,type:B},connectionEndHandle:null}),_==null||_(e,{nodeId:r,handleId:n,handleType:B});function J(G){const{transform:E}=l();I=hi(G,L);const{handle:$,validHandleResult:se}=xI(G,f,zg(I,E,!1,[1,1]),C,U,D=>qE(D,m,r,n,o?"target":"source",c,f));if(j=$,H||(ee(),H=!0),K=se.handleDomNode,X=se.connection,T=se.isValid,u({connectionPosition:j&&T?AE({x:j.x,y:j.y},E):I,connectionStatus:bI(!!j,T),connectionEndHandle:se.endHandle}),!j&&!T&&!K)return nd(q);X.source!==X.target&&K&&(nd(q),q=K,K.classList.add("connecting","react-flow__handle-connecting"),K.classList.toggle("valid",T),K.classList.toggle("react-flow__handle-valid",T))}function F(G){var E,$;(j||K)&&X&&T&&(s==null||s(X)),($=(E=l()).onConnectEnd)==null||$.call(E,G),p&&(h==null||h(G)),nd(q),k(),cancelAnimationFrame(N),H=!1,T=!1,X=null,K=null,f.removeEventListener("mousemove",J),f.removeEventListener("mouseup",F),f.removeEventListener("touchmove",J),f.removeEventListener("touchend",F)}f.addEventListener("mousemove",J),f.addEventListener("mouseup",F),f.addEventListener("touchmove",J),f.addEventListener("touchend",F)}const Ow=()=>!0,kI=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),EI=(e,n,r)=>s=>{const{connectionStartHandle:o,connectionEndHandle:l,connectionClickStartHandle:u}=s;return{connecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.handleId)===n&&(o==null?void 0:o.type)===r||(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.handleId)===n&&(l==null?void 0:l.type)===r,clickConnecting:(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.handleId)===n&&(u==null?void 0:u.type)===r}},$E=A.forwardRef(({type:e="source",position:n=Ce.Top,isValidConnection:r,isConnectable:s=!0,isConnectableStart:o=!0,isConnectableEnd:l=!0,id:u,onConnect:c,children:p,className:h,onMouseDown:f,onTouchStart:m,...y},x)=>{var L,q;const C=u||null,_=e==="target",S=jt(),b=mI(),{connectOnClick:k,noPanClassName:N}=Ke(kI,Ct),{connecting:j,clickConnecting:M}=Ke(EI(b,C,e),Ct);b||(q=(L=S.getState()).onError)==null||q.call(L,"010",Or.error010());const P=I=>{const{defaultEdgeOptions:H,onConnect:X,hasDefaultEdges:T}=S.getState(),K={...H,...I};if(T){const{edges:U,setEdges:ee}=S.getState();ee(wI(K,U))}X==null||X(K),c==null||c(K)},O=I=>{if(!b)return;const H=NE(I);o&&(H&&I.button===0||!H)&&LE({event:I,handleId:C,nodeId:b,onConnect:P,isTarget:_,getState:S.getState,setState:S.setState,isValidConnection:r||S.getState().isValidConnection||Ow}),H?f==null||f(I):m==null||m(I)},B=I=>{const{onClickConnectStart:H,onClickConnectEnd:X,connectionClickStartHandle:T,connectionMode:K,isValidConnection:U}=S.getState();if(!b||!T&&!o)return;if(!T){H==null||H(I,{nodeId:b,handleId:C,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:b,type:e,handleId:C}});return}const ee=SE(I.target),J=r||U||Ow,{connection:F,isValid:G}=qE({nodeId:b,id:C,type:e},K,T.nodeId,T.handleId||null,T.type,J,ee);G&&P(F),X==null||X(I),S.setState({connectionClickStartHandle:null})};return ae.createElement("div",{"data-handleid":C,"data-nodeid":b,"data-handlepos":n,"data-id":`${b}-${C}-${e}`,className:Lt(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",N,h,{source:!_,target:_,connectable:s,connectablestart:o,connectableend:l,connecting:M,connectionindicator:s&&(o&&!j||l&&j)}]),onMouseDown:O,onTouchStart:O,onClick:k?B:void 0,ref:x,...y},p)});$E.displayName="Handle";var Vs=A.memo($E);const DE=({data:e,isConnectable:n,targetPosition:r=Ce.Top,sourcePosition:s=Ce.Bottom})=>ae.createElement(ae.Fragment,null,ae.createElement(Vs,{type:"target",position:r,isConnectable:n}),e==null?void 0:e.label,ae.createElement(Vs,{type:"source",position:s,isConnectable:n}));DE.displayName="DefaultNode";var Bg=A.memo(DE);const FE=({data:e,isConnectable:n,sourcePosition:r=Ce.Bottom})=>ae.createElement(ae.Fragment,null,e==null?void 0:e.label,ae.createElement(Vs,{type:"source",position:r,isConnectable:n}));FE.displayName="InputNode";var zE=A.memo(FE);const BE=({data:e,isConnectable:n,targetPosition:r=Ce.Top})=>ae.createElement(ae.Fragment,null,ae.createElement(Vs,{type:"target",position:r,isConnectable:n}),e==null?void 0:e.label);BE.displayName="OutputNode";var UE=A.memo(BE);const hv=()=>null;hv.displayName="GroupNode";const NI=e=>({selectedNodes:e.getNodes().filter(n=>n.selected),selectedEdges:e.edges.filter(n=>n.selected).map(n=>({...n}))}),bl=e=>e.id;function CI(e,n){return Ct(e.selectedNodes.map(bl),n.selectedNodes.map(bl))&&Ct(e.selectedEdges.map(bl),n.selectedEdges.map(bl))}const HE=A.memo(({onSelectionChange:e})=>{const n=jt(),{selectedNodes:r,selectedEdges:s}=Ke(NI,CI);return A.useEffect(()=>{const o={nodes:r,edges:s};e==null||e(o),n.getState().onSelectionChange.forEach(l=>l(o))},[r,s,e]),null});HE.displayName="SelectionListener";const jI=e=>!!e.onSelectionChange;function RI({onSelectionChange:e}){const n=Ke(jI);return e||n?ae.createElement(HE,{onSelectionChange:e}):null}const TI=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function Rs(e,n){A.useEffect(()=>{typeof e<"u"&&n(e)},[e])}function Le(e,n,r){A.useEffect(()=>{typeof n<"u"&&r({[e]:n})},[n])}const AI=({nodes:e,edges:n,defaultNodes:r,defaultEdges:s,onConnect:o,onConnectStart:l,onConnectEnd:u,onClickConnectStart:c,onClickConnectEnd:p,nodesDraggable:h,nodesConnectable:f,nodesFocusable:m,edgesFocusable:y,edgesUpdatable:x,elevateNodesOnSelect:C,minZoom:_,maxZoom:S,nodeExtent:b,onNodesChange:k,onEdgesChange:N,elementsSelectable:j,connectionMode:M,snapGrid:P,snapToGrid:O,translateExtent:B,connectOnClick:L,defaultEdgeOptions:q,fitView:I,fitViewOptions:H,onNodesDelete:X,onEdgesDelete:T,onNodeDrag:K,onNodeDragStart:U,onNodeDragStop:ee,onSelectionDrag:J,onSelectionDragStart:F,onSelectionDragStop:G,noPanClassName:E,nodeOrigin:$,rfId:se,autoPanOnConnect:D,autoPanOnNodeDrag:Q,onError:te,connectionRadius:oe,isValidConnection:ue,nodeDragThreshold:ge})=>{const{setNodes:ce,setEdges:Me,setDefaultNodesAndEdges:Fe,setMinZoom:Pe,setMaxZoom:Te,setTranslateExtent:ke,setNodeExtent:Ye,reset:ye}=Ke(TI,Ct),we=jt();return A.useEffect(()=>{const ze=s==null?void 0:s.map(at=>({...at,...q}));return Fe(r,ze),()=>{ye()}},[]),Le("defaultEdgeOptions",q,we.setState),Le("connectionMode",M,we.setState),Le("onConnect",o,we.setState),Le("onConnectStart",l,we.setState),Le("onConnectEnd",u,we.setState),Le("onClickConnectStart",c,we.setState),Le("onClickConnectEnd",p,we.setState),Le("nodesDraggable",h,we.setState),Le("nodesConnectable",f,we.setState),Le("nodesFocusable",m,we.setState),Le("edgesFocusable",y,we.setState),Le("edgesUpdatable",x,we.setState),Le("elementsSelectable",j,we.setState),Le("elevateNodesOnSelect",C,we.setState),Le("snapToGrid",O,we.setState),Le("snapGrid",P,we.setState),Le("onNodesChange",k,we.setState),Le("onEdgesChange",N,we.setState),Le("connectOnClick",L,we.setState),Le("fitViewOnInit",I,we.setState),Le("fitViewOnInitOptions",H,we.setState),Le("onNodesDelete",X,we.setState),Le("onEdgesDelete",T,we.setState),Le("onNodeDrag",K,we.setState),Le("onNodeDragStart",U,we.setState),Le("onNodeDragStop",ee,we.setState),Le("onSelectionDrag",J,we.setState),Le("onSelectionDragStart",F,we.setState),Le("onSelectionDragStop",G,we.setState),Le("noPanClassName",E,we.setState),Le("nodeOrigin",$,we.setState),Le("rfId",se,we.setState),Le("autoPanOnConnect",D,we.setState),Le("autoPanOnNodeDrag",Q,we.setState),Le("onError",te,we.setState),Le("connectionRadius",oe,we.setState),Le("isValidConnection",ue,we.setState),Le("nodeDragThreshold",ge,we.setState),Rs(e,ce),Rs(n,Me),Rs(_,Pe),Rs(S,Te),Rs(B,ke),Rs(b,Ye),null},qw={display:"none"},II={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},VE="react-flow__node-desc",WE="react-flow__edge-desc",MI="react-flow__aria-live",PI=e=>e.ariaLiveMessage;function OI({rfId:e}){const n=Ke(PI);return ae.createElement("div",{id:`${MI}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:II},n)}function qI({rfId:e,disableKeyboardA11y:n}){return ae.createElement(ae.Fragment,null,ae.createElement("div",{id:`${VE}-${e}`,style:qw},"Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),ae.createElement("div",{id:`${WE}-${e}`,style:qw},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&ae.createElement(OI,{rfId:e}))}var na=(e=null,n={actInsideInputWithModifier:!0})=>{const[r,s]=A.useState(!1),o=A.useRef(!1),l=A.useRef(new Set([])),[u,c]=A.useMemo(()=>{if(e!==null){const h=(Array.isArray(e)?e:[e]).filter(m=>typeof m=="string").map(m=>m.split("+")),f=h.reduce((m,y)=>m.concat(...y),[]);return[h,f]}return[[],[]]},[e]);return A.useEffect(()=>{const p=typeof document<"u"?document:null,h=(n==null?void 0:n.target)||p;if(e!==null){const f=x=>{if(o.current=x.ctrlKey||x.metaKey||x.shiftKey,(!o.current||o.current&&!n.actInsideInputWithModifier)&&$g(x))return!1;const _=$w(x.code,c);l.current.add(x[_]),Lw(u,l.current,!1)&&(x.preventDefault(),s(!0))},m=x=>{if((!o.current||o.current&&!n.actInsideInputWithModifier)&&$g(x))return!1;const _=$w(x.code,c);Lw(u,l.current,!0)?(s(!1),l.current.clear()):l.current.delete(x[_]),x.key==="Meta"&&l.current.clear(),o.current=!1},y=()=>{l.current.clear(),s(!1)};return h==null||h.addEventListener("keydown",f),h==null||h.addEventListener("keyup",m),window.addEventListener("blur",y),()=>{h==null||h.removeEventListener("keydown",f),h==null||h.removeEventListener("keyup",m),window.removeEventListener("blur",y)}}},[e,s]),r};function Lw(e,n,r){return e.filter(s=>r||s.length===n.size).some(s=>s.every(o=>n.has(o)))}function $w(e,n){return n.includes(e)?"code":"key"}function GE(e,n,r,s){var c,p;const o=e.parentNode||e.parentId;if(!o)return r;const l=n.get(o),u=Gi(l,s);return GE(l,n,{x:(r.x??0)+u.x,y:(r.y??0)+u.y,z:(((c=l[mt])==null?void 0:c.z)??0)>(r.z??0)?((p=l[mt])==null?void 0:p.z)??0:r.z??0},s)}function YE(e,n,r){e.forEach(s=>{var l;const o=s.parentNode||s.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||r!=null&&r[s.id]){const{x:u,y:c,z:p}=GE(s,e,{...s.position,z:((l=s[mt])==null?void 0:l.z)??0},n);s.positionAbsolute={x:u,y:c},s[mt].z=p,r!=null&&r[s.id]&&(s[mt].isParent=!0)}})}function rd(e,n,r,s){const o=new Map,l={},u=s?1e3:0;return e.forEach(c=>{var x;const p=(In(c.zIndex)?c.zIndex:0)+(c.selected?u:0),h=n.get(c.id),f={...c,positionAbsolute:{x:c.position.x,y:c.position.y}},m=c.parentNode||c.parentId;m&&(l[m]=!0);const y=(h==null?void 0:h.type)&&(h==null?void 0:h.type)!==c.type;Object.defineProperty(f,mt,{enumerable:!1,value:{handleBounds:y||(x=h==null?void 0:h[mt])==null?void 0:x.handleBounds,z:p}}),o.set(c.id,f)}),YE(o,r,l),o}function KE(e,n={}){const{getNodes:r,width:s,height:o,minZoom:l,maxZoom:u,d3Zoom:c,d3Selection:p,fitViewOnInitDone:h,fitViewOnInit:f,nodeOrigin:m}=e(),y=n.initial&&!h&&f;if(c&&p&&(y||!n.initial)){const C=r().filter(S=>{var k;const b=n.includeHiddenNodes?S.width&&S.height:!S.hidden;return(k=n.nodes)!=null&&k.length?b&&n.nodes.some(N=>N.id===S.id):b}),_=C.every(S=>S.width&&S.height);if(C.length>0&&_){const S=nu(C,m),{x:b,y:k,zoom:N}=PE(S,s,o,n.minZoom??l,n.maxZoom??u,n.padding??.1),j=Mr.translate(b,k).scale(N);return typeof n.duration=="number"&&n.duration>0?c.transform(Ui(p,n.duration),j):c.transform(p,j),!0}}return!1}function LI(e,n){return e.forEach(r=>{const s=n.get(r.id);s&&n.set(s.id,{...s,[mt]:s[mt],selected:r.selected})}),new Map(n)}function $I(e,n){return n.map(r=>{const s=e.find(o=>o.id===r.id);return s&&(r.selected=s.selected),r})}function kl({changedNodes:e,changedEdges:n,get:r,set:s}){const{nodeInternals:o,edges:l,onNodesChange:u,onEdgesChange:c,hasDefaultNodes:p,hasDefaultEdges:h}=r();e!=null&&e.length&&(p&&s({nodeInternals:LI(e,o)}),u==null||u(e)),n!=null&&n.length&&(h&&s({edges:$I(n,l)}),c==null||c(n))}const Ts=()=>{},DI={zoomIn:Ts,zoomOut:Ts,zoomTo:Ts,getZoom:()=>1,setViewport:Ts,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Ts,fitBounds:Ts,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},FI=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),zI=()=>{const e=jt(),{d3Zoom:n,d3Selection:r}=Ke(FI,Ct);return A.useMemo(()=>r&&n?{zoomIn:o=>n.scaleBy(Ui(r,o==null?void 0:o.duration),1.2),zoomOut:o=>n.scaleBy(Ui(r,o==null?void 0:o.duration),1/1.2),zoomTo:(o,l)=>n.scaleTo(Ui(r,l==null?void 0:l.duration),o),getZoom:()=>e.getState().transform[2],setViewport:(o,l)=>{const[u,c,p]=e.getState().transform,h=Mr.translate(o.x??u,o.y??c).scale(o.zoom??p);n.transform(Ui(r,l==null?void 0:l.duration),h)},getViewport:()=>{const[o,l,u]=e.getState().transform;return{x:o,y:l,zoom:u}},fitView:o=>KE(e.getState,o),setCenter:(o,l,u)=>{const{width:c,height:p,maxZoom:h}=e.getState(),f=typeof(u==null?void 0:u.zoom)<"u"?u.zoom:h,m=c/2-o*f,y=p/2-l*f,x=Mr.translate(m,y).scale(f);n.transform(Ui(r,u==null?void 0:u.duration),x)},fitBounds:(o,l)=>{const{width:u,height:c,minZoom:p,maxZoom:h}=e.getState(),{x:f,y:m,zoom:y}=PE(o,u,c,p,h,(l==null?void 0:l.padding)??.1),x=Mr.translate(f,m).scale(y);n.transform(Ui(r,l==null?void 0:l.duration),x)},project:o=>{const{transform:l,snapToGrid:u,snapGrid:c}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),zg(o,l,u,c)},screenToFlowPosition:o=>{const{transform:l,snapToGrid:u,snapGrid:c,domNode:p}=e.getState();if(!p)return o;const{x:h,y:f}=p.getBoundingClientRect(),m={x:o.x-h,y:o.y-f};return zg(m,l,u,c)},flowToScreenPosition:o=>{const{transform:l,domNode:u}=e.getState();if(!u)return o;const{x:c,y:p}=u.getBoundingClientRect(),h=AE(o,l);return{x:h.x+c,y:h.y+p}},viewportInitialized:!0}:DI,[n,r])};function ca(){const e=zI(),n=jt(),r=A.useCallback(()=>n.getState().getNodes().map(_=>({..._})),[]),s=A.useCallback(_=>n.getState().nodeInternals.get(_),[]),o=A.useCallback(()=>{const{edges:_=[]}=n.getState();return _.map(S=>({...S}))},[]),l=A.useCallback(_=>{const{edges:S=[]}=n.getState();return S.find(b=>b.id===_)},[]),u=A.useCallback(_=>{const{getNodes:S,setNodes:b,hasDefaultNodes:k,onNodesChange:N}=n.getState(),j=S(),M=typeof _=="function"?_(j):_;if(k)b(M);else if(N){const P=M.length===0?j.map(O=>({type:"remove",id:O.id})):M.map(O=>({item:O,type:"reset"}));N(P)}},[]),c=A.useCallback(_=>{const{edges:S=[],setEdges:b,hasDefaultEdges:k,onEdgesChange:N}=n.getState(),j=typeof _=="function"?_(S):_;if(k)b(j);else if(N){const M=j.length===0?S.map(P=>({type:"remove",id:P.id})):j.map(P=>({item:P,type:"reset"}));N(M)}},[]),p=A.useCallback(_=>{const S=Array.isArray(_)?_:[_],{getNodes:b,setNodes:k,hasDefaultNodes:N,onNodesChange:j}=n.getState();if(N){const P=[...b(),...S];k(P)}else if(j){const M=S.map(P=>({item:P,type:"add"}));j(M)}},[]),h=A.useCallback(_=>{const S=Array.isArray(_)?_:[_],{edges:b=[],setEdges:k,hasDefaultEdges:N,onEdgesChange:j}=n.getState();if(N)k([...b,...S]);else if(j){const M=S.map(P=>({item:P,type:"add"}));j(M)}},[]),f=A.useCallback(()=>{const{getNodes:_,edges:S=[],transform:b}=n.getState(),[k,N,j]=b;return{nodes:_().map(M=>({...M})),edges:S.map(M=>({...M})),viewport:{x:k,y:N,zoom:j}}},[]),m=A.useCallback(({nodes:_,edges:S})=>{const{nodeInternals:b,getNodes:k,edges:N,hasDefaultNodes:j,hasDefaultEdges:M,onNodesDelete:P,onEdgesDelete:O,onNodesChange:B,onEdgesChange:L}=n.getState(),q=(_||[]).map(K=>K.id),I=(S||[]).map(K=>K.id),H=k().reduce((K,U)=>{const ee=U.parentNode||U.parentId,J=!q.includes(U.id)&&ee&&K.find(G=>G.id===ee);return(typeof U.deletable=="boolean"?U.deletable:!0)&&(q.includes(U.id)||J)&&K.push(U),K},[]),X=N.filter(K=>typeof K.deletable=="boolean"?K.deletable:!0),T=X.filter(K=>I.includes(K.id));if(H||T){const K=ME(H,X),U=[...T,...K],ee=U.reduce((J,F)=>(J.includes(F.id)||J.push(F.id),J),[]);if((M||j)&&(M&&n.setState({edges:N.filter(J=>!ee.includes(J.id))}),j&&(H.forEach(J=>{b.delete(J.id)}),n.setState({nodeInternals:new Map(b)}))),ee.length>0&&(O==null||O(U),L&&L(ee.map(J=>({id:J,type:"remove"})))),H.length>0&&(P==null||P(H),B)){const J=H.map(F=>({id:F.id,type:"remove"}));B(J)}}},[]),y=A.useCallback(_=>{const S=aI(_),b=S?null:n.getState().nodeInternals.get(_.id);return!S&&!b?[null,null,S]:[S?_:Rw(b),b,S]},[]),x=A.useCallback((_,S=!0,b)=>{const[k,N,j]=y(_);return k?(b||n.getState().getNodes()).filter(M=>{if(!j&&(M.id===N.id||!M.positionAbsolute))return!1;const P=Rw(M),O=Lg(P,k);return S&&O>0||O>=k.width*k.height}):[]},[]),C=A.useCallback((_,S,b=!0)=>{const[k]=y(_);if(!k)return!1;const N=Lg(k,S);return b&&N>0||N>=k.width*k.height},[]);return A.useMemo(()=>({...e,getNodes:r,getNode:s,getEdges:o,getEdge:l,setNodes:u,setEdges:c,addNodes:p,addEdges:h,toObject:f,deleteElements:m,getIntersectingNodes:x,isNodeIntersecting:C}),[e,r,s,o,l,u,c,p,h,f,m,x,C])}const BI={actInsideInputWithModifier:!1};var UI=({deleteKeyCode:e,multiSelectionKeyCode:n})=>{const r=jt(),{deleteElements:s}=ca(),o=na(e,BI),l=na(n);A.useEffect(()=>{if(o){const{edges:u,getNodes:c}=r.getState(),p=c().filter(f=>f.selected),h=u.filter(f=>f.selected);s({nodes:p,edges:h}),r.setState({nodesSelectionActive:!1})}},[o]),A.useEffect(()=>{r.setState({multiSelectionActive:l})},[l])};function HI(e){const n=jt();A.useEffect(()=>{let r;const s=()=>{var l,u;if(!e.current)return;const o=ov(e.current);(o.height===0||o.width===0)&&((u=(l=n.getState()).onError)==null||u.call(l,"004",Or.error004())),n.setState({width:o.width||500,height:o.height||500})};return s(),window.addEventListener("resize",s),e.current&&(r=new ResizeObserver(()=>s()),r.observe(e.current)),()=>{window.removeEventListener("resize",s),r&&e.current&&r.unobserve(e.current)}},[])}const pv={position:"absolute",width:"100%",height:"100%",top:0,left:0},VI=(e,n)=>e.x!==n.x||e.y!==n.y||e.zoom!==n.k,El=e=>({x:e.x,y:e.y,zoom:e.k}),As=(e,n)=>e.target.closest(`.${n}`),Dw=(e,n)=>n===2&&Array.isArray(e)&&e.includes(2),Fw=e=>{const n=e.ctrlKey&&Ul()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*n},WI=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),GI=({onMove:e,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:s,zoomOnScroll:o=!0,zoomOnPinch:l=!0,panOnScroll:u=!1,panOnScrollSpeed:c=.5,panOnScrollMode:p=Vi.Free,zoomOnDoubleClick:h=!0,elementsSelectable:f,panOnDrag:m=!0,defaultViewport:y,translateExtent:x,minZoom:C,maxZoom:_,zoomActivationKeyCode:S,preventScrolling:b=!0,children:k,noWheelClassName:N,noPanClassName:j})=>{const M=A.useRef(),P=jt(),O=A.useRef(!1),B=A.useRef(!1),L=A.useRef(null),q=A.useRef({x:0,y:0,zoom:0}),{d3Zoom:I,d3Selection:H,d3ZoomHandler:X,userSelectionActive:T}=Ke(WI,Ct),K=na(S),U=A.useRef(0),ee=A.useRef(!1),J=A.useRef();return HI(L),A.useEffect(()=>{if(L.current){const F=L.current.getBoundingClientRect(),G=wE().scaleExtent([C,_]).translateExtent(x),E=An(L.current).call(G),$=Mr.translate(y.x,y.y).scale(Hs(y.zoom,C,_)),se=[[0,0],[F.width,F.height]],D=G.constrain()($,se,x);G.transform(E,D),G.wheelDelta(Fw),P.setState({d3Zoom:G,d3Selection:E,d3ZoomHandler:E.on("wheel.zoom"),transform:[D.x,D.y,D.k],domNode:L.current.closest(".react-flow")})}},[]),A.useEffect(()=>{H&&I&&(u&&!K&&!T?H.on("wheel.zoom",F=>{if(As(F,N))return!1;F.preventDefault(),F.stopImmediatePropagation();const G=H.property("__zoom").k||1;if(F.ctrlKey&&l){const ue=Kn(F),ge=Fw(F),ce=G*Math.pow(2,ge);I.scaleTo(H,ce,ue,F);return}const E=F.deltaMode===1?20:1;let $=p===Vi.Vertical?0:F.deltaX*E,se=p===Vi.Horizontal?0:F.deltaY*E;!Ul()&&F.shiftKey&&p!==Vi.Vertical&&($=F.deltaY*E,se=0),I.translateBy(H,-($/G)*c,-(se/G)*c,{internal:!0});const D=El(H.property("__zoom")),{onViewportChangeStart:Q,onViewportChange:te,onViewportChangeEnd:oe}=P.getState();clearTimeout(J.current),ee.current||(ee.current=!0,n==null||n(F,D),Q==null||Q(D)),ee.current&&(e==null||e(F,D),te==null||te(D),J.current=setTimeout(()=>{r==null||r(F,D),oe==null||oe(D),ee.current=!1},150))},{passive:!1}):typeof X<"u"&&H.on("wheel.zoom",function(F,G){if(!b&&F.type==="wheel"&&!F.ctrlKey||As(F,N))return null;F.preventDefault(),X.call(this,F,G)},{passive:!1}))},[T,u,p,H,I,X,K,l,b,N,n,e,r]),A.useEffect(()=>{I&&I.on("start",F=>{var $,se;if(!F.sourceEvent||F.sourceEvent.internal)return null;U.current=($=F.sourceEvent)==null?void 0:$.button;const{onViewportChangeStart:G}=P.getState(),E=El(F.transform);O.current=!0,q.current=E,((se=F.sourceEvent)==null?void 0:se.type)==="mousedown"&&P.setState({paneDragging:!0}),G==null||G(E),n==null||n(F.sourceEvent,E)})},[I,n]),A.useEffect(()=>{I&&(T&&!O.current?I.on("zoom",null):T||I.on("zoom",F=>{var E;const{onViewportChange:G}=P.getState();if(P.setState({transform:[F.transform.x,F.transform.y,F.transform.k]}),B.current=!!(s&&Dw(m,U.current??0)),(e||G)&&!((E=F.sourceEvent)!=null&&E.internal)){const $=El(F.transform);G==null||G($),e==null||e(F.sourceEvent,$)}}))},[T,I,e,m,s]),A.useEffect(()=>{I&&I.on("end",F=>{if(!F.sourceEvent||F.sourceEvent.internal)return null;const{onViewportChangeEnd:G}=P.getState();if(O.current=!1,P.setState({paneDragging:!1}),s&&Dw(m,U.current??0)&&!B.current&&s(F.sourceEvent),B.current=!1,(r||G)&&VI(q.current,F.transform)){const E=El(F.transform);q.current=E,clearTimeout(M.current),M.current=setTimeout(()=>{G==null||G(E),r==null||r(F.sourceEvent,E)},u?150:0)}})},[I,u,m,r,s]),A.useEffect(()=>{I&&I.filter(F=>{const G=K||o,E=l&&F.ctrlKey;if((m===!0||Array.isArray(m)&&m.includes(1))&&F.button===1&&F.type==="mousedown"&&(As(F,"react-flow__node")||As(F,"react-flow__edge")))return!0;if(!m&&!G&&!u&&!h&&!l||T||!h&&F.type==="dblclick"||As(F,N)&&F.type==="wheel"||As(F,j)&&(F.type!=="wheel"||u&&F.type==="wheel"&&!K)||!l&&F.ctrlKey&&F.type==="wheel"||!G&&!u&&!E&&F.type==="wheel"||!m&&(F.type==="mousedown"||F.type==="touchstart")||Array.isArray(m)&&!m.includes(F.button)&&F.type==="mousedown")return!1;const $=Array.isArray(m)&&m.includes(F.button)||!F.button||F.button<=1;return(!F.ctrlKey||F.type==="wheel")&&$})},[T,I,o,l,u,h,m,f,K]),ae.createElement("div",{className:"react-flow__renderer",ref:L,style:pv},k)},YI=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function KI(){const{userSelectionActive:e,userSelectionRect:n}=Ke(YI,Ct);return e&&n?ae.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}function zw(e,n){const r=n.parentNode||n.parentId,s=e.find(o=>o.id===r);if(s){const o=n.position.x+n.width-s.width,l=n.position.y+n.height-s.height;if(o>0||l>0||n.position.x<0||n.position.y<0){if(s.style={...s.style},s.style.width=s.style.width??s.width,s.style.height=s.style.height??s.height,o>0&&(s.style.width+=o),l>0&&(s.style.height+=l),n.position.x<0){const u=Math.abs(n.position.x);s.position.x=s.position.x-u,s.style.width+=u,n.position.x=0}if(n.position.y<0){const u=Math.abs(n.position.y);s.position.y=s.position.y-u,s.style.height+=u,n.position.y=0}s.width=s.style.width,s.height=s.style.height}}}function XI(e,n){if(e.some(s=>s.type==="reset"))return e.filter(s=>s.type==="reset").map(s=>s.item);const r=e.filter(s=>s.type==="add").map(s=>s.item);return n.reduce((s,o)=>{const l=e.filter(c=>c.id===o.id);if(l.length===0)return s.push(o),s;const u={...o};for(const c of l)if(c)switch(c.type){case"select":{u.selected=c.selected;break}case"position":{typeof c.position<"u"&&(u.position=c.position),typeof c.positionAbsolute<"u"&&(u.positionAbsolute=c.positionAbsolute),typeof c.dragging<"u"&&(u.dragging=c.dragging),u.expandParent&&zw(s,u);break}case"dimensions":{typeof c.dimensions<"u"&&(u.width=c.dimensions.width,u.height=c.dimensions.height),typeof c.updateStyle<"u"&&(u.style={...u.style||{},...c.dimensions}),typeof c.resizing=="boolean"&&(u.resizing=c.resizing),u.expandParent&&zw(s,u);break}case"remove":return s}return s.push(u),s},r)}function QI(e,n){return XI(e,n)}const di=(e,n)=>({id:e,type:"select",selected:n});function Os(e,n){return e.reduce((r,s)=>{const o=n.includes(s.id);return!s.selected&&o?(s.selected=!0,r.push(di(s.id,!0))):s.selected&&!o&&(s.selected=!1,r.push(di(s.id,!1))),r},[])}const id=(e,n)=>r=>{r.target===n.current&&(e==null||e(r))},ZI=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),XE=A.memo(({isSelecting:e,selectionMode:n=ta.Full,panOnDrag:r,onSelectionStart:s,onSelectionEnd:o,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:c,onPaneMouseEnter:p,onPaneMouseMove:h,onPaneMouseLeave:f,children:m})=>{const y=A.useRef(null),x=jt(),C=A.useRef(0),_=A.useRef(0),S=A.useRef(),{userSelectionActive:b,elementsSelectable:k,dragging:N}=Ke(ZI,Ct),j=()=>{x.setState({userSelectionActive:!1,userSelectionRect:null}),C.current=0,_.current=0},M=X=>{l==null||l(X),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},P=X=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){X.preventDefault();return}u==null||u(X)},O=c?X=>c(X):void 0,B=X=>{const{resetSelectedElements:T,domNode:K}=x.getState();if(S.current=K==null?void 0:K.getBoundingClientRect(),!k||!e||X.button!==0||X.target!==y.current||!S.current)return;const{x:U,y:ee}=hi(X,S.current);T(),x.setState({userSelectionRect:{width:0,height:0,startX:U,startY:ee,x:U,y:ee}}),s==null||s(X)},L=X=>{const{userSelectionRect:T,nodeInternals:K,edges:U,transform:ee,onNodesChange:J,onEdgesChange:F,nodeOrigin:G,getNodes:E}=x.getState();if(!e||!S.current||!T)return;x.setState({userSelectionActive:!0,nodesSelectionActive:!1});const $=hi(X,S.current),se=T.startX??0,D=T.startY??0,Q={...T,x:$.x<se?$.x:se,y:$.y<D?$.y:D,width:Math.abs($.x-se),height:Math.abs($.y-D)},te=E(),oe=IE(K,Q,ee,n===ta.Partial,!0,G),ue=ME(oe,U).map(ce=>ce.id),ge=oe.map(ce=>ce.id);if(C.current!==ge.length){C.current=ge.length;const ce=Os(te,ge);ce.length&&(J==null||J(ce))}if(_.current!==ue.length){_.current=ue.length;const ce=Os(U,ue);ce.length&&(F==null||F(ce))}x.setState({userSelectionRect:Q})},q=X=>{if(X.button!==0)return;const{userSelectionRect:T}=x.getState();!b&&T&&X.target===y.current&&(M==null||M(X)),x.setState({nodesSelectionActive:C.current>0}),j(),o==null||o(X)},I=X=>{b&&(x.setState({nodesSelectionActive:C.current>0}),o==null||o(X)),j()},H=k&&(e||b);return ae.createElement("div",{className:Lt(["react-flow__pane",{dragging:N,selection:e}]),onClick:H?void 0:id(M,y),onContextMenu:id(P,y),onWheel:id(O,y),onMouseEnter:H?void 0:p,onMouseDown:H?B:void 0,onMouseMove:H?L:h,onMouseUp:H?q:void 0,onMouseLeave:H?I:f,ref:y,style:pv},m,ae.createElement(KI,null))});XE.displayName="Pane";function QE(e,n){const r=e.parentNode||e.parentId;if(!r)return!1;const s=n.get(r);return s?s.selected?!0:QE(s,n):!1}function Bw(e,n,r){let s=e;do{if(s!=null&&s.matches(n))return!0;if(s===r.current)return!1;s=s.parentElement}while(s);return!1}function JI(e,n,r,s){return Array.from(e.values()).filter(o=>(o.selected||o.id===s)&&(!o.parentNode||o.parentId||!QE(o,e))&&(o.draggable||n&&typeof o.draggable>"u")).map(o=>{var l,u;return{id:o.id,position:o.position||{x:0,y:0},positionAbsolute:o.positionAbsolute||{x:0,y:0},distance:{x:r.x-(((l=o.positionAbsolute)==null?void 0:l.x)??0),y:r.y-(((u=o.positionAbsolute)==null?void 0:u.y)??0)},delta:{x:0,y:0},extent:o.extent,parentNode:o.parentNode||o.parentId,parentId:o.parentNode||o.parentId,width:o.width,height:o.height,expandParent:o.expandParent}})}function eM(e,n){return!n||n==="parent"?n:[n[0],[n[1][0]-(e.width||0),n[1][1]-(e.height||0)]]}function ZE(e,n,r,s,o=[0,0],l){const u=eM(e,e.extent||s);let c=u;const p=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(p&&e.width&&e.height){const m=r.get(p),{x:y,y:x}=Gi(m,o).positionAbsolute;c=m&&In(y)&&In(x)&&In(m.width)&&In(m.height)?[[y+e.width*o[0],x+e.height*o[1]],[y+m.width-e.width+e.width*o[0],x+m.height-e.height+e.height*o[1]]]:c}else l==null||l("005",Or.error005()),c=u;else if(e.extent&&p&&e.extent!=="parent"){const m=r.get(p),{x:y,y:x}=Gi(m,o).positionAbsolute;c=[[e.extent[0][0]+y,e.extent[0][1]+x],[e.extent[1][0]+y,e.extent[1][1]+x]]}let h={x:0,y:0};if(p){const m=r.get(p);h=Gi(m,o).positionAbsolute}const f=c&&c!=="parent"?av(n,c):n;return{position:{x:f.x-h.x,y:f.y-h.y},positionAbsolute:f}}function sd({nodeId:e,dragItems:n,nodeInternals:r}){const s=n.map(o=>({...r.get(o.id),position:o.position,positionAbsolute:o.positionAbsolute}));return[e?s.find(o=>o.id===e):s[0],s]}const Uw=(e,n,r,s)=>{const o=n.querySelectorAll(e);if(!o||!o.length)return null;const l=Array.from(o),u=n.getBoundingClientRect(),c={x:u.width*s[0],y:u.height*s[1]};return l.map(p=>{const h=p.getBoundingClientRect();return{id:p.getAttribute("data-handleid"),position:p.getAttribute("data-handlepos"),x:(h.left-u.left-c.x)/r,y:(h.top-u.top-c.y)/r,...ov(p)}})};function zo(e,n,r){return r===void 0?r:s=>{const o=n().nodeInternals.get(e);o&&r(s,{...o})}}function Ug({id:e,store:n,unselect:r=!1,nodeRef:s}){const{addSelectedNodes:o,unselectNodesAndEdges:l,multiSelectionActive:u,nodeInternals:c,onError:p}=n.getState(),h=c.get(e);if(!h){p==null||p("012",Or.error012(e));return}n.setState({nodesSelectionActive:!1}),h.selected?(r||h.selected&&u)&&(l({nodes:[h],edges:[]}),requestAnimationFrame(()=>{var f;return(f=s==null?void 0:s.current)==null?void 0:f.blur()})):o([e])}function tM(){const e=jt();return A.useCallback(({sourceEvent:r})=>{const{transform:s,snapGrid:o,snapToGrid:l}=e.getState(),u=r.touches?r.touches[0].clientX:r.clientX,c=r.touches?r.touches[0].clientY:r.clientY,p={x:(u-s[0])/s[2],y:(c-s[1])/s[2]};return{xSnapped:l?o[0]*Math.round(p.x/o[0]):p.x,ySnapped:l?o[1]*Math.round(p.y/o[1]):p.y,...p}},[])}function od(e){return(n,r,s)=>e==null?void 0:e(n,s)}function JE({nodeRef:e,disabled:n=!1,noDragClassName:r,handleSelector:s,nodeId:o,isSelectable:l,selectNodesOnDrag:u}){const c=jt(),[p,h]=A.useState(!1),f=A.useRef([]),m=A.useRef({x:null,y:null}),y=A.useRef(0),x=A.useRef(null),C=A.useRef({x:0,y:0}),_=A.useRef(null),S=A.useRef(!1),b=A.useRef(!1),k=A.useRef(!1),N=tM();return A.useEffect(()=>{if(e!=null&&e.current){const j=An(e.current),M=({x:B,y:L})=>{const{nodeInternals:q,onNodeDrag:I,onSelectionDrag:H,updateNodePositions:X,nodeExtent:T,snapGrid:K,snapToGrid:U,nodeOrigin:ee,onError:J}=c.getState();m.current={x:B,y:L};let F=!1,G={x:0,y:0,x2:0,y2:0};if(f.current.length>1&&T){const $=nu(f.current,ee);G=ea($)}if(f.current=f.current.map($=>{const se={x:B-$.distance.x,y:L-$.distance.y};U&&(se.x=K[0]*Math.round(se.x/K[0]),se.y=K[1]*Math.round(se.y/K[1]));const D=[[T[0][0],T[0][1]],[T[1][0],T[1][1]]];f.current.length>1&&T&&!$.extent&&(D[0][0]=$.positionAbsolute.x-G.x+T[0][0],D[1][0]=$.positionAbsolute.x+($.width??0)-G.x2+T[1][0],D[0][1]=$.positionAbsolute.y-G.y+T[0][1],D[1][1]=$.positionAbsolute.y+($.height??0)-G.y2+T[1][1]);const Q=ZE($,se,q,D,ee,J);return F=F||$.position.x!==Q.position.x||$.position.y!==Q.position.y,$.position=Q.position,$.positionAbsolute=Q.positionAbsolute,$}),!F)return;X(f.current,!0,!0),h(!0);const E=o?I:od(H);if(E&&_.current){const[$,se]=sd({nodeId:o,dragItems:f.current,nodeInternals:q});E(_.current,$,se)}},P=()=>{if(!x.current)return;const[B,L]=_E(C.current,x.current);if(B!==0||L!==0){const{transform:q,panBy:I}=c.getState();m.current.x=(m.current.x??0)-B/q[2],m.current.y=(m.current.y??0)-L/q[2],I({x:B,y:L})&&M(m.current)}y.current=requestAnimationFrame(P)},O=B=>{var ee;const{nodeInternals:L,multiSelectionActive:q,nodesDraggable:I,unselectNodesAndEdges:H,onNodeDragStart:X,onSelectionDragStart:T}=c.getState();b.current=!0;const K=o?X:od(T);(!u||!l)&&!q&&o&&((ee=L.get(o))!=null&&ee.selected||H()),o&&l&&u&&Ug({id:o,store:c,nodeRef:e});const U=N(B);if(m.current=U,f.current=JI(L,I,U,o),K&&f.current){const[J,F]=sd({nodeId:o,dragItems:f.current,nodeInternals:L});K(B.sourceEvent,J,F)}};if(n)j.on(".drag",null);else{const B=c2().on("start",L=>{const{domNode:q,nodeDragThreshold:I}=c.getState();I===0&&O(L),k.current=!1;const H=N(L);m.current=H,x.current=(q==null?void 0:q.getBoundingClientRect())||null,C.current=hi(L.sourceEvent,x.current)}).on("drag",L=>{var X,T;const q=N(L),{autoPanOnNodeDrag:I,nodeDragThreshold:H}=c.getState();if(L.sourceEvent.type==="touchmove"&&L.sourceEvent.touches.length>1&&(k.current=!0),!k.current){if(!S.current&&b.current&&I&&(S.current=!0,P()),!b.current){const K=q.xSnapped-(((X=m==null?void 0:m.current)==null?void 0:X.x)??0),U=q.ySnapped-(((T=m==null?void 0:m.current)==null?void 0:T.y)??0);Math.sqrt(K*K+U*U)>H&&O(L)}(m.current.x!==q.xSnapped||m.current.y!==q.ySnapped)&&f.current&&b.current&&(_.current=L.sourceEvent,C.current=hi(L.sourceEvent,x.current),M(q))}}).on("end",L=>{if(!(!b.current||k.current)&&(h(!1),S.current=!1,b.current=!1,cancelAnimationFrame(y.current),f.current)){const{updateNodePositions:q,nodeInternals:I,onNodeDragStop:H,onSelectionDragStop:X}=c.getState(),T=o?H:od(X);if(q(f.current,!1,!1),T){const[K,U]=sd({nodeId:o,dragItems:f.current,nodeInternals:I});T(L.sourceEvent,K,U)}}}).filter(L=>{const q=L.target;return!L.button&&(!r||!Bw(q,`.${r}`,e))&&(!s||Bw(q,s,e))});return j.call(B),()=>{j.on(".drag",null)}}}},[e,n,r,s,l,c,o,u,N]),p}function eN(){const e=jt();return A.useCallback(r=>{const{nodeInternals:s,nodeExtent:o,updateNodePositions:l,getNodes:u,snapToGrid:c,snapGrid:p,onError:h,nodesDraggable:f}=e.getState(),m=u().filter(k=>k.selected&&(k.draggable||f&&typeof k.draggable>"u")),y=c?p[0]:5,x=c?p[1]:5,C=r.isShiftPressed?4:1,_=r.x*y*C,S=r.y*x*C,b=m.map(k=>{if(k.positionAbsolute){const N={x:k.positionAbsolute.x+_,y:k.positionAbsolute.y+S};c&&(N.x=p[0]*Math.round(N.x/p[0]),N.y=p[1]*Math.round(N.y/p[1]));const{positionAbsolute:j,position:M}=ZE(k,N,s,o,void 0,h);k.position=M,k.positionAbsolute=j}return k});l(b,!0,!1)},[])}const Fs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var Bo=e=>{const n=({id:r,type:s,data:o,xPos:l,yPos:u,xPosOrigin:c,yPosOrigin:p,selected:h,onClick:f,onMouseEnter:m,onMouseMove:y,onMouseLeave:x,onContextMenu:C,onDoubleClick:_,style:S,className:b,isDraggable:k,isSelectable:N,isConnectable:j,isFocusable:M,selectNodesOnDrag:P,sourcePosition:O,targetPosition:B,hidden:L,resizeObserver:q,dragHandle:I,zIndex:H,isParent:X,noDragClassName:T,noPanClassName:K,initialized:U,disableKeyboardA11y:ee,ariaLabel:J,rfId:F,hasHandleBounds:G})=>{const E=jt(),$=A.useRef(null),se=A.useRef(null),D=A.useRef(O),Q=A.useRef(B),te=A.useRef(s),oe=N||k||f||m||y||x,ue=eN(),ge=zo(r,E.getState,m),ce=zo(r,E.getState,y),Me=zo(r,E.getState,x),Fe=zo(r,E.getState,C),Pe=zo(r,E.getState,_),Te=ye=>{const{nodeDragThreshold:we}=E.getState();if(N&&(!P||!k||we>0)&&Ug({id:r,store:E,nodeRef:$}),f){const ze=E.getState().nodeInternals.get(r);ze&&f(ye,{...ze})}},ke=ye=>{if(!$g(ye)&&!ee)if(EE.includes(ye.key)&&N){const we=ye.key==="Escape";Ug({id:r,store:E,unselect:we,nodeRef:$})}else k&&h&&Object.prototype.hasOwnProperty.call(Fs,ye.key)&&(E.setState({ariaLiveMessage:`Moved selected node ${ye.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~l}, y: ${~~u}`}),ue({x:Fs[ye.key].x,y:Fs[ye.key].y,isShiftPressed:ye.shiftKey}))};A.useEffect(()=>()=>{se.current&&(q==null||q.unobserve(se.current),se.current=null)},[]),A.useEffect(()=>{if($.current&&!L){const ye=$.current;(!U||!G||se.current!==ye)&&(se.current&&(q==null||q.unobserve(se.current)),q==null||q.observe(ye),se.current=ye)}},[L,U,G]),A.useEffect(()=>{const ye=te.current!==s,we=D.current!==O,ze=Q.current!==B;$.current&&(ye||we||ze)&&(ye&&(te.current=s),we&&(D.current=O),ze&&(Q.current=B),E.getState().updateNodeDimensions([{id:r,nodeElement:$.current,forceUpdate:!0}]))},[r,s,O,B]);const Ye=JE({nodeRef:$,disabled:L||!k,noDragClassName:T,handleSelector:I,nodeId:r,isSelectable:N,selectNodesOnDrag:P});return L?null:ae.createElement("div",{className:Lt(["react-flow__node",`react-flow__node-${s}`,{[K]:k},b,{selected:h,selectable:N,parent:X,dragging:Ye}]),ref:$,style:{zIndex:H,transform:`translate(${c}px,${p}px)`,pointerEvents:oe?"all":"none",visibility:U?"visible":"hidden",...S},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:ge,onMouseMove:ce,onMouseLeave:Me,onContextMenu:Fe,onClick:Te,onDoubleClick:Pe,onKeyDown:M?ke:void 0,tabIndex:M?0:void 0,role:M?"button":void 0,"aria-describedby":ee?void 0:`${VE}-${F}`,"aria-label":J},ae.createElement(pI,{value:r},ae.createElement(e,{id:r,data:o,type:s,xPos:l,yPos:u,selected:h,isConnectable:j,sourcePosition:O,targetPosition:B,dragging:Ye,dragHandle:I,zIndex:H})))};return n.displayName="NodeWrapper",A.memo(n)};const nM=e=>{const n=e.getNodes().filter(r=>r.selected);return{...nu(n,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function rM({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:r}){const s=jt(),{width:o,height:l,x:u,y:c,transformString:p,userSelectionActive:h}=Ke(nM,Ct),f=eN(),m=A.useRef(null);if(A.useEffect(()=>{var C;r||(C=m.current)==null||C.focus({preventScroll:!0})},[r]),JE({nodeRef:m}),h||!o||!l)return null;const y=e?C=>{const _=s.getState().getNodes().filter(S=>S.selected);e(C,_)}:void 0,x=C=>{Object.prototype.hasOwnProperty.call(Fs,C.key)&&f({x:Fs[C.key].x,y:Fs[C.key].y,isShiftPressed:C.shiftKey})};return ae.createElement("div",{className:Lt(["react-flow__nodesselection","react-flow__container",n]),style:{transform:p}},ae.createElement("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:r?void 0:-1,onKeyDown:r?void 0:x,style:{width:o,height:l,top:c,left:u}}))}var iM=A.memo(rM);const sM=e=>e.nodesSelectionActive,tN=({children:e,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,deleteKeyCode:c,onMove:p,onMoveStart:h,onMoveEnd:f,selectionKeyCode:m,selectionOnDrag:y,selectionMode:x,onSelectionStart:C,onSelectionEnd:_,multiSelectionKeyCode:S,panActivationKeyCode:b,zoomActivationKeyCode:k,elementsSelectable:N,zoomOnScroll:j,zoomOnPinch:M,panOnScroll:P,panOnScrollSpeed:O,panOnScrollMode:B,zoomOnDoubleClick:L,panOnDrag:q,defaultViewport:I,translateExtent:H,minZoom:X,maxZoom:T,preventScrolling:K,onSelectionContextMenu:U,noWheelClassName:ee,noPanClassName:J,disableKeyboardA11y:F})=>{const G=Ke(sM),E=na(m),$=na(b),se=$||q,D=$||P,Q=E||y&&se!==!0;return UI({deleteKeyCode:c,multiSelectionKeyCode:S}),ae.createElement(GI,{onMove:p,onMoveStart:h,onMoveEnd:f,onPaneContextMenu:l,elementsSelectable:N,zoomOnScroll:j,zoomOnPinch:M,panOnScroll:D,panOnScrollSpeed:O,panOnScrollMode:B,zoomOnDoubleClick:L,panOnDrag:!E&&se,defaultViewport:I,translateExtent:H,minZoom:X,maxZoom:T,zoomActivationKeyCode:k,preventScrolling:K,noWheelClassName:ee,noPanClassName:J},ae.createElement(XE,{onSelectionStart:C,onSelectionEnd:_,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,panOnDrag:se,isSelecting:!!Q,selectionMode:x},e,G&&ae.createElement(iM,{onSelectionContextMenu:U,noPanClassName:J,disableKeyboardA11y:F})))};tN.displayName="FlowRenderer";var oM=A.memo(tN);function aM(e){return Ke(A.useCallback(r=>e?IE(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[e]))}function lM(e){const n={input:Bo(e.input||zE),default:Bo(e.default||Bg),output:Bo(e.output||UE),group:Bo(e.group||hv)},r={},s=Object.keys(e).filter(o=>!["input","default","output","group"].includes(o)).reduce((o,l)=>(o[l]=Bo(e[l]||Bg),o),r);return{...n,...s}}const uM=({x:e,y:n,width:r,height:s,origin:o})=>!r||!s?{x:e,y:n}:o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:n}:{x:e-r*o[0],y:n-s*o[1]},cM=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),nN=e=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:s,elementsSelectable:o,updateNodeDimensions:l,onError:u}=Ke(cM,Ct),c=aM(e.onlyRenderVisibleElements),p=A.useRef(),h=A.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const f=new ResizeObserver(m=>{const y=m.map(x=>({id:x.target.getAttribute("data-id"),nodeElement:x.target,forceUpdate:!0}));l(y)});return p.current=f,f},[]);return A.useEffect(()=>()=>{var f;(f=p==null?void 0:p.current)==null||f.disconnect()},[]),ae.createElement("div",{className:"react-flow__nodes",style:pv},c.map(f=>{var M,P,O;let m=f.type||"default";e.nodeTypes[m]||(u==null||u("003",Or.error003(m)),m="default");const y=e.nodeTypes[m]||e.nodeTypes.default,x=!!(f.draggable||n&&typeof f.draggable>"u"),C=!!(f.selectable||o&&typeof f.selectable>"u"),_=!!(f.connectable||r&&typeof f.connectable>"u"),S=!!(f.focusable||s&&typeof f.focusable>"u"),b=e.nodeExtent?av(f.positionAbsolute,e.nodeExtent):f.positionAbsolute,k=(b==null?void 0:b.x)??0,N=(b==null?void 0:b.y)??0,j=uM({x:k,y:N,width:f.width??0,height:f.height??0,origin:e.nodeOrigin});return ae.createElement(y,{key:f.id,id:f.id,className:f.className,style:f.style,type:m,data:f.data,sourcePosition:f.sourcePosition||Ce.Bottom,targetPosition:f.targetPosition||Ce.Top,hidden:f.hidden,xPos:k,yPos:N,xPosOrigin:j.x,yPosOrigin:j.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!f.selected,isDraggable:x,isSelectable:C,isConnectable:_,isFocusable:S,resizeObserver:h,dragHandle:f.dragHandle,zIndex:((M=f[mt])==null?void 0:M.z)??0,isParent:!!((P=f[mt])!=null&&P.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!f.width&&!!f.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:f.ariaLabel,hasHandleBounds:!!((O=f[mt])!=null&&O.handleBounds)})}))};nN.displayName="NodeRenderer";var dM=A.memo(nN);const fM=(e,n,r)=>r===Ce.Left?e-n:r===Ce.Right?e+n:e,hM=(e,n,r)=>r===Ce.Top?e-n:r===Ce.Bottom?e+n:e,Hw="react-flow__edgeupdater",Vw=({position:e,centerX:n,centerY:r,radius:s=10,onMouseDown:o,onMouseEnter:l,onMouseOut:u,type:c})=>ae.createElement("circle",{onMouseDown:o,onMouseEnter:l,onMouseOut:u,className:Lt([Hw,`${Hw}-${c}`]),cx:fM(n,s,e),cy:hM(r,s,e),r:s,stroke:"transparent",fill:"transparent"}),pM=()=>!0;var Is=e=>{const n=({id:r,className:s,type:o,data:l,onClick:u,onEdgeDoubleClick:c,selected:p,animated:h,label:f,labelStyle:m,labelShowBg:y,labelBgStyle:x,labelBgPadding:C,labelBgBorderRadius:_,style:S,source:b,target:k,sourceX:N,sourceY:j,targetX:M,targetY:P,sourcePosition:O,targetPosition:B,elementsSelectable:L,hidden:q,sourceHandleId:I,targetHandleId:H,onContextMenu:X,onMouseEnter:T,onMouseMove:K,onMouseLeave:U,reconnectRadius:ee,onReconnect:J,onReconnectStart:F,onReconnectEnd:G,markerEnd:E,markerStart:$,rfId:se,ariaLabel:D,isFocusable:Q,isReconnectable:te,pathOptions:oe,interactionWidth:ue,disableKeyboardA11y:ge})=>{const ce=A.useRef(null),[Me,Fe]=A.useState(!1),[Pe,Te]=A.useState(!1),ke=jt(),Ye=A.useMemo(()=>`url('#${Fg($,se)}')`,[$,se]),ye=A.useMemo(()=>`url('#${Fg(E,se)}')`,[E,se]);if(q)return null;const we=Ze=>{var $t;const{edges:xt,addSelectedEdges:De,unselectNodesAndEdges:_t,multiSelectionActive:Ut}=ke.getState(),Ht=xt.find(Vt=>Vt.id===r);Ht&&(L&&(ke.setState({nodesSelectionActive:!1}),Ht.selected&&Ut?(_t({nodes:[],edges:[Ht]}),($t=ce.current)==null||$t.blur()):De([r])),u&&u(Ze,Ht))},ze=Fo(r,ke.getState,c),at=Fo(r,ke.getState,X),gt=Fo(r,ke.getState,T),Xe=Fo(r,ke.getState,K),$e=Fo(r,ke.getState,U),Qe=(Ze,xt)=>{if(Ze.button!==0)return;const{edges:De,isValidConnection:_t}=ke.getState(),Ut=xt?k:b,Ht=(xt?H:I)||null,$t=xt?"target":"source",Vt=_t||pM,On=xt,qn=De.find(ln=>ln.id===r);Te(!0),F==null||F(Ze,qn,$t);const vn=ln=>{Te(!1),G==null||G(ln,qn,$t)};LE({event:Ze,handleId:Ht,nodeId:Ut,onConnect:ln=>J==null?void 0:J(qn,ln),isTarget:On,getState:ke.getState,setState:ke.setState,isValidConnection:Vt,edgeUpdaterType:$t,onReconnectEnd:vn})},ht=Ze=>Qe(Ze,!0),vt=Ze=>Qe(Ze,!1),lt=()=>Fe(!0),yt=()=>Fe(!1),Mt=!L&&!u,Pt=Ze=>{var xt;if(!ge&&EE.includes(Ze.key)&&L){const{unselectNodesAndEdges:De,addSelectedEdges:_t,edges:Ut}=ke.getState();Ze.key==="Escape"?((xt=ce.current)==null||xt.blur(),De({edges:[Ut.find($t=>$t.id===r)]})):_t([r])}};return ae.createElement("g",{className:Lt(["react-flow__edge",`react-flow__edge-${o}`,s,{selected:p,animated:h,inactive:Mt,updating:Me}]),onClick:we,onDoubleClick:ze,onContextMenu:at,onMouseEnter:gt,onMouseMove:Xe,onMouseLeave:$e,onKeyDown:Q?Pt:void 0,tabIndex:Q?0:void 0,role:Q?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":D===null?void 0:D||`Edge from ${b} to ${k}`,"aria-describedby":Q?`${WE}-${se}`:void 0,ref:ce},!Pe&&ae.createElement(e,{id:r,source:b,target:k,selected:p,animated:h,label:f,labelStyle:m,labelShowBg:y,labelBgStyle:x,labelBgPadding:C,labelBgBorderRadius:_,data:l,style:S,sourceX:N,sourceY:j,targetX:M,targetY:P,sourcePosition:O,targetPosition:B,sourceHandleId:I,targetHandleId:H,markerStart:Ye,markerEnd:ye,pathOptions:oe,interactionWidth:ue}),te&&ae.createElement(ae.Fragment,null,(te==="source"||te===!0)&&ae.createElement(Vw,{position:O,centerX:N,centerY:j,radius:ee,onMouseDown:ht,onMouseEnter:lt,onMouseOut:yt,type:"source"}),(te==="target"||te===!0)&&ae.createElement(Vw,{position:B,centerX:M,centerY:P,radius:ee,onMouseDown:vt,onMouseEnter:lt,onMouseOut:yt,type:"target"})))};return n.displayName="EdgeWrapper",A.memo(n)};function mM(e){const n={default:Is(e.default||Vl),straight:Is(e.bezier||cv),step:Is(e.step||uv),smoothstep:Is(e.step||tu),simplebezier:Is(e.simplebezier||lv)},r={},s=Object.keys(e).filter(o=>!["default","bezier"].includes(o)).reduce((o,l)=>(o[l]=Is(e[l]||Vl),o),r);return{...n,...s}}function Ww(e,n,r=null){const s=((r==null?void 0:r.x)||0)+n.x,o=((r==null?void 0:r.y)||0)+n.y,l=(r==null?void 0:r.width)||n.width,u=(r==null?void 0:r.height)||n.height;switch(e){case Ce.Top:return{x:s+l/2,y:o};case Ce.Right:return{x:s+l,y:o+u/2};case Ce.Bottom:return{x:s+l/2,y:o+u};case Ce.Left:return{x:s,y:o+u/2}}}function Gw(e,n){return e?e.length===1||!n?e[0]:n&&e.find(r=>r.id===n)||null:null}const gM=(e,n,r,s,o,l)=>{const u=Ww(r,e,n),c=Ww(l,s,o);return{sourceX:u.x,sourceY:u.y,targetX:c.x,targetY:c.y}};function vM({sourcePos:e,targetPos:n,sourceWidth:r,sourceHeight:s,targetWidth:o,targetHeight:l,width:u,height:c,transform:p}){const h={x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x+r,n.x+o),y2:Math.max(e.y+s,n.y+l)};h.x===h.x2&&(h.x2+=1),h.y===h.y2&&(h.y2+=1);const f=ea({x:(0-p[0])/p[2],y:(0-p[1])/p[2],width:u/p[2],height:c/p[2]}),m=Math.max(0,Math.min(f.x2,h.x2)-Math.max(f.x,h.x)),y=Math.max(0,Math.min(f.y2,h.y2)-Math.max(f.y,h.y));return Math.ceil(m*y)>0}function Yw(e){var s,o,l,u,c;const n=((s=e==null?void 0:e[mt])==null?void 0:s.handleBounds)||null,r=n&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((o=e==null?void 0:e.positionAbsolute)==null?void 0:o.x)<"u"&&typeof((l=e==null?void 0:e.positionAbsolute)==null?void 0:l.y)<"u";return[{x:((u=e==null?void 0:e.positionAbsolute)==null?void 0:u.x)||0,y:((c=e==null?void 0:e.positionAbsolute)==null?void 0:c.y)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0},n,!!r]}const yM=[{level:0,isMaxLevel:!0,edges:[]}];function wM(e,n,r=!1){let s=-1;const o=e.reduce((u,c)=>{var f,m;const p=In(c.zIndex);let h=p?c.zIndex:0;if(r){const y=n.get(c.target),x=n.get(c.source),C=c.selected||(y==null?void 0:y.selected)||(x==null?void 0:x.selected),_=Math.max(((f=x==null?void 0:x[mt])==null?void 0:f.z)||0,((m=y==null?void 0:y[mt])==null?void 0:m.z)||0,1e3);h=(p?c.zIndex:0)+(C?_:0)}return u[h]?u[h].push(c):u[h]=[c],s=h>s?h:s,u},{}),l=Object.entries(o).map(([u,c])=>{const p=+u;return{edges:c,level:p,isMaxLevel:p===s}});return l.length===0?yM:l}function xM(e,n,r){const s=Ke(A.useCallback(o=>e?o.edges.filter(l=>{const u=n.get(l.source),c=n.get(l.target);return(u==null?void 0:u.width)&&(u==null?void 0:u.height)&&(c==null?void 0:c.width)&&(c==null?void 0:c.height)&&vM({sourcePos:u.positionAbsolute||{x:0,y:0},targetPos:c.positionAbsolute||{x:0,y:0},sourceWidth:u.width,sourceHeight:u.height,targetWidth:c.width,targetHeight:c.height,width:o.width,height:o.height,transform:o.transform})}):o.edges,[e,n]));return wM(s,n,r)}const _M=({color:e="none",strokeWidth:n=1})=>ae.createElement("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),SM=({color:e="none",strokeWidth:n=1})=>ae.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Kw={[Hl.Arrow]:_M,[Hl.ArrowClosed]:SM};function bM(e){const n=jt();return A.useMemo(()=>{var o,l;return Object.prototype.hasOwnProperty.call(Kw,e)?Kw[e]:((l=(o=n.getState()).onError)==null||l.call(o,"009",Or.error009(e)),null)},[e])}const kM=({id:e,type:n,color:r,width:s=12.5,height:o=12.5,markerUnits:l="strokeWidth",strokeWidth:u,orient:c="auto-start-reverse"})=>{const p=bM(n);return p?ae.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${s}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:l,orient:c,refX:"0",refY:"0"},ae.createElement(p,{color:r,strokeWidth:u})):null},EM=({defaultColor:e,rfId:n})=>r=>{const s=[];return r.edges.reduce((o,l)=>([l.markerStart,l.markerEnd].forEach(u=>{if(u&&typeof u=="object"){const c=Fg(u,n);s.includes(c)||(o.push({id:c,color:u.color||e,...u}),s.push(c))}}),o),[]).sort((o,l)=>o.id.localeCompare(l.id))},rN=({defaultColor:e,rfId:n})=>{const r=Ke(A.useCallback(EM({defaultColor:e,rfId:n}),[e,n]),(s,o)=>!(s.length!==o.length||s.some((l,u)=>l.id!==o[u].id)));return ae.createElement("defs",null,r.map(s=>ae.createElement(kM,{id:s.id,key:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient})))};rN.displayName="MarkerDefinitions";var NM=A.memo(rN);const CM=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),iN=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:s,edgeTypes:o,noPanClassName:l,onEdgeContextMenu:u,onEdgeMouseEnter:c,onEdgeMouseMove:p,onEdgeMouseLeave:h,onEdgeClick:f,onEdgeDoubleClick:m,onReconnect:y,onReconnectStart:x,onReconnectEnd:C,reconnectRadius:_,children:S,disableKeyboardA11y:b})=>{const{edgesFocusable:k,edgesUpdatable:N,elementsSelectable:j,width:M,height:P,connectionMode:O,nodeInternals:B,onError:L}=Ke(CM,Ct),q=xM(n,B,r);return M?ae.createElement(ae.Fragment,null,q.map(({level:I,edges:H,isMaxLevel:X})=>ae.createElement("svg",{key:I,style:{zIndex:I},width:M,height:P,className:"react-flow__edges react-flow__container"},X&&ae.createElement(NM,{defaultColor:e,rfId:s}),ae.createElement("g",null,H.map(T=>{const[K,U,ee]=Yw(B.get(T.source)),[J,F,G]=Yw(B.get(T.target));if(!ee||!G)return null;let E=T.type||"default";o[E]||(L==null||L("011",Or.error011(E)),E="default");const $=o[E]||o.default,se=O===Ki.Strict?F.target:(F.target??[]).concat(F.source??[]),D=Gw(U.source,T.sourceHandle),Q=Gw(se,T.targetHandle),te=(D==null?void 0:D.position)||Ce.Bottom,oe=(Q==null?void 0:Q.position)||Ce.Top,ue=!!(T.focusable||k&&typeof T.focusable>"u"),ge=T.reconnectable||T.updatable,ce=typeof y<"u"&&(ge||N&&typeof ge>"u");if(!D||!Q)return L==null||L("008",Or.error008(D,T)),null;const{sourceX:Me,sourceY:Fe,targetX:Pe,targetY:Te}=gM(K,D,te,J,Q,oe);return ae.createElement($,{key:T.id,id:T.id,className:Lt([T.className,l]),type:E,data:T.data,selected:!!T.selected,animated:!!T.animated,hidden:!!T.hidden,label:T.label,labelStyle:T.labelStyle,labelShowBg:T.labelShowBg,labelBgStyle:T.labelBgStyle,labelBgPadding:T.labelBgPadding,labelBgBorderRadius:T.labelBgBorderRadius,style:T.style,source:T.source,target:T.target,sourceHandleId:T.sourceHandle,targetHandleId:T.targetHandle,markerEnd:T.markerEnd,markerStart:T.markerStart,sourceX:Me,sourceY:Fe,targetX:Pe,targetY:Te,sourcePosition:te,targetPosition:oe,elementsSelectable:j,onContextMenu:u,onMouseEnter:c,onMouseMove:p,onMouseLeave:h,onClick:f,onEdgeDoubleClick:m,onReconnect:y,onReconnectStart:x,onReconnectEnd:C,reconnectRadius:_,rfId:s,ariaLabel:T.ariaLabel,isFocusable:ue,isReconnectable:ce,pathOptions:"pathOptions"in T?T.pathOptions:void 0,interactionWidth:T.interactionWidth,disableKeyboardA11y:b})})))),S):null};iN.displayName="EdgeRenderer";var jM=A.memo(iN);const RM=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function TM({children:e}){const n=Ke(RM);return ae.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}function AM(e){const n=ca(),r=A.useRef(!1);A.useEffect(()=>{!r.current&&n.viewportInitialized&&e&&(setTimeout(()=>e(n),1),r.current=!0)},[e,n.viewportInitialized])}const IM={[Ce.Left]:Ce.Right,[Ce.Right]:Ce.Left,[Ce.Top]:Ce.Bottom,[Ce.Bottom]:Ce.Top},sN=({nodeId:e,handleType:n,style:r,type:s=fi.Bezier,CustomComponent:o,connectionStatus:l})=>{var P,O,B;const{fromNode:u,handleId:c,toX:p,toY:h,connectionMode:f}=Ke(A.useCallback(L=>({fromNode:L.nodeInternals.get(e),handleId:L.connectionHandleId,toX:(L.connectionPosition.x-L.transform[0])/L.transform[2],toY:(L.connectionPosition.y-L.transform[1])/L.transform[2],connectionMode:L.connectionMode}),[e]),Ct),m=(P=u==null?void 0:u[mt])==null?void 0:P.handleBounds;let y=m==null?void 0:m[n];if(f===Ki.Loose&&(y=y||(m==null?void 0:m[n==="source"?"target":"source"])),!u||!y)return null;const x=c?y.find(L=>L.id===c):y[0],C=x?x.x+x.width/2:(u.width??0)/2,_=x?x.y+x.height/2:u.height??0,S=(((O=u.positionAbsolute)==null?void 0:O.x)??0)+C,b=(((B=u.positionAbsolute)==null?void 0:B.y)??0)+_,k=x==null?void 0:x.position,N=k?IM[k]:null;if(!k||!N)return null;if(o)return ae.createElement(o,{connectionLineType:s,connectionLineStyle:r,fromNode:u,fromHandle:x,fromX:S,fromY:b,toX:p,toY:h,fromPosition:k,toPosition:N,connectionStatus:l});let j="";const M={sourceX:S,sourceY:b,sourcePosition:k,targetX:p,targetY:h,targetPosition:N};return s===fi.Bezier?[j]=TE(M):s===fi.Step?[j]=Dg({...M,borderRadius:0}):s===fi.SmoothStep?[j]=Dg(M):s===fi.SimpleBezier?[j]=RE(M):j=`M${S},${b} ${p},${h}`,ae.createElement("path",{d:j,fill:"none",className:"react-flow__connection-path",style:r})};sN.displayName="ConnectionLine";const MM=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function PM({containerStyle:e,style:n,type:r,component:s}){const{nodeId:o,handleType:l,nodesConnectable:u,width:c,height:p,connectionStatus:h}=Ke(MM,Ct);return!(o&&l&&c&&u)?null:ae.createElement("svg",{style:e,width:c,height:p,className:"react-flow__edges react-flow__connectionline react-flow__container"},ae.createElement("g",{className:Lt(["react-flow__connection",h])},ae.createElement(sN,{nodeId:o,handleType:l,style:n,type:r,CustomComponent:s,connectionStatus:h})))}function Xw(e,n){return A.useRef(null),jt(),A.useMemo(()=>n(e),[e])}const oN=({nodeTypes:e,edgeTypes:n,onMove:r,onMoveStart:s,onMoveEnd:o,onInit:l,onNodeClick:u,onEdgeClick:c,onNodeDoubleClick:p,onEdgeDoubleClick:h,onNodeMouseEnter:f,onNodeMouseMove:m,onNodeMouseLeave:y,onNodeContextMenu:x,onSelectionContextMenu:C,onSelectionStart:_,onSelectionEnd:S,connectionLineType:b,connectionLineStyle:k,connectionLineComponent:N,connectionLineContainerStyle:j,selectionKeyCode:M,selectionOnDrag:P,selectionMode:O,multiSelectionKeyCode:B,panActivationKeyCode:L,zoomActivationKeyCode:q,deleteKeyCode:I,onlyRenderVisibleElements:H,elementsSelectable:X,selectNodesOnDrag:T,defaultViewport:K,translateExtent:U,minZoom:ee,maxZoom:J,preventScrolling:F,defaultMarkerColor:G,zoomOnScroll:E,zoomOnPinch:$,panOnScroll:se,panOnScrollSpeed:D,panOnScrollMode:Q,zoomOnDoubleClick:te,panOnDrag:oe,onPaneClick:ue,onPaneMouseEnter:ge,onPaneMouseMove:ce,onPaneMouseLeave:Me,onPaneScroll:Fe,onPaneContextMenu:Pe,onEdgeContextMenu:Te,onEdgeMouseEnter:ke,onEdgeMouseMove:Ye,onEdgeMouseLeave:ye,onReconnect:we,onReconnectStart:ze,onReconnectEnd:at,reconnectRadius:gt,noDragClassName:Xe,noWheelClassName:$e,noPanClassName:Qe,elevateEdgesOnSelect:ht,disableKeyboardA11y:vt,nodeOrigin:lt,nodeExtent:yt,rfId:Mt})=>{const Pt=Xw(e,lM),Ze=Xw(n,mM);return AM(l),ae.createElement(oM,{onPaneClick:ue,onPaneMouseEnter:ge,onPaneMouseMove:ce,onPaneMouseLeave:Me,onPaneContextMenu:Pe,onPaneScroll:Fe,deleteKeyCode:I,selectionKeyCode:M,selectionOnDrag:P,selectionMode:O,onSelectionStart:_,onSelectionEnd:S,multiSelectionKeyCode:B,panActivationKeyCode:L,zoomActivationKeyCode:q,elementsSelectable:X,onMove:r,onMoveStart:s,onMoveEnd:o,zoomOnScroll:E,zoomOnPinch:$,zoomOnDoubleClick:te,panOnScroll:se,panOnScrollSpeed:D,panOnScrollMode:Q,panOnDrag:oe,defaultViewport:K,translateExtent:U,minZoom:ee,maxZoom:J,onSelectionContextMenu:C,preventScrolling:F,noDragClassName:Xe,noWheelClassName:$e,noPanClassName:Qe,disableKeyboardA11y:vt},ae.createElement(TM,null,ae.createElement(jM,{edgeTypes:Ze,onEdgeClick:c,onEdgeDoubleClick:h,onlyRenderVisibleElements:H,onEdgeContextMenu:Te,onEdgeMouseEnter:ke,onEdgeMouseMove:Ye,onEdgeMouseLeave:ye,onReconnect:we,onReconnectStart:ze,onReconnectEnd:at,reconnectRadius:gt,defaultMarkerColor:G,noPanClassName:Qe,elevateEdgesOnSelect:!!ht,disableKeyboardA11y:vt,rfId:Mt},ae.createElement(PM,{style:k,type:b,component:N,containerStyle:j})),ae.createElement("div",{className:"react-flow__edgelabel-renderer"}),ae.createElement(dM,{nodeTypes:Pt,onNodeClick:u,onNodeDoubleClick:p,onNodeMouseEnter:f,onNodeMouseMove:m,onNodeMouseLeave:y,onNodeContextMenu:x,selectNodesOnDrag:T,onlyRenderVisibleElements:H,noPanClassName:Qe,noDragClassName:Xe,disableKeyboardA11y:vt,nodeOrigin:lt,nodeExtent:yt,rfId:Mt})))};oN.displayName="GraphView";var OM=A.memo(oN);const Hg=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ui={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:Hg,nodeExtent:Hg,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Ki.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:lI,isValidConnection:void 0},qM=()=>SR((e,n)=>({...ui,setNodes:r=>{const{nodeInternals:s,nodeOrigin:o,elevateNodesOnSelect:l}=n();e({nodeInternals:rd(r,s,o,l)})},getNodes:()=>Array.from(n().nodeInternals.values()),setEdges:r=>{const{defaultEdgeOptions:s={}}=n();e({edges:r.map(o=>({...s,...o}))})},setDefaultNodesAndEdges:(r,s)=>{const o=typeof r<"u",l=typeof s<"u",u=o?rd(r,new Map,n().nodeOrigin,n().elevateNodesOnSelect):new Map;e({nodeInternals:u,edges:l?s:[],hasDefaultNodes:o,hasDefaultEdges:l})},updateNodeDimensions:r=>{const{onNodesChange:s,nodeInternals:o,fitViewOnInit:l,fitViewOnInitDone:u,fitViewOnInitOptions:c,domNode:p,nodeOrigin:h}=n(),f=p==null?void 0:p.querySelector(".react-flow__viewport");if(!f)return;const m=window.getComputedStyle(f),{m22:y}=new window.DOMMatrixReadOnly(m.transform),x=r.reduce((_,S)=>{const b=o.get(S.id);if(b!=null&&b.hidden)o.set(b.id,{...b,[mt]:{...b[mt],handleBounds:void 0}});else if(b){const k=ov(S.nodeElement);!!(k.width&&k.height&&(b.width!==k.width||b.height!==k.height||S.forceUpdate))&&(o.set(b.id,{...b,[mt]:{...b[mt],handleBounds:{source:Uw(".source",S.nodeElement,y,h),target:Uw(".target",S.nodeElement,y,h)}},...k}),_.push({id:b.id,type:"dimensions",dimensions:k}))}return _},[]);YE(o,h);const C=u||l&&!u&&KE(n,{initial:!0,...c});e({nodeInternals:new Map(o),fitViewOnInitDone:C}),(x==null?void 0:x.length)>0&&(s==null||s(x))},updateNodePositions:(r,s=!0,o=!1)=>{const{triggerNodeChanges:l}=n(),u=r.map(c=>{const p={id:c.id,type:"position",dragging:o};return s&&(p.positionAbsolute=c.positionAbsolute,p.position=c.position),p});l(u)},triggerNodeChanges:r=>{const{onNodesChange:s,nodeInternals:o,hasDefaultNodes:l,nodeOrigin:u,getNodes:c,elevateNodesOnSelect:p}=n();if(r!=null&&r.length){if(l){const h=QI(r,c()),f=rd(h,o,u,p);e({nodeInternals:f})}s==null||s(r)}},addSelectedNodes:r=>{const{multiSelectionActive:s,edges:o,getNodes:l}=n();let u,c=null;s?u=r.map(p=>di(p,!0)):(u=Os(l(),r),c=Os(o,[])),kl({changedNodes:u,changedEdges:c,get:n,set:e})},addSelectedEdges:r=>{const{multiSelectionActive:s,edges:o,getNodes:l}=n();let u,c=null;s?u=r.map(p=>di(p,!0)):(u=Os(o,r),c=Os(l(),[])),kl({changedNodes:c,changedEdges:u,get:n,set:e})},unselectNodesAndEdges:({nodes:r,edges:s}={})=>{const{edges:o,getNodes:l}=n(),u=r||l(),c=s||o,p=u.map(f=>(f.selected=!1,di(f.id,!1))),h=c.map(f=>di(f.id,!1));kl({changedNodes:p,changedEdges:h,get:n,set:e})},setMinZoom:r=>{const{d3Zoom:s,maxZoom:o}=n();s==null||s.scaleExtent([r,o]),e({minZoom:r})},setMaxZoom:r=>{const{d3Zoom:s,minZoom:o}=n();s==null||s.scaleExtent([o,r]),e({maxZoom:r})},setTranslateExtent:r=>{var s;(s=n().d3Zoom)==null||s.translateExtent(r),e({translateExtent:r})},resetSelectedElements:()=>{const{edges:r,getNodes:s}=n(),l=s().filter(c=>c.selected).map(c=>di(c.id,!1)),u=r.filter(c=>c.selected).map(c=>di(c.id,!1));kl({changedNodes:l,changedEdges:u,get:n,set:e})},setNodeExtent:r=>{const{nodeInternals:s}=n();s.forEach(o=>{o.positionAbsolute=av(o.position,r)}),e({nodeExtent:r,nodeInternals:new Map(s)})},panBy:r=>{const{transform:s,width:o,height:l,d3Zoom:u,d3Selection:c,translateExtent:p}=n();if(!u||!c||!r.x&&!r.y)return!1;const h=Mr.translate(s[0]+r.x,s[1]+r.y).scale(s[2]),f=[[0,0],[o,l]],m=u==null?void 0:u.constrain()(h,f,p);return u.transform(c,m),s[0]!==m.x||s[1]!==m.y||s[2]!==m.k},cancelConnection:()=>e({connectionNodeId:ui.connectionNodeId,connectionHandleId:ui.connectionHandleId,connectionHandleType:ui.connectionHandleType,connectionStatus:ui.connectionStatus,connectionStartHandle:ui.connectionStartHandle,connectionEndHandle:ui.connectionEndHandle}),reset:()=>e({...ui})}),Object.is),mv=({children:e})=>{const n=A.useRef(null);return n.current||(n.current=qM()),ae.createElement(tI,{value:n.current},e)};mv.displayName="ReactFlowProvider";const aN=({children:e})=>A.useContext(eu)?ae.createElement(ae.Fragment,null,e):ae.createElement(mv,null,e);aN.displayName="ReactFlowWrapper";const LM={input:zE,default:Bg,output:UE,group:hv},$M={default:Vl,straight:cv,step:uv,smoothstep:tu,simplebezier:lv},DM=[0,0],FM=[15,15],zM={x:0,y:0,zoom:1},BM={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},lN=A.forwardRef(({nodes:e,edges:n,defaultNodes:r,defaultEdges:s,className:o,nodeTypes:l=LM,edgeTypes:u=$M,onNodeClick:c,onEdgeClick:p,onInit:h,onMove:f,onMoveStart:m,onMoveEnd:y,onConnect:x,onConnectStart:C,onConnectEnd:_,onClickConnectStart:S,onClickConnectEnd:b,onNodeMouseEnter:k,onNodeMouseMove:N,onNodeMouseLeave:j,onNodeContextMenu:M,onNodeDoubleClick:P,onNodeDragStart:O,onNodeDrag:B,onNodeDragStop:L,onNodesDelete:q,onEdgesDelete:I,onSelectionChange:H,onSelectionDragStart:X,onSelectionDrag:T,onSelectionDragStop:K,onSelectionContextMenu:U,onSelectionStart:ee,onSelectionEnd:J,connectionMode:F=Ki.Strict,connectionLineType:G=fi.Bezier,connectionLineStyle:E,connectionLineComponent:$,connectionLineContainerStyle:se,deleteKeyCode:D="Backspace",selectionKeyCode:Q="Shift",selectionOnDrag:te=!1,selectionMode:oe=ta.Full,panActivationKeyCode:ue="Space",multiSelectionKeyCode:ge=Ul()?"Meta":"Control",zoomActivationKeyCode:ce=Ul()?"Meta":"Control",snapToGrid:Me=!1,snapGrid:Fe=FM,onlyRenderVisibleElements:Pe=!1,selectNodesOnDrag:Te=!0,nodesDraggable:ke,nodesConnectable:Ye,nodesFocusable:ye,nodeOrigin:we=DM,edgesFocusable:ze,edgesUpdatable:at,elementsSelectable:gt,defaultViewport:Xe=zM,minZoom:$e=.5,maxZoom:Qe=2,translateExtent:ht=Hg,preventScrolling:vt=!0,nodeExtent:lt,defaultMarkerColor:yt="#b1b1b7",zoomOnScroll:Mt=!0,zoomOnPinch:Pt=!0,panOnScroll:Ze=!1,panOnScrollSpeed:xt=.5,panOnScrollMode:De=Vi.Free,zoomOnDoubleClick:_t=!0,panOnDrag:Ut=!0,onPaneClick:Ht,onPaneMouseEnter:$t,onPaneMouseMove:Vt,onPaneMouseLeave:On,onPaneScroll:qn,onPaneContextMenu:vn,children:yn,onEdgeContextMenu:ln,onEdgeDoubleClick:tr,onEdgeMouseEnter:pr,onEdgeMouseMove:gi,onEdgeMouseLeave:$r,onEdgeUpdate:kt,onEdgeUpdateStart:mr,onEdgeUpdateEnd:wn,onReconnect:un,onReconnectStart:nr,onReconnectEnd:es,reconnectRadius:gr=10,edgeUpdaterRadius:xn=10,onNodesChange:vr,onEdgesChange:Dr,noDragClassName:Qs="nodrag",noWheelClassName:ts="nowheel",noPanClassName:vi="nopan",fitView:cn=!1,fitViewOptions:Ln,connectOnClick:ns=!0,attributionPosition:Xt,proOptions:Fr,defaultEdgeOptions:zr,elevateNodesOnSelect:yi=!0,elevateEdgesOnSelect:yr=!1,disableKeyboardA11y:Br=!1,autoPanOnConnect:$n=!0,autoPanOnNodeDrag:Je=!0,connectionRadius:rs=20,isValidConnection:Ur,onError:is,style:rr,id:Dn,nodeDragThreshold:wi,...Hr},Wt)=>{const Vr=Dn||"1";return ae.createElement("div",{...Hr,style:{...rr,...BM},ref:Wt,className:Lt(["react-flow",o]),"data-testid":"rf__wrapper",id:Dn},ae.createElement(aN,null,ae.createElement(OM,{onInit:h,onMove:f,onMoveStart:m,onMoveEnd:y,onNodeClick:c,onEdgeClick:p,onNodeMouseEnter:k,onNodeMouseMove:N,onNodeMouseLeave:j,onNodeContextMenu:M,onNodeDoubleClick:P,nodeTypes:l,edgeTypes:u,connectionLineType:G,connectionLineStyle:E,connectionLineComponent:$,connectionLineContainerStyle:se,selectionKeyCode:Q,selectionOnDrag:te,selectionMode:oe,deleteKeyCode:D,multiSelectionKeyCode:ge,panActivationKeyCode:ue,zoomActivationKeyCode:ce,onlyRenderVisibleElements:Pe,selectNodesOnDrag:Te,defaultViewport:Xe,translateExtent:ht,minZoom:$e,maxZoom:Qe,preventScrolling:vt,zoomOnScroll:Mt,zoomOnPinch:Pt,zoomOnDoubleClick:_t,panOnScroll:Ze,panOnScrollSpeed:xt,panOnScrollMode:De,panOnDrag:Ut,onPaneClick:Ht,onPaneMouseEnter:$t,onPaneMouseMove:Vt,onPaneMouseLeave:On,onPaneScroll:qn,onPaneContextMenu:vn,onSelectionContextMenu:U,onSelectionStart:ee,onSelectionEnd:J,onEdgeContextMenu:ln,onEdgeDoubleClick:tr,onEdgeMouseEnter:pr,onEdgeMouseMove:gi,onEdgeMouseLeave:$r,onReconnect:un??kt,onReconnectStart:nr??mr,onReconnectEnd:es??wn,reconnectRadius:gr??xn,defaultMarkerColor:yt,noDragClassName:Qs,noWheelClassName:ts,noPanClassName:vi,elevateEdgesOnSelect:yr,rfId:Vr,disableKeyboardA11y:Br,nodeOrigin:we,nodeExtent:lt}),ae.createElement(AI,{nodes:e,edges:n,defaultNodes:r,defaultEdges:s,onConnect:x,onConnectStart:C,onConnectEnd:_,onClickConnectStart:S,onClickConnectEnd:b,nodesDraggable:ke,nodesConnectable:Ye,nodesFocusable:ye,edgesFocusable:ze,edgesUpdatable:at,elementsSelectable:gt,elevateNodesOnSelect:yi,minZoom:$e,maxZoom:Qe,nodeExtent:lt,onNodesChange:vr,onEdgesChange:Dr,snapToGrid:Me,snapGrid:Fe,connectionMode:F,translateExtent:ht,connectOnClick:ns,defaultEdgeOptions:zr,fitView:cn,fitViewOptions:Ln,onNodesDelete:q,onEdgesDelete:I,onNodeDragStart:O,onNodeDrag:B,onNodeDragStop:L,onSelectionDrag:T,onSelectionDragStart:X,onSelectionDragStop:K,noPanClassName:vi,nodeOrigin:we,rfId:Vr,autoPanOnConnect:$n,autoPanOnNodeDrag:Je,onError:is,connectionRadius:rs,isValidConnection:Ur,nodeDragThreshold:wi}),ae.createElement(RI,{onSelectionChange:H}),yn,ae.createElement(rI,{proOptions:Fr,position:Xt}),ae.createElement(qI,{rfId:Vr,disableKeyboardA11y:Br})))});lN.displayName="ReactFlow";const UM=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function uN(){return Ke(UM,Ct)}const cN=({id:e,x:n,y:r,width:s,height:o,style:l,color:u,strokeColor:c,strokeWidth:p,className:h,borderRadius:f,shapeRendering:m,onClick:y,selected:x})=>{const{background:C,backgroundColor:_}=l||{},S=u||C||_;return ae.createElement("rect",{className:Lt(["react-flow__minimap-node",{selected:x},h]),x:n,y:r,rx:f,ry:f,width:s,height:o,fill:S,stroke:c,strokeWidth:p,shapeRendering:m,onClick:y?b=>y(b,e):void 0})};cN.displayName="MiniMapNode";var HM=A.memo(cN);const VM=e=>e.nodeOrigin,WM=e=>e.getNodes().filter(n=>!n.hidden&&n.width&&n.height),ad=e=>e instanceof Function?e:()=>e;function GM({nodeStrokeColor:e="transparent",nodeColor:n="#e2e2e2",nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:o=2,nodeComponent:l=HM,onClick:u}){const c=Ke(WM,Ct),p=Ke(VM),h=ad(n),f=ad(e),m=ad(r),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return ae.createElement(ae.Fragment,null,c.map(x=>{const{x:C,y:_}=Gi(x,p).positionAbsolute;return ae.createElement(l,{key:x.id,x:C,y:_,width:x.width,height:x.height,style:x.style,selected:x.selected,className:m(x),color:h(x),borderRadius:s,strokeColor:f(x),strokeWidth:o,shapeRendering:y,onClick:u,id:x.id})}))}var YM=A.memo(GM);const KM=200,XM=150,QM=e=>{const n=e.getNodes(),r={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:r,boundingRect:n.length>0?oI(nu(n,e.nodeOrigin),r):r,rfId:e.rfId}},ZM="react-flow__minimap-desc";function dN({style:e,className:n,nodeStrokeColor:r="transparent",nodeColor:s="#e2e2e2",nodeClassName:o="",nodeBorderRadius:l=5,nodeStrokeWidth:u=2,nodeComponent:c,maskColor:p="rgb(240, 240, 240, 0.6)",maskStrokeColor:h="none",maskStrokeWidth:f=1,position:m="bottom-right",onClick:y,onNodeClick:x,pannable:C=!1,zoomable:_=!1,ariaLabel:S="React Flow mini map",inversePan:b=!1,zoomStep:k=10,offsetScale:N=5}){const j=jt(),M=A.useRef(null),{boundingRect:P,viewBB:O,rfId:B}=Ke(QM,Ct),L=(e==null?void 0:e.width)??KM,q=(e==null?void 0:e.height)??XM,I=P.width/L,H=P.height/q,X=Math.max(I,H),T=X*L,K=X*q,U=N*X,ee=P.x-(T-P.width)/2-U,J=P.y-(K-P.height)/2-U,F=T+U*2,G=K+U*2,E=`${ZM}-${B}`,$=A.useRef(0);$.current=X,A.useEffect(()=>{if(M.current){const Q=An(M.current),te=ge=>{const{transform:ce,d3Selection:Me,d3Zoom:Fe}=j.getState();if(ge.sourceEvent.type!=="wheel"||!Me||!Fe)return;const Pe=-ge.sourceEvent.deltaY*(ge.sourceEvent.deltaMode===1?.05:ge.sourceEvent.deltaMode?1:.002)*k,Te=ce[2]*Math.pow(2,Pe);Fe.scaleTo(Me,Te)},oe=ge=>{const{transform:ce,d3Selection:Me,d3Zoom:Fe,translateExtent:Pe,width:Te,height:ke}=j.getState();if(ge.sourceEvent.type!=="mousemove"||!Me||!Fe)return;const Ye=$.current*Math.max(1,ce[2])*(b?-1:1),ye={x:ce[0]-ge.sourceEvent.movementX*Ye,y:ce[1]-ge.sourceEvent.movementY*Ye},we=[[0,0],[Te,ke]],ze=Mr.translate(ye.x,ye.y).scale(ce[2]),at=Fe.constrain()(ze,we,Pe);Fe.transform(Me,at)},ue=wE().on("zoom",C?oe:null).on("zoom.wheel",_?te:null);return Q.call(ue),()=>{Q.on("zoom",null)}}},[C,_,b,k]);const se=y?Q=>{const te=Kn(Q);y(Q,{x:te[0],y:te[1]})}:void 0,D=x?(Q,te)=>{const oe=j.getState().nodeInternals.get(te);x(Q,oe)}:void 0;return ae.createElement(sv,{position:m,style:e,className:Lt(["react-flow__minimap",n]),"data-testid":"rf__minimap"},ae.createElement("svg",{width:L,height:q,viewBox:`${ee} ${J} ${F} ${G}`,role:"img","aria-labelledby":E,ref:M,onClick:se},S&&ae.createElement("title",{id:E},S),ae.createElement(YM,{onClick:D,nodeColor:s,nodeStrokeColor:r,nodeBorderRadius:l,nodeClassName:o,nodeStrokeWidth:u,nodeComponent:c}),ae.createElement("path",{className:"react-flow__minimap-mask",d:`M${ee-U},${J-U}h${F+U*2}v${G+U*2}h${-F-U*2}z
|
|
57
57
|
M${O.x},${O.y}h${O.width}v${O.height}h${-O.width}z`,fill:p,fillRule:"evenodd",stroke:h,strokeWidth:f,pointerEvents:"none"})))}dN.displayName="MiniMap";var JM=A.memo(dN);function eP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},ae.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function tP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},ae.createElement("path",{d:"M0 0h32v4.2H0z"}))}function nP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},ae.createElement("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"}))}function rP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},ae.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"}))}function iP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},ae.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}const qs=({children:e,className:n,...r})=>ae.createElement("button",{type:"button",className:Lt(["react-flow__controls-button",n]),...r},e);qs.displayName="ControlButton";const sP=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),fN=({style:e,showZoom:n=!0,showFitView:r=!0,showInteractive:s=!0,fitViewOptions:o,onZoomIn:l,onZoomOut:u,onFitView:c,onInteractiveChange:p,className:h,children:f,position:m="bottom-left"})=>{const y=jt(),[x,C]=A.useState(!1),{isInteractive:_,minZoomReached:S,maxZoomReached:b}=Ke(sP,Ct),{zoomIn:k,zoomOut:N,fitView:j}=ca();if(A.useEffect(()=>{C(!0)},[]),!x)return null;const M=()=>{k(),l==null||l()},P=()=>{N(),u==null||u()},O=()=>{j(o),c==null||c()},B=()=>{y.setState({nodesDraggable:!_,nodesConnectable:!_,elementsSelectable:!_}),p==null||p(!_)};return ae.createElement(sv,{className:Lt(["react-flow__controls",h]),position:m,style:e,"data-testid":"rf__controls"},n&&ae.createElement(ae.Fragment,null,ae.createElement(qs,{onClick:M,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:b},ae.createElement(eP,null)),ae.createElement(qs,{onClick:P,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:S},ae.createElement(tP,null))),r&&ae.createElement(qs,{className:"react-flow__controls-fitview",onClick:O,title:"fit view","aria-label":"fit view"},ae.createElement(nP,null)),s&&ae.createElement(qs,{className:"react-flow__controls-interactive",onClick:B,title:"toggle interactivity","aria-label":"toggle interactivity"},_?ae.createElement(iP,null):ae.createElement(rP,null)),f)};fN.displayName="Controls";var oP=A.memo(fN),Qn;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Qn||(Qn={}));function aP({color:e,dimensions:n,lineWidth:r}){return ae.createElement("path",{stroke:e,strokeWidth:r,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function lP({color:e,radius:n}){return ae.createElement("circle",{cx:n,cy:n,r:n,fill:e})}const uP={[Qn.Dots]:"#91919a",[Qn.Lines]:"#eee",[Qn.Cross]:"#e2e2e2"},cP={[Qn.Dots]:1,[Qn.Lines]:1,[Qn.Cross]:6},dP=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function hN({id:e,variant:n=Qn.Dots,gap:r=20,size:s,lineWidth:o=1,offset:l=2,color:u,style:c,className:p}){const h=A.useRef(null),{transform:f,patternId:m}=Ke(dP,Ct),y=u||uP[n],x=s||cP[n],C=n===Qn.Dots,_=n===Qn.Cross,S=Array.isArray(r)?r:[r,r],b=[S[0]*f[2]||1,S[1]*f[2]||1],k=x*f[2],N=_?[k,k]:b,j=C?[k/l,k/l]:[N[0]/l,N[1]/l];return ae.createElement("svg",{className:Lt(["react-flow__background",p]),style:{...c,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:h,"data-testid":"rf__background"},ae.createElement("pattern",{id:m+e,x:f[0]%b[0],y:f[1]%b[1],width:b[0],height:b[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${j[0]},-${j[1]})`},C?ae.createElement(lP,{color:y,radius:k/l}):ae.createElement(aP,{dimensions:N,color:y,lineWidth:o})),ae.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${m+e})`}))}hN.displayName="Background";var fP=A.memo(hN);function pN(){return{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreateTokens:0}}function mN(e,n=0){if(!e||typeof e!="object"||n>6)return null;const r=e;if(typeof r.input_tokens=="number"||typeof r.output_tokens=="number"||typeof r.cache_read_input_tokens=="number"||typeof r.cache_creation_input_tokens=="number")return{inputTokens:Number(r.input_tokens??0),outputTokens:Number(r.output_tokens??0),cacheReadTokens:Number(r.cache_read_input_tokens??0),cacheCreateTokens:Number(r.cache_creation_input_tokens??0)};for(const s of Object.values(r)){const o=mN(s,n+1);if(o)return o}return null}function hP(e,n){e.inputTokens+=n.inputTokens,e.outputTokens+=n.outputTokens,e.cacheReadTokens+=n.cacheReadTokens,e.cacheCreateTokens+=n.cacheCreateTokens}const pP=/^(?:claude[-_]|gpt[-_]|o\d|codex[-_])/i;function gN(e,n=0){if(!e||typeof e!="object"||n>6)return null;const r=e;if(typeof r.model=="string"&&pP.test(r.model))return r.model;for(const s of Object.values(r)){const o=gN(s,n+1);if(o)return o}return null}function Vg(){return{agents:new Map,toolIndex:new Map,toolOwner:new Map,activeSubagentStack:new Map,lastSeq:0,seqEpoch:null,totalEvents:0}}function pi(e){if(!e)return;const n=e.replace(/\\/g,"/").split("/").filter(Boolean);return n[n.length-1]}function gv(e,n){return`${e}::${n}`}function Wl(e){return e.agent_type??e.subagent_type??"subagent"}function Wg(e){return e.agent_id?e.agent_id:e.parent_tool_use_id?e.parent_tool_use_id:null}function Yo(e,n,r,s){const o=n;let l=e.agents.get(o);return l||(l={id:o,sessionId:n,label:"session",kind:"root",state:"active",startedAt:r,tools:[],prompts:[],toolCount:0,childCount:0,synthetic:s,inFlightTool:null,usage:pN()},e.agents.set(o,l),l)}function vN(e,n,r,s){const o=gv(n,r),l=e.agents.get(o);if(!l)return null;!l.cwd&&s.cwd&&(l.cwd=s.cwd,l.cwdBasename=pi(s.cwd));const u=Wl(s);return u&&(l.label==="subagent"||!l.label)&&(l.label=u),l}function Qw(e,n,r){const s=n.session_id??"unknown",o=Wg(n);if(o){const p=vN(e,s,o,n);if(p)return p}const l=e.activeSubagentStack.get(s),u=l&&l.length>0?l[l.length-1]:null;if(u){const p=e.agents.get(gv(s,u));if(p)return!p.cwd&&n.cwd&&(p.cwd=n.cwd,p.cwdBasename=pi(n.cwd)),p}const c=Yo(e,s,r,!1);return c.synthetic&&(c.synthetic=!1,c.startedAt=r),!c.cwd&&n.cwd&&(c.cwd=n.cwd,c.cwdBasename=pi(n.cwd)),c.label==="session"&&n.cwd&&(c.label=pi(n.cwd)??"session"),c}function mP(e,n,r,s,o){const l=gv(n,r),u=Yo(e,n,o,!0);let c=e.agents.get(l);if(c){!c.cwd&&s.cwd&&(c.cwd=s.cwd,c.cwdBasename=pi(s.cwd));const p=Wl(s);return p&&(c.label==="subagent"||!c.label)&&(c.label=p),c}return c={id:l,sessionId:n,label:Wl(s),kind:"subagent",parentId:u.id,state:"active",startedAt:o,tools:[],prompts:[],cwd:s.cwd,cwdBasename:pi(s.cwd),toolCount:0,childCount:0,inFlightTool:null,usage:pN()},e.agents.set(l,c),u.childCount+=1,c}function gP(e,n,r){const s=e.activeSubagentStack.get(n)??[];s.push(r),e.activeSubagentStack.set(n,s)}function vP(e,n,r){const s=e.activeSubagentStack.get(n);if(s){for(let o=s.length-1;o>=0;o--)if(s[o]===r){s.splice(o,1);break}s.length===0&&e.activeSubagentStack.delete(n)}}function Nl(e,n=80){if(e==null)return"";if(typeof e=="string")return e.length>n?e.slice(0,n-1)+"…":e;try{const r=JSON.stringify(e);return r.length>n?r.slice(0,n-1)+"…":r}catch{return String(e)}}function Ls(e){let n=null;for(let r=e.tools.length-1;r>=0;r--){const s=e.tools[r];if(s.endedAt==null){n=s;break}}e.inFlightTool=n}const Zw=200,yP=25;function wP(e,n){const r=n.tools;if(r.length>Zw){const s=r.splice(0,r.length-Zw);let o=!1;for(const l of s)e.toolIndex.delete(l.id)&&(o=!0),e.toolOwner.delete(l.id);o&&Ls(n)}for(let s=r.length-yP-1;s>=0;s--){const o=r[s];if(o.trimmed)break;o.input=void 0,o.response=void 0,o.trimmed=!0}}function xP(e,n,r){const s=e.toolIndex.get(r);if(s)return s;for(let o=n.tools.length-1;o>=0;o--)if(n.tools[o].id===r)return n.tools[o];return null}function _P(e,n,r,s){if(e.agents.size<=r)return!1;const o=[];for(const[u,c]of e.agents)c.state==="done"&&c.endedAt!=null&&n-c.endedAt>s&&o.push({id:u,endedAt:c.endedAt});if(o.length===0)return!1;o.sort((u,c)=>u.endedAt-c.endedAt);let l=0;for(const u of o){if(e.agents.size<=r)break;e.agents.delete(u.id),l++}return l>0}function SP(e,n,r,s){const o=new Map;for(const[h,f]of e.agents){let m=o.get(f.sessionId);m||(m={ids:[],endedAt:0,live:!1},o.set(f.sessionId,m)),m.ids.push(h),f.state==="done"&&f.endedAt!=null?m.endedAt=Math.max(m.endedAt,f.endedAt):m.live=!0}const l=[...o.values()].filter(h=>!h.live&&h.endedAt>0&&n-h.endedAt>s).sort((h,f)=>h.endedAt-f.endedAt);let c=[...o.values()].filter(h=>!h.live).length-r;if(c<=0)return!1;let p=!1;for(const h of l){if(c<=0)break;for(const f of h.ids)e.agents.delete(f);c--,p=!0}return p}function bP(e,n,r){let s=!1;for(const o of e.agents.values()){let l=!1;for(const u of o.tools)u.endedAt==null&&n-u.startedAt>r&&(u.endedAt=u.startedAt+r,u.ok=!1,u.errorPreview="stale (no PostToolUse received)",e.toolIndex.delete(u.id),e.toolOwner.delete(u.id),l=!0,s=!0);l&&Ls(o)}return s}function Jw(e,n){const r=n.epoch??null;if(r!==null&&r!==e.seqEpoch)e.seqEpoch=r,e.lastSeq=0;else if(n.seq<=e.lastSeq)return e;const s=n.payload??{},o=n.receivedAt,l=s.hook_event_name??"Unknown";if(l==="__clear")return{...Vg(),lastSeq:n.seq,seqEpoch:e.seqEpoch};e.totalEvents+=1,e.lastSeq=n.seq;const u=s.session_id??"unknown";if(typeof s.model_context_window=="number"&&s.model_context_window>0){const h=e.agents.get(u);h&&(h.contextWindow=s.model_context_window)}if(l==="ModelObserved"){const h=typeof s.model=="string"?s.model:null;if(h){const m=e.agents.get(u);m&&(m.model=h)}const f=s.subagentModels;if(f&&typeof f=="object")for(const[m,y]of Object.entries(f)){if(typeof y!="string")continue;const x=`${u}::${m}`,C=e.agents.get(x);C&&(C.model=y)}return e}if(l==="ContextObserved"){const h=s.context??null;if(h){const f=e.agents.get(u);f&&(f.context={msgsUser:Number(h.msgsUser??0),msgsAssistant:Number(h.msgsAssistant??0),toolUses:Number(h.toolUses??0),toolResults:Number(h.toolResults??0),systemReminders:Number(h.systemReminders??0),currentContextTokens:Number(h.currentContextTokens??0),claudeMdFiles:Array.isArray(h.claudeMdFiles)?h.claudeMdFiles:[]})}return e}if(l==="UsageObserved"){const h=s.usage??null;if(h){const f=e.agents.get(u);f&&(f.usage.inputTokens=Number(h.input_tokens??0),f.usage.outputTokens=Number(h.output_tokens??0),f.usage.cacheReadTokens=Number(h.cache_read_input_tokens??h.cached_input_tokens??0),f.usage.cacheCreateTokens=Number(h.cache_creation_input_tokens??0),typeof h.reasoning_output_tokens=="number"&&(f.usage.reasoningOutputTokens=Number(h.reasoning_output_tokens)))}return e}const c=Qw(e,s,o);c.provider||(c.provider=s.provider==="codex"?"codex":"claude");const p=gN(s);switch(p&&(c.model=p),l){case"SessionStart":{const h=Yo(e,u,o,!1);h.synthetic=!1,h.state="active",h.startedAt=h.startedAt||o,!h.cwd&&s.cwd&&(h.cwd=s.cwd,h.cwdBasename=pi(s.cwd)),h.label==="session"&&s.cwd&&(h.label=pi(s.cwd)??"session");break}case"UserPromptSubmit":{for(const y of e.agents.values())y.sessionId===u&&y.kind==="subagent"&&y.state==="done"&&y.exitAt==null&&y.endedAt!=null&&y.endedAt<o&&(y.exitAt=o);const h=Yo(e,u,o,!1);h.state="active",h.endedAt=void 0,h.exitAt=void 0;const f=Qw(e,s,o);f.state="active",f.exitAt=void 0,f.endedAt=void 0;const m=(typeof s.prompt=="string"?s.prompt:typeof s.message=="string"?s.message:"")??"";m&&(f.prompts.push({at:o,text:m}),f.firstPrompt||(f.firstPrompt=Nl(m,120)));break}case"PreToolUse":{const h=s.tool_use_id?xP(e,c,s.tool_use_id):null;if(h){s.tool_name&&h.name==="?"&&(h.name=s.tool_name),h.endedAt==null&&!h.trimmed&&s.tool_input!==void 0&&(h.input=s.tool_input,h.inputPreview=Nl(s.tool_input));break}const f=s.tool_use_id??`${c.id}:${c.toolCount}`,m={id:f,name:s.tool_name??"?",input:s.tool_input,inputPreview:Nl(s.tool_input),agentId:c.id,startedAt:o};c.tools.push(m),c.toolCount+=1,c.state="active",e.toolIndex.set(f,m),e.toolOwner.set(f,c.id),Ls(c),wP(e,c);break}case"PostToolUse":case"PostToolUseFailure":{const h=s.tool_use_id;if(!h)break;let f=e.toolIndex.get(h),m=!1;if(!f)for(const C of e.agents.values()){const _=C.tools.find(S=>S.id===h);if(_){f=_,m=!0;break}}if(!f)break;f.endedAt=o,f.ok=l==="PostToolUse",f.trimmed||(f.response=s.tool_response),l==="PostToolUseFailure"?f.errorPreview=Nl(s.tool_response):m&&(f.errorPreview=void 0);const y=mN(s.tool_response);y&&(f.usage=y),e.toolIndex.delete(h);const x=e.toolOwner.get(h)??f.agentId;if(e.toolOwner.delete(h),x){const C=e.agents.get(x);C&&(y&&hP(C.usage,y),Ls(C))}break}case"SubagentStart":{const h=Wg(s);if(!h)break;const f=mP(e,u,h,s,o);f.state="active",f.startedAt=f.startedAt||o,f.exitAt=void 0,f.endedAt=void 0;const m=Wl(s);m&&(f.label=m),gP(e,u,h);break}case"SubagentStop":{const h=Wg(s);if(!h)break;const f=vN(e,u,h,s);if(!f)break;f.state="done",f.endedAt=o,Ls(f),vP(e,u,h);break}case"Stop":case"SessionEnd":{const h=Yo(e,u,o,!1);h.state="done",h.endedAt=o,Ls(h),e.activeSubagentStack.delete(u);break}}return e}function vv(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}const kP=Date.UTC(2026,8,1);function EP(e){return e<kP?{input:2,output:10,cacheRead:.2,cacheWrite:2.5}:{input:3,output:15,cacheRead:.3,cacheWrite:3.75}}const NP=[{match:/^claude[-_](fable|mythos)[-_]5\b/i,rates:{input:10,output:50,cacheRead:1,cacheWrite:12.5}},{match:/^claude[-_]opus[-_]5\b/i,rates:{input:5,output:25,cacheRead:.5,cacheWrite:6.25}},{match:/^claude[-_]sonnet[-_]5\b/i,rates:EP},{match:/^claude[-_]opus[-_]4[-_.](?:5|6|7|8)\b/i,rates:{input:5,output:25,cacheRead:.5,cacheWrite:6.25}},{match:/^claude[-_]opus[-_]4(?:[-_.]1)?\b/i,rates:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75}},{match:/^claude[-_]sonnet[-_]4[-_.](?:5|6)\b/i,rates:{input:3,output:15,cacheRead:.3,cacheWrite:3.75}},{match:/^claude[-_]sonnet[-_]4\b/i,rates:{input:3,output:15,cacheRead:.3,cacheWrite:3.75}},{match:/^claude[-_]haiku[-_]4[-_.]5\b/i,rates:{input:1,output:5,cacheRead:.1,cacheWrite:1.25}},{match:/^claude[-_]haiku[-_]3[-_.]5\b/i,rates:{input:.8,output:4,cacheRead:.08,cacheWrite:1}},{match:/^gpt[-_]5[-_.]6[-_]cyber/i,rates:{input:12.5,output:75,cacheRead:1.25,cacheWrite:0}},{match:/^gpt[-_]5[-_.]6[-_]luna/i,rates:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25}},{match:/^gpt[-_]5[-_.]6[-_]terra/i,rates:{input:2,output:12,cacheRead:.2,cacheWrite:2.5}},{match:/^gpt[-_]5[-_.]6(?:[-_]sol)?\b/i,rates:{input:5,output:30,cacheRead:.5,cacheWrite:6.25}},{match:/^gpt[-_]5[-_.]5[-_]pro/i,rates:{input:30,output:180,cacheRead:30,cacheWrite:0}},{match:/^gpt[-_]5[-_.]5\b/i,rates:{input:5,output:30,cacheRead:.5,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]pro/i,rates:{input:30,output:180,cacheRead:3,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]mini/i,rates:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]nano/i,rates:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4\b/i,rates:{input:2.5,output:15,cacheRead:.25,cacheWrite:0}},{match:/^gpt[-_]5[-_.]3[-_]codex/i,rates:{input:1.75,output:14,cacheRead:.175,cacheWrite:0}},{match:/^gpt[-_]5[-_.]2[-_]pro/i,rates:{input:21,output:168,cacheRead:21,cacheWrite:0}},{match:/^gpt[-_]5[-_.]2\b/i,rates:{input:1.75,output:14,cacheRead:.175,cacheWrite:0}},{match:/^codex[-_]mini/i,rates:{input:1.5,output:6,cacheRead:.375,cacheWrite:0}},{match:/^o1[-_]pro/i,rates:{input:150,output:600,cacheRead:150,cacheWrite:0}},{match:/^o1\b/i,rates:{input:15,output:60,cacheRead:7.5,cacheWrite:0}},{match:/^o3[-_]mini/i,rates:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0}},{match:/^o3[-_]pro/i,rates:{input:20,output:80,cacheRead:20,cacheWrite:0}},{match:/^o4[-_]mini/i,rates:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0}},{match:/^o3\b/i,rates:{input:2,output:8,cacheRead:.5,cacheWrite:0}}];function CP(e){return e?/^(?:gpt[-_]|codex[-_]|o\d)/i.test(e):!1}function yv(e,n=Date.now()){if(!e)return null;for(const r of NP)if(r.match.test(e))return typeof r.rates=="function"?r.rates(n):r.rates;return null}function on(e,n,r=Date.now()){const s=yv(n,r);if(!s)return{input:0,output:0,cacheRead:0,cacheWrite:0,total:0};const u=(CP(n)?Math.max(0,e.inputTokens-e.cacheReadTokens):e.inputTokens)*s.input/1e6,c=e.outputTokens*s.output/1e6,p=e.cacheReadTokens*s.cacheRead/1e6,h=e.cacheCreateTokens*s.cacheWrite/1e6;return{input:u,output:c,cacheRead:p,cacheWrite:h,total:u+c+p+h}}const ex=2e5,jP=1e6,RP=[/\[1m\]/i,/^claude[-_]opus[-_]5\b/i,/^claude[-_]sonnet[-_]5\b/i,/^claude[-_]opus[-_]4[-_.](?:5|6|7|8)\b/i,/^claude[-_]sonnet[-_]4[-_.]6\b/i,/^claude[-_](fable|mythos)[-_]5\b/i],TP=[{match:/^gpt[-_]5[-_.]6[-_]cyber/i,window:4e5},{match:/^gpt[-_]5[-_.]6/i,window:105e4},{match:/^gpt[-_]5[-_.]5/i,window:105e4},{match:/^gpt[-_]5[-_.]4[-_](?:mini|nano)/i,window:4e5},{match:/^gpt[-_]5[-_.]4/i,window:105e4},{match:/^gpt[-_]5[-_.]3[-_]codex[-_]spark/i,window:128e3},{match:/^gpt[-_]5[-_.]3[-_]codex/i,window:4e5},{match:/^gpt[-_]5[-_.]2/i,window:4e5},{match:/^gpt[-_]5/i,window:4e5},{match:/^codex[-_]mini/i,window:2e5},{match:/^o\d/i,window:2e5}];function AP(e){if(!e)return ex;for(const n of RP)if(n.test(e))return jP;for(const n of TP)if(n.match.test(e))return n.window;return ex}function yN(e,n){return typeof e=="number"&&e>0?e:AP(n)}function Ve(e){if(e<=0)return"—";if(e<.005)return"<1¢";if(e<1){const n=(e*100).toFixed(e<.1?1:0);if(Number(n)<100)return`${n}¢`}return e<100?`$${e.toFixed(2)}`:e<1e4?`$${e.toFixed(0)}`:`$${(e/1e3).toFixed(1)}k`}function Gl(e,n){if(e<=0||n<10)return null;const r=e/n,s=r*60;return s>=.01?`${Ve(s)}/min`:`${Ve(r*3600)}/hr`}function Tn(e){return e.toLocaleString()}function IP(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(2)} MB`}function MP({agent:e,onClose:n}){var h;const r=e.context,s=e.usage,o=(r==null?void 0:r.currentContextTokens)??0,l=yN(e.contextWindow,e.model),u=Math.min(100,o/l*100),c=on(s,e.model),p=s.inputTokens+s.cacheReadTokens+s.cacheCreateTokens;return g.jsx("div",{className:"ctx-modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{className:"ctx-modal",onClick:f=>f.stopPropagation(),role:"dialog","aria-label":"Context breakdown",children:[g.jsxs("header",{className:"ctx-modal-head",children:[g.jsxs("div",{children:[g.jsxs("div",{className:"ctx-modal-title",children:["Context · ",e.label]}),g.jsx("div",{className:"ctx-modal-sub",children:"approximation — CC's /context isn't hook-exposed"})]}),g.jsx("button",{className:"ctx-modal-close",onClick:n,"aria-label":"Close",children:"×"})]}),g.jsxs("section",{className:"ctx-window-row",children:[g.jsx("div",{className:"ctx-window-bar",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(u),children:g.jsx("div",{className:"ctx-window-fill",style:{width:`${u}%`}})}),g.jsxs("div",{className:"ctx-window-meta",children:[g.jsxs("span",{className:"ctx-window-pct",children:[u.toFixed(1),"%"]}),g.jsxs("span",{className:"ctx-window-num",children:[Tn(o)," / ",Tn(l)," tok (current turn)"]})]})]}),g.jsx("h3",{className:"ctx-section-title",children:"Cumulative usage · whole session"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Yn,{label:"input tokens",val:Tn(s.inputTokens)}),g.jsx(Yn,{label:"output tokens",val:Tn(s.outputTokens)}),g.jsx(Yn,{label:"cache reads",val:Tn(s.cacheReadTokens)}),g.jsx(Yn,{label:"cache writes",val:Tn(s.cacheCreateTokens)}),g.jsx(Yn,{label:"cumulative total",val:Tn(p)}),g.jsx(Yn,{label:"estimated cost",val:Ve(c.total),accent:!0})]}),g.jsx("h3",{className:"ctx-section-title",children:"Transcript composition"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Yn,{label:"user messages",val:Tn((r==null?void 0:r.msgsUser)??0)}),g.jsx(Yn,{label:"assistant messages",val:Tn((r==null?void 0:r.msgsAssistant)??0)}),g.jsx(Yn,{label:"tool uses",val:Tn((r==null?void 0:r.toolUses)??0)}),g.jsx(Yn,{label:"tool results",val:Tn((r==null?void 0:r.toolResults)??0)}),g.jsx(Yn,{label:"system-reminders",val:Tn((r==null?void 0:r.systemReminders)??0)})]}),g.jsx("h3",{className:"ctx-section-title",children:"CLAUDE.md files in scope"}),(((h=r==null?void 0:r.claudeMdFiles)==null?void 0:h.length)??0)===0?g.jsx("div",{className:"ctx-empty",children:"No CLAUDE.md files found on the path from cwd to ~/.claude."}):g.jsx("ul",{className:"ctx-md-list",children:r.claudeMdFiles.map(f=>g.jsxs("li",{children:[g.jsx("span",{className:"ctx-md-path",title:f.path,children:f.path}),g.jsx("span",{className:"ctx-md-size",children:IP(f.bytes)})]},f.path))})]})})}function Yn({label:e,val:n,accent:r}){return g.jsxs("div",{className:`ctx-row${r?" accent":""}`,children:[g.jsx("span",{className:"ctx-row-label",children:e}),g.jsx("span",{className:"ctx-row-val",children:n})]})}function PP({currentContextTokens:e,modelId:n,contextWindow:r,size:s=26,onClick:o,title:l}){const u=yN(r,n),c=Math.min(1,e/u),p=s/2-3,h=s/2,f=2*Math.PI*p,m=f*c,y=c>.9?"var(--err)":c>.7?"var(--inflight)":"var(--accent)";return g.jsx("button",{type:"button",className:"ctx-donut",onClick:o,title:l??`context: ${e.toLocaleString()} / ${u.toLocaleString()} (${(c*100).toFixed(1)}%)`,"aria-label":"Show context breakdown",children:g.jsxs("svg",{width:s,height:s,viewBox:`0 0 ${s} ${s}`,children:[g.jsx("circle",{cx:h,cy:h,r:p,stroke:"var(--line)",strokeWidth:"2.5",fill:"none"}),g.jsx("circle",{cx:h,cy:h,r:p,stroke:y,strokeWidth:"2.5",fill:"none",strokeDasharray:`${m} ${f-m}`,strokeDashoffset:f/4,strokeLinecap:"round",style:{transition:"stroke-dasharray 400ms ease"}}),g.jsx("text",{x:h,y:h+3,textAnchor:"middle",fontSize:"8",fill:"var(--text)",fontWeight:"600",children:Math.round(c*100)})]})})}function OP(e,n){const r=yv(n);if(!r)return"no rates for this model";const s=u=>u.toLocaleString(),o=u=>`$${u}/MTok`,l=on(e,n);return[`model: ${n}`,`input ${s(e.inputTokens).padStart(14)} × ${o(r.input).padEnd(11)} = ${Ve(l.input)}`,`output ${s(e.outputTokens).padStart(14)} × ${o(r.output).padEnd(11)} = ${Ve(l.output)}`,`cache r ${s(e.cacheReadTokens).padStart(14)} × ${o(r.cacheRead).padEnd(11)} = ${Ve(l.cacheRead)}`,`cache w ${s(e.cacheCreateTokens).padStart(14)} × ${o(r.cacheWrite).padEnd(11)} = ${Ve(l.cacheWrite)}`,"─────────────────────────────────────────",`total = ${Ve(l.total)}`].join(`
|
|
58
58
|
`)}function qP(e,n,r){const s=(n??r)-e;if(s<1e3)return`${Math.max(0,s)}ms`;const o=Math.floor(s/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60),u=o%60;return`${l}m ${String(u).padStart(2,"0")}s`}function LP({data:e,selected:n}){var h;const r=e.now??Date.now(),s=["agent-node",`state-${e.state}`,e.synthetic?"synthetic":"",n?"selected":""].filter(Boolean).join(" "),o=e.tools.filter(f=>!f.endedAt).length,u=`hsl(${vv(e.sessionId)} 70% 60%)`,c=((h=e.context)==null?void 0:h.currentContextTokens)??0,p=e.kind==="root"&&c>0;return g.jsxs("div",{className:s,style:{"--accent":u},children:[g.jsx("span",{className:"accent-stripe"}),g.jsx(Vs,{type:"target",position:Ce.Left,style:{background:"transparent",border:"none"}}),g.jsxs("div",{className:"head",children:[g.jsxs("div",{className:"title",children:[g.jsx($P,{state:e.state}),g.jsx("span",{className:"label",title:e.cwd,children:e.label}),e.synthetic&&g.jsx("span",{className:"synth-tag",title:"No SessionStart captured — synthesised",children:"?"})]}),g.jsxs("div",{className:"head-right",children:[p&&e.onOpenContext&&g.jsx(PP,{currentContextTokens:c,modelId:e.model,contextWindow:e.contextWindow,onClick:()=>e.onOpenContext(e.sessionId)}),g.jsx("div",{className:"time",title:`Started ${new Date(e.startedAt).toLocaleTimeString()}`,children:qP(e.startedAt,e.endedAt,r)})]})]}),g.jsxs("div",{className:"sub",children:[e.kind==="root"?"session":"subagent",e.childCount>0&&g.jsxs("span",{className:"spawn-badge",title:`${e.childCount} subagents spawned`,children:["→ ",e.childCount]}),e.cwdBasename&&e.kind==="subagent"?` · ${e.cwdBasename}`:"",e.model&&g.jsx("span",{className:"model-chip",title:e.model,children:da(e.model)})]}),e.tools.length>0&&g.jsx(FP,{tools:e.tools,now:r}),g.jsxs("div",{className:"meta",children:[g.jsxs("span",{children:[g.jsx("b",{children:e.toolCount})," tools"]}),o>0&&g.jsxs("span",{className:"inflight-meta",children:[g.jsx("b",{children:o})," in-flight"]}),e.usage.inputTokens+e.usage.outputTokens>0&&g.jsxs("span",{className:"tokens-meta",title:`in:${e.usage.inputTokens} out:${e.usage.outputTokens} cache-r:${e.usage.cacheReadTokens} cache-c:${e.usage.cacheCreateTokens}${(e.usage.reasoningOutputTokens??0)>0?` reasoning:${e.usage.reasoningOutputTokens}`:""}`,children:[g.jsx("b",{children:DP(e.usage.inputTokens+e.usage.outputTokens)})," tok"]}),e.model&&yv(e.model)&&(()=>{const f=on(e.usage,e.model);if(f.total<=0)return null;const m=Math.max(0,((e.endedAt??r)-e.startedAt)/1e3),y=e.state==="active"?Gl(f.total,m):null,x=OP(e.usage,e.model)+(y?`
|
|
59
|
-
burn: ${y}`:"");return g.jsxs("span",{className:"cost-meta",title:x,children:[g.jsx("b",{children:Ve(f.total)}),y&&g.jsx("span",{className:"cost-rate",children:y})]})})()]}),g.jsx(Vs,{type:"source",position:Ce.Right,style:{background:"transparent",border:"none"}})]})}function $P({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return g.jsx("span",{className:`state-pill state-${e}`,children:n})}function DP(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function FP({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const x=n-y.startedAt;if(x<0||x>=6e4)continue;const C=23-Math.floor(x/2500);C>=0&&C<24&&(l[C]+=1,u+=1)}const c=Math.max(1,...l),p=132,h=14,f=p/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:p,height:h,viewBox:`0 0 ${p} ${h}`,"aria-hidden":!0,children:l.map((y,x)=>{const C=y===0?1.5:Math.max(1.5,y/c*h),_=x===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:x*f+.4,y:h-C,width:Math.max(.5,f-1),height:C,rx:.8,className:b},x)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function da(e){const n=e.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(n){const o=n[1][0].toUpperCase()+n[1].slice(1).toLowerCase(),l=n[2].replace(/[-_]/g,".");return`${o} ${l}`}const r=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(r)return`GPT-${r[1].replace(/[-_]/g,".")} Codex`;const s=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return s?`GPT-${s[1].replace(/[-_]/g,".")}`:e}function tx(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function zP(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 BP({tool:e,onClose:n}){A.useEffect(()=>{const s=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[n]);const r=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"dialog","aria-modal":"true",children:g.jsxs("div",{className:"modal",onClick:s=>s.stopPropagation(),children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:`status-dot ${r}`}),g.jsx("span",{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:zP(e)}),g.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("section",{className:"modal-body",children:[e.trimmed&&g.jsx("div",{className:"modal-section",children:g.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),g.jsxs("div",{className:"modal-section",children:[g.jsx("h4",{children:"Input"}),g.jsx("pre",{children:tx(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",r==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":tx(e.response??e.errorPreview)})]})]})]})})}const Cl=18,nx=26,UP=12;function HP(e){const n=new Map;for(const o of e.nodeInternals.values()){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,p=u+o.width,h=c+o.height,f=n.get(l.sessionId);f?(f.minX=Math.min(f.minX,u),f.minY=Math.min(f.minY,c),f.maxX=Math.max(f.maxX,p),f.maxY=Math.max(f.maxY,h),l.kind==="root"&&(f.label=rx(l)??f.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:p,maxY:h,label:rx(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const s=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${VP(o)}`:l.label;s.push({sessionId:o,label:c,x:l.minX-Cl,y:l.minY-Cl-nx,w:l.maxX-l.minX+Cl*2,h:l.maxY-l.minY+Cl*2+nx})}return s}function VP(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function rx(e){if(e.kind==="root")return e.label}function WP(){const{x:e,y:n,zoom:r}=uN(),s=ca(),o=Ke(HP,GP);if(o.length<=1)return null;const l=u=>{try{const c=s.getNodes().filter(p=>{const h=p.data;return(h==null?void 0:h.sessionId)===u});if(c.length===0)return;s.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=vv(u.sessionId),p={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,borderColor:`hsl(${c} 65% 55% / 0.32)`,background:`hsl(${c} 70% 50% / 0.04)`},h={position:"absolute",left:u.x*r+e+16*r,top:(u.y-UP)*r+n,color:`hsl(${c} 70% 78%)`,borderColor:`hsl(${c} 65% 55% / 0.5)`,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top"};return g.jsxs(ae.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:p,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:h,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function GP(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const s=e[r],o=n[r];if(s.sessionId!==o.sessionId||s.label!==o.label||s.x!==o.x||s.y!==o.y||s.w!==o.w||s.h!==o.h)return!1}return!0}function YP({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 wN=600,KP=4,XP=36,Gg=16,QP=60,ZP=6,ix=220,sx=96,JP=28,e3={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan",ScheduleWakeup:"other",CronCreate:"other",CronList:"other",CronDelete:"other",Monitor:"other",PushNotification:"other",RemoteTrigger:"other",ToolSearch:"other"};function t3(e){return e.startsWith("mcp__")?"mcp":e3[e]??"other"}const n3={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",shell:"⚡",exec_command:"⚡",shell_command:"⚡",write_stdin:"💻",wait:"⏳",apply_patch:"🩹",update_plan:"📋",LS:"📂",Task:"🤖",Agent:"🤖",TodoWrite:"📋",TaskCreate:"📋",TaskUpdate:"📝",TaskList:"🗂️",TaskGet:"🗂️",TaskOutput:"📤",TaskStop:"🛑",WebFetch:"🌐",WebSearch:"🔭",ToolSearch:"🧰",NotebookEdit:"📓",EnterPlanMode:"🧭",ExitPlanMode:"🏁",AskUserQuestion:"❓",ScheduleWakeup:"⏰",CronCreate:"⏰",CronList:"📅",CronDelete:"🗑️",Skill:"🎯",Workflow:"🎬",Monitor:"📡",PushNotification:"🔔",RemoteTrigger:"📡"};function ox(e){return e.startsWith("mcp__")?"🔌":n3[e]??"✨"}const r3={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 xN(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 xN(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 s=n.match(/^([^\s|;&<>(]+)/);if(!s)return null;let o=s[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function i3(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const s=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(s>=0&&s+1<r.length)return r[s+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const s3=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),o3=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function a3(e,n){return o3.has(e)||e.startsWith("mcp__")?Math.max(sx,34+n.length*7.5):sx}function l3(e,n){if(!s3.has(e))return null;const r=i3(n);if(!r)return null;const s=xN(r);return s?{emoji:r3[s]??"⚙️",label:s,category:"shell",detail:r}:null}const u3=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),ax={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:"🗄️"},lx={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 c3(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),s=r.lastIndexOf("/");return s>=0?r.slice(s+1):r}function d3(e){const n=e.toLowerCase();if(lx[n])return lx[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 s=n.slice(r+1);if(ax[s])return ax[s]}return"📄"}function f3(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const s=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return s?s[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 h3(e,n){if(!u3.has(e))return null;const r=f3(e,n);if(!r)return null;const s=c3(r);return s?{emoji:e==="LS"?"📂":d3(s),label:s,category:"file",detail:r}:null}const _N={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 SN(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 p3(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 m3(e,n){const r=SN(e);if(!r)return null;const{server:s,method:o}=r;if(!o)return null;const l=_N[s.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${s} · ${o}`}}function g3(e,n){return l3(e,n)??h3(e,n)??m3(e)}const v3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function y3(e){const n=SN(e);if(n){const s=_N[n.server.toLowerCase()];return s?{emoji:s.emoji,label:s.name}:{emoji:"🔌",label:n.server,hue:p3(n.server)}}const r=v3[e];return r?{emoji:ox(e),label:r}:{emoji:ox(e),label:e}}function w3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function x3(e,n,r){if(r==null)return 1;const s=n-r;return s<0?1:Math.max(0,1-s/wN)}function _3(e,n){const r=[],s=new Set;for(let o=e.length-1;o>=0&&r.length<n;o--){const l=e[o];s.has(l.id)||(s.add(l.id),r.push(l))}return r.reverse()}function S3(e,n,r,s,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>wN)continue;const p=s.get(c.id)??r.get(c.id);if(!p)continue;const h=_3(c.tools,KP);if(h.length===0)continue;const f=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??ix,ix),x=(m==null?void 0:m.height)??130,C=p.x,_=p.y,S=C+y,b=_+x/2;h.forEach((k,N)=>{const j=N*XP,M=C+y+QP,P=_+ZP+j,O=x3(k,l,f),B=k.inputPreview??"",L=w3(k),q=O<.999,I=y3(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:I.label,emoji:I.emoji,status:L,category:t3(k.name),mcpHue:I.hue,inputPreview:B,fade:O,fading:q,worldX:M,worldY:P,anchorX:S,anchorY:b,spawnDx:S-M,spawnDy:b-(P+Gg)});const H=g3(k.name,k.input);if(H){const X=a3(k.name,I.label),T=M+X+JP,K=P,U=M+X,ee=P+Gg;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:H.label,emoji:H.emoji,isSub:!0,status:L,category:H.category,inputPreview:H.detail??B,fade:O,fading:q,worldX:T,worldY:K,anchorX:U,anchorY:ee,spawnDx:U-T,spawnDy:0})}})}return u}function b3({agents:e,visibleAgentIds:n,positions:r,pinned:s,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:p,onOpenTool:h}){const f=S3(e,n,r,s,o,p),m=c&&c.size>0?f.filter(y=>!c.has(y.category)):f;return g.jsx(k3,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:h})}function k3({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:s}){const{x:o,y:l,zoom:u}=uN();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const p=c.anchorX*u+o,h=c.anchorY*u+l,f=(c.worldX+6)*u+o,m=(c.worldY+Gg)*u+l,y=p+(f-p)*.55,x=n!=null&&!n.has(c.agentId),C=r!=null&&!r.has(c.agentId),_=c.fade*(x||C?.14:1);return g.jsx("path",{d:`M ${p} ${h} Q ${y} ${h}, ${f} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const p=c.worldX*u+o,h=c.worldY*u+l,f={left:`${p}px`,top:`${h}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,x=s!=null,C=c.mcpHue!=null?{"--cat-accent":`hsl(${c.mcpHue} 65% 65%)`}:{},_=n!=null&&!n.has(c.agentId),S=r!=null&&!r.has(c.agentId),b=_||S?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:f,children:g.jsxs("div",{className:`tool-burst cat-${c.category} status-${c.status}${c.fading?" fading":""}${x?" clickable":""}${c.isSub?" sub":""}${b}`,style:C,title:y,role:x?"button":void 0,tabIndex:x?0:void 0,"aria-label":x?`Open ${c.toolName} ${c.status==="inflight"?"in flight":c.status} — click for details`:void 0,onClick:x?()=>s(c.toolId):void 0,onKeyDown:x?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),s(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 E3({state:e,sessionId:n,onClose:r}){const s=A.useMemo(()=>C3(e,n),[e,n]);return s?g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{className:"modal session-summary",onClick:o=>o.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:s.cwd??s.sessionId,children:s.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",s.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:s.durationLabel}),g.jsx("button",{className:"btn",onClick:r,"aria-label":"Close",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:Ve(s.cost.total)}),s.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:s.modelChips.map(o=>g.jsx("span",{className:"model-chip",title:o,children:da(o)},o))})]}),g.jsx("div",{className:"ss-hero-right",children:s.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(N3,{cost:s.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:Ve(s.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:Ve(s.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:Ve(s.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:Ve(s.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(Ms,{label:"agents",value:s.agentCount}),g.jsx(Ms,{label:"subagents",value:s.subagentCount}),g.jsx(Ms,{label:"tool calls",value:s.toolCount}),g.jsx(Ms,{label:"prompts",value:s.promptCount}),g.jsx(Ms,{label:"tokens",value:s.tokensSum.toLocaleString()}),s.errCount>0&&g.jsx(Ms,{label:"errors",value:s.errCount,tone:"err"})]}),s.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:s.topTools.map(([o,l])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:o}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${l/s.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:l})]},o))})]}),s.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:s.firstPrompt})]})]})]})}):null}function Ms({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 N3({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Ve(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function C3(e,n){const r=e.agents.get(n);if(!r)return null;const s=[];for(const N of e.agents.values())N.sessionId===n&&s.push(N);if(s.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,p=0,h=0,f=0,m=0,y,x=1/0,C=0;for(const N of s){const j=on(N.usage,N.model);o.input+=j.input,o.output+=j.output,o.cacheRead+=j.cacheRead,o.cacheWrite+=j.cacheWrite,o.total+=j.total,N.model&&l.add(N.model),N.kind==="subagent"&&m++,p+=N.prompts.length,!y&&N.prompts.length>0&&(y=N.prompts[0].text),h+=N.usage.inputTokens+N.usage.outputTokens,c+=N.toolCount,x=Math.min(x,N.startedAt),C=Math.max(C,N.endedAt??Date.now());for(const M of N.tools)u.set(M.name,(u.get(M.name)??0)+1),M.ok===!1&&f++}const _=Math.max(0,C-x),S=Math.floor(_/1e3),b=S<60?`${S}s`:S<3600?`${Math.floor(S/60)}m ${String(S%60).padStart(2,"0")}s`:`${Math.floor(S/3600)}h ${Math.floor(S%3600/60)}m`,k=Array.from(u.entries()).sort((N,j)=>j[1]-N[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:s.length,subagentCount:m,toolCount:c,promptCount:p,tokensSum:h,errCount:f,topTools:k,firstPrompt:y}}function j3(e,n){const r=[];for(const s of e.agents.values()){if(s.kind!=="root")continue;let o=s.toolCount,l=on(s.usage,s.model).total,u=s.endedAt??s.startedAt;for(const c of e.agents.values()){if(c.sessionId!==s.sessionId||c.kind==="root")continue;o+=c.toolCount,l+=on(c.usage,c.model).total;const p=c.endedAt??c.startedAt;p>u&&(u=p)}r.push({sessionId:s.sessionId,label:s.label||s.cwdBasename||"session",cwdBasename:s.cwdBasename,state:s.state,modelId:s.model,toolCount:o,cost:l,startedAt:s.startedAt,lastActivity:u})}return r.sort((s,o)=>{if(s.state!==o.state){if(s.state==="active")return-1;if(o.state==="active")return 1}return o.lastActivity-s.lastActivity}),r}function R3(e,n,r){const s=(n??r)-e;if(s<1e3)return"<1s";const o=Math.floor(s/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 T3({state:e,now:n,selectedIds:r,onSelect:s,onClose:o}){const l=A.useMemo(()=>j3(e),[e,e.lastSeq,n]),u=l.filter(c=>c.state==="active").length;return g.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h3",{children:["Sessions ",g.jsx("span",{className:"sl-count",children:l.length})]}),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(c=>{const p=r.has(c.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${c.state}${p?" selected":""}`,onClick:()=>s(c.sessionId),title:`Focus ${c.label}`,children:[g.jsx("span",{className:`sl-dot state-${c.state}`,"aria-hidden":!0}),g.jsxs("div",{className:"sl-row-body",children:[g.jsxs("div",{className:"sl-row-head",children:[g.jsx("span",{className:"sl-label",children:c.label}),c.modelId&&g.jsx("span",{className:"model-chip",title:c.modelId,children:da(c.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:c.toolCount})," tools"]}),c.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:Ve(c.cost)})}),g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(c.startedAt).toLocaleString()}`,children:R3(c.startedAt,c.state==="active"?void 0:c.lastActivity,n)})]})]})]},c.sessionId)})]})]})}function ux(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 A3(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function Ar(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function I3({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Ve(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function M3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/3600),o=Math.floor(r%3600/60);if(s>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return s>0?`${s}h ${o}m`:`${o}m`}function P3(e,n,r,s){const o=Math.max(0,n-s),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 p=100-e,h=l>0?e/l:0,f=h>0?p/h:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(f<o&&f<86400){const y=Math.floor(f/3600),x=Math.floor(f%3600/60);m.runsOutIn=y>0?`${y}h ${x}m`:`${x}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Fi({pct:e,label:n,reset:r,resetAt:s,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),h=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",f=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=s?M3(s,u):null,x=s&&o?P3(c,s,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:h},children:f})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:h,opacity:c===0?.4:1}}),x&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${x.expectedPct}%`,background:x.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(x.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,x&&g.jsx("span",{className:"qb-pace",style:{color:x.color},children:x.runsOutIn?`runs out in ${x.runsOutIn}`:x.label})]})]})}const O3=6e4;function q3(){const[e,n]=A.useState(null),[r,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/quota?refresh=1":"/api/quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),O3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function L3(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const bN=6e4;function $3(){const[e,n]=A.useState(null),[r,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),bN),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function D3(){const[e,n]=A.useState(null),r=A.useRef(null),s=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return A.useEffect(()=>(s(),r.current=window.setInterval(s,bN),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function F3({state:e,now:n,onClose:r}){var O,B;const{quota:s,loading:o,refresh:l}=q3(),{data:u,loading:c,refresh:p}=$3(),{data:h}=D3(),[f,m]=A.useState(()=>Math.floor(Date.now()/1e3));A.useEffect(()=>{const L=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(L)},[]);const{byModel:y,totalCost:x,totalTokens:C,burnRate:_}=A.useMemo(()=>{const L=new Map,q={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let I=0,H=0,X=0,T=0;for(const F of e.agents.values()){const G=F.model??"__unknown__",E=on(F.usage,F.model),$=L.get(G);$?($.inputTokens+=F.usage.inputTokens,$.outputTokens+=F.usage.outputTokens,$.cacheReadTokens+=F.usage.cacheReadTokens,$.cacheCreateTokens+=F.usage.cacheCreateTokens,$.cost.total+=E.total,$.cost.input+=E.input,$.cost.output+=E.output,$.cost.cacheRead+=E.cacheRead,$.cost.cacheWrite+=E.cacheWrite,$.agentCount++):L.set(G,{model:G,inputTokens:F.usage.inputTokens,outputTokens:F.usage.outputTokens,cacheReadTokens:F.usage.cacheReadTokens,cacheCreateTokens:F.usage.cacheCreateTokens,cost:{...E},agentCount:1}),q.total+=E.total,q.input+=E.input,q.output+=E.output,q.cacheRead+=E.cacheRead,q.cacheWrite+=E.cacheWrite,I+=F.usage.inputTokens,H+=F.usage.outputTokens,X+=F.usage.cacheReadTokens,T+=F.usage.cacheCreateTokens}const K=Array.from(L.values()).sort((F,G)=>G.cost.total-F.cost.total);let U=0,ee=0;for(const F of e.agents.values()){if(F.state!=="active")continue;const G=on(F.usage,F.model);U+=G.total,ee=Math.max(ee,((F.endedAt??n)-F.startedAt)/1e3)}const J=ee>0?Gl(U,ee):null;return{byModel:K,totalCost:q,totalTokens:{in:I,out:H,cacheR:X,cacheC:T},burnRate:J}},[e,e.lastSeq,n]),S=A.useMemo(()=>{const L=[];for(const q of e.agents.values()){if(q.kind!=="root")continue;let I=on(q.usage,q.model).total,H=q.usage.inputTokens,X=q.usage.outputTokens;for(const T of e.agents.values())T.sessionId!==q.sessionId||T.kind==="root"||(I+=on(T.usage,T.model).total,H+=T.usage.inputTokens,X+=T.usage.outputTokens);L.push({sessionId:q.sessionId,label:q.label||q.cwdBasename||"session",state:q.state,cost:I,inputTokens:H,outputTokens:X})}return L.sort((q,I)=>I.cost-q.cost).slice(0,12)},[e,e.lastSeq]),b=x.total>0,k=C.in+C.out,N=o||c,j=ux(s==null?void 0:s.fetchedAt,f),M=ux(u==null?void 0:u.fetchedAt,f),P=()=>{l(),p()};return g.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h3",{children:"Usage"}),_&&g.jsx("span",{className:"up-rate",children:_}),g.jsxs("div",{className:"up-header-right",children:[g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:P,disabled:N,title:"Refresh Claude + Codex quota",children:N?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Claude quota",j&&!o&&g.jsx("span",{className:"up-section-age",title:A3(s==null?void 0:s.source),children:j})]}),s!=null&&s.ok?g.jsxs("div",{className:"up-quota-bars",children:[s.session5hPct!=null&&g.jsx(Fi,{label:"5-hour window",pct:s.session5hPct,reset:s.session5hReset,resetAt:s.session5hResetAt,windowSec:s.session5hWindowSec,nowSec:f}),s.week7dPct!=null&&g.jsx(Fi,{label:"7-day window",pct:s.week7dPct,reset:s.week7dReset,resetAt:s.week7dResetAt,windowSec:s.week7dWindowSec,nowSec:f}),s.weekSonnetPct!=null&&g.jsx(Fi,{label:"Sonnet (7d)",pct:s.weekSonnetPct,nowSec:f}),s.weekOpusPct!=null&&g.jsx(Fi,{label:"Opus (7d)",pct:s.weekOpusPct,nowSec:f})]}):(s==null?void 0:s.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&g.jsx("span",{className:"up-plan-badge",children:u.planLabel}),M&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:M})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(O=u.windows)==null?void 0:O.map(L=>g.jsx(Fi,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,limitReached:u.limitReached&&L.pct>=100,nowSec:f},L.id)),(B=u.extraWindows)==null?void 0:B.map(L=>g.jsx(Fi,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,nowSec:f},L.id)),u.creditLimit&&g.jsx(Fi,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:f}),(h==null?void 0:h.ok)&&h.window7d&&h.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Ar(h.window7d.totalTokens)," tokens · ",h.window7d.sessionCount," session",h.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&g.jsxs("div",{className:"up-quota-sub up-reset-credits",title:"Redeem in the Codex CLI or ChatGPT — agents-deck only reports them",children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&g.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&g.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:L3(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:Ve(x.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(I3,{cost:x}),k>0&&g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Ar(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ar(C.out)]}),C.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Ar(C.cacheR)]}),C.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Ar(C.cacheC)]})]}),y.filter(L=>L.cost.total>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:y.filter(L=>L.cost.total>0).map(L=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:L.model,children:da(L.model)}),g.jsx("td",{className:"up-num",children:Ar(L.inputTokens+L.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:Ve(L.cost.total)})]},L.model))})]})]}),S.filter(L=>L.cost>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:S.filter(L=>L.cost>0).map(L=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${L.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:L.label}),g.jsx("span",{className:"up-session-tokens",children:Ar(L.inputTokens+L.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:Ve(L.cost)})]},L.sessionId))})]})]}):k>0?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Ar(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ar(C.out)]})]}),g.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const cx=18,z3=1100,Ps=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},B3=Array.from({length:cx},(e,n)=>{const r=-72+144*n/(cx-1)+(Ps(n,1)-.5)*9,s=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Ps(n,2)*.52);return{dx:Math.cos(s)*o,dy:Math.sin(s)*o,rot:(n%2?1:-1)*(100+Ps(n,3)*260),delay:Math.round(Ps(n,4)*90),dur:760+Math.round(Ps(n,5)*260),scale:.8+Ps(n,6)*.45,hue:n%4,round:n%3===0}});function dx({anchor:e,lifetimeMs:n=z3}){var l;const[r,s]=A.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return A.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();s({x:c.left+c.width/2,y:c.top+c.height/2});const p=window.setTimeout(()=>s(null),n);return()=>window.clearTimeout(p)},[e,n,o]),o||!r?null:eI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:B3.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 kN=new Set(["awaiting_url","awaiting_code","registering"]);function U3(e){return e!=null&&kN.has(e)}function H3(e){return e!=null&&e!=="done"&&!kN.has(e)}const V3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",W3="the sign-in did not complete";function G3({state:e,serverError:n,localError:r}){const s=e==="idle";return{title:s?"Sign-in ended":"Sign-in failed",message:r||n||(s?V3:W3)}}const Y3=1500;async function jl(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const K3={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 agents-deck",expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},ld=(e,n)=>(e==null?void 0:e.detail)||(e!=null&&e.reason?K3[e.reason]??e.reason:null)||(e==null?void 0:e.error)||n,Yg=ae.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"})]}));Yg.displayName="SuccessMark";function X3({onClose:e,onChanged:n}){const[r,s]=A.useState("login"),[o,l]=A.useState(null),[u,c]=A.useState(""),[p,h]=A.useState(""),[f,m]=A.useState(!1),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useRef(!1),b=A.useRef(null),k=A.useRef(null),N=A.useRef(null),j=A.useCallback(()=>{S.current&&jl({action:"login-cancel"}).catch(()=>{}),e()},[e]);A.useEffect(()=>{const I=H=>{H.key==="Escape"&&j()};return window.addEventListener("keydown",I),()=>window.removeEventListener("keydown",I)},[j]);const M=A.useCallback(async()=>{m(!0),x(null),S.current=!0;const I=await jl({action:"login"}).catch(()=>null);if(m(!1),!(I!=null&&I.ok)){x(ld(I,"could not start the sign-in"));return}l(I)},[]);A.useEffect(()=>{if(!U3(o==null?void 0:o.state))return;const I=window.setInterval(async()=>{try{const H=await fetch("/api/claude-accounts/login");H.ok&&l(await H.json())}catch{}},Y3);return()=>window.clearInterval(I)},[o]),A.useEffect(()=>{var I;(o==null?void 0:o.state)==="awaiting_code"&&((I=b.current)==null||I.focus()),(o==null?void 0:o.state)==="done"&&n()},[o==null?void 0:o.state,n]),A.useEffect(()=>{var I;r==="paste"&&((I=k.current)==null||I.focus())},[r]);const P=A.useCallback(async()=>{var H;m(!0),x(null);const I=await jl({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(I!=null&&I.ok)){x(ld(I,"the code was not accepted")),I!=null&&I.state&&l(I),(H=b.current)==null||H.select();return}c(""),l(I)},[u,o]),O=A.useCallback(async()=>{m(!0),x(null);const I=await jl({action:"import",blob:p}).catch(()=>null);if(m(!1),!(I!=null&&I.ok)){x(ld(I,"the import failed"));return}h(""),_({added:I.added===!0,num:I.num??null,email:I.email??null}),n()},[p,n]),B=(o==null?void 0:o.state)==="done"?o.account:null,L=H3(o==null?void 0:o.state)||!!(y&&S.current&&!f),q=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:j,role:"presentation",children:g.jsxs("div",{className:"modal aa-modal",onClick:I=>I.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:()=>s("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>s("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:j,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?B?g.jsxs("div",{className:"aa-done",children:[g.jsx(Yg,{ref:N}),g.jsx(dx,{anchor:N}),g.jsx("h4",{children:B.added?`Account ${B.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:B.email}),B.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:b,type:"text",value:u,onChange:I=>c(I.target.value),onKeyDown:I=>{I.key==="Enter"&&u.trim()&&!f&&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:f||!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."})]})]}):L?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:q.title}),g.jsx("p",{className:"aa-err",children:q.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),x(null),M()},children:"Try again"})]}):f||S.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",className:"btn primary",onClick:M,disabled:f,children:"Open the sign-in page"})})]}):C?g.jsxs("div",{className:"aa-done",children:[g.jsx(Yg,{ref:N}),C.added&&g.jsx(dx,{anchor:N}),g.jsx("h4",{children:C.added?`Account ${C.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:C.added?g.jsxs(g.Fragment,{children:[C.email?g.jsx("strong",{children:C.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:p,onChange:I=>h(I.target.value),onKeyDown:I=>{I.key==="Enter"&&p.trim()&&!f&&O()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!p.trim(),onClick:O,children:f?"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."]})]})})]})})}const Q3=15e3,Z3=[70,80,85,90,95];function J3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return s>0?`${s}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function fx(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 eO(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 tO(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 nO({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),s=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?J3(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:s,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:s},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}function rO(e){const n=e.map(s=>s.num),r=n.length?Math.max(...n):0;return[...new Set([...n,r+1])].sort((s,o)=>s-o)}async function iO(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(s=>window.setTimeout(()=>s(!1),500))])}catch{n=!1}if(n)return!0;try{const s=document.createElement("textarea");s.value=e,s.setAttribute("readonly",""),s.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(s),s.select(),n=document.execCommand("copy"),s.remove()}catch{n=!1}return n}function sO(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 oO({onClose:e}){var J,F,G;const[n,r]=A.useState(null),[s,o]=A.useState(null),[l,u]=A.useState(null),[c,p]=A.useState(null),[h,f]=A.useState(null),[m,y]=A.useState(()=>Math.floor(Date.now()/1e3)),x=A.useRef(null),[C,_]=A.useState(null),[S,b]=A.useState(!1),[k,N]=A.useState(""),[j,M]=A.useState(null),[P,O]=A.useState(null),[B,L]=A.useState(!1),q=A.useCallback(async(E=!1)=>{try{const[$,se]=await Promise.all([fetch(`/api/claude-accounts${E?"?refresh=1":""}`),fetch("/api/cswap-auto")]);$.ok&&r(await $.json()),se.ok&&o(await se.json())}catch{}},[]),I=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]),H=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]);A.useEffect(()=>(q(!0),x.current=window.setInterval(()=>q(!1),Q3),()=>{x.current!=null&&window.clearInterval(x.current)}),[q]),A.useEffect(()=>{const E=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(E)},[]);const X=((J=s==null?void 0:s.settings["autoswitch.threshold"])==null?void 0:J.value)??"90",T=(F=n==null?void 0:n.accounts)==null?void 0:F.find(E=>E.active),K=T!=null&&T.lanes.length?Math.max(...T.lanes.map(E=>E.pct)):null,U=K!=null&&K>=Number(X)-15,ee=async E=>{p(E),f(null);try{const se=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:E})})).json().catch(()=>null);se!=null&&se.ok||f((se==null?void 0:se.output)||(se==null?void 0:se.reason)||"switch failed"),await q(!0)}catch{f("server unreachable")}finally{p(null)}};return g.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h3",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>b(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>q(!0),title:"Reload from claude-swap",children:"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(G=n.accounts)==null?void 0:G.map(E=>g.jsxs("div",{className:`ap-account${E.active?" active":""}${E.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:E.num}),E.alias&&g.jsx("span",{className:"ap-alias",children:E.alias}),g.jsx("span",{className:"ap-email",title:E.org??void 0,children:E.email}),g.jsx("button",{type:"button",className:`ap-more${C===E.num?" on":""}`,"aria-label":`Manage account ${E.num}`,"aria-expanded":C===E.num,title:"Share, rename, move, remove",onClick:()=>{_(C===E.num?null:E.num),N(E.alias??""),M(null),O(null),L(!1)},children:"⋯"}),E.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:c!=null||E.disabled,onClick:()=>ee(E.num),title:E.disabled?"Held out of rotation":`Switch to ${E.alias??E.email}`,children:c===E.num?"…":"switch"})]}),E.lanes.length>0?E.lanes.map($=>g.jsx(nO,{lane:$,nowSec:m},$.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[E.error&&(()=>{const $=tO(E.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:$.hint,children:$.text}),$.fixable&&g.jsx("button",{type:"button",className:"ap-fix",onClick:()=>b(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((s==null?void 0:s.enabled)||(s==null?void 0:s.external))&&!E.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>I({action:"account",account:E.num,enabled:E.disabled},`rot-${E.num}`).then(()=>q(!0)),title:E.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:E.disabled?"held out":"in rotation"}),E.fetchedAt?g.jsxs("span",{className:`ap-age${E.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 ",fx(E.fetchedAt,m),eO(E.nextAt,m)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),C===E.num&&g.jsxs("div",{className:"ap-manage",children:[g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"name"}),g.jsx("input",{className:"ap-manage-input",type:"text",value:k,onChange:$=>N($.target.value),onKeyDown:$=>{$.key==="Enter"&&H({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>q(!0))},placeholder:"no alias",spellCheck:!1,"aria-label":`Alias for account ${E.num}`}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null||k.trim()===(E.alias??""),onClick:()=>H({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>q(!0)),title:"A short name to show instead of the email",children:"save"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{"aria-label":`Slot for account ${E.num}`,value:String(E.num),disabled:l!=null,onChange:$=>H({action:"move",account:E.num,slot:Number($.target.value)},`move-${E.num}`).then(()=>q(!0)),children:rO(n.accounts??[]).map($=>g.jsx("option",{value:$,children:$},$))})}),g.jsx("span",{className:"ap-manage-hint",children:"rotation order"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:"Copy this account to another agents-deck. The share carries a live login and expires in 10 minutes.",onClick:async()=>{L(!1);const $=await H({action:"share",account:E.num},`share-${E.num}`);$!=null&&$.ok&&O({num:E.num,blob:$.blob,expiresAt:$.expiresAt})},children:"share…"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${j===E.num?" armed":""}`,disabled:l!=null,title:j===E.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(j!==E.num){M(E.num),window.setTimeout(()=>M($=>$===E.num?null:$),4e3);return}M(null),H({action:"remove",account:E.num},`rm-${E.num}`).then(()=>{_(null),q(!0)})},children:j===E.num?"confirm remove":"remove"})]}),(P==null?void 0:P.num)===E.num&&(()=>{const $=sO(P.expiresAt,m),se=$.tone==="gone";return g.jsxs("div",{className:`ap-share${se?" 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(se){L(!1);const D=await H({action:"share",account:E.num},`share-${E.num}`);D!=null&&D.ok&&O({num:E.num,blob:D.blob,expiresAt:D.expiresAt});return}await iO(P.blob)&&(L(!0),window.setTimeout(()=>L(!1),1800))},children:se?"make a new share":B?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${$.tone}`,children:$.text})]})]})]})})()]})]},E.num)),(s==null?void 0:s.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:[K!=null&&g.jsxs("span",{className:`ap-auto-now${U?" near":""}`,children:[Math.round(K),"%"]}),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:X,disabled:l!=null,onChange:E=>I({action:"setting",key:"autoswitch.threshold",value:E.target.value},"threshold").then(()=>q(!0)),children:Z3.map(E=>g.jsxs("option",{value:E,children:[E,"%"]},E))})}),g.jsxs("button",{type:"button",className:`ap-auto-state toggle${s.enabled?" live":""}`,role:"switch","aria-checked":s.enabled,disabled:l!=null,onClick:()=>I({action:"enable",enabled:!s.enabled},"enable").then(()=>q(!0)),title:s.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:s.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),s.enabled?"on":"off"]})]})]}),s.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",s.enabled?" — this toggle takes over when you stop it.":"."]}),s.lastTick&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",fx(s.lastTick.at,m)]})})]}),h&&g.jsx("div",{className:"ap-failure",children:h}),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})`:"","."]})]})}),S&&g.jsx(X3,{onClose:()=>b(!1),onChanged:()=>q(!0)})]})}const aO=3e4;function lO({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function uO(e){const n=e.thresholdMs??aO;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 cO(e){return e.ctrlKey||e.metaKey||e.altKey}function ud(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function dO(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}const fO=40,hO=120;function pO(e,n){let r=null,s=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(p,h,f)=>{if(r!=null){if(s<=p)return;u()}const m=Math.min(f,Math.max(0,p-h));s=p,r=n.setTimeout(l,m)};return{live(p=fO){const h=n.now(),f=Math.max(o+p,h);if(f<=h){u(),l();return}c(f,h,p)},replay(p=hO){u(),s=n.now()+p,r=n.setTimeout(l,p)},flush(){u(),l()},cancel(){u()}}}function mO(){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 s=n;return n=[],s}}}function gO(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function vO(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function zi(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 hx(e){return e.replace(/^anthropic\./,"").replace(/^claude-/,"").replace(/-\d{8}$/,"")}function Rl(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 yO=[7,14,30,90];function wO(e){const[n,r]=A.useState(null),[s,o]=A.useState(!1),l=A.useRef(gO()).current,u=(c=!1)=>{const p=l.begin();o(!0);const f=`/api/ccusage?since=${vO(e)}${c?"&refresh=1":""}`;fetch(f).then(m=>m.json()).then(m=>{p()&&r(m)}).catch(()=>{p()&&r({ok:!1,error:"request failed"})}).finally(()=>{p()&&o(!1)})};return A.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{data:n,loading:s,reload:()=>u(!0)}}function xO({onClose:e}){var b,k;const[n,r]=A.useState(30),[s,o]=A.useState(null),{data:l,loading:u,reload:c}=wO(n);A.useEffect(()=>{const N=j=>{j.key==="Escape"&&e()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e]);const p=l!=null&&l.ok?l.days??[]:[],h=A.useMemo(()=>p.reduce((N,j)=>Math.max(N,j.totalCost),0),[p]),{totalCost:f,totalTok:m,inOut:y,cacheRead:x,modelCosts:C}=A.useMemo(()=>{let N=0,j=0,M=0,P=0;const O=new Map;for(const B of p){N+=B.totalCost,j+=B.totalTokens,M+=B.inputTokens+B.outputTokens,P+=B.cacheReadTokens;for(const L of B.modelBreakdowns)O.set(L.modelName,(O.get(L.modelName)??0)+L.cost)}return{totalCost:N,totalTok:j,inOut:M,cacheRead:P,modelCosts:O}},[p]),_=A.useMemo(()=>Array.from(C.entries()).sort((N,j)=>j[1]-N[1]),[C]),S=s?p.find(N=>N.period===s)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{className:"uh-modal",onClick:N=>N.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:yO.map(N=>g.jsxs("button",{role:"tab","aria-selected":n===N,className:`uh-range-btn${n===N?" on":""}`,onClick:()=>{r(N),o(null)},children:[N,"d"]},N))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,title:"Re-run ccusage","aria-label":"Reload",children:"↻"}),g.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),u&&p.length===0?g.jsx("div",{className:"uh-status",children:"running ccusage… (first run downloads the package)"}):l&&!l.ok?g.jsxs("div",{className:"uh-status uh-err",children:["ccusage failed: ",l.error]}):p.length===0?g.jsx("div",{className:"uh-status",children:"no usage in this range"}):g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(Tl,{label:"total cost",val:Ve(f),accent:!0}),g.jsx(Tl,{label:"tokens",val:zi(m)}),g.jsx(Tl,{label:"input+output",val:zi(y)}),g.jsx(Tl,{label:"cache reads",val:zi(x)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:p.map(N=>{const j=h>0?N.totalCost/h*100:0,M=N.period===s;return g.jsxs("button",{className:`uh-bar-col${M?" sel":""}`,onClick:()=>o(M?null:N.period),title:`${N.period} · ${Ve(N.totalCost)}`,style:{flexBasis:`${100/p.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(j,N.totalCost>0?2:0)}%`},children:N.modelBreakdowns.slice().sort((P,O)=>O.cost-P.cost).map(P=>{const O=N.totalCost>0?P.cost/N.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${O}%`,background:Rl(P.modelName)}},P.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:N.period.slice(5)})]},N.period)})}),g.jsx("div",{className:"uh-legend",children:_.map(([N,j])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Rl(N)}}),hx(N)," ",g.jsx("span",{className:"uh-legend-cost",children:Ve(j)})]},N))}),S&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:S.period}),g.jsx("span",{className:"uh-detail-cost",children:Ve(S.totalCost)}),(k=(b=S.metadata)==null?void 0:b.agents)!=null&&k.length?g.jsx("span",{className:"uh-detail-agents",children:S.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(Al,{label:"input",val:zi(S.inputTokens)}),g.jsx(Al,{label:"output",val:zi(S.outputTokens)}),g.jsx(Al,{label:"cache write",val:zi(S.cacheCreationTokens)}),g.jsx(Al,{label:"cache read",val:zi(S.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:S.modelBreakdowns.slice().sort((N,j)=>j.cost-N.cost).map(N=>{const j=S.totalCost>0?N.cost/S.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:Rl(N.modelName)}}),hx(N.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${j}%`,background:Rl(N.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:Ve(N.cost)})]},N.modelName)})})]})]})]})})}function Tl({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 Al({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 wv(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 cd,px;function _O(){if(px)return cd;px=1;function e(){this.__data__=[],this.size=0}return cd=e,cd}var dd,mx;function Ws(){if(mx)return dd;mx=1;function e(n,r){return n===r||n!==n&&r!==r}return dd=e,dd}var fd,gx;function ru(){if(gx)return fd;gx=1;var e=Ws();function n(r,s){for(var o=r.length;o--;)if(e(r[o][0],s))return o;return-1}return fd=n,fd}var hd,vx;function SO(){if(vx)return hd;vx=1;var e=ru(),n=Array.prototype,r=n.splice;function s(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 hd=s,hd}var pd,yx;function bO(){if(yx)return pd;yx=1;var e=ru();function n(r){var s=this.__data__,o=e(s,r);return o<0?void 0:s[o][1]}return pd=n,pd}var md,wx;function kO(){if(wx)return md;wx=1;var e=ru();function n(r){return e(this.__data__,r)>-1}return md=n,md}var gd,xx;function EO(){if(xx)return gd;xx=1;var e=ru();function n(r,s){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,s])):o[l][1]=s,this}return gd=n,gd}var vd,_x;function iu(){if(_x)return vd;_x=1;var e=_O(),n=SO(),r=bO(),s=kO(),o=EO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,vd=l,vd}var yd,Sx;function NO(){if(Sx)return yd;Sx=1;var e=iu();function n(){this.__data__=new e,this.size=0}return yd=n,yd}var wd,bx;function CO(){if(bx)return wd;bx=1;function e(n){var r=this.__data__,s=r.delete(n);return this.size=r.size,s}return wd=e,wd}var xd,kx;function jO(){if(kx)return xd;kx=1;function e(n){return this.__data__.get(n)}return xd=e,xd}var _d,Ex;function RO(){if(Ex)return _d;Ex=1;function e(n){return this.__data__.has(n)}return _d=e,_d}var Sd,Nx;function EN(){if(Nx)return Sd;Nx=1;var e=typeof ml=="object"&&ml&&ml.Object===Object&&ml;return Sd=e,Sd}var bd,Cx;function er(){if(Cx)return bd;Cx=1;var e=EN(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return bd=r,bd}var kd,jx;function Gs(){if(jx)return kd;jx=1;var e=er(),n=e.Symbol;return kd=n,kd}var Ed,Rx;function TO(){if(Rx)return Ed;Rx=1;var e=Gs(),n=Object.prototype,r=n.hasOwnProperty,s=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),p=u[o];try{u[o]=void 0;var h=!0}catch{}var f=s.call(u);return h&&(c?u[o]=p:delete u[o]),f}return Ed=l,Ed}var Nd,Tx;function AO(){if(Tx)return Nd;Tx=1;var e=Object.prototype,n=e.toString;function r(s){return n.call(s)}return Nd=r,Nd}var Cd,Ax;function Xi(){if(Ax)return Cd;Ax=1;var e=Gs(),n=TO(),r=AO(),s="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:s:l&&l in Object(c)?n(c):r(c)}return Cd=u,Cd}var jd,Ix;function Mn(){if(Ix)return jd;Ix=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return jd=e,jd}var Rd,Mx;function fa(){if(Mx)return Rd;Mx=1;var e=Xi(),n=Mn(),r="[object AsyncFunction]",s="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var p=e(c);return p==s||p==o||p==r||p==l}return Rd=u,Rd}var Td,Px;function IO(){if(Px)return Td;Px=1;var e=er(),n=e["__core-js_shared__"];return Td=n,Td}var Ad,Ox;function MO(){if(Ox)return Ad;Ox=1;var e=IO(),n=(function(){var s=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function r(s){return!!n&&n in s}return Ad=r,Ad}var Id,qx;function NN(){if(qx)return Id;qx=1;var e=Function.prototype,n=e.toString;function r(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Id=r,Id}var Md,Lx;function PO(){if(Lx)return Md;Lx=1;var e=fa(),n=MO(),r=Mn(),s=NN(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,p=u.toString,h=c.hasOwnProperty,f=RegExp("^"+p.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var x=e(y)?f:l;return x.test(s(y))}return Md=m,Md}var Pd,$x;function OO(){if($x)return Pd;$x=1;function e(n,r){return n==null?void 0:n[r]}return Pd=e,Pd}var Od,Dx;function Qi(){if(Dx)return Od;Dx=1;var e=PO(),n=OO();function r(s,o){var l=n(s,o);return e(l)?l:void 0}return Od=r,Od}var qd,Fx;function xv(){if(Fx)return qd;Fx=1;var e=Qi(),n=er(),r=e(n,"Map");return qd=r,qd}var Ld,zx;function su(){if(zx)return Ld;zx=1;var e=Qi(),n=e(Object,"create");return Ld=n,Ld}var $d,Bx;function qO(){if(Bx)return $d;Bx=1;var e=su();function n(){this.__data__=e?e(null):{},this.size=0}return $d=n,$d}var Dd,Ux;function LO(){if(Ux)return Dd;Ux=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return Dd=e,Dd}var Fd,Hx;function $O(){if(Hx)return Fd;Hx=1;var e=su(),n="__lodash_hash_undefined__",r=Object.prototype,s=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return s.call(u,l)?u[l]:void 0}return Fd=o,Fd}var zd,Vx;function DO(){if(Vx)return zd;Vx=1;var e=su(),n=Object.prototype,r=n.hasOwnProperty;function s(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return zd=s,zd}var Bd,Wx;function FO(){if(Wx)return Bd;Wx=1;var e=su(),n="__lodash_hash_undefined__";function r(s,o){var l=this.__data__;return this.size+=this.has(s)?0:1,l[s]=e&&o===void 0?n:o,this}return Bd=r,Bd}var Ud,Gx;function zO(){if(Gx)return Ud;Gx=1;var e=qO(),n=LO(),r=$O(),s=DO(),o=FO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Ud=l,Ud}var Hd,Yx;function BO(){if(Yx)return Hd;Yx=1;var e=zO(),n=iu(),r=xv();function s(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return Hd=s,Hd}var Vd,Kx;function UO(){if(Kx)return Vd;Kx=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Vd=e,Vd}var Wd,Xx;function ou(){if(Xx)return Wd;Xx=1;var e=UO();function n(r,s){var o=r.__data__;return e(s)?o[typeof s=="string"?"string":"hash"]:o.map}return Wd=n,Wd}var Gd,Qx;function HO(){if(Qx)return Gd;Qx=1;var e=ou();function n(r){var s=e(this,r).delete(r);return this.size-=s?1:0,s}return Gd=n,Gd}var Yd,Zx;function VO(){if(Zx)return Yd;Zx=1;var e=ou();function n(r){return e(this,r).get(r)}return Yd=n,Yd}var Kd,Jx;function WO(){if(Jx)return Kd;Jx=1;var e=ou();function n(r){return e(this,r).has(r)}return Kd=n,Kd}var Xd,e_;function GO(){if(e_)return Xd;e_=1;var e=ou();function n(r,s){var o=e(this,r),l=o.size;return o.set(r,s),this.size+=o.size==l?0:1,this}return Xd=n,Xd}var Qd,t_;function _v(){if(t_)return Qd;t_=1;var e=BO(),n=HO(),r=VO(),s=WO(),o=GO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Qd=l,Qd}var Zd,n_;function YO(){if(n_)return Zd;n_=1;var e=iu(),n=xv(),r=_v(),s=200;function o(l,u){var c=this.__data__;if(c instanceof e){var p=c.__data__;if(!n||p.length<s-1)return p.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(p)}return c.set(l,u),this.size=c.size,this}return Zd=o,Zd}var Jd,r_;function au(){if(r_)return Jd;r_=1;var e=iu(),n=NO(),r=CO(),s=jO(),o=RO(),l=YO();function u(c){var p=this.__data__=new e(c);this.size=p.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=s,u.prototype.has=o,u.prototype.set=l,Jd=u,Jd}var ef,i_;function Sv(){if(i_)return ef;i_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o&&r(n[s],s,n)!==!1;);return n}return ef=e,ef}var tf,s_;function CN(){if(s_)return tf;s_=1;var e=Qi(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return tf=n,tf}var nf,o_;function lu(){if(o_)return nf;o_=1;var e=CN();function n(r,s,o){s=="__proto__"&&e?e(r,s,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[s]=o}return nf=n,nf}var rf,a_;function uu(){if(a_)return rf;a_=1;var e=lu(),n=Ws(),r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c){var p=l[u];(!(s.call(l,u)&&n(p,c))||c===void 0&&!(u in l))&&e(l,u,c)}return rf=o,rf}var sf,l_;function ha(){if(l_)return sf;l_=1;var e=uu(),n=lu();function r(s,o,l,u){var c=!l;l||(l={});for(var p=-1,h=o.length;++p<h;){var f=o[p],m=u?u(l[f],s[f],f,l,s):void 0;m===void 0&&(m=s[f]),c?n(l,f,m):e(l,f,m)}return l}return sf=r,sf}var of,u_;function KO(){if(u_)return of;u_=1;function e(n,r){for(var s=-1,o=Array(n);++s<n;)o[s]=r(s);return o}return of=e,of}var af,c_;function hr(){if(c_)return af;c_=1;function e(n){return n!=null&&typeof n=="object"}return af=e,af}var lf,d_;function XO(){if(d_)return lf;d_=1;var e=Xi(),n=hr(),r="[object Arguments]";function s(o){return n(o)&&e(o)==r}return lf=s,lf}var uf,f_;function pa(){if(f_)return uf;f_=1;var e=XO(),n=hr(),r=Object.prototype,s=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&s.call(u,"callee")&&!o.call(u,"callee")};return uf=l,uf}var cf,h_;function bt(){if(h_)return cf;h_=1;var e=Array.isArray;return cf=e,cf}var Vo={exports:{}},df,p_;function QO(){if(p_)return df;p_=1;function e(){return!1}return df=e,df}Vo.exports;var m_;function Ys(){return m_||(m_=1,(function(e,n){var r=er(),s=QO(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,p=c?c.isBuffer:void 0,h=p||s;e.exports=h})(Vo,Vo.exports)),Vo.exports}var ff,g_;function cu(){if(g_)return ff;g_=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(s,o){var l=typeof s;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(s))&&s>-1&&s%1==0&&s<o}return ff=r,ff}var hf,v_;function bv(){if(v_)return hf;v_=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return hf=n,hf}var pf,y_;function ZO(){if(y_)return pf;y_=1;var e=Xi(),n=bv(),r=hr(),s="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",h="[object Map]",f="[object Number]",m="[object Object]",y="[object RegExp]",x="[object Set]",C="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",N="[object Float64Array]",j="[object Int8Array]",M="[object Int16Array]",P="[object Int32Array]",O="[object Uint8Array]",B="[object Uint8ClampedArray]",L="[object Uint16Array]",q="[object Uint32Array]",I={};I[k]=I[N]=I[j]=I[M]=I[P]=I[O]=I[B]=I[L]=I[q]=!0,I[s]=I[o]=I[S]=I[l]=I[b]=I[u]=I[c]=I[p]=I[h]=I[f]=I[m]=I[y]=I[x]=I[C]=I[_]=!1;function H(X){return r(X)&&n(X.length)&&!!I[e(X)]}return pf=H,pf}var mf,w_;function du(){if(w_)return mf;w_=1;function e(n){return function(r){return n(r)}}return mf=e,mf}var Wo={exports:{}};Wo.exports;var x_;function kv(){return x_||(x_=1,(function(e,n){var r=EN(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l&&r.process,c=(function(){try{var p=o&&o.require&&o.require("util").types;return p||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(Wo,Wo.exports)),Wo.exports}var gf,__;function ma(){if(__)return gf;__=1;var e=ZO(),n=du(),r=kv(),s=r&&r.isTypedArray,o=s?n(s):e;return gf=o,gf}var vf,S_;function jN(){if(S_)return vf;S_=1;var e=KO(),n=pa(),r=bt(),s=Ys(),o=cu(),l=ma(),u=Object.prototype,c=u.hasOwnProperty;function p(h,f){var m=r(h),y=!m&&n(h),x=!m&&!y&&s(h),C=!m&&!y&&!x&&l(h),_=m||y||x||C,S=_?e(h.length,String):[],b=S.length;for(var k in h)(f||c.call(h,k))&&!(_&&(k=="length"||x&&(k=="offset"||k=="parent")||C&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return vf=p,vf}var yf,b_;function fu(){if(b_)return yf;b_=1;var e=Object.prototype;function n(r){var s=r&&r.constructor,o=typeof s=="function"&&s.prototype||e;return r===o}return yf=n,yf}var wf,k_;function RN(){if(k_)return wf;k_=1;function e(n,r){return function(s){return n(r(s))}}return wf=e,wf}var xf,E_;function JO(){if(E_)return xf;E_=1;var e=RN(),n=e(Object.keys,Object);return xf=n,xf}var _f,N_;function Ev(){if(N_)return _f;N_=1;var e=fu(),n=JO(),r=Object.prototype,s=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))s.call(l,c)&&c!="constructor"&&u.push(c);return u}return _f=o,_f}var Sf,C_;function qr(){if(C_)return Sf;C_=1;var e=fa(),n=bv();function r(s){return s!=null&&n(s.length)&&!e(s)}return Sf=r,Sf}var bf,j_;function mi(){if(j_)return bf;j_=1;var e=jN(),n=Ev(),r=qr();function s(o){return r(o)?e(o):n(o)}return bf=s,bf}var kf,R_;function eq(){if(R_)return kf;R_=1;var e=ha(),n=mi();function r(s,o){return s&&e(o,n(o),s)}return kf=r,kf}var Ef,T_;function tq(){if(T_)return Ef;T_=1;function e(n){var r=[];if(n!=null)for(var s in Object(n))r.push(s);return r}return Ef=e,Ef}var Nf,A_;function nq(){if(A_)return Nf;A_=1;var e=Mn(),n=fu(),r=tq(),s=Object.prototype,o=s.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),p=[];for(var h in u)h=="constructor"&&(c||!o.call(u,h))||p.push(h);return p}return Nf=l,Nf}var Cf,I_;function Zi(){if(I_)return Cf;I_=1;var e=jN(),n=nq(),r=qr();function s(o){return r(o)?e(o,!0):n(o)}return Cf=s,Cf}var jf,M_;function rq(){if(M_)return jf;M_=1;var e=ha(),n=Zi();function r(s,o){return s&&e(o,n(o),s)}return jf=r,jf}var Go={exports:{}};Go.exports;var P_;function TN(){return P_||(P_=1,(function(e,n){var r=er(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function p(h,f){if(f)return h.slice();var m=h.length,y=c?c(m):new h.constructor(m);return h.copy(y),y}e.exports=p})(Go,Go.exports)),Go.exports}var Rf,O_;function AN(){if(O_)return Rf;O_=1;function e(n,r){var s=-1,o=n.length;for(r||(r=Array(o));++s<o;)r[s]=n[s];return r}return Rf=e,Rf}var Tf,q_;function IN(){if(q_)return Tf;q_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=0,u=[];++s<o;){var c=n[s];r(c,s,n)&&(u[l++]=c)}return u}return Tf=e,Tf}var Af,L_;function MN(){if(L_)return Af;L_=1;function e(){return[]}return Af=e,Af}var If,$_;function Nv(){if($_)return If;$_=1;var e=IN(),n=MN(),r=Object.prototype,s=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return s.call(u,c)}))}:n;return If=l,If}var Mf,D_;function iq(){if(D_)return Mf;D_=1;var e=ha(),n=Nv();function r(s,o){return e(s,n(s),o)}return Mf=r,Mf}var Pf,F_;function Cv(){if(F_)return Pf;F_=1;function e(n,r){for(var s=-1,o=r.length,l=n.length;++s<o;)n[l+s]=r[s];return n}return Pf=e,Pf}var Of,z_;function hu(){if(z_)return Of;z_=1;var e=RN(),n=e(Object.getPrototypeOf,Object);return Of=n,Of}var qf,B_;function PN(){if(B_)return qf;B_=1;var e=Cv(),n=hu(),r=Nv(),s=MN(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:s;return qf=l,qf}var Lf,U_;function sq(){if(U_)return Lf;U_=1;var e=ha(),n=PN();function r(s,o){return e(s,n(s),o)}return Lf=r,Lf}var $f,H_;function ON(){if(H_)return $f;H_=1;var e=Cv(),n=bt();function r(s,o,l){var u=o(s);return n(s)?u:e(u,l(s))}return $f=r,$f}var Df,V_;function qN(){if(V_)return Df;V_=1;var e=ON(),n=Nv(),r=mi();function s(o){return e(o,r,n)}return Df=s,Df}var Ff,W_;function oq(){if(W_)return Ff;W_=1;var e=ON(),n=PN(),r=Zi();function s(o){return e(o,r,n)}return Ff=s,Ff}var zf,G_;function aq(){if(G_)return zf;G_=1;var e=Qi(),n=er(),r=e(n,"DataView");return zf=r,zf}var Bf,Y_;function lq(){if(Y_)return Bf;Y_=1;var e=Qi(),n=er(),r=e(n,"Promise");return Bf=r,Bf}var Uf,K_;function LN(){if(K_)return Uf;K_=1;var e=Qi(),n=er(),r=e(n,"Set");return Uf=r,Uf}var Hf,X_;function uq(){if(X_)return Hf;X_=1;var e=Qi(),n=er(),r=e(n,"WeakMap");return Hf=r,Hf}var Vf,Q_;function Ks(){if(Q_)return Vf;Q_=1;var e=aq(),n=xv(),r=lq(),s=LN(),o=uq(),l=Xi(),u=NN(),c="[object Map]",p="[object Object]",h="[object Promise]",f="[object Set]",m="[object WeakMap]",y="[object DataView]",x=u(e),C=u(n),_=u(r),S=u(s),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=h||s&&k(new s)!=f||o&&k(new o)!=m)&&(k=function(N){var j=l(N),M=j==p?N.constructor:void 0,P=M?u(M):"";if(P)switch(P){case x:return y;case C:return c;case _:return h;case S:return f;case b:return m}return j}),Vf=k,Vf}var Wf,Z_;function cq(){if(Z_)return Wf;Z_=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s){var o=s.length,l=new s.constructor(o);return o&&typeof s[0]=="string"&&n.call(s,"index")&&(l.index=s.index,l.input=s.input),l}return Wf=r,Wf}var Gf,J_;function $N(){if(J_)return Gf;J_=1;var e=er(),n=e.Uint8Array;return Gf=n,Gf}var Yf,e1;function jv(){if(e1)return Yf;e1=1;var e=$N();function n(r){var s=new r.constructor(r.byteLength);return new e(s).set(new e(r)),s}return Yf=n,Yf}var Kf,t1;function dq(){if(t1)return Kf;t1=1;var e=jv();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Kf=n,Kf}var Xf,n1;function fq(){if(n1)return Xf;n1=1;var e=/\w*$/;function n(r){var s=new r.constructor(r.source,e.exec(r));return s.lastIndex=r.lastIndex,s}return Xf=n,Xf}var Qf,r1;function hq(){if(r1)return Qf;r1=1;var e=Gs(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function s(o){return r?Object(r.call(o)):{}}return Qf=s,Qf}var Zf,i1;function DN(){if(i1)return Zf;i1=1;var e=jv();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Zf=n,Zf}var Jf,s1;function pq(){if(s1)return Jf;s1=1;var e=jv(),n=dq(),r=fq(),s=hq(),o=DN(),l="[object Boolean]",u="[object Date]",c="[object Map]",p="[object Number]",h="[object RegExp]",f="[object Set]",m="[object String]",y="[object Symbol]",x="[object ArrayBuffer]",C="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",N="[object Int32Array]",j="[object Uint8Array]",M="[object Uint8ClampedArray]",P="[object Uint16Array]",O="[object Uint32Array]";function B(L,q,I){var H=L.constructor;switch(q){case x:return e(L);case l:case u:return new H(+L);case C:return n(L,I);case _:case S:case b:case k:case N:case j:case M:case P:case O:return o(L,I);case c:return new H;case p:case m:return new H(L);case h:return r(L);case f:return new H;case y:return s(L)}}return Jf=B,Jf}var eh,o1;function FN(){if(o1)return eh;o1=1;var e=Mn(),n=Object.create,r=(function(){function s(){}return function(o){if(!e(o))return{};if(n)return n(o);s.prototype=o;var l=new s;return s.prototype=void 0,l}})();return eh=r,eh}var th,a1;function zN(){if(a1)return th;a1=1;var e=FN(),n=hu(),r=fu();function s(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return th=s,th}var nh,l1;function mq(){if(l1)return nh;l1=1;var e=Ks(),n=hr(),r="[object Map]";function s(o){return n(o)&&e(o)==r}return nh=s,nh}var rh,u1;function gq(){if(u1)return rh;u1=1;var e=mq(),n=du(),r=kv(),s=r&&r.isMap,o=s?n(s):e;return rh=o,rh}var ih,c1;function vq(){if(c1)return ih;c1=1;var e=Ks(),n=hr(),r="[object Set]";function s(o){return n(o)&&e(o)==r}return ih=s,ih}var sh,d1;function yq(){if(d1)return sh;d1=1;var e=vq(),n=du(),r=kv(),s=r&&r.isSet,o=s?n(s):e;return sh=o,sh}var oh,f1;function BN(){if(f1)return oh;f1=1;var e=au(),n=Sv(),r=uu(),s=eq(),o=rq(),l=TN(),u=AN(),c=iq(),p=sq(),h=qN(),f=oq(),m=Ks(),y=cq(),x=pq(),C=zN(),_=bt(),S=Ys(),b=gq(),k=Mn(),N=yq(),j=mi(),M=Zi(),P=1,O=2,B=4,L="[object Arguments]",q="[object Array]",I="[object Boolean]",H="[object Date]",X="[object Error]",T="[object Function]",K="[object GeneratorFunction]",U="[object Map]",ee="[object Number]",J="[object Object]",F="[object RegExp]",G="[object Set]",E="[object String]",$="[object Symbol]",se="[object WeakMap]",D="[object ArrayBuffer]",Q="[object DataView]",te="[object Float32Array]",oe="[object Float64Array]",ue="[object Int8Array]",ge="[object Int16Array]",ce="[object Int32Array]",Me="[object Uint8Array]",Fe="[object Uint8ClampedArray]",Pe="[object Uint16Array]",Te="[object Uint32Array]",ke={};ke[L]=ke[q]=ke[D]=ke[Q]=ke[I]=ke[H]=ke[te]=ke[oe]=ke[ue]=ke[ge]=ke[ce]=ke[U]=ke[ee]=ke[J]=ke[F]=ke[G]=ke[E]=ke[$]=ke[Me]=ke[Fe]=ke[Pe]=ke[Te]=!0,ke[X]=ke[T]=ke[se]=!1;function Ye(ye,we,ze,at,gt,Xe){var $e,Qe=we&P,ht=we&O,vt=we&B;if(ze&&($e=gt?ze(ye,at,gt,Xe):ze(ye)),$e!==void 0)return $e;if(!k(ye))return ye;var lt=_(ye);if(lt){if($e=y(ye),!Qe)return u(ye,$e)}else{var yt=m(ye),Mt=yt==T||yt==K;if(S(ye))return l(ye,Qe);if(yt==J||yt==L||Mt&&!gt){if($e=ht||Mt?{}:C(ye),!Qe)return ht?p(ye,o($e,ye)):c(ye,s($e,ye))}else{if(!ke[yt])return gt?ye:{};$e=x(ye,yt,Qe)}}Xe||(Xe=new e);var Pt=Xe.get(ye);if(Pt)return Pt;Xe.set(ye,$e),N(ye)?ye.forEach(function(De){$e.add(Ye(De,we,ze,De,ye,Xe))}):b(ye)&&ye.forEach(function(De,_t){$e.set(_t,Ye(De,we,ze,_t,ye,Xe))});var Ze=vt?ht?f:h:ht?M:j,xt=lt?void 0:Ze(ye);return n(xt||ye,function(De,_t){xt&&(_t=De,De=ye[_t]),r($e,_t,Ye(De,we,ze,_t,ye,Xe))}),$e}return oh=Ye,oh}var ah,h1;function wq(){if(h1)return ah;h1=1;var e=BN(),n=4;function r(s){return e(s,n)}return ah=r,ah}var lh,p1;function Rv(){if(p1)return lh;p1=1;function e(n){return function(){return n}}return lh=e,lh}var uh,m1;function xq(){if(m1)return uh;m1=1;function e(n){return function(r,s,o){for(var l=-1,u=Object(r),c=o(r),p=c.length;p--;){var h=c[n?p:++l];if(s(u[h],h,u)===!1)break}return r}}return uh=e,uh}var ch,g1;function Tv(){if(g1)return ch;g1=1;var e=xq(),n=e();return ch=n,ch}var dh,v1;function Av(){if(v1)return dh;v1=1;var e=Tv(),n=mi();function r(s,o){return s&&e(s,o,n)}return dh=r,dh}var fh,y1;function _q(){if(y1)return fh;y1=1;var e=qr();function n(r,s){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=s?u:-1,p=Object(o);(s?c--:++c<u)&&l(p[c],c,p)!==!1;);return o}}return fh=n,fh}var hh,w1;function pu(){if(w1)return hh;w1=1;var e=Av(),n=_q(),r=n(e);return hh=r,hh}var ph,x1;function Ji(){if(x1)return ph;x1=1;function e(n){return n}return ph=e,ph}var mh,_1;function UN(){if(_1)return mh;_1=1;var e=Ji();function n(r){return typeof r=="function"?r:e}return mh=n,mh}var gh,S1;function HN(){if(S1)return gh;S1=1;var e=Sv(),n=pu(),r=UN(),s=bt();function o(l,u){var c=s(l)?e:n;return c(l,r(u))}return gh=o,gh}var vh,b1;function VN(){return b1||(b1=1,vh=HN()),vh}var yh,k1;function Sq(){if(k1)return yh;k1=1;var e=pu();function n(r,s){var o=[];return e(r,function(l,u,c){s(l,u,c)&&o.push(l)}),o}return yh=n,yh}var wh,E1;function bq(){if(E1)return wh;E1=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return wh=n,wh}var xh,N1;function kq(){if(N1)return xh;N1=1;function e(n){return this.__data__.has(n)}return xh=e,xh}var _h,C1;function WN(){if(C1)return _h;C1=1;var e=_v(),n=bq(),r=kq();function s(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return s.prototype.add=s.prototype.push=n,s.prototype.has=r,_h=s,_h}var Sh,j1;function Eq(){if(j1)return Sh;j1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o;)if(r(n[s],s,n))return!0;return!1}return Sh=e,Sh}var bh,R1;function GN(){if(R1)return bh;R1=1;function e(n,r){return n.has(r)}return bh=e,bh}var kh,T1;function YN(){if(T1)return kh;T1=1;var e=WN(),n=Eq(),r=GN(),s=1,o=2;function l(u,c,p,h,f,m){var y=p&s,x=u.length,C=c.length;if(x!=C&&!(y&&C>x))return!1;var _=m.get(u),S=m.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,N=p&o?new e:void 0;for(m.set(u,c),m.set(c,u);++b<x;){var j=u[b],M=c[b];if(h)var P=y?h(M,j,b,c,u,m):h(j,M,b,u,c,m);if(P!==void 0){if(P)continue;k=!1;break}if(N){if(!n(c,function(O,B){if(!r(N,B)&&(j===O||f(j,O,p,h,m)))return N.push(B)})){k=!1;break}}else if(!(j===M||f(j,M,p,h,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return kh=l,kh}var Eh,A1;function Nq(){if(A1)return Eh;A1=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o,l){s[++r]=[l,o]}),s}return Eh=e,Eh}var Nh,I1;function Iv(){if(I1)return Nh;I1=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o){s[++r]=o}),s}return Nh=e,Nh}var Ch,M1;function Cq(){if(M1)return Ch;M1=1;var e=Gs(),n=$N(),r=Ws(),s=YN(),o=Nq(),l=Iv(),u=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",m="[object Map]",y="[object Number]",x="[object RegExp]",C="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",N=e?e.prototype:void 0,j=N?N.valueOf:void 0;function M(P,O,B,L,q,I,H){switch(B){case k:if(P.byteLength!=O.byteLength||P.byteOffset!=O.byteOffset)return!1;P=P.buffer,O=O.buffer;case b:return!(P.byteLength!=O.byteLength||!I(new n(P),new n(O)));case p:case h:case y:return r(+P,+O);case f:return P.name==O.name&&P.message==O.message;case x:case _:return P==O+"";case m:var X=o;case C:var T=L&u;if(X||(X=l),P.size!=O.size&&!T)return!1;var K=H.get(P);if(K)return K==O;L|=c,H.set(P,O);var U=s(X(P),X(O),L,q,I,H);return H.delete(P),U;case S:if(j)return j.call(P)==j.call(O)}return!1}return Ch=M,Ch}var jh,P1;function jq(){if(P1)return jh;P1=1;var e=qN(),n=1,r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c,p,h,f){var m=c&n,y=e(l),x=y.length,C=e(u),_=C.length;if(x!=_&&!m)return!1;for(var S=x;S--;){var b=y[S];if(!(m?b in u:s.call(u,b)))return!1}var k=f.get(l),N=f.get(u);if(k&&N)return k==u&&N==l;var j=!0;f.set(l,u),f.set(u,l);for(var M=m;++S<x;){b=y[S];var P=l[b],O=u[b];if(p)var B=m?p(O,P,b,u,l,f):p(P,O,b,l,u,f);if(!(B===void 0?P===O||h(P,O,c,p,f):B)){j=!1;break}M||(M=b=="constructor")}if(j&&!M){var L=l.constructor,q=u.constructor;L!=q&&"constructor"in l&&"constructor"in u&&!(typeof L=="function"&&L instanceof L&&typeof q=="function"&&q instanceof q)&&(j=!1)}return f.delete(l),f.delete(u),j}return jh=o,jh}var Rh,O1;function Rq(){if(O1)return Rh;O1=1;var e=au(),n=YN(),r=Cq(),s=jq(),o=Ks(),l=bt(),u=Ys(),c=ma(),p=1,h="[object Arguments]",f="[object Array]",m="[object Object]",y=Object.prototype,x=y.hasOwnProperty;function C(_,S,b,k,N,j){var M=l(_),P=l(S),O=M?f:o(_),B=P?f:o(S);O=O==h?m:O,B=B==h?m:B;var L=O==m,q=B==m,I=O==B;if(I&&u(_)){if(!u(S))return!1;M=!0,L=!1}if(I&&!L)return j||(j=new e),M||c(_)?n(_,S,b,k,N,j):r(_,S,O,b,k,N,j);if(!(b&p)){var H=L&&x.call(_,"__wrapped__"),X=q&&x.call(S,"__wrapped__");if(H||X){var T=H?_.value():_,K=X?S.value():S;return j||(j=new e),N(T,K,b,k,j)}}return I?(j||(j=new e),s(_,S,b,k,N,j)):!1}return Rh=C,Rh}var Th,q1;function KN(){if(q1)return Th;q1=1;var e=Rq(),n=hr();function r(s,o,l,u,c){return s===o?!0:s==null||o==null||!n(s)&&!n(o)?s!==s&&o!==o:e(s,o,l,u,r,c)}return Th=r,Th}var Ah,L1;function Tq(){if(L1)return Ah;L1=1;var e=au(),n=KN(),r=1,s=2;function o(l,u,c,p){var h=c.length,f=h,m=!p;if(l==null)return!f;for(l=Object(l);h--;){var y=c[h];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++h<f;){y=c[h];var x=y[0],C=l[x],_=y[1];if(m&&y[2]){if(C===void 0&&!(x in l))return!1}else{var S=new e;if(p)var b=p(C,_,x,l,u,S);if(!(b===void 0?n(_,C,r|s,p,S):b))return!1}}return!0}return Ah=o,Ah}var Ih,$1;function XN(){if($1)return Ih;$1=1;var e=Mn();function n(r){return r===r&&!e(r)}return Ih=n,Ih}var Mh,D1;function Aq(){if(D1)return Mh;D1=1;var e=XN(),n=mi();function r(s){for(var o=n(s),l=o.length;l--;){var u=o[l],c=s[u];o[l]=[u,c,e(c)]}return o}return Mh=r,Mh}var Ph,F1;function QN(){if(F1)return Ph;F1=1;function e(n,r){return function(s){return s==null?!1:s[n]===r&&(r!==void 0||n in Object(s))}}return Ph=e,Ph}var Oh,z1;function Iq(){if(z1)return Oh;z1=1;var e=Tq(),n=Aq(),r=QN();function s(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 Oh=s,Oh}var qh,B1;function Xs(){if(B1)return qh;B1=1;var e=Xi(),n=hr(),r="[object Symbol]";function s(o){return typeof o=="symbol"||n(o)&&e(o)==r}return qh=s,qh}var Lh,U1;function Mv(){if(U1)return Lh;U1=1;var e=bt(),n=Xs(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\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:s.test(l)||!r.test(l)||u!=null&&l in Object(u)}return Lh=o,Lh}var $h,H1;function Mq(){if(H1)return $h;H1=1;var e=_v(),n="Expected a function";function r(s,o){if(typeof s!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],p=l.cache;if(p.has(c))return p.get(c);var h=s.apply(this,u);return l.cache=p.set(c,h)||p,h};return l.cache=new(r.Cache||e),l}return r.Cache=e,$h=r,$h}var Dh,V1;function Pq(){if(V1)return Dh;V1=1;var e=Mq(),n=500;function r(s){var o=e(s,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return Dh=r,Dh}var Fh,W1;function Oq(){if(W1)return Fh;W1=1;var e=Pq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,s=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,p,h){l.push(p?h.replace(r,"$1"):c||u)}),l});return Fh=s,Fh}var zh,G1;function mu(){if(G1)return zh;G1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=Array(o);++s<o;)l[s]=r(n[s],s,n);return l}return zh=e,zh}var Bh,Y1;function qq(){if(Y1)return Bh;Y1=1;var e=Gs(),n=mu(),r=bt(),s=Xs(),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(s(c))return l?l.call(c):"";var p=c+"";return p=="0"&&1/c==-1/0?"-0":p}return Bh=u,Bh}var Uh,K1;function ZN(){if(K1)return Uh;K1=1;var e=qq();function n(r){return r==null?"":e(r)}return Uh=n,Uh}var Hh,X1;function gu(){if(X1)return Hh;X1=1;var e=bt(),n=Mv(),r=Oq(),s=ZN();function o(l,u){return e(l)?l:n(l,u)?[l]:r(s(l))}return Hh=o,Hh}var Vh,Q1;function ga(){if(Q1)return Vh;Q1=1;var e=Xs();function n(r){if(typeof r=="string"||e(r))return r;var s=r+"";return s=="0"&&1/r==-1/0?"-0":s}return Vh=n,Vh}var Wh,Z1;function vu(){if(Z1)return Wh;Z1=1;var e=gu(),n=ga();function r(s,o){o=e(o,s);for(var l=0,u=o.length;s!=null&&l<u;)s=s[n(o[l++])];return l&&l==u?s:void 0}return Wh=r,Wh}var Gh,J1;function Lq(){if(J1)return Gh;J1=1;var e=vu();function n(r,s,o){var l=r==null?void 0:e(r,s);return l===void 0?o:l}return Gh=n,Gh}var Yh,eS;function $q(){if(eS)return Yh;eS=1;function e(n,r){return n!=null&&r in Object(n)}return Yh=e,Yh}var Kh,tS;function JN(){if(tS)return Kh;tS=1;var e=gu(),n=pa(),r=bt(),s=cu(),o=bv(),l=ga();function u(c,p,h){p=e(p,c);for(var f=-1,m=p.length,y=!1;++f<m;){var x=l(p[f]);if(!(y=c!=null&&h(c,x)))break;c=c[x]}return y||++f!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&s(x,m)&&(r(c)||n(c)))}return Kh=u,Kh}var Xh,nS;function eC(){if(nS)return Xh;nS=1;var e=$q(),n=JN();function r(s,o){return s!=null&&n(s,o,e)}return Xh=r,Xh}var Qh,rS;function Dq(){if(rS)return Qh;rS=1;var e=KN(),n=Lq(),r=eC(),s=Mv(),o=XN(),l=QN(),u=ga(),c=1,p=2;function h(f,m){return s(f)&&o(m)?l(u(f),m):function(y){var x=n(y,f);return x===void 0&&x===m?r(y,f):e(m,x,c|p)}}return Qh=h,Qh}var Zh,iS;function tC(){if(iS)return Zh;iS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Zh=e,Zh}var Jh,sS;function Fq(){if(sS)return Jh;sS=1;var e=vu();function n(r){return function(s){return e(s,r)}}return Jh=n,Jh}var ep,oS;function zq(){if(oS)return ep;oS=1;var e=tC(),n=Fq(),r=Mv(),s=ga();function o(l){return r(l)?e(s(l)):n(l)}return ep=o,ep}var tp,aS;function Lr(){if(aS)return tp;aS=1;var e=Iq(),n=Dq(),r=Ji(),s=bt(),o=zq();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?s(u)?n(u[0],u[1]):e(u):o(u)}return tp=l,tp}var np,lS;function nC(){if(lS)return np;lS=1;var e=IN(),n=Sq(),r=Lr(),s=bt();function o(l,u){var c=s(l)?e:n;return c(l,r(u,3))}return np=o,np}var rp,uS;function Bq(){if(uS)return rp;uS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s,o){return s!=null&&n.call(s,o)}return rp=r,rp}var ip,cS;function rC(){if(cS)return ip;cS=1;var e=Bq(),n=JN();function r(s,o){return s!=null&&n(s,o,e)}return ip=r,ip}var sp,dS;function Uq(){if(dS)return sp;dS=1;var e=Ev(),n=Ks(),r=pa(),s=bt(),o=qr(),l=Ys(),u=fu(),c=ma(),p="[object Map]",h="[object Set]",f=Object.prototype,m=f.hasOwnProperty;function y(x){if(x==null)return!0;if(o(x)&&(s(x)||typeof x=="string"||typeof x.splice=="function"||l(x)||c(x)||r(x)))return!x.length;var C=n(x);if(C==p||C==h)return!x.size;if(u(x))return!e(x).length;for(var _ in x)if(m.call(x,_))return!1;return!0}return sp=y,sp}var op,fS;function iC(){if(fS)return op;fS=1;function e(n){return n===void 0}return op=e,op}var ap,hS;function sC(){if(hS)return ap;hS=1;var e=pu(),n=qr();function r(s,o){var l=-1,u=n(s)?Array(s.length):[];return e(s,function(c,p,h){u[++l]=o(c,p,h)}),u}return ap=r,ap}var lp,pS;function oC(){if(pS)return lp;pS=1;var e=mu(),n=Lr(),r=sC(),s=bt();function o(l,u){var c=s(l)?e:r;return c(l,n(u,3))}return lp=o,lp}var up,mS;function Hq(){if(mS)return up;mS=1;function e(n,r,s,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(s=n[++l]);++l<u;)s=r(s,n[l],l,n);return s}return up=e,up}var cp,gS;function Vq(){if(gS)return cp;gS=1;function e(n,r,s,o,l){return l(n,function(u,c,p){s=o?(o=!1,u):r(s,u,c,p)}),s}return cp=e,cp}var dp,vS;function aC(){if(vS)return dp;vS=1;var e=Hq(),n=pu(),r=Lr(),s=Vq(),o=bt();function l(u,c,p){var h=o(u)?e:s,f=arguments.length<3;return h(u,r(c,4),p,f,n)}return dp=l,dp}var fp,yS;function Wq(){if(yS)return fp;yS=1;var e=Xi(),n=bt(),r=hr(),s="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==s}return fp=o,fp}var hp,wS;function Gq(){if(wS)return hp;wS=1;var e=tC(),n=e("length");return hp=n,hp}var pp,xS;function Yq(){if(xS)return pp;xS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function p(h){return c.test(h)}return pp=p,pp}var mp,_S;function Kq(){if(_S)return mp;_S=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",p="\\ud83c[\\udffb-\\udfff]",h="(?:"+c+"|"+p+")",f="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",C=h+"?",_="["+l+"]?",S="(?:"+x+"(?:"+[f,m,y].join("|")+")"+_+C+")*",b=_+C+S,k="(?:"+[f+c+"?",c,m,y,u].join("|")+")",N=RegExp(p+"(?="+p+")|"+k+b,"g");function j(M){for(var P=N.lastIndex=0;N.test(M);)++P;return P}return mp=j,mp}var gp,SS;function Xq(){if(SS)return gp;SS=1;var e=Gq(),n=Yq(),r=Kq();function s(o){return n(o)?r(o):e(o)}return gp=s,gp}var vp,bS;function Qq(){if(bS)return vp;bS=1;var e=Ev(),n=Ks(),r=qr(),s=Wq(),o=Xq(),l="[object Map]",u="[object Set]";function c(p){if(p==null)return 0;if(r(p))return s(p)?o(p):p.length;var h=n(p);return h==l||h==u?p.size:e(p).length}return vp=c,vp}var yp,kS;function Zq(){if(kS)return yp;kS=1;var e=Sv(),n=FN(),r=Av(),s=Lr(),o=hu(),l=bt(),u=Ys(),c=fa(),p=Mn(),h=ma();function f(m,y,x){var C=l(m),_=C||u(m)||h(m);if(y=s(y,4),x==null){var S=m&&m.constructor;_?x=C?new S:[]:p(m)?x=c(S)?n(o(m)):{}:x={}}return(_?e:r)(m,function(b,k,N){return y(x,b,k,N)}),x}return yp=f,yp}var wp,ES;function Jq(){if(ES)return wp;ES=1;var e=Gs(),n=pa(),r=bt(),s=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(s&&l&&l[s])}return wp=o,wp}var xp,NS;function Pv(){if(NS)return xp;NS=1;var e=Cv(),n=Jq();function r(s,o,l,u,c){var p=-1,h=s.length;for(l||(l=n),c||(c=[]);++p<h;){var f=s[p];o>0&&l(f)?o>1?r(f,o-1,l,u,c):e(c,f):u||(c[c.length]=f)}return c}return xp=r,xp}var _p,CS;function eL(){if(CS)return _p;CS=1;function e(n,r,s){switch(s.length){case 0:return n.call(r);case 1:return n.call(r,s[0]);case 2:return n.call(r,s[0],s[1]);case 3:return n.call(r,s[0],s[1],s[2])}return n.apply(r,s)}return _p=e,_p}var Sp,jS;function lC(){if(jS)return Sp;jS=1;var e=eL(),n=Math.max;function r(s,o,l){return o=n(o===void 0?s.length-1:o,0),function(){for(var u=arguments,c=-1,p=n(u.length-o,0),h=Array(p);++c<p;)h[c]=u[o+c];c=-1;for(var f=Array(o+1);++c<o;)f[c]=u[c];return f[o]=l(h),e(s,this,f)}}return Sp=r,Sp}var bp,RS;function tL(){if(RS)return bp;RS=1;var e=Rv(),n=CN(),r=Ji(),s=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return bp=s,bp}var kp,TS;function nL(){if(TS)return kp;TS=1;var e=800,n=16,r=Date.now;function s(o){var l=0,u=0;return function(){var c=r(),p=n-(c-u);if(u=c,p>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return kp=s,kp}var Ep,AS;function uC(){if(AS)return Ep;AS=1;var e=tL(),n=nL(),r=n(e);return Ep=r,Ep}var Np,IS;function yu(){if(IS)return Np;IS=1;var e=Ji(),n=lC(),r=uC();function s(o,l){return r(n(o,l,e),o+"")}return Np=s,Np}var Cp,MS;function cC(){if(MS)return Cp;MS=1;function e(n,r,s,o){for(var l=n.length,u=s+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return Cp=e,Cp}var jp,PS;function rL(){if(PS)return jp;PS=1;function e(n){return n!==n}return jp=e,jp}var Rp,OS;function iL(){if(OS)return Rp;OS=1;function e(n,r,s){for(var o=s-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return Rp=e,Rp}var Tp,qS;function sL(){if(qS)return Tp;qS=1;var e=cC(),n=rL(),r=iL();function s(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return Tp=s,Tp}var Ap,LS;function oL(){if(LS)return Ap;LS=1;var e=sL();function n(r,s){var o=r==null?0:r.length;return!!o&&e(r,s,0)>-1}return Ap=n,Ap}var Ip,$S;function aL(){if($S)return Ip;$S=1;function e(n,r,s){for(var o=-1,l=n==null?0:n.length;++o<l;)if(s(r,n[o]))return!0;return!1}return Ip=e,Ip}var Mp,DS;function lL(){if(DS)return Mp;DS=1;function e(){}return Mp=e,Mp}var Pp,FS;function uL(){if(FS)return Pp;FS=1;var e=LN(),n=lL(),r=Iv(),s=1/0,o=e&&1/r(new e([,-0]))[1]==s?function(l){return new e(l)}:n;return Pp=o,Pp}var Op,zS;function cL(){if(zS)return Op;zS=1;var e=WN(),n=oL(),r=aL(),s=GN(),o=uL(),l=Iv(),u=200;function c(p,h,f){var m=-1,y=n,x=p.length,C=!0,_=[],S=_;if(f)C=!1,y=r;else if(x>=u){var b=h?null:o(p);if(b)return l(b);C=!1,y=s,S=new e}else S=h?[]:_;e:for(;++m<x;){var k=p[m],N=h?h(k):k;if(k=f||k!==0?k:0,C&&N===N){for(var j=S.length;j--;)if(S[j]===N)continue e;h&&S.push(N),_.push(k)}else y(S,N,f)||(S!==_&&S.push(N),_.push(k))}return _}return Op=c,Op}var qp,BS;function dC(){if(BS)return qp;BS=1;var e=qr(),n=hr();function r(s){return n(s)&&e(s)}return qp=r,qp}var Lp,US;function dL(){if(US)return Lp;US=1;var e=Pv(),n=yu(),r=cL(),s=dC(),o=n(function(l){return r(e(l,1,s,!0))});return Lp=o,Lp}var $p,HS;function fL(){if(HS)return $p;HS=1;var e=mu();function n(r,s){return e(s,function(o){return r[o]})}return $p=n,$p}var Dp,VS;function fC(){if(VS)return Dp;VS=1;var e=fL(),n=mi();function r(s){return s==null?[]:e(s,n(s))}return Dp=r,Dp}var Fp,WS;function Pn(){if(WS)return Fp;WS=1;var e;if(typeof wv=="function")try{e={clone:wq(),constant:Rv(),each:VN(),filter:nC(),has:rC(),isArray:bt(),isEmpty:Uq(),isFunction:fa(),isUndefined:iC(),keys:mi(),map:oC(),reduce:aC(),size:Qq(),transform:Zq(),union:dL(),values:fC()}}catch{}return e||(e=window._),Fp=e,Fp}var zp,GS;function Ov(){if(GS)return zp;GS=1;var e=Pn();zp=o;var n="\0",r="\0",s="";function o(f){this._isDirected=e.has(f,"directed")?f.directed:!0,this._isMultigraph=e.has(f,"multigraph")?f.multigraph:!1,this._isCompound=e.has(f,"compound")?f.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(f){return this._label=f,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultNodeLabelFn=f,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._in[m])})},o.prototype.sinks=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._out[m])})},o.prototype.setNodes=function(f,m){var y=arguments,x=this;return e.each(f,function(C){y.length>1?x.setNode(C,m):x.setNode(C)}),this},o.prototype.setNode=function(f,m){return e.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=m),this):(this._nodes[f]=arguments.length>1?m:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=r,this._children[f]={},this._children[r][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},o.prototype.node=function(f){return this._nodes[f]},o.prototype.hasNode=function(f){return e.has(this._nodes,f)},o.prototype.removeNode=function(f){var m=this;if(e.has(this._nodes,f)){var y=function(x){m.removeEdge(m._edgeObjs[x])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],e.each(this.children(f),function(x){m.setParent(x)}),delete this._children[f]),e.each(e.keys(this._in[f]),y),delete this._in[f],delete this._preds[f],e.each(e.keys(this._out[f]),y),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},o.prototype.setParent=function(f,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===f)throw new Error("Setting "+m+" as parent of "+f+" would create a cycle");this.setNode(m)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=m,this._children[m][f]=!0,this},o.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},o.prototype.parent=function(f){if(this._isCompound){var m=this._parent[f];if(m!==r)return m}},o.prototype.children=function(f){if(e.isUndefined(f)&&(f=r),this._isCompound){var m=this._children[f];if(m)return e.keys(m)}else{if(f===r)return this.nodes();if(this.hasNode(f))return[]}},o.prototype.predecessors=function(f){var m=this._preds[f];if(m)return e.keys(m)},o.prototype.successors=function(f){var m=this._sucs[f];if(m)return e.keys(m)},o.prototype.neighbors=function(f){var m=this.predecessors(f);if(m)return e.union(m,this.successors(f))},o.prototype.isLeaf=function(f){var m;return this.isDirected()?m=this.successors(f):m=this.neighbors(f),m.length===0},o.prototype.filterNodes=function(f){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){f(S)&&m.setNode(S,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var x={};function C(_){var S=y.parent(_);return S===void 0||m.hasNode(S)?(x[_]=S,S):S in x?x[S]:C(S)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,C(_))}),m},o.prototype.setDefaultEdgeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultEdgeLabelFn=f,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(f,m){var y=this,x=arguments;return e.reduce(f,function(C,_){return x.length>1?y.setEdge(C,_,m):y.setEdge(C,_),_}),this},o.prototype.setEdge=function(){var f,m,y,x,C=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(f=_.v,m=_.w,y=_.name,arguments.length===2&&(x=arguments[1],C=!0)):(f=_,m=arguments[1],y=arguments[3],arguments.length>2&&(x=arguments[2],C=!0)),f=""+f,m=""+m,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,f,m,y);if(e.has(this._edgeLabels,S))return C&&(this._edgeLabels[S]=x),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(m),this._edgeLabels[S]=C?x:this._defaultEdgeLabelFn(f,m,y);var b=p(this._isDirected,f,m,y);return f=b.v,m=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[m],f),l(this._sucs[f],m),this._in[m][S]=b,this._out[f][S]=b,this._edgeCount++,this},o.prototype.edge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return this._edgeLabels[x]},o.prototype.hasEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return e.has(this._edgeLabels,x)},o.prototype.removeEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y),C=this._edgeObjs[x];return C&&(f=C.v,m=C.w,delete this._edgeLabels[x],delete this._edgeObjs[x],u(this._preds[m],f),u(this._sucs[f],m),delete this._in[m][x],delete this._out[f][x],this._edgeCount--),this},o.prototype.inEdges=function(f,m){var y=this._in[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.v===m}):x}},o.prototype.outEdges=function(f,m){var y=this._out[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.w===m}):x}},o.prototype.nodeEdges=function(f,m){var y=this.inEdges(f,m);if(y)return y.concat(this.outEdges(f,m))};function l(f,m){f[m]?f[m]++:f[m]=1}function u(f,m){--f[m]||delete f[m]}function c(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}return C+s+_+s+(e.isUndefined(x)?n:x)}function p(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}var b={v:C,w:_};return x&&(b.name=x),b}function h(f,m){return c(f,m.v,m.w,m.name)}return zp}var Bp,YS;function hL(){return YS||(YS=1,Bp="2.1.8"),Bp}var Up,KS;function pL(){return KS||(KS=1,Up={Graph:Ov(),version:hL()}),Up}var Hp,XS;function mL(){if(XS)return Hp;XS=1;var e=Pn(),n=Ov();Hp={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:s(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function s(u){return e.map(u.nodes(),function(c){var p=u.node(c),h=u.parent(c),f={v:c};return e.isUndefined(p)||(f.value=p),e.isUndefined(h)||(f.parent=h),f})}function o(u){return e.map(u.edges(),function(c){var p=u.edge(c),h={v:c.v,w:c.w};return e.isUndefined(c.name)||(h.name=c.name),e.isUndefined(p)||(h.value=p),h})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(p){c.setNode(p.v,p.value),p.parent&&c.setParent(p.v,p.parent)}),e.each(u.edges,function(p){c.setEdge({v:p.v,w:p.w,name:p.name},p.value)}),c}return Hp}var Vp,QS;function gL(){if(QS)return Vp;QS=1;var e=Pn();Vp=n;function n(r){var s={},o=[],l;function u(c){e.has(s,c)||(s[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 Vp}var Wp,ZS;function hC(){if(ZS)return Wp;ZS=1;var e=Pn();Wp=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 s=this._keyIndices[r];if(s!==void 0)return this._arr[s].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,s){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:s}),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,s){var o=this._keyIndices[r];if(s>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+s);this._arr[o].priority=s,this._decrease(o)},n.prototype._heapify=function(r){var s=this._arr,o=2*r,l=o+1,u=r;o<s.length&&(u=s[o].priority<s[u].priority?o:u,l<s.length&&(u=s[l].priority<s[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var s=this._arr,o=s[r].priority,l;r!==0&&(l=r>>1,!(s[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,s){var o=this._arr,l=this._keyIndices,u=o[r],c=o[s];o[r]=c,o[s]=u,l[c.key]=r,l[u.key]=s},Wp}var Gp,JS;function pC(){if(JS)return Gp;JS=1;var e=Pn(),n=hC();Gp=s;var r=e.constant(1);function s(l,u,c,p){return o(l,String(u),c||r,p||function(h){return l.outEdges(h)})}function o(l,u,c,p){var h={},f=new n,m,y,x=function(C){var _=C.v!==m?C.v:C.w,S=h[_],b=c(C),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=m,f.decrease(_,k))};for(l.nodes().forEach(function(C){var _=C===u?0:Number.POSITIVE_INFINITY;h[C]={distance:_},f.add(C,_)});f.size()>0&&(m=f.removeMin(),y=h[m],y.distance!==Number.POSITIVE_INFINITY);)p(m).forEach(x);return h}return Gp}var Yp,eb;function vL(){if(eb)return Yp;eb=1;var e=pC(),n=Pn();Yp=r;function r(s,o,l){return n.transform(s.nodes(),function(u,c){u[c]=e(s,c,o,l)},{})}return Yp}var Kp,tb;function mC(){if(tb)return Kp;tb=1;var e=Pn();Kp=n;function n(r){var s=0,o=[],l={},u=[];function c(p){var h=l[p]={onStack:!0,lowlink:s,index:s++};if(o.push(p),r.successors(p).forEach(function(y){e.has(l,y)?l[y].onStack&&(h.lowlink=Math.min(h.lowlink,l[y].index)):(c(y),h.lowlink=Math.min(h.lowlink,l[y].lowlink))}),h.lowlink===h.index){var f=[],m;do m=o.pop(),l[m].onStack=!1,f.push(m);while(p!==m);u.push(f)}}return r.nodes().forEach(function(p){e.has(l,p)||c(p)}),u}return Kp}var Xp,nb;function yL(){if(nb)return Xp;nb=1;var e=Pn(),n=mC();Xp=r;function r(s){return e.filter(n(s),function(o){return o.length>1||o.length===1&&s.hasEdge(o[0],o[0])})}return Xp}var Qp,rb;function wL(){if(rb)return Qp;rb=1;var e=Pn();Qp=r;var n=e.constant(1);function r(o,l,u){return s(o,l||n,u||function(c){return o.outEdges(c)})}function s(o,l,u){var c={},p=o.nodes();return p.forEach(function(h){c[h]={},c[h][h]={distance:0},p.forEach(function(f){h!==f&&(c[h][f]={distance:Number.POSITIVE_INFINITY})}),u(h).forEach(function(f){var m=f.v===h?f.w:f.v,y=l(f);c[h][m]={distance:y,predecessor:h}})}),p.forEach(function(h){var f=c[h];p.forEach(function(m){var y=c[m];p.forEach(function(x){var C=y[h],_=f[x],S=y[x],b=C.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return Qp}var Zp,ib;function gC(){if(ib)return Zp;ib=1;var e=Pn();Zp=n,n.CycleException=r;function n(s){var o={},l={},u=[];function c(p){if(e.has(l,p))throw new r;e.has(o,p)||(l[p]=!0,o[p]=!0,e.each(s.predecessors(p),c),delete l[p],u.push(p))}if(e.each(s.sinks(),c),e.size(o)!==s.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Zp}var Jp,sb;function xL(){if(sb)return Jp;sb=1;var e=gC();Jp=n;function n(r){try{e(r)}catch(s){if(s instanceof e.CycleException)return!1;throw s}return!0}return Jp}var em,ob;function vC(){if(ob)return em;ob=1;var e=Pn();em=n;function n(s,o,l){e.isArray(o)||(o=[o]);var u=(s.isDirected()?s.successors:s.neighbors).bind(s),c=[],p={};return e.each(o,function(h){if(!s.hasNode(h))throw new Error("Graph does not have node: "+h);r(s,h,l==="post",p,u,c)}),c}function r(s,o,l,u,c,p){e.has(u,o)||(u[o]=!0,l||p.push(o),e.each(c(o),function(h){r(s,h,l,u,c,p)}),l&&p.push(o))}return em}var tm,ab;function _L(){if(ab)return tm;ab=1;var e=vC();tm=n;function n(r,s){return e(r,s,"post")}return tm}var nm,lb;function SL(){if(lb)return nm;lb=1;var e=vC();nm=n;function n(r,s){return e(r,s,"pre")}return nm}var rm,ub;function bL(){if(ub)return rm;ub=1;var e=Pn(),n=Ov(),r=hC();rm=s;function s(o,l){var u=new n,c={},p=new r,h;function f(y){var x=y.v===h?y.w:y.v,C=p.priority(x);if(C!==void 0){var _=l(y);_<C&&(c[x]=h,p.decrease(x,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){p.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),p.decrease(o.nodes()[0],0);for(var m=!1;p.size()>0;){if(h=p.removeMin(),e.has(c,h))u.setEdge(h,c[h]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(h).forEach(f)}return u}return rm}var im,cb;function kL(){return cb||(cb=1,im={components:gL(),dijkstra:pC(),dijkstraAll:vL(),findCycles:yL(),floydWarshall:wL(),isAcyclic:xL(),postorder:_L(),preorder:SL(),prim:bL(),tarjan:mC(),topsort:gC()}),im}var sm,db;function EL(){if(db)return sm;db=1;var e=pL();return sm={Graph:e.Graph,json:mL(),alg:kL(),version:e.version},sm}var om,fb;function Zn(){if(fb)return om;fb=1;var e;if(typeof wv=="function")try{e=EL()}catch{}return e||(e=window.graphlib),om=e,om}var am,hb;function NL(){if(hb)return am;hb=1;var e=BN(),n=1,r=4;function s(o){return e(o,n|r)}return am=s,am}var lm,pb;function wu(){if(pb)return lm;pb=1;var e=Ws(),n=qr(),r=cu(),s=Mn();function o(l,u,c){if(!s(c))return!1;var p=typeof u;return(p=="number"?n(c)&&r(u,c.length):p=="string"&&u in c)?e(c[u],l):!1}return lm=o,lm}var um,mb;function CL(){if(mb)return um;mb=1;var e=yu(),n=Ws(),r=wu(),s=Zi(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,p){c=Object(c);var h=-1,f=p.length,m=f>2?p[2]:void 0;for(m&&r(p[0],p[1],m)&&(f=1);++h<f;)for(var y=p[h],x=s(y),C=-1,_=x.length;++C<_;){var S=x[C],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return um=u,um}var cm,gb;function jL(){if(gb)return cm;gb=1;var e=Lr(),n=qr(),r=mi();function s(o){return function(l,u,c){var p=Object(l);if(!n(l)){var h=e(u,3);l=r(l),u=function(m){return h(p[m],m,p)}}var f=o(l,u,c);return f>-1?p[h?l[f]:f]:void 0}}return cm=s,cm}var dm,vb;function RL(){if(vb)return dm;vb=1;var e=/\s/;function n(r){for(var s=r.length;s--&&e.test(r.charAt(s)););return s}return dm=n,dm}var fm,yb;function TL(){if(yb)return fm;yb=1;var e=RL(),n=/^\s+/;function r(s){return s&&s.slice(0,e(s)+1).replace(n,"")}return fm=r,fm}var hm,wb;function AL(){if(wb)return hm;wb=1;var e=TL(),n=Mn(),r=Xs(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function p(h){if(typeof h=="number")return h;if(r(h))return s;if(n(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=n(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=e(h);var m=l.test(h);return m||u.test(h)?c(h.slice(2),m?2:8):o.test(h)?s:+h}return hm=p,hm}var pm,xb;function yC(){if(xb)return pm;xb=1;var e=AL(),n=1/0,r=17976931348623157e292;function s(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 pm=s,pm}var mm,_b;function IL(){if(_b)return mm;_b=1;var e=yC();function n(r){var s=e(r),o=s%1;return s===s?o?s-o:s:0}return mm=n,mm}var gm,Sb;function ML(){if(Sb)return gm;Sb=1;var e=cC(),n=Lr(),r=IL(),s=Math.max;function o(l,u,c){var p=l==null?0:l.length;if(!p)return-1;var h=c==null?0:r(c);return h<0&&(h=s(p+h,0)),e(l,n(u,3),h)}return gm=o,gm}var vm,bb;function PL(){if(bb)return vm;bb=1;var e=jL(),n=ML(),r=e(n);return vm=r,vm}var ym,kb;function wC(){if(kb)return ym;kb=1;var e=Pv();function n(r){var s=r==null?0:r.length;return s?e(r,1):[]}return ym=n,ym}var wm,Eb;function OL(){if(Eb)return wm;Eb=1;var e=Tv(),n=UN(),r=Zi();function s(o,l){return o==null?o:e(o,n(l),r)}return wm=s,wm}var xm,Nb;function qL(){if(Nb)return xm;Nb=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return xm=e,xm}var _m,Cb;function LL(){if(Cb)return _m;Cb=1;var e=lu(),n=Av(),r=Lr();function s(o,l){var u={};return l=r(l,3),n(o,function(c,p,h){e(u,p,l(c,p,h))}),u}return _m=s,_m}var Sm,jb;function qv(){if(jb)return Sm;jb=1;var e=Xs();function n(r,s,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],p=s(c);if(p!=null&&(h===void 0?p===p&&!e(p):o(p,h)))var h=p,f=c}return f}return Sm=n,Sm}var bm,Rb;function $L(){if(Rb)return bm;Rb=1;function e(n,r){return n>r}return bm=e,bm}var km,Tb;function DL(){if(Tb)return km;Tb=1;var e=qv(),n=$L(),r=Ji();function s(o){return o&&o.length?e(o,r,n):void 0}return km=s,km}var Em,Ab;function xC(){if(Ab)return Em;Ab=1;var e=lu(),n=Ws();function r(s,o,l){(l!==void 0&&!n(s[o],l)||l===void 0&&!(o in s))&&e(s,o,l)}return Em=r,Em}var Nm,Ib;function FL(){if(Ib)return Nm;Ib=1;var e=Xi(),n=hu(),r=hr(),s="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,p=u.call(Object);function h(f){if(!r(f)||e(f)!=s)return!1;var m=n(f);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==p}return Nm=h,Nm}var Cm,Mb;function _C(){if(Mb)return Cm;Mb=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return Cm=e,Cm}var jm,Pb;function zL(){if(Pb)return jm;Pb=1;var e=ha(),n=Zi();function r(s){return e(s,n(s))}return jm=r,jm}var Rm,Ob;function BL(){if(Ob)return Rm;Ob=1;var e=xC(),n=TN(),r=DN(),s=AN(),o=zN(),l=pa(),u=bt(),c=dC(),p=Ys(),h=fa(),f=Mn(),m=FL(),y=ma(),x=_C(),C=zL();function _(S,b,k,N,j,M,P){var O=x(S,k),B=x(b,k),L=P.get(B);if(L){e(S,k,L);return}var q=M?M(O,B,k+"",S,b,P):void 0,I=q===void 0;if(I){var H=u(B),X=!H&&p(B),T=!H&&!X&&y(B);q=B,H||X||T?u(O)?q=O:c(O)?q=s(O):X?(I=!1,q=n(B,!0)):T?(I=!1,q=r(B,!0)):q=[]:m(B)||l(B)?(q=O,l(O)?q=C(O):(!f(O)||h(O))&&(q=o(B))):I=!1}I&&(P.set(B,q),j(q,B,N,M,P),P.delete(B)),e(S,k,q)}return Rm=_,Rm}var Tm,qb;function UL(){if(qb)return Tm;qb=1;var e=au(),n=xC(),r=Tv(),s=BL(),o=Mn(),l=Zi(),u=_C();function c(p,h,f,m,y){p!==h&&r(h,function(x,C){if(y||(y=new e),o(x))s(p,h,C,f,c,m,y);else{var _=m?m(u(p,C),x,C+"",p,h,y):void 0;_===void 0&&(_=x),n(p,C,_)}},l)}return Tm=c,Tm}var Am,Lb;function HL(){if(Lb)return Am;Lb=1;var e=yu(),n=wu();function r(s){return e(function(o,l){var u=-1,c=l.length,p=c>1?l[c-1]:void 0,h=c>2?l[2]:void 0;for(p=s.length>3&&typeof p=="function"?(c--,p):void 0,h&&n(l[0],l[1],h)&&(p=c<3?void 0:p,c=1),o=Object(o);++u<c;){var f=l[u];f&&s(o,f,u,p)}return o})}return Am=r,Am}var Im,$b;function VL(){if($b)return Im;$b=1;var e=UL(),n=HL(),r=n(function(s,o,l){e(s,o,l)});return Im=r,Im}var Mm,Db;function SC(){if(Db)return Mm;Db=1;function e(n,r){return n<r}return Mm=e,Mm}var Pm,Fb;function WL(){if(Fb)return Pm;Fb=1;var e=qv(),n=SC(),r=Ji();function s(o){return o&&o.length?e(o,r,n):void 0}return Pm=s,Pm}var Om,zb;function GL(){if(zb)return Om;zb=1;var e=qv(),n=Lr(),r=SC();function s(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return Om=s,Om}var qm,Bb;function YL(){if(Bb)return qm;Bb=1;var e=er(),n=function(){return e.Date.now()};return qm=n,qm}var Lm,Ub;function KL(){if(Ub)return Lm;Ub=1;var e=uu(),n=gu(),r=cu(),s=Mn(),o=ga();function l(u,c,p,h){if(!s(u))return u;c=n(c,u);for(var f=-1,m=c.length,y=m-1,x=u;x!=null&&++f<m;){var C=o(c[f]),_=p;if(C==="__proto__"||C==="constructor"||C==="prototype")return u;if(f!=y){var S=x[C];_=h?h(S,C,x):void 0,_===void 0&&(_=s(S)?S:r(c[f+1])?[]:{})}e(x,C,_),x=x[C]}return u}return Lm=l,Lm}var $m,Hb;function XL(){if(Hb)return $m;Hb=1;var e=vu(),n=KL(),r=gu();function s(o,l,u){for(var c=-1,p=l.length,h={};++c<p;){var f=l[c],m=e(o,f);u(m,f)&&n(h,r(f,o),m)}return h}return $m=s,$m}var Dm,Vb;function QL(){if(Vb)return Dm;Vb=1;var e=XL(),n=eC();function r(s,o){return e(s,o,function(l,u){return n(s,u)})}return Dm=r,Dm}var Fm,Wb;function ZL(){if(Wb)return Fm;Wb=1;var e=wC(),n=lC(),r=uC();function s(o){return r(n(o,void 0,e),o+"")}return Fm=s,Fm}var zm,Gb;function JL(){if(Gb)return zm;Gb=1;var e=QL(),n=ZL(),r=n(function(s,o){return s==null?{}:e(s,o)});return zm=r,zm}var Bm,Yb;function e$(){if(Yb)return Bm;Yb=1;var e=Math.ceil,n=Math.max;function r(s,o,l,u){for(var c=-1,p=n(e((o-s)/(l||1)),0),h=Array(p);p--;)h[u?p:++c]=s,s+=l;return h}return Bm=r,Bm}var Um,Kb;function t$(){if(Kb)return Um;Kb=1;var e=e$(),n=wu(),r=yC();function s(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 Um=s,Um}var Hm,Xb;function n$(){if(Xb)return Hm;Xb=1;var e=t$(),n=e();return Hm=n,Hm}var Vm,Qb;function r$(){if(Qb)return Vm;Qb=1;function e(n,r){var s=n.length;for(n.sort(r);s--;)n[s]=n[s].value;return n}return Vm=e,Vm}var Wm,Zb;function i$(){if(Zb)return Wm;Zb=1;var e=Xs();function n(r,s){if(r!==s){var o=r!==void 0,l=r===null,u=r===r,c=e(r),p=s!==void 0,h=s===null,f=s===s,m=e(s);if(!h&&!m&&!c&&r>s||c&&p&&f&&!h&&!m||l&&p&&f||!o&&f||!u)return 1;if(!l&&!c&&!m&&r<s||m&&o&&u&&!l&&!c||h&&o&&u||!p&&u||!f)return-1}return 0}return Wm=n,Wm}var Gm,Jb;function s$(){if(Jb)return Gm;Jb=1;var e=i$();function n(r,s,o){for(var l=-1,u=r.criteria,c=s.criteria,p=u.length,h=o.length;++l<p;){var f=e(u[l],c[l]);if(f){if(l>=h)return f;var m=o[l];return f*(m=="desc"?-1:1)}}return r.index-s.index}return Gm=n,Gm}var Ym,ek;function o$(){if(ek)return Ym;ek=1;var e=mu(),n=vu(),r=Lr(),s=sC(),o=r$(),l=du(),u=s$(),c=Ji(),p=bt();function h(f,m,y){m.length?m=e(m,function(_){return p(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):m=[c];var x=-1;m=e(m,l(r));var C=s(f,function(_,S,b){var k=e(m,function(N){return N(_)});return{criteria:k,index:++x,value:_}});return o(C,function(_,S){return u(_,S,y)})}return Ym=h,Ym}var Km,tk;function a$(){if(tk)return Km;tk=1;var e=Pv(),n=o$(),r=yu(),s=wu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&s(l,u[0],u[1])?u=[]:c>2&&s(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return Km=o,Km}var Xm,nk;function l$(){if(nk)return Xm;nk=1;var e=ZN(),n=0;function r(s){var o=++n;return e(s)+o}return Xm=r,Xm}var Qm,rk;function u$(){if(rk)return Qm;rk=1;function e(n,r,s){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var p=o<u?r[o]:void 0;s(c,n[o],p)}return c}return Qm=e,Qm}var Zm,ik;function c$(){if(ik)return Zm;ik=1;var e=uu(),n=u$();function r(s,o){return n(s||[],o||[],e)}return Zm=r,Zm}var Jm,sk;function ot(){if(sk)return Jm;sk=1;var e;if(typeof wv=="function")try{e={cloneDeep:NL(),constant:Rv(),defaults:CL(),each:VN(),filter:nC(),find:PL(),flatten:wC(),forEach:HN(),forIn:OL(),has:rC(),isUndefined:iC(),last:qL(),map:oC(),mapValues:LL(),max:DL(),merge:VL(),min:WL(),minBy:GL(),now:YL(),pick:JL(),range:n$(),reduce:aC(),sortBy:a$(),uniqueId:l$(),values:fC(),zipObject:c$()}}catch{}return e||(e=window._),Jm=e,Jm}var eg,ok;function d$(){if(ok)return eg;ok=1,eg=e;function e(){var s={};s._next=s._prev=s,this._sentinel=s}e.prototype.dequeue=function(){var s=this._sentinel,o=s._prev;if(o!==s)return n(o),o},e.prototype.enqueue=function(s){var o=this._sentinel;s._prev&&s._next&&n(s),s._next=o._next,o._next._prev=s,o._next=s,s._prev=o},e.prototype.toString=function(){for(var s=[],o=this._sentinel,l=o._prev;l!==o;)s.push(JSON.stringify(l,r)),l=l._prev;return"["+s.join(", ")+"]"};function n(s){s._prev._next=s._next,s._next._prev=s._prev,delete s._next,delete s._prev}function r(s,o){if(s!=="_next"&&s!=="_prev")return o}return eg}var tg,ak;function f$(){if(ak)return tg;ak=1;var e=ot(),n=Zn().Graph,r=d$();tg=o;var s=e.constant(1);function o(h,f){if(h.nodeCount()<=1)return[];var m=c(h,f||s),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(x){return h.outEdges(x.v,x.w)}),!0)}function l(h,f,m){for(var y=[],x=f[f.length-1],C=f[0],_;h.nodeCount();){for(;_=C.dequeue();)u(h,f,m,_);for(;_=x.dequeue();)u(h,f,m,_);if(h.nodeCount()){for(var S=f.length-2;S>0;--S)if(_=f[S].dequeue(),_){y=y.concat(u(h,f,m,_,!0));break}}}return y}function u(h,f,m,y,x){var C=x?[]:void 0;return e.forEach(h.inEdges(y.v),function(_){var S=h.edge(_),b=h.node(_.v);x&&C.push({v:_.v,w:_.w}),b.out-=S,p(f,m,b)}),e.forEach(h.outEdges(y.v),function(_){var S=h.edge(_),b=_.w,k=h.node(b);k.in-=S,p(f,m,k)}),h.removeNode(y.v),C}function c(h,f){var m=new n,y=0,x=0;e.forEach(h.nodes(),function(S){m.setNode(S,{v:S,in:0,out:0})}),e.forEach(h.edges(),function(S){var b=m.edge(S.v,S.w)||0,k=f(S),N=b+k;m.setEdge(S.v,S.w,N),x=Math.max(x,m.node(S.v).out+=k),y=Math.max(y,m.node(S.w).in+=k)});var C=e.range(x+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(S){p(C,_,m.node(S))}),{graph:m,buckets:C,zeroIdx:_}}function p(h,f,m){m.out?m.in?h[m.out-m.in+f].enqueue(m):h[h.length-1].enqueue(m):h[0].enqueue(m)}return tg}var ng,lk;function h$(){if(lk)return ng;lk=1;var e=ot(),n=f$();ng={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):s(l);e.forEach(u,function(p){var h=l.edge(p);l.removeEdge(p),h.forwardName=p.name,h.reversed=!0,l.setEdge(p.w,p.v,h,e.uniqueId("rev"))});function c(p){return function(h){return p.edge(h).weight}}}function s(l){var u=[],c={},p={};function h(f){e.has(p,f)||(p[f]=!0,c[f]=!0,e.forEach(l.outEdges(f),function(m){e.has(c,m.w)?u.push(m):h(m.w)}),delete c[f])}return e.forEach(l.nodes(),h),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var p=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,p)}})}return ng}var rg,uk;function an(){if(uk)return rg;uk=1;var e=ot(),n=Zn().Graph;rg={addDummyNode:r,simplify:s,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:p,normalizeRanks:h,removeEmptyRanks:f,addBorderNode:m,maxRank:y,partition:x,time:C,notime:_};function r(S,b,k,N){var j;do j=e.uniqueId(N);while(S.hasNode(j));return k.dummy=b,S.setNode(j,k),j}function s(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var N=b.edge(k.v,k.w)||{weight:0,minlen:1},j=S.edge(k);b.setEdge(k.v,k.w,{weight:N.weight+j.weight,minlen:Math.max(N.minlen,j.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.outEdges(k),function(j){N[j.w]=(N[j.w]||0)+S.edge(j).weight}),N});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.inEdges(k),function(j){N[j.v]=(N[j.v]||0)+S.edge(j).weight}),N});return e.zipObject(S.nodes(),b)}function c(S,b){var k=S.x,N=S.y,j=b.x-k,M=b.y-N,P=S.width/2,O=S.height/2;if(!j&&!M)throw new Error("Not possible to find intersection inside of the rectangle");var B,L;return Math.abs(M)*P>Math.abs(j)*O?(M<0&&(O=-O),B=O*j/M,L=O):(j<0&&(P=-P),B=P,L=P*M/j),{x:k+B,y:N+L}}function p(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var N=S.node(k),j=N.rank;e.isUndefined(j)||(b[j][N.order]=k)}),b}function h(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var N=S.node(k);e.has(N,"rank")&&(N.rank-=b)})}function f(S){var b=e.min(e.map(S.nodes(),function(M){return S.node(M).rank})),k=[];e.forEach(S.nodes(),function(M){var P=S.node(M).rank-b;k[P]||(k[P]=[]),k[P].push(M)});var N=0,j=S.graph().nodeRankFactor;e.forEach(k,function(M,P){e.isUndefined(M)&&P%j!==0?--N:N&&e.forEach(M,function(O){S.node(O).rank+=N})})}function m(S,b,k,N){var j={width:0,height:0};return arguments.length>=4&&(j.rank=k,j.order=N),r(S,"border",j,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function x(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(N){b(N)?k.lhs.push(N):k.rhs.push(N)}),k}function C(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return rg}var ig,ck;function p$(){if(ck)return ig;ck=1;var e=ot(),n=an();ig={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){s(l,u)})}function s(l,u){var c=u.v,p=l.node(c).rank,h=u.w,f=l.node(h).rank,m=u.name,y=l.edge(u),x=y.labelRank;if(f!==p+1){l.removeEdge(u);var C,_,S;for(S=0,++p;p<f;++S,++p)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:p},C=n.addDummyNode(l,"edge",_,"_d"),p===x&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,C,{weight:y.weight},m),S===0&&l.graph().dummyChains.push(C),c=C;l.setEdge(c,h,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),p=c.edgeLabel,h;for(l.setEdge(c.edgeObj,p);c.dummy;)h=l.successors(u)[0],l.removeNode(u),p.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(p.x=c.x,p.y=c.y,p.width=c.width,p.height=c.height),u=h,c=l.node(u)})}return ig}var sg,dk;function Yl(){if(dk)return sg;dk=1;var e=ot();sg={longestPath:n,slack:r};function n(s){var o={};function l(u){var c=s.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var p=e.min(e.map(s.outEdges(u),function(h){return l(h.w)-s.edge(h).minlen}));return(p===Number.POSITIVE_INFINITY||p===void 0||p===null)&&(p=0),c.rank=p}e.forEach(s.sources(),l)}function r(s,o){return s.node(o.w).rank-s.node(o.v).rank-s.edge(o).minlen}return sg}var og,fk;function bC(){if(fk)return og;fk=1;var e=ot(),n=Zn().Graph,r=Yl().slack;og=s;function s(c){var p=new n({directed:!1}),h=c.nodes()[0],f=c.nodeCount();p.setNode(h,{});for(var m,y;o(p,c)<f;)m=l(p,c),y=p.hasNode(m.v)?r(c,m):-r(c,m),u(p,c,y);return p}function o(c,p){function h(f){e.forEach(p.nodeEdges(f),function(m){var y=m.v,x=f===y?m.w:y;!c.hasNode(x)&&!r(p,m)&&(c.setNode(x,{}),c.setEdge(f,x,{}),h(x))})}return e.forEach(c.nodes(),h),c.nodeCount()}function l(c,p){return e.minBy(p.edges(),function(h){if(c.hasNode(h.v)!==c.hasNode(h.w))return r(p,h)})}function u(c,p,h){e.forEach(c.nodes(),function(f){p.node(f).rank+=h})}return og}var ag,hk;function m$(){if(hk)return ag;hk=1;var e=ot(),n=bC(),r=Yl().slack,s=Yl().longestPath,o=Zn().alg.preorder,l=Zn().alg.postorder,u=an().simplify;ag=c,c.initLowLimValues=m,c.initCutValues=p,c.calcCutValue=f,c.leaveEdge=x,c.enterEdge=C,c.exchangeEdges=_;function c(N){N=u(N),s(N);var j=n(N);m(j),p(j,N);for(var M,P;M=x(j);)P=C(j,N,M),_(j,N,M,P)}function p(N,j){var M=l(N,N.nodes());M=M.slice(0,M.length-1),e.forEach(M,function(P){h(N,j,P)})}function h(N,j,M){var P=N.node(M),O=P.parent;N.edge(M,O).cutvalue=f(N,j,M)}function f(N,j,M){var P=N.node(M),O=P.parent,B=!0,L=j.edge(M,O),q=0;return L||(B=!1,L=j.edge(O,M)),q=L.weight,e.forEach(j.nodeEdges(M),function(I){var H=I.v===M,X=H?I.w:I.v;if(X!==O){var T=H===B,K=j.edge(I).weight;if(q+=T?K:-K,b(N,M,X)){var U=N.edge(M,X).cutvalue;q+=T?-U:U}}}),q}function m(N,j){arguments.length<2&&(j=N.nodes()[0]),y(N,{},1,j)}function y(N,j,M,P,O){var B=M,L=N.node(P);return j[P]=!0,e.forEach(N.neighbors(P),function(q){e.has(j,q)||(M=y(N,j,M,q,P))}),L.low=B,L.lim=M++,O?L.parent=O:delete L.parent,M}function x(N){return e.find(N.edges(),function(j){return N.edge(j).cutvalue<0})}function C(N,j,M){var P=M.v,O=M.w;j.hasEdge(P,O)||(P=M.w,O=M.v);var B=N.node(P),L=N.node(O),q=B,I=!1;B.lim>L.lim&&(q=L,I=!0);var H=e.filter(j.edges(),function(X){return I===k(N,N.node(X.v),q)&&I!==k(N,N.node(X.w),q)});return e.minBy(H,function(X){return r(j,X)})}function _(N,j,M,P){var O=M.v,B=M.w;N.removeEdge(O,B),N.setEdge(P.v,P.w,{}),m(N),p(N,j),S(N,j)}function S(N,j){var M=e.find(N.nodes(),function(O){return!j.node(O).parent}),P=o(N,M);P=P.slice(1),e.forEach(P,function(O){var B=N.node(O).parent,L=j.edge(O,B),q=!1;L||(L=j.edge(B,O),q=!0),j.node(O).rank=j.node(B).rank+(q?L.minlen:-L.minlen)})}function b(N,j,M){return N.hasEdge(j,M)}function k(N,j,M){return M.low<=j.lim&&j.lim<=M.lim}return ag}var lg,pk;function g$(){if(pk)return lg;pk=1;var e=Yl(),n=e.longestPath,r=bC(),s=m$();lg=o;function o(p){switch(p.graph().ranker){case"network-simplex":c(p);break;case"tight-tree":u(p);break;case"longest-path":l(p);break;default:c(p)}}var l=n;function u(p){n(p),r(p)}function c(p){s(p)}return lg}var ug,mk;function v$(){if(mk)return ug;mk=1;var e=ot();ug=n;function n(o){var l=s(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),p=c.edgeObj,h=r(o,l,p.v,p.w),f=h.path,m=h.lca,y=0,x=f[y],C=!0;u!==p.w;){if(c=o.node(u),C){for(;(x=f[y])!==m&&o.node(x).maxRank<c.rank;)y++;x===m&&(C=!1)}if(!C){for(;y<f.length-1&&o.node(x=f[y+1]).minRank<=c.rank;)y++;x=f[y]}o.setParent(u,x),u=o.successors(u)[0]}})}function r(o,l,u,c){var p=[],h=[],f=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,x;y=u;do y=o.parent(y),p.push(y);while(y&&(l[y].low>f||m>l[y].lim));for(x=y,y=c;(y=o.parent(y))!==x;)h.push(y);return{path:p.concat(h.reverse()),lca:x}}function s(o){var l={},u=0;function c(p){var h=u;e.forEach(o.children(p),c),l[p]={low:h,lim:u++}}return e.forEach(o.children(),c),l}return ug}var cg,gk;function y$(){if(gk)return cg;gk=1;var e=ot(),n=an();cg={run:r,cleanup:u};function r(c){var p=n.addDummyNode(c,"root",{},"_root"),h=o(c),f=e.max(e.values(h))-1,m=2*f+1;c.graph().nestingRoot=p,e.forEach(c.edges(),function(x){c.edge(x).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(x){s(c,p,m,y,f,h,x)}),c.graph().nodeRankFactor=m}function s(c,p,h,f,m,y,x){var C=c.children(x);if(!C.length){x!==p&&c.setEdge(p,x,{weight:0,minlen:h});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(x);c.setParent(_,x),b.borderTop=_,c.setParent(S,x),b.borderBottom=S,e.forEach(C,function(k){s(c,p,h,f,m,y,k);var N=c.node(k),j=N.borderTop?N.borderTop:k,M=N.borderBottom?N.borderBottom:k,P=N.borderTop?f:2*f,O=j!==M?1:m-y[x]+1;c.setEdge(_,j,{weight:P,minlen:O,nestingEdge:!0}),c.setEdge(M,S,{weight:P,minlen:O,nestingEdge:!0})}),c.parent(x)||c.setEdge(p,_,{weight:0,minlen:m+y[x]})}function o(c){var p={};function h(f,m){var y=c.children(f);y&&y.length&&e.forEach(y,function(x){h(x,m+1)}),p[f]=m}return e.forEach(c.children(),function(f){h(f,1)}),p}function l(c){return e.reduce(c.edges(),function(p,h){return p+c.edge(h).weight},0)}function u(c){var p=c.graph();c.removeNode(p.nestingRoot),delete p.nestingRoot,e.forEach(c.edges(),function(h){var f=c.edge(h);f.nestingEdge&&c.removeEdge(h)})}return cg}var dg,vk;function w$(){if(vk)return dg;vk=1;var e=ot(),n=an();dg=r;function r(o){function l(u){var c=o.children(u),p=o.node(u);if(c.length&&e.forEach(c,l),e.has(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var h=p.minRank,f=p.maxRank+1;h<f;++h)s(o,"borderLeft","_bl",u,p,h),s(o,"borderRight","_br",u,p,h)}}e.forEach(o.children(),l)}function s(o,l,u,c,p,h){var f={width:0,height:0,rank:h,borderType:l},m=p[l][h-1],y=n.addDummyNode(o,"border",f,u);p[l][h]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return dg}var fg,yk;function x$(){if(yk)return fg;yk=1;var e=ot();fg={adjust:n,undo:r};function n(h){var f=h.graph().rankdir.toLowerCase();(f==="lr"||f==="rl")&&s(h)}function r(h){var f=h.graph().rankdir.toLowerCase();(f==="bt"||f==="rl")&&l(h),(f==="lr"||f==="rl")&&(c(h),s(h))}function s(h){e.forEach(h.nodes(),function(f){o(h.node(f))}),e.forEach(h.edges(),function(f){o(h.edge(f))})}function o(h){var f=h.width;h.width=h.height,h.height=f}function l(h){e.forEach(h.nodes(),function(f){u(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(h){h.y=-h.y}function c(h){e.forEach(h.nodes(),function(f){p(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,p),e.has(m,"x")&&p(m)})}function p(h){var f=h.x;h.x=h.y,h.y=f}return fg}var hg,wk;function _$(){if(wk)return hg;wk=1;var e=ot();hg=n;function n(r){var s={},o=e.filter(r.nodes(),function(h){return!r.children(h).length}),l=e.max(e.map(o,function(h){return r.node(h).rank})),u=e.map(e.range(l+1),function(){return[]});function c(h){if(!e.has(s,h)){s[h]=!0;var f=r.node(h);u[f.rank].push(h),e.forEach(r.successors(h),c)}}var p=e.sortBy(o,function(h){return r.node(h).rank});return e.forEach(p,c),u}return hg}var pg,xk;function S$(){if(xk)return pg;xk=1;var e=ot();pg=n;function n(s,o){for(var l=0,u=1;u<o.length;++u)l+=r(s,o[u-1],o[u]);return l}function r(s,o,l){for(var u=e.zipObject(l,e.map(l,function(y,x){return x})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(s.outEdges(y),function(x){return{pos:u[x.w],weight:s.edge(x).weight}}),"pos")}),!0),p=1;p<l.length;)p<<=1;var h=2*p-1;p-=1;var f=e.map(new Array(h),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var x=y.pos+p;f[x]+=y.weight;for(var C=0;x>0;)x%2&&(C+=f[x+1]),x=x-1>>1,f[x]+=y.weight;m+=y.weight*C})),m}return pg}var mg,_k;function b$(){if(_k)return mg;_k=1;var e=ot();mg=n;function n(r,s){return e.map(s,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,p){var h=r.edge(p),f=r.node(p.v);return{sum:c.sum+h.weight*f.order,weight:c.weight+h.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return mg}var gg,Sk;function k$(){if(Sk)return gg;Sk=1;var e=ot();gg=n;function n(o,l){var u={};e.forEach(o,function(p,h){var f=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:h};e.isUndefined(p.barycenter)||(f.barycenter=p.barycenter,f.weight=p.weight)}),e.forEach(l.edges(),function(p){var h=u[p.v],f=u[p.w];!e.isUndefined(h)&&!e.isUndefined(f)&&(f.indegree++,h.out.push(u[p.w]))});var c=e.filter(u,function(p){return!p.indegree});return r(c)}function r(o){var l=[];function u(h){return function(f){f.merged||(e.isUndefined(f.barycenter)||e.isUndefined(h.barycenter)||f.barycenter>=h.barycenter)&&s(h,f)}}function c(h){return function(f){f.in.push(h),--f.indegree===0&&o.push(f)}}for(;o.length;){var p=o.pop();l.push(p),e.forEach(p.in.reverse(),u(p)),e.forEach(p.out,c(p))}return e.map(e.filter(l,function(h){return!h.merged}),function(h){return e.pick(h,["vs","i","barycenter","weight"])})}function s(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 gg}var vg,bk;function E$(){if(bk)return vg;bk=1;var e=ot(),n=an();vg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),p=c.lhs,h=e.sortBy(c.rhs,function(_){return-_.i}),f=[],m=0,y=0,x=0;p.sort(o(!!u)),x=s(f,h,x),e.forEach(p,function(_){x+=_.vs.length,f.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,x=s(f,h,x)});var C={vs:e.flatten(f,!0)};return y&&(C.barycenter=m/y,C.weight=y),C}function s(l,u,c){for(var p;u.length&&(p=e.last(u)).i<=c;)u.pop(),l.push(p.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 vg}var yg,kk;function N$(){if(kk)return yg;kk=1;var e=ot(),n=b$(),r=k$(),s=E$();yg=o;function o(c,p,h,f){var m=c.children(p),y=c.node(p),x=y?y.borderLeft:void 0,C=y?y.borderRight:void 0,_={};x&&(m=e.filter(m,function(M){return M!==x&&M!==C}));var S=n(c,m);e.forEach(S,function(M){if(c.children(M.v).length){var P=o(c,M.v,h,f);_[M.v]=P,e.has(P,"barycenter")&&u(M,P)}});var b=r(S,h);l(b,_);var k=s(b,f);if(x&&(k.vs=e.flatten([x,k.vs,C],!0),c.predecessors(x).length)){var N=c.node(c.predecessors(x)[0]),j=c.node(c.predecessors(C)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+N.order+j.order)/(k.weight+2),k.weight+=2}return k}function l(c,p){e.forEach(c,function(h){h.vs=e.flatten(h.vs.map(function(f){return p[f]?p[f].vs:f}),!0)})}function u(c,p){e.isUndefined(c.barycenter)?(c.barycenter=p.barycenter,c.weight=p.weight):(c.barycenter=(c.barycenter*c.weight+p.barycenter*p.weight)/(c.weight+p.weight),c.weight+=p.weight)}return yg}var wg,Ek;function C$(){if(Ek)return wg;Ek=1;var e=ot(),n=Zn().Graph;wg=r;function r(o,l,u){var c=s(o),p=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(h){return o.node(h)});return e.forEach(o.nodes(),function(h){var f=o.node(h),m=o.parent(h);(f.rank===l||f.minRank<=l&&l<=f.maxRank)&&(p.setNode(h),p.setParent(h,m||c),e.forEach(o[u](h),function(y){var x=y.v===h?y.w:y.v,C=p.edge(x,h),_=e.isUndefined(C)?0:C.weight;p.setEdge(x,h,{weight:o.edge(y).weight+_})}),e.has(f,"minRank")&&p.setNode(h,{borderLeft:f.borderLeft[l],borderRight:f.borderRight[l]}))}),p}function s(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return wg}var xg,Nk;function j$(){if(Nk)return xg;Nk=1;var e=ot();xg=n;function n(r,s,o){var l={},u;e.forEach(o,function(c){for(var p=r.parent(c),h,f;p;){if(h=r.parent(p),h?(f=l[h],l[h]=p):(f=u,u=p),f&&f!==p){s.setEdge(f,p);return}p=h}})}return xg}var _g,Ck;function R$(){if(Ck)return _g;Ck=1;var e=ot(),n=_$(),r=S$(),s=N$(),o=C$(),l=j$(),u=Zn().Graph,c=an();_g=p;function p(y){var x=c.maxRank(y),C=h(y,e.range(1,x+1),"inEdges"),_=h(y,e.range(x-1,-1,-1),"outEdges"),S=n(y);m(y,S);for(var b=Number.POSITIVE_INFINITY,k,N=0,j=0;j<4;++N,++j){f(N%2?C:_,N%4>=2),S=c.buildLayerMatrix(y);var M=r(y,S);M<b&&(j=0,k=e.cloneDeep(S),b=M)}m(y,k)}function h(y,x,C){return e.map(x,function(_){return o(y,_,C)})}function f(y,x){var C=new u;e.forEach(y,function(_){var S=_.graph().root,b=s(_,S,C,x);e.forEach(b.vs,function(k,N){_.node(k).order=N}),l(_,C,b.vs)})}function m(y,x){e.forEach(x,function(C){e.forEach(C,function(_,S){y.node(_).order=S})})}return _g}var Sg,jk;function T$(){if(jk)return Sg;jk=1;var e=ot(),n=Zn().Graph,r=an();Sg={positionX:C,findType1Conflicts:s,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:p,horizontalCompaction:h,alignCoordinates:y,findSmallestWidthAlignment:m,balance:x};function s(b,k){var N={};function j(M,P){var O=0,B=0,L=M.length,q=e.last(P);return e.forEach(P,function(I,H){var X=l(b,I),T=X?b.node(X).order:L;(X||I===q)&&(e.forEach(P.slice(B,H+1),function(K){e.forEach(b.predecessors(K),function(U){var ee=b.node(U),J=ee.order;(J<O||T<J)&&!(ee.dummy&&b.node(K).dummy)&&u(N,U,K)})}),B=H+1,O=T)}),P}return e.reduce(k,j),N}function o(b,k){var N={};function j(P,O,B,L,q){var I;e.forEach(e.range(O,B),function(H){I=P[H],b.node(I).dummy&&e.forEach(b.predecessors(I),function(X){var T=b.node(X);T.dummy&&(T.order<L||T.order>q)&&u(N,X,I)})})}function M(P,O){var B=-1,L,q=0;return e.forEach(O,function(I,H){if(b.node(I).dummy==="border"){var X=b.predecessors(I);X.length&&(L=b.node(X[0]).order,j(O,q,H,B,L),q=H,B=L)}j(O,q,O.length,L,P.length)}),O}return e.reduce(k,M),N}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(N){return b.node(N).dummy})}function u(b,k,N){if(k>N){var j=k;k=N,N=j}var M=b[k];M||(b[k]=M={}),M[N]=!0}function c(b,k,N){if(k>N){var j=k;k=N,N=j}return e.has(b[k],N)}function p(b,k,N,j){var M={},P={},O={};return e.forEach(k,function(B){e.forEach(B,function(L,q){M[L]=L,P[L]=L,O[L]=q})}),e.forEach(k,function(B){var L=-1;e.forEach(B,function(q){var I=j(q);if(I.length){I=e.sortBy(I,function(U){return O[U]});for(var H=(I.length-1)/2,X=Math.floor(H),T=Math.ceil(H);X<=T;++X){var K=I[X];P[q]===q&&L<O[K]&&!c(N,q,K)&&(P[K]=q,P[q]=M[q]=M[K],L=O[K])}}})}),{root:M,align:P}}function h(b,k,N,j,M){var P={},O=f(b,k,N,M),B=M?"borderLeft":"borderRight";function L(H,X){for(var T=O.nodes(),K=T.pop(),U={};K;)U[K]?H(K):(U[K]=!0,T.push(K),T=T.concat(X(K))),K=T.pop()}function q(H){P[H]=O.inEdges(H).reduce(function(X,T){return Math.max(X,P[T.v]+O.edge(T))},0)}function I(H){var X=O.outEdges(H).reduce(function(K,U){return Math.min(K,P[U.w]-O.edge(U))},Number.POSITIVE_INFINITY),T=b.node(H);X!==Number.POSITIVE_INFINITY&&T.borderType!==B&&(P[H]=Math.max(P[H],X))}return L(q,O.predecessors.bind(O)),L(I,O.successors.bind(O)),e.forEach(j,function(H){P[H]=P[N[H]]}),P}function f(b,k,N,j){var M=new n,P=b.graph(),O=_(P.nodesep,P.edgesep,j);return e.forEach(k,function(B){var L;e.forEach(B,function(q){var I=N[q];if(M.setNode(I),L){var H=N[L],X=M.edge(H,I);M.setEdge(H,I,Math.max(O(b,q,L),X||0))}L=q})}),M}function m(b,k){return e.minBy(e.values(k),function(N){var j=Number.NEGATIVE_INFINITY,M=Number.POSITIVE_INFINITY;return e.forIn(N,function(P,O){var B=S(b,O)/2;j=Math.max(P+B,j),M=Math.min(P-B,M)}),j-M})}function y(b,k){var N=e.values(k),j=e.min(N),M=e.max(N);e.forEach(["u","d"],function(P){e.forEach(["l","r"],function(O){var B=P+O,L=b[B],q;if(L!==k){var I=e.values(L);q=O==="l"?j-e.min(I):M-e.max(I),q&&(b[B]=e.mapValues(L,function(H){return H+q}))}})})}function x(b,k){return e.mapValues(b.ul,function(N,j){if(k)return b[k.toLowerCase()][j];var M=e.sortBy(e.map(b,j));return(M[1]+M[2])/2})}function C(b){var k=r.buildLayerMatrix(b),N=e.merge(s(b,k),o(b,k)),j={},M;e.forEach(["u","d"],function(O){M=O==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(B){B==="r"&&(M=e.map(M,function(H){return e.values(H).reverse()}));var L=(O==="u"?b.predecessors:b.successors).bind(b),q=p(b,M,N,L),I=h(b,M,q.root,q.align,B==="r");B==="r"&&(I=e.mapValues(I,function(H){return-H})),j[O+B]=I})});var P=m(b,j);return y(j,P),x(j,b.graph().align)}function _(b,k,N){return function(j,M,P){var O=j.node(M),B=j.node(P),L=0,q;if(L+=O.width/2,e.has(O,"labelpos"))switch(O.labelpos.toLowerCase()){case"l":q=-O.width/2;break;case"r":q=O.width/2;break}if(q&&(L+=N?q:-q),q=0,L+=(O.dummy?k:b)/2,L+=(B.dummy?k:b)/2,L+=B.width/2,e.has(B,"labelpos"))switch(B.labelpos.toLowerCase()){case"l":q=B.width/2;break;case"r":q=-B.width/2;break}return q&&(L+=N?q:-q),q=0,L}}function S(b,k){return b.node(k).width}return Sg}var bg,Rk;function A$(){if(Rk)return bg;Rk=1;var e=ot(),n=an(),r=T$().positionX;bg=s;function s(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,p=0;e.forEach(u,function(h){var f=e.max(e.map(h,function(m){return l.node(m).height}));e.forEach(h,function(m){l.node(m).y=p+f/2}),p+=f+c})}return bg}var kg,Tk;function I$(){if(Tk)return kg;Tk=1;var e=ot(),n=h$(),r=p$(),s=g$(),o=an().normalizeRanks,l=v$(),u=an().removeEmptyRanks,c=y$(),p=w$(),h=x$(),f=R$(),m=A$(),y=an(),x=Zn().Graph;kg=C;function C(D,Q){var te=Q&&Q.debugTiming?y.time:y.notime;te("layout",function(){var oe=te(" buildLayoutGraph",function(){return L(D)});te(" runLayout",function(){_(oe,te)}),te(" updateInputGraph",function(){S(D,oe)})})}function _(D,Q){Q(" makeSpaceForEdgeLabels",function(){q(D)}),Q(" removeSelfEdges",function(){F(D)}),Q(" acyclic",function(){n.run(D)}),Q(" nestingGraph.run",function(){c.run(D)}),Q(" rank",function(){s(y.asNonCompoundGraph(D))}),Q(" injectEdgeLabelProxies",function(){I(D)}),Q(" removeEmptyRanks",function(){u(D)}),Q(" nestingGraph.cleanup",function(){c.cleanup(D)}),Q(" normalizeRanks",function(){o(D)}),Q(" assignRankMinMax",function(){H(D)}),Q(" removeEdgeLabelProxies",function(){X(D)}),Q(" normalize.run",function(){r.run(D)}),Q(" parentDummyChains",function(){l(D)}),Q(" addBorderSegments",function(){p(D)}),Q(" order",function(){f(D)}),Q(" insertSelfEdges",function(){G(D)}),Q(" adjustCoordinateSystem",function(){h.adjust(D)}),Q(" position",function(){m(D)}),Q(" positionSelfEdges",function(){E(D)}),Q(" removeBorderNodes",function(){J(D)}),Q(" normalize.undo",function(){r.undo(D)}),Q(" fixupEdgeLabelCoords",function(){U(D)}),Q(" undoCoordinateSystem",function(){h.undo(D)}),Q(" translateGraph",function(){T(D)}),Q(" assignNodeIntersects",function(){K(D)}),Q(" reversePoints",function(){ee(D)}),Q(" acyclic.undo",function(){n.undo(D)})}function S(D,Q){e.forEach(D.nodes(),function(te){var oe=D.node(te),ue=Q.node(te);oe&&(oe.x=ue.x,oe.y=ue.y,Q.children(te).length&&(oe.width=ue.width,oe.height=ue.height))}),e.forEach(D.edges(),function(te){var oe=D.edge(te),ue=Q.edge(te);oe.points=ue.points,e.has(ue,"x")&&(oe.x=ue.x,oe.y=ue.y)}),D.graph().width=Q.graph().width,D.graph().height=Q.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],j=["width","height"],M={width:0,height:0},P=["minlen","weight","width","height","labeloffset"],O={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},B=["labelpos"];function L(D){var Q=new x({multigraph:!0,compound:!0}),te=se(D.graph());return Q.setGraph(e.merge({},k,$(te,b),e.pick(te,N))),e.forEach(D.nodes(),function(oe){var ue=se(D.node(oe));Q.setNode(oe,e.defaults($(ue,j),M)),Q.setParent(oe,D.parent(oe))}),e.forEach(D.edges(),function(oe){var ue=se(D.edge(oe));Q.setEdge(oe,e.merge({},O,$(ue,P),e.pick(ue,B)))}),Q}function q(D){var Q=D.graph();Q.ranksep/=2,e.forEach(D.edges(),function(te){var oe=D.edge(te);oe.minlen*=2,oe.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?oe.width+=oe.labeloffset:oe.height+=oe.labeloffset)})}function I(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);if(te.width&&te.height){var oe=D.node(Q.v),ue=D.node(Q.w),ge={rank:(ue.rank-oe.rank)/2+oe.rank,e:Q};y.addDummyNode(D,"edge-proxy",ge,"_ep")}})}function H(D){var Q=0;e.forEach(D.nodes(),function(te){var oe=D.node(te);oe.borderTop&&(oe.minRank=D.node(oe.borderTop).rank,oe.maxRank=D.node(oe.borderBottom).rank,Q=e.max(Q,oe.maxRank))}),D.graph().maxRank=Q}function X(D){e.forEach(D.nodes(),function(Q){var te=D.node(Q);te.dummy==="edge-proxy"&&(D.edge(te.e).labelRank=te.rank,D.removeNode(Q))})}function T(D){var Q=Number.POSITIVE_INFINITY,te=0,oe=Number.POSITIVE_INFINITY,ue=0,ge=D.graph(),ce=ge.marginx||0,Me=ge.marginy||0;function Fe(Pe){var Te=Pe.x,ke=Pe.y,Ye=Pe.width,ye=Pe.height;Q=Math.min(Q,Te-Ye/2),te=Math.max(te,Te+Ye/2),oe=Math.min(oe,ke-ye/2),ue=Math.max(ue,ke+ye/2)}e.forEach(D.nodes(),function(Pe){Fe(D.node(Pe))}),e.forEach(D.edges(),function(Pe){var Te=D.edge(Pe);e.has(Te,"x")&&Fe(Te)}),Q-=ce,oe-=Me,e.forEach(D.nodes(),function(Pe){var Te=D.node(Pe);Te.x-=Q,Te.y-=oe}),e.forEach(D.edges(),function(Pe){var Te=D.edge(Pe);e.forEach(Te.points,function(ke){ke.x-=Q,ke.y-=oe}),e.has(Te,"x")&&(Te.x-=Q),e.has(Te,"y")&&(Te.y-=oe)}),ge.width=te-Q+ce,ge.height=ue-oe+Me}function K(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q),oe=D.node(Q.v),ue=D.node(Q.w),ge,ce;te.points?(ge=te.points[0],ce=te.points[te.points.length-1]):(te.points=[],ge=ue,ce=oe),te.points.unshift(y.intersectRect(oe,ge)),te.points.push(y.intersectRect(ue,ce))})}function U(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);if(e.has(te,"x"))switch((te.labelpos==="l"||te.labelpos==="r")&&(te.width-=te.labeloffset),te.labelpos){case"l":te.x-=te.width/2+te.labeloffset;break;case"r":te.x+=te.width/2+te.labeloffset;break}})}function ee(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);te.reversed&&te.points.reverse()})}function J(D){e.forEach(D.nodes(),function(Q){if(D.children(Q).length){var te=D.node(Q),oe=D.node(te.borderTop),ue=D.node(te.borderBottom),ge=D.node(e.last(te.borderLeft)),ce=D.node(e.last(te.borderRight));te.width=Math.abs(ce.x-ge.x),te.height=Math.abs(ue.y-oe.y),te.x=ge.x+te.width/2,te.y=oe.y+te.height/2}}),e.forEach(D.nodes(),function(Q){D.node(Q).dummy==="border"&&D.removeNode(Q)})}function F(D){e.forEach(D.edges(),function(Q){if(Q.v===Q.w){var te=D.node(Q.v);te.selfEdges||(te.selfEdges=[]),te.selfEdges.push({e:Q,label:D.edge(Q)}),D.removeEdge(Q)}})}function G(D){var Q=y.buildLayerMatrix(D);e.forEach(Q,function(te){var oe=0;e.forEach(te,function(ue,ge){var ce=D.node(ue);ce.order=ge+oe,e.forEach(ce.selfEdges,function(Me){y.addDummyNode(D,"selfedge",{width:Me.label.width,height:Me.label.height,rank:ce.rank,order:ge+ ++oe,e:Me.e,label:Me.label},"_se")}),delete ce.selfEdges})})}function E(D){e.forEach(D.nodes(),function(Q){var te=D.node(Q);if(te.dummy==="selfedge"){var oe=D.node(te.e.v),ue=oe.x+oe.width/2,ge=oe.y,ce=te.x-ue,Me=oe.height/2;D.setEdge(te.e,te.label),D.removeNode(Q),te.label.points=[{x:ue+2*ce/3,y:ge-Me},{x:ue+5*ce/6,y:ge-Me},{x:ue+ce,y:ge},{x:ue+5*ce/6,y:ge+Me},{x:ue+2*ce/3,y:ge+Me}],te.label.x=te.x,te.label.y=te.y}})}function $(D,Q){return e.mapValues(e.pick(D,Q),Number)}function se(D){var Q={};return e.forEach(D,function(te,oe){Q[oe.toLowerCase()]=te}),Q}return kg}var Eg,Ak;function M$(){if(Ak)return Eg;Ak=1;var e=ot(),n=an(),r=Zn().Graph;Eg={debugOrdering:s};function s(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,p){var h="layer"+p;u.setNode(h,{rank:"same"}),e.reduce(c,function(f,m){return u.setEdge(f,m,{style:"invis"}),m})}),u}return Eg}var Ng,Ik;function P$(){return Ik||(Ik=1,Ng="0.8.5"),Ng}var Cg,Mk;function O$(){return Mk||(Mk=1,Cg={graphlib:Zn(),layout:I$(),debug:M$(),util:{time:an().time,notime:an().notime},version:P$()}),Cg}var q$=O$();const Pk=Zg(q$),ra=240,Kl=130,zs=74,xu=72,Ok=zs+xu;function L$(e){let n=ra;for(const r of e.values())n=Math.max(n,r.width);return n}const kC=420,$$=2;function ia(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function D$(e,n){return((n==null?void 0:n.get(e))??0)>0?kC:0}function F$(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 s=n.get(e);return{w:((s==null?void 0:s.width)??ra)+D$(e,r),h:Math.max((s==null?void 0:s.height)??Kl,F$(e,r))}}function z$(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function B$(e,n,r,s,o,l){const u=new Pk.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),p=new Set(c);for(const b of c){const{w:k,h:N}=sa(b,s,l);u.setNode(b,{width:k,height:N})}for(const b of n)p.has(b.source)&&p.has(b.target)&&u.setEdge(b.source,b.target);Pk.layout(u);const h=new Map;let f=1/0,m=1/0,y=-1/0,x=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const N=s.get(b),j=(N==null?void 0:N.width)??ra,M=(N==null?void 0:N.height)??Kl,P=sa(b,s,l),O=k.x-P.w/2,B=k.y-P.h/2;h.set(b,{x:O,y:B}),O<f&&(f=O),B<m&&(m=B),O+j>y&&(y=O+j),B+M>x&&(x=B+M)}if(Number.isFinite(f)&&Number.isFinite(m))for(const[b,k]of h)h.set(b,{x:k.x-f,y:k.y-m});const C=Number.isFinite(y)?y-f:0,_=Number.isFinite(x)?x-m:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const N=s.get(b),j=(N==null?void 0:N.width)??ra,M=(N==null?void 0:N.height)??Kl;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+j,maxY:k.y+M}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+j),maxY:Math.max(S.maxY,k.y+M)}}return{positions:h,width:C,height:_,pinnedBox:S}}function U$(e,n,r={}){const s=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const k=ia(b),N=c.get(k);N?N.push(b.id):c.set(k,[b.id])}const h=Array.from(c.keys()).sort().map(b=>({sid:b,...B$(c.get(b),n,s,l,o,u)})),f=L$(l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let N=0;for(const j of h)k.length<b&&N>0&&N+j.height>m&&(k.push([]),N=0),k[k.length-1].push(j),N+=j.height+Ok;return k},x=b=>b.reduce((k,N)=>Math.max(k,N.width),0)+kC;let C=y(r.availableWidth?$$:1);C.length>1&&C.reduce((k,N)=>k+x(N),0)+f*(C.length-1)>(r.availableWidth??0)&&(C=y(1));const _=new Map;let S=0;for(const b of C){const k=x(b);let N=0;for(const{positions:j,height:M,pinnedBox:P}of b){for(const[B,L]of j)_.set(B,{x:L.x+S,y:L.y+N});let O=N+M;P&&P.maxY>O&&P.minX<S+k&&S<P.maxX&&(O=P.maxY),N=O+Ok}S+=k+f}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const N=_.get(b.id);return N?{...b,position:N}:b})}function H$(e,n,r,s,o){const u=zs+xu,c=60,p=x=>sa(x,s,o),h=new Map(e.map(x=>[x.id,ia(x)])),f=[],m=e.map(x=>({id:x.id,pos:r.get(x.id)??n.get(x.id)})).filter(x=>x.pos!=null).sort((x,C)=>x.pos.y-C.pos.y||x.pos.x-C.pos.x||x.id.localeCompare(C.id)),y=[];for(const{id:x,pos:C}of m){const{w:_,h:S}=p(x),b=h.get(x)??"_default";if(r.has(x)){f.push({x:C.x,y:C.y,w:_,h:S,sid:b});continue}let k=C.y;for(let N=0;N<f.length+1;N++){const j=f.find(M=>{const P=M.sid===b?24:c,O=M.sid===b?24:u;return C.x<M.x+M.w+P&&M.x<C.x+_+P&&k<M.y+M.h+O&&M.y<k+S+O});if(!j)break;k=j.y+j.h+(j.sid===b?24:u)}k!==C.y&&(n.set(x,{x:C.x,y:k}),y.push(x)),f.push({x:C.x,y:k,w:_,h:S,sid:b})}return y}function V$(e,n,r,s,o,l){const u=_=>sa(_,s,l),c=_=>r.get(_)??n.get(_),p=new Map;for(const _ of e){if(!c(_.id))continue;const S=ia(_),b=p.get(S);b?b.push(_):p.set(S,[_])}const h=new Set;for(const[_,S]of p)S.every(b=>o.has(b.id)&&!r.has(b.id))&&h.add(_);const f=new Map,m=[];for(const _ of e){const S=c(_.id);if(!S)continue;const{w:b,h:k}=u(_.id),N=ia(_);h.has(N)?(f.get(N)??f.set(N,[]).get(N)).push(_):m.push({x:S.x,y:S.y,w:b,h:k})}if(f.size===0)return[];const y=zs+xu,x=(_,S,b,k)=>m.some(N=>_<N.x+N.w+zs&&N.x<_+b+zs&&S<N.y+N.h+y&&N.y<S+k+y),C=[];for(const _ of[...f.keys()].sort()){const S=f.get(_);let b=1/0,k=1/0,N=-1/0,j=-1/0;for(const I of S){const H=c(I.id),{w:X,h:T}=u(I.id);b=Math.min(b,H.x),k=Math.min(k,H.y),N=Math.max(N,H.x+X),j=Math.max(j,H.y+T)}const M=N-b,P=j-k,O=[...new Set(m.map(I=>Math.round(I.x)))].sort((I,H)=>I-H),B=O.length?O:[b],L=[0,...m.map(I=>I.y+I.h+y)].sort((I,H)=>I-H);let q=null;e:for(const I of B)for(const H of L){if(H>=k)break;if(!x(I,H,M,P)){q={x:I,y:H};break e}}if(q){const I=q.x-b,H=q.y-k;for(const X of S){const T=c(X.id);n.set(X.id,{x:T.x+I,y:T.y+H})}C.push(_)}for(const I of S){const H=c(I.id),{w:X,h:T}=u(I.id);m.push({x:H.x,y:H.y,w:X,h:T})}}return C}function W$(e,n,r,s,o,l=!1,u){const h=zs+xu+1,f=8,m=1.75,y=200,x=.7,C=.01,_=q=>sa(q,s,u),S=q=>r.get(q)??n.get(q),b=new Map;for(const q of e){if(!S(q.id))continue;const I=ia(q),H=b.get(I);H?H.push(q):b.set(I,[q])}const k=[],N=new Set,j=new Set,M=o.size===0;for(const q of[...b.keys()].sort()){const I=b.get(q);let H=1/0,X=1/0,T=-1/0,K=-1/0,U=!1;for(const G of I){const E=S(G.id),{w:$,h:se}=_(G.id);H=Math.min(H,E.x),X=Math.min(X,E.y),T=Math.max(T,E.x+$),K=Math.max(K,E.y+se),r.has(G.id)&&(U=!0)}const ee=T-H,J=K-X;j.add(q);const F=o.get(q);F&&(ee>F.w+f||J>F.h+f)&&N.add(q),o.set(q,{w:ee,h:J}),k.push({sid:q,members:I.map(G=>G.id),x:H,y:X,w:ee,h:J,anchored:U,mass:1})}for(const q of[...o.keys()])j.has(q)||o.delete(q);if(l||M)return[];let P=!1;for(let q=0;q<k.length&&!P;q++)for(let I=q+1;I<k.length;I++){const H=k[q],X=k[I];if(!(H.anchored&&X.anchored)&&Math.abs(H.x+H.w/2-(X.x+X.w/2))<(H.w+X.w)/2+61&&Math.abs(H.y+H.h/2-(X.y+X.h/2))<(H.h+X.h)/2+h){P=!0;break}}if(N.size===0&&!P)return[];if(N.size>0)for(const q of k)N.has(q.sid)&&(q.mass=8);else for(const q of k)q.mass=Math.max(1,q.w*q.h/(ra*Kl));const O=new Map(k.map(q=>[q.sid,q.x])),B=new Map(k.map(q=>[q.sid,q.y]));for(let q=0;q<y;q++){const I=new Map,H=new Map;let X=0;for(let T=0;T<k.length;T++)for(let K=T+1;K<k.length;K++){const U=k[T],ee=k[K];if(U.anchored&&ee.anchored)continue;const J=U.x+U.w/2,F=U.y+U.h/2,G=ee.x+ee.w/2,E=ee.y+ee.h/2,$=(U.w+ee.w)/2+61-Math.abs(J-G),se=(U.h+ee.h)/2+h-Math.abs(F-E);if($<=0||se<=0)continue;const D=($e,Qe)=>!$e.anchored&&!(Qe<0&&$e.x<=0),Q=($e,Qe)=>!$e.anchored&&!(Qe<0&&$e.y<=0),te=($e,Qe,ht)=>{const vt=$e===Qe,lt=vt?U.sid<ee.sid?-1:1:Math.sign($e-Qe);return ht(U,lt)||ht(ee,-lt)?lt:vt&&(ht(U,-lt)||ht(ee,lt))?-lt:0},oe=te(J,G,D),ue=te(F,E,Q),ge=oe!==0,ce=ue!==0;if(!ge&&!ce)continue;const Me=ge&&(!ce||$*m<se),[Fe,Pe,Te,ke]=Me?[oe,$,I,D]:[ue,se,H,Q],Ye=ke(U,Fe),ye=ke(ee,-Fe),we=U.mass,ze=ee.mass,at=Ye?ye?ze/(we+ze):1:0,gt=ye?Ye?we/(we+ze):1:0,Xe=Pe*x;Te.set(U.sid,(Te.get(U.sid)??0)+Fe*Xe*at),Te.set(ee.sid,(Te.get(ee.sid)??0)-Fe*Xe*gt),X+=Xe}for(const T of k)T.anchored||(T.x=Math.max(0,T.x+(I.get(T.sid)??0)),T.y=Math.max(0,T.y+(H.get(T.sid)??0)));if(X<C)break}const L=[];for(const q of k){const I=q.x-O.get(q.sid),H=q.y-B.get(q.sid);if(!(Math.abs(I)<1&&Math.abs(H)<1)){for(const X of q.members){if(r.has(X))continue;const T=n.get(X);T&&n.set(X,{x:T.x+I,y:T.y+H})}L.push(q.sid)}}return L}const G$=600;function Kg(e,n){return!(e.exitAt!=null&&n-e.exitAt>G$||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function Y$(e,n){const r=new Set;for(const s of e.agents.values())Kg(s,n)&&r.add(s.id);return r}function K$(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 X$(e,n,r=0){if(!e)return!1;for(const s of n)if(K$(e,s,r))return!0;return!1}function Bi(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}function Q$(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}const Z$={agent:LP,sessionGroup:YP},J$=420,Il=18,e4=9e4,t4=200,n4=5*6e4,r4=6,i4=2*6e4,Lv="agent-dag.layout",$v="agent-dag.viewport",EC="agent-dag.summariesDismissed",NC="agent-dag.sessionListOpen",CC="agent-dag.detailOpen",jC="agent-dag.usagePanelOpen",qk="agent-dag.accountsPanelOpen",Lk="agent-dag.versionNoticeDismissed",s4=15*6e4,$k={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:"};function o4(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`}const Dk="agent-dag.autoRestart",Fk="agent-dag.bundleReloadedFor";function a4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(NC)==="1"}catch{return!1}}function l4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(NC,e?"1":"0")}catch{}}function u4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(CC)==="1"}catch{return!1}}function c4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CC,e?"1":"0")}catch{}}function d4(){if(typeof window>"u")return!0;const e=window.localStorage.getItem(jC);try{return e===null?!0:e==="1"}catch{return!0}}function f4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(jC,e?"1":"0")}catch{}}function h4(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(EC);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 zk(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(EC,JSON.stringify(r))}catch{}}function p4(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Lv);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 jg(e,n){if(!(typeof window>"u"))try{const r={};for(const[s,o]of e)r[s]=o;for(const[s,o]of n)r[s]=o;window.localStorage.setItem(Lv,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function m4(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem($v);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 g4(e){if(!(typeof window>"u"))try{window.localStorage.setItem($v,JSON.stringify(e))}catch{}}function Bk(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Lv)}catch{}try{window.localStorage.removeItem($v)}catch{}}}function v4(e,n){const r=e.agents.get(n);if(!r)return;const s=[];for(const f of e.agents.values())f.sessionId===n&&s.push(f);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:s.map(f=>({id:f.id,kind:f.kind,label:f.label,parentId:f.parentId,state:f.state,startedAt:f.startedAt,endedAt:f.endedAt,model:f.model,cwd:f.cwd,usage:f.usage,prompts:f.prompts,tools:f.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),p=document.createElement("a"),h=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");p.href=c,p.download=`agents-deck-${h}-${n.slice(0,8)}.json`,document.body.appendChild(p),p.click(),document.body.removeChild(p),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Xg={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Qg={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},y4={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function RC(e){return e.startsWith("mcp__")?"mcp":y4[e]??"other"}function TC(e,n){var s,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(s=e.cwd)!=null&&s.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 w4(e,n){if(!n)return null;const r=new Set([n]);let s=n;for(;s;){const l=e.agents.get(s);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),s=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 x4(e,n,r,s,o,l,u,c,p,h,f,m,y,x,C,_,S,b){const k=[],N=[],j=new Set;if(l)for(const I of e.agents.values())TC(I,l)&&j.add(I.id);for(const I of e.agents.values()){if(!S.has(I.id))continue;const H=l?!j.has(I.id):!1,X=I.exitAt!=null,T=_!=null&&!_.has(I.id),K=[H?"rf-dim":"",X?"rf-exiting":"",T?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,U=u.get(I.id);if(k.push({id:I.id,type:"agent",position:{x:0,y:0},data:{...I,now:n,dim:H,onOpenContext:b},className:K,...U?{width:U.width,height:U.height}:null}),I.parentId&&S.has(I.parentId)){const ee=vv(I.sessionId),J=I.state==="active"?`hsl(${ee} 80% 72%)`:`hsl(${ee} 50% 55%)`,F=l&&!j.has(I.id)&&!j.has(I.parentId),G=X,E=C.size>0&&(C.has(I.id)||C.has(I.parentId)),$=_!=null&&!_.has(I.id)&&!_.has(I.parentId),se=I.state==="active"?2:1.5,D=E?se+1.5:se,Q=F||G?.2:$?.12:1,te=[G?"rf-edge-exiting":"",E?"rf-edge-selected":""].filter(Boolean).join(" ")||void 0;N.push({id:`e:${I.parentId}->${I.id}`,source:I.parentId,target:I.id,animated:(I.state==="active"||E)&&!F&&!G,type:"smoothstep",style:{stroke:J,strokeWidth:D,opacity:Q,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:te})}}const M=new Map;for(const I of e.agents.values())I.tools.length>0&&M.set(I.id,Math.min(4,I.tools.length));const P=`${y}#lanes:${z$(M)}`,O=k.filter(I=>!o.has(I.id)&&!m.has(I.id));if(O.length>0||P!==x.current){if(O.length>0){const I=U$(k,N,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:s,lanes:M});for(const H of I)m.has(H.id)||m.set(H.id,H.position);V$(k,m,o,u,new Set(O.map(H=>H.id)),M)}H$(k,m,o,u,M),x.current=P}const B=W$(k,m,o,u,c,!h||f,M);B.length>0&&p(B),ud(m,e.agents),ud(o,e.agents),ud(u,dO(e.agents.values()));const L=[];let q=!1;for(const I of k){let H=o.get(I.id)??m.get(I.id);H||(H={x:0,y:0},m.set(I.id,H),q=!0),L.push({...I,position:H})}return q&&(x.current=""),{nodes:L,edges:N}}function _4(){return g.jsx(mv,{children:g.jsx(S4,{})})}function S4(){var _r,Ni,_a,Sa;const e=ca(),n=A.useRef(Vg()),[,r]=A.useState(0),s=A.useCallback(()=>r(W=>W+1),[]),[o,l]=A.useState(()=>new Set),[u,c]=A.useState(null),[p,h]=A.useState(null),f=A.useCallback((W,Y)=>{l(le=>{if(!Y)return new Set([W]);const fe=new Set(le);return fe.has(W)?fe.delete(W):fe.add(W),fe}),c(le=>Y&&le===W?le:W)},[]),m=A.useCallback(()=>{l(new Set),c(null)},[]),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useCallback(W=>_(W),[]),b=A.useRef(h4()),[k,N]=A.useState(a4);A.useEffect(()=>{l4(k)},[k]);const[j,M]=A.useState(u4);A.useEffect(()=>{c4(j)},[j]);const[P,O]=A.useState(d4);A.useEffect(()=>{f4(P)},[P]);const[B,L]=A.useState(()=>{try{const W=window.localStorage.getItem(qk);return W===null?!0:W==="1"}catch{return!0}});A.useEffect(()=>{try{window.localStorage.setItem(qk,B?"1":"0")}catch{}},[B]);const[q,I]=A.useState(null),[H,X]=A.useState(!1),[T,K]=A.useState(0),[U,ee]=A.useState(0);A.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(I(W.enabled===!0),K((W.foreign??[]).filter(Y=>Y.worksHere).length),ee(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const J=A.useCallback(async()=>{X(!0);try{const Y=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!q})})).json().catch(()=>null);Y!=null&&Y.ok&&I(Y.enabled===!0),fetch("/api/sound-hook").then(le=>le.ok?le.json():null).then(le=>{le!=null&&le.ok&&(K((le.foreign??[]).filter(fe=>fe.worksHere).length),ee(typeof le.parked=="number"?le.parked:0))}).catch(()=>{})}catch{}finally{X(!1)}},[q]),[F,G]=A.useState(!1),[E,$]=A.useState(null),[se,D]=A.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(Lk)??""}catch{return""}}),[Q,te]=A.useState(!1),oe=A.useRef(0),ue=A.useCallback((W=!1)=>{W&&(oe.current=Date.now()),fetch(W?"/api/version?refresh=1":"/api/version").then(Y=>Y.ok?Y.json():null).then(Y=>{Y&&$(Y)}).catch(()=>{})},[]),ge=A.useCallback(()=>{ue(Date.now()-oe.current>=s4)},[ue]);A.useEffect(()=>{ue();const W=window.setInterval(ge,5*6e4),Y=()=>{document.visibilityState==="visible"&&ge()};return document.addEventListener("visibilitychange",Y),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",Y)}},[ue,ge]),A.useEffect(()=>{F&&ue()},[F,ue]);const ce=(E==null?void 0:E.notice)??null,Me=ce?`${ce.kind}:${ce.to}`:"",Fe=ce!=null&&se!==Me,Pe=A.useCallback(()=>{if(!ce)return;const W=se===Me?"":Me;D(W);try{window.localStorage.setItem(Lk,W)}catch{}},[ce,Me,se]),Te=((_r=E==null?void 0:E.upgrade)==null?void 0:_r.state)??"idle",ke=A.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ue()},[ue]);A.useEffect(()=>{if(Te!=="running")return;const W=window.setInterval(ue,3e3);return()=>window.clearInterval(W)},[Te,ue]);const Ye=A.useCallback(async()=>{var le;const W=E==null?void 0:E.command;if(!W)return;let Y=!1;try{Y=await Promise.race([((le=navigator.clipboard)==null?void 0:le.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(fe=>window.setTimeout(()=>fe(!1),500))])}catch{Y=!1}if(!Y)try{const fe=document.createElement("textarea");fe.value=W,fe.setAttribute("readonly",""),fe.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(fe),fe.select(),Y=document.execCommand("copy"),fe.remove()}catch{Y=!1}Y&&(te(!0),window.setTimeout(()=>te(!1),1600))},[E==null?void 0:E.command]),ye=A.useCallback(()=>{N(W=>(W||L(!1),!W))},[]),we=A.useCallback(()=>{L(W=>(W||N(!1),!W))},[]),[ze,at]=A.useState(!1),[gt,Xe]=A.useState(0),$e=A.useRef(null),[Qe,ht]=A.useState(!1),vt=A.useRef(null),[lt,yt]=A.useState(0),Mt=A.useRef(mO()),[Pt,Ze]=A.useState(!1),xt=A.useCallback(()=>{const W=Mt.current,Y=W.setPaused(!W.paused);for(const le of Y)n.current=Jw(n.current,le);Ze(W.paused)},[]),[De,_t]=A.useState(Date.now()),[Ut,Ht]=A.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(Dk)!=="0"}catch{return!0}}),$t=A.useCallback(()=>{Ht(W=>{const Y=!W;try{window.localStorage.setItem(Dk,Y?"1":"0")}catch{}return Y})},[]),[Vt,On]=A.useState(!1),[qn,vn]=A.useState("restart"),[yn,ln]=A.useState(null),tr=A.useRef(!1),pr=A.useCallback(async W=>{if(tr.current)return;const Y=(W==null?void 0:W.upgrade)===!0;tr.current=!0,vn(Y?"npx":"restart"),On(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ce==null?void 0:ce.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:Y})})}catch{}window.setTimeout(()=>{if(tr.current){tr.current=!1,On(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},Y?18e4:3e4)},[ce==null?void 0:ce.to]),gi=A.useRef(null);A.useEffect(()=>{let W=!1;for(const le of n.current.agents.values())if(le.state==="active"){W=!0;break}const Y=uO({enabled:Ut,kind:ce==null?void 0:ce.kind,canRestart:(E==null?void 0:E.canRestart)===!0,busy:W,idleSince:gi.current,now:De});gi.current=Y.idleSince,Y.restart&&pr()},[Ut,ce==null?void 0:ce.kind,E==null?void 0:E.canRestart,De,pr]),A.useEffect(()=>{let W=null;try{W=window.sessionStorage.getItem(Fk)}catch{return}if(lO({bundle:"1.33.77",running:E==null?void 0:E.running,lastTried:W})){try{window.sessionStorage.setItem(Fk,(E==null?void 0:E.running)??"")}catch{return}window.location.reload()}},[E==null?void 0:E.running]),A.useEffect(()=>{const W=E==null?void 0:E.running;if(!W)return;let Y=null;try{Y=window.sessionStorage.getItem("agent-dag.restartPending")}catch{return}if(Y==null||Y&&Y!==W)return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}tr.current=!1,On(!1),ln(W);const le=window.setTimeout(()=>ln(null),6e3);return()=>window.clearTimeout(le)},[E==null?void 0:E.running]);const $r=A.useRef(p4()).current;A.useRef(!1);const kt=A.useRef(new Map($r.positions.filter(([W])=>$r.pins.includes(W)))),mr=A.useRef(null),wn=A.useState(()=>m4())[0],[un,nr]=A.useState(""),[es,gr]=A.useState(()=>new Set),[xn,vr]=A.useState(()=>typeof window>"u"?"dark":window.localStorage.getItem("agent-dag.theme")??"dark"),[Dr,Qs]=A.useState(!1),ts=A.useRef(null);A.useEffect(()=>{document.documentElement.dataset.theme=xn;try{window.localStorage.setItem("agent-dag.theme",xn)}catch{}},[xn]),A.useEffect(()=>{if(!wn)return;const W=window.setTimeout(()=>{try{e.setViewport(wn,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,wn]);const vi=A.useRef(!0);A.useEffect(()=>{const W=new EventSource("/events"),Y=pO(s,{now:()=>Date.now(),setTimeout:(le,fe)=>window.setTimeout(le,fe),clearTimeout:le=>window.clearTimeout(le)});return W.addEventListener("open",()=>{G(!0),Qs(!0)}),W.addEventListener("error",()=>G(!1)),W.addEventListener("replay-end",()=>{vi.current=!1,Y.flush()}),W.addEventListener("hook",le=>{try{const fe=JSON.parse(le.data);if(!Mt.current.accept(fe))return;n.current=Jw(n.current,fe),fe.replay===!0||vi.current||Date.now()-fe.receivedAt>3e4?Y.replay():Y.live()}catch{}}),()=>{W.close(),Y.cancel()}},[s]),A.useEffect(()=>{const W=setInterval(()=>{const Y=Date.now();_t(Y);let le=bP(n.current,Y,e4);_P(n.current,Y,t4,n4)&&(le=!0),SP(n.current,Y,r4,i4)&&(le=!0),le&&s()},250);return()=>clearInterval(W)},[s]);const cn=A.useRef(null),Ln=A.useRef(0),ns=420,Xt=A.useCallback((W=500)=>{try{const _e=document.querySelector(".canvas-wrap"),Ae=Array.from(document.querySelectorAll(".react-flow__node")).filter(ct=>ct.offsetWidth>0);if(!_e||Ae.length===0)return;const Oe=_e.getBoundingClientRect(),Ue=e.getViewport();if(!Number.isFinite(Ue.zoom)||Ue.zoom<=0)return;const Ge=ct=>(ct-Oe.left-Ue.x)/Ue.zoom,tt=ct=>(ct-Oe.top-Ue.y)/Ue.zoom,it=Ae.map(ct=>ct.getBoundingClientRect()),bn=Math.min(...it.map(ct=>Ge(ct.left))),Ci=Math.max(...it.map(ct=>Ge(ct.right))),zn=Math.min(...it.map(ct=>tt(ct.top))),co=Math.max(...it.map(ct=>tt(ct.bottom))),ls=Ci-bn,Yr=co-zn;if(!(ls>0&&Yr>0))return;const Gt=Math.max(.2,Math.min(1,(Oe.width-160)/(ls+ns)*.86,(Oe.height-160)/Yr*.86));e.setViewport({x:80-bn*Gt,y:Math.max(80,(Oe.height-Yr*Gt)/2)-zn*Gt,zoom:Gt},{duration:W}),Ln.current=Date.now(),window.setTimeout(()=>{try{const ct={x:80-bn*Gt,y:Math.max(80,(Oe.height-Yr*Gt)/2)-zn*Gt,zoom:Gt},fo=e.getViewport();(Math.abs(fo.zoom-Gt)>.01||Math.abs(fo.x-ct.x)>2)&&e.setViewport(ct,{duration:0})}catch{}},W+60)}catch{}},[e]),Fr=A.useRef(""),zr=A.useRef(null),yi=A.useRef(0),yr=A.useCallback(()=>{yi.current=Date.now()},[]),Br="agent-dag.autoFitDisabled",$n=A.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Br)==="1"}catch{return!1}})()),[Je,rs]=A.useState($n.current),Ur=A.useCallback(()=>{if(!$n.current){$n.current=!0,rs(!0);try{window.localStorage.setItem(Br,"1")}catch{}}},[]),is=A.useCallback(()=>{$n.current=!1,rs(!1);try{window.localStorage.removeItem(Br)}catch{}Xt(400)},[e,Xt]);A.useEffect(()=>{const W=setInterval(()=>{if($n.current||Date.now()-yi.current<800)return;const Y=n.current,le=Date.now(),fe=[];for(const Ge of Y.agents.values())Kg(Ge,le)&&fe.push({id:Ge.id});if(fe.length===0)return;const ve=e.getViewport(),_e=window.innerWidth-360,Ae=window.innerHeight-52;let Oe=!1,Ue=!1;for(const{id:Ge}of fe){const tt=Dn.current.get(Ge),it=kt.current.get(Ge)??Qt.current.get(Ge);if(!tt||!it)continue;Ue=!0;const bn=it.x*ve.zoom+ve.x,Ci=it.y*ve.zoom+ve.y,zn=(it.x+tt.width)*ve.zoom+ve.x,co=(it.y+tt.height)*ve.zoom+ve.y;if(zn>0&&bn<_e&&co>0&&Ci<Ae){Oe=!0;break}}Ue&&!Oe&&Xt(600)},1500);return()=>clearInterval(W)},[e]);const rr=A.useRef(!1),Dn=A.useRef(new Map),wi=A.useRef(0),Hr=A.useCallback(W=>{const Y=Dn.current;let le=!1;for(const fe of W.nodeInternals.values()){const ve=fe.width,_e=fe.height;if(ve==null||_e==null)continue;const Ae=Y.get(fe.id);Ae?(Math.abs(Ae.height-_e)>4||Math.abs(Ae.width-ve)>4)&&(Y.set(fe.id,{width:ve,height:_e}),le=!0):(Y.set(fe.id,{width:ve,height:_e}),le=!0)}return le&&(wi.current+=1),wi.current},[]),Wt=Ke(Hr),[Vr,dn]=A.useState(0);A.useEffect(()=>{let W=0;const Y=()=>{const fe=Dn.current;let ve=!1;for(const _e of document.querySelectorAll(".react-flow__node[data-id]")){const Ae=_e.getAttribute("data-id");if(!Ae)continue;const Oe=_e.offsetWidth,Ue=_e.offsetHeight;if(!Oe||!Ue)continue;const Ge=fe.get(Ae);(!Ge||Math.abs(Ge.width-Oe)>4||Math.abs(Ge.height-Ue)>4)&&(fe.set(Ae,{width:Oe,height:Ue}),ve=!0)}ve&&dn(_e=>_e+1)};if(rr.current)return;let le=0;return document.visibilityState==="hidden"?le=window.setTimeout(Y,32):W=requestAnimationFrame(Y),()=>{cancelAnimationFrame(W),window.clearTimeout(le)}});const Qt=A.useRef(new Map($r.positions)),Zs=A.useRef(""),Wr=A.useMemo(()=>{const W=[];for(const Y of n.current.agents.values())Kg(Y,De)&&W.push(Y.id+(Y.parentId?`>${Y.parentId}`:""));return W.sort(),`${W.join("|")}#sv${Wt}.${Vr}`},[n.current,n.current.lastSeq,De,Wt,Vr]),ir=A.useRef(null);A.useEffect(()=>(ir.current!=null&&window.clearTimeout(ir.current),ir.current=window.setTimeout(()=>{jg(Qt.current,kt.current)},1500),()=>{ir.current!=null&&window.clearTimeout(ir.current)}),[Wr]),A.useEffect(()=>{if(Fr.current===Wr)return;const W=Fr.current;if(Fr.current=Wr,!W||$n.current)return;Date.now()-Ln.current>1200&&Xt(400),cn.current&&window.clearTimeout(cn.current),cn.current=window.setTimeout(()=>{$n.current||Xt(500)},280)},[Wr,e,Xt]);const Gr=A.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const Y of o){const le=w4(n.current,Y);if(le)for(const fe of le)W.add(fe)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),wr=A.useMemo(()=>Y$(n.current,De),[n.current,n.current.lastSeq,De]),xi=A.useRef(null),[ss,va]=A.useState({w:0,h:0});A.useEffect(()=>{const W=xi.current;if(!W||typeof ResizeObserver>"u")return;const Y=new ResizeObserver(le=>{var ve;const fe=(ve=le[0])==null?void 0:ve.contentRect;fe&&va(_e=>Math.abs(_e.w-fe.width)>40||Math.abs(_e.h-fe.height)>40?{w:fe.width,h:fe.height}:_e)});return Y.observe(W),va({w:W.clientWidth,h:W.clientHeight}),()=>Y.disconnect()},[]);const Js=A.useRef(new Map),[eo,to]=A.useState(!1);A.useEffect(()=>{const W=window.setTimeout(()=>to(!0),2500);return()=>window.clearTimeout(W)},[]);const[_i,no]=A.useState(!1),_n=A.useRef(null),[Be,ro]=A.useState(!1),ya=A.useCallback(()=>{_n.current&&(window.clearTimeout(_n.current),_n.current=null),no(!1)},[]),io=A.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{no(!0),_n.current&&window.clearTimeout(_n.current),_n.current=window.setTimeout(()=>no(!1),J$+80)})},[]);A.useEffect(()=>()=>{_n.current&&window.clearTimeout(_n.current)},[]);const so=ss.w>0?ss.w*.92:0,oo=ss.h>0?ss.h:0,{nodes:Sn,edges:ao}=A.useMemo(()=>x4(n.current,De,so,oo,kt.current,un,Dn.current,Js.current,io,eo,Be,Qt.current,Wr,Zs,o,Gr,wr,S),[n.current,n.current.lastSeq,De,so,oo,eo,Be,un,Wr,o,Gr,wr,S,gt]),Si=A.useMemo(()=>{const W=new Map;for(const le of Sn){const fe=le.data;if(!(fe!=null&&fe.sessionId)||fe.exitAt!=null)continue;const ve=le.width,_e=le.height;if(ve==null||_e==null)continue;const Ae=le.position.x,Oe=le.position.y,Ue=Ae+ve,Ge=Oe+_e,tt=W.get(fe.sessionId);tt?(tt.minX=Math.min(tt.minX,Ae),tt.minY=Math.min(tt.minY,Oe),tt.maxX=Math.max(tt.maxX,Ue),tt.maxY=Math.max(tt.maxY,Ge)):W.set(fe.sessionId,{minX:Ae,minY:Oe,maxX:Ue,maxY:Ge})}const Y=[];for(const[le,fe]of W){const ve=fe.maxX-fe.minX+Il*2,_e=fe.maxY-fe.minY+Il*2;Y.push({id:`group:${le}`,type:"sessionGroup",position:{x:fe.minX-Il,y:fe.minY-Il},data:{sessionId:le,w:ve,h:_e},width:ve,height:_e,style:{width:ve,height:_e},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return Y},[Sn,De]),sr=A.useMemo(()=>{const W=[...Si,...Sn],Y=vt.current;return!Y||Y.size===0?W:W.map(le=>{const fe=Y.get(le.id);return fe?{...le,position:fe}:le})},[Si,Sn,lt]),or=A.useMemo(()=>{if(!un)return null;const W=new Set;for(const Y of n.current.agents.values())TC(Y,un)&&W.add(Y.id);return W},[n.current,n.current.lastSeq,un]),fn=A.useMemo(()=>{const W=new Set;for(const Y of n.current.agents.values())for(const le of Y.tools)W.add(RC(le.name));return Object.keys(Xg).filter(Y=>W.has(Y))},[n.current,n.current.lastSeq]);A.useEffect(()=>{if(fn.length<=1){ht(!1);return}let W=0;const Y=()=>{const le=$e.current;if(le&&!document.hidden){const fe=le.getBoundingClientRect(),ve=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ae=>Ae.getBoundingClientRect()),_e=X$(fe,ve,8);ht(Ae=>Ae===_e?Ae:_e)}W=window.setTimeout(Y,300)};return Y(),()=>window.clearTimeout(W)},[fn.length]);const Fn=A.useMemo(()=>{const W=new Map;for(const le of n.current.agents.values())for(const fe of le.tools){if(!fe.name.startsWith("mcp__"))continue;const ve=fe.name.slice(5),_e=ve.indexOf("__"),Ae=_e>0?ve.slice(0,_e):ve;W.set(Ae,(W.get(Ae)??0)+1)}const Y=[];for(const[le,fe]of W){let ve=5381;for(let _e=0;_e<le.length;_e++)ve=(ve<<5)+ve^le.charCodeAt(_e);Y.push({server:le,count:fe,hue:Math.abs(ve)%360})}return Y.sort((le,fe)=>fe.count-le.count),Y},[n.current,n.current.lastSeq]),bi=A.useCallback(W=>{gr(Y=>{const le=new Set(Y);return le.has(W)?le.delete(W):le.add(W),le})},[]),ut=u?n.current.agents.get(u):null,wa=p?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===p)??null:null,os=A.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Vg(),kt.current.clear(),Dn.current.clear(),Qt.current.clear(),Zs.current="",Bk(),m(),s()},[s,m]),xr=A.useCallback(()=>{kt.current.clear(),Qt.current.clear(),Zs.current="",Bk(),s(),window.setTimeout(()=>Xt(500),80)},[s,e,Xt]),xa=A.useCallback(()=>Xt(500),[Xt]),lo=A.useRef(Sn);lo.current=Sn;const ki=A.useRef(u);ki.current=u;const as=A.useCallback(W=>{const Y=lo.current;if(Y.length===0)return;const le=Y.slice().sort((Oe,Ue)=>Oe.position.y-Ue.position.y||Oe.position.x-Ue.position.x),fe=ki.current,ve=fe?le.findIndex(Oe=>Oe.id===fe):-1;let _e;ve===-1?_e=W===1?0:le.length-1:_e=(ve+W+le.length)%le.length;const Ae=le[_e];Ae&&(f(Ae.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[Ae]})}catch{}Ln.current=Date.now()},30))},[f,e]);A.useEffect(()=>{const W=Y=>{var fe,ve;const le=((fe=Y.target)==null?void 0:fe.tagName)==="INPUT";if(Y.key==="Escape"){le?Y.target.blur():m();return}if(!le&&!cO(Y)){if(Y.key==="/"){Y.preventDefault(),(ve=ts.current)==null||ve.focus();return}Y.key===" "&&(Y.preventDefault(),xt()),(Y.key==="c"||Y.key==="C")&&os(),(Y.key==="r"||Y.key==="R")&&xr(),(Y.key==="f"||Y.key==="F")&&xa(),(Y.key==="l"||Y.key==="L")&&ye(),(Y.key==="h"||Y.key==="H")&&at(_e=>!_e),(Y.key==="u"||Y.key==="U")&&O(_e=>!_e),(Y.key==="a"||Y.key==="A")&&we(),(Y.key==="j"||Y.key==="J")&&as(1),(Y.key==="k"||Y.key==="K")&&as(-1),(Y.key==="t"||Y.key==="T")&&vr(_e=>_e==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[os,xr,xa,m,as,xt]);const uo=n.current.agents.size,Ei=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,Rt=A.useMemo(()=>{let W=0,Y=0,le=0,fe=0,ve=0,_e=0,Ae=0,Oe=0,Ue=0;for(const Ge of n.current.agents.values()){W+=Ge.usage.inputTokens,Y+=Ge.usage.outputTokens,le+=Ge.usage.cacheReadTokens,fe+=Ge.usage.cacheCreateTokens;const tt=on(Ge.usage,Ge.model);ve+=tt.total,_e+=tt.input,Ae+=tt.output,Oe+=tt.cacheRead,Ue+=tt.cacheWrite}return{inT:W,outT:Y,cacheR:le,cacheC:fe,sum:W+Y,cost:{total:ve,input:_e,output:Ae,cacheRead:Oe,cacheWrite:Ue}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),"agents-deck",ce?g.jsxs("button",{type:"button",className:"v stale",onClick:Pe,title:ce.kind==="restart"?`Running v${ce.from}; v${ce.to} is installed on disk. Restart to pick it up.`:`Running v${ce.from}; v${ce.to} is on npm.`,children:["v",ce.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):g.jsxs("button",{type:"button",className:"v",onClick:()=>ue(!0),title:E!=null&&E.checkDisabled?"Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).":`${E!=null&&E.latest?`npm has v${E.latest}`:"npm not reached yet"}${E!=null&&E.checkedAt?` · checked ${o4(De-E.checkedAt)}`:""} · click to check now`,children:["v",(E==null?void 0:E.running)??"1.33.77"]})]}),ut&&(()=>{const W=on(ut.usage,ut.model),Y=Math.max(0,((ut.endedAt??De)-ut.startedAt)/1e3),le=ut.state==="active"?Gl(W.total,Y):null,fe=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${ut.label}`,onClick:()=>{try{const ve=Sn.find(_e=>_e.id===ut.id);ve&&e.fitView({padding:.35,duration:500,nodes:[ve]}),Ln.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${ut.state}`,children:ut.state==="active"?"live":ut.state}),g.jsx("span",{className:"selected-label",children:ut.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[Ve(W.total),le?g.jsxs("span",{className:"selected-rate",children:[" · ",le]}):null]}),fe>0&&g.jsxs("span",{className:"selected-extra",children:["+",fe]}),g.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:ve=>{ve.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:ts,type:"text",placeholder:"Search agents, cwd, tools…",value:un,onChange:W=>nr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),un?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>nr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"})]}),g.jsxs("span",{className:"status",role:"status",children:[g.jsx("span",{className:`pill ${F?"live":"dead"}`,title:F?"Receiving events":"SSE disconnected",children:F?"live":"offline"}),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Ei}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:uo}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Rt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Rt.inT.toLocaleString()} out:${Rt.outT.toLocaleString()} cache-r:${Rt.cacheR.toLocaleString()} cache-c:${Rt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:Q$(Rt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Fn.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
59
|
+
burn: ${y}`:"");return g.jsxs("span",{className:"cost-meta",title:x,children:[g.jsx("b",{children:Ve(f.total)}),y&&g.jsx("span",{className:"cost-rate",children:y})]})})()]}),g.jsx(Vs,{type:"source",position:Ce.Right,style:{background:"transparent",border:"none"}})]})}function $P({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return g.jsx("span",{className:`state-pill state-${e}`,children:n})}function DP(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function FP({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const x=n-y.startedAt;if(x<0||x>=6e4)continue;const C=23-Math.floor(x/2500);C>=0&&C<24&&(l[C]+=1,u+=1)}const c=Math.max(1,...l),p=132,h=14,f=p/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:p,height:h,viewBox:`0 0 ${p} ${h}`,"aria-hidden":!0,children:l.map((y,x)=>{const C=y===0?1.5:Math.max(1.5,y/c*h),_=x===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:x*f+.4,y:h-C,width:Math.max(.5,f-1),height:C,rx:.8,className:b},x)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function da(e){const n=e.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(n){const o=n[1][0].toUpperCase()+n[1].slice(1).toLowerCase(),l=n[2].replace(/[-_]/g,".");return`${o} ${l}`}const r=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(r)return`GPT-${r[1].replace(/[-_]/g,".")} Codex`;const s=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return s?`GPT-${s[1].replace(/[-_]/g,".")}`:e}function tx(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function zP(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 BP({tool:e,onClose:n}){A.useEffect(()=>{const s=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[n]);const r=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"dialog","aria-modal":"true",children:g.jsxs("div",{className:"modal",onClick:s=>s.stopPropagation(),children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:`status-dot ${r}`}),g.jsx("span",{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:zP(e)}),g.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("section",{className:"modal-body",children:[e.trimmed&&g.jsx("div",{className:"modal-section",children:g.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),g.jsxs("div",{className:"modal-section",children:[g.jsx("h4",{children:"Input"}),g.jsx("pre",{children:tx(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",r==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":tx(e.response??e.errorPreview)})]})]})]})})}const Cl=18,nx=26,UP=12;function HP(e){const n=new Map;for(const o of e.nodeInternals.values()){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,p=u+o.width,h=c+o.height,f=n.get(l.sessionId);f?(f.minX=Math.min(f.minX,u),f.minY=Math.min(f.minY,c),f.maxX=Math.max(f.maxX,p),f.maxY=Math.max(f.maxY,h),l.kind==="root"&&(f.label=rx(l)??f.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:p,maxY:h,label:rx(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const s=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${VP(o)}`:l.label;s.push({sessionId:o,label:c,x:l.minX-Cl,y:l.minY-Cl-nx,w:l.maxX-l.minX+Cl*2,h:l.maxY-l.minY+Cl*2+nx})}return s}function VP(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function rx(e){if(e.kind==="root")return e.label}function WP(){const{x:e,y:n,zoom:r}=uN(),s=ca(),o=Ke(HP,GP);if(o.length<=1)return null;const l=u=>{try{const c=s.getNodes().filter(p=>{const h=p.data;return(h==null?void 0:h.sessionId)===u});if(c.length===0)return;s.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=vv(u.sessionId),p={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,borderColor:`hsl(${c} 65% 55% / 0.32)`,background:`hsl(${c} 70% 50% / 0.04)`},h={position:"absolute",left:u.x*r+e+16*r,top:(u.y-UP)*r+n,color:`hsl(${c} 70% 78%)`,borderColor:`hsl(${c} 65% 55% / 0.5)`,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top"};return g.jsxs(ae.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:p,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:h,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function GP(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const s=e[r],o=n[r];if(s.sessionId!==o.sessionId||s.label!==o.label||s.x!==o.x||s.y!==o.y||s.w!==o.w||s.h!==o.h)return!1}return!0}function YP({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 wN=600,KP=4,XP=36,Gg=16,QP=60,ZP=6,ix=220,sx=96,JP=28,e3={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan",ScheduleWakeup:"other",CronCreate:"other",CronList:"other",CronDelete:"other",Monitor:"other",PushNotification:"other",RemoteTrigger:"other",ToolSearch:"other"};function t3(e){return e.startsWith("mcp__")?"mcp":e3[e]??"other"}const n3={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",shell:"⚡",exec_command:"⚡",shell_command:"⚡",write_stdin:"💻",wait:"⏳",apply_patch:"🩹",update_plan:"📋",LS:"📂",Task:"🤖",Agent:"🤖",TodoWrite:"📋",TaskCreate:"📋",TaskUpdate:"📝",TaskList:"🗂️",TaskGet:"🗂️",TaskOutput:"📤",TaskStop:"🛑",WebFetch:"🌐",WebSearch:"🔭",ToolSearch:"🧰",NotebookEdit:"📓",EnterPlanMode:"🧭",ExitPlanMode:"🏁",AskUserQuestion:"❓",ScheduleWakeup:"⏰",CronCreate:"⏰",CronList:"📅",CronDelete:"🗑️",Skill:"🎯",Workflow:"🎬",Monitor:"📡",PushNotification:"🔔",RemoteTrigger:"📡"};function ox(e){return e.startsWith("mcp__")?"🔌":n3[e]??"✨"}const r3={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 xN(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 xN(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 s=n.match(/^([^\s|;&<>(]+)/);if(!s)return null;let o=s[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function i3(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const s=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(s>=0&&s+1<r.length)return r[s+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const s3=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),o3=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function a3(e,n){return o3.has(e)||e.startsWith("mcp__")?Math.max(sx,34+n.length*7.5):sx}function l3(e,n){if(!s3.has(e))return null;const r=i3(n);if(!r)return null;const s=xN(r);return s?{emoji:r3[s]??"⚙️",label:s,category:"shell",detail:r}:null}const u3=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),ax={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:"🗄️"},lx={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 c3(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),s=r.lastIndexOf("/");return s>=0?r.slice(s+1):r}function d3(e){const n=e.toLowerCase();if(lx[n])return lx[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 s=n.slice(r+1);if(ax[s])return ax[s]}return"📄"}function f3(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const s=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return s?s[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 h3(e,n){if(!u3.has(e))return null;const r=f3(e,n);if(!r)return null;const s=c3(r);return s?{emoji:e==="LS"?"📂":d3(s),label:s,category:"file",detail:r}:null}const _N={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 SN(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 p3(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 m3(e,n){const r=SN(e);if(!r)return null;const{server:s,method:o}=r;if(!o)return null;const l=_N[s.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${s} · ${o}`}}function g3(e,n){return l3(e,n)??h3(e,n)??m3(e)}const v3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function y3(e){const n=SN(e);if(n){const s=_N[n.server.toLowerCase()];return s?{emoji:s.emoji,label:s.name}:{emoji:"🔌",label:n.server,hue:p3(n.server)}}const r=v3[e];return r?{emoji:ox(e),label:r}:{emoji:ox(e),label:e}}function w3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function x3(e,n,r){if(r==null)return 1;const s=n-r;return s<0?1:Math.max(0,1-s/wN)}function _3(e,n){const r=[],s=new Set;for(let o=e.length-1;o>=0&&r.length<n;o--){const l=e[o];s.has(l.id)||(s.add(l.id),r.push(l))}return r.reverse()}function S3(e,n,r,s,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>wN)continue;const p=s.get(c.id)??r.get(c.id);if(!p)continue;const h=_3(c.tools,KP);if(h.length===0)continue;const f=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??ix,ix),x=(m==null?void 0:m.height)??130,C=p.x,_=p.y,S=C+y,b=_+x/2;h.forEach((k,N)=>{const j=N*XP,M=C+y+QP,P=_+ZP+j,O=x3(k,l,f),B=k.inputPreview??"",L=w3(k),q=O<.999,I=y3(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:I.label,emoji:I.emoji,status:L,category:t3(k.name),mcpHue:I.hue,inputPreview:B,fade:O,fading:q,worldX:M,worldY:P,anchorX:S,anchorY:b,spawnDx:S-M,spawnDy:b-(P+Gg)});const H=g3(k.name,k.input);if(H){const X=a3(k.name,I.label),T=M+X+JP,K=P,U=M+X,ee=P+Gg;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:H.label,emoji:H.emoji,isSub:!0,status:L,category:H.category,inputPreview:H.detail??B,fade:O,fading:q,worldX:T,worldY:K,anchorX:U,anchorY:ee,spawnDx:U-T,spawnDy:0})}})}return u}function b3({agents:e,visibleAgentIds:n,positions:r,pinned:s,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:p,onOpenTool:h}){const f=S3(e,n,r,s,o,p),m=c&&c.size>0?f.filter(y=>!c.has(y.category)):f;return g.jsx(k3,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:h})}function k3({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:s}){const{x:o,y:l,zoom:u}=uN();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const p=c.anchorX*u+o,h=c.anchorY*u+l,f=(c.worldX+6)*u+o,m=(c.worldY+Gg)*u+l,y=p+(f-p)*.55,x=n!=null&&!n.has(c.agentId),C=r!=null&&!r.has(c.agentId),_=c.fade*(x||C?.14:1);return g.jsx("path",{d:`M ${p} ${h} Q ${y} ${h}, ${f} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const p=c.worldX*u+o,h=c.worldY*u+l,f={left:`${p}px`,top:`${h}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,x=s!=null,C=c.mcpHue!=null?{"--cat-accent":`hsl(${c.mcpHue} 65% 65%)`}:{},_=n!=null&&!n.has(c.agentId),S=r!=null&&!r.has(c.agentId),b=_||S?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:f,children:g.jsxs("div",{className:`tool-burst cat-${c.category} status-${c.status}${c.fading?" fading":""}${x?" clickable":""}${c.isSub?" sub":""}${b}`,style:C,title:y,role:x?"button":void 0,tabIndex:x?0:void 0,"aria-label":x?`Open ${c.toolName} ${c.status==="inflight"?"in flight":c.status} — click for details`:void 0,onClick:x?()=>s(c.toolId):void 0,onKeyDown:x?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),s(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 E3({state:e,sessionId:n,onClose:r}){const s=A.useMemo(()=>C3(e,n),[e,n]);return s?g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{className:"modal session-summary",onClick:o=>o.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:s.cwd??s.sessionId,children:s.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",s.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:s.durationLabel}),g.jsx("button",{className:"btn",onClick:r,"aria-label":"Close",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:Ve(s.cost.total)}),s.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:s.modelChips.map(o=>g.jsx("span",{className:"model-chip",title:o,children:da(o)},o))})]}),g.jsx("div",{className:"ss-hero-right",children:s.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(N3,{cost:s.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:Ve(s.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:Ve(s.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:Ve(s.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:Ve(s.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(Ms,{label:"agents",value:s.agentCount}),g.jsx(Ms,{label:"subagents",value:s.subagentCount}),g.jsx(Ms,{label:"tool calls",value:s.toolCount}),g.jsx(Ms,{label:"prompts",value:s.promptCount}),g.jsx(Ms,{label:"tokens",value:s.tokensSum.toLocaleString()}),s.errCount>0&&g.jsx(Ms,{label:"errors",value:s.errCount,tone:"err"})]}),s.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:s.topTools.map(([o,l])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:o}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${l/s.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:l})]},o))})]}),s.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:s.firstPrompt})]})]})]})}):null}function Ms({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 N3({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Ve(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function C3(e,n){const r=e.agents.get(n);if(!r)return null;const s=[];for(const N of e.agents.values())N.sessionId===n&&s.push(N);if(s.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,p=0,h=0,f=0,m=0,y,x=1/0,C=0;for(const N of s){const j=on(N.usage,N.model);o.input+=j.input,o.output+=j.output,o.cacheRead+=j.cacheRead,o.cacheWrite+=j.cacheWrite,o.total+=j.total,N.model&&l.add(N.model),N.kind==="subagent"&&m++,p+=N.prompts.length,!y&&N.prompts.length>0&&(y=N.prompts[0].text),h+=N.usage.inputTokens+N.usage.outputTokens,c+=N.toolCount,x=Math.min(x,N.startedAt),C=Math.max(C,N.endedAt??Date.now());for(const M of N.tools)u.set(M.name,(u.get(M.name)??0)+1),M.ok===!1&&f++}const _=Math.max(0,C-x),S=Math.floor(_/1e3),b=S<60?`${S}s`:S<3600?`${Math.floor(S/60)}m ${String(S%60).padStart(2,"0")}s`:`${Math.floor(S/3600)}h ${Math.floor(S%3600/60)}m`,k=Array.from(u.entries()).sort((N,j)=>j[1]-N[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:s.length,subagentCount:m,toolCount:c,promptCount:p,tokensSum:h,errCount:f,topTools:k,firstPrompt:y}}function j3(e,n){const r=[];for(const s of e.agents.values()){if(s.kind!=="root")continue;let o=s.toolCount,l=on(s.usage,s.model).total,u=s.endedAt??s.startedAt;for(const c of e.agents.values()){if(c.sessionId!==s.sessionId||c.kind==="root")continue;o+=c.toolCount,l+=on(c.usage,c.model).total;const p=c.endedAt??c.startedAt;p>u&&(u=p)}r.push({sessionId:s.sessionId,label:s.label||s.cwdBasename||"session",cwdBasename:s.cwdBasename,state:s.state,modelId:s.model,toolCount:o,cost:l,startedAt:s.startedAt,lastActivity:u})}return r.sort((s,o)=>{if(s.state!==o.state){if(s.state==="active")return-1;if(o.state==="active")return 1}return o.lastActivity-s.lastActivity}),r}function R3(e,n,r){const s=(n??r)-e;if(s<1e3)return"<1s";const o=Math.floor(s/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 T3({state:e,now:n,selectedIds:r,onSelect:s,onClose:o}){const l=A.useMemo(()=>j3(e),[e,e.lastSeq,n]),u=l.filter(c=>c.state==="active").length;return g.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h3",{children:["Sessions ",g.jsx("span",{className:"sl-count",children:l.length})]}),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(c=>{const p=r.has(c.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${c.state}${p?" selected":""}`,onClick:()=>s(c.sessionId),title:`Focus ${c.label}`,children:[g.jsx("span",{className:`sl-dot state-${c.state}`,"aria-hidden":!0}),g.jsxs("div",{className:"sl-row-body",children:[g.jsxs("div",{className:"sl-row-head",children:[g.jsx("span",{className:"sl-label",children:c.label}),c.modelId&&g.jsx("span",{className:"model-chip",title:c.modelId,children:da(c.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:c.toolCount})," tools"]}),c.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:Ve(c.cost)})}),g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(c.startedAt).toLocaleString()}`,children:R3(c.startedAt,c.state==="active"?void 0:c.lastActivity,n)})]})]})]},c.sessionId)})]})]})}function ux(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 A3(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function Ar(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function I3({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Ve(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function M3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/3600),o=Math.floor(r%3600/60);if(s>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return s>0?`${s}h ${o}m`:`${o}m`}function P3(e,n,r,s){const o=Math.max(0,n-s),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 p=100-e,h=l>0?e/l:0,f=h>0?p/h:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(f<o&&f<86400){const y=Math.floor(f/3600),x=Math.floor(f%3600/60);m.runsOutIn=y>0?`${y}h ${x}m`:`${x}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Fi({pct:e,label:n,reset:r,resetAt:s,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),h=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",f=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=s?M3(s,u):null,x=s&&o?P3(c,s,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:h},children:f})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:h,opacity:c===0?.4:1}}),x&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${x.expectedPct}%`,background:x.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(x.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,x&&g.jsx("span",{className:"qb-pace",style:{color:x.color},children:x.runsOutIn?`runs out in ${x.runsOutIn}`:x.label})]})]})}const O3=6e4;function q3(){const[e,n]=A.useState(null),[r,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/quota?refresh=1":"/api/quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),O3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function L3(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const bN=6e4;function $3(){const[e,n]=A.useState(null),[r,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),bN),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function D3(){const[e,n]=A.useState(null),r=A.useRef(null),s=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return A.useEffect(()=>(s(),r.current=window.setInterval(s,bN),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function F3({state:e,now:n,onClose:r}){var O,B;const{quota:s,loading:o,refresh:l}=q3(),{data:u,loading:c,refresh:p}=$3(),{data:h}=D3(),[f,m]=A.useState(()=>Math.floor(Date.now()/1e3));A.useEffect(()=>{const L=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(L)},[]);const{byModel:y,totalCost:x,totalTokens:C,burnRate:_}=A.useMemo(()=>{const L=new Map,q={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let I=0,H=0,X=0,T=0;for(const F of e.agents.values()){const G=F.model??"__unknown__",E=on(F.usage,F.model),$=L.get(G);$?($.inputTokens+=F.usage.inputTokens,$.outputTokens+=F.usage.outputTokens,$.cacheReadTokens+=F.usage.cacheReadTokens,$.cacheCreateTokens+=F.usage.cacheCreateTokens,$.cost.total+=E.total,$.cost.input+=E.input,$.cost.output+=E.output,$.cost.cacheRead+=E.cacheRead,$.cost.cacheWrite+=E.cacheWrite,$.agentCount++):L.set(G,{model:G,inputTokens:F.usage.inputTokens,outputTokens:F.usage.outputTokens,cacheReadTokens:F.usage.cacheReadTokens,cacheCreateTokens:F.usage.cacheCreateTokens,cost:{...E},agentCount:1}),q.total+=E.total,q.input+=E.input,q.output+=E.output,q.cacheRead+=E.cacheRead,q.cacheWrite+=E.cacheWrite,I+=F.usage.inputTokens,H+=F.usage.outputTokens,X+=F.usage.cacheReadTokens,T+=F.usage.cacheCreateTokens}const K=Array.from(L.values()).sort((F,G)=>G.cost.total-F.cost.total);let U=0,ee=0;for(const F of e.agents.values()){if(F.state!=="active")continue;const G=on(F.usage,F.model);U+=G.total,ee=Math.max(ee,((F.endedAt??n)-F.startedAt)/1e3)}const J=ee>0?Gl(U,ee):null;return{byModel:K,totalCost:q,totalTokens:{in:I,out:H,cacheR:X,cacheC:T},burnRate:J}},[e,e.lastSeq,n]),S=A.useMemo(()=>{const L=[];for(const q of e.agents.values()){if(q.kind!=="root")continue;let I=on(q.usage,q.model).total,H=q.usage.inputTokens,X=q.usage.outputTokens;for(const T of e.agents.values())T.sessionId!==q.sessionId||T.kind==="root"||(I+=on(T.usage,T.model).total,H+=T.usage.inputTokens,X+=T.usage.outputTokens);L.push({sessionId:q.sessionId,label:q.label||q.cwdBasename||"session",state:q.state,cost:I,inputTokens:H,outputTokens:X})}return L.sort((q,I)=>I.cost-q.cost).slice(0,12)},[e,e.lastSeq]),b=x.total>0,k=C.in+C.out,N=o||c,j=ux(s==null?void 0:s.fetchedAt,f),M=ux(u==null?void 0:u.fetchedAt,f),P=()=>{l(),p()};return g.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h3",{children:"Usage"}),_&&g.jsx("span",{className:"up-rate",children:_}),g.jsxs("div",{className:"up-header-right",children:[g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:P,disabled:N,title:"Refresh Claude + Codex quota",children:N?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Claude quota",j&&!o&&g.jsx("span",{className:"up-section-age",title:A3(s==null?void 0:s.source),children:j})]}),s!=null&&s.ok?g.jsxs("div",{className:"up-quota-bars",children:[s.session5hPct!=null&&g.jsx(Fi,{label:"5-hour window",pct:s.session5hPct,reset:s.session5hReset,resetAt:s.session5hResetAt,windowSec:s.session5hWindowSec,nowSec:f}),s.week7dPct!=null&&g.jsx(Fi,{label:"7-day window",pct:s.week7dPct,reset:s.week7dReset,resetAt:s.week7dResetAt,windowSec:s.week7dWindowSec,nowSec:f}),s.weekSonnetPct!=null&&g.jsx(Fi,{label:"Sonnet (7d)",pct:s.weekSonnetPct,nowSec:f}),s.weekOpusPct!=null&&g.jsx(Fi,{label:"Opus (7d)",pct:s.weekOpusPct,nowSec:f})]}):(s==null?void 0:s.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&g.jsx("span",{className:"up-plan-badge",children:u.planLabel}),M&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:M})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(O=u.windows)==null?void 0:O.map(L=>g.jsx(Fi,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,limitReached:u.limitReached&&L.pct>=100,nowSec:f},L.id)),(B=u.extraWindows)==null?void 0:B.map(L=>g.jsx(Fi,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,nowSec:f},L.id)),u.creditLimit&&g.jsx(Fi,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:f}),(h==null?void 0:h.ok)&&h.window7d&&h.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Ar(h.window7d.totalTokens)," tokens · ",h.window7d.sessionCount," session",h.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&g.jsxs("div",{className:"up-quota-sub up-reset-credits",title:"Redeem in the Codex CLI or ChatGPT — agents-deck only reports them",children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&g.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&g.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:L3(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:Ve(x.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(I3,{cost:x}),k>0&&g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Ar(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ar(C.out)]}),C.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Ar(C.cacheR)]}),C.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Ar(C.cacheC)]})]}),y.filter(L=>L.cost.total>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:y.filter(L=>L.cost.total>0).map(L=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:L.model,children:da(L.model)}),g.jsx("td",{className:"up-num",children:Ar(L.inputTokens+L.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:Ve(L.cost.total)})]},L.model))})]})]}),S.filter(L=>L.cost>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:S.filter(L=>L.cost>0).map(L=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${L.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:L.label}),g.jsx("span",{className:"up-session-tokens",children:Ar(L.inputTokens+L.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:Ve(L.cost)})]},L.sessionId))})]})]}):k>0?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Ar(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ar(C.out)]})]}),g.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const cx=18,z3=1100,Ps=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},B3=Array.from({length:cx},(e,n)=>{const r=-72+144*n/(cx-1)+(Ps(n,1)-.5)*9,s=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Ps(n,2)*.52);return{dx:Math.cos(s)*o,dy:Math.sin(s)*o,rot:(n%2?1:-1)*(100+Ps(n,3)*260),delay:Math.round(Ps(n,4)*90),dur:760+Math.round(Ps(n,5)*260),scale:.8+Ps(n,6)*.45,hue:n%4,round:n%3===0}});function dx({anchor:e,lifetimeMs:n=z3}){var l;const[r,s]=A.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return A.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();s({x:c.left+c.width/2,y:c.top+c.height/2});const p=window.setTimeout(()=>s(null),n);return()=>window.clearTimeout(p)},[e,n,o]),o||!r?null:eI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:B3.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 kN=new Set(["awaiting_url","awaiting_code","registering"]);function U3(e){return e!=null&&kN.has(e)}function H3(e){return e!=null&&e!=="done"&&!kN.has(e)}const V3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",W3="the sign-in did not complete";function G3({state:e,serverError:n,localError:r}){const s=e==="idle";return{title:s?"Sign-in ended":"Sign-in failed",message:r||n||(s?V3:W3)}}const Y3=1500;async function jl(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const K3={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 agents-deck",expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},ld=(e,n)=>(e==null?void 0:e.detail)||(e!=null&&e.reason?K3[e.reason]??e.reason:null)||(e==null?void 0:e.error)||n,Yg=ae.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"})]}));Yg.displayName="SuccessMark";function X3({onClose:e,onChanged:n}){const[r,s]=A.useState("login"),[o,l]=A.useState(null),[u,c]=A.useState(""),[p,h]=A.useState(""),[f,m]=A.useState(!1),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useRef(!1),b=A.useRef(null),k=A.useRef(null),N=A.useRef(null),j=A.useCallback(()=>{S.current&&jl({action:"login-cancel"}).catch(()=>{}),e()},[e]);A.useEffect(()=>{const I=H=>{H.key==="Escape"&&j()};return window.addEventListener("keydown",I),()=>window.removeEventListener("keydown",I)},[j]);const M=A.useCallback(async()=>{m(!0),x(null),S.current=!0;const I=await jl({action:"login"}).catch(()=>null);if(m(!1),!(I!=null&&I.ok)){x(ld(I,"could not start the sign-in"));return}l(I)},[]);A.useEffect(()=>{if(!U3(o==null?void 0:o.state))return;const I=window.setInterval(async()=>{try{const H=await fetch("/api/claude-accounts/login");H.ok&&l(await H.json())}catch{}},Y3);return()=>window.clearInterval(I)},[o]),A.useEffect(()=>{var I;(o==null?void 0:o.state)==="awaiting_code"&&((I=b.current)==null||I.focus()),(o==null?void 0:o.state)==="done"&&n()},[o==null?void 0:o.state,n]),A.useEffect(()=>{var I;r==="paste"&&((I=k.current)==null||I.focus())},[r]);const P=A.useCallback(async()=>{var H;m(!0),x(null);const I=await jl({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(I!=null&&I.ok)){x(ld(I,"the code was not accepted")),I!=null&&I.state&&l(I),(H=b.current)==null||H.select();return}c(""),l(I)},[u,o]),O=A.useCallback(async()=>{m(!0),x(null);const I=await jl({action:"import",blob:p}).catch(()=>null);if(m(!1),!(I!=null&&I.ok)){x(ld(I,"the import failed"));return}h(""),_({added:I.added===!0,num:I.num??null,email:I.email??null}),n()},[p,n]),B=(o==null?void 0:o.state)==="done"?o.account:null,L=H3(o==null?void 0:o.state)||!!(y&&S.current&&!f),q=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:j,role:"presentation",children:g.jsxs("div",{className:"modal aa-modal",onClick:I=>I.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:()=>s("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>s("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:j,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?B?g.jsxs("div",{className:"aa-done",children:[g.jsx(Yg,{ref:N}),g.jsx(dx,{anchor:N}),g.jsx("h4",{children:B.added?`Account ${B.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:B.email}),B.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:b,type:"text",value:u,onChange:I=>c(I.target.value),onKeyDown:I=>{I.key==="Enter"&&u.trim()&&!f&&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:f||!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."})]})]}):L?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:q.title}),g.jsx("p",{className:"aa-err",children:q.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),x(null),M()},children:"Try again"})]}):f||S.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",className:"btn primary",onClick:M,disabled:f,children:"Open the sign-in page"})})]}):C?g.jsxs("div",{className:"aa-done",children:[g.jsx(Yg,{ref:N}),C.added&&g.jsx(dx,{anchor:N}),g.jsx("h4",{children:C.added?`Account ${C.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:C.added?g.jsxs(g.Fragment,{children:[C.email?g.jsx("strong",{children:C.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:p,onChange:I=>h(I.target.value),onKeyDown:I=>{I.key==="Enter"&&p.trim()&&!f&&O()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!p.trim(),onClick:O,children:f?"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."]})]})})]})})}const Q3=15e3,Z3=[70,80,85,90,95];function J3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return s>0?`${s}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function fx(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 eO(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 tO(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 nO({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),s=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?J3(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:s,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:s},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}function rO(e){const n=e.map(s=>s.num),r=n.length?Math.max(...n):0;return[...new Set([...n,r+1])].sort((s,o)=>s-o)}async function iO(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(s=>window.setTimeout(()=>s(!1),500))])}catch{n=!1}if(n)return!0;try{const s=document.createElement("textarea");s.value=e,s.setAttribute("readonly",""),s.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(s),s.select(),n=document.execCommand("copy"),s.remove()}catch{n=!1}return n}function sO(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 oO({onClose:e}){var J,F,G;const[n,r]=A.useState(null),[s,o]=A.useState(null),[l,u]=A.useState(null),[c,p]=A.useState(null),[h,f]=A.useState(null),[m,y]=A.useState(()=>Math.floor(Date.now()/1e3)),x=A.useRef(null),[C,_]=A.useState(null),[S,b]=A.useState(!1),[k,N]=A.useState(""),[j,M]=A.useState(null),[P,O]=A.useState(null),[B,L]=A.useState(!1),q=A.useCallback(async(E=!1)=>{try{const[$,se]=await Promise.all([fetch(`/api/claude-accounts${E?"?refresh=1":""}`),fetch("/api/cswap-auto")]);$.ok&&r(await $.json()),se.ok&&o(await se.json())}catch{}},[]),I=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]),H=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]);A.useEffect(()=>(q(!0),x.current=window.setInterval(()=>q(!1),Q3),()=>{x.current!=null&&window.clearInterval(x.current)}),[q]),A.useEffect(()=>{const E=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(E)},[]);const X=((J=s==null?void 0:s.settings["autoswitch.threshold"])==null?void 0:J.value)??"90",T=(F=n==null?void 0:n.accounts)==null?void 0:F.find(E=>E.active),K=T!=null&&T.lanes.length?Math.max(...T.lanes.map(E=>E.pct)):null,U=K!=null&&K>=Number(X)-15,ee=async E=>{p(E),f(null);try{const se=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:E})})).json().catch(()=>null);se!=null&&se.ok||f((se==null?void 0:se.output)||(se==null?void 0:se.reason)||"switch failed"),await q(!0)}catch{f("server unreachable")}finally{p(null)}};return g.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h3",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>b(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>q(!0),title:"Reload from claude-swap",children:"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(G=n.accounts)==null?void 0:G.map(E=>g.jsxs("div",{className:`ap-account${E.active?" active":""}${E.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:E.num}),E.alias&&g.jsx("span",{className:"ap-alias",children:E.alias}),g.jsx("span",{className:"ap-email",title:E.org??void 0,children:E.email}),g.jsx("button",{type:"button",className:`ap-more${C===E.num?" on":""}`,"aria-label":`Manage account ${E.num}`,"aria-expanded":C===E.num,title:"Share, rename, move, remove",onClick:()=>{_(C===E.num?null:E.num),N(E.alias??""),M(null),O(null),L(!1)},children:"⋯"}),E.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:c!=null||E.disabled,onClick:()=>ee(E.num),title:E.disabled?"Held out of rotation":`Switch to ${E.alias??E.email}`,children:c===E.num?"…":"switch"})]}),E.lanes.length>0?E.lanes.map($=>g.jsx(nO,{lane:$,nowSec:m},$.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[E.error&&(()=>{const $=tO(E.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:$.hint,children:$.text}),$.fixable&&g.jsx("button",{type:"button",className:"ap-fix",onClick:()=>b(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((s==null?void 0:s.enabled)||(s==null?void 0:s.external))&&!E.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>I({action:"account",account:E.num,enabled:E.disabled},`rot-${E.num}`).then(()=>q(!0)),title:E.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:E.disabled?"held out":"in rotation"}),E.fetchedAt?g.jsxs("span",{className:`ap-age${E.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 ",fx(E.fetchedAt,m),eO(E.nextAt,m)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),C===E.num&&g.jsxs("div",{className:"ap-manage",children:[g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"name"}),g.jsx("input",{className:"ap-manage-input",type:"text",value:k,onChange:$=>N($.target.value),onKeyDown:$=>{$.key==="Enter"&&H({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>q(!0))},placeholder:"no alias",spellCheck:!1,"aria-label":`Alias for account ${E.num}`}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null||k.trim()===(E.alias??""),onClick:()=>H({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>q(!0)),title:"A short name to show instead of the email",children:"save"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{"aria-label":`Slot for account ${E.num}`,value:String(E.num),disabled:l!=null,onChange:$=>H({action:"move",account:E.num,slot:Number($.target.value)},`move-${E.num}`).then(()=>q(!0)),children:rO(n.accounts??[]).map($=>g.jsx("option",{value:$,children:$},$))})}),g.jsx("span",{className:"ap-manage-hint",children:"rotation order"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:"Copy this account to another agents-deck. The share carries a live login and expires in 10 minutes.",onClick:async()=>{L(!1);const $=await H({action:"share",account:E.num},`share-${E.num}`);$!=null&&$.ok&&O({num:E.num,blob:$.blob,expiresAt:$.expiresAt})},children:"share…"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${j===E.num?" armed":""}`,disabled:l!=null,title:j===E.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(j!==E.num){M(E.num),window.setTimeout(()=>M($=>$===E.num?null:$),4e3);return}M(null),H({action:"remove",account:E.num},`rm-${E.num}`).then(()=>{_(null),q(!0)})},children:j===E.num?"confirm remove":"remove"})]}),(P==null?void 0:P.num)===E.num&&(()=>{const $=sO(P.expiresAt,m),se=$.tone==="gone";return g.jsxs("div",{className:`ap-share${se?" 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(se){L(!1);const D=await H({action:"share",account:E.num},`share-${E.num}`);D!=null&&D.ok&&O({num:E.num,blob:D.blob,expiresAt:D.expiresAt});return}await iO(P.blob)&&(L(!0),window.setTimeout(()=>L(!1),1800))},children:se?"make a new share":B?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${$.tone}`,children:$.text})]})]})]})})()]})]},E.num)),(s==null?void 0:s.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:[K!=null&&g.jsxs("span",{className:`ap-auto-now${U?" near":""}`,children:[Math.round(K),"%"]}),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:X,disabled:l!=null,onChange:E=>I({action:"setting",key:"autoswitch.threshold",value:E.target.value},"threshold").then(()=>q(!0)),children:Z3.map(E=>g.jsxs("option",{value:E,children:[E,"%"]},E))})}),g.jsxs("button",{type:"button",className:`ap-auto-state toggle${s.enabled?" live":""}`,role:"switch","aria-checked":s.enabled,disabled:l!=null,onClick:()=>I({action:"enable",enabled:!s.enabled},"enable").then(()=>q(!0)),title:s.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:s.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),s.enabled?"on":"off"]})]})]}),s.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",s.enabled?" — this toggle takes over when you stop it.":"."]}),s.lastTick&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",fx(s.lastTick.at,m)]})})]}),h&&g.jsx("div",{className:"ap-failure",children:h}),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})`:"","."]})]})}),S&&g.jsx(X3,{onClose:()=>b(!1),onChanged:()=>q(!0)})]})}const aO=3e4;function lO({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function uO(e){const n=e.thresholdMs??aO;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 cO(e){return e.ctrlKey||e.metaKey||e.altKey}function ud(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function dO(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}const fO=40,hO=120;function pO(e,n){let r=null,s=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(p,h,f)=>{if(r!=null){if(s<=p)return;u()}const m=Math.min(f,Math.max(0,p-h));s=p,r=n.setTimeout(l,m)};return{live(p=fO){const h=n.now(),f=Math.max(o+p,h);if(f<=h){u(),l();return}c(f,h,p)},replay(p=hO){u(),s=n.now()+p,r=n.setTimeout(l,p)},flush(){u(),l()},cancel(){u()}}}function mO(){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 s=n;return n=[],s}}}function gO(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function vO(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function zi(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 hx(e){return e.replace(/^anthropic\./,"").replace(/^claude-/,"").replace(/-\d{8}$/,"")}function Rl(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 yO=[7,14,30,90];function wO(e){const[n,r]=A.useState(null),[s,o]=A.useState(!1),l=A.useRef(gO()).current,u=(c=!1)=>{const p=l.begin();o(!0);const f=`/api/ccusage?since=${vO(e)}${c?"&refresh=1":""}`;fetch(f).then(m=>m.json()).then(m=>{p()&&r(m)}).catch(()=>{p()&&r({ok:!1,error:"request failed"})}).finally(()=>{p()&&o(!1)})};return A.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{data:n,loading:s,reload:()=>u(!0)}}function xO({onClose:e}){var b,k;const[n,r]=A.useState(30),[s,o]=A.useState(null),{data:l,loading:u,reload:c}=wO(n);A.useEffect(()=>{const N=j=>{j.key==="Escape"&&e()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e]);const p=l!=null&&l.ok?l.days??[]:[],h=A.useMemo(()=>p.reduce((N,j)=>Math.max(N,j.totalCost),0),[p]),{totalCost:f,totalTok:m,inOut:y,cacheRead:x,modelCosts:C}=A.useMemo(()=>{let N=0,j=0,M=0,P=0;const O=new Map;for(const B of p){N+=B.totalCost,j+=B.totalTokens,M+=B.inputTokens+B.outputTokens,P+=B.cacheReadTokens;for(const L of B.modelBreakdowns)O.set(L.modelName,(O.get(L.modelName)??0)+L.cost)}return{totalCost:N,totalTok:j,inOut:M,cacheRead:P,modelCosts:O}},[p]),_=A.useMemo(()=>Array.from(C.entries()).sort((N,j)=>j[1]-N[1]),[C]),S=s?p.find(N=>N.period===s)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{className:"uh-modal",onClick:N=>N.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:yO.map(N=>g.jsxs("button",{role:"tab","aria-selected":n===N,className:`uh-range-btn${n===N?" on":""}`,onClick:()=>{r(N),o(null)},children:[N,"d"]},N))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,title:"Re-run ccusage","aria-label":"Reload",children:"↻"}),g.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),u&&p.length===0?g.jsx("div",{className:"uh-status",children:"running ccusage… (first run downloads the package)"}):l&&!l.ok?g.jsxs("div",{className:"uh-status uh-err",children:["ccusage failed: ",l.error]}):p.length===0?g.jsx("div",{className:"uh-status",children:"no usage in this range"}):g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(Tl,{label:"total cost",val:Ve(f),accent:!0}),g.jsx(Tl,{label:"tokens",val:zi(m)}),g.jsx(Tl,{label:"input+output",val:zi(y)}),g.jsx(Tl,{label:"cache reads",val:zi(x)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:p.map(N=>{const j=h>0?N.totalCost/h*100:0,M=N.period===s;return g.jsxs("button",{className:`uh-bar-col${M?" sel":""}`,onClick:()=>o(M?null:N.period),title:`${N.period} · ${Ve(N.totalCost)}`,style:{flexBasis:`${100/p.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(j,N.totalCost>0?2:0)}%`},children:N.modelBreakdowns.slice().sort((P,O)=>O.cost-P.cost).map(P=>{const O=N.totalCost>0?P.cost/N.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${O}%`,background:Rl(P.modelName)}},P.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:N.period.slice(5)})]},N.period)})}),g.jsx("div",{className:"uh-legend",children:_.map(([N,j])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Rl(N)}}),hx(N)," ",g.jsx("span",{className:"uh-legend-cost",children:Ve(j)})]},N))}),S&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:S.period}),g.jsx("span",{className:"uh-detail-cost",children:Ve(S.totalCost)}),(k=(b=S.metadata)==null?void 0:b.agents)!=null&&k.length?g.jsx("span",{className:"uh-detail-agents",children:S.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(Al,{label:"input",val:zi(S.inputTokens)}),g.jsx(Al,{label:"output",val:zi(S.outputTokens)}),g.jsx(Al,{label:"cache write",val:zi(S.cacheCreationTokens)}),g.jsx(Al,{label:"cache read",val:zi(S.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:S.modelBreakdowns.slice().sort((N,j)=>j.cost-N.cost).map(N=>{const j=S.totalCost>0?N.cost/S.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:Rl(N.modelName)}}),hx(N.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${j}%`,background:Rl(N.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:Ve(N.cost)})]},N.modelName)})})]})]})]})})}function Tl({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 Al({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 wv(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 cd,px;function _O(){if(px)return cd;px=1;function e(){this.__data__=[],this.size=0}return cd=e,cd}var dd,mx;function Ws(){if(mx)return dd;mx=1;function e(n,r){return n===r||n!==n&&r!==r}return dd=e,dd}var fd,gx;function ru(){if(gx)return fd;gx=1;var e=Ws();function n(r,s){for(var o=r.length;o--;)if(e(r[o][0],s))return o;return-1}return fd=n,fd}var hd,vx;function SO(){if(vx)return hd;vx=1;var e=ru(),n=Array.prototype,r=n.splice;function s(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 hd=s,hd}var pd,yx;function bO(){if(yx)return pd;yx=1;var e=ru();function n(r){var s=this.__data__,o=e(s,r);return o<0?void 0:s[o][1]}return pd=n,pd}var md,wx;function kO(){if(wx)return md;wx=1;var e=ru();function n(r){return e(this.__data__,r)>-1}return md=n,md}var gd,xx;function EO(){if(xx)return gd;xx=1;var e=ru();function n(r,s){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,s])):o[l][1]=s,this}return gd=n,gd}var vd,_x;function iu(){if(_x)return vd;_x=1;var e=_O(),n=SO(),r=bO(),s=kO(),o=EO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,vd=l,vd}var yd,Sx;function NO(){if(Sx)return yd;Sx=1;var e=iu();function n(){this.__data__=new e,this.size=0}return yd=n,yd}var wd,bx;function CO(){if(bx)return wd;bx=1;function e(n){var r=this.__data__,s=r.delete(n);return this.size=r.size,s}return wd=e,wd}var xd,kx;function jO(){if(kx)return xd;kx=1;function e(n){return this.__data__.get(n)}return xd=e,xd}var _d,Ex;function RO(){if(Ex)return _d;Ex=1;function e(n){return this.__data__.has(n)}return _d=e,_d}var Sd,Nx;function EN(){if(Nx)return Sd;Nx=1;var e=typeof ml=="object"&&ml&&ml.Object===Object&&ml;return Sd=e,Sd}var bd,Cx;function er(){if(Cx)return bd;Cx=1;var e=EN(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return bd=r,bd}var kd,jx;function Gs(){if(jx)return kd;jx=1;var e=er(),n=e.Symbol;return kd=n,kd}var Ed,Rx;function TO(){if(Rx)return Ed;Rx=1;var e=Gs(),n=Object.prototype,r=n.hasOwnProperty,s=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),p=u[o];try{u[o]=void 0;var h=!0}catch{}var f=s.call(u);return h&&(c?u[o]=p:delete u[o]),f}return Ed=l,Ed}var Nd,Tx;function AO(){if(Tx)return Nd;Tx=1;var e=Object.prototype,n=e.toString;function r(s){return n.call(s)}return Nd=r,Nd}var Cd,Ax;function Xi(){if(Ax)return Cd;Ax=1;var e=Gs(),n=TO(),r=AO(),s="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:s:l&&l in Object(c)?n(c):r(c)}return Cd=u,Cd}var jd,Ix;function Mn(){if(Ix)return jd;Ix=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return jd=e,jd}var Rd,Mx;function fa(){if(Mx)return Rd;Mx=1;var e=Xi(),n=Mn(),r="[object AsyncFunction]",s="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var p=e(c);return p==s||p==o||p==r||p==l}return Rd=u,Rd}var Td,Px;function IO(){if(Px)return Td;Px=1;var e=er(),n=e["__core-js_shared__"];return Td=n,Td}var Ad,Ox;function MO(){if(Ox)return Ad;Ox=1;var e=IO(),n=(function(){var s=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function r(s){return!!n&&n in s}return Ad=r,Ad}var Id,qx;function NN(){if(qx)return Id;qx=1;var e=Function.prototype,n=e.toString;function r(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Id=r,Id}var Md,Lx;function PO(){if(Lx)return Md;Lx=1;var e=fa(),n=MO(),r=Mn(),s=NN(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,p=u.toString,h=c.hasOwnProperty,f=RegExp("^"+p.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var x=e(y)?f:l;return x.test(s(y))}return Md=m,Md}var Pd,$x;function OO(){if($x)return Pd;$x=1;function e(n,r){return n==null?void 0:n[r]}return Pd=e,Pd}var Od,Dx;function Qi(){if(Dx)return Od;Dx=1;var e=PO(),n=OO();function r(s,o){var l=n(s,o);return e(l)?l:void 0}return Od=r,Od}var qd,Fx;function xv(){if(Fx)return qd;Fx=1;var e=Qi(),n=er(),r=e(n,"Map");return qd=r,qd}var Ld,zx;function su(){if(zx)return Ld;zx=1;var e=Qi(),n=e(Object,"create");return Ld=n,Ld}var $d,Bx;function qO(){if(Bx)return $d;Bx=1;var e=su();function n(){this.__data__=e?e(null):{},this.size=0}return $d=n,$d}var Dd,Ux;function LO(){if(Ux)return Dd;Ux=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return Dd=e,Dd}var Fd,Hx;function $O(){if(Hx)return Fd;Hx=1;var e=su(),n="__lodash_hash_undefined__",r=Object.prototype,s=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return s.call(u,l)?u[l]:void 0}return Fd=o,Fd}var zd,Vx;function DO(){if(Vx)return zd;Vx=1;var e=su(),n=Object.prototype,r=n.hasOwnProperty;function s(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return zd=s,zd}var Bd,Wx;function FO(){if(Wx)return Bd;Wx=1;var e=su(),n="__lodash_hash_undefined__";function r(s,o){var l=this.__data__;return this.size+=this.has(s)?0:1,l[s]=e&&o===void 0?n:o,this}return Bd=r,Bd}var Ud,Gx;function zO(){if(Gx)return Ud;Gx=1;var e=qO(),n=LO(),r=$O(),s=DO(),o=FO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Ud=l,Ud}var Hd,Yx;function BO(){if(Yx)return Hd;Yx=1;var e=zO(),n=iu(),r=xv();function s(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return Hd=s,Hd}var Vd,Kx;function UO(){if(Kx)return Vd;Kx=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Vd=e,Vd}var Wd,Xx;function ou(){if(Xx)return Wd;Xx=1;var e=UO();function n(r,s){var o=r.__data__;return e(s)?o[typeof s=="string"?"string":"hash"]:o.map}return Wd=n,Wd}var Gd,Qx;function HO(){if(Qx)return Gd;Qx=1;var e=ou();function n(r){var s=e(this,r).delete(r);return this.size-=s?1:0,s}return Gd=n,Gd}var Yd,Zx;function VO(){if(Zx)return Yd;Zx=1;var e=ou();function n(r){return e(this,r).get(r)}return Yd=n,Yd}var Kd,Jx;function WO(){if(Jx)return Kd;Jx=1;var e=ou();function n(r){return e(this,r).has(r)}return Kd=n,Kd}var Xd,e_;function GO(){if(e_)return Xd;e_=1;var e=ou();function n(r,s){var o=e(this,r),l=o.size;return o.set(r,s),this.size+=o.size==l?0:1,this}return Xd=n,Xd}var Qd,t_;function _v(){if(t_)return Qd;t_=1;var e=BO(),n=HO(),r=VO(),s=WO(),o=GO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Qd=l,Qd}var Zd,n_;function YO(){if(n_)return Zd;n_=1;var e=iu(),n=xv(),r=_v(),s=200;function o(l,u){var c=this.__data__;if(c instanceof e){var p=c.__data__;if(!n||p.length<s-1)return p.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(p)}return c.set(l,u),this.size=c.size,this}return Zd=o,Zd}var Jd,r_;function au(){if(r_)return Jd;r_=1;var e=iu(),n=NO(),r=CO(),s=jO(),o=RO(),l=YO();function u(c){var p=this.__data__=new e(c);this.size=p.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=s,u.prototype.has=o,u.prototype.set=l,Jd=u,Jd}var ef,i_;function Sv(){if(i_)return ef;i_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o&&r(n[s],s,n)!==!1;);return n}return ef=e,ef}var tf,s_;function CN(){if(s_)return tf;s_=1;var e=Qi(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return tf=n,tf}var nf,o_;function lu(){if(o_)return nf;o_=1;var e=CN();function n(r,s,o){s=="__proto__"&&e?e(r,s,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[s]=o}return nf=n,nf}var rf,a_;function uu(){if(a_)return rf;a_=1;var e=lu(),n=Ws(),r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c){var p=l[u];(!(s.call(l,u)&&n(p,c))||c===void 0&&!(u in l))&&e(l,u,c)}return rf=o,rf}var sf,l_;function ha(){if(l_)return sf;l_=1;var e=uu(),n=lu();function r(s,o,l,u){var c=!l;l||(l={});for(var p=-1,h=o.length;++p<h;){var f=o[p],m=u?u(l[f],s[f],f,l,s):void 0;m===void 0&&(m=s[f]),c?n(l,f,m):e(l,f,m)}return l}return sf=r,sf}var of,u_;function KO(){if(u_)return of;u_=1;function e(n,r){for(var s=-1,o=Array(n);++s<n;)o[s]=r(s);return o}return of=e,of}var af,c_;function hr(){if(c_)return af;c_=1;function e(n){return n!=null&&typeof n=="object"}return af=e,af}var lf,d_;function XO(){if(d_)return lf;d_=1;var e=Xi(),n=hr(),r="[object Arguments]";function s(o){return n(o)&&e(o)==r}return lf=s,lf}var uf,f_;function pa(){if(f_)return uf;f_=1;var e=XO(),n=hr(),r=Object.prototype,s=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&s.call(u,"callee")&&!o.call(u,"callee")};return uf=l,uf}var cf,h_;function bt(){if(h_)return cf;h_=1;var e=Array.isArray;return cf=e,cf}var Vo={exports:{}},df,p_;function QO(){if(p_)return df;p_=1;function e(){return!1}return df=e,df}Vo.exports;var m_;function Ys(){return m_||(m_=1,(function(e,n){var r=er(),s=QO(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,p=c?c.isBuffer:void 0,h=p||s;e.exports=h})(Vo,Vo.exports)),Vo.exports}var ff,g_;function cu(){if(g_)return ff;g_=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(s,o){var l=typeof s;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(s))&&s>-1&&s%1==0&&s<o}return ff=r,ff}var hf,v_;function bv(){if(v_)return hf;v_=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return hf=n,hf}var pf,y_;function ZO(){if(y_)return pf;y_=1;var e=Xi(),n=bv(),r=hr(),s="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",h="[object Map]",f="[object Number]",m="[object Object]",y="[object RegExp]",x="[object Set]",C="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",N="[object Float64Array]",j="[object Int8Array]",M="[object Int16Array]",P="[object Int32Array]",O="[object Uint8Array]",B="[object Uint8ClampedArray]",L="[object Uint16Array]",q="[object Uint32Array]",I={};I[k]=I[N]=I[j]=I[M]=I[P]=I[O]=I[B]=I[L]=I[q]=!0,I[s]=I[o]=I[S]=I[l]=I[b]=I[u]=I[c]=I[p]=I[h]=I[f]=I[m]=I[y]=I[x]=I[C]=I[_]=!1;function H(X){return r(X)&&n(X.length)&&!!I[e(X)]}return pf=H,pf}var mf,w_;function du(){if(w_)return mf;w_=1;function e(n){return function(r){return n(r)}}return mf=e,mf}var Wo={exports:{}};Wo.exports;var x_;function kv(){return x_||(x_=1,(function(e,n){var r=EN(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l&&r.process,c=(function(){try{var p=o&&o.require&&o.require("util").types;return p||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(Wo,Wo.exports)),Wo.exports}var gf,__;function ma(){if(__)return gf;__=1;var e=ZO(),n=du(),r=kv(),s=r&&r.isTypedArray,o=s?n(s):e;return gf=o,gf}var vf,S_;function jN(){if(S_)return vf;S_=1;var e=KO(),n=pa(),r=bt(),s=Ys(),o=cu(),l=ma(),u=Object.prototype,c=u.hasOwnProperty;function p(h,f){var m=r(h),y=!m&&n(h),x=!m&&!y&&s(h),C=!m&&!y&&!x&&l(h),_=m||y||x||C,S=_?e(h.length,String):[],b=S.length;for(var k in h)(f||c.call(h,k))&&!(_&&(k=="length"||x&&(k=="offset"||k=="parent")||C&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return vf=p,vf}var yf,b_;function fu(){if(b_)return yf;b_=1;var e=Object.prototype;function n(r){var s=r&&r.constructor,o=typeof s=="function"&&s.prototype||e;return r===o}return yf=n,yf}var wf,k_;function RN(){if(k_)return wf;k_=1;function e(n,r){return function(s){return n(r(s))}}return wf=e,wf}var xf,E_;function JO(){if(E_)return xf;E_=1;var e=RN(),n=e(Object.keys,Object);return xf=n,xf}var _f,N_;function Ev(){if(N_)return _f;N_=1;var e=fu(),n=JO(),r=Object.prototype,s=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))s.call(l,c)&&c!="constructor"&&u.push(c);return u}return _f=o,_f}var Sf,C_;function qr(){if(C_)return Sf;C_=1;var e=fa(),n=bv();function r(s){return s!=null&&n(s.length)&&!e(s)}return Sf=r,Sf}var bf,j_;function mi(){if(j_)return bf;j_=1;var e=jN(),n=Ev(),r=qr();function s(o){return r(o)?e(o):n(o)}return bf=s,bf}var kf,R_;function eq(){if(R_)return kf;R_=1;var e=ha(),n=mi();function r(s,o){return s&&e(o,n(o),s)}return kf=r,kf}var Ef,T_;function tq(){if(T_)return Ef;T_=1;function e(n){var r=[];if(n!=null)for(var s in Object(n))r.push(s);return r}return Ef=e,Ef}var Nf,A_;function nq(){if(A_)return Nf;A_=1;var e=Mn(),n=fu(),r=tq(),s=Object.prototype,o=s.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),p=[];for(var h in u)h=="constructor"&&(c||!o.call(u,h))||p.push(h);return p}return Nf=l,Nf}var Cf,I_;function Zi(){if(I_)return Cf;I_=1;var e=jN(),n=nq(),r=qr();function s(o){return r(o)?e(o,!0):n(o)}return Cf=s,Cf}var jf,M_;function rq(){if(M_)return jf;M_=1;var e=ha(),n=Zi();function r(s,o){return s&&e(o,n(o),s)}return jf=r,jf}var Go={exports:{}};Go.exports;var P_;function TN(){return P_||(P_=1,(function(e,n){var r=er(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function p(h,f){if(f)return h.slice();var m=h.length,y=c?c(m):new h.constructor(m);return h.copy(y),y}e.exports=p})(Go,Go.exports)),Go.exports}var Rf,O_;function AN(){if(O_)return Rf;O_=1;function e(n,r){var s=-1,o=n.length;for(r||(r=Array(o));++s<o;)r[s]=n[s];return r}return Rf=e,Rf}var Tf,q_;function IN(){if(q_)return Tf;q_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=0,u=[];++s<o;){var c=n[s];r(c,s,n)&&(u[l++]=c)}return u}return Tf=e,Tf}var Af,L_;function MN(){if(L_)return Af;L_=1;function e(){return[]}return Af=e,Af}var If,$_;function Nv(){if($_)return If;$_=1;var e=IN(),n=MN(),r=Object.prototype,s=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return s.call(u,c)}))}:n;return If=l,If}var Mf,D_;function iq(){if(D_)return Mf;D_=1;var e=ha(),n=Nv();function r(s,o){return e(s,n(s),o)}return Mf=r,Mf}var Pf,F_;function Cv(){if(F_)return Pf;F_=1;function e(n,r){for(var s=-1,o=r.length,l=n.length;++s<o;)n[l+s]=r[s];return n}return Pf=e,Pf}var Of,z_;function hu(){if(z_)return Of;z_=1;var e=RN(),n=e(Object.getPrototypeOf,Object);return Of=n,Of}var qf,B_;function PN(){if(B_)return qf;B_=1;var e=Cv(),n=hu(),r=Nv(),s=MN(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:s;return qf=l,qf}var Lf,U_;function sq(){if(U_)return Lf;U_=1;var e=ha(),n=PN();function r(s,o){return e(s,n(s),o)}return Lf=r,Lf}var $f,H_;function ON(){if(H_)return $f;H_=1;var e=Cv(),n=bt();function r(s,o,l){var u=o(s);return n(s)?u:e(u,l(s))}return $f=r,$f}var Df,V_;function qN(){if(V_)return Df;V_=1;var e=ON(),n=Nv(),r=mi();function s(o){return e(o,r,n)}return Df=s,Df}var Ff,W_;function oq(){if(W_)return Ff;W_=1;var e=ON(),n=PN(),r=Zi();function s(o){return e(o,r,n)}return Ff=s,Ff}var zf,G_;function aq(){if(G_)return zf;G_=1;var e=Qi(),n=er(),r=e(n,"DataView");return zf=r,zf}var Bf,Y_;function lq(){if(Y_)return Bf;Y_=1;var e=Qi(),n=er(),r=e(n,"Promise");return Bf=r,Bf}var Uf,K_;function LN(){if(K_)return Uf;K_=1;var e=Qi(),n=er(),r=e(n,"Set");return Uf=r,Uf}var Hf,X_;function uq(){if(X_)return Hf;X_=1;var e=Qi(),n=er(),r=e(n,"WeakMap");return Hf=r,Hf}var Vf,Q_;function Ks(){if(Q_)return Vf;Q_=1;var e=aq(),n=xv(),r=lq(),s=LN(),o=uq(),l=Xi(),u=NN(),c="[object Map]",p="[object Object]",h="[object Promise]",f="[object Set]",m="[object WeakMap]",y="[object DataView]",x=u(e),C=u(n),_=u(r),S=u(s),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=h||s&&k(new s)!=f||o&&k(new o)!=m)&&(k=function(N){var j=l(N),M=j==p?N.constructor:void 0,P=M?u(M):"";if(P)switch(P){case x:return y;case C:return c;case _:return h;case S:return f;case b:return m}return j}),Vf=k,Vf}var Wf,Z_;function cq(){if(Z_)return Wf;Z_=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s){var o=s.length,l=new s.constructor(o);return o&&typeof s[0]=="string"&&n.call(s,"index")&&(l.index=s.index,l.input=s.input),l}return Wf=r,Wf}var Gf,J_;function $N(){if(J_)return Gf;J_=1;var e=er(),n=e.Uint8Array;return Gf=n,Gf}var Yf,e1;function jv(){if(e1)return Yf;e1=1;var e=$N();function n(r){var s=new r.constructor(r.byteLength);return new e(s).set(new e(r)),s}return Yf=n,Yf}var Kf,t1;function dq(){if(t1)return Kf;t1=1;var e=jv();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Kf=n,Kf}var Xf,n1;function fq(){if(n1)return Xf;n1=1;var e=/\w*$/;function n(r){var s=new r.constructor(r.source,e.exec(r));return s.lastIndex=r.lastIndex,s}return Xf=n,Xf}var Qf,r1;function hq(){if(r1)return Qf;r1=1;var e=Gs(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function s(o){return r?Object(r.call(o)):{}}return Qf=s,Qf}var Zf,i1;function DN(){if(i1)return Zf;i1=1;var e=jv();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Zf=n,Zf}var Jf,s1;function pq(){if(s1)return Jf;s1=1;var e=jv(),n=dq(),r=fq(),s=hq(),o=DN(),l="[object Boolean]",u="[object Date]",c="[object Map]",p="[object Number]",h="[object RegExp]",f="[object Set]",m="[object String]",y="[object Symbol]",x="[object ArrayBuffer]",C="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",N="[object Int32Array]",j="[object Uint8Array]",M="[object Uint8ClampedArray]",P="[object Uint16Array]",O="[object Uint32Array]";function B(L,q,I){var H=L.constructor;switch(q){case x:return e(L);case l:case u:return new H(+L);case C:return n(L,I);case _:case S:case b:case k:case N:case j:case M:case P:case O:return o(L,I);case c:return new H;case p:case m:return new H(L);case h:return r(L);case f:return new H;case y:return s(L)}}return Jf=B,Jf}var eh,o1;function FN(){if(o1)return eh;o1=1;var e=Mn(),n=Object.create,r=(function(){function s(){}return function(o){if(!e(o))return{};if(n)return n(o);s.prototype=o;var l=new s;return s.prototype=void 0,l}})();return eh=r,eh}var th,a1;function zN(){if(a1)return th;a1=1;var e=FN(),n=hu(),r=fu();function s(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return th=s,th}var nh,l1;function mq(){if(l1)return nh;l1=1;var e=Ks(),n=hr(),r="[object Map]";function s(o){return n(o)&&e(o)==r}return nh=s,nh}var rh,u1;function gq(){if(u1)return rh;u1=1;var e=mq(),n=du(),r=kv(),s=r&&r.isMap,o=s?n(s):e;return rh=o,rh}var ih,c1;function vq(){if(c1)return ih;c1=1;var e=Ks(),n=hr(),r="[object Set]";function s(o){return n(o)&&e(o)==r}return ih=s,ih}var sh,d1;function yq(){if(d1)return sh;d1=1;var e=vq(),n=du(),r=kv(),s=r&&r.isSet,o=s?n(s):e;return sh=o,sh}var oh,f1;function BN(){if(f1)return oh;f1=1;var e=au(),n=Sv(),r=uu(),s=eq(),o=rq(),l=TN(),u=AN(),c=iq(),p=sq(),h=qN(),f=oq(),m=Ks(),y=cq(),x=pq(),C=zN(),_=bt(),S=Ys(),b=gq(),k=Mn(),N=yq(),j=mi(),M=Zi(),P=1,O=2,B=4,L="[object Arguments]",q="[object Array]",I="[object Boolean]",H="[object Date]",X="[object Error]",T="[object Function]",K="[object GeneratorFunction]",U="[object Map]",ee="[object Number]",J="[object Object]",F="[object RegExp]",G="[object Set]",E="[object String]",$="[object Symbol]",se="[object WeakMap]",D="[object ArrayBuffer]",Q="[object DataView]",te="[object Float32Array]",oe="[object Float64Array]",ue="[object Int8Array]",ge="[object Int16Array]",ce="[object Int32Array]",Me="[object Uint8Array]",Fe="[object Uint8ClampedArray]",Pe="[object Uint16Array]",Te="[object Uint32Array]",ke={};ke[L]=ke[q]=ke[D]=ke[Q]=ke[I]=ke[H]=ke[te]=ke[oe]=ke[ue]=ke[ge]=ke[ce]=ke[U]=ke[ee]=ke[J]=ke[F]=ke[G]=ke[E]=ke[$]=ke[Me]=ke[Fe]=ke[Pe]=ke[Te]=!0,ke[X]=ke[T]=ke[se]=!1;function Ye(ye,we,ze,at,gt,Xe){var $e,Qe=we&P,ht=we&O,vt=we&B;if(ze&&($e=gt?ze(ye,at,gt,Xe):ze(ye)),$e!==void 0)return $e;if(!k(ye))return ye;var lt=_(ye);if(lt){if($e=y(ye),!Qe)return u(ye,$e)}else{var yt=m(ye),Mt=yt==T||yt==K;if(S(ye))return l(ye,Qe);if(yt==J||yt==L||Mt&&!gt){if($e=ht||Mt?{}:C(ye),!Qe)return ht?p(ye,o($e,ye)):c(ye,s($e,ye))}else{if(!ke[yt])return gt?ye:{};$e=x(ye,yt,Qe)}}Xe||(Xe=new e);var Pt=Xe.get(ye);if(Pt)return Pt;Xe.set(ye,$e),N(ye)?ye.forEach(function(De){$e.add(Ye(De,we,ze,De,ye,Xe))}):b(ye)&&ye.forEach(function(De,_t){$e.set(_t,Ye(De,we,ze,_t,ye,Xe))});var Ze=vt?ht?f:h:ht?M:j,xt=lt?void 0:Ze(ye);return n(xt||ye,function(De,_t){xt&&(_t=De,De=ye[_t]),r($e,_t,Ye(De,we,ze,_t,ye,Xe))}),$e}return oh=Ye,oh}var ah,h1;function wq(){if(h1)return ah;h1=1;var e=BN(),n=4;function r(s){return e(s,n)}return ah=r,ah}var lh,p1;function Rv(){if(p1)return lh;p1=1;function e(n){return function(){return n}}return lh=e,lh}var uh,m1;function xq(){if(m1)return uh;m1=1;function e(n){return function(r,s,o){for(var l=-1,u=Object(r),c=o(r),p=c.length;p--;){var h=c[n?p:++l];if(s(u[h],h,u)===!1)break}return r}}return uh=e,uh}var ch,g1;function Tv(){if(g1)return ch;g1=1;var e=xq(),n=e();return ch=n,ch}var dh,v1;function Av(){if(v1)return dh;v1=1;var e=Tv(),n=mi();function r(s,o){return s&&e(s,o,n)}return dh=r,dh}var fh,y1;function _q(){if(y1)return fh;y1=1;var e=qr();function n(r,s){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=s?u:-1,p=Object(o);(s?c--:++c<u)&&l(p[c],c,p)!==!1;);return o}}return fh=n,fh}var hh,w1;function pu(){if(w1)return hh;w1=1;var e=Av(),n=_q(),r=n(e);return hh=r,hh}var ph,x1;function Ji(){if(x1)return ph;x1=1;function e(n){return n}return ph=e,ph}var mh,_1;function UN(){if(_1)return mh;_1=1;var e=Ji();function n(r){return typeof r=="function"?r:e}return mh=n,mh}var gh,S1;function HN(){if(S1)return gh;S1=1;var e=Sv(),n=pu(),r=UN(),s=bt();function o(l,u){var c=s(l)?e:n;return c(l,r(u))}return gh=o,gh}var vh,b1;function VN(){return b1||(b1=1,vh=HN()),vh}var yh,k1;function Sq(){if(k1)return yh;k1=1;var e=pu();function n(r,s){var o=[];return e(r,function(l,u,c){s(l,u,c)&&o.push(l)}),o}return yh=n,yh}var wh,E1;function bq(){if(E1)return wh;E1=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return wh=n,wh}var xh,N1;function kq(){if(N1)return xh;N1=1;function e(n){return this.__data__.has(n)}return xh=e,xh}var _h,C1;function WN(){if(C1)return _h;C1=1;var e=_v(),n=bq(),r=kq();function s(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return s.prototype.add=s.prototype.push=n,s.prototype.has=r,_h=s,_h}var Sh,j1;function Eq(){if(j1)return Sh;j1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o;)if(r(n[s],s,n))return!0;return!1}return Sh=e,Sh}var bh,R1;function GN(){if(R1)return bh;R1=1;function e(n,r){return n.has(r)}return bh=e,bh}var kh,T1;function YN(){if(T1)return kh;T1=1;var e=WN(),n=Eq(),r=GN(),s=1,o=2;function l(u,c,p,h,f,m){var y=p&s,x=u.length,C=c.length;if(x!=C&&!(y&&C>x))return!1;var _=m.get(u),S=m.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,N=p&o?new e:void 0;for(m.set(u,c),m.set(c,u);++b<x;){var j=u[b],M=c[b];if(h)var P=y?h(M,j,b,c,u,m):h(j,M,b,u,c,m);if(P!==void 0){if(P)continue;k=!1;break}if(N){if(!n(c,function(O,B){if(!r(N,B)&&(j===O||f(j,O,p,h,m)))return N.push(B)})){k=!1;break}}else if(!(j===M||f(j,M,p,h,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return kh=l,kh}var Eh,A1;function Nq(){if(A1)return Eh;A1=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o,l){s[++r]=[l,o]}),s}return Eh=e,Eh}var Nh,I1;function Iv(){if(I1)return Nh;I1=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o){s[++r]=o}),s}return Nh=e,Nh}var Ch,M1;function Cq(){if(M1)return Ch;M1=1;var e=Gs(),n=$N(),r=Ws(),s=YN(),o=Nq(),l=Iv(),u=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",m="[object Map]",y="[object Number]",x="[object RegExp]",C="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",N=e?e.prototype:void 0,j=N?N.valueOf:void 0;function M(P,O,B,L,q,I,H){switch(B){case k:if(P.byteLength!=O.byteLength||P.byteOffset!=O.byteOffset)return!1;P=P.buffer,O=O.buffer;case b:return!(P.byteLength!=O.byteLength||!I(new n(P),new n(O)));case p:case h:case y:return r(+P,+O);case f:return P.name==O.name&&P.message==O.message;case x:case _:return P==O+"";case m:var X=o;case C:var T=L&u;if(X||(X=l),P.size!=O.size&&!T)return!1;var K=H.get(P);if(K)return K==O;L|=c,H.set(P,O);var U=s(X(P),X(O),L,q,I,H);return H.delete(P),U;case S:if(j)return j.call(P)==j.call(O)}return!1}return Ch=M,Ch}var jh,P1;function jq(){if(P1)return jh;P1=1;var e=qN(),n=1,r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c,p,h,f){var m=c&n,y=e(l),x=y.length,C=e(u),_=C.length;if(x!=_&&!m)return!1;for(var S=x;S--;){var b=y[S];if(!(m?b in u:s.call(u,b)))return!1}var k=f.get(l),N=f.get(u);if(k&&N)return k==u&&N==l;var j=!0;f.set(l,u),f.set(u,l);for(var M=m;++S<x;){b=y[S];var P=l[b],O=u[b];if(p)var B=m?p(O,P,b,u,l,f):p(P,O,b,l,u,f);if(!(B===void 0?P===O||h(P,O,c,p,f):B)){j=!1;break}M||(M=b=="constructor")}if(j&&!M){var L=l.constructor,q=u.constructor;L!=q&&"constructor"in l&&"constructor"in u&&!(typeof L=="function"&&L instanceof L&&typeof q=="function"&&q instanceof q)&&(j=!1)}return f.delete(l),f.delete(u),j}return jh=o,jh}var Rh,O1;function Rq(){if(O1)return Rh;O1=1;var e=au(),n=YN(),r=Cq(),s=jq(),o=Ks(),l=bt(),u=Ys(),c=ma(),p=1,h="[object Arguments]",f="[object Array]",m="[object Object]",y=Object.prototype,x=y.hasOwnProperty;function C(_,S,b,k,N,j){var M=l(_),P=l(S),O=M?f:o(_),B=P?f:o(S);O=O==h?m:O,B=B==h?m:B;var L=O==m,q=B==m,I=O==B;if(I&&u(_)){if(!u(S))return!1;M=!0,L=!1}if(I&&!L)return j||(j=new e),M||c(_)?n(_,S,b,k,N,j):r(_,S,O,b,k,N,j);if(!(b&p)){var H=L&&x.call(_,"__wrapped__"),X=q&&x.call(S,"__wrapped__");if(H||X){var T=H?_.value():_,K=X?S.value():S;return j||(j=new e),N(T,K,b,k,j)}}return I?(j||(j=new e),s(_,S,b,k,N,j)):!1}return Rh=C,Rh}var Th,q1;function KN(){if(q1)return Th;q1=1;var e=Rq(),n=hr();function r(s,o,l,u,c){return s===o?!0:s==null||o==null||!n(s)&&!n(o)?s!==s&&o!==o:e(s,o,l,u,r,c)}return Th=r,Th}var Ah,L1;function Tq(){if(L1)return Ah;L1=1;var e=au(),n=KN(),r=1,s=2;function o(l,u,c,p){var h=c.length,f=h,m=!p;if(l==null)return!f;for(l=Object(l);h--;){var y=c[h];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++h<f;){y=c[h];var x=y[0],C=l[x],_=y[1];if(m&&y[2]){if(C===void 0&&!(x in l))return!1}else{var S=new e;if(p)var b=p(C,_,x,l,u,S);if(!(b===void 0?n(_,C,r|s,p,S):b))return!1}}return!0}return Ah=o,Ah}var Ih,$1;function XN(){if($1)return Ih;$1=1;var e=Mn();function n(r){return r===r&&!e(r)}return Ih=n,Ih}var Mh,D1;function Aq(){if(D1)return Mh;D1=1;var e=XN(),n=mi();function r(s){for(var o=n(s),l=o.length;l--;){var u=o[l],c=s[u];o[l]=[u,c,e(c)]}return o}return Mh=r,Mh}var Ph,F1;function QN(){if(F1)return Ph;F1=1;function e(n,r){return function(s){return s==null?!1:s[n]===r&&(r!==void 0||n in Object(s))}}return Ph=e,Ph}var Oh,z1;function Iq(){if(z1)return Oh;z1=1;var e=Tq(),n=Aq(),r=QN();function s(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 Oh=s,Oh}var qh,B1;function Xs(){if(B1)return qh;B1=1;var e=Xi(),n=hr(),r="[object Symbol]";function s(o){return typeof o=="symbol"||n(o)&&e(o)==r}return qh=s,qh}var Lh,U1;function Mv(){if(U1)return Lh;U1=1;var e=bt(),n=Xs(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\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:s.test(l)||!r.test(l)||u!=null&&l in Object(u)}return Lh=o,Lh}var $h,H1;function Mq(){if(H1)return $h;H1=1;var e=_v(),n="Expected a function";function r(s,o){if(typeof s!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],p=l.cache;if(p.has(c))return p.get(c);var h=s.apply(this,u);return l.cache=p.set(c,h)||p,h};return l.cache=new(r.Cache||e),l}return r.Cache=e,$h=r,$h}var Dh,V1;function Pq(){if(V1)return Dh;V1=1;var e=Mq(),n=500;function r(s){var o=e(s,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return Dh=r,Dh}var Fh,W1;function Oq(){if(W1)return Fh;W1=1;var e=Pq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,s=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,p,h){l.push(p?h.replace(r,"$1"):c||u)}),l});return Fh=s,Fh}var zh,G1;function mu(){if(G1)return zh;G1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=Array(o);++s<o;)l[s]=r(n[s],s,n);return l}return zh=e,zh}var Bh,Y1;function qq(){if(Y1)return Bh;Y1=1;var e=Gs(),n=mu(),r=bt(),s=Xs(),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(s(c))return l?l.call(c):"";var p=c+"";return p=="0"&&1/c==-1/0?"-0":p}return Bh=u,Bh}var Uh,K1;function ZN(){if(K1)return Uh;K1=1;var e=qq();function n(r){return r==null?"":e(r)}return Uh=n,Uh}var Hh,X1;function gu(){if(X1)return Hh;X1=1;var e=bt(),n=Mv(),r=Oq(),s=ZN();function o(l,u){return e(l)?l:n(l,u)?[l]:r(s(l))}return Hh=o,Hh}var Vh,Q1;function ga(){if(Q1)return Vh;Q1=1;var e=Xs();function n(r){if(typeof r=="string"||e(r))return r;var s=r+"";return s=="0"&&1/r==-1/0?"-0":s}return Vh=n,Vh}var Wh,Z1;function vu(){if(Z1)return Wh;Z1=1;var e=gu(),n=ga();function r(s,o){o=e(o,s);for(var l=0,u=o.length;s!=null&&l<u;)s=s[n(o[l++])];return l&&l==u?s:void 0}return Wh=r,Wh}var Gh,J1;function Lq(){if(J1)return Gh;J1=1;var e=vu();function n(r,s,o){var l=r==null?void 0:e(r,s);return l===void 0?o:l}return Gh=n,Gh}var Yh,eS;function $q(){if(eS)return Yh;eS=1;function e(n,r){return n!=null&&r in Object(n)}return Yh=e,Yh}var Kh,tS;function JN(){if(tS)return Kh;tS=1;var e=gu(),n=pa(),r=bt(),s=cu(),o=bv(),l=ga();function u(c,p,h){p=e(p,c);for(var f=-1,m=p.length,y=!1;++f<m;){var x=l(p[f]);if(!(y=c!=null&&h(c,x)))break;c=c[x]}return y||++f!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&s(x,m)&&(r(c)||n(c)))}return Kh=u,Kh}var Xh,nS;function eC(){if(nS)return Xh;nS=1;var e=$q(),n=JN();function r(s,o){return s!=null&&n(s,o,e)}return Xh=r,Xh}var Qh,rS;function Dq(){if(rS)return Qh;rS=1;var e=KN(),n=Lq(),r=eC(),s=Mv(),o=XN(),l=QN(),u=ga(),c=1,p=2;function h(f,m){return s(f)&&o(m)?l(u(f),m):function(y){var x=n(y,f);return x===void 0&&x===m?r(y,f):e(m,x,c|p)}}return Qh=h,Qh}var Zh,iS;function tC(){if(iS)return Zh;iS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Zh=e,Zh}var Jh,sS;function Fq(){if(sS)return Jh;sS=1;var e=vu();function n(r){return function(s){return e(s,r)}}return Jh=n,Jh}var ep,oS;function zq(){if(oS)return ep;oS=1;var e=tC(),n=Fq(),r=Mv(),s=ga();function o(l){return r(l)?e(s(l)):n(l)}return ep=o,ep}var tp,aS;function Lr(){if(aS)return tp;aS=1;var e=Iq(),n=Dq(),r=Ji(),s=bt(),o=zq();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?s(u)?n(u[0],u[1]):e(u):o(u)}return tp=l,tp}var np,lS;function nC(){if(lS)return np;lS=1;var e=IN(),n=Sq(),r=Lr(),s=bt();function o(l,u){var c=s(l)?e:n;return c(l,r(u,3))}return np=o,np}var rp,uS;function Bq(){if(uS)return rp;uS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s,o){return s!=null&&n.call(s,o)}return rp=r,rp}var ip,cS;function rC(){if(cS)return ip;cS=1;var e=Bq(),n=JN();function r(s,o){return s!=null&&n(s,o,e)}return ip=r,ip}var sp,dS;function Uq(){if(dS)return sp;dS=1;var e=Ev(),n=Ks(),r=pa(),s=bt(),o=qr(),l=Ys(),u=fu(),c=ma(),p="[object Map]",h="[object Set]",f=Object.prototype,m=f.hasOwnProperty;function y(x){if(x==null)return!0;if(o(x)&&(s(x)||typeof x=="string"||typeof x.splice=="function"||l(x)||c(x)||r(x)))return!x.length;var C=n(x);if(C==p||C==h)return!x.size;if(u(x))return!e(x).length;for(var _ in x)if(m.call(x,_))return!1;return!0}return sp=y,sp}var op,fS;function iC(){if(fS)return op;fS=1;function e(n){return n===void 0}return op=e,op}var ap,hS;function sC(){if(hS)return ap;hS=1;var e=pu(),n=qr();function r(s,o){var l=-1,u=n(s)?Array(s.length):[];return e(s,function(c,p,h){u[++l]=o(c,p,h)}),u}return ap=r,ap}var lp,pS;function oC(){if(pS)return lp;pS=1;var e=mu(),n=Lr(),r=sC(),s=bt();function o(l,u){var c=s(l)?e:r;return c(l,n(u,3))}return lp=o,lp}var up,mS;function Hq(){if(mS)return up;mS=1;function e(n,r,s,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(s=n[++l]);++l<u;)s=r(s,n[l],l,n);return s}return up=e,up}var cp,gS;function Vq(){if(gS)return cp;gS=1;function e(n,r,s,o,l){return l(n,function(u,c,p){s=o?(o=!1,u):r(s,u,c,p)}),s}return cp=e,cp}var dp,vS;function aC(){if(vS)return dp;vS=1;var e=Hq(),n=pu(),r=Lr(),s=Vq(),o=bt();function l(u,c,p){var h=o(u)?e:s,f=arguments.length<3;return h(u,r(c,4),p,f,n)}return dp=l,dp}var fp,yS;function Wq(){if(yS)return fp;yS=1;var e=Xi(),n=bt(),r=hr(),s="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==s}return fp=o,fp}var hp,wS;function Gq(){if(wS)return hp;wS=1;var e=tC(),n=e("length");return hp=n,hp}var pp,xS;function Yq(){if(xS)return pp;xS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function p(h){return c.test(h)}return pp=p,pp}var mp,_S;function Kq(){if(_S)return mp;_S=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",p="\\ud83c[\\udffb-\\udfff]",h="(?:"+c+"|"+p+")",f="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",C=h+"?",_="["+l+"]?",S="(?:"+x+"(?:"+[f,m,y].join("|")+")"+_+C+")*",b=_+C+S,k="(?:"+[f+c+"?",c,m,y,u].join("|")+")",N=RegExp(p+"(?="+p+")|"+k+b,"g");function j(M){for(var P=N.lastIndex=0;N.test(M);)++P;return P}return mp=j,mp}var gp,SS;function Xq(){if(SS)return gp;SS=1;var e=Gq(),n=Yq(),r=Kq();function s(o){return n(o)?r(o):e(o)}return gp=s,gp}var vp,bS;function Qq(){if(bS)return vp;bS=1;var e=Ev(),n=Ks(),r=qr(),s=Wq(),o=Xq(),l="[object Map]",u="[object Set]";function c(p){if(p==null)return 0;if(r(p))return s(p)?o(p):p.length;var h=n(p);return h==l||h==u?p.size:e(p).length}return vp=c,vp}var yp,kS;function Zq(){if(kS)return yp;kS=1;var e=Sv(),n=FN(),r=Av(),s=Lr(),o=hu(),l=bt(),u=Ys(),c=fa(),p=Mn(),h=ma();function f(m,y,x){var C=l(m),_=C||u(m)||h(m);if(y=s(y,4),x==null){var S=m&&m.constructor;_?x=C?new S:[]:p(m)?x=c(S)?n(o(m)):{}:x={}}return(_?e:r)(m,function(b,k,N){return y(x,b,k,N)}),x}return yp=f,yp}var wp,ES;function Jq(){if(ES)return wp;ES=1;var e=Gs(),n=pa(),r=bt(),s=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(s&&l&&l[s])}return wp=o,wp}var xp,NS;function Pv(){if(NS)return xp;NS=1;var e=Cv(),n=Jq();function r(s,o,l,u,c){var p=-1,h=s.length;for(l||(l=n),c||(c=[]);++p<h;){var f=s[p];o>0&&l(f)?o>1?r(f,o-1,l,u,c):e(c,f):u||(c[c.length]=f)}return c}return xp=r,xp}var _p,CS;function eL(){if(CS)return _p;CS=1;function e(n,r,s){switch(s.length){case 0:return n.call(r);case 1:return n.call(r,s[0]);case 2:return n.call(r,s[0],s[1]);case 3:return n.call(r,s[0],s[1],s[2])}return n.apply(r,s)}return _p=e,_p}var Sp,jS;function lC(){if(jS)return Sp;jS=1;var e=eL(),n=Math.max;function r(s,o,l){return o=n(o===void 0?s.length-1:o,0),function(){for(var u=arguments,c=-1,p=n(u.length-o,0),h=Array(p);++c<p;)h[c]=u[o+c];c=-1;for(var f=Array(o+1);++c<o;)f[c]=u[c];return f[o]=l(h),e(s,this,f)}}return Sp=r,Sp}var bp,RS;function tL(){if(RS)return bp;RS=1;var e=Rv(),n=CN(),r=Ji(),s=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return bp=s,bp}var kp,TS;function nL(){if(TS)return kp;TS=1;var e=800,n=16,r=Date.now;function s(o){var l=0,u=0;return function(){var c=r(),p=n-(c-u);if(u=c,p>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return kp=s,kp}var Ep,AS;function uC(){if(AS)return Ep;AS=1;var e=tL(),n=nL(),r=n(e);return Ep=r,Ep}var Np,IS;function yu(){if(IS)return Np;IS=1;var e=Ji(),n=lC(),r=uC();function s(o,l){return r(n(o,l,e),o+"")}return Np=s,Np}var Cp,MS;function cC(){if(MS)return Cp;MS=1;function e(n,r,s,o){for(var l=n.length,u=s+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return Cp=e,Cp}var jp,PS;function rL(){if(PS)return jp;PS=1;function e(n){return n!==n}return jp=e,jp}var Rp,OS;function iL(){if(OS)return Rp;OS=1;function e(n,r,s){for(var o=s-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return Rp=e,Rp}var Tp,qS;function sL(){if(qS)return Tp;qS=1;var e=cC(),n=rL(),r=iL();function s(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return Tp=s,Tp}var Ap,LS;function oL(){if(LS)return Ap;LS=1;var e=sL();function n(r,s){var o=r==null?0:r.length;return!!o&&e(r,s,0)>-1}return Ap=n,Ap}var Ip,$S;function aL(){if($S)return Ip;$S=1;function e(n,r,s){for(var o=-1,l=n==null?0:n.length;++o<l;)if(s(r,n[o]))return!0;return!1}return Ip=e,Ip}var Mp,DS;function lL(){if(DS)return Mp;DS=1;function e(){}return Mp=e,Mp}var Pp,FS;function uL(){if(FS)return Pp;FS=1;var e=LN(),n=lL(),r=Iv(),s=1/0,o=e&&1/r(new e([,-0]))[1]==s?function(l){return new e(l)}:n;return Pp=o,Pp}var Op,zS;function cL(){if(zS)return Op;zS=1;var e=WN(),n=oL(),r=aL(),s=GN(),o=uL(),l=Iv(),u=200;function c(p,h,f){var m=-1,y=n,x=p.length,C=!0,_=[],S=_;if(f)C=!1,y=r;else if(x>=u){var b=h?null:o(p);if(b)return l(b);C=!1,y=s,S=new e}else S=h?[]:_;e:for(;++m<x;){var k=p[m],N=h?h(k):k;if(k=f||k!==0?k:0,C&&N===N){for(var j=S.length;j--;)if(S[j]===N)continue e;h&&S.push(N),_.push(k)}else y(S,N,f)||(S!==_&&S.push(N),_.push(k))}return _}return Op=c,Op}var qp,BS;function dC(){if(BS)return qp;BS=1;var e=qr(),n=hr();function r(s){return n(s)&&e(s)}return qp=r,qp}var Lp,US;function dL(){if(US)return Lp;US=1;var e=Pv(),n=yu(),r=cL(),s=dC(),o=n(function(l){return r(e(l,1,s,!0))});return Lp=o,Lp}var $p,HS;function fL(){if(HS)return $p;HS=1;var e=mu();function n(r,s){return e(s,function(o){return r[o]})}return $p=n,$p}var Dp,VS;function fC(){if(VS)return Dp;VS=1;var e=fL(),n=mi();function r(s){return s==null?[]:e(s,n(s))}return Dp=r,Dp}var Fp,WS;function Pn(){if(WS)return Fp;WS=1;var e;if(typeof wv=="function")try{e={clone:wq(),constant:Rv(),each:VN(),filter:nC(),has:rC(),isArray:bt(),isEmpty:Uq(),isFunction:fa(),isUndefined:iC(),keys:mi(),map:oC(),reduce:aC(),size:Qq(),transform:Zq(),union:dL(),values:fC()}}catch{}return e||(e=window._),Fp=e,Fp}var zp,GS;function Ov(){if(GS)return zp;GS=1;var e=Pn();zp=o;var n="\0",r="\0",s="";function o(f){this._isDirected=e.has(f,"directed")?f.directed:!0,this._isMultigraph=e.has(f,"multigraph")?f.multigraph:!1,this._isCompound=e.has(f,"compound")?f.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(f){return this._label=f,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultNodeLabelFn=f,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._in[m])})},o.prototype.sinks=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._out[m])})},o.prototype.setNodes=function(f,m){var y=arguments,x=this;return e.each(f,function(C){y.length>1?x.setNode(C,m):x.setNode(C)}),this},o.prototype.setNode=function(f,m){return e.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=m),this):(this._nodes[f]=arguments.length>1?m:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=r,this._children[f]={},this._children[r][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},o.prototype.node=function(f){return this._nodes[f]},o.prototype.hasNode=function(f){return e.has(this._nodes,f)},o.prototype.removeNode=function(f){var m=this;if(e.has(this._nodes,f)){var y=function(x){m.removeEdge(m._edgeObjs[x])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],e.each(this.children(f),function(x){m.setParent(x)}),delete this._children[f]),e.each(e.keys(this._in[f]),y),delete this._in[f],delete this._preds[f],e.each(e.keys(this._out[f]),y),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},o.prototype.setParent=function(f,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===f)throw new Error("Setting "+m+" as parent of "+f+" would create a cycle");this.setNode(m)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=m,this._children[m][f]=!0,this},o.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},o.prototype.parent=function(f){if(this._isCompound){var m=this._parent[f];if(m!==r)return m}},o.prototype.children=function(f){if(e.isUndefined(f)&&(f=r),this._isCompound){var m=this._children[f];if(m)return e.keys(m)}else{if(f===r)return this.nodes();if(this.hasNode(f))return[]}},o.prototype.predecessors=function(f){var m=this._preds[f];if(m)return e.keys(m)},o.prototype.successors=function(f){var m=this._sucs[f];if(m)return e.keys(m)},o.prototype.neighbors=function(f){var m=this.predecessors(f);if(m)return e.union(m,this.successors(f))},o.prototype.isLeaf=function(f){var m;return this.isDirected()?m=this.successors(f):m=this.neighbors(f),m.length===0},o.prototype.filterNodes=function(f){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){f(S)&&m.setNode(S,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var x={};function C(_){var S=y.parent(_);return S===void 0||m.hasNode(S)?(x[_]=S,S):S in x?x[S]:C(S)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,C(_))}),m},o.prototype.setDefaultEdgeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultEdgeLabelFn=f,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(f,m){var y=this,x=arguments;return e.reduce(f,function(C,_){return x.length>1?y.setEdge(C,_,m):y.setEdge(C,_),_}),this},o.prototype.setEdge=function(){var f,m,y,x,C=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(f=_.v,m=_.w,y=_.name,arguments.length===2&&(x=arguments[1],C=!0)):(f=_,m=arguments[1],y=arguments[3],arguments.length>2&&(x=arguments[2],C=!0)),f=""+f,m=""+m,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,f,m,y);if(e.has(this._edgeLabels,S))return C&&(this._edgeLabels[S]=x),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(m),this._edgeLabels[S]=C?x:this._defaultEdgeLabelFn(f,m,y);var b=p(this._isDirected,f,m,y);return f=b.v,m=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[m],f),l(this._sucs[f],m),this._in[m][S]=b,this._out[f][S]=b,this._edgeCount++,this},o.prototype.edge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return this._edgeLabels[x]},o.prototype.hasEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return e.has(this._edgeLabels,x)},o.prototype.removeEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y),C=this._edgeObjs[x];return C&&(f=C.v,m=C.w,delete this._edgeLabels[x],delete this._edgeObjs[x],u(this._preds[m],f),u(this._sucs[f],m),delete this._in[m][x],delete this._out[f][x],this._edgeCount--),this},o.prototype.inEdges=function(f,m){var y=this._in[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.v===m}):x}},o.prototype.outEdges=function(f,m){var y=this._out[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.w===m}):x}},o.prototype.nodeEdges=function(f,m){var y=this.inEdges(f,m);if(y)return y.concat(this.outEdges(f,m))};function l(f,m){f[m]?f[m]++:f[m]=1}function u(f,m){--f[m]||delete f[m]}function c(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}return C+s+_+s+(e.isUndefined(x)?n:x)}function p(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}var b={v:C,w:_};return x&&(b.name=x),b}function h(f,m){return c(f,m.v,m.w,m.name)}return zp}var Bp,YS;function hL(){return YS||(YS=1,Bp="2.1.8"),Bp}var Up,KS;function pL(){return KS||(KS=1,Up={Graph:Ov(),version:hL()}),Up}var Hp,XS;function mL(){if(XS)return Hp;XS=1;var e=Pn(),n=Ov();Hp={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:s(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function s(u){return e.map(u.nodes(),function(c){var p=u.node(c),h=u.parent(c),f={v:c};return e.isUndefined(p)||(f.value=p),e.isUndefined(h)||(f.parent=h),f})}function o(u){return e.map(u.edges(),function(c){var p=u.edge(c),h={v:c.v,w:c.w};return e.isUndefined(c.name)||(h.name=c.name),e.isUndefined(p)||(h.value=p),h})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(p){c.setNode(p.v,p.value),p.parent&&c.setParent(p.v,p.parent)}),e.each(u.edges,function(p){c.setEdge({v:p.v,w:p.w,name:p.name},p.value)}),c}return Hp}var Vp,QS;function gL(){if(QS)return Vp;QS=1;var e=Pn();Vp=n;function n(r){var s={},o=[],l;function u(c){e.has(s,c)||(s[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 Vp}var Wp,ZS;function hC(){if(ZS)return Wp;ZS=1;var e=Pn();Wp=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 s=this._keyIndices[r];if(s!==void 0)return this._arr[s].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,s){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:s}),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,s){var o=this._keyIndices[r];if(s>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+s);this._arr[o].priority=s,this._decrease(o)},n.prototype._heapify=function(r){var s=this._arr,o=2*r,l=o+1,u=r;o<s.length&&(u=s[o].priority<s[u].priority?o:u,l<s.length&&(u=s[l].priority<s[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var s=this._arr,o=s[r].priority,l;r!==0&&(l=r>>1,!(s[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,s){var o=this._arr,l=this._keyIndices,u=o[r],c=o[s];o[r]=c,o[s]=u,l[c.key]=r,l[u.key]=s},Wp}var Gp,JS;function pC(){if(JS)return Gp;JS=1;var e=Pn(),n=hC();Gp=s;var r=e.constant(1);function s(l,u,c,p){return o(l,String(u),c||r,p||function(h){return l.outEdges(h)})}function o(l,u,c,p){var h={},f=new n,m,y,x=function(C){var _=C.v!==m?C.v:C.w,S=h[_],b=c(C),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=m,f.decrease(_,k))};for(l.nodes().forEach(function(C){var _=C===u?0:Number.POSITIVE_INFINITY;h[C]={distance:_},f.add(C,_)});f.size()>0&&(m=f.removeMin(),y=h[m],y.distance!==Number.POSITIVE_INFINITY);)p(m).forEach(x);return h}return Gp}var Yp,eb;function vL(){if(eb)return Yp;eb=1;var e=pC(),n=Pn();Yp=r;function r(s,o,l){return n.transform(s.nodes(),function(u,c){u[c]=e(s,c,o,l)},{})}return Yp}var Kp,tb;function mC(){if(tb)return Kp;tb=1;var e=Pn();Kp=n;function n(r){var s=0,o=[],l={},u=[];function c(p){var h=l[p]={onStack:!0,lowlink:s,index:s++};if(o.push(p),r.successors(p).forEach(function(y){e.has(l,y)?l[y].onStack&&(h.lowlink=Math.min(h.lowlink,l[y].index)):(c(y),h.lowlink=Math.min(h.lowlink,l[y].lowlink))}),h.lowlink===h.index){var f=[],m;do m=o.pop(),l[m].onStack=!1,f.push(m);while(p!==m);u.push(f)}}return r.nodes().forEach(function(p){e.has(l,p)||c(p)}),u}return Kp}var Xp,nb;function yL(){if(nb)return Xp;nb=1;var e=Pn(),n=mC();Xp=r;function r(s){return e.filter(n(s),function(o){return o.length>1||o.length===1&&s.hasEdge(o[0],o[0])})}return Xp}var Qp,rb;function wL(){if(rb)return Qp;rb=1;var e=Pn();Qp=r;var n=e.constant(1);function r(o,l,u){return s(o,l||n,u||function(c){return o.outEdges(c)})}function s(o,l,u){var c={},p=o.nodes();return p.forEach(function(h){c[h]={},c[h][h]={distance:0},p.forEach(function(f){h!==f&&(c[h][f]={distance:Number.POSITIVE_INFINITY})}),u(h).forEach(function(f){var m=f.v===h?f.w:f.v,y=l(f);c[h][m]={distance:y,predecessor:h}})}),p.forEach(function(h){var f=c[h];p.forEach(function(m){var y=c[m];p.forEach(function(x){var C=y[h],_=f[x],S=y[x],b=C.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return Qp}var Zp,ib;function gC(){if(ib)return Zp;ib=1;var e=Pn();Zp=n,n.CycleException=r;function n(s){var o={},l={},u=[];function c(p){if(e.has(l,p))throw new r;e.has(o,p)||(l[p]=!0,o[p]=!0,e.each(s.predecessors(p),c),delete l[p],u.push(p))}if(e.each(s.sinks(),c),e.size(o)!==s.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Zp}var Jp,sb;function xL(){if(sb)return Jp;sb=1;var e=gC();Jp=n;function n(r){try{e(r)}catch(s){if(s instanceof e.CycleException)return!1;throw s}return!0}return Jp}var em,ob;function vC(){if(ob)return em;ob=1;var e=Pn();em=n;function n(s,o,l){e.isArray(o)||(o=[o]);var u=(s.isDirected()?s.successors:s.neighbors).bind(s),c=[],p={};return e.each(o,function(h){if(!s.hasNode(h))throw new Error("Graph does not have node: "+h);r(s,h,l==="post",p,u,c)}),c}function r(s,o,l,u,c,p){e.has(u,o)||(u[o]=!0,l||p.push(o),e.each(c(o),function(h){r(s,h,l,u,c,p)}),l&&p.push(o))}return em}var tm,ab;function _L(){if(ab)return tm;ab=1;var e=vC();tm=n;function n(r,s){return e(r,s,"post")}return tm}var nm,lb;function SL(){if(lb)return nm;lb=1;var e=vC();nm=n;function n(r,s){return e(r,s,"pre")}return nm}var rm,ub;function bL(){if(ub)return rm;ub=1;var e=Pn(),n=Ov(),r=hC();rm=s;function s(o,l){var u=new n,c={},p=new r,h;function f(y){var x=y.v===h?y.w:y.v,C=p.priority(x);if(C!==void 0){var _=l(y);_<C&&(c[x]=h,p.decrease(x,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){p.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),p.decrease(o.nodes()[0],0);for(var m=!1;p.size()>0;){if(h=p.removeMin(),e.has(c,h))u.setEdge(h,c[h]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(h).forEach(f)}return u}return rm}var im,cb;function kL(){return cb||(cb=1,im={components:gL(),dijkstra:pC(),dijkstraAll:vL(),findCycles:yL(),floydWarshall:wL(),isAcyclic:xL(),postorder:_L(),preorder:SL(),prim:bL(),tarjan:mC(),topsort:gC()}),im}var sm,db;function EL(){if(db)return sm;db=1;var e=pL();return sm={Graph:e.Graph,json:mL(),alg:kL(),version:e.version},sm}var om,fb;function Zn(){if(fb)return om;fb=1;var e;if(typeof wv=="function")try{e=EL()}catch{}return e||(e=window.graphlib),om=e,om}var am,hb;function NL(){if(hb)return am;hb=1;var e=BN(),n=1,r=4;function s(o){return e(o,n|r)}return am=s,am}var lm,pb;function wu(){if(pb)return lm;pb=1;var e=Ws(),n=qr(),r=cu(),s=Mn();function o(l,u,c){if(!s(c))return!1;var p=typeof u;return(p=="number"?n(c)&&r(u,c.length):p=="string"&&u in c)?e(c[u],l):!1}return lm=o,lm}var um,mb;function CL(){if(mb)return um;mb=1;var e=yu(),n=Ws(),r=wu(),s=Zi(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,p){c=Object(c);var h=-1,f=p.length,m=f>2?p[2]:void 0;for(m&&r(p[0],p[1],m)&&(f=1);++h<f;)for(var y=p[h],x=s(y),C=-1,_=x.length;++C<_;){var S=x[C],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return um=u,um}var cm,gb;function jL(){if(gb)return cm;gb=1;var e=Lr(),n=qr(),r=mi();function s(o){return function(l,u,c){var p=Object(l);if(!n(l)){var h=e(u,3);l=r(l),u=function(m){return h(p[m],m,p)}}var f=o(l,u,c);return f>-1?p[h?l[f]:f]:void 0}}return cm=s,cm}var dm,vb;function RL(){if(vb)return dm;vb=1;var e=/\s/;function n(r){for(var s=r.length;s--&&e.test(r.charAt(s)););return s}return dm=n,dm}var fm,yb;function TL(){if(yb)return fm;yb=1;var e=RL(),n=/^\s+/;function r(s){return s&&s.slice(0,e(s)+1).replace(n,"")}return fm=r,fm}var hm,wb;function AL(){if(wb)return hm;wb=1;var e=TL(),n=Mn(),r=Xs(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function p(h){if(typeof h=="number")return h;if(r(h))return s;if(n(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=n(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=e(h);var m=l.test(h);return m||u.test(h)?c(h.slice(2),m?2:8):o.test(h)?s:+h}return hm=p,hm}var pm,xb;function yC(){if(xb)return pm;xb=1;var e=AL(),n=1/0,r=17976931348623157e292;function s(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 pm=s,pm}var mm,_b;function IL(){if(_b)return mm;_b=1;var e=yC();function n(r){var s=e(r),o=s%1;return s===s?o?s-o:s:0}return mm=n,mm}var gm,Sb;function ML(){if(Sb)return gm;Sb=1;var e=cC(),n=Lr(),r=IL(),s=Math.max;function o(l,u,c){var p=l==null?0:l.length;if(!p)return-1;var h=c==null?0:r(c);return h<0&&(h=s(p+h,0)),e(l,n(u,3),h)}return gm=o,gm}var vm,bb;function PL(){if(bb)return vm;bb=1;var e=jL(),n=ML(),r=e(n);return vm=r,vm}var ym,kb;function wC(){if(kb)return ym;kb=1;var e=Pv();function n(r){var s=r==null?0:r.length;return s?e(r,1):[]}return ym=n,ym}var wm,Eb;function OL(){if(Eb)return wm;Eb=1;var e=Tv(),n=UN(),r=Zi();function s(o,l){return o==null?o:e(o,n(l),r)}return wm=s,wm}var xm,Nb;function qL(){if(Nb)return xm;Nb=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return xm=e,xm}var _m,Cb;function LL(){if(Cb)return _m;Cb=1;var e=lu(),n=Av(),r=Lr();function s(o,l){var u={};return l=r(l,3),n(o,function(c,p,h){e(u,p,l(c,p,h))}),u}return _m=s,_m}var Sm,jb;function qv(){if(jb)return Sm;jb=1;var e=Xs();function n(r,s,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],p=s(c);if(p!=null&&(h===void 0?p===p&&!e(p):o(p,h)))var h=p,f=c}return f}return Sm=n,Sm}var bm,Rb;function $L(){if(Rb)return bm;Rb=1;function e(n,r){return n>r}return bm=e,bm}var km,Tb;function DL(){if(Tb)return km;Tb=1;var e=qv(),n=$L(),r=Ji();function s(o){return o&&o.length?e(o,r,n):void 0}return km=s,km}var Em,Ab;function xC(){if(Ab)return Em;Ab=1;var e=lu(),n=Ws();function r(s,o,l){(l!==void 0&&!n(s[o],l)||l===void 0&&!(o in s))&&e(s,o,l)}return Em=r,Em}var Nm,Ib;function FL(){if(Ib)return Nm;Ib=1;var e=Xi(),n=hu(),r=hr(),s="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,p=u.call(Object);function h(f){if(!r(f)||e(f)!=s)return!1;var m=n(f);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==p}return Nm=h,Nm}var Cm,Mb;function _C(){if(Mb)return Cm;Mb=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return Cm=e,Cm}var jm,Pb;function zL(){if(Pb)return jm;Pb=1;var e=ha(),n=Zi();function r(s){return e(s,n(s))}return jm=r,jm}var Rm,Ob;function BL(){if(Ob)return Rm;Ob=1;var e=xC(),n=TN(),r=DN(),s=AN(),o=zN(),l=pa(),u=bt(),c=dC(),p=Ys(),h=fa(),f=Mn(),m=FL(),y=ma(),x=_C(),C=zL();function _(S,b,k,N,j,M,P){var O=x(S,k),B=x(b,k),L=P.get(B);if(L){e(S,k,L);return}var q=M?M(O,B,k+"",S,b,P):void 0,I=q===void 0;if(I){var H=u(B),X=!H&&p(B),T=!H&&!X&&y(B);q=B,H||X||T?u(O)?q=O:c(O)?q=s(O):X?(I=!1,q=n(B,!0)):T?(I=!1,q=r(B,!0)):q=[]:m(B)||l(B)?(q=O,l(O)?q=C(O):(!f(O)||h(O))&&(q=o(B))):I=!1}I&&(P.set(B,q),j(q,B,N,M,P),P.delete(B)),e(S,k,q)}return Rm=_,Rm}var Tm,qb;function UL(){if(qb)return Tm;qb=1;var e=au(),n=xC(),r=Tv(),s=BL(),o=Mn(),l=Zi(),u=_C();function c(p,h,f,m,y){p!==h&&r(h,function(x,C){if(y||(y=new e),o(x))s(p,h,C,f,c,m,y);else{var _=m?m(u(p,C),x,C+"",p,h,y):void 0;_===void 0&&(_=x),n(p,C,_)}},l)}return Tm=c,Tm}var Am,Lb;function HL(){if(Lb)return Am;Lb=1;var e=yu(),n=wu();function r(s){return e(function(o,l){var u=-1,c=l.length,p=c>1?l[c-1]:void 0,h=c>2?l[2]:void 0;for(p=s.length>3&&typeof p=="function"?(c--,p):void 0,h&&n(l[0],l[1],h)&&(p=c<3?void 0:p,c=1),o=Object(o);++u<c;){var f=l[u];f&&s(o,f,u,p)}return o})}return Am=r,Am}var Im,$b;function VL(){if($b)return Im;$b=1;var e=UL(),n=HL(),r=n(function(s,o,l){e(s,o,l)});return Im=r,Im}var Mm,Db;function SC(){if(Db)return Mm;Db=1;function e(n,r){return n<r}return Mm=e,Mm}var Pm,Fb;function WL(){if(Fb)return Pm;Fb=1;var e=qv(),n=SC(),r=Ji();function s(o){return o&&o.length?e(o,r,n):void 0}return Pm=s,Pm}var Om,zb;function GL(){if(zb)return Om;zb=1;var e=qv(),n=Lr(),r=SC();function s(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return Om=s,Om}var qm,Bb;function YL(){if(Bb)return qm;Bb=1;var e=er(),n=function(){return e.Date.now()};return qm=n,qm}var Lm,Ub;function KL(){if(Ub)return Lm;Ub=1;var e=uu(),n=gu(),r=cu(),s=Mn(),o=ga();function l(u,c,p,h){if(!s(u))return u;c=n(c,u);for(var f=-1,m=c.length,y=m-1,x=u;x!=null&&++f<m;){var C=o(c[f]),_=p;if(C==="__proto__"||C==="constructor"||C==="prototype")return u;if(f!=y){var S=x[C];_=h?h(S,C,x):void 0,_===void 0&&(_=s(S)?S:r(c[f+1])?[]:{})}e(x,C,_),x=x[C]}return u}return Lm=l,Lm}var $m,Hb;function XL(){if(Hb)return $m;Hb=1;var e=vu(),n=KL(),r=gu();function s(o,l,u){for(var c=-1,p=l.length,h={};++c<p;){var f=l[c],m=e(o,f);u(m,f)&&n(h,r(f,o),m)}return h}return $m=s,$m}var Dm,Vb;function QL(){if(Vb)return Dm;Vb=1;var e=XL(),n=eC();function r(s,o){return e(s,o,function(l,u){return n(s,u)})}return Dm=r,Dm}var Fm,Wb;function ZL(){if(Wb)return Fm;Wb=1;var e=wC(),n=lC(),r=uC();function s(o){return r(n(o,void 0,e),o+"")}return Fm=s,Fm}var zm,Gb;function JL(){if(Gb)return zm;Gb=1;var e=QL(),n=ZL(),r=n(function(s,o){return s==null?{}:e(s,o)});return zm=r,zm}var Bm,Yb;function e$(){if(Yb)return Bm;Yb=1;var e=Math.ceil,n=Math.max;function r(s,o,l,u){for(var c=-1,p=n(e((o-s)/(l||1)),0),h=Array(p);p--;)h[u?p:++c]=s,s+=l;return h}return Bm=r,Bm}var Um,Kb;function t$(){if(Kb)return Um;Kb=1;var e=e$(),n=wu(),r=yC();function s(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 Um=s,Um}var Hm,Xb;function n$(){if(Xb)return Hm;Xb=1;var e=t$(),n=e();return Hm=n,Hm}var Vm,Qb;function r$(){if(Qb)return Vm;Qb=1;function e(n,r){var s=n.length;for(n.sort(r);s--;)n[s]=n[s].value;return n}return Vm=e,Vm}var Wm,Zb;function i$(){if(Zb)return Wm;Zb=1;var e=Xs();function n(r,s){if(r!==s){var o=r!==void 0,l=r===null,u=r===r,c=e(r),p=s!==void 0,h=s===null,f=s===s,m=e(s);if(!h&&!m&&!c&&r>s||c&&p&&f&&!h&&!m||l&&p&&f||!o&&f||!u)return 1;if(!l&&!c&&!m&&r<s||m&&o&&u&&!l&&!c||h&&o&&u||!p&&u||!f)return-1}return 0}return Wm=n,Wm}var Gm,Jb;function s$(){if(Jb)return Gm;Jb=1;var e=i$();function n(r,s,o){for(var l=-1,u=r.criteria,c=s.criteria,p=u.length,h=o.length;++l<p;){var f=e(u[l],c[l]);if(f){if(l>=h)return f;var m=o[l];return f*(m=="desc"?-1:1)}}return r.index-s.index}return Gm=n,Gm}var Ym,ek;function o$(){if(ek)return Ym;ek=1;var e=mu(),n=vu(),r=Lr(),s=sC(),o=r$(),l=du(),u=s$(),c=Ji(),p=bt();function h(f,m,y){m.length?m=e(m,function(_){return p(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):m=[c];var x=-1;m=e(m,l(r));var C=s(f,function(_,S,b){var k=e(m,function(N){return N(_)});return{criteria:k,index:++x,value:_}});return o(C,function(_,S){return u(_,S,y)})}return Ym=h,Ym}var Km,tk;function a$(){if(tk)return Km;tk=1;var e=Pv(),n=o$(),r=yu(),s=wu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&s(l,u[0],u[1])?u=[]:c>2&&s(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return Km=o,Km}var Xm,nk;function l$(){if(nk)return Xm;nk=1;var e=ZN(),n=0;function r(s){var o=++n;return e(s)+o}return Xm=r,Xm}var Qm,rk;function u$(){if(rk)return Qm;rk=1;function e(n,r,s){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var p=o<u?r[o]:void 0;s(c,n[o],p)}return c}return Qm=e,Qm}var Zm,ik;function c$(){if(ik)return Zm;ik=1;var e=uu(),n=u$();function r(s,o){return n(s||[],o||[],e)}return Zm=r,Zm}var Jm,sk;function ot(){if(sk)return Jm;sk=1;var e;if(typeof wv=="function")try{e={cloneDeep:NL(),constant:Rv(),defaults:CL(),each:VN(),filter:nC(),find:PL(),flatten:wC(),forEach:HN(),forIn:OL(),has:rC(),isUndefined:iC(),last:qL(),map:oC(),mapValues:LL(),max:DL(),merge:VL(),min:WL(),minBy:GL(),now:YL(),pick:JL(),range:n$(),reduce:aC(),sortBy:a$(),uniqueId:l$(),values:fC(),zipObject:c$()}}catch{}return e||(e=window._),Jm=e,Jm}var eg,ok;function d$(){if(ok)return eg;ok=1,eg=e;function e(){var s={};s._next=s._prev=s,this._sentinel=s}e.prototype.dequeue=function(){var s=this._sentinel,o=s._prev;if(o!==s)return n(o),o},e.prototype.enqueue=function(s){var o=this._sentinel;s._prev&&s._next&&n(s),s._next=o._next,o._next._prev=s,o._next=s,s._prev=o},e.prototype.toString=function(){for(var s=[],o=this._sentinel,l=o._prev;l!==o;)s.push(JSON.stringify(l,r)),l=l._prev;return"["+s.join(", ")+"]"};function n(s){s._prev._next=s._next,s._next._prev=s._prev,delete s._next,delete s._prev}function r(s,o){if(s!=="_next"&&s!=="_prev")return o}return eg}var tg,ak;function f$(){if(ak)return tg;ak=1;var e=ot(),n=Zn().Graph,r=d$();tg=o;var s=e.constant(1);function o(h,f){if(h.nodeCount()<=1)return[];var m=c(h,f||s),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(x){return h.outEdges(x.v,x.w)}),!0)}function l(h,f,m){for(var y=[],x=f[f.length-1],C=f[0],_;h.nodeCount();){for(;_=C.dequeue();)u(h,f,m,_);for(;_=x.dequeue();)u(h,f,m,_);if(h.nodeCount()){for(var S=f.length-2;S>0;--S)if(_=f[S].dequeue(),_){y=y.concat(u(h,f,m,_,!0));break}}}return y}function u(h,f,m,y,x){var C=x?[]:void 0;return e.forEach(h.inEdges(y.v),function(_){var S=h.edge(_),b=h.node(_.v);x&&C.push({v:_.v,w:_.w}),b.out-=S,p(f,m,b)}),e.forEach(h.outEdges(y.v),function(_){var S=h.edge(_),b=_.w,k=h.node(b);k.in-=S,p(f,m,k)}),h.removeNode(y.v),C}function c(h,f){var m=new n,y=0,x=0;e.forEach(h.nodes(),function(S){m.setNode(S,{v:S,in:0,out:0})}),e.forEach(h.edges(),function(S){var b=m.edge(S.v,S.w)||0,k=f(S),N=b+k;m.setEdge(S.v,S.w,N),x=Math.max(x,m.node(S.v).out+=k),y=Math.max(y,m.node(S.w).in+=k)});var C=e.range(x+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(S){p(C,_,m.node(S))}),{graph:m,buckets:C,zeroIdx:_}}function p(h,f,m){m.out?m.in?h[m.out-m.in+f].enqueue(m):h[h.length-1].enqueue(m):h[0].enqueue(m)}return tg}var ng,lk;function h$(){if(lk)return ng;lk=1;var e=ot(),n=f$();ng={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):s(l);e.forEach(u,function(p){var h=l.edge(p);l.removeEdge(p),h.forwardName=p.name,h.reversed=!0,l.setEdge(p.w,p.v,h,e.uniqueId("rev"))});function c(p){return function(h){return p.edge(h).weight}}}function s(l){var u=[],c={},p={};function h(f){e.has(p,f)||(p[f]=!0,c[f]=!0,e.forEach(l.outEdges(f),function(m){e.has(c,m.w)?u.push(m):h(m.w)}),delete c[f])}return e.forEach(l.nodes(),h),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var p=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,p)}})}return ng}var rg,uk;function an(){if(uk)return rg;uk=1;var e=ot(),n=Zn().Graph;rg={addDummyNode:r,simplify:s,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:p,normalizeRanks:h,removeEmptyRanks:f,addBorderNode:m,maxRank:y,partition:x,time:C,notime:_};function r(S,b,k,N){var j;do j=e.uniqueId(N);while(S.hasNode(j));return k.dummy=b,S.setNode(j,k),j}function s(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var N=b.edge(k.v,k.w)||{weight:0,minlen:1},j=S.edge(k);b.setEdge(k.v,k.w,{weight:N.weight+j.weight,minlen:Math.max(N.minlen,j.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.outEdges(k),function(j){N[j.w]=(N[j.w]||0)+S.edge(j).weight}),N});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.inEdges(k),function(j){N[j.v]=(N[j.v]||0)+S.edge(j).weight}),N});return e.zipObject(S.nodes(),b)}function c(S,b){var k=S.x,N=S.y,j=b.x-k,M=b.y-N,P=S.width/2,O=S.height/2;if(!j&&!M)throw new Error("Not possible to find intersection inside of the rectangle");var B,L;return Math.abs(M)*P>Math.abs(j)*O?(M<0&&(O=-O),B=O*j/M,L=O):(j<0&&(P=-P),B=P,L=P*M/j),{x:k+B,y:N+L}}function p(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var N=S.node(k),j=N.rank;e.isUndefined(j)||(b[j][N.order]=k)}),b}function h(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var N=S.node(k);e.has(N,"rank")&&(N.rank-=b)})}function f(S){var b=e.min(e.map(S.nodes(),function(M){return S.node(M).rank})),k=[];e.forEach(S.nodes(),function(M){var P=S.node(M).rank-b;k[P]||(k[P]=[]),k[P].push(M)});var N=0,j=S.graph().nodeRankFactor;e.forEach(k,function(M,P){e.isUndefined(M)&&P%j!==0?--N:N&&e.forEach(M,function(O){S.node(O).rank+=N})})}function m(S,b,k,N){var j={width:0,height:0};return arguments.length>=4&&(j.rank=k,j.order=N),r(S,"border",j,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function x(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(N){b(N)?k.lhs.push(N):k.rhs.push(N)}),k}function C(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return rg}var ig,ck;function p$(){if(ck)return ig;ck=1;var e=ot(),n=an();ig={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){s(l,u)})}function s(l,u){var c=u.v,p=l.node(c).rank,h=u.w,f=l.node(h).rank,m=u.name,y=l.edge(u),x=y.labelRank;if(f!==p+1){l.removeEdge(u);var C,_,S;for(S=0,++p;p<f;++S,++p)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:p},C=n.addDummyNode(l,"edge",_,"_d"),p===x&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,C,{weight:y.weight},m),S===0&&l.graph().dummyChains.push(C),c=C;l.setEdge(c,h,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),p=c.edgeLabel,h;for(l.setEdge(c.edgeObj,p);c.dummy;)h=l.successors(u)[0],l.removeNode(u),p.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(p.x=c.x,p.y=c.y,p.width=c.width,p.height=c.height),u=h,c=l.node(u)})}return ig}var sg,dk;function Yl(){if(dk)return sg;dk=1;var e=ot();sg={longestPath:n,slack:r};function n(s){var o={};function l(u){var c=s.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var p=e.min(e.map(s.outEdges(u),function(h){return l(h.w)-s.edge(h).minlen}));return(p===Number.POSITIVE_INFINITY||p===void 0||p===null)&&(p=0),c.rank=p}e.forEach(s.sources(),l)}function r(s,o){return s.node(o.w).rank-s.node(o.v).rank-s.edge(o).minlen}return sg}var og,fk;function bC(){if(fk)return og;fk=1;var e=ot(),n=Zn().Graph,r=Yl().slack;og=s;function s(c){var p=new n({directed:!1}),h=c.nodes()[0],f=c.nodeCount();p.setNode(h,{});for(var m,y;o(p,c)<f;)m=l(p,c),y=p.hasNode(m.v)?r(c,m):-r(c,m),u(p,c,y);return p}function o(c,p){function h(f){e.forEach(p.nodeEdges(f),function(m){var y=m.v,x=f===y?m.w:y;!c.hasNode(x)&&!r(p,m)&&(c.setNode(x,{}),c.setEdge(f,x,{}),h(x))})}return e.forEach(c.nodes(),h),c.nodeCount()}function l(c,p){return e.minBy(p.edges(),function(h){if(c.hasNode(h.v)!==c.hasNode(h.w))return r(p,h)})}function u(c,p,h){e.forEach(c.nodes(),function(f){p.node(f).rank+=h})}return og}var ag,hk;function m$(){if(hk)return ag;hk=1;var e=ot(),n=bC(),r=Yl().slack,s=Yl().longestPath,o=Zn().alg.preorder,l=Zn().alg.postorder,u=an().simplify;ag=c,c.initLowLimValues=m,c.initCutValues=p,c.calcCutValue=f,c.leaveEdge=x,c.enterEdge=C,c.exchangeEdges=_;function c(N){N=u(N),s(N);var j=n(N);m(j),p(j,N);for(var M,P;M=x(j);)P=C(j,N,M),_(j,N,M,P)}function p(N,j){var M=l(N,N.nodes());M=M.slice(0,M.length-1),e.forEach(M,function(P){h(N,j,P)})}function h(N,j,M){var P=N.node(M),O=P.parent;N.edge(M,O).cutvalue=f(N,j,M)}function f(N,j,M){var P=N.node(M),O=P.parent,B=!0,L=j.edge(M,O),q=0;return L||(B=!1,L=j.edge(O,M)),q=L.weight,e.forEach(j.nodeEdges(M),function(I){var H=I.v===M,X=H?I.w:I.v;if(X!==O){var T=H===B,K=j.edge(I).weight;if(q+=T?K:-K,b(N,M,X)){var U=N.edge(M,X).cutvalue;q+=T?-U:U}}}),q}function m(N,j){arguments.length<2&&(j=N.nodes()[0]),y(N,{},1,j)}function y(N,j,M,P,O){var B=M,L=N.node(P);return j[P]=!0,e.forEach(N.neighbors(P),function(q){e.has(j,q)||(M=y(N,j,M,q,P))}),L.low=B,L.lim=M++,O?L.parent=O:delete L.parent,M}function x(N){return e.find(N.edges(),function(j){return N.edge(j).cutvalue<0})}function C(N,j,M){var P=M.v,O=M.w;j.hasEdge(P,O)||(P=M.w,O=M.v);var B=N.node(P),L=N.node(O),q=B,I=!1;B.lim>L.lim&&(q=L,I=!0);var H=e.filter(j.edges(),function(X){return I===k(N,N.node(X.v),q)&&I!==k(N,N.node(X.w),q)});return e.minBy(H,function(X){return r(j,X)})}function _(N,j,M,P){var O=M.v,B=M.w;N.removeEdge(O,B),N.setEdge(P.v,P.w,{}),m(N),p(N,j),S(N,j)}function S(N,j){var M=e.find(N.nodes(),function(O){return!j.node(O).parent}),P=o(N,M);P=P.slice(1),e.forEach(P,function(O){var B=N.node(O).parent,L=j.edge(O,B),q=!1;L||(L=j.edge(B,O),q=!0),j.node(O).rank=j.node(B).rank+(q?L.minlen:-L.minlen)})}function b(N,j,M){return N.hasEdge(j,M)}function k(N,j,M){return M.low<=j.lim&&j.lim<=M.lim}return ag}var lg,pk;function g$(){if(pk)return lg;pk=1;var e=Yl(),n=e.longestPath,r=bC(),s=m$();lg=o;function o(p){switch(p.graph().ranker){case"network-simplex":c(p);break;case"tight-tree":u(p);break;case"longest-path":l(p);break;default:c(p)}}var l=n;function u(p){n(p),r(p)}function c(p){s(p)}return lg}var ug,mk;function v$(){if(mk)return ug;mk=1;var e=ot();ug=n;function n(o){var l=s(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),p=c.edgeObj,h=r(o,l,p.v,p.w),f=h.path,m=h.lca,y=0,x=f[y],C=!0;u!==p.w;){if(c=o.node(u),C){for(;(x=f[y])!==m&&o.node(x).maxRank<c.rank;)y++;x===m&&(C=!1)}if(!C){for(;y<f.length-1&&o.node(x=f[y+1]).minRank<=c.rank;)y++;x=f[y]}o.setParent(u,x),u=o.successors(u)[0]}})}function r(o,l,u,c){var p=[],h=[],f=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,x;y=u;do y=o.parent(y),p.push(y);while(y&&(l[y].low>f||m>l[y].lim));for(x=y,y=c;(y=o.parent(y))!==x;)h.push(y);return{path:p.concat(h.reverse()),lca:x}}function s(o){var l={},u=0;function c(p){var h=u;e.forEach(o.children(p),c),l[p]={low:h,lim:u++}}return e.forEach(o.children(),c),l}return ug}var cg,gk;function y$(){if(gk)return cg;gk=1;var e=ot(),n=an();cg={run:r,cleanup:u};function r(c){var p=n.addDummyNode(c,"root",{},"_root"),h=o(c),f=e.max(e.values(h))-1,m=2*f+1;c.graph().nestingRoot=p,e.forEach(c.edges(),function(x){c.edge(x).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(x){s(c,p,m,y,f,h,x)}),c.graph().nodeRankFactor=m}function s(c,p,h,f,m,y,x){var C=c.children(x);if(!C.length){x!==p&&c.setEdge(p,x,{weight:0,minlen:h});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(x);c.setParent(_,x),b.borderTop=_,c.setParent(S,x),b.borderBottom=S,e.forEach(C,function(k){s(c,p,h,f,m,y,k);var N=c.node(k),j=N.borderTop?N.borderTop:k,M=N.borderBottom?N.borderBottom:k,P=N.borderTop?f:2*f,O=j!==M?1:m-y[x]+1;c.setEdge(_,j,{weight:P,minlen:O,nestingEdge:!0}),c.setEdge(M,S,{weight:P,minlen:O,nestingEdge:!0})}),c.parent(x)||c.setEdge(p,_,{weight:0,minlen:m+y[x]})}function o(c){var p={};function h(f,m){var y=c.children(f);y&&y.length&&e.forEach(y,function(x){h(x,m+1)}),p[f]=m}return e.forEach(c.children(),function(f){h(f,1)}),p}function l(c){return e.reduce(c.edges(),function(p,h){return p+c.edge(h).weight},0)}function u(c){var p=c.graph();c.removeNode(p.nestingRoot),delete p.nestingRoot,e.forEach(c.edges(),function(h){var f=c.edge(h);f.nestingEdge&&c.removeEdge(h)})}return cg}var dg,vk;function w$(){if(vk)return dg;vk=1;var e=ot(),n=an();dg=r;function r(o){function l(u){var c=o.children(u),p=o.node(u);if(c.length&&e.forEach(c,l),e.has(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var h=p.minRank,f=p.maxRank+1;h<f;++h)s(o,"borderLeft","_bl",u,p,h),s(o,"borderRight","_br",u,p,h)}}e.forEach(o.children(),l)}function s(o,l,u,c,p,h){var f={width:0,height:0,rank:h,borderType:l},m=p[l][h-1],y=n.addDummyNode(o,"border",f,u);p[l][h]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return dg}var fg,yk;function x$(){if(yk)return fg;yk=1;var e=ot();fg={adjust:n,undo:r};function n(h){var f=h.graph().rankdir.toLowerCase();(f==="lr"||f==="rl")&&s(h)}function r(h){var f=h.graph().rankdir.toLowerCase();(f==="bt"||f==="rl")&&l(h),(f==="lr"||f==="rl")&&(c(h),s(h))}function s(h){e.forEach(h.nodes(),function(f){o(h.node(f))}),e.forEach(h.edges(),function(f){o(h.edge(f))})}function o(h){var f=h.width;h.width=h.height,h.height=f}function l(h){e.forEach(h.nodes(),function(f){u(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(h){h.y=-h.y}function c(h){e.forEach(h.nodes(),function(f){p(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,p),e.has(m,"x")&&p(m)})}function p(h){var f=h.x;h.x=h.y,h.y=f}return fg}var hg,wk;function _$(){if(wk)return hg;wk=1;var e=ot();hg=n;function n(r){var s={},o=e.filter(r.nodes(),function(h){return!r.children(h).length}),l=e.max(e.map(o,function(h){return r.node(h).rank})),u=e.map(e.range(l+1),function(){return[]});function c(h){if(!e.has(s,h)){s[h]=!0;var f=r.node(h);u[f.rank].push(h),e.forEach(r.successors(h),c)}}var p=e.sortBy(o,function(h){return r.node(h).rank});return e.forEach(p,c),u}return hg}var pg,xk;function S$(){if(xk)return pg;xk=1;var e=ot();pg=n;function n(s,o){for(var l=0,u=1;u<o.length;++u)l+=r(s,o[u-1],o[u]);return l}function r(s,o,l){for(var u=e.zipObject(l,e.map(l,function(y,x){return x})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(s.outEdges(y),function(x){return{pos:u[x.w],weight:s.edge(x).weight}}),"pos")}),!0),p=1;p<l.length;)p<<=1;var h=2*p-1;p-=1;var f=e.map(new Array(h),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var x=y.pos+p;f[x]+=y.weight;for(var C=0;x>0;)x%2&&(C+=f[x+1]),x=x-1>>1,f[x]+=y.weight;m+=y.weight*C})),m}return pg}var mg,_k;function b$(){if(_k)return mg;_k=1;var e=ot();mg=n;function n(r,s){return e.map(s,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,p){var h=r.edge(p),f=r.node(p.v);return{sum:c.sum+h.weight*f.order,weight:c.weight+h.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return mg}var gg,Sk;function k$(){if(Sk)return gg;Sk=1;var e=ot();gg=n;function n(o,l){var u={};e.forEach(o,function(p,h){var f=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:h};e.isUndefined(p.barycenter)||(f.barycenter=p.barycenter,f.weight=p.weight)}),e.forEach(l.edges(),function(p){var h=u[p.v],f=u[p.w];!e.isUndefined(h)&&!e.isUndefined(f)&&(f.indegree++,h.out.push(u[p.w]))});var c=e.filter(u,function(p){return!p.indegree});return r(c)}function r(o){var l=[];function u(h){return function(f){f.merged||(e.isUndefined(f.barycenter)||e.isUndefined(h.barycenter)||f.barycenter>=h.barycenter)&&s(h,f)}}function c(h){return function(f){f.in.push(h),--f.indegree===0&&o.push(f)}}for(;o.length;){var p=o.pop();l.push(p),e.forEach(p.in.reverse(),u(p)),e.forEach(p.out,c(p))}return e.map(e.filter(l,function(h){return!h.merged}),function(h){return e.pick(h,["vs","i","barycenter","weight"])})}function s(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 gg}var vg,bk;function E$(){if(bk)return vg;bk=1;var e=ot(),n=an();vg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),p=c.lhs,h=e.sortBy(c.rhs,function(_){return-_.i}),f=[],m=0,y=0,x=0;p.sort(o(!!u)),x=s(f,h,x),e.forEach(p,function(_){x+=_.vs.length,f.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,x=s(f,h,x)});var C={vs:e.flatten(f,!0)};return y&&(C.barycenter=m/y,C.weight=y),C}function s(l,u,c){for(var p;u.length&&(p=e.last(u)).i<=c;)u.pop(),l.push(p.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 vg}var yg,kk;function N$(){if(kk)return yg;kk=1;var e=ot(),n=b$(),r=k$(),s=E$();yg=o;function o(c,p,h,f){var m=c.children(p),y=c.node(p),x=y?y.borderLeft:void 0,C=y?y.borderRight:void 0,_={};x&&(m=e.filter(m,function(M){return M!==x&&M!==C}));var S=n(c,m);e.forEach(S,function(M){if(c.children(M.v).length){var P=o(c,M.v,h,f);_[M.v]=P,e.has(P,"barycenter")&&u(M,P)}});var b=r(S,h);l(b,_);var k=s(b,f);if(x&&(k.vs=e.flatten([x,k.vs,C],!0),c.predecessors(x).length)){var N=c.node(c.predecessors(x)[0]),j=c.node(c.predecessors(C)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+N.order+j.order)/(k.weight+2),k.weight+=2}return k}function l(c,p){e.forEach(c,function(h){h.vs=e.flatten(h.vs.map(function(f){return p[f]?p[f].vs:f}),!0)})}function u(c,p){e.isUndefined(c.barycenter)?(c.barycenter=p.barycenter,c.weight=p.weight):(c.barycenter=(c.barycenter*c.weight+p.barycenter*p.weight)/(c.weight+p.weight),c.weight+=p.weight)}return yg}var wg,Ek;function C$(){if(Ek)return wg;Ek=1;var e=ot(),n=Zn().Graph;wg=r;function r(o,l,u){var c=s(o),p=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(h){return o.node(h)});return e.forEach(o.nodes(),function(h){var f=o.node(h),m=o.parent(h);(f.rank===l||f.minRank<=l&&l<=f.maxRank)&&(p.setNode(h),p.setParent(h,m||c),e.forEach(o[u](h),function(y){var x=y.v===h?y.w:y.v,C=p.edge(x,h),_=e.isUndefined(C)?0:C.weight;p.setEdge(x,h,{weight:o.edge(y).weight+_})}),e.has(f,"minRank")&&p.setNode(h,{borderLeft:f.borderLeft[l],borderRight:f.borderRight[l]}))}),p}function s(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return wg}var xg,Nk;function j$(){if(Nk)return xg;Nk=1;var e=ot();xg=n;function n(r,s,o){var l={},u;e.forEach(o,function(c){for(var p=r.parent(c),h,f;p;){if(h=r.parent(p),h?(f=l[h],l[h]=p):(f=u,u=p),f&&f!==p){s.setEdge(f,p);return}p=h}})}return xg}var _g,Ck;function R$(){if(Ck)return _g;Ck=1;var e=ot(),n=_$(),r=S$(),s=N$(),o=C$(),l=j$(),u=Zn().Graph,c=an();_g=p;function p(y){var x=c.maxRank(y),C=h(y,e.range(1,x+1),"inEdges"),_=h(y,e.range(x-1,-1,-1),"outEdges"),S=n(y);m(y,S);for(var b=Number.POSITIVE_INFINITY,k,N=0,j=0;j<4;++N,++j){f(N%2?C:_,N%4>=2),S=c.buildLayerMatrix(y);var M=r(y,S);M<b&&(j=0,k=e.cloneDeep(S),b=M)}m(y,k)}function h(y,x,C){return e.map(x,function(_){return o(y,_,C)})}function f(y,x){var C=new u;e.forEach(y,function(_){var S=_.graph().root,b=s(_,S,C,x);e.forEach(b.vs,function(k,N){_.node(k).order=N}),l(_,C,b.vs)})}function m(y,x){e.forEach(x,function(C){e.forEach(C,function(_,S){y.node(_).order=S})})}return _g}var Sg,jk;function T$(){if(jk)return Sg;jk=1;var e=ot(),n=Zn().Graph,r=an();Sg={positionX:C,findType1Conflicts:s,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:p,horizontalCompaction:h,alignCoordinates:y,findSmallestWidthAlignment:m,balance:x};function s(b,k){var N={};function j(M,P){var O=0,B=0,L=M.length,q=e.last(P);return e.forEach(P,function(I,H){var X=l(b,I),T=X?b.node(X).order:L;(X||I===q)&&(e.forEach(P.slice(B,H+1),function(K){e.forEach(b.predecessors(K),function(U){var ee=b.node(U),J=ee.order;(J<O||T<J)&&!(ee.dummy&&b.node(K).dummy)&&u(N,U,K)})}),B=H+1,O=T)}),P}return e.reduce(k,j),N}function o(b,k){var N={};function j(P,O,B,L,q){var I;e.forEach(e.range(O,B),function(H){I=P[H],b.node(I).dummy&&e.forEach(b.predecessors(I),function(X){var T=b.node(X);T.dummy&&(T.order<L||T.order>q)&&u(N,X,I)})})}function M(P,O){var B=-1,L,q=0;return e.forEach(O,function(I,H){if(b.node(I).dummy==="border"){var X=b.predecessors(I);X.length&&(L=b.node(X[0]).order,j(O,q,H,B,L),q=H,B=L)}j(O,q,O.length,L,P.length)}),O}return e.reduce(k,M),N}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(N){return b.node(N).dummy})}function u(b,k,N){if(k>N){var j=k;k=N,N=j}var M=b[k];M||(b[k]=M={}),M[N]=!0}function c(b,k,N){if(k>N){var j=k;k=N,N=j}return e.has(b[k],N)}function p(b,k,N,j){var M={},P={},O={};return e.forEach(k,function(B){e.forEach(B,function(L,q){M[L]=L,P[L]=L,O[L]=q})}),e.forEach(k,function(B){var L=-1;e.forEach(B,function(q){var I=j(q);if(I.length){I=e.sortBy(I,function(U){return O[U]});for(var H=(I.length-1)/2,X=Math.floor(H),T=Math.ceil(H);X<=T;++X){var K=I[X];P[q]===q&&L<O[K]&&!c(N,q,K)&&(P[K]=q,P[q]=M[q]=M[K],L=O[K])}}})}),{root:M,align:P}}function h(b,k,N,j,M){var P={},O=f(b,k,N,M),B=M?"borderLeft":"borderRight";function L(H,X){for(var T=O.nodes(),K=T.pop(),U={};K;)U[K]?H(K):(U[K]=!0,T.push(K),T=T.concat(X(K))),K=T.pop()}function q(H){P[H]=O.inEdges(H).reduce(function(X,T){return Math.max(X,P[T.v]+O.edge(T))},0)}function I(H){var X=O.outEdges(H).reduce(function(K,U){return Math.min(K,P[U.w]-O.edge(U))},Number.POSITIVE_INFINITY),T=b.node(H);X!==Number.POSITIVE_INFINITY&&T.borderType!==B&&(P[H]=Math.max(P[H],X))}return L(q,O.predecessors.bind(O)),L(I,O.successors.bind(O)),e.forEach(j,function(H){P[H]=P[N[H]]}),P}function f(b,k,N,j){var M=new n,P=b.graph(),O=_(P.nodesep,P.edgesep,j);return e.forEach(k,function(B){var L;e.forEach(B,function(q){var I=N[q];if(M.setNode(I),L){var H=N[L],X=M.edge(H,I);M.setEdge(H,I,Math.max(O(b,q,L),X||0))}L=q})}),M}function m(b,k){return e.minBy(e.values(k),function(N){var j=Number.NEGATIVE_INFINITY,M=Number.POSITIVE_INFINITY;return e.forIn(N,function(P,O){var B=S(b,O)/2;j=Math.max(P+B,j),M=Math.min(P-B,M)}),j-M})}function y(b,k){var N=e.values(k),j=e.min(N),M=e.max(N);e.forEach(["u","d"],function(P){e.forEach(["l","r"],function(O){var B=P+O,L=b[B],q;if(L!==k){var I=e.values(L);q=O==="l"?j-e.min(I):M-e.max(I),q&&(b[B]=e.mapValues(L,function(H){return H+q}))}})})}function x(b,k){return e.mapValues(b.ul,function(N,j){if(k)return b[k.toLowerCase()][j];var M=e.sortBy(e.map(b,j));return(M[1]+M[2])/2})}function C(b){var k=r.buildLayerMatrix(b),N=e.merge(s(b,k),o(b,k)),j={},M;e.forEach(["u","d"],function(O){M=O==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(B){B==="r"&&(M=e.map(M,function(H){return e.values(H).reverse()}));var L=(O==="u"?b.predecessors:b.successors).bind(b),q=p(b,M,N,L),I=h(b,M,q.root,q.align,B==="r");B==="r"&&(I=e.mapValues(I,function(H){return-H})),j[O+B]=I})});var P=m(b,j);return y(j,P),x(j,b.graph().align)}function _(b,k,N){return function(j,M,P){var O=j.node(M),B=j.node(P),L=0,q;if(L+=O.width/2,e.has(O,"labelpos"))switch(O.labelpos.toLowerCase()){case"l":q=-O.width/2;break;case"r":q=O.width/2;break}if(q&&(L+=N?q:-q),q=0,L+=(O.dummy?k:b)/2,L+=(B.dummy?k:b)/2,L+=B.width/2,e.has(B,"labelpos"))switch(B.labelpos.toLowerCase()){case"l":q=B.width/2;break;case"r":q=-B.width/2;break}return q&&(L+=N?q:-q),q=0,L}}function S(b,k){return b.node(k).width}return Sg}var bg,Rk;function A$(){if(Rk)return bg;Rk=1;var e=ot(),n=an(),r=T$().positionX;bg=s;function s(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,p=0;e.forEach(u,function(h){var f=e.max(e.map(h,function(m){return l.node(m).height}));e.forEach(h,function(m){l.node(m).y=p+f/2}),p+=f+c})}return bg}var kg,Tk;function I$(){if(Tk)return kg;Tk=1;var e=ot(),n=h$(),r=p$(),s=g$(),o=an().normalizeRanks,l=v$(),u=an().removeEmptyRanks,c=y$(),p=w$(),h=x$(),f=R$(),m=A$(),y=an(),x=Zn().Graph;kg=C;function C(D,Q){var te=Q&&Q.debugTiming?y.time:y.notime;te("layout",function(){var oe=te(" buildLayoutGraph",function(){return L(D)});te(" runLayout",function(){_(oe,te)}),te(" updateInputGraph",function(){S(D,oe)})})}function _(D,Q){Q(" makeSpaceForEdgeLabels",function(){q(D)}),Q(" removeSelfEdges",function(){F(D)}),Q(" acyclic",function(){n.run(D)}),Q(" nestingGraph.run",function(){c.run(D)}),Q(" rank",function(){s(y.asNonCompoundGraph(D))}),Q(" injectEdgeLabelProxies",function(){I(D)}),Q(" removeEmptyRanks",function(){u(D)}),Q(" nestingGraph.cleanup",function(){c.cleanup(D)}),Q(" normalizeRanks",function(){o(D)}),Q(" assignRankMinMax",function(){H(D)}),Q(" removeEdgeLabelProxies",function(){X(D)}),Q(" normalize.run",function(){r.run(D)}),Q(" parentDummyChains",function(){l(D)}),Q(" addBorderSegments",function(){p(D)}),Q(" order",function(){f(D)}),Q(" insertSelfEdges",function(){G(D)}),Q(" adjustCoordinateSystem",function(){h.adjust(D)}),Q(" position",function(){m(D)}),Q(" positionSelfEdges",function(){E(D)}),Q(" removeBorderNodes",function(){J(D)}),Q(" normalize.undo",function(){r.undo(D)}),Q(" fixupEdgeLabelCoords",function(){U(D)}),Q(" undoCoordinateSystem",function(){h.undo(D)}),Q(" translateGraph",function(){T(D)}),Q(" assignNodeIntersects",function(){K(D)}),Q(" reversePoints",function(){ee(D)}),Q(" acyclic.undo",function(){n.undo(D)})}function S(D,Q){e.forEach(D.nodes(),function(te){var oe=D.node(te),ue=Q.node(te);oe&&(oe.x=ue.x,oe.y=ue.y,Q.children(te).length&&(oe.width=ue.width,oe.height=ue.height))}),e.forEach(D.edges(),function(te){var oe=D.edge(te),ue=Q.edge(te);oe.points=ue.points,e.has(ue,"x")&&(oe.x=ue.x,oe.y=ue.y)}),D.graph().width=Q.graph().width,D.graph().height=Q.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],j=["width","height"],M={width:0,height:0},P=["minlen","weight","width","height","labeloffset"],O={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},B=["labelpos"];function L(D){var Q=new x({multigraph:!0,compound:!0}),te=se(D.graph());return Q.setGraph(e.merge({},k,$(te,b),e.pick(te,N))),e.forEach(D.nodes(),function(oe){var ue=se(D.node(oe));Q.setNode(oe,e.defaults($(ue,j),M)),Q.setParent(oe,D.parent(oe))}),e.forEach(D.edges(),function(oe){var ue=se(D.edge(oe));Q.setEdge(oe,e.merge({},O,$(ue,P),e.pick(ue,B)))}),Q}function q(D){var Q=D.graph();Q.ranksep/=2,e.forEach(D.edges(),function(te){var oe=D.edge(te);oe.minlen*=2,oe.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?oe.width+=oe.labeloffset:oe.height+=oe.labeloffset)})}function I(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);if(te.width&&te.height){var oe=D.node(Q.v),ue=D.node(Q.w),ge={rank:(ue.rank-oe.rank)/2+oe.rank,e:Q};y.addDummyNode(D,"edge-proxy",ge,"_ep")}})}function H(D){var Q=0;e.forEach(D.nodes(),function(te){var oe=D.node(te);oe.borderTop&&(oe.minRank=D.node(oe.borderTop).rank,oe.maxRank=D.node(oe.borderBottom).rank,Q=e.max(Q,oe.maxRank))}),D.graph().maxRank=Q}function X(D){e.forEach(D.nodes(),function(Q){var te=D.node(Q);te.dummy==="edge-proxy"&&(D.edge(te.e).labelRank=te.rank,D.removeNode(Q))})}function T(D){var Q=Number.POSITIVE_INFINITY,te=0,oe=Number.POSITIVE_INFINITY,ue=0,ge=D.graph(),ce=ge.marginx||0,Me=ge.marginy||0;function Fe(Pe){var Te=Pe.x,ke=Pe.y,Ye=Pe.width,ye=Pe.height;Q=Math.min(Q,Te-Ye/2),te=Math.max(te,Te+Ye/2),oe=Math.min(oe,ke-ye/2),ue=Math.max(ue,ke+ye/2)}e.forEach(D.nodes(),function(Pe){Fe(D.node(Pe))}),e.forEach(D.edges(),function(Pe){var Te=D.edge(Pe);e.has(Te,"x")&&Fe(Te)}),Q-=ce,oe-=Me,e.forEach(D.nodes(),function(Pe){var Te=D.node(Pe);Te.x-=Q,Te.y-=oe}),e.forEach(D.edges(),function(Pe){var Te=D.edge(Pe);e.forEach(Te.points,function(ke){ke.x-=Q,ke.y-=oe}),e.has(Te,"x")&&(Te.x-=Q),e.has(Te,"y")&&(Te.y-=oe)}),ge.width=te-Q+ce,ge.height=ue-oe+Me}function K(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q),oe=D.node(Q.v),ue=D.node(Q.w),ge,ce;te.points?(ge=te.points[0],ce=te.points[te.points.length-1]):(te.points=[],ge=ue,ce=oe),te.points.unshift(y.intersectRect(oe,ge)),te.points.push(y.intersectRect(ue,ce))})}function U(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);if(e.has(te,"x"))switch((te.labelpos==="l"||te.labelpos==="r")&&(te.width-=te.labeloffset),te.labelpos){case"l":te.x-=te.width/2+te.labeloffset;break;case"r":te.x+=te.width/2+te.labeloffset;break}})}function ee(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);te.reversed&&te.points.reverse()})}function J(D){e.forEach(D.nodes(),function(Q){if(D.children(Q).length){var te=D.node(Q),oe=D.node(te.borderTop),ue=D.node(te.borderBottom),ge=D.node(e.last(te.borderLeft)),ce=D.node(e.last(te.borderRight));te.width=Math.abs(ce.x-ge.x),te.height=Math.abs(ue.y-oe.y),te.x=ge.x+te.width/2,te.y=oe.y+te.height/2}}),e.forEach(D.nodes(),function(Q){D.node(Q).dummy==="border"&&D.removeNode(Q)})}function F(D){e.forEach(D.edges(),function(Q){if(Q.v===Q.w){var te=D.node(Q.v);te.selfEdges||(te.selfEdges=[]),te.selfEdges.push({e:Q,label:D.edge(Q)}),D.removeEdge(Q)}})}function G(D){var Q=y.buildLayerMatrix(D);e.forEach(Q,function(te){var oe=0;e.forEach(te,function(ue,ge){var ce=D.node(ue);ce.order=ge+oe,e.forEach(ce.selfEdges,function(Me){y.addDummyNode(D,"selfedge",{width:Me.label.width,height:Me.label.height,rank:ce.rank,order:ge+ ++oe,e:Me.e,label:Me.label},"_se")}),delete ce.selfEdges})})}function E(D){e.forEach(D.nodes(),function(Q){var te=D.node(Q);if(te.dummy==="selfedge"){var oe=D.node(te.e.v),ue=oe.x+oe.width/2,ge=oe.y,ce=te.x-ue,Me=oe.height/2;D.setEdge(te.e,te.label),D.removeNode(Q),te.label.points=[{x:ue+2*ce/3,y:ge-Me},{x:ue+5*ce/6,y:ge-Me},{x:ue+ce,y:ge},{x:ue+5*ce/6,y:ge+Me},{x:ue+2*ce/3,y:ge+Me}],te.label.x=te.x,te.label.y=te.y}})}function $(D,Q){return e.mapValues(e.pick(D,Q),Number)}function se(D){var Q={};return e.forEach(D,function(te,oe){Q[oe.toLowerCase()]=te}),Q}return kg}var Eg,Ak;function M$(){if(Ak)return Eg;Ak=1;var e=ot(),n=an(),r=Zn().Graph;Eg={debugOrdering:s};function s(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,p){var h="layer"+p;u.setNode(h,{rank:"same"}),e.reduce(c,function(f,m){return u.setEdge(f,m,{style:"invis"}),m})}),u}return Eg}var Ng,Ik;function P$(){return Ik||(Ik=1,Ng="0.8.5"),Ng}var Cg,Mk;function O$(){return Mk||(Mk=1,Cg={graphlib:Zn(),layout:I$(),debug:M$(),util:{time:an().time,notime:an().notime},version:P$()}),Cg}var q$=O$();const Pk=Zg(q$),ra=240,Kl=130,zs=74,xu=72,Ok=zs+xu;function L$(e){let n=ra;for(const r of e.values())n=Math.max(n,r.width);return n}const kC=420,$$=2;function ia(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function D$(e,n){return((n==null?void 0:n.get(e))??0)>0?kC:0}function F$(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 s=n.get(e);return{w:((s==null?void 0:s.width)??ra)+D$(e,r),h:Math.max((s==null?void 0:s.height)??Kl,F$(e,r))}}function z$(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function B$(e,n,r,s,o,l){const u=new Pk.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),p=new Set(c);for(const b of c){const{w:k,h:N}=sa(b,s,l);u.setNode(b,{width:k,height:N})}for(const b of n)p.has(b.source)&&p.has(b.target)&&u.setEdge(b.source,b.target);Pk.layout(u);const h=new Map;let f=1/0,m=1/0,y=-1/0,x=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const N=s.get(b),j=(N==null?void 0:N.width)??ra,M=(N==null?void 0:N.height)??Kl,P=sa(b,s,l),O=k.x-P.w/2,B=k.y-P.h/2;h.set(b,{x:O,y:B}),O<f&&(f=O),B<m&&(m=B),O+j>y&&(y=O+j),B+M>x&&(x=B+M)}if(Number.isFinite(f)&&Number.isFinite(m))for(const[b,k]of h)h.set(b,{x:k.x-f,y:k.y-m});const C=Number.isFinite(y)?y-f:0,_=Number.isFinite(x)?x-m:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const N=s.get(b),j=(N==null?void 0:N.width)??ra,M=(N==null?void 0:N.height)??Kl;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+j,maxY:k.y+M}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+j),maxY:Math.max(S.maxY,k.y+M)}}return{positions:h,width:C,height:_,pinnedBox:S}}function U$(e,n,r={}){const s=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const k=ia(b),N=c.get(k);N?N.push(b.id):c.set(k,[b.id])}const h=Array.from(c.keys()).sort().map(b=>({sid:b,...B$(c.get(b),n,s,l,o,u)})),f=L$(l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let N=0;for(const j of h)k.length<b&&N>0&&N+j.height>m&&(k.push([]),N=0),k[k.length-1].push(j),N+=j.height+Ok;return k},x=b=>b.reduce((k,N)=>Math.max(k,N.width),0)+kC;let C=y(r.availableWidth?$$:1);C.length>1&&C.reduce((k,N)=>k+x(N),0)+f*(C.length-1)>(r.availableWidth??0)&&(C=y(1));const _=new Map;let S=0;for(const b of C){const k=x(b);let N=0;for(const{positions:j,height:M,pinnedBox:P}of b){for(const[B,L]of j)_.set(B,{x:L.x+S,y:L.y+N});let O=N+M;P&&P.maxY>O&&P.minX<S+k&&S<P.maxX&&(O=P.maxY),N=O+Ok}S+=k+f}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const N=_.get(b.id);return N?{...b,position:N}:b})}function H$(e,n,r,s,o){const u=zs+xu,c=60,p=x=>sa(x,s,o),h=new Map(e.map(x=>[x.id,ia(x)])),f=[],m=e.map(x=>({id:x.id,pos:r.get(x.id)??n.get(x.id)})).filter(x=>x.pos!=null).sort((x,C)=>x.pos.y-C.pos.y||x.pos.x-C.pos.x||x.id.localeCompare(C.id)),y=[];for(const{id:x,pos:C}of m){const{w:_,h:S}=p(x),b=h.get(x)??"_default";if(r.has(x)){f.push({x:C.x,y:C.y,w:_,h:S,sid:b});continue}let k=C.y;for(let N=0;N<f.length+1;N++){const j=f.find(M=>{const P=M.sid===b?24:c,O=M.sid===b?24:u;return C.x<M.x+M.w+P&&M.x<C.x+_+P&&k<M.y+M.h+O&&M.y<k+S+O});if(!j)break;k=j.y+j.h+(j.sid===b?24:u)}k!==C.y&&(n.set(x,{x:C.x,y:k}),y.push(x)),f.push({x:C.x,y:k,w:_,h:S,sid:b})}return y}function V$(e,n,r,s,o,l){const u=_=>sa(_,s,l),c=_=>r.get(_)??n.get(_),p=new Map;for(const _ of e){if(!c(_.id))continue;const S=ia(_),b=p.get(S);b?b.push(_):p.set(S,[_])}const h=new Set;for(const[_,S]of p)S.every(b=>o.has(b.id)&&!r.has(b.id))&&h.add(_);const f=new Map,m=[];for(const _ of e){const S=c(_.id);if(!S)continue;const{w:b,h:k}=u(_.id),N=ia(_);h.has(N)?(f.get(N)??f.set(N,[]).get(N)).push(_):m.push({x:S.x,y:S.y,w:b,h:k})}if(f.size===0)return[];const y=zs+xu,x=(_,S,b,k)=>m.some(N=>_<N.x+N.w+zs&&N.x<_+b+zs&&S<N.y+N.h+y&&N.y<S+k+y),C=[];for(const _ of[...f.keys()].sort()){const S=f.get(_);let b=1/0,k=1/0,N=-1/0,j=-1/0;for(const I of S){const H=c(I.id),{w:X,h:T}=u(I.id);b=Math.min(b,H.x),k=Math.min(k,H.y),N=Math.max(N,H.x+X),j=Math.max(j,H.y+T)}const M=N-b,P=j-k,O=[...new Set(m.map(I=>Math.round(I.x)))].sort((I,H)=>I-H),B=O.length?O:[b],L=[0,...m.map(I=>I.y+I.h+y)].sort((I,H)=>I-H);let q=null;e:for(const I of B)for(const H of L){if(H>=k)break;if(!x(I,H,M,P)){q={x:I,y:H};break e}}if(q){const I=q.x-b,H=q.y-k;for(const X of S){const T=c(X.id);n.set(X.id,{x:T.x+I,y:T.y+H})}C.push(_)}for(const I of S){const H=c(I.id),{w:X,h:T}=u(I.id);m.push({x:H.x,y:H.y,w:X,h:T})}}return C}function W$(e,n,r,s,o,l=!1,u){const h=zs+xu+1,f=8,m=1.75,y=200,x=.7,C=.01,_=q=>sa(q,s,u),S=q=>r.get(q)??n.get(q),b=new Map;for(const q of e){if(!S(q.id))continue;const I=ia(q),H=b.get(I);H?H.push(q):b.set(I,[q])}const k=[],N=new Set,j=new Set,M=o.size===0;for(const q of[...b.keys()].sort()){const I=b.get(q);let H=1/0,X=1/0,T=-1/0,K=-1/0,U=!1;for(const G of I){const E=S(G.id),{w:$,h:se}=_(G.id);H=Math.min(H,E.x),X=Math.min(X,E.y),T=Math.max(T,E.x+$),K=Math.max(K,E.y+se),r.has(G.id)&&(U=!0)}const ee=T-H,J=K-X;j.add(q);const F=o.get(q);F&&(ee>F.w+f||J>F.h+f)&&N.add(q),o.set(q,{w:ee,h:J}),k.push({sid:q,members:I.map(G=>G.id),x:H,y:X,w:ee,h:J,anchored:U,mass:1})}for(const q of[...o.keys()])j.has(q)||o.delete(q);if(l||M)return[];let P=!1;for(let q=0;q<k.length&&!P;q++)for(let I=q+1;I<k.length;I++){const H=k[q],X=k[I];if(!(H.anchored&&X.anchored)&&Math.abs(H.x+H.w/2-(X.x+X.w/2))<(H.w+X.w)/2+61&&Math.abs(H.y+H.h/2-(X.y+X.h/2))<(H.h+X.h)/2+h){P=!0;break}}if(N.size===0&&!P)return[];if(N.size>0)for(const q of k)N.has(q.sid)&&(q.mass=8);else for(const q of k)q.mass=Math.max(1,q.w*q.h/(ra*Kl));const O=new Map(k.map(q=>[q.sid,q.x])),B=new Map(k.map(q=>[q.sid,q.y]));for(let q=0;q<y;q++){const I=new Map,H=new Map;let X=0;for(let T=0;T<k.length;T++)for(let K=T+1;K<k.length;K++){const U=k[T],ee=k[K];if(U.anchored&&ee.anchored)continue;const J=U.x+U.w/2,F=U.y+U.h/2,G=ee.x+ee.w/2,E=ee.y+ee.h/2,$=(U.w+ee.w)/2+61-Math.abs(J-G),se=(U.h+ee.h)/2+h-Math.abs(F-E);if($<=0||se<=0)continue;const D=($e,Qe)=>!$e.anchored&&!(Qe<0&&$e.x<=0),Q=($e,Qe)=>!$e.anchored&&!(Qe<0&&$e.y<=0),te=($e,Qe,ht)=>{const vt=$e===Qe,lt=vt?U.sid<ee.sid?-1:1:Math.sign($e-Qe);return ht(U,lt)||ht(ee,-lt)?lt:vt&&(ht(U,-lt)||ht(ee,lt))?-lt:0},oe=te(J,G,D),ue=te(F,E,Q),ge=oe!==0,ce=ue!==0;if(!ge&&!ce)continue;const Me=ge&&(!ce||$*m<se),[Fe,Pe,Te,ke]=Me?[oe,$,I,D]:[ue,se,H,Q],Ye=ke(U,Fe),ye=ke(ee,-Fe),we=U.mass,ze=ee.mass,at=Ye?ye?ze/(we+ze):1:0,gt=ye?Ye?we/(we+ze):1:0,Xe=Pe*x;Te.set(U.sid,(Te.get(U.sid)??0)+Fe*Xe*at),Te.set(ee.sid,(Te.get(ee.sid)??0)-Fe*Xe*gt),X+=Xe}for(const T of k)T.anchored||(T.x=Math.max(0,T.x+(I.get(T.sid)??0)),T.y=Math.max(0,T.y+(H.get(T.sid)??0)));if(X<C)break}const L=[];for(const q of k){const I=q.x-O.get(q.sid),H=q.y-B.get(q.sid);if(!(Math.abs(I)<1&&Math.abs(H)<1)){for(const X of q.members){if(r.has(X))continue;const T=n.get(X);T&&n.set(X,{x:T.x+I,y:T.y+H})}L.push(q.sid)}}return L}const G$=600;function Kg(e,n){return!(e.exitAt!=null&&n-e.exitAt>G$||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function Y$(e,n){const r=new Set;for(const s of e.agents.values())Kg(s,n)&&r.add(s.id);return r}function K$(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 X$(e,n,r=0){if(!e)return!1;for(const s of n)if(K$(e,s,r))return!0;return!1}function Bi(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}function Q$(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}const Z$={agent:LP,sessionGroup:YP},J$=420,Il=18,e4=9e4,t4=200,n4=5*6e4,r4=6,i4=2*6e4,Lv="agent-dag.layout",$v="agent-dag.viewport",EC="agent-dag.summariesDismissed",NC="agent-dag.sessionListOpen",CC="agent-dag.detailOpen",jC="agent-dag.usagePanelOpen",qk="agent-dag.accountsPanelOpen",Lk="agent-dag.versionNoticeDismissed",s4=15*6e4,$k={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:"};function o4(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`}const Dk="agent-dag.autoRestart",Fk="agent-dag.bundleReloadedFor";function a4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(NC)==="1"}catch{return!1}}function l4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(NC,e?"1":"0")}catch{}}function u4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(CC)==="1"}catch{return!1}}function c4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CC,e?"1":"0")}catch{}}function d4(){if(typeof window>"u")return!0;const e=window.localStorage.getItem(jC);try{return e===null?!0:e==="1"}catch{return!0}}function f4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(jC,e?"1":"0")}catch{}}function h4(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(EC);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 zk(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(EC,JSON.stringify(r))}catch{}}function p4(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Lv);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 jg(e,n){if(!(typeof window>"u"))try{const r={};for(const[s,o]of e)r[s]=o;for(const[s,o]of n)r[s]=o;window.localStorage.setItem(Lv,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function m4(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem($v);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 g4(e){if(!(typeof window>"u"))try{window.localStorage.setItem($v,JSON.stringify(e))}catch{}}function Bk(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Lv)}catch{}try{window.localStorage.removeItem($v)}catch{}}}function v4(e,n){const r=e.agents.get(n);if(!r)return;const s=[];for(const f of e.agents.values())f.sessionId===n&&s.push(f);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:s.map(f=>({id:f.id,kind:f.kind,label:f.label,parentId:f.parentId,state:f.state,startedAt:f.startedAt,endedAt:f.endedAt,model:f.model,cwd:f.cwd,usage:f.usage,prompts:f.prompts,tools:f.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),p=document.createElement("a"),h=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");p.href=c,p.download=`agents-deck-${h}-${n.slice(0,8)}.json`,document.body.appendChild(p),p.click(),document.body.removeChild(p),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Xg={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Qg={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},y4={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function RC(e){return e.startsWith("mcp__")?"mcp":y4[e]??"other"}function TC(e,n){var s,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(s=e.cwd)!=null&&s.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 w4(e,n){if(!n)return null;const r=new Set([n]);let s=n;for(;s;){const l=e.agents.get(s);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),s=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 x4(e,n,r,s,o,l,u,c,p,h,f,m,y,x,C,_,S,b){const k=[],N=[],j=new Set;if(l)for(const I of e.agents.values())TC(I,l)&&j.add(I.id);for(const I of e.agents.values()){if(!S.has(I.id))continue;const H=l?!j.has(I.id):!1,X=I.exitAt!=null,T=_!=null&&!_.has(I.id),K=[H?"rf-dim":"",X?"rf-exiting":"",T?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,U=u.get(I.id);if(k.push({id:I.id,type:"agent",position:{x:0,y:0},data:{...I,now:n,dim:H,onOpenContext:b},className:K,...U?{width:U.width,height:U.height}:null}),I.parentId&&S.has(I.parentId)){const ee=vv(I.sessionId),J=I.state==="active"?`hsl(${ee} 80% 72%)`:`hsl(${ee} 50% 55%)`,F=l&&!j.has(I.id)&&!j.has(I.parentId),G=X,E=C.size>0&&(C.has(I.id)||C.has(I.parentId)),$=_!=null&&!_.has(I.id)&&!_.has(I.parentId),se=I.state==="active"?2:1.5,D=E?se+1.5:se,Q=F||G?.2:$?.12:1,te=[G?"rf-edge-exiting":"",E?"rf-edge-selected":""].filter(Boolean).join(" ")||void 0;N.push({id:`e:${I.parentId}->${I.id}`,source:I.parentId,target:I.id,animated:(I.state==="active"||E)&&!F&&!G,type:"smoothstep",style:{stroke:J,strokeWidth:D,opacity:Q,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:te})}}const M=new Map;for(const I of e.agents.values())I.tools.length>0&&M.set(I.id,Math.min(4,I.tools.length));const P=`${y}#lanes:${z$(M)}`,O=k.filter(I=>!o.has(I.id)&&!m.has(I.id));if(O.length>0||P!==x.current){if(O.length>0){const I=U$(k,N,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:s,lanes:M});for(const H of I)m.has(H.id)||m.set(H.id,H.position);V$(k,m,o,u,new Set(O.map(H=>H.id)),M)}H$(k,m,o,u,M),x.current=P}const B=W$(k,m,o,u,c,!h||f,M);B.length>0&&p(B),ud(m,e.agents),ud(o,e.agents),ud(u,dO(e.agents.values()));const L=[];let q=!1;for(const I of k){let H=o.get(I.id)??m.get(I.id);H||(H={x:0,y:0},m.set(I.id,H),q=!0),L.push({...I,position:H})}return q&&(x.current=""),{nodes:L,edges:N}}function _4(){return g.jsx(mv,{children:g.jsx(S4,{})})}function S4(){var _r,Ni,_a,Sa;const e=ca(),n=A.useRef(Vg()),[,r]=A.useState(0),s=A.useCallback(()=>r(W=>W+1),[]),[o,l]=A.useState(()=>new Set),[u,c]=A.useState(null),[p,h]=A.useState(null),f=A.useCallback((W,Y)=>{l(le=>{if(!Y)return new Set([W]);const fe=new Set(le);return fe.has(W)?fe.delete(W):fe.add(W),fe}),c(le=>Y&&le===W?le:W)},[]),m=A.useCallback(()=>{l(new Set),c(null)},[]),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useCallback(W=>_(W),[]),b=A.useRef(h4()),[k,N]=A.useState(a4);A.useEffect(()=>{l4(k)},[k]);const[j,M]=A.useState(u4);A.useEffect(()=>{c4(j)},[j]);const[P,O]=A.useState(d4);A.useEffect(()=>{f4(P)},[P]);const[B,L]=A.useState(()=>{try{const W=window.localStorage.getItem(qk);return W===null?!0:W==="1"}catch{return!0}});A.useEffect(()=>{try{window.localStorage.setItem(qk,B?"1":"0")}catch{}},[B]);const[q,I]=A.useState(null),[H,X]=A.useState(!1),[T,K]=A.useState(0),[U,ee]=A.useState(0);A.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(I(W.enabled===!0),K((W.foreign??[]).filter(Y=>Y.worksHere).length),ee(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const J=A.useCallback(async()=>{X(!0);try{const Y=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!q})})).json().catch(()=>null);Y!=null&&Y.ok&&I(Y.enabled===!0),fetch("/api/sound-hook").then(le=>le.ok?le.json():null).then(le=>{le!=null&&le.ok&&(K((le.foreign??[]).filter(fe=>fe.worksHere).length),ee(typeof le.parked=="number"?le.parked:0))}).catch(()=>{})}catch{}finally{X(!1)}},[q]),[F,G]=A.useState(!1),[E,$]=A.useState(null),[se,D]=A.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(Lk)??""}catch{return""}}),[Q,te]=A.useState(!1),oe=A.useRef(0),ue=A.useCallback((W=!1)=>{W&&(oe.current=Date.now()),fetch(W?"/api/version?refresh=1":"/api/version").then(Y=>Y.ok?Y.json():null).then(Y=>{Y&&$(Y)}).catch(()=>{})},[]),ge=A.useCallback(()=>{ue(Date.now()-oe.current>=s4)},[ue]);A.useEffect(()=>{ue();const W=window.setInterval(ge,5*6e4),Y=()=>{document.visibilityState==="visible"&&ge()};return document.addEventListener("visibilitychange",Y),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",Y)}},[ue,ge]),A.useEffect(()=>{F&&ue()},[F,ue]);const ce=(E==null?void 0:E.notice)??null,Me=ce?`${ce.kind}:${ce.to}`:"",Fe=ce!=null&&se!==Me,Pe=A.useCallback(()=>{if(!ce)return;const W=se===Me?"":Me;D(W);try{window.localStorage.setItem(Lk,W)}catch{}},[ce,Me,se]),Te=((_r=E==null?void 0:E.upgrade)==null?void 0:_r.state)??"idle",ke=A.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ue()},[ue]);A.useEffect(()=>{if(Te!=="running")return;const W=window.setInterval(ue,3e3);return()=>window.clearInterval(W)},[Te,ue]);const Ye=A.useCallback(async()=>{var le;const W=E==null?void 0:E.command;if(!W)return;let Y=!1;try{Y=await Promise.race([((le=navigator.clipboard)==null?void 0:le.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(fe=>window.setTimeout(()=>fe(!1),500))])}catch{Y=!1}if(!Y)try{const fe=document.createElement("textarea");fe.value=W,fe.setAttribute("readonly",""),fe.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(fe),fe.select(),Y=document.execCommand("copy"),fe.remove()}catch{Y=!1}Y&&(te(!0),window.setTimeout(()=>te(!1),1600))},[E==null?void 0:E.command]),ye=A.useCallback(()=>{N(W=>(W||L(!1),!W))},[]),we=A.useCallback(()=>{L(W=>(W||N(!1),!W))},[]),[ze,at]=A.useState(!1),[gt,Xe]=A.useState(0),$e=A.useRef(null),[Qe,ht]=A.useState(!1),vt=A.useRef(null),[lt,yt]=A.useState(0),Mt=A.useRef(mO()),[Pt,Ze]=A.useState(!1),xt=A.useCallback(()=>{const W=Mt.current,Y=W.setPaused(!W.paused);for(const le of Y)n.current=Jw(n.current,le);Ze(W.paused)},[]),[De,_t]=A.useState(Date.now()),[Ut,Ht]=A.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(Dk)!=="0"}catch{return!0}}),$t=A.useCallback(()=>{Ht(W=>{const Y=!W;try{window.localStorage.setItem(Dk,Y?"1":"0")}catch{}return Y})},[]),[Vt,On]=A.useState(!1),[qn,vn]=A.useState("restart"),[yn,ln]=A.useState(null),tr=A.useRef(!1),pr=A.useCallback(async W=>{if(tr.current)return;const Y=(W==null?void 0:W.upgrade)===!0;tr.current=!0,vn(Y?"npx":"restart"),On(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ce==null?void 0:ce.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:Y})})}catch{}window.setTimeout(()=>{if(tr.current){tr.current=!1,On(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},Y?18e4:3e4)},[ce==null?void 0:ce.to]),gi=A.useRef(null);A.useEffect(()=>{let W=!1;for(const le of n.current.agents.values())if(le.state==="active"){W=!0;break}const Y=uO({enabled:Ut,kind:ce==null?void 0:ce.kind,canRestart:(E==null?void 0:E.canRestart)===!0,busy:W,idleSince:gi.current,now:De});gi.current=Y.idleSince,Y.restart&&pr()},[Ut,ce==null?void 0:ce.kind,E==null?void 0:E.canRestart,De,pr]),A.useEffect(()=>{let W=null;try{W=window.sessionStorage.getItem(Fk)}catch{return}if(lO({bundle:"1.33.78",running:E==null?void 0:E.running,lastTried:W})){try{window.sessionStorage.setItem(Fk,(E==null?void 0:E.running)??"")}catch{return}window.location.reload()}},[E==null?void 0:E.running]),A.useEffect(()=>{const W=E==null?void 0:E.running;if(!W)return;let Y=null;try{Y=window.sessionStorage.getItem("agent-dag.restartPending")}catch{return}if(Y==null||Y&&Y!==W)return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}tr.current=!1,On(!1),ln(W);const le=window.setTimeout(()=>ln(null),6e3);return()=>window.clearTimeout(le)},[E==null?void 0:E.running]);const $r=A.useRef(p4()).current;A.useRef(!1);const kt=A.useRef(new Map($r.positions.filter(([W])=>$r.pins.includes(W)))),mr=A.useRef(null),wn=A.useState(()=>m4())[0],[un,nr]=A.useState(""),[es,gr]=A.useState(()=>new Set),[xn,vr]=A.useState(()=>typeof window>"u"?"dark":window.localStorage.getItem("agent-dag.theme")??"dark"),[Dr,Qs]=A.useState(!1),ts=A.useRef(null);A.useEffect(()=>{document.documentElement.dataset.theme=xn;try{window.localStorage.setItem("agent-dag.theme",xn)}catch{}},[xn]),A.useEffect(()=>{if(!wn)return;const W=window.setTimeout(()=>{try{e.setViewport(wn,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,wn]);const vi=A.useRef(!0);A.useEffect(()=>{const W=new EventSource("/events"),Y=pO(s,{now:()=>Date.now(),setTimeout:(le,fe)=>window.setTimeout(le,fe),clearTimeout:le=>window.clearTimeout(le)});return W.addEventListener("open",()=>{G(!0),Qs(!0)}),W.addEventListener("error",()=>G(!1)),W.addEventListener("replay-end",()=>{vi.current=!1,Y.flush()}),W.addEventListener("hook",le=>{try{const fe=JSON.parse(le.data);if(!Mt.current.accept(fe))return;n.current=Jw(n.current,fe),fe.replay===!0||vi.current||Date.now()-fe.receivedAt>3e4?Y.replay():Y.live()}catch{}}),()=>{W.close(),Y.cancel()}},[s]),A.useEffect(()=>{const W=setInterval(()=>{const Y=Date.now();_t(Y);let le=bP(n.current,Y,e4);_P(n.current,Y,t4,n4)&&(le=!0),SP(n.current,Y,r4,i4)&&(le=!0),le&&s()},250);return()=>clearInterval(W)},[s]);const cn=A.useRef(null),Ln=A.useRef(0),ns=420,Xt=A.useCallback((W=500)=>{try{const _e=document.querySelector(".canvas-wrap"),Ae=Array.from(document.querySelectorAll(".react-flow__node")).filter(ct=>ct.offsetWidth>0);if(!_e||Ae.length===0)return;const Oe=_e.getBoundingClientRect(),Ue=e.getViewport();if(!Number.isFinite(Ue.zoom)||Ue.zoom<=0)return;const Ge=ct=>(ct-Oe.left-Ue.x)/Ue.zoom,tt=ct=>(ct-Oe.top-Ue.y)/Ue.zoom,it=Ae.map(ct=>ct.getBoundingClientRect()),bn=Math.min(...it.map(ct=>Ge(ct.left))),Ci=Math.max(...it.map(ct=>Ge(ct.right))),zn=Math.min(...it.map(ct=>tt(ct.top))),co=Math.max(...it.map(ct=>tt(ct.bottom))),ls=Ci-bn,Yr=co-zn;if(!(ls>0&&Yr>0))return;const Gt=Math.max(.2,Math.min(1,(Oe.width-160)/(ls+ns)*.86,(Oe.height-160)/Yr*.86));e.setViewport({x:80-bn*Gt,y:Math.max(80,(Oe.height-Yr*Gt)/2)-zn*Gt,zoom:Gt},{duration:W}),Ln.current=Date.now(),window.setTimeout(()=>{try{const ct={x:80-bn*Gt,y:Math.max(80,(Oe.height-Yr*Gt)/2)-zn*Gt,zoom:Gt},fo=e.getViewport();(Math.abs(fo.zoom-Gt)>.01||Math.abs(fo.x-ct.x)>2)&&e.setViewport(ct,{duration:0})}catch{}},W+60)}catch{}},[e]),Fr=A.useRef(""),zr=A.useRef(null),yi=A.useRef(0),yr=A.useCallback(()=>{yi.current=Date.now()},[]),Br="agent-dag.autoFitDisabled",$n=A.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Br)==="1"}catch{return!1}})()),[Je,rs]=A.useState($n.current),Ur=A.useCallback(()=>{if(!$n.current){$n.current=!0,rs(!0);try{window.localStorage.setItem(Br,"1")}catch{}}},[]),is=A.useCallback(()=>{$n.current=!1,rs(!1);try{window.localStorage.removeItem(Br)}catch{}Xt(400)},[e,Xt]);A.useEffect(()=>{const W=setInterval(()=>{if($n.current||Date.now()-yi.current<800)return;const Y=n.current,le=Date.now(),fe=[];for(const Ge of Y.agents.values())Kg(Ge,le)&&fe.push({id:Ge.id});if(fe.length===0)return;const ve=e.getViewport(),_e=window.innerWidth-360,Ae=window.innerHeight-52;let Oe=!1,Ue=!1;for(const{id:Ge}of fe){const tt=Dn.current.get(Ge),it=kt.current.get(Ge)??Qt.current.get(Ge);if(!tt||!it)continue;Ue=!0;const bn=it.x*ve.zoom+ve.x,Ci=it.y*ve.zoom+ve.y,zn=(it.x+tt.width)*ve.zoom+ve.x,co=(it.y+tt.height)*ve.zoom+ve.y;if(zn>0&&bn<_e&&co>0&&Ci<Ae){Oe=!0;break}}Ue&&!Oe&&Xt(600)},1500);return()=>clearInterval(W)},[e]);const rr=A.useRef(!1),Dn=A.useRef(new Map),wi=A.useRef(0),Hr=A.useCallback(W=>{const Y=Dn.current;let le=!1;for(const fe of W.nodeInternals.values()){const ve=fe.width,_e=fe.height;if(ve==null||_e==null)continue;const Ae=Y.get(fe.id);Ae?(Math.abs(Ae.height-_e)>4||Math.abs(Ae.width-ve)>4)&&(Y.set(fe.id,{width:ve,height:_e}),le=!0):(Y.set(fe.id,{width:ve,height:_e}),le=!0)}return le&&(wi.current+=1),wi.current},[]),Wt=Ke(Hr),[Vr,dn]=A.useState(0);A.useEffect(()=>{let W=0;const Y=()=>{const fe=Dn.current;let ve=!1;for(const _e of document.querySelectorAll(".react-flow__node[data-id]")){const Ae=_e.getAttribute("data-id");if(!Ae)continue;const Oe=_e.offsetWidth,Ue=_e.offsetHeight;if(!Oe||!Ue)continue;const Ge=fe.get(Ae);(!Ge||Math.abs(Ge.width-Oe)>4||Math.abs(Ge.height-Ue)>4)&&(fe.set(Ae,{width:Oe,height:Ue}),ve=!0)}ve&&dn(_e=>_e+1)};if(rr.current)return;let le=0;return document.visibilityState==="hidden"?le=window.setTimeout(Y,32):W=requestAnimationFrame(Y),()=>{cancelAnimationFrame(W),window.clearTimeout(le)}});const Qt=A.useRef(new Map($r.positions)),Zs=A.useRef(""),Wr=A.useMemo(()=>{const W=[];for(const Y of n.current.agents.values())Kg(Y,De)&&W.push(Y.id+(Y.parentId?`>${Y.parentId}`:""));return W.sort(),`${W.join("|")}#sv${Wt}.${Vr}`},[n.current,n.current.lastSeq,De,Wt,Vr]),ir=A.useRef(null);A.useEffect(()=>(ir.current!=null&&window.clearTimeout(ir.current),ir.current=window.setTimeout(()=>{jg(Qt.current,kt.current)},1500),()=>{ir.current!=null&&window.clearTimeout(ir.current)}),[Wr]),A.useEffect(()=>{if(Fr.current===Wr)return;const W=Fr.current;if(Fr.current=Wr,!W||$n.current)return;Date.now()-Ln.current>1200&&Xt(400),cn.current&&window.clearTimeout(cn.current),cn.current=window.setTimeout(()=>{$n.current||Xt(500)},280)},[Wr,e,Xt]);const Gr=A.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const Y of o){const le=w4(n.current,Y);if(le)for(const fe of le)W.add(fe)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),wr=A.useMemo(()=>Y$(n.current,De),[n.current,n.current.lastSeq,De]),xi=A.useRef(null),[ss,va]=A.useState({w:0,h:0});A.useEffect(()=>{const W=xi.current;if(!W||typeof ResizeObserver>"u")return;const Y=new ResizeObserver(le=>{var ve;const fe=(ve=le[0])==null?void 0:ve.contentRect;fe&&va(_e=>Math.abs(_e.w-fe.width)>40||Math.abs(_e.h-fe.height)>40?{w:fe.width,h:fe.height}:_e)});return Y.observe(W),va({w:W.clientWidth,h:W.clientHeight}),()=>Y.disconnect()},[]);const Js=A.useRef(new Map),[eo,to]=A.useState(!1);A.useEffect(()=>{const W=window.setTimeout(()=>to(!0),2500);return()=>window.clearTimeout(W)},[]);const[_i,no]=A.useState(!1),_n=A.useRef(null),[Be,ro]=A.useState(!1),ya=A.useCallback(()=>{_n.current&&(window.clearTimeout(_n.current),_n.current=null),no(!1)},[]),io=A.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{no(!0),_n.current&&window.clearTimeout(_n.current),_n.current=window.setTimeout(()=>no(!1),J$+80)})},[]);A.useEffect(()=>()=>{_n.current&&window.clearTimeout(_n.current)},[]);const so=ss.w>0?ss.w*.92:0,oo=ss.h>0?ss.h:0,{nodes:Sn,edges:ao}=A.useMemo(()=>x4(n.current,De,so,oo,kt.current,un,Dn.current,Js.current,io,eo,Be,Qt.current,Wr,Zs,o,Gr,wr,S),[n.current,n.current.lastSeq,De,so,oo,eo,Be,un,Wr,o,Gr,wr,S,gt]),Si=A.useMemo(()=>{const W=new Map;for(const le of Sn){const fe=le.data;if(!(fe!=null&&fe.sessionId)||fe.exitAt!=null)continue;const ve=le.width,_e=le.height;if(ve==null||_e==null)continue;const Ae=le.position.x,Oe=le.position.y,Ue=Ae+ve,Ge=Oe+_e,tt=W.get(fe.sessionId);tt?(tt.minX=Math.min(tt.minX,Ae),tt.minY=Math.min(tt.minY,Oe),tt.maxX=Math.max(tt.maxX,Ue),tt.maxY=Math.max(tt.maxY,Ge)):W.set(fe.sessionId,{minX:Ae,minY:Oe,maxX:Ue,maxY:Ge})}const Y=[];for(const[le,fe]of W){const ve=fe.maxX-fe.minX+Il*2,_e=fe.maxY-fe.minY+Il*2;Y.push({id:`group:${le}`,type:"sessionGroup",position:{x:fe.minX-Il,y:fe.minY-Il},data:{sessionId:le,w:ve,h:_e},width:ve,height:_e,style:{width:ve,height:_e},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return Y},[Sn,De]),sr=A.useMemo(()=>{const W=[...Si,...Sn],Y=vt.current;return!Y||Y.size===0?W:W.map(le=>{const fe=Y.get(le.id);return fe?{...le,position:fe}:le})},[Si,Sn,lt]),or=A.useMemo(()=>{if(!un)return null;const W=new Set;for(const Y of n.current.agents.values())TC(Y,un)&&W.add(Y.id);return W},[n.current,n.current.lastSeq,un]),fn=A.useMemo(()=>{const W=new Set;for(const Y of n.current.agents.values())for(const le of Y.tools)W.add(RC(le.name));return Object.keys(Xg).filter(Y=>W.has(Y))},[n.current,n.current.lastSeq]);A.useEffect(()=>{if(fn.length<=1){ht(!1);return}let W=0;const Y=()=>{const le=$e.current;if(le&&!document.hidden){const fe=le.getBoundingClientRect(),ve=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ae=>Ae.getBoundingClientRect()),_e=X$(fe,ve,8);ht(Ae=>Ae===_e?Ae:_e)}W=window.setTimeout(Y,300)};return Y(),()=>window.clearTimeout(W)},[fn.length]);const Fn=A.useMemo(()=>{const W=new Map;for(const le of n.current.agents.values())for(const fe of le.tools){if(!fe.name.startsWith("mcp__"))continue;const ve=fe.name.slice(5),_e=ve.indexOf("__"),Ae=_e>0?ve.slice(0,_e):ve;W.set(Ae,(W.get(Ae)??0)+1)}const Y=[];for(const[le,fe]of W){let ve=5381;for(let _e=0;_e<le.length;_e++)ve=(ve<<5)+ve^le.charCodeAt(_e);Y.push({server:le,count:fe,hue:Math.abs(ve)%360})}return Y.sort((le,fe)=>fe.count-le.count),Y},[n.current,n.current.lastSeq]),bi=A.useCallback(W=>{gr(Y=>{const le=new Set(Y);return le.has(W)?le.delete(W):le.add(W),le})},[]),ut=u?n.current.agents.get(u):null,wa=p?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===p)??null:null,os=A.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Vg(),kt.current.clear(),Dn.current.clear(),Qt.current.clear(),Zs.current="",Bk(),m(),s()},[s,m]),xr=A.useCallback(()=>{kt.current.clear(),Qt.current.clear(),Zs.current="",Bk(),s(),window.setTimeout(()=>Xt(500),80)},[s,e,Xt]),xa=A.useCallback(()=>Xt(500),[Xt]),lo=A.useRef(Sn);lo.current=Sn;const ki=A.useRef(u);ki.current=u;const as=A.useCallback(W=>{const Y=lo.current;if(Y.length===0)return;const le=Y.slice().sort((Oe,Ue)=>Oe.position.y-Ue.position.y||Oe.position.x-Ue.position.x),fe=ki.current,ve=fe?le.findIndex(Oe=>Oe.id===fe):-1;let _e;ve===-1?_e=W===1?0:le.length-1:_e=(ve+W+le.length)%le.length;const Ae=le[_e];Ae&&(f(Ae.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[Ae]})}catch{}Ln.current=Date.now()},30))},[f,e]);A.useEffect(()=>{const W=Y=>{var fe,ve;const le=((fe=Y.target)==null?void 0:fe.tagName)==="INPUT";if(Y.key==="Escape"){le?Y.target.blur():m();return}if(!le&&!cO(Y)){if(Y.key==="/"){Y.preventDefault(),(ve=ts.current)==null||ve.focus();return}Y.key===" "&&(Y.preventDefault(),xt()),(Y.key==="c"||Y.key==="C")&&os(),(Y.key==="r"||Y.key==="R")&&xr(),(Y.key==="f"||Y.key==="F")&&xa(),(Y.key==="l"||Y.key==="L")&&ye(),(Y.key==="h"||Y.key==="H")&&at(_e=>!_e),(Y.key==="u"||Y.key==="U")&&O(_e=>!_e),(Y.key==="a"||Y.key==="A")&&we(),(Y.key==="j"||Y.key==="J")&&as(1),(Y.key==="k"||Y.key==="K")&&as(-1),(Y.key==="t"||Y.key==="T")&&vr(_e=>_e==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[os,xr,xa,m,as,xt]);const uo=n.current.agents.size,Ei=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,Rt=A.useMemo(()=>{let W=0,Y=0,le=0,fe=0,ve=0,_e=0,Ae=0,Oe=0,Ue=0;for(const Ge of n.current.agents.values()){W+=Ge.usage.inputTokens,Y+=Ge.usage.outputTokens,le+=Ge.usage.cacheReadTokens,fe+=Ge.usage.cacheCreateTokens;const tt=on(Ge.usage,Ge.model);ve+=tt.total,_e+=tt.input,Ae+=tt.output,Oe+=tt.cacheRead,Ue+=tt.cacheWrite}return{inT:W,outT:Y,cacheR:le,cacheC:fe,sum:W+Y,cost:{total:ve,input:_e,output:Ae,cacheRead:Oe,cacheWrite:Ue}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),"agents-deck",ce?g.jsxs("button",{type:"button",className:"v stale",onClick:Pe,title:ce.kind==="restart"?`Running v${ce.from}; v${ce.to} is installed on disk. Restart to pick it up.`:`Running v${ce.from}; v${ce.to} is on npm.`,children:["v",ce.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):g.jsxs("button",{type:"button",className:"v",onClick:()=>ue(!0),title:E!=null&&E.checkDisabled?"Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).":`${E!=null&&E.latest?`npm has v${E.latest}`:"npm not reached yet"}${E!=null&&E.checkedAt?` · checked ${o4(De-E.checkedAt)}`:""} · click to check now`,children:["v",(E==null?void 0:E.running)??"1.33.78"]})]}),ut&&(()=>{const W=on(ut.usage,ut.model),Y=Math.max(0,((ut.endedAt??De)-ut.startedAt)/1e3),le=ut.state==="active"?Gl(W.total,Y):null,fe=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${ut.label}`,onClick:()=>{try{const ve=Sn.find(_e=>_e.id===ut.id);ve&&e.fitView({padding:.35,duration:500,nodes:[ve]}),Ln.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${ut.state}`,children:ut.state==="active"?"live":ut.state}),g.jsx("span",{className:"selected-label",children:ut.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[Ve(W.total),le?g.jsxs("span",{className:"selected-rate",children:[" · ",le]}):null]}),fe>0&&g.jsxs("span",{className:"selected-extra",children:["+",fe]}),g.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:ve=>{ve.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:ts,type:"text",placeholder:"Search agents, cwd, tools…",value:un,onChange:W=>nr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),un?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>nr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"})]}),g.jsxs("span",{className:"status",role:"status",children:[g.jsx("span",{className:`pill ${F?"live":"dead"}`,title:F?"Receiving events":"SSE disconnected",children:F?"live":"offline"}),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Ei}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:uo}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Rt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Rt.inT.toLocaleString()} out:${Rt.outT.toLocaleString()} cache-r:${Rt.cacheR.toLocaleString()} cache-c:${Rt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:Q$(Rt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Fn.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
60
60
|
${Fn.map(W=>` ${W.server}: ${W.count} call${W.count===1?"":"s"}`).join(`
|
|
61
61
|
`)}`,children:[Fn.slice(0,6).map(W=>g.jsx("span",{className:"mcp-dot",style:{background:`hsl(${W.hue} 65% 65%)`}},W.server)),Fn.length>6&&g.jsxs("span",{className:"mcp-more",children:["+",Fn.length-6]}),g.jsx("span",{className:"lbl",children:"mcp"})]}),Rt.cost.total>0&&(()=>{let W=0,Y=0;for(const ve of n.current.agents.values()){if(ve.state!=="active")continue;const _e=on(ve.usage,ve.model);W+=_e.total,Y=Math.max(Y,((ve.endedAt??De)-ve.startedAt)/1e3)}const le=Y>0?Gl(W,Y):null,fe=`input ${Ve(Rt.cost.input)} + output ${Ve(Rt.cost.output)} + cache r ${Ve(Rt.cost.cacheRead)} + cache w ${Ve(Rt.cost.cacheWrite)}${le?`
|
|
62
62
|
active burn: ${le}`:""}`;return g.jsxs("span",{className:"stat",title:fe,children:[g.jsx("span",{className:"count",children:Ve(Rt.cost.total)}),g.jsxs("span",{className:"lbl",children:["cost",le?` · ${le}`:""]})]})})()]}),g.jsx("button",{className:`btn ${Pt?"warn":""}`,onClick:xt,title:"Pause/resume live updates (Space)",children:Pt?`Resume${Mt.current.size?` · ${Mt.current.size}`:""}`:"Pause"}),g.jsx("button",{className:`btn icon-btn ${P?"primary":""}`,onClick:()=>O(W=>!W),title:`${P?"Hide":"Show"} usage panel (U)`,"aria-label":"Toggle usage panel",children:"$"}),q!==null&&g.jsx("button",{className:`btn icon-btn ${q?"primary":""}`,onClick:W=>{if(W.shiftKey&&U>0){X(!0),fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"restore"})}).then(()=>fetch("/api/sound-hook")).then(Y=>Y.ok?Y.json():null).then(Y=>{Y!=null&&Y.ok&&(I(Y.enabled===!0),ee(Y.parked??0))}).catch(()=>{}).finally(()=>X(!1));return}J()},disabled:H,title:(q?"Sound on turn finish: on — click to remove the hook":"Sound on turn finish: off — click to add a Stop hook")+(T>0?`
|