|
|
${et}`)}function ft(T,u,c){return(T>=0&&c?` ${ht(T,u-1)}`:ht(T,u)).padEnd(u)}function ht(T,u){let c=T.toString();if(c.length<=u)return c;let i=T.toFixed(u);if(i.length>u&&(i=T.toFixed(Math.max(0,u-(i.length-u)))),i.length<=u&&!i.startsWith("0.000")&&!i.startsWith("-0.000"))return i;let f=T.toExponential(u);return f.length>u&&(f=T.toExponential(Math.max(0,u-(f.length-u)))),f.slice(0)}function dt(T,u){T.prototype.add=function(i){return typeof i=="number"?this.addS(i):this.addM(i)},T.prototype.addS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)+i);return this},T.prototype.addM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)+i.get(f,m));return this},T.add=function(i,f){return new u(i).add(f)},T.prototype.sub=function(i){return typeof i=="number"?this.subS(i):this.subM(i)},T.prototype.subS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)-i);return this},T.prototype.subM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)-i.get(f,m));return this},T.sub=function(i,f){return new u(i).sub(f)},T.prototype.subtract=T.prototype.sub,T.prototype.subtractS=T.prototype.subS,T.prototype.subtractM=T.prototype.subM,T.subtract=T.sub,T.prototype.mul=function(i){return typeof i=="number"?this.mulS(i):this.mulM(i)},T.prototype.mulS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)*i);return this},T.prototype.mulM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)*i.get(f,m));return this},T.mul=function(i,f){return new u(i).mul(f)},T.prototype.multiply=T.prototype.mul,T.prototype.multiplyS=T.prototype.mulS,T.prototype.multiplyM=T.prototype.mulM,T.multiply=T.mul,T.prototype.div=function(i){return typeof i=="number"?this.divS(i):this.divM(i)},T.prototype.divS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)/i);return this},T.prototype.divM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)/i.get(f,m));return this},T.div=function(i,f){return new u(i).div(f)},T.prototype.divide=T.prototype.div,T.prototype.divideS=T.prototype.divS,T.prototype.divideM=T.prototype.divM,T.divide=T.div,T.prototype.mod=function(i){return typeof i=="number"?this.modS(i):this.modM(i)},T.prototype.modS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)%i);return this},T.prototype.modM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)%i.get(f,m));return this},T.mod=function(i,f){return new u(i).mod(f)},T.prototype.modulus=T.prototype.mod,T.prototype.modulusS=T.prototype.modS,T.prototype.modulusM=T.prototype.modM,T.modulus=T.mod,T.prototype.and=function(i){return typeof i=="number"?this.andS(i):this.andM(i)},T.prototype.andS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)&i);return this},T.prototype.andM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)&i.get(f,m));return this},T.and=function(i,f){return new u(i).and(f)},T.prototype.or=function(i){return typeof i=="number"?this.orS(i):this.orM(i)},T.prototype.orS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)|i);return this},T.prototype.orM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)|i.get(f,m));return this},T.or=function(i,f){return new u(i).or(f)},T.prototype.xor=function(i){return typeof i=="number"?this.xorS(i):this.xorM(i)},T.prototype.xorS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)^i);return this},T.prototype.xorM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)^i.get(f,m));return this},T.xor=function(i,f){return new u(i).xor(f)},T.prototype.leftShift=function(i){return typeof i=="number"?this.leftShiftS(i):this.leftShiftM(i)},T.prototype.leftShiftS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)<<i);return this},T.prototype.leftShiftM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)<<i.get(f,m));return this},T.leftShift=function(i,f){return new u(i).leftShift(f)},T.prototype.signPropagatingRightShift=function(i){return typeof i=="number"?this.signPropagatingRightShiftS(i):this.signPropagatingRightShiftM(i)},T.prototype.signPropagatingRightShiftS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)>>i);return this},T.prototype.signPropagatingRightShiftM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)>>i.get(f,m));return this},T.signPropagatingRightShift=function(i,f){return new u(i).signPropagatingRightShift(f)},T.prototype.rightShift=function(i){return typeof i=="number"?this.rightShiftS(i):this.rightShiftM(i)},T.prototype.rightShiftS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)>>>i);return this},T.prototype.rightShiftM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,this.get(f,m)>>>i.get(f,m));return this},T.rightShift=function(i,f){return new u(i).rightShift(f)},T.prototype.zeroFillRightShift=T.prototype.rightShift,T.prototype.zeroFillRightShiftS=T.prototype.rightShiftS,T.prototype.zeroFillRightShiftM=T.prototype.rightShiftM,T.zeroFillRightShift=T.rightShift,T.prototype.not=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,~this.get(i,f));return this},T.not=function(i){return new u(i).not()},T.prototype.abs=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.abs(this.get(i,f)));return this},T.abs=function(i){return new u(i).abs()},T.prototype.acos=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.acos(this.get(i,f)));return this},T.acos=function(i){return new u(i).acos()},T.prototype.acosh=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.acosh(this.get(i,f)));return this},T.acosh=function(i){return new u(i).acosh()},T.prototype.asin=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.asin(this.get(i,f)));return this},T.asin=function(i){return new u(i).asin()},T.prototype.asinh=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.asinh(this.get(i,f)));return this},T.asinh=function(i){return new u(i).asinh()},T.prototype.atan=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.atan(this.get(i,f)));return this},T.atan=function(i){return new u(i).atan()},T.prototype.atanh=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.atanh(this.get(i,f)));return this},T.atanh=function(i){return new u(i).atanh()},T.prototype.cbrt=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.cbrt(this.get(i,f)));return this},T.cbrt=function(i){return new u(i).cbrt()},T.prototype.ceil=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.ceil(this.get(i,f)));return this},T.ceil=function(i){return new u(i).ceil()},T.prototype.clz32=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.clz32(this.get(i,f)));return this},T.clz32=function(i){return new u(i).clz32()},T.prototype.cos=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.cos(this.get(i,f)));return this},T.cos=function(i){return new u(i).cos()},T.prototype.cosh=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.cosh(this.get(i,f)));return this},T.cosh=function(i){return new u(i).cosh()},T.prototype.exp=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.exp(this.get(i,f)));return this},T.exp=function(i){return new u(i).exp()},T.prototype.expm1=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.expm1(this.get(i,f)));return this},T.expm1=function(i){return new u(i).expm1()},T.prototype.floor=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.floor(this.get(i,f)));return this},T.floor=function(i){return new u(i).floor()},T.prototype.fround=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.fround(this.get(i,f)));return this},T.fround=function(i){return new u(i).fround()},T.prototype.log=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.log(this.get(i,f)));return this},T.log=function(i){return new u(i).log()},T.prototype.log1p=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.log1p(this.get(i,f)));return this},T.log1p=function(i){return new u(i).log1p()},T.prototype.log10=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.log10(this.get(i,f)));return this},T.log10=function(i){return new u(i).log10()},T.prototype.log2=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.log2(this.get(i,f)));return this},T.log2=function(i){return new u(i).log2()},T.prototype.round=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.round(this.get(i,f)));return this},T.round=function(i){return new u(i).round()},T.prototype.sign=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.sign(this.get(i,f)));return this},T.sign=function(i){return new u(i).sign()},T.prototype.sin=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.sin(this.get(i,f)));return this},T.sin=function(i){return new u(i).sin()},T.prototype.sinh=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.sinh(this.get(i,f)));return this},T.sinh=function(i){return new u(i).sinh()},T.prototype.sqrt=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.sqrt(this.get(i,f)));return this},T.sqrt=function(i){return new u(i).sqrt()},T.prototype.tan=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.tan(this.get(i,f)));return this},T.tan=function(i){return new u(i).tan()},T.prototype.tanh=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.tanh(this.get(i,f)));return this},T.tanh=function(i){return new u(i).tanh()},T.prototype.trunc=function(){for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.set(i,f,Math.trunc(this.get(i,f)));return this},T.trunc=function(i){return new u(i).trunc()},T.pow=function(i,f){return new u(i).pow(f)},T.prototype.pow=function(i){return typeof i=="number"?this.powS(i):this.powM(i)},T.prototype.powS=function(i){for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,b(this.get(f,m),i));return this},T.prototype.powM=function(i){if(i=u.checkMatrix(i),this.rows!==i.rows||this.columns!==i.columns)throw new RangeError("Matrices dimensions must be equal");for(let f=0;f<this.rows;f++)for(let m=0;m<this.columns;m++)this.set(f,m,b(this.get(f,m),i.get(f,m)));return this}}function xt(T,u,c){let i=c?T.rows:T.rows-1;if(u<0||u>i)throw new RangeError("Row index out of range")}function yt(T,u,c){let i=c?T.columns:T.columns-1;if(u<0||u>i)throw new RangeError("Column index out of range")}function Mt(T,u){if(u.to1DArray&&(u=u.to1DArray()),u.length!==T.columns)throw new RangeError("vector size must be the same as the number of columns");return u}function St(T,u){if(u.to1DArray&&(u=u.to1DArray()),u.length!==T.rows)throw new RangeError("vector size must be the same as the number of rows");return u}function kt(T,u){if(!ot.isAnyArray(u))throw new TypeError("row indices must be an array");for(let c=0;c<u.length;c++)if(u[c]<0||u[c]>=T.rows)throw new RangeError("row indices are out of range")}function Vt(T,u){if(!ot.isAnyArray(u))throw new TypeError("column indices must be an array");for(let c=0;c<u.length;c++)if(u[c]<0||u[c]>=T.columns)throw new RangeError("column indices are out of range")}function qt(T,u,c,i,f){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(ce("startRow",u),ce("endRow",c),ce("startColumn",i),ce("endColumn",f),u>c||i>f||u<0||u>=T.rows||c<0||c>=T.rows||i<0||i>=T.columns||f<0||f>=T.columns)throw new RangeError("Submatrix indices are out of range")}function te(T,u=0){let c=[];for(let i=0;i<T;i++)c.push(u);return c}function ce(T,u){if(typeof u!="number")throw new TypeError(`${T} must be a number`)}function ze(T){if(T.isEmpty())throw new Error("Empty matrix has no elements to index")}function tn(T){let u=te(T.rows);for(let c=0;c<T.rows;++c)for(let i=0;i<T.columns;++i)u[c]+=T.get(c,i);return u}function xe(T){let u=te(T.columns);for(let c=0;c<T.rows;++c)for(let i=0;i<T.columns;++i)u[i]+=T.get(c,i);return u}function mn(T){let u=0;for(let c=0;c<T.rows;c++)for(let i=0;i<T.columns;i++)u+=T.get(c,i);return u}function Mn(T){let u=te(T.rows,1);for(let c=0;c<T.rows;++c)for(let i=0;i<T.columns;++i)u[c]*=T.get(c,i);return u}function cn(T){let u=te(T.columns,1);for(let c=0;c<T.rows;++c)for(let i=0;i<T.columns;++i)u[i]*=T.get(c,i);return u}function en(T){let u=1;for(let c=0;c<T.rows;c++)for(let i=0;i<T.columns;i++)u*=T.get(c,i);return u}function gt(T,u,c){const i=T.rows,f=T.columns,m=[];for(let k=0;k<i;k++){let B=0,G=0,V=0;for(let rt=0;rt<f;rt++)V=T.get(k,rt)-c[k],B+=V,G+=V*V;u?m.push((G-B*B/f)/(f-1)):m.push((G-B*B/f)/f)}return m}function wt(T,u,c){const i=T.rows,f=T.columns,m=[];for(let k=0;k<f;k++){let B=0,G=0,V=0;for(let rt=0;rt<i;rt++)V=T.get(rt,k)-c[k],B+=V,G+=V*V;u?m.push((G-B*B/i)/(i-1)):m.push((G-B*B/i)/i)}return m}function jt(T,u,c){const i=T.rows,f=T.columns,m=i*f;let k=0,B=0,G=0;for(let V=0;V<i;V++)for(let rt=0;rt<f;rt++)G=T.get(V,rt)-c,k+=G,B+=G*G;return u?(B-k*k/m)/(m-1):(B-k*k/m)/m}function Ft(T,u){for(let c=0;c<T.rows;c++)for(let i=0;i<T.columns;i++)T.set(c,i,T.get(c,i)-u[c])}function Ht(T,u){for(let c=0;c<T.rows;c++)for(let i=0;i<T.columns;i++)T.set(c,i,T.get(c,i)-u[i])}function de(T,u){for(let c=0;c<T.rows;c++)for(let i=0;i<T.columns;i++)T.set(c,i,T.get(c,i)-u)}function ge(T){const u=[];for(let c=0;c<T.rows;c++){let i=0;for(let f=0;f<T.columns;f++)i+=b(T.get(c,f),2)/(T.columns-1);u.push(Math.sqrt(i))}return u}function Re(T,u){for(let c=0;c<T.rows;c++)for(let i=0;i<T.columns;i++)T.set(c,i,T.get(c,i)/u[c])}function fn(T){const u=[];for(let c=0;c<T.columns;c++){let i=0;for(let f=0;f<T.rows;f++)i+=b(T.get(f,c),2)/(T.rows-1);u.push(Math.sqrt(i))}return u}function Ce(T,u){for(let c=0;c<T.rows;c++)for(let i=0;i<T.columns;i++)T.set(c,i,T.get(c,i)/u[i])}function Ne(T){const u=T.size-1;let c=0;for(let i=0;i<T.columns;i++)for(let f=0;f<T.rows;f++)c+=b(T.get(f,i),2)/u;return Math.sqrt(c)}function se(T,u){for(let c=0;c<T.rows;c++)for(let i=0;i<T.columns;i++)T.set(c,i,T.get(c,i)/u)}class Wt{static from1DArray(u,c,i){if(u*c!==i.length)throw new RangeError("data length does not match given dimensions");let m=new It(u,c);for(let k=0;k<u;k++)for(let B=0;B<c;B++)m.set(k,B,i[k*c+B]);return m}static rowVector(u){let c=new It(1,u.length);for(let i=0;i<u.length;i++)c.set(0,i,u[i]);return c}static columnVector(u){let c=new It(u.length,1);for(let i=0;i<u.length;i++)c.set(i,0,u[i]);return c}static zeros(u,c){return new It(u,c)}static ones(u,c){return new It(u,c).fill(1)}static rand(u,c,i={}){if(typeof i!="object")throw new TypeError("options must be an object");const{random:f=Math.random}=i;let m=new It(u,c);for(let k=0;k<u;k++)for(let B=0;B<c;B++)m.set(k,B,f());return m}static randInt(u,c,i={}){if(typeof i!="object")throw new TypeError("options must be an object");const{min:f=0,max:m=1e3,random:k=Math.random}=i;if(!Number.isInteger(f))throw new TypeError("min must be an integer");if(!Number.isInteger(m))throw new TypeError("max must be an integer");if(f>=m)throw new RangeError("min must be smaller than max");let B=m-f,G=new It(u,c);for(let V=0;V<u;V++)for(let rt=0;rt<c;rt++){let Z=f+Math.round(k()*B);G.set(V,rt,Z)}return G}static eye(u,c,i){c===void 0&&(c=u),i===void 0&&(i=1);let f=Math.min(u,c),m=this.zeros(u,c);for(let k=0;k<f;k++)m.set(k,k,i);return m}static diag(u,c,i){let f=u.length;c===void 0&&(c=f),i===void 0&&(i=c);let m=Math.min(f,c,i),k=this.zeros(c,i);for(let B=0;B<m;B++)k.set(B,B,u[B]);return k}static min(u,c){u=this.checkMatrix(u),c=this.checkMatrix(c);let i=u.rows,f=u.columns,m=new It(i,f);for(let k=0;k<i;k++)for(let B=0;B<f;B++)m.set(k,B,Math.min(u.get(k,B),c.get(k,B)));return m}static max(u,c){u=this.checkMatrix(u),c=this.checkMatrix(c);let i=u.rows,f=u.columns,m=new this(i,f);for(let k=0;k<i;k++)for(let B=0;B<f;B++)m.set(k,B,Math.max(u.get(k,B),c.get(k,B)));return m}static checkMatrix(u){return Wt.isMatrix(u)?u:new It(u)}static isMatrix(u){return u!=null&&u.klass==="Matrix"}get size(){return this.rows*this.columns}apply(u){if(typeof u!="function")throw new TypeError("callback must be a function");for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)u.call(this,c,i);return this}to1DArray(){let u=[];for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)u.push(this.get(c,i));return u}to2DArray(){let u=[];for(let c=0;c<this.rows;c++){u.push([]);for(let i=0;i<this.columns;i++)u[c].push(this.get(c,i))}return u}toJSON(){return this.to2DArray()}isRowVector(){return this.rows===1}isColumnVector(){return this.columns===1}isVector(){return this.rows===1||this.columns===1}isSquare(){return this.rows===this.columns}isEmpty(){return this.rows===0||this.columns===0}isSymmetric(){if(this.isSquare()){for(let u=0;u<this.rows;u++)for(let c=0;c<=u;c++)if(this.get(u,c)!==this.get(c,u))return!1;return!0}return!1}isDistance(){if(!this.isSymmetric())return!1;for(let u=0;u<this.rows;u++)if(this.get(u,u)!==0)return!1;return!0}isEchelonForm(){let u=0,c=0,i=-1,f=!0,m=!1;for(;u<this.rows&&f;){for(c=0,m=!1;c<this.columns&&m===!1;)this.get(u,c)===0?c++:this.get(u,c)===1&&c>i?(m=!0,i=c):(f=!1,m=!0);u++}return f}isReducedEchelonForm(){let u=0,c=0,i=-1,f=!0,m=!1;for(;u<this.rows&&f;){for(c=0,m=!1;c<this.columns&&m===!1;)this.get(u,c)===0?c++:this.get(u,c)===1&&c>i?(m=!0,i=c):(f=!1,m=!0);for(let k=c+1;k<this.rows;k++)this.get(u,k)!==0&&(f=!1);u++}return f}echelonForm(){let u=this.clone(),c=0,i=0;for(;c<u.rows&&i<u.columns;){let f=c;for(let m=c;m<u.rows;m++)u.get(m,i)>u.get(f,i)&&(f=m);if(u.get(f,i)===0)i++;else{u.swapRows(c,f);let m=u.get(c,i);for(let k=i;k<u.columns;k++)u.set(c,k,u.get(c,k)/m);for(let k=c+1;k<u.rows;k++){let B=u.get(k,i)/u.get(c,i);u.set(k,i,0);for(let G=i+1;G<u.columns;G++)u.set(k,G,u.get(k,G)-u.get(c,G)*B)}c++,i++}}return u}reducedEchelonForm(){let u=this.echelonForm(),c=u.columns,i=u.rows,f=i-1;for(;f>=0;)if(u.maxRow(f)===0)f--;else{let m=0,k=!1;for(;m<i&&k===!1;)u.get(f,m)===1?k=!0:m++;for(let B=0;B<f;B++){let G=u.get(B,m);for(let V=m;V<c;V++){let rt=u.get(B,V)-G*u.get(f,V);u.set(B,V,rt)}}f--}return u}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(u={}){if(typeof u!="object")throw new TypeError("options must be an object");const{rows:c=1,columns:i=1}=u;if(!Number.isInteger(c)||c<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(i)||i<=0)throw new TypeError("columns must be a positive integer");let f=new It(this.rows*c,this.columns*i);for(let m=0;m<c;m++)for(let k=0;k<i;k++)f.setSubMatrix(this,this.rows*m,this.columns*k);return f}fill(u){for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,u);return this}neg(){return this.mulS(-1)}getRow(u){xt(this,u);let c=[];for(let i=0;i<this.columns;i++)c.push(this.get(u,i));return c}getRowVector(u){return It.rowVector(this.getRow(u))}setRow(u,c){xt(this,u),c=Mt(this,c);for(let i=0;i<this.columns;i++)this.set(u,i,c[i]);return this}swapRows(u,c){xt(this,u),xt(this,c);for(let i=0;i<this.columns;i++){let f=this.get(u,i);this.set(u,i,this.get(c,i)),this.set(c,i,f)}return this}getColumn(u){yt(this,u);let c=[];for(let i=0;i<this.rows;i++)c.push(this.get(i,u));return c}getColumnVector(u){return It.columnVector(this.getColumn(u))}setColumn(u,c){yt(this,u),c=St(this,c);for(let i=0;i<this.rows;i++)this.set(i,u,c[i]);return this}swapColumns(u,c){yt(this,u),yt(this,c);for(let i=0;i<this.rows;i++){let f=this.get(i,u);this.set(i,u,this.get(i,c)),this.set(i,c,f)}return this}addRowVector(u){u=Mt(this,u);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,this.get(c,i)+u[i]);return this}subRowVector(u){u=Mt(this,u);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,this.get(c,i)-u[i]);return this}mulRowVector(u){u=Mt(this,u);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,this.get(c,i)*u[i]);return this}divRowVector(u){u=Mt(this,u);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,this.get(c,i)/u[i]);return this}addColumnVector(u){u=St(this,u);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,this.get(c,i)+u[c]);return this}subColumnVector(u){u=St(this,u);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,this.get(c,i)-u[c]);return this}mulColumnVector(u){u=St(this,u);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,this.get(c,i)*u[c]);return this}divColumnVector(u){u=St(this,u);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)this.set(c,i,this.get(c,i)/u[c]);return this}mulRow(u,c){xt(this,u);for(let i=0;i<this.columns;i++)this.set(u,i,this.get(u,i)*c);return this}mulColumn(u,c){yt(this,u);for(let i=0;i<this.rows;i++)this.set(i,u,this.get(i,u)*c);return this}max(u){if(this.isEmpty())return NaN;switch(u){case"row":{const c=new Array(this.rows).fill(Number.NEGATIVE_INFINITY);for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.get(i,f)>c[i]&&(c[i]=this.get(i,f));return c}case"column":{const c=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.get(i,f)>c[f]&&(c[f]=this.get(i,f));return c}case void 0:{let c=this.get(0,0);for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.get(i,f)>c&&(c=this.get(i,f));return c}default:throw new Error(`invalid option: ${u}`)}}maxIndex(){ze(this);let u=this.get(0,0),c=[0,0];for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.get(i,f)>u&&(u=this.get(i,f),c[0]=i,c[1]=f);return c}min(u){if(this.isEmpty())return NaN;switch(u){case"row":{const c=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.get(i,f)<c[i]&&(c[i]=this.get(i,f));return c}case"column":{const c=new Array(this.columns).fill(Number.POSITIVE_INFINITY);for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.get(i,f)<c[f]&&(c[f]=this.get(i,f));return c}case void 0:{let c=this.get(0,0);for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.get(i,f)<c&&(c=this.get(i,f));return c}default:throw new Error(`invalid option: ${u}`)}}minIndex(){ze(this);let u=this.get(0,0),c=[0,0];for(let i=0;i<this.rows;i++)for(let f=0;f<this.columns;f++)this.get(i,f)<u&&(u=this.get(i,f),c[0]=i,c[1]=f);return c}maxRow(u){if(xt(this,u),this.isEmpty())return NaN;let c=this.get(u,0);for(let i=1;i<this.columns;i++)this.get(u,i)>c&&(c=this.get(u,i));return c}maxRowIndex(u){xt(this,u),ze(this);let c=this.get(u,0),i=[u,0];for(let f=1;f<this.columns;f++)this.get(u,f)>c&&(c=this.get(u,f),i[1]=f);return i}minRow(u){if(xt(this,u),this.isEmpty())return NaN;let c=this.get(u,0);for(let i=1;i<this.columns;i++)this.get(u,i)<c&&(c=this.get(u,i));return c}minRowIndex(u){xt(this,u),ze(this);let c=this.get(u,0),i=[u,0];for(let f=1;f<this.columns;f++)this.get(u,f)<c&&(c=this.get(u,f),i[1]=f);return i}maxColumn(u){if(yt(this,u),this.isEmpty())return NaN;let c=this.get(0,u);for(let i=1;i<this.rows;i++)this.get(i,u)>c&&(c=this.get(i,u));return c}maxColumnIndex(u){yt(this,u),ze(this);let c=this.get(0,u),i=[0,u];for(let f=1;f<this.rows;f++)this.get(f,u)>c&&(c=this.get(f,u),i[0]=f);return i}minColumn(u){if(yt(this,u),this.isEmpty())return NaN;let c=this.get(0,u);for(let i=1;i<this.rows;i++)this.get(i,u)<c&&(c=this.get(i,u));return c}minColumnIndex(u){yt(this,u),ze(this);let c=this.get(0,u),i=[0,u];for(let f=1;f<this.rows;f++)this.get(f,u)<c&&(c=this.get(f,u),i[0]=f);return i}diag(){let u=Math.min(this.rows,this.columns),c=[];for(let i=0;i<u;i++)c.push(this.get(i,i));return c}norm(u="frobenius"){switch(u){case"max":return this.max();case"frobenius":return Math.sqrt(this.dot(this));default:throw new RangeError(`unknown norm type: ${u}`)}}cumulativeSum(){let u=0;for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)u+=this.get(c,i),this.set(c,i,u);return this}dot(u){Wt.isMatrix(u)&&(u=u.to1DArray());let c=this.to1DArray();if(c.length!==u.length)throw new RangeError("vectors do not have the same size");let i=0;for(let f=0;f<c.length;f++)i+=c[f]*u[f];return i}mmul(u){u=It.checkMatrix(u);let c=this.rows,i=this.columns,f=u.columns,m=new It(c,f),k=new Float64Array(i);for(let B=0;B<f;B++){for(let G=0;G<i;G++)k[G]=u.get(G,B);for(let G=0;G<c;G++){let V=0;for(let rt=0;rt<i;rt++)V+=this.get(G,rt)*k[rt];m.set(G,B,V)}}return m}mpow(u){if(!this.isSquare())throw new RangeError("Matrix must be square");if(!Number.isInteger(u)||u<0)throw new RangeError("Exponent must be a non-negative integer");let c=It.eye(this.rows),i=this;for(let f=u;f>1;f/=2)f&1&&(c=c.mmul(i)),i=i.mmul(i);return c}strassen2x2(u){u=It.checkMatrix(u);let c=new It(2,2);const i=this.get(0,0),f=u.get(0,0),m=this.get(0,1),k=u.get(0,1),B=this.get(1,0),G=u.get(1,0),V=this.get(1,1),rt=u.get(1,1),Z=(i+V)*(f+rt),lt=(B+V)*f,At=i*(k-rt),ct=V*(G-f),pt=(i+m)*rt,Lt=(B-i)*(f+k),J=(m-V)*(G+rt),Ot=Z+ct-pt+J,Ct=At+pt,Kt=lt+ct,Zt=Z-lt+At+Lt;return c.set(0,0,Ot),c.set(0,1,Ct),c.set(1,0,Kt),c.set(1,1,Zt),c}strassen3x3(u){u=It.checkMatrix(u);let c=new It(3,3);const i=this.get(0,0),f=this.get(0,1),m=this.get(0,2),k=this.get(1,0),B=this.get(1,1),G=this.get(1,2),V=this.get(2,0),rt=this.get(2,1),Z=this.get(2,2),lt=u.get(0,0),At=u.get(0,1),ct=u.get(0,2),pt=u.get(1,0),Lt=u.get(1,1),J=u.get(1,2),Ot=u.get(2,0),Ct=u.get(2,1),Kt=u.get(2,2),Zt=(i+f+m-k-B-rt-Z)*Lt,ye=(i-k)*(-At+Lt),Ut=B*(-lt+At+pt-Lt-J-Ot+Kt),Yt=(-i+k+B)*(lt-At+Lt),ae=(k+B)*(-lt+At),H=i*lt,mt=(-i+V+rt)*(lt-ct+J),Rt=(-i+V)*(ct-J),Nt=(V+rt)*(-lt+ct),we=(i+f+m-B-G-V-rt)*J,ue=rt*(-lt+ct+pt-Lt-J-Ot+Ct),he=(-m+rt+Z)*(Lt+Ot-Ct),pe=(m-Z)*(Lt-Ct),Pe=m*Ot,Ze=(rt+Z)*(-Ot+Ct),Oe=(-m+B+G)*(J+Ot-Kt),_e=(m-G)*(J-Kt),sn=(B+G)*(-Ot+Kt),ne=f*pt,Te=G*Ct,Ge=k*ct,Be=V*At,Ae=Z*Kt,Ar=H+Pe+ne,Tr=Zt+Yt+ae+H+he+Pe+Ze,ar=H+mt+Nt+we+Pe+Oe+sn,ur=ye+Ut+Yt+H+Pe+Oe+_e,Xn=ye+Yt+ae+H+Te,jr=Pe+Oe+_e+sn+Ge,Ir=H+mt+Rt+ue+he+pe+Pe,Pr=he+pe+Pe+Ze+Be,Lr=H+mt+Rt+Nt+Ae;return c.set(0,0,Ar),c.set(0,1,Tr),c.set(0,2,ar),c.set(1,0,ur),c.set(1,1,Xn),c.set(1,2,jr),c.set(2,0,Ir),c.set(2,1,Pr),c.set(2,2,Lr),c}mmulStrassen(u){u=It.checkMatrix(u);let c=this.clone(),i=c.rows,f=c.columns,m=u.rows,k=u.columns;f!==m&&console.warn(`Multiplying ${i} x ${f} and ${m} x ${k} matrix: dimensions do not match.`);function B(Z,lt,At){let ct=Z.rows,pt=Z.columns;if(ct===lt&&pt===At)return Z;{let Lt=Wt.zeros(lt,At);return Lt=Lt.setSubMatrix(Z,0,0),Lt}}let G=Math.max(i,m),V=Math.max(f,k);c=B(c,G,V),u=B(u,G,V);function rt(Z,lt,At,ct){if(At<=512||ct<=512)return Z.mmul(lt);At%2===1&&ct%2===1?(Z=B(Z,At+1,ct+1),lt=B(lt,At+1,ct+1)):At%2===1?(Z=B(Z,At+1,ct),lt=B(lt,At+1,ct)):ct%2===1&&(Z=B(Z,At,ct+1),lt=B(lt,At,ct+1));let pt=parseInt(Z.rows/2,10),Lt=parseInt(Z.columns/2,10),J=Z.subMatrix(0,pt-1,0,Lt-1),Ot=lt.subMatrix(0,pt-1,0,Lt-1),Ct=Z.subMatrix(0,pt-1,Lt,Z.columns-1),Kt=lt.subMatrix(0,pt-1,Lt,lt.columns-1),Zt=Z.subMatrix(pt,Z.rows-1,0,Lt-1),ye=lt.subMatrix(pt,lt.rows-1,0,Lt-1),Ut=Z.subMatrix(pt,Z.rows-1,Lt,Z.columns-1),Yt=lt.subMatrix(pt,lt.rows-1,Lt,lt.columns-1),ae=rt(Wt.add(J,Ut),Wt.add(Ot,Yt),pt,Lt),H=rt(Wt.add(Zt,Ut),Ot,pt,Lt),mt=rt(J,Wt.sub(Kt,Yt),pt,Lt),Rt=rt(Ut,Wt.sub(ye,Ot),pt,Lt),Nt=rt(Wt.add(J,Ct),Yt,pt,Lt),we=rt(Wt.sub(Zt,J),Wt.add(Ot,Kt),pt,Lt),ue=rt(Wt.sub(Ct,Ut),Wt.add(ye,Yt),pt,Lt),he=Wt.add(ae,Rt);he.sub(Nt),he.add(ue);let pe=Wt.add(mt,Nt),Pe=Wt.add(H,Rt),Ze=Wt.sub(ae,H);Ze.add(mt),Ze.add(we);let Oe=Wt.zeros(2*he.rows,2*he.columns);return Oe=Oe.setSubMatrix(he,0,0),Oe=Oe.setSubMatrix(pe,he.rows,0),Oe=Oe.setSubMatrix(Pe,0,he.columns),Oe=Oe.setSubMatrix(Ze,he.rows,he.columns),Oe.subMatrix(0,At-1,0,ct-1)}return rt(c,u,G,V)}scaleRows(u={}){if(typeof u!="object")throw new TypeError("options must be an object");const{min:c=0,max:i=1}=u;if(!Number.isFinite(c))throw new TypeError("min must be a number");if(!Number.isFinite(i))throw new TypeError("max must be a number");if(c>=i)throw new RangeError("min must be smaller than max");let f=new It(this.rows,this.columns);for(let m=0;m<this.rows;m++){const k=this.getRow(m);k.length>0&&nt(k,{min:c,max:i,output:k}),f.setRow(m,k)}return f}scaleColumns(u={}){if(typeof u!="object")throw new TypeError("options must be an object");const{min:c=0,max:i=1}=u;if(!Number.isFinite(c))throw new TypeError("min must be a number");if(!Number.isFinite(i))throw new TypeError("max must be a number");if(c>=i)throw new RangeError("min must be smaller than max");let f=new It(this.rows,this.columns);for(let m=0;m<this.columns;m++){const k=this.getColumn(m);k.length&&nt(k,{min:c,max:i,output:k}),f.setColumn(m,k)}return f}flipRows(){const u=Math.ceil(this.columns/2);for(let c=0;c<this.rows;c++)for(let i=0;i<u;i++){let f=this.get(c,i),m=this.get(c,this.columns-1-i);this.set(c,i,m),this.set(c,this.columns-1-i,f)}return this}flipColumns(){const u=Math.ceil(this.rows/2);for(let c=0;c<this.columns;c++)for(let i=0;i<u;i++){let f=this.get(i,c),m=this.get(this.rows-1-i,c);this.set(i,c,m),this.set(this.rows-1-i,c,f)}return this}kroneckerProduct(u){u=It.checkMatrix(u);let c=this.rows,i=this.columns,f=u.rows,m=u.columns,k=new It(c*f,i*m);for(let B=0;B<c;B++)for(let G=0;G<i;G++)for(let V=0;V<f;V++)for(let rt=0;rt<m;rt++)k.set(f*B+V,m*G+rt,this.get(B,G)*u.get(V,rt));return k}kroneckerSum(u){if(u=It.checkMatrix(u),!this.isSquare()||!u.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let c=this.rows,i=u.rows,f=this.kroneckerProduct(It.eye(i,i)),m=It.eye(c,c).kroneckerProduct(u);return f.add(m)}transpose(){let u=new It(this.columns,this.rows);for(let c=0;c<this.rows;c++)for(let i=0;i<this.columns;i++)u.set(i,c,this.get(c,i));return u}sortRows(u=ee){for(let c=0;c<this.rows;c++)this.setRow(c,this.getRow(c).sort(u));return this}sortColumns(u=ee){for(let c=0;c<this.columns;c++)this.setColumn(c,this.getColumn(c).sort(u));return this}subMatrix(u,c,i,f){qt(this,u,c,i,f);let m=new It(c-u+1,f-i+1);for(let k=u;k<=c;k++)for(let B=i;B<=f;B++)m.set(k-u,B-i,this.get(k,B));return m}subMatrixRow(u,c,i){if(c===void 0&&(c=0),i===void 0&&(i=this.columns-1),c>i||c<0||c>=this.columns||i<0||i>=this.columns)throw new RangeError("Argument out of range");let f=new It(u.length,i-c+1);for(let m=0;m<u.length;m++)for(let k=c;k<=i;k++){if(u[m]<0||u[m]>=this.rows)throw new RangeError(`Row index out of range: ${u[m]}`);f.set(m,k-c,this.get(u[m],k))}return f}subMatrixColumn(u,c,i){if(c===void 0&&(c=0),i===void 0&&(i=this.rows-1),c>i||c<0||c>=this.rows||i<0||i>=this.rows)throw new RangeError("Argument out of range");let f=new It(i-c+1,u.length);for(let m=0;m<u.length;m++)for(let k=c;k<=i;k++){if(u[m]<0||u[m]>=this.columns)throw new RangeError(`Column index out of range: ${u[m]}`);f.set(k-c,m,this.get(k,u[m]))}return f}setSubMatrix(u,c,i){if(u=It.checkMatrix(u),u.isEmpty())return this;let f=c+u.rows-1,m=i+u.columns-1;qt(this,c,f,i,m);for(let k=0;k<u.rows;k++)for(let B=0;B<u.columns;B++)this.set(c+k,i+B,u.get(k,B));return this}selection(u,c){kt(this,u),Vt(this,c);let i=new It(u.length,c.length);for(let f=0;f<u.length;f++){let m=u[f];for(let k=0;k<c.length;k++){let B=c[k];i.set(f,k,this.get(m,B))}}return i}trace(){let u=Math.min(this.rows,this.columns),c=0;for(let i=0;i<u;i++)c+=this.get(i,i);return c}clone(){return this.constructor.copy(this,new It(this.rows,this.columns))}static copy(u,c){for(const[i,f,m]of u.entries())c.set(i,f,m);return c}sum(u){switch(u){case"row":return tn(this);case"column":return xe(this);case void 0:return mn(this);default:throw new Error(`invalid option: ${u}`)}}product(u){switch(u){case"row":return Mn(this);case"column":return cn(this);case void 0:return en(this);default:throw new Error(`invalid option: ${u}`)}}mean(u){const c=this.sum(u);switch(u){case"row":{for(let i=0;i<this.rows;i++)c[i]/=this.columns;return c}case"column":{for(let i=0;i<this.columns;i++)c[i]/=this.rows;return c}case void 0:return c/this.size;default:throw new Error(`invalid option: ${u}`)}}variance(u,c={}){if(typeof u=="object"&&(c=u,u=void 0),typeof c!="object")throw new TypeError("options must be an object");const{unbiased:i=!0,mean:f=this.mean(u)}=c;if(typeof i!="boolean")throw new TypeError("unbiased must be a boolean");switch(u){case"row":{if(!ot.isAnyArray(f))throw new TypeError("mean must be an array");return gt(this,i,f)}case"column":{if(!ot.isAnyArray(f))throw new TypeError("mean must be an array");return wt(this,i,f)}case void 0:{if(typeof f!="number")throw new TypeError("mean must be a number");return jt(this,i,f)}default:throw new Error(`invalid option: ${u}`)}}standardDeviation(u,c){typeof u=="object"&&(c=u,u=void 0);const i=this.variance(u,c);if(u===void 0)return Math.sqrt(i);for(let f=0;f<i.length;f++)i[f]=Math.sqrt(i[f]);return i}center(u,c={}){if(typeof u=="object"&&(c=u,u=void 0),typeof c!="object")throw new TypeError("options must be an object");const{center:i=this.mean(u)}=c;switch(u){case"row":{if(!ot.isAnyArray(i))throw new TypeError("center must be an array");return Ft(this,i),this}case"column":{if(!ot.isAnyArray(i))throw new TypeError("center must be an array");return Ht(this,i),this}case void 0:{if(typeof i!="number")throw new TypeError("center must be a number");return de(this,i),this}default:throw new Error(`invalid option: ${u}`)}}scale(u,c={}){if(typeof u=="object"&&(c=u,u=void 0),typeof c!="object")throw new TypeError("options must be an object");let i=c.scale;switch(u){case"row":{if(i===void 0)i=ge(this);else if(!ot.isAnyArray(i))throw new TypeError("scale must be an array");return Re(this,i),this}case"column":{if(i===void 0)i=fn(this);else if(!ot.isAnyArray(i))throw new TypeError("scale must be an array");return Ce(this,i),this}case void 0:{if(i===void 0)i=Ne(this);else if(typeof i!="number")throw new TypeError("scale must be a number");return se(this,i),this}default:throw new Error(`invalid option: ${u}`)}}toString(u){return it(this,u)}[Symbol.iterator](){return this.entries()}*entries(){for(let u=0;u<this.rows;u++)for(let c=0;c<this.columns;c++)yield[u,c,this.get(u,c)]}*values(){for(let u=0;u<this.rows;u++)for(let c=0;c<this.columns;c++)yield this.get(u,c)}}Wt.prototype.klass="Matrix",typeof Symbol!="undefined"&&(Wt.prototype[Symbol.for("nodejs.util.inspect.custom")]=tt);function ee(T,u){return T-u}function on(T){return T.every(u=>typeof u=="number")}Wt.random=Wt.rand,Wt.randomInt=Wt.randInt,Wt.diagonal=Wt.diag,Wt.prototype.diagonal=Wt.prototype.diag,Wt.identity=Wt.eye,Wt.prototype.negate=Wt.prototype.neg,Wt.prototype.tensorProduct=Wt.prototype.kroneckerProduct;const an=class ns extends Wt{constructor(u,c){if(super(),A(this,D),N(this,"data"),ns.isMatrix(u))j(this,D,$).call(this,u.rows,u.columns),ns.copy(u,this);else if(Number.isInteger(u)&&u>=0)j(this,D,$).call(this,u,c);else if(ot.isAnyArray(u)){const i=u;if(u=i.length,c=u?i[0].length:0,typeof c!="number")throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let f=0;f<u;f++){if(i[f].length!==c)throw new RangeError("Inconsistent array dimensions");if(!on(i[f]))throw new TypeError("Input data contains non-numeric values");this.data.push(Float64Array.from(i[f]))}this.rows=u,this.columns=c}else throw new TypeError("First argument must be a positive number or an array")}set(u,c,i){return this.data[u][c]=i,this}get(u,c){return this.data[u][c]}removeRow(u){return xt(this,u),this.data.splice(u,1),this.rows-=1,this}addRow(u,c){return c===void 0&&(c=u,u=this.rows),xt(this,u,!0),c=Float64Array.from(Mt(this,c)),this.data.splice(u,0,c),this.rows+=1,this}removeColumn(u){yt(this,u);for(let c=0;c<this.rows;c++){const i=new Float64Array(this.columns-1);for(let f=0;f<u;f++)i[f]=this.data[c][f];for(let f=u+1;f<this.columns;f++)i[f-1]=this.data[c][f];this.data[c]=i}return this.columns-=1,this}addColumn(u,c){typeof c=="undefined"&&(c=u,u=this.columns),yt(this,u,!0),c=St(this,c);for(let i=0;i<this.rows;i++){const f=new Float64Array(this.columns+1);let m=0;for(;m<u;m++)f[m]=this.data[i][m];for(f[m++]=c[i];m<this.columns+1;m++)f[m]=this.data[i][m-1];this.data[i]=f}return this.columns+=1,this}};D=new WeakSet,$=function(T,u){if(this.data=[],Number.isInteger(u)&&u>=0)for(let c=0;c<T;c++)this.data.push(new Float64Array(u));else throw new TypeError("nColumns must be a positive integer");this.rows=T,this.columns=u};let It=an;dt(Wt,It);const yn=class rs extends Wt{constructor(u){if(super(),A(this,K),It.isMatrix(u)){if(!u.isSymmetric())throw new TypeError("not symmetric data");I(this,K,It.copy(u,new It(u.rows,u.rows)))}else if(Number.isInteger(u)&&u>=0)I(this,K,new It(u,u));else if(I(this,K,new It(u)),!this.isSymmetric())throw new TypeError("not symmetric data")}get size(){return M(this,K).size}get rows(){return M(this,K).rows}get columns(){return M(this,K).columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(u){return It.isMatrix(u)&&u.klassType==="SymmetricMatrix"}static zeros(u){return new this(u)}static ones(u){return new this(u).fill(1)}clone(){const u=new rs(this.diagonalSize);for(const[c,i,f]of this.upperRightEntries())u.set(c,i,f);return u}toMatrix(){return new It(this)}get(u,c){return M(this,K).get(u,c)}set(u,c,i){return M(this,K).set(u,c,i),M(this,K).set(c,u,i),this}removeCross(u){return M(this,K).removeRow(u),M(this,K).removeColumn(u),this}addCross(u,c){c===void 0&&(c=u,u=this.diagonalSize);const i=c.slice();return i.splice(u,1),M(this,K).addRow(u,i),M(this,K).addColumn(u,c),this}applyMask(u){if(u.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const c=[];for(const[i,f]of u.entries())f||c.push(i);c.reverse();for(const i of c)this.removeCross(i);return this}toCompact(){const{diagonalSize:u}=this,c=new Array(u*(u+1)/2);for(let i=0,f=0,m=0;m<c.length;m++)c[m]=this.get(f,i),++i>=u&&(i=++f);return c}static fromCompact(u){const c=u.length,i=(Math.sqrt(8*c+1)-1)/2;if(!Number.isInteger(i))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(u)}`);const f=new rs(i);for(let m=0,k=0,B=0;B<c;B++)f.set(m,k,u[B]),++m>=i&&(m=++k);return f}*upperRightEntries(){for(let u=0,c=0;u<this.diagonalSize;void 0){const i=this.get(u,c);yield[u,c,i],++c>=this.diagonalSize&&(c=++u)}}*upperRightValues(){for(let u=0,c=0;u<this.diagonalSize;void 0)yield this.get(u,c),++c>=this.diagonalSize&&(c=++u)}};K=new WeakMap;let De=yn;De.prototype.klassType="SymmetricMatrix";class Se extends De{static isDistanceMatrix(u){return De.isSymmetricMatrix(u)&&u.klassSubType==="DistanceMatrix"}constructor(u){if(super(u),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(u,c,i){return u===c&&(i=0),super.set(u,c,i)}addCross(u,c){return c===void 0&&(c=u,u=this.diagonalSize),c=c.slice(),c[u]=0,super.addCross(u,c)}toSymmetricMatrix(){return new De(this)}clone(){const u=new Se(this.diagonalSize);for(const[c,i,f]of this.upperRightEntries())c!==i&&u.set(c,i,f);return u}toCompact(){const{diagonalSize:u}=this,c=(u-1)*u/2,i=new Array(c);for(let f=1,m=0,k=0;k<i.length;k++)i[k]=this.get(m,f),++f>=u&&(f=++m+1);return i}static fromCompact(u){const c=u.length;if(c===0)return new this(0);const i=(Math.sqrt(8*c+1)+1)/2;if(!Number.isInteger(i))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(u)}`);const f=new this(i);for(let m=1,k=0,B=0;B<c;B++)f.set(m,k,u[B]),++m>=i&&(m=++k+1);return f}}Se.prototype.klassSubType="DistanceMatrix";class Fe extends Wt{constructor(u,c,i){super(),this.matrix=u,this.rows=c,this.columns=i}}class wn extends Fe{constructor(u,c){yt(u,c),super(u,u.rows,1),this.column=c}set(u,c,i){return this.matrix.set(u,this.column,i),this}get(u){return this.matrix.get(u,this.column)}}class rr extends Fe{constructor(u,c){Vt(u,c),super(u,u.rows,c.length),this.columnIndices=c}set(u,c,i){return this.matrix.set(u,this.columnIndices[c],i),this}get(u,c){return this.matrix.get(u,this.columnIndices[c])}}class ln extends Fe{constructor(u){super(u,u.rows,u.columns)}set(u,c,i){return this.matrix.set(u,this.columns-c-1,i),this}get(u,c){return this.matrix.get(u,this.columns-c-1)}}class ke extends Fe{constructor(u){super(u,u.rows,u.columns)}set(u,c,i){return this.matrix.set(this.rows-u-1,c,i),this}get(u,c){return this.matrix.get(this.rows-u-1,c)}}class nn extends Fe{constructor(u,c){xt(u,c),super(u,1,u.columns),this.row=c}set(u,c,i){return this.matrix.set(this.row,c,i),this}get(u,c){return this.matrix.get(this.row,c)}}class In extends Fe{constructor(u,c){kt(u,c),super(u,c.length,u.columns),this.rowIndices=c}set(u,c,i){return this.matrix.set(this.rowIndices[u],c,i),this}get(u,c){return this.matrix.get(this.rowIndices[u],c)}}class $t extends Fe{constructor(u,c,i){kt(u,c),Vt(u,i),super(u,c.length,i.length),this.rowIndices=c,this.columnIndices=i}set(u,c,i){return this.matrix.set(this.rowIndices[u],this.columnIndices[c],i),this}get(u,c){return this.matrix.get(this.rowIndices[u],this.columnIndices[c])}}class Pn extends Fe{constructor(u,c,i,f,m){qt(u,c,i,f,m),super(u,i-c+1,m-f+1),this.startRow=c,this.startColumn=f}set(u,c,i){return this.matrix.set(this.startRow+u,this.startColumn+c,i),this}get(u,c){return this.matrix.get(this.startRow+u,this.startColumn+c)}}class Qe extends Fe{constructor(u){super(u,u.columns,u.rows)}set(u,c,i){return this.matrix.set(c,u,i),this}get(u,c){return this.matrix.get(c,u)}}class Ke extends Wt{constructor(u,c={}){const{rows:i=1}=c;if(u.length%i!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=i,this.columns=u.length/i,this.data=u}set(u,c,i){let f=this._calculateIndex(u,c);return this.data[f]=i,this}get(u,c){let i=this._calculateIndex(u,c);return this.data[i]}_calculateIndex(u,c){return u*this.columns+c}}class Ve extends Wt{constructor(u){super(),this.data=u,this.rows=u.length,this.columns=u[0].length}set(u,c,i){return this.data[u][c]=i,this}get(u,c){return this.data[u][c]}}function Er(T,u){if(ot.isAnyArray(T))return T[0]&&ot.isAnyArray(T[0])?new Ve(T):new Ke(T,u);throw new Error("the argument is not an array")}class Ln{constructor(u){u=Ve.checkMatrix(u);let c=u.clone(),i=c.rows,f=c.columns,m=new Float64Array(i),k=1,B,G,V,rt,Z,lt,At,ct,pt;for(B=0;B<i;B++)m[B]=B;for(ct=new Float64Array(i),G=0;G<f;G++){for(B=0;B<i;B++)ct[B]=c.get(B,G);for(B=0;B<i;B++){for(pt=Math.min(B,G),Z=0,V=0;V<pt;V++)Z+=c.get(B,V)*ct[V];ct[B]-=Z,c.set(B,G,ct[B])}for(rt=G,B=G+1;B<i;B++)Math.abs(ct[B])>Math.abs(ct[rt])&&(rt=B);if(rt!==G){for(V=0;V<f;V++)lt=c.get(rt,V),c.set(rt,V,c.get(G,V)),c.set(G,V,lt);At=m[rt],m[rt]=m[G],m[G]=At,k=-k}if(G<i&&c.get(G,G)!==0)for(B=G+1;B<i;B++)c.set(B,G,c.get(B,G)/c.get(G,G))}this.LU=c,this.pivotVector=m,this.pivotSign=k}isSingular(){let u=this.LU,c=u.columns;for(let i=0;i<c;i++)if(u.get(i,i)===0)return!0;return!1}solve(u){u=It.checkMatrix(u);let c=this.LU;if(c.rows!==u.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let f=u.columns,m=u.subMatrixRow(this.pivotVector,0,f-1),k=c.columns,B,G,V;for(V=0;V<k;V++)for(B=V+1;B<k;B++)for(G=0;G<f;G++)m.set(B,G,m.get(B,G)-m.get(V,G)*c.get(B,V));for(V=k-1;V>=0;V--){for(G=0;G<f;G++)m.set(V,G,m.get(V,G)/c.get(V,V));for(B=0;B<V;B++)for(G=0;G<f;G++)m.set(B,G,m.get(B,G)-m.get(V,G)*c.get(B,V))}return m}get determinant(){let u=this.LU;if(!u.isSquare())throw new Error("Matrix must be square");let c=this.pivotSign,i=u.columns;for(let f=0;f<i;f++)c*=u.get(f,f);return c}get lowerTriangularMatrix(){let u=this.LU,c=u.rows,i=u.columns,f=new It(c,i);for(let m=0;m<c;m++)for(let k=0;k<i;k++)m>k?f.set(m,k,u.get(m,k)):m===k?f.set(m,k,1):f.set(m,k,0);return f}get upperTriangularMatrix(){let u=this.LU,c=u.rows,i=u.columns,f=new It(c,i);for(let m=0;m<c;m++)for(let k=0;k<i;k++)m<=k?f.set(m,k,u.get(m,k)):f.set(m,k,0);return f}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function rn(T,u){let c=0;return Math.abs(T)>Math.abs(u)?(c=u/T,Math.abs(T)*Math.sqrt(1+c*c)):u!==0?(c=T/u,Math.abs(u)*Math.sqrt(1+c*c)):0}class Wn{constructor(u){u=Ve.checkMatrix(u);let c=u.clone(),i=u.rows,f=u.columns,m=new Float64Array(f),k,B,G,V;for(G=0;G<f;G++){let rt=0;for(k=G;k<i;k++)rt=rn(rt,c.get(k,G));if(rt!==0){for(c.get(G,G)<0&&(rt=-rt),k=G;k<i;k++)c.set(k,G,c.get(k,G)/rt);for(c.set(G,G,c.get(G,G)+1),B=G+1;B<f;B++){for(V=0,k=G;k<i;k++)V+=c.get(k,G)*c.get(k,B);for(V=-V/c.get(G,G),k=G;k<i;k++)c.set(k,B,c.get(k,B)+V*c.get(k,G))}}m[G]=-rt}this.QR=c,this.Rdiag=m}solve(u){u=It.checkMatrix(u);let c=this.QR,i=c.rows;if(u.rows!==i)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let f=u.columns,m=u.clone(),k=c.columns,B,G,V,rt;for(V=0;V<k;V++)for(G=0;G<f;G++){for(rt=0,B=V;B<i;B++)rt+=c.get(B,V)*m.get(B,G);for(rt=-rt/c.get(V,V),B=V;B<i;B++)m.set(B,G,m.get(B,G)+rt*c.get(B,V))}for(V=k-1;V>=0;V--){for(G=0;G<f;G++)m.set(V,G,m.get(V,G)/this.Rdiag[V]);for(B=0;B<V;B++)for(G=0;G<f;G++)m.set(B,G,m.get(B,G)-m.get(V,G)*c.get(B,V))}return m.subMatrix(0,k-1,0,f-1)}isFullRank(){let u=this.QR.columns;for(let c=0;c<u;c++)if(this.Rdiag[c]===0)return!1;return!0}get upperTriangularMatrix(){let u=this.QR,c=u.columns,i=new It(c,c),f,m;for(f=0;f<c;f++)for(m=0;m<c;m++)f<m?i.set(f,m,u.get(f,m)):f===m?i.set(f,m,this.Rdiag[f]):i.set(f,m,0);return i}get orthogonalMatrix(){let u=this.QR,c=u.rows,i=u.columns,f=new It(c,i),m,k,B,G;for(B=i-1;B>=0;B--){for(m=0;m<c;m++)f.set(m,B,0);for(f.set(B,B,1),k=B;k<i;k++)if(u.get(B,B)!==0){for(G=0,m=B;m<c;m++)G+=u.get(m,B)*f.get(m,k);for(G=-G/u.get(B,B),m=B;m<c;m++)f.set(m,k,f.get(m,k)+G*u.get(m,B))}}return f}}class un{constructor(u,c={}){if(u=Ve.checkMatrix(u),u.isEmpty())throw new Error("Matrix must be non-empty");let i=u.rows,f=u.columns;const{computeLeftSingularVectors:m=!0,computeRightSingularVectors:k=!0,autoTranspose:B=!1}=c;let G=!!m,V=!!k,rt=!1,Z;if(i<f)if(!B)Z=u.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else{Z=u.transpose(),i=Z.rows,f=Z.columns,rt=!0;let H=G;G=V,V=H}else Z=u.clone();let lt=Math.min(i,f),At=Math.min(i+1,f),ct=new Float64Array(At),pt=new It(i,lt),Lt=new It(f,f),J=new Float64Array(f),Ot=new Float64Array(i),Ct=new Float64Array(At);for(let H=0;H<At;H++)Ct[H]=H;let Kt=Math.min(i-1,f),Zt=Math.max(0,Math.min(f-2,i)),ye=Math.max(Kt,Zt);for(let H=0;H<ye;H++){if(H<Kt){ct[H]=0;for(let mt=H;mt<i;mt++)ct[H]=rn(ct[H],Z.get(mt,H));if(ct[H]!==0){Z.get(H,H)<0&&(ct[H]=-ct[H]);for(let mt=H;mt<i;mt++)Z.set(mt,H,Z.get(mt,H)/ct[H]);Z.set(H,H,Z.get(H,H)+1)}ct[H]=-ct[H]}for(let mt=H+1;mt<f;mt++){if(H<Kt&&ct[H]!==0){let Rt=0;for(let Nt=H;Nt<i;Nt++)Rt+=Z.get(Nt,H)*Z.get(Nt,mt);Rt=-Rt/Z.get(H,H);for(let Nt=H;Nt<i;Nt++)Z.set(Nt,mt,Z.get(Nt,mt)+Rt*Z.get(Nt,H))}J[mt]=Z.get(H,mt)}if(G&&H<Kt)for(let mt=H;mt<i;mt++)pt.set(mt,H,Z.get(mt,H));if(H<Zt){J[H]=0;for(let mt=H+1;mt<f;mt++)J[H]=rn(J[H],J[mt]);if(J[H]!==0){J[H+1]<0&&(J[H]=0-J[H]);for(let mt=H+1;mt<f;mt++)J[mt]/=J[H];J[H+1]+=1}if(J[H]=-J[H],H+1<i&&J[H]!==0){for(let mt=H+1;mt<i;mt++)Ot[mt]=0;for(let mt=H+1;mt<i;mt++)for(let Rt=H+1;Rt<f;Rt++)Ot[mt]+=J[Rt]*Z.get(mt,Rt);for(let mt=H+1;mt<f;mt++){let Rt=-J[mt]/J[H+1];for(let Nt=H+1;Nt<i;Nt++)Z.set(Nt,mt,Z.get(Nt,mt)+Rt*Ot[Nt])}}if(V)for(let mt=H+1;mt<f;mt++)Lt.set(mt,H,J[mt])}}let Ut=Math.min(f,i+1);if(Kt<f&&(ct[Kt]=Z.get(Kt,Kt)),i<Ut&&(ct[Ut-1]=0),Zt+1<Ut&&(J[Zt]=Z.get(Zt,Ut-1)),J[Ut-1]=0,G){for(let H=Kt;H<lt;H++){for(let mt=0;mt<i;mt++)pt.set(mt,H,0);pt.set(H,H,1)}for(let H=Kt-1;H>=0;H--)if(ct[H]!==0){for(let mt=H+1;mt<lt;mt++){let Rt=0;for(let Nt=H;Nt<i;Nt++)Rt+=pt.get(Nt,H)*pt.get(Nt,mt);Rt=-Rt/pt.get(H,H);for(let Nt=H;Nt<i;Nt++)pt.set(Nt,mt,pt.get(Nt,mt)+Rt*pt.get(Nt,H))}for(let mt=H;mt<i;mt++)pt.set(mt,H,-pt.get(mt,H));pt.set(H,H,1+pt.get(H,H));for(let mt=0;mt<H-1;mt++)pt.set(mt,H,0)}else{for(let mt=0;mt<i;mt++)pt.set(mt,H,0);pt.set(H,H,1)}}if(V)for(let H=f-1;H>=0;H--){if(H<Zt&&J[H]!==0)for(let mt=H+1;mt<f;mt++){let Rt=0;for(let Nt=H+1;Nt<f;Nt++)Rt+=Lt.get(Nt,H)*Lt.get(Nt,mt);Rt=-Rt/Lt.get(H+1,H);for(let Nt=H+1;Nt<f;Nt++)Lt.set(Nt,mt,Lt.get(Nt,mt)+Rt*Lt.get(Nt,H))}for(let mt=0;mt<f;mt++)Lt.set(mt,H,0);Lt.set(H,H,1)}let Yt=Ut-1,ae=Number.EPSILON;for(;Ut>0;){let H,mt;for(H=Ut-2;H>=-1&&H!==-1;H--){const Rt=Number.MIN_VALUE+ae*Math.abs(ct[H]+Math.abs(ct[H+1]));if(Math.abs(J[H])<=Rt||Number.isNaN(J[H])){J[H]=0;break}}if(H===Ut-2)mt=4;else{let Rt;for(Rt=Ut-1;Rt>=H&&Rt!==H;Rt--){let Nt=(Rt!==Ut?Math.abs(J[Rt]):0)+(Rt!==H+1?Math.abs(J[Rt-1]):0);if(Math.abs(ct[Rt])<=ae*Nt){ct[Rt]=0;break}}Rt===H?mt=3:Rt===Ut-1?mt=1:(mt=2,H=Rt)}switch(H++,mt){case 1:{let Rt=J[Ut-2];J[Ut-2]=0;for(let Nt=Ut-2;Nt>=H;Nt--){let we=rn(ct[Nt],Rt),ue=ct[Nt]/we,he=Rt/we;if(ct[Nt]=we,Nt!==H&&(Rt=-he*J[Nt-1],J[Nt-1]=ue*J[Nt-1]),V)for(let pe=0;pe<f;pe++)we=ue*Lt.get(pe,Nt)+he*Lt.get(pe,Ut-1),Lt.set(pe,Ut-1,-he*Lt.get(pe,Nt)+ue*Lt.get(pe,Ut-1)),Lt.set(pe,Nt,we)}break}case 2:{let Rt=J[H-1];J[H-1]=0;for(let Nt=H;Nt<Ut;Nt++){let we=rn(ct[Nt],Rt),ue=ct[Nt]/we,he=Rt/we;if(ct[Nt]=we,Rt=-he*J[Nt],J[Nt]=ue*J[Nt],G)for(let pe=0;pe<i;pe++)we=ue*pt.get(pe,Nt)+he*pt.get(pe,H-1),pt.set(pe,H-1,-he*pt.get(pe,Nt)+ue*pt.get(pe,H-1)),pt.set(pe,Nt,we)}break}case 3:{const Rt=Math.max(Math.abs(ct[Ut-1]),Math.abs(ct[Ut-2]),Math.abs(J[Ut-2]),Math.abs(ct[H]),Math.abs(J[H])),Nt=ct[Ut-1]/Rt,we=ct[Ut-2]/Rt,ue=J[Ut-2]/Rt,he=ct[H]/Rt,pe=J[H]/Rt,Pe=((we+Nt)*(we-Nt)+ue*ue)/2,Ze=Nt*ue*(Nt*ue);let Oe=0;(Pe!==0||Ze!==0)&&(Pe<0?Oe=0-Math.sqrt(Pe*Pe+Ze):Oe=Math.sqrt(Pe*Pe+Ze),Oe=Ze/(Pe+Oe));let _e=(he+Nt)*(he-Nt)+Oe,sn=he*pe;for(let ne=H;ne<Ut-1;ne++){let Te=rn(_e,sn);Te===0&&(Te=Number.MIN_VALUE);let Ge=_e/Te,Be=sn/Te;if(ne!==H&&(J[ne-1]=Te),_e=Ge*ct[ne]+Be*J[ne],J[ne]=Ge*J[ne]-Be*ct[ne],sn=Be*ct[ne+1],ct[ne+1]=Ge*ct[ne+1],V)for(let Ae=0;Ae<f;Ae++)Te=Ge*Lt.get(Ae,ne)+Be*Lt.get(Ae,ne+1),Lt.set(Ae,ne+1,-Be*Lt.get(Ae,ne)+Ge*Lt.get(Ae,ne+1)),Lt.set(Ae,ne,Te);if(Te=rn(_e,sn),Te===0&&(Te=Number.MIN_VALUE),Ge=_e/Te,Be=sn/Te,ct[ne]=Te,_e=Ge*J[ne]+Be*ct[ne+1],ct[ne+1]=-Be*J[ne]+Ge*ct[ne+1],sn=Be*J[ne+1],J[ne+1]=Ge*J[ne+1],G&&ne<i-1)for(let Ae=0;Ae<i;Ae++)Te=Ge*pt.get(Ae,ne)+Be*pt.get(Ae,ne+1),pt.set(Ae,ne+1,-Be*pt.get(Ae,ne)+Ge*pt.get(Ae,ne+1)),pt.set(Ae,ne,Te)}J[Ut-2]=_e;break}case 4:{if(ct[H]<=0&&(ct[H]=ct[H]<0?-ct[H]:0,V))for(let Rt=0;Rt<=Yt;Rt++)Lt.set(Rt,H,-Lt.get(Rt,H));for(;H<Yt&&!(ct[H]>=ct[H+1]);){let Rt=ct[H];if(ct[H]=ct[H+1],ct[H+1]=Rt,V&&H<f-1)for(let Nt=0;Nt<f;Nt++)Rt=Lt.get(Nt,H+1),Lt.set(Nt,H+1,Lt.get(Nt,H)),Lt.set(Nt,H,Rt);if(G&&H<i-1)for(let Nt=0;Nt<i;Nt++)Rt=pt.get(Nt,H+1),pt.set(Nt,H+1,pt.get(Nt,H)),pt.set(Nt,H,Rt);H++}Ut--;break}}}if(rt){let H=Lt;Lt=pt,pt=H}this.m=i,this.n=f,this.s=ct,this.U=pt,this.V=Lt}solve(u){let c=u,i=this.threshold,f=this.s.length,m=It.zeros(f,f);for(let lt=0;lt<f;lt++)Math.abs(this.s[lt])<=i?m.set(lt,lt,0):m.set(lt,lt,1/this.s[lt]);let k=this.U,B=this.rightSingularVectors,G=B.mmul(m),V=B.rows,rt=k.rows,Z=It.zeros(V,rt);for(let lt=0;lt<V;lt++)for(let At=0;At<rt;At++){let ct=0;for(let pt=0;pt<f;pt++)ct+=G.get(lt,pt)*k.get(At,pt);Z.set(lt,At,ct)}return Z.mmul(c)}solveForDiagonal(u){return this.solve(It.diag(u))}inverse(){let u=this.V,c=this.threshold,i=u.rows,f=u.columns,m=new It(i,this.s.length);for(let rt=0;rt<i;rt++)for(let Z=0;Z<f;Z++)Math.abs(this.s[Z])>c&&m.set(rt,Z,u.get(rt,Z)/this.s[Z]);let k=this.U,B=k.rows,G=k.columns,V=new It(i,B);for(let rt=0;rt<i;rt++)for(let Z=0;Z<B;Z++){let lt=0;for(let At=0;At<G;At++)lt+=m.get(rt,At)*k.get(Z,At);V.set(rt,Z,lt)}return V}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let u=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,c=0,i=this.s;for(let f=0,m=i.length;f<m;f++)i[f]>u&&c++;return c}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return It.diag(this.s)}}function br(T,u=!1){return T=Ve.checkMatrix(T),u?new un(T).inverse():Rn(T,It.eye(T.rows))}function Rn(T,u,c=!1){return T=Ve.checkMatrix(T),u=Ve.checkMatrix(u),c?new un(T).solve(u):T.isSquare()?new Ln(T).solve(u):new Wn(T).solve(u)}function Cn(T){if(T=It.checkMatrix(T),T.isSquare()){if(T.columns===0)return 1;let u,c,i,f;if(T.columns===2)return u=T.get(0,0),c=T.get(0,1),i=T.get(1,0),f=T.get(1,1),u*f-c*i;if(T.columns===3){let m,k,B;return m=new $t(T,[1,2],[1,2]),k=new $t(T,[1,2],[0,2]),B=new $t(T,[1,2],[0,1]),u=T.get(0,0),c=T.get(0,1),i=T.get(0,2),u*Cn(m)-c*Cn(k)+i*Cn(B)}else return new Ln(T).determinant}else throw Error("determinant can only be calculated for a square matrix")}function Nr(T,u){let c=[];for(let i=0;i<T;i++)i!==u&&c.push(i);return c}function Mr(T,u,c,i=1e-9,f=1e-9){if(T>f)return new Array(u.rows+1).fill(0);{let m=u.addRow(c,[0]);for(let k=0;k<m.rows;k++)Math.abs(m.get(k,0))<i&&m.set(k,0,0);return m.to1DArray()}}function Sr(T,u={}){const{thresholdValue:c=1e-9,thresholdError:i=1e-9}=u;T=It.checkMatrix(T);let f=T.rows,m=new It(f,f);for(let k=0;k<f;k++){let B=It.columnVector(T.getRow(k)),G=T.subMatrixRow(Nr(f,k)).transpose(),rt=new un(G).solve(B),Z=It.sub(B,G.mmul(rt)).abs().max();m.setRow(k,Mr(Z,rt,k,c,i))}return m}function xn(T,u=Number.EPSILON){if(T=It.checkMatrix(T),T.isEmpty())return T.transpose();let c=new un(T,{autoTranspose:!0}),i=c.leftSingularVectors,f=c.rightSingularVectors,m=c.diagonal;for(let k=0;k<m.length;k++)Math.abs(m[k])>u?m[k]=1/m[k]:m[k]=0;return f.mmul(It.diag(m).mmul(i.transpose()))}function Or(T,u=T,c={}){T=new It(T);let i=!1;if(typeof u=="object"&&!It.isMatrix(u)&&!ot.isAnyArray(u)?(c=u,u=T,i=!0):u=new It(u),T.rows!==u.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:f=!0}=c;f&&(T=T.center("column"),i||(u=u.center("column")));const m=T.transpose().mmul(u);for(let k=0;k<m.rows;k++)for(let B=0;B<m.columns;B++)m.set(k,B,m.get(k,B)*(1/(T.rows-1)));return m}function sr(T,u=T,c={}){T=new It(T);let i=!1;if(typeof u=="object"&&!It.isMatrix(u)&&!ot.isAnyArray(u)?(c=u,u=T,i=!0):u=new It(u),T.rows!==u.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:f=!0,scale:m=!0}=c;f&&(T.center("column"),i||u.center("column")),m&&(T.scale("column"),i||u.scale("column"));const k=T.standardDeviation("column",{unbiased:!0}),B=i?k:u.standardDeviation("column",{unbiased:!0}),G=T.transpose().mmul(u);for(let V=0;V<G.rows;V++)for(let rt=0;rt<G.columns;rt++)G.set(V,rt,G.get(V,rt)*(1/(k[V]*B[rt]))*(1/(T.rows-1)));return G}class Yn{constructor(u,c={}){const{assumeSymmetric:i=!1}=c;if(u=Ve.checkMatrix(u),!u.isSquare())throw new Error("Matrix is not a square matrix");if(u.isEmpty())throw new Error("Matrix must be non-empty");let f=u.columns,m=new It(f,f),k=new Float64Array(f),B=new Float64Array(f),G=u,V,rt,Z=!1;if(i?Z=!0:Z=u.isSymmetric(),Z){for(V=0;V<f;V++)for(rt=0;rt<f;rt++)m.set(V,rt,G.get(V,rt));ss(f,B,k,m),is(f,B,k,m)}else{let lt=new It(f,f),At=new Float64Array(f);for(rt=0;rt<f;rt++)for(V=0;V<f;V++)lt.set(V,rt,G.get(V,rt));ir(f,lt,At,m),Sn(f,B,k,m,lt)}this.n=f,this.e=B,this.d=k,this.V=m}get realEigenvalues(){return Array.from(this.d)}get imaginaryEigenvalues(){return Array.from(this.e)}get eigenvectorMatrix(){return this.V}get diagonalMatrix(){let u=this.n,c=this.e,i=this.d,f=new It(u,u),m,k;for(m=0;m<u;m++){for(k=0;k<u;k++)f.set(m,k,0);f.set(m,m,i[m]),c[m]>0?f.set(m,m+1,c[m]):c[m]<0&&f.set(m,m-1,c[m])}return f}}function ss(T,u,c,i){let f,m,k,B,G,V,rt,Z;for(G=0;G<T;G++)c[G]=i.get(T-1,G);for(B=T-1;B>0;B--){for(Z=0,k=0,V=0;V<B;V++)Z=Z+Math.abs(c[V]);if(Z===0)for(u[B]=c[B-1],G=0;G<B;G++)c[G]=i.get(B-1,G),i.set(B,G,0),i.set(G,B,0);else{for(V=0;V<B;V++)c[V]/=Z,k+=c[V]*c[V];for(f=c[B-1],m=Math.sqrt(k),f>0&&(m=-m),u[B]=Z*m,k=k-f*m,c[B-1]=f-m,G=0;G<B;G++)u[G]=0;for(G=0;G<B;G++){for(f=c[G],i.set(G,B,f),m=u[G]+i.get(G,G)*f,V=G+1;V<=B-1;V++)m+=i.get(V,G)*c[V],u[V]+=i.get(V,G)*f;u[G]=m}for(f=0,G=0;G<B;G++)u[G]/=k,f+=u[G]*c[G];for(rt=f/(k+k),G=0;G<B;G++)u[G]-=rt*c[G];for(G=0;G<B;G++){for(f=c[G],m=u[G],V=G;V<=B-1;V++)i.set(V,G,i.get(V,G)-(f*u[V]+m*c[V]));c[G]=i.get(B-1,G),i.set(B,G,0)}}c[B]=k}for(B=0;B<T-1;B++){if(i.set(T-1,B,i.get(B,B)),i.set(B,B,1),k=c[B+1],k!==0){for(V=0;V<=B;V++)c[V]=i.get(V,B+1)/k;for(G=0;G<=B;G++){for(m=0,V=0;V<=B;V++)m+=i.get(V,B+1)*i.get(V,G);for(V=0;V<=B;V++)i.set(V,G,i.get(V,G)-m*c[V])}}for(V=0;V<=B;V++)i.set(V,B+1,0)}for(G=0;G<T;G++)c[G]=i.get(T-1,G),i.set(T-1,G,0);i.set(T-1,T-1,1),u[0]=0}function is(T,u,c,i){let f,m,k,B,G,V,rt,Z,lt,At,ct,pt,Lt,J,Ot,Ct;for(k=1;k<T;k++)u[k-1]=u[k];u[T-1]=0;let Kt=0,Zt=0,ye=Number.EPSILON;for(V=0;V<T;V++){for(Zt=Math.max(Zt,Math.abs(c[V])+Math.abs(u[V])),rt=V;rt<T&&!(Math.abs(u[rt])<=ye*Zt);)rt++;if(rt>V)do{for(f=c[V],Z=(c[V+1]-f)/(2*u[V]),lt=rn(Z,1),Z<0&&(lt=-lt),c[V]=u[V]/(Z+lt),c[V+1]=u[V]*(Z+lt),At=c[V+1],m=f-c[V],k=V+2;k<T;k++)c[k]-=m;for(Kt=Kt+m,Z=c[rt],ct=1,pt=ct,Lt=ct,J=u[V+1],Ot=0,Ct=0,k=rt-1;k>=V;k--)for(Lt=pt,pt=ct,Ct=Ot,f=ct*u[k],m=ct*Z,lt=rn(Z,u[k]),u[k+1]=Ot*lt,Ot=u[k]/lt,ct=Z/lt,Z=ct*c[k]-Ot*f,c[k+1]=m+Ot*(ct*f+Ot*c[k]),G=0;G<T;G++)m=i.get(G,k+1),i.set(G,k+1,Ot*i.get(G,k)+ct*m),i.set(G,k,ct*i.get(G,k)-Ot*m);Z=-Ot*Ct*Lt*J*u[V]/At,u[V]=Ot*Z,c[V]=ct*Z}while(Math.abs(u[V])>ye*Zt);c[V]=c[V]+Kt,u[V]=0}for(k=0;k<T-1;k++){for(G=k,Z=c[k],B=k+1;B<T;B++)c[B]<Z&&(G=B,Z=c[B]);if(G!==k)for(c[G]=c[k],c[k]=Z,B=0;B<T;B++)Z=i.get(B,k),i.set(B,k,i.get(B,G)),i.set(B,G,Z)}}function ir(T,u,c,i){let f=0,m=T-1,k,B,G,V,rt,Z,lt;for(Z=f+1;Z<=m-1;Z++){for(lt=0,V=Z;V<=m;V++)lt=lt+Math.abs(u.get(V,Z-1));if(lt!==0){for(G=0,V=m;V>=Z;V--)c[V]=u.get(V,Z-1)/lt,G+=c[V]*c[V];for(B=Math.sqrt(G),c[Z]>0&&(B=-B),G=G-c[Z]*B,c[Z]=c[Z]-B,rt=Z;rt<T;rt++){for(k=0,V=m;V>=Z;V--)k+=c[V]*u.get(V,rt);for(k=k/G,V=Z;V<=m;V++)u.set(V,rt,u.get(V,rt)-k*c[V])}for(V=0;V<=m;V++){for(k=0,rt=m;rt>=Z;rt--)k+=c[rt]*u.get(V,rt);for(k=k/G,rt=Z;rt<=m;rt++)u.set(V,rt,u.get(V,rt)-k*c[rt])}c[Z]=lt*c[Z],u.set(Z,Z-1,lt*B)}}for(V=0;V<T;V++)for(rt=0;rt<T;rt++)i.set(V,rt,V===rt?1:0);for(Z=m-1;Z>=f+1;Z--)if(u.get(Z,Z-1)!==0){for(V=Z+1;V<=m;V++)c[V]=u.get(V,Z-1);for(rt=Z;rt<=m;rt++){for(B=0,V=Z;V<=m;V++)B+=c[V]*i.get(V,rt);for(B=B/c[Z]/u.get(Z,Z-1),V=Z;V<=m;V++)i.set(V,rt,i.get(V,rt)+B*c[V])}}}function Sn(T,u,c,i,f){let m=T-1,k=0,B=T-1,G=Number.EPSILON,V=0,rt=0,Z=0,lt=0,At=0,ct=0,pt=0,Lt=0,J,Ot,Ct,Kt,Zt,ye,Ut,Yt,ae,H,mt,Rt,Nt,we,ue;for(J=0;J<T;J++)for((J<k||J>B)&&(c[J]=f.get(J,J),u[J]=0),Ot=Math.max(J-1,0);Ot<T;Ot++)rt=rt+Math.abs(f.get(J,Ot));for(;m>=k;){for(Kt=m;Kt>k&&(ct=Math.abs(f.get(Kt-1,Kt-1))+Math.abs(f.get(Kt,Kt)),ct===0&&(ct=rt),!(Math.abs(f.get(Kt,Kt-1))<G*ct));)Kt--;if(Kt===m)f.set(m,m,f.get(m,m)+V),c[m]=f.get(m,m),u[m]=0,m--,Lt=0;else if(Kt===m-1){if(Ut=f.get(m,m-1)*f.get(m-1,m),Z=(f.get(m-1,m-1)-f.get(m,m))/2,lt=Z*Z+Ut,pt=Math.sqrt(Math.abs(lt)),f.set(m,m,f.get(m,m)+V),f.set(m-1,m-1,f.get(m-1,m-1)+V),Yt=f.get(m,m),lt>=0){for(pt=Z>=0?Z+pt:Z-pt,c[m-1]=Yt+pt,c[m]=c[m-1],pt!==0&&(c[m]=Yt-Ut/pt),u[m-1]=0,u[m]=0,Yt=f.get(m,m-1),ct=Math.abs(Yt)+Math.abs(pt),Z=Yt/ct,lt=pt/ct,At=Math.sqrt(Z*Z+lt*lt),Z=Z/At,lt=lt/At,Ot=m-1;Ot<T;Ot++)pt=f.get(m-1,Ot),f.set(m-1,Ot,lt*pt+Z*f.get(m,Ot)),f.set(m,Ot,lt*f.get(m,Ot)-Z*pt);for(J=0;J<=m;J++)pt=f.get(J,m-1),f.set(J,m-1,lt*pt+Z*f.get(J,m)),f.set(J,m,lt*f.get(J,m)-Z*pt);for(J=k;J<=B;J++)pt=i.get(J,m-1),i.set(J,m-1,lt*pt+Z*i.get(J,m)),i.set(J,m,lt*i.get(J,m)-Z*pt)}else c[m-1]=Yt+Z,c[m]=Yt+Z,u[m-1]=pt,u[m]=-pt;m=m-2,Lt=0}else{if(Yt=f.get(m,m),ae=0,Ut=0,Kt<m&&(ae=f.get(m-1,m-1),Ut=f.get(m,m-1)*f.get(m-1,m)),Lt===10){for(V+=Yt,J=k;J<=m;J++)f.set(J,J,f.get(J,J)-Yt);ct=Math.abs(f.get(m,m-1))+Math.abs(f.get(m-1,m-2)),Yt=ae=.75*ct,Ut=-.4375*ct*ct}if(Lt===30&&(ct=(ae-Yt)/2,ct=ct*ct+Ut,ct>0)){for(ct=Math.sqrt(ct),ae<Yt&&(ct=-ct),ct=Yt-Ut/((ae-Yt)/2+ct),J=k;J<=m;J++)f.set(J,J,f.get(J,J)-ct);V+=ct,Yt=ae=Ut=.964}for(Lt=Lt+1,Zt=m-2;Zt>=Kt&&(pt=f.get(Zt,Zt),At=Yt-pt,ct=ae-pt,Z=(At*ct-Ut)/f.get(Zt+1,Zt)+f.get(Zt,Zt+1),lt=f.get(Zt+1,Zt+1)-pt-At-ct,At=f.get(Zt+2,Zt+1),ct=Math.abs(Z)+Math.abs(lt)+Math.abs(At),Z=Z/ct,lt=lt/ct,At=At/ct,!(Zt===Kt||Math.abs(f.get(Zt,Zt-1))*(Math.abs(lt)+Math.abs(At))<G*(Math.abs(Z)*(Math.abs(f.get(Zt-1,Zt-1))+Math.abs(pt)+Math.abs(f.get(Zt+1,Zt+1))))));)Zt--;for(J=Zt+2;J<=m;J++)f.set(J,J-2,0),J>Zt+2&&f.set(J,J-3,0);for(Ct=Zt;Ct<=m-1&&(we=Ct!==m-1,Ct!==Zt&&(Z=f.get(Ct,Ct-1),lt=f.get(Ct+1,Ct-1),At=we?f.get(Ct+2,Ct-1):0,Yt=Math.abs(Z)+Math.abs(lt)+Math.abs(At),Yt!==0&&(Z=Z/Yt,lt=lt/Yt,At=At/Yt)),Yt!==0);Ct++)if(ct=Math.sqrt(Z*Z+lt*lt+At*At),Z<0&&(ct=-ct),ct!==0){for(Ct!==Zt?f.set(Ct,Ct-1,-ct*Yt):Kt!==Zt&&f.set(Ct,Ct-1,-f.get(Ct,Ct-1)),Z=Z+ct,Yt=Z/ct,ae=lt/ct,pt=At/ct,lt=lt/Z,At=At/Z,Ot=Ct;Ot<T;Ot++)Z=f.get(Ct,Ot)+lt*f.get(Ct+1,Ot),we&&(Z=Z+At*f.get(Ct+2,Ot),f.set(Ct+2,Ot,f.get(Ct+2,Ot)-Z*pt)),f.set(Ct,Ot,f.get(Ct,Ot)-Z*Yt),f.set(Ct+1,Ot,f.get(Ct+1,Ot)-Z*ae);for(J=0;J<=Math.min(m,Ct+3);J++)Z=Yt*f.get(J,Ct)+ae*f.get(J,Ct+1),we&&(Z=Z+pt*f.get(J,Ct+2),f.set(J,Ct+2,f.get(J,Ct+2)-Z*At)),f.set(J,Ct,f.get(J,Ct)-Z),f.set(J,Ct+1,f.get(J,Ct+1)-Z*lt);for(J=k;J<=B;J++)Z=Yt*i.get(J,Ct)+ae*i.get(J,Ct+1),we&&(Z=Z+pt*i.get(J,Ct+2),i.set(J,Ct+2,i.get(J,Ct+2)-Z*At)),i.set(J,Ct,i.get(J,Ct)-Z),i.set(J,Ct+1,i.get(J,Ct+1)-Z*lt)}}}if(rt!==0){for(m=T-1;m>=0;m--)if(Z=c[m],lt=u[m],lt===0)for(Kt=m,f.set(m,m,1),J=m-1;J>=0;J--){for(Ut=f.get(J,J)-Z,At=0,Ot=Kt;Ot<=m;Ot++)At=At+f.get(J,Ot)*f.get(Ot,m);if(u[J]<0)pt=Ut,ct=At;else if(Kt=J,u[J]===0?f.set(J,m,Ut!==0?-At/Ut:-At/(G*rt)):(Yt=f.get(J,J+1),ae=f.get(J+1,J),lt=(c[J]-Z)*(c[J]-Z)+u[J]*u[J],ye=(Yt*ct-pt*At)/lt,f.set(J,m,ye),f.set(J+1,m,Math.abs(Yt)>Math.abs(pt)?(-At-Ut*ye)/Yt:(-ct-ae*ye)/pt)),ye=Math.abs(f.get(J,m)),G*ye*ye>1)for(Ot=J;Ot<=m;Ot++)f.set(Ot,m,f.get(Ot,m)/ye)}else if(lt<0)for(Kt=m-1,Math.abs(f.get(m,m-1))>Math.abs(f.get(m-1,m))?(f.set(m-1,m-1,lt/f.get(m,m-1)),f.set(m-1,m,-(f.get(m,m)-Z)/f.get(m,m-1))):(ue=Dn(0,-f.get(m-1,m),f.get(m-1,m-1)-Z,lt),f.set(m-1,m-1,ue[0]),f.set(m-1,m,ue[1])),f.set(m,m-1,0),f.set(m,m,1),J=m-2;J>=0;J--){for(H=0,mt=0,Ot=Kt;Ot<=m;Ot++)H=H+f.get(J,Ot)*f.get(Ot,m-1),mt=mt+f.get(J,Ot)*f.get(Ot,m);if(Ut=f.get(J,J)-Z,u[J]<0)pt=Ut,At=H,ct=mt;else if(Kt=J,u[J]===0?(ue=Dn(-H,-mt,Ut,lt),f.set(J,m-1,ue[0]),f.set(J,m,ue[1])):(Yt=f.get(J,J+1),ae=f.get(J+1,J),Rt=(c[J]-Z)*(c[J]-Z)+u[J]*u[J]-lt*lt,Nt=(c[J]-Z)*2*lt,Rt===0&&Nt===0&&(Rt=G*rt*(Math.abs(Ut)+Math.abs(lt)+Math.abs(Yt)+Math.abs(ae)+Math.abs(pt))),ue=Dn(Yt*At-pt*H+lt*mt,Yt*ct-pt*mt-lt*H,Rt,Nt),f.set(J,m-1,ue[0]),f.set(J,m,ue[1]),Math.abs(Yt)>Math.abs(pt)+Math.abs(lt)?(f.set(J+1,m-1,(-H-Ut*f.get(J,m-1)+lt*f.get(J,m))/Yt),f.set(J+1,m,(-mt-Ut*f.get(J,m)-lt*f.get(J,m-1))/Yt)):(ue=Dn(-At-ae*f.get(J,m-1),-ct-ae*f.get(J,m),pt,lt),f.set(J+1,m-1,ue[0]),f.set(J+1,m,ue[1]))),ye=Math.max(Math.abs(f.get(J,m-1)),Math.abs(f.get(J,m))),G*ye*ye>1)for(Ot=J;Ot<=m;Ot++)f.set(Ot,m-1,f.get(Ot,m-1)/ye),f.set(Ot,m,f.get(Ot,m)/ye)}for(J=0;J<T;J++)if(J<k||J>B)for(Ot=J;Ot<T;Ot++)i.set(J,Ot,f.get(J,Ot));for(Ot=T-1;Ot>=k;Ot--)for(J=k;J<=B;J++){for(pt=0,Ct=k;Ct<=Math.min(Ot,B);Ct++)pt=pt+i.get(J,Ct)*f.get(Ct,Ot);i.set(J,Ot,pt)}}}function Dn(T,u,c,i){let f,m;return Math.abs(c)>Math.abs(i)?(f=i/c,m=c+f*i,[(T+f*u)/m,(u-f*T)/m]):(f=c/i,m=i+f*c,[(f*T+u)/m,(f*u-T)/m])}class or{constructor(u){if(u=Ve.checkMatrix(u),!u.isSymmetric())throw new Error("Matrix is not symmetric");let c=u,i=c.rows,f=new It(i,i),m=!0,k,B,G;for(B=0;B<i;B++){let V=0;for(G=0;G<B;G++){let rt=0;for(k=0;k<G;k++)rt+=f.get(G,k)*f.get(B,k);rt=(c.get(B,G)-rt)/f.get(G,G),f.set(B,G,rt),V=V+rt*rt}for(V=c.get(B,B)-V,m&&(m=V>0),f.set(B,B,Math.sqrt(Math.max(V,0))),G=B+1;G<i;G++)f.set(B,G,0)}this.L=f,this.positiveDefinite=m}isPositiveDefinite(){return this.positiveDefinite}solve(u){u=Ve.checkMatrix(u);let c=this.L,i=c.rows;if(u.rows!==i)throw new Error("Matrix dimensions do not match");if(this.isPositiveDefinite()===!1)throw new Error("Matrix is not positive definite");let f=u.columns,m=u.clone(),k,B,G;for(G=0;G<i;G++)for(B=0;B<f;B++){for(k=0;k<G;k++)m.set(G,B,m.get(G,B)-m.get(k,B)*c.get(G,k));m.set(G,B,m.get(G,B)/c.get(G,G))}for(G=i-1;G>=0;G--)for(B=0;B<f;B++){for(k=G+1;k<i;k++)m.set(G,B,m.get(G,B)-m.get(k,B)*c.get(k,G));m.set(G,B,m.get(G,B)/c.get(G,G))}return m}get lowerTriangularMatrix(){return this.L}}class $n{constructor(u,c={}){u=Ve.checkMatrix(u);let{Y:i}=c;const{scaleScores:f=!1,maxIterations:m=1e3,terminationCriteria:k=1e-10}=c;let B;if(i){if(ot.isAnyArray(i)&&typeof i[0]=="number"?i=It.columnVector(i):i=Ve.checkMatrix(i),i.rows!==u.rows)throw new Error("Y should have the same number of rows as X");B=i.getColumnVector(0)}else B=u.getColumnVector(0);let G=1,V,rt,Z,lt;for(let At=0;At<m&&G>k;At++)Z=u.transpose().mmul(B).div(B.transpose().mmul(B).get(0,0)),Z=Z.div(Z.norm()),V=u.mmul(Z).div(Z.transpose().mmul(Z).get(0,0)),At>0&&(G=V.clone().sub(lt).pow(2).sum()),lt=V.clone(),i?(rt=i.transpose().mmul(V).div(V.transpose().mmul(V).get(0,0)),rt=rt.div(rt.norm()),B=i.mmul(rt).div(rt.transpose().mmul(rt).get(0,0))):B=V;if(i){let At=u.transpose().mmul(V).div(V.transpose().mmul(V).get(0,0));At=At.div(At.norm());let ct=u.clone().sub(V.clone().mmul(At.transpose())),pt=B.transpose().mmul(V).div(V.transpose().mmul(V).get(0,0)),Lt=i.clone().sub(V.clone().mulS(pt.get(0,0)).mmul(rt.transpose()));this.t=V,this.p=At.transpose(),this.w=Z.transpose(),this.q=rt,this.u=B,this.s=V.transpose().mmul(V),this.xResidual=ct,this.yResidual=Lt,this.betas=pt}else this.w=Z.transpose(),this.s=V.transpose().mmul(V).sqrt(),f?this.t=V.clone().div(this.s.get(0,0)):this.t=V,this.xResidual=u.sub(V.mmul(Z.transpose()))}}P.XA=Wt,P.a_=or,P.yQ=or,P.Hs=Se,P.Ec=Yn,P.dx=Yn,P.LU=Ln,P.Rm=Ln,P.y3=It,P.qK=rr,P.pb=wn,P.j=ln,P.sO=ke,P.BZ=In,P.EK=nn,P.Db=$t,P.Fx=Pn,P.tU=Qe,P.Ym=$n,P.rs=$n,P.QR=Wn,P.TB=Wn,P.oH=un,P.Sc=un,P.BN=De,P.it=Ke,P.$r=Ve,P.QM=sr,P.AV=Or,l=It,P.GH=Cn,P.SO=br,P.uZ=Sr,P.yU=xn,P.F1=Rn,P.re=Er},70681:function(w,P,a){w.exports={graphlib:a(70574),layout:a(98123),debug:a(27570),util:{time:a(11138).time,notime:a(11138).notime},version:a(88177)}},92188:function(w,P,a){"use strict";var l=a(38436),x=a(74079);w.exports={run:E,undo:v};function E(N){var S=N.graph().acyclicer==="greedy"?x(N,M(N)):b(N);l.forEach(S,function(A){var I=N.edge(A);N.removeEdge(A),I.forwardName=A.name,I.reversed=!0,N.setEdge(A.w,A.v,I,l.uniqueId("rev"))});function M(A){return function(I){return A.edge(I).weight}}}function b(N){var S=[],M={},A={};function I(j){l.has(A,j)||(A[j]=!0,M[j]=!0,l.forEach(N.outEdges(j),function(D){l.has(M,D.w)?S.push(D):I(D.w)}),delete M[j])}return l.forEach(N.nodes(),I),S}function v(N){l.forEach(N.edges(),function(S){var M=N.edge(S);if(M.reversed){N.removeEdge(S);var A=M.forwardName;delete M.reversed,delete M.forwardName,N.setEdge(S.w,S.v,M,A)}})}},61133:function(w,P,a){var l=a(38436),x=a(11138);w.exports=E;function E(v){function N(S){var M=v.children(S),A=v.node(S);if(M.length&&l.forEach(M,N),l.has(A,"minRank")){A.borderLeft=[],A.borderRight=[];for(var I=A.minRank,j=A.maxRank+1;I<j;++I)b(v,"borderLeft","_bl",S,A,I),b(v,"borderRight","_br",S,A,I)}}l.forEach(v.children(),N)}function b(v,N,S,M,A,I){var j={width:0,height:0,rank:I,borderType:N},D=A[N][I-1],$=x.addDummyNode(v,"border",j,S);A[N][I]=$,v.setParent($,M),D&&v.setEdge(D,$,{weight:1})}},53258:function(w,P,a){"use strict";var l=a(38436);w.exports={adjust:x,undo:E};function x(I){var j=I.graph().rankdir.toLowerCase();(j==="lr"||j==="rl")&&b(I)}function E(I){var j=I.graph().rankdir.toLowerCase();(j==="bt"||j==="rl")&&N(I),(j==="lr"||j==="rl")&&(M(I),b(I))}function b(I){l.forEach(I.nodes(),function(j){v(I.node(j))}),l.forEach(I.edges(),function(j){v(I.edge(j))})}function v(I){var j=I.width;I.width=I.height,I.height=j}function N(I){l.forEach(I.nodes(),function(j){S(I.node(j))}),l.forEach(I.edges(),function(j){var D=I.edge(j);l.forEach(D.points,S),l.has(D,"y")&&S(D)})}function S(I){I.y=-I.y}function M(I){l.forEach(I.nodes(),function(j){A(I.node(j))}),l.forEach(I.edges(),function(j){var D=I.edge(j);l.forEach(D.points,A),l.has(D,"x")&&A(D)})}function A(I){var j=I.x;I.x=I.y,I.y=j}},77822:function(w){w.exports=P;function P(){var x={};x._next=x._prev=x,this._sentinel=x}P.prototype.dequeue=function(){var x=this._sentinel,E=x._prev;if(E!==x)return a(E),E},P.prototype.enqueue=function(x){var E=this._sentinel;x._prev&&x._next&&a(x),x._next=E._next,E._next._prev=x,E._next=x,x._prev=E},P.prototype.toString=function(){for(var x=[],E=this._sentinel,b=E._prev;b!==E;)x.push(JSON.stringify(b,l)),b=b._prev;return"["+x.join(", ")+"]"};function a(x){x._prev._next=x._next,x._next._prev=x._prev,delete x._next,delete x._prev}function l(x,E){if(x!=="_next"&&x!=="_prev")return E}},27570:function(w,P,a){var l=a(38436),x=a(11138),E=a(70574).Graph;w.exports={debugOrdering:b};function b(v){var N=x.buildLayerMatrix(v),S=new E({compound:!0,multigraph:!0}).setGraph({});return l.forEach(v.nodes(),function(M){S.setNode(M,{label:M}),S.setParent(M,"layer"+v.node(M).rank)}),l.forEach(v.edges(),function(M){S.setEdge(M.v,M.w,{},M.name)}),l.forEach(N,function(M,A){var I="layer"+A;S.setNode(I,{rank:"same"}),l.reduce(M,function(j,D){return S.setEdge(j,D,{style:"invis"}),D})}),S}},70574:function(w,P,a){var l;try{l=a(28282)}catch(x){}l||(l=window.graphlib),w.exports=l},74079:function(w,P,a){var l=a(38436),x=a(70574).Graph,E=a(77822);w.exports=v;var b=l.constant(1);function v(I,j){if(I.nodeCount()<=1)return[];var D=M(I,j||b),$=N(D.graph,D.buckets,D.zeroIdx);return l.flatten(l.map($,function(K){return I.outEdges(K.v,K.w)}),!0)}function N(I,j,D){for(var $=[],K=j[j.length-1],ot=j[0],nt;I.nodeCount();){for(;nt=ot.dequeue();)S(I,j,D,nt);for(;nt=K.dequeue();)S(I,j,D,nt);if(I.nodeCount()){for(var _=j.length-2;_>0;--_)if(nt=j[_].dequeue(),nt){$=$.concat(S(I,j,D,nt,!0));break}}}return $}function S(I,j,D,$,K){var ot=K?[]:void 0;return l.forEach(I.inEdges($.v),function(nt){var _=I.edge(nt),et=I.node(nt.v);K&&ot.push({v:nt.v,w:nt.w}),et.out-=_,A(j,D,et)}),l.forEach(I.outEdges($.v),function(nt){var _=I.edge(nt),et=nt.w,tt=I.node(et);tt.in-=_,A(j,D,tt)}),I.removeNode($.v),ot}function M(I,j){var D=new x,$=0,K=0;l.forEach(I.nodes(),function(_){D.setNode(_,{v:_,in:0,out:0})}),l.forEach(I.edges(),function(_){var et=D.edge(_.v,_.w)||0,tt=j(_),it=et+tt;D.setEdge(_.v,_.w,it),K=Math.max(K,D.node(_.v).out+=tt),$=Math.max($,D.node(_.w).in+=tt)});var ot=l.range(K+$+3).map(function(){return new E}),nt=$+1;return l.forEach(D.nodes(),function(_){A(ot,nt,D.node(_))}),{graph:D,buckets:ot,zeroIdx:nt}}function A(I,j,D){D.out?D.in?I[D.out-D.in+j].enqueue(D):I[I.length-1].enqueue(D):I[0].enqueue(D)}},98123:function(w,P,a){"use strict";var l=a(38436),x=a(92188),E=a(45995),b=a(78093),v=a(11138).normalizeRanks,N=a(24219),S=a(11138).removeEmptyRanks,M=a(72981),A=a(61133),I=a(53258),j=a(53408),D=a(17873),$=a(11138),K=a(70574).Graph;w.exports=ot;function ot(gt,wt){var jt=wt&&wt.debugTiming?$.time:$.notime;jt("layout",function(){var Ft=jt(" buildLayoutGraph",function(){return yt(gt)});jt(" runLayout",function(){nt(Ft,jt)}),jt(" updateInputGraph",function(){_(gt,Ft)})})}function nt(gt,wt){wt(" makeSpaceForEdgeLabels",function(){Mt(gt)}),wt(" removeSelfEdges",function(){xe(gt)}),wt(" acyclic",function(){x.run(gt)}),wt(" nestingGraph.run",function(){M.run(gt)}),wt(" rank",function(){b($.asNonCompoundGraph(gt))}),wt(" injectEdgeLabelProxies",function(){St(gt)}),wt(" removeEmptyRanks",function(){S(gt)}),wt(" nestingGraph.cleanup",function(){M.cleanup(gt)}),wt(" normalizeRanks",function(){v(gt)}),wt(" assignRankMinMax",function(){kt(gt)}),wt(" removeEdgeLabelProxies",function(){Vt(gt)}),wt(" normalize.run",function(){E.run(gt)}),wt(" parentDummyChains",function(){N(gt)}),wt(" addBorderSegments",function(){A(gt)}),wt(" order",function(){j(gt)}),wt(" insertSelfEdges",function(){mn(gt)}),wt(" adjustCoordinateSystem",function(){I.adjust(gt)}),wt(" position",function(){D(gt)}),wt(" positionSelfEdges",function(){Mn(gt)}),wt(" removeBorderNodes",function(){tn(gt)}),wt(" normalize.undo",function(){E.undo(gt)}),wt(" fixupEdgeLabelCoords",function(){ce(gt)}),wt(" undoCoordinateSystem",function(){I.undo(gt)}),wt(" translateGraph",function(){qt(gt)}),wt(" assignNodeIntersects",function(){te(gt)}),wt(" reversePoints",function(){ze(gt)}),wt(" acyclic.undo",function(){x.undo(gt)})}function _(gt,wt){l.forEach(gt.nodes(),function(jt){var Ft=gt.node(jt),Ht=wt.node(jt);Ft&&(Ft.x=Ht.x,Ft.y=Ht.y,wt.children(jt).length&&(Ft.width=Ht.width,Ft.height=Ht.height))}),l.forEach(gt.edges(),function(jt){var Ft=gt.edge(jt),Ht=wt.edge(jt);Ft.points=Ht.points,l.has(Ht,"x")&&(Ft.x=Ht.x,Ft.y=Ht.y)}),gt.graph().width=wt.graph().width,gt.graph().height=wt.graph().height}var et=["nodesep","edgesep","ranksep","marginx","marginy"],tt={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},it=["acyclicer","ranker","rankdir","align"],at=["width","height"],ft={width:0,height:0},ht=["minlen","weight","width","height","labeloffset"],dt={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},xt=["labelpos"];function yt(gt){var wt=new K({multigraph:!0,compound:!0}),jt=en(gt.graph());return wt.setGraph(l.merge({},tt,cn(jt,et),l.pick(jt,it))),l.forEach(gt.nodes(),function(Ft){var Ht=en(gt.node(Ft));wt.setNode(Ft,l.defaults(cn(Ht,at),ft)),wt.setParent(Ft,gt.parent(Ft))}),l.forEach(gt.edges(),function(Ft){var Ht=en(gt.edge(Ft));wt.setEdge(Ft,l.merge({},dt,cn(Ht,ht),l.pick(Ht,xt)))}),wt}function Mt(gt){var wt=gt.graph();wt.ranksep/=2,l.forEach(gt.edges(),function(jt){var Ft=gt.edge(jt);Ft.minlen*=2,Ft.labelpos.toLowerCase()!=="c"&&(wt.rankdir==="TB"||wt.rankdir==="BT"?Ft.width+=Ft.labeloffset:Ft.height+=Ft.labeloffset)})}function St(gt){l.forEach(gt.edges(),function(wt){var jt=gt.edge(wt);if(jt.width&&jt.height){var Ft=gt.node(wt.v),Ht=gt.node(wt.w),de={rank:(Ht.rank-Ft.rank)/2+Ft.rank,e:wt};$.addDummyNode(gt,"edge-proxy",de,"_ep")}})}function kt(gt){var wt=0;l.forEach(gt.nodes(),function(jt){var Ft=gt.node(jt);Ft.borderTop&&(Ft.minRank=gt.node(Ft.borderTop).rank,Ft.maxRank=gt.node(Ft.borderBottom).rank,wt=l.max(wt,Ft.maxRank))}),gt.graph().maxRank=wt}function Vt(gt){l.forEach(gt.nodes(),function(wt){var jt=gt.node(wt);jt.dummy==="edge-proxy"&&(gt.edge(jt.e).labelRank=jt.rank,gt.removeNode(wt))})}function qt(gt){var wt=Number.POSITIVE_INFINITY,jt=0,Ft=Number.POSITIVE_INFINITY,Ht=0,de=gt.graph(),ge=de.marginx||0,Re=de.marginy||0;function fn(Ce){var Ne=Ce.x,se=Ce.y,Wt=Ce.width,ee=Ce.height;wt=Math.min(wt,Ne-Wt/2),jt=Math.max(jt,Ne+Wt/2),Ft=Math.min(Ft,se-ee/2),Ht=Math.max(Ht,se+ee/2)}l.forEach(gt.nodes(),function(Ce){fn(gt.node(Ce))}),l.forEach(gt.edges(),function(Ce){var Ne=gt.edge(Ce);l.has(Ne,"x")&&fn(Ne)}),wt-=ge,Ft-=Re,l.forEach(gt.nodes(),function(Ce){var Ne=gt.node(Ce);Ne.x-=wt,Ne.y-=Ft}),l.forEach(gt.edges(),function(Ce){var Ne=gt.edge(Ce);l.forEach(Ne.points,function(se){se.x-=wt,se.y-=Ft}),l.has(Ne,"x")&&(Ne.x-=wt),l.has(Ne,"y")&&(Ne.y-=Ft)}),de.width=jt-wt+ge,de.height=Ht-Ft+Re}function te(gt){l.forEach(gt.edges(),function(wt){var jt=gt.edge(wt),Ft=gt.node(wt.v),Ht=gt.node(wt.w),de,ge;jt.points?(de=jt.points[0],ge=jt.points[jt.points.length-1]):(jt.points=[],de=Ht,ge=Ft),jt.points.unshift($.intersectRect(Ft,de)),jt.points.push($.intersectRect(Ht,ge))})}function ce(gt){l.forEach(gt.edges(),function(wt){var jt=gt.edge(wt);if(l.has(jt,"x"))switch((jt.labelpos==="l"||jt.labelpos==="r")&&(jt.width-=jt.labeloffset),jt.labelpos){case"l":jt.x-=jt.width/2+jt.labeloffset;break;case"r":jt.x+=jt.width/2+jt.labeloffset;break}})}function ze(gt){l.forEach(gt.edges(),function(wt){var jt=gt.edge(wt);jt.reversed&&jt.points.reverse()})}function tn(gt){l.forEach(gt.nodes(),function(wt){if(gt.children(wt).length){var jt=gt.node(wt),Ft=gt.node(jt.borderTop),Ht=gt.node(jt.borderBottom),de=gt.node(l.last(jt.borderLeft)),ge=gt.node(l.last(jt.borderRight));jt.width=Math.abs(ge.x-de.x),jt.height=Math.abs(Ht.y-Ft.y),jt.x=de.x+jt.width/2,jt.y=Ft.y+jt.height/2}}),l.forEach(gt.nodes(),function(wt){gt.node(wt).dummy==="border"&>.removeNode(wt)})}function xe(gt){l.forEach(gt.edges(),function(wt){if(wt.v===wt.w){var jt=gt.node(wt.v);jt.selfEdges||(jt.selfEdges=[]),jt.selfEdges.push({e:wt,label:gt.edge(wt)}),gt.removeEdge(wt)}})}function mn(gt){var wt=$.buildLayerMatrix(gt);l.forEach(wt,function(jt){var Ft=0;l.forEach(jt,function(Ht,de){var ge=gt.node(Ht);ge.order=de+Ft,l.forEach(ge.selfEdges,function(Re){$.addDummyNode(gt,"selfedge",{width:Re.label.width,height:Re.label.height,rank:ge.rank,order:de+ ++Ft,e:Re.e,label:Re.label},"_se")}),delete ge.selfEdges})})}function Mn(gt){l.forEach(gt.nodes(),function(wt){var jt=gt.node(wt);if(jt.dummy==="selfedge"){var Ft=gt.node(jt.e.v),Ht=Ft.x+Ft.width/2,de=Ft.y,ge=jt.x-Ht,Re=Ft.height/2;gt.setEdge(jt.e,jt.label),gt.removeNode(wt),jt.label.points=[{x:Ht+2*ge/3,y:de-Re},{x:Ht+5*ge/6,y:de-Re},{x:Ht+ge,y:de},{x:Ht+5*ge/6,y:de+Re},{x:Ht+2*ge/3,y:de+Re}],jt.label.x=jt.x,jt.label.y=jt.y}})}function cn(gt,wt){return l.mapValues(l.pick(gt,wt),Number)}function en(gt){var wt={};return l.forEach(gt,function(jt,Ft){wt[Ft.toLowerCase()]=jt}),wt}},38436:function(w,P,a){var l;try{l={cloneDeep:a(50361),constant:a(75703),defaults:a(91747),each:a(85768),filter:a(63105),find:a(13311),flatten:a(85564),forEach:a(84486),forIn:a(62620),has:a(18721),isUndefined:a(52353),last:a(10928),map:a(35161),mapValues:a(8521),max:a(6162),merge:a(82492),min:a(53632),minBy:a(22762),now:a(7771),pick:a(78718),range:a(96026),reduce:a(54061),sortBy:a(89734),uniqueId:a(73955),values:a(52628),zipObject:a(7287)}}catch(x){}l||(l=window._),w.exports=l},72981:function(w,P,a){var l=a(38436),x=a(11138);w.exports={run:E,cleanup:S};function E(M){var A=x.addDummyNode(M,"root",{},"_root"),I=v(M),j=l.max(l.values(I))-1,D=2*j+1;M.graph().nestingRoot=A,l.forEach(M.edges(),function(K){M.edge(K).minlen*=D});var $=N(M)+1;l.forEach(M.children(),function(K){b(M,A,D,$,j,I,K)}),M.graph().nodeRankFactor=D}function b(M,A,I,j,D,$,K){var ot=M.children(K);if(!ot.length){K!==A&&M.setEdge(A,K,{weight:0,minlen:I});return}var nt=x.addBorderNode(M,"_bt"),_=x.addBorderNode(M,"_bb"),et=M.node(K);M.setParent(nt,K),et.borderTop=nt,M.setParent(_,K),et.borderBottom=_,l.forEach(ot,function(tt){b(M,A,I,j,D,$,tt);var it=M.node(tt),at=it.borderTop?it.borderTop:tt,ft=it.borderBottom?it.borderBottom:tt,ht=it.borderTop?j:2*j,dt=at!==ft?1:D-$[K]+1;M.setEdge(nt,at,{weight:ht,minlen:dt,nestingEdge:!0}),M.setEdge(ft,_,{weight:ht,minlen:dt,nestingEdge:!0})}),M.parent(K)||M.setEdge(A,nt,{weight:0,minlen:D+$[K]})}function v(M){var A={};function I(j,D){var $=M.children(j);$&&$.length&&l.forEach($,function(K){I(K,D+1)}),A[j]=D}return l.forEach(M.children(),function(j){I(j,1)}),A}function N(M){return l.reduce(M.edges(),function(A,I){return A+M.edge(I).weight},0)}function S(M){var A=M.graph();M.removeNode(A.nestingRoot),delete A.nestingRoot,l.forEach(M.edges(),function(I){var j=M.edge(I);j.nestingEdge&&M.removeEdge(I)})}},45995:function(w,P,a){"use strict";var l=a(38436),x=a(11138);w.exports={run:E,undo:v};function E(N){N.graph().dummyChains=[],l.forEach(N.edges(),function(S){b(N,S)})}function b(N,S){var M=S.v,A=N.node(M).rank,I=S.w,j=N.node(I).rank,D=S.name,$=N.edge(S),K=$.labelRank;if(j!==A+1){N.removeEdge(S);var ot,nt,_;for(_=0,++A;A<j;++_,++A)$.points=[],nt={width:0,height:0,edgeLabel:$,edgeObj:S,rank:A},ot=x.addDummyNode(N,"edge",nt,"_d"),A===K&&(nt.width=$.width,nt.height=$.height,nt.dummy="edge-label",nt.labelpos=$.labelpos),N.setEdge(M,ot,{weight:$.weight},D),_===0&&N.graph().dummyChains.push(ot),M=ot;N.setEdge(M,I,{weight:$.weight},D)}}function v(N){l.forEach(N.graph().dummyChains,function(S){var M=N.node(S),A=M.edgeLabel,I;for(N.setEdge(M.edgeObj,A);M.dummy;)I=N.successors(S)[0],N.removeNode(S),A.points.push({x:M.x,y:M.y}),M.dummy==="edge-label"&&(A.x=M.x,A.y=M.y,A.width=M.width,A.height=M.height),S=I,M=N.node(S)})}},55093:function(w,P,a){var l=a(38436);w.exports=x;function x(E,b,v){var N={},S;l.forEach(v,function(M){for(var A=E.parent(M),I,j;A;){if(I=E.parent(A),I?(j=N[I],N[I]=A):(j=S,S=A),j&&j!==A){b.setEdge(j,A);return}A=I}})}},35439:function(w,P,a){var l=a(38436);w.exports=x;function x(E,b){return l.map(b,function(v){var N=E.inEdges(v);if(N.length){var S=l.reduce(N,function(M,A){var I=E.edge(A),j=E.node(A.v);return{sum:M.sum+I.weight*j.order,weight:M.weight+I.weight}},{sum:0,weight:0});return{v,barycenter:S.sum/S.weight,weight:S.weight}}else return{v}})}},23128:function(w,P,a){var l=a(38436),x=a(70574).Graph;w.exports=E;function E(v,N,S){var M=b(v),A=new x({compound:!0}).setGraph({root:M}).setDefaultNodeLabel(function(I){return v.node(I)});return l.forEach(v.nodes(),function(I){var j=v.node(I),D=v.parent(I);(j.rank===N||j.minRank<=N&&N<=j.maxRank)&&(A.setNode(I),A.setParent(I,D||M),l.forEach(v[S](I),function($){var K=$.v===I?$.w:$.v,ot=A.edge(K,I),nt=l.isUndefined(ot)?0:ot.weight;A.setEdge(K,I,{weight:v.edge($).weight+nt})}),l.has(j,"minRank")&&A.setNode(I,{borderLeft:j.borderLeft[N],borderRight:j.borderRight[N]}))}),A}function b(v){for(var N;v.hasNode(N=l.uniqueId("_root")););return N}},56630:function(w,P,a){"use strict";var l=a(38436);w.exports=x;function x(b,v){for(var N=0,S=1;S<v.length;++S)N+=E(b,v[S-1],v[S]);return N}function E(b,v,N){for(var S=l.zipObject(N,l.map(N,function($,K){return K})),M=l.flatten(l.map(v,function($){return l.sortBy(l.map(b.outEdges($),function(K){return{pos:S[K.w],weight:b.edge(K).weight}}),"pos")}),!0),A=1;A<N.length;)A<<=1;var I=2*A-1;A-=1;var j=l.map(new Array(I),function(){return 0}),D=0;return l.forEach(M.forEach(function($){var K=$.pos+A;j[K]+=$.weight;for(var ot=0;K>0;)K%2&&(ot+=j[K+1]),K=K-1>>1,j[K]+=$.weight;D+=$.weight*ot})),D}},53408:function(w,P,a){"use strict";var l=a(38436),x=a(2588),E=a(56630),b=a(61026),v=a(23128),N=a(55093),S=a(70574).Graph,M=a(11138);w.exports=A;function A($){var K=M.maxRank($),ot=I($,l.range(1,K+1),"inEdges"),nt=I($,l.range(K-1,-1,-1),"outEdges"),_=x($);D($,_);for(var et=Number.POSITIVE_INFINITY,tt,it=0,at=0;at<4;++it,++at){j(it%2?ot:nt,it%4>=2),_=M.buildLayerMatrix($);var ft=E($,_);ft<et&&(at=0,tt=l.cloneDeep(_),et=ft)}D($,tt)}function I($,K,ot){return l.map(K,function(nt){return v($,nt,ot)})}function j($,K){var ot=new S;l.forEach($,function(nt){var _=nt.graph().root,et=b(nt,_,ot,K);l.forEach(et.vs,function(tt,it){nt.node(tt).order=it}),N(nt,ot,et.vs)})}function D($,K){l.forEach(K,function(ot){l.forEach(ot,function(nt,_){$.node(nt).order=_})})}},2588:function(w,P,a){"use strict";var l=a(38436);w.exports=x;function x(E){var b={},v=l.filter(E.nodes(),function(I){return!E.children(I).length}),N=l.max(l.map(v,function(I){return E.node(I).rank})),S=l.map(l.range(N+1),function(){return[]});function M(I){if(!l.has(b,I)){b[I]=!0;var j=E.node(I);S[j.rank].push(I),l.forEach(E.successors(I),M)}}var A=l.sortBy(v,function(I){return E.node(I).rank});return l.forEach(A,M),S}},83678:function(w,P,a){"use strict";var l=a(38436);w.exports=x;function x(v,N){var S={};l.forEach(v,function(A,I){var j=S[A.v]={indegree:0,in:[],out:[],vs:[A.v],i:I};l.isUndefined(A.barycenter)||(j.barycenter=A.barycenter,j.weight=A.weight)}),l.forEach(N.edges(),function(A){var I=S[A.v],j=S[A.w];!l.isUndefined(I)&&!l.isUndefined(j)&&(j.indegree++,I.out.push(S[A.w]))});var M=l.filter(S,function(A){return!A.indegree});return E(M)}function E(v){var N=[];function S(I){return function(j){j.merged||(l.isUndefined(j.barycenter)||l.isUndefined(I.barycenter)||j.barycenter>=I.barycenter)&&b(I,j)}}function M(I){return function(j){j.in.push(I),--j.indegree===0&&v.push(j)}}for(;v.length;){var A=v.pop();N.push(A),l.forEach(A.in.reverse(),S(A)),l.forEach(A.out,M(A))}return l.map(l.filter(N,function(I){return!I.merged}),function(I){return l.pick(I,["vs","i","barycenter","weight"])})}function b(v,N){var S=0,M=0;v.weight&&(S+=v.barycenter*v.weight,M+=v.weight),N.weight&&(S+=N.barycenter*N.weight,M+=N.weight),v.vs=N.vs.concat(v.vs),v.barycenter=S/M,v.weight=M,v.i=Math.min(N.i,v.i),N.merged=!0}},61026:function(w,P,a){var l=a(38436),x=a(35439),E=a(83678),b=a(87304);w.exports=v;function v(M,A,I,j){var D=M.children(A),$=M.node(A),K=$?$.borderLeft:void 0,ot=$?$.borderRight:void 0,nt={};K&&(D=l.filter(D,function(ft){return ft!==K&&ft!==ot}));var _=x(M,D);l.forEach(_,function(ft){if(M.children(ft.v).length){var ht=v(M,ft.v,I,j);nt[ft.v]=ht,l.has(ht,"barycenter")&&S(ft,ht)}});var et=E(_,I);N(et,nt);var tt=b(et,j);if(K&&(tt.vs=l.flatten([K,tt.vs,ot],!0),M.predecessors(K).length)){var it=M.node(M.predecessors(K)[0]),at=M.node(M.predecessors(ot)[0]);l.has(tt,"barycenter")||(tt.barycenter=0,tt.weight=0),tt.barycenter=(tt.barycenter*tt.weight+it.order+at.order)/(tt.weight+2),tt.weight+=2}return tt}function N(M,A){l.forEach(M,function(I){I.vs=l.flatten(I.vs.map(function(j){return A[j]?A[j].vs:j}),!0)})}function S(M,A){l.isUndefined(M.barycenter)?(M.barycenter=A.barycenter,M.weight=A.weight):(M.barycenter=(M.barycenter*M.weight+A.barycenter*A.weight)/(M.weight+A.weight),M.weight+=A.weight)}},87304:function(w,P,a){var l=a(38436),x=a(11138);w.exports=E;function E(N,S){var M=x.partition(N,function(nt){return l.has(nt,"barycenter")}),A=M.lhs,I=l.sortBy(M.rhs,function(nt){return-nt.i}),j=[],D=0,$=0,K=0;A.sort(v(!!S)),K=b(j,I,K),l.forEach(A,function(nt){K+=nt.vs.length,j.push(nt.vs),D+=nt.barycenter*nt.weight,$+=nt.weight,K=b(j,I,K)});var ot={vs:l.flatten(j,!0)};return $&&(ot.barycenter=D/$,ot.weight=$),ot}function b(N,S,M){for(var A;S.length&&(A=l.last(S)).i<=M;)S.pop(),N.push(A.vs),M++;return M}function v(N){return function(S,M){return S.barycenter<M.barycenter?-1:S.barycenter>M.barycenter?1:N?M.i-S.i:S.i-M.i}}},24219:function(w,P,a){var l=a(38436);w.exports=x;function x(v){var N=b(v);l.forEach(v.graph().dummyChains,function(S){for(var M=v.node(S),A=M.edgeObj,I=E(v,N,A.v,A.w),j=I.path,D=I.lca,$=0,K=j[$],ot=!0;S!==A.w;){if(M=v.node(S),ot){for(;(K=j[$])!==D&&v.node(K).maxRank<M.rank;)$++;K===D&&(ot=!1)}if(!ot){for(;$<j.length-1&&v.node(K=j[$+1]).minRank<=M.rank;)$++;K=j[$]}v.setParent(S,K),S=v.successors(S)[0]}})}function E(v,N,S,M){var A=[],I=[],j=Math.min(N[S].low,N[M].low),D=Math.max(N[S].lim,N[M].lim),$,K;$=S;do $=v.parent($),A.push($);while($&&(N[$].low>j||D>N[$].lim));for(K=$,$=M;($=v.parent($))!==K;)I.push($);return{path:A.concat(I.reverse()),lca:K}}function b(v){var N={},S=0;function M(A){var I=S;l.forEach(v.children(A),M),N[A]={low:I,lim:S++}}return l.forEach(v.children(),M),N}},3573:function(w,P,a){"use strict";var l=a(38436),x=a(70574).Graph,E=a(11138);w.exports={positionX:ot,findType1Conflicts:b,findType2Conflicts:v,addConflict:S,hasConflict:M,verticalAlignment:A,horizontalCompaction:I,alignCoordinates:$,findSmallestWidthAlignment:D,balance:K};function b(et,tt){var it={};function at(ft,ht){var dt=0,xt=0,yt=ft.length,Mt=l.last(ht);return l.forEach(ht,function(St,kt){var Vt=N(et,St),qt=Vt?et.node(Vt).order:yt;(Vt||St===Mt)&&(l.forEach(ht.slice(xt,kt+1),function(te){l.forEach(et.predecessors(te),function(ce){var ze=et.node(ce),tn=ze.order;(tn<dt||qt<tn)&&!(ze.dummy&&et.node(te).dummy)&&S(it,ce,te)})}),xt=kt+1,dt=qt)}),ht}return l.reduce(tt,at),it}function v(et,tt){var it={};function at(ht,dt,xt,yt,Mt){var St;l.forEach(l.range(dt,xt),function(kt){St=ht[kt],et.node(St).dummy&&l.forEach(et.predecessors(St),function(Vt){var qt=et.node(Vt);qt.dummy&&(qt.order<yt||qt.order>Mt)&&S(it,Vt,St)})})}function ft(ht,dt){var xt=-1,yt,Mt=0;return l.forEach(dt,function(St,kt){if(et.node(St).dummy==="border"){var Vt=et.predecessors(St);Vt.length&&(yt=et.node(Vt[0]).order,at(dt,Mt,kt,xt,yt),Mt=kt,xt=yt)}at(dt,Mt,dt.length,yt,ht.length)}),dt}return l.reduce(tt,ft),it}function N(et,tt){if(et.node(tt).dummy)return l.find(et.predecessors(tt),function(it){return et.node(it).dummy})}function S(et,tt,it){if(tt>it){var at=tt;tt=it,it=at}var ft=et[tt];ft||(et[tt]=ft={}),ft[it]=!0}function M(et,tt,it){if(tt>it){var at=tt;tt=it,it=at}return l.has(et[tt],it)}function A(et,tt,it,at){var ft={},ht={},dt={};return l.forEach(tt,function(xt){l.forEach(xt,function(yt,Mt){ft[yt]=yt,ht[yt]=yt,dt[yt]=Mt})}),l.forEach(tt,function(xt){var yt=-1;l.forEach(xt,function(Mt){var St=at(Mt);if(St.length){St=l.sortBy(St,function(ce){return dt[ce]});for(var kt=(St.length-1)/2,Vt=Math.floor(kt),qt=Math.ceil(kt);Vt<=qt;++Vt){var te=St[Vt];ht[Mt]===Mt&&yt<dt[te]&&!M(it,Mt,te)&&(ht[te]=Mt,ht[Mt]=ft[Mt]=ft[te],yt=dt[te])}}})}),{root:ft,align:ht}}function I(et,tt,it,at,ft){var ht={},dt=j(et,tt,it,ft),xt=ft?"borderLeft":"borderRight";function yt(kt,Vt){for(var qt=dt.nodes(),te=qt.pop(),ce={};te;)ce[te]?kt(te):(ce[te]=!0,qt.push(te),qt=qt.concat(Vt(te))),te=qt.pop()}function Mt(kt){ht[kt]=dt.inEdges(kt).reduce(function(Vt,qt){return Math.max(Vt,ht[qt.v]+dt.edge(qt))},0)}function St(kt){var Vt=dt.outEdges(kt).reduce(function(te,ce){return Math.min(te,ht[ce.w]-dt.edge(ce))},Number.POSITIVE_INFINITY),qt=et.node(kt);Vt!==Number.POSITIVE_INFINITY&&qt.borderType!==xt&&(ht[kt]=Math.max(ht[kt],Vt))}return yt(Mt,dt.predecessors.bind(dt)),yt(St,dt.successors.bind(dt)),l.forEach(at,function(kt){ht[kt]=ht[it[kt]]}),ht}function j(et,tt,it,at){var ft=new x,ht=et.graph(),dt=nt(ht.nodesep,ht.edgesep,at);return l.forEach(tt,function(xt){var yt;l.forEach(xt,function(Mt){var St=it[Mt];if(ft.setNode(St),yt){var kt=it[yt],Vt=ft.edge(kt,St);ft.setEdge(kt,St,Math.max(dt(et,Mt,yt),Vt||0))}yt=Mt})}),ft}function D(et,tt){return l.minBy(l.values(tt),function(it){var at=Number.NEGATIVE_INFINITY,ft=Number.POSITIVE_INFINITY;return l.forIn(it,function(ht,dt){var xt=_(et,dt)/2;at=Math.max(ht+xt,at),ft=Math.min(ht-xt,ft)}),at-ft})}function $(et,tt){var it=l.values(tt),at=l.min(it),ft=l.max(it);l.forEach(["u","d"],function(ht){l.forEach(["l","r"],function(dt){var xt=ht+dt,yt=et[xt],Mt;if(yt!==tt){var St=l.values(yt);Mt=dt==="l"?at-l.min(St):ft-l.max(St),Mt&&(et[xt]=l.mapValues(yt,function(kt){return kt+Mt}))}})})}function K(et,tt){return l.mapValues(et.ul,function(it,at){if(tt)return et[tt.toLowerCase()][at];var ft=l.sortBy(l.map(et,at));return(ft[1]+ft[2])/2})}function ot(et){var tt=E.buildLayerMatrix(et),it=l.merge(b(et,tt),v(et,tt)),at={},ft;l.forEach(["u","d"],function(dt){ft=dt==="u"?tt:l.values(tt).reverse(),l.forEach(["l","r"],function(xt){xt==="r"&&(ft=l.map(ft,function(kt){return l.values(kt).reverse()}));var yt=(dt==="u"?et.predecessors:et.successors).bind(et),Mt=A(et,ft,it,yt),St=I(et,ft,Mt.root,Mt.align,xt==="r");xt==="r"&&(St=l.mapValues(St,function(kt){return-kt})),at[dt+xt]=St})});var ht=D(et,at);return $(at,ht),K(at,et.graph().align)}function nt(et,tt,it){return function(at,ft,ht){var dt=at.node(ft),xt=at.node(ht),yt=0,Mt;if(yt+=dt.width/2,l.has(dt,"labelpos"))switch(dt.labelpos.toLowerCase()){case"l":Mt=-dt.width/2;break;case"r":Mt=dt.width/2;break}if(Mt&&(yt+=it?Mt:-Mt),Mt=0,yt+=(dt.dummy?tt:et)/2,yt+=(xt.dummy?tt:et)/2,yt+=xt.width/2,l.has(xt,"labelpos"))switch(xt.labelpos.toLowerCase()){case"l":Mt=xt.width/2;break;case"r":Mt=-xt.width/2;break}return Mt&&(yt+=it?Mt:-Mt),Mt=0,yt}}function _(et,tt){return et.node(tt).width}},17873:function(w,P,a){"use strict";var l=a(38436),x=a(11138),E=a(3573).positionX;w.exports=b;function b(N){N=x.asNonCompoundGraph(N),v(N),l.forEach(E(N),function(S,M){N.node(M).x=S})}function v(N){var S=x.buildLayerMatrix(N),M=N.graph().ranksep,A=0;l.forEach(S,function(I){var j=l.max(l.map(I,function(D){return N.node(D).height}));l.forEach(I,function(D){N.node(D).y=A+j/2}),A+=j+M})}},20300:function(w,P,a){"use strict";var l=a(38436),x=a(70574).Graph,E=a(76681).slack;w.exports=b;function b(M){var A=new x({directed:!1}),I=M.nodes()[0],j=M.nodeCount();A.setNode(I,{});for(var D,$;v(A,M)<j;)D=N(A,M),$=A.hasNode(D.v)?E(M,D):-E(M,D),S(A,M,$);return A}function v(M,A){function I(j){l.forEach(A.nodeEdges(j),function(D){var $=D.v,K=j===$?D.w:$;!M.hasNode(K)&&!E(A,D)&&(M.setNode(K,{}),M.setEdge(j,K,{}),I(K))})}return l.forEach(M.nodes(),I),M.nodeCount()}function N(M,A){return l.minBy(A.edges(),function(I){if(M.hasNode(I.v)!==M.hasNode(I.w))return E(A,I)})}function S(M,A,I){l.forEach(M.nodes(),function(j){A.node(j).rank+=I})}},78093:function(w,P,a){"use strict";var l=a(76681),x=l.longestPath,E=a(20300),b=a(42472);w.exports=v;function v(A){switch(A.graph().ranker){case"network-simplex":M(A);break;case"tight-tree":S(A);break;case"longest-path":N(A);break;default:M(A)}}var N=x;function S(A){x(A),E(A)}function M(A){b(A)}},42472:function(w,P,a){"use strict";var l=a(38436),x=a(20300),E=a(76681).slack,b=a(76681).longestPath,v=a(70574).alg.preorder,N=a(70574).alg.postorder,S=a(11138).simplify;w.exports=M,M.initLowLimValues=D,M.initCutValues=A,M.calcCutValue=j,M.leaveEdge=K,M.enterEdge=ot,M.exchangeEdges=nt;function M(it){it=S(it),b(it);var at=x(it);D(at),A(at,it);for(var ft,ht;ft=K(at);)ht=ot(at,it,ft),nt(at,it,ft,ht)}function A(it,at){var ft=N(it,it.nodes());ft=ft.slice(0,ft.length-1),l.forEach(ft,function(ht){I(it,at,ht)})}function I(it,at,ft){var ht=it.node(ft),dt=ht.parent;it.edge(ft,dt).cutvalue=j(it,at,ft)}function j(it,at,ft){var ht=it.node(ft),dt=ht.parent,xt=!0,yt=at.edge(ft,dt),Mt=0;return yt||(xt=!1,yt=at.edge(dt,ft)),Mt=yt.weight,l.forEach(at.nodeEdges(ft),function(St){var kt=St.v===ft,Vt=kt?St.w:St.v;if(Vt!==dt){var qt=kt===xt,te=at.edge(St).weight;if(Mt+=qt?te:-te,et(it,ft,Vt)){var ce=it.edge(ft,Vt).cutvalue;Mt+=qt?-ce:ce}}}),Mt}function D(it,at){arguments.length<2&&(at=it.nodes()[0]),$(it,{},1,at)}function $(it,at,ft,ht,dt){var xt=ft,yt=it.node(ht);return at[ht]=!0,l.forEach(it.neighbors(ht),function(Mt){l.has(at,Mt)||(ft=$(it,at,ft,Mt,ht))}),yt.low=xt,yt.lim=ft++,dt?yt.parent=dt:delete yt.parent,ft}function K(it){return l.find(it.edges(),function(at){return it.edge(at).cutvalue<0})}function ot(it,at,ft){var ht=ft.v,dt=ft.w;at.hasEdge(ht,dt)||(ht=ft.w,dt=ft.v);var xt=it.node(ht),yt=it.node(dt),Mt=xt,St=!1;xt.lim>yt.lim&&(Mt=yt,St=!0);var kt=l.filter(at.edges(),function(Vt){return St===tt(it,it.node(Vt.v),Mt)&&St!==tt(it,it.node(Vt.w),Mt)});return l.minBy(kt,function(Vt){return E(at,Vt)})}function nt(it,at,ft,ht){var dt=ft.v,xt=ft.w;it.removeEdge(dt,xt),it.setEdge(ht.v,ht.w,{}),D(it),A(it,at),_(it,at)}function _(it,at){var ft=l.find(it.nodes(),function(dt){return!at.node(dt).parent}),ht=v(it,ft);ht=ht.slice(1),l.forEach(ht,function(dt){var xt=it.node(dt).parent,yt=at.edge(dt,xt),Mt=!1;yt||(yt=at.edge(xt,dt),Mt=!0),at.node(dt).rank=at.node(xt).rank+(Mt?yt.minlen:-yt.minlen)})}function et(it,at,ft){return it.hasEdge(at,ft)}function tt(it,at,ft){return ft.low<=at.lim&&at.lim<=ft.lim}},76681:function(w,P,a){"use strict";var l=a(38436);w.exports={longestPath:x,slack:E};function x(b){var v={};function N(S){var M=b.node(S);if(l.has(v,S))return M.rank;v[S]=!0;var A=l.min(l.map(b.outEdges(S),function(I){return N(I.w)-b.edge(I).minlen}));return(A===Number.POSITIVE_INFINITY||A===void 0||A===null)&&(A=0),M.rank=A}l.forEach(b.sources(),N)}function E(b,v){return b.node(v.w).rank-b.node(v.v).rank-b.edge(v).minlen}},11138:function(w,P,a){"use strict";var l=a(38436),x=a(70574).Graph;w.exports={addDummyNode:E,simplify:b,asNonCompoundGraph:v,successorWeights:N,predecessorWeights:S,intersectRect:M,buildLayerMatrix:A,normalizeRanks:I,removeEmptyRanks:j,addBorderNode:D,maxRank:$,partition:K,time:ot,notime:nt};function E(_,et,tt,it){var at;do at=l.uniqueId(it);while(_.hasNode(at));return tt.dummy=et,_.setNode(at,tt),at}function b(_){var et=new x().setGraph(_.graph());return l.forEach(_.nodes(),function(tt){et.setNode(tt,_.node(tt))}),l.forEach(_.edges(),function(tt){var it=et.edge(tt.v,tt.w)||{weight:0,minlen:1},at=_.edge(tt);et.setEdge(tt.v,tt.w,{weight:it.weight+at.weight,minlen:Math.max(it.minlen,at.minlen)})}),et}function v(_){var et=new x({multigraph:_.isMultigraph()}).setGraph(_.graph());return l.forEach(_.nodes(),function(tt){_.children(tt).length||et.setNode(tt,_.node(tt))}),l.forEach(_.edges(),function(tt){et.setEdge(tt,_.edge(tt))}),et}function N(_){var et=l.map(_.nodes(),function(tt){var it={};return l.forEach(_.outEdges(tt),function(at){it[at.w]=(it[at.w]||0)+_.edge(at).weight}),it});return l.zipObject(_.nodes(),et)}function S(_){var et=l.map(_.nodes(),function(tt){var it={};return l.forEach(_.inEdges(tt),function(at){it[at.v]=(it[at.v]||0)+_.edge(at).weight}),it});return l.zipObject(_.nodes(),et)}function M(_,et){var tt=_.x,it=_.y,at=et.x-tt,ft=et.y-it,ht=_.width/2,dt=_.height/2;if(!at&&!ft)throw new Error("Not possible to find intersection inside of the rectangle");var xt,yt;return Math.abs(ft)*ht>Math.abs(at)*dt?(ft<0&&(dt=-dt),xt=dt*at/ft,yt=dt):(at<0&&(ht=-ht),xt=ht,yt=ht*ft/at),{x:tt+xt,y:it+yt}}function A(_){var et=l.map(l.range($(_)+1),function(){return[]});return l.forEach(_.nodes(),function(tt){var it=_.node(tt),at=it.rank;l.isUndefined(at)||(et[at][it.order]=tt)}),et}function I(_){var et=l.min(l.map(_.nodes(),function(tt){return _.node(tt).rank}));l.forEach(_.nodes(),function(tt){var it=_.node(tt);l.has(it,"rank")&&(it.rank-=et)})}function j(_){var et=l.min(l.map(_.nodes(),function(ft){return _.node(ft).rank})),tt=[];l.forEach(_.nodes(),function(ft){var ht=_.node(ft).rank-et;tt[ht]||(tt[ht]=[]),tt[ht].push(ft)});var it=0,at=_.graph().nodeRankFactor;l.forEach(tt,function(ft,ht){l.isUndefined(ft)&&ht%at!==0?--it:it&&l.forEach(ft,function(dt){_.node(dt).rank+=it})})}function D(_,et,tt,it){var at={width:0,height:0};return arguments.length>=4&&(at.rank=tt,at.order=it),E(_,"border",at,et)}function $(_){return l.max(l.map(_.nodes(),function(et){var tt=_.node(et).rank;if(!l.isUndefined(tt))return tt}))}function K(_,et){var tt={lhs:[],rhs:[]};return l.forEach(_,function(it){et(it)?tt.lhs.push(it):tt.rhs.push(it)}),tt}function ot(_,et){var tt=l.now();try{return et()}finally{console.log(_+" time: "+(l.now()-tt)+"ms")}}function nt(_,et){return et()}},88177:function(w){w.exports="0.8.5"},28282:function(w,P,a){var l=a(82354);w.exports={Graph:l.Graph,json:a(28974),alg:a(12440),version:l.version}},2842:function(w,P,a){var l=a(89126);w.exports=x;function x(E){var b={},v=[],N;function S(M){l.has(b,M)||(b[M]=!0,N.push(M),l.each(E.successors(M),S),l.each(E.predecessors(M),S))}return l.each(E.nodes(),function(M){N=[],S(M),N.length&&v.push(N)}),v}},53984:function(w,P,a){var l=a(89126);w.exports=x;function x(b,v,N){l.isArray(v)||(v=[v]);var S=(b.isDirected()?b.successors:b.neighbors).bind(b),M=[],A={};return l.each(v,function(I){if(!b.hasNode(I))throw new Error("Graph does not have node: "+I);E(b,I,N==="post",A,S,M)}),M}function E(b,v,N,S,M,A){l.has(S,v)||(S[v]=!0,N||A.push(v),l.each(M(v),function(I){E(b,I,N,S,M,A)}),N&&A.push(v))}},84847:function(w,P,a){var l=a(63763),x=a(89126);w.exports=E;function E(b,v,N){return x.transform(b.nodes(),function(S,M){S[M]=l(b,M,v,N)},{})}},63763:function(w,P,a){var l=a(89126),x=a(75639);w.exports=b;var E=l.constant(1);function b(N,S,M,A){return v(N,String(S),M||E,A||function(I){return N.outEdges(I)})}function v(N,S,M,A){var I={},j=new x,D,$,K=function(ot){var nt=ot.v!==D?ot.v:ot.w,_=I[nt],et=M(ot),tt=$.distance+et;if(et<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+ot+" Weight: "+et);tt<_.distance&&(_.distance=tt,_.predecessor=D,j.decrease(nt,tt))};for(N.nodes().forEach(function(ot){var nt=ot===S?0:Number.POSITIVE_INFINITY;I[ot]={distance:nt},j.add(ot,nt)});j.size()>0&&(D=j.removeMin(),$=I[D],$.distance!==Number.POSITIVE_INFINITY);)A(D).forEach(K);return I}},9096:function(w,P,a){var l=a(89126),x=a(5023);w.exports=E;function E(b){return l.filter(x(b),function(v){return v.length>1||v.length===1&&b.hasEdge(v[0],v[0])})}},38924:function(w,P,a){var l=a(89126);w.exports=E;var x=l.constant(1);function E(v,N,S){return b(v,N||x,S||function(M){return v.outEdges(M)})}function b(v,N,S){var M={},A=v.nodes();return A.forEach(function(I){M[I]={},M[I][I]={distance:0},A.forEach(function(j){I!==j&&(M[I][j]={distance:Number.POSITIVE_INFINITY})}),S(I).forEach(function(j){var D=j.v===I?j.w:j.v,$=N(j);M[I][D]={distance:$,predecessor:I}})}),A.forEach(function(I){var j=M[I];A.forEach(function(D){var $=M[D];A.forEach(function(K){var ot=$[I],nt=j[K],_=$[K],et=ot.distance+nt.distance;et<_.distance&&(_.distance=et,_.predecessor=nt.predecessor)})})}),M}},12440:function(w,P,a){w.exports={components:a(2842),dijkstra:a(63763),dijkstraAll:a(84847),findCycles:a(9096),floydWarshall:a(38924),isAcyclic:a(62707),postorder:a(58828),preorder:a(92648),prim:a(80514),tarjan:a(5023),topsort:a(2166)}},62707:function(w,P,a){var l=a(2166);w.exports=x;function x(E){try{l(E)}catch(b){if(b instanceof l.CycleException)return!1;throw b}return!0}},58828:function(w,P,a){var l=a(53984);w.exports=x;function x(E,b){return l(E,b,"post")}},92648:function(w,P,a){var l=a(53984);w.exports=x;function x(E,b){return l(E,b,"pre")}},80514:function(w,P,a){var l=a(89126),x=a(30771),E=a(75639);w.exports=b;function b(v,N){var S=new x,M={},A=new E,I;function j($){var K=$.v===I?$.w:$.v,ot=A.priority(K);if(ot!==void 0){var nt=N($);nt<ot&&(M[K]=I,A.decrease(K,nt))}}if(v.nodeCount()===0)return S;l.each(v.nodes(),function($){A.add($,Number.POSITIVE_INFINITY),S.setNode($)}),A.decrease(v.nodes()[0],0);for(var D=!1;A.size()>0;){if(I=A.removeMin(),l.has(M,I))S.setEdge(I,M[I]);else{if(D)throw new Error("Input graph is not connected: "+v);D=!0}v.nodeEdges(I).forEach(j)}return S}},5023:function(w,P,a){var l=a(89126);w.exports=x;function x(E){var b=0,v=[],N={},S=[];function M(A){var I=N[A]={onStack:!0,lowlink:b,index:b++};if(v.push(A),E.successors(A).forEach(function($){l.has(N,$)?N[$].onStack&&(I.lowlink=Math.min(I.lowlink,N[$].index)):(M($),I.lowlink=Math.min(I.lowlink,N[$].lowlink))}),I.lowlink===I.index){var j=[],D;do D=v.pop(),N[D].onStack=!1,j.push(D);while(A!==D);S.push(j)}}return E.nodes().forEach(function(A){l.has(N,A)||M(A)}),S}},2166:function(w,P,a){var l=a(89126);w.exports=x,x.CycleException=E;function x(b){var v={},N={},S=[];function M(A){if(l.has(N,A))throw new E;l.has(v,A)||(N[A]=!0,v[A]=!0,l.each(b.predecessors(A),M),delete N[A],S.push(A))}if(l.each(b.sinks(),M),l.size(v)!==b.nodeCount())throw new E;return S}function E(){}E.prototype=new Error},75639:function(w,P,a){var l=a(89126);w.exports=x;function x(){this._arr=[],this._keyIndices={}}x.prototype.size=function(){return this._arr.length},x.prototype.keys=function(){return this._arr.map(function(E){return E.key})},x.prototype.has=function(E){return l.has(this._keyIndices,E)},x.prototype.priority=function(E){var b=this._keyIndices[E];if(b!==void 0)return this._arr[b].priority},x.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},x.prototype.add=function(E,b){var v=this._keyIndices;if(E=String(E),!l.has(v,E)){var N=this._arr,S=N.length;return v[E]=S,N.push({key:E,priority:b}),this._decrease(S),!0}return!1},x.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var E=this._arr.pop();return delete this._keyIndices[E.key],this._heapify(0),E.key},x.prototype.decrease=function(E,b){var v=this._keyIndices[E];if(b>this._arr[v].priority)throw new Error("New priority is greater than current priority. Key: "+E+" Old: "+this._arr[v].priority+" New: "+b);this._arr[v].priority=b,this._decrease(v)},x.prototype._heapify=function(E){var b=this._arr,v=2*E,N=v+1,S=E;v<b.length&&(S=b[v].priority<b[S].priority?v:S,N<b.length&&(S=b[N].priority<b[S].priority?N:S),S!==E&&(this._swap(E,S),this._heapify(S)))},x.prototype._decrease=function(E){for(var b=this._arr,v=b[E].priority,N;E!==0&&(N=E>>1,!(b[N].priority<v));)this._swap(E,N),E=N},x.prototype._swap=function(E,b){var v=this._arr,N=this._keyIndices,S=v[E],M=v[b];v[E]=M,v[b]=S,N[M.key]=E,N[S.key]=b}},30771:function(w,P,a){"use strict";var l=a(89126);w.exports=v;var x="\0",E="\0",b="";function v(j){this._isDirected=l.has(j,"directed")?j.directed:!0,this._isMultigraph=l.has(j,"multigraph")?j.multigraph:!1,this._isCompound=l.has(j,"compound")?j.compound:!1,this._label=void 0,this._defaultNodeLabelFn=l.constant(void 0),this._defaultEdgeLabelFn=l.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[E]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}v.prototype._nodeCount=0,v.prototype._edgeCount=0,v.prototype.isDirected=function(){return this._isDirected},v.prototype.isMultigraph=function(){return this._isMultigraph},v.prototype.isCompound=function(){return this._isCompound},v.prototype.setGraph=function(j){return this._label=j,this},v.prototype.graph=function(){return this._label},v.prototype.setDefaultNodeLabel=function(j){return l.isFunction(j)||(j=l.constant(j)),this._defaultNodeLabelFn=j,this},v.prototype.nodeCount=function(){return this._nodeCount},v.prototype.nodes=function(){return l.keys(this._nodes)},v.prototype.sources=function(){var j=this;return l.filter(this.nodes(),function(D){return l.isEmpty(j._in[D])})},v.prototype.sinks=function(){var j=this;return l.filter(this.nodes(),function(D){return l.isEmpty(j._out[D])})},v.prototype.setNodes=function(j,D){var $=arguments,K=this;return l.each(j,function(ot){$.length>1?K.setNode(ot,D):K.setNode(ot)}),this},v.prototype.setNode=function(j,D){return l.has(this._nodes,j)?(arguments.length>1&&(this._nodes[j]=D),this):(this._nodes[j]=arguments.length>1?D:this._defaultNodeLabelFn(j),this._isCompound&&(this._parent[j]=E,this._children[j]={},this._children[E][j]=!0),this._in[j]={},this._preds[j]={},this._out[j]={},this._sucs[j]={},++this._nodeCount,this)},v.prototype.node=function(j){return this._nodes[j]},v.prototype.hasNode=function(j){return l.has(this._nodes,j)},v.prototype.removeNode=function(j){var D=this;if(l.has(this._nodes,j)){var $=function(K){D.removeEdge(D._edgeObjs[K])};delete this._nodes[j],this._isCompound&&(this._removeFromParentsChildList(j),delete this._parent[j],l.each(this.children(j),function(K){D.setParent(K)}),delete this._children[j]),l.each(l.keys(this._in[j]),$),delete this._in[j],delete this._preds[j],l.each(l.keys(this._out[j]),$),delete this._out[j],delete this._sucs[j],--this._nodeCount}return this},v.prototype.setParent=function(j,D){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(l.isUndefined(D))D=E;else{D+="";for(var $=D;!l.isUndefined($);$=this.parent($))if($===j)throw new Error("Setting "+D+" as parent of "+j+" would create a cycle");this.setNode(D)}return this.setNode(j),this._removeFromParentsChildList(j),this._parent[j]=D,this._children[D][j]=!0,this},v.prototype._removeFromParentsChildList=function(j){delete this._children[this._parent[j]][j]},v.prototype.parent=function(j){if(this._isCompound){var D=this._parent[j];if(D!==E)return D}},v.prototype.children=function(j){if(l.isUndefined(j)&&(j=E),this._isCompound){var D=this._children[j];if(D)return l.keys(D)}else{if(j===E)return this.nodes();if(this.hasNode(j))return[]}},v.prototype.predecessors=function(j){var D=this._preds[j];if(D)return l.keys(D)},v.prototype.successors=function(j){var D=this._sucs[j];if(D)return l.keys(D)},v.prototype.neighbors=function(j){var D=this.predecessors(j);if(D)return l.union(D,this.successors(j))},v.prototype.isLeaf=function(j){var D;return this.isDirected()?D=this.successors(j):D=this.neighbors(j),D.length===0},v.prototype.filterNodes=function(j){var D=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});D.setGraph(this.graph());var $=this;l.each(this._nodes,function(nt,_){j(_)&&D.setNode(_,nt)}),l.each(this._edgeObjs,function(nt){D.hasNode(nt.v)&&D.hasNode(nt.w)&&D.setEdge(nt,$.edge(nt))});var K={};function ot(nt){var _=$.parent(nt);return _===void 0||D.hasNode(_)?(K[nt]=_,_):_ in K?K[_]:ot(_)}return this._isCompound&&l.each(D.nodes(),function(nt){D.setParent(nt,ot(nt))}),D},v.prototype.setDefaultEdgeLabel=function(j){return l.isFunction(j)||(j=l.constant(j)),this._defaultEdgeLabelFn=j,this},v.prototype.edgeCount=function(){return this._edgeCount},v.prototype.edges=function(){return l.values(this._edgeObjs)},v.prototype.setPath=function(j,D){var $=this,K=arguments;return l.reduce(j,function(ot,nt){return K.length>1?$.setEdge(ot,nt,D):$.setEdge(ot,nt),nt}),this},v.prototype.setEdge=function(){var j,D,$,K,ot=!1,nt=arguments[0];typeof nt=="object"&&nt!==null&&"v"in nt?(j=nt.v,D=nt.w,$=nt.name,arguments.length===2&&(K=arguments[1],ot=!0)):(j=nt,D=arguments[1],$=arguments[3],arguments.length>2&&(K=arguments[2],ot=!0)),j=""+j,D=""+D,l.isUndefined($)||($=""+$);var _=M(this._isDirected,j,D,$);if(l.has(this._edgeLabels,_))return ot&&(this._edgeLabels[_]=K),this;if(!l.isUndefined($)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(j),this.setNode(D),this._edgeLabels[_]=ot?K:this._defaultEdgeLabelFn(j,D,$);var et=A(this._isDirected,j,D,$);return j=et.v,D=et.w,Object.freeze(et),this._edgeObjs[_]=et,N(this._preds[D],j),N(this._sucs[j],D),this._in[D][_]=et,this._out[j][_]=et,this._edgeCount++,this},v.prototype.edge=function(j,D,$){var K=arguments.length===1?I(this._isDirected,arguments[0]):M(this._isDirected,j,D,$);return this._edgeLabels[K]},v.prototype.hasEdge=function(j,D,$){var K=arguments.length===1?I(this._isDirected,arguments[0]):M(this._isDirected,j,D,$);return l.has(this._edgeLabels,K)},v.prototype.removeEdge=function(j,D,$){var K=arguments.length===1?I(this._isDirected,arguments[0]):M(this._isDirected,j,D,$),ot=this._edgeObjs[K];return ot&&(j=ot.v,D=ot.w,delete this._edgeLabels[K],delete this._edgeObjs[K],S(this._preds[D],j),S(this._sucs[j],D),delete this._in[D][K],delete this._out[j][K],this._edgeCount--),this},v.prototype.inEdges=function(j,D){var $=this._in[j];if($){var K=l.values($);return D?l.filter(K,function(ot){return ot.v===D}):K}},v.prototype.outEdges=function(j,D){var $=this._out[j];if($){var K=l.values($);return D?l.filter(K,function(ot){return ot.w===D}):K}},v.prototype.nodeEdges=function(j,D){var $=this.inEdges(j,D);if($)return $.concat(this.outEdges(j,D))};function N(j,D){j[D]?j[D]++:j[D]=1}function S(j,D){--j[D]||delete j[D]}function M(j,D,$,K){var ot=""+D,nt=""+$;if(!j&&ot>nt){var _=ot;ot=nt,nt=_}return ot+b+nt+b+(l.isUndefined(K)?x:K)}function A(j,D,$,K){var ot=""+D,nt=""+$;if(!j&&ot>nt){var _=ot;ot=nt,nt=_}var et={v:ot,w:nt};return K&&(et.name=K),et}function I(j,D){return M(j,D.v,D.w,D.name)}},82354:function(w,P,a){w.exports={Graph:a(30771),version:a(49631)}},28974:function(w,P,a){var l=a(89126),x=a(30771);w.exports={write:E,read:N};function E(S){var M={options:{directed:S.isDirected(),multigraph:S.isMultigraph(),compound:S.isCompound()},nodes:b(S),edges:v(S)};return l.isUndefined(S.graph())||(M.value=l.clone(S.graph())),M}function b(S){return l.map(S.nodes(),function(M){var A=S.node(M),I=S.parent(M),j={v:M};return l.isUndefined(A)||(j.value=A),l.isUndefined(I)||(j.parent=I),j})}function v(S){return l.map(S.edges(),function(M){var A=S.edge(M),I={v:M.v,w:M.w};return l.isUndefined(M.name)||(I.name=M.name),l.isUndefined(A)||(I.value=A),I})}function N(S){var M=new x(S.options).setGraph(S.value);return l.each(S.nodes,function(A){M.setNode(A.v,A.value),A.parent&&M.setParent(A.v,A.parent)}),l.each(S.edges,function(A){M.setEdge({v:A.v,w:A.w,name:A.name},A.value)}),M}},89126:function(w,P,a){var l;try{l={clone:a(66678),constant:a(75703),each:a(85768),filter:a(63105),has:a(18721),isArray:a(1469),isEmpty:a(58367),isFunction:a(23560),isUndefined:a(52353),keys:a(3674),map:a(35161),reduce:a(54061),size:a(84238),transform:a(68718),union:a(93386),values:a(52628)}}catch(x){}l||(l=window._),w.exports=l},49631:function(w){w.exports="2.1.8"},44091:function(w,P,a){"use strict";a.r(P),a.d(P,{isAnyArray:function(){return x}});const l=Object.prototype.toString;function x(E){const b=l.call(E);return b.endsWith("Array]")&&!b.includes("Big")}},18552:function(w,P,a){var l=a(10852),x=a(55639),E=l(x,"DataView");w.exports=E},1989:function(w,P,a){var l=a(51789),x=a(80401),E=a(57667),b=a(21327),v=a(81866);function N(S){var M=-1,A=S==null?0:S.length;for(this.clear();++M<A;){var I=S[M];this.set(I[0],I[1])}}N.prototype.clear=l,N.prototype.delete=x,N.prototype.get=E,N.prototype.has=b,N.prototype.set=v,w.exports=N},38407:function(w,P,a){var l=a(27040),x=a(14125),E=a(82117),b=a(87529),v=a(54705);function N(S){var M=-1,A=S==null?0:S.length;for(this.clear();++M<A;){var I=S[M];this.set(I[0],I[1])}}N.prototype.clear=l,N.prototype.delete=x,N.prototype.get=E,N.prototype.has=b,N.prototype.set=v,w.exports=N},57071:function(w,P,a){var l=a(10852),x=a(55639),E=l(x,"Map");w.exports=E},83369:function(w,P,a){var l=a(24785),x=a(11285),E=a(96e3),b=a(49916),v=a(95265);function N(S){var M=-1,A=S==null?0:S.length;for(this.clear();++M<A;){var I=S[M];this.set(I[0],I[1])}}N.prototype.clear=l,N.prototype.delete=x,N.prototype.get=E,N.prototype.has=b,N.prototype.set=v,w.exports=N},53818:function(w,P,a){var l=a(10852),x=a(55639),E=l(x,"Promise");w.exports=E},58525:function(w,P,a){var l=a(10852),x=a(55639),E=l(x,"Set");w.exports=E},88668:function(w,P,a){var l=a(83369),x=a(90619),E=a(72385);function b(v){var N=-1,S=v==null?0:v.length;for(this.__data__=new l;++N<S;)this.add(v[N])}b.prototype.add=b.prototype.push=x,b.prototype.has=E,w.exports=b},46384:function(w,P,a){var l=a(38407),x=a(37465),E=a(63779),b=a(67599),v=a(44758),N=a(34309);function S(M){var A=this.__data__=new l(M);this.size=A.size}S.prototype.clear=x,S.prototype.delete=E,S.prototype.get=b,S.prototype.has=v,S.prototype.set=N,w.exports=S},62705:function(w,P,a){var l=a(55639),x=l.Symbol;w.exports=x},11149:function(w,P,a){var l=a(55639),x=l.Uint8Array;w.exports=x},70577:function(w,P,a){var l=a(10852),x=a(55639),E=l(x,"WeakMap");w.exports=E},96874:function(w){function P(a,l,x){switch(x.length){case 0:return a.call(l);case 1:return a.call(l,x[0]);case 2:return a.call(l,x[0],x[1]);case 3:return a.call(l,x[0],x[1],x[2])}return a.apply(l,x)}w.exports=P},77412:function(w){function P(a,l){for(var x=-1,E=a==null?0:a.length;++x<E&&l(a[x],x,a)!==!1;);return a}w.exports=P},34963:function(w){function P(a,l){for(var x=-1,E=a==null?0:a.length,b=0,v=[];++x<E;){var N=a[x];l(N,x,a)&&(v[b++]=N)}return v}w.exports=P},47443:function(w,P,a){var l=a(42118);function x(E,b){var v=E==null?0:E.length;return!!v&&l(E,b,0)>-1}w.exports=x},1196:function(w){function P(a,l,x){for(var E=-1,b=a==null?0:a.length;++E<b;)if(x(l,a[E]))return!0;return!1}w.exports=P},14636:function(w,P,a){var l=a(22545),x=a(35694),E=a(1469),b=a(44144),v=a(65776),N=a(36719),S=Object.prototype,M=S.hasOwnProperty;function A(I,j){var D=E(I),$=!D&&x(I),K=!D&&!$&&b(I),ot=!D&&!$&&!K&&N(I),nt=D||$||K||ot,_=nt?l(I.length,String):[],et=_.length;for(var tt in I)(j||M.call(I,tt))&&!(nt&&(tt=="length"||K&&(tt=="offset"||tt=="parent")||ot&&(tt=="buffer"||tt=="byteLength"||tt=="byteOffset")||v(tt,et)))&&_.push(tt);return _}w.exports=A},29932:function(w){function P(a,l){for(var x=-1,E=a==null?0:a.length,b=Array(E);++x<E;)b[x]=l(a[x],x,a);return b}w.exports=P},62488:function(w){function P(a,l){for(var x=-1,E=l.length,b=a.length;++x<E;)a[b+x]=l[x];return a}w.exports=P},62663:function(w){function P(a,l,x,E){var b=-1,v=a==null?0:a.length;for(E&&v&&(x=a[++b]);++b<v;)x=l(x,a[b],b,a);return x}w.exports=P},82908:function(w){function P(a,l){for(var x=-1,E=a==null?0:a.length;++x<E;)if(l(a[x],x,a))return!0;return!1}w.exports=P},48983:function(w,P,a){var l=a(40371),x=l("length");w.exports=x},86556:function(w,P,a){var l=a(89465),x=a(77813);function E(b,v,N){(N!==void 0&&!x(b[v],N)||N===void 0&&!(v in b))&&l(b,v,N)}w.exports=E},34865:function(w,P,a){var l=a(89465),x=a(77813),E=Object.prototype,b=E.hasOwnProperty;function v(N,S,M){var A=N[S];(!(b.call(N,S)&&x(A,M))||M===void 0&&!(S in N))&&l(N,S,M)}w.exports=v},18470:function(w,P,a){var l=a(77813);function x(E,b){for(var v=E.length;v--;)if(l(E[v][0],b))return v;return-1}w.exports=x},44037:function(w,P,a){var l=a(98363),x=a(3674);function E(b,v){return b&&l(v,x(v),b)}w.exports=E},63886:function(w,P,a){var l=a(98363),x=a(81704);function E(b,v){return b&&l(v,x(v),b)}w.exports=E},89465:function(w,P,a){var l=a(38777);function x(E,b,v){b=="__proto__"&&l?l(E,b,{configurable:!0,enumerable:!0,value:v,writable:!0}):E[b]=v}w.exports=x},85990:function(w,P,a){var l=a(46384),x=a(77412),E=a(34865),b=a(44037),v=a(63886),N=a(64626),S=a(278),M=a(18805),A=a(1911),I=a(58234),j=a(46904),D=a(64160),$=a(43824),K=a(29148),ot=a(38517),nt=a(1469),_=a(44144),et=a(56688),tt=a(13218),it=a(72928),at=a(3674),ft=a(81704),ht=1,dt=2,xt=4,yt="[object Arguments]",Mt="[object Array]",St="[object Boolean]",kt="[object Date]",Vt="[object Error]",qt="[object Function]",te="[object GeneratorFunction]",ce="[object Map]",ze="[object Number]",tn="[object Object]",xe="[object RegExp]",mn="[object Set]",Mn="[object String]",cn="[object Symbol]",en="[object WeakMap]",gt="[object ArrayBuffer]",wt="[object DataView]",jt="[object Float32Array]",Ft="[object Float64Array]",Ht="[object Int8Array]",de="[object Int16Array]",ge="[object Int32Array]",Re="[object Uint8Array]",fn="[object Uint8ClampedArray]",Ce="[object Uint16Array]",Ne="[object Uint32Array]",se={};se[yt]=se[Mt]=se[gt]=se[wt]=se[St]=se[kt]=se[jt]=se[Ft]=se[Ht]=se[de]=se[ge]=se[ce]=se[ze]=se[tn]=se[xe]=se[mn]=se[Mn]=se[cn]=se[Re]=se[fn]=se[Ce]=se[Ne]=!0,se[Vt]=se[qt]=se[en]=!1;function Wt(ee,on,an,It,yn,De){var Se,Fe=on&ht,wn=on&dt,rr=on&xt;if(an&&(Se=yn?an(ee,It,yn,De):an(ee)),Se!==void 0)return Se;if(!tt(ee))return ee;var ln=nt(ee);if(ln){if(Se=$(ee),!Fe)return S(ee,Se)}else{var ke=D(ee),nn=ke==qt||ke==te;if(_(ee))return N(ee,Fe);if(ke==tn||ke==yt||nn&&!yn){if(Se=wn||nn?{}:ot(ee),!Fe)return wn?A(ee,v(Se,ee)):M(ee,b(Se,ee))}else{if(!se[ke])return yn?ee:{};Se=K(ee,ke,Fe)}}De||(De=new l);var In=De.get(ee);if(In)return In;De.set(ee,Se),it(ee)?ee.forEach(function(Qe){Se.add(Wt(Qe,on,an,Qe,ee,De))}):et(ee)&&ee.forEach(function(Qe,Ke){Se.set(Ke,Wt(Qe,on,an,Ke,ee,De))});var $t=rr?wn?j:I:wn?ft:at,Pn=ln?void 0:$t(ee);return x(Pn||ee,function(Qe,Ke){Pn&&(Ke=Qe,Qe=ee[Ke]),E(Se,Ke,Wt(Qe,on,an,Ke,ee,De))}),Se}w.exports=Wt},3118:function(w,P,a){var l=a(13218),x=Object.create,E=function(){function b(){}return function(v){if(!l(v))return{};if(x)return x(v);b.prototype=v;var N=new b;return b.prototype=void 0,N}}();w.exports=E},89881:function(w,P,a){var l=a(47816),x=a(99291),E=x(l);w.exports=E},56029:function(w,P,a){var l=a(33448);function x(E,b,v){for(var N=-1,S=E.length;++N<S;){var M=E[N],A=b(M);if(A!=null&&(I===void 0?A===A&&!l(A):v(A,I)))var I=A,j=M}return j}w.exports=x},80760:function(w,P,a){var l=a(89881);function x(E,b){var v=[];return l(E,function(N,S,M){b(N,S,M)&&v.push(N)}),v}w.exports=x},41848:function(w){function P(a,l,x,E){for(var b=a.length,v=x+(E?1:-1);E?v--:++v<b;)if(l(a[v],v,a))return v;return-1}w.exports=P},21078:function(w,P,a){var l=a(62488),x=a(37285);function E(b,v,N,S,M){var A=-1,I=b.length;for(N||(N=x),M||(M=[]);++A<I;){var j=b[A];v>0&&N(j)?v>1?E(j,v-1,N,S,M):l(M,j):S||(M[M.length]=j)}return M}w.exports=E},28483:function(w,P,a){var l=a(25063),x=l();w.exports=x},47816:function(w,P,a){var l=a(28483),x=a(3674);function E(b,v){return b&&l(b,v,x)}w.exports=E},97786:function(w,P,a){var l=a(71811),x=a(40327);function E(b,v){v=l(v,b);for(var N=0,S=v.length;b!=null&&N<S;)b=b[x(v[N++])];return N&&N==S?b:void 0}w.exports=E},64055:function(w,P,a){var l=a(62488),x=a(1469);function E(b,v,N){var S=v(b);return x(b)?S:l(S,N(b))}w.exports=E},44239:function(w,P,a){var l=a(62705),x=a(89607),E=a(2333),b="[object Null]",v="[object Undefined]",N=l?l.toStringTag:void 0;function S(M){return M==null?M===void 0?v:b:N&&N in Object(M)?x(M):E(M)}w.exports=S},53325:function(w){function P(a,l){return a>l}w.exports=P},78565:function(w){var P=Object.prototype,a=P.hasOwnProperty;function l(x,E){return x!=null&&a.call(x,E)}w.exports=l},13:function(w){function P(a,l){return a!=null&&l in Object(a)}w.exports=P},42118:function(w,P,a){var l=a(41848),x=a(62722),E=a(42351);function b(v,N,S){return N===N?E(v,N,S):l(v,x,S)}w.exports=b},9454:function(w,P,a){var l=a(44239),x=a(37005),E="[object Arguments]";function b(v){return x(v)&&l(v)==E}w.exports=b},90939:function(w,P,a){var l=a(2492),x=a(37005);function E(b,v,N,S,M){return b===v?!0:b==null||v==null||!x(b)&&!x(v)?b!==b&&v!==v:l(b,v,N,S,E,M)}w.exports=E},2492:function(w,P,a){var l=a(46384),x=a(67114),E=a(18351),b=a(16096),v=a(64160),N=a(1469),S=a(44144),M=a(36719),A=1,I="[object Arguments]",j="[object Array]",D="[object Object]",$=Object.prototype,K=$.hasOwnProperty;function ot(nt,_,et,tt,it,at){var ft=N(nt),ht=N(_),dt=ft?j:v(nt),xt=ht?j:v(_);dt=dt==I?D:dt,xt=xt==I?D:xt;var yt=dt==D,Mt=xt==D,St=dt==xt;if(St&&S(nt)){if(!S(_))return!1;ft=!0,yt=!1}if(St&&!yt)return at||(at=new l),ft||M(nt)?x(nt,_,et,tt,it,at):E(nt,_,dt,et,tt,it,at);if(!(et&A)){var kt=yt&&K.call(nt,"__wrapped__"),Vt=Mt&&K.call(_,"__wrapped__");if(kt||Vt){var qt=kt?nt.value():nt,te=Vt?_.value():_;return at||(at=new l),it(qt,te,et,tt,at)}}return St?(at||(at=new l),b(nt,_,et,tt,it,at)):!1}w.exports=ot},25588:function(w,P,a){var l=a(64160),x=a(37005),E="[object Map]";function b(v){return x(v)&&l(v)==E}w.exports=b},2958:function(w,P,a){var l=a(46384),x=a(90939),E=1,b=2;function v(N,S,M,A){var I=M.length,j=I,D=!A;if(N==null)return!j;for(N=Object(N);I--;){var $=M[I];if(D&&$[2]?$[1]!==N[$[0]]:!($[0]in N))return!1}for(;++I<j;){$=M[I];var K=$[0],ot=N[K],nt=$[1];if(D&&$[2]){if(ot===void 0&&!(K in N))return!1}else{var _=new l;if(A)var et=A(ot,nt,K,N,S,_);if(!(et===void 0?x(nt,ot,E|b,A,_):et))return!1}}return!0}w.exports=v},62722:function(w){function P(a){return a!==a}w.exports=P},28458:function(w,P,a){var l=a(23560),x=a(15346),E=a(13218),b=a(80346),v=/[\\^$.*+?()[\]{}|]/g,N=/^\[object .+?Constructor\]$/,S=Function.prototype,M=Object.prototype,A=S.toString,I=M.hasOwnProperty,j=RegExp("^"+A.call(I).replace(v,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function D($){if(!E($)||x($))return!1;var K=l($)?j:N;return K.test(b($))}w.exports=D},29221:function(w,P,a){var l=a(64160),x=a(37005),E="[object Set]";function b(v){return x(v)&&l(v)==E}w.exports=b},38749:function(w,P,a){var l=a(44239),x=a(41780),E=a(37005),b="[object Arguments]",v="[object Array]",N="[object Boolean]",S="[object Date]",M="[object Error]",A="[object Function]",I="[object Map]",j="[object Number]",D="[object Object]",$="[object RegExp]",K="[object Set]",ot="[object String]",nt="[object WeakMap]",_="[object ArrayBuffer]",et="[object DataView]",tt="[object Float32Array]",it="[object Float64Array]",at="[object Int8Array]",ft="[object Int16Array]",ht="[object Int32Array]",dt="[object Uint8Array]",xt="[object Uint8ClampedArray]",yt="[object Uint16Array]",Mt="[object Uint32Array]",St={};St[tt]=St[it]=St[at]=St[ft]=St[ht]=St[dt]=St[xt]=St[yt]=St[Mt]=!0,St[b]=St[v]=St[_]=St[N]=St[et]=St[S]=St[M]=St[A]=St[I]=St[j]=St[D]=St[$]=St[K]=St[ot]=St[nt]=!1;function kt(Vt){return E(Vt)&&x(Vt.length)&&!!St[l(Vt)]}w.exports=kt},67206:function(w,P,a){var l=a(91573),x=a(16432),E=a(6557),b=a(1469),v=a(39601);function N(S){return typeof S=="function"?S:S==null?E:typeof S=="object"?b(S)?x(S[0],S[1]):l(S):v(S)}w.exports=N},280:function(w,P,a){var l=a(25726),x=a(86916),E=Object.prototype,b=E.hasOwnProperty;function v(N){if(!l(N))return x(N);var S=[];for(var M in Object(N))b.call(N,M)&&M!="constructor"&&S.push(M);return S}w.exports=v},10313:function(w,P,a){var l=a(13218),x=a(25726),E=a(33498),b=Object.prototype,v=b.hasOwnProperty;function N(S){if(!l(S))return E(S);var M=x(S),A=[];for(var I in S)I=="constructor"&&(M||!v.call(S,I))||A.push(I);return A}w.exports=N},70433:function(w){function P(a,l){return a<l}w.exports=P},69199:function(w,P,a){var l=a(89881),x=a(98612);function E(b,v){var N=-1,S=x(b)?Array(b.length):[];return l(b,function(M,A,I){S[++N]=v(M,A,I)}),S}w.exports=E},91573:function(w,P,a){var l=a(2958),x=a(1499),E=a(42634);function b(v){var N=x(v);return N.length==1&&N[0][2]?E(N[0][0],N[0][1]):function(S){return S===v||l(S,v,N)}}w.exports=b},16432:function(w,P,a){var l=a(90939),x=a(27361),E=a(79095),b=a(15403),v=a(89162),N=a(42634),S=a(40327),M=1,A=2;function I(j,D){return b(j)&&v(D)?N(S(j),D):function($){var K=x($,j);return K===void 0&&K===D?E($,j):l(D,K,M|A)}}w.exports=I},42980:function(w,P,a){var l=a(46384),x=a(86556),E=a(28483),b=a(59783),v=a(13218),N=a(81704),S=a(36390);function M(A,I,j,D,$){A!==I&&E(I,function(K,ot){if($||($=new l),v(K))b(A,I,ot,j,M,D,$);else{var nt=D?D(S(A,ot),K,ot+"",A,I,$):void 0;nt===void 0&&(nt=K),x(A,ot,nt)}},N)}w.exports=M},59783:function(w,P,a){var l=a(86556),x=a(64626),E=a(77133),b=a(278),v=a(38517),N=a(35694),S=a(1469),M=a(29246),A=a(44144),I=a(23560),j=a(13218),D=a(68630),$=a(36719),K=a(36390),ot=a(59881);function nt(_,et,tt,it,at,ft,ht){var dt=K(_,tt),xt=K(et,tt),yt=ht.get(xt);if(yt){l(_,tt,yt);return}var Mt=ft?ft(dt,xt,tt+"",_,et,ht):void 0,St=Mt===void 0;if(St){var kt=S(xt),Vt=!kt&&A(xt),qt=!kt&&!Vt&&$(xt);Mt=xt,kt||Vt||qt?S(dt)?Mt=dt:M(dt)?Mt=b(dt):Vt?(St=!1,Mt=x(xt,!0)):qt?(St=!1,Mt=E(xt,!0)):Mt=[]:D(xt)||N(xt)?(Mt=dt,N(dt)?Mt=ot(dt):(!j(dt)||I(dt))&&(Mt=v(xt))):St=!1}St&&(ht.set(xt,Mt),at(Mt,xt,it,ft,ht),ht.delete(xt)),l(_,tt,Mt)}w.exports=nt},82689:function(w,P,a){var l=a(29932),x=a(97786),E=a(67206),b=a(69199),v=a(63922),N=a(7518),S=a(85022),M=a(6557),A=a(1469);function I(j,D,$){D.length?D=l(D,function(nt){return A(nt)?function(_){return x(_,nt.length===1?nt[0]:nt)}:nt}):D=[M];var K=-1;D=l(D,N(E));var ot=b(j,function(nt,_,et){var tt=l(D,function(it){return it(nt)});return{criteria:tt,index:++K,value:nt}});return v(ot,function(nt,_){return S(nt,_,$)})}w.exports=I},25970:function(w,P,a){var l=a(63012),x=a(79095);function E(b,v){return l(b,v,function(N,S){return x(b,S)})}w.exports=E},63012:function(w,P,a){var l=a(97786),x=a(10611),E=a(71811);function b(v,N,S){for(var M=-1,A=N.length,I={};++M<A;){var j=N[M],D=l(v,j);S(D,j)&&x(I,E(j,v),D)}return I}w.exports=b},40371:function(w){function P(a){return function(l){return l==null?void 0:l[a]}}w.exports=P},79152:function(w,P,a){var l=a(97786);function x(E){return function(b){return l(b,E)}}w.exports=x},40098:function(w){var P=Math.ceil,a=Math.max;function l(x,E,b,v){for(var N=-1,S=a(P((E-x)/(b||1)),0),M=Array(S);S--;)M[v?S:++N]=x,x+=b;return M}w.exports=l},10107:function(w){function P(a,l,x,E,b){return b(a,function(v,N,S){x=E?(E=!1,v):l(x,v,N,S)}),x}w.exports=P},18460:function(w,P,a){var l=a(6557),x=a(45357),E=a(30061);function b(v,N){return E(x(v,N,l),v+"")}w.exports=b},10611:function(w,P,a){var l=a(34865),x=a(71811),E=a(65776),b=a(13218),v=a(40327);function N(S,M,A,I){if(!b(S))return S;M=x(M,S);for(var j=-1,D=M.length,$=D-1,K=S;K!=null&&++j<D;){var ot=v(M[j]),nt=A;if(ot==="__proto__"||ot==="constructor"||ot==="prototype")return S;if(j!=$){var _=K[ot];nt=I?I(_,ot,K):void 0,nt===void 0&&(nt=b(_)?_:E(M[j+1])?[]:{})}l(K,ot,nt),K=K[ot]}return S}w.exports=N},56560:function(w,P,a){var l=a(75703),x=a(38777),E=a(6557),b=x?function(v,N){return x(v,"toString",{configurable:!0,enumerable:!1,value:l(N),writable:!0})}:E;w.exports=b},63922:function(w){function P(a,l){var x=a.length;for(a.sort(l);x--;)a[x]=a[x].value;return a}w.exports=P},22545:function(w){function P(a,l){for(var x=-1,E=Array(a);++x<a;)E[x]=l(x);return E}w.exports=P},80531:function(w,P,a){var l=a(62705),x=a(29932),E=a(1469),b=a(33448),v=1/0,N=l?l.prototype:void 0,S=N?N.toString:void 0;function M(A){if(typeof A=="string")return A;if(E(A))return x(A,M)+"";if(b(A))return S?S.call(A):"";var I=A+"";return I=="0"&&1/A==-v?"-0":I}w.exports=M},27561:function(w,P,a){var l=a(67990),x=/^\s+/;function E(b){return b&&b.slice(0,l(b)+1).replace(x,"")}w.exports=E},7518:function(w){function P(a){return function(l){return a(l)}}w.exports=P},45652:function(w,P,a){var l=a(88668),x=a(47443),E=a(1196),b=a(74757),v=a(23593),N=a(21814),S=200;function M(A,I,j){var D=-1,$=x,K=A.length,ot=!0,nt=[],_=nt;if(j)ot=!1,$=E;else if(K>=S){var et=I?null:v(A);if(et)return N(et);ot=!1,$=b,_=new l}else _=I?[]:nt;t:for(;++D<K;){var tt=A[D],it=I?I(tt):tt;if(tt=j||tt!==0?tt:0,ot&&it===it){for(var at=_.length;at--;)if(_[at]===it)continue t;I&&_.push(it),nt.push(tt)}else $(_,it,j)||(_!==nt&&_.push(it),nt.push(tt))}return nt}w.exports=M},47415:function(w,P,a){var l=a(29932);function x(E,b){return l(b,function(v){return E[v]})}w.exports=x},1757:function(w){function P(a,l,x){for(var E=-1,b=a.length,v=l.length,N={};++E<b;){var S=E<v?l[E]:void 0;x(N,a[E],S)}return N}w.exports=P},74757:function(w){function P(a,l){return a.has(l)}w.exports=P},54290:function(w,P,a){var l=a(6557);function x(E){return typeof E=="function"?E:l}w.exports=x},71811:function(w,P,a){var l=a(1469),x=a(15403),E=a(55514),b=a(79833);function v(N,S){return l(N)?N:x(N,S)?[N]:E(b(N))}w.exports=v},74318:function(w,P,a){var l=a(11149);function x(E){var b=new E.constructor(E.byteLength);return new l(b).set(new l(E)),b}w.exports=x},64626:function(w,P,a){w=a.nmd(w);var l=a(55639),x=P&&!P.nodeType&&P,E=x&&!0&&w&&!w.nodeType&&w,b=E&&E.exports===x,v=b?l.Buffer:void 0,N=v?v.allocUnsafe:void 0;function S(M,A){if(A)return M.slice();var I=M.length,j=N?N(I):new M.constructor(I);return M.copy(j),j}w.exports=S},57157:function(w,P,a){var l=a(74318);function x(E,b){var v=b?l(E.buffer):E.buffer;return new E.constructor(v,E.byteOffset,E.byteLength)}w.exports=x},93147:function(w){var P=/\w*$/;function a(l){var x=new l.constructor(l.source,P.exec(l));return x.lastIndex=l.lastIndex,x}w.exports=a},40419:function(w,P,a){var l=a(62705),x=l?l.prototype:void 0,E=x?x.valueOf:void 0;function b(v){return E?Object(E.call(v)):{}}w.exports=b},77133:function(w,P,a){var l=a(74318);function x(E,b){var v=b?l(E.buffer):E.buffer;return new E.constructor(v,E.byteOffset,E.length)}w.exports=x},26393:function(w,P,a){var l=a(33448);function x(E,b){if(E!==b){var v=E!==void 0,N=E===null,S=E===E,M=l(E),A=b!==void 0,I=b===null,j=b===b,D=l(b);if(!I&&!D&&!M&&E>b||M&&A&&j&&!I&&!D||N&&A&&j||!v&&j||!S)return 1;if(!N&&!M&&!D&&E<b||D&&v&&S&&!N&&!M||I&&v&&S||!A&&S||!j)return-1}return 0}w.exports=x},85022:function(w,P,a){var l=a(26393);function x(E,b,v){for(var N=-1,S=E.criteria,M=b.criteria,A=S.length,I=v.length;++N<A;){var j=l(S[N],M[N]);if(j){if(N>=I)return j;var D=v[N];return j*(D=="desc"?-1:1)}}return E.index-b.index}w.exports=x},278:function(w){function P(a,l){var x=-1,E=a.length;for(l||(l=Array(E));++x<E;)l[x]=a[x];return l}w.exports=P},98363:function(w,P,a){var l=a(34865),x=a(89465);function E(b,v,N,S){var M=!N;N||(N={});for(var A=-1,I=v.length;++A<I;){var j=v[A],D=S?S(N[j],b[j],j,N,b):void 0;D===void 0&&(D=b[j]),M?x(N,j,D):l(N,j,D)}return N}w.exports=E},18805:function(w,P,a){var l=a(98363),x=a(99551);function E(b,v){return l(b,x(b),v)}w.exports=E},1911:function(w,P,a){var l=a(98363),x=a(51442);function E(b,v){return l(b,x(b),v)}w.exports=E},14429:function(w,P,a){var l=a(55639),x=l["__core-js_shared__"];w.exports=x},21463:function(w,P,a){var l=a(18460),x=a(16612);function E(b){return l(function(v,N){var S=-1,M=N.length,A=M>1?N[M-1]:void 0,I=M>2?N[2]:void 0;for(A=b.length>3&&typeof A=="function"?(M--,A):void 0,I&&x(N[0],N[1],I)&&(A=M<3?void 0:A,M=1),v=Object(v);++S<M;){var j=N[S];j&&b(v,j,S,A)}return v})}w.exports=E},99291:function(w,P,a){var l=a(98612);function x(E,b){return function(v,N){if(v==null)return v;if(!l(v))return E(v,N);for(var S=v.length,M=b?S:-1,A=Object(v);(b?M--:++M<S)&&N(A[M],M,A)!==!1;);return v}}w.exports=x},25063:function(w){function P(a){return function(l,x,E){for(var b=-1,v=Object(l),N=E(l),S=N.length;S--;){var M=N[a?S:++b];if(x(v[M],M,v)===!1)break}return l}}w.exports=P},67740:function(w,P,a){var l=a(67206),x=a(98612),E=a(3674);function b(v){return function(N,S,M){var A=Object(N);if(!x(N)){var I=l(S,3);N=E(N),S=function(D){return I(A[D],D,A)}}var j=v(N,S,M);return j>-1?A[I?N[j]:j]:void 0}}w.exports=b},47445:function(w,P,a){var l=a(40098),x=a(16612),E=a(18601);function b(v){return function(N,S,M){return M&&typeof M!="number"&&x(N,S,M)&&(S=M=void 0),N=E(N),S===void 0?(S=N,N=0):S=E(S),M=M===void 0?N<S?1:-1:E(M),l(N,S,M,v)}}w.exports=b},23593:function(w,P,a){var l=a(58525),x=a(50308),E=a(21814),b=1/0,v=l&&1/E(new l([,-0]))[1]==b?function(N){return new l(N)}:x;w.exports=v},38777:function(w,P,a){var l=a(10852),x=function(){try{var E=l(Object,"defineProperty");return E({},"",{}),E}catch(b){}}();w.exports=x},67114:function(w,P,a){var l=a(88668),x=a(82908),E=a(74757),b=1,v=2;function N(S,M,A,I,j,D){var $=A&b,K=S.length,ot=M.length;if(K!=ot&&!($&&ot>K))return!1;var nt=D.get(S),_=D.get(M);if(nt&&_)return nt==M&&_==S;var et=-1,tt=!0,it=A&v?new l:void 0;for(D.set(S,M),D.set(M,S);++et<K;){var at=S[et],ft=M[et];if(I)var ht=$?I(ft,at,et,M,S,D):I(at,ft,et,S,M,D);if(ht!==void 0){if(ht)continue;tt=!1;break}if(it){if(!x(M,function(dt,xt){if(!E(it,xt)&&(at===dt||j(at,dt,A,I,D)))return it.push(xt)})){tt=!1;break}}else if(!(at===ft||j(at,ft,A,I,D))){tt=!1;break}}return D.delete(S),D.delete(M),tt}w.exports=N},18351:function(w,P,a){var l=a(62705),x=a(11149),E=a(77813),b=a(67114),v=a(68776),N=a(21814),S=1,M=2,A="[object Boolean]",I="[object Date]",j="[object Error]",D="[object Map]",$="[object Number]",K="[object RegExp]",ot="[object Set]",nt="[object String]",_="[object Symbol]",et="[object ArrayBuffer]",tt="[object DataView]",it=l?l.prototype:void 0,at=it?it.valueOf:void 0;function ft(ht,dt,xt,yt,Mt,St,kt){switch(xt){case tt:if(ht.byteLength!=dt.byteLength||ht.byteOffset!=dt.byteOffset)return!1;ht=ht.buffer,dt=dt.buffer;case et:return!(ht.byteLength!=dt.byteLength||!St(new x(ht),new x(dt)));case A:case I:case $:return E(+ht,+dt);case j:return ht.name==dt.name&&ht.message==dt.message;case K:case nt:return ht==dt+"";case D:var Vt=v;case ot:var qt=yt&S;if(Vt||(Vt=N),ht.size!=dt.size&&!qt)return!1;var te=kt.get(ht);if(te)return te==dt;yt|=M,kt.set(ht,dt);var ce=b(Vt(ht),Vt(dt),yt,Mt,St,kt);return kt.delete(ht),ce;case _:if(at)return at.call(ht)==at.call(dt)}return!1}w.exports=ft},16096:function(w,P,a){var l=a(58234),x=1,E=Object.prototype,b=E.hasOwnProperty;function v(N,S,M,A,I,j){var D=M&x,$=l(N),K=$.length,ot=l(S),nt=ot.length;if(K!=nt&&!D)return!1;for(var _=K;_--;){var et=$[_];if(!(D?et in S:b.call(S,et)))return!1}var tt=j.get(N),it=j.get(S);if(tt&&it)return tt==S&&it==N;var at=!0;j.set(N,S),j.set(S,N);for(var ft=D;++_<K;){et=$[_];var ht=N[et],dt=S[et];if(A)var xt=D?A(dt,ht,et,S,N,j):A(ht,dt,et,N,S,j);if(!(xt===void 0?ht===dt||I(ht,dt,M,A,j):xt)){at=!1;break}ft||(ft=et=="constructor")}if(at&&!ft){var yt=N.constructor,Mt=S.constructor;yt!=Mt&&"constructor"in N&&"constructor"in S&&!(typeof yt=="function"&&yt instanceof yt&&typeof Mt=="function"&&Mt instanceof Mt)&&(at=!1)}return j.delete(N),j.delete(S),at}w.exports=v},99021:function(w,P,a){var l=a(85564),x=a(45357),E=a(30061);function b(v){return E(x(v,void 0,l),v+"")}w.exports=b},31957:function(w,P,a){var l=typeof a.g=="object"&&a.g&&a.g.Object===Object&&a.g;w.exports=l},58234:function(w,P,a){var l=a(64055),x=a(99551),E=a(3674);function b(v){return l(v,E,x)}w.exports=b},46904:function(w,P,a){var l=a(64055),x=a(51442),E=a(81704);function b(v){return l(v,E,x)}w.exports=b},45050:function(w,P,a){var l=a(37019);function x(E,b){var v=E.__data__;return l(b)?v[typeof b=="string"?"string":"hash"]:v.map}w.exports=x},1499:function(w,P,a){var l=a(89162),x=a(3674);function E(b){for(var v=x(b),N=v.length;N--;){var S=v[N],M=b[S];v[N]=[S,M,l(M)]}return v}w.exports=E},10852:function(w,P,a){var l=a(28458),x=a(47801);function E(b,v){var N=x(b,v);return l(N)?N:void 0}w.exports=E},85924:function(w,P,a){var l=a(5569),x=l(Object.getPrototypeOf,Object);w.exports=x},89607:function(w,P,a){var l=a(62705),x=Object.prototype,E=x.hasOwnProperty,b=x.toString,v=l?l.toStringTag:void 0;function N(S){var M=E.call(S,v),A=S[v];try{S[v]=void 0;var I=!0}catch(D){}var j=b.call(S);return I&&(M?S[v]=A:delete S[v]),j}w.exports=N},99551:function(w,P,a){var l=a(34963),x=a(70479),E=Object.prototype,b=E.propertyIsEnumerable,v=Object.getOwnPropertySymbols,N=v?function(S){return S==null?[]:(S=Object(S),l(v(S),function(M){return b.call(S,M)}))}:x;w.exports=N},51442:function(w,P,a){var l=a(62488),x=a(85924),E=a(99551),b=a(70479),v=Object.getOwnPropertySymbols,N=v?function(S){for(var M=[];S;)l(M,E(S)),S=x(S);return M}:b;w.exports=N},64160:function(w,P,a){var l=a(18552),x=a(57071),E=a(53818),b=a(58525),v=a(70577),N=a(44239),S=a(80346),M="[object Map]",A="[object Object]",I="[object Promise]",j="[object Set]",D="[object WeakMap]",$="[object DataView]",K=S(l),ot=S(x),nt=S(E),_=S(b),et=S(v),tt=N;(l&&tt(new l(new ArrayBuffer(1)))!=$||x&&tt(new x)!=M||E&&tt(E.resolve())!=I||b&&tt(new b)!=j||v&&tt(new v)!=D)&&(tt=function(it){var at=N(it),ft=at==A?it.constructor:void 0,ht=ft?S(ft):"";if(ht)switch(ht){case K:return $;case ot:return M;case nt:return I;case _:return j;case et:return D}return at}),w.exports=tt},47801:function(w){function P(a,l){return a==null?void 0:a[l]}w.exports=P},222:function(w,P,a){var l=a(71811),x=a(35694),E=a(1469),b=a(65776),v=a(41780),N=a(40327);function S(M,A,I){A=l(A,M);for(var j=-1,D=A.length,$=!1;++j<D;){var K=N(A[j]);if(!($=M!=null&&I(M,K)))break;M=M[K]}return $||++j!=D?$:(D=M==null?0:M.length,!!D&&v(D)&&b(K,D)&&(E(M)||x(M)))}w.exports=S},62689:function(w){var P="\\ud800-\\udfff",a="\\u0300-\\u036f",l="\\ufe20-\\ufe2f",x="\\u20d0-\\u20ff",E=a+l+x,b="\\ufe0e\\ufe0f",v="\\u200d",N=RegExp("["+v+P+E+b+"]");function S(M){return N.test(M)}w.exports=S},51789:function(w,P,a){var l=a(94536);function x(){this.__data__=l?l(null):{},this.size=0}w.exports=x},80401:function(w){function P(a){var l=this.has(a)&&delete this.__data__[a];return this.size-=l?1:0,l}w.exports=P},57667:function(w,P,a){var l=a(94536),x="__lodash_hash_undefined__",E=Object.prototype,b=E.hasOwnProperty;function v(N){var S=this.__data__;if(l){var M=S[N];return M===x?void 0:M}return b.call(S,N)?S[N]:void 0}w.exports=v},21327:function(w,P,a){var l=a(94536),x=Object.prototype,E=x.hasOwnProperty;function b(v){var N=this.__data__;return l?N[v]!==void 0:E.call(N,v)}w.exports=b},81866:function(w,P,a){var l=a(94536),x="__lodash_hash_undefined__";function E(b,v){var N=this.__data__;return this.size+=this.has(b)?0:1,N[b]=l&&v===void 0?x:v,this}w.exports=E},43824:function(w){var P=Object.prototype,a=P.hasOwnProperty;function l(x){var E=x.length,b=new x.constructor(E);return E&&typeof x[0]=="string"&&a.call(x,"index")&&(b.index=x.index,b.input=x.input),b}w.exports=l},29148:function(w,P,a){var l=a(74318),x=a(57157),E=a(93147),b=a(40419),v=a(77133),N="[object Boolean]",S="[object Date]",M="[object Map]",A="[object Number]",I="[object RegExp]",j="[object Set]",D="[object String]",$="[object Symbol]",K="[object ArrayBuffer]",ot="[object DataView]",nt="[object Float32Array]",_="[object Float64Array]",et="[object Int8Array]",tt="[object Int16Array]",it="[object Int32Array]",at="[object Uint8Array]",ft="[object Uint8ClampedArray]",ht="[object Uint16Array]",dt="[object Uint32Array]";function xt(yt,Mt,St){var kt=yt.constructor;switch(Mt){case K:return l(yt);case N:case S:return new kt(+yt);case ot:return x(yt,St);case nt:case _:case et:case tt:case it:case at:case ft:case ht:case dt:return v(yt,St);case M:return new kt;case A:case D:return new kt(yt);case I:return E(yt);case j:return new kt;case $:return b(yt)}}w.exports=xt},38517:function(w,P,a){var l=a(3118),x=a(85924),E=a(25726);function b(v){return typeof v.constructor=="function"&&!E(v)?l(x(v)):{}}w.exports=b},37285:function(w,P,a){var l=a(62705),x=a(35694),E=a(1469),b=l?l.isConcatSpreadable:void 0;function v(N){return E(N)||x(N)||!!(b&&N&&N[b])}w.exports=v},65776:function(w){var P=9007199254740991,a=/^(?:0|[1-9]\d*)$/;function l(x,E){var b=typeof x;return E=E==null?P:E,!!E&&(b=="number"||b!="symbol"&&a.test(x))&&x>-1&&x%1==0&&x<E}w.exports=l},16612:function(w,P,a){var l=a(77813),x=a(98612),E=a(65776),b=a(13218);function v(N,S,M){if(!b(M))return!1;var A=typeof S;return(A=="number"?x(M)&&E(S,M.length):A=="string"&&S in M)?l(M[S],N):!1}w.exports=v},15403:function(w,P,a){var l=a(1469),x=a(33448),E=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,b=/^\w*$/;function v(N,S){if(l(N))return!1;var M=typeof N;return M=="number"||M=="symbol"||M=="boolean"||N==null||x(N)?!0:b.test(N)||!E.test(N)||S!=null&&N in Object(S)}w.exports=v},37019:function(w){function P(a){var l=typeof a;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?a!=="__proto__":a===null}w.exports=P},15346:function(w,P,a){var l=a(14429),x=function(){var b=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||"");return b?"Symbol(src)_1."+b:""}();function E(b){return!!x&&x in b}w.exports=E},25726:function(w){var P=Object.prototype;function a(l){var x=l&&l.constructor,E=typeof x=="function"&&x.prototype||P;return l===E}w.exports=a},89162:function(w,P,a){var l=a(13218);function x(E){return E===E&&!l(E)}w.exports=x},27040:function(w){function P(){this.__data__=[],this.size=0}w.exports=P},14125:function(w,P,a){var l=a(18470),x=Array.prototype,E=x.splice;function b(v){var N=this.__data__,S=l(N,v);if(S<0)return!1;var M=N.length-1;return S==M?N.pop():E.call(N,S,1),--this.size,!0}w.exports=b},82117:function(w,P,a){var l=a(18470);function x(E){var b=this.__data__,v=l(b,E);return v<0?void 0:b[v][1]}w.exports=x},87529:function(w,P,a){var l=a(18470);function x(E){return l(this.__data__,E)>-1}w.exports=x},54705:function(w,P,a){var l=a(18470);function x(E,b){var v=this.__data__,N=l(v,E);return N<0?(++this.size,v.push([E,b])):v[N][1]=b,this}w.exports=x},24785:function(w,P,a){var l=a(1989),x=a(38407),E=a(57071);function b(){this.size=0,this.__data__={hash:new l,map:new(E||x),string:new l}}w.exports=b},11285:function(w,P,a){var l=a(45050);function x(E){var b=l(this,E).delete(E);return this.size-=b?1:0,b}w.exports=x},96e3:function(w,P,a){var l=a(45050);function x(E){return l(this,E).get(E)}w.exports=x},49916:function(w,P,a){var l=a(45050);function x(E){return l(this,E).has(E)}w.exports=x},95265:function(w,P,a){var l=a(45050);function x(E,b){var v=l(this,E),N=v.size;return v.set(E,b),this.size+=v.size==N?0:1,this}w.exports=x},68776:function(w){function P(a){var l=-1,x=Array(a.size);return a.forEach(function(E,b){x[++l]=[b,E]}),x}w.exports=P},42634:function(w){function P(a,l){return function(x){return x==null?!1:x[a]===l&&(l!==void 0||a in Object(x))}}w.exports=P},24523:function(w,P,a){var l=a(88306),x=500;function E(b){var v=l(b,function(S){return N.size===x&&N.clear(),S}),N=v.cache;return v}w.exports=E},94536:function(w,P,a){var l=a(10852),x=l(Object,"create");w.exports=x},86916:function(w,P,a){var l=a(5569),x=l(Object.keys,Object);w.exports=x},33498:function(w){function P(a){var l=[];if(a!=null)for(var x in Object(a))l.push(x);return l}w.exports=P},31167:function(w,P,a){w=a.nmd(w);var l=a(31957),x=P&&!P.nodeType&&P,E=x&&!0&&w&&!w.nodeType&&w,b=E&&E.exports===x,v=b&&l.process,N=function(){try{var S=E&&E.require&&E.require("util").types;return S||v&&v.binding&&v.binding("util")}catch(M){}}();w.exports=N},2333:function(w){var P=Object.prototype,a=P.toString;function l(x){return a.call(x)}w.exports=l},5569:function(w){function P(a,l){return function(x){return a(l(x))}}w.exports=P},45357:function(w,P,a){var l=a(96874),x=Math.max;function E(b,v,N){return v=x(v===void 0?b.length-1:v,0),function(){for(var S=arguments,M=-1,A=x(S.length-v,0),I=Array(A);++M<A;)I[M]=S[v+M];M=-1;for(var j=Array(v+1);++M<v;)j[M]=S[M];return j[v]=N(I),l(b,this,j)}}w.exports=E},55639:function(w,P,a){var l=a(31957),x=typeof self=="object"&&self&&self.Object===Object&&self,E=l||x||Function("return this")();w.exports=E},36390:function(w){function P(a,l){if(!(l==="constructor"&&typeof a[l]=="function")&&l!="__proto__")return a[l]}w.exports=P},90619:function(w){var P="__lodash_hash_undefined__";function a(l){return this.__data__.set(l,P),this}w.exports=a},72385:function(w){function P(a){return this.__data__.has(a)}w.exports=P},21814:function(w){function P(a){var l=-1,x=Array(a.size);return a.forEach(function(E){x[++l]=E}),x}w.exports=P},30061:function(w,P,a){var l=a(56560),x=a(21275),E=x(l);w.exports=E},21275:function(w){var P=800,a=16,l=Date.now;function x(E){var b=0,v=0;return function(){var N=l(),S=a-(N-v);if(v=N,S>0){if(++b>=P)return arguments[0]}else b=0;return E.apply(void 0,arguments)}}w.exports=x},37465:function(w,P,a){var l=a(38407);function x(){this.__data__=new l,this.size=0}w.exports=x},63779:function(w){function P(a){var l=this.__data__,x=l.delete(a);return this.size=l.size,x}w.exports=P},67599:function(w){function P(a){return this.__data__.get(a)}w.exports=P},44758:function(w){function P(a){return this.__data__.has(a)}w.exports=P},34309:function(w,P,a){var l=a(38407),x=a(57071),E=a(83369),b=200;function v(N,S){var M=this.__data__;if(M instanceof l){var A=M.__data__;if(!x||A.length<b-1)return A.push([N,S]),this.size=++M.size,this;M=this.__data__=new E(A)}return M.set(N,S),this.size=M.size,this}w.exports=v},42351:function(w){function P(a,l,x){for(var E=x-1,b=a.length;++E<b;)if(a[E]===l)return E;return-1}w.exports=P},88016:function(w,P,a){var l=a(48983),x=a(62689),E=a(21903);function b(v){return x(v)?E(v):l(v)}w.exports=b},55514:function(w,P,a){var l=a(24523),x=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,E=/\\(\\)?/g,b=l(function(v){var N=[];return v.charCodeAt(0)===46&&N.push(""),v.replace(x,function(S,M,A,I){N.push(A?I.replace(E,"$1"):M||S)}),N});w.exports=b},40327:function(w,P,a){var l=a(33448),x=1/0;function E(b){if(typeof b=="string"||l(b))return b;var v=b+"";return v=="0"&&1/b==-x?"-0":v}w.exports=E},80346:function(w){var P=Function.prototype,a=P.toString;function l(x){if(x!=null){try{return a.call(x)}catch(E){}try{return x+""}catch(E){}}return""}w.exports=l},67990:function(w){var P=/\s/;function a(l){for(var x=l.length;x--&&P.test(l.charAt(x)););return x}w.exports=a},21903:function(w){var P="\\ud800-\\udfff",a="\\u0300-\\u036f",l="\\ufe20-\\ufe2f",x="\\u20d0-\\u20ff",E=a+l+x,b="\\ufe0e\\ufe0f",v="["+P+"]",N="["+E+"]",S="\\ud83c[\\udffb-\\udfff]",M="(?:"+N+"|"+S+")",A="[^"+P+"]",I="(?:\\ud83c[\\udde6-\\uddff]){2}",j="[\\ud800-\\udbff][\\udc00-\\udfff]",D="\\u200d",$=M+"?",K="["+b+"]?",ot="(?:"+D+"(?:"+[A,I,j].join("|")+")"+K+$+")*",nt=K+$+ot,_="(?:"+[A+N+"?",N,I,j,v].join("|")+")",et=RegExp(S+"(?="+S+")|"+_+nt,"g");function tt(it){for(var at=et.lastIndex=0;et.test(it);)++at;return at}w.exports=tt},66678:function(w,P,a){var l=a(85990),x=4;function E(b){return l(b,x)}w.exports=E},50361:function(w,P,a){var l=a(85990),x=1,E=4;function b(v){return l(v,x|E)}w.exports=b},75703:function(w){function P(a){return function(){return a}}w.exports=P},91747:function(w,P,a){var l=a(18460),x=a(77813),E=a(16612),b=a(81704),v=Object.prototype,N=v.hasOwnProperty,S=l(function(M,A){M=Object(M);var I=-1,j=A.length,D=j>2?A[2]:void 0;for(D&&E(A[0],A[1],D)&&(j=1);++I<j;)for(var $=A[I],K=b($),ot=-1,nt=K.length;++ot<nt;){var _=K[ot],et=M[_];(et===void 0||x(et,v[_])&&!N.call(M,_))&&(M[_]=$[_])}return M});w.exports=S},85768:function(w,P,a){w.exports=a(84486)},77813:function(w){function P(a,l){return a===l||a!==a&&l!==l}w.exports=P},63105:function(w,P,a){var l=a(34963),x=a(80760),E=a(67206),b=a(1469);function v(N,S){var M=b(N)?l:x;return M(N,E(S,3))}w.exports=v},13311:function(w,P,a){var l=a(67740),x=a(30998),E=l(x);w.exports=E},30998:function(w,P,a){var l=a(41848),x=a(67206),E=a(40554),b=Math.max;function v(N,S,M){var A=N==null?0:N.length;if(!A)return-1;var I=M==null?0:E(M);return I<0&&(I=b(A+I,0)),l(N,x(S,3),I)}w.exports=v},85564:function(w,P,a){var l=a(21078);function x(E){var b=E==null?0:E.length;return b?l(E,1):[]}w.exports=x},84486:function(w,P,a){var l=a(77412),x=a(89881),E=a(54290),b=a(1469);function v(N,S){var M=b(N)?l:x;return M(N,E(S))}w.exports=v},62620:function(w,P,a){var l=a(28483),x=a(54290),E=a(81704);function b(v,N){return v==null?v:l(v,x(N),E)}w.exports=b},27361:function(w,P,a){var l=a(97786);function x(E,b,v){var N=E==null?void 0:l(E,b);return N===void 0?v:N}w.exports=x},18721:function(w,P,a){var l=a(78565),x=a(222);function E(b,v){return b!=null&&x(b,v,l)}w.exports=E},79095:function(w,P,a){var l=a(13),x=a(222);function E(b,v){return b!=null&&x(b,v,l)}w.exports=E},6557:function(w){function P(a){return a}w.exports=P},35694:function(w,P,a){var l=a(9454),x=a(37005),E=Object.prototype,b=E.hasOwnProperty,v=E.propertyIsEnumerable,N=l(function(){return arguments}())?l:function(S){return x(S)&&b.call(S,"callee")&&!v.call(S,"callee")};w.exports=N},1469:function(w){var P=Array.isArray;w.exports=P},98612:function(w,P,a){var l=a(23560),x=a(41780);function E(b){return b!=null&&x(b.length)&&!l(b)}w.exports=E},29246:function(w,P,a){var l=a(98612),x=a(37005);function E(b){return x(b)&&l(b)}w.exports=E},44144:function(w,P,a){w=a.nmd(w);var l=a(55639),x=a(95062),E=P&&!P.nodeType&&P,b=E&&!0&&w&&!w.nodeType&&w,v=b&&b.exports===E,N=v?l.Buffer:void 0,S=N?N.isBuffer:void 0,M=S||x;w.exports=M},58367:function(w,P,a){var l=a(280),x=a(64160),E=a(35694),b=a(1469),v=a(98612),N=a(44144),S=a(25726),M=a(36719),A="[object Map]",I="[object Set]",j=Object.prototype,D=j.hasOwnProperty;function $(K){if(K==null)return!0;if(v(K)&&(b(K)||typeof K=="string"||typeof K.splice=="function"||N(K)||M(K)||E(K)))return!K.length;var ot=x(K);if(ot==A||ot==I)return!K.size;if(S(K))return!l(K).length;for(var nt in K)if(D.call(K,nt))return!1;return!0}w.exports=$},23560:function(w,P,a){var l=a(44239),x=a(13218),E="[object AsyncFunction]",b="[object Function]",v="[object GeneratorFunction]",N="[object Proxy]";function S(M){if(!x(M))return!1;var A=l(M);return A==b||A==v||A==E||A==N}w.exports=S},41780:function(w){var P=9007199254740991;function a(l){return typeof l=="number"&&l>-1&&l%1==0&&l<=P}w.exports=a},56688:function(w,P,a){var l=a(25588),x=a(7518),E=a(31167),b=E&&E.isMap,v=b?x(b):l;w.exports=v},13218:function(w){function P(a){var l=typeof a;return a!=null&&(l=="object"||l=="function")}w.exports=P},37005:function(w){function P(a){return a!=null&&typeof a=="object"}w.exports=P},68630:function(w,P,a){var l=a(44239),x=a(85924),E=a(37005),b="[object Object]",v=Function.prototype,N=Object.prototype,S=v.toString,M=N.hasOwnProperty,A=S.call(Object);function I(j){if(!E(j)||l(j)!=b)return!1;var D=x(j);if(D===null)return!0;var $=M.call(D,"constructor")&&D.constructor;return typeof $=="function"&&$ instanceof $&&S.call($)==A}w.exports=I},72928:function(w,P,a){var l=a(29221),x=a(7518),E=a(31167),b=E&&E.isSet,v=b?x(b):l;w.exports=v},47037:function(w,P,a){var l=a(44239),x=a(1469),E=a(37005),b="[object String]";function v(N){return typeof N=="string"||!x(N)&&E(N)&&l(N)==b}w.exports=v},33448:function(w,P,a){var l=a(44239),x=a(37005),E="[object Symbol]";function b(v){return typeof v=="symbol"||x(v)&&l(v)==E}w.exports=b},36719:function(w,P,a){var l=a(38749),x=a(7518),E=a(31167),b=E&&E.isTypedArray,v=b?x(b):l;w.exports=v},52353:function(w){function P(a){return a===void 0}w.exports=P},3674:function(w,P,a){var l=a(14636),x=a(280),E=a(98612);function b(v){return E(v)?l(v):x(v)}w.exports=b},81704:function(w,P,a){var l=a(14636),x=a(10313),E=a(98612);function b(v){return E(v)?l(v,!0):x(v)}w.exports=b},10928:function(w){function P(a){var l=a==null?0:a.length;return l?a[l-1]:void 0}w.exports=P},35161:function(w,P,a){var l=a(29932),x=a(67206),E=a(69199),b=a(1469);function v(N,S){var M=b(N)?l:E;return M(N,x(S,3))}w.exports=v},8521:function(w,P,a){var l=a(89465),x=a(47816),E=a(67206);function b(v,N){var S={};return N=E(N,3),x(v,function(M,A,I){l(S,A,N(M,A,I))}),S}w.exports=b},6162:function(w,P,a){var l=a(56029),x=a(53325),E=a(6557);function b(v){return v&&v.length?l(v,E,x):void 0}w.exports=b},88306:function(w,P,a){var l=a(83369),x="Expected a function";function E(b,v){if(typeof b!="function"||v!=null&&typeof v!="function")throw new TypeError(x);var N=function(){var S=arguments,M=v?v.apply(this,S):S[0],A=N.cache;if(A.has(M))return A.get(M);var I=b.apply(this,S);return N.cache=A.set(M,I)||A,I};return N.cache=new(E.Cache||l),N}E.Cache=l,w.exports=E},82492:function(w,P,a){var l=a(42980),x=a(21463),E=x(function(b,v,N){l(b,v,N)});w.exports=E},53632:function(w,P,a){var l=a(56029),x=a(70433),E=a(6557);function b(v){return v&&v.length?l(v,E,x):void 0}w.exports=b},22762:function(w,P,a){var l=a(56029),x=a(67206),E=a(70433);function b(v,N){return v&&v.length?l(v,x(N,2),E):void 0}w.exports=b},50308:function(w){function P(){}w.exports=P},7771:function(w,P,a){var l=a(55639),x=function(){return l.Date.now()};w.exports=x},78718:function(w,P,a){var l=a(25970),x=a(99021),E=x(function(b,v){return b==null?{}:l(b,v)});w.exports=E},39601:function(w,P,a){var l=a(40371),x=a(79152),E=a(15403),b=a(40327);function v(N){return E(N)?l(b(N)):x(N)}w.exports=v},96026:function(w,P,a){var l=a(47445),x=l();w.exports=x},54061:function(w,P,a){var l=a(62663),x=a(89881),E=a(67206),b=a(10107),v=a(1469);function N(S,M,A){var I=v(S)?l:b,j=arguments.length<3;return I(S,E(M,4),A,j,x)}w.exports=N},84238:function(w,P,a){var l=a(280),x=a(64160),E=a(98612),b=a(47037),v=a(88016),N="[object Map]",S="[object Set]";function M(A){if(A==null)return 0;if(E(A))return b(A)?v(A):A.length;var I=x(A);return I==N||I==S?A.size:l(A).length}w.exports=M},89734:function(w,P,a){var l=a(21078),x=a(82689),E=a(18460),b=a(16612),v=E(function(N,S){if(N==null)return[];var M=S.length;return M>1&&b(N,S[0],S[1])?S=[]:M>2&&b(S[0],S[1],S[2])&&(S=[S[0]]),x(N,l(S,1),[])});w.exports=v},70479:function(w){function P(){return[]}w.exports=P},95062:function(w){function P(){return!1}w.exports=P},18601:function(w,P,a){var l=a(14841),x=1/0,E=17976931348623157e292;function b(v){if(!v)return v===0?v:0;if(v=l(v),v===x||v===-x){var N=v<0?-1:1;return N*E}return v===v?v:0}w.exports=b},40554:function(w,P,a){var l=a(18601);function x(E){var b=l(E),v=b%1;return b===b?v?b-v:b:0}w.exports=x},14841:function(w,P,a){var l=a(27561),x=a(13218),E=a(33448),b=NaN,v=/^[-+]0x[0-9a-f]+$/i,N=/^0b[01]+$/i,S=/^0o[0-7]+$/i,M=parseInt;function A(I){if(typeof I=="number")return I;if(E(I))return b;if(x(I)){var j=typeof I.valueOf=="function"?I.valueOf():I;I=x(j)?j+"":j}if(typeof I!="string")return I===0?I:+I;I=l(I);var D=N.test(I);return D||S.test(I)?M(I.slice(2),D?2:8):v.test(I)?b:+I}w.exports=A},59881:function(w,P,a){var l=a(98363),x=a(81704);function E(b){return l(b,x(b))}w.exports=E},79833:function(w,P,a){var l=a(80531);function x(E){return E==null?"":l(E)}w.exports=x},68718:function(w,P,a){var l=a(77412),x=a(3118),E=a(47816),b=a(67206),v=a(85924),N=a(1469),S=a(44144),M=a(23560),A=a(13218),I=a(36719);function j(D,$,K){var ot=N(D),nt=ot||S(D)||I(D);if($=b($,4),K==null){var _=D&&D.constructor;nt?K=ot?new _:[]:A(D)?K=M(_)?x(v(D)):{}:K={}}return(nt?l:E)(D,function(et,tt,it){return $(K,et,tt,it)}),K}w.exports=j},93386:function(w,P,a){var l=a(21078),x=a(18460),E=a(45652),b=a(29246),v=x(function(N){return E(l(N,1,b,!0))});w.exports=v},73955:function(w,P,a){var l=a(79833),x=0;function E(b){var v=++x;return l(b)+v}w.exports=E},52628:function(w,P,a){var l=a(47415),x=a(3674);function E(b){return b==null?[]:l(b,x(b))}w.exports=E},7287:function(w,P,a){var l=a(34865),x=a(1757);function E(b,v){return x(b||[],v||[],l)}w.exports=E},75823:function(w,P,a){"use strict";a.r(P),a.d(P,{default:function(){return b}});var l=a(44091);function x(v){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,l.isAnyArray)(v))throw new TypeError("input must be an array");if(v.length===0)throw new TypeError("input must not be empty");var S=N.fromIndex,M=S===void 0?0:S,A=N.toIndex,I=A===void 0?v.length:A;if(M<0||M>=v.length||!Number.isInteger(M))throw new Error("fromIndex must be a positive integer smaller than length");if(I<=M||I>v.length||!Number.isInteger(I))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var j=v[M],D=M+1;D<I;D++)v[D]>j&&(j=v[D]);return j}function E(v){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,l.isAnyArray)(v))throw new TypeError("input must be an array");if(v.length===0)throw new TypeError("input must not be empty");var S=N.fromIndex,M=S===void 0?0:S,A=N.toIndex,I=A===void 0?v.length:A;if(M<0||M>=v.length||!Number.isInteger(M))throw new Error("fromIndex must be a positive integer smaller than length");if(I<=M||I>v.length||!Number.isInteger(I))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var j=v[M],D=M+1;D<I;D++)v[D]<j&&(j=v[D]);return j}function b(v){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if((0,l.isAnyArray)(v)){if(v.length===0)throw new TypeError("input must not be empty")}else throw new TypeError("input must be an array");var S;if(N.output!==void 0){if(!(0,l.isAnyArray)(N.output))throw new TypeError("output option must be an array if specified");S=N.output}else S=new Array(v.length);var M=E(v),A=x(v);if(M===A)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var I=N.min,j=I===void 0?N.autoMinMax?M:0:I,D=N.max,$=D===void 0?N.autoMinMax?A:1:D;if(j>=$)throw new RangeError("min option must be smaller than max option");for(var K=($-j)/(A-M),ot=0;ot<v.length;ot++)S[ot]=(v[ot]-M)*K+j;return S}}},Ie={};function me(w){var P=Ie[w];if(P!==void 0)return P.exports;var a=Ie[w]={id:w,loaded:!1,exports:{}};return Xe[w](a,a.exports,me),a.loaded=!0,a.exports}(function(){me.n=function(w){var P=w&&w.__esModule?function(){return w.default}:function(){return w};return me.d(P,{a:P}),P}})(),function(){me.d=function(w,P){for(var a in P)me.o(P,a)&&!me.o(w,a)&&Object.defineProperty(w,a,{enumerable:!0,get:P[a]})}}(),function(){me.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch(w){if(typeof window=="object")return window}}()}(),function(){me.o=function(w,P){return Object.prototype.hasOwnProperty.call(w,P)}}(),function(){me.r=function(w){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(w,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(w,"__esModule",{value:!0})}}(),function(){me.nmd=function(w){return w.paths=[],w.children||(w.children=[]),w}}();var gc={};(function(){"use strict";var w=function(n,t){return w=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])},w(n,t)};function P(n,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");w(n,t);function e(){this.constructor=n}n.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}var a=function(){return a=Object.assign||function(t){for(var e,r=1,s=arguments.length;r<s;r++){e=arguments[r];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},a.apply(this,arguments)};function l(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(n,r[s])&&(e[r[s]]=n[r[s]]);return e}function x(n,t,e,r){var s=arguments.length,o=s<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var h=n.length-1;h>=0;h--)(d=n[h])&&(o=(s<3?d(o):s>3?d(t,e,o):d(t,e))||o);return s>3&&o&&Object.defineProperty(t,e,o),o}function E(n,t){return function(e,r){t(e,r,n)}}function b(n,t,e,r,s,o){function d(C){if(C!==void 0&&typeof C!="function")throw new TypeError("Function expected");return C}for(var h=r.kind,p=h==="getter"?"get":h==="setter"?"set":"value",g=!t&&n?r.static?n:n.prototype:null,y=t||(g?Object.getOwnPropertyDescriptor(g,r.name):{}),O,L=!1,R=e.length-1;R>=0;R--){var U={};for(var F in r)U[F]=F==="access"?{}:r[F];for(var F in r.access)U.access[F]=r.access[F];U.addInitializer=function(C){if(L)throw new TypeError("Cannot add initializers after decoration has completed");o.push(d(C||null))};var z=(0,e[R])(h==="accessor"?{get:y.get,set:y.set}:y[p],U);if(h==="accessor"){if(z===void 0)continue;if(z===null||typeof z!="object")throw new TypeError("Object expected");(O=d(z.get))&&(y.get=O),(O=d(z.set))&&(y.set=O),(O=d(z.init))&&s.push(O)}else(O=d(z))&&(h==="field"?s.push(O):y[p]=O)}g&&Object.defineProperty(g,r.name,y),L=!0}function v(n,t,e){for(var r=arguments.length>2,s=0;s<t.length;s++)e=r?t[s].call(n,e):t[s].call(n);return r?e:void 0}function N(n){return typeof n=="symbol"?n:"".concat(n)}function S(n,t,e){return typeof t=="symbol"&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(n,"name",{configurable:!0,value:e?"".concat(e," ",t):t})}function M(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)}function A(n,t,e,r){function s(o){return o instanceof e?o:new e(function(d){d(o)})}return new(e||(e=Promise))(function(o,d){function h(y){try{g(r.next(y))}catch(O){d(O)}}function p(y){try{g(r.throw(y))}catch(O){d(O)}}function g(y){y.done?o(y.value):s(y.value).then(h,p)}g((r=r.apply(n,t||[])).next())})}function I(n,t){var e={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,s,o,d;return d={next:h(0),throw:h(1),return:h(2)},typeof Symbol=="function"&&(d[Symbol.iterator]=function(){return this}),d;function h(g){return function(y){return p([g,y])}}function p(g){if(r)throw new TypeError("Generator is already executing.");for(;d&&(d=0,g[0]&&(e=0)),e;)try{if(r=1,s&&(o=g[0]&2?s.return:g[0]?s.throw||((o=s.return)&&o.call(s),0):s.next)&&!(o=o.call(s,g[1])).done)return o;switch(s=0,o&&(g=[g[0]&2,o.value]),g[0]){case 0:case 1:o=g;break;case 4:return e.label++,{value:g[1],done:!1};case 5:e.label++,s=g[1],g=[0];continue;case 7:g=e.ops.pop(),e.trys.pop();continue;default:if(o=e.trys,!(o=o.length>0&&o[o.length-1])&&(g[0]===6||g[0]===2)){e=0;continue}if(g[0]===3&&(!o||g[1]>o[0]&&g[1]<o[3])){e.label=g[1];break}if(g[0]===6&&e.label<o[1]){e.label=o[1],o=g;break}if(o&&e.label<o[2]){e.label=o[2],e.ops.push(g);break}o[2]&&e.ops.pop(),e.trys.pop();continue}g=t.call(n,e)}catch(y){g=[6,y],s=0}finally{r=o=0}if(g[0]&5)throw g[1];return{value:g[0]?g[1]:void 0,done:!0}}}var j=Object.create?function(n,t,e,r){r===void 0&&(r=e);var s=Object.getOwnPropertyDescriptor(t,e);(!s||("get"in s?!t.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(n,r,s)}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]};function D(n,t){for(var e in n)e!=="default"&&!Object.prototype.hasOwnProperty.call(t,e)&&j(t,n,e)}function $(n){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&n[t],r=0;if(e)return e.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&r>=n.length&&(n=void 0),{value:n&&n[r++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(n,t){var e=typeof Symbol=="function"&&n[Symbol.iterator];if(!e)return n;var r=e.call(n),s,o=[],d;try{for(;(t===void 0||t-- >0)&&!(s=r.next()).done;)o.push(s.value)}catch(h){d={error:h}}finally{try{s&&!s.done&&(e=r.return)&&e.call(r)}finally{if(d)throw d.error}}return o}function ot(){for(var n=[],t=0;t<arguments.length;t++)n=n.concat(K(arguments[t]));return n}function nt(){for(var n=0,t=0,e=arguments.length;t<e;t++)n+=arguments[t].length;for(var r=Array(n),s=0,t=0;t<e;t++)for(var o=arguments[t],d=0,h=o.length;d<h;d++,s++)r[s]=o[d];return r}function _(n,t,e){if(e||arguments.length===2)for(var r=0,s=t.length,o;r<s;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return n.concat(o||Array.prototype.slice.call(t))}function et(n){return this instanceof et?(this.v=n,this):new et(n)}function tt(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=e.apply(n,t||[]),s,o=[];return s={},d("next"),d("throw"),d("return"),s[Symbol.asyncIterator]=function(){return this},s;function d(L){r[L]&&(s[L]=function(R){return new Promise(function(U,F){o.push([L,R,U,F])>1||h(L,R)})})}function h(L,R){try{p(r[L](R))}catch(U){O(o[0][3],U)}}function p(L){L.value instanceof et?Promise.resolve(L.value.v).then(g,y):O(o[0][2],L)}function g(L){h("next",L)}function y(L){h("throw",L)}function O(L,R){L(R),o.shift(),o.length&&h(o[0][0],o[0][1])}}function it(n){var t,e;return t={},r("next"),r("throw",function(s){throw s}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(s,o){t[s]=n[s]?function(d){return(e=!e)?{value:et(n[s](d)),done:!1}:o?o(d):d}:o}}function at(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=n[Symbol.asyncIterator],e;return t?t.call(n):(n=typeof $=="function"?$(n):n[Symbol.iterator](),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(o){e[o]=n[o]&&function(d){return new Promise(function(h,p){d=n[o](d),s(h,p,d.done,d.value)})}}function s(o,d,h,p){Promise.resolve(p).then(function(g){o({value:g,done:h})},d)}}function ft(n,t){return Object.defineProperty?Object.defineProperty(n,"raw",{value:t}):n.raw=t,n}var ht=Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t};function dt(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&j(t,n,e);return ht(t,n),t}function xt(n){return n&&n.__esModule?n:{default:n}}function yt(n,t,e,r){if(e==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?n!==t||!r:!t.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?r:e==="a"?r.call(n):r?r.value:t.get(n)}function Mt(n,t,e,r,s){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?n!==t||!s:!t.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?s.call(n,e):s?s.value=e:t.set(n,e),e}function St(n,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?t===n:n.has(t)}var kt="*",Vt=function(){function n(){this._events={}}return n.prototype.on=function(t,e,r){return this._events[t]||(this._events[t]=[]),this._events[t].push({callback:e,once:!!r}),this},n.prototype.once=function(t,e){return this.on(t,e,!0)},n.prototype.emit=function(t){for(var e=this,r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var o=this._events[t]||[],d=this._events[kt]||[],h=function(p){for(var g=p.length,y=0;y<g;y++)if(p[y]){var O=p[y],L=O.callback,R=O.once;R&&(p.splice(y,1),p.length===0&&delete e._events[t],g--,y--),L.apply(e,r)}};h(o),h(d)},n.prototype.off=function(t,e){if(!t)this._events={};else if(!e)delete this._events[t];else{for(var r=this._events[t]||[],s=r.length,o=0;o<s;o++)r[o].callback===e&&(r.splice(o,1),s--,o--);r.length===0&&delete this._events[t]}return this},n.prototype.getEvents=function(){return this._events},n}(),qt=Vt;function te(n,t,e,r){for(;n.length;){const s=n.shift();if(e(s))return!0;t.add(s.id),r(s.id).forEach(d=>{t.has(d.id)||(t.add(d.id),n.push(d))})}return!1}function ce(n,t,e,r){if(e(n))return!0;t.add(n.id);for(const o of r(n.id))if(!t.has(o.id)&&ce(o,t,e,r))return!0;return!1}const ze=()=>!0;class tn{constructor(t){be(this,"graph");be(this,"nodeFilter");be(this,"edgeFilter");be(this,"cacheEnabled");be(this,"inEdgesMap",new Map);be(this,"outEdgesMap",new Map);be(this,"bothEdgesMap",new Map);be(this,"allNodesMap",new Map);be(this,"allEdgesMap",new Map);be(this,"clearCache",()=>{this.inEdgesMap.clear(),this.outEdgesMap.clear(),this.bothEdgesMap.clear(),this.allNodesMap.clear(),this.allEdgesMap.clear()});be(this,"refreshCache",()=>{this.clearCache(),this.updateCache(this.graph.getAllNodes().map(t=>t.id))});be(this,"updateCache",t=>{const e=new Set;t.forEach(r=>{const s=this.bothEdgesMap.get(r);if(s&&s.forEach(o=>e.add(o.id)),!this.hasNode(r))this.inEdgesMap.delete(r),this.outEdgesMap.delete(r),this.bothEdgesMap.delete(r),this.allNodesMap.delete(r);else{const o=this.graph.getRelatedEdges(r,"in").filter(this.edgeFilter),d=this.graph.getRelatedEdges(r,"out").filter(this.edgeFilter),h=Array.from(new Set([...o,...d]));h.forEach(p=>e.add(p.id)),this.inEdgesMap.set(r,o),this.outEdgesMap.set(r,d),this.bothEdgesMap.set(r,h),this.allNodesMap.set(r,this.graph.getNode(r))}}),e.forEach(r=>{this.hasEdge(r)?this.allEdgesMap.set(r,this.graph.getEdge(r)):this.allEdgesMap.delete(r)})});be(this,"handleGraphChanged",t=>{const e=new Set;t.changes.forEach(r=>{switch(r.type){case"NodeAdded":e.add(r.value.id);break;case"NodeDataUpdated":e.add(r.id);break;case"EdgeAdded":e.add(r.value.source),e.add(r.value.target);break;case"EdgeUpdated":(r.propertyName==="source"||r.propertyName==="target")&&(e.add(r.oldValue),e.add(r.newValue));break;case"EdgeDataUpdated":if(t.graph.hasEdge(r.id)){const s=t.graph.getEdge(r.id);e.add(s.source),e.add(s.target)}break;case"EdgeRemoved":e.add(r.value.source),e.add(r.value.target);break;case"NodeRemoved":e.add(r.value.id);break;default:break}}),this.updateCache(e)});this.graph=t.graph;const e=t.nodeFilter||ze,r=t.edgeFilter||ze;this.nodeFilter=e,this.edgeFilter=s=>{const{source:o,target:d}=this.graph.getEdgeDetail(s.id);return!e(o)||!e(d)?!1:r(s,o,d)},t.cache==="auto"?(this.cacheEnabled=!0,this.startAutoCache()):t.cache==="manual"?this.cacheEnabled=!0:this.cacheEnabled=!1}startAutoCache(){this.refreshCache(),this.graph.on("changed",this.handleGraphChanged)}stopAutoCache(){this.graph.off("changed",this.handleGraphChanged)}checkNodeExistence(t){this.getNode(t)}hasNode(t){if(!this.graph.hasNode(t))return!1;const e=this.graph.getNode(t);return this.nodeFilter(e)}areNeighbors(t,e){return this.checkNodeExistence(t),this.getNeighbors(e).some(r=>r.id===t)}getNode(t){const e=this.graph.getNode(t);if(!this.nodeFilter(e))throw new Error("Node not found for id: "+t);return e}getRelatedEdges(t,e){return this.checkNodeExistence(t),this.cacheEnabled?e==="in"?this.inEdgesMap.get(t):e==="out"?this.outEdgesMap.get(t):this.bothEdgesMap.get(t):this.graph.getRelatedEdges(t,e).filter(this.edgeFilter)}getDegree(t,e){return this.getRelatedEdges(t,e).length}getSuccessors(t){const r=this.getRelatedEdges(t,"out").map(s=>this.getNode(s.target));return Array.from(new Set(r))}getPredecessors(t){const r=this.getRelatedEdges(t,"in").map(s=>this.getNode(s.source));return Array.from(new Set(r))}getNeighbors(t){const e=this.getPredecessors(t),r=this.getSuccessors(t);return Array.from(new Set([...e,...r]))}hasEdge(t){if(!this.graph.hasEdge(t))return!1;const e=this.graph.getEdge(t);return this.edgeFilter(e)}getEdge(t){const e=this.graph.getEdge(t);if(!this.edgeFilter(e))throw new Error("Edge not found for id: "+t);return e}getEdgeDetail(t){const e=this.getEdge(t);return{edge:e,source:this.getNode(e.source),target:this.getNode(e.target)}}hasTreeStructure(t){return this.graph.hasTreeStructure(t)}getRoots(t){return this.graph.getRoots(t).filter(this.nodeFilter)}getChildren(t,e){return this.checkNodeExistence(t),this.graph.getChildren(t,e).filter(this.nodeFilter)}getParent(t,e){this.checkNodeExistence(t);const r=this.graph.getParent(t,e);return!r||!this.nodeFilter(r)?null:r}getAllNodes(){return this.cacheEnabled?Array.from(this.allNodesMap.values()):this.graph.getAllNodes().filter(this.nodeFilter)}getAllEdges(){return this.cacheEnabled?Array.from(this.allEdgesMap.values()):this.graph.getAllEdges().filter(this.edgeFilter)}bfs(t,e,r="out"){const s={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[r];te([this.getNode(t)],new Set,e,s)}dfs(t,e,r="out"){const s={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[r];ce(this.getNode(t),new Set,e,s)}}class xe extends qt{constructor(e){super();be(this,"nodeMap",new Map);be(this,"edgeMap",new Map);be(this,"inEdgesMap",new Map);be(this,"outEdgesMap",new Map);be(this,"bothEdgesMap",new Map);be(this,"treeIndices",new Map);be(this,"changes",[]);be(this,"batchCount",0);be(this,"onChanged",()=>{});be(this,"batch",e=>{this.batchCount+=1,e(),this.batchCount-=1,this.batchCount||this.commit()});e&&(e.nodes&&this.addNodes(e.nodes),e.edges&&this.addEdges(e.edges),e.tree&&this.addTree(e.tree),e.onChanged&&(this.onChanged=e.onChanged))}commit(){const e=this.changes;this.changes=[];const r={graph:this,changes:e};this.emit("changed",r),this.onChanged(r)}reduceChanges(e){let r=[];return e.forEach(s=>{switch(s.type){case"NodeRemoved":{let o=!1;r=r.filter(d=>{if(d.type==="NodeAdded"){const h=d.value.id===s.value.id;return h&&(o=!0),!h}else{if(d.type==="NodeDataUpdated")return d.id!==s.value.id;if(d.type==="TreeStructureChanged")return d.nodeId!==s.value.id}return!0}),o||r.push(s);break}case"EdgeRemoved":{let o=!1;r=r.filter(d=>{if(d.type==="EdgeAdded"){const h=d.value.id===s.value.id;return h&&(o=!0),!h}else if(d.type==="EdgeDataUpdated"||d.type==="EdgeUpdated")return d.id!==s.value.id;return!0}),o||r.push(s);break}case"NodeDataUpdated":case"EdgeDataUpdated":case"EdgeUpdated":{const o=r.findIndex(h=>h.type===s.type&&h.id===s.id&&(s.propertyName===void 0||h.propertyName===s.propertyName)),d=r[o];d?s.propertyName!==void 0?d.newValue=s.newValue:(r.splice(o,1),r.push(s)):r.push(s);break}case"TreeStructureDetached":{r=r.filter(o=>o.type==="TreeStructureAttached"||o.type==="TreeStructureChanged"?o.treeKey!==s.treeKey:!0),r.push(s);break}case"TreeStructureChanged":{const o=r.find(d=>d.type==="TreeStructureChanged"&&d.treeKey===s.treeKey&&d.nodeId===s.nodeId);o?o.newParentId=s.newParentId:r.push(s);break}default:r.push(s);break}}),r}checkNodeExistence(e){this.getNode(e)}hasNode(e){return this.nodeMap.has(e)}areNeighbors(e,r){return this.getNeighbors(r).some(s=>s.id===e)}getNode(e){const r=this.nodeMap.get(e);if(!r)throw new Error("Node not found for id: "+e);return r}getRelatedEdges(e,r){if(this.checkNodeExistence(e),r==="in"){const s=this.inEdgesMap.get(e);return Array.from(s)}else if(r==="out"){const s=this.outEdgesMap.get(e);return Array.from(s)}else{const s=this.bothEdgesMap.get(e);return Array.from(s)}}getDegree(e,r){return this.getRelatedEdges(e,r).length}getSuccessors(e){const s=this.getRelatedEdges(e,"out").map(o=>this.getNode(o.target));return Array.from(new Set(s))}getPredecessors(e){const s=this.getRelatedEdges(e,"in").map(o=>this.getNode(o.source));return Array.from(new Set(s))}getNeighbors(e){const r=this.getPredecessors(e),s=this.getSuccessors(e);return Array.from(new Set([...r,...s]))}doAddNode(e){if(this.hasNode(e.id))throw new Error("Node already exists: "+e.id);this.nodeMap.set(e.id,e),this.inEdgesMap.set(e.id,new Set),this.outEdgesMap.set(e.id,new Set),this.bothEdgesMap.set(e.id,new Set),this.treeIndices.forEach(r=>{r.childrenMap.set(e.id,new Set)}),this.changes.push({type:"NodeAdded",value:e})}addNodes(e){this.batch(()=>{for(const r of e)this.doAddNode(r)})}addNode(e){this.addNodes([e])}doRemoveNode(e){const r=this.getNode(e),s=this.bothEdgesMap.get(e);s==null||s.forEach(o=>this.doRemoveEdge(o.id)),this.nodeMap.delete(e),this.treeIndices.forEach(o=>{var h,p;(h=o.childrenMap.get(e))==null||h.forEach(g=>{o.parentMap.delete(g.id)});const d=o.parentMap.get(e);d&&((p=o.childrenMap.get(d.id))==null||p.delete(r)),o.parentMap.delete(e),o.childrenMap.delete(e)}),this.bothEdgesMap.delete(e),this.inEdgesMap.delete(e),this.outEdgesMap.delete(e),this.changes.push({type:"NodeRemoved",value:r})}removeNodes(e){this.batch(()=>{e.forEach(r=>this.doRemoveNode(r))})}removeNode(e){this.removeNodes([e])}updateNodeDataProperty(e,r,s){const o=this.getNode(e);this.batch(()=>{const d=o.data[r],h=s;o.data[r]=h,this.changes.push({type:"NodeDataUpdated",id:e,propertyName:r,oldValue:d,newValue:h})})}mergeNodeData(e,r){this.batch(()=>{Object.entries(r).forEach(([s,o])=>{this.updateNodeDataProperty(e,s,o)})})}updateNodeData(...e){const r=e[0],s=this.getNode(r);if(typeof e[1]=="string"){this.updateNodeDataProperty(r,e[1],e[2]);return}let o;if(typeof e[1]=="function"){const d=e[1];o=d(s.data)}else typeof e[1]=="object"&&(o=e[1]);this.batch(()=>{const d=s.data,h=o;s.data=o,this.changes.push({type:"NodeDataUpdated",id:r,oldValue:d,newValue:h})})}checkEdgeExistence(e){if(!this.hasEdge(e))throw new Error("Edge not found for id: "+e)}hasEdge(e){return this.edgeMap.has(e)}getEdge(e){return this.checkEdgeExistence(e),this.edgeMap.get(e)}getEdgeDetail(e){const r=this.getEdge(e);return{edge:r,source:this.getNode(r.source),target:this.getNode(r.target)}}doAddEdge(e){if(this.hasEdge(e.id))throw new Error("Edge already exists: "+e.id);this.checkNodeExistence(e.source),this.checkNodeExistence(e.target),this.edgeMap.set(e.id,e);const r=this.inEdgesMap.get(e.target),s=this.outEdgesMap.get(e.source),o=this.bothEdgesMap.get(e.source),d=this.bothEdgesMap.get(e.target);r.add(e),s.add(e),o.add(e),d.add(e),this.changes.push({type:"EdgeAdded",value:e})}addEdges(e){this.batch(()=>{for(const r of e)this.doAddEdge(r)})}addEdge(e){this.addEdges([e])}doRemoveEdge(e){const r=this.getEdge(e),s=this.outEdgesMap.get(r.source),o=this.inEdgesMap.get(r.target),d=this.bothEdgesMap.get(r.source),h=this.bothEdgesMap.get(r.target);s.delete(r),o.delete(r),d.delete(r),h.delete(r),this.edgeMap.delete(e),this.changes.push({type:"EdgeRemoved",value:r})}removeEdges(e){this.batch(()=>{e.forEach(r=>this.doRemoveEdge(r))})}removeEdge(e){this.removeEdges([e])}updateEdgeSource(e,r){const s=this.getEdge(e);this.checkNodeExistence(r);const o=s.source,d=r;this.outEdgesMap.get(o).delete(s),this.bothEdgesMap.get(o).delete(s),this.outEdgesMap.get(d).add(s),this.bothEdgesMap.get(d).add(s),s.source=r,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:e,propertyName:"source",oldValue:o,newValue:d})})}updateEdgeTarget(e,r){const s=this.getEdge(e);this.checkNodeExistence(r);const o=s.target,d=r;this.inEdgesMap.get(o).delete(s),this.bothEdgesMap.get(o).delete(s),this.inEdgesMap.get(d).add(s),this.bothEdgesMap.get(d).add(s),s.target=r,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:e,propertyName:"target",oldValue:o,newValue:d})})}updateEdgeDataProperty(e,r,s){const o=this.getEdge(e);this.batch(()=>{const d=o.data[r],h=s;o.data[r]=h,this.changes.push({type:"EdgeDataUpdated",id:e,propertyName:r,oldValue:d,newValue:h})})}updateEdgeData(...e){const r=e[0],s=this.getEdge(r);if(typeof e[1]=="string"){this.updateEdgeDataProperty(r,e[1],e[2]);return}let o;if(typeof e[1]=="function"){const d=e[1];o=d(s.data)}else typeof e[1]=="object"&&(o=e[1]);this.batch(()=>{const d=s.data,h=o;s.data=o,this.changes.push({type:"EdgeDataUpdated",id:r,oldValue:d,newValue:h})})}mergeEdgeData(e,r){this.batch(()=>{Object.entries(r).forEach(([s,o])=>{this.updateEdgeDataProperty(e,s,o)})})}checkTreeExistence(e){if(!this.hasTreeStructure(e))throw new Error("Tree structure not found for treeKey: "+e)}hasTreeStructure(e){return this.treeIndices.has(e)}attachTreeStructure(e){this.treeIndices.has(e)||(this.treeIndices.set(e,{parentMap:new Map,childrenMap:new Map}),this.batch(()=>{this.changes.push({type:"TreeStructureAttached",treeKey:e})}))}detachTreeStructure(e){this.checkTreeExistence(e),this.treeIndices.delete(e),this.batch(()=>{this.changes.push({type:"TreeStructureDetached",treeKey:e})})}addTree(e,r){this.batch(()=>{this.attachTreeStructure(r);const s=[],o=Array.isArray(e)?e:[e];for(;o.length;){const d=o.shift();s.push(d),d.children&&o.push(...d.children)}this.addNodes(s),s.forEach(d=>{var h;(h=d.children)==null||h.forEach(p=>{this.setParent(p.id,d.id,r)})})})}getRoots(e){return this.checkTreeExistence(e),this.getAllNodes().filter(r=>!this.getParent(r.id,e))}getChildren(e,r){this.checkNodeExistence(e),this.checkTreeExistence(r);const o=this.treeIndices.get(r).childrenMap.get(e);return Array.from(o||[])}getParent(e,r){return this.checkNodeExistence(e),this.checkTreeExistence(r),this.treeIndices.get(r).parentMap.get(e)||null}getAncestors(e,r){const s=[];let o=this.getNode(e),d;for(;d=this.getParent(o.id,r);)s.push(d),o=d;return s}setParent(e,r,s){var y,O;this.checkTreeExistence(s);const o=this.treeIndices.get(s),d=this.getNode(e),h=o.parentMap.get(e);if((h==null?void 0:h.id)===r)return;if(r===void 0){h&&((y=o.childrenMap.get(h.id))==null||y.delete(d)),o.parentMap.delete(e);return}const p=this.getNode(r);o.parentMap.set(e,p),h&&((O=o.childrenMap.get(h.id))==null||O.delete(d));let g=o.childrenMap.get(p.id);g||(g=new Set,o.childrenMap.set(p.id,g)),g.add(d),this.batch(()=>{this.changes.push({type:"TreeStructureChanged",treeKey:s,nodeId:e,oldParentId:h==null?void 0:h.id,newParentId:p.id})})}dfsTree(e,r,s){const o=d=>this.getChildren(d,s);return ce(this.getNode(e),new Set,r,o)}bfsTree(e,r,s){const o=d=>this.getChildren(d,s);return te([this.getNode(e)],new Set,r,o)}getAllNodes(){return Array.from(this.nodeMap.values())}getAllEdges(){return Array.from(this.edgeMap.values())}bfs(e,r,s="out"){const o={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[s];return te([this.getNode(e)],new Set,r,o)}dfs(e,r,s="out"){const o={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[s];return ce(this.getNode(e),new Set,r,o)}clone(){const e=this.getAllNodes().map(o=>es(Gn({},o),{data:Gn({},o.data)})),r=this.getAllEdges().map(o=>es(Gn({},o),{data:Gn({},o.data)})),s=new xe({nodes:e,edges:r});return this.treeIndices.forEach(({parentMap:o,childrenMap:d},h)=>{const p=new Map;o.forEach((y,O)=>{p.set(O,s.getNode(y.id))});const g=new Map;d.forEach((y,O)=>{g.set(O,new Set(Array.from(y).map(L=>s.getNode(L.id))))}),s.treeIndices.set(h,{parentMap:p,childrenMap:g})}),s}toJSON(){return JSON.stringify({nodes:this.getAllNodes(),edges:this.getAllEdges()})}createView(e){return new tn(Gn({graph:this},e))}}const mn=Symbol("Comlink.proxy"),Mn=Symbol("Comlink.endpoint"),cn=Symbol("Comlink.releaseProxy"),en=Symbol("Comlink.finalizer"),gt=Symbol("Comlink.thrown"),wt=n=>typeof n=="object"&&n!==null||typeof n=="function",jt={canHandle:n=>wt(n)&&n[mn],serialize(n){const{port1:t,port2:e}=new MessageChannel;return ge(n,t),[e,[e]]},deserialize(n){return n.start(),Ce(n)}},Ft={canHandle:n=>wt(n)&> in n,serialize({value:n}){let t;return n instanceof Error?t={isError:!0,value:{message:n.message,name:n.name,stack:n.stack}}:t={isError:!1,value:n},[t,[]]},deserialize(n){throw n.isError?Object.assign(new Error(n.value.message),n.value):n.value}},Ht=new Map([["proxy",jt],["throw",Ft]]);function de(n,t){for(const e of n)if(t===e||e==="*"||e instanceof RegExp&&e.test(t))return!0;return!1}function ge(n,t=globalThis,e=["*"]){t.addEventListener("message",function r(s){if(!s||!s.data)return;if(!de(e,s.origin)){console.warn(`Invalid origin '${s.origin}' for comlink proxy`);return}const{id:o,type:d,path:h}=Object.assign({path:[]},s.data),p=(s.data.argumentList||[]).map(ke);let g;try{const y=h.slice(0,-1).reduce((L,R)=>L[R],n),O=h.reduce((L,R)=>L[R],n);switch(d){case"GET":g=O;break;case"SET":y[h.slice(-1)[0]]=ke(s.data.value),g=!0;break;case"APPLY":g=O.apply(y,p);break;case"CONSTRUCT":{const L=new O(...p);g=wn(L)}break;case"ENDPOINT":{const{port1:L,port2:R}=new MessageChannel;ge(n,R),g=Fe(L,[L])}break;case"RELEASE":g=void 0;break;default:return}}catch(y){g={value:y,[gt]:0}}Promise.resolve(g).catch(y=>({value:y,[gt]:0})).then(y=>{const[O,L]=ln(y);t.postMessage(Object.assign(Object.assign({},O),{id:o}),L),d==="RELEASE"&&(t.removeEventListener("message",r),fn(t),en in n&&typeof n[en]=="function"&&n[en]())}).catch(y=>{const[O,L]=ln({value:new TypeError("Unserializable return value"),[gt]:0});t.postMessage(Object.assign(Object.assign({},O),{id:o}),L)})}),t.start&&t.start()}function Re(n){return n.constructor.name==="MessagePort"}function fn(n){Re(n)&&n.close()}function Ce(n,t){return It(n,[],t)}function Ne(n){if(n)throw new Error("Proxy has been released and is not useable")}function se(n){return nn(n,{type:"RELEASE"}).then(()=>{fn(n)})}const Wt=new WeakMap,ee="FinalizationRegistry"in globalThis&&new FinalizationRegistry(n=>{const t=(Wt.get(n)||0)-1;Wt.set(n,t),t===0&&se(n)});function on(n,t){const e=(Wt.get(t)||0)+1;Wt.set(t,e),ee&&ee.register(n,t,n)}function an(n){ee&&ee.unregister(n)}function It(n,t=[],e=function(){}){let r=!1;const s=new Proxy(e,{get(o,d){if(Ne(r),d===cn)return()=>{an(s),se(n),r=!0};if(d==="then"){if(t.length===0)return{then:()=>s};const h=nn(n,{type:"GET",path:t.map(p=>p.toString())}).then(ke);return h.then.bind(h)}return It(n,[...t,d])},set(o,d,h){Ne(r);const[p,g]=ln(h);return nn(n,{type:"SET",path:[...t,d].map(y=>y.toString()),value:p},g).then(ke)},apply(o,d,h){Ne(r);const p=t[t.length-1];if(p===Mn)return nn(n,{type:"ENDPOINT"}).then(ke);if(p==="bind")return It(n,t.slice(0,-1));const[g,y]=De(h);return nn(n,{type:"APPLY",path:t.map(O=>O.toString()),argumentList:g},y).then(ke)},construct(o,d){Ne(r);const[h,p]=De(d);return nn(n,{type:"CONSTRUCT",path:t.map(g=>g.toString()),argumentList:h},p).then(ke)}});return on(s,n),s}function yn(n){return Array.prototype.concat.apply([],n)}function De(n){const t=n.map(ln);return[t.map(e=>e[0]),yn(t.map(e=>e[1]))]}const Se=new WeakMap;function Fe(n,t){return Se.set(n,t),n}function wn(n){return Object.assign(n,{[mn]:!0})}function rr(n,t=globalThis,e="*"){return{postMessage:(r,s)=>n.postMessage(r,e,s),addEventListener:t.addEventListener.bind(t),removeEventListener:t.removeEventListener.bind(t)}}function ln(n){for(const[t,e]of Ht)if(e.canHandle(n)){const[r,s]=e.serialize(n);return[{type:"HANDLER",name:t,value:r},s]}return[{type:"RAW",value:n},Se.get(n)||[]]}function ke(n){switch(n.type){case"HANDLER":return Ht.get(n.name).deserialize(n.value);case"RAW":return n.value}}function nn(n,t,e){return new Promise(r=>{const s=In();n.addEventListener("message",function o(d){!d.data||!d.data.id||d.data.id!==s||(n.removeEventListener("message",o),r(d.data))}),n.start&&n.start(),n.postMessage(Object.assign({id:s},t),e)})}function In(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function $t(n){return typeof n=="number"}function Pn(n){return n==null}const Qe=(n,t)=>{if(n!=="next"&&n!=="prev")return t},Ke=n=>{n.prev.next=n.next,n.next.prev=n.prev,delete n.next,delete n.prev};class Ve{constructor(){const t={};t.prev=t,t.next=t.prev,this.shortcut=t}dequeue(){const t=this.shortcut,e=t.prev;if(e&&e!==t)return Ke(e),e}enqueue(t){const e=this.shortcut;t.prev&&t.next&&Ke(t),t.next=e.next,e.next.prev=t,e.next=t,t.prev=e}toString(){const t=[],e=this.shortcut;let r=e.prev;for(;r!==e;)t.push(JSON.stringify(r,Qe)),r=r==null?void 0:r.prev;return`[${t.join(", ")}]`}}class Er extends Ve{}const Ln=()=>1,rn=(n,t)=>{var e;if(n.getAllNodes().length<=1)return[];const r=br(n,t||Ln);return(e=Wn(r.graph,r.buckets,r.zeroIdx).map(o=>n.getRelatedEdges(o.v,"out").filter(({target:d})=>d===o.w)))===null||e===void 0?void 0:e.flat()},Wn=(n,t,e)=>{let r=[];const s=t[t.length-1],o=t[0];let d;for(;n.getAllNodes().length;){for(;d=o.dequeue();)un(n,t,e,d);for(;d=s.dequeue();)un(n,t,e,d);if(n.getAllNodes().length){for(let h=t.length-2;h>0;--h)if(d=t[h].dequeue(),d){r=r.concat(un(n,t,e,d,!0));break}}}return r},un=(n,t,e,r,s)=>{var o,d;const h=[];return n.hasNode(r.v)&&((o=n.getRelatedEdges(r.v,"in"))===null||o===void 0||o.forEach(p=>{const g=p.data.weight,y=n.getNode(p.source);s&&h.push({v:p.source,w:p.target,in:0,out:0}),y.data.out===void 0&&(y.data.out=0),y.data.out-=g,Rn(t,e,Object.assign({v:y.id},y.data))}),(d=n.getRelatedEdges(r.v,"out"))===null||d===void 0||d.forEach(p=>{const g=p.data.weight,y=p.target,O=n.getNode(y);O.data.in===void 0&&(O.data.in=0),O.data.in-=g,Rn(t,e,Object.assign({v:O.id},O.data))}),n.removeNode(r.v)),s?h:void 0},br=(n,t)=>{const e=new xe;let r=0,s=0;n.getAllNodes().forEach(p=>{e.addNode({id:p.id,data:{v:p.id,in:0,out:0}})}),n.getAllEdges().forEach(p=>{const g=e.getRelatedEdges(p.source,"out").find(O=>O.target===p.target),y=(t==null?void 0:t(p))||1;g?e.updateEdgeData(g==null?void 0:g.id,Object.assign(Object.assign({},g.data),{weight:g.data.weight+y})):e.addEdge({id:p.id,source:p.source,target:p.target,data:{weight:y}}),s=Math.max(s,e.getNode(p.source).data.out+=y),r=Math.max(r,e.getNode(p.target).data.in+=y)});const o=[],d=s+r+3;for(let p=0;p<d;p++)o.push(new Er);const h=r+1;return e.getAllNodes().forEach(p=>{Rn(o,h,Object.assign({v:p.id},e.getNode(p.id).data))}),{buckets:o,zeroIdx:h,graph:e}},Rn=(n,t,e)=>{e.out?e.in?n[e.out-e.in+t].enqueue(e):n[n.length-1].enqueue(e):n[0].enqueue(e)},Cn=(n,t)=>{const r=t==="greedy"?rn(n,(s=>o=>o.data.weight||1)(n)):Nr(n);r==null||r.forEach(s=>{const o=s.data;n.removeEdge(s.id),o.forwardName=s.data.name,o.reversed=!0,n.addEdge({id:s.id,source:s.target,target:s.source,data:Object.assign({},o)})})},Nr=n=>{const t=[],e={},r={},s=o=>{r[o]||(r[o]=!0,e[o]=!0,n.getRelatedEdges(o,"out").forEach(d=>{e[d.target]?t.push(d):s(d.target)}),delete e[o])};return n.getAllNodes().forEach(o=>s(o.id)),t},Mr=n=>{n.getAllEdges().forEach(t=>{const e=t.data;if(e.reversed){n.removeEdge(t.id);const r=e.forwardName;delete e.reversed,delete e.forwardName,n.addEdge({id:t.id,source:t.target,target:t.source,data:Object.assign(Object.assign({},e),{forwardName:r})})}})},Sr=(n,t)=>Number(n)-Number(t),xn=(n,t,e,r)=>{let s;do s=`${r}${Math.random()}`;while(n.hasNode(s));return e.dummy=t,n.addNode({id:s,data:e}),s},Or=n=>{const t=new xe;return n.getAllNodes().forEach(e=>{t.addNode(Object.assign({},e))}),n.getAllEdges().forEach(e=>{const r=t.getRelatedEdges(e.source,"out").find(s=>s.target===e.target);r?t.updateEdgeData(r==null?void 0:r.id,Object.assign(Object.assign({},r.data),{weight:r.data.weight+e.data.weight||0,minlen:Math.max(r.data.minlen,e.data.minlen||1)})):t.addEdge({id:e.id,source:e.source,target:e.target,data:{weight:e.data.weight||0,minlen:e.data.minlen||1}})}),t},sr=n=>{const t=new xe;return n.getAllNodes().forEach(e=>{n.getChildren(e.id).length||t.addNode(Object.assign({},e))}),n.getAllEdges().forEach(e=>{t.addEdge(e)}),t},Yn=(n,t)=>n==null?void 0:n.reduce((e,r,s)=>(e[r]=t[s],e),{}),ss=n=>{const t={};return n.getAllNodes().forEach(e=>{const r={};n.getRelatedEdges(e.id,"out").forEach(s=>{r[s.target]=(r[s.target]||0)+(s.data.weight||0)}),t[e.id]=r}),t},is=n=>{const t=n.getAllNodes(),e=t.map(r=>{const s={};return n.getRelatedEdges(r.id,"in").forEach(o=>{s[o.source]=(s[o.source]||0)+o.data.weight}),s});return Yn(t.map(r=>r.id),e)},ir=(n,t)=>{const e=Number(n.x),r=Number(n.y),s=Number(t.x)-e,o=Number(t.y)-r;let d=Number(n.width)/2,h=Number(n.height)/2;if(!s&&!o)return{x:0,y:0};let p,g;return Math.abs(o)*d>Math.abs(s)*h?(o<0&&(h=-h),p=h*s/o,g=h):(s<0&&(d=-d),p=d,g=d*o/s),{x:e+p,y:r+g}},Sn=n=>{const t=[],e=T(n)+1;for(let r=0;r<e;r++)t.push([]);n.getAllNodes().forEach(r=>{const s=r.data.rank;s!==void 0&&t[s]&&t[s].push(r.id)});for(let r=0;r<e;r++)t[r]=t[r].sort((s,o)=>Sr(n.getNode(s).data.order,n.getNode(o).data.order));return t},Dn=n=>{const t=n.getAllNodes().filter(r=>r.data.rank!==void 0).map(r=>r.data.rank),e=Math.min(...t);n.getAllNodes().forEach(r=>{r.data.hasOwnProperty("rank")&&e!==1/0&&(r.data.rank-=e)})},or=(n,t=0)=>{const e=n.getAllNodes(),r=e.filter(h=>h.data.rank!==void 0).map(h=>h.data.rank),s=Math.min(...r),o=[];e.forEach(h=>{const p=(h.data.rank||0)-s;o[p]||(o[p]=[]),o[p].push(h.id)});let d=0;for(let h=0;h<o.length;h++){const p=o[h];p===void 0?h%t!==0&&(d-=1):d&&(p==null||p.forEach(g=>{const y=n.getNode(g);y&&(y.data.rank=y.data.rank||0,y.data.rank+=d)}))}},$n=(n,t,e,r)=>{const s={width:0,height:0};return $t(e)&&$t(r)&&(s.rank=e,s.order=r),xn(n,"border",s,t)},T=n=>{let t;return n.getAllNodes().forEach(e=>{const r=e.data.rank;r!==void 0&&(t===void 0||r>t)&&(t=r)}),t||(t=0),t},u=(n,t)=>{const e={lhs:[],rhs:[]};return n==null||n.forEach(r=>{t(r)?e.lhs.push(r):e.rhs.push(r)}),e},c=(n,t)=>n.reduce((e,r)=>{const s=t(e),o=t(r);return s>o?r:e}),i=(n,t,e,r,s,o)=>{r.includes(t.id)||(r.push(t.id),e||o.push(t.id),s(t.id).forEach(d=>i(n,d,e,r,s,o)),e&&o.push(t.id))},f=(n,t,e,r)=>{const s=Array.isArray(t)?t:[t],o=p=>r?n.getSuccessors(p):n.getNeighbors(p),d=[],h=[];return s.forEach(p=>{if(n.hasNode(p.id))i(n,p,e==="post",h,o,d);else throw new Error(`Graph does not have node: ${p}`)}),d},m=n=>{const t=e=>{const r=n.getChildren(e),s=n.getNode(e);if(r!=null&&r.length&&r.forEach(o=>t(o.id)),s.data.hasOwnProperty("minRank")){s.data.borderLeft=[],s.data.borderRight=[];for(let o=s.data.minRank,d=s.data.maxRank+1;o<d;o+=1)k(n,"borderLeft","_bl",e,s,o),k(n,"borderRight","_br",e,s,o)}};n.getRoots().forEach(e=>t(e.id))},k=(n,t,e,r,s,o)=>{const d={rank:o,borderType:t,width:0,height:0},h=s.data[t][o-1],p=xn(n,"border",d,e);s.data[t][o]=p,n.setParent(p,r),h&&n.addEdge({id:`e${Math.random()}`,source:h,target:p,data:{weight:1}})},B=(n,t)=>{const e=t.toLowerCase();(e==="lr"||e==="rl")&&V(n)},G=(n,t)=>{const e=t.toLowerCase();(e==="bt"||e==="rl")&&Z(n),(e==="lr"||e==="rl")&&(At(n),V(n))},V=n=>{n.getAllNodes().forEach(t=>{rt(t)}),n.getAllEdges().forEach(t=>{rt(t)})},rt=n=>{const t=n.data.width;n.data.width=n.data.height,n.data.height=t},Z=n=>{n.getAllNodes().forEach(t=>{lt(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>lt(r)),t.data.hasOwnProperty("y")&<(t.data)})},lt=n=>{n!=null&&n.y&&(n.y=-n.y)},At=n=>{n.getAllNodes().forEach(t=>{ct(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>ct(r)),t.data.hasOwnProperty("x")&&ct(t.data)})},ct=n=>{const t=n.x;n.x=n.y,n.y=t},pt=n=>{const t=xn(n,"root",{},"_root"),e=J(n);let r=Math.max(...Object.values(e));Math.abs(r)===1/0&&(r=1);const s=r-1,o=2*s+1;n.getAllEdges().forEach(h=>{h.data.minlen*=o});const d=Ot(n)+1;return n.getRoots().forEach(h=>{Lt(n,t,o,d,s,e,h.id)}),{nestingRoot:t,nodeRankFactor:o}},Lt=(n,t,e,r,s,o,d)=>{const h=n.getChildren(d);if(!(h!=null&&h.length)){d!==t&&n.addEdge({id:`e${Math.random()}`,source:t,target:d,data:{weight:0,minlen:e}});return}const p=$n(n,"_bt"),g=$n(n,"_bb"),y=n.getNode(d);n.setParent(p,d),y.data.borderTop=p,n.setParent(g,d),y.data.borderBottom=g,h==null||h.forEach(O=>{Lt(n,t,e,r,s,o,O.id);const L=O.data.borderTop?O.data.borderTop:O.id,R=O.data.borderBottom?O.data.borderBottom:O.id,U=O.data.borderTop?r:2*r,F=L!==R?1:s-o[d]+1;n.addEdge({id:`e${Math.random()}`,source:p,target:L,data:{minlen:F,weight:U,nestingEdge:!0}}),n.addEdge({id:`e${Math.random()}`,source:R,target:g,data:{minlen:F,weight:U,nestingEdge:!0}})}),n.getParent(d)||n.addEdge({id:`e${Math.random()}`,source:t,target:p,data:{weight:0,minlen:s+o[d]}})},J=n=>{const t={},e=(r,s)=>{const o=n.getChildren(r);o==null||o.forEach(d=>e(d.id,s+1)),t[r]=s};return n.getRoots().forEach(r=>e(r.id,1)),t},Ot=n=>{let t=0;return n.getAllEdges().forEach(e=>{t+=e.data.weight}),t},Ct=(n,t)=>{t&&n.removeNode(t),n.getAllEdges().forEach(e=>{e.data.nestingEdge&&n.removeEdge(e.id)})},Kt="edge",Zt="edge-label",ye=(n,t)=>{n.getAllEdges().forEach(e=>Ut(n,e,t))},Ut=(n,t,e)=>{let r=t.source,s=n.getNode(r).data.rank;const o=t.target,d=n.getNode(o).data.rank,h=t.data.labelRank;if(d===s+1)return;n.removeEdge(t.id);let p,g,y;for(y=0,++s;s<d;++y,++s)t.data.points=[],g={originalEdge:t,width:0,height:0,rank:s},p=xn(n,Kt,g,"_d"),s===h&&(g.width=t.data.width,g.height=t.data.height,g.dummy=Zt,g.labelpos=t.data.labelpos),n.addEdge({id:`e${Math.random()}`,source:r,target:p,data:{weight:t.data.weight}}),y===0&&e.push(p),r=p;n.addEdge({id:`e${Math.random()}`,source:r,target:o,data:{weight:t.data.weight}})},Yt=(n,t)=>{t.forEach(e=>{let r=n.getNode(e);const{data:s}=r,o=s.originalEdge;let d;o&&n.addEdge(o);let h=e;for(;r.data.dummy;)d=n.getSuccessors(h)[0],n.removeNode(h),o.data.points.push({x:r.data.x,y:r.data.y}),r.data.dummy===Zt&&(o.data.x=r.data.x,o.data.y=r.data.y,o.data.width=r.data.width,o.data.height=r.data.height),h=d.id,r=n.getNode(h)})};function ae(n){return Array.isArray(n)}var H=function(n){if(typeof n!="object"||n===null)return n;var t;if(ae(n)){t=[];for(var e=0,r=n.length;e<r;e++)typeof n[e]=="object"&&n[e]!=null?t[e]=H(n[e]):t[e]=n[e]}else{t={};for(var s in n)typeof n[s]=="object"&&n[s]!=null?t[s]=H(n[s]):t[s]=n[s]}return t},mt=H;const Rt=(n,t,e)=>{const r={};let s;e==null||e.forEach(o=>{let d=n.getParent(o),h,p;for(;d;){if(h=n.getParent(d.id),h?(p=r[h.id],r[h.id]=d.id):(p=s,s=d.id),p&&p!==d.id){t.hasNode(p)||t.addNode({id:p,data:{}}),t.hasNode(d.id)||t.addNode({id:d.id,data:{}}),t.hasEdge(`e${p}-${d.id}`)||t.addEdge({id:`e${p}-${d.id}`,source:p,target:d.id,data:{}});return}d=h}})},Nt=(n,t,e)=>{const r=we(n),s=new xe({tree:[{id:r,children:[],data:{}}]});return n.getAllNodes().forEach(o=>{const d=n.getParent(o.id);(o.data.rank===t||o.data.minRank<=t&&t<=o.data.maxRank)&&(s.hasNode(o.id)||s.addNode(Object.assign({},o)),d!=null&&d.id&&!s.hasNode(d==null?void 0:d.id)&&s.addNode(Object.assign({},d)),s.setParent(o.id,(d==null?void 0:d.id)||r),n.getRelatedEdges(o.id,e).forEach(h=>{const p=h.source===o.id?h.target:h.source;s.hasNode(p)||s.addNode(Object.assign({},n.getNode(p)));const g=s.getRelatedEdges(p,"out").find(({target:O})=>O===o.id),y=g!==void 0?g.data.weight:0;g?s.updateEdgeData(g.id,Object.assign(Object.assign({},g.data),{weight:h.data.weight+y})):s.addEdge({id:h.id,source:p,target:o.id,data:{weight:h.data.weight+y}})}),o.data.hasOwnProperty("minRank")&&s.updateNodeData(o.id,Object.assign(Object.assign({},o.data),{borderLeft:o.data.borderLeft[t],borderRight:o.data.borderRight[t]})))}),s},we=n=>{let t;for(;n.hasNode(t=`_root${Math.random()}`););return t},ue=(n,t,e)=>{const r=Yn(e,e.map((y,O)=>O)),o=t.map(y=>{const O=n.getRelatedEdges(y,"out").map(L=>({pos:r[L.target]||0,weight:L.data.weight}));return O==null?void 0:O.sort((L,R)=>L.pos-R.pos)}).flat().filter(y=>y!==void 0);let d=1;for(;d<e.length;)d<<=1;const h=2*d-1;d-=1;const p=Array(h).fill(0,0,h);let g=0;return o==null||o.forEach(y=>{if(y){let O=y.pos+d;p[O]+=y.weight;let L=0;for(;O>0;)O%2&&(L+=p[O+1]),O=O-1>>1,p[O]+=y.weight;g+=y.weight*L}}),g},he=(n,t)=>{let e=0;for(let r=1;r<(t==null?void 0:t.length);r+=1)e+=ue(n,t[r-1],t[r]);return e},pe=n=>{const t={},e=n.getAllNodes(),r=e.map(g=>{var y;return(y=g.data.rank)!==null&&y!==void 0?y:-1/0}),s=Math.max(...r),o=[];for(let g=0;g<s+1;g++)o.push([]);const d=e.sort((g,y)=>n.getNode(g.id).data.rank-n.getNode(y.id).data.rank),p=d.filter(g=>n.getNode(g.id).data.fixorder!==void 0).sort((g,y)=>n.getNode(g.id).data.fixorder-n.getNode(y.id).data.fixorder);return p==null||p.forEach(g=>{isNaN(n.getNode(g.id).data.rank)||o[n.getNode(g.id).data.rank].push(g.id),t[g.id]=!0}),d==null||d.forEach(g=>n.dfsTree(g.id,y=>{if(t.hasOwnProperty(y.id))return!0;t[y.id]=!0,isNaN(y.data.rank)||o[y.data.rank].push(y.id)})),o},Pe=(n,t)=>t.map(e=>{const r=n.getRelatedEdges(e,"in");if(!(r!=null&&r.length))return{v:e};const s={sum:0,weight:0};return r==null||r.forEach(o=>{const d=n.getNode(o.source);s.sum+=o.data.weight*d.data.order,s.weight+=o.data.weight}),{v:e,barycenter:s.sum/s.weight,weight:s.weight}}),Ze=(n,t)=>{var e,r,s;const o={};n==null||n.forEach((h,p)=>{o[h.v]={i:p,indegree:0,in:[],out:[],vs:[h.v]};const g=o[h.v];h.barycenter!==void 0&&(g.barycenter=h.barycenter,g.weight=h.weight)}),(e=t.getAllEdges())===null||e===void 0||e.forEach(h=>{const p=o[h.source],g=o[h.target];p!==void 0&&g!==void 0&&(g.indegree++,p.out.push(o[h.target]))});const d=(s=(r=Object.values(o)).filter)===null||s===void 0?void 0:s.call(r,h=>!h.indegree);return Oe(d)},Oe=n=>{var t,e;const r=[],s=p=>g=>{g.merged||(g.barycenter===void 0||p.barycenter===void 0||g.barycenter>=p.barycenter)&&_e(p,g)},o=p=>g=>{g.in.push(p),--g.indegree===0&&n.push(g)};for(;n!=null&&n.length;){const p=n.pop();r.push(p),(t=p.in.reverse())===null||t===void 0||t.forEach(g=>s(p)(g)),(e=p.out)===null||e===void 0||e.forEach(g=>o(p)(g))}const d=r.filter(p=>!p.merged),h=["vs","i","barycenter","weight"];return d.map(p=>{const g={};return h==null||h.forEach(y=>{p[y]!==void 0&&(g[y]=p[y])}),g})},_e=(n,t)=>{var e;let r=0,s=0;n.weight&&(r+=n.barycenter*n.weight,s+=n.weight),t.weight&&(r+=t.barycenter*t.weight,s+=t.weight),n.vs=(e=t.vs)===null||e===void 0?void 0:e.concat(n.vs),n.barycenter=r/s,n.weight=s,n.i=Math.min(t.i,n.i),t.merged=!0};var sn=Ze;const ne=(n,t,e,r)=>{const s=u(n,L=>{const R=L.hasOwnProperty("fixorder")&&!isNaN(L.fixorder);return r?!R&&L.hasOwnProperty("barycenter"):R||L.hasOwnProperty("barycenter")}),o=s.lhs,d=s.rhs.sort((L,R)=>-L.i- -R.i),h=[];let p=0,g=0,y=0;o==null||o.sort(Ge(!!t,!!e)),y=Te(h,d,y),o==null||o.forEach(L=>{var R;y+=(R=L.vs)===null||R===void 0?void 0:R.length,h.push(L.vs),p+=L.barycenter*L.weight,g+=L.weight,y=Te(h,d,y)});const O={vs:h.flat()};return g&&(O.barycenter=p/g,O.weight=g),O},Te=(n,t,e)=>{let r=e,s;for(;t.length&&(s=t[t.length-1]).i<=r;)t.pop(),n==null||n.push(s.vs),r++;return r},Ge=(n,t)=>(e,r)=>{if(e.fixorder!==void 0&&r.fixorder!==void 0)return e.fixorder-r.fixorder;if(e.barycenter<r.barycenter)return-1;if(e.barycenter>r.barycenter)return 1;if(t&&e.order!==void 0&&r.order!==void 0){if(e.order<r.order)return-1;if(e.order>r.order)return 1}return n?r.i-e.i:e.i-r.i},Be=(n,t,e,r,s,o)=>{var d,h,p,g;let y=n.getChildren(t).map(W=>W.id);const O=n.getNode(t),L=O?O.data.borderLeft:void 0,R=O?O.data.borderRight:void 0,U={};L&&(y=y==null?void 0:y.filter(W=>W!==L&&W!==R));const F=Pe(n,y||[]);F==null||F.forEach(W=>{var Y;if(!((Y=n.getChildren(W.v))===null||Y===void 0)&&Y.length){const X=Be(n,W.v,e,r,o);U[W.v]=X,X.hasOwnProperty("barycenter")&&Ar(W,X)}});const z=sn(F,e);Ae(z,U),(d=z.filter(W=>W.vs.length>0))===null||d===void 0||d.forEach(W=>{const Y=n.getNode(W.vs[0]);Y&&(W.fixorder=Y.data.fixorder,W.order=Y.data.order)});const C=ne(z,r,s,o);if(L&&(C.vs=[L,C.vs,R].flat(),!((h=n.getPredecessors(L))===null||h===void 0)&&h.length)){const W=n.getNode(((p=n.getPredecessors(L))===null||p===void 0?void 0:p[0].id)||""),Y=n.getNode(((g=n.getPredecessors(R))===null||g===void 0?void 0:g[0].id)||"");C.hasOwnProperty("barycenter")||(C.barycenter=0,C.weight=0),C.barycenter=(C.barycenter*C.weight+W.data.order+Y.data.order)/(C.weight+2),C.weight+=2}return C},Ae=(n,t)=>{n==null||n.forEach(e=>{var r;const s=(r=e.vs)===null||r===void 0?void 0:r.map(o=>t[o]?t[o].vs:o);e.vs=s.flat()})},Ar=(n,t)=>{n.barycenter!==void 0?(n.barycenter=(n.barycenter*n.weight+t.barycenter*t.weight)/(n.weight+t.weight),n.weight+=t.weight):(n.barycenter=t.barycenter,n.weight=t.weight)},Tr=(n,t)=>{const e=T(n),r=[],s=[];for(let y=1;y<e+1;y++)r.push(y);for(let y=e-1;y>-1;y--)s.push(y);const o=ar(n,r,"in"),d=ar(n,s,"out");let h=pe(n);Xn(n,h);let p=Number.POSITIVE_INFINITY,g;for(let y=0,O=0;O<4;++y,++O){ur(y%2?o:d,y%4>=2,!1,t),h=Sn(n);const L=he(n,h);L<p&&(O=0,g=mt(h),p=L)}h=pe(n),Xn(n,h);for(let y=0,O=0;O<4;++y,++O){ur(y%2?o:d,y%4>=2,!0,t),h=Sn(n);const L=he(n,h);L<p&&(O=0,g=mt(h),p=L)}Xn(n,g)},ar=(n,t,e)=>t.map(r=>Nt(n,r,e)),ur=(n,t,e,r)=>{const s=new xe;n==null||n.forEach(o=>{var d;const h=o.getRoots()[0].id,p=Be(o,h,s,t,e,r);for(let g=0;g<((d=p.vs)===null||d===void 0?void 0:d.length);g++){const y=o.getNode(p.vs[g]);y&&(y.data.order=g)}Rt(o,s,p.vs)})},Xn=(n,t)=>{t==null||t.forEach(e=>{e==null||e.forEach((r,s)=>{n.getNode(r).data.order=s})})},jr=(n,t)=>{const r=n.getAllNodes().filter(d=>{var h;return!(!((h=n.getChildren(d.id))===null||h===void 0)&&h.length)}).map(d=>d.data.rank),s=Math.max(...r),o=[];for(let d=0;d<s+1;d++)o[d]=[];t==null||t.forEach(d=>{const h=n.getNode(d);!h||h.data.dummy||isNaN(h.data.rank)||(h.data.fixorder=o[h.data.rank].length,o[h.data.rank].push(d))})},Ir=n=>{const t={};let e=0;const r=s=>{const o=e;n.getChildren(s).forEach(d=>r(d.id)),t[s]={low:o,lim:e++}};return n.getRoots().forEach(s=>r(s.id)),t},Pr=(n,t,e,r)=>{var s,o;const d=[],h=[],p=Math.min(t[e].low,t[r].low),g=Math.max(t[e].lim,t[r].lim);let y,O;y=e;do y=(s=n.getParent(y))===null||s===void 0?void 0:s.id,d.push(y);while(y&&(t[y].low>p||g>t[y].lim));for(O=y,y=r;y&&y!==O;)h.push(y),y=(o=n.getParent(y))===null||o===void 0?void 0:o.id;return{lca:O,path:d.concat(h.reverse())}},Lr=(n,t)=>{const e=Ir(n);t.forEach(r=>{var s,o;let d=r,h=n.getNode(d);const p=h.data.originalEdge;if(!p)return;const g=Pr(n,e,p.source,p.target),y=g.path,O=g.lca;let L=0,R=y[L],U=!0;for(;d!==p.target;){if(h=n.getNode(d),U){for(;R!==O&&((s=n.getNode(R))===null||s===void 0?void 0:s.data.maxRank)<h.data.rank;)L++,R=y[L];R===O&&(U=!1)}if(!U){for(;L<y.length-1&&((o=n.getNode(y[L+1]))===null||o===void 0?void 0:o.data.minRank)<=h.data.rank;)L++;R=y[L]}n.hasNode(R)&&n.setParent(d,R),d=n.getSuccessors(d)[0].id}})},os=(n,t)=>{const e={},r=(s,o)=>{let d=0,h=0;const p=s.length,g=o==null?void 0:o[(o==null?void 0:o.length)-1];return o==null||o.forEach((y,O)=>{var L;const R=mi(n,y),U=R?n.getNode(R.id).data.order:p;(R||y===g)&&((L=o.slice(h,O+1))===null||L===void 0||L.forEach(F=>{var z;(z=n.getPredecessors(F))===null||z===void 0||z.forEach(C=>{var W;const Y=n.getNode(C.id),X=Y.data.order;(X<d||U<X)&&!(Y.data.dummy&&(!((W=n.getNode(F))===null||W===void 0)&&W.data.dummy))&&us(e,C.id,F)})}),h=O+1,d=U)}),o};return t!=null&&t.length&&t.reduce(r),e},as=(n,t)=>{const e={};function r(h,p,g,y,O){var L,R;let U;for(let F=p;F<g;F++)U=h[F],!((L=n.getNode(U))===null||L===void 0)&&L.data.dummy&&((R=n.getPredecessors(U))===null||R===void 0||R.forEach(z=>{const C=n.getNode(z.id);C.data.dummy&&(C.data.order<y||C.data.order>O)&&us(e,z.id,U)}))}function s(h){return JSON.stringify(h.slice(1))}function o(h,p){const g=s(h);p.get(g)||(r(...h),p.set(g,!0))}const d=(h,p)=>{let g=-1,y,O=0;const L=new Map;return p==null||p.forEach((R,U)=>{var F;if(((F=n.getNode(R))===null||F===void 0?void 0:F.data.dummy)==="border"){const z=n.getPredecessors(R)||[];z.length&&(y=n.getNode(z[0].id).data.order,o([p,O,U,g,y],L),O=U,g=y)}o([p,O,p.length,y,h.length],L)}),p};return t!=null&&t.length&&t.reduce(d),e},mi=(n,t)=>{var e,r;if(!((e=n.getNode(t))===null||e===void 0)&&e.data.dummy)return(r=n.getPredecessors(t))===null||r===void 0?void 0:r.find(s=>n.getNode(s.id).data.dummy)},us=(n,t,e)=>{let r=t,s=e;if(r>s){const d=r;r=s,s=d}let o=n[r];o||(n[r]=o={}),o[s]=!0},yi=(n,t,e)=>{let r=t,s=e;if(r>s){const o=t;r=s,s=o}return!!n[r]},cs=(n,t,e,r)=>{const s={},o={},d={};return t==null||t.forEach(h=>{h==null||h.forEach((p,g)=>{s[p]=p,o[p]=p,d[p]=g})}),t==null||t.forEach(h=>{let p=-1;h==null||h.forEach(g=>{let y=r(g).map(O=>O.id);if(y.length){y=y.sort((L,R)=>d[L]-d[R]);const O=(y.length-1)/2;for(let L=Math.floor(O),R=Math.ceil(O);L<=R;++L){const U=y[L];o[g]===g&&p<d[U]&&!yi(e,g,U)&&(o[U]=g,o[g]=s[g]=s[U],p=d[U])}}})}),{root:s,align:o}},fs=(n,t,e,r,s,o,d)=>{var h;const p={},g=wi(n,t,e,s,o,d),y=d?"borderLeft":"borderRight",O=(U,F)=>{let z=g.getAllNodes(),C=z.pop();const W={};for(;C;)W[C.id]?U(C.id):(W[C.id]=!0,z.push(C),z=z.concat(F(C.id))),C=z.pop()},L=U=>{p[U]=(g.getRelatedEdges(U,"in")||[]).reduce((F,z)=>Math.max(F,(p[z.source]||0)+z.data.weight),0)},R=U=>{const F=(g.getRelatedEdges(U,"out")||[]).reduce((C,W)=>Math.min(C,(p[W.target]||0)-W.data.weight),Number.POSITIVE_INFINITY),z=n.getNode(U);F!==Number.POSITIVE_INFINITY&&z.data.borderType!==y&&(p[U]=Math.max(p[U],F))};return O(L,g.getPredecessors.bind(g)),O(R,g.getSuccessors.bind(g)),(h=Object.values(r))===null||h===void 0||h.forEach(U=>{p[U]=p[e[U]]}),p},wi=(n,t,e,r,s,o)=>{const d=new xe,h=xi(r,s,o);return t==null||t.forEach(p=>{let g;p==null||p.forEach(y=>{const O=e[y];if(d.hasNode(O)||d.addNode({id:O,data:{}}),g){const L=e[g],R=d.getRelatedEdges(L,"out").find(U=>U.target===O);R?d.updateEdgeData(R.id,Object.assign(Object.assign({},R.data),{weight:Math.max(h(n,y,g),R.data.weight||0)})):d.addEdge({id:`e${Math.random()}`,source:L,target:O,data:{weight:Math.max(h(n,y,g),0)}})}g=y})}),d},ls=(n,t)=>c(Object.values(t),e=>{var r;let s=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;return(r=Object.keys(e))===null||r===void 0||r.forEach(d=>{const h=e[d],p=Ei(n,d)/2;s=Math.max(h+p,s),o=Math.min(h-p,o)}),s-o});function ds(n,t){const e=Object.values(t),r=Math.min(...e),s=Math.max(...e);["u","d"].forEach(o=>{["l","r"].forEach(d=>{const h=o+d,p=n[h];let g;if(p===t)return;const y=Object.values(p);g=d==="l"?r-Math.min(...y):s-Math.max(...y),g&&(n[h]={},Object.keys(p).forEach(O=>{n[h][O]=p[O]+g}))})})}const hs=(n,t)=>{const e={};return Object.keys(n.ul).forEach(r=>{if(t)e[r]=n[t.toLowerCase()][r];else{const s=Object.values(n).map(o=>o[r]);e[r]=(s[0]+s[1])/2}}),e},pc=(n,t)=>{const{align:e,nodesep:r=0,edgesep:s=0}=t||{},o=buildLayerMatrix(n),d=Object.assign(os(n,o),as(n,o)),h={};let p;["u","d"].forEach(y=>{p=y==="u"?o:Object.values(o).reverse(),["l","r"].forEach(O=>{O==="r"&&(p=p.map(F=>Object.values(F).reverse()));const L=(y==="u"?n.getPredecessors:n.getSuccessors).bind(n),R=cs(n,p,d,L),U=fs(n,p,R.root,R.align,r,s,O==="r");O==="r"&&Object.keys(U).forEach(F=>{U[F]=-U[F]}),h[y+O]=U})});const g=ls(n,h);return ds(h,g),hs(h,e)},xi=(n,t,e)=>(r,s,o)=>{const d=r.getNode(s),h=r.getNode(o);let p=0,g=0;if(p+=d.data.width/2,d.data.hasOwnProperty("labelpos"))switch((d.data.labelpos||"").toLowerCase()){case"l":g=-d.data.width/2;break;case"r":g=d.data.width/2;break}if(g&&(p+=e?g:-g),g=0,p+=(d.data.dummy?t:n)/2,p+=(h.data.dummy?t:n)/2,p+=h.data.width/2,h.data.labelpos)switch((h.data.labelpos||"").toLowerCase()){case"l":g=h.data.width/2;break;case"r":g=-h.data.width/2;break}return g&&(p+=e?g:-g),g=0,p},Ei=(n,t)=>n.getNode(t).data.width||0,bi=(n,t)=>{const{ranksep:e=0}=t||{},r=Sn(n);let s=0;r==null||r.forEach(o=>{const d=o.map(p=>n.getNode(p).data.height),h=Math.max(...d,0);o==null||o.forEach(p=>{n.getNode(p).data.y=s+h/2}),s+=h+e})},Ni=(n,t)=>{const{align:e,nodesep:r=0,edgesep:s=0}=t||{},o=Sn(n),d=Object.assign(os(n,o),as(n,o)),h={};let p=[];["u","d"].forEach(y=>{p=y==="u"?o:Object.values(o).reverse(),["l","r"].forEach(O=>{O==="r"&&(p=p.map(F=>Object.values(F).reverse()));const L=(y==="u"?n.getPredecessors:n.getSuccessors).bind(n),R=cs(n,p,d,L),U=fs(n,p,R.root,R.align,r,s,O==="r");O==="r"&&Object.keys(U).forEach(F=>U[F]=-U[F]),h[y+O]=U})});const g=ls(n,h);return g&&ds(h,g),hs(h,e)},Mi=(n,t)=>{var e;const r=sr(n);bi(r,t);const s=Ni(r,t);(e=Object.keys(s))===null||e===void 0||e.forEach(o=>{r.getNode(o).data.x=s[o]})},gs=n=>{const t={},e=r=>{var s;const o=n.getNode(r);if(!o)return 0;if(t[r])return o.data.rank;t[r]=!0;let d;return(s=n.getRelatedEdges(r,"out"))===null||s===void 0||s.forEach(h=>{const p=e(h.target),g=h.data.minlen,y=p-g;y&&(d===void 0||y<d)&&(d=y)}),d||(d=0),o.data.rank=d,d};n.getAllNodes().filter(r=>n.getRelatedEdges(r.id,"in").length===0).forEach(r=>e(r.id))},Si=n=>{const t={};let e;const r=d=>{var h;const p=n.getNode(d);if(!p)return 0;if(t[d])return p.data.rank;t[d]=!0;let g;return(h=n.getRelatedEdges(d,"out"))===null||h===void 0||h.forEach(y=>{const O=r(y.target),L=y.data.minlen,R=O-L;R&&(g===void 0||R<g)&&(g=R)}),g||(g=0),(e===void 0||g<e)&&(e=g),p.data.rank=g,g};n.getAllNodes().filter(d=>n.getRelatedEdges(d.id,"in").length===0).forEach(d=>{d&&r(d.id)}),e===void 0&&(e=0);const s={},o=(d,h)=>{var p;const g=n.getNode(d),y=isNaN(g.data.layer)?h:g.data.layer;(g.data.rank===void 0||g.data.rank<y)&&(g.data.rank=y),!s[d]&&(s[d]=!0,(p=n.getRelatedEdges(d,"out"))===null||p===void 0||p.forEach(O=>{o(O.target,y+O.data.minlen)}))};n.getAllNodes().forEach(d=>{const h=d.data;h&&(isNaN(h.layer)?h.rank-=e:o(d.id,h.layer))})},En=(n,t)=>n.getNode(t.target).data.rank-n.getNode(t.source).data.rank-t.data.minlen,Oi=n=>{const t=new xe({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let s,o;for(;Ai(t,n)<r;)s=ps(t,n),o=t.hasNode(s.source)?En(n,s):-En(n,s),vs(t,n,o);return t},Ai=(n,t)=>{const e=r=>{t.getRelatedEdges(r,"both").forEach(s=>{const o=s.source,d=r===o?s.target:o;!n.hasNode(d)&&!En(t,s)&&(n.addNode({id:d,data:{}}),n.addEdge({id:s.id,source:r,target:d,data:{}}),e(d))})};return n.getAllNodes().forEach(r=>e(r.id)),n.getAllNodes().length},Ti=n=>{const t=new xe({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let s,o;for(;ji(t,n)<r;)s=ps(t,n),o=t.hasNode(s.source)?En(n,s):-En(n,s),vs(t,n,o);return t},ji=(n,t)=>{const e=r=>{var s;(s=t.getRelatedEdges(r,"both"))===null||s===void 0||s.forEach(o=>{const d=o.source,h=r===d?o.target:d;!n.hasNode(h)&&(t.getNode(h).data.layer!==void 0||!En(t,o))&&(n.addNode({id:h,data:{}}),n.addEdge({id:o.id,source:r,target:h,data:{}}),e(h))})};return n.getAllNodes().forEach(r=>e(r.id)),n.getAllNodes().length},ps=(n,t)=>c(t.getAllEdges(),e=>n.hasNode(e.source)!==n.hasNode(e.target)?En(t,e):1/0),vs=(n,t,e)=>{n.getAllNodes().forEach(r=>{const s=t.getNode(r.id);s.data.rank||(s.data.rank=0),s.data.rank+=e})},Ii=n=>{const t=Or(n);gs(t);const e=Oi(t);ys(e),ms(e,t);let r,s;for(;r=Ri(e);)s=Ci(e,t,r),Di(e,t,r,s)},ms=(n,t)=>{let e=f(n,n.getAllNodes(),"post",!1);e=e.slice(0,(e==null?void 0:e.length)-1),e.forEach(r=>{Pi(n,t,r)})},Pi=(n,t,e)=>{const s=n.getNode(e).data.parent,o=n.getRelatedEdges(e,"both").find(d=>d.target===s||d.source===s);o.data.cutvalue=Li(n,t,e)},Li=(n,t,e)=>{const s=n.getNode(e).data.parent;let o=!0,d=t.getRelatedEdges(e,"out").find(p=>p.target===s),h=0;return d||(o=!1,d=t.getRelatedEdges(s,"out").find(p=>p.target===e)),h=d.data.weight,t.getRelatedEdges(e,"both").forEach(p=>{const g=p.source===e,y=g?p.target:p.source;if(y!==s){const O=g===o,L=p.data.weight;if(h+=O?L:-L,Fi(n,e,y)){const R=n.getRelatedEdges(e,"both").find(U=>U.source===y||U.target===y).data.cutvalue;h+=O?-R:R}}}),h},ys=(n,t=n.getAllNodes()[0].id)=>{ws(n,{},1,t)},ws=(n,t,e,r,s)=>{var o;const d=e;let h=e;const p=n.getNode(r);return t[r]=!0,(o=n.getNeighbors(r))===null||o===void 0||o.forEach(g=>{t[g.id]||(h=ws(n,t,h,g.id,r))}),p.data.low=d,p.data.lim=h++,s?p.data.parent=s:delete p.data.parent,h},Ri=n=>n.getAllEdges().find(t=>t.data.cutvalue<0),Ci=(n,t,e)=>{let r=e.source,s=e.target;t.getRelatedEdges(r,"out").find(y=>y.target===s)||(r=e.target,s=e.source);const o=n.getNode(r),d=n.getNode(s);let h=o,p=!1;o.data.lim>d.data.lim&&(h=d,p=!0);const g=t.getAllEdges().filter(y=>p===xs(n.getNode(y.source),h)&&p!==xs(n.getNode(y.target),h));return c(g,y=>En(t,y))},Di=(n,t,e,r)=>{const s=n.getRelatedEdges(e.source,"both").find(o=>o.source===e.target||o.target===e.target);s&&n.removeEdge(s.id),n.addEdge({id:`e${Math.random()}`,source:r.source,target:r.target,data:{}}),ys(n),ms(n,t),zi(n,t)},zi=(n,t)=>{const e=n.getAllNodes().find(s=>!s.data.parent);let r=f(n,e,"pre",!1);r=r.slice(1),r.forEach(s=>{const o=n.getNode(s).data.parent;let d=t.getRelatedEdges(s,"out").find(p=>p.target===o),h=!1;!d&&t.hasNode(o)&&(d=t.getRelatedEdges(o,"out").find(p=>p.target===s),h=!0),t.getNode(s).data.rank=(t.hasNode(o)&&t.getNode(o).data.rank||0)+(h?d==null?void 0:d.data.minlen:-(d==null?void 0:d.data.minlen))})},Fi=(n,t,e)=>n.getRelatedEdges(t,"both").find(r=>r.source===e||r.target===e),xs=(n,t)=>t.data.low<=n.data.lim&&n.data.lim<=t.data.lim,ki=(n,t)=>{switch(t){case"network-simplex":Ui(n);break;case"tight-tree":Es(n);break;case"longest-path":Bi(n);break;default:Es(n)}},Bi=gs,Es=n=>{Si(n),Ti(n)},Ui=n=>{Ii(n)},Vi=(n,t)=>{const{edgeLabelSpace:e,keepNodeOrder:r,prevGraph:s,rankdir:o,ranksep:d}=t;!r&&s&&Wi(n,s);const h=Ji(n);e&&(t.ranksep=Qi(h,{rankdir:o,ranksep:d}));let p;try{p=Gi(h,t)}catch(g){if(g.message==="Not possible to find intersection inside of the rectangle"){console.error(`The following error may be caused by improper layer setting, please make sure your manual layer setting does not violate the graph's structure:
|
|
|
`,g);return}throw g}return Yi(n,h),p},Gi=(n,t)=>{const{acyclicer:e,ranker:r,rankdir:s="tb",nodeOrder:o,keepNodeOrder:d,align:h,nodesep:p=50,edgesep:g=20,ranksep:y=50}=t;io(n),Cn(n,e);const{nestingRoot:O,nodeRankFactor:L}=pt(n);ki(sr(n),r),_i(n),or(n,L),Ct(n,O),Dn(n),Hi(n),qi(n);const R=[];ye(n,R),Lr(n,R),m(n),d&&jr(n,o),Tr(n,d),oo(n),B(n,s),Mi(n,{align:h,nodesep:p,edgesep:g,ranksep:y}),ao(n),so(n),Yt(n,R),no(n),G(n,s);const{width:U,height:F}=to(n);return eo(n),ro(n),Mr(n),{width:U,height:F}},Wi=(n,t)=>{n.getAllNodes().forEach(e=>{const r=n.getNode(e.id);if(t.hasNode(e.id)){const s=t.getNode(e.id);r.data.fixorder=s.data._order,delete s.data._order}else delete r.data.fixorder})},Yi=(n,t)=>{n.getAllNodes().forEach(e=>{var r;const s=n.getNode(e.id);if(s){const o=t.getNode(e.id);s.data.x=o.data.x,s.data.y=o.data.y,s.data._order=o.data.order,s.data._rank=o.data.rank,!((r=t.getChildren(e.id))===null||r===void 0)&&r.length&&(s.data.width=o.data.width,s.data.height=o.data.height)}}),n.getAllEdges().forEach(e=>{const r=n.getEdge(e.id),s=t.getEdge(e.id);r.data.points=s?s.data.points:[],s&&s.data.hasOwnProperty("x")&&(r.data.x=s.data.x,r.data.y=s.data.y)})},$i=["width","height","layer","fixorder"],Xi={width:0,height:0},Ki=["minlen","weight","width","height","labeloffset"],Zi={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Rr=["labelpos"],Ji=n=>{const t=new xe({tree:[]});return n.getAllNodes().forEach(e=>{const r=Ns(n.getNode(e.id).data),s=Object.assign(Object.assign({},Xi),r),o=bs(s,$i);t.hasNode(e.id)||t.addNode({id:e.id,data:Object.assign({},o)});const d=n.hasTreeStructure("combo")?n.getParent(e.id,"combo"):n.getParent(e.id);Pn(d)||(t.hasNode(d.id)||t.addNode(Object.assign({},d)),t.setParent(e.id,d.id))}),n.getAllEdges().forEach(e=>{const r=Ns(n.getEdge(e.id).data),s={};Rr==null||Rr.forEach(o=>{r[o]!==void 0&&(s[o]=r[o])}),t.addEdge({id:e.id,source:e.source,target:e.target,data:Object.assign({},Zi,bs(r,Ki),s)})}),t},Qi=(n,t)=>{const{ranksep:e=0,rankdir:r}=t;return n.getAllNodes().forEach(s=>{isNaN(s.data.layer)||s.data.layer||(s.data.layer=0)}),n.getAllEdges().forEach(s=>{var o;s.data.minlen*=2,((o=s.data.labelpos)===null||o===void 0?void 0:o.toLowerCase())!=="c"&&(r==="TB"||r==="BT"?s.data.width+=s.data.labeloffset:s.data.height+=s.data.labeloffset)}),e/2},_i=n=>{n.getAllEdges().forEach(t=>{if(t.data.width&&t.data.height){const e=n.getNode(t.source),r=n.getNode(t.target),s={e:t,rank:(r.data.rank-e.data.rank)/2+e.data.rank};xn(n,"edge-proxy",s,"_ep")}})},Hi=n=>{let t=0;return n.getAllNodes().forEach(e=>{var r,s;e.data.borderTop&&(e.data.minRank=(r=n.getNode(e.data.borderTop))===null||r===void 0?void 0:r.data.rank,e.data.maxRank=(s=n.getNode(e.data.borderBottom))===null||s===void 0?void 0:s.data.rank,t=Math.max(t,e.data.maxRank||-1/0))}),t},qi=n=>{n.getAllNodes().forEach(t=>{t.data.dummy==="edge-proxy"&&(n.getEdge(t.data.e.id).data.labelRank=t.data.rank,n.removeNode(t.id))})},to=(n,t)=>{let e,r=0,s,o=0;const{marginx:d=0,marginy:h=0}=t||{},p=g=>{if(!g.data)return;const y=g.data.x,O=g.data.y,L=g.data.width,R=g.data.height;!isNaN(y)&&!isNaN(L)&&(e===void 0&&(e=y-L/2),e=Math.min(e,y-L/2),r=Math.max(r,y+L/2)),!isNaN(O)&&!isNaN(R)&&(s===void 0&&(s=O-R/2),s=Math.min(s,O-R/2),o=Math.max(o,O+R/2))};return n.getAllNodes().forEach(g=>{p(g)}),n.getAllEdges().forEach(g=>{g!=null&&g.data.hasOwnProperty("x")&&p(g)}),e-=d,s-=h,n.getAllNodes().forEach(g=>{g.data.x-=e,g.data.y-=s}),n.getAllEdges().forEach(g=>{var y;(y=g.data.points)===null||y===void 0||y.forEach(O=>{O.x-=e,O.y-=s}),g.data.hasOwnProperty("x")&&(g.data.x-=e),g.data.hasOwnProperty("y")&&(g.data.y-=s)}),{width:r-e+d,height:o-s+h}},eo=n=>{n.getAllEdges().forEach(t=>{const e=n.getNode(t.source),r=n.getNode(t.target);let s,o;t.data.points?(s=t.data.points[0],o=t.data.points[t.data.points.length-1]):(t.data.points=[],s={x:r.data.x,y:r.data.y},o={x:e.data.x,y:e.data.y}),t.data.points.unshift(ir(e.data,s)),t.data.points.push(ir(r.data,o))})},no=n=>{n.getAllEdges().forEach(t=>{if(t.data.hasOwnProperty("x"))switch((t.data.labelpos==="l"||t.data.labelpos==="r")&&(t.data.width-=t.data.labeloffset),t.data.labelpos){case"l":t.data.x-=t.data.width/2+t.data.labeloffset;break;case"r":t.data.x+=t.data.width/2+t.data.labeloffset;break}})},ro=n=>{n.getAllEdges().forEach(t=>{var e;t.data.reversed&&((e=t.data.points)===null||e===void 0||e.reverse())})},so=n=>{n.getAllNodes().forEach(t=>{var e,r,s;if(!((e=n.getChildren(t.id))===null||e===void 0)&&e.length){const o=n.getNode(t.id),d=n.getNode(o.data.borderTop),h=n.getNode(o.data.borderBottom),p=n.getNode(o.data.borderLeft[((r=o.data.borderLeft)===null||r===void 0?void 0:r.length)-1]),g=n.getNode(o.data.borderRight[((s=o.data.borderRight)===null||s===void 0?void 0:s.length)-1]);o.data.width=Math.abs((g==null?void 0:g.data.x)-(p==null?void 0:p.data.x))||10,o.data.height=Math.abs((h==null?void 0:h.data.y)-(d==null?void 0:d.data.y))||10,o.data.x=((p==null?void 0:p.data.x)||0)+o.data.width/2,o.data.y=((d==null?void 0:d.data.y)||0)+o.data.height/2}}),n.getAllNodes().forEach(t=>{t.data.dummy==="border"&&n.removeNode(t.id)})},io=n=>{n.getAllEdges().forEach(t=>{if(t.source===t.target){const e=n.getNode(t.source);e.data.selfEdges||(e.data.selfEdges=[]),e.data.selfEdges.push(t),n.removeEdge(t.id)}})},oo=n=>{const t=Sn(n);t==null||t.forEach(e=>{let r=0;e==null||e.forEach((s,o)=>{var d;const h=n.getNode(s);h.data.order=o+r,(d=h.data.selfEdges)===null||d===void 0||d.forEach(p=>{xn(n,"selfedge",{width:p.data.width,height:p.data.height,rank:h.data.rank,order:o+ ++r,e:p},"_se")}),delete h.data.selfEdges})})},ao=n=>{n.getAllNodes().forEach(t=>{const e=n.getNode(t.id);if(e.data.dummy==="selfedge"){const r=n.getNode(e.data.e.source),s=r.data.x+r.data.width/2,o=r.data.y,d=e.data.x-s,h=r.data.height/2;n.hasEdge(e.data.e.id)?n.updateEdgeData(e.data.e.id,e.data.e.data):n.addEdge({id:e.data.e.id,source:e.data.e.source,target:e.data.e.target,data:e.data.e.data}),n.removeNode(t.id),e.data.e.data.points=[{x:s+2*d/3,y:o-h},{x:s+5*d/6,y:o-h},{y:o,x:s+d},{x:s+5*d/6,y:o+h},{x:s+2*d/3,y:o+h}],e.data.e.data.x=e.data.x,e.data.e.data.y=e.data.y}})},bs=(n,t)=>{const e={};return t==null||t.forEach(r=>{n[r]!==void 0&&(e[r]=+n[r])}),e},Ns=(n={})=>{const t={};return Object.keys(n).forEach(e=>{t[e.toLowerCase()]=n[e]}),t};function dn(n){return typeof n=="function"}var zn=function(n){var t=typeof n;return n!==null&&t==="object"||t==="function"};function Kn(n){if(!n)return[0,0,0];if($t(n))return[n,n,n];if(n.length===0)return[0,0,0];const[t,e=t,r=t]=n;return[t,e,r]}function On(n,t){let e;return dn(t)?e=t:$t(t)?e=()=>t:e=()=>n,e}function Cr(n,t,e=!0){return!t&&t!==0?r=>{const{size:s}=r.data||{};return s?Array.isArray(s)?e?Math.max(...s)||n:s:zn(s)&&s.width&&s.height?e?Math.max(s.width,s.height)||n:[s.width,s.height]:s:n}:dn(t)?t:$t(t)?()=>t:Array.isArray(t)?()=>e?Math.max(...t)||n:t:zn(t)&&t.width&&t.height?()=>e?Math.max(t.width,t.height)||n:[t.width,t.height]:()=>n}const Dr=(n,t,e=10)=>{let r;const s=typeof t=="function"?t:()=>t||0;return n?Array.isArray(n)?r=d=>n:dn(n)?r=n:r=d=>n:r=d=>{var h,p,g;if(!((h=d.data)===null||h===void 0)&&h.bboxSize)return(p=d.data)===null||p===void 0?void 0:p.bboxSize;if(!((g=d.data)===null||g===void 0)&&g.size){const y=d.data.size;return Array.isArray(y)?y:zn(y)?[y.width,y.height]:y}return e},d=>{const h=r(d),p=s(d);return Math.max(...Kn(h))+p}},zr=n=>{if(n===null)return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof Array){const t=[];return n.forEach(e=>{t.push(e)}),t.map(e=>zr(e))}if(typeof n=="object"){const t={};return Object.keys(n).forEach(e=>{t[e]=zr(n[e])}),t}return n},Je=(n,t)=>{const e=zr(n);return e.data=e.data||{},t&&($t(e.data.x)||(e.data.x=Math.random()*t[0]),$t(e.data.y)||(e.data.y=Math.random()*t[1])),e},uo={rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class co{constructor(t={}){this.options=t,this.id="antv-dagre",this.options=Object.assign(Object.assign({},uo),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,e)})}genericDagreLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=Object.assign(Object.assign({},this.options),r),{nodeSize:o,align:d,rankdir:h="TB",ranksep:p,nodesep:g,ranksepFunc:y,nodesepFunc:O,edgeLabelSpace:L,ranker:R,nodeOrder:U,begin:F,controlPoints:z,radial:C,sortByCombo:W,preset:Y}=s,X=new xe({tree:[]}),q=On(p||50,y),st=On(g||50,O);let ut=st,Q=q;(h==="LR"||h==="RL")&&(ut=q,Q=st);const vt=Cr(10,o,!1),Et=e.getAllNodes(),Tt=e.getAllEdges();Et.forEach(bt=>{const Bt=Kn(vt(bt)),_t=Q(bt),Xt=ut(bt),ie=Bt[0]+2*Xt,le=Bt[1]+2*_t,Qt=bt.data.layer;$t(Qt)?X.addNode({id:bt.id,data:{width:ie,height:le,layer:Qt}}):X.addNode({id:bt.id,data:{width:ie,height:le}})}),W&&(X.attachTreeStructure("combo"),Et.forEach(bt=>{const{parentId:Bt}=bt.data;Bt!==void 0&&X.hasNode(Bt)&&X.setParent(bt.id,Bt,"combo")})),Tt.forEach(bt=>{X.addEdge({id:bt.id,source:bt.source,target:bt.target,data:{weight:bt.data.weight||1}})});let Pt;Y!=null&&Y.length&&(Pt=new xe({nodes:Y})),Vi(X,{prevGraph:Pt,edgeLabelSpace:L,keepNodeOrder:!!U,nodeOrder:U||[],acyclicer:"greedy",ranker:R,rankdir:h,nodesep:g,align:d});const Dt=[0,0];if(F){let bt=1/0,Bt=1/0;X.getAllNodes().forEach(_t=>{bt>_t.data.x&&(bt=_t.data.x),Bt>_t.data.y&&(Bt=_t.data.y)}),X.getAllEdges().forEach(_t=>{var Xt;(Xt=_t.data.points)===null||Xt===void 0||Xt.forEach(ie=>{bt>ie.x&&(bt=ie.x),Bt>ie.y&&(Bt=ie.y)})}),Dt[0]=F[0]-bt,Dt[1]=F[1]-Bt}const Gt=h==="LR"||h==="RL";if(!C){const bt=new Set,_t=h==="BT"||h==="RL"?(Qt,oe)=>oe-Qt:(Qt,oe)=>Qt-oe;X.getAllNodes().forEach(Qt=>{Qt.data.x=Qt.data.x+Dt[0],Qt.data.y=Qt.data.y+Dt[1],bt.add(Gt?Qt.data.x:Qt.data.y)});const Xt=Array.from(bt).sort(_t),ie=Gt?(Qt,oe)=>Qt.x!==oe.x:(Qt,oe)=>Qt.y!==oe.y,le=Gt?(Qt,oe,je)=>{const Ee=Math.max(oe.y,je.y),qe=Math.min(oe.y,je.y);return Qt.filter(vn=>vn.y<=Ee&&vn.y>=qe)}:(Qt,oe,je)=>{const Ee=Math.max(oe.x,je.x),qe=Math.min(oe.x,je.x);return Qt.filter(vn=>vn.x<=Ee&&vn.x>=qe)};X.getAllEdges().forEach((Qt,oe)=>{var je;L&&z&&Qt.data.type!=="loop"&&(Qt.data.controlPoints=fo((je=Qt.data.points)===null||je===void 0?void 0:je.map(({x:Ee,y:qe})=>({x:Ee+Dt[0],y:qe+Dt[1]})),X.getNode(Qt.source),X.getNode(Qt.target),Xt,Gt,ie,le))})}let zt=[];zt=X.getAllNodes().map(bt=>Je(bt));const Jt=X.getAllEdges();return t&&(zt.forEach(bt=>{e.mergeNodeData(bt.id,{x:bt.data.x,y:bt.data.y})}),Jt.forEach(bt=>{e.mergeEdgeData(bt.id,{controlPoints:bt.data.controlPoints})})),{nodes:zt,edges:Jt}})}}const fo=(n,t,e,r,s,o,d)=>{let h=(n==null?void 0:n.slice(1,n.length-1))||[];if(t&&e){let{x:p,y:g}=t.data,{x:y,y:O}=e.data;if(s&&(p=t.data.y,g=t.data.x,y=e.data.y,O=e.data.x),O!==g&&p!==y){const L=r.indexOf(g),R=r[L+1];if(R){const z=h[0],C=s?{x:(g+R)/2,y:(z==null?void 0:z.y)||y}:{x:(z==null?void 0:z.x)||y,y:(g+R)/2};(!z||o(z,C))&&h.unshift(C)}const U=r.indexOf(O),F=Math.abs(U-L);if(F===1)h=d(h,t.data,e.data),h.length||h.push(s?{x:(g+O)/2,y:p}:{x:p,y:(g+O)/2});else if(F>1){const z=r[U-1];if(z){const C=h[h.length-1],W=s?{x:(O+z)/2,y:(C==null?void 0:C.y)||y}:{x:(C==null?void 0:C.x)||p,y:(O+z)/2};(!C||o(C,W))&&h.push(W)}}}}return h},An=(n,t,e)=>{const r=n.getAllNodes(),s=n.getAllEdges();if(!(r!=null&&r.length))return{nodes:[],edges:s};if(r.length===1)return t&&n.mergeNodeData(r[0].id,{x:e[0],y:e[1]}),{nodes:[Object.assign(Object.assign({},r[0]),{data:Object.assign(Object.assign({},r[0].data),{x:e[0],y:e[1]})})],edges:s}},lo={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1};class ho{constructor(t={}){this.options=t,this.id="circular",this.options=Object.assign(Object.assign({},lo),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericCircularLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericCircularLayout(!0,t,e)})}genericCircularLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=Object.assign(Object.assign({},this.options),r),{width:o,height:d,center:h,divisions:p,startAngle:g=0,endAngle:y=2*Math.PI,angleRatio:O,ordering:L,clockwise:R,nodeSpacing:U,nodeSize:F}=s,z=e.getAllNodes(),C=e.getAllEdges(),[W,Y,X]=po(o,d,h),q=z==null?void 0:z.length;if(!q||q===1)return An(e,t,X);const st=(y-g)/q;let{radius:ut,startRadius:Q,endRadius:vt}=s;if(U){const Gt=On(10,U),zt=Cr(10,F);let Jt=-1/0;z.forEach(bt=>{const Bt=zt(bt);Jt<Bt&&(Jt=Bt)});let fe=0;z.forEach((bt,Bt)=>{Bt===0?fe+=Jt||10:fe+=(Gt(bt)||0)+(Jt||10)}),ut=fe/(2*Math.PI)}else!ut&&!Q&&!vt?ut=Math.min(Y,W)/2:!Q&&vt?Q=vt:Q&&!vt&&(vt=Q);const Et=st*O;let Tt=[];L==="topology"?Tt=Ms(e,z):L==="topology-directed"?Tt=Ms(e,z,!0):L==="degree"?Tt=go(e,z):Tt=z.map(Gt=>Je(Gt));const Pt=Math.ceil(q/p);for(let Gt=0;Gt<q;++Gt){let zt=ut;!zt&&Q!==null&&vt!==null&&(zt=Q+Gt*(vt-Q)/(q-1)),zt||(zt=10+Gt*100/(q-1));let Jt=g+Gt%Pt*Et+2*Math.PI/p*Math.floor(Gt/Pt);R||(Jt=y-Gt%Pt*Et-2*Math.PI/p*Math.floor(Gt/Pt)),Tt[Gt].data.x=X[0]+Math.cos(Jt)*zt,Tt[Gt].data.y=X[1]+Math.sin(Jt)*zt}return t&&Tt.forEach(Gt=>{e.mergeNodeData(Gt.id,{x:Gt.data.x,y:Gt.data.y})}),{nodes:Tt,edges:C}})}}const Ms=(n,t,e=!1)=>{const r=[Je(t[0])],s={},o=t.length;s[t[0].id]=!0;let d=0;return t.forEach((h,p)=>{if(p!==0)if((p===o-1||n.getDegree(h.id,"both")!==n.getDegree(t[p+1].id,"both")||n.areNeighbors(r[d].id,h.id))&&!s[h.id])r.push(Je(h)),s[h.id]=!0,d++;else{const g=e?n.getSuccessors(r[d].id):n.getNeighbors(r[d].id);let y=!1;for(let L=0;L<g.length;L++){const R=g[L];if(n.getDegree(R.id)===n.getDegree(h.id)&&!s[R.id]){r.push(Je(R)),s[R.id]=!0,y=!0;break}}let O=0;for(;!y&&(s[t[O].id]||(r.push(Je(t[O])),s[t[O].id]=!0,y=!0),O++,O!==o););}}),r};function go(n,t){const e=[];return t.forEach((r,s)=>{e.push(Je(r))}),e.sort((r,s)=>n.getDegree(r.id,"both")-n.getDegree(s.id,"both")),e}const po=(n,t,e)=>{let r=n,s=t,o=e;return!r&&typeof window!="undefined"&&(r=window.innerWidth),!s&&typeof window!="undefined"&&(s=window.innerHeight),o||(o=[r/2,s/2]),[r,s,o]};function Zn(n){return typeof n=="string"}const hn=Array.isArray,vo={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:3/2*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class Fr{constructor(t={}){this.options=t,this.id="concentric",this.options=Object.assign(Object.assign({},vo),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericConcentricLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericConcentricLayout(!0,t,e)})}genericConcentricLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=Object.assign(Object.assign({},this.options),r),{center:o,width:d,height:h,sortBy:p,maxLevelDiff:g,sweep:y,clockwise:O,equidistant:L,preventOverlap:R,startAngle:U=3/2*Math.PI,nodeSize:F,nodeSpacing:z}=s,C=e.getAllNodes(),W=e.getAllEdges(),Y=!d&&typeof window!="undefined"?window.innerWidth:d,X=!h&&typeof window!="undefined"?window.innerHeight:h,q=o||[Y/2,X/2];if(!(C!=null&&C.length)||C.length===1)return An(e,t,q);const st=[];let ut,Q=0;hn(F)?ut=Math.max(F[0],F[1]):dn(F)?(ut=-1/0,C.forEach(bt=>{const Bt=Math.max(...Kn(F(bt)));Bt>ut&&(ut=Bt)})):ut=F,hn(z)?Q=Math.max(z[0],z[1]):$t(z)&&(Q=z),C.forEach(bt=>{const Bt=Je(bt);st.push(Bt);let _t=ut;const{data:Xt}=Bt;hn(Xt.size)?_t=Math.max(Xt.size[0],Xt.size[1]):$t(Xt.size)?_t=Xt.size:zn(Xt.size)&&(_t=Math.max(Xt.size.width,Xt.size.height)),ut=Math.max(ut,_t),dn(z)&&(Q=Math.max(z(bt),Q))});const vt={};st.forEach((bt,Bt)=>{vt[bt.id]=Bt});let Et=p;(!Zn(Et)||st[0].data[Et]===void 0)&&(Et="degree"),Et==="degree"?st.sort((bt,Bt)=>e.getDegree(Bt.id,"both")-e.getDegree(bt.id,"both")):st.sort((bt,Bt)=>Bt.data[Et]-bt.data[Et]);const Tt=st[0],Pt=(g||(Et==="degree"?e.getDegree(Tt.id,"both"):Tt.data[Et]))/4,Dt=[{nodes:[]}];let Gt=Dt[0];st.forEach(bt=>{if(Gt.nodes.length>0){const Bt=Math.abs(Et==="degree"?e.getDegree(Gt.nodes[0].id,"both")-e.getDegree(bt.id,"both"):Gt.nodes[0].data[Et]-bt.data[Et]);Pt&&Bt>=Pt&&(Gt={nodes:[]},Dt.push(Gt))}Gt.nodes.push(bt)});let zt=ut+Q;if(!R){const bt=Dt.length>0&&Dt[0].nodes.length>1,_t=(Math.min(Y,X)/2-zt)/(Dt.length+(bt?1:0));zt=Math.min(zt,_t)}let Jt=0;if(Dt.forEach(bt=>{const Bt=y===void 0?2*Math.PI-2*Math.PI/bt.nodes.length:y;if(bt.dTheta=Bt/Math.max(1,bt.nodes.length-1),bt.nodes.length>1&&R){const _t=Math.cos(bt.dTheta)-Math.cos(0),Xt=Math.sin(bt.dTheta)-Math.sin(0),ie=Math.sqrt(zt*zt/(_t*_t+Xt*Xt));Jt=Math.max(ie,Jt)}bt.r=Jt,Jt+=zt}),L){let bt=0,Bt=0;for(let _t=0;_t<Dt.length;_t++){const ie=(Dt[_t].r||0)-Bt;bt=Math.max(bt,ie)}Bt=0,Dt.forEach((_t,Xt)=>{Xt===0&&(Bt=_t.r||0),_t.r=Bt,Bt+=bt})}return Dt.forEach(bt=>{const Bt=bt.dTheta||0,_t=bt.r||0;bt.nodes.forEach((Xt,ie)=>{const le=U+(O?1:-1)*Bt*ie;Xt.data.x=q[0]+_t*Math.cos(le),Xt.data.y=q[1]+_t*Math.sin(le)})}),t&&st.forEach(bt=>e.mergeNodeData(bt.id,{x:bt.data.x,y:bt.data.y})),{nodes:st,edges:W}})}}function mo(n){const t=+this._x.call(null,n),e=+this._y.call(null,n);return Ss(this.cover(t,e),t,e,n)}function Ss(n,t,e,r){if(isNaN(t)||isNaN(e))return n;var s,o=n._root,d={data:r},h=n._x0,p=n._y0,g=n._x1,y=n._y1,O,L,R,U,F,z,C,W;if(!o)return n._root=d,n;for(;o.length;)if((F=t>=(O=(h+g)/2))?h=O:g=O,(z=e>=(L=(p+y)/2))?p=L:y=L,s=o,!(o=o[C=z<<1|F]))return s[C]=d,n;if(R=+n._x.call(null,o.data),U=+n._y.call(null,o.data),t===R&&e===U)return d.next=o,s?s[C]=d:n._root=d,n;do s=s?s[C]=new Array(4):n._root=new Array(4),(F=t>=(O=(h+g)/2))?h=O:g=O,(z=e>=(L=(p+y)/2))?p=L:y=L;while((C=z<<1|F)===(W=(U>=L)<<1|R>=O));return s[W]=o,s[C]=d,n}function yo(n){var t,e,r=n.length,s,o,d=new Array(r),h=new Array(r),p=1/0,g=1/0,y=-1/0,O=-1/0;for(e=0;e<r;++e)isNaN(s=+this._x.call(null,t=n[e]))||isNaN(o=+this._y.call(null,t))||(d[e]=s,h[e]=o,s<p&&(p=s),s>y&&(y=s),o<g&&(g=o),o>O&&(O=o));if(p>y||g>O)return this;for(this.cover(p,g).cover(y,O),e=0;e<r;++e)Ss(this,d[e],h[e],n[e]);return this}function wo(n,t){if(isNaN(n=+n)||isNaN(t=+t))return this;var e=this._x0,r=this._y0,s=this._x1,o=this._y1;if(isNaN(e))s=(e=Math.floor(n))+1,o=(r=Math.floor(t))+1;else{for(var d=s-e||1,h=this._root,p,g;e>n||n>=s||r>t||t>=o;)switch(g=(t<r)<<1|n<e,p=new Array(4),p[g]=h,h=p,d*=2,g){case 0:s=e+d,o=r+d;break;case 1:e=s-d,o=r+d;break;case 2:s=e+d,r=o-d;break;case 3:e=s-d,r=o-d;break}this._root&&this._root.length&&(this._root=h)}return this._x0=e,this._y0=r,this._x1=s,this._y1=o,this}function xo(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function Eo(n){return arguments.length?this.cover(+n[0][0],+n[0][1]).cover(+n[1][0],+n[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function We(n,t,e,r,s){this.node=n,this.x0=t,this.y0=e,this.x1=r,this.y1=s}function bo(n,t,e){var r,s=this._x0,o=this._y0,d,h,p,g,y=this._x1,O=this._y1,L=[],R=this._root,U,F;for(R&&L.push(new We(R,s,o,y,O)),e==null?e=1/0:(s=n-e,o=t-e,y=n+e,O=t+e,e*=e);U=L.pop();)if(!(!(R=U.node)||(d=U.x0)>y||(h=U.y0)>O||(p=U.x1)<s||(g=U.y1)<o))if(R.length){var z=(d+p)/2,C=(h+g)/2;L.push(new We(R[3],z,C,p,g),new We(R[2],d,C,z,g),new We(R[1],z,h,p,C),new We(R[0],d,h,z,C)),(F=(t>=C)<<1|n>=z)&&(U=L[L.length-1],L[L.length-1]=L[L.length-1-F],L[L.length-1-F]=U)}else{var W=n-+this._x.call(null,R.data),Y=t-+this._y.call(null,R.data),X=W*W+Y*Y;if(X<e){var q=Math.sqrt(e=X);s=n-q,o=t-q,y=n+q,O=t+q,r=R.data}}return r}function No(n){if(isNaN(y=+this._x.call(null,n))||isNaN(O=+this._y.call(null,n)))return this;var t,e=this._root,r,s,o,d=this._x0,h=this._y0,p=this._x1,g=this._y1,y,O,L,R,U,F,z,C;if(!e)return this;if(e.length)for(;;){if((U=y>=(L=(d+p)/2))?d=L:p=L,(F=O>=(R=(h+g)/2))?h=R:g=R,t=e,!(e=e[z=F<<1|U]))return this;if(!e.length)break;(t[z+1&3]||t[z+2&3]||t[z+3&3])&&(r=t,C=z)}for(;e.data!==n;)if(s=e,!(e=e.next))return this;return(o=e.next)&&delete e.next,s?(o?s.next=o:delete s.next,this):t?(o?t[z]=o:delete t[z],(e=t[0]||t[1]||t[2]||t[3])&&e===(t[3]||t[2]||t[1]||t[0])&&!e.length&&(r?r[C]=e:this._root=e),this):(this._root=o,this)}function Mo(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function So(){return this._root}function Oo(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function Ao(n){var t=[],e,r=this._root,s,o,d,h,p;for(r&&t.push(new We(r,this._x0,this._y0,this._x1,this._y1));e=t.pop();)if(!n(r=e.node,o=e.x0,d=e.y0,h=e.x1,p=e.y1)&&r.length){var g=(o+h)/2,y=(d+p)/2;(s=r[3])&&t.push(new We(s,g,y,h,p)),(s=r[2])&&t.push(new We(s,o,y,g,p)),(s=r[1])&&t.push(new We(s,g,d,h,y)),(s=r[0])&&t.push(new We(s,o,d,g,y))}return this}function To(n){var t=[],e=[],r;for(this._root&&t.push(new We(this._root,this._x0,this._y0,this._x1,this._y1));r=t.pop();){var s=r.node;if(s.length){var o,d=r.x0,h=r.y0,p=r.x1,g=r.y1,y=(d+p)/2,O=(h+g)/2;(o=s[0])&&t.push(new We(o,d,h,y,O)),(o=s[1])&&t.push(new We(o,y,h,p,O)),(o=s[2])&&t.push(new We(o,d,O,y,g)),(o=s[3])&&t.push(new We(o,y,O,p,g))}e.push(r)}for(;r=e.pop();)n(r.node,r.x0,r.y0,r.x1,r.y1);return this}function jo(n){return n[0]}function Io(n){return arguments.length?(this._x=n,this):this._x}function Po(n){return n[1]}function Lo(n){return arguments.length?(this._y=n,this):this._y}function Fn(n,t,e){var r=new kr(t==null?jo:t,e==null?Po:e,NaN,NaN,NaN,NaN);return n==null?r:r.addAll(n)}function kr(n,t,e,r,s,o){this._x=n,this._y=t,this._x0=e,this._y0=r,this._x1=s,this._y1=o,this._root=void 0}function Os(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var Ye=Fn.prototype=kr.prototype;Ye.copy=function(){var n=new kr(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,e,r;if(!t)return n;if(!t.length)return n._root=Os(t),n;for(e=[{source:t,target:n._root=new Array(4)}];t=e.pop();)for(var s=0;s<4;++s)(r=t.source[s])&&(r.length?e.push({source:r,target:t.target[s]=new Array(4)}):t.target[s]=Os(r));return n},Ye.add=mo,Ye.addAll=yo,Ye.cover=wo,Ye.data=xo,Ye.extent=Eo,Ye.find=bo,Ye.remove=No,Ye.removeAll=Mo,Ye.root=So,Ye.size=Oo,Ye.visit=Ao,Ye.visitAfter=To,Ye.x=Io,Ye.y=Lo;function Ro(n){const t=+this._x.call(null,n),e=+this._y.call(null,n),r=+this._z.call(null,n);return As(this.cover(t,e,r),t,e,r,n)}function As(n,t,e,r,s){if(isNaN(t)||isNaN(e)||isNaN(r))return n;var o,d=n._root,h={data:s},p=n._x0,g=n._y0,y=n._z0,O=n._x1,L=n._y1,R=n._z1,U,F,z,C,W,Y,X,q,st,ut,Q;if(!d)return n._root=h,n;for(;d.length;)if((X=t>=(U=(p+O)/2))?p=U:O=U,(q=e>=(F=(g+L)/2))?g=F:L=F,(st=r>=(z=(y+R)/2))?y=z:R=z,o=d,!(d=d[ut=st<<2|q<<1|X]))return o[ut]=h,n;if(C=+n._x.call(null,d.data),W=+n._y.call(null,d.data),Y=+n._z.call(null,d.data),t===C&&e===W&&r===Y)return h.next=d,o?o[ut]=h:n._root=h,n;do o=o?o[ut]=new Array(8):n._root=new Array(8),(X=t>=(U=(p+O)/2))?p=U:O=U,(q=e>=(F=(g+L)/2))?g=F:L=F,(st=r>=(z=(y+R)/2))?y=z:R=z;while((ut=st<<2|q<<1|X)===(Q=(Y>=z)<<2|(W>=F)<<1|C>=U));return o[Q]=d,o[ut]=h,n}function Co(n){Array.isArray(n)||(n=Array.from(n));const t=n.length,e=new Float64Array(t),r=new Float64Array(t),s=new Float64Array(t);let o=1/0,d=1/0,h=1/0,p=-1/0,g=-1/0,y=-1/0;for(let O=0,L,R,U,F;O<t;++O)isNaN(R=+this._x.call(null,L=n[O]))||isNaN(U=+this._y.call(null,L))||isNaN(F=+this._z.call(null,L))||(e[O]=R,r[O]=U,s[O]=F,R<o&&(o=R),R>p&&(p=R),U<d&&(d=U),U>g&&(g=U),F<h&&(h=F),F>y&&(y=F));if(o>p||d>g||h>y)return this;this.cover(o,d,h).cover(p,g,y);for(let O=0;O<t;++O)As(this,e[O],r[O],s[O],n[O]);return this}function Do(n,t,e){if(isNaN(n=+n)||isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,s=this._y0,o=this._z0,d=this._x1,h=this._y1,p=this._z1;if(isNaN(r))d=(r=Math.floor(n))+1,h=(s=Math.floor(t))+1,p=(o=Math.floor(e))+1;else{for(var g=d-r||1,y=this._root,O,L;r>n||n>=d||s>t||t>=h||o>e||e>=p;)switch(L=(e<o)<<2|(t<s)<<1|n<r,O=new Array(8),O[L]=y,y=O,g*=2,L){case 0:d=r+g,h=s+g,p=o+g;break;case 1:r=d-g,h=s+g,p=o+g;break;case 2:d=r+g,s=h-g,p=o+g;break;case 3:r=d-g,s=h-g,p=o+g;break;case 4:d=r+g,h=s+g,o=p-g;break;case 5:r=d-g,h=s+g,o=p-g;break;case 6:d=r+g,s=h-g,o=p-g;break;case 7:r=d-g,s=h-g,o=p-g;break}this._root&&this._root.length&&(this._root=y)}return this._x0=r,this._y0=s,this._z0=o,this._x1=d,this._y1=h,this._z1=p,this}function zo(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function Fo(n){return arguments.length?this.cover(+n[0][0],+n[0][1],+n[0][2]).cover(+n[1][0],+n[1][1],+n[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]}function ve(n,t,e,r,s,o,d){this.node=n,this.x0=t,this.y0=e,this.z0=r,this.x1=s,this.y1=o,this.z1=d}function ko(n,t,e,r){var s,o=this._x0,d=this._y0,h=this._z0,p,g,y,O,L,R,U=this._x1,F=this._y1,z=this._z1,C=[],W=this._root,Y,X;for(W&&C.push(new ve(W,o,d,h,U,F,z)),r==null?r=1/0:(o=n-r,d=t-r,h=e-r,U=n+r,F=t+r,z=e+r,r*=r);Y=C.pop();)if(!(!(W=Y.node)||(p=Y.x0)>U||(g=Y.y0)>F||(y=Y.z0)>z||(O=Y.x1)<o||(L=Y.y1)<d||(R=Y.z1)<h))if(W.length){var q=(p+O)/2,st=(g+L)/2,ut=(y+R)/2;C.push(new ve(W[7],q,st,ut,O,L,R),new ve(W[6],p,st,ut,q,L,R),new ve(W[5],q,g,ut,O,st,R),new ve(W[4],p,g,ut,q,st,R),new ve(W[3],q,st,y,O,L,ut),new ve(W[2],p,st,y,q,L,ut),new ve(W[1],q,g,y,O,st,ut),new ve(W[0],p,g,y,q,st,ut)),(X=(e>=ut)<<2|(t>=st)<<1|n>=q)&&(Y=C[C.length-1],C[C.length-1]=C[C.length-1-X],C[C.length-1-X]=Y)}else{var Q=n-+this._x.call(null,W.data),vt=t-+this._y.call(null,W.data),Et=e-+this._z.call(null,W.data),Tt=Q*Q+vt*vt+Et*Et;if(Tt<r){var Pt=Math.sqrt(r=Tt);o=n-Pt,d=t-Pt,h=e-Pt,U=n+Pt,F=t+Pt,z=e+Pt,s=W.data}}return s}function Bo(n){if(isNaN(L=+this._x.call(null,n))||isNaN(R=+this._y.call(null,n))||isNaN(U=+this._z.call(null,n)))return this;var t,e=this._root,r,s,o,d=this._x0,h=this._y0,p=this._z0,g=this._x1,y=this._y1,O=this._z1,L,R,U,F,z,C,W,Y,X,q,st;if(!e)return this;if(e.length)for(;;){if((W=L>=(F=(d+g)/2))?d=F:g=F,(Y=R>=(z=(h+y)/2))?h=z:y=z,(X=U>=(C=(p+O)/2))?p=C:O=C,t=e,!(e=e[q=X<<2|Y<<1|W]))return this;if(!e.length)break;(t[q+1&7]||t[q+2&7]||t[q+3&7]||t[q+4&7]||t[q+5&7]||t[q+6&7]||t[q+7&7])&&(r=t,st=q)}for(;e.data!==n;)if(s=e,!(e=e.next))return this;return(o=e.next)&&delete e.next,s?(o?s.next=o:delete s.next,this):t?(o?t[q]=o:delete t[q],(e=t[0]||t[1]||t[2]||t[3]||t[4]||t[5]||t[6]||t[7])&&e===(t[7]||t[6]||t[5]||t[4]||t[3]||t[2]||t[1]||t[0])&&!e.length&&(r?r[st]=e:this._root=e),this):(this._root=o,this)}function Uo(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function Vo(){return this._root}function Go(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function Wo(n){var t=[],e,r=this._root,s,o,d,h,p,g,y;for(r&&t.push(new ve(r,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=t.pop();)if(!n(r=e.node,o=e.x0,d=e.y0,h=e.z0,p=e.x1,g=e.y1,y=e.z1)&&r.length){var O=(o+p)/2,L=(d+g)/2,R=(h+y)/2;(s=r[7])&&t.push(new ve(s,O,L,R,p,g,y)),(s=r[6])&&t.push(new ve(s,o,L,R,O,g,y)),(s=r[5])&&t.push(new ve(s,O,d,R,p,L,y)),(s=r[4])&&t.push(new ve(s,o,d,R,O,L,y)),(s=r[3])&&t.push(new ve(s,O,L,h,p,g,R)),(s=r[2])&&t.push(new ve(s,o,L,h,O,g,R)),(s=r[1])&&t.push(new ve(s,O,d,h,p,L,R)),(s=r[0])&&t.push(new ve(s,o,d,h,O,L,R))}return this}function Yo(n){var t=[],e=[],r;for(this._root&&t.push(new ve(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));r=t.pop();){var s=r.node;if(s.length){var o,d=r.x0,h=r.y0,p=r.z0,g=r.x1,y=r.y1,O=r.z1,L=(d+g)/2,R=(h+y)/2,U=(p+O)/2;(o=s[0])&&t.push(new ve(o,d,h,p,L,R,U)),(o=s[1])&&t.push(new ve(o,L,h,p,g,R,U)),(o=s[2])&&t.push(new ve(o,d,R,p,L,y,U)),(o=s[3])&&t.push(new ve(o,L,R,p,g,y,U)),(o=s[4])&&t.push(new ve(o,d,h,U,L,R,O)),(o=s[5])&&t.push(new ve(o,L,h,U,g,R,O)),(o=s[6])&&t.push(new ve(o,d,R,U,L,y,O)),(o=s[7])&&t.push(new ve(o,L,R,U,g,y,O))}e.push(r)}for(;r=e.pop();)n(r.node,r.x0,r.y0,r.z0,r.x1,r.y1,r.z1);return this}function $o(n){return n[0]}function Xo(n){return arguments.length?(this._x=n,this):this._x}function Ko(n){return n[1]}function Zo(n){return arguments.length?(this._y=n,this):this._y}function Jo(n){return n[2]}function Qo(n){return arguments.length?(this._z=n,this):this._z}function cr(n,t,e,r){var s=new Br(t==null?$o:t,e==null?Ko:e,r==null?Jo:r,NaN,NaN,NaN,NaN,NaN,NaN);return n==null?s:s.addAll(n)}function Br(n,t,e,r,s,o,d,h,p){this._x=n,this._y=t,this._z=e,this._x0=r,this._y0=s,this._z0=o,this._x1=d,this._y1=h,this._z1=p,this._root=void 0}function Ts(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var Ue=cr.prototype=Br.prototype;Ue.copy=function(){var n=new Br(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),t=this._root,e,r;if(!t)return n;if(!t.length)return n._root=Ts(t),n;for(e=[{source:t,target:n._root=new Array(8)}];t=e.pop();)for(var s=0;s<8;++s)(r=t.source[s])&&(r.length?e.push({source:r,target:t.target[s]=new Array(8)}):t.target[s]=Ts(r));return n},Ue.add=Ro,Ue.addAll=Co,Ue.cover=Do,Ue.data=zo,Ue.extent=Fo,Ue.find=ko,Ue.remove=Bo,Ue.removeAll=Uo,Ue.root=Vo,Ue.size=Go,Ue.visit=Wo,Ue.visitAfter=Yo,Ue.x=Xo,Ue.y=Zo,Ue.z=Qo;const _o=.81,Ur=.1;function Ho(n,t,e,r,s=2){const o=t/e,d=n.getAllNodes(),h=d.map((y,O)=>{const{nodeStrength:L,x:R,y:U,z:F,size:z}=y.data;return{x:R,y:U,z:F,size:z,index:O,id:y.id,vx:0,vy:0,vz:0,weight:o*L}}),p=(s===2?Fn(h,y=>y.x,y=>y.y):cr(h,y=>y.x,y=>y.y,y=>y.z)).visitAfter(qo),g=new Map;return h.forEach(y=>{g.set(y.id,y),ea(y,p,s)}),h.map((y,O)=>{const{id:L,data:R}=d[O],{mass:U=1}=R;r[L]={x:y.vx/U,y:y.vy/U,z:y.vz/U}}),r}function qo(n){let t=0,e=0,r=0,s=0,o=0;const d=n.length;if(d){for(let h=0;h<d;h++){const p=n[h];p&&p.weight&&(t+=p.weight,e+=p.x*p.weight,r+=p.y*p.weight,s+=p.z*p.weight,o+=p.size*p.weight)}n.x=e/t,n.y=r/t,n.z=s/t,n.size=o/t,n.weight=t}else{const h=n;n.x=h.data.x,n.y=h.data.y,n.z=h.data.z,n.size=h.data.size,n.weight=h.data.weight}}const ta=(n,t,e,r,s,o,d)=>{var h;if(((h=n.data)===null||h===void 0?void 0:h.id)===o.id)return;const p=[e,r,s][d-1],g=o.x-n.x||Ur,y=o.y-n.y||Ur,O=o.z-n.z||Ur,L=[g,y,O],R=p-t;let U=0;for(let C=0;C<d;C++)U+=L[C]*L[C];const z=Math.sqrt(U)*U;if(R*R*_o<U){const C=n.weight/z;return o.vx+=g*C,o.vy+=y*C,o.vz+=O*C,!0}if(n.length)return!1;if(n.data!==o){const C=n.data.weight/z;o.vx+=g*C,o.vy+=y*C,o.vz+=O*C}};function ea(n,t,e){t.visit((r,s,o,d,h)=>ta(r,s,o,d,h,n,e))}const na={dimensions:2,maxIteration:500,gravity:10,factor:1,edgeStrength:50,nodeStrength:1e3,coulombDisScale:.005,damping:.9,maxSpeed:200,minMovement:.4,interval:.02,linkDistance:200,clusterNodeStrength:20,preventOverlap:!0,distanceThresholdMode:"mean"};class js{constructor(t={}){this.options=t,this.id="force",this.timeInterval=0,this.judgingDistance=0,this.running=!1,this.options=Object.assign(Object.assign({},na),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericForceLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericForceLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval),this.running=!1}tick(t=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let r=0;(this.judgingDistance>this.lastOptions.minMovement||r<1)&&r<t;r++)this.runOneStep(this.lastCalcGraph,this.lastGraph,r,this.lastVelMap,this.lastOptions),this.updatePosition(this.lastGraph,this.lastCalcGraph,this.lastVelMap,this.lastOptions);const e={nodes:this.lastLayoutNodes,edges:this.lastLayoutEdges};return this.lastAssign&&e.nodes.forEach(r=>this.lastGraph.mergeNodeData(r.id,{x:r.data.x,y:r.data.y,z:this.options.dimensions===3?r.data.z:void 0})),e}genericForceLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=Object.assign(Object.assign({},this.options),r),o=e.getAllNodes(),d=e.getAllEdges(),h=this.formatOptions(s,e),{dimensions:p,width:g,height:y,nodeSize:O,getMass:L,nodeStrength:R,edgeStrength:U,linkDistance:F}=h,z=o.map((Q,vt)=>Object.assign(Object.assign({},Q),{data:Object.assign(Object.assign({},Q.data),{x:$t(Q.data.x)?Q.data.x:Math.random()*g,y:$t(Q.data.y)?Q.data.y:Math.random()*y,z:$t(Q.data.z)?Q.data.z:Math.random()*Math.sqrt(g*y),size:O(Q)||30,mass:L(Q),nodeStrength:R(Q)})})),C=d.map(Q=>Object.assign(Object.assign({},Q),{data:Object.assign(Object.assign({},Q.data),{edgeStrength:U(Q),linkDistance:F(Q,e.getNode(Q.source),e.getNode(Q.target))})}));if(!(o!=null&&o.length))return this.lastResult={nodes:[],edges:d},{nodes:[],edges:d};const W={};o.forEach((Q,vt)=>{W[Q.id]={x:0,y:0,z:0}});const Y=new xe({nodes:z,edges:C});this.formatCentripetal(h,Y);const{maxIteration:X,minMovement:q,onTick:st}=h;if(this.lastLayoutNodes=z,this.lastLayoutEdges=C,this.lastAssign=t,this.lastGraph=e,this.lastCalcGraph=Y,this.lastOptions=h,this.lastVelMap=W,typeof window=="undefined")return;let ut=0;return new Promise(Q=>{this.timeInterval=window.setInterval(()=>{(!o||!this.running)&&Q({nodes:Vr(e,z),edges:d}),this.runOneStep(Y,e,ut,W,h),this.updatePosition(e,Y,W,h),t&&z.forEach(vt=>e.mergeNodeData(vt.id,{x:vt.data.x,y:vt.data.y,z:p===3?vt.data.z:void 0})),st==null||st({nodes:Vr(e,z),edges:d}),ut++,(ut>=X||this.judgingDistance<q)&&(window.clearInterval(this.timeInterval),Q({nodes:Vr(e,z),edges:d}))},0),this.running=!0})})}formatOptions(t,e){const r=Object.assign({},t),{width:s,height:o,getMass:d}=t;r.width=!s&&typeof window!="undefined"?window.innerWidth:s,r.height=!o&&typeof window!="undefined"?window.innerHeight:o,t.center||(r.center=[r.width/2,r.height/2]),d||(r.getMass=p=>{let g=1;$t(p==null?void 0:p.data.mass)&&(g=p==null?void 0:p.data.mass);const y=e.getDegree(p.id,"both");return!y||y<5?g:y*5*g}),r.nodeSize=Dr(t.nodeSize,t.nodeSpacing);const h=t.linkDistance?On(1,t.linkDistance):p=>1+r.nodeSize(e.getNode(p.source))+r.nodeSize(e.getNode(p.target));return r.linkDistance=h,r.nodeStrength=On(1,t.nodeStrength),r.edgeStrength=On(1,t.edgeStrength),r}formatCentripetal(t,e){const{dimensions:r,centripetalOptions:s,center:o,clusterNodeStrength:d,leafCluster:h,clustering:p,nodeClusterBy:g}=t,y=e.getAllNodes(),O=s||{leaf:2,single:2,others:1,center:C=>({x:o[0],y:o[1],z:r===3?o[2]:void 0})};typeof d!="function"&&(t.clusterNodeStrength=C=>d);let L,R;if(h&&g&&(L=Is(e,g),R=Array.from(new Set(y==null?void 0:y.map(C=>C.data[g])))||[],t.centripetalOptions=Object.assign(O,{single:100,leaf:C=>{const{siblingLeaves:W,sameTypeLeaves:Y}=L[C.id]||{};return(Y==null?void 0:Y.length)===(W==null?void 0:W.length)||(R==null?void 0:R.length)===1?1:t.clusterNodeStrength(C)},others:1,center:C=>{const W=e.getDegree(C.id,"both");if(!W)return{x:100,y:100,z:0};let Y;if(W===1){const{sameTypeLeaves:X=[]}=L[C.id]||{};X.length===1?Y=void 0:X.length>1&&(Y=Ps(X))}else Y=void 0;return{x:Y==null?void 0:Y.x,y:Y==null?void 0:Y.y,z:Y==null?void 0:Y.z}}})),p&&g){L||(L=Is(e,g)),R||(R=Array.from(new Set(y.map(W=>W.data[g])))),R=R.filter(W=>W!==void 0);const C={};R.forEach(W=>{const Y=y.filter(X=>X.data[g]===W).map(X=>e.getNode(X.id));C[W]=Ps(Y)}),t.centripetalOptions=Object.assign(O,{single:W=>t.clusterNodeStrength(W),leaf:W=>t.clusterNodeStrength(W),others:W=>t.clusterNodeStrength(W),center:W=>{const Y=C[W.data[g]];return{x:Y==null?void 0:Y.x,y:Y==null?void 0:Y.y,z:Y==null?void 0:Y.z}}})}const{leaf:U,single:F,others:z}=t.centripetalOptions||{};U&&typeof U!="function"&&(t.centripetalOptions.leaf=()=>U),F&&typeof F!="function"&&(t.centripetalOptions.single=()=>F),z&&typeof z!="function"&&(t.centripetalOptions.others=()=>z)}runOneStep(t,e,r,s,o){const d={},h=t.getAllNodes(),p=t.getAllEdges();if(!(h!=null&&h.length))return;const{monitor:g}=o;if(this.calRepulsive(t,d,o),p&&this.calAttractive(t,d,o),this.calGravity(t,e,d,o),this.updateVelocity(t,d,s,o),g){const y=this.calTotalEnergy(d,h);g({energy:y,nodes:e.getAllNodes(),edges:e.getAllEdges(),iterations:r})}}calTotalEnergy(t,e){if(!(e!=null&&e.length))return 0;let r=0;return e.forEach((s,o)=>{const d=t[s.id].x,h=t[s.id].y,p=this.options.dimensions===3?t[s.id].z:0,g=d*d+h*h+p*p,{mass:y=1}=s.data;r+=y*g*.5}),r}calRepulsive(t,e,r){const{dimensions:s,factor:o,coulombDisScale:d}=r;Ho(t,o,d*d,e,s)}calAttractive(t,e,r){const{dimensions:s,nodeSize:o}=r;t.getAllEdges().forEach((d,h)=>{const{source:p,target:g}=d,y=t.getNode(p),O=t.getNode(g);if(!y||!O)return;let L=O.data.x-y.data.x,R=O.data.y-y.data.y,U=s===3?O.data.z-y.data.z:0;!L&&!R&&(L=Math.random()*.01,R=Math.random()*.01,s===3&&!U&&(U=Math.random()*.01));const F=Math.sqrt(L*L+R*R+U*U);if(F<o(y)+o(O))return;const z=L/F,C=R/F,W=U/F,{linkDistance:Y=200,edgeStrength:X=200}=d.data||{},st=(Y-F)*X,ut=y.data.mass||1,Q=O.data.mass||1,vt=1/ut,Et=1/Q,Tt=z*st,Pt=C*st,Dt=W*st;e[p].x-=Tt*vt,e[p].y-=Pt*vt,e[p].z-=Dt*vt,e[g].x+=Tt*Et,e[g].y+=Pt*Et,e[g].z+=Dt*Et})}calGravity(t,e,r,s){const{getCenter:o}=s,d=t.getAllNodes(),h=e.getAllNodes(),p=e.getAllEdges(),{width:g,height:y,center:O,gravity:L,centripetalOptions:R}=s;d&&d.forEach(U=>{const{id:F,data:z}=U,{mass:C,x:W,y:Y,z:X}=z,q=e.getNode(F);let st=0,ut=0,Q=0,vt=L;const Et=t.getDegree(F,"in"),Tt=t.getDegree(F,"out"),Pt=t.getDegree(F,"both"),Dt=o==null?void 0:o(q,Pt);if(Dt){const[Gt,zt,Jt]=Dt;st=W-Gt,ut=Y-zt,vt=Jt}else st=W-O[0],ut=Y-O[1],Q=X-O[2];if(vt&&(r[F].x-=vt*st/C,r[F].y-=vt*ut/C,r[F].z-=vt*Q/C),R){const{leaf:Gt,single:zt,others:Jt,center:fe}=R,{x:bt,y:Bt,z:_t,centerStrength:Xt}=(fe==null?void 0:fe(q,h,p,g,y))||{x:0,y:0,z:0,centerStrength:0};if(!$t(bt)||!$t(Bt))return;const ie=(W-bt)/C,le=(Y-Bt)/C,Qt=(X-_t)/C;if(Xt&&(r[F].x-=Xt*ie,r[F].y-=Xt*le,r[F].z-=Xt*Qt),Pt===0){const je=zt(q);if(!je)return;r[F].x-=je*ie,r[F].y-=je*le,r[F].z-=je*Qt;return}if(Et===0||Tt===0){const je=Gt(q,h,p);if(!je)return;r[F].x-=je*ie,r[F].y-=je*le,r[F].z-=je*Qt;return}const oe=Jt(q);if(!oe)return;r[F].x-=oe*ie,r[F].y-=oe*le,r[F].z-=oe*Qt}})}updateVelocity(t,e,r,s){const{damping:o,maxSpeed:d,interval:h,dimensions:p}=s,g=t.getAllNodes();g!=null&&g.length&&g.forEach(y=>{const{id:O}=y;let L=(r[O].x+e[O].x*h)*o||.01,R=(r[O].y+e[O].y*h)*o||.01,U=p===3?(r[O].z+e[O].z*h)*o||.01:0;const F=Math.sqrt(L*L+R*R+U*U);if(F>d){const z=d/F;L=z*L,R=z*R,U=z*U}r[O]={x:L,y:R,z:U}})}updatePosition(t,e,r,s){const{distanceThresholdMode:o,interval:d,dimensions:h}=s,p=e.getAllNodes();if(!(p!=null&&p.length)){this.judgingDistance=0;return}let g=0;o==="max"?this.judgingDistance=-1/0:o==="min"&&(this.judgingDistance=1/0),p.forEach(y=>{const{id:O}=y,L=t.getNode(O);if($t(L.data.fx)&&$t(L.data.fy)){e.mergeNodeData(O,{x:L.data.fx,y:L.data.fy,z:h===3?L.data.fz:void 0});return}const R=r[O].x*d,U=r[O].y*d,F=h===3?r[O].z*d:0;e.mergeNodeData(O,{x:y.data.x+R,y:y.data.y+U,z:y.data.z+F});const z=Math.sqrt(R*R+U*U+F*F);switch(o){case"max":this.judgingDistance<z&&(this.judgingDistance=z);break;case"min":this.judgingDistance>z&&(this.judgingDistance=z);break;default:g=g+z;break}}),(!o||o==="mean")&&(this.judgingDistance=g/p.length)}}const Is=(n,t)=>{const e=n.getAllNodes();if(!(e!=null&&e.length))return{};const r={};return e.forEach((s,o)=>{n.getDegree(s.id,"both")===1&&(r[s.id]=ra(n,"leaf",s,t))}),r},ra=(n,t,e,r)=>{const s=n.getDegree(e.id,"in"),o=n.getDegree(e.id,"out");let d=e,h=[];s===0?(d=n.getSuccessors(e.id)[0],h=n.getNeighbors(d.id)):o===0&&(d=n.getPredecessors(e.id)[0],h=n.getNeighbors(d.id)),h=h.filter(g=>n.getDegree(g.id,"in")===0||n.getDegree(g.id,"out")===0);const p=sa(n,t,r,e,h);return{coreNode:d,siblingLeaves:h,sameTypeLeaves:p}},sa=(n,t,e,r,s)=>{const o=r.data[e]||"";let d=(s==null?void 0:s.filter(h=>h.data[e]===o))||[];return t==="leaf"&&(d=d.filter(h=>n.getDegree(h.id,"in")===0||n.getDegree(h.id,"out")===0)),d},Ps=n=>{const t={x:0,y:0};n.forEach(r=>{const{x:s,y:o}=r.data;t.x+=s||0,t.y+=o||0});const e=n.length||1;return{x:t.x/e,y:t.y/e}},Vr=(n,t)=>t.map(e=>{const{id:r,data:s}=e,o=n.getNode(r);return Object.assign(Object.assign({},o),{data:Object.assign(Object.assign({},o.data),{x:s.x,y:s.y,z:s.z})})});var re=me(48202);const vc=re.XA,mc=re.a_,yc=re.yQ,wc=re.Hs,xc=re.Ec,Ec=re.dx,bc=re.LU,Nc=re.Rm,bn=re.y3,Mc=re.qK,Sc=re.pb,Oc=re.j,Ac=re.sO,Tc=re.BZ,jc=re.EK,Ic=re.Db,Pc=re.Fx,Lc=re.tU,Rc=re.Ym,Cc=re.rs,Dc=re.QR,zc=re.TB,Fc=re.oH,Ls=re.Sc,kc=re.BN,Bc=re.it,Uc=re.$r,Vc=re.QM,Gc=re.AV;var Wc=(re.y3,re.y3);const Yc=re.GH,$c=re.SO,Xc=re.uZ,Kc=re.yU,Zc=re.F1,Jc=re.re,Rs=n=>{const t=[],e=n.length;for(let r=0;r<e;r+=1){t[r]=[];for(let s=0;s<e;s+=1)r===s?t[r][s]=0:n[r][s]===0||!n[r][s]?t[r][s]=1/0:t[r][s]=n[r][s]}for(let r=0;r<e;r+=1)for(let s=0;s<e;s+=1)for(let o=0;o<e;o+=1)t[s][o]>t[s][r]+t[r][o]&&(t[s][o]=t[s][r]+t[r][o]);return t},Cs=(n,t)=>{const{nodes:e,edges:r}=n,s=[],o={};if(!e)throw new Error("invalid nodes data!");return e&&e.forEach((d,h)=>{o[d.id]=h;const p=[];s.push(p)}),r==null||r.forEach(d=>{const{source:h,target:p}=d,g=o[h],y=o[p];g===void 0||y===void 0||(s[g][y]=1,t||(s[y][g]=1))}),s},ia=(n,t)=>{const e=[];return n.forEach(r=>{const s=[];r.forEach(o=>{s.push(o*t)}),e.push(s)}),e},oa=n=>{let t=1/0,e=1/0,r=-1/0,s=-1/0;return n.forEach(o=>{let d=o.data.size;hn(d)?d.length===1&&(d=[d[0],d[0]]):$t(d)?d=[d,d]:(d===void 0||isNaN(d))&&(d=[30,30]);const h=[d[0]/2,d[1]/2],p=o.data.x-h[0],g=o.data.x+h[0],y=o.data.y-h[1],O=o.data.y+h[1];t>p&&(t=p),e>y&&(e=y),r<g&&(r=g),s<O&&(s=O)}),{minX:t,minY:e,maxX:r,maxY:s}},Ds=(n,t)=>Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y)),Gr=(n,t,e,r="TB",s,o={})=>{if(!(t!=null&&t.length))return;const{stopBranchFn:d,stopAllFn:h}=o;for(let p=0;p<t.length;p++){const g=t[p];if(n.hasNode(g.id)&&!(d!=null&&d(g))){if(h!=null&&h(g))return;r==="TB"&&e(g),Gr(n,n.getChildren(g.id,s),e,r,s,o),r!=="TB"&&e(g)}}},aa={center:[0,0],linkDistance:50};class zs{constructor(t={}){this.options=t,this.id="mds",this.options=Object.assign(Object.assign({},aa),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericMDSLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericMDSLayout(!0,t,e)})}genericMDSLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=Object.assign(Object.assign({},this.options),r),{center:o=[0,0],linkDistance:d=50}=s,h=e.getAllNodes(),p=e.getAllEdges();if(!(h!=null&&h.length)||h.length===1)return An(e,t,o);const g=Cs({nodes:h,edges:p},!1),y=Rs(g);ua(y);const O=ia(y,d),L=ca(O),R=[];return L.forEach((F,z)=>{const C=Je(h[z]);C.data.x=F[0]+o[0],C.data.y=F[1]+o[1],R.push(C)}),t&&R.forEach(F=>e.mergeNodeData(F.id,{x:F.data.x,y:F.data.y})),{nodes:R,edges:p}})}}const ua=n=>{let t=-999999;n.forEach(e=>{e.forEach(r=>{r!==1/0&&t<r&&(t=r)})}),n.forEach((e,r)=>{e.forEach((s,o)=>{s===1/0&&(n[r][o]=t)})})},ca=n=>{const e=bn.mul(bn.pow(n,2),-.5),r=e.mean("row"),s=e.mean("column"),o=e.mean();e.add(o).subRowVector(r).subColumnVector(s);const d=new Ls(e),h=bn.sqrt(d.diagonalMatrix).diagonal();return d.leftSingularVectors.toJSON().map(p=>bn.mul([p],[h]).toJSON()[0].splice(0,2))};function Fs(n){return!!n.tick&&!!n.stop}const fa={gForce:!0,force2:!0,d3force:!0,fruchterman:!0,forceAtlas2:!0,force:!0,"graphin-force":!0},la={center:[0,0],comboPadding:10,treeKey:"combo"};class da{constructor(t={}){this.options=t,this.id="comboCombined",this.options=Object.assign(Object.assign({},la),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericComboCombinedLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericComboCombinedLayout(!0,t,e)})}genericComboCombinedLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=this.initVals(Object.assign(Object.assign({},this.options),r)),{center:o,treeKey:d,outerLayout:h}=s,p=e.getAllNodes().filter(Q=>!Q.data._isCombo),g=e.getAllNodes().filter(Q=>Q.data._isCombo),y=e.getAllEdges(),O=p==null?void 0:p.length;if(!O||O===1)return An(e,t,o);const L=[],R=new Map;p.forEach(Q=>{R.set(Q.id,Q)});const U=new Map;g.forEach(Q=>{U.set(Q.id,Q)});const F=new Map,z=this.getInnerGraphs(e,d,R,U,y,s,F);yield Promise.all(z);const C=new Map,W=[],Y=new Map;let X=!0;e.getRoots(d).forEach(Q=>{const vt=F.get(Q.id),Et=U.get(Q.id)||R.get(Q.id),Tt={id:Q.id,data:Object.assign(Object.assign({},Q.data),{x:vt.data.x||Et.data.x,y:vt.data.y||Et.data.y,fx:vt.data.fx||Et.data.fx,fy:vt.data.fy||Et.data.fy,mass:vt.data.mass||Et.data.mass,size:vt.data.size})};W.push(Tt),C.set(Q.id,!0),!isNaN(Tt.data.x)&&Tt.data.x!==0&&!isNaN(Tt.data.y)&&Tt.data.y!==0?X=!1:(Tt.data.x=Math.random()*100,Tt.data.y=Math.random()*100),Gr(e,[Q],Pt=>{Pt.id!==Q.id&&Y.set(Pt.id,Q.id)},"TB",d)});const q=[];y.forEach(Q=>{const vt=Y.get(Q.source)||Q.source,Et=Y.get(Q.target)||Q.target;vt!==Et&&C.has(vt)&&C.has(Et)&&q.push({id:Q.id,source:vt,target:Et,data:{}})});let st;if(W!=null&&W.length){if(W.length===1)W[0].data.x=o[0],W[0].data.y=o[1];else{const Q=new xe({nodes:W,edges:q}),vt=h||new js;X&&fa[vt.id]&&(yield(W.length<100?new zs:new Fr).assign(Q));const Et=Object.assign({center:o,kg:5,preventOverlap:!0,animate:!1},vt.id==="force"?{gravity:1,factor:4,linkDistance:(Tt,Pt,Dt)=>{const Gt=Math.max(...Pt.data.size)||32,zt=Math.max(...Dt.data.size)||32;return Gt/2+zt/2+200}}:{});st=yield ks(vt,Q,Et)}F.forEach(Q=>{var vt;const Et=st.nodes.find(Dt=>Dt.id===Q.id);if(Et){const{x:Dt,y:Gt}=Et.data;Q.data.visited=!0,Q.data.x=Dt,Q.data.y=Gt,L.push({id:Q.id,data:{x:Dt,y:Gt}})}const{x:Tt,y:Pt}=Q.data;(vt=Q.data.nodes)===null||vt===void 0||vt.forEach(Dt=>{L.push({id:Dt.id,data:{x:Dt.data.x+Tt,y:Dt.data.y+Pt}})})}),F.forEach(({data:Q})=>{const{x:vt,y:Et,visited:Tt,nodes:Pt}=Q;Pt==null||Pt.forEach(Dt=>{if(!Tt){const Gt=L.find(zt=>zt.id===Dt.id);Gt.data.x+=vt||0,Gt.data.y+=Et||0}})})}return t&&L.forEach(Q=>{e.mergeNodeData(Q.id,{x:Q.data.x,y:Q.data.y})}),{nodes:L,edges:y}})}initVals(t){const e=Object.assign({},t),{nodeSize:r,spacing:s,comboPadding:o}=t;let d,h;if($t(s)?h=()=>s:dn(s)?h=s:h=()=>0,e.spacing=h,!r)d=g=>{const y=h(g);return g.size?hn(g.size)?((g.size[0]>g.size[1]?g.size[0]:g.size[1])+y)/2:zn(g.size)?((g.size.width>g.size.height?g.size.width:g.size.height)+y)/2:(g.size+y)/2:32+y/2};else if(dn(r))d=g=>{const y=r(g),O=h(g);return hn(g.size)?((g.size[0]>g.size[1]?g.size[0]:g.size[1])+O)/2:((y||32)+O)/2};else if(hn(r)){const y=(r[0]>r[1]?r[0]:r[1])/2;d=O=>y+h(O)/2}else{const g=r/2;d=y=>g+h(y)/2}e.nodeSize=d;let p;return $t(o)?p=()=>o:hn(o)?p=()=>Math.max.apply(null,o):dn(o)?p=o:p=()=>0,e.comboPadding=p,e}getInnerGraphs(t,e,r,s,o,d,h){const{nodeSize:p,comboPadding:g,spacing:y,innerLayout:O}=d,L=O||new Fr({}),R={center:[0,0],preventOverlap:!0,nodeSpacing:y},U=[],F=z=>{let C=(g==null?void 0:g(z))||10;return hn(C)&&(C=Math.max(...C)),{size:C?[C*2,C*2]:[30,30],padding:C}};return t.getRoots(e).forEach(z=>{h.set(z.id,{id:z.id,data:{nodes:[],size:F(z).size}});let C=Promise.resolve();Gr(t,[z],W=>{var Y;if(!W.data._isCombo)return;const{size:X,padding:q}=F(W);if(!(!((Y=t.getChildren(W.id,e))===null||Y===void 0)&&Y.length))h.set(W.id,{id:W.id,data:Object.assign(Object.assign({},W.data),{size:X})});else{const st=h.get(W.id);h.set(W.id,{id:W.id,data:Object.assign({nodes:[]},st==null?void 0:st.data)});const ut=new Map,Q=t.getChildren(W.id,e).map(Tt=>{if(Tt.data._isCombo)return h.has(Tt.id)||h.set(Tt.id,{id:Tt.id,data:Object.assign({},Tt.data)}),ut.set(Tt.id,!0),h.get(Tt.id);const Pt=r.get(Tt.id)||s.get(Tt.id);return ut.set(Tt.id,!0),{id:Tt.id,data:Object.assign(Object.assign({},Pt.data),Tt.data)}}),vt={nodes:Q,edges:o.filter(Tt=>ut.has(Tt.source)&&ut.has(Tt.target))};let Et=1/0;Q.forEach(Tt=>{var Pt;let{size:Dt}=Tt.data;Dt||(Dt=((Pt=h.get(Tt.id))===null||Pt===void 0?void 0:Pt.data.size)||(p==null?void 0:p(Tt))||[30,30]),$t(Dt)&&(Dt=[Dt,Dt]);const[Gt,zt]=Dt;Et>Gt&&(Et=Gt),Et>zt&&(Et=zt),Tt.data.size=Dt}),C=C.then(()=>A(this,void 0,void 0,function*(){const Tt=new xe(vt);yield ks(L,Tt,R,!0);const{minX:Pt,minY:Dt,maxX:Gt,maxY:zt}=oa(Q),Jt={x:(Gt+Pt)/2,y:(zt+Dt)/2};vt.nodes.forEach(bt=>{bt.data.x-=Jt.x,bt.data.y-=Jt.y});const fe=[Math.max(Gt-Pt,Et)+q*2,Math.max(zt-Dt,Et)+q*2];h.get(W.id).data.size=fe,h.get(W.id).data.nodes=Q}))}return!0},"BT",e),U.push(C)}),U}}function ks(n,t,e,r){var s;return A(this,void 0,void 0,function*(){return Fs(n)?(n.execute(t,e),n.stop(),n.tick((s=e.iterations)!==null&&s!==void 0?s:300)):r?yield n.assign(t,e):yield n.execute(t,e)})}var ha=function(n){return typeof n=="object"&&n!==null},ga=ha,pa={}.toString,va=function(n,t){return pa.call(n)==="[object "+t+"]"},ma=va,ya=function(n){if(!ga(n)||!ma(n,"Object"))return!1;if(Object.getPrototypeOf(n)===null)return!0;for(var t=n;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(n)===t},Wr=ya,wa=5;function xa(n,t){if(Object.hasOwn)return Object.hasOwn(n,t);if(n==null)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(n),t)}function Bs(n,t,e,r){e=e||0,r=r||wa;for(var s in t)if(xa(t,s)){var o=t[s];o!==null&&Wr(o)?(Wr(n[s])||(n[s]={}),e<r?Bs(n[s],o,e+1,r):n[s]=t[s]):ae(o)?(n[s]=[],n[s]=n[s].concat(o)):o!==void 0&&(n[s]=o)}}var Ea=function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];for(var r=0;r<t.length;r+=1)Bs(n,t[r]);return n},Us=Ea;function ba(n,t){if(n){var e;if(ae(n))for(var r=0,s=n.length;r<s&&(e=t(n[r],r),e!==!1);r++);else if(zn(n)){for(var o in n)if(n.hasOwnProperty(o)&&(e=t(n[o],o),e===!1))break}}}var Na=ba,Ma=Object.prototype.hasOwnProperty,Vs=function(n,t){if(n===null||!Wr(n))return{};var e={};return Na(t,function(r){Ma.call(n,r)&&(e[r]=n[r])}),e};function Le(n){return function(){return n}}function Nn(n){return(n()-.5)*1e-6}function Sa(n){return n.index}function Gs(n,t){var e=n.get(t);if(!e)throw new Error("node not found: "+t);return e}function Oa(n){var t=Sa,e=O,r,s=Le(30),o,d,h,p,g,y=1;n==null&&(n=[]);function O(z){return 1/Math.min(h[z.source.index],h[z.target.index])}function L(z){for(var C=0,W=n.length;C<y;++C)for(var Y=0,X,q,st,ut,Q,vt,Et;Y<W;++Y)X=n[Y],q=X.source,st=X.target,ut=st.x+st.vx-q.x-q.vx||Nn(g),Q=st.y+st.vy-q.y-q.vy||Nn(g),vt=Math.sqrt(ut*ut+Q*Q),vt=(vt-o[Y])/vt*z*r[Y],ut*=vt,Q*=vt,st.vx-=ut*(Et=p[Y]),st.vy-=Q*Et,q.vx+=ut*(Et=1-Et),q.vy+=Q*Et}function R(){if(d){var z,C=d.length,W=n.length,Y=new Map(d.map((q,st)=>[t(q,st,d),q])),X;for(z=0,h=new Array(C);z<W;++z)X=n[z],X.index=z,typeof X.source!="object"&&(X.source=Gs(Y,X.source)),typeof X.target!="object"&&(X.target=Gs(Y,X.target)),h[X.source.index]=(h[X.source.index]||0)+1,h[X.target.index]=(h[X.target.index]||0)+1;for(z=0,p=new Array(W);z<W;++z)X=n[z],p[z]=h[X.source.index]/(h[X.source.index]+h[X.target.index]);r=new Array(W),U(),o=new Array(W),F()}}function U(){if(d)for(var z=0,C=n.length;z<C;++z)r[z]=+e(n[z],z,n)}function F(){if(d)for(var z=0,C=n.length;z<C;++z)o[z]=+s(n[z],z,n)}return L.initialize=function(z,C){d=z,g=C,R()},L.links=function(z){return arguments.length?(n=z,R(),L):n},L.id=function(z){return arguments.length?(t=z,L):t},L.iterations=function(z){return arguments.length?(y=+z,L):y},L.strength=function(z){return arguments.length?(e=typeof z=="function"?z:Le(+z),U(),L):e},L.distance=function(z){return arguments.length?(s=typeof z=="function"?z:Le(+z),F(),L):s},L}var Aa={value:()=>{}};function Ws(){for(var n=0,t=arguments.length,e={},r;n<t;++n){if(!(r=arguments[n]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new fr(e)}function fr(n){this._=n}function Ta(n,t){return n.trim().split(/^|\s+/).map(function(e){var r="",s=e.indexOf(".");if(s>=0&&(r=e.slice(s+1),e=e.slice(0,s)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}fr.prototype=Ws.prototype={constructor:fr,on:function(n,t){var e=this._,r=Ta(n+"",e),s,o=-1,d=r.length;if(arguments.length<2){for(;++o<d;)if((s=(n=r[o]).type)&&(s=ja(e[s],n.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<d;)if(s=(n=r[o]).type)e[s]=Ys(e[s],n.name,t);else if(t==null)for(s in e)e[s]=Ys(e[s],n.name,null);return this},copy:function(){var n={},t=this._;for(var e in t)n[e]=t[e].slice();return new fr(n)},call:function(n,t){if((s=arguments.length-2)>0)for(var e=new Array(s),r=0,s,o;r<s;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(o=this._[n],r=0,s=o.length;r<s;++r)o[r].value.apply(t,e)},apply:function(n,t,e){if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(var r=this._[n],s=0,o=r.length;s<o;++s)r[s].value.apply(t,e)}};function ja(n,t){for(var e=0,r=n.length,s;e<r;++e)if((s=n[e]).name===t)return s.value}function Ys(n,t,e){for(var r=0,s=n.length;r<s;++r)if(n[r].name===t){n[r]=Aa,n=n.slice(0,r).concat(n.slice(r+1));break}return e!=null&&n.push({name:t,value:e}),n}var Ia=Ws,kn=0,Jn=0,Qn=0,$s=1e3,lr,_n,dr=0,Tn=0,hr=0,Hn=typeof performance=="object"&&performance.now?performance:Date,Xs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(n){setTimeout(n,17)};function Ks(){return Tn||(Xs(Pa),Tn=Hn.now()+hr)}function Pa(){Tn=0}function Yr(){this._call=this._time=this._next=null}Yr.prototype=Zs.prototype={constructor:Yr,restart:function(n,t,e){if(typeof n!="function")throw new TypeError("callback is not a function");e=(e==null?Ks():+e)+(t==null?0:+t),!this._next&&_n!==this&&(_n?_n._next=this:lr=this,_n=this),this._call=n,this._time=e,$r()},stop:function(){this._call&&(this._call=null,this._time=1/0,$r())}};function Zs(n,t,e){var r=new Yr;return r.restart(n,t,e),r}function La(){Ks(),++kn;for(var n=lr,t;n;)(t=Tn-n._time)>=0&&n._call.call(void 0,t),n=n._next;--kn}function Js(){Tn=(dr=Hn.now())+hr,kn=Jn=0;try{La()}finally{kn=0,Ca(),Tn=0}}function Ra(){var n=Hn.now(),t=n-dr;t>$s&&(hr-=t,dr=n)}function Ca(){for(var n,t=lr,e,r=1/0;t;)t._call?(r>t._time&&(r=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:lr=e);_n=n,$r(r)}function $r(n){if(!kn){Jn&&(Jn=clearTimeout(Jn));var t=n-Tn;t>24?(n<1/0&&(Jn=setTimeout(Js,n-Hn.now()-hr)),Qn&&(Qn=clearInterval(Qn))):(Qn||(dr=Hn.now(),Qn=setInterval(Ra,$s)),kn=1,Xs(Js))}}const Da=1664525,za=1013904223,Qs=4294967296;function Fa(){let n=1;return()=>(n=(Da*n+za)%Qs)/Qs}function ka(n){return n.x}function Ba(n){return n.y}var Ua=10,Va=Math.PI*(3-Math.sqrt(5));function Ga(n){var t,e=1,r=.001,s=1-Math.pow(r,1/300),o=0,d=.6,h=new Map,p=Zs(O),g=Ia("tick","end"),y=Fa();n==null&&(n=[]);function O(){L(),g.call("tick",t),e<r&&(p.stop(),g.call("end",t))}function L(F){var z,C=n.length,W;F===void 0&&(F=1);for(var Y=0;Y<F;++Y)for(e+=(o-e)*s,h.forEach(function(X){X(e)}),z=0;z<C;++z)W=n[z],W.fx==null?W.x+=W.vx*=d:(W.x=W.fx,W.vx=0),W.fy==null?W.y+=W.vy*=d:(W.y=W.fy,W.vy=0);return t}function R(){for(var F=0,z=n.length,C;F<z;++F){if(C=n[F],C.index=F,C.fx!=null&&(C.x=C.fx),C.fy!=null&&(C.y=C.fy),isNaN(C.x)||isNaN(C.y)){var W=Ua*Math.sqrt(.5+F),Y=F*Va;C.x=W*Math.cos(Y),C.y=W*Math.sin(Y)}(isNaN(C.vx)||isNaN(C.vy))&&(C.vx=C.vy=0)}}function U(F){return F.initialize&&F.initialize(n,y),F}return R(),t={tick:L,restart:function(){return p.restart(O),t},stop:function(){return p.stop(),t},nodes:function(F){return arguments.length?(n=F,R(),h.forEach(U),t):n},alpha:function(F){return arguments.length?(e=+F,t):e},alphaMin:function(F){return arguments.length?(r=+F,t):r},alphaDecay:function(F){return arguments.length?(s=+F,t):+s},alphaTarget:function(F){return arguments.length?(o=+F,t):o},velocityDecay:function(F){return arguments.length?(d=1-F,t):1-d},randomSource:function(F){return arguments.length?(y=F,h.forEach(U),t):y},force:function(F,z){return arguments.length>1?(z==null?h.delete(F):h.set(F,U(z)),t):h.get(F)},find:function(F,z,C){var W=0,Y=n.length,X,q,st,ut,Q;for(C==null?C=1/0:C*=C,W=0;W<Y;++W)ut=n[W],X=F-ut.x,q=z-ut.y,st=X*X+q*q,st<C&&(Q=ut,C=st);return Q},on:function(F,z){return arguments.length>1?(g.on(F,z),t):g.on(F)}}}function Wa(){var n,t,e,r,s=Le(-30),o,d=1,h=1/0,p=.81;function g(R){var U,F=n.length,z=Fn(n,ka,Ba).visitAfter(O);for(r=R,U=0;U<F;++U)t=n[U],z.visit(L)}function y(){if(n){var R,U=n.length,F;for(o=new Array(U),R=0;R<U;++R)F=n[R],o[F.index]=+s(F,R,n)}}function O(R){var U=0,F,z,C=0,W,Y,X;if(R.length){for(W=Y=X=0;X<4;++X)(F=R[X])&&(z=Math.abs(F.value))&&(U+=F.value,C+=z,W+=z*F.x,Y+=z*F.y);R.x=W/C,R.y=Y/C}else{F=R,F.x=F.data.x,F.y=F.data.y;do U+=o[F.data.index];while(F=F.next)}R.value=U}function L(R,U,F,z){if(!R.value)return!0;var C=R.x-t.x,W=R.y-t.y,Y=z-U,X=C*C+W*W;if(Y*Y/p<X)return X<h&&(C===0&&(C=Nn(e),X+=C*C),W===0&&(W=Nn(e),X+=W*W),X<d&&(X=Math.sqrt(d*X)),t.vx+=C*R.value*r/X,t.vy+=W*R.value*r/X),!0;if(R.length||X>=h)return;(R.data!==t||R.next)&&(C===0&&(C=Nn(e),X+=C*C),W===0&&(W=Nn(e),X+=W*W),X<d&&(X=Math.sqrt(d*X)));do R.data!==t&&(Y=o[R.data.index]*r/X,t.vx+=C*Y,t.vy+=W*Y);while(R=R.next)}return g.initialize=function(R,U){n=R,e=U,y()},g.strength=function(R){return arguments.length?(s=typeof R=="function"?R:Le(+R),y(),g):s},g.distanceMin=function(R){return arguments.length?(d=R*R,g):Math.sqrt(d)},g.distanceMax=function(R){return arguments.length?(h=R*R,g):Math.sqrt(h)},g.theta=function(R){return arguments.length?(p=R*R,g):Math.sqrt(p)},g}function Ya(n,t){var e,r=1;n==null&&(n=0),t==null&&(t=0);function s(){var o,d=e.length,h,p=0,g=0;for(o=0;o<d;++o)h=e[o],p+=h.x,g+=h.y;for(p=(p/d-n)*r,g=(g/d-t)*r,o=0;o<d;++o)h=e[o],h.x-=p,h.y-=g}return s.initialize=function(o){e=o},s.x=function(o){return arguments.length?(n=+o,s):n},s.y=function(o){return arguments.length?(t=+o,s):t},s.strength=function(o){return arguments.length?(r=+o,s):r},s}function $a(n){return n.x+n.vx}function Xa(n){return n.y+n.vy}function Ka(n){var t,e,r,s=1,o=1;typeof n!="function"&&(n=Le(n==null?1:+n));function d(){for(var g,y=t.length,O,L,R,U,F,z,C=0;C<o;++C)for(O=Fn(t,$a,Xa).visitAfter(h),g=0;g<y;++g)L=t[g],F=e[L.index],z=F*F,R=L.x+L.vx,U=L.y+L.vy,O.visit(W);function W(Y,X,q,st,ut){var Q=Y.data,vt=Y.r,Et=F+vt;if(Q){if(Q.index>L.index){var Tt=R-Q.x-Q.vx,Pt=U-Q.y-Q.vy,Dt=Tt*Tt+Pt*Pt;Dt<Et*Et&&(Tt===0&&(Tt=Nn(r),Dt+=Tt*Tt),Pt===0&&(Pt=Nn(r),Dt+=Pt*Pt),Dt=(Et-(Dt=Math.sqrt(Dt)))/Dt*s,L.vx+=(Tt*=Dt)*(Et=(vt*=vt)/(z+vt)),L.vy+=(Pt*=Dt)*Et,Q.vx-=Tt*(Et=1-Et),Q.vy-=Pt*Et)}return}return X>R+Et||st<R-Et||q>U+Et||ut<U-Et}}function h(g){if(g.data)return g.r=e[g.data.index];for(var y=g.r=0;y<4;++y)g[y]&&g[y].r>g.r&&(g.r=g[y].r)}function p(){if(t){var g,y=t.length,O;for(e=new Array(y),g=0;g<y;++g)O=t[g],e[O.index]=+n(O,g,t)}}return d.initialize=function(g,y){t=g,r=y,p()},d.iterations=function(g){return arguments.length?(o=+g,d):o},d.strength=function(g){return arguments.length?(s=+g,d):s},d.radius=function(g){return arguments.length?(n=typeof g=="function"?g:Le(+g),p(),d):n},d}function Za(n,t,e){var r,s=Le(.1),o,d;typeof n!="function"&&(n=Le(+n)),t==null&&(t=0),e==null&&(e=0);function h(g){for(var y=0,O=r.length;y<O;++y){var L=r[y],R=L.x-t||1e-6,U=L.y-e||1e-6,F=Math.sqrt(R*R+U*U),z=(d[y]-F)*o[y]*g/F;L.vx+=R*z,L.vy+=U*z}}function p(){if(r){var g,y=r.length;for(o=new Array(y),d=new Array(y),g=0;g<y;++g)d[g]=+n(r[g],g,r),o[g]=isNaN(d[g])?0:+s(r[g],g,r)}}return h.initialize=function(g){r=g,p()},h.strength=function(g){return arguments.length?(s=typeof g=="function"?g:Le(+g),p(),h):s},h.radius=function(g){return arguments.length?(n=typeof g=="function"?g:Le(+g),p(),h):n},h.x=function(g){return arguments.length?(t=+g,h):t},h.y=function(g){return arguments.length?(e=+g,h):e},h}function Ja(n){var t=Le(.1),e,r,s;typeof n!="function"&&(n=Le(n==null?0:+n));function o(h){for(var p=0,g=e.length,y;p<g;++p)y=e[p],y.vx+=(s[p]-y.x)*r[p]*h}function d(){if(e){var h,p=e.length;for(r=new Array(p),s=new Array(p),h=0;h<p;++h)r[h]=isNaN(s[h]=+n(e[h],h,e))?0:+t(e[h],h,e)}}return o.initialize=function(h){e=h,d()},o.strength=function(h){return arguments.length?(t=typeof h=="function"?h:Le(+h),d(),o):t},o.x=function(h){return arguments.length?(n=typeof h=="function"?h:Le(+h),d(),o):n},o}function Qa(n){var t=Le(.1),e,r,s;typeof n!="function"&&(n=Le(n==null?0:+n));function o(h){for(var p=0,g=e.length,y;p<g;++p)y=e[p],y.vy+=(s[p]-y.y)*r[p]*h}function d(){if(e){var h,p=e.length;for(r=new Array(p),s=new Array(p),h=0;h<p;++h)r[h]=isNaN(s[h]=+n(e[h],h,e))?0:+t(e[h],h,e)}}return o.initialize=function(h){e=h,d()},o.strength=function(h){return arguments.length?(t=typeof h=="function"?h:Le(+h),d(),o):t},o.y=function(h){return arguments.length?(n=typeof h=="function"?h:Le(+h),d(),o):n},o}class _s{constructor(t){this.id="d3-force",this.config={inputNodeAttrs:["x","y","vx","vy","fx","fy"],outputNodeAttrs:["x","y","vx","vy"],simulationAttrs:["alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","randomSource"]},this.forceMap={link:Oa,manyBody:Wa,center:Ya,collide:Ka,radial:Za,x:Ja,y:Qa},this.options={link:{id:e=>e.id},manyBody:{},center:{x:0,y:0}},this.context={options:{},assign:!1,nodes:[],edges:[]},Us(this.options,t),this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericLayout(!0,t,e)})}stop(){this.simulation.stop()}tick(t){return this.simulation.tick(t),this.getResult()}restart(){this.simulation.restart()}setFixedPosition(t,e){const r=this.context.nodes.find(s=>s.id===t);r&&e.forEach((s,o)=>{if(typeof s=="number"||s===null){const d=["fx","fy","fz"][o];r[d]=s}})}getOptions(t){var e,r;const s=Us({},this.options,t);return s.collide&&((e=s.collide)===null||e===void 0?void 0:e.radius)===void 0&&(s.collide=s.collide||{},s.collide.radius=(r=s.nodeSize)!==null&&r!==void 0?r:10),s.iterations===void 0&&(s.link&&s.link.iterations===void 0&&(s.iterations=s.link.iterations),s.collide&&s.collide.iterations===void 0&&(s.iterations=s.collide.iterations)),this.context.options=s,s}genericLayout(t,e,r){var s;return A(this,void 0,void 0,function*(){const o=this.getOptions(r),d=e.getAllNodes().map(({id:y,data:O})=>Object.assign(Object.assign({id:y},O),Vs(O.data,this.config.inputNodeAttrs))),h=e.getAllEdges().map(y=>Object.assign({},y));Object.assign(this.context,{assign:t,nodes:d,edges:h,graph:e});const p=new Promise(y=>{this.resolver=y}),g=this.setSimulation(o);return g.nodes(d),(s=g.force("link"))===null||s===void 0||s.links(h),p})}getResult(){const{assign:t,nodes:e,edges:r,graph:s}=this.context,o=e.map(h=>({id:h.id,data:Object.assign(Object.assign({},h.data),Vs(h,this.config.outputNodeAttrs))})),d=r.map(({id:h,source:p,target:g,data:y})=>({id:h,source:typeof p=="object"?p.id:p,target:typeof g=="object"?g.id:g,data:y}));return t&&o.forEach(h=>s.mergeNodeData(h.id,h.data)),{nodes:o,edges:d}}initSimulation(){return Ga()}setSimulation(t){const e=this.simulation||this.options.forceSimulation||this.initSimulation();return this.simulation||(this.simulation=e.on("tick",()=>{var r;return(r=t.onTick)===null||r===void 0?void 0:r.call(t,this.getResult())}).on("end",()=>{var r;return(r=this.resolver)===null||r===void 0?void 0:r.call(this,this.getResult())})),Hs(e,this.config.simulationAttrs.map(r=>[r,t[r]])),Object.entries(this.forceMap).forEach(([r,s])=>{const o=r;if(t[r]){let d=e.force(o);d||(d=s(),e.force(o,d)),Hs(d,Object.entries(t[o]))}else e.force(o,null)}),e}}const Hs=(n,t)=>t.reduce((e,[r,s])=>!e[r]||s===void 0?e:e[r].call(n,s),n);function Me(n){return function(){return n}}function He(n){return(n()-.5)*1e-6}function _a(n){return n.index}function qs(n,t){var e=n.get(t);if(!e)throw new Error("node not found: "+t);return e}function Ha(n){var t=_a,e=L,r,s=Me(30),o,d,h,p,g,y,O=1;n==null&&(n=[]);function L(C){return 1/Math.min(p[C.source.index],p[C.target.index])}function R(C){for(var W=0,Y=n.length;W<O;++W)for(var X=0,q,st,ut,Q=0,vt=0,Et=0,Tt,Pt;X<Y;++X)q=n[X],st=q.source,ut=q.target,Q=ut.x+ut.vx-st.x-st.vx||He(y),h>1&&(vt=ut.y+ut.vy-st.y-st.vy||He(y)),h>2&&(Et=ut.z+ut.vz-st.z-st.vz||He(y)),Tt=Math.sqrt(Q*Q+vt*vt+Et*Et),Tt=(Tt-o[X])/Tt*C*r[X],Q*=Tt,vt*=Tt,Et*=Tt,ut.vx-=Q*(Pt=g[X]),h>1&&(ut.vy-=vt*Pt),h>2&&(ut.vz-=Et*Pt),st.vx+=Q*(Pt=1-Pt),h>1&&(st.vy+=vt*Pt),h>2&&(st.vz+=Et*Pt)}function U(){if(d){var C,W=d.length,Y=n.length,X=new Map(d.map((st,ut)=>[t(st,ut,d),st])),q;for(C=0,p=new Array(W);C<Y;++C)q=n[C],q.index=C,typeof q.source!="object"&&(q.source=qs(X,q.source)),typeof q.target!="object"&&(q.target=qs(X,q.target)),p[q.source.index]=(p[q.source.index]||0)+1,p[q.target.index]=(p[q.target.index]||0)+1;for(C=0,g=new Array(Y);C<Y;++C)q=n[C],g[C]=p[q.source.index]/(p[q.source.index]+p[q.target.index]);r=new Array(Y),F(),o=new Array(Y),z()}}function F(){if(d)for(var C=0,W=n.length;C<W;++C)r[C]=+e(n[C],C,n)}function z(){if(d)for(var C=0,W=n.length;C<W;++C)o[C]=+s(n[C],C,n)}return R.initialize=function(C,...W){d=C,y=W.find(Y=>typeof Y=="function")||Math.random,h=W.find(Y=>[1,2,3].includes(Y))||2,U()},R.links=function(C){return arguments.length?(n=C,U(),R):n},R.id=function(C){return arguments.length?(t=C,R):t},R.iterations=function(C){return arguments.length?(O=+C,R):O},R.strength=function(C){return arguments.length?(e=typeof C=="function"?C:Me(+C),F(),R):e},R.distance=function(C){return arguments.length?(s=typeof C=="function"?C:Me(+C),z(),R):s},R}function qa(n){const t=+this._x.call(null,n);return ti(this.cover(t),t,n)}function ti(n,t,e){if(isNaN(t))return n;var r,s=n._root,o={data:e},d=n._x0,h=n._x1,p,g,y,O,L;if(!s)return n._root=o,n;for(;s.length;)if((y=t>=(p=(d+h)/2))?d=p:h=p,r=s,!(s=s[O=+y]))return r[O]=o,n;if(g=+n._x.call(null,s.data),t===g)return o.next=s,r?r[O]=o:n._root=o,n;do r=r?r[O]=new Array(2):n._root=new Array(2),(y=t>=(p=(d+h)/2))?d=p:h=p;while((O=+y)==(L=+(g>=p)));return r[L]=s,r[O]=o,n}function tu(n){Array.isArray(n)||(n=Array.from(n));const t=n.length,e=new Float64Array(t);let r=1/0,s=-1/0;for(let o=0,d;o<t;++o)isNaN(d=+this._x.call(null,n[o]))||(e[o]=d,d<r&&(r=d),d>s&&(s=d));if(r>s)return this;this.cover(r).cover(s);for(let o=0;o<t;++o)ti(this,e[o],n[o]);return this}function eu(n){if(isNaN(n=+n))return this;var t=this._x0,e=this._x1;if(isNaN(t))e=(t=Math.floor(n))+1;else{for(var r=e-t||1,s=this._root,o,d;t>n||n>=e;)switch(d=+(n<t),o=new Array(2),o[d]=s,s=o,r*=2,d){case 0:e=t+r;break;case 1:t=e-r;break}this._root&&this._root.length&&(this._root=s)}return this._x0=t,this._x1=e,this}function nu(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function ru(n){return arguments.length?this.cover(+n[0][0]).cover(+n[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]}function gn(n,t,e){this.node=n,this.x0=t,this.x1=e}function su(n,t){var e,r=this._x0,s,o,d=this._x1,h=[],p=this._root,g,y;for(p&&h.push(new gn(p,r,d)),t==null?t=1/0:(r=n-t,d=n+t);g=h.pop();)if(!(!(p=g.node)||(s=g.x0)>d||(o=g.x1)<r))if(p.length){var O=(s+o)/2;h.push(new gn(p[1],O,o),new gn(p[0],s,O)),(y=+(n>=O))&&(g=h[h.length-1],h[h.length-1]=h[h.length-1-y],h[h.length-1-y]=g)}else{var L=Math.abs(n-+this._x.call(null,p.data));L<t&&(t=L,r=n-L,d=n+L,e=p.data)}return e}function iu(n){if(isNaN(p=+this._x.call(null,n)))return this;var t,e=this._root,r,s,o,d=this._x0,h=this._x1,p,g,y,O,L;if(!e)return this;if(e.length)for(;;){if((y=p>=(g=(d+h)/2))?d=g:h=g,t=e,!(e=e[O=+y]))return this;if(!e.length)break;t[O+1&1]&&(r=t,L=O)}for(;e.data!==n;)if(s=e,!(e=e.next))return this;return(o=e.next)&&delete e.next,s?(o?s.next=o:delete s.next,this):t?(o?t[O]=o:delete t[O],(e=t[0]||t[1])&&e===(t[1]||t[0])&&!e.length&&(r?r[L]=e:this._root=e),this):(this._root=o,this)}function ou(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function au(){return this._root}function uu(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function cu(n){var t=[],e,r=this._root,s,o,d;for(r&&t.push(new gn(r,this._x0,this._x1));e=t.pop();)if(!n(r=e.node,o=e.x0,d=e.x1)&&r.length){var h=(o+d)/2;(s=r[1])&&t.push(new gn(s,h,d)),(s=r[0])&&t.push(new gn(s,o,h))}return this}function fu(n){var t=[],e=[],r;for(this._root&&t.push(new gn(this._root,this._x0,this._x1));r=t.pop();){var s=r.node;if(s.length){var o,d=r.x0,h=r.x1,p=(d+h)/2;(o=s[0])&&t.push(new gn(o,d,p)),(o=s[1])&&t.push(new gn(o,p,h))}e.push(r)}for(;r=e.pop();)n(r.node,r.x0,r.x1);return this}function lu(n){return n[0]}function du(n){return arguments.length?(this._x=n,this):this._x}function Xr(n,t){var e=new Kr(t==null?lu:t,NaN,NaN);return n==null?e:e.addAll(n)}function Kr(n,t,e){this._x=n,this._x0=t,this._x1=e,this._root=void 0}function ei(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var $e=Xr.prototype=Kr.prototype;$e.copy=function(){var n=new Kr(this._x,this._x0,this._x1),t=this._root,e,r;if(!t)return n;if(!t.length)return n._root=ei(t),n;for(e=[{source:t,target:n._root=new Array(2)}];t=e.pop();)for(var s=0;s<2;++s)(r=t.source[s])&&(r.length?e.push({source:r,target:t.target[s]=new Array(2)}):t.target[s]=ei(r));return n},$e.add=qa,$e.addAll=tu,$e.cover=eu,$e.data=nu,$e.extent=ru,$e.find=su,$e.remove=iu,$e.removeAll=ou,$e.root=au,$e.size=uu,$e.visit=cu,$e.visitAfter=fu,$e.x=du;var hu={value:()=>{}};function ni(){for(var n=0,t=arguments.length,e={},r;n<t;++n){if(!(r=arguments[n]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new gr(e)}function gr(n){this._=n}function gu(n,t){return n.trim().split(/^|\s+/).map(function(e){var r="",s=e.indexOf(".");if(s>=0&&(r=e.slice(s+1),e=e.slice(0,s)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}gr.prototype=ni.prototype={constructor:gr,on:function(n,t){var e=this._,r=gu(n+"",e),s,o=-1,d=r.length;if(arguments.length<2){for(;++o<d;)if((s=(n=r[o]).type)&&(s=pu(e[s],n.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<d;)if(s=(n=r[o]).type)e[s]=ri(e[s],n.name,t);else if(t==null)for(s in e)e[s]=ri(e[s],n.name,null);return this},copy:function(){var n={},t=this._;for(var e in t)n[e]=t[e].slice();return new gr(n)},call:function(n,t){if((s=arguments.length-2)>0)for(var e=new Array(s),r=0,s,o;r<s;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(o=this._[n],r=0,s=o.length;r<s;++r)o[r].value.apply(t,e)},apply:function(n,t,e){if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(var r=this._[n],s=0,o=r.length;s<o;++s)r[s].value.apply(t,e)}};function pu(n,t){for(var e=0,r=n.length,s;e<r;++e)if((s=n[e]).name===t)return s.value}function ri(n,t,e){for(var r=0,s=n.length;r<s;++r)if(n[r].name===t){n[r]=hu,n=n.slice(0,r).concat(n.slice(r+1));break}return e!=null&&n.push({name:t,value:e}),n}var vu=ni,Bn=0,qn=0,tr=0,si=1e3,pr,er,vr=0,jn=0,mr=0,nr=typeof performance=="object"&&performance.now?performance:Date,ii=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(n){setTimeout(n,17)};function oi(){return jn||(ii(mu),jn=nr.now()+mr)}function mu(){jn=0}function Zr(){this._call=this._time=this._next=null}Zr.prototype=ai.prototype={constructor:Zr,restart:function(n,t,e){if(typeof n!="function")throw new TypeError("callback is not a function");e=(e==null?oi():+e)+(t==null?0:+t),!this._next&&er!==this&&(er?er._next=this:pr=this,er=this),this._call=n,this._time=e,Jr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Jr())}};function ai(n,t,e){var r=new Zr;return r.restart(n,t,e),r}function yu(){oi(),++Bn;for(var n=pr,t;n;)(t=jn-n._time)>=0&&n._call.call(void 0,t),n=n._next;--Bn}function ui(){jn=(vr=nr.now())+mr,Bn=qn=0;try{yu()}finally{Bn=0,xu(),jn=0}}function wu(){var n=nr.now(),t=n-vr;t>si&&(mr-=t,vr=n)}function xu(){for(var n,t=pr,e,r=1/0;t;)t._call?(r>t._time&&(r=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:pr=e);er=n,Jr(r)}function Jr(n){if(!Bn){qn&&(qn=clearTimeout(qn));var t=n-jn;t>24?(n<1/0&&(qn=setTimeout(ui,n-nr.now()-mr)),tr&&(tr=clearInterval(tr))):(tr||(vr=nr.now(),tr=setInterval(wu,si)),Bn=1,ii(ui))}}const Eu=1664525,bu=1013904223,ci=4294967296;function Nu(){let n=1;return()=>(n=(Eu*n+bu)%ci)/ci}var fi=3;function Qr(n){return n.x}function li(n){return n.y}function Mu(n){return n.z}var Su=10,Ou=Math.PI*(3-Math.sqrt(5)),Au=Math.PI*20/(9+Math.sqrt(221));function Tu(n,t){t=t||2;var e=Math.min(fi,Math.max(1,Math.round(t))),r,s=1,o=.001,d=1-Math.pow(o,1/300),h=0,p=.6,g=new Map,y=ai(R),O=vu("tick","end"),L=Nu();n==null&&(n=[]);function R(){U(),O.call("tick",r),s<o&&(y.stop(),O.call("end",r))}function U(C){var W,Y=n.length,X;C===void 0&&(C=1);for(var q=0;q<C;++q)for(s+=(h-s)*d,g.forEach(function(st){st(s)}),W=0;W<Y;++W)X=n[W],X.fx==null?X.x+=X.vx*=p:(X.x=X.fx,X.vx=0),e>1&&(X.fy==null?X.y+=X.vy*=p:(X.y=X.fy,X.vy=0)),e>2&&(X.fz==null?X.z+=X.vz*=p:(X.z=X.fz,X.vz=0));return r}function F(){for(var C=0,W=n.length,Y;C<W;++C){if(Y=n[C],Y.index=C,Y.fx!=null&&(Y.x=Y.fx),Y.fy!=null&&(Y.y=Y.fy),Y.fz!=null&&(Y.z=Y.fz),isNaN(Y.x)||e>1&&isNaN(Y.y)||e>2&&isNaN(Y.z)){var X=Su*(e>2?Math.cbrt(.5+C):e>1?Math.sqrt(.5+C):C),q=C*Ou,st=C*Au;e===1?Y.x=X:e===2?(Y.x=X*Math.cos(q),Y.y=X*Math.sin(q)):(Y.x=X*Math.sin(q)*Math.cos(st),Y.y=X*Math.cos(q),Y.z=X*Math.sin(q)*Math.sin(st))}(isNaN(Y.vx)||e>1&&isNaN(Y.vy)||e>2&&isNaN(Y.vz))&&(Y.vx=0,e>1&&(Y.vy=0),e>2&&(Y.vz=0))}}function z(C){return C.initialize&&C.initialize(n,L,e),C}return F(),r={tick:U,restart:function(){return y.restart(R),r},stop:function(){return y.stop(),r},numDimensions:function(C){return arguments.length?(e=Math.min(fi,Math.max(1,Math.round(C))),g.forEach(z),r):e},nodes:function(C){return arguments.length?(n=C,F(),g.forEach(z),r):n},alpha:function(C){return arguments.length?(s=+C,r):s},alphaMin:function(C){return arguments.length?(o=+C,r):o},alphaDecay:function(C){return arguments.length?(d=+C,r):+d},alphaTarget:function(C){return arguments.length?(h=+C,r):h},velocityDecay:function(C){return arguments.length?(p=1-C,r):1-p},randomSource:function(C){return arguments.length?(L=C,g.forEach(z),r):L},force:function(C,W){return arguments.length>1?(W==null?g.delete(C):g.set(C,z(W)),r):g.get(C)},find:function(){var C=Array.prototype.slice.call(arguments),W=C.shift()||0,Y=(e>1?C.shift():null)||0,X=(e>2?C.shift():null)||0,q=C.shift()||1/0,st=0,ut=n.length,Q,vt,Et,Tt,Pt,Dt;for(q*=q,st=0;st<ut;++st)Pt=n[st],Q=W-Pt.x,vt=Y-(Pt.y||0),Et=X-(Pt.z||0),Tt=Q*Q+vt*vt+Et*Et,Tt<q&&(Dt=Pt,q=Tt);return Dt},on:function(C,W){return arguments.length>1?(O.on(C,W),r):O.on(C)}}}function ju(){var n,t,e,r,s,o=Me(-30),d,h=1,p=1/0,g=.81;function y(U){var F,z=n.length,C=(t===1?Xr(n,Qr):t===2?Fn(n,Qr,li):t===3?cr(n,Qr,li,Mu):null).visitAfter(L);for(s=U,F=0;F<z;++F)e=n[F],C.visit(R)}function O(){if(n){var U,F=n.length,z;for(d=new Array(F),U=0;U<F;++U)z=n[U],d[z.index]=+o(z,U,n)}}function L(U){var F=0,z,C,W=0,Y,X,q,st,ut=U.length;if(ut){for(Y=X=q=st=0;st<ut;++st)(z=U[st])&&(C=Math.abs(z.value))&&(F+=z.value,W+=C,Y+=C*(z.x||0),X+=C*(z.y||0),q+=C*(z.z||0));F*=Math.sqrt(4/ut),U.x=Y/W,t>1&&(U.y=X/W),t>2&&(U.z=q/W)}else{z=U,z.x=z.data.x,t>1&&(z.y=z.data.y),t>2&&(z.z=z.data.z);do F+=d[z.data.index];while(z=z.next)}U.value=F}function R(U,F,z,C,W){if(!U.value)return!0;var Y=[z,C,W][t-1],X=U.x-e.x,q=t>1?U.y-e.y:0,st=t>2?U.z-e.z:0,ut=Y-F,Q=X*X+q*q+st*st;if(ut*ut/g<Q)return Q<p&&(X===0&&(X=He(r),Q+=X*X),t>1&&q===0&&(q=He(r),Q+=q*q),t>2&&st===0&&(st=He(r),Q+=st*st),Q<h&&(Q=Math.sqrt(h*Q)),e.vx+=X*U.value*s/Q,t>1&&(e.vy+=q*U.value*s/Q),t>2&&(e.vz+=st*U.value*s/Q)),!0;if(U.length||Q>=p)return;(U.data!==e||U.next)&&(X===0&&(X=He(r),Q+=X*X),t>1&&q===0&&(q=He(r),Q+=q*q),t>2&&st===0&&(st=He(r),Q+=st*st),Q<h&&(Q=Math.sqrt(h*Q)));do U.data!==e&&(ut=d[U.data.index]*s/Q,e.vx+=X*ut,t>1&&(e.vy+=q*ut),t>2&&(e.vz+=st*ut));while(U=U.next)}return y.initialize=function(U,...F){n=U,r=F.find(z=>typeof z=="function")||Math.random,t=F.find(z=>[1,2,3].includes(z))||2,O()},y.strength=function(U){return arguments.length?(o=typeof U=="function"?U:Me(+U),O(),y):o},y.distanceMin=function(U){return arguments.length?(h=U*U,y):Math.sqrt(h)},y.distanceMax=function(U){return arguments.length?(p=U*U,y):Math.sqrt(p)},y.theta=function(U){return arguments.length?(g=U*U,y):Math.sqrt(g)},y}function Iu(n,t,e){var r,s=1;n==null&&(n=0),t==null&&(t=0),e==null&&(e=0);function o(){var d,h=r.length,p,g=0,y=0,O=0;for(d=0;d<h;++d)p=r[d],g+=p.x||0,y+=p.y||0,O+=p.z||0;for(g=(g/h-n)*s,y=(y/h-t)*s,O=(O/h-e)*s,d=0;d<h;++d)p=r[d],g&&(p.x-=g),y&&(p.y-=y),O&&(p.z-=O)}return o.initialize=function(d){r=d},o.x=function(d){return arguments.length?(n=+d,o):n},o.y=function(d){return arguments.length?(t=+d,o):t},o.z=function(d){return arguments.length?(e=+d,o):e},o.strength=function(d){return arguments.length?(s=+d,o):s},o}function _r(n){return n.x+n.vx}function di(n){return n.y+n.vy}function Pu(n){return n.z+n.vz}function Lu(n){var t,e,r,s,o=1,d=1;typeof n!="function"&&(n=Me(n==null?1:+n));function h(){for(var y,O=t.length,L,R,U,F,z,C,W,Y=0;Y<d;++Y)for(L=(e===1?Xr(t,_r):e===2?Fn(t,_r,di):e===3?cr(t,_r,di,Pu):null).visitAfter(p),y=0;y<O;++y)R=t[y],C=r[R.index],W=C*C,U=R.x+R.vx,e>1&&(F=R.y+R.vy),e>2&&(z=R.z+R.vz),L.visit(X);function X(q,st,ut,Q,vt,Et,Tt){var Pt=[st,ut,Q,vt,Et,Tt],Dt=Pt[0],Gt=Pt[1],zt=Pt[2],Jt=Pt[e],fe=Pt[e+1],bt=Pt[e+2],Bt=q.data,_t=q.r,Xt=C+_t;if(Bt){if(Bt.index>R.index){var ie=U-Bt.x-Bt.vx,le=e>1?F-Bt.y-Bt.vy:0,Qt=e>2?z-Bt.z-Bt.vz:0,oe=ie*ie+le*le+Qt*Qt;oe<Xt*Xt&&(ie===0&&(ie=He(s),oe+=ie*ie),e>1&&le===0&&(le=He(s),oe+=le*le),e>2&&Qt===0&&(Qt=He(s),oe+=Qt*Qt),oe=(Xt-(oe=Math.sqrt(oe)))/oe*o,R.vx+=(ie*=oe)*(Xt=(_t*=_t)/(W+_t)),e>1&&(R.vy+=(le*=oe)*Xt),e>2&&(R.vz+=(Qt*=oe)*Xt),Bt.vx-=ie*(Xt=1-Xt),e>1&&(Bt.vy-=le*Xt),e>2&&(Bt.vz-=Qt*Xt))}return}return Dt>U+Xt||Jt<U-Xt||e>1&&(Gt>F+Xt||fe<F-Xt)||e>2&&(zt>z+Xt||bt<z-Xt)}}function p(y){if(y.data)return y.r=r[y.data.index];for(var O=y.r=0;O<Math.pow(2,e);++O)y[O]&&y[O].r>y.r&&(y.r=y[O].r)}function g(){if(t){var y,O=t.length,L;for(r=new Array(O),y=0;y<O;++y)L=t[y],r[L.index]=+n(L,y,t)}}return h.initialize=function(y,...O){t=y,s=O.find(L=>typeof L=="function")||Math.random,e=O.find(L=>[1,2,3].includes(L))||2,g()},h.iterations=function(y){return arguments.length?(d=+y,h):d},h.strength=function(y){return arguments.length?(o=+y,h):o},h.radius=function(y){return arguments.length?(n=typeof y=="function"?y:Me(+y),g(),h):n},h}function Ru(n,t,e,r){var s,o,d=Me(.1),h,p;typeof n!="function"&&(n=Me(+n)),t==null&&(t=0),e==null&&(e=0),r==null&&(r=0);function g(O){for(var L=0,R=s.length;L<R;++L){var U=s[L],F=U.x-t||1e-6,z=(U.y||0)-e||1e-6,C=(U.z||0)-r||1e-6,W=Math.sqrt(F*F+z*z+C*C),Y=(p[L]-W)*h[L]*O/W;U.vx+=F*Y,o>1&&(U.vy+=z*Y),o>2&&(U.vz+=C*Y)}}function y(){if(s){var O,L=s.length;for(h=new Array(L),p=new Array(L),O=0;O<L;++O)p[O]=+n(s[O],O,s),h[O]=isNaN(p[O])?0:+d(s[O],O,s)}}return g.initialize=function(O,...L){s=O,o=L.find(R=>[1,2,3].includes(R))||2,y()},g.strength=function(O){return arguments.length?(d=typeof O=="function"?O:Me(+O),y(),g):d},g.radius=function(O){return arguments.length?(n=typeof O=="function"?O:Me(+O),y(),g):n},g.x=function(O){return arguments.length?(t=+O,g):t},g.y=function(O){return arguments.length?(e=+O,g):e},g.z=function(O){return arguments.length?(r=+O,g):r},g}function Cu(n){var t=Me(.1),e,r,s;typeof n!="function"&&(n=Me(n==null?0:+n));function o(h){for(var p=0,g=e.length,y;p<g;++p)y=e[p],y.vx+=(s[p]-y.x)*r[p]*h}function d(){if(e){var h,p=e.length;for(r=new Array(p),s=new Array(p),h=0;h<p;++h)r[h]=isNaN(s[h]=+n(e[h],h,e))?0:+t(e[h],h,e)}}return o.initialize=function(h){e=h,d()},o.strength=function(h){return arguments.length?(t=typeof h=="function"?h:Me(+h),d(),o):t},o.x=function(h){return arguments.length?(n=typeof h=="function"?h:Me(+h),d(),o):n},o}function Du(n){var t=Me(.1),e,r,s;typeof n!="function"&&(n=Me(n==null?0:+n));function o(h){for(var p=0,g=e.length,y;p<g;++p)y=e[p],y.vy+=(s[p]-y.y)*r[p]*h}function d(){if(e){var h,p=e.length;for(r=new Array(p),s=new Array(p),h=0;h<p;++h)r[h]=isNaN(s[h]=+n(e[h],h,e))?0:+t(e[h],h,e)}}return o.initialize=function(h){e=h,d()},o.strength=function(h){return arguments.length?(t=typeof h=="function"?h:Me(+h),d(),o):t},o.y=function(h){return arguments.length?(n=typeof h=="function"?h:Me(+h),d(),o):n},o}function zu(n){var t=Me(.1),e,r,s;typeof n!="function"&&(n=Me(n==null?0:+n));function o(h){for(var p=0,g=e.length,y;p<g;++p)y=e[p],y.vz+=(s[p]-y.z)*r[p]*h}function d(){if(e){var h,p=e.length;for(r=new Array(p),s=new Array(p),h=0;h<p;++h)r[h]=isNaN(s[h]=+n(e[h],h,e))?0:+t(e[h],h,e)}}return o.initialize=function(h){e=h,d()},o.strength=function(h){return arguments.length?(t=typeof h=="function"?h:Me(+h),d(),o):t},o.z=function(h){return arguments.length?(n=typeof h=="function"?h:Me(+h),d(),o):n},o}class Fu extends _s{constructor(){super(...arguments),this.id="d3-force-3d",this.config={inputNodeAttrs:["x","y","z","vx","vy","vz","fx","fy","fz"],outputNodeAttrs:["x","y","z","vx","vy","vz"],simulationAttrs:["alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","randomSource","numDimensions"]},this.forceMap={link:Ha,manyBody:ju,center:Iu,collide:Lu,radial:Ru,x:Cu,y:Du,z:zu},this.options={numDimensions:3,link:{id:t=>t.id},manyBody:{},center:{x:0,y:0,z:0}}}initSimulation(){return Tu()}}var hi=me(70681),ku=me.n(hi);class yr{constructor(t){this.id="dagre",this.options={},Object.assign(this.options,yr.defaultOptions,t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,Object.assign(Object.assign({},this.options),e))})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,Object.assign(Object.assign({},this.options),e))})}genericDagreLayout(t,e,r){return A(this,void 0,void 0,function*(){const{nodeSize:s}=r,o=new hi.graphlib.Graph;o.setGraph(r),o.setDefaultEdgeLabel(()=>({}));const d=e.getAllNodes(),h=e.getAllEdges();[...d,...h].some(({id:g})=>$t(g))&&console.error("Dagre layout only support string id, it will convert number to string."),e.getAllNodes().forEach(g=>{const{id:y}=g,O=Object.assign({},g.data);if(s!==void 0){const[L,R]=Kn(dn(s)?s(g):s);Object.assign(O,{width:L,height:R})}o.setNode(y.toString(),O)}),e.getAllEdges().forEach(({id:g,source:y,target:O})=>{o.setEdge(y.toString(),O.toString(),{id:g})}),ku().layout(o);const p={nodes:[],edges:[]};return o.nodes().forEach(g=>{const y=o.node(g);p.nodes.push({id:g,data:y}),t&&e.mergeNodeData(g,y)}),o.edges().forEach(g=>{const y=o.edge(g),{id:O}=y,L=l(y,["id"]),{v:R,w:U}=g;p.edges.push({id:O,source:R,target:U,data:L}),t&&e.mergeEdgeData(O,L)}),p})}}yr.defaultOptions={};class Hr{constructor(t){this.id=t.id||0,this.rx=t.rx,this.ry=t.ry,this.fx=0,this.fy=0,this.mass=t.mass,this.degree=t.degree,this.g=t.g||0}distanceTo(t){const e=this.rx-t.rx,r=this.ry-t.ry;return Math.hypot(e,r)}setPos(t,e){this.rx=t,this.ry=e}resetForce(){this.fx=0,this.fy=0}addForce(t){const e=t.rx-this.rx,r=t.ry-this.ry;let s=Math.hypot(e,r);s=s<1e-4?1e-4:s;const o=this.g*(this.degree+1)*(t.degree+1)/s;this.fx+=o*e/s,this.fy+=o*r/s}in(t){return t.contains(this.rx,this.ry)}add(t){const e=this.mass+t.mass,r=(this.rx*this.mass+t.rx*t.mass)/e,s=(this.ry*this.mass+t.ry*t.mass)/e,o=this.degree+t.degree,d={rx:r,ry:s,mass:e,degree:o};return new Hr(d)}}class Un{constructor(t){this.xmid=t.xmid,this.ymid=t.ymid,this.length=t.length,this.massCenter=t.massCenter||[0,0],this.mass=t.mass||1}getLength(){return this.length}contains(t,e){const r=this.length/2;return t<=this.xmid+r&&t>=this.xmid-r&&e<=this.ymid+r&&e>=this.ymid-r}NW(){const t=this.xmid-this.length/4,e=this.ymid+this.length/4,r=this.length/2,s={xmid:t,ymid:e,length:r};return new Un(s)}NE(){const t=this.xmid+this.length/4,e=this.ymid+this.length/4,r=this.length/2,s={xmid:t,ymid:e,length:r};return new Un(s)}SW(){const t=this.xmid-this.length/4,e=this.ymid-this.length/4,r=this.length/2,s={xmid:t,ymid:e,length:r};return new Un(s)}SE(){const t=this.xmid+this.length/4,e=this.ymid-this.length/4,r=this.length/2,s={xmid:t,ymid:e,length:r};return new Un(s)}}class Vn{constructor(t){this.body=null,this.quad=null,this.NW=null,this.NE=null,this.SW=null,this.SE=null,this.theta=.5,t!=null&&(this.quad=t)}insert(t){if(this.body==null){this.body=t;return}this._isExternal()?(this.quad&&(this.NW=new Vn(this.quad.NW()),this.NE=new Vn(this.quad.NE()),this.SW=new Vn(this.quad.SW()),this.SE=new Vn(this.quad.SE())),this._putBody(this.body),this._putBody(t),this.body=this.body.add(t)):(this.body=this.body.add(t),this._putBody(t))}_putBody(t){this.quad&&(t.in(this.quad.NW())&&this.NW?this.NW.insert(t):t.in(this.quad.NE())&&this.NE?this.NE.insert(t):t.in(this.quad.SW())&&this.SW?this.SW.insert(t):t.in(this.quad.SE())&&this.SE&&this.SE.insert(t))}_isExternal(){return this.NW==null&&this.NE==null&&this.SW==null&&this.SE==null}updateForce(t){if(!(this.body==null||t===this.body))if(this._isExternal())t.addForce(this.body);else{const e=this.quad?this.quad.getLength():0,r=this.body.distanceTo(t);e/r<this.theta?t.addForce(this.body):(this.NW&&this.NW.updateForce(t),this.NE&&this.NE.updateForce(t),this.SW&&this.SW.updateForce(t),this.SE&&this.SE.updateForce(t))}}}const Bu={center:[0,0],width:300,height:300,kr:5,kg:1,mode:"normal",preventOverlap:!1,dissuadeHubs:!1,maxIteration:0,ks:.1,ksmax:10,tao:.1};class Uu{constructor(t={}){this.options=t,this.id="forceAtlas2",this.options=Object.assign(Object.assign({},Bu),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericForceAtlas2Layout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericForceAtlas2Layout(!0,t,e)})}genericForceAtlas2Layout(t,e,r){return A(this,void 0,void 0,function*(){const s=e.getAllEdges(),o=e.getAllNodes(),d=this.formatOptions(r,o.length),{width:h,height:p,prune:g,maxIteration:y,nodeSize:O,center:L}=d;if(!(o!=null&&o.length)||o.length===1)return An(e,t,L);const R=o.map(C=>Je(C,[h,p])),U=s.filter(C=>{const{source:W,target:Y}=C;return W!==Y}),F=new xe({nodes:R,edges:U}),z=this.getSizes(F,O);if(this.run(F,e,y,z,t,d),g){for(let W=0;W<U.length;W+=1){const{source:Y,target:X}=U[W],q=F.getDegree(Y),st=F.getDegree(Y);if(q<=1){const ut=F.getNode(X);F.mergeNodeData(Y,{x:ut.data.x,y:ut.data.y})}else if(st<=1){const ut=F.getNode(Y);F.mergeNodeData(X,{x:ut.data.x,y:ut.data.y})}}const C=Object.assign(Object.assign({},d),{prune:!1,barnesHut:!1});this.run(F,e,100,z,t,C)}return{nodes:R,edges:s}})}getSizes(t,e){const r=t.getAllNodes(),s={};for(let o=0;o<r.length;o+=1){const d=r[o];s[d.id]=Dr(e,void 0)(d)}return s}formatOptions(t={},e){const r=Object.assign(Object.assign({},this.options),t),{center:s,width:o,height:d,barnesHut:h,prune:p,maxIteration:g,kr:y,kg:O}=r;return r.width=!o&&typeof window!="undefined"?window.innerWidth:o,r.height=!d&&typeof window!="undefined"?window.innerHeight:d,r.center=s||[r.width/2,r.height/2],h===void 0&&e>250&&(r.barnesHut=!0),p===void 0&&e>100&&(r.prune=!0),g===0&&!p?(r.maxIteration=250,e<=200&&e>100?r.maxIteration=1e3:e>200&&(r.maxIteration=1200)):g===0&&p&&(r.maxIteration=100,e<=200&&e>100?r.maxIteration=500:e>200&&(r.maxIteration=950)),y||(r.kr=50,e>100&&e<=500?r.kr=20:e>500&&(r.kr=1)),O||(r.kg=20,e>100&&e<=500?r.kg=10:e>500&&(r.kg=1)),r}run(t,e,r,s,o,d){const{kr:h,barnesHut:p,onTick:g}=d,y=t.getAllNodes();let O=0,L=r;const R={},U={},F={};for(let z=0;z<y.length;z+=1){const{data:C,id:W}=y[z];if(R[W]=[0,0],p){const Y={id:z,rx:C.x,ry:C.y,mass:1,g:h,degree:t.getDegree(W)};F[W]=new Hr(Y)}}for(;L>0;)O=this.oneStep(t,{iter:L,preventOverlapIters:50,krPrime:100,sg:O,forces:R,preForces:U,bodies:F,sizes:s},d),L--,g==null||g({nodes:y,edges:e.getAllEdges()});return t}oneStep(t,e,r){const{iter:s,preventOverlapIters:o,krPrime:d,sg:h,preForces:p,bodies:g,sizes:y}=e;let{forces:O}=e;const{preventOverlap:L,barnesHut:R}=r,U=t.getAllNodes();for(let F=0;F<U.length;F+=1){const{id:z}=U[F];p[z]=[...O[z]],O[z]=[0,0]}return O=this.getAttrForces(t,s,o,y,O,r),R&&(L&&s>o||!L)?O=this.getOptRepGraForces(t,O,g,r):O=this.getRepGraForces(t,s,o,O,d,y,r),this.updatePos(t,O,p,h,r)}getAttrForces(t,e,r,s,o,d){const{preventOverlap:h,dissuadeHubs:p,mode:g,prune:y}=d,O=t.getAllEdges();for(let L=0;L<O.length;L+=1){const{source:R,target:U}=O[L],F=t.getNode(R),z=t.getNode(U),C=t.getDegree(R),W=t.getDegree(U);if(y&&(C<=1||W<=1))continue;const Y=[z.data.x-F.data.x,z.data.y-F.data.y];let X=Math.hypot(Y[0],Y[1]);X=X<1e-4?1e-4:X,Y[0]=Y[0]/X,Y[1]=Y[1]/X,h&&e<r&&(X=X-s[R]-s[U]);let q=X,st=q;g==="linlog"&&(q=Math.log(1+X),st=q),p&&(q=X/C,st=X/W),h&&e<r&&X<=0?(q=0,st=0):h&&e<r&&X>0&&(q=X,st=X),o[R][0]+=q*Y[0],o[U][0]-=st*Y[0],o[R][1]+=q*Y[1],o[U][1]-=st*Y[1]}return o}getOptRepGraForces(t,e,r,s){const{kg:o,center:d,prune:h}=s,p=t.getAllNodes(),g=p.length;let y=9e10,O=-9e10,L=9e10,R=-9e10;for(let W=0;W<g;W+=1){const{id:Y,data:X}=p[W];h&&t.getDegree(Y)<=1||(r[Y].setPos(X.x,X.y),X.x>=O&&(O=X.x),X.x<=y&&(y=X.x),X.y>=R&&(R=X.y),X.y<=L&&(L=X.y))}const U=Math.max(O-y,R-L),F={xmid:(O+y)/2,ymid:(R+L)/2,length:U,massCenter:d,mass:g},z=new Un(F),C=new Vn(z);for(let W=0;W<g;W+=1){const{id:Y}=p[W];h&&t.getDegree(Y)<=1||r[Y].in(z)&&C.insert(r[Y])}for(let W=0;W<g;W+=1){const{id:Y,data:X}=p[W],q=t.getDegree(Y);if(h&&q<=1)continue;r[Y].resetForce(),C.updateForce(r[Y]),e[Y][0]-=r[Y].fx,e[Y][1]-=r[Y].fy;const st=[X.x-d[0],X.y-d[1]];let ut=Math.hypot(st[0],st[1]);ut=ut<1e-4?1e-4:ut,st[0]=st[0]/ut,st[1]=st[1]/ut;const Q=o*(q+1);e[Y][0]-=Q*st[0],e[Y][1]-=Q*st[1]}return e}getRepGraForces(t,e,r,s,o,d,h){const{preventOverlap:p,kr:g,kg:y,center:O,prune:L}=h,R=t.getAllNodes(),U=R.length;for(let F=0;F<U;F+=1){const z=R[F],C=t.getDegree(z.id);for(let q=F+1;q<U;q+=1){const st=R[q],ut=t.getDegree(st.id);if(L&&(C<=1||ut<=1))continue;const Q=[st.data.x-z.data.x,st.data.y-z.data.y];let vt=Math.hypot(Q[0],Q[1]);vt=vt<1e-4?1e-4:vt,Q[0]=Q[0]/vt,Q[1]=Q[1]/vt,p&&e<r&&(vt=vt-d[z.id]-d[st.id]);let Et=g*(C+1)*(ut+1)/vt;p&&e<r&&vt<0?Et=o*(C+1)*(ut+1):p&&e<r&&vt===0?Et=0:p&&e<r&&vt>0&&(Et=g*(C+1)*(ut+1)/vt),s[z.id][0]-=Et*Q[0],s[st.id][0]+=Et*Q[0],s[z.id][1]-=Et*Q[1],s[st.id][1]+=Et*Q[1]}const W=[z.data.x-O[0],z.data.y-O[1]],Y=Math.hypot(W[0],W[1]);W[0]=W[0]/Y,W[1]=W[1]/Y;const X=y*(C+1);s[z.id][0]-=X*W[0],s[z.id][1]-=X*W[1]}return s}updatePos(t,e,r,s,o){const{ks:d,tao:h,prune:p,ksmax:g}=o,y=t.getAllNodes(),O=y.length,L=[],R=[];let U=0,F=0,z=s;for(let W=0;W<O;W+=1){const{id:Y}=y[W],X=t.getDegree(Y);if(p&&X<=1)continue;const q=[e[Y][0]-r[Y][0],e[Y][1]-r[Y][1]],st=Math.hypot(q[0],q[1]),ut=[e[Y][0]+r[Y][0],e[Y][1]+r[Y][1]],Q=Math.hypot(ut[0],ut[1]);L[W]=st,R[W]=Q/2,U+=(X+1)*L[W],F+=(X+1)*R[W]}const C=z;z=h*F/U,C!==0&&(z=z>1.5*C?1.5*C:z);for(let W=0;W<O;W+=1){const{id:Y,data:X}=y[W],q=t.getDegree(Y);if(p&&q<=1||$t(X.fx)&&$t(X.fy))continue;let st=d*z/(1+z*Math.sqrt(L[W])),ut=Math.hypot(e[Y][0],e[Y][1]);ut=ut<1e-4?1e-4:ut;const Q=g/ut;st=st>Q?Q:st;const vt=st*e[Y][0],Et=st*e[Y][1];t.mergeNodeData(Y,{x:X.x+vt,y:X.y+Et})}return z}}const Vu={maxIteration:1e3,gravity:10,speed:5,clustering:!1,clusterGravity:10,width:300,height:300,nodeClusterBy:"cluster"},Gu=800;class Wu{constructor(t={}){this.options=t,this.id="fruchterman",this.timeInterval=0,this.running=!1,this.options=Object.assign(Object.assign({},Vu),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericFruchtermanLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericFruchtermanLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval),this.running=!1}tick(t=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let r=0;r<t;r++)this.runOneStep(this.lastGraph,this.lastClusterMap,this.lastOptions);const e={nodes:this.lastLayoutNodes,edges:this.lastLayoutEdges};return this.lastAssign&&e.nodes.forEach(r=>this.lastGraph.mergeNodeData(r.id,{x:r.data.x,y:r.data.y,z:this.options.dimensions===3?r.data.z:void 0})),e}genericFruchtermanLayout(t,e,r){return A(this,void 0,void 0,function*(){if(this.running)return;const s=this.formatOptions(r),{dimensions:o,width:d,height:h,center:p,clustering:g,nodeClusterBy:y,maxIteration:O,onTick:L}=s,R=e.getAllNodes(),U=e.getAllEdges();if(!(R!=null&&R.length)){const Y={nodes:[],edges:U};return this.lastResult=Y,Y}if(R.length===1){t&&e.mergeNodeData(R[0].id,{x:p[0],y:p[1],z:o===3?p[2]:void 0});const Y={nodes:[Object.assign(Object.assign({},R[0]),{data:Object.assign(Object.assign({},R[0].data),{x:p[0],y:p[1],z:o===3?p[2]:void 0})})],edges:U};return this.lastResult=Y,Y}const F=R.map(Y=>Je(Y,[d,h])),z=new xe({nodes:F,edges:U}),C={};if(g&&F.forEach(Y=>{const X=Y.data[y];C[X]||(C[X]={name:X,cx:0,cy:0,count:0})}),this.lastLayoutNodes=F,this.lastLayoutEdges=U,this.lastAssign=t,this.lastGraph=z,this.lastOptions=s,this.lastClusterMap=C,typeof window=="undefined")return;let W=0;return new Promise(Y=>{this.timeInterval=window.setInterval(()=>{if(!this.running){Y({nodes:F,edges:U});return}this.runOneStep(z,C,s),t&&F.forEach(({id:X,data:q})=>e.mergeNodeData(X,{x:q.x,y:q.y,z:o===3?q.z:void 0})),L==null||L({nodes:F,edges:U}),W++,W>=O&&(window.clearInterval(this.timeInterval),Y({nodes:F,edges:U}))},0),this.running=!0})})}formatOptions(t={}){const e=Object.assign(Object.assign({},this.options),t),{clustering:r,nodeClusterBy:s}=e,{center:o,width:d,height:h}=e;return e.width=!d&&typeof window!="undefined"?window.innerWidth:d,e.height=!h&&typeof window!="undefined"?window.innerHeight:h,e.center=o||[e.width/2,e.height/2],e.clustering=r&&!!s,e}runOneStep(t,e,r){const{dimensions:s,height:o,width:d,gravity:h,center:p,speed:g,clustering:y,nodeClusterBy:O,clusterGravity:L}=r,R=o*d,U=Math.sqrt(R)/10,F=t.getAllNodes(),z=R/(F.length+1),C=Math.sqrt(z),W={};if(this.applyCalculate(t,W,C,z),y){for(const X in e)e[X].cx=0,e[X].cy=0,e[X].count=0;F.forEach(X=>{const{data:q}=X,st=e[q[O]];$t(q.x)&&(st.cx+=q.x),$t(q.y)&&(st.cy+=q.y),st.count++});for(const X in e)e[X].cx/=e[X].count,e[X].cy/=e[X].count;const Y=L||h;F.forEach((X,q)=>{const{id:st,data:ut}=X;if(!$t(ut.x)||!$t(ut.y))return;const Q=e[ut[O]],vt=Math.sqrt((ut.x-Q.cx)*(ut.x-Q.cx)+(ut.y-Q.cy)*(ut.y-Q.cy)),Et=C*Y;W[st].x-=Et*(ut.x-Q.cx)/vt,W[st].y-=Et*(ut.y-Q.cy)/vt})}F.forEach((Y,X)=>{const{id:q,data:st}=Y;if(!$t(st.x)||!$t(st.y))return;const ut=.01*C*h;W[q].x-=ut*(st.x-p[0]),W[q].y-=ut*(st.y-p[1]),s===3&&(W[q].z-=ut*(st.z-p[2]))}),F.forEach((Y,X)=>{const{id:q,data:st}=Y;if($t(st.fx)&&$t(st.fy)){st.x=st.fx,st.y=st.fy,s===3&&(st.z=st.fz);return}if(!$t(st.x)||!$t(st.y))return;const ut=Math.sqrt(W[q].x*W[q].x+W[q].y*W[q].y+(s===3?W[q].z*W[q].z:0));if(ut>0){const Q=Math.min(U*(g/Gu),ut);t.mergeNodeData(q,{x:st.x+W[q].x/ut*Q,y:st.y+W[q].y/ut*Q,z:s===3?st.z+W[q].z/ut*Q:void 0})}})}applyCalculate(t,e,r,s){this.calRepulsive(t,e,s),this.calAttractive(t,e,r)}calRepulsive(t,e,r){const s=t.getAllNodes();s.forEach(({data:o,id:d},h)=>{e[d]={x:0,y:0,z:0},s.forEach(({data:p,id:g},y)=>{if(h<=y||!$t(o.x)||!$t(p.x)||!$t(o.y)||!$t(p.y))return;let O=o.x-p.x,L=o.y-p.y,R=this.options.dimensions===3?o.z-p.z:0,U=O*O+L*L+R*R;U===0&&(U=1,O=.01,L=.01,R=.01);const F=r/U,z=O*F,C=L*F,W=R*F;e[d].x+=z,e[d].y+=C,e[g].x-=z,e[g].y-=C,this.options.dimensions===3&&(e[d].z+=W,e[g].z-=W)})})}calAttractive(t,e,r){t.getAllEdges().forEach(o=>{const{source:d,target:h}=o;if(!d||!h||d===h)return;const{data:p}=t.getNode(d),{data:g}=t.getNode(h);if(!$t(g.x)||!$t(p.x)||!$t(g.y)||!$t(p.y))return;const y=g.x-p.x,O=g.y-p.y,L=this.options.dimensions===3?g.z-p.z:0,R=Math.sqrt(y*y+O*O+L*L)/r,U=y*R,F=O*R,z=L*R;e[d].x+=U,e[d].y+=F,e[h].x-=U,e[h].y-=F,this.options.dimensions===3&&(e[d].z+=z,e[h].z-=z)})}}const Yu={begin:[0,0],preventOverlap:!0,preventOverlapPadding:10,condense:!1,rows:void 0,cols:void 0,position:void 0,sortBy:"degree",nodeSize:30,width:300,height:300};class $u{constructor(t={}){this.options=t,this.id="grid",this.options=Object.assign(Object.assign({},Yu),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericGridLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericGridLayout(!0,t,e)})}genericGridLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=Object.assign(Object.assign({},this.options),r),{begin:o=[0,0],condense:d,preventOverlapPadding:h,preventOverlap:p,rows:g,cols:y,nodeSpacing:O,nodeSize:L,width:R,height:U,position:F}=s;let{sortBy:z}=s;const C=e.getAllNodes(),W=e.getAllEdges(),Y=C==null?void 0:C.length;if(!Y||Y===1)return An(e,t,o);const X=C.map(zt=>Je(zt));z!=="id"&&(!Zn(z)||X[0].data[z]===void 0)&&(z="degree"),z==="degree"?X.sort((zt,Jt)=>e.getDegree(Jt.id,"both")-e.getDegree(zt.id,"both")):z==="id"?X.sort((zt,Jt)=>$t(Jt.id)&&$t(zt.id)?Jt.id-zt.id:`${zt.id}`.localeCompare(`${Jt.id}`)):X.sort((zt,Jt)=>Jt.data[z]-zt.data[z]);const q=!R&&typeof window!="undefined"?window.innerWidth:R,st=!U&&typeof window!="undefined"?window.innerHeight:U,ut=Y,Q={rows:g,cols:y};if(g!=null&&y!=null)Q.rows=g,Q.cols=y;else if(g!=null&&y==null)Q.rows=g,Q.cols=Math.ceil(ut/Q.rows);else if(g==null&&y!=null)Q.cols=y,Q.rows=Math.ceil(ut/Q.cols);else{const zt=Math.sqrt(ut*st/q);Q.rows=Math.round(zt),Q.cols=Math.round(q/st*zt)}if(Q.rows=Math.max(Q.rows,1),Q.cols=Math.max(Q.cols,1),Q.cols*Q.rows>ut){const zt=wr(Q),Jt=xr(Q);(zt-1)*Jt>=ut?wr(Q,zt-1):(Jt-1)*zt>=ut&&xr(Q,Jt-1)}else for(;Q.cols*Q.rows<ut;){const zt=wr(Q),Jt=xr(Q);(Jt+1)*zt>=ut?xr(Q,Jt+1):wr(Q,zt+1)}let vt=d?0:q/Q.cols,Et=d?0:st/Q.rows;if(p||O){const zt=On(10,O),Jt=Cr(30,L,!1);X.forEach(fe=>{(!fe.data.x||!fe.data.y)&&(fe.data.x=0,fe.data.y=0);const bt=e.getNode(fe.id),[Bt,_t]=Kn(Jt(bt)||30),Xt=zt!==void 0?zt(fe):h,ie=Bt+Xt,le=_t+Xt;vt=Math.max(vt,ie),Et=Math.max(Et,le)})}const Tt={},Pt={row:0,col:0},Dt={};for(let zt=0;zt<X.length;zt++){const Jt=X[zt];let fe;if(F&&(fe=F(e.getNode(Jt.id))),fe&&(fe.row!==void 0||fe.col!==void 0)){const bt={row:fe.row,col:fe.col};if(bt.col===void 0)for(bt.col=0;qr(Tt,bt);)bt.col++;else if(bt.row===void 0)for(bt.row=0;qr(Tt,bt);)bt.row++;Dt[Jt.id]=bt,gi(Tt,bt)}Xu(Jt,o,vt,Et,Dt,Q,Pt,Tt)}const Gt={nodes:X,edges:W};return t&&X.forEach(zt=>{e.mergeNodeData(zt.id,{x:zt.data.x,y:zt.data.y})}),Gt})}}const wr=(n,t)=>{let e;const r=n.rows||5,s=n.cols||5;return t==null?e=Math.min(r,s):Math.min(r,s)===n.rows?n.rows=t:n.cols=t,e},xr=(n,t)=>{let e;const r=n.rows||5,s=n.cols||5;return t==null?e=Math.max(r,s):Math.max(r,s)===n.rows?n.rows=t:n.cols=t,e},qr=(n,t)=>n[`c-${t.row}-${t.col}`]||!1,gi=(n,t)=>n[`c-${t.row}-${t.col}`]=!0,pi=(n,t)=>{const e=n.cols||5;t.col++,t.col>=e&&(t.col=0,t.row++)},Xu=(n,t,e,r,s,o,d,h)=>{let p,g;const y=s[n.id];if(y)p=y.col*e+e/2+t[0],g=y.row*r+r/2+t[1];else{for(;qr(h,d);)pi(o,d);p=d.col*e+e/2+t[0],g=d.row*r+r/2+t[1],gi(h,d),pi(o,d)}n.data.x=p,n.data.y=g},Ku=(n,t,e)=>{try{const r=bn.mul(bn.pow(t,2),-.5),s=r.mean("row"),o=r.mean("column"),d=r.mean();r.add(d).subRowVector(s).subColumnVector(o);const h=new Ls(r),p=bn.sqrt(h.diagonalMatrix).diagonal();return h.leftSingularVectors.toJSON().map(g=>bn.mul([g],[p]).toJSON()[0].splice(0,n))}catch(r){const s=[];for(let o=0;o<t.length;o++){const d=Math.random()*e,h=Math.random()*e;s.push([d,h])}return s}},Zu=800,Ju={iterations:10,height:10,width:10,speed:100,gravity:10,k:5},Qu=(n,t)=>{const e=Object.assign(Object.assign({},Ju),t),{positions:r,iterations:s,width:o,k:d,speed:h=100,strictRadial:p,focusIdx:g,radii:y=[],nodeSizeFunc:O}=e,L=n.getAllNodes(),R=[],U=o/10;for(let F=0;F<s;F++)r.forEach((z,C)=>{R[C]={x:0,y:0}}),_u(L,r,R,d,y,O),Hu(r,R,h,p,g,U,o,y);return r},_u=(n,t,e,r,s,o)=>{t.forEach((d,h)=>{e[h]={x:0,y:0},t.forEach((p,g)=>{if(h===g||s[h]!==s[g])return;let y=d.x-p.x,O=d.y-p.y,L=Math.sqrt(y*y+O*O);if(L===0){L=1;const R=h>g?1:-1;y=.01*R,O=.01*R}if(L<o(n[h])/2+o(n[g])/2){const R=r*r/L;e[h].x+=y/L*R,e[h].y+=O/L*R}})})},Hu=(n,t,e,r,s,o,d,h)=>{const p=o||d/10;return r&&t.forEach((g,y)=>{const O=n[y].x-n[s].x,L=n[y].y-n[s].y,R=Math.sqrt(O*O+L*L);let U=L/R,F=-O/R;const z=Math.sqrt(g.x*g.x+g.y*g.y);let C=Math.acos((U*g.x+F*g.y)/z);C>Math.PI/2&&(C-=Math.PI/2,U*=-1,F*=-1);const W=Math.cos(C)*z;g.x=U*W,g.y=F*W}),n.forEach((g,y)=>{if(y===s)return;const O=Math.sqrt(t[y].x*t[y].x+t[y].y*t[y].y);if(O>0&&y!==s){const L=Math.min(p*(e/Zu),O);if(g.x+=t[y].x/O*L,g.y+=t[y].y/O*L,r){let R=g.x-n[s].x,U=g.y-n[s].y;const F=Math.sqrt(R*R+U*U);R=R/F*h[y],U=U/F*h[y],g.x=n[s].x+R,g.y=n[s].y+U}}}),n},qu={maxIteration:1e3,focusNode:null,unitRadius:null,linkDistance:50,preventOverlap:!1,strictRadial:!0,maxPreventOverlapIteration:200,sortStrength:10};class tc{constructor(t={}){this.options=t,this.id="radial",this.options=Object.assign(Object.assign({},qu),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericRadialLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericRadialLayout(!0,t,e)})}genericRadialLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=Object.assign(Object.assign({},this.options),r),{width:o,height:d,center:h,focusNode:p,unitRadius:g,nodeSize:y,nodeSpacing:O,strictRadial:L,preventOverlap:R,maxPreventOverlapIteration:U,sortBy:F,linkDistance:z=50,sortStrength:C=10,maxIteration:W=1e3}=s,Y=e.getAllNodes(),X=e.getAllEdges(),q=!o&&typeof window!="undefined"?window.innerWidth:o,st=!d&&typeof window!="undefined"?window.innerHeight:d,ut=h||[q/2,st/2];if(!(Y!=null&&Y.length)||Y.length===1)return An(e,t,ut);let Q=Y[0];if(Zn(p)){for(let Ee=0;Ee<Y.length;Ee++)if(Y[Ee].id===p){Q=Y[Ee];break}}else Q=p||Y[0];const vt=rc(Y,Q.id),Et=Cs({nodes:Y,edges:X},!1),Tt=Rs(Et),Pt=ic(Tt,vt);sc(Tt,vt,Pt+1);const Dt=Tt[vt];let Gt=q-ut[0]>ut[0]?ut[0]:q-ut[0],zt=st-ut[1]>ut[1]?ut[1]:st-ut[1];Gt===0&&(Gt=q/2),zt===0&&(zt=st/2);const Jt=Math.min(Gt,zt),fe=Math.max(...Dt),bt=[],Bt=g||Jt/fe;Dt.forEach((Ee,qe)=>{bt[qe]=Ee*Bt});const _t=ec(Y,Tt,z,bt,Bt,F,C),Xt=nc(_t),ie=Ku(z,_t,z);let le=ie.map(([Ee,qe])=>({x:(isNaN(Ee)?Math.random()*z:Ee)-ie[vt][0],y:(isNaN(qe)?Math.random()*z:qe)-ie[vt][1]}));this.run(W,le,Xt,_t,bt,vt);let Qt;if(R){Qt=Dr(y,O);const Ee={nodes:Y,nodeSizeFunc:Qt,positions:le,radii:bt,height:st,width:q,strictRadial:!!L,focusIdx:vt,iterations:U||200,k:le.length/4.5};le=Qu(e,Ee)}const oe=[];return le.forEach((Ee,qe)=>{const vn=Je(Y[qe]);vn.data.x=Ee.x+ut[0],vn.data.y=Ee.y+ut[1],oe.push(vn)}),t&&oe.forEach(Ee=>e.mergeNodeData(Ee.id,{x:Ee.data.x,y:Ee.data.y})),{nodes:oe,edges:X}})}run(t,e,r,s,o,d){for(let h=0;h<=t;h++){const p=h/t;this.oneIteration(p,e,o,s,r,d)}}oneIteration(t,e,r,s,o,d){const h=1-t;e.forEach((p,g)=>{const y=Ds(p,{x:0,y:0}),O=y===0?0:1/y;if(g===d)return;let L=0,R=0,U=0;e.forEach((z,C)=>{if(g===C)return;const W=Ds(p,z),Y=W===0?0:1/W,X=s[C][g];U+=o[g][C],L+=o[g][C]*(z.x+X*(p.x-z.x)*Y),R+=o[g][C]*(z.y+X*(p.y-z.y)*Y)});const F=r[g]===0?0:1/r[g];U*=h,U+=t*F*F,L*=h,L+=t*F*p.x*O,p.x=L/U,R*=h,R+=t*F*p.y*O,p.y=R/U})}}const ec=(n,t,e,r,s,o,d)=>{if(!n)return[];const h=[];if(t){const p={};t.forEach((g,y)=>{const O=[];g.forEach((L,R)=>{var U,F;if(y===R)O.push(0);else if(r[y]===r[R])if(o==="data")O.push(L*(Math.abs(y-R)*d)/(r[y]/s));else if(o){let z,C;if(p[n[y].id])z=p[n[y].id];else{const W=(o==="id"?n[y].id:(U=n[y].data)===null||U===void 0?void 0:U[o])||0;Zn(W)?z=W.charCodeAt(0):z=W,p[n[y].id]=z}if(p[n[R].id])C=p[n[R].id];else{const W=(o==="id"?n[R].id:(F=n[R].data)===null||F===void 0?void 0:F[o])||0;Zn(W)?C=W.charCodeAt(0):C=W,p[n[R].id]=C}O.push(L*(Math.abs(z-C)*d)/(r[y]/s))}else O.push(L*e/(r[y]/s));else{const z=(e+s)/2;O.push(L*z)}}),h.push(O)})}return h},nc=n=>{const t=n.length,e=n[0].length,r=[];for(let s=0;s<t;s++){const o=[];for(let d=0;d<e;d++)n[s][d]!==0?o.push(1/(n[s][d]*n[s][d])):o.push(0);r.push(o)}return r},rc=(n,t)=>{let e=-1;return n.forEach((r,s)=>{r.id===t&&(e=s)}),Math.max(e,0)},sc=(n,t,e)=>{const r=n.length;for(let s=0;s<r;s++)if(n[t][s]===1/0){n[t][s]=e,n[s][t]=e;for(let o=0;o<r;o++)n[s][o]!==1/0&&n[t][o]===1/0&&(n[t][o]=e+n[s][o],n[o][t]=e+n[s][o])}for(let s=0;s<r;s++)if(s!==t){for(let o=0;o<r;o++)if(n[s][o]===1/0){let d=Math.abs(n[t][s]-n[t][o]);d=d===0?1:d,n[s][o]=d}}},ic=(n,t)=>{let e=0;for(let r=0;r<n[t].length;r++)n[t][r]!==1/0&&(e=n[t][r]>e?n[t][r]:e);return e},oc={center:[0,0],width:300,height:300};class ac{constructor(t={}){this.options=t,this.id="random",this.options=Object.assign(Object.assign({},oc),t)}execute(t,e){return A(this,void 0,void 0,function*(){return this.genericRandomLayout(!1,t,e)})}assign(t,e){return A(this,void 0,void 0,function*(){yield this.genericRandomLayout(!0,t,e)})}genericRandomLayout(t,e,r){return A(this,void 0,void 0,function*(){const s=Object.assign(Object.assign({},this.options),r),{center:o,width:d,height:h}=s,p=e.getAllNodes(),g=.9,y=!d&&typeof window!="undefined"?window.innerWidth:d,O=!h&&typeof window!="undefined"?window.innerHeight:h,L=o||[y/2,O/2],R=[];return p&&p.forEach(F=>{R.push({id:F.id,data:{x:(Math.random()-.5)*g*y+L[0],y:(Math.random()-.5)*g*O+L[1]}})}),t&&R.forEach(F=>e.mergeNodeData(F.id,{x:F.data.x,y:F.data.y})),{nodes:R,edges:e.getAllEdges()}})}}const uc={circular:ho,concentric:Fr,mds:zs,random:ac,grid:$u,radial:tc,force:js,d3force:_s,"d3-force-3d":Fu,fruchterman:Wu,forceAtlas2:Uu,dagre:yr,antvDagre:co,comboCombined:da};let pn;ge({stopLayout(){pn!=null&&pn.stop&&pn.stop()},calculateLayout(n,t){return A(this,void 0,void 0,function*(){const{layout:{id:e,options:r,iterations:s},nodes:o,edges:d}=n,h=new xe({nodes:o,edges:d}),p=uc[e];if(p)pn=new p(r);else throw new Error(`Unknown layout id: ${e}`);let g=yield pn.execute(h);return Fs(pn)&&(pn.stop(),g=pn.tick(s)),[g,t]})}})})()})();
|