Files
weiyu/deploy/server/agent/assets/worker-DNPIT6vh.js
jack ning 4445905084 update
2025-11-22 13:39:00 +08:00

14 lines
300 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var rR=Object.defineProperty;var l0=te=>{throw TypeError(te)};var nR=(te,L,oe)=>L in te?rR(te,L,{enumerable:!0,configurable:!0,writable:!0,value:oe}):te[L]=oe;var re=(te,L,oe)=>nR(te,typeof L!="symbol"?L+"":L,oe),sc=(te,L,oe)=>L.has(te)||l0("Cannot "+oe);var Oe=(te,L,oe)=>(sc(te,L,"read from private field"),oe?oe.call(te):L.get(te)),oc=(te,L,oe)=>L.has(te)?l0("Cannot add the same private member more than once"):L instanceof WeakSet?L.add(te):L.set(te,oe),Hr=(te,L,oe,Ht)=>(sc(te,L,"write to private field"),Ht?Ht.call(te,oe):L.set(te,oe),oe),ac=(te,L,oe)=>(sc(te,L,"access private method"),oe);(function(){"use strict";var Qt,uc,lt,fe;function te(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 i=0,r=Object.getOwnPropertySymbols(n);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(n,r[i])&&(e[r[i]]=n[r[i]]);return e}function L(n,t,e,r){function i(s){return s instanceof e?s:new e(function(o){o(s)})}return new(e||(e=Promise))(function(s,o){function a(f){try{c(r.next(f))}catch(l){o(l)}}function u(f){try{c(r.throw(f))}catch(l){o(l)}}function c(f){f.done?s(f.value):i(f.value).then(a,u)}c((r=r.apply(n,t||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;var oe="*",Ht=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=[],i=1;i<arguments.length;i++)r[i-1]=arguments[i];var s=this._events[t]||[],o=this._events[oe]||[],a=function(u){for(var c=u.length,f=0;f<c;f++)if(u[f]){var l=u[f],h=l.callback,g=l.once;g&&(u.splice(f,1),u.length===0&&delete e._events[t],c--,f--),h.apply(e,r)}};a(s),a(o)},n.prototype.off=function(t,e){if(!t)this._events={};else if(!e)delete this._events[t];else{for(var r=this._events[t]||[],i=r.length,s=0;s<i;s++)r[s].callback===e&&(r.splice(s,1),i--,s--);r.length===0&&delete this._events[t]}return this},n.prototype.getEvents=function(){return this._events},n}();function en(n,t,e,r){for(;n.length;){const i=n.shift();if(e(i))return!0;t.add(i.id),r(i.id).forEach(o=>{t.has(o.id)||(t.add(o.id),n.push(o))})}return!1}function er(n,t,e,r){if(e(n))return!0;t.add(n.id);for(const s of r(n.id))if(!t.has(s.id)&&er(s,t,e,r))return!0;return!1}const cc=()=>!0;class d0{constructor(t){re(this,"graph");re(this,"nodeFilter");re(this,"edgeFilter");re(this,"cacheEnabled");re(this,"inEdgesMap",new Map);re(this,"outEdgesMap",new Map);re(this,"bothEdgesMap",new Map);re(this,"allNodesMap",new Map);re(this,"allEdgesMap",new Map);re(this,"clearCache",()=>{this.inEdgesMap.clear(),this.outEdgesMap.clear(),this.bothEdgesMap.clear(),this.allNodesMap.clear(),this.allEdgesMap.clear()});re(this,"refreshCache",()=>{this.clearCache(),this.updateCache(this.graph.getAllNodes().map(t=>t.id))});re(this,"updateCache",t=>{const e=new Set;t.forEach(r=>{const i=this.bothEdgesMap.get(r);if(i&&i.forEach(s=>e.add(s.id)),!this.hasNode(r))this.inEdgesMap.delete(r),this.outEdgesMap.delete(r),this.bothEdgesMap.delete(r),this.allNodesMap.delete(r);else{const s=this.graph.getRelatedEdges(r,"in").filter(this.edgeFilter),o=this.graph.getRelatedEdges(r,"out").filter(this.edgeFilter),a=Array.from(new Set([...s,...o]));a.forEach(u=>e.add(u.id)),this.inEdgesMap.set(r,s),this.outEdgesMap.set(r,o),this.bothEdgesMap.set(r,a),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)})});re(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 i=t.graph.getEdge(r.id);e.add(i.source),e.add(i.target)}break;case"EdgeRemoved":e.add(r.value.source),e.add(r.value.target);break;case"NodeRemoved":e.add(r.value.id);break}}),this.updateCache(e)});this.graph=t.graph;const e=t.nodeFilter||cc,r=t.edgeFilter||cc;this.nodeFilter=e,this.edgeFilter=i=>{const{source:s,target:o}=this.graph.getEdgeDetail(i.id);return!e(s)||!e(o)?!1:r(i,s,o)},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(i=>this.getNode(i.target));return Array.from(new Set(r))}getPredecessors(t){const r=this.getRelatedEdges(t,"in").map(i=>this.getNode(i.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 i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[r];en([this.getNode(t)],new Set,e,i)}dfs(t,e,r="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[r];er(this.getNode(t),new Set,e,i)}}let ue=class h0 extends Ht{constructor(e){super();re(this,"nodeMap",new Map);re(this,"edgeMap",new Map);re(this,"inEdgesMap",new Map);re(this,"outEdgesMap",new Map);re(this,"bothEdgesMap",new Map);re(this,"treeIndices",new Map);re(this,"changes",[]);re(this,"batchCount",0);re(this,"onChanged",()=>{});re(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(i=>{switch(i.type){case"NodeRemoved":{let s=!1;r=r.filter(o=>{if(o.type==="NodeAdded"){const a=o.value.id===i.value.id;return a&&(s=!0),!a}else{if(o.type==="NodeDataUpdated")return o.id!==i.value.id;if(o.type==="TreeStructureChanged")return o.nodeId!==i.value.id}return!0}),s||r.push(i);break}case"EdgeRemoved":{let s=!1;r=r.filter(o=>{if(o.type==="EdgeAdded"){const a=o.value.id===i.value.id;return a&&(s=!0),!a}else if(o.type==="EdgeDataUpdated"||o.type==="EdgeUpdated")return o.id!==i.value.id;return!0}),s||r.push(i);break}case"NodeDataUpdated":case"EdgeDataUpdated":case"EdgeUpdated":{const s=r.findIndex(a=>a.type===i.type&&a.id===i.id&&(i.propertyName===void 0||a.propertyName===i.propertyName)),o=r[s];o?i.propertyName!==void 0?o.newValue=i.newValue:(r.splice(s,1),r.push(i)):r.push(i);break}case"TreeStructureDetached":{r=r.filter(s=>s.type==="TreeStructureAttached"||s.type==="TreeStructureChanged"?s.treeKey!==i.treeKey:!0),r.push(i);break}case"TreeStructureChanged":{const s=r.find(o=>o.type==="TreeStructureChanged"&&o.treeKey===i.treeKey&&o.nodeId===i.nodeId);s?s.newParentId=i.newParentId:r.push(i);break}default:r.push(i);break}}),r}checkNodeExistence(e){this.getNode(e)}hasNode(e){return this.nodeMap.has(e)}areNeighbors(e,r){return this.getNeighbors(r).some(i=>i.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 i=this.inEdgesMap.get(e);return Array.from(i)}else if(r==="out"){const i=this.outEdgesMap.get(e);return Array.from(i)}else{const i=this.bothEdgesMap.get(e);return Array.from(i)}}getDegree(e,r){return this.getRelatedEdges(e,r).length}getSuccessors(e){const i=this.getRelatedEdges(e,"out").map(s=>this.getNode(s.target));return Array.from(new Set(i))}getPredecessors(e){const i=this.getRelatedEdges(e,"in").map(s=>this.getNode(s.source));return Array.from(new Set(i))}getNeighbors(e){const r=this.getPredecessors(e),i=this.getSuccessors(e);return Array.from(new Set([...r,...i]))}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),i=this.bothEdgesMap.get(e);i==null||i.forEach(s=>this.doRemoveEdge(s.id)),this.nodeMap.delete(e),this.treeIndices.forEach(s=>{var a,u;(a=s.childrenMap.get(e))==null||a.forEach(c=>{s.parentMap.delete(c.id)});const o=s.parentMap.get(e);o&&((u=s.childrenMap.get(o.id))==null||u.delete(r)),s.parentMap.delete(e),s.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,i){const s=this.getNode(e);this.batch(()=>{const o=s.data[r],a=i;s.data[r]=a,this.changes.push({type:"NodeDataUpdated",id:e,propertyName:r,oldValue:o,newValue:a})})}mergeNodeData(e,r){this.batch(()=>{Object.entries(r).forEach(([i,s])=>{this.updateNodeDataProperty(e,i,s)})})}updateNodeData(...e){const r=e[0],i=this.getNode(r);if(typeof e[1]=="string"){this.updateNodeDataProperty(r,e[1],e[2]);return}let s;if(typeof e[1]=="function"){const o=e[1];s=o(i.data)}else typeof e[1]=="object"&&(s=e[1]);this.batch(()=>{const o=i.data,a=s;i.data=s,this.changes.push({type:"NodeDataUpdated",id:r,oldValue:o,newValue:a})})}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),i=this.outEdgesMap.get(e.source),s=this.bothEdgesMap.get(e.source),o=this.bothEdgesMap.get(e.target);r.add(e),i.add(e),s.add(e),o.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),i=this.outEdgesMap.get(r.source),s=this.inEdgesMap.get(r.target),o=this.bothEdgesMap.get(r.source),a=this.bothEdgesMap.get(r.target);i.delete(r),s.delete(r),o.delete(r),a.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 i=this.getEdge(e);this.checkNodeExistence(r);const s=i.source,o=r;this.outEdgesMap.get(s).delete(i),this.bothEdgesMap.get(s).delete(i),this.outEdgesMap.get(o).add(i),this.bothEdgesMap.get(o).add(i),i.source=r,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:e,propertyName:"source",oldValue:s,newValue:o})})}updateEdgeTarget(e,r){const i=this.getEdge(e);this.checkNodeExistence(r);const s=i.target,o=r;this.inEdgesMap.get(s).delete(i),this.bothEdgesMap.get(s).delete(i),this.inEdgesMap.get(o).add(i),this.bothEdgesMap.get(o).add(i),i.target=r,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:e,propertyName:"target",oldValue:s,newValue:o})})}updateEdgeDataProperty(e,r,i){const s=this.getEdge(e);this.batch(()=>{const o=s.data[r],a=i;s.data[r]=a,this.changes.push({type:"EdgeDataUpdated",id:e,propertyName:r,oldValue:o,newValue:a})})}updateEdgeData(...e){const r=e[0],i=this.getEdge(r);if(typeof e[1]=="string"){this.updateEdgeDataProperty(r,e[1],e[2]);return}let s;if(typeof e[1]=="function"){const o=e[1];s=o(i.data)}else typeof e[1]=="object"&&(s=e[1]);this.batch(()=>{const o=i.data,a=s;i.data=s,this.changes.push({type:"EdgeDataUpdated",id:r,oldValue:o,newValue:a})})}mergeEdgeData(e,r){this.batch(()=>{Object.entries(r).forEach(([i,s])=>{this.updateEdgeDataProperty(e,i,s)})})}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 i=[],s=Array.isArray(e)?e:[e];for(;s.length;){const o=s.shift();i.push(o),o.children&&s.push(...o.children)}this.addNodes(i),i.forEach(o=>{var a;(a=o.children)==null||a.forEach(u=>{this.setParent(u.id,o.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 s=this.treeIndices.get(r).childrenMap.get(e);return Array.from(s||[])}getParent(e,r){return this.checkNodeExistence(e),this.checkTreeExistence(r),this.treeIndices.get(r).parentMap.get(e)||null}getAncestors(e,r){const i=[];let s=this.getNode(e),o;for(;o=this.getParent(s.id,r);)i.push(o),s=o;return i}setParent(e,r,i){var f,l;this.checkTreeExistence(i);const s=this.treeIndices.get(i);if(!s)return;const o=this.getNode(e),a=s.parentMap.get(e);if((a==null?void 0:a.id)===r)return;if(r==null){a&&((f=s.childrenMap.get(a.id))==null||f.delete(o)),s.parentMap.delete(e);return}const u=this.getNode(r);s.parentMap.set(e,u),a&&((l=s.childrenMap.get(a.id))==null||l.delete(o));let c=s.childrenMap.get(u.id);c||(c=new Set,s.childrenMap.set(u.id,c)),c.add(o),this.batch(()=>{this.changes.push({type:"TreeStructureChanged",treeKey:i,nodeId:e,oldParentId:a==null?void 0:a.id,newParentId:u.id})})}dfsTree(e,r,i){const s=o=>this.getChildren(o,i);return er(this.getNode(e),new Set,r,s)}bfsTree(e,r,i){const s=o=>this.getChildren(o,i);return en([this.getNode(e)],new Set,r,s)}getAllNodes(){return Array.from(this.nodeMap.values())}getAllEdges(){return Array.from(this.edgeMap.values())}bfs(e,r,i="out"){const s={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return en([this.getNode(e)],new Set,r,s)}dfs(e,r,i="out"){const s={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return er(this.getNode(e),new Set,r,s)}clone(){const e=this.getAllNodes().map(s=>({...s,data:{...s.data}})),r=this.getAllEdges().map(s=>({...s,data:{...s.data}})),i=new h0({nodes:e,edges:r});return this.treeIndices.forEach(({parentMap:s,childrenMap:o},a)=>{const u=new Map;s.forEach((f,l)=>{u.set(l,i.getNode(f.id))});const c=new Map;o.forEach((f,l)=>{c.set(l,new Set(Array.from(f).map(h=>i.getNode(h.id))))}),i.treeIndices.set(a,{parentMap:u,childrenMap:c})}),i}toJSON(){return JSON.stringify({nodes:this.getAllNodes(),edges:this.getAllEdges()})}createView(e){return new d0({graph:this,...e})}};/**
* @license
* Copyright 2019 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/const fc=Symbol("Comlink.proxy"),g0=Symbol("Comlink.endpoint"),p0=Symbol("Comlink.releaseProxy"),tn=Symbol("Comlink.finalizer"),tr=Symbol("Comlink.thrown"),lc=n=>typeof n=="object"&&n!==null||typeof n=="function",v0={canHandle:n=>lc(n)&&n[fc],serialize(n){const{port1:t,port2:e}=new MessageChannel;return rn(n,t),[e,[e]]},deserialize(n){return n.start(),b0(n)}},m0={canHandle:n=>lc(n)&&tr 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}},hc=new Map([["proxy",v0],["throw",m0]]);function y0(n,t){for(const e of n)if(t===e||e==="*"||e instanceof RegExp&&e.test(t))return!0;return!1}function rn(n,t=globalThis,e=["*"]){t.addEventListener("message",function r(i){if(!i||!i.data)return;if(!y0(e,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}const{id:s,type:o,path:a}=Object.assign({path:[]},i.data),u=(i.data.argumentList||[]).map(et);let c;try{const f=a.slice(0,-1).reduce((h,g)=>h[g],n),l=a.reduce((h,g)=>h[g],n);switch(o){case"GET":c=l;break;case"SET":f[a.slice(-1)[0]]=et(i.data.value),c=!0;break;case"APPLY":c=l.apply(f,u);break;case"CONSTRUCT":{const h=new l(...u);c=M0(h)}break;case"ENDPOINT":{const{port1:h,port2:g}=new MessageChannel;rn(n,g),c=N0(h,[h])}break;case"RELEASE":c=void 0;break;default:return}}catch(f){c={value:f,[tr]:0}}Promise.resolve(c).catch(f=>({value:f,[tr]:0})).then(f=>{const[l,h]=sr(f);t.postMessage(Object.assign(Object.assign({},l),{id:s}),h),o==="RELEASE"&&(t.removeEventListener("message",r),dc(t),tn in n&&typeof n[tn]=="function"&&n[tn]())}).catch(f=>{const[l,h]=sr({value:new TypeError("Unserializable return value"),[tr]:0});t.postMessage(Object.assign(Object.assign({},l),{id:s}),h)})}),t.start&&t.start()}function w0(n){return n.constructor.name==="MessagePort"}function dc(n){w0(n)&&n.close()}function b0(n,t){const e=new Map;return n.addEventListener("message",function(i){const{data:s}=i;if(!s||!s.id)return;const o=e.get(s.id);if(o)try{o(s)}finally{e.delete(s.id)}}),nn(n,e,[],t)}function rr(n){if(n)throw new Error("Proxy has been released and is not useable")}function gc(n){return dt(n,new Map,{type:"RELEASE"}).then(()=>{dc(n)})}const nr=new WeakMap,ir="FinalizationRegistry"in globalThis&&new FinalizationRegistry(n=>{const t=(nr.get(n)||0)-1;nr.set(n,t),t===0&&gc(n)});function _0(n,t){const e=(nr.get(t)||0)+1;nr.set(t,e),ir&&ir.register(n,t,n)}function E0(n){ir&&ir.unregister(n)}function nn(n,t,e=[],r=function(){}){let i=!1;const s=new Proxy(r,{get(o,a){if(rr(i),a===p0)return()=>{E0(s),gc(n),t.clear(),i=!0};if(a==="then"){if(e.length===0)return{then:()=>s};const u=dt(n,t,{type:"GET",path:e.map(c=>c.toString())}).then(et);return u.then.bind(u)}return nn(n,t,[...e,a])},set(o,a,u){rr(i);const[c,f]=sr(u);return dt(n,t,{type:"SET",path:[...e,a].map(l=>l.toString()),value:c},f).then(et)},apply(o,a,u){rr(i);const c=e[e.length-1];if(c===g0)return dt(n,t,{type:"ENDPOINT"}).then(et);if(c==="bind")return nn(n,t,e.slice(0,-1));const[f,l]=pc(u);return dt(n,t,{type:"APPLY",path:e.map(h=>h.toString()),argumentList:f},l).then(et)},construct(o,a){rr(i);const[u,c]=pc(a);return dt(n,t,{type:"CONSTRUCT",path:e.map(f=>f.toString()),argumentList:u},c).then(et)}});return _0(s,n),s}function x0(n){return Array.prototype.concat.apply([],n)}function pc(n){const t=n.map(sr);return[t.map(e=>e[0]),x0(t.map(e=>e[1]))]}const vc=new WeakMap;function N0(n,t){return vc.set(n,t),n}function M0(n){return Object.assign(n,{[fc]:!0})}function sr(n){for(const[t,e]of hc)if(e.canHandle(n)){const[r,i]=e.serialize(n);return[{type:"HANDLER",name:t,value:r},i]}return[{type:"RAW",value:n},vc.get(n)||[]]}function et(n){switch(n.type){case"HANDLER":return hc.get(n.name).deserialize(n.value);case"RAW":return n.value}}function dt(n,t,e,r){return new Promise(i=>{const s=S0();t.set(s,i),n.start&&n.start(),n.postMessage(Object.assign({id:s},e),r)})}function S0(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function Te(n){return typeof n=="function"}function R0(n){return n==null}function sn(n){return Array.isArray(n)}var gt=function(n){var t=typeof n;return n!==null&&t==="object"||t==="function"};function q0(n,t){if(n){var e;if(sn(n))for(var r=0,i=n.length;r<i&&(e=t(n[r],r),e!==!1);r++);else if(gt(n)){for(var s in n)if(n.hasOwnProperty(s)&&(e=t(n[s],s),e===!1))break}}}var O0=function(n){return typeof n=="object"&&n!==null},A0={}.toString,I0=function(n,t){return A0.call(n)==="[object "+t+"]"},on=function(n){if(!O0(n)||!I0(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};function kt(n){return typeof n=="string"}function V(n){return typeof n=="number"}var or=function(n){if(typeof n!="object"||n===null)return n;var t;if(sn(n)){t=[];for(var e=0,r=n.length;e<r;e++)typeof n[e]=="object"&&n[e]!=null?t[e]=or(n[e]):t[e]=n[e]}else{t={};for(var i in n)typeof n[i]=="object"&&n[i]!=null?t[i]=or(n[i]):t[i]=n[i]}return t},T0=5;function k0(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 mc(n,t,e,r){e=e||0,r=r||T0;for(var i in t)if(k0(t,i)){var s=t[i];s!==null&&on(s)?(on(n[i])||(n[i]={}),e<r?mc(n[i],s,e+1,r):n[i]=t[i]):sn(s)?(n[i]=[],n[i]=n[i].concat(s)):s!==void 0&&(n[i]=s)}}var yc=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)mc(n,t[r]);return n},j0=Object.prototype.hasOwnProperty,wc=function(n,t){if(n===null||!on(n))return{};var e={};return q0(t,function(r){j0.call(n,r)&&(e[r]=n[r])}),e};const C0=(n,t)=>{if(n!=="next"&&n!=="prev")return t},bc=n=>{n.prev.next=n.next,n.next.prev=n.prev,delete n.next,delete n.prev};let P0=class{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 bc(e),e}enqueue(t){const e=this.shortcut;t.prev&&t.next&&bc(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,C0)),r=r==null?void 0:r.prev;return`[${t.join(", ")}]`}},L0=class extends P0{};const D0=()=>1,z0=(n,t)=>{var e;if(n.getAllNodes().length<=1)return[];const r=F0(n,t||D0);return(e=$0(r.graph,r.buckets,r.zeroIdx).map(s=>n.getRelatedEdges(s.v,"out").filter(({target:o})=>o===s.w)))===null||e===void 0?void 0:e.flat()},$0=(n,t,e)=>{let r=[];const i=t[t.length-1],s=t[0];let o;for(;n.getAllNodes().length;){for(;o=s.dequeue();)an(n,t,e,o);for(;o=i.dequeue();)an(n,t,e,o);if(n.getAllNodes().length){for(let a=t.length-2;a>0;--a)if(o=t[a].dequeue(),o){r=r.concat(an(n,t,e,o,!0));break}}}return r},an=(n,t,e,r,i)=>{var s,o;const a=[];return n.hasNode(r.v)&&((s=n.getRelatedEdges(r.v,"in"))===null||s===void 0||s.forEach(u=>{const c=u.data.weight,f=n.getNode(u.source);i&&a.push({v:u.source,w:u.target,in:0,out:0}),f.data.out===void 0&&(f.data.out=0),f.data.out-=c,un(t,e,Object.assign({v:f.id},f.data))}),(o=n.getRelatedEdges(r.v,"out"))===null||o===void 0||o.forEach(u=>{const c=u.data.weight,f=u.target,l=n.getNode(f);l.data.in===void 0&&(l.data.in=0),l.data.in-=c,un(t,e,Object.assign({v:l.id},l.data))}),n.removeNode(r.v)),i?a:void 0},F0=(n,t)=>{const e=new ue;let r=0,i=0;n.getAllNodes().forEach(u=>{e.addNode({id:u.id,data:{v:u.id,in:0,out:0}})}),n.getAllEdges().forEach(u=>{const c=e.getRelatedEdges(u.source,"out").find(l=>l.target===u.target),f=(t==null?void 0:t(u))||1;c?e.updateEdgeData(c==null?void 0:c.id,Object.assign(Object.assign({},c.data),{weight:c.data.weight+f})):e.addEdge({id:u.id,source:u.source,target:u.target,data:{weight:f}}),i=Math.max(i,e.getNode(u.source).data.out+=f),r=Math.max(r,e.getNode(u.target).data.in+=f)});const s=[],o=i+r+3;for(let u=0;u<o;u++)s.push(new L0);const a=r+1;return e.getAllNodes().forEach(u=>{un(s,a,Object.assign({v:u.id},e.getNode(u.id).data))}),{buckets:s,zeroIdx:a,graph:e}},un=(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)},B0=(n,t)=>{const r=z0(n,(i=>s=>s.data.weight||1)());r==null||r.forEach(i=>{const s=i.data;n.removeEdge(i.id),s.forwardName=i.data.name,s.reversed=!0,n.addEdge({id:i.id,source:i.target,target:i.source,data:Object.assign({},s)})})},U0=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})})}})},G0=(n,t)=>Number(n)-Number(t),pt=(n,t,e,r)=>{let i;do i=`${r}${Math.random()}`;while(n.hasNode(i));return e.dummy=t,n.addNode({id:i,data:e}),i},V0=n=>{const t=new ue;return n.getAllNodes().forEach(e=>{t.addNode(Object.assign({},e))}),n.getAllEdges().forEach(e=>{const r=t.getRelatedEdges(e.source,"out").find(i=>i.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},_c=n=>{const t=new ue;return n.getAllNodes().forEach(e=>{n.getChildren(e.id).length||t.addNode(Object.assign({},e))}),n.getAllEdges().forEach(e=>{t.addEdge(e)}),t},W0=(n,t)=>n==null?void 0:n.reduce((e,r,i)=>(e[r]=t[i],e),{}),Ec=(n,t)=>{const e=Number(n.x),r=Number(n.y),i=Number(t.x)-e,s=Number(t.y)-r;let o=Number(n.width)/2,a=Number(n.height)/2;if(!i&&!s)return{x:0,y:0};let u,c;return Math.abs(s)*o>Math.abs(i)*a?(s<0&&(a=-a),u=a*i/s,c=a):(i<0&&(o=-o),u=o,c=o*s/i),{x:e+u,y:r+c}},jt=n=>{const t=[],e=Nc(n)+1;for(let r=0;r<e;r++)t.push([]);n.getAllNodes().forEach(r=>{const i=r.data.rank;i!==void 0&&t[i]&&t[i].push(r.id)});for(let r=0;r<e;r++)t[r]=t[r].sort((i,s)=>G0(n.getNode(i).data.order,n.getNode(s).data.order));return t},Y0=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)})},K0=(n,t=0)=>{const e=n.getAllNodes(),r=e.filter(a=>a.data.rank!==void 0).map(a=>a.data.rank),i=Math.min(...r),s=[];e.forEach(a=>{const u=(a.data.rank||0)-i;s[u]||(s[u]=[]),s[u].push(a.id)});let o=0;for(let a=0;a<s.length;a++){const u=s[a];u===void 0?a%t!==0&&(o-=1):o&&(u==null||u.forEach(c=>{const f=n.getNode(c);f&&(f.data.rank=f.data.rank||0,f.data.rank+=o)}))}},xc=(n,t,e,r)=>{const i={width:0,height:0};return V(e)&&V(r)&&(i.rank=e,i.order=r),pt(n,"border",i,t)},Nc=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},X0=(n,t)=>{const e={lhs:[],rhs:[]};return n==null||n.forEach(r=>{t(r)?e.lhs.push(r):e.rhs.push(r)}),e},cn=(n,t)=>n.reduce((e,r)=>{const i=t(e),s=t(r);return i>s?r:e}),Mc=(n,t,e,r,i,s)=>{r.includes(t.id)||(r.push(t.id),e||s.push(t.id),i(t.id).forEach(o=>Mc(n,o,e,r,i,s)),e&&s.push(t.id))},Sc=(n,t,e,r)=>{const i=Array.isArray(t)?t:[t],s=u=>n.getNeighbors(u),o=[],a=[];return i.forEach(u=>{if(n.hasNode(u.id))Mc(n,u,e==="post",a,s,o);else throw new Error(`Graph does not have node: ${u}`)}),o},Z0=n=>{const t=e=>{const r=n.getChildren(e),i=n.getNode(e);if(r!=null&&r.length&&r.forEach(s=>t(s.id)),i.data.hasOwnProperty("minRank")){i.data.borderLeft=[],i.data.borderRight=[];for(let s=i.data.minRank,o=i.data.maxRank+1;s<o;s+=1)Rc(n,"borderLeft","_bl",e,i,s),Rc(n,"borderRight","_br",e,i,s)}};n.getRoots().forEach(e=>t(e.id))},Rc=(n,t,e,r,i,s)=>{const o={rank:s,borderType:t,width:0,height:0},a=i.data[t][s-1],u=pt(n,"border",o,e);i.data[t][s]=u,n.setParent(u,r),a&&n.addEdge({id:`e${Math.random()}`,source:a,target:u,data:{weight:1}})},J0=(n,t)=>{const e=t.toLowerCase();(e==="lr"||e==="rl")&&qc(n)},Q0=(n,t)=>{const e=t.toLowerCase();(e==="bt"||e==="rl")&&H0(n),(e==="lr"||e==="rl")&&(em(n),qc(n))},qc=n=>{n.getAllNodes().forEach(t=>{Oc(t)}),n.getAllEdges().forEach(t=>{Oc(t)})},Oc=n=>{const t=n.data.width;n.data.width=n.data.height,n.data.height=t},H0=n=>{n.getAllNodes().forEach(t=>{fn(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>fn(r)),t.data.hasOwnProperty("y")&&fn(t.data)})},fn=n=>{n!=null&&n.y&&(n.y=-n.y)},em=n=>{n.getAllNodes().forEach(t=>{ln(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>ln(r)),t.data.hasOwnProperty("x")&&ln(t.data)})},ln=n=>{const t=n.x;n.x=n.y,n.y=t},tm=n=>{const t=pt(n,"root",{},"_root"),e=rm(n);let r=Math.max(...Object.values(e));Math.abs(r)===1/0&&(r=1);const i=r-1,s=2*i+1;n.getAllEdges().forEach(a=>{a.data.minlen*=s});const o=nm(n)+1;return n.getRoots().forEach(a=>{Ac(n,t,s,o,i,e,a.id)}),{nestingRoot:t,nodeRankFactor:s}},Ac=(n,t,e,r,i,s,o)=>{const a=n.getChildren(o);if(!(a!=null&&a.length)){o!==t&&n.addEdge({id:`e${Math.random()}`,source:t,target:o,data:{weight:0,minlen:e}});return}const u=xc(n,"_bt"),c=xc(n,"_bb"),f=n.getNode(o);n.setParent(u,o),f.data.borderTop=u,n.setParent(c,o),f.data.borderBottom=c,a==null||a.forEach(l=>{Ac(n,t,e,r,i,s,l.id);const h=l.data.borderTop?l.data.borderTop:l.id,g=l.data.borderBottom?l.data.borderBottom:l.id,p=l.data.borderTop?r:2*r,v=h!==g?1:i-s[o]+1;n.addEdge({id:`e${Math.random()}`,source:u,target:h,data:{minlen:v,weight:p,nestingEdge:!0}}),n.addEdge({id:`e${Math.random()}`,source:g,target:c,data:{minlen:v,weight:p,nestingEdge:!0}})}),n.getParent(o)||n.addEdge({id:`e${Math.random()}`,source:t,target:u,data:{weight:0,minlen:i+s[o]}})},rm=n=>{const t={},e=(r,i)=>{const s=n.getChildren(r);s==null||s.forEach(o=>e(o.id,i+1)),t[r]=i};return n.getRoots().forEach(r=>e(r.id,1)),t},nm=n=>{let t=0;return n.getAllEdges().forEach(e=>{t+=e.data.weight}),t},im=(n,t)=>{t&&n.removeNode(t),n.getAllEdges().forEach(e=>{e.data.nestingEdge&&n.removeEdge(e.id)})},sm="edge",Ic="edge-label",om=(n,t)=>{n.getAllEdges().forEach(e=>am(n,e,t))},am=(n,t,e)=>{let r=t.source,i=n.getNode(r).data.rank;const s=t.target,o=n.getNode(s).data.rank,a=t.data.labelRank;if(o===i+1)return;n.removeEdge(t.id);let u,c,f;for(f=0,++i;i<o;++f,++i)t.data.points=[],c={originalEdge:t,width:0,height:0,rank:i},u=pt(n,sm,c,"_d"),i===a&&(c.width=t.data.width,c.height=t.data.height,c.dummy=Ic,c.labelpos=t.data.labelpos),n.addEdge({id:`e${Math.random()}`,source:r,target:u,data:{weight:t.data.weight}}),f===0&&e.push(u),r=u;n.addEdge({id:`e${Math.random()}`,source:r,target:s,data:{weight:t.data.weight}})},um=(n,t)=>{t.forEach(e=>{let r=n.getNode(e);const{data:i}=r,s=i.originalEdge;let o;s&&n.addEdge(s);let a=e;for(;r.data.dummy;)o=n.getSuccessors(a)[0],n.removeNode(a),s.data.points.push({x:r.data.x,y:r.data.y}),r.data.dummy===Ic&&(s.data.x=r.data.x,s.data.y=r.data.y,s.data.width=r.data.width,s.data.height=r.data.height),a=o.id,r=n.getNode(a)})},cm=(n,t,e)=>{const r={};let i;e==null||e.forEach(s=>{let o=n.getParent(s),a,u;for(;o;){if(a=n.getParent(o.id),a?(u=r[a.id],r[a.id]=o.id):(u=i,i=o.id),u&&u!==o.id){t.hasNode(u)||t.addNode({id:u,data:{}}),t.hasNode(o.id)||t.addNode({id:o.id,data:{}}),t.hasEdge(`e${u}-${o.id}`)||t.addEdge({id:`e${u}-${o.id}`,source:u,target:o.id,data:{}});return}o=a}})},fm=(n,t,e)=>{const r=lm(n),i=new ue({tree:[{id:r,children:[],data:{}}]});return n.getAllNodes().forEach(s=>{const o=n.getParent(s.id);(s.data.rank===t||s.data.minRank<=t&&t<=s.data.maxRank)&&(i.hasNode(s.id)||i.addNode(Object.assign({},s)),o!=null&&o.id&&!i.hasNode(o==null?void 0:o.id)&&i.addNode(Object.assign({},o)),i.setParent(s.id,(o==null?void 0:o.id)||r),n.getRelatedEdges(s.id,e).forEach(a=>{const u=a.source===s.id?a.target:a.source;i.hasNode(u)||i.addNode(Object.assign({},n.getNode(u)));const c=i.getRelatedEdges(u,"out").find(({target:l})=>l===s.id),f=c!==void 0?c.data.weight:0;c?i.updateEdgeData(c.id,Object.assign(Object.assign({},c.data),{weight:a.data.weight+f})):i.addEdge({id:a.id,source:u,target:s.id,data:{weight:a.data.weight+f}})}),s.data.hasOwnProperty("minRank")&&i.updateNodeData(s.id,Object.assign(Object.assign({},s.data),{borderLeft:s.data.borderLeft[t],borderRight:s.data.borderRight[t]})))}),i},lm=n=>{let t;for(;n.hasNode(t=`_root${Math.random()}`););return t},hm=(n,t,e)=>{const r=W0(e,e.map((f,l)=>l)),s=t.map(f=>{const l=n.getRelatedEdges(f,"out").map(h=>({pos:r[h.target]||0,weight:h.data.weight}));return l==null?void 0:l.sort((h,g)=>h.pos-g.pos)}).flat().filter(f=>f!==void 0);let o=1;for(;o<e.length;)o<<=1;const a=2*o-1;o-=1;const u=Array(a).fill(0,0,a);let c=0;return s==null||s.forEach(f=>{if(f){let l=f.pos+o;u[l]+=f.weight;let h=0;for(;l>0;)l%2&&(h+=u[l+1]),l=l-1>>1,u[l]+=f.weight;c+=f.weight*h}}),c},Tc=(n,t)=>{let e=0;for(let r=1;r<(t==null?void 0:t.length);r+=1)e+=hm(n,t[r-1],t[r]);return e},kc=n=>{const t={},e=n.getAllNodes(),r=e.map(c=>{var f;return(f=c.data.rank)!==null&&f!==void 0?f:-1/0}),i=Math.max(...r),s=[];for(let c=0;c<i+1;c++)s.push([]);const o=e.sort((c,f)=>n.getNode(c.id).data.rank-n.getNode(f.id).data.rank),u=o.filter(c=>n.getNode(c.id).data.fixorder!==void 0).sort((c,f)=>n.getNode(c.id).data.fixorder-n.getNode(f.id).data.fixorder);return u==null||u.forEach(c=>{isNaN(n.getNode(c.id).data.rank)||s[n.getNode(c.id).data.rank].push(c.id),t[c.id]=!0}),o==null||o.forEach(c=>n.dfsTree(c.id,f=>{if(t.hasOwnProperty(f.id))return!0;t[f.id]=!0,isNaN(f.data.rank)||s[f.data.rank].push(f.id)})),s},dm=(n,t)=>t.map(e=>{const r=n.getRelatedEdges(e,"in");if(!(r!=null&&r.length))return{v:e};const i={sum:0,weight:0};return r==null||r.forEach(s=>{const o=n.getNode(s.source);i.sum+=s.data.weight*o.data.order,i.weight+=s.data.weight}),{v:e,barycenter:i.sum/i.weight,weight:i.weight}}),gm=(n,t)=>{var e,r,i;const s={};n==null||n.forEach((a,u)=>{s[a.v]={i:u,indegree:0,in:[],out:[],vs:[a.v]};const c=s[a.v];a.barycenter!==void 0&&(c.barycenter=a.barycenter,c.weight=a.weight)}),(e=t.getAllEdges())===null||e===void 0||e.forEach(a=>{const u=s[a.source],c=s[a.target];u!==void 0&&c!==void 0&&(c.indegree++,u.out.push(s[a.target]))});const o=(i=(r=Object.values(s)).filter)===null||i===void 0?void 0:i.call(r,a=>!a.indegree);return pm(o)},pm=n=>{var t,e;const r=[],i=u=>c=>{c.merged||(c.barycenter===void 0||u.barycenter===void 0||c.barycenter>=u.barycenter)&&vm(u,c)},s=u=>c=>{c.in.push(u),--c.indegree===0&&n.push(c)};for(;n!=null&&n.length;){const u=n.pop();r.push(u),(t=u.in.reverse())===null||t===void 0||t.forEach(c=>i(u)(c)),(e=u.out)===null||e===void 0||e.forEach(c=>s(u)(c))}const o=r.filter(u=>!u.merged),a=["vs","i","barycenter","weight"];return o.map(u=>{const c={};return a==null||a.forEach(f=>{u[f]!==void 0&&(c[f]=u[f])}),c})},vm=(n,t)=>{var e;let r=0,i=0;n.weight&&(r+=n.barycenter*n.weight,i+=n.weight),t.weight&&(r+=t.barycenter*t.weight,i+=t.weight),n.vs=(e=t.vs)===null||e===void 0?void 0:e.concat(n.vs),n.barycenter=r/i,n.weight=i,n.i=Math.min(t.i,n.i),t.merged=!0},mm=(n,t,e,r)=>{const i=X0(n,h=>{const g=h.hasOwnProperty("fixorder")&&!isNaN(h.fixorder);return r?!g&&h.hasOwnProperty("barycenter"):g||h.hasOwnProperty("barycenter")}),s=i.lhs,o=i.rhs.sort((h,g)=>-h.i- -g.i),a=[];let u=0,c=0,f=0;s==null||s.sort(ym(!!t,!!e)),f=jc(a,o,f),s==null||s.forEach(h=>{var g;f+=(g=h.vs)===null||g===void 0?void 0:g.length,a.push(h.vs),u+=h.barycenter*h.weight,c+=h.weight,f=jc(a,o,f)});const l={vs:a.flat()};return c&&(l.barycenter=u/c,l.weight=c),l},jc=(n,t,e)=>{let r=e,i;for(;t.length&&(i=t[t.length-1]).i<=r;)t.pop(),n==null||n.push(i.vs),r++;return r},ym=(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},Cc=(n,t,e,r,i,s)=>{var o,a,u,c;let f=n.getChildren(t).map(y=>y.id);const l=n.getNode(t),h=l?l.data.borderLeft:void 0,g=l?l.data.borderRight:void 0,p={};h&&(f=f==null?void 0:f.filter(y=>y!==h&&y!==g));const v=dm(n,f||[]);v==null||v.forEach(y=>{var w;if(!((w=n.getChildren(y.v))===null||w===void 0)&&w.length){const b=Cc(n,y.v,e,r,s);p[y.v]=b,b.hasOwnProperty("barycenter")&&bm(y,b)}});const m=gm(v,e);wm(m,p),(o=m.filter(y=>y.vs.length>0))===null||o===void 0||o.forEach(y=>{const w=n.getNode(y.vs[0]);w&&(y.fixorder=w.data.fixorder,y.order=w.data.order)});const d=mm(m,r,i,s);if(h&&(d.vs=[h,d.vs,g].flat(),!((a=n.getPredecessors(h))===null||a===void 0)&&a.length)){const y=n.getNode(((u=n.getPredecessors(h))===null||u===void 0?void 0:u[0].id)||""),w=n.getNode(((c=n.getPredecessors(g))===null||c===void 0?void 0:c[0].id)||"");d.hasOwnProperty("barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+y.data.order+w.data.order)/(d.weight+2),d.weight+=2}return d},wm=(n,t)=>{n==null||n.forEach(e=>{var r;const i=(r=e.vs)===null||r===void 0?void 0:r.map(s=>t[s]?t[s].vs:s);e.vs=i.flat()})},bm=(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)},_m=(n,t)=>{const e=Nc(n),r=[],i=[];for(let f=1;f<e+1;f++)r.push(f);for(let f=e-1;f>-1;f--)i.push(f);const s=Pc(n,r,"in"),o=Pc(n,i,"out");let a=kc(n);hn(n,a);let u=Number.POSITIVE_INFINITY,c;for(let f=0,l=0;l<4;++f,++l){Lc(f%2?s:o,f%4>=2,!1,t),a=jt(n);const h=Tc(n,a);h<u&&(l=0,c=or(a),u=h)}a=kc(n),hn(n,a);for(let f=0,l=0;l<4;++f,++l){Lc(f%2?s:o,f%4>=2,!0,t),a=jt(n);const h=Tc(n,a);h<u&&(l=0,c=or(a),u=h)}hn(n,c)},Pc=(n,t,e)=>t.map(r=>fm(n,r,e)),Lc=(n,t,e,r)=>{const i=new ue;n==null||n.forEach(s=>{var o;const a=s.getRoots()[0].id,u=Cc(s,a,i,t,e,r);for(let c=0;c<((o=u.vs)===null||o===void 0?void 0:o.length);c++){const f=s.getNode(u.vs[c]);f&&(f.data.order=c)}cm(s,i,u.vs)})},hn=(n,t)=>{t==null||t.forEach(e=>{e==null||e.forEach((r,i)=>{n.getNode(r).data.order=i})})},Em=(n,t)=>{const r=n.getAllNodes().filter(o=>{var a;return!(!((a=n.getChildren(o.id))===null||a===void 0)&&a.length)}).map(o=>o.data.rank),i=Math.max(...r),s=[];for(let o=0;o<i+1;o++)s[o]=[];t==null||t.forEach(o=>{const a=n.getNode(o);!a||a.data.dummy||isNaN(a.data.rank)||(a.data.fixorder=s[a.data.rank].length,s[a.data.rank].push(o))})},xm=n=>{const t={};let e=0;const r=i=>{const s=e;n.getChildren(i).forEach(o=>r(o.id)),t[i]={low:s,lim:e++}};return n.getRoots().forEach(i=>r(i.id)),t},Nm=(n,t,e,r)=>{var i,s;const o=[],a=[],u=Math.min(t[e].low,t[r].low),c=Math.max(t[e].lim,t[r].lim);let f,l;f=e;do f=(i=n.getParent(f))===null||i===void 0?void 0:i.id,o.push(f);while(f&&(t[f].low>u||c>t[f].lim));for(l=f,f=r;f&&f!==l;)a.push(f),f=(s=n.getParent(f))===null||s===void 0?void 0:s.id;return{lca:l,path:o.concat(a.reverse())}},Mm=(n,t)=>{const e=xm(n);t.forEach(r=>{var i,s;let o=r,a=n.getNode(o);const u=a.data.originalEdge;if(!u)return;const c=Nm(n,e,u.source,u.target),f=c.path,l=c.lca;let h=0,g=f[h],p=!0;for(;o!==u.target;){if(a=n.getNode(o),p){for(;g!==l&&((i=n.getNode(g))===null||i===void 0?void 0:i.data.maxRank)<a.data.rank;)h++,g=f[h];g===l&&(p=!1)}if(!p){for(;h<f.length-1&&((s=n.getNode(f[h+1]))===null||s===void 0?void 0:s.data.minRank)<=a.data.rank;)h++;g=f[h]}n.hasNode(g)&&n.setParent(o,g),o=n.getSuccessors(o)[0].id}})},Sm=(n,t)=>{const e={},r=(i,s)=>{let o=0,a=0;const u=i.length,c=s==null?void 0:s[(s==null?void 0:s.length)-1];return s==null||s.forEach((f,l)=>{var h;const g=qm(n,f),p=g?n.getNode(g.id).data.order:u;(g||f===c)&&((h=s.slice(a,l+1))===null||h===void 0||h.forEach(v=>{var m;(m=n.getPredecessors(v))===null||m===void 0||m.forEach(d=>{var y;const w=n.getNode(d.id),b=w.data.order;(b<o||p<b)&&!(w.data.dummy&&(!((y=n.getNode(v))===null||y===void 0)&&y.data.dummy))&&Dc(e,d.id,v)})}),a=l+1,o=p)}),s};return t!=null&&t.length&&t.reduce(r),e},Rm=(n,t)=>{const e={};function r(a,u,c,f,l){var h,g;let p;for(let v=u;v<c;v++)p=a[v],!((h=n.getNode(p))===null||h===void 0)&&h.data.dummy&&((g=n.getPredecessors(p))===null||g===void 0||g.forEach(m=>{const d=n.getNode(m.id);d.data.dummy&&(d.data.order<f||d.data.order>l)&&Dc(e,m.id,p)}))}function i(a){return JSON.stringify(a.slice(1))}function s(a,u){const c=i(a);u.get(c)||(r(...a),u.set(c,!0))}const o=(a,u)=>{let c=-1,f,l=0;const h=new Map;return u==null||u.forEach((g,p)=>{var v;if(((v=n.getNode(g))===null||v===void 0?void 0:v.data.dummy)==="border"){const m=n.getPredecessors(g)||[];m.length&&(f=n.getNode(m[0].id).data.order,s([u,l,p,c,f],h),l=p,c=f)}s([u,l,u.length,f,a.length],h)}),u};return t!=null&&t.length&&t.reduce(o),e},qm=(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(i=>n.getNode(i.id).data.dummy)},Dc=(n,t,e)=>{let r=t,i=e;if(r>i){const o=r;r=i,i=o}let s=n[r];s||(n[r]=s={}),s[i]=!0},Om=(n,t,e)=>{let r=t,i=e;if(r>i){const s=t;r=i,i=s}return!!n[r]},Am=(n,t,e,r)=>{const i={},s={},o={};return t==null||t.forEach(a=>{a==null||a.forEach((u,c)=>{i[u]=u,s[u]=u,o[u]=c})}),t==null||t.forEach(a=>{let u=-1;a==null||a.forEach(c=>{let f=r(c).map(l=>l.id);if(f.length){f=f.sort((h,g)=>o[h]-o[g]);const l=(f.length-1)/2;for(let h=Math.floor(l),g=Math.ceil(l);h<=g;++h){const p=f[h];s[c]===c&&u<o[p]&&!Om(e,c,p)&&(s[p]=c,s[c]=i[c]=i[p],u=o[p])}}})}),{root:i,align:s}},Im=(n,t,e,r,i,s,o)=>{var a;const u={},c=Tm(n,t,e,i,s,o),f=o?"borderLeft":"borderRight",l=(p,v)=>{let m=c.getAllNodes(),d=m.pop();const y={};for(;d;)y[d.id]?p(d.id):(y[d.id]=!0,m.push(d),m=m.concat(v(d.id))),d=m.pop()},h=p=>{u[p]=(c.getRelatedEdges(p,"in")||[]).reduce((v,m)=>Math.max(v,(u[m.source]||0)+m.data.weight),0)},g=p=>{const v=(c.getRelatedEdges(p,"out")||[]).reduce((d,y)=>Math.min(d,(u[y.target]||0)-y.data.weight),Number.POSITIVE_INFINITY),m=n.getNode(p);v!==Number.POSITIVE_INFINITY&&m.data.borderType!==f&&(u[p]=Math.max(u[p],v))};return l(h,c.getPredecessors.bind(c)),l(g,c.getSuccessors.bind(c)),(a=Object.values(r))===null||a===void 0||a.forEach(p=>{u[p]=u[e[p]]}),u},Tm=(n,t,e,r,i,s)=>{const o=new ue,a=Pm(r,i,s);return t==null||t.forEach(u=>{let c;u==null||u.forEach(f=>{const l=e[f];if(o.hasNode(l)||o.addNode({id:l,data:{}}),c){const h=e[c],g=o.getRelatedEdges(h,"out").find(p=>p.target===l);g?o.updateEdgeData(g.id,Object.assign(Object.assign({},g.data),{weight:Math.max(a(n,f,c),g.data.weight||0)})):o.addEdge({id:`e${Math.random()}`,source:h,target:l,data:{weight:Math.max(a(n,f,c),0)}})}c=f})}),o},km=(n,t)=>cn(Object.values(t),e=>{var r;let i=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY;return(r=Object.keys(e))===null||r===void 0||r.forEach(o=>{const a=e[o],u=Lm(n,o)/2;i=Math.max(a+u,i),s=Math.min(a-u,s)}),i-s});function jm(n,t){const e=Object.values(t),r=Math.min(...e),i=Math.max(...e);["u","d"].forEach(s=>{["l","r"].forEach(o=>{const a=s+o,u=n[a];let c;if(u===t)return;const f=Object.values(u);c=o==="l"?r-Math.min(...f):i-Math.max(...f),c&&(n[a]={},Object.keys(u).forEach(l=>{n[a][l]=u[l]+c}))})})}const Cm=(n,t)=>{const e={};return Object.keys(n.ul).forEach(r=>{if(t)e[r]=n[t.toLowerCase()][r];else{const i=Object.values(n).map(s=>s[r]);e[r]=(i[0]+i[1])/2}}),e},Pm=(n,t,e)=>(r,i,s)=>{const o=r.getNode(i),a=r.getNode(s);let u=0,c=0;if(u+=o.data.width/2,o.data.hasOwnProperty("labelpos"))switch((o.data.labelpos||"").toLowerCase()){case"l":c=-o.data.width/2;break;case"r":c=o.data.width/2;break}if(c&&(u+=e?c:-c),c=0,u+=(o.data.dummy?t:n)/2,u+=(a.data.dummy?t:n)/2,u+=a.data.width/2,a.data.labelpos)switch((a.data.labelpos||"").toLowerCase()){case"l":c=a.data.width/2;break;case"r":c=-a.data.width/2;break}return c&&(u+=e?c:-c),c=0,u},Lm=(n,t)=>n.getNode(t).data.width||0,Dm=(n,t)=>{const{ranksep:e=0}=t||{},r=jt(n);let i=0;r==null||r.forEach(s=>{const o=s.map(u=>n.getNode(u).data.height),a=Math.max(...o,0);s==null||s.forEach(u=>{n.getNode(u).data.y=i+a/2}),i+=a+e})},zm=(n,t)=>{const{align:e,nodesep:r=0,edgesep:i=0}=t||{},s=jt(n),o=Object.assign(Sm(n,s),Rm(n,s)),a={};let u=[];["u","d"].forEach(f=>{u=f==="u"?s:Object.values(s).reverse(),["l","r"].forEach(l=>{l==="r"&&(u=u.map(v=>Object.values(v).reverse()));const h=(f==="u"?n.getPredecessors:n.getSuccessors).bind(n),g=Am(n,u,o,h),p=Im(n,u,g.root,g.align,r,i,l==="r");l==="r"&&Object.keys(p).forEach(v=>p[v]=-p[v]),a[f+l]=p})});const c=km(n,a);return c&&jm(a,c),Cm(a,e)},$m=(n,t)=>{var e;const r=_c(n);Dm(r,t);const i=zm(r,t);(e=Object.keys(i))===null||e===void 0||e.forEach(s=>{r.getNode(s).data.x=i[s]})},zc=n=>{const t={},e=r=>{var i;const s=n.getNode(r);if(!s)return 0;if(t[r])return s.data.rank;t[r]=!0;let o;return(i=n.getRelatedEdges(r,"out"))===null||i===void 0||i.forEach(a=>{const u=e(a.target),c=a.data.minlen,f=u-c;f&&(o===void 0||f<o)&&(o=f)}),o||(o=0),s.data.rank=o,o};n.getAllNodes().filter(r=>n.getRelatedEdges(r.id,"in").length===0).forEach(r=>e(r.id))},Fm=n=>{const t={};let e;const r=o=>{var a;const u=n.getNode(o);if(!u)return 0;if(t[o])return u.data.rank;t[o]=!0;let c;return(a=n.getRelatedEdges(o,"out"))===null||a===void 0||a.forEach(f=>{const l=r(f.target),h=f.data.minlen,g=l-h;g&&(c===void 0||g<c)&&(c=g)}),c||(c=0),(e===void 0||c<e)&&(e=c),u.data.rank=c,c};n.getAllNodes().filter(o=>n.getRelatedEdges(o.id,"in").length===0).forEach(o=>{o&&r(o.id)}),e===void 0&&(e=0);const i={},s=(o,a)=>{var u;const c=n.getNode(o),f=isNaN(c.data.layer)?a:c.data.layer;(c.data.rank===void 0||c.data.rank<f)&&(c.data.rank=f),!i[o]&&(i[o]=!0,(u=n.getRelatedEdges(o,"out"))===null||u===void 0||u.forEach(l=>{s(l.target,f+l.data.minlen)}))};n.getAllNodes().forEach(o=>{const a=o.data;a&&(isNaN(a.layer)?a.rank-=e:s(o.id,a.layer))})},Ge=(n,t)=>n.getNode(t.target).data.rank-n.getNode(t.source).data.rank-t.data.minlen,Bm=n=>{const t=new ue({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let i,s;for(;Um(t,n)<r;)i=$c(t,n),s=t.hasNode(i.source)?Ge(n,i):-Ge(n,i),Fc(t,n,s);return t},Um=(n,t)=>{const e=r=>{t.getRelatedEdges(r,"both").forEach(i=>{const s=i.source,o=r===s?i.target:s;!n.hasNode(o)&&!Ge(t,i)&&(n.addNode({id:o,data:{}}),n.addEdge({id:i.id,source:r,target:o,data:{}}),e(o))})};return n.getAllNodes().forEach(r=>e(r.id)),n.getAllNodes().length},Gm=n=>{const t=new ue({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let i,s;for(;Vm(t,n)<r;)i=$c(t,n),s=t.hasNode(i.source)?Ge(n,i):-Ge(n,i),Fc(t,n,s);return t},Vm=(n,t)=>{const e=r=>{var i;(i=t.getRelatedEdges(r,"both"))===null||i===void 0||i.forEach(s=>{const o=s.source,a=r===o?s.target:o;!n.hasNode(a)&&(t.getNode(a).data.layer!==void 0||!Ge(t,s))&&(n.addNode({id:a,data:{}}),n.addEdge({id:s.id,source:r,target:a,data:{}}),e(a))})};return n.getAllNodes().forEach(r=>e(r.id)),n.getAllNodes().length},$c=(n,t)=>cn(t.getAllEdges(),e=>n.hasNode(e.source)!==n.hasNode(e.target)?Ge(t,e):1/0),Fc=(n,t,e)=>{n.getAllNodes().forEach(r=>{const i=t.getNode(r.id);i.data.rank||(i.data.rank=0),i.data.rank+=e})},Wm=n=>{const t=V0(n);zc(t);const e=Bm(t);Uc(e),Bc(e,t);let r,i;for(;r=Xm(e);)i=Zm(e,t,r),Jm(e,t,r,i)},Bc=(n,t)=>{let e=Sc(n,n.getAllNodes(),"post");e=e.slice(0,(e==null?void 0:e.length)-1),e.forEach(r=>{Ym(n,t,r)})},Ym=(n,t,e)=>{const i=n.getNode(e).data.parent,s=n.getRelatedEdges(e,"both").find(o=>o.target===i||o.source===i);s.data.cutvalue=Km(n,t,e)},Km=(n,t,e)=>{const i=n.getNode(e).data.parent;let s=!0,o=t.getRelatedEdges(e,"out").find(u=>u.target===i),a=0;return o||(s=!1,o=t.getRelatedEdges(i,"out").find(u=>u.target===e)),a=o.data.weight,t.getRelatedEdges(e,"both").forEach(u=>{const c=u.source===e,f=c?u.target:u.source;if(f!==i){const l=c===s,h=u.data.weight;if(a+=l?h:-h,Hm(n,e,f)){const g=n.getRelatedEdges(e,"both").find(p=>p.source===f||p.target===f).data.cutvalue;a+=l?-g:g}}}),a},Uc=(n,t=n.getAllNodes()[0].id)=>{Gc(n,{},1,t)},Gc=(n,t,e,r,i)=>{var s;const o=e;let a=e;const u=n.getNode(r);return t[r]=!0,(s=n.getNeighbors(r))===null||s===void 0||s.forEach(c=>{t[c.id]||(a=Gc(n,t,a,c.id,r))}),u.data.low=o,u.data.lim=a++,i?u.data.parent=i:delete u.data.parent,a},Xm=n=>n.getAllEdges().find(t=>t.data.cutvalue<0),Zm=(n,t,e)=>{let r=e.source,i=e.target;t.getRelatedEdges(r,"out").find(f=>f.target===i)||(r=e.target,i=e.source);const s=n.getNode(r),o=n.getNode(i);let a=s,u=!1;s.data.lim>o.data.lim&&(a=o,u=!0);const c=t.getAllEdges().filter(f=>u===Vc(n.getNode(f.source),a)&&u!==Vc(n.getNode(f.target),a));return cn(c,f=>Ge(t,f))},Jm=(n,t,e,r)=>{const i=n.getRelatedEdges(e.source,"both").find(s=>s.source===e.target||s.target===e.target);i&&n.removeEdge(i.id),n.addEdge({id:`e${Math.random()}`,source:r.source,target:r.target,data:{}}),Uc(n),Bc(n,t),Qm(n,t)},Qm=(n,t)=>{const e=n.getAllNodes().find(i=>!i.data.parent);let r=Sc(n,e,"pre");r=r.slice(1),r.forEach(i=>{const s=n.getNode(i).data.parent;let o=t.getRelatedEdges(i,"out").find(u=>u.target===s),a=!1;!o&&t.hasNode(s)&&(o=t.getRelatedEdges(s,"out").find(u=>u.target===i),a=!0),t.getNode(i).data.rank=(t.hasNode(s)&&t.getNode(s).data.rank||0)+(a?o==null?void 0:o.data.minlen:-(o==null?void 0:o.data.minlen))})},Hm=(n,t,e)=>n.getRelatedEdges(t,"both").find(r=>r.source===e||r.target===e),Vc=(n,t)=>t.data.low<=n.data.lim&&n.data.lim<=t.data.lim,ey=(n,t)=>{switch(t){case"network-simplex":ry(n);break;case"tight-tree":Wc(n);break;case"longest-path":ty(n);break;default:Wc(n)}},ty=zc,Wc=n=>{Fm(n),Gm(n)},ry=n=>{Wm(n)},ny=(n,t)=>{const{edgeLabelSpace:e,keepNodeOrder:r,prevGraph:i,rankdir:s,ranksep:o}=t;!r&&i&&sy(n,i);const a=ly(n);e&&(t.ranksep=hy(a,{rankdir:s,ranksep:o}));let u;try{u=iy(a,t)}catch(c){if(c.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:
`,c);return}throw c}return oy(n,a),u},iy=(n,t)=>{const{ranker:e,rankdir:r="tb",nodeOrder:i,keepNodeOrder:s,align:o,nodesep:a=50,edgesep:u=20,ranksep:c=50}=t;_y(n),B0(n);const{nestingRoot:f,nodeRankFactor:l}=tm(n);ey(_c(n),e),dy(n),K0(n,l),im(n,f),Y0(n),gy(n),py(n);const h=[];om(n,h),Mm(n,h),Z0(n),s&&Em(n,i),_m(n,s),Ey(n),J0(n,r),$m(n,{align:o,nodesep:a,edgesep:u,ranksep:c}),xy(n),by(n),um(n,h),yy(n),Q0(n,r);const{width:g,height:p}=vy(n);return my(n),wy(n),U0(n),{width:g,height:p}},sy=(n,t)=>{n.getAllNodes().forEach(e=>{const r=n.getNode(e.id);if(t.hasNode(e.id)){const i=t.getNode(e.id);r.data.fixorder=i.data._order,delete i.data._order}else delete r.data.fixorder})},oy=(n,t)=>{n.getAllNodes().forEach(e=>{var r;const i=n.getNode(e.id);if(i){const s=t.getNode(e.id);i.data.x=s.data.x,i.data.y=s.data.y,i.data._order=s.data.order,i.data._rank=s.data.rank,!((r=t.getChildren(e.id))===null||r===void 0)&&r.length&&(i.data.width=s.data.width,i.data.height=s.data.height)}}),n.getAllEdges().forEach(e=>{const r=n.getEdge(e.id),i=t.getEdge(e.id);r.data.points=i?i.data.points:[],i&&i.data.hasOwnProperty("x")&&(r.data.x=i.data.x,r.data.y=i.data.y)})},ay=["width","height","layer","fixorder"],uy={width:0,height:0},cy=["minlen","weight","width","height","labeloffset"],fy={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},dn=["labelpos"],ly=n=>{const t=new ue({tree:[]});return n.getAllNodes().forEach(e=>{const r=Kc(n.getNode(e.id).data),i=Object.assign(Object.assign({},uy),r),s=Yc(i,ay);t.hasNode(e.id)||t.addNode({id:e.id,data:Object.assign({},s)});const o=n.hasTreeStructure("combo")?n.getParent(e.id,"combo"):n.getParent(e.id);R0(o)||(t.hasNode(o.id)||t.addNode(Object.assign({},o)),t.setParent(e.id,o.id))}),n.getAllEdges().forEach(e=>{const r=Kc(n.getEdge(e.id).data),i={};dn==null||dn.forEach(s=>{r[s]!==void 0&&(i[s]=r[s])}),t.addEdge({id:e.id,source:e.source,target:e.target,data:Object.assign({},fy,Yc(r,cy),i)})}),t},hy=(n,t)=>{const{ranksep:e=0,rankdir:r}=t;return n.getAllNodes().forEach(i=>{isNaN(i.data.layer)||i.data.layer||(i.data.layer=0)}),n.getAllEdges().forEach(i=>{var s;i.data.minlen*=2,((s=i.data.labelpos)===null||s===void 0?void 0:s.toLowerCase())!=="c"&&(r==="TB"||r==="BT"?i.data.width+=i.data.labeloffset:i.data.height+=i.data.labeloffset)}),e/2},dy=n=>{n.getAllEdges().forEach(t=>{if(t.data.width&&t.data.height){const e=n.getNode(t.source),r=n.getNode(t.target),i={e:t,rank:(r.data.rank-e.data.rank)/2+e.data.rank};pt(n,"edge-proxy",i,"_ep")}})},gy=n=>{let t=0;return n.getAllNodes().forEach(e=>{var r,i;e.data.borderTop&&(e.data.minRank=(r=n.getNode(e.data.borderTop))===null||r===void 0?void 0:r.data.rank,e.data.maxRank=(i=n.getNode(e.data.borderBottom))===null||i===void 0?void 0:i.data.rank,t=Math.max(t,e.data.maxRank||-1/0))}),t},py=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))})},vy=(n,t)=>{let e,r=0,i,s=0;const{marginx:o=0,marginy:a=0}={},u=c=>{if(!c.data)return;const f=c.data.x,l=c.data.y,h=c.data.width,g=c.data.height;!isNaN(f)&&!isNaN(h)&&(e===void 0&&(e=f-h/2),e=Math.min(e,f-h/2),r=Math.max(r,f+h/2)),!isNaN(l)&&!isNaN(g)&&(i===void 0&&(i=l-g/2),i=Math.min(i,l-g/2),s=Math.max(s,l+g/2))};return n.getAllNodes().forEach(c=>{u(c)}),n.getAllEdges().forEach(c=>{c!=null&&c.data.hasOwnProperty("x")&&u(c)}),e-=o,i-=a,n.getAllNodes().forEach(c=>{c.data.x-=e,c.data.y-=i}),n.getAllEdges().forEach(c=>{var f;(f=c.data.points)===null||f===void 0||f.forEach(l=>{l.x-=e,l.y-=i}),c.data.hasOwnProperty("x")&&(c.data.x-=e),c.data.hasOwnProperty("y")&&(c.data.y-=i)}),{width:r-e+o,height:s-i+a}},my=n=>{n.getAllEdges().forEach(t=>{const e=n.getNode(t.source),r=n.getNode(t.target);let i,s;t.data.points?(i=t.data.points[0],s=t.data.points[t.data.points.length-1]):(t.data.points=[],i={x:r.data.x,y:r.data.y},s={x:e.data.x,y:e.data.y}),t.data.points.unshift(Ec(e.data,i)),t.data.points.push(Ec(r.data,s))})},yy=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}})},wy=n=>{n.getAllEdges().forEach(t=>{var e;t.data.reversed&&((e=t.data.points)===null||e===void 0||e.reverse())})},by=n=>{n.getAllNodes().forEach(t=>{var e,r,i;if(!((e=n.getChildren(t.id))===null||e===void 0)&&e.length){const s=n.getNode(t.id),o=n.getNode(s.data.borderTop),a=n.getNode(s.data.borderBottom),u=n.getNode(s.data.borderLeft[((r=s.data.borderLeft)===null||r===void 0?void 0:r.length)-1]),c=n.getNode(s.data.borderRight[((i=s.data.borderRight)===null||i===void 0?void 0:i.length)-1]);s.data.width=Math.abs((c==null?void 0:c.data.x)-(u==null?void 0:u.data.x))||10,s.data.height=Math.abs((a==null?void 0:a.data.y)-(o==null?void 0:o.data.y))||10,s.data.x=((u==null?void 0:u.data.x)||0)+s.data.width/2,s.data.y=((o==null?void 0:o.data.y)||0)+s.data.height/2}}),n.getAllNodes().forEach(t=>{t.data.dummy==="border"&&n.removeNode(t.id)})},_y=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)}})},Ey=n=>{const t=jt(n);t==null||t.forEach(e=>{let r=0;e==null||e.forEach((i,s)=>{var o;const a=n.getNode(i);a.data.order=s+r,(o=a.data.selfEdges)===null||o===void 0||o.forEach(u=>{pt(n,"selfedge",{width:u.data.width,height:u.data.height,rank:a.data.rank,order:s+ ++r,e:u},"_se")}),delete a.data.selfEdges})})},xy=n=>{n.getAllNodes().forEach(t=>{const e=n.getNode(t.id);if(e.data.dummy==="selfedge"){const r=n.getNode(e.data.e.source),i=r.data.x+r.data.width/2,s=r.data.y,o=e.data.x-i,a=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:i+2*o/3,y:s-a},{x:i+5*o/6,y:s-a},{y:s,x:i+o},{x:i+5*o/6,y:s+a},{x:i+2*o/3,y:s+a}],e.data.e.data.x=e.data.x,e.data.e.data.y=e.data.y}})},Yc=(n,t)=>{const e={};return t==null||t.forEach(r=>{n[r]!==void 0&&(e[r]=+n[r])}),e},Kc=(n={})=>{const t={};return Object.keys(n).forEach(e=>{t[e.toLowerCase()]=n[e]}),t},ke=Array.isArray,Xc=n=>{const t=[],e=n.length;for(let r=0;r<e;r+=1){t[r]=[];for(let i=0;i<e;i+=1)r===i?t[r][i]=0:n[r][i]===0||!n[r][i]?t[r][i]=1/0:t[r][i]=n[r][i]}for(let r=0;r<e;r+=1)for(let i=0;i<e;i+=1)for(let s=0;s<e;s+=1)t[i][s]>t[i][r]+t[r][s]&&(t[i][s]=t[i][r]+t[r][s]);return t},Zc=(n,t)=>{const{nodes:e,edges:r}=n,i=[],s={};if(!e)throw new Error("invalid nodes data!");return e&&e.forEach((o,a)=>{s[o.id]=a;const u=[];i.push(u)}),r==null||r.forEach(o=>{const{source:a,target:u}=o,c=s[a],f=s[u];c===void 0||f===void 0||(i[c][f]=1,i[f][c]=1)}),i},Ny=(n,t)=>{const e=[];return n.forEach(r=>{const i=[];r.forEach(s=>{i.push(s*t)}),e.push(i)}),e},My=n=>{let t=1/0,e=1/0,r=-1/0,i=-1/0;return n.forEach(s=>{let o=s.data.size;ke(o)?o.length===1&&(o=[o[0],o[0]]):V(o)?o=[o,o]:(o===void 0||isNaN(o))&&(o=[30,30]);const a=[o[0]/2,o[1]/2],u=s.data.x-a[0],c=s.data.x+a[0],f=s.data.y-a[1],l=s.data.y+a[1];t>u&&(t=u),e>f&&(e=f),r<c&&(r=c),i<l&&(i=l)}),{minX:t,minY:e,maxX:r,maxY:i}},Jc=(n,t)=>Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y)),gn=(n,t,e,r="TB",i,s={})=>{if(!(t!=null&&t.length))return;const{stopBranchFn:o,stopAllFn:a}=s;for(let u=0;u<t.length;u++){const c=t[u];if(n.hasNode(c.id)&&!(o!=null&&o(c))){if(a!=null&&a(c))return;r==="TB"&&e(c),gn(n,n.getChildren(c.id,i),e,r,i,s),r!=="TB"&&e(c)}}},pn=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=>pn(e))}if(typeof n=="object"){const t={};return Object.keys(n).forEach(e=>{t[e]=pn(n[e])}),t}return n},ye=(n,t)=>{const e=pn(n);return e.data=e.data||{},t&&(V(e.data.x)||(e.data.x=Math.random()*t[0]),V(e.data.y)||(e.data.y=Math.random()*t[1])),e};function Ct(n){if(!n)return[0,0,0];if(V(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 tt(n,t){let e;return Te(t)?e=t:V(t)?e=()=>t:e=()=>n,e}function vn(n,t,e=!0){return!t&&t!==0?r=>{const{size:i}=r.data||{};return i?Array.isArray(i)?e?Math.max(...i)||n:i:gt(i)&&i.width&&i.height?e?Math.max(i.width,i.height)||n:[i.width,i.height]:i:n}:Te(t)?t:V(t)?()=>t:Array.isArray(t)?()=>e?Math.max(...t)||n:t:gt(t)&&t.width&&t.height?()=>e?Math.max(t.width,t.height)||n:[t.width,t.height]:()=>n}const mn=(n,t,e=10)=>{let r;const i=typeof t=="function"?t:()=>t||0;return n?Array.isArray(n)?r=o=>n:Te(n)?r=n:r=o=>n:r=o=>{var a,u,c;if(!((a=o.data)===null||a===void 0)&&a.bboxSize)return(u=o.data)===null||u===void 0?void 0:u.bboxSize;if(!((c=o.data)===null||c===void 0)&&c.size){const f=o.data.size;return Array.isArray(f)?f:gt(f)?[f.width,f.height]:f}return e},o=>{const a=r(o),u=i(o);return Math.max(...Ct(a))+u}},Sy={rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class Ry{constructor(t={}){this.options=t,this.id="antv-dagre",this.options=Object.assign(Object.assign({},Sy),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,e)})}genericDagreLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{nodeSize:s,align:o,rankdir:a="TB",ranksep:u,nodesep:c,ranksepFunc:f,nodesepFunc:l,edgeLabelSpace:h,ranker:g,nodeOrder:p,begin:v,controlPoints:m,radial:d,sortByCombo:y,preset:w}=i,b=new ue({tree:[]}),x=tt(u||50,f),M=tt(c||50,l);let N=M,E=x;(a==="LR"||a==="RL")&&(N=x,E=M);const O=vn(10,s,!1),_=e.getAllNodes(),S=e.getAllEdges();_.forEach(A=>{const C=Ct(O(A)),D=E(A),z=N(A),U=C[0]+2*z,P=C[1]+2*D,$=A.data.layer;V($)?b.addNode({id:A.id,data:{width:U,height:P,layer:$}}):b.addNode({id:A.id,data:{width:U,height:P}})}),y&&(b.attachTreeStructure("combo"),_.forEach(A=>{const{parentId:C}=A.data;C!==void 0&&b.hasNode(C)&&b.setParent(A.id,C,"combo")})),S.forEach(A=>{b.addEdge({id:A.id,source:A.source,target:A.target,data:{weight:A.data.weight||1}})});let q;w!=null&&w.length&&(q=new ue({nodes:w})),ny(b,{prevGraph:q,edgeLabelSpace:h,keepNodeOrder:!!p,nodeOrder:p||[],acyclicer:"greedy",ranker:g,rankdir:a,nodesep:c,align:o});const R=[0,0];if(v){let A=1/0,C=1/0;b.getAllNodes().forEach(D=>{A>D.data.x&&(A=D.data.x),C>D.data.y&&(C=D.data.y)}),b.getAllEdges().forEach(D=>{var z;(z=D.data.points)===null||z===void 0||z.forEach(U=>{A>U.x&&(A=U.x),C>U.y&&(C=U.y)})}),R[0]=v[0]-A,R[1]=v[1]-C}const T=a==="LR"||a==="RL";if(!d){const A=new Set,D=a==="BT"||a==="RL"?($,B)=>B-$:($,B)=>$-B;b.getAllNodes().forEach($=>{$.data.x=$.data.x+R[0],$.data.y=$.data.y+R[1],A.add(T?$.data.x:$.data.y)});const z=Array.from(A).sort(D),U=T?($,B)=>$.x!==B.x:($,B)=>$.y!==B.y,P=T?($,B,Z)=>{const G=Math.max(B.y,Z.y),le=Math.min(B.y,Z.y);return $.filter(_e=>_e.y<=G&&_e.y>=le)}:($,B,Z)=>{const G=Math.max(B.x,Z.x),le=Math.min(B.x,Z.x);return $.filter(_e=>_e.x<=G&&_e.x>=le)};b.getAllEdges().forEach(($,B)=>{var Z;h&&m&&$.data.type!=="loop"&&($.data.controlPoints=qy((Z=$.data.points)===null||Z===void 0?void 0:Z.map(({x:G,y:le})=>({x:G+R[0],y:le+R[1]})),b.getNode($.source),b.getNode($.target),z,T,U,P))})}let I=[];I=b.getAllNodes().map(A=>ye(A));const k=b.getAllEdges();return t&&(I.forEach(A=>{e.mergeNodeData(A.id,{x:A.data.x,y:A.data.y})}),k.forEach(A=>{e.mergeEdgeData(A.id,{controlPoints:A.data.controlPoints})})),{nodes:I,edges:k}})}}const qy=(n,t,e,r,i,s,o)=>{let a=(n==null?void 0:n.slice(1,n.length-1))||[];if(t&&e){let{x:u,y:c}=t.data,{x:f,y:l}=e.data;if(i&&(u=t.data.y,c=t.data.x,f=e.data.y,l=e.data.x),l!==c&&u!==f){const h=r.indexOf(c),g=r[h+1];if(g){const m=a[0],d=i?{x:(c+g)/2,y:(m==null?void 0:m.y)||f}:{x:(m==null?void 0:m.x)||f,y:(c+g)/2};(!m||s(m,d))&&a.unshift(d)}const p=r.indexOf(l),v=Math.abs(p-h);if(v===1)a=o(a,t.data,e.data),a.length||a.push(i?{x:(c+l)/2,y:u}:{x:u,y:(c+l)/2});else if(v>1){const m=r[p-1];if(m){const d=a[a.length-1],y=i?{x:(l+m)/2,y:(d==null?void 0:d.y)||f}:{x:(d==null?void 0:d.x)||u,y:(l+m)/2};(!d||s(d,y))&&a.push(y)}}}}return a},rt=(n,t,e)=>{const r=n.getAllNodes(),i=n.getAllEdges();if(!(r!=null&&r.length))return{nodes:[],edges:i};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:i}},Oy={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1};class Ay{constructor(t={}){this.options=t,this.id="circular",this.options=Object.assign(Object.assign({},Oy),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericCircularLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericCircularLayout(!0,t,e)})}genericCircularLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{width:s,height:o,center:a,divisions:u,startAngle:c=0,endAngle:f=2*Math.PI,angleRatio:l,ordering:h,clockwise:g,nodeSpacing:p,nodeSize:v}=i,m=e.getAllNodes(),d=e.getAllEdges(),[y,w,b]=Ty(s,o,a),x=m==null?void 0:m.length;if(!x||x===1)return rt(e,t,b);const M=(f-c)/x;let{radius:N,startRadius:E,endRadius:O}=i;if(p){const T=tt(10,p),I=vn(10,v);let k=-1/0;m.forEach(A=>{const C=I(A);k<C&&(k=C)});let F=0;m.forEach((A,C)=>{C===0?F+=k||10:F+=(T(A)||0)+(k||10)}),N=F/(2*Math.PI)}else!N&&!E&&!O?N=Math.min(w,y)/2:!E&&O?E=O:E&&!O&&(O=E);const _=M*l;let S=[];h==="topology"?S=Qc(e,m):h==="topology-directed"?S=Qc(e,m,!0):h==="degree"?S=Iy(e,m):S=m.map(T=>ye(T));const q=Math.ceil(x/u);for(let T=0;T<x;++T){let I=N;!I&&E!==null&&O!==null&&(I=E+T*(O-E)/(x-1)),I||(I=10+T*100/(x-1));let k=c+T%q*_+2*Math.PI/u*Math.floor(T/q);g||(k=f-T%q*_-2*Math.PI/u*Math.floor(T/q)),S[T].data.x=b[0]+Math.cos(k)*I,S[T].data.y=b[1]+Math.sin(k)*I}return t&&S.forEach(T=>{e.mergeNodeData(T.id,{x:T.data.x,y:T.data.y})}),{nodes:S,edges:d}})}}const Qc=(n,t,e=!1)=>{const r=[ye(t[0])],i={},s=t.length;i[t[0].id]=!0;let o=0;return t.forEach((a,u)=>{if(u!==0)if((u===s-1||n.getDegree(a.id,"both")!==n.getDegree(t[u+1].id,"both")||n.areNeighbors(r[o].id,a.id))&&!i[a.id])r.push(ye(a)),i[a.id]=!0,o++;else{const c=e?n.getSuccessors(r[o].id):n.getNeighbors(r[o].id);let f=!1;for(let h=0;h<c.length;h++){const g=c[h];if(n.getDegree(g.id)===n.getDegree(a.id)&&!i[g.id]){r.push(ye(g)),i[g.id]=!0,f=!0;break}}let l=0;for(;!f&&(i[t[l].id]||(r.push(ye(t[l])),i[t[l].id]=!0,f=!0),l++,l!==s););}}),r};function Iy(n,t){const e=[];return t.forEach((r,i)=>{e.push(ye(r))}),e.sort((r,i)=>n.getDegree(r.id,"both")-n.getDegree(i.id,"both")),e}const Ty=(n,t,e)=>{let r=n,i=t,s=e;return!r&&typeof window<"u"&&(r=window.innerWidth),!i&&typeof window<"u"&&(i=window.innerHeight),s||(s=[r/2,i/2]),[r,i,s]},ky={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:3/2*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class yn{constructor(t={}){this.options=t,this.id="concentric",this.options=Object.assign(Object.assign({},ky),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericConcentricLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericConcentricLayout(!0,t,e)})}genericConcentricLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{center:s,width:o,height:a,sortBy:u,maxLevelDiff:c,sweep:f,clockwise:l,equidistant:h,preventOverlap:g,startAngle:p=3/2*Math.PI,nodeSize:v,nodeSpacing:m}=i,d=e.getAllNodes(),y=e.getAllEdges(),w=!o&&typeof window<"u"?window.innerWidth:o,b=!a&&typeof window<"u"?window.innerHeight:a,x=s||[w/2,b/2];if(!(d!=null&&d.length)||d.length===1)return rt(e,t,x);const M=[];let N,E=0;ke(v)?N=Math.max(v[0],v[1]):Te(v)?(N=-1/0,d.forEach(A=>{const C=Math.max(...Ct(v(A)));C>N&&(N=C)})):N=v,ke(m)?E=Math.max(m[0],m[1]):V(m)&&(E=m),d.forEach(A=>{const C=ye(A);M.push(C);let D=N;const{data:z}=C;ke(z.size)?D=Math.max(z.size[0],z.size[1]):V(z.size)?D=z.size:gt(z.size)&&(D=Math.max(z.size.width,z.size.height)),N=Math.max(N,D),Te(m)&&(E=Math.max(m(A),E))});const O={};M.forEach((A,C)=>{O[A.id]=C});let _=u;(!kt(_)||M[0].data[_]===void 0)&&(_="degree"),_==="degree"?M.sort((A,C)=>e.getDegree(C.id,"both")-e.getDegree(A.id,"both")):M.sort((A,C)=>C.data[_]-A.data[_]);const S=M[0],q=(c||(_==="degree"?e.getDegree(S.id,"both"):S.data[_]))/4,R=[{nodes:[]}];let T=R[0];M.forEach(A=>{if(T.nodes.length>0){const C=Math.abs(_==="degree"?e.getDegree(T.nodes[0].id,"both")-e.getDegree(A.id,"both"):T.nodes[0].data[_]-A.data[_]);q&&C>=q&&(T={nodes:[]},R.push(T))}T.nodes.push(A)});let I=N+E;if(!g){const A=R.length>0&&R[0].nodes.length>1,D=(Math.min(w,b)/2-I)/(R.length+(A?1:0));I=Math.min(I,D)}let k=0;if(R.forEach(A=>{const C=f===void 0?2*Math.PI-2*Math.PI/A.nodes.length:f;if(A.dTheta=C/Math.max(1,A.nodes.length-1),A.nodes.length>1&&g){const D=Math.cos(A.dTheta)-Math.cos(0),z=Math.sin(A.dTheta)-Math.sin(0),U=Math.sqrt(I*I/(D*D+z*z));k=Math.max(U,k)}A.r=k,k+=I}),h){let A=0,C=0;for(let D=0;D<R.length;D++){const U=(R[D].r||0)-C;A=Math.max(A,U)}C=0,R.forEach((D,z)=>{z===0&&(C=D.r||0),D.r=C,C+=A})}return R.forEach(A=>{const C=A.dTheta||0,D=A.r||0;A.nodes.forEach((z,U)=>{const P=p+(l?1:-1)*C*U;z.data.x=x[0]+D*Math.cos(P),z.data.y=x[1]+D*Math.sin(P)})}),t&&M.forEach(A=>e.mergeNodeData(A.id,{x:A.data.x,y:A.data.y})),{nodes:M,edges:y}})}}function jy(n){const t=+this._x.call(null,n),e=+this._y.call(null,n);return Hc(this.cover(t,e),t,e,n)}function Hc(n,t,e,r){if(isNaN(t)||isNaN(e))return n;var i,s=n._root,o={data:r},a=n._x0,u=n._y0,c=n._x1,f=n._y1,l,h,g,p,v,m,d,y;if(!s)return n._root=o,n;for(;s.length;)if((v=t>=(l=(a+c)/2))?a=l:c=l,(m=e>=(h=(u+f)/2))?u=h:f=h,i=s,!(s=s[d=m<<1|v]))return i[d]=o,n;if(g=+n._x.call(null,s.data),p=+n._y.call(null,s.data),t===g&&e===p)return o.next=s,i?i[d]=o:n._root=o,n;do i=i?i[d]=new Array(4):n._root=new Array(4),(v=t>=(l=(a+c)/2))?a=l:c=l,(m=e>=(h=(u+f)/2))?u=h:f=h;while((d=m<<1|v)===(y=(p>=h)<<1|g>=l));return i[y]=s,i[d]=o,n}function Cy(n){var t,e,r=n.length,i,s,o=new Array(r),a=new Array(r),u=1/0,c=1/0,f=-1/0,l=-1/0;for(e=0;e<r;++e)isNaN(i=+this._x.call(null,t=n[e]))||isNaN(s=+this._y.call(null,t))||(o[e]=i,a[e]=s,i<u&&(u=i),i>f&&(f=i),s<c&&(c=s),s>l&&(l=s));if(u>f||c>l)return this;for(this.cover(u,c).cover(f,l),e=0;e<r;++e)Hc(this,o[e],a[e],n[e]);return this}function Py(n,t){if(isNaN(n=+n)||isNaN(t=+t))return this;var e=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(e))i=(e=Math.floor(n))+1,s=(r=Math.floor(t))+1;else{for(var o=i-e||1,a=this._root,u,c;e>n||n>=i||r>t||t>=s;)switch(c=(t<r)<<1|n<e,u=new Array(4),u[c]=a,a=u,o*=2,c){case 0:i=e+o,s=r+o;break;case 1:e=i-o,s=r+o;break;case 2:i=e+o,r=s-o;break;case 3:e=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=a)}return this._x0=e,this._y0=r,this._x1=i,this._y1=s,this}function Ly(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function Dy(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 he(n,t,e,r,i){this.node=n,this.x0=t,this.y0=e,this.x1=r,this.y1=i}function zy(n,t,e){var r,i=this._x0,s=this._y0,o,a,u,c,f=this._x1,l=this._y1,h=[],g=this._root,p,v;for(g&&h.push(new he(g,i,s,f,l)),e==null?e=1/0:(i=n-e,s=t-e,f=n+e,l=t+e,e*=e);p=h.pop();)if(!(!(g=p.node)||(o=p.x0)>f||(a=p.y0)>l||(u=p.x1)<i||(c=p.y1)<s))if(g.length){var m=(o+u)/2,d=(a+c)/2;h.push(new he(g[3],m,d,u,c),new he(g[2],o,d,m,c),new he(g[1],m,a,u,d),new he(g[0],o,a,m,d)),(v=(t>=d)<<1|n>=m)&&(p=h[h.length-1],h[h.length-1]=h[h.length-1-v],h[h.length-1-v]=p)}else{var y=n-+this._x.call(null,g.data),w=t-+this._y.call(null,g.data),b=y*y+w*w;if(b<e){var x=Math.sqrt(e=b);i=n-x,s=t-x,f=n+x,l=t+x,r=g.data}}return r}function $y(n){if(isNaN(f=+this._x.call(null,n))||isNaN(l=+this._y.call(null,n)))return this;var t,e=this._root,r,i,s,o=this._x0,a=this._y0,u=this._x1,c=this._y1,f,l,h,g,p,v,m,d;if(!e)return this;if(e.length)for(;;){if((p=f>=(h=(o+u)/2))?o=h:u=h,(v=l>=(g=(a+c)/2))?a=g:c=g,t=e,!(e=e[m=v<<1|p]))return this;if(!e.length)break;(t[m+1&3]||t[m+2&3]||t[m+3&3])&&(r=t,d=m)}for(;e.data!==n;)if(i=e,!(e=e.next))return this;return(s=e.next)&&delete e.next,i?(s?i.next=s:delete i.next,this):t?(s?t[m]=s:delete t[m],(e=t[0]||t[1]||t[2]||t[3])&&e===(t[3]||t[2]||t[1]||t[0])&&!e.length&&(r?r[d]=e:this._root=e),this):(this._root=s,this)}function Fy(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function By(){return this._root}function Uy(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function Gy(n){var t=[],e,r=this._root,i,s,o,a,u;for(r&&t.push(new he(r,this._x0,this._y0,this._x1,this._y1));e=t.pop();)if(!n(r=e.node,s=e.x0,o=e.y0,a=e.x1,u=e.y1)&&r.length){var c=(s+a)/2,f=(o+u)/2;(i=r[3])&&t.push(new he(i,c,f,a,u)),(i=r[2])&&t.push(new he(i,s,f,c,u)),(i=r[1])&&t.push(new he(i,c,o,a,f)),(i=r[0])&&t.push(new he(i,s,o,c,f))}return this}function Vy(n){var t=[],e=[],r;for(this._root&&t.push(new he(this._root,this._x0,this._y0,this._x1,this._y1));r=t.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.y0,u=r.x1,c=r.y1,f=(o+u)/2,l=(a+c)/2;(s=i[0])&&t.push(new he(s,o,a,f,l)),(s=i[1])&&t.push(new he(s,f,a,u,l)),(s=i[2])&&t.push(new he(s,o,l,f,c)),(s=i[3])&&t.push(new he(s,f,l,u,c))}e.push(r)}for(;r=e.pop();)n(r.node,r.x0,r.y0,r.x1,r.y1);return this}function Wy(n){return n[0]}function Yy(n){return arguments.length?(this._x=n,this):this._x}function Ky(n){return n[1]}function Xy(n){return arguments.length?(this._y=n,this):this._y}function vt(n,t,e){var r=new wn(t??Wy,e??Ky,NaN,NaN,NaN,NaN);return n==null?r:r.addAll(n)}function wn(n,t,e,r,i,s){this._x=n,this._y=t,this._x0=e,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function ef(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var de=vt.prototype=wn.prototype;de.copy=function(){var n=new wn(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=ef(t),n;for(e=[{source:t,target:n._root=new Array(4)}];t=e.pop();)for(var i=0;i<4;++i)(r=t.source[i])&&(r.length?e.push({source:r,target:t.target[i]=new Array(4)}):t.target[i]=ef(r));return n},de.add=jy,de.addAll=Cy,de.cover=Py,de.data=Ly,de.extent=Dy,de.find=zy,de.remove=$y,de.removeAll=Fy,de.root=By,de.size=Uy,de.visit=Gy,de.visitAfter=Vy,de.x=Yy,de.y=Xy;function Zy(n){const t=+this._x.call(null,n),e=+this._y.call(null,n),r=+this._z.call(null,n);return tf(this.cover(t,e,r),t,e,r,n)}function tf(n,t,e,r,i){if(isNaN(t)||isNaN(e)||isNaN(r))return n;var s,o=n._root,a={data:i},u=n._x0,c=n._y0,f=n._z0,l=n._x1,h=n._y1,g=n._z1,p,v,m,d,y,w,b,x,M,N,E;if(!o)return n._root=a,n;for(;o.length;)if((b=t>=(p=(u+l)/2))?u=p:l=p,(x=e>=(v=(c+h)/2))?c=v:h=v,(M=r>=(m=(f+g)/2))?f=m:g=m,s=o,!(o=o[N=M<<2|x<<1|b]))return s[N]=a,n;if(d=+n._x.call(null,o.data),y=+n._y.call(null,o.data),w=+n._z.call(null,o.data),t===d&&e===y&&r===w)return a.next=o,s?s[N]=a:n._root=a,n;do s=s?s[N]=new Array(8):n._root=new Array(8),(b=t>=(p=(u+l)/2))?u=p:l=p,(x=e>=(v=(c+h)/2))?c=v:h=v,(M=r>=(m=(f+g)/2))?f=m:g=m;while((N=M<<2|x<<1|b)===(E=(w>=m)<<2|(y>=v)<<1|d>=p));return s[E]=o,s[N]=a,n}function Jy(n){Array.isArray(n)||(n=Array.from(n));const t=n.length,e=new Float64Array(t),r=new Float64Array(t),i=new Float64Array(t);let s=1/0,o=1/0,a=1/0,u=-1/0,c=-1/0,f=-1/0;for(let l=0,h,g,p,v;l<t;++l)isNaN(g=+this._x.call(null,h=n[l]))||isNaN(p=+this._y.call(null,h))||isNaN(v=+this._z.call(null,h))||(e[l]=g,r[l]=p,i[l]=v,g<s&&(s=g),g>u&&(u=g),p<o&&(o=p),p>c&&(c=p),v<a&&(a=v),v>f&&(f=v));if(s>u||o>c||a>f)return this;this.cover(s,o,a).cover(u,c,f);for(let l=0;l<t;++l)tf(this,e[l],r[l],i[l],n[l]);return this}function Qy(n,t,e){if(isNaN(n=+n)||isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,i=this._y0,s=this._z0,o=this._x1,a=this._y1,u=this._z1;if(isNaN(r))o=(r=Math.floor(n))+1,a=(i=Math.floor(t))+1,u=(s=Math.floor(e))+1;else{for(var c=o-r||1,f=this._root,l,h;r>n||n>=o||i>t||t>=a||s>e||e>=u;)switch(h=(e<s)<<2|(t<i)<<1|n<r,l=new Array(8),l[h]=f,f=l,c*=2,h){case 0:o=r+c,a=i+c,u=s+c;break;case 1:r=o-c,a=i+c,u=s+c;break;case 2:o=r+c,i=a-c,u=s+c;break;case 3:r=o-c,i=a-c,u=s+c;break;case 4:o=r+c,a=i+c,s=u-c;break;case 5:r=o-c,a=i+c,s=u-c;break;case 6:o=r+c,i=a-c,s=u-c;break;case 7:r=o-c,i=a-c,s=u-c;break}this._root&&this._root.length&&(this._root=f)}return this._x0=r,this._y0=i,this._z0=s,this._x1=o,this._y1=a,this._z1=u,this}function Hy(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function ew(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 ee(n,t,e,r,i,s,o){this.node=n,this.x0=t,this.y0=e,this.z0=r,this.x1=i,this.y1=s,this.z1=o}function tw(n,t,e,r){var i,s=this._x0,o=this._y0,a=this._z0,u,c,f,l,h,g,p=this._x1,v=this._y1,m=this._z1,d=[],y=this._root,w,b;for(y&&d.push(new ee(y,s,o,a,p,v,m)),r==null?r=1/0:(s=n-r,o=t-r,a=e-r,p=n+r,v=t+r,m=e+r,r*=r);w=d.pop();)if(!(!(y=w.node)||(u=w.x0)>p||(c=w.y0)>v||(f=w.z0)>m||(l=w.x1)<s||(h=w.y1)<o||(g=w.z1)<a))if(y.length){var x=(u+l)/2,M=(c+h)/2,N=(f+g)/2;d.push(new ee(y[7],x,M,N,l,h,g),new ee(y[6],u,M,N,x,h,g),new ee(y[5],x,c,N,l,M,g),new ee(y[4],u,c,N,x,M,g),new ee(y[3],x,M,f,l,h,N),new ee(y[2],u,M,f,x,h,N),new ee(y[1],x,c,f,l,M,N),new ee(y[0],u,c,f,x,M,N)),(b=(e>=N)<<2|(t>=M)<<1|n>=x)&&(w=d[d.length-1],d[d.length-1]=d[d.length-1-b],d[d.length-1-b]=w)}else{var E=n-+this._x.call(null,y.data),O=t-+this._y.call(null,y.data),_=e-+this._z.call(null,y.data),S=E*E+O*O+_*_;if(S<r){var q=Math.sqrt(r=S);s=n-q,o=t-q,a=e-q,p=n+q,v=t+q,m=e+q,i=y.data}}return i}const rw=(n,t,e,r,i,s)=>Math.sqrt((n-r)**2+(t-i)**2+(e-s)**2);function nw(n,t,e,r){const i=[],s=n-r,o=t-r,a=e-r,u=n+r,c=t+r,f=e+r;return this.visit((l,h,g,p,v,m,d)=>{if(!l.length)do{const y=l.data;rw(n,t,e,this._x(y),this._y(y),this._z(y))<=r&&i.push(y)}while(l=l.next);return h>u||g>c||p>f||v<s||m<o||d<a}),i}function iw(n){if(isNaN(h=+this._x.call(null,n))||isNaN(g=+this._y.call(null,n))||isNaN(p=+this._z.call(null,n)))return this;var t,e=this._root,r,i,s,o=this._x0,a=this._y0,u=this._z0,c=this._x1,f=this._y1,l=this._z1,h,g,p,v,m,d,y,w,b,x,M;if(!e)return this;if(e.length)for(;;){if((y=h>=(v=(o+c)/2))?o=v:c=v,(w=g>=(m=(a+f)/2))?a=m:f=m,(b=p>=(d=(u+l)/2))?u=d:l=d,t=e,!(e=e[x=b<<2|w<<1|y]))return this;if(!e.length)break;(t[x+1&7]||t[x+2&7]||t[x+3&7]||t[x+4&7]||t[x+5&7]||t[x+6&7]||t[x+7&7])&&(r=t,M=x)}for(;e.data!==n;)if(i=e,!(e=e.next))return this;return(s=e.next)&&delete e.next,i?(s?i.next=s:delete i.next,this):t?(s?t[x]=s:delete t[x],(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[M]=e:this._root=e),this):(this._root=s,this)}function sw(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function ow(){return this._root}function aw(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function uw(n){var t=[],e,r=this._root,i,s,o,a,u,c,f;for(r&&t.push(new ee(r,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=t.pop();)if(!n(r=e.node,s=e.x0,o=e.y0,a=e.z0,u=e.x1,c=e.y1,f=e.z1)&&r.length){var l=(s+u)/2,h=(o+c)/2,g=(a+f)/2;(i=r[7])&&t.push(new ee(i,l,h,g,u,c,f)),(i=r[6])&&t.push(new ee(i,s,h,g,l,c,f)),(i=r[5])&&t.push(new ee(i,l,o,g,u,h,f)),(i=r[4])&&t.push(new ee(i,s,o,g,l,h,f)),(i=r[3])&&t.push(new ee(i,l,h,a,u,c,g)),(i=r[2])&&t.push(new ee(i,s,h,a,l,c,g)),(i=r[1])&&t.push(new ee(i,l,o,a,u,h,g)),(i=r[0])&&t.push(new ee(i,s,o,a,l,h,g))}return this}function cw(n){var t=[],e=[],r;for(this._root&&t.push(new ee(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));r=t.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.y0,u=r.z0,c=r.x1,f=r.y1,l=r.z1,h=(o+c)/2,g=(a+f)/2,p=(u+l)/2;(s=i[0])&&t.push(new ee(s,o,a,u,h,g,p)),(s=i[1])&&t.push(new ee(s,h,a,u,c,g,p)),(s=i[2])&&t.push(new ee(s,o,g,u,h,f,p)),(s=i[3])&&t.push(new ee(s,h,g,u,c,f,p)),(s=i[4])&&t.push(new ee(s,o,a,p,h,g,l)),(s=i[5])&&t.push(new ee(s,h,a,p,c,g,l)),(s=i[6])&&t.push(new ee(s,o,g,p,h,f,l)),(s=i[7])&&t.push(new ee(s,h,g,p,c,f,l))}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 fw(n){return n[0]}function lw(n){return arguments.length?(this._x=n,this):this._x}function hw(n){return n[1]}function dw(n){return arguments.length?(this._y=n,this):this._y}function gw(n){return n[2]}function pw(n){return arguments.length?(this._z=n,this):this._z}function ar(n,t,e,r){var i=new bn(t??fw,e??hw,r??gw,NaN,NaN,NaN,NaN,NaN,NaN);return n==null?i:i.addAll(n)}function bn(n,t,e,r,i,s,o,a,u){this._x=n,this._y=t,this._z=e,this._x0=r,this._y0=i,this._z0=s,this._x1=o,this._y1=a,this._z1=u,this._root=void 0}function rf(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var ce=ar.prototype=bn.prototype;ce.copy=function(){var n=new bn(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=rf(t),n;for(e=[{source:t,target:n._root=new Array(8)}];t=e.pop();)for(var i=0;i<8;++i)(r=t.source[i])&&(r.length?e.push({source:r,target:t.target[i]=new Array(8)}):t.target[i]=rf(r));return n},ce.add=Zy,ce.addAll=Jy,ce.cover=Qy,ce.data=Hy,ce.extent=ew,ce.find=tw,ce.findAllWithinRadius=nw,ce.remove=iw,ce.removeAll=sw,ce.root=ow,ce.size=aw,ce.visit=uw,ce.visitAfter=cw,ce.x=lw,ce.y=dw,ce.z=pw;const vw=.81,_n=.1;function mw(n,t,e,r,i=2){const s=t/e,o=n.getAllNodes(),a=o.map((f,l)=>{const{nodeStrength:h,x:g,y:p,z:v,size:m}=f.data;return{x:g,y:p,z:v,size:m,index:l,id:f.id,vx:0,vy:0,vz:0,weight:s*h}}),u=(i===2?vt(a,f=>f.x,f=>f.y):ar(a,f=>f.x,f=>f.y,f=>f.z)).visitAfter(yw),c=new Map;return a.forEach(f=>{c.set(f.id,f),bw(f,u,i)}),a.map((f,l)=>{const{id:h,data:g}=o[l],{mass:p=1}=g;r[h]={x:f.vx/p,y:f.vy/p,z:f.vz/p}}),r}function yw(n){let t=0,e=0,r=0,i=0,s=0;const o=n.length;if(o){for(let a=0;a<o;a++){const u=n[a];u&&u.weight&&(t+=u.weight,e+=u.x*u.weight,r+=u.y*u.weight,i+=u.z*u.weight,s+=u.size*u.weight)}n.x=e/t,n.y=r/t,n.z=i/t,n.size=s/t,n.weight=t}else{const a=n;n.x=a.data.x,n.y=a.data.y,n.z=a.data.z,n.size=a.data.size,n.weight=a.data.weight}}const ww=(n,t,e,r,i,s,o)=>{var a;if(((a=n.data)===null||a===void 0?void 0:a.id)===s.id)return;const u=[e,r,i][o-1],c=s.x-n.x||_n,f=s.y-n.y||_n,l=s.z-n.z||_n,h=[c,f,l],g=u-t;let p=0;for(let d=0;d<o;d++)p+=h[d]*h[d];const m=Math.sqrt(p)*p;if(g*g*vw<p){const d=n.weight/m;return s.vx+=c*d,s.vy+=f*d,s.vz+=l*d,!0}if(n.length)return!1;if(n.data!==s){const d=n.data.weight/m;s.vx+=c*d,s.vy+=f*d,s.vz+=l*d}};function bw(n,t,e){t.visit((r,i,s,o,a)=>ww(r,i,s,o,a,n,e))}const _w={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 nf{constructor(t={}){this.options=t,this.id="force",this.timeInterval=0,this.judgingDistance=0,this.running=!1,this.options=Object.assign(Object.assign({},_w),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericForceLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericForceLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window<"u"&&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 L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),s=e.getAllNodes(),o=e.getAllEdges(),a=this.formatOptions(i,e),{dimensions:u,width:c,height:f,nodeSize:l,getMass:h,nodeStrength:g,edgeStrength:p,linkDistance:v}=a,m=s.map((E,O)=>Object.assign(Object.assign({},E),{data:Object.assign(Object.assign({},E.data),{x:V(E.data.x)?E.data.x:Math.random()*c,y:V(E.data.y)?E.data.y:Math.random()*f,z:V(E.data.z)?E.data.z:Math.random()*Math.sqrt(c*f),size:l(E)||30,mass:h(E),nodeStrength:g(E)})})),d=o.map(E=>Object.assign(Object.assign({},E),{data:Object.assign(Object.assign({},E.data),{edgeStrength:p(E),linkDistance:v(E,e.getNode(E.source),e.getNode(E.target))})}));if(!(s!=null&&s.length))return this.lastResult={nodes:[],edges:o},{nodes:[],edges:o};const y={};s.forEach((E,O)=>{y[E.id]={x:0,y:0,z:0}});const w=new ue({nodes:m,edges:d});this.formatCentripetal(a,w);const{maxIteration:b,minMovement:x,onTick:M}=a;if(this.lastLayoutNodes=m,this.lastLayoutEdges=d,this.lastAssign=t,this.lastGraph=e,this.lastCalcGraph=w,this.lastOptions=a,this.lastVelMap=y,typeof window>"u")return;let N=0;return new Promise(E=>{this.timeInterval=window.setInterval(()=>{(!s||!this.running)&&E({nodes:En(e,m),edges:o}),this.runOneStep(w,e,N,y,a),this.updatePosition(e,w,y,a),t&&m.forEach(O=>e.mergeNodeData(O.id,{x:O.data.x,y:O.data.y,z:u===3?O.data.z:void 0})),M==null||M({nodes:En(e,m),edges:o}),N++,(N>=b||this.judgingDistance<x)&&(window.clearInterval(this.timeInterval),E({nodes:En(e,m),edges:o}))},0),this.running=!0})})}formatOptions(t,e){const r=Object.assign({},t),{width:i,height:s,getMass:o}=t;r.width=!i&&typeof window<"u"?window.innerWidth:i,r.height=!s&&typeof window<"u"?window.innerHeight:s,t.center||(r.center=[r.width/2,r.height/2]),o||(r.getMass=u=>{let c=1;V(u==null?void 0:u.data.mass)&&(c=u==null?void 0:u.data.mass);const f=e.getDegree(u.id,"both");return!f||f<5?c:f*5*c}),r.nodeSize=mn(t.nodeSize,t.nodeSpacing);const a=t.linkDistance?tt(1,t.linkDistance):u=>1+r.nodeSize(e.getNode(u.source))+r.nodeSize(e.getNode(u.target));return r.linkDistance=a,r.nodeStrength=tt(1,t.nodeStrength),r.edgeStrength=tt(1,t.edgeStrength),r}formatCentripetal(t,e){const{dimensions:r,centripetalOptions:i,center:s,clusterNodeStrength:o,leafCluster:a,clustering:u,nodeClusterBy:c}=t,f=e.getAllNodes(),l=i||{leaf:2,single:2,others:1,center:d=>({x:s[0],y:s[1],z:r===3?s[2]:void 0})};typeof o!="function"&&(t.clusterNodeStrength=d=>o);let h,g;if(a&&c&&(h=sf(e,c),g=Array.from(new Set(f==null?void 0:f.map(d=>d.data[c])))||[],t.centripetalOptions=Object.assign(l,{single:100,leaf:d=>{const{siblingLeaves:y,sameTypeLeaves:w}=h[d.id]||{};return(w==null?void 0:w.length)===(y==null?void 0:y.length)||(g==null?void 0:g.length)===1?1:t.clusterNodeStrength(d)},others:1,center:d=>{const y=e.getDegree(d.id,"both");if(!y)return{x:100,y:100,z:0};let w;if(y===1){const{sameTypeLeaves:b=[]}=h[d.id]||{};b.length===1?w=void 0:b.length>1&&(w=of(b))}else w=void 0;return{x:w==null?void 0:w.x,y:w==null?void 0:w.y,z:w==null?void 0:w.z}}})),u&&c){h||(h=sf(e,c)),g||(g=Array.from(new Set(f.map(y=>y.data[c])))),g=g.filter(y=>y!==void 0);const d={};g.forEach(y=>{const w=f.filter(b=>b.data[c]===y).map(b=>e.getNode(b.id));d[y]=of(w)}),t.centripetalOptions=Object.assign(l,{single:y=>t.clusterNodeStrength(y),leaf:y=>t.clusterNodeStrength(y),others:y=>t.clusterNodeStrength(y),center:y=>{const w=d[y.data[c]];return{x:w==null?void 0:w.x,y:w==null?void 0:w.y,z:w==null?void 0:w.z}}})}const{leaf:p,single:v,others:m}=t.centripetalOptions||{};p&&typeof p!="function"&&(t.centripetalOptions.leaf=()=>p),v&&typeof v!="function"&&(t.centripetalOptions.single=()=>v),m&&typeof m!="function"&&(t.centripetalOptions.others=()=>m)}runOneStep(t,e,r,i,s){const o={},a=t.getAllNodes(),u=t.getAllEdges();if(!(a!=null&&a.length))return;const{monitor:c}=s;if(this.calRepulsive(t,o,s),u&&this.calAttractive(t,o,s),this.calGravity(t,e,o,s),this.updateVelocity(t,o,i,s),c){const f=this.calTotalEnergy(o,a);c({energy:f,nodes:e.getAllNodes(),edges:e.getAllEdges(),iterations:r})}}calTotalEnergy(t,e){if(!(e!=null&&e.length))return 0;let r=0;return e.forEach((i,s)=>{const o=t[i.id].x,a=t[i.id].y,u=this.options.dimensions===3?t[i.id].z:0,c=o*o+a*a+u*u,{mass:f=1}=i.data;r+=f*c*.5}),r}calRepulsive(t,e,r){const{dimensions:i,factor:s,coulombDisScale:o}=r;mw(t,s,o*o,e,i)}calAttractive(t,e,r){const{dimensions:i,nodeSize:s}=r;t.getAllEdges().forEach((o,a)=>{const{source:u,target:c}=o,f=t.getNode(u),l=t.getNode(c);if(!f||!l)return;let h=l.data.x-f.data.x,g=l.data.y-f.data.y,p=i===3?l.data.z-f.data.z:0;!h&&!g&&(h=Math.random()*.01,g=Math.random()*.01,i===3&&!p&&(p=Math.random()*.01));const v=Math.sqrt(h*h+g*g+p*p);if(v<s(f)+s(l))return;const m=h/v,d=g/v,y=p/v,{linkDistance:w=200,edgeStrength:b=200}=o.data||{},M=(w-v)*b,N=f.data.mass||1,E=l.data.mass||1,O=1/N,_=1/E,S=m*M,q=d*M,R=y*M;e[u].x-=S*O,e[u].y-=q*O,e[u].z-=R*O,e[c].x+=S*_,e[c].y+=q*_,e[c].z+=R*_})}calGravity(t,e,r,i){const{getCenter:s}=i,o=t.getAllNodes(),a=e.getAllNodes(),u=e.getAllEdges(),{width:c,height:f,center:l,gravity:h,centripetalOptions:g}=i;o&&o.forEach(p=>{const{id:v,data:m}=p,{mass:d,x:y,y:w,z:b}=m,x=e.getNode(v);let M=0,N=0,E=0,O=h;const _=t.getDegree(v,"in"),S=t.getDegree(v,"out"),q=t.getDegree(v,"both"),R=s==null?void 0:s(x,q);if(R){const[T,I,k]=R;M=y-T,N=w-I,O=k}else M=y-l[0],N=w-l[1],E=b-l[2];if(O&&(r[v].x-=O*M/d,r[v].y-=O*N/d,r[v].z-=O*E/d),g){const{leaf:T,single:I,others:k,center:F}=g,{x:A,y:C,z:D,centerStrength:z}=(F==null?void 0:F(x,a,u,c,f))||{x:0,y:0,z:0,centerStrength:0};if(!V(A)||!V(C))return;const U=(y-A)/d,P=(w-C)/d,$=(b-D)/d;if(z&&(r[v].x-=z*U,r[v].y-=z*P,r[v].z-=z*$),q===0){const Z=I(x);if(!Z)return;r[v].x-=Z*U,r[v].y-=Z*P,r[v].z-=Z*$;return}if(_===0||S===0){const Z=T(x,a,u);if(!Z)return;r[v].x-=Z*U,r[v].y-=Z*P,r[v].z-=Z*$;return}const B=k(x);if(!B)return;r[v].x-=B*U,r[v].y-=B*P,r[v].z-=B*$}})}updateVelocity(t,e,r,i){const{damping:s,maxSpeed:o,interval:a,dimensions:u}=i,c=t.getAllNodes();c!=null&&c.length&&c.forEach(f=>{const{id:l}=f;let h=(r[l].x+e[l].x*a)*s||.01,g=(r[l].y+e[l].y*a)*s||.01,p=u===3?(r[l].z+e[l].z*a)*s||.01:0;const v=Math.sqrt(h*h+g*g+p*p);if(v>o){const m=o/v;h=m*h,g=m*g,p=m*p}r[l]={x:h,y:g,z:p}})}updatePosition(t,e,r,i){const{distanceThresholdMode:s,interval:o,dimensions:a}=i,u=e.getAllNodes();if(!(u!=null&&u.length)){this.judgingDistance=0;return}let c=0;s==="max"?this.judgingDistance=-1/0:s==="min"&&(this.judgingDistance=1/0),u.forEach(f=>{const{id:l}=f,h=t.getNode(l);if(V(h.data.fx)&&V(h.data.fy)){e.mergeNodeData(l,{x:h.data.fx,y:h.data.fy,z:a===3?h.data.fz:void 0});return}const g=r[l].x*o,p=r[l].y*o,v=a===3?r[l].z*o:0;e.mergeNodeData(l,{x:f.data.x+g,y:f.data.y+p,z:f.data.z+v});const m=Math.sqrt(g*g+p*p+v*v);switch(s){case"max":this.judgingDistance<m&&(this.judgingDistance=m);break;case"min":this.judgingDistance>m&&(this.judgingDistance=m);break;default:c=c+m;break}}),(!s||s==="mean")&&(this.judgingDistance=c/u.length)}}const sf=(n,t)=>{const e=n.getAllNodes();if(!(e!=null&&e.length))return{};const r={};return e.forEach((i,s)=>{n.getDegree(i.id,"both")===1&&(r[i.id]=Ew(n,"leaf",i,t))}),r},Ew=(n,t,e,r)=>{const i=n.getDegree(e.id,"in"),s=n.getDegree(e.id,"out");let o=e,a=[];i===0?(o=n.getSuccessors(e.id)[0],a=n.getNeighbors(o.id)):s===0&&(o=n.getPredecessors(e.id)[0],a=n.getNeighbors(o.id)),a=a.filter(c=>n.getDegree(c.id,"in")===0||n.getDegree(c.id,"out")===0);const u=xw(n,t,r,e,a);return{coreNode:o,siblingLeaves:a,sameTypeLeaves:u}},xw=(n,t,e,r,i)=>{const s=r.data[e]||"";let o=(i==null?void 0:i.filter(a=>a.data[e]===s))||[];return o=o.filter(a=>n.getDegree(a.id,"in")===0||n.getDegree(a.id,"out")===0),o},of=n=>{const t={x:0,y:0};n.forEach(r=>{const{x:i,y:s}=r.data;t.x+=i||0,t.y+=s||0});const e=n.length||1;return{x:t.x/e,y:t.y/e}},En=(n,t)=>t.map(e=>{const{id:r,data:i}=e,s=n.getNode(r);return Object.assign(Object.assign({},s),{data:Object.assign(Object.assign({},s.data),{x:i.x,y:i.y,z:i.z})})});var ur=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Nw(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function af(n){if(n.__esModule)return n;var t=n.default;if(typeof t=="function"){var e=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};e.prototype=t.prototype}else e={};return Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(n).forEach(function(r){var i=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(e,r,i.get?i:{enumerable:!0,get:function(){return n[r]}})}),e}var X={};const Mw=Object.prototype.toString;function Pt(n){const t=Mw.call(n);return t.endsWith("Array]")&&!t.includes("Big")}var Sw=Object.freeze({__proto__:null,isAnyArray:Pt}),Rw=af(Sw);function qw(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Pt(n))throw new TypeError("input must be an array");if(n.length===0)throw new TypeError("input must not be empty");var e=t.fromIndex,r=e===void 0?0:e,i=t.toIndex,s=i===void 0?n.length:i;if(r<0||r>=n.length||!Number.isInteger(r))throw new Error("fromIndex must be a positive integer smaller than length");if(s<=r||s>n.length||!Number.isInteger(s))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var o=n[r],a=r+1;a<s;a++)n[a]>o&&(o=n[a]);return o}function Ow(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Pt(n))throw new TypeError("input must be an array");if(n.length===0)throw new TypeError("input must not be empty");var e=t.fromIndex,r=e===void 0?0:e,i=t.toIndex,s=i===void 0?n.length:i;if(r<0||r>=n.length||!Number.isInteger(r))throw new Error("fromIndex must be a positive integer smaller than length");if(s<=r||s>n.length||!Number.isInteger(s))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var o=n[r],a=r+1;a<s;a++)n[a]<o&&(o=n[a]);return o}function Aw(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Pt(n)){if(n.length===0)throw new TypeError("input must not be empty")}else throw new TypeError("input must be an array");var e;if(t.output!==void 0){if(!Pt(t.output))throw new TypeError("output option must be an array if specified");e=t.output}else e=new Array(n.length);var r=Ow(n),i=qw(n);if(r===i)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var s=t.min,o=s===void 0?t.autoMinMax?r:0:s,a=t.max,u=a===void 0?t.autoMinMax?i:1:a;if(o>=u)throw new RangeError("min option must be smaller than max option");for(var c=(u-o)/(i-r),f=0;f<n.length;f++)e[f]=(n[f]-r)*c+o;return e}var Iw=Object.freeze({__proto__:null,default:Aw}),Tw=af(Iw);Object.defineProperty(X,"__esModule",{value:!0});var ge=Rw,uf=Tw;const cr=" ".repeat(2),cf=" ".repeat(4);function kw(){return ff(this)}function ff(n,t={}){const{maxRows:e=15,maxColumns:r=10,maxNumSize:i=8,padMinus:s="auto"}=t;return`${n.constructor.name} {
${cr}[
${cf}${jw(n,e,r,i,s)}
${cr}]
${cr}rows: ${n.rows}
${cr}columns: ${n.columns}
}`}function jw(n,t,e,r,i){const{rows:s,columns:o}=n,a=Math.min(s,t),u=Math.min(o,e),c=[];if(i==="auto"){i=!1;e:for(let f=0;f<a;f++)for(let l=0;l<u;l++)if(n.get(f,l)<0){i=!0;break e}}for(let f=0;f<a;f++){let l=[];for(let h=0;h<u;h++)l.push(Cw(n.get(f,h),r,i));c.push(`${l.join(" ")}`)}return u!==o&&(c[c.length-1]+=` ... ${o-e} more columns`),a!==s&&c.push(`... ${s-t} more rows`),c.join(`
${cf}`)}function Cw(n,t,e){return(n>=0&&e?` ${lf(n,t-1)}`:lf(n,t)).padEnd(t)}function lf(n,t){let e=n.toString();if(e.length<=t)return e;let r=n.toFixed(t);if(r.length>t&&(r=n.toFixed(Math.max(0,t-(r.length-t)))),r.length<=t&&!r.startsWith("0.000")&&!r.startsWith("-0.000"))return r;let i=n.toExponential(t);return i.length>t&&(i=n.toExponential(Math.max(0,t-(i.length-t)))),i.slice(0)}function Pw(n,t){n.prototype.add=function(r){return typeof r=="number"?this.addS(r):this.addM(r)},n.prototype.addS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)+r);return this},n.prototype.addM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)+r.get(i,s));return this},n.add=function(r,i){return new t(r).add(i)},n.prototype.sub=function(r){return typeof r=="number"?this.subS(r):this.subM(r)},n.prototype.subS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)-r);return this},n.prototype.subM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)-r.get(i,s));return this},n.sub=function(r,i){return new t(r).sub(i)},n.prototype.subtract=n.prototype.sub,n.prototype.subtractS=n.prototype.subS,n.prototype.subtractM=n.prototype.subM,n.subtract=n.sub,n.prototype.mul=function(r){return typeof r=="number"?this.mulS(r):this.mulM(r)},n.prototype.mulS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)*r);return this},n.prototype.mulM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)*r.get(i,s));return this},n.mul=function(r,i){return new t(r).mul(i)},n.prototype.multiply=n.prototype.mul,n.prototype.multiplyS=n.prototype.mulS,n.prototype.multiplyM=n.prototype.mulM,n.multiply=n.mul,n.prototype.div=function(r){return typeof r=="number"?this.divS(r):this.divM(r)},n.prototype.divS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)/r);return this},n.prototype.divM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)/r.get(i,s));return this},n.div=function(r,i){return new t(r).div(i)},n.prototype.divide=n.prototype.div,n.prototype.divideS=n.prototype.divS,n.prototype.divideM=n.prototype.divM,n.divide=n.div,n.prototype.mod=function(r){return typeof r=="number"?this.modS(r):this.modM(r)},n.prototype.modS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)%r);return this},n.prototype.modM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)%r.get(i,s));return this},n.mod=function(r,i){return new t(r).mod(i)},n.prototype.modulus=n.prototype.mod,n.prototype.modulusS=n.prototype.modS,n.prototype.modulusM=n.prototype.modM,n.modulus=n.mod,n.prototype.and=function(r){return typeof r=="number"?this.andS(r):this.andM(r)},n.prototype.andS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)&r);return this},n.prototype.andM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)&r.get(i,s));return this},n.and=function(r,i){return new t(r).and(i)},n.prototype.or=function(r){return typeof r=="number"?this.orS(r):this.orM(r)},n.prototype.orS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)|r);return this},n.prototype.orM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)|r.get(i,s));return this},n.or=function(r,i){return new t(r).or(i)},n.prototype.xor=function(r){return typeof r=="number"?this.xorS(r):this.xorM(r)},n.prototype.xorS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)^r);return this},n.prototype.xorM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)^r.get(i,s));return this},n.xor=function(r,i){return new t(r).xor(i)},n.prototype.leftShift=function(r){return typeof r=="number"?this.leftShiftS(r):this.leftShiftM(r)},n.prototype.leftShiftS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)<<r);return this},n.prototype.leftShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)<<r.get(i,s));return this},n.leftShift=function(r,i){return new t(r).leftShift(i)},n.prototype.signPropagatingRightShift=function(r){return typeof r=="number"?this.signPropagatingRightShiftS(r):this.signPropagatingRightShiftM(r)},n.prototype.signPropagatingRightShiftS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)>>r);return this},n.prototype.signPropagatingRightShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)>>r.get(i,s));return this},n.signPropagatingRightShift=function(r,i){return new t(r).signPropagatingRightShift(i)},n.prototype.rightShift=function(r){return typeof r=="number"?this.rightShiftS(r):this.rightShiftM(r)},n.prototype.rightShiftS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)>>>r);return this},n.prototype.rightShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)>>>r.get(i,s));return this},n.rightShift=function(r,i){return new t(r).rightShift(i)},n.prototype.zeroFillRightShift=n.prototype.rightShift,n.prototype.zeroFillRightShiftS=n.prototype.rightShiftS,n.prototype.zeroFillRightShiftM=n.prototype.rightShiftM,n.zeroFillRightShift=n.rightShift,n.prototype.not=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,~this.get(r,i));return this},n.not=function(r){return new t(r).not()},n.prototype.abs=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.abs(this.get(r,i)));return this},n.abs=function(r){return new t(r).abs()},n.prototype.acos=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.acos(this.get(r,i)));return this},n.acos=function(r){return new t(r).acos()},n.prototype.acosh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.acosh(this.get(r,i)));return this},n.acosh=function(r){return new t(r).acosh()},n.prototype.asin=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.asin(this.get(r,i)));return this},n.asin=function(r){return new t(r).asin()},n.prototype.asinh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.asinh(this.get(r,i)));return this},n.asinh=function(r){return new t(r).asinh()},n.prototype.atan=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.atan(this.get(r,i)));return this},n.atan=function(r){return new t(r).atan()},n.prototype.atanh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.atanh(this.get(r,i)));return this},n.atanh=function(r){return new t(r).atanh()},n.prototype.cbrt=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.cbrt(this.get(r,i)));return this},n.cbrt=function(r){return new t(r).cbrt()},n.prototype.ceil=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.ceil(this.get(r,i)));return this},n.ceil=function(r){return new t(r).ceil()},n.prototype.clz32=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.clz32(this.get(r,i)));return this},n.clz32=function(r){return new t(r).clz32()},n.prototype.cos=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.cos(this.get(r,i)));return this},n.cos=function(r){return new t(r).cos()},n.prototype.cosh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.cosh(this.get(r,i)));return this},n.cosh=function(r){return new t(r).cosh()},n.prototype.exp=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.exp(this.get(r,i)));return this},n.exp=function(r){return new t(r).exp()},n.prototype.expm1=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.expm1(this.get(r,i)));return this},n.expm1=function(r){return new t(r).expm1()},n.prototype.floor=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.floor(this.get(r,i)));return this},n.floor=function(r){return new t(r).floor()},n.prototype.fround=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.fround(this.get(r,i)));return this},n.fround=function(r){return new t(r).fround()},n.prototype.log=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.log(this.get(r,i)));return this},n.log=function(r){return new t(r).log()},n.prototype.log1p=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.log1p(this.get(r,i)));return this},n.log1p=function(r){return new t(r).log1p()},n.prototype.log10=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.log10(this.get(r,i)));return this},n.log10=function(r){return new t(r).log10()},n.prototype.log2=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.log2(this.get(r,i)));return this},n.log2=function(r){return new t(r).log2()},n.prototype.round=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.round(this.get(r,i)));return this},n.round=function(r){return new t(r).round()},n.prototype.sign=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.sign(this.get(r,i)));return this},n.sign=function(r){return new t(r).sign()},n.prototype.sin=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.sin(this.get(r,i)));return this},n.sin=function(r){return new t(r).sin()},n.prototype.sinh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.sinh(this.get(r,i)));return this},n.sinh=function(r){return new t(r).sinh()},n.prototype.sqrt=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.sqrt(this.get(r,i)));return this},n.sqrt=function(r){return new t(r).sqrt()},n.prototype.tan=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.tan(this.get(r,i)));return this},n.tan=function(r){return new t(r).tan()},n.prototype.tanh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.tanh(this.get(r,i)));return this},n.tanh=function(r){return new t(r).tanh()},n.prototype.trunc=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.trunc(this.get(r,i)));return this},n.trunc=function(r){return new t(r).trunc()},n.pow=function(r,i){return new t(r).pow(i)},n.prototype.pow=function(r){return typeof r=="number"?this.powS(r):this.powM(r)},n.prototype.powS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)**r);return this},n.prototype.powM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)**r.get(i,s));return this}}function Ee(n,t,e){let r=e?n.rows:n.rows-1;if(t<0||t>r)throw new RangeError("Row index out of range")}function xe(n,t,e){let r=e?n.columns:n.columns-1;if(t<0||t>r)throw new RangeError("Column index out of range")}function mt(n,t){if(t.to1DArray&&(t=t.to1DArray()),t.length!==n.columns)throw new RangeError("vector size must be the same as the number of columns");return t}function yt(n,t){if(t.to1DArray&&(t=t.to1DArray()),t.length!==n.rows)throw new RangeError("vector size must be the same as the number of rows");return t}function xn(n,t){if(!ge.isAnyArray(t))throw new TypeError("row indices must be an array");for(let e=0;e<t.length;e++)if(t[e]<0||t[e]>=n.rows)throw new RangeError("row indices are out of range")}function Nn(n,t){if(!ge.isAnyArray(t))throw new TypeError("column indices must be an array");for(let e=0;e<t.length;e++)if(t[e]<0||t[e]>=n.columns)throw new RangeError("column indices are out of range")}function Mn(n,t,e,r,i){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(lr("startRow",t),lr("endRow",e),lr("startColumn",r),lr("endColumn",i),t>e||r>i||t<0||t>=n.rows||e<0||e>=n.rows||r<0||r>=n.columns||i<0||i>=n.columns)throw new RangeError("Submatrix indices are out of range")}function fr(n,t=0){let e=[];for(let r=0;r<n;r++)e.push(t);return e}function lr(n,t){if(typeof t!="number")throw new TypeError(`${n} must be a number`)}function wt(n){if(n.isEmpty())throw new Error("Empty matrix has no elements to index")}function Lw(n){let t=fr(n.rows);for(let e=0;e<n.rows;++e)for(let r=0;r<n.columns;++r)t[e]+=n.get(e,r);return t}function Dw(n){let t=fr(n.columns);for(let e=0;e<n.rows;++e)for(let r=0;r<n.columns;++r)t[r]+=n.get(e,r);return t}function zw(n){let t=0;for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)t+=n.get(e,r);return t}function $w(n){let t=fr(n.rows,1);for(let e=0;e<n.rows;++e)for(let r=0;r<n.columns;++r)t[e]*=n.get(e,r);return t}function Fw(n){let t=fr(n.columns,1);for(let e=0;e<n.rows;++e)for(let r=0;r<n.columns;++r)t[r]*=n.get(e,r);return t}function Bw(n){let t=1;for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)t*=n.get(e,r);return t}function Uw(n,t,e){const r=n.rows,i=n.columns,s=[];for(let o=0;o<r;o++){let a=0,u=0,c=0;for(let f=0;f<i;f++)c=n.get(o,f)-e[o],a+=c,u+=c*c;t?s.push((u-a*a/i)/(i-1)):s.push((u-a*a/i)/i)}return s}function Gw(n,t,e){const r=n.rows,i=n.columns,s=[];for(let o=0;o<i;o++){let a=0,u=0,c=0;for(let f=0;f<r;f++)c=n.get(f,o)-e[o],a+=c,u+=c*c;t?s.push((u-a*a/r)/(r-1)):s.push((u-a*a/r)/r)}return s}function Vw(n,t,e){const r=n.rows,i=n.columns,s=r*i;let o=0,a=0,u=0;for(let c=0;c<r;c++)for(let f=0;f<i;f++)u=n.get(c,f)-e,o+=u,a+=u*u;return t?(a-o*o/s)/(s-1):(a-o*o/s)/s}function Ww(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)-t[e])}function Yw(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)-t[r])}function Kw(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)-t)}function Xw(n){const t=[];for(let e=0;e<n.rows;e++){let r=0;for(let i=0;i<n.columns;i++)r+=n.get(e,i)**2/(n.columns-1);t.push(Math.sqrt(r))}return t}function Zw(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)/t[e])}function Jw(n){const t=[];for(let e=0;e<n.columns;e++){let r=0;for(let i=0;i<n.rows;i++)r+=n.get(i,e)**2/(n.rows-1);t.push(Math.sqrt(r))}return t}function Qw(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)/t[r])}function Hw(n){const t=n.size-1;let e=0;for(let r=0;r<n.columns;r++)for(let i=0;i<n.rows;i++)e+=n.get(i,r)**2/t;return Math.sqrt(e)}function e1(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)/t)}class Y{static from1DArray(t,e,r){if(t*e!==r.length)throw new RangeError("data length does not match given dimensions");let s=new j(t,e);for(let o=0;o<t;o++)for(let a=0;a<e;a++)s.set(o,a,r[o*e+a]);return s}static rowVector(t){let e=new j(1,t.length);for(let r=0;r<t.length;r++)e.set(0,r,t[r]);return e}static columnVector(t){let e=new j(t.length,1);for(let r=0;r<t.length;r++)e.set(r,0,t[r]);return e}static zeros(t,e){return new j(t,e)}static ones(t,e){return new j(t,e).fill(1)}static rand(t,e,r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{random:i=Math.random}=r;let s=new j(t,e);for(let o=0;o<t;o++)for(let a=0;a<e;a++)s.set(o,a,i());return s}static randInt(t,e,r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{min:i=0,max:s=1e3,random:o=Math.random}=r;if(!Number.isInteger(i))throw new TypeError("min must be an integer");if(!Number.isInteger(s))throw new TypeError("max must be an integer");if(i>=s)throw new RangeError("min must be smaller than max");let a=s-i,u=new j(t,e);for(let c=0;c<t;c++)for(let f=0;f<e;f++){let l=i+Math.round(o()*a);u.set(c,f,l)}return u}static eye(t,e,r){e===void 0&&(e=t),r===void 0&&(r=1);let i=Math.min(t,e),s=this.zeros(t,e);for(let o=0;o<i;o++)s.set(o,o,r);return s}static diag(t,e,r){let i=t.length;e===void 0&&(e=i),r===void 0&&(r=e);let s=Math.min(i,e,r),o=this.zeros(e,r);for(let a=0;a<s;a++)o.set(a,a,t[a]);return o}static min(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,i=t.columns,s=new j(r,i);for(let o=0;o<r;o++)for(let a=0;a<i;a++)s.set(o,a,Math.min(t.get(o,a),e.get(o,a)));return s}static max(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,i=t.columns,s=new this(r,i);for(let o=0;o<r;o++)for(let a=0;a<i;a++)s.set(o,a,Math.max(t.get(o,a),e.get(o,a)));return s}static checkMatrix(t){return Y.isMatrix(t)?t:new j(t)}static isMatrix(t){return t!=null&&t.klass==="Matrix"}get size(){return this.rows*this.columns}apply(t){if(typeof t!="function")throw new TypeError("callback must be a function");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.call(this,e,r);return this}to1DArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.push(this.get(e,r));return t}to2DArray(){let t=[];for(let e=0;e<this.rows;e++){t.push([]);for(let r=0;r<this.columns;r++)t[e].push(this.get(e,r))}return t}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 t=0;t<this.rows;t++)for(let e=0;e<=t;e++)if(this.get(t,e)!==this.get(e,t))return!1;return!0}return!1}isDistance(){if(!this.isSymmetric())return!1;for(let t=0;t<this.rows;t++)if(this.get(t,t)!==0)return!1;return!0}isEchelonForm(){let t=0,e=0,r=-1,i=!0,s=!1;for(;t<this.rows&&i;){for(e=0,s=!1;e<this.columns&&s===!1;)this.get(t,e)===0?e++:this.get(t,e)===1&&e>r?(s=!0,r=e):(i=!1,s=!0);t++}return i}isReducedEchelonForm(){let t=0,e=0,r=-1,i=!0,s=!1;for(;t<this.rows&&i;){for(e=0,s=!1;e<this.columns&&s===!1;)this.get(t,e)===0?e++:this.get(t,e)===1&&e>r?(s=!0,r=e):(i=!1,s=!0);for(let o=e+1;o<this.rows;o++)this.get(t,o)!==0&&(i=!1);t++}return i}echelonForm(){let t=this.clone(),e=0,r=0;for(;e<t.rows&&r<t.columns;){let i=e;for(let s=e;s<t.rows;s++)t.get(s,r)>t.get(i,r)&&(i=s);if(t.get(i,r)===0)r++;else{t.swapRows(e,i);let s=t.get(e,r);for(let o=r;o<t.columns;o++)t.set(e,o,t.get(e,o)/s);for(let o=e+1;o<t.rows;o++){let a=t.get(o,r)/t.get(e,r);t.set(o,r,0);for(let u=r+1;u<t.columns;u++)t.set(o,u,t.get(o,u)-t.get(e,u)*a)}e++,r++}}return t}reducedEchelonForm(){let t=this.echelonForm(),e=t.columns,r=t.rows,i=r-1;for(;i>=0;)if(t.maxRow(i)===0)i--;else{let s=0,o=!1;for(;s<r&&o===!1;)t.get(i,s)===1?o=!0:s++;for(let a=0;a<i;a++){let u=t.get(a,s);for(let c=s;c<e;c++){let f=t.get(a,c)-u*t.get(i,c);t.set(a,c,f)}}i--}return t}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{rows:e=1,columns:r=1}=t;if(!Number.isInteger(e)||e<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(r)||r<=0)throw new TypeError("columns must be a positive integer");let i=new j(this.rows*e,this.columns*r);for(let s=0;s<e;s++)for(let o=0;o<r;o++)i.setSubMatrix(this,this.rows*s,this.columns*o);return i}fill(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,t);return this}neg(){return this.mulS(-1)}getRow(t){Ee(this,t);let e=[];for(let r=0;r<this.columns;r++)e.push(this.get(t,r));return e}getRowVector(t){return j.rowVector(this.getRow(t))}setRow(t,e){Ee(this,t),e=mt(this,e);for(let r=0;r<this.columns;r++)this.set(t,r,e[r]);return this}swapRows(t,e){Ee(this,t),Ee(this,e);for(let r=0;r<this.columns;r++){let i=this.get(t,r);this.set(t,r,this.get(e,r)),this.set(e,r,i)}return this}getColumn(t){xe(this,t);let e=[];for(let r=0;r<this.rows;r++)e.push(this.get(r,t));return e}getColumnVector(t){return j.columnVector(this.getColumn(t))}setColumn(t,e){xe(this,t),e=yt(this,e);for(let r=0;r<this.rows;r++)this.set(r,t,e[r]);return this}swapColumns(t,e){xe(this,t),xe(this,e);for(let r=0;r<this.rows;r++){let i=this.get(r,t);this.set(r,t,this.get(r,e)),this.set(r,e,i)}return this}addRowVector(t){t=mt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[r]);return this}subRowVector(t){t=mt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[r]);return this}mulRowVector(t){t=mt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[r]);return this}divRowVector(t){t=mt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[r]);return this}addColumnVector(t){t=yt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[e]);return this}subColumnVector(t){t=yt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[e]);return this}mulColumnVector(t){t=yt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[e]);return this}divColumnVector(t){t=yt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[e]);return this}mulRow(t,e){Ee(this,t);for(let r=0;r<this.columns;r++)this.set(t,r,this.get(t,r)*e);return this}mulColumn(t,e){xe(this,t);for(let r=0;r<this.rows;r++)this.set(r,t,this.get(r,t)*e);return this}max(t){if(this.isEmpty())return NaN;switch(t){case"row":{const e=new Array(this.rows).fill(Number.NEGATIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)>e[r]&&(e[r]=this.get(r,i));return e}case"column":{const e=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)>e[i]&&(e[i]=this.get(r,i));return e}case void 0:{let e=this.get(0,0);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)>e&&(e=this.get(r,i));return e}default:throw new Error(`invalid option: ${t}`)}}maxIndex(){wt(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)>t&&(t=this.get(r,i),e[0]=r,e[1]=i);return e}min(t){if(this.isEmpty())return NaN;switch(t){case"row":{const e=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)<e[r]&&(e[r]=this.get(r,i));return e}case"column":{const e=new Array(this.columns).fill(Number.POSITIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)<e[i]&&(e[i]=this.get(r,i));return e}case void 0:{let e=this.get(0,0);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)<e&&(e=this.get(r,i));return e}default:throw new Error(`invalid option: ${t}`)}}minIndex(){wt(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)<t&&(t=this.get(r,i),e[0]=r,e[1]=i);return e}maxRow(t){if(Ee(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)>e&&(e=this.get(t,r));return e}maxRowIndex(t){Ee(this,t),wt(this);let e=this.get(t,0),r=[t,0];for(let i=1;i<this.columns;i++)this.get(t,i)>e&&(e=this.get(t,i),r[1]=i);return r}minRow(t){if(Ee(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)<e&&(e=this.get(t,r));return e}minRowIndex(t){Ee(this,t),wt(this);let e=this.get(t,0),r=[t,0];for(let i=1;i<this.columns;i++)this.get(t,i)<e&&(e=this.get(t,i),r[1]=i);return r}maxColumn(t){if(xe(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)>e&&(e=this.get(r,t));return e}maxColumnIndex(t){xe(this,t),wt(this);let e=this.get(0,t),r=[0,t];for(let i=1;i<this.rows;i++)this.get(i,t)>e&&(e=this.get(i,t),r[0]=i);return r}minColumn(t){if(xe(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)<e&&(e=this.get(r,t));return e}minColumnIndex(t){xe(this,t),wt(this);let e=this.get(0,t),r=[0,t];for(let i=1;i<this.rows;i++)this.get(i,t)<e&&(e=this.get(i,t),r[0]=i);return r}diag(){let t=Math.min(this.rows,this.columns),e=[];for(let r=0;r<t;r++)e.push(this.get(r,r));return e}norm(t="frobenius"){switch(t){case"max":return this.max();case"frobenius":return Math.sqrt(this.dot(this));default:throw new RangeError(`unknown norm type: ${t}`)}}cumulativeSum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t+=this.get(e,r),this.set(e,r,t);return this}dot(t){Y.isMatrix(t)&&(t=t.to1DArray());let e=this.to1DArray();if(e.length!==t.length)throw new RangeError("vectors do not have the same size");let r=0;for(let i=0;i<e.length;i++)r+=e[i]*t[i];return r}mmul(t){t=j.checkMatrix(t);let e=this.rows,r=this.columns,i=t.columns,s=new j(e,i),o=new Float64Array(r);for(let a=0;a<i;a++){for(let u=0;u<r;u++)o[u]=t.get(u,a);for(let u=0;u<e;u++){let c=0;for(let f=0;f<r;f++)c+=this.get(u,f)*o[f];s.set(u,a,c)}}return s}mpow(t){if(!this.isSquare())throw new RangeError("Matrix must be square");if(!Number.isInteger(t)||t<0)throw new RangeError("Exponent must be a non-negative integer");let e=j.eye(this.rows),r=this;for(let i=t;i>=1;i/=2)i&1&&(e=e.mmul(r)),r=r.mmul(r);return e}strassen2x2(t){t=j.checkMatrix(t);let e=new j(2,2);const r=this.get(0,0),i=t.get(0,0),s=this.get(0,1),o=t.get(0,1),a=this.get(1,0),u=t.get(1,0),c=this.get(1,1),f=t.get(1,1),l=(r+c)*(i+f),h=(a+c)*i,g=r*(o-f),p=c*(u-i),v=(r+s)*f,m=(a-r)*(i+o),d=(s-c)*(u+f),y=l+p-v+d,w=g+v,b=h+p,x=l-h+g+m;return e.set(0,0,y),e.set(0,1,w),e.set(1,0,b),e.set(1,1,x),e}strassen3x3(t){t=j.checkMatrix(t);let e=new j(3,3);const r=this.get(0,0),i=this.get(0,1),s=this.get(0,2),o=this.get(1,0),a=this.get(1,1),u=this.get(1,2),c=this.get(2,0),f=this.get(2,1),l=this.get(2,2),h=t.get(0,0),g=t.get(0,1),p=t.get(0,2),v=t.get(1,0),m=t.get(1,1),d=t.get(1,2),y=t.get(2,0),w=t.get(2,1),b=t.get(2,2),x=(r+i+s-o-a-f-l)*m,M=(r-o)*(-g+m),N=a*(-h+g+v-m-d-y+b),E=(-r+o+a)*(h-g+m),O=(o+a)*(-h+g),_=r*h,S=(-r+c+f)*(h-p+d),q=(-r+c)*(p-d),R=(c+f)*(-h+p),T=(r+i+s-a-u-c-f)*d,I=f*(-h+p+v-m-d-y+w),k=(-s+f+l)*(m+y-w),F=(s-l)*(m-w),A=s*y,C=(f+l)*(-y+w),D=(-s+a+u)*(d+y-b),z=(s-u)*(d-b),U=(a+u)*(-y+b),P=i*v,$=u*w,B=o*p,Z=c*g,G=l*b,le=_+A+P,_e=x+E+O+_+k+A+C,ec=_+S+R+T+A+D+U,tc=M+N+E+_+A+D+z,rc=M+E+O+_+$,nc=A+D+z+U+B,ic=_+S+q+I+k+F+A,H=k+F+A+C+Z,Ot=_+S+q+R+G;return e.set(0,0,le),e.set(0,1,_e),e.set(0,2,ec),e.set(1,0,tc),e.set(1,1,rc),e.set(1,2,nc),e.set(2,0,ic),e.set(2,1,H),e.set(2,2,Ot),e}mmulStrassen(t){t=j.checkMatrix(t);let e=this.clone(),r=e.rows,i=e.columns,s=t.rows,o=t.columns;i!==s&&console.warn(`Multiplying ${r} x ${i} and ${s} x ${o} matrix: dimensions do not match.`);function a(l,h,g){let p=l.rows,v=l.columns;if(p===h&&v===g)return l;{let m=Y.zeros(h,g);return m=m.setSubMatrix(l,0,0),m}}let u=Math.max(r,s),c=Math.max(i,o);e=a(e,u,c),t=a(t,u,c);function f(l,h,g,p){if(g<=512||p<=512)return l.mmul(h);g%2===1&&p%2===1?(l=a(l,g+1,p+1),h=a(h,g+1,p+1)):g%2===1?(l=a(l,g+1,p),h=a(h,g+1,p)):p%2===1&&(l=a(l,g,p+1),h=a(h,g,p+1));let v=parseInt(l.rows/2,10),m=parseInt(l.columns/2,10),d=l.subMatrix(0,v-1,0,m-1),y=h.subMatrix(0,v-1,0,m-1),w=l.subMatrix(0,v-1,m,l.columns-1),b=h.subMatrix(0,v-1,m,h.columns-1),x=l.subMatrix(v,l.rows-1,0,m-1),M=h.subMatrix(v,h.rows-1,0,m-1),N=l.subMatrix(v,l.rows-1,m,l.columns-1),E=h.subMatrix(v,h.rows-1,m,h.columns-1),O=f(Y.add(d,N),Y.add(y,E),v,m),_=f(Y.add(x,N),y,v,m),S=f(d,Y.sub(b,E),v,m),q=f(N,Y.sub(M,y),v,m),R=f(Y.add(d,w),E,v,m),T=f(Y.sub(x,d),Y.add(y,b),v,m),I=f(Y.sub(w,N),Y.add(M,E),v,m),k=Y.add(O,q);k.sub(R),k.add(I);let F=Y.add(S,R),A=Y.add(_,q),C=Y.sub(O,_);C.add(S),C.add(T);let D=Y.zeros(2*k.rows,2*k.columns);return D=D.setSubMatrix(k,0,0),D=D.setSubMatrix(F,k.rows,0),D=D.setSubMatrix(A,0,k.columns),D=D.setSubMatrix(C,k.rows,k.columns),D.subMatrix(0,g-1,0,p-1)}return f(e,t,u,c)}scaleRows(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let i=new j(this.rows,this.columns);for(let s=0;s<this.rows;s++){const o=this.getRow(s);o.length>0&&uf(o,{min:e,max:r,output:o}),i.setRow(s,o)}return i}scaleColumns(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let i=new j(this.rows,this.columns);for(let s=0;s<this.columns;s++){const o=this.getColumn(s);o.length&&uf(o,{min:e,max:r,output:o}),i.setColumn(s,o)}return i}flipRows(){const t=Math.ceil(this.columns/2);for(let e=0;e<this.rows;e++)for(let r=0;r<t;r++){let i=this.get(e,r),s=this.get(e,this.columns-1-r);this.set(e,r,s),this.set(e,this.columns-1-r,i)}return this}flipColumns(){const t=Math.ceil(this.rows/2);for(let e=0;e<this.columns;e++)for(let r=0;r<t;r++){let i=this.get(r,e),s=this.get(this.rows-1-r,e);this.set(r,e,s),this.set(this.rows-1-r,e,i)}return this}kroneckerProduct(t){t=j.checkMatrix(t);let e=this.rows,r=this.columns,i=t.rows,s=t.columns,o=new j(e*i,r*s);for(let a=0;a<e;a++)for(let u=0;u<r;u++)for(let c=0;c<i;c++)for(let f=0;f<s;f++)o.set(i*a+c,s*u+f,this.get(a,u)*t.get(c,f));return o}kroneckerSum(t){if(t=j.checkMatrix(t),!this.isSquare()||!t.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let e=this.rows,r=t.rows,i=this.kroneckerProduct(j.eye(r,r)),s=j.eye(e,e).kroneckerProduct(t);return i.add(s)}transpose(){let t=new j(this.columns,this.rows);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.set(r,e,this.get(e,r));return t}sortRows(t=hf){for(let e=0;e<this.rows;e++)this.setRow(e,this.getRow(e).sort(t));return this}sortColumns(t=hf){for(let e=0;e<this.columns;e++)this.setColumn(e,this.getColumn(e).sort(t));return this}subMatrix(t,e,r,i){Mn(this,t,e,r,i);let s=new j(e-t+1,i-r+1);for(let o=t;o<=e;o++)for(let a=r;a<=i;a++)s.set(o-t,a-r,this.get(o,a));return s}subMatrixRow(t,e,r){if(e===void 0&&(e=0),r===void 0&&(r=this.columns-1),e>r||e<0||e>=this.columns||r<0||r>=this.columns)throw new RangeError("Argument out of range");let i=new j(t.length,r-e+1);for(let s=0;s<t.length;s++)for(let o=e;o<=r;o++){if(t[s]<0||t[s]>=this.rows)throw new RangeError(`Row index out of range: ${t[s]}`);i.set(s,o-e,this.get(t[s],o))}return i}subMatrixColumn(t,e,r){if(e===void 0&&(e=0),r===void 0&&(r=this.rows-1),e>r||e<0||e>=this.rows||r<0||r>=this.rows)throw new RangeError("Argument out of range");let i=new j(r-e+1,t.length);for(let s=0;s<t.length;s++)for(let o=e;o<=r;o++){if(t[s]<0||t[s]>=this.columns)throw new RangeError(`Column index out of range: ${t[s]}`);i.set(o-e,s,this.get(o,t[s]))}return i}setSubMatrix(t,e,r){if(t=j.checkMatrix(t),t.isEmpty())return this;let i=e+t.rows-1,s=r+t.columns-1;Mn(this,e,i,r,s);for(let o=0;o<t.rows;o++)for(let a=0;a<t.columns;a++)this.set(e+o,r+a,t.get(o,a));return this}selection(t,e){xn(this,t),Nn(this,e);let r=new j(t.length,e.length);for(let i=0;i<t.length;i++){let s=t[i];for(let o=0;o<e.length;o++){let a=e[o];r.set(i,o,this.get(s,a))}}return r}trace(){let t=Math.min(this.rows,this.columns),e=0;for(let r=0;r<t;r++)e+=this.get(r,r);return e}clone(){return this.constructor.copy(this,new j(this.rows,this.columns))}static copy(t,e){for(const[r,i,s]of t.entries())e.set(r,i,s);return e}sum(t){switch(t){case"row":return Lw(this);case"column":return Dw(this);case void 0:return zw(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return $w(this);case"column":return Fw(this);case void 0:return Bw(this);default:throw new Error(`invalid option: ${t}`)}}mean(t){const e=this.sum(t);switch(t){case"row":{for(let r=0;r<this.rows;r++)e[r]/=this.columns;return e}case"column":{for(let r=0;r<this.columns;r++)e[r]/=this.rows;return e}case void 0:return e/this.size;default:throw new Error(`invalid option: ${t}`)}}variance(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");const{unbiased:r=!0,mean:i=this.mean(t)}=e;if(typeof r!="boolean")throw new TypeError("unbiased must be a boolean");switch(t){case"row":{if(!ge.isAnyArray(i))throw new TypeError("mean must be an array");return Uw(this,r,i)}case"column":{if(!ge.isAnyArray(i))throw new TypeError("mean must be an array");return Gw(this,r,i)}case void 0:{if(typeof i!="number")throw new TypeError("mean must be a number");return Vw(this,r,i)}default:throw new Error(`invalid option: ${t}`)}}standardDeviation(t,e){typeof t=="object"&&(e=t,t=void 0);const r=this.variance(t,e);if(t===void 0)return Math.sqrt(r);for(let i=0;i<r.length;i++)r[i]=Math.sqrt(r[i]);return r}center(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");const{center:r=this.mean(t)}=e;switch(t){case"row":{if(!ge.isAnyArray(r))throw new TypeError("center must be an array");return Ww(this,r),this}case"column":{if(!ge.isAnyArray(r))throw new TypeError("center must be an array");return Yw(this,r),this}case void 0:{if(typeof r!="number")throw new TypeError("center must be a number");return Kw(this,r),this}default:throw new Error(`invalid option: ${t}`)}}scale(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");let r=e.scale;switch(t){case"row":{if(r===void 0)r=Xw(this);else if(!ge.isAnyArray(r))throw new TypeError("scale must be an array");return Zw(this,r),this}case"column":{if(r===void 0)r=Jw(this);else if(!ge.isAnyArray(r))throw new TypeError("scale must be an array");return Qw(this,r),this}case void 0:{if(r===void 0)r=Hw(this);else if(typeof r!="number")throw new TypeError("scale must be a number");return e1(this,r),this}default:throw new Error(`invalid option: ${t}`)}}toString(t){return ff(this,t)}[Symbol.iterator](){return this.entries()}*entries(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield[t,e,this.get(t,e)]}*values(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield this.get(t,e)}}Y.prototype.klass="Matrix",typeof Symbol<"u"&&(Y.prototype[Symbol.for("nodejs.util.inspect.custom")]=kw);function hf(n,t){return n-t}function t1(n){return n.every(t=>typeof t=="number")}Y.random=Y.rand,Y.randomInt=Y.randInt,Y.diagonal=Y.diag,Y.prototype.diagonal=Y.prototype.diag,Y.identity=Y.eye,Y.prototype.negate=Y.prototype.neg,Y.prototype.tensorProduct=Y.prototype.kroneckerProduct;let j=(lt=class extends Y{constructor(e,r){super();oc(this,Qt);re(this,"data");if(lt.isMatrix(e))ac(this,Qt,uc).call(this,e.rows,e.columns),lt.copy(e,this);else if(Number.isInteger(e)&&e>=0)ac(this,Qt,uc).call(this,e,r);else if(ge.isAnyArray(e)){const i=e;if(e=i.length,r=e?i[0].length:0,typeof r!="number")throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let s=0;s<e;s++){if(i[s].length!==r)throw new RangeError("Inconsistent array dimensions");if(!t1(i[s]))throw new TypeError("Input data contains non-numeric values");this.data.push(Float64Array.from(i[s]))}this.rows=e,this.columns=r}else throw new TypeError("First argument must be a positive number or an array")}set(e,r,i){return this.data[e][r]=i,this}get(e,r){return this.data[e][r]}removeRow(e){return Ee(this,e),this.data.splice(e,1),this.rows-=1,this}addRow(e,r){return r===void 0&&(r=e,e=this.rows),Ee(this,e,!0),r=Float64Array.from(mt(this,r)),this.data.splice(e,0,r),this.rows+=1,this}removeColumn(e){xe(this,e);for(let r=0;r<this.rows;r++){const i=new Float64Array(this.columns-1);for(let s=0;s<e;s++)i[s]=this.data[r][s];for(let s=e+1;s<this.columns;s++)i[s-1]=this.data[r][s];this.data[r]=i}return this.columns-=1,this}addColumn(e,r){typeof r>"u"&&(r=e,e=this.columns),xe(this,e,!0),r=yt(this,r);for(let i=0;i<this.rows;i++){const s=new Float64Array(this.columns+1);let o=0;for(;o<e;o++)s[o]=this.data[i][o];for(s[o++]=r[i];o<this.columns+1;o++)s[o]=this.data[i][o-1];this.data[i]=s}return this.columns+=1,this}},Qt=new WeakSet,uc=function(e,r){if(this.data=[],Number.isInteger(r)&&r>=0)for(let i=0;i<e;i++)this.data.push(new Float64Array(r));else throw new TypeError("nColumns must be a positive integer");this.rows=e,this.columns=r},lt);Pw(Y,j);const Xr=class Xr extends Y{constructor(e){super();oc(this,fe);if(j.isMatrix(e)){if(!e.isSymmetric())throw new TypeError("not symmetric data");Hr(this,fe,j.copy(e,new j(e.rows,e.rows)))}else if(Number.isInteger(e)&&e>=0)Hr(this,fe,new j(e,e));else if(Hr(this,fe,new j(e)),!this.isSymmetric())throw new TypeError("not symmetric data")}get size(){return Oe(this,fe).size}get rows(){return Oe(this,fe).rows}get columns(){return Oe(this,fe).columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(e){return j.isMatrix(e)&&e.klassType==="SymmetricMatrix"}static zeros(e){return new this(e)}static ones(e){return new this(e).fill(1)}clone(){const e=new Xr(this.diagonalSize);for(const[r,i,s]of this.upperRightEntries())e.set(r,i,s);return e}toMatrix(){return new j(this)}get(e,r){return Oe(this,fe).get(e,r)}set(e,r,i){return Oe(this,fe).set(e,r,i),Oe(this,fe).set(r,e,i),this}removeCross(e){return Oe(this,fe).removeRow(e),Oe(this,fe).removeColumn(e),this}addCross(e,r){r===void 0&&(r=e,e=this.diagonalSize);const i=r.slice();return i.splice(e,1),Oe(this,fe).addRow(e,i),Oe(this,fe).addColumn(e,r),this}applyMask(e){if(e.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const r=[];for(const[i,s]of e.entries())s||r.push(i);r.reverse();for(const i of r)this.removeCross(i);return this}toCompact(){const{diagonalSize:e}=this,r=new Array(e*(e+1)/2);for(let i=0,s=0,o=0;o<r.length;o++)r[o]=this.get(s,i),++i>=e&&(i=++s);return r}static fromCompact(e){const r=e.length,i=(Math.sqrt(8*r+1)-1)/2;if(!Number.isInteger(i))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(e)}`);const s=new Xr(i);for(let o=0,a=0,u=0;u<r;u++)s.set(o,a,e[u]),++o>=i&&(o=++a);return s}*upperRightEntries(){for(let e=0,r=0;e<this.diagonalSize;void 0){const i=this.get(e,r);yield[e,r,i],++r>=this.diagonalSize&&(r=++e)}}*upperRightValues(){for(let e=0,r=0;e<this.diagonalSize;void 0)yield this.get(e,r),++r>=this.diagonalSize&&(r=++e)}};fe=new WeakMap;let nt=Xr;nt.prototype.klassType="SymmetricMatrix";class hr extends nt{static isDistanceMatrix(t){return nt.isSymmetricMatrix(t)&&t.klassSubType==="DistanceMatrix"}constructor(t){if(super(t),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(t,e,r){return t===e&&(r=0),super.set(t,e,r)}addCross(t,e){return e===void 0&&(e=t,t=this.diagonalSize),e=e.slice(),e[t]=0,super.addCross(t,e)}toSymmetricMatrix(){return new nt(this)}clone(){const t=new hr(this.diagonalSize);for(const[e,r,i]of this.upperRightEntries())e!==r&&t.set(e,r,i);return t}toCompact(){const{diagonalSize:t}=this,e=(t-1)*t/2,r=new Array(e);for(let i=1,s=0,o=0;o<r.length;o++)r[o]=this.get(s,i),++i>=t&&(i=++s+1);return r}static fromCompact(t){const e=t.length;if(e===0)return new this(0);const r=(Math.sqrt(8*e+1)+1)/2;if(!Number.isInteger(r))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(t)}`);const i=new this(r);for(let s=1,o=0,a=0;a<e;a++)i.set(s,o,t[a]),++s>=r&&(s=++o+1);return i}}hr.prototype.klassSubType="DistanceMatrix";class je extends Y{constructor(t,e,r){super(),this.matrix=t,this.rows=e,this.columns=r}}class r1 extends je{constructor(t,e){xe(t,e),super(t,t.rows,1),this.column=e}set(t,e,r){return this.matrix.set(t,this.column,r),this}get(t){return this.matrix.get(t,this.column)}}class n1 extends je{constructor(t,e){Nn(t,e),super(t,t.rows,e.length),this.columnIndices=e}set(t,e,r){return this.matrix.set(t,this.columnIndices[e],r),this}get(t,e){return this.matrix.get(t,this.columnIndices[e])}}class i1 extends je{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(t,this.columns-e-1,r),this}get(t,e){return this.matrix.get(t,this.columns-e-1)}}class s1 extends je{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(this.rows-t-1,e,r),this}get(t,e){return this.matrix.get(this.rows-t-1,e)}}class o1 extends je{constructor(t,e){Ee(t,e),super(t,1,t.columns),this.row=e}set(t,e,r){return this.matrix.set(this.row,e,r),this}get(t,e){return this.matrix.get(this.row,e)}}class a1 extends je{constructor(t,e){xn(t,e),super(t,e.length,t.columns),this.rowIndices=e}set(t,e,r){return this.matrix.set(this.rowIndices[t],e,r),this}get(t,e){return this.matrix.get(this.rowIndices[t],e)}}class dr extends je{constructor(t,e,r){xn(t,e),Nn(t,r),super(t,e.length,r.length),this.rowIndices=e,this.columnIndices=r}set(t,e,r){return this.matrix.set(this.rowIndices[t],this.columnIndices[e],r),this}get(t,e){return this.matrix.get(this.rowIndices[t],this.columnIndices[e])}}class u1 extends je{constructor(t,e,r,i,s){Mn(t,e,r,i,s),super(t,r-e+1,s-i+1),this.startRow=e,this.startColumn=i}set(t,e,r){return this.matrix.set(this.startRow+t,this.startColumn+e,r),this}get(t,e){return this.matrix.get(this.startRow+t,this.startColumn+e)}}class c1 extends je{constructor(t){super(t,t.columns,t.rows)}set(t,e,r){return this.matrix.set(e,t,r),this}get(t,e){return this.matrix.get(e,t)}}class df extends Y{constructor(t,e={}){const{rows:r=1}=e;if(t.length%r!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=r,this.columns=t.length/r,this.data=t}set(t,e,r){let i=this._calculateIndex(t,e);return this.data[i]=r,this}get(t,e){let r=this._calculateIndex(t,e);return this.data[r]}_calculateIndex(t,e){return t*this.columns+e}}class we extends Y{constructor(t){super(),this.data=t,this.rows=t.length,this.columns=t[0].length}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}}function f1(n,t){if(ge.isAnyArray(n))return n[0]&&ge.isAnyArray(n[0])?new we(n):new df(n,t);throw new Error("the argument is not an array")}class gr{constructor(t){t=we.checkMatrix(t);let e=t.clone(),r=e.rows,i=e.columns,s=new Float64Array(r),o=1,a,u,c,f,l,h,g,p,v;for(a=0;a<r;a++)s[a]=a;for(p=new Float64Array(r),u=0;u<i;u++){for(a=0;a<r;a++)p[a]=e.get(a,u);for(a=0;a<r;a++){for(v=Math.min(a,u),l=0,c=0;c<v;c++)l+=e.get(a,c)*p[c];p[a]-=l,e.set(a,u,p[a])}for(f=u,a=u+1;a<r;a++)Math.abs(p[a])>Math.abs(p[f])&&(f=a);if(f!==u){for(c=0;c<i;c++)h=e.get(f,c),e.set(f,c,e.get(u,c)),e.set(u,c,h);g=s[f],s[f]=s[u],s[u]=g,o=-o}if(u<r&&e.get(u,u)!==0)for(a=u+1;a<r;a++)e.set(a,u,e.get(a,u)/e.get(u,u))}this.LU=e,this.pivotVector=s,this.pivotSign=o}isSingular(){let t=this.LU,e=t.columns;for(let r=0;r<e;r++)if(t.get(r,r)===0)return!0;return!1}solve(t){t=j.checkMatrix(t);let e=this.LU;if(e.rows!==t.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let i=t.columns,s=t.subMatrixRow(this.pivotVector,0,i-1),o=e.columns,a,u,c;for(c=0;c<o;c++)for(a=c+1;a<o;a++)for(u=0;u<i;u++)s.set(a,u,s.get(a,u)-s.get(c,u)*e.get(a,c));for(c=o-1;c>=0;c--){for(u=0;u<i;u++)s.set(c,u,s.get(c,u)/e.get(c,c));for(a=0;a<c;a++)for(u=0;u<i;u++)s.set(a,u,s.get(a,u)-s.get(c,u)*e.get(a,c))}return s}get determinant(){let t=this.LU;if(!t.isSquare())throw new Error("Matrix must be square");let e=this.pivotSign,r=t.columns;for(let i=0;i<r;i++)e*=t.get(i,i);return e}get lowerTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,i=new j(e,r);for(let s=0;s<e;s++)for(let o=0;o<r;o++)s>o?i.set(s,o,t.get(s,o)):s===o?i.set(s,o,1):i.set(s,o,0);return i}get upperTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,i=new j(e,r);for(let s=0;s<e;s++)for(let o=0;o<r;o++)s<=o?i.set(s,o,t.get(s,o)):i.set(s,o,0);return i}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function Ce(n,t){let e=0;return Math.abs(n)>Math.abs(t)?(e=t/n,Math.abs(n)*Math.sqrt(1+e*e)):t!==0?(e=n/t,Math.abs(t)*Math.sqrt(1+e*e)):0}class Sn{constructor(t){t=we.checkMatrix(t);let e=t.clone(),r=t.rows,i=t.columns,s=new Float64Array(i),o,a,u,c;for(u=0;u<i;u++){let f=0;for(o=u;o<r;o++)f=Ce(f,e.get(o,u));if(f!==0){for(e.get(u,u)<0&&(f=-f),o=u;o<r;o++)e.set(o,u,e.get(o,u)/f);for(e.set(u,u,e.get(u,u)+1),a=u+1;a<i;a++){for(c=0,o=u;o<r;o++)c+=e.get(o,u)*e.get(o,a);for(c=-c/e.get(u,u),o=u;o<r;o++)e.set(o,a,e.get(o,a)+c*e.get(o,u))}}s[u]=-f}this.QR=e,this.Rdiag=s}solve(t){t=j.checkMatrix(t);let e=this.QR,r=e.rows;if(t.rows!==r)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let i=t.columns,s=t.clone(),o=e.columns,a,u,c,f;for(c=0;c<o;c++)for(u=0;u<i;u++){for(f=0,a=c;a<r;a++)f+=e.get(a,c)*s.get(a,u);for(f=-f/e.get(c,c),a=c;a<r;a++)s.set(a,u,s.get(a,u)+f*e.get(a,c))}for(c=o-1;c>=0;c--){for(u=0;u<i;u++)s.set(c,u,s.get(c,u)/this.Rdiag[c]);for(a=0;a<c;a++)for(u=0;u<i;u++)s.set(a,u,s.get(a,u)-s.get(c,u)*e.get(a,c))}return s.subMatrix(0,o-1,0,i-1)}isFullRank(){let t=this.QR.columns;for(let e=0;e<t;e++)if(this.Rdiag[e]===0)return!1;return!0}get upperTriangularMatrix(){let t=this.QR,e=t.columns,r=new j(e,e),i,s;for(i=0;i<e;i++)for(s=0;s<e;s++)i<s?r.set(i,s,t.get(i,s)):i===s?r.set(i,s,this.Rdiag[i]):r.set(i,s,0);return r}get orthogonalMatrix(){let t=this.QR,e=t.rows,r=t.columns,i=new j(e,r),s,o,a,u;for(a=r-1;a>=0;a--){for(s=0;s<e;s++)i.set(s,a,0);for(i.set(a,a,1),o=a;o<r;o++)if(t.get(a,a)!==0){for(u=0,s=a;s<e;s++)u+=t.get(s,a)*i.get(s,o);for(u=-u/t.get(a,a),s=a;s<e;s++)i.set(s,o,i.get(s,o)+u*t.get(s,a))}}return i}}let bt=class{constructor(t,e={}){if(t=we.checkMatrix(t),t.isEmpty())throw new Error("Matrix must be non-empty");let r=t.rows,i=t.columns;const{computeLeftSingularVectors:s=!0,computeRightSingularVectors:o=!0,autoTranspose:a=!1}=e;let u=!!s,c=!!o,f=!1,l;if(r<i)if(!a)l=t.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else{l=t.transpose(),r=l.rows,i=l.columns,f=!0;let _=u;u=c,c=_}else l=t.clone();let h=Math.min(r,i),g=Math.min(r+1,i),p=new Float64Array(g),v=new j(r,h),m=new j(i,i),d=new Float64Array(i),y=new Float64Array(r),w=new Float64Array(g);for(let _=0;_<g;_++)w[_]=_;let b=Math.min(r-1,i),x=Math.max(0,Math.min(i-2,r)),M=Math.max(b,x);for(let _=0;_<M;_++){if(_<b){p[_]=0;for(let S=_;S<r;S++)p[_]=Ce(p[_],l.get(S,_));if(p[_]!==0){l.get(_,_)<0&&(p[_]=-p[_]);for(let S=_;S<r;S++)l.set(S,_,l.get(S,_)/p[_]);l.set(_,_,l.get(_,_)+1)}p[_]=-p[_]}for(let S=_+1;S<i;S++){if(_<b&&p[_]!==0){let q=0;for(let R=_;R<r;R++)q+=l.get(R,_)*l.get(R,S);q=-q/l.get(_,_);for(let R=_;R<r;R++)l.set(R,S,l.get(R,S)+q*l.get(R,_))}d[S]=l.get(_,S)}if(u&&_<b)for(let S=_;S<r;S++)v.set(S,_,l.get(S,_));if(_<x){d[_]=0;for(let S=_+1;S<i;S++)d[_]=Ce(d[_],d[S]);if(d[_]!==0){d[_+1]<0&&(d[_]=0-d[_]);for(let S=_+1;S<i;S++)d[S]/=d[_];d[_+1]+=1}if(d[_]=-d[_],_+1<r&&d[_]!==0){for(let S=_+1;S<r;S++)y[S]=0;for(let S=_+1;S<r;S++)for(let q=_+1;q<i;q++)y[S]+=d[q]*l.get(S,q);for(let S=_+1;S<i;S++){let q=-d[S]/d[_+1];for(let R=_+1;R<r;R++)l.set(R,S,l.get(R,S)+q*y[R])}}if(c)for(let S=_+1;S<i;S++)m.set(S,_,d[S])}}let N=Math.min(i,r+1);if(b<i&&(p[b]=l.get(b,b)),r<N&&(p[N-1]=0),x+1<N&&(d[x]=l.get(x,N-1)),d[N-1]=0,u){for(let _=b;_<h;_++){for(let S=0;S<r;S++)v.set(S,_,0);v.set(_,_,1)}for(let _=b-1;_>=0;_--)if(p[_]!==0){for(let S=_+1;S<h;S++){let q=0;for(let R=_;R<r;R++)q+=v.get(R,_)*v.get(R,S);q=-q/v.get(_,_);for(let R=_;R<r;R++)v.set(R,S,v.get(R,S)+q*v.get(R,_))}for(let S=_;S<r;S++)v.set(S,_,-v.get(S,_));v.set(_,_,1+v.get(_,_));for(let S=0;S<_-1;S++)v.set(S,_,0)}else{for(let S=0;S<r;S++)v.set(S,_,0);v.set(_,_,1)}}if(c)for(let _=i-1;_>=0;_--){if(_<x&&d[_]!==0)for(let S=_+1;S<i;S++){let q=0;for(let R=_+1;R<i;R++)q+=m.get(R,_)*m.get(R,S);q=-q/m.get(_+1,_);for(let R=_+1;R<i;R++)m.set(R,S,m.get(R,S)+q*m.get(R,_))}for(let S=0;S<i;S++)m.set(S,_,0);m.set(_,_,1)}let E=N-1,O=Number.EPSILON;for(;N>0;){let _,S;for(_=N-2;_>=-1&&_!==-1;_--){const q=Number.MIN_VALUE+O*Math.abs(p[_]+Math.abs(p[_+1]));if(Math.abs(d[_])<=q||Number.isNaN(d[_])){d[_]=0;break}}if(_===N-2)S=4;else{let q;for(q=N-1;q>=_&&q!==_;q--){let R=(q!==N?Math.abs(d[q]):0)+(q!==_+1?Math.abs(d[q-1]):0);if(Math.abs(p[q])<=O*R){p[q]=0;break}}q===_?S=3:q===N-1?S=1:(S=2,_=q)}switch(_++,S){case 1:{let q=d[N-2];d[N-2]=0;for(let R=N-2;R>=_;R--){let T=Ce(p[R],q),I=p[R]/T,k=q/T;if(p[R]=T,R!==_&&(q=-k*d[R-1],d[R-1]=I*d[R-1]),c)for(let F=0;F<i;F++)T=I*m.get(F,R)+k*m.get(F,N-1),m.set(F,N-1,-k*m.get(F,R)+I*m.get(F,N-1)),m.set(F,R,T)}break}case 2:{let q=d[_-1];d[_-1]=0;for(let R=_;R<N;R++){let T=Ce(p[R],q),I=p[R]/T,k=q/T;if(p[R]=T,q=-k*d[R],d[R]=I*d[R],u)for(let F=0;F<r;F++)T=I*v.get(F,R)+k*v.get(F,_-1),v.set(F,_-1,-k*v.get(F,R)+I*v.get(F,_-1)),v.set(F,R,T)}break}case 3:{const q=Math.max(Math.abs(p[N-1]),Math.abs(p[N-2]),Math.abs(d[N-2]),Math.abs(p[_]),Math.abs(d[_])),R=p[N-1]/q,T=p[N-2]/q,I=d[N-2]/q,k=p[_]/q,F=d[_]/q,A=((T+R)*(T-R)+I*I)/2,C=R*I*(R*I);let D=0;(A!==0||C!==0)&&(A<0?D=0-Math.sqrt(A*A+C):D=Math.sqrt(A*A+C),D=C/(A+D));let z=(k+R)*(k-R)+D,U=k*F;for(let P=_;P<N-1;P++){let $=Ce(z,U);$===0&&($=Number.MIN_VALUE);let B=z/$,Z=U/$;if(P!==_&&(d[P-1]=$),z=B*p[P]+Z*d[P],d[P]=B*d[P]-Z*p[P],U=Z*p[P+1],p[P+1]=B*p[P+1],c)for(let G=0;G<i;G++)$=B*m.get(G,P)+Z*m.get(G,P+1),m.set(G,P+1,-Z*m.get(G,P)+B*m.get(G,P+1)),m.set(G,P,$);if($=Ce(z,U),$===0&&($=Number.MIN_VALUE),B=z/$,Z=U/$,p[P]=$,z=B*d[P]+Z*p[P+1],p[P+1]=-Z*d[P]+B*p[P+1],U=Z*d[P+1],d[P+1]=B*d[P+1],u&&P<r-1)for(let G=0;G<r;G++)$=B*v.get(G,P)+Z*v.get(G,P+1),v.set(G,P+1,-Z*v.get(G,P)+B*v.get(G,P+1)),v.set(G,P,$)}d[N-2]=z;break}case 4:{if(p[_]<=0&&(p[_]=p[_]<0?-p[_]:0,c))for(let q=0;q<=E;q++)m.set(q,_,-m.get(q,_));for(;_<E&&!(p[_]>=p[_+1]);){let q=p[_];if(p[_]=p[_+1],p[_+1]=q,c&&_<i-1)for(let R=0;R<i;R++)q=m.get(R,_+1),m.set(R,_+1,m.get(R,_)),m.set(R,_,q);if(u&&_<r-1)for(let R=0;R<r;R++)q=v.get(R,_+1),v.set(R,_+1,v.get(R,_)),v.set(R,_,q);_++}N--;break}}}if(f){let _=m;m=v,v=_}this.m=r,this.n=i,this.s=p,this.U=v,this.V=m}solve(t){let e=t,r=this.threshold,i=this.s.length,s=j.zeros(i,i);for(let h=0;h<i;h++)Math.abs(this.s[h])<=r?s.set(h,h,0):s.set(h,h,1/this.s[h]);let o=this.U,a=this.rightSingularVectors,u=a.mmul(s),c=a.rows,f=o.rows,l=j.zeros(c,f);for(let h=0;h<c;h++)for(let g=0;g<f;g++){let p=0;for(let v=0;v<i;v++)p+=u.get(h,v)*o.get(g,v);l.set(h,g,p)}return l.mmul(e)}solveForDiagonal(t){return this.solve(j.diag(t))}inverse(){let t=this.V,e=this.threshold,r=t.rows,i=t.columns,s=new j(r,this.s.length);for(let f=0;f<r;f++)for(let l=0;l<i;l++)Math.abs(this.s[l])>e&&s.set(f,l,t.get(f,l)/this.s[l]);let o=this.U,a=o.rows,u=o.columns,c=new j(r,a);for(let f=0;f<r;f++)for(let l=0;l<a;l++){let h=0;for(let g=0;g<u;g++)h+=s.get(f,g)*o.get(l,g);c.set(f,l,h)}return c}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let t=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,e=0,r=this.s;for(let i=0,s=r.length;i<s;i++)r[i]>t&&e++;return e}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 j.diag(this.s)}};function l1(n,t=!1){return n=we.checkMatrix(n),t?new bt(n).inverse():gf(n,j.eye(n.rows))}function gf(n,t,e=!1){return n=we.checkMatrix(n),t=we.checkMatrix(t),e?new bt(n).solve(t):n.isSquare()?new gr(n).solve(t):new Sn(n).solve(t)}function pr(n){if(n=j.checkMatrix(n),n.isSquare()){if(n.columns===0)return 1;let t,e,r,i;if(n.columns===2)return t=n.get(0,0),e=n.get(0,1),r=n.get(1,0),i=n.get(1,1),t*i-e*r;if(n.columns===3){let s,o,a;return s=new dr(n,[1,2],[1,2]),o=new dr(n,[1,2],[0,2]),a=new dr(n,[1,2],[0,1]),t=n.get(0,0),e=n.get(0,1),r=n.get(0,2),t*pr(s)-e*pr(o)+r*pr(a)}else return new gr(n).determinant}else throw Error("determinant can only be calculated for a square matrix")}function h1(n,t){let e=[];for(let r=0;r<n;r++)r!==t&&e.push(r);return e}function d1(n,t,e,r=1e-9,i=1e-9){if(n>i)return new Array(t.rows+1).fill(0);{let s=t.addRow(e,[0]);for(let o=0;o<s.rows;o++)Math.abs(s.get(o,0))<r&&s.set(o,0,0);return s.to1DArray()}}function g1(n,t={}){const{thresholdValue:e=1e-9,thresholdError:r=1e-9}=t;n=j.checkMatrix(n);let i=n.rows,s=new j(i,i);for(let o=0;o<i;o++){let a=j.columnVector(n.getRow(o)),u=n.subMatrixRow(h1(i,o)).transpose(),f=new bt(u).solve(a),l=j.sub(a,u.mmul(f)).abs().max();s.setRow(o,d1(l,f,o,e,r))}return s}function p1(n,t=Number.EPSILON){if(n=j.checkMatrix(n),n.isEmpty())return n.transpose();let e=new bt(n,{autoTranspose:!0}),r=e.leftSingularVectors,i=e.rightSingularVectors,s=e.diagonal;for(let o=0;o<s.length;o++)Math.abs(s[o])>t?s[o]=1/s[o]:s[o]=0;return i.mmul(j.diag(s).mmul(r.transpose()))}function v1(n,t=n,e={}){n=new j(n);let r=!1;if(typeof t=="object"&&!j.isMatrix(t)&&!ge.isAnyArray(t)?(e=t,t=n,r=!0):t=new j(t),n.rows!==t.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:i=!0}=e;i&&(n=n.center("column"),r||(t=t.center("column")));const s=n.transpose().mmul(t);for(let o=0;o<s.rows;o++)for(let a=0;a<s.columns;a++)s.set(o,a,s.get(o,a)*(1/(n.rows-1)));return s}function m1(n,t=n,e={}){n=new j(n);let r=!1;if(typeof t=="object"&&!j.isMatrix(t)&&!ge.isAnyArray(t)?(e=t,t=n,r=!0):t=new j(t),n.rows!==t.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:i=!0,scale:s=!0}=e;i&&(n.center("column"),r||t.center("column")),s&&(n.scale("column"),r||t.scale("column"));const o=n.standardDeviation("column",{unbiased:!0}),a=r?o:t.standardDeviation("column",{unbiased:!0}),u=n.transpose().mmul(t);for(let c=0;c<u.rows;c++)for(let f=0;f<u.columns;f++)u.set(c,f,u.get(c,f)*(1/(o[c]*a[f]))*(1/(n.rows-1)));return u}class pf{constructor(t,e={}){const{assumeSymmetric:r=!1}=e;if(t=we.checkMatrix(t),!t.isSquare())throw new Error("Matrix is not a square matrix");if(t.isEmpty())throw new Error("Matrix must be non-empty");let i=t.columns,s=new j(i,i),o=new Float64Array(i),a=new Float64Array(i),u=t,c,f,l=!1;if(r?l=!0:l=t.isSymmetric(),l){for(c=0;c<i;c++)for(f=0;f<i;f++)s.set(c,f,u.get(c,f));y1(i,a,o,s),w1(i,a,o,s)}else{let h=new j(i,i),g=new Float64Array(i);for(f=0;f<i;f++)for(c=0;c<i;c++)h.set(c,f,u.get(c,f));b1(i,h,g,s),_1(i,a,o,s,h)}this.n=i,this.e=a,this.d=o,this.V=s}get realEigenvalues(){return Array.from(this.d)}get imaginaryEigenvalues(){return Array.from(this.e)}get eigenvectorMatrix(){return this.V}get diagonalMatrix(){let t=this.n,e=this.e,r=this.d,i=new j(t,t),s,o;for(s=0;s<t;s++){for(o=0;o<t;o++)i.set(s,o,0);i.set(s,s,r[s]),e[s]>0?i.set(s,s+1,e[s]):e[s]<0&&i.set(s,s-1,e[s])}return i}}function y1(n,t,e,r){let i,s,o,a,u,c,f,l;for(u=0;u<n;u++)e[u]=r.get(n-1,u);for(a=n-1;a>0;a--){for(l=0,o=0,c=0;c<a;c++)l=l+Math.abs(e[c]);if(l===0)for(t[a]=e[a-1],u=0;u<a;u++)e[u]=r.get(a-1,u),r.set(a,u,0),r.set(u,a,0);else{for(c=0;c<a;c++)e[c]/=l,o+=e[c]*e[c];for(i=e[a-1],s=Math.sqrt(o),i>0&&(s=-s),t[a]=l*s,o=o-i*s,e[a-1]=i-s,u=0;u<a;u++)t[u]=0;for(u=0;u<a;u++){for(i=e[u],r.set(u,a,i),s=t[u]+r.get(u,u)*i,c=u+1;c<=a-1;c++)s+=r.get(c,u)*e[c],t[c]+=r.get(c,u)*i;t[u]=s}for(i=0,u=0;u<a;u++)t[u]/=o,i+=t[u]*e[u];for(f=i/(o+o),u=0;u<a;u++)t[u]-=f*e[u];for(u=0;u<a;u++){for(i=e[u],s=t[u],c=u;c<=a-1;c++)r.set(c,u,r.get(c,u)-(i*t[c]+s*e[c]));e[u]=r.get(a-1,u),r.set(a,u,0)}}e[a]=o}for(a=0;a<n-1;a++){if(r.set(n-1,a,r.get(a,a)),r.set(a,a,1),o=e[a+1],o!==0){for(c=0;c<=a;c++)e[c]=r.get(c,a+1)/o;for(u=0;u<=a;u++){for(s=0,c=0;c<=a;c++)s+=r.get(c,a+1)*r.get(c,u);for(c=0;c<=a;c++)r.set(c,u,r.get(c,u)-s*e[c])}}for(c=0;c<=a;c++)r.set(c,a+1,0)}for(u=0;u<n;u++)e[u]=r.get(n-1,u),r.set(n-1,u,0);r.set(n-1,n-1,1),t[0]=0}function w1(n,t,e,r){let i,s,o,a,u,c,f,l,h,g,p,v,m,d,y,w;for(o=1;o<n;o++)t[o-1]=t[o];t[n-1]=0;let b=0,x=0,M=Number.EPSILON;for(c=0;c<n;c++){for(x=Math.max(x,Math.abs(e[c])+Math.abs(t[c])),f=c;f<n&&!(Math.abs(t[f])<=M*x);)f++;if(f>c)do{for(i=e[c],l=(e[c+1]-i)/(2*t[c]),h=Ce(l,1),l<0&&(h=-h),e[c]=t[c]/(l+h),e[c+1]=t[c]*(l+h),g=e[c+1],s=i-e[c],o=c+2;o<n;o++)e[o]-=s;for(b=b+s,l=e[f],p=1,v=p,m=p,d=t[c+1],y=0,w=0,o=f-1;o>=c;o--)for(m=v,v=p,w=y,i=p*t[o],s=p*l,h=Ce(l,t[o]),t[o+1]=y*h,y=t[o]/h,p=l/h,l=p*e[o]-y*i,e[o+1]=s+y*(p*i+y*e[o]),u=0;u<n;u++)s=r.get(u,o+1),r.set(u,o+1,y*r.get(u,o)+p*s),r.set(u,o,p*r.get(u,o)-y*s);l=-y*w*m*d*t[c]/g,t[c]=y*l,e[c]=p*l}while(Math.abs(t[c])>M*x);e[c]=e[c]+b,t[c]=0}for(o=0;o<n-1;o++){for(u=o,l=e[o],a=o+1;a<n;a++)e[a]<l&&(u=a,l=e[a]);if(u!==o)for(e[u]=e[o],e[o]=l,a=0;a<n;a++)l=r.get(a,o),r.set(a,o,r.get(a,u)),r.set(a,u,l)}}function b1(n,t,e,r){let i=0,s=n-1,o,a,u,c,f,l,h;for(l=i+1;l<=s-1;l++){for(h=0,c=l;c<=s;c++)h=h+Math.abs(t.get(c,l-1));if(h!==0){for(u=0,c=s;c>=l;c--)e[c]=t.get(c,l-1)/h,u+=e[c]*e[c];for(a=Math.sqrt(u),e[l]>0&&(a=-a),u=u-e[l]*a,e[l]=e[l]-a,f=l;f<n;f++){for(o=0,c=s;c>=l;c--)o+=e[c]*t.get(c,f);for(o=o/u,c=l;c<=s;c++)t.set(c,f,t.get(c,f)-o*e[c])}for(c=0;c<=s;c++){for(o=0,f=s;f>=l;f--)o+=e[f]*t.get(c,f);for(o=o/u,f=l;f<=s;f++)t.set(c,f,t.get(c,f)-o*e[f])}e[l]=h*e[l],t.set(l,l-1,h*a)}}for(c=0;c<n;c++)for(f=0;f<n;f++)r.set(c,f,c===f?1:0);for(l=s-1;l>=i+1;l--)if(t.get(l,l-1)!==0){for(c=l+1;c<=s;c++)e[c]=t.get(c,l-1);for(f=l;f<=s;f++){for(a=0,c=l;c<=s;c++)a+=e[c]*r.get(c,f);for(a=a/e[l]/t.get(l,l-1),c=l;c<=s;c++)r.set(c,f,r.get(c,f)+a*e[c])}}}function _1(n,t,e,r,i){let s=n-1,o=0,a=n-1,u=Number.EPSILON,c=0,f=0,l=0,h=0,g=0,p=0,v=0,m=0,d,y,w,b,x,M,N,E,O,_,S,q,R,T,I;for(d=0;d<n;d++)for((d<o||d>a)&&(e[d]=i.get(d,d),t[d]=0),y=Math.max(d-1,0);y<n;y++)f=f+Math.abs(i.get(d,y));for(;s>=o;){for(b=s;b>o&&(p=Math.abs(i.get(b-1,b-1))+Math.abs(i.get(b,b)),p===0&&(p=f),!(Math.abs(i.get(b,b-1))<u*p));)b--;if(b===s)i.set(s,s,i.get(s,s)+c),e[s]=i.get(s,s),t[s]=0,s--,m=0;else if(b===s-1){if(N=i.get(s,s-1)*i.get(s-1,s),l=(i.get(s-1,s-1)-i.get(s,s))/2,h=l*l+N,v=Math.sqrt(Math.abs(h)),i.set(s,s,i.get(s,s)+c),i.set(s-1,s-1,i.get(s-1,s-1)+c),E=i.get(s,s),h>=0){for(v=l>=0?l+v:l-v,e[s-1]=E+v,e[s]=e[s-1],v!==0&&(e[s]=E-N/v),t[s-1]=0,t[s]=0,E=i.get(s,s-1),p=Math.abs(E)+Math.abs(v),l=E/p,h=v/p,g=Math.sqrt(l*l+h*h),l=l/g,h=h/g,y=s-1;y<n;y++)v=i.get(s-1,y),i.set(s-1,y,h*v+l*i.get(s,y)),i.set(s,y,h*i.get(s,y)-l*v);for(d=0;d<=s;d++)v=i.get(d,s-1),i.set(d,s-1,h*v+l*i.get(d,s)),i.set(d,s,h*i.get(d,s)-l*v);for(d=o;d<=a;d++)v=r.get(d,s-1),r.set(d,s-1,h*v+l*r.get(d,s)),r.set(d,s,h*r.get(d,s)-l*v)}else e[s-1]=E+l,e[s]=E+l,t[s-1]=v,t[s]=-v;s=s-2,m=0}else{if(E=i.get(s,s),O=0,N=0,b<s&&(O=i.get(s-1,s-1),N=i.get(s,s-1)*i.get(s-1,s)),m===10){for(c+=E,d=o;d<=s;d++)i.set(d,d,i.get(d,d)-E);p=Math.abs(i.get(s,s-1))+Math.abs(i.get(s-1,s-2)),E=O=.75*p,N=-.4375*p*p}if(m===30&&(p=(O-E)/2,p=p*p+N,p>0)){for(p=Math.sqrt(p),O<E&&(p=-p),p=E-N/((O-E)/2+p),d=o;d<=s;d++)i.set(d,d,i.get(d,d)-p);c+=p,E=O=N=.964}for(m=m+1,x=s-2;x>=b&&(v=i.get(x,x),g=E-v,p=O-v,l=(g*p-N)/i.get(x+1,x)+i.get(x,x+1),h=i.get(x+1,x+1)-v-g-p,g=i.get(x+2,x+1),p=Math.abs(l)+Math.abs(h)+Math.abs(g),l=l/p,h=h/p,g=g/p,!(x===b||Math.abs(i.get(x,x-1))*(Math.abs(h)+Math.abs(g))<u*(Math.abs(l)*(Math.abs(i.get(x-1,x-1))+Math.abs(v)+Math.abs(i.get(x+1,x+1))))));)x--;for(d=x+2;d<=s;d++)i.set(d,d-2,0),d>x+2&&i.set(d,d-3,0);for(w=x;w<=s-1&&(T=w!==s-1,w!==x&&(l=i.get(w,w-1),h=i.get(w+1,w-1),g=T?i.get(w+2,w-1):0,E=Math.abs(l)+Math.abs(h)+Math.abs(g),E!==0&&(l=l/E,h=h/E,g=g/E)),E!==0);w++)if(p=Math.sqrt(l*l+h*h+g*g),l<0&&(p=-p),p!==0){for(w!==x?i.set(w,w-1,-p*E):b!==x&&i.set(w,w-1,-i.get(w,w-1)),l=l+p,E=l/p,O=h/p,v=g/p,h=h/l,g=g/l,y=w;y<n;y++)l=i.get(w,y)+h*i.get(w+1,y),T&&(l=l+g*i.get(w+2,y),i.set(w+2,y,i.get(w+2,y)-l*v)),i.set(w,y,i.get(w,y)-l*E),i.set(w+1,y,i.get(w+1,y)-l*O);for(d=0;d<=Math.min(s,w+3);d++)l=E*i.get(d,w)+O*i.get(d,w+1),T&&(l=l+v*i.get(d,w+2),i.set(d,w+2,i.get(d,w+2)-l*g)),i.set(d,w,i.get(d,w)-l),i.set(d,w+1,i.get(d,w+1)-l*h);for(d=o;d<=a;d++)l=E*r.get(d,w)+O*r.get(d,w+1),T&&(l=l+v*r.get(d,w+2),r.set(d,w+2,r.get(d,w+2)-l*g)),r.set(d,w,r.get(d,w)-l),r.set(d,w+1,r.get(d,w+1)-l*h)}}}if(f!==0){for(s=n-1;s>=0;s--)if(l=e[s],h=t[s],h===0)for(b=s,i.set(s,s,1),d=s-1;d>=0;d--){for(N=i.get(d,d)-l,g=0,y=b;y<=s;y++)g=g+i.get(d,y)*i.get(y,s);if(t[d]<0)v=N,p=g;else if(b=d,t[d]===0?i.set(d,s,N!==0?-g/N:-g/(u*f)):(E=i.get(d,d+1),O=i.get(d+1,d),h=(e[d]-l)*(e[d]-l)+t[d]*t[d],M=(E*p-v*g)/h,i.set(d,s,M),i.set(d+1,s,Math.abs(E)>Math.abs(v)?(-g-N*M)/E:(-p-O*M)/v)),M=Math.abs(i.get(d,s)),u*M*M>1)for(y=d;y<=s;y++)i.set(y,s,i.get(y,s)/M)}else if(h<0)for(b=s-1,Math.abs(i.get(s,s-1))>Math.abs(i.get(s-1,s))?(i.set(s-1,s-1,h/i.get(s,s-1)),i.set(s-1,s,-(i.get(s,s)-l)/i.get(s,s-1))):(I=vr(0,-i.get(s-1,s),i.get(s-1,s-1)-l,h),i.set(s-1,s-1,I[0]),i.set(s-1,s,I[1])),i.set(s,s-1,0),i.set(s,s,1),d=s-2;d>=0;d--){for(_=0,S=0,y=b;y<=s;y++)_=_+i.get(d,y)*i.get(y,s-1),S=S+i.get(d,y)*i.get(y,s);if(N=i.get(d,d)-l,t[d]<0)v=N,g=_,p=S;else if(b=d,t[d]===0?(I=vr(-_,-S,N,h),i.set(d,s-1,I[0]),i.set(d,s,I[1])):(E=i.get(d,d+1),O=i.get(d+1,d),q=(e[d]-l)*(e[d]-l)+t[d]*t[d]-h*h,R=(e[d]-l)*2*h,q===0&&R===0&&(q=u*f*(Math.abs(N)+Math.abs(h)+Math.abs(E)+Math.abs(O)+Math.abs(v))),I=vr(E*g-v*_+h*S,E*p-v*S-h*_,q,R),i.set(d,s-1,I[0]),i.set(d,s,I[1]),Math.abs(E)>Math.abs(v)+Math.abs(h)?(i.set(d+1,s-1,(-_-N*i.get(d,s-1)+h*i.get(d,s))/E),i.set(d+1,s,(-S-N*i.get(d,s)-h*i.get(d,s-1))/E)):(I=vr(-g-O*i.get(d,s-1),-p-O*i.get(d,s),v,h),i.set(d+1,s-1,I[0]),i.set(d+1,s,I[1]))),M=Math.max(Math.abs(i.get(d,s-1)),Math.abs(i.get(d,s))),u*M*M>1)for(y=d;y<=s;y++)i.set(y,s-1,i.get(y,s-1)/M),i.set(y,s,i.get(y,s)/M)}for(d=0;d<n;d++)if(d<o||d>a)for(y=d;y<n;y++)r.set(d,y,i.get(d,y));for(y=n-1;y>=o;y--)for(d=o;d<=a;d++){for(v=0,w=o;w<=Math.min(y,a);w++)v=v+r.get(d,w)*i.get(w,y);r.set(d,y,v)}}}function vr(n,t,e,r){let i,s;return Math.abs(e)>Math.abs(r)?(i=r/e,s=e+i*r,[(n+i*t)/s,(t-i*n)/s]):(i=e/r,s=r+i*e,[(i*n+t)/s,(i*t-n)/s])}class vf{constructor(t){if(t=we.checkMatrix(t),!t.isSymmetric())throw new Error("Matrix is not symmetric");let e=t,r=e.rows,i=new j(r,r),s=!0,o,a,u;for(a=0;a<r;a++){let c=0;for(u=0;u<a;u++){let f=0;for(o=0;o<u;o++)f+=i.get(u,o)*i.get(a,o);f=(e.get(a,u)-f)/i.get(u,u),i.set(a,u,f),c=c+f*f}for(c=e.get(a,a)-c,s&&(s=c>0),i.set(a,a,Math.sqrt(Math.max(c,0))),u=a+1;u<r;u++)i.set(a,u,0)}this.L=i,this.positiveDefinite=s}isPositiveDefinite(){return this.positiveDefinite}solve(t){t=we.checkMatrix(t);let e=this.L,r=e.rows;if(t.rows!==r)throw new Error("Matrix dimensions do not match");if(this.isPositiveDefinite()===!1)throw new Error("Matrix is not positive definite");let i=t.columns,s=t.clone(),o,a,u;for(u=0;u<r;u++)for(a=0;a<i;a++){for(o=0;o<u;o++)s.set(u,a,s.get(u,a)-s.get(o,a)*e.get(u,o));s.set(u,a,s.get(u,a)/e.get(u,u))}for(u=r-1;u>=0;u--)for(a=0;a<i;a++){for(o=u+1;o<r;o++)s.set(u,a,s.get(u,a)-s.get(o,a)*e.get(o,u));s.set(u,a,s.get(u,a)/e.get(u,u))}return s}get lowerTriangularMatrix(){return this.L}}class mf{constructor(t,e={}){t=we.checkMatrix(t);let{Y:r}=e;const{scaleScores:i=!1,maxIterations:s=1e3,terminationCriteria:o=1e-10}=e;let a;if(r){if(ge.isAnyArray(r)&&typeof r[0]=="number"?r=j.columnVector(r):r=we.checkMatrix(r),r.rows!==t.rows)throw new Error("Y should have the same number of rows as X");a=r.getColumnVector(0)}else a=t.getColumnVector(0);let u=1,c,f,l,h;for(let g=0;g<s&&u>o;g++)l=t.transpose().mmul(a).div(a.transpose().mmul(a).get(0,0)),l=l.div(l.norm()),c=t.mmul(l).div(l.transpose().mmul(l).get(0,0)),g>0&&(u=c.clone().sub(h).pow(2).sum()),h=c.clone(),r?(f=r.transpose().mmul(c).div(c.transpose().mmul(c).get(0,0)),f=f.div(f.norm()),a=r.mmul(f).div(f.transpose().mmul(f).get(0,0))):a=c;if(r){let g=t.transpose().mmul(c).div(c.transpose().mmul(c).get(0,0));g=g.div(g.norm());let p=t.clone().sub(c.clone().mmul(g.transpose())),v=a.transpose().mmul(c).div(c.transpose().mmul(c).get(0,0)),m=r.clone().sub(c.clone().mulS(v.get(0,0)).mmul(f.transpose()));this.t=c,this.p=g.transpose(),this.w=l.transpose(),this.q=f,this.u=a,this.s=c.transpose().mmul(c),this.xResidual=p,this.yResidual=m,this.betas=v}else this.w=l.transpose(),this.s=c.transpose().mmul(c).sqrt(),i?this.t=c.clone().div(this.s.get(0,0)):this.t=c,this.xResidual=t.sub(c.mmul(l.transpose()))}}X.AbstractMatrix=Y,X.CHO=vf,X.CholeskyDecomposition=vf,X.DistanceMatrix=hr,X.EVD=pf,X.EigenvalueDecomposition=pf,X.LU=gr,X.LuDecomposition=gr;var yf=X.Matrix=j;X.MatrixColumnSelectionView=n1,X.MatrixColumnView=r1,X.MatrixFlipColumnView=i1,X.MatrixFlipRowView=s1,X.MatrixRowSelectionView=a1,X.MatrixRowView=o1,X.MatrixSelectionView=dr,X.MatrixSubView=u1,X.MatrixTransposeView=c1,X.NIPALS=mf,X.Nipals=mf,X.QR=Sn,X.QrDecomposition=Sn,X.SVD=bt;var E1=X.SingularValueDecomposition=bt;X.SymmetricMatrix=nt,X.WrapperMatrix1D=df,X.WrapperMatrix2D=we,X.correlation=m1,X.covariance=v1;var wf=X.default=j;X.determinant=pr,X.inverse=l1,X.linearDependencies=g1,X.pseudoInverse=p1,X.solve=gf,X.wrap=f1;const Ve=yf,bf=E1;wf.Matrix&&wf.Matrix;const x1={center:[0,0],linkDistance:50};class _f{constructor(t={}){this.options=t,this.id="mds",this.options=Object.assign(Object.assign({},x1),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericMDSLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericMDSLayout(!0,t,e)})}genericMDSLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{center:s=[0,0],linkDistance:o=50}=i,a=e.getAllNodes(),u=e.getAllEdges();if(!(a!=null&&a.length)||a.length===1)return rt(e,t,s);const c=Zc({nodes:a,edges:u}),f=Xc(c);N1(f);const l=Ny(f,o),h=M1(l),g=[];return h.forEach((v,m)=>{const d=ye(a[m]);d.data.x=v[0]+s[0],d.data.y=v[1]+s[1],g.push(d)}),t&&g.forEach(v=>e.mergeNodeData(v.id,{x:v.data.x,y:v.data.y})),{nodes:g,edges:u}})}}const N1=n=>{let t=-999999;n.forEach(e=>{e.forEach(r=>{r!==1/0&&t<r&&(t=r)})}),n.forEach((e,r)=>{e.forEach((i,s)=>{i===1/0&&(n[r][s]=t)})})},M1=n=>{const e=Ve.mul(Ve.pow(n,2),-.5),r=e.mean("row"),i=e.mean("column"),s=e.mean();e.add(s).subRowVector(r).subColumnVector(i);const o=new bf(e),a=Ve.sqrt(o.diagonalMatrix).diagonal();return o.leftSingularVectors.toJSON().map(u=>Ve.mul([u],[a]).toJSON()[0].splice(0,2))};function Ef(n){return!!n.tick&&!!n.stop}const S1={gForce:!0,force2:!0,d3force:!0,fruchterman:!0,forceAtlas2:!0,force:!0,"graphin-force":!0},R1={center:[0,0],comboPadding:10,treeKey:"combo"};class q1{constructor(t={}){this.options=t,this.id="comboCombined",this.options=Object.assign(Object.assign({},R1),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericComboCombinedLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericComboCombinedLayout(!0,t,e)})}genericComboCombinedLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=this.initVals(Object.assign(Object.assign({},this.options),r)),{center:s,treeKey:o,outerLayout:a}=i,u=e.getAllNodes().filter(E=>!E.data._isCombo),c=e.getAllNodes().filter(E=>E.data._isCombo),f=e.getAllEdges(),l=u==null?void 0:u.length;if(!l||l===1)return rt(e,t,s);const h=[],g=new Map;u.forEach(E=>{g.set(E.id,E)});const p=new Map;c.forEach(E=>{p.set(E.id,E)});const v=new Map,m=this.getInnerGraphs(e,o,g,p,f,i,v);yield Promise.all(m);const d=new Map,y=[],w=new Map;let b=!0;e.getRoots(o).forEach(E=>{const O=v.get(E.id),_=p.get(E.id)||g.get(E.id),S={id:E.id,data:Object.assign(Object.assign({},E.data),{x:O.data.x||_.data.x,y:O.data.y||_.data.y,fx:O.data.fx||_.data.fx,fy:O.data.fy||_.data.fy,mass:O.data.mass||_.data.mass,size:O.data.size})};y.push(S),d.set(E.id,!0),!isNaN(S.data.x)&&S.data.x!==0&&!isNaN(S.data.y)&&S.data.y!==0?b=!1:(S.data.x=Math.random()*100,S.data.y=Math.random()*100),gn(e,[E],q=>{q.id!==E.id&&w.set(q.id,E.id)},"TB",o)});const x=[];f.forEach(E=>{const O=w.get(E.source)||E.source,_=w.get(E.target)||E.target;O!==_&&d.has(O)&&d.has(_)&&x.push({id:E.id,source:O,target:_,data:{}})});let M;if(y!=null&&y.length){if(y.length===1)y[0].data.x=s[0],y[0].data.y=s[1];else{const E=new ue({nodes:y,edges:x}),O=a||new nf;b&&S1[O.id]&&(yield(y.length<100?new _f:new yn).assign(E));const _=Object.assign({center:s,kg:5,preventOverlap:!0,animate:!1},O.id==="force"?{gravity:1,factor:4,linkDistance:(S,q,R)=>{const T=Math.max(...q.data.size)||32,I=Math.max(...R.data.size)||32;return T/2+I/2+200}}:{});M=yield xf(O,E,_)}v.forEach(E=>{var O;const _=M.nodes.find(R=>R.id===E.id);if(_){const{x:R,y:T}=_.data;E.data.visited=!0,E.data.x=R,E.data.y=T,h.push({id:E.id,data:{x:R,y:T}})}const{x:S,y:q}=E.data;(O=E.data.nodes)===null||O===void 0||O.forEach(R=>{h.push({id:R.id,data:{x:R.data.x+S,y:R.data.y+q}})})}),v.forEach(({data:E})=>{const{x:O,y:_,visited:S,nodes:q}=E;q==null||q.forEach(R=>{if(!S){const T=h.find(I=>I.id===R.id);T.data.x+=O||0,T.data.y+=_||0}})})}return t&&h.forEach(E=>{e.mergeNodeData(E.id,{x:E.data.x,y:E.data.y})}),{nodes:h,edges:f}})}initVals(t){const e=Object.assign({},t),{nodeSize:r,spacing:i,comboPadding:s}=t;let o,a;if(V(i)?a=()=>i:Te(i)?a=i:a=()=>0,e.spacing=a,!r)o=c=>{const f=a(c);return c.size?ke(c.size)?((c.size[0]>c.size[1]?c.size[0]:c.size[1])+f)/2:gt(c.size)?((c.size.width>c.size.height?c.size.width:c.size.height)+f)/2:(c.size+f)/2:32+f/2};else if(Te(r))o=c=>{const f=r(c),l=a(c);return ke(c.size)?((c.size[0]>c.size[1]?c.size[0]:c.size[1])+l)/2:((f||32)+l)/2};else if(ke(r)){const f=(r[0]>r[1]?r[0]:r[1])/2;o=l=>f+a(l)/2}else{const c=r/2;o=f=>c+a(f)/2}e.nodeSize=o;let u;return V(s)?u=()=>s:ke(s)?u=()=>Math.max.apply(null,s):Te(s)?u=s:u=()=>0,e.comboPadding=u,e}getInnerGraphs(t,e,r,i,s,o,a){const{nodeSize:u,comboPadding:c,spacing:f,innerLayout:l}=o,h=l||new yn({}),g={center:[0,0],preventOverlap:!0,nodeSpacing:f},p=[],v=m=>{let d=(c==null?void 0:c(m))||10;return ke(d)&&(d=Math.max(...d)),{size:d?[d*2,d*2]:[30,30],padding:d}};return t.getRoots(e).forEach(m=>{a.set(m.id,{id:m.id,data:{nodes:[],size:v(m).size}});let d=Promise.resolve();gn(t,[m],y=>{var w;if(!y.data._isCombo)return;const{size:b,padding:x}=v(y);if(!(!((w=t.getChildren(y.id,e))===null||w===void 0)&&w.length))a.set(y.id,{id:y.id,data:Object.assign(Object.assign({},y.data),{size:b})});else{const M=a.get(y.id);a.set(y.id,{id:y.id,data:Object.assign({nodes:[]},M==null?void 0:M.data)});const N=new Map,E=t.getChildren(y.id,e).map(S=>{if(S.data._isCombo)return a.has(S.id)||a.set(S.id,{id:S.id,data:Object.assign({},S.data)}),N.set(S.id,!0),a.get(S.id);const q=r.get(S.id)||i.get(S.id);return N.set(S.id,!0),{id:S.id,data:Object.assign(Object.assign({},q.data),S.data)}}),O={nodes:E,edges:s.filter(S=>N.has(S.source)&&N.has(S.target))};let _=1/0;E.forEach(S=>{var q;let{size:R}=S.data;R||(R=((q=a.get(S.id))===null||q===void 0?void 0:q.data.size)||(u==null?void 0:u(S))||[30,30]),V(R)&&(R=[R,R]);const[T,I]=R;_>T&&(_=T),_>I&&(_=I),S.data.size=R}),d=d.then(()=>L(this,void 0,void 0,function*(){const S=new ue(O);yield xf(h,S,g,!0);const{minX:q,minY:R,maxX:T,maxY:I}=My(E),k={x:(T+q)/2,y:(I+R)/2};O.nodes.forEach(A=>{A.data.x-=k.x,A.data.y-=k.y});const F=[Math.max(T-q,_)+x*2,Math.max(I-R,_)+x*2];a.get(y.id).data.size=F,a.get(y.id).data.nodes=E}))}return!0},"BT",e),p.push(d)}),p}}function xf(n,t,e,r){var i;return L(this,void 0,void 0,function*(){return Ef(n)?(n.execute(t,e),n.stop(),n.tick((i=e.iterations)!==null&&i!==void 0?i:300)):r?yield n.assign(t,e):yield n.execute(t,e)})}function O1(n,t){var e,r=1;n==null&&(n=0),t==null&&(t=0);function i(){var s,o=e.length,a,u=0,c=0;for(s=0;s<o;++s)a=e[s],u+=a.x,c+=a.y;for(u=(u/o-n)*r,c=(c/o-t)*r,s=0;s<o;++s)a=e[s],a.x-=u,a.y-=c}return i.initialize=function(s){e=s},i.x=function(s){return arguments.length?(n=+s,i):n},i.y=function(s){return arguments.length?(t=+s,i):t},i.strength=function(s){return arguments.length?(r=+s,i):r},i}function ae(n){return function(){return n}}function We(n){return(n()-.5)*1e-6}function A1(n){return n.x+n.vx}function I1(n){return n.y+n.vy}function T1(n){var t,e,r,i=1,s=1;typeof n!="function"&&(n=ae(n==null?1:+n));function o(){for(var c,f=t.length,l,h,g,p,v,m,d=0;d<s;++d)for(l=vt(t,A1,I1).visitAfter(a),c=0;c<f;++c)h=t[c],v=e[h.index],m=v*v,g=h.x+h.vx,p=h.y+h.vy,l.visit(y);function y(w,b,x,M,N){var E=w.data,O=w.r,_=v+O;if(E){if(E.index>h.index){var S=g-E.x-E.vx,q=p-E.y-E.vy,R=S*S+q*q;R<_*_&&(S===0&&(S=We(r),R+=S*S),q===0&&(q=We(r),R+=q*q),R=(_-(R=Math.sqrt(R)))/R*i,h.vx+=(S*=R)*(_=(O*=O)/(m+O)),h.vy+=(q*=R)*_,E.vx-=S*(_=1-_),E.vy-=q*_)}return}return b>g+_||M<g-_||x>p+_||N<p-_}}function a(c){if(c.data)return c.r=e[c.data.index];for(var f=c.r=0;f<4;++f)c[f]&&c[f].r>c.r&&(c.r=c[f].r)}function u(){if(t){var c,f=t.length,l;for(e=new Array(f),c=0;c<f;++c)l=t[c],e[l.index]=+n(l,c,t)}}return o.initialize=function(c,f){t=c,r=f,u()},o.iterations=function(c){return arguments.length?(s=+c,o):s},o.strength=function(c){return arguments.length?(i=+c,o):i},o.radius=function(c){return arguments.length?(n=typeof c=="function"?c:ae(+c),u(),o):n},o}function k1(n){return n.index}function Nf(n,t){var e=n.get(t);if(!e)throw new Error("node not found: "+t);return e}function j1(n){var t=k1,e=l,r,i=ae(30),s,o,a,u,c,f=1;n==null&&(n=[]);function l(m){return 1/Math.min(a[m.source.index],a[m.target.index])}function h(m){for(var d=0,y=n.length;d<f;++d)for(var w=0,b,x,M,N,E,O,_;w<y;++w)b=n[w],x=b.source,M=b.target,N=M.x+M.vx-x.x-x.vx||We(c),E=M.y+M.vy-x.y-x.vy||We(c),O=Math.sqrt(N*N+E*E),O=(O-s[w])/O*m*r[w],N*=O,E*=O,M.vx-=N*(_=u[w]),M.vy-=E*_,x.vx+=N*(_=1-_),x.vy+=E*_}function g(){if(o){var m,d=o.length,y=n.length,w=new Map(o.map((x,M)=>[t(x,M,o),x])),b;for(m=0,a=new Array(d);m<y;++m)b=n[m],b.index=m,typeof b.source!="object"&&(b.source=Nf(w,b.source)),typeof b.target!="object"&&(b.target=Nf(w,b.target)),a[b.source.index]=(a[b.source.index]||0)+1,a[b.target.index]=(a[b.target.index]||0)+1;for(m=0,u=new Array(y);m<y;++m)b=n[m],u[m]=a[b.source.index]/(a[b.source.index]+a[b.target.index]);r=new Array(y),p(),s=new Array(y),v()}}function p(){if(o)for(var m=0,d=n.length;m<d;++m)r[m]=+e(n[m],m,n)}function v(){if(o)for(var m=0,d=n.length;m<d;++m)s[m]=+i(n[m],m,n)}return h.initialize=function(m,d){o=m,c=d,g()},h.links=function(m){return arguments.length?(n=m,g(),h):n},h.id=function(m){return arguments.length?(t=m,h):t},h.iterations=function(m){return arguments.length?(f=+m,h):f},h.strength=function(m){return arguments.length?(e=typeof m=="function"?m:ae(+m),p(),h):e},h.distance=function(m){return arguments.length?(i=typeof m=="function"?m:ae(+m),v(),h):i},h}var C1={value:()=>{}};function Rn(){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 mr(e)}function mr(n){this._=n}function P1(n,t){return n.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}mr.prototype=Rn.prototype={constructor:mr,on:function(n,t){var e=this._,r=P1(n+"",e),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(n=r[s]).type)&&(i=L1(e[i],n.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++s<o;)if(i=(n=r[s]).type)e[i]=Mf(e[i],n.name,t);else if(t==null)for(i in e)e[i]=Mf(e[i],n.name,null);return this},copy:function(){var n={},t=this._;for(var e in t)n[e]=t[e].slice();return new mr(n)},call:function(n,t){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,s;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(s=this._[n],r=0,i=s.length;r<i;++r)s[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],i=0,s=r.length;i<s;++i)r[i].value.apply(t,e)}};function L1(n,t){for(var e=0,r=n.length,i;e<r;++e)if((i=n[e]).name===t)return i.value}function Mf(n,t,e){for(var r=0,i=n.length;r<i;++r)if(n[r].name===t){n[r]=C1,n=n.slice(0,r).concat(n.slice(r+1));break}return e!=null&&n.push({name:t,value:e}),n}var _t=0,Lt=0,Dt=0,Sf=1e3,yr,zt,wr=0,it=0,br=0,$t=typeof performance=="object"&&performance.now?performance:Date,Rf=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(n){setTimeout(n,17)};function qf(){return it||(Rf(D1),it=$t.now()+br)}function D1(){it=0}function qn(){this._call=this._time=this._next=null}qn.prototype=On.prototype={constructor:qn,restart:function(n,t,e){if(typeof n!="function")throw new TypeError("callback is not a function");e=(e==null?qf():+e)+(t==null?0:+t),!this._next&&zt!==this&&(zt?zt._next=this:yr=this,zt=this),this._call=n,this._time=e,An()},stop:function(){this._call&&(this._call=null,this._time=1/0,An())}};function On(n,t,e){var r=new qn;return r.restart(n,t,e),r}function z1(){qf(),++_t;for(var n=yr,t;n;)(t=it-n._time)>=0&&n._call.call(void 0,t),n=n._next;--_t}function Of(){it=(wr=$t.now())+br,_t=Lt=0;try{z1()}finally{_t=0,F1(),it=0}}function $1(){var n=$t.now(),t=n-wr;t>Sf&&(br-=t,wr=n)}function F1(){for(var n,t=yr,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:yr=e);zt=n,An(r)}function An(n){if(!_t){Lt&&(Lt=clearTimeout(Lt));var t=n-it;t>24?(n<1/0&&(Lt=setTimeout(Of,n-$t.now()-br)),Dt&&(Dt=clearInterval(Dt))):(Dt||(wr=$t.now(),Dt=setInterval($1,Sf)),_t=1,Rf(Of))}}const B1=1664525,U1=1013904223,Af=4294967296;function G1(){let n=1;return()=>(n=(B1*n+U1)%Af)/Af}function V1(n){return n.x}function W1(n){return n.y}var Y1=10,K1=Math.PI*(3-Math.sqrt(5));function X1(n){var t,e=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,a=new Map,u=On(l),c=Rn("tick","end"),f=G1();n==null&&(n=[]);function l(){h(),c.call("tick",t),e<r&&(u.stop(),c.call("end",t))}function h(v){var m,d=n.length,y;v===void 0&&(v=1);for(var w=0;w<v;++w)for(e+=(s-e)*i,a.forEach(function(b){b(e)}),m=0;m<d;++m)y=n[m],y.fx==null?y.x+=y.vx*=o:(y.x=y.fx,y.vx=0),y.fy==null?y.y+=y.vy*=o:(y.y=y.fy,y.vy=0);return t}function g(){for(var v=0,m=n.length,d;v<m;++v){if(d=n[v],d.index=v,d.fx!=null&&(d.x=d.fx),d.fy!=null&&(d.y=d.fy),isNaN(d.x)||isNaN(d.y)){var y=Y1*Math.sqrt(.5+v),w=v*K1;d.x=y*Math.cos(w),d.y=y*Math.sin(w)}(isNaN(d.vx)||isNaN(d.vy))&&(d.vx=d.vy=0)}}function p(v){return v.initialize&&v.initialize(n,f),v}return g(),t={tick:h,restart:function(){return u.restart(l),t},stop:function(){return u.stop(),t},nodes:function(v){return arguments.length?(n=v,g(),a.forEach(p),t):n},alpha:function(v){return arguments.length?(e=+v,t):e},alphaMin:function(v){return arguments.length?(r=+v,t):r},alphaDecay:function(v){return arguments.length?(i=+v,t):+i},alphaTarget:function(v){return arguments.length?(s=+v,t):s},velocityDecay:function(v){return arguments.length?(o=1-v,t):1-o},randomSource:function(v){return arguments.length?(f=v,a.forEach(p),t):f},force:function(v,m){return arguments.length>1?(m==null?a.delete(v):a.set(v,p(m)),t):a.get(v)},find:function(v,m,d){var y=0,w=n.length,b,x,M,N,E;for(d==null?d=1/0:d*=d,y=0;y<w;++y)N=n[y],b=v-N.x,x=m-N.y,M=b*b+x*x,M<d&&(E=N,d=M);return E},on:function(v,m){return arguments.length>1?(c.on(v,m),t):c.on(v)}}}function Z1(){var n,t,e,r,i=ae(-30),s,o=1,a=1/0,u=.81;function c(g){var p,v=n.length,m=vt(n,V1,W1).visitAfter(l);for(r=g,p=0;p<v;++p)t=n[p],m.visit(h)}function f(){if(n){var g,p=n.length,v;for(s=new Array(p),g=0;g<p;++g)v=n[g],s[v.index]=+i(v,g,n)}}function l(g){var p=0,v,m,d=0,y,w,b;if(g.length){for(y=w=b=0;b<4;++b)(v=g[b])&&(m=Math.abs(v.value))&&(p+=v.value,d+=m,y+=m*v.x,w+=m*v.y);g.x=y/d,g.y=w/d}else{v=g,v.x=v.data.x,v.y=v.data.y;do p+=s[v.data.index];while(v=v.next)}g.value=p}function h(g,p,v,m){if(!g.value)return!0;var d=g.x-t.x,y=g.y-t.y,w=m-p,b=d*d+y*y;if(w*w/u<b)return b<a&&(d===0&&(d=We(e),b+=d*d),y===0&&(y=We(e),b+=y*y),b<o&&(b=Math.sqrt(o*b)),t.vx+=d*g.value*r/b,t.vy+=y*g.value*r/b),!0;if(g.length||b>=a)return;(g.data!==t||g.next)&&(d===0&&(d=We(e),b+=d*d),y===0&&(y=We(e),b+=y*y),b<o&&(b=Math.sqrt(o*b)));do g.data!==t&&(w=s[g.data.index]*r/b,t.vx+=d*w,t.vy+=y*w);while(g=g.next)}return c.initialize=function(g,p){n=g,e=p,f()},c.strength=function(g){return arguments.length?(i=typeof g=="function"?g:ae(+g),f(),c):i},c.distanceMin=function(g){return arguments.length?(o=g*g,c):Math.sqrt(o)},c.distanceMax=function(g){return arguments.length?(a=g*g,c):Math.sqrt(a)},c.theta=function(g){return arguments.length?(u=g*g,c):Math.sqrt(u)},c}function J1(n,t,e){var r,i=ae(.1),s,o;typeof n!="function"&&(n=ae(+n)),t==null&&(t=0),e==null&&(e=0);function a(c){for(var f=0,l=r.length;f<l;++f){var h=r[f],g=h.x-t||1e-6,p=h.y-e||1e-6,v=Math.sqrt(g*g+p*p),m=(o[f]-v)*s[f]*c/v;h.vx+=g*m,h.vy+=p*m}}function u(){if(r){var c,f=r.length;for(s=new Array(f),o=new Array(f),c=0;c<f;++c)o[c]=+n(r[c],c,r),s[c]=isNaN(o[c])?0:+i(r[c],c,r)}}return a.initialize=function(c){r=c,u()},a.strength=function(c){return arguments.length?(i=typeof c=="function"?c:ae(+c),u(),a):i},a.radius=function(c){return arguments.length?(n=typeof c=="function"?c:ae(+c),u(),a):n},a.x=function(c){return arguments.length?(t=+c,a):t},a.y=function(c){return arguments.length?(e=+c,a):e},a}function Q1(n){var t=ae(.1),e,r,i;typeof n!="function"&&(n=ae(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vx+=(i[u]-f.x)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ae(+a),o(),s):t},s.x=function(a){return arguments.length?(n=typeof a=="function"?a:ae(+a),o(),s):n},s}function H1(n){var t=ae(.1),e,r,i;typeof n!="function"&&(n=ae(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vy+=(i[u]-f.y)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ae(+a),o(),s):t},s.y=function(a){return arguments.length?(n=typeof a=="function"?a:ae(+a),o(),s):n},s}class If{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:j1,manyBody:Z1,center:O1,collide:T1,radial:J1,x:Q1,y:H1},this.options={link:{id:e=>e.id},manyBody:{},center:{x:0,y:0}},this.context={options:{},assign:!1,nodes:[],edges:[]},yc(this.options,t),this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericLayout(!1,t,e)})}assign(t,e){return L(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(i=>i.id===t);r&&e.forEach((i,s)=>{if(typeof i=="number"||i===null){const o=["fx","fy","fz"][s];r[o]=i}})}getOptions(t){var e,r;const i=yc({},this.options,t);return i.collide&&((e=i.collide)===null||e===void 0?void 0:e.radius)===void 0&&(i.collide=i.collide||{},i.collide.radius=(r=i.nodeSize)!==null&&r!==void 0?r:10),i.iterations===void 0&&(i.link&&i.link.iterations===void 0&&(i.iterations=i.link.iterations),i.collide&&i.collide.iterations===void 0&&(i.iterations=i.collide.iterations)),this.context.options=i,i}genericLayout(t,e,r){var i;return L(this,void 0,void 0,function*(){const s=this.getOptions(r),o=e.getAllNodes().map(({id:f,data:l})=>Object.assign(Object.assign({id:f},l),wc(l.data,this.config.inputNodeAttrs))),a=e.getAllEdges().map(f=>Object.assign({},f));Object.assign(this.context,{assign:t,nodes:o,edges:a,graph:e});const u=new Promise(f=>{this.resolver=f}),c=this.setSimulation(s);return c.nodes(o),(i=c.force("link"))===null||i===void 0||i.links(a),u})}getResult(){const{assign:t,nodes:e,edges:r,graph:i}=this.context,s=e.map(a=>({id:a.id,data:Object.assign(Object.assign({},a.data),wc(a,this.config.outputNodeAttrs))})),o=r.map(({id:a,source:u,target:c,data:f})=>({id:a,source:typeof u=="object"?u.id:u,target:typeof c=="object"?c.id:c,data:f}));return t&&s.forEach(a=>i.mergeNodeData(a.id,a.data)),{nodes:s,edges:o}}initSimulation(){return X1()}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())})),Tf(e,this.config.simulationAttrs.map(r=>[r,t[r]])),Object.entries(this.forceMap).forEach(([r,i])=>{const s=r;if(t[r]){let o=e.force(s);o||(o=i(),e.force(s,o)),Tf(o,Object.entries(t[s]))}else e.force(s,null)}),e}}const Tf=(n,t)=>t.reduce((e,[r,i])=>!e[r]||i===void 0?e:e[r].call(n,i),n);function eb(n,t,e){var r,i=1;n==null&&(n=0),t==null&&(t=0),e==null&&(e=0);function s(){var o,a=r.length,u,c=0,f=0,l=0;for(o=0;o<a;++o)u=r[o],c+=u.x||0,f+=u.y||0,l+=u.z||0;for(c=(c/a-n)*i,f=(f/a-t)*i,l=(l/a-e)*i,o=0;o<a;++o)u=r[o],c&&(u.x-=c),f&&(u.y-=f),l&&(u.z-=l)}return s.initialize=function(o){r=o},s.x=function(o){return arguments.length?(n=+o,s):n},s.y=function(o){return arguments.length?(t=+o,s):t},s.z=function(o){return arguments.length?(e=+o,s):e},s.strength=function(o){return arguments.length?(i=+o,s):i},s}function tb(n){const t=+this._x.call(null,n);return kf(this.cover(t),t,n)}function kf(n,t,e){if(isNaN(t))return n;var r,i=n._root,s={data:e},o=n._x0,a=n._x1,u,c,f,l,h;if(!i)return n._root=s,n;for(;i.length;)if((f=t>=(u=(o+a)/2))?o=u:a=u,r=i,!(i=i[l=+f]))return r[l]=s,n;if(c=+n._x.call(null,i.data),t===c)return s.next=i,r?r[l]=s:n._root=s,n;do r=r?r[l]=new Array(2):n._root=new Array(2),(f=t>=(u=(o+a)/2))?o=u:a=u;while((l=+f)==(h=+(c>=u)));return r[h]=i,r[l]=s,n}function rb(n){Array.isArray(n)||(n=Array.from(n));const t=n.length,e=new Float64Array(t);let r=1/0,i=-1/0;for(let s=0,o;s<t;++s)isNaN(o=+this._x.call(null,n[s]))||(e[s]=o,o<r&&(r=o),o>i&&(i=o));if(r>i)return this;this.cover(r).cover(i);for(let s=0;s<t;++s)kf(this,e[s],n[s]);return this}function nb(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,i=this._root,s,o;t>n||n>=e;)switch(o=+(n<t),s=new Array(2),s[o]=i,i=s,r*=2,o){case 0:e=t+r;break;case 1:t=e-r;break}this._root&&this._root.length&&(this._root=i)}return this._x0=t,this._x1=e,this}function ib(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function sb(n){return arguments.length?this.cover(+n[0][0]).cover(+n[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]}function Pe(n,t,e){this.node=n,this.x0=t,this.x1=e}function ob(n,t){var e,r=this._x0,i,s,o=this._x1,a=[],u=this._root,c,f;for(u&&a.push(new Pe(u,r,o)),t==null?t=1/0:(r=n-t,o=n+t);c=a.pop();)if(!(!(u=c.node)||(i=c.x0)>o||(s=c.x1)<r))if(u.length){var l=(i+s)/2;a.push(new Pe(u[1],l,s),new Pe(u[0],i,l)),(f=+(n>=l))&&(c=a[a.length-1],a[a.length-1]=a[a.length-1-f],a[a.length-1-f]=c)}else{var h=Math.abs(n-+this._x.call(null,u.data));h<t&&(t=h,r=n-h,o=n+h,e=u.data)}return e}function ab(n){if(isNaN(u=+this._x.call(null,n)))return this;var t,e=this._root,r,i,s,o=this._x0,a=this._x1,u,c,f,l,h;if(!e)return this;if(e.length)for(;;){if((f=u>=(c=(o+a)/2))?o=c:a=c,t=e,!(e=e[l=+f]))return this;if(!e.length)break;t[l+1&1]&&(r=t,h=l)}for(;e.data!==n;)if(i=e,!(e=e.next))return this;return(s=e.next)&&delete e.next,i?(s?i.next=s:delete i.next,this):t?(s?t[l]=s:delete t[l],(e=t[0]||t[1])&&e===(t[1]||t[0])&&!e.length&&(r?r[h]=e:this._root=e),this):(this._root=s,this)}function ub(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function cb(){return this._root}function fb(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function lb(n){var t=[],e,r=this._root,i,s,o;for(r&&t.push(new Pe(r,this._x0,this._x1));e=t.pop();)if(!n(r=e.node,s=e.x0,o=e.x1)&&r.length){var a=(s+o)/2;(i=r[1])&&t.push(new Pe(i,a,o)),(i=r[0])&&t.push(new Pe(i,s,a))}return this}function hb(n){var t=[],e=[],r;for(this._root&&t.push(new Pe(this._root,this._x0,this._x1));r=t.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.x1,u=(o+a)/2;(s=i[0])&&t.push(new Pe(s,o,u)),(s=i[1])&&t.push(new Pe(s,u,a))}e.push(r)}for(;r=e.pop();)n(r.node,r.x0,r.x1);return this}function db(n){return n[0]}function gb(n){return arguments.length?(this._x=n,this):this._x}function In(n,t){var e=new Tn(t??db,NaN,NaN);return n==null?e:e.addAll(n)}function Tn(n,t,e){this._x=n,this._x0=t,this._x1=e,this._root=void 0}function jf(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var pe=In.prototype=Tn.prototype;pe.copy=function(){var n=new Tn(this._x,this._x0,this._x1),t=this._root,e,r;if(!t)return n;if(!t.length)return n._root=jf(t),n;for(e=[{source:t,target:n._root=new Array(2)}];t=e.pop();)for(var i=0;i<2;++i)(r=t.source[i])&&(r.length?e.push({source:r,target:t.target[i]=new Array(2)}):t.target[i]=jf(r));return n},pe.add=tb,pe.addAll=rb,pe.cover=nb,pe.data=ib,pe.extent=sb,pe.find=ob,pe.remove=ab,pe.removeAll=ub,pe.root=cb,pe.size=fb,pe.visit=lb,pe.visitAfter=hb,pe.x=gb;function ie(n){return function(){return n}}function Ne(n){return(n()-.5)*1e-6}function kn(n){return n.x+n.vx}function Cf(n){return n.y+n.vy}function pb(n){return n.z+n.vz}function vb(n){var t,e,r,i,s=1,o=1;typeof n!="function"&&(n=ie(n==null?1:+n));function a(){for(var f,l=t.length,h,g,p,v,m,d,y,w=0;w<o;++w)for(h=(e===1?In(t,kn):e===2?vt(t,kn,Cf):e===3?ar(t,kn,Cf,pb):null).visitAfter(u),f=0;f<l;++f)g=t[f],d=r[g.index],y=d*d,p=g.x+g.vx,e>1&&(v=g.y+g.vy),e>2&&(m=g.z+g.vz),h.visit(b);function b(x,M,N,E,O,_,S){var q=[M,N,E,O,_,S],R=q[0],T=q[1],I=q[2],k=q[e],F=q[e+1],A=q[e+2],C=x.data,D=x.r,z=d+D;if(C){if(C.index>g.index){var U=p-C.x-C.vx,P=e>1?v-C.y-C.vy:0,$=e>2?m-C.z-C.vz:0,B=U*U+P*P+$*$;B<z*z&&(U===0&&(U=Ne(i),B+=U*U),e>1&&P===0&&(P=Ne(i),B+=P*P),e>2&&$===0&&($=Ne(i),B+=$*$),B=(z-(B=Math.sqrt(B)))/B*s,g.vx+=(U*=B)*(z=(D*=D)/(y+D)),e>1&&(g.vy+=(P*=B)*z),e>2&&(g.vz+=($*=B)*z),C.vx-=U*(z=1-z),e>1&&(C.vy-=P*z),e>2&&(C.vz-=$*z))}return}return R>p+z||k<p-z||e>1&&(T>v+z||F<v-z)||e>2&&(I>m+z||A<m-z)}}function u(f){if(f.data)return f.r=r[f.data.index];for(var l=f.r=0;l<Math.pow(2,e);++l)f[l]&&f[l].r>f.r&&(f.r=f[l].r)}function c(){if(t){var f,l=t.length,h;for(r=new Array(l),f=0;f<l;++f)h=t[f],r[h.index]=+n(h,f,t)}}return a.initialize=function(f,...l){t=f,i=l.find(h=>typeof h=="function")||Math.random,e=l.find(h=>[1,2,3].includes(h))||2,c()},a.iterations=function(f){return arguments.length?(o=+f,a):o},a.strength=function(f){return arguments.length?(s=+f,a):s},a.radius=function(f){return arguments.length?(n=typeof f=="function"?f:ie(+f),c(),a):n},a}function mb(n){return n.index}function Pf(n,t){var e=n.get(t);if(!e)throw new Error("node not found: "+t);return e}function yb(n){var t=mb,e=h,r,i=ie(30),s,o,a,u,c,f,l=1;n==null&&(n=[]);function h(d){return 1/Math.min(u[d.source.index],u[d.target.index])}function g(d){for(var y=0,w=n.length;y<l;++y)for(var b=0,x,M,N,E=0,O=0,_=0,S,q;b<w;++b)x=n[b],M=x.source,N=x.target,E=N.x+N.vx-M.x-M.vx||Ne(f),a>1&&(O=N.y+N.vy-M.y-M.vy||Ne(f)),a>2&&(_=N.z+N.vz-M.z-M.vz||Ne(f)),S=Math.sqrt(E*E+O*O+_*_),S=(S-s[b])/S*d*r[b],E*=S,O*=S,_*=S,N.vx-=E*(q=c[b]),a>1&&(N.vy-=O*q),a>2&&(N.vz-=_*q),M.vx+=E*(q=1-q),a>1&&(M.vy+=O*q),a>2&&(M.vz+=_*q)}function p(){if(o){var d,y=o.length,w=n.length,b=new Map(o.map((M,N)=>[t(M,N,o),M])),x;for(d=0,u=new Array(y);d<w;++d)x=n[d],x.index=d,typeof x.source!="object"&&(x.source=Pf(b,x.source)),typeof x.target!="object"&&(x.target=Pf(b,x.target)),u[x.source.index]=(u[x.source.index]||0)+1,u[x.target.index]=(u[x.target.index]||0)+1;for(d=0,c=new Array(w);d<w;++d)x=n[d],c[d]=u[x.source.index]/(u[x.source.index]+u[x.target.index]);r=new Array(w),v(),s=new Array(w),m()}}function v(){if(o)for(var d=0,y=n.length;d<y;++d)r[d]=+e(n[d],d,n)}function m(){if(o)for(var d=0,y=n.length;d<y;++d)s[d]=+i(n[d],d,n)}return g.initialize=function(d,...y){o=d,f=y.find(w=>typeof w=="function")||Math.random,a=y.find(w=>[1,2,3].includes(w))||2,p()},g.links=function(d){return arguments.length?(n=d,p(),g):n},g.id=function(d){return arguments.length?(t=d,g):t},g.iterations=function(d){return arguments.length?(l=+d,g):l},g.strength=function(d){return arguments.length?(e=typeof d=="function"?d:ie(+d),v(),g):e},g.distance=function(d){return arguments.length?(i=typeof d=="function"?d:ie(+d),m(),g):i},g}const wb=1664525,bb=1013904223,Lf=4294967296;function _b(){let n=1;return()=>(n=(wb*n+bb)%Lf)/Lf}var Df=3;function jn(n){return n.x}function zf(n){return n.y}function Eb(n){return n.z}var xb=10,Nb=Math.PI*(3-Math.sqrt(5)),Mb=Math.PI*20/(9+Math.sqrt(221));function Sb(n,t){t=t||2;var e=Math.min(Df,Math.max(1,Math.round(t))),r,i=1,s=.001,o=1-Math.pow(s,1/300),a=0,u=.6,c=new Map,f=On(g),l=Rn("tick","end"),h=_b();n==null&&(n=[]);function g(){p(),l.call("tick",r),i<s&&(f.stop(),l.call("end",r))}function p(d){var y,w=n.length,b;d===void 0&&(d=1);for(var x=0;x<d;++x)for(i+=(a-i)*o,c.forEach(function(M){M(i)}),y=0;y<w;++y)b=n[y],b.fx==null?b.x+=b.vx*=u:(b.x=b.fx,b.vx=0),e>1&&(b.fy==null?b.y+=b.vy*=u:(b.y=b.fy,b.vy=0)),e>2&&(b.fz==null?b.z+=b.vz*=u:(b.z=b.fz,b.vz=0));return r}function v(){for(var d=0,y=n.length,w;d<y;++d){if(w=n[d],w.index=d,w.fx!=null&&(w.x=w.fx),w.fy!=null&&(w.y=w.fy),w.fz!=null&&(w.z=w.fz),isNaN(w.x)||e>1&&isNaN(w.y)||e>2&&isNaN(w.z)){var b=xb*(e>2?Math.cbrt(.5+d):e>1?Math.sqrt(.5+d):d),x=d*Nb,M=d*Mb;e===1?w.x=b:e===2?(w.x=b*Math.cos(x),w.y=b*Math.sin(x)):(w.x=b*Math.sin(x)*Math.cos(M),w.y=b*Math.cos(x),w.z=b*Math.sin(x)*Math.sin(M))}(isNaN(w.vx)||e>1&&isNaN(w.vy)||e>2&&isNaN(w.vz))&&(w.vx=0,e>1&&(w.vy=0),e>2&&(w.vz=0))}}function m(d){return d.initialize&&d.initialize(n,h,e),d}return v(),r={tick:p,restart:function(){return f.restart(g),r},stop:function(){return f.stop(),r},numDimensions:function(d){return arguments.length?(e=Math.min(Df,Math.max(1,Math.round(d))),c.forEach(m),r):e},nodes:function(d){return arguments.length?(n=d,v(),c.forEach(m),r):n},alpha:function(d){return arguments.length?(i=+d,r):i},alphaMin:function(d){return arguments.length?(s=+d,r):s},alphaDecay:function(d){return arguments.length?(o=+d,r):+o},alphaTarget:function(d){return arguments.length?(a=+d,r):a},velocityDecay:function(d){return arguments.length?(u=1-d,r):1-u},randomSource:function(d){return arguments.length?(h=d,c.forEach(m),r):h},force:function(d,y){return arguments.length>1?(y==null?c.delete(d):c.set(d,m(y)),r):c.get(d)},find:function(){var d=Array.prototype.slice.call(arguments),y=d.shift()||0,w=(e>1?d.shift():null)||0,b=(e>2?d.shift():null)||0,x=d.shift()||1/0,M=0,N=n.length,E,O,_,S,q,R;for(x*=x,M=0;M<N;++M)q=n[M],E=y-q.x,O=w-(q.y||0),_=b-(q.z||0),S=E*E+O*O+_*_,S<x&&(R=q,x=S);return R},on:function(d,y){return arguments.length>1?(l.on(d,y),r):l.on(d)}}}function Rb(){var n,t,e,r,i,s=ie(-30),o,a=1,u=1/0,c=.81;function f(p){var v,m=n.length,d=(t===1?In(n,jn):t===2?vt(n,jn,zf):t===3?ar(n,jn,zf,Eb):null).visitAfter(h);for(i=p,v=0;v<m;++v)e=n[v],d.visit(g)}function l(){if(n){var p,v=n.length,m;for(o=new Array(v),p=0;p<v;++p)m=n[p],o[m.index]=+s(m,p,n)}}function h(p){var v=0,m,d,y=0,w,b,x,M,N=p.length;if(N){for(w=b=x=M=0;M<N;++M)(m=p[M])&&(d=Math.abs(m.value))&&(v+=m.value,y+=d,w+=d*(m.x||0),b+=d*(m.y||0),x+=d*(m.z||0));v*=Math.sqrt(4/N),p.x=w/y,t>1&&(p.y=b/y),t>2&&(p.z=x/y)}else{m=p,m.x=m.data.x,t>1&&(m.y=m.data.y),t>2&&(m.z=m.data.z);do v+=o[m.data.index];while(m=m.next)}p.value=v}function g(p,v,m,d,y){if(!p.value)return!0;var w=[m,d,y][t-1],b=p.x-e.x,x=t>1?p.y-e.y:0,M=t>2?p.z-e.z:0,N=w-v,E=b*b+x*x+M*M;if(N*N/c<E)return E<u&&(b===0&&(b=Ne(r),E+=b*b),t>1&&x===0&&(x=Ne(r),E+=x*x),t>2&&M===0&&(M=Ne(r),E+=M*M),E<a&&(E=Math.sqrt(a*E)),e.vx+=b*p.value*i/E,t>1&&(e.vy+=x*p.value*i/E),t>2&&(e.vz+=M*p.value*i/E)),!0;if(p.length||E>=u)return;(p.data!==e||p.next)&&(b===0&&(b=Ne(r),E+=b*b),t>1&&x===0&&(x=Ne(r),E+=x*x),t>2&&M===0&&(M=Ne(r),E+=M*M),E<a&&(E=Math.sqrt(a*E)));do p.data!==e&&(N=o[p.data.index]*i/E,e.vx+=b*N,t>1&&(e.vy+=x*N),t>2&&(e.vz+=M*N));while(p=p.next)}return f.initialize=function(p,...v){n=p,r=v.find(m=>typeof m=="function")||Math.random,t=v.find(m=>[1,2,3].includes(m))||2,l()},f.strength=function(p){return arguments.length?(s=typeof p=="function"?p:ie(+p),l(),f):s},f.distanceMin=function(p){return arguments.length?(a=p*p,f):Math.sqrt(a)},f.distanceMax=function(p){return arguments.length?(u=p*p,f):Math.sqrt(u)},f.theta=function(p){return arguments.length?(c=p*p,f):Math.sqrt(c)},f}function qb(n,t,e,r){var i,s,o=ie(.1),a,u;typeof n!="function"&&(n=ie(+n)),t==null&&(t=0),e==null&&(e=0),r==null&&(r=0);function c(l){for(var h=0,g=i.length;h<g;++h){var p=i[h],v=p.x-t||1e-6,m=(p.y||0)-e||1e-6,d=(p.z||0)-r||1e-6,y=Math.sqrt(v*v+m*m+d*d),w=(u[h]-y)*a[h]*l/y;p.vx+=v*w,s>1&&(p.vy+=m*w),s>2&&(p.vz+=d*w)}}function f(){if(i){var l,h=i.length;for(a=new Array(h),u=new Array(h),l=0;l<h;++l)u[l]=+n(i[l],l,i),a[l]=isNaN(u[l])?0:+o(i[l],l,i)}}return c.initialize=function(l,...h){i=l,s=h.find(g=>[1,2,3].includes(g))||2,f()},c.strength=function(l){return arguments.length?(o=typeof l=="function"?l:ie(+l),f(),c):o},c.radius=function(l){return arguments.length?(n=typeof l=="function"?l:ie(+l),f(),c):n},c.x=function(l){return arguments.length?(t=+l,c):t},c.y=function(l){return arguments.length?(e=+l,c):e},c.z=function(l){return arguments.length?(r=+l,c):r},c}function Ob(n){var t=ie(.1),e,r,i;typeof n!="function"&&(n=ie(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vx+=(i[u]-f.x)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ie(+a),o(),s):t},s.x=function(a){return arguments.length?(n=typeof a=="function"?a:ie(+a),o(),s):n},s}function Ab(n){var t=ie(.1),e,r,i;typeof n!="function"&&(n=ie(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vy+=(i[u]-f.y)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ie(+a),o(),s):t},s.y=function(a){return arguments.length?(n=typeof a=="function"?a:ie(+a),o(),s):n},s}function Ib(n){var t=ie(.1),e,r,i;typeof n!="function"&&(n=ie(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vz+=(i[u]-f.z)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ie(+a),o(),s):t},s.z=function(a){return arguments.length?(n=typeof a=="function"?a:ie(+a),o(),s):n},s}class Tb extends If{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:yb,manyBody:Rb,center:eb,collide:vb,radial:qb,x:Ob,y:Ab,z:Ib},this.options={numDimensions:3,link:{id:t=>t.id},manyBody:{},center:{x:0,y:0,z:0}}}initSimulation(){return Sb()}}function Cn(n){throw new Error('Could not dynamically require "'+n+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Pn,$f;function kb(){if($f)return Pn;$f=1;function n(){this.__data__=[],this.size=0}return Pn=n,Pn}var Ln,Ff;function Et(){if(Ff)return Ln;Ff=1;function n(t,e){return t===e||t!==t&&e!==e}return Ln=n,Ln}var Dn,Bf;function _r(){if(Bf)return Dn;Bf=1;var n=Et();function t(e,r){for(var i=e.length;i--;)if(n(e[i][0],r))return i;return-1}return Dn=t,Dn}var zn,Uf;function jb(){if(Uf)return zn;Uf=1;var n=_r(),t=Array.prototype,e=t.splice;function r(i){var s=this.__data__,o=n(s,i);if(o<0)return!1;var a=s.length-1;return o==a?s.pop():e.call(s,o,1),--this.size,!0}return zn=r,zn}var $n,Gf;function Cb(){if(Gf)return $n;Gf=1;var n=_r();function t(e){var r=this.__data__,i=n(r,e);return i<0?void 0:r[i][1]}return $n=t,$n}var Fn,Vf;function Pb(){if(Vf)return Fn;Vf=1;var n=_r();function t(e){return n(this.__data__,e)>-1}return Fn=t,Fn}var Bn,Wf;function Lb(){if(Wf)return Bn;Wf=1;var n=_r();function t(e,r){var i=this.__data__,s=n(i,e);return s<0?(++this.size,i.push([e,r])):i[s][1]=r,this}return Bn=t,Bn}var Un,Yf;function Er(){if(Yf)return Un;Yf=1;var n=kb(),t=jb(),e=Cb(),r=Pb(),i=Lb();function s(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var c=o[a];this.set(c[0],c[1])}}return s.prototype.clear=n,s.prototype.delete=t,s.prototype.get=e,s.prototype.has=r,s.prototype.set=i,Un=s,Un}var Gn,Kf;function Db(){if(Kf)return Gn;Kf=1;var n=Er();function t(){this.__data__=new n,this.size=0}return Gn=t,Gn}var Vn,Xf;function zb(){if(Xf)return Vn;Xf=1;function n(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}return Vn=n,Vn}var Wn,Zf;function $b(){if(Zf)return Wn;Zf=1;function n(t){return this.__data__.get(t)}return Wn=n,Wn}var Yn,Jf;function Fb(){if(Jf)return Yn;Jf=1;function n(t){return this.__data__.has(t)}return Yn=n,Yn}var Kn,Qf;function Hf(){if(Qf)return Kn;Qf=1;var n=typeof ur=="object"&&ur&&ur.Object===Object&&ur;return Kn=n,Kn}var Xn,el;function Re(){if(el)return Xn;el=1;var n=Hf(),t=typeof self=="object"&&self&&self.Object===Object&&self,e=n||t||Function("return this")();return Xn=e,Xn}var Zn,tl;function xt(){if(tl)return Zn;tl=1;var n=Re(),t=n.Symbol;return Zn=t,Zn}var Jn,rl;function Bb(){if(rl)return Jn;rl=1;var n=xt(),t=Object.prototype,e=t.hasOwnProperty,r=t.toString,i=n?n.toStringTag:void 0;function s(o){var a=e.call(o,i),u=o[i];try{o[i]=void 0;var c=!0}catch{}var f=r.call(o);return c&&(a?o[i]=u:delete o[i]),f}return Jn=s,Jn}var Qn,nl;function Ub(){if(nl)return Qn;nl=1;var n=Object.prototype,t=n.toString;function e(r){return t.call(r)}return Qn=e,Qn}var Hn,il;function st(){if(il)return Hn;il=1;var n=xt(),t=Bb(),e=Ub(),r="[object Null]",i="[object Undefined]",s=n?n.toStringTag:void 0;function o(a){return a==null?a===void 0?i:r:s&&s in Object(a)?t(a):e(a)}return Hn=o,Hn}var ei,sl;function Me(){if(sl)return ei;sl=1;function n(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}return ei=n,ei}var ti,ol;function Ft(){if(ol)return ti;ol=1;var n=st(),t=Me(),e="[object AsyncFunction]",r="[object Function]",i="[object GeneratorFunction]",s="[object Proxy]";function o(a){if(!t(a))return!1;var u=n(a);return u==r||u==i||u==e||u==s}return ti=o,ti}var ri,al;function Gb(){if(al)return ri;al=1;var n=Re(),t=n["__core-js_shared__"];return ri=t,ri}var ni,ul;function Vb(){if(ul)return ni;ul=1;var n=Gb(),t=function(){var r=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function e(r){return!!t&&t in r}return ni=e,ni}var ii,cl;function fl(){if(cl)return ii;cl=1;var n=Function.prototype,t=n.toString;function e(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return ii=e,ii}var si,ll;function Wb(){if(ll)return si;ll=1;var n=Ft(),t=Vb(),e=Me(),r=fl(),i=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,o=Function.prototype,a=Object.prototype,u=o.toString,c=a.hasOwnProperty,f=RegExp("^"+u.call(c).replace(i,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function l(h){if(!e(h)||t(h))return!1;var g=n(h)?f:s;return g.test(r(h))}return si=l,si}var oi,hl;function Yb(){if(hl)return oi;hl=1;function n(t,e){return t==null?void 0:t[e]}return oi=n,oi}var ai,dl;function ot(){if(dl)return ai;dl=1;var n=Wb(),t=Yb();function e(r,i){var s=t(r,i);return n(s)?s:void 0}return ai=e,ai}var ui,gl;function ci(){if(gl)return ui;gl=1;var n=ot(),t=Re(),e=n(t,"Map");return ui=e,ui}var fi,pl;function xr(){if(pl)return fi;pl=1;var n=ot(),t=n(Object,"create");return fi=t,fi}var li,vl;function Kb(){if(vl)return li;vl=1;var n=xr();function t(){this.__data__=n?n(null):{},this.size=0}return li=t,li}var hi,ml;function Xb(){if(ml)return hi;ml=1;function n(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}return hi=n,hi}var di,yl;function Zb(){if(yl)return di;yl=1;var n=xr(),t="__lodash_hash_undefined__",e=Object.prototype,r=e.hasOwnProperty;function i(s){var o=this.__data__;if(n){var a=o[s];return a===t?void 0:a}return r.call(o,s)?o[s]:void 0}return di=i,di}var gi,wl;function Jb(){if(wl)return gi;wl=1;var n=xr(),t=Object.prototype,e=t.hasOwnProperty;function r(i){var s=this.__data__;return n?s[i]!==void 0:e.call(s,i)}return gi=r,gi}var pi,bl;function Qb(){if(bl)return pi;bl=1;var n=xr(),t="__lodash_hash_undefined__";function e(r,i){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=n&&i===void 0?t:i,this}return pi=e,pi}var vi,_l;function Hb(){if(_l)return vi;_l=1;var n=Kb(),t=Xb(),e=Zb(),r=Jb(),i=Qb();function s(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var c=o[a];this.set(c[0],c[1])}}return s.prototype.clear=n,s.prototype.delete=t,s.prototype.get=e,s.prototype.has=r,s.prototype.set=i,vi=s,vi}var mi,El;function e_(){if(El)return mi;El=1;var n=Hb(),t=Er(),e=ci();function r(){this.size=0,this.__data__={hash:new n,map:new(e||t),string:new n}}return mi=r,mi}var yi,xl;function t_(){if(xl)return yi;xl=1;function n(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}return yi=n,yi}var wi,Nl;function Nr(){if(Nl)return wi;Nl=1;var n=t_();function t(e,r){var i=e.__data__;return n(r)?i[typeof r=="string"?"string":"hash"]:i.map}return wi=t,wi}var bi,Ml;function r_(){if(Ml)return bi;Ml=1;var n=Nr();function t(e){var r=n(this,e).delete(e);return this.size-=r?1:0,r}return bi=t,bi}var _i,Sl;function n_(){if(Sl)return _i;Sl=1;var n=Nr();function t(e){return n(this,e).get(e)}return _i=t,_i}var Ei,Rl;function i_(){if(Rl)return Ei;Rl=1;var n=Nr();function t(e){return n(this,e).has(e)}return Ei=t,Ei}var xi,ql;function s_(){if(ql)return xi;ql=1;var n=Nr();function t(e,r){var i=n(this,e),s=i.size;return i.set(e,r),this.size+=i.size==s?0:1,this}return xi=t,xi}var Ni,Ol;function Mi(){if(Ol)return Ni;Ol=1;var n=e_(),t=r_(),e=n_(),r=i_(),i=s_();function s(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var c=o[a];this.set(c[0],c[1])}}return s.prototype.clear=n,s.prototype.delete=t,s.prototype.get=e,s.prototype.has=r,s.prototype.set=i,Ni=s,Ni}var Si,Al;function o_(){if(Al)return Si;Al=1;var n=Er(),t=ci(),e=Mi(),r=200;function i(s,o){var a=this.__data__;if(a instanceof n){var u=a.__data__;if(!t||u.length<r-1)return u.push([s,o]),this.size=++a.size,this;a=this.__data__=new e(u)}return a.set(s,o),this.size=a.size,this}return Si=i,Si}var Ri,Il;function Mr(){if(Il)return Ri;Il=1;var n=Er(),t=Db(),e=zb(),r=$b(),i=Fb(),s=o_();function o(a){var u=this.__data__=new n(a);this.size=u.size}return o.prototype.clear=t,o.prototype.delete=e,o.prototype.get=r,o.prototype.has=i,o.prototype.set=s,Ri=o,Ri}var qi,Tl;function Oi(){if(Tl)return qi;Tl=1;function n(t,e){for(var r=-1,i=t==null?0:t.length;++r<i&&e(t[r],r,t)!==!1;);return t}return qi=n,qi}var Ai,kl;function jl(){if(kl)return Ai;kl=1;var n=ot(),t=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch{}}();return Ai=t,Ai}var Ii,Cl;function Sr(){if(Cl)return Ii;Cl=1;var n=jl();function t(e,r,i){r=="__proto__"&&n?n(e,r,{configurable:!0,enumerable:!0,value:i,writable:!0}):e[r]=i}return Ii=t,Ii}var Ti,Pl;function Rr(){if(Pl)return Ti;Pl=1;var n=Sr(),t=Et(),e=Object.prototype,r=e.hasOwnProperty;function i(s,o,a){var u=s[o];(!(r.call(s,o)&&t(u,a))||a===void 0&&!(o in s))&&n(s,o,a)}return Ti=i,Ti}var ki,Ll;function Bt(){if(Ll)return ki;Ll=1;var n=Rr(),t=Sr();function e(r,i,s,o){var a=!s;s||(s={});for(var u=-1,c=i.length;++u<c;){var f=i[u],l=o?o(s[f],r[f],f,s,r):void 0;l===void 0&&(l=r[f]),a?t(s,f,l):n(s,f,l)}return s}return ki=e,ki}var ji,Dl;function a_(){if(Dl)return ji;Dl=1;function n(t,e){for(var r=-1,i=Array(t);++r<t;)i[r]=e(r);return i}return ji=n,ji}var Ci,zl;function Ae(){if(zl)return Ci;zl=1;function n(t){return t!=null&&typeof t=="object"}return Ci=n,Ci}var Pi,$l;function u_(){if($l)return Pi;$l=1;var n=st(),t=Ae(),e="[object Arguments]";function r(i){return t(i)&&n(i)==e}return Pi=r,Pi}var Li,Fl;function Ut(){if(Fl)return Li;Fl=1;var n=u_(),t=Ae(),e=Object.prototype,r=e.hasOwnProperty,i=e.propertyIsEnumerable,s=n(function(){return arguments}())?n:function(o){return t(o)&&r.call(o,"callee")&&!i.call(o,"callee")};return Li=s,Li}var Di,Bl;function se(){if(Bl)return Di;Bl=1;var n=Array.isArray;return Di=n,Di}var Gt={exports:{}},zi,Ul;function c_(){if(Ul)return zi;Ul=1;function n(){return!1}return zi=n,zi}Gt.exports;var Gl;function Nt(){return Gl||(Gl=1,function(n,t){var e=Re(),r=c_(),i=t&&!t.nodeType&&t,s=i&&!0&&n&&!n.nodeType&&n,o=s&&s.exports===i,a=o?e.Buffer:void 0,u=a?a.isBuffer:void 0,c=u||r;n.exports=c}(Gt,Gt.exports)),Gt.exports}var $i,Vl;function qr(){if(Vl)return $i;Vl=1;var n=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function e(r,i){var s=typeof r;return i=i??n,!!i&&(s=="number"||s!="symbol"&&t.test(r))&&r>-1&&r%1==0&&r<i}return $i=e,$i}var Fi,Wl;function Bi(){if(Wl)return Fi;Wl=1;var n=9007199254740991;function t(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=n}return Fi=t,Fi}var Ui,Yl;function f_(){if(Yl)return Ui;Yl=1;var n=st(),t=Bi(),e=Ae(),r="[object Arguments]",i="[object Array]",s="[object Boolean]",o="[object Date]",a="[object Error]",u="[object Function]",c="[object Map]",f="[object Number]",l="[object Object]",h="[object RegExp]",g="[object Set]",p="[object String]",v="[object WeakMap]",m="[object ArrayBuffer]",d="[object DataView]",y="[object Float32Array]",w="[object Float64Array]",b="[object Int8Array]",x="[object Int16Array]",M="[object Int32Array]",N="[object Uint8Array]",E="[object Uint8ClampedArray]",O="[object Uint16Array]",_="[object Uint32Array]",S={};S[y]=S[w]=S[b]=S[x]=S[M]=S[N]=S[E]=S[O]=S[_]=!0,S[r]=S[i]=S[m]=S[s]=S[d]=S[o]=S[a]=S[u]=S[c]=S[f]=S[l]=S[h]=S[g]=S[p]=S[v]=!1;function q(R){return e(R)&&t(R.length)&&!!S[n(R)]}return Ui=q,Ui}var Gi,Kl;function Or(){if(Kl)return Gi;Kl=1;function n(t){return function(e){return t(e)}}return Gi=n,Gi}var Vt={exports:{}};Vt.exports;var Xl;function Vi(){return Xl||(Xl=1,function(n,t){var e=Hf(),r=t&&!t.nodeType&&t,i=r&&!0&&n&&!n.nodeType&&n,s=i&&i.exports===r,o=s&&e.process,a=function(){try{var u=i&&i.require&&i.require("util").types;return u||o&&o.binding&&o.binding("util")}catch{}}();n.exports=a}(Vt,Vt.exports)),Vt.exports}var Wi,Zl;function Wt(){if(Zl)return Wi;Zl=1;var n=f_(),t=Or(),e=Vi(),r=e&&e.isTypedArray,i=r?t(r):n;return Wi=i,Wi}var Yi,Jl;function Ql(){if(Jl)return Yi;Jl=1;var n=a_(),t=Ut(),e=se(),r=Nt(),i=qr(),s=Wt(),o=Object.prototype,a=o.hasOwnProperty;function u(c,f){var l=e(c),h=!l&&t(c),g=!l&&!h&&r(c),p=!l&&!h&&!g&&s(c),v=l||h||g||p,m=v?n(c.length,String):[],d=m.length;for(var y in c)(f||a.call(c,y))&&!(v&&(y=="length"||g&&(y=="offset"||y=="parent")||p&&(y=="buffer"||y=="byteLength"||y=="byteOffset")||i(y,d)))&&m.push(y);return m}return Yi=u,Yi}var Ki,Hl;function Ar(){if(Hl)return Ki;Hl=1;var n=Object.prototype;function t(e){var r=e&&e.constructor,i=typeof r=="function"&&r.prototype||n;return e===i}return Ki=t,Ki}var Xi,eh;function th(){if(eh)return Xi;eh=1;function n(t,e){return function(r){return t(e(r))}}return Xi=n,Xi}var Zi,rh;function l_(){if(rh)return Zi;rh=1;var n=th(),t=n(Object.keys,Object);return Zi=t,Zi}var Ji,nh;function Qi(){if(nh)return Ji;nh=1;var n=Ar(),t=l_(),e=Object.prototype,r=e.hasOwnProperty;function i(s){if(!n(s))return t(s);var o=[];for(var a in Object(s))r.call(s,a)&&a!="constructor"&&o.push(a);return o}return Ji=i,Ji}var Hi,ih;function Le(){if(ih)return Hi;ih=1;var n=Ft(),t=Bi();function e(r){return r!=null&&t(r.length)&&!n(r)}return Hi=e,Hi}var es,sh;function Ye(){if(sh)return es;sh=1;var n=Ql(),t=Qi(),e=Le();function r(i){return e(i)?n(i):t(i)}return es=r,es}var ts,oh;function h_(){if(oh)return ts;oh=1;var n=Bt(),t=Ye();function e(r,i){return r&&n(i,t(i),r)}return ts=e,ts}var rs,ah;function d_(){if(ah)return rs;ah=1;function n(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}return rs=n,rs}var ns,uh;function g_(){if(uh)return ns;uh=1;var n=Me(),t=Ar(),e=d_(),r=Object.prototype,i=r.hasOwnProperty;function s(o){if(!n(o))return e(o);var a=t(o),u=[];for(var c in o)c=="constructor"&&(a||!i.call(o,c))||u.push(c);return u}return ns=s,ns}var is,ch;function at(){if(ch)return is;ch=1;var n=Ql(),t=g_(),e=Le();function r(i){return e(i)?n(i,!0):t(i)}return is=r,is}var ss,fh;function p_(){if(fh)return ss;fh=1;var n=Bt(),t=at();function e(r,i){return r&&n(i,t(i),r)}return ss=e,ss}var Yt={exports:{}};Yt.exports;var lh;function hh(){return lh||(lh=1,function(n,t){var e=Re(),r=t&&!t.nodeType&&t,i=r&&!0&&n&&!n.nodeType&&n,s=i&&i.exports===r,o=s?e.Buffer:void 0,a=o?o.allocUnsafe:void 0;function u(c,f){if(f)return c.slice();var l=c.length,h=a?a(l):new c.constructor(l);return c.copy(h),h}n.exports=u}(Yt,Yt.exports)),Yt.exports}var os,dh;function gh(){if(dh)return os;dh=1;function n(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r<i;)e[r]=t[r];return e}return os=n,os}var as,ph;function vh(){if(ph)return as;ph=1;function n(t,e){for(var r=-1,i=t==null?0:t.length,s=0,o=[];++r<i;){var a=t[r];e(a,r,t)&&(o[s++]=a)}return o}return as=n,as}var us,mh;function yh(){if(mh)return us;mh=1;function n(){return[]}return us=n,us}var cs,wh;function fs(){if(wh)return cs;wh=1;var n=vh(),t=yh(),e=Object.prototype,r=e.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(o){return o==null?[]:(o=Object(o),n(i(o),function(a){return r.call(o,a)}))}:t;return cs=s,cs}var ls,bh;function v_(){if(bh)return ls;bh=1;var n=Bt(),t=fs();function e(r,i){return n(r,t(r),i)}return ls=e,ls}var hs,_h;function ds(){if(_h)return hs;_h=1;function n(t,e){for(var r=-1,i=e.length,s=t.length;++r<i;)t[s+r]=e[r];return t}return hs=n,hs}var gs,Eh;function Ir(){if(Eh)return gs;Eh=1;var n=th(),t=n(Object.getPrototypeOf,Object);return gs=t,gs}var ps,xh;function Nh(){if(xh)return ps;xh=1;var n=ds(),t=Ir(),e=fs(),r=yh(),i=Object.getOwnPropertySymbols,s=i?function(o){for(var a=[];o;)n(a,e(o)),o=t(o);return a}:r;return ps=s,ps}var vs,Mh;function m_(){if(Mh)return vs;Mh=1;var n=Bt(),t=Nh();function e(r,i){return n(r,t(r),i)}return vs=e,vs}var ms,Sh;function Rh(){if(Sh)return ms;Sh=1;var n=ds(),t=se();function e(r,i,s){var o=i(r);return t(r)?o:n(o,s(r))}return ms=e,ms}var ys,qh;function Oh(){if(qh)return ys;qh=1;var n=Rh(),t=fs(),e=Ye();function r(i){return n(i,e,t)}return ys=r,ys}var ws,Ah;function y_(){if(Ah)return ws;Ah=1;var n=Rh(),t=Nh(),e=at();function r(i){return n(i,e,t)}return ws=r,ws}var bs,Ih;function w_(){if(Ih)return bs;Ih=1;var n=ot(),t=Re(),e=n(t,"DataView");return bs=e,bs}var _s,Th;function b_(){if(Th)return _s;Th=1;var n=ot(),t=Re(),e=n(t,"Promise");return _s=e,_s}var Es,kh;function jh(){if(kh)return Es;kh=1;var n=ot(),t=Re(),e=n(t,"Set");return Es=e,Es}var xs,Ch;function __(){if(Ch)return xs;Ch=1;var n=ot(),t=Re(),e=n(t,"WeakMap");return xs=e,xs}var Ns,Ph;function Mt(){if(Ph)return Ns;Ph=1;var n=w_(),t=ci(),e=b_(),r=jh(),i=__(),s=st(),o=fl(),a="[object Map]",u="[object Object]",c="[object Promise]",f="[object Set]",l="[object WeakMap]",h="[object DataView]",g=o(n),p=o(t),v=o(e),m=o(r),d=o(i),y=s;return(n&&y(new n(new ArrayBuffer(1)))!=h||t&&y(new t)!=a||e&&y(e.resolve())!=c||r&&y(new r)!=f||i&&y(new i)!=l)&&(y=function(w){var b=s(w),x=b==u?w.constructor:void 0,M=x?o(x):"";if(M)switch(M){case g:return h;case p:return a;case v:return c;case m:return f;case d:return l}return b}),Ns=y,Ns}var Ms,Lh;function E_(){if(Lh)return Ms;Lh=1;var n=Object.prototype,t=n.hasOwnProperty;function e(r){var i=r.length,s=new r.constructor(i);return i&&typeof r[0]=="string"&&t.call(r,"index")&&(s.index=r.index,s.input=r.input),s}return Ms=e,Ms}var Ss,Dh;function zh(){if(Dh)return Ss;Dh=1;var n=Re(),t=n.Uint8Array;return Ss=t,Ss}var Rs,$h;function qs(){if($h)return Rs;$h=1;var n=zh();function t(e){var r=new e.constructor(e.byteLength);return new n(r).set(new n(e)),r}return Rs=t,Rs}var Os,Fh;function x_(){if(Fh)return Os;Fh=1;var n=qs();function t(e,r){var i=r?n(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.byteLength)}return Os=t,Os}var As,Bh;function N_(){if(Bh)return As;Bh=1;var n=/\w*$/;function t(e){var r=new e.constructor(e.source,n.exec(e));return r.lastIndex=e.lastIndex,r}return As=t,As}var Is,Uh;function M_(){if(Uh)return Is;Uh=1;var n=xt(),t=n?n.prototype:void 0,e=t?t.valueOf:void 0;function r(i){return e?Object(e.call(i)):{}}return Is=r,Is}var Ts,Gh;function Vh(){if(Gh)return Ts;Gh=1;var n=qs();function t(e,r){var i=r?n(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.length)}return Ts=t,Ts}var ks,Wh;function S_(){if(Wh)return ks;Wh=1;var n=qs(),t=x_(),e=N_(),r=M_(),i=Vh(),s="[object Boolean]",o="[object Date]",a="[object Map]",u="[object Number]",c="[object RegExp]",f="[object Set]",l="[object String]",h="[object Symbol]",g="[object ArrayBuffer]",p="[object DataView]",v="[object Float32Array]",m="[object Float64Array]",d="[object Int8Array]",y="[object Int16Array]",w="[object Int32Array]",b="[object Uint8Array]",x="[object Uint8ClampedArray]",M="[object Uint16Array]",N="[object Uint32Array]";function E(O,_,S){var q=O.constructor;switch(_){case g:return n(O);case s:case o:return new q(+O);case p:return t(O,S);case v:case m:case d:case y:case w:case b:case x:case M:case N:return i(O,S);case a:return new q;case u:case l:return new q(O);case c:return e(O);case f:return new q;case h:return r(O)}}return ks=E,ks}var js,Yh;function Kh(){if(Yh)return js;Yh=1;var n=Me(),t=Object.create,e=function(){function r(){}return function(i){if(!n(i))return{};if(t)return t(i);r.prototype=i;var s=new r;return r.prototype=void 0,s}}();return js=e,js}var Cs,Xh;function Zh(){if(Xh)return Cs;Xh=1;var n=Kh(),t=Ir(),e=Ar();function r(i){return typeof i.constructor=="function"&&!e(i)?n(t(i)):{}}return Cs=r,Cs}var Ps,Jh;function R_(){if(Jh)return Ps;Jh=1;var n=Mt(),t=Ae(),e="[object Map]";function r(i){return t(i)&&n(i)==e}return Ps=r,Ps}var Ls,Qh;function q_(){if(Qh)return Ls;Qh=1;var n=R_(),t=Or(),e=Vi(),r=e&&e.isMap,i=r?t(r):n;return Ls=i,Ls}var Ds,Hh;function O_(){if(Hh)return Ds;Hh=1;var n=Mt(),t=Ae(),e="[object Set]";function r(i){return t(i)&&n(i)==e}return Ds=r,Ds}var zs,ed;function A_(){if(ed)return zs;ed=1;var n=O_(),t=Or(),e=Vi(),r=e&&e.isSet,i=r?t(r):n;return zs=i,zs}var $s,td;function rd(){if(td)return $s;td=1;var n=Mr(),t=Oi(),e=Rr(),r=h_(),i=p_(),s=hh(),o=gh(),a=v_(),u=m_(),c=Oh(),f=y_(),l=Mt(),h=E_(),g=S_(),p=Zh(),v=se(),m=Nt(),d=q_(),y=Me(),w=A_(),b=Ye(),x=at(),M=1,N=2,E=4,O="[object Arguments]",_="[object Array]",S="[object Boolean]",q="[object Date]",R="[object Error]",T="[object Function]",I="[object GeneratorFunction]",k="[object Map]",F="[object Number]",A="[object Object]",C="[object RegExp]",D="[object Set]",z="[object String]",U="[object Symbol]",P="[object WeakMap]",$="[object ArrayBuffer]",B="[object DataView]",Z="[object Float32Array]",G="[object Float64Array]",le="[object Int8Array]",_e="[object Int16Array]",ec="[object Int32Array]",tc="[object Uint8Array]",rc="[object Uint8ClampedArray]",nc="[object Uint16Array]",ic="[object Uint32Array]",H={};H[O]=H[_]=H[$]=H[B]=H[S]=H[q]=H[Z]=H[G]=H[le]=H[_e]=H[ec]=H[k]=H[F]=H[A]=H[C]=H[D]=H[z]=H[U]=H[tc]=H[rc]=H[nc]=H[ic]=!0,H[R]=H[T]=H[P]=!1;function Ot(Q,At,It,HS,Zr,Qe){var me,Jr=At&M,Qr=At&N,eR=At&E;if(It&&(me=Zr?It(Q,HS,Zr,Qe):It(Q)),me!==void 0)return me;if(!y(Q))return Q;var a0=v(Q);if(a0){if(me=h(Q),!Jr)return o(Q,me)}else{var Tt=l(Q),u0=Tt==T||Tt==I;if(m(Q))return s(Q,Jr);if(Tt==A||Tt==O||u0&&!Zr){if(me=Qr||u0?{}:p(Q),!Jr)return Qr?u(Q,i(me,Q)):a(Q,r(me,Q))}else{if(!H[Tt])return Zr?Q:{};me=g(Q,Tt,Jr)}}Qe||(Qe=new n);var c0=Qe.get(Q);if(c0)return c0;Qe.set(Q,me),w(Q)?Q.forEach(function(He){me.add(Ot(He,At,It,He,Q,Qe))}):d(Q)&&Q.forEach(function(He,ht){me.set(ht,Ot(He,At,It,ht,Q,Qe))});var tR=eR?Qr?f:c:Qr?x:b,f0=a0?void 0:tR(Q);return t(f0||Q,function(He,ht){f0&&(ht=He,He=Q[ht]),e(me,ht,Ot(He,At,It,ht,Q,Qe))}),me}return $s=Ot,$s}var Fs,nd;function I_(){if(nd)return Fs;nd=1;var n=rd(),t=4;function e(r){return n(r,t)}return Fs=e,Fs}var Bs,id;function Us(){if(id)return Bs;id=1;function n(t){return function(){return t}}return Bs=n,Bs}var Gs,sd;function T_(){if(sd)return Gs;sd=1;function n(t){return function(e,r,i){for(var s=-1,o=Object(e),a=i(e),u=a.length;u--;){var c=a[t?u:++s];if(r(o[c],c,o)===!1)break}return e}}return Gs=n,Gs}var Vs,od;function Ws(){if(od)return Vs;od=1;var n=T_(),t=n();return Vs=t,Vs}var Ys,ad;function Ks(){if(ad)return Ys;ad=1;var n=Ws(),t=Ye();function e(r,i){return r&&n(r,i,t)}return Ys=e,Ys}var Xs,ud;function k_(){if(ud)return Xs;ud=1;var n=Le();function t(e,r){return function(i,s){if(i==null)return i;if(!n(i))return e(i,s);for(var o=i.length,a=r?o:-1,u=Object(i);(r?a--:++a<o)&&s(u[a],a,u)!==!1;);return i}}return Xs=t,Xs}var Zs,cd;function Tr(){if(cd)return Zs;cd=1;var n=Ks(),t=k_(),e=t(n);return Zs=e,Zs}var Js,fd;function ut(){if(fd)return Js;fd=1;function n(t){return t}return Js=n,Js}var Qs,ld;function hd(){if(ld)return Qs;ld=1;var n=ut();function t(e){return typeof e=="function"?e:n}return Qs=t,Qs}var Hs,dd;function gd(){if(dd)return Hs;dd=1;var n=Oi(),t=Tr(),e=hd(),r=se();function i(s,o){var a=r(s)?n:t;return a(s,e(o))}return Hs=i,Hs}var eo,pd;function vd(){return pd||(pd=1,eo=gd()),eo}var to,md;function j_(){if(md)return to;md=1;var n=Tr();function t(e,r){var i=[];return n(e,function(s,o,a){r(s,o,a)&&i.push(s)}),i}return to=t,to}var ro,yd;function C_(){if(yd)return ro;yd=1;var n="__lodash_hash_undefined__";function t(e){return this.__data__.set(e,n),this}return ro=t,ro}var no,wd;function P_(){if(wd)return no;wd=1;function n(t){return this.__data__.has(t)}return no=n,no}var io,bd;function _d(){if(bd)return io;bd=1;var n=Mi(),t=C_(),e=P_();function r(i){var s=-1,o=i==null?0:i.length;for(this.__data__=new n;++s<o;)this.add(i[s])}return r.prototype.add=r.prototype.push=t,r.prototype.has=e,io=r,io}var so,Ed;function L_(){if(Ed)return so;Ed=1;function n(t,e){for(var r=-1,i=t==null?0:t.length;++r<i;)if(e(t[r],r,t))return!0;return!1}return so=n,so}var oo,xd;function Nd(){if(xd)return oo;xd=1;function n(t,e){return t.has(e)}return oo=n,oo}var ao,Md;function Sd(){if(Md)return ao;Md=1;var n=_d(),t=L_(),e=Nd(),r=1,i=2;function s(o,a,u,c,f,l){var h=u&r,g=o.length,p=a.length;if(g!=p&&!(h&&p>g))return!1;var v=l.get(o),m=l.get(a);if(v&&m)return v==a&&m==o;var d=-1,y=!0,w=u&i?new n:void 0;for(l.set(o,a),l.set(a,o);++d<g;){var b=o[d],x=a[d];if(c)var M=h?c(x,b,d,a,o,l):c(b,x,d,o,a,l);if(M!==void 0){if(M)continue;y=!1;break}if(w){if(!t(a,function(N,E){if(!e(w,E)&&(b===N||f(b,N,u,c,l)))return w.push(E)})){y=!1;break}}else if(!(b===x||f(b,x,u,c,l))){y=!1;break}}return l.delete(o),l.delete(a),y}return ao=s,ao}var uo,Rd;function D_(){if(Rd)return uo;Rd=1;function n(t){var e=-1,r=Array(t.size);return t.forEach(function(i,s){r[++e]=[s,i]}),r}return uo=n,uo}var co,qd;function fo(){if(qd)return co;qd=1;function n(t){var e=-1,r=Array(t.size);return t.forEach(function(i){r[++e]=i}),r}return co=n,co}var lo,Od;function z_(){if(Od)return lo;Od=1;var n=xt(),t=zh(),e=Et(),r=Sd(),i=D_(),s=fo(),o=1,a=2,u="[object Boolean]",c="[object Date]",f="[object Error]",l="[object Map]",h="[object Number]",g="[object RegExp]",p="[object Set]",v="[object String]",m="[object Symbol]",d="[object ArrayBuffer]",y="[object DataView]",w=n?n.prototype:void 0,b=w?w.valueOf:void 0;function x(M,N,E,O,_,S,q){switch(E){case y:if(M.byteLength!=N.byteLength||M.byteOffset!=N.byteOffset)return!1;M=M.buffer,N=N.buffer;case d:return!(M.byteLength!=N.byteLength||!S(new t(M),new t(N)));case u:case c:case h:return e(+M,+N);case f:return M.name==N.name&&M.message==N.message;case g:case v:return M==N+"";case l:var R=i;case p:var T=O&o;if(R||(R=s),M.size!=N.size&&!T)return!1;var I=q.get(M);if(I)return I==N;O|=a,q.set(M,N);var k=r(R(M),R(N),O,_,S,q);return q.delete(M),k;case m:if(b)return b.call(M)==b.call(N)}return!1}return lo=x,lo}var ho,Ad;function $_(){if(Ad)return ho;Ad=1;var n=Oh(),t=1,e=Object.prototype,r=e.hasOwnProperty;function i(s,o,a,u,c,f){var l=a&t,h=n(s),g=h.length,p=n(o),v=p.length;if(g!=v&&!l)return!1;for(var m=g;m--;){var d=h[m];if(!(l?d in o:r.call(o,d)))return!1}var y=f.get(s),w=f.get(o);if(y&&w)return y==o&&w==s;var b=!0;f.set(s,o),f.set(o,s);for(var x=l;++m<g;){d=h[m];var M=s[d],N=o[d];if(u)var E=l?u(N,M,d,o,s,f):u(M,N,d,s,o,f);if(!(E===void 0?M===N||c(M,N,a,u,f):E)){b=!1;break}x||(x=d=="constructor")}if(b&&!x){var O=s.constructor,_=o.constructor;O!=_&&"constructor"in s&&"constructor"in o&&!(typeof O=="function"&&O instanceof O&&typeof _=="function"&&_ instanceof _)&&(b=!1)}return f.delete(s),f.delete(o),b}return ho=i,ho}var go,Id;function F_(){if(Id)return go;Id=1;var n=Mr(),t=Sd(),e=z_(),r=$_(),i=Mt(),s=se(),o=Nt(),a=Wt(),u=1,c="[object Arguments]",f="[object Array]",l="[object Object]",h=Object.prototype,g=h.hasOwnProperty;function p(v,m,d,y,w,b){var x=s(v),M=s(m),N=x?f:i(v),E=M?f:i(m);N=N==c?l:N,E=E==c?l:E;var O=N==l,_=E==l,S=N==E;if(S&&o(v)){if(!o(m))return!1;x=!0,O=!1}if(S&&!O)return b||(b=new n),x||a(v)?t(v,m,d,y,w,b):e(v,m,N,d,y,w,b);if(!(d&u)){var q=O&&g.call(v,"__wrapped__"),R=_&&g.call(m,"__wrapped__");if(q||R){var T=q?v.value():v,I=R?m.value():m;return b||(b=new n),w(T,I,d,y,b)}}return S?(b||(b=new n),r(v,m,d,y,w,b)):!1}return go=p,go}var po,Td;function kd(){if(Td)return po;Td=1;var n=F_(),t=Ae();function e(r,i,s,o,a){return r===i?!0:r==null||i==null||!t(r)&&!t(i)?r!==r&&i!==i:n(r,i,s,o,e,a)}return po=e,po}var vo,jd;function B_(){if(jd)return vo;jd=1;var n=Mr(),t=kd(),e=1,r=2;function i(s,o,a,u){var c=a.length,f=c,l=!u;if(s==null)return!f;for(s=Object(s);c--;){var h=a[c];if(l&&h[2]?h[1]!==s[h[0]]:!(h[0]in s))return!1}for(;++c<f;){h=a[c];var g=h[0],p=s[g],v=h[1];if(l&&h[2]){if(p===void 0&&!(g in s))return!1}else{var m=new n;if(u)var d=u(p,v,g,s,o,m);if(!(d===void 0?t(v,p,e|r,u,m):d))return!1}}return!0}return vo=i,vo}var mo,Cd;function Pd(){if(Cd)return mo;Cd=1;var n=Me();function t(e){return e===e&&!n(e)}return mo=t,mo}var yo,Ld;function U_(){if(Ld)return yo;Ld=1;var n=Pd(),t=Ye();function e(r){for(var i=t(r),s=i.length;s--;){var o=i[s],a=r[o];i[s]=[o,a,n(a)]}return i}return yo=e,yo}var wo,Dd;function zd(){if(Dd)return wo;Dd=1;function n(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}return wo=n,wo}var bo,$d;function G_(){if($d)return bo;$d=1;var n=B_(),t=U_(),e=zd();function r(i){var s=t(i);return s.length==1&&s[0][2]?e(s[0][0],s[0][1]):function(o){return o===i||n(o,i,s)}}return bo=r,bo}var _o,Fd;function St(){if(Fd)return _o;Fd=1;var n=st(),t=Ae(),e="[object Symbol]";function r(i){return typeof i=="symbol"||t(i)&&n(i)==e}return _o=r,_o}var Eo,Bd;function xo(){if(Bd)return Eo;Bd=1;var n=se(),t=St(),e=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(s,o){if(n(s))return!1;var a=typeof s;return a=="number"||a=="symbol"||a=="boolean"||s==null||t(s)?!0:r.test(s)||!e.test(s)||o!=null&&s in Object(o)}return Eo=i,Eo}var No,Ud;function V_(){if(Ud)return No;Ud=1;var n=Mi(),t="Expected a function";function e(r,i){if(typeof r!="function"||i!=null&&typeof i!="function")throw new TypeError(t);var s=function(){var o=arguments,a=i?i.apply(this,o):o[0],u=s.cache;if(u.has(a))return u.get(a);var c=r.apply(this,o);return s.cache=u.set(a,c)||u,c};return s.cache=new(e.Cache||n),s}return e.Cache=n,No=e,No}var Mo,Gd;function W_(){if(Gd)return Mo;Gd=1;var n=V_(),t=500;function e(r){var i=n(r,function(o){return s.size===t&&s.clear(),o}),s=i.cache;return i}return Mo=e,Mo}var So,Vd;function Y_(){if(Vd)return So;Vd=1;var n=W_(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,e=/\\(\\)?/g,r=n(function(i){var s=[];return i.charCodeAt(0)===46&&s.push(""),i.replace(t,function(o,a,u,c){s.push(u?c.replace(e,"$1"):a||o)}),s});return So=r,So}var Ro,Wd;function kr(){if(Wd)return Ro;Wd=1;function n(t,e){for(var r=-1,i=t==null?0:t.length,s=Array(i);++r<i;)s[r]=e(t[r],r,t);return s}return Ro=n,Ro}var qo,Yd;function K_(){if(Yd)return qo;Yd=1;var n=xt(),t=kr(),e=se(),r=St(),i=n?n.prototype:void 0,s=i?i.toString:void 0;function o(a){if(typeof a=="string")return a;if(e(a))return t(a,o)+"";if(r(a))return s?s.call(a):"";var u=a+"";return u=="0"&&1/a==-1/0?"-0":u}return qo=o,qo}var Oo,Kd;function Xd(){if(Kd)return Oo;Kd=1;var n=K_();function t(e){return e==null?"":n(e)}return Oo=t,Oo}var Ao,Zd;function jr(){if(Zd)return Ao;Zd=1;var n=se(),t=xo(),e=Y_(),r=Xd();function i(s,o){return n(s)?s:t(s,o)?[s]:e(r(s))}return Ao=i,Ao}var Io,Jd;function Kt(){if(Jd)return Io;Jd=1;var n=St();function t(e){if(typeof e=="string"||n(e))return e;var r=e+"";return r=="0"&&1/e==-1/0?"-0":r}return Io=t,Io}var To,Qd;function Cr(){if(Qd)return To;Qd=1;var n=jr(),t=Kt();function e(r,i){i=n(i,r);for(var s=0,o=i.length;r!=null&&s<o;)r=r[t(i[s++])];return s&&s==o?r:void 0}return To=e,To}var ko,Hd;function X_(){if(Hd)return ko;Hd=1;var n=Cr();function t(e,r,i){var s=e==null?void 0:n(e,r);return s===void 0?i:s}return ko=t,ko}var jo,eg;function Z_(){if(eg)return jo;eg=1;function n(t,e){return t!=null&&e in Object(t)}return jo=n,jo}var Co,tg;function rg(){if(tg)return Co;tg=1;var n=jr(),t=Ut(),e=se(),r=qr(),i=Bi(),s=Kt();function o(a,u,c){u=n(u,a);for(var f=-1,l=u.length,h=!1;++f<l;){var g=s(u[f]);if(!(h=a!=null&&c(a,g)))break;a=a[g]}return h||++f!=l?h:(l=a==null?0:a.length,!!l&&i(l)&&r(g,l)&&(e(a)||t(a)))}return Co=o,Co}var Po,ng;function ig(){if(ng)return Po;ng=1;var n=Z_(),t=rg();function e(r,i){return r!=null&&t(r,i,n)}return Po=e,Po}var Lo,sg;function J_(){if(sg)return Lo;sg=1;var n=kd(),t=X_(),e=ig(),r=xo(),i=Pd(),s=zd(),o=Kt(),a=1,u=2;function c(f,l){return r(f)&&i(l)?s(o(f),l):function(h){var g=t(h,f);return g===void 0&&g===l?e(h,f):n(l,g,a|u)}}return Lo=c,Lo}var Do,og;function ag(){if(og)return Do;og=1;function n(t){return function(e){return e==null?void 0:e[t]}}return Do=n,Do}var zo,ug;function Q_(){if(ug)return zo;ug=1;var n=Cr();function t(e){return function(r){return n(r,e)}}return zo=t,zo}var $o,cg;function H_(){if(cg)return $o;cg=1;var n=ag(),t=Q_(),e=xo(),r=Kt();function i(s){return e(s)?n(r(s)):t(s)}return $o=i,$o}var Fo,fg;function De(){if(fg)return Fo;fg=1;var n=G_(),t=J_(),e=ut(),r=se(),i=H_();function s(o){return typeof o=="function"?o:o==null?e:typeof o=="object"?r(o)?t(o[0],o[1]):n(o):i(o)}return Fo=s,Fo}var Bo,lg;function hg(){if(lg)return Bo;lg=1;var n=vh(),t=j_(),e=De(),r=se();function i(s,o){var a=r(s)?n:t;return a(s,e(o,3))}return Bo=i,Bo}var Uo,dg;function eE(){if(dg)return Uo;dg=1;var n=Object.prototype,t=n.hasOwnProperty;function e(r,i){return r!=null&&t.call(r,i)}return Uo=e,Uo}var Go,gg;function pg(){if(gg)return Go;gg=1;var n=eE(),t=rg();function e(r,i){return r!=null&&t(r,i,n)}return Go=e,Go}var Vo,vg;function tE(){if(vg)return Vo;vg=1;var n=Qi(),t=Mt(),e=Ut(),r=se(),i=Le(),s=Nt(),o=Ar(),a=Wt(),u="[object Map]",c="[object Set]",f=Object.prototype,l=f.hasOwnProperty;function h(g){if(g==null)return!0;if(i(g)&&(r(g)||typeof g=="string"||typeof g.splice=="function"||s(g)||a(g)||e(g)))return!g.length;var p=t(g);if(p==u||p==c)return!g.size;if(o(g))return!n(g).length;for(var v in g)if(l.call(g,v))return!1;return!0}return Vo=h,Vo}var Wo,mg;function yg(){if(mg)return Wo;mg=1;function n(t){return t===void 0}return Wo=n,Wo}var Yo,wg;function bg(){if(wg)return Yo;wg=1;var n=Tr(),t=Le();function e(r,i){var s=-1,o=t(r)?Array(r.length):[];return n(r,function(a,u,c){o[++s]=i(a,u,c)}),o}return Yo=e,Yo}var Ko,_g;function Eg(){if(_g)return Ko;_g=1;var n=kr(),t=De(),e=bg(),r=se();function i(s,o){var a=r(s)?n:e;return a(s,t(o,3))}return Ko=i,Ko}var Xo,xg;function rE(){if(xg)return Xo;xg=1;function n(t,e,r,i){var s=-1,o=t==null?0:t.length;for(i&&o&&(r=t[++s]);++s<o;)r=e(r,t[s],s,t);return r}return Xo=n,Xo}var Zo,Ng;function nE(){if(Ng)return Zo;Ng=1;function n(t,e,r,i,s){return s(t,function(o,a,u){r=i?(i=!1,o):e(r,o,a,u)}),r}return Zo=n,Zo}var Jo,Mg;function Sg(){if(Mg)return Jo;Mg=1;var n=rE(),t=Tr(),e=De(),r=nE(),i=se();function s(o,a,u){var c=i(o)?n:r,f=arguments.length<3;return c(o,e(a,4),u,f,t)}return Jo=s,Jo}var Qo,Rg;function iE(){if(Rg)return Qo;Rg=1;var n=st(),t=se(),e=Ae(),r="[object String]";function i(s){return typeof s=="string"||!t(s)&&e(s)&&n(s)==r}return Qo=i,Qo}var Ho,qg;function sE(){if(qg)return Ho;qg=1;var n=ag(),t=n("length");return Ho=t,Ho}var ea,Og;function oE(){if(Og)return ea;Og=1;var n="\\ud800-\\udfff",t="\\u0300-\\u036f",e="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",i=t+e+r,s="\\ufe0e\\ufe0f",o="\\u200d",a=RegExp("["+o+n+i+s+"]");function u(c){return a.test(c)}return ea=u,ea}var ta,Ag;function aE(){if(Ag)return ta;Ag=1;var n="\\ud800-\\udfff",t="\\u0300-\\u036f",e="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",i=t+e+r,s="\\ufe0e\\ufe0f",o="["+n+"]",a="["+i+"]",u="\\ud83c[\\udffb-\\udfff]",c="(?:"+a+"|"+u+")",f="[^"+n+"]",l="(?:\\ud83c[\\udde6-\\uddff]){2}",h="[\\ud800-\\udbff][\\udc00-\\udfff]",g="\\u200d",p=c+"?",v="["+s+"]?",m="(?:"+g+"(?:"+[f,l,h].join("|")+")"+v+p+")*",d=v+p+m,y="(?:"+[f+a+"?",a,l,h,o].join("|")+")",w=RegExp(u+"(?="+u+")|"+y+d,"g");function b(x){for(var M=w.lastIndex=0;w.test(x);)++M;return M}return ta=b,ta}var ra,Ig;function uE(){if(Ig)return ra;Ig=1;var n=sE(),t=oE(),e=aE();function r(i){return t(i)?e(i):n(i)}return ra=r,ra}var na,Tg;function cE(){if(Tg)return na;Tg=1;var n=Qi(),t=Mt(),e=Le(),r=iE(),i=uE(),s="[object Map]",o="[object Set]";function a(u){if(u==null)return 0;if(e(u))return r(u)?i(u):u.length;var c=t(u);return c==s||c==o?u.size:n(u).length}return na=a,na}var ia,kg;function fE(){if(kg)return ia;kg=1;var n=Oi(),t=Kh(),e=Ks(),r=De(),i=Ir(),s=se(),o=Nt(),a=Ft(),u=Me(),c=Wt();function f(l,h,g){var p=s(l),v=p||o(l)||c(l);if(h=r(h,4),g==null){var m=l&&l.constructor;v?g=p?new m:[]:u(l)?g=a(m)?t(i(l)):{}:g={}}return(v?n:e)(l,function(d,y,w){return h(g,d,y,w)}),g}return ia=f,ia}var sa,jg;function lE(){if(jg)return sa;jg=1;var n=xt(),t=Ut(),e=se(),r=n?n.isConcatSpreadable:void 0;function i(s){return e(s)||t(s)||!!(r&&s&&s[r])}return sa=i,sa}var oa,Cg;function aa(){if(Cg)return oa;Cg=1;var n=ds(),t=lE();function e(r,i,s,o,a){var u=-1,c=r.length;for(s||(s=t),a||(a=[]);++u<c;){var f=r[u];i>0&&s(f)?i>1?e(f,i-1,s,o,a):n(a,f):o||(a[a.length]=f)}return a}return oa=e,oa}var ua,Pg;function hE(){if(Pg)return ua;Pg=1;function n(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}return ua=n,ua}var ca,Lg;function Dg(){if(Lg)return ca;Lg=1;var n=hE(),t=Math.max;function e(r,i,s){return i=t(i===void 0?r.length-1:i,0),function(){for(var o=arguments,a=-1,u=t(o.length-i,0),c=Array(u);++a<u;)c[a]=o[i+a];a=-1;for(var f=Array(i+1);++a<i;)f[a]=o[a];return f[i]=s(c),n(r,this,f)}}return ca=e,ca}var fa,zg;function dE(){if(zg)return fa;zg=1;var n=Us(),t=jl(),e=ut(),r=t?function(i,s){return t(i,"toString",{configurable:!0,enumerable:!1,value:n(s),writable:!0})}:e;return fa=r,fa}var la,$g;function gE(){if($g)return la;$g=1;var n=800,t=16,e=Date.now;function r(i){var s=0,o=0;return function(){var a=e(),u=t-(a-o);if(o=a,u>0){if(++s>=n)return arguments[0]}else s=0;return i.apply(void 0,arguments)}}return la=r,la}var ha,Fg;function Bg(){if(Fg)return ha;Fg=1;var n=dE(),t=gE(),e=t(n);return ha=e,ha}var da,Ug;function Pr(){if(Ug)return da;Ug=1;var n=ut(),t=Dg(),e=Bg();function r(i,s){return e(t(i,s,n),i+"")}return da=r,da}var ga,Gg;function Vg(){if(Gg)return ga;Gg=1;function n(t,e,r,i){for(var s=t.length,o=r+(i?1:-1);i?o--:++o<s;)if(e(t[o],o,t))return o;return-1}return ga=n,ga}var pa,Wg;function pE(){if(Wg)return pa;Wg=1;function n(t){return t!==t}return pa=n,pa}var va,Yg;function vE(){if(Yg)return va;Yg=1;function n(t,e,r){for(var i=r-1,s=t.length;++i<s;)if(t[i]===e)return i;return-1}return va=n,va}var ma,Kg;function mE(){if(Kg)return ma;Kg=1;var n=Vg(),t=pE(),e=vE();function r(i,s,o){return s===s?e(i,s,o):n(i,t,o)}return ma=r,ma}var ya,Xg;function yE(){if(Xg)return ya;Xg=1;var n=mE();function t(e,r){var i=e==null?0:e.length;return!!i&&n(e,r,0)>-1}return ya=t,ya}var wa,Zg;function wE(){if(Zg)return wa;Zg=1;function n(t,e,r){for(var i=-1,s=t==null?0:t.length;++i<s;)if(r(e,t[i]))return!0;return!1}return wa=n,wa}var ba,Jg;function bE(){if(Jg)return ba;Jg=1;function n(){}return ba=n,ba}var _a,Qg;function _E(){if(Qg)return _a;Qg=1;var n=jh(),t=bE(),e=fo(),r=1/0,i=n&&1/e(new n([,-0]))[1]==r?function(s){return new n(s)}:t;return _a=i,_a}var Ea,Hg;function EE(){if(Hg)return Ea;Hg=1;var n=_d(),t=yE(),e=wE(),r=Nd(),i=_E(),s=fo(),o=200;function a(u,c,f){var l=-1,h=t,g=u.length,p=!0,v=[],m=v;if(f)p=!1,h=e;else if(g>=o){var d=c?null:i(u);if(d)return s(d);p=!1,h=r,m=new n}else m=c?[]:v;e:for(;++l<g;){var y=u[l],w=c?c(y):y;if(y=f||y!==0?y:0,p&&w===w){for(var b=m.length;b--;)if(m[b]===w)continue e;c&&m.push(w),v.push(y)}else h(m,w,f)||(m!==v&&m.push(w),v.push(y))}return v}return Ea=a,Ea}var xa,ep;function tp(){if(ep)return xa;ep=1;var n=Le(),t=Ae();function e(r){return t(r)&&n(r)}return xa=e,xa}var Na,rp;function xE(){if(rp)return Na;rp=1;var n=aa(),t=Pr(),e=EE(),r=tp(),i=t(function(s){return e(n(s,1,r,!0))});return Na=i,Na}var Ma,np;function NE(){if(np)return Ma;np=1;var n=kr();function t(e,r){return n(r,function(i){return e[i]})}return Ma=t,Ma}var Sa,ip;function sp(){if(ip)return Sa;ip=1;var n=NE(),t=Ye();function e(r){return r==null?[]:n(r,t(r))}return Sa=e,Sa}var Ra,op;function Se(){if(op)return Ra;op=1;var n;if(typeof Cn=="function")try{n={clone:I_(),constant:Us(),each:vd(),filter:hg(),has:pg(),isArray:se(),isEmpty:tE(),isFunction:Ft(),isUndefined:yg(),keys:Ye(),map:Eg(),reduce:Sg(),size:cE(),transform:fE(),union:xE(),values:sp()}}catch{}return n||(n=window._),Ra=n,Ra}var qa,ap;function Oa(){if(ap)return qa;ap=1;var n=Se();qa=i;var t="\0",e="\0",r="";function i(f){this._isDirected=n.has(f,"directed")?f.directed:!0,this._isMultigraph=n.has(f,"multigraph")?f.multigraph:!1,this._isCompound=n.has(f,"compound")?f.compound:!1,this._label=void 0,this._defaultNodeLabelFn=n.constant(void 0),this._defaultEdgeLabelFn=n.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={}}i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(f){return this._label=f,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(f){return n.isFunction(f)||(f=n.constant(f)),this._defaultNodeLabelFn=f,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return n.keys(this._nodes)},i.prototype.sources=function(){var f=this;return n.filter(this.nodes(),function(l){return n.isEmpty(f._in[l])})},i.prototype.sinks=function(){var f=this;return n.filter(this.nodes(),function(l){return n.isEmpty(f._out[l])})},i.prototype.setNodes=function(f,l){var h=arguments,g=this;return n.each(f,function(p){h.length>1?g.setNode(p,l):g.setNode(p)}),this},i.prototype.setNode=function(f,l){return n.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=l),this):(this._nodes[f]=arguments.length>1?l:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=e,this._children[f]={},this._children[e][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},i.prototype.node=function(f){return this._nodes[f]},i.prototype.hasNode=function(f){return n.has(this._nodes,f)},i.prototype.removeNode=function(f){var l=this;if(n.has(this._nodes,f)){var h=function(g){l.removeEdge(l._edgeObjs[g])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],n.each(this.children(f),function(g){l.setParent(g)}),delete this._children[f]),n.each(n.keys(this._in[f]),h),delete this._in[f],delete this._preds[f],n.each(n.keys(this._out[f]),h),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},i.prototype.setParent=function(f,l){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(n.isUndefined(l))l=e;else{l+="";for(var h=l;!n.isUndefined(h);h=this.parent(h))if(h===f)throw new Error("Setting "+l+" as parent of "+f+" would create a cycle");this.setNode(l)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=l,this._children[l][f]=!0,this},i.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},i.prototype.parent=function(f){if(this._isCompound){var l=this._parent[f];if(l!==e)return l}},i.prototype.children=function(f){if(n.isUndefined(f)&&(f=e),this._isCompound){var l=this._children[f];if(l)return n.keys(l)}else{if(f===e)return this.nodes();if(this.hasNode(f))return[]}},i.prototype.predecessors=function(f){var l=this._preds[f];if(l)return n.keys(l)},i.prototype.successors=function(f){var l=this._sucs[f];if(l)return n.keys(l)},i.prototype.neighbors=function(f){var l=this.predecessors(f);if(l)return n.union(l,this.successors(f))},i.prototype.isLeaf=function(f){var l;return this.isDirected()?l=this.successors(f):l=this.neighbors(f),l.length===0},i.prototype.filterNodes=function(f){var l=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});l.setGraph(this.graph());var h=this;n.each(this._nodes,function(v,m){f(m)&&l.setNode(m,v)}),n.each(this._edgeObjs,function(v){l.hasNode(v.v)&&l.hasNode(v.w)&&l.setEdge(v,h.edge(v))});var g={};function p(v){var m=h.parent(v);return m===void 0||l.hasNode(m)?(g[v]=m,m):m in g?g[m]:p(m)}return this._isCompound&&n.each(l.nodes(),function(v){l.setParent(v,p(v))}),l},i.prototype.setDefaultEdgeLabel=function(f){return n.isFunction(f)||(f=n.constant(f)),this._defaultEdgeLabelFn=f,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return n.values(this._edgeObjs)},i.prototype.setPath=function(f,l){var h=this,g=arguments;return n.reduce(f,function(p,v){return g.length>1?h.setEdge(p,v,l):h.setEdge(p,v),v}),this},i.prototype.setEdge=function(){var f,l,h,g,p=!1,v=arguments[0];typeof v=="object"&&v!==null&&"v"in v?(f=v.v,l=v.w,h=v.name,arguments.length===2&&(g=arguments[1],p=!0)):(f=v,l=arguments[1],h=arguments[3],arguments.length>2&&(g=arguments[2],p=!0)),f=""+f,l=""+l,n.isUndefined(h)||(h=""+h);var m=a(this._isDirected,f,l,h);if(n.has(this._edgeLabels,m))return p&&(this._edgeLabels[m]=g),this;if(!n.isUndefined(h)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(l),this._edgeLabels[m]=p?g:this._defaultEdgeLabelFn(f,l,h);var d=u(this._isDirected,f,l,h);return f=d.v,l=d.w,Object.freeze(d),this._edgeObjs[m]=d,s(this._preds[l],f),s(this._sucs[f],l),this._in[l][m]=d,this._out[f][m]=d,this._edgeCount++,this},i.prototype.edge=function(f,l,h){var g=arguments.length===1?c(this._isDirected,arguments[0]):a(this._isDirected,f,l,h);return this._edgeLabels[g]},i.prototype.hasEdge=function(f,l,h){var g=arguments.length===1?c(this._isDirected,arguments[0]):a(this._isDirected,f,l,h);return n.has(this._edgeLabels,g)},i.prototype.removeEdge=function(f,l,h){var g=arguments.length===1?c(this._isDirected,arguments[0]):a(this._isDirected,f,l,h),p=this._edgeObjs[g];return p&&(f=p.v,l=p.w,delete this._edgeLabels[g],delete this._edgeObjs[g],o(this._preds[l],f),o(this._sucs[f],l),delete this._in[l][g],delete this._out[f][g],this._edgeCount--),this},i.prototype.inEdges=function(f,l){var h=this._in[f];if(h){var g=n.values(h);return l?n.filter(g,function(p){return p.v===l}):g}},i.prototype.outEdges=function(f,l){var h=this._out[f];if(h){var g=n.values(h);return l?n.filter(g,function(p){return p.w===l}):g}},i.prototype.nodeEdges=function(f,l){var h=this.inEdges(f,l);if(h)return h.concat(this.outEdges(f,l))};function s(f,l){f[l]?f[l]++:f[l]=1}function o(f,l){--f[l]||delete f[l]}function a(f,l,h,g){var p=""+l,v=""+h;if(!f&&p>v){var m=p;p=v,v=m}return p+r+v+r+(n.isUndefined(g)?t:g)}function u(f,l,h,g){var p=""+l,v=""+h;if(!f&&p>v){var m=p;p=v,v=m}var d={v:p,w:v};return g&&(d.name=g),d}function c(f,l){return a(f,l.v,l.w,l.name)}return qa}var Aa,up;function ME(){return up||(up=1,Aa="2.1.8"),Aa}var Ia,cp;function SE(){return cp||(cp=1,Ia={Graph:Oa(),version:ME()}),Ia}var Ta,fp;function RE(){if(fp)return Ta;fp=1;var n=Se(),t=Oa();Ta={write:e,read:s};function e(o){var a={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:r(o),edges:i(o)};return n.isUndefined(o.graph())||(a.value=n.clone(o.graph())),a}function r(o){return n.map(o.nodes(),function(a){var u=o.node(a),c=o.parent(a),f={v:a};return n.isUndefined(u)||(f.value=u),n.isUndefined(c)||(f.parent=c),f})}function i(o){return n.map(o.edges(),function(a){var u=o.edge(a),c={v:a.v,w:a.w};return n.isUndefined(a.name)||(c.name=a.name),n.isUndefined(u)||(c.value=u),c})}function s(o){var a=new t(o.options).setGraph(o.value);return n.each(o.nodes,function(u){a.setNode(u.v,u.value),u.parent&&a.setParent(u.v,u.parent)}),n.each(o.edges,function(u){a.setEdge({v:u.v,w:u.w,name:u.name},u.value)}),a}return Ta}var ka,lp;function qE(){if(lp)return ka;lp=1;var n=Se();ka=t;function t(e){var r={},i=[],s;function o(a){n.has(r,a)||(r[a]=!0,s.push(a),n.each(e.successors(a),o),n.each(e.predecessors(a),o))}return n.each(e.nodes(),function(a){s=[],o(a),s.length&&i.push(s)}),i}return ka}var ja,hp;function dp(){if(hp)return ja;hp=1;var n=Se();ja=t;function t(){this._arr=[],this._keyIndices={}}return t.prototype.size=function(){return this._arr.length},t.prototype.keys=function(){return this._arr.map(function(e){return e.key})},t.prototype.has=function(e){return n.has(this._keyIndices,e)},t.prototype.priority=function(e){var r=this._keyIndices[e];if(r!==void 0)return this._arr[r].priority},t.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},t.prototype.add=function(e,r){var i=this._keyIndices;if(e=String(e),!n.has(i,e)){var s=this._arr,o=s.length;return i[e]=o,s.push({key:e,priority:r}),this._decrease(o),!0}return!1},t.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},t.prototype.decrease=function(e,r){var i=this._keyIndices[e];if(r>this._arr[i].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[i].priority+" New: "+r);this._arr[i].priority=r,this._decrease(i)},t.prototype._heapify=function(e){var r=this._arr,i=2*e,s=i+1,o=e;i<r.length&&(o=r[i].priority<r[o].priority?i:o,s<r.length&&(o=r[s].priority<r[o].priority?s:o),o!==e&&(this._swap(e,o),this._heapify(o)))},t.prototype._decrease=function(e){for(var r=this._arr,i=r[e].priority,s;e!==0&&(s=e>>1,!(r[s].priority<i));)this._swap(e,s),e=s},t.prototype._swap=function(e,r){var i=this._arr,s=this._keyIndices,o=i[e],a=i[r];i[e]=a,i[r]=o,s[a.key]=e,s[o.key]=r},ja}var Ca,gp;function pp(){if(gp)return Ca;gp=1;var n=Se(),t=dp();Ca=r;var e=n.constant(1);function r(s,o,a,u){return i(s,String(o),a||e,u||function(c){return s.outEdges(c)})}function i(s,o,a,u){var c={},f=new t,l,h,g=function(p){var v=p.v!==l?p.v:p.w,m=c[v],d=a(p),y=h.distance+d;if(d<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+p+" Weight: "+d);y<m.distance&&(m.distance=y,m.predecessor=l,f.decrease(v,y))};for(s.nodes().forEach(function(p){var v=p===o?0:Number.POSITIVE_INFINITY;c[p]={distance:v},f.add(p,v)});f.size()>0&&(l=f.removeMin(),h=c[l],h.distance!==Number.POSITIVE_INFINITY);)u(l).forEach(g);return c}return Ca}var Pa,vp;function OE(){if(vp)return Pa;vp=1;var n=pp(),t=Se();Pa=e;function e(r,i,s){return t.transform(r.nodes(),function(o,a){o[a]=n(r,a,i,s)},{})}return Pa}var La,mp;function yp(){if(mp)return La;mp=1;var n=Se();La=t;function t(e){var r=0,i=[],s={},o=[];function a(u){var c=s[u]={onStack:!0,lowlink:r,index:r++};if(i.push(u),e.successors(u).forEach(function(h){n.has(s,h)?s[h].onStack&&(c.lowlink=Math.min(c.lowlink,s[h].index)):(a(h),c.lowlink=Math.min(c.lowlink,s[h].lowlink))}),c.lowlink===c.index){var f=[],l;do l=i.pop(),s[l].onStack=!1,f.push(l);while(u!==l);o.push(f)}}return e.nodes().forEach(function(u){n.has(s,u)||a(u)}),o}return La}var Da,wp;function AE(){if(wp)return Da;wp=1;var n=Se(),t=yp();Da=e;function e(r){return n.filter(t(r),function(i){return i.length>1||i.length===1&&r.hasEdge(i[0],i[0])})}return Da}var za,bp;function IE(){if(bp)return za;bp=1;var n=Se();za=e;var t=n.constant(1);function e(i,s,o){return r(i,s||t,o||function(a){return i.outEdges(a)})}function r(i,s,o){var a={},u=i.nodes();return u.forEach(function(c){a[c]={},a[c][c]={distance:0},u.forEach(function(f){c!==f&&(a[c][f]={distance:Number.POSITIVE_INFINITY})}),o(c).forEach(function(f){var l=f.v===c?f.w:f.v,h=s(f);a[c][l]={distance:h,predecessor:c}})}),u.forEach(function(c){var f=a[c];u.forEach(function(l){var h=a[l];u.forEach(function(g){var p=h[c],v=f[g],m=h[g],d=p.distance+v.distance;d<m.distance&&(m.distance=d,m.predecessor=v.predecessor)})})}),a}return za}var $a,_p;function Ep(){if(_p)return $a;_p=1;var n=Se();$a=t,t.CycleException=e;function t(r){var i={},s={},o=[];function a(u){if(n.has(s,u))throw new e;n.has(i,u)||(s[u]=!0,i[u]=!0,n.each(r.predecessors(u),a),delete s[u],o.push(u))}if(n.each(r.sinks(),a),n.size(i)!==r.nodeCount())throw new e;return o}function e(){}return e.prototype=new Error,$a}var Fa,xp;function TE(){if(xp)return Fa;xp=1;var n=Ep();Fa=t;function t(e){try{n(e)}catch(r){if(r instanceof n.CycleException)return!1;throw r}return!0}return Fa}var Ba,Np;function Mp(){if(Np)return Ba;Np=1;var n=Se();Ba=t;function t(r,i,s){n.isArray(i)||(i=[i]);var o=(r.isDirected()?r.successors:r.neighbors).bind(r),a=[],u={};return n.each(i,function(c){if(!r.hasNode(c))throw new Error("Graph does not have node: "+c);e(r,c,s==="post",u,o,a)}),a}function e(r,i,s,o,a,u){n.has(o,i)||(o[i]=!0,s||u.push(i),n.each(a(i),function(c){e(r,c,s,o,a,u)}),s&&u.push(i))}return Ba}var Ua,Sp;function kE(){if(Sp)return Ua;Sp=1;var n=Mp();Ua=t;function t(e,r){return n(e,r,"post")}return Ua}var Ga,Rp;function jE(){if(Rp)return Ga;Rp=1;var n=Mp();Ga=t;function t(e,r){return n(e,r,"pre")}return Ga}var Va,qp;function CE(){if(qp)return Va;qp=1;var n=Se(),t=Oa(),e=dp();Va=r;function r(i,s){var o=new t,a={},u=new e,c;function f(h){var g=h.v===c?h.w:h.v,p=u.priority(g);if(p!==void 0){var v=s(h);v<p&&(a[g]=c,u.decrease(g,v))}}if(i.nodeCount()===0)return o;n.each(i.nodes(),function(h){u.add(h,Number.POSITIVE_INFINITY),o.setNode(h)}),u.decrease(i.nodes()[0],0);for(var l=!1;u.size()>0;){if(c=u.removeMin(),n.has(a,c))o.setEdge(c,a[c]);else{if(l)throw new Error("Input graph is not connected: "+i);l=!0}i.nodeEdges(c).forEach(f)}return o}return Va}var Wa,Op;function PE(){return Op||(Op=1,Wa={components:qE(),dijkstra:pp(),dijkstraAll:OE(),findCycles:AE(),floydWarshall:IE(),isAcyclic:TE(),postorder:kE(),preorder:jE(),prim:CE(),tarjan:yp(),topsort:Ep()}),Wa}var Ya,Ap;function LE(){if(Ap)return Ya;Ap=1;var n=SE();return Ya={Graph:n.Graph,json:RE(),alg:PE(),version:n.version},Ya}var Lr;if(typeof Cn=="function")try{Lr=LE()}catch{}Lr||(Lr=window.graphlib);var qe=Lr,Ka,Ip;function DE(){if(Ip)return Ka;Ip=1;var n=rd(),t=1,e=4;function r(i){return n(i,t|e)}return Ka=r,Ka}var Xa,Tp;function Dr(){if(Tp)return Xa;Tp=1;var n=Et(),t=Le(),e=qr(),r=Me();function i(s,o,a){if(!r(a))return!1;var u=typeof o;return(u=="number"?t(a)&&e(o,a.length):u=="string"&&o in a)?n(a[o],s):!1}return Xa=i,Xa}var Za,kp;function zE(){if(kp)return Za;kp=1;var n=Pr(),t=Et(),e=Dr(),r=at(),i=Object.prototype,s=i.hasOwnProperty,o=n(function(a,u){a=Object(a);var c=-1,f=u.length,l=f>2?u[2]:void 0;for(l&&e(u[0],u[1],l)&&(f=1);++c<f;)for(var h=u[c],g=r(h),p=-1,v=g.length;++p<v;){var m=g[p],d=a[m];(d===void 0||t(d,i[m])&&!s.call(a,m))&&(a[m]=h[m])}return a});return Za=o,Za}var Ja,jp;function $E(){if(jp)return Ja;jp=1;var n=De(),t=Le(),e=Ye();function r(i){return function(s,o,a){var u=Object(s);if(!t(s)){var c=n(o,3);s=e(s),o=function(l){return c(u[l],l,u)}}var f=i(s,o,a);return f>-1?u[c?s[f]:f]:void 0}}return Ja=r,Ja}var Qa,Cp;function FE(){if(Cp)return Qa;Cp=1;var n=/\s/;function t(e){for(var r=e.length;r--&&n.test(e.charAt(r)););return r}return Qa=t,Qa}var Ha,Pp;function BE(){if(Pp)return Ha;Pp=1;var n=FE(),t=/^\s+/;function e(r){return r&&r.slice(0,n(r)+1).replace(t,"")}return Ha=e,Ha}var eu,Lp;function UE(){if(Lp)return eu;Lp=1;var n=BE(),t=Me(),e=St(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,o=/^0o[0-7]+$/i,a=parseInt;function u(c){if(typeof c=="number")return c;if(e(c))return r;if(t(c)){var f=typeof c.valueOf=="function"?c.valueOf():c;c=t(f)?f+"":f}if(typeof c!="string")return c===0?c:+c;c=n(c);var l=s.test(c);return l||o.test(c)?a(c.slice(2),l?2:8):i.test(c)?r:+c}return eu=u,eu}var tu,Dp;function zp(){if(Dp)return tu;Dp=1;var n=UE(),t=1/0,e=17976931348623157e292;function r(i){if(!i)return i===0?i:0;if(i=n(i),i===t||i===-t){var s=i<0?-1:1;return s*e}return i===i?i:0}return tu=r,tu}var ru,$p;function GE(){if($p)return ru;$p=1;var n=zp();function t(e){var r=n(e),i=r%1;return r===r?i?r-i:r:0}return ru=t,ru}var nu,Fp;function VE(){if(Fp)return nu;Fp=1;var n=Vg(),t=De(),e=GE(),r=Math.max;function i(s,o,a){var u=s==null?0:s.length;if(!u)return-1;var c=a==null?0:e(a);return c<0&&(c=r(u+c,0)),n(s,t(o,3),c)}return nu=i,nu}var iu,Bp;function WE(){if(Bp)return iu;Bp=1;var n=$E(),t=VE(),e=n(t);return iu=e,iu}var su,Up;function Gp(){if(Up)return su;Up=1;var n=aa();function t(e){var r=e==null?0:e.length;return r?n(e,1):[]}return su=t,su}var ou,Vp;function YE(){if(Vp)return ou;Vp=1;var n=Ws(),t=hd(),e=at();function r(i,s){return i==null?i:n(i,t(s),e)}return ou=r,ou}var au,Wp;function KE(){if(Wp)return au;Wp=1;function n(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}return au=n,au}var uu,Yp;function XE(){if(Yp)return uu;Yp=1;var n=Sr(),t=Ks(),e=De();function r(i,s){var o={};return s=e(s,3),t(i,function(a,u,c){n(o,u,s(a,u,c))}),o}return uu=r,uu}var cu,Kp;function fu(){if(Kp)return cu;Kp=1;var n=St();function t(e,r,i){for(var s=-1,o=e.length;++s<o;){var a=e[s],u=r(a);if(u!=null&&(c===void 0?u===u&&!n(u):i(u,c)))var c=u,f=a}return f}return cu=t,cu}var lu,Xp;function ZE(){if(Xp)return lu;Xp=1;function n(t,e){return t>e}return lu=n,lu}var hu,Zp;function JE(){if(Zp)return hu;Zp=1;var n=fu(),t=ZE(),e=ut();function r(i){return i&&i.length?n(i,e,t):void 0}return hu=r,hu}var du,Jp;function Qp(){if(Jp)return du;Jp=1;var n=Sr(),t=Et();function e(r,i,s){(s!==void 0&&!t(r[i],s)||s===void 0&&!(i in r))&&n(r,i,s)}return du=e,du}var gu,Hp;function QE(){if(Hp)return gu;Hp=1;var n=st(),t=Ir(),e=Ae(),r="[object Object]",i=Function.prototype,s=Object.prototype,o=i.toString,a=s.hasOwnProperty,u=o.call(Object);function c(f){if(!e(f)||n(f)!=r)return!1;var l=t(f);if(l===null)return!0;var h=a.call(l,"constructor")&&l.constructor;return typeof h=="function"&&h instanceof h&&o.call(h)==u}return gu=c,gu}var pu,ev;function tv(){if(ev)return pu;ev=1;function n(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}return pu=n,pu}var vu,rv;function HE(){if(rv)return vu;rv=1;var n=Bt(),t=at();function e(r){return n(r,t(r))}return vu=e,vu}var mu,nv;function ex(){if(nv)return mu;nv=1;var n=Qp(),t=hh(),e=Vh(),r=gh(),i=Zh(),s=Ut(),o=se(),a=tp(),u=Nt(),c=Ft(),f=Me(),l=QE(),h=Wt(),g=tv(),p=HE();function v(m,d,y,w,b,x,M){var N=g(m,y),E=g(d,y),O=M.get(E);if(O){n(m,y,O);return}var _=x?x(N,E,y+"",m,d,M):void 0,S=_===void 0;if(S){var q=o(E),R=!q&&u(E),T=!q&&!R&&h(E);_=E,q||R||T?o(N)?_=N:a(N)?_=r(N):R?(S=!1,_=t(E,!0)):T?(S=!1,_=e(E,!0)):_=[]:l(E)||s(E)?(_=N,s(N)?_=p(N):(!f(N)||c(N))&&(_=i(E))):S=!1}S&&(M.set(E,_),b(_,E,w,x,M),M.delete(E)),n(m,y,_)}return mu=v,mu}var yu,iv;function tx(){if(iv)return yu;iv=1;var n=Mr(),t=Qp(),e=Ws(),r=ex(),i=Me(),s=at(),o=tv();function a(u,c,f,l,h){u!==c&&e(c,function(g,p){if(h||(h=new n),i(g))r(u,c,p,f,a,l,h);else{var v=l?l(o(u,p),g,p+"",u,c,h):void 0;v===void 0&&(v=g),t(u,p,v)}},s)}return yu=a,yu}var wu,sv;function rx(){if(sv)return wu;sv=1;var n=Pr(),t=Dr();function e(r){return n(function(i,s){var o=-1,a=s.length,u=a>1?s[a-1]:void 0,c=a>2?s[2]:void 0;for(u=r.length>3&&typeof u=="function"?(a--,u):void 0,c&&t(s[0],s[1],c)&&(u=a<3?void 0:u,a=1),i=Object(i);++o<a;){var f=s[o];f&&r(i,f,o,u)}return i})}return wu=e,wu}var bu,ov;function nx(){if(ov)return bu;ov=1;var n=tx(),t=rx(),e=t(function(r,i,s){n(r,i,s)});return bu=e,bu}var _u,av;function uv(){if(av)return _u;av=1;function n(t,e){return t<e}return _u=n,_u}var Eu,cv;function ix(){if(cv)return Eu;cv=1;var n=fu(),t=uv(),e=ut();function r(i){return i&&i.length?n(i,e,t):void 0}return Eu=r,Eu}var xu,fv;function sx(){if(fv)return xu;fv=1;var n=fu(),t=De(),e=uv();function r(i,s){return i&&i.length?n(i,t(s,2),e):void 0}return xu=r,xu}var Nu,lv;function ox(){if(lv)return Nu;lv=1;var n=Re(),t=function(){return n.Date.now()};return Nu=t,Nu}var Mu,hv;function ax(){if(hv)return Mu;hv=1;var n=Rr(),t=jr(),e=qr(),r=Me(),i=Kt();function s(o,a,u,c){if(!r(o))return o;a=t(a,o);for(var f=-1,l=a.length,h=l-1,g=o;g!=null&&++f<l;){var p=i(a[f]),v=u;if(p==="__proto__"||p==="constructor"||p==="prototype")return o;if(f!=h){var m=g[p];v=c?c(m,p,g):void 0,v===void 0&&(v=r(m)?m:e(a[f+1])?[]:{})}n(g,p,v),g=g[p]}return o}return Mu=s,Mu}var Su,dv;function ux(){if(dv)return Su;dv=1;var n=Cr(),t=ax(),e=jr();function r(i,s,o){for(var a=-1,u=s.length,c={};++a<u;){var f=s[a],l=n(i,f);o(l,f)&&t(c,e(f,i),l)}return c}return Su=r,Su}var Ru,gv;function cx(){if(gv)return Ru;gv=1;var n=ux(),t=ig();function e(r,i){return n(r,i,function(s,o){return t(r,o)})}return Ru=e,Ru}var qu,pv;function fx(){if(pv)return qu;pv=1;var n=Gp(),t=Dg(),e=Bg();function r(i){return e(t(i,void 0,n),i+"")}return qu=r,qu}var Ou,vv;function lx(){if(vv)return Ou;vv=1;var n=cx(),t=fx(),e=t(function(r,i){return r==null?{}:n(r,i)});return Ou=e,Ou}var Au,mv;function hx(){if(mv)return Au;mv=1;var n=Math.ceil,t=Math.max;function e(r,i,s,o){for(var a=-1,u=t(n((i-r)/(s||1)),0),c=Array(u);u--;)c[o?u:++a]=r,r+=s;return c}return Au=e,Au}var Iu,yv;function dx(){if(yv)return Iu;yv=1;var n=hx(),t=Dr(),e=zp();function r(i){return function(s,o,a){return a&&typeof a!="number"&&t(s,o,a)&&(o=a=void 0),s=e(s),o===void 0?(o=s,s=0):o=e(o),a=a===void 0?s<o?1:-1:e(a),n(s,o,a,i)}}return Iu=r,Iu}var Tu,wv;function gx(){if(wv)return Tu;wv=1;var n=dx(),t=n();return Tu=t,Tu}var ku,bv;function px(){if(bv)return ku;bv=1;function n(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}return ku=n,ku}var ju,_v;function vx(){if(_v)return ju;_v=1;var n=St();function t(e,r){if(e!==r){var i=e!==void 0,s=e===null,o=e===e,a=n(e),u=r!==void 0,c=r===null,f=r===r,l=n(r);if(!c&&!l&&!a&&e>r||a&&u&&f&&!c&&!l||s&&u&&f||!i&&f||!o)return 1;if(!s&&!a&&!l&&e<r||l&&i&&o&&!s&&!a||c&&i&&o||!u&&o||!f)return-1}return 0}return ju=t,ju}var Cu,Ev;function mx(){if(Ev)return Cu;Ev=1;var n=vx();function t(e,r,i){for(var s=-1,o=e.criteria,a=r.criteria,u=o.length,c=i.length;++s<u;){var f=n(o[s],a[s]);if(f){if(s>=c)return f;var l=i[s];return f*(l=="desc"?-1:1)}}return e.index-r.index}return Cu=t,Cu}var Pu,xv;function yx(){if(xv)return Pu;xv=1;var n=kr(),t=Cr(),e=De(),r=bg(),i=px(),s=Or(),o=mx(),a=ut(),u=se();function c(f,l,h){l.length?l=n(l,function(v){return u(v)?function(m){return t(m,v.length===1?v[0]:v)}:v}):l=[a];var g=-1;l=n(l,s(e));var p=r(f,function(v,m,d){var y=n(l,function(w){return w(v)});return{criteria:y,index:++g,value:v}});return i(p,function(v,m){return o(v,m,h)})}return Pu=c,Pu}var Lu,Nv;function wx(){if(Nv)return Lu;Nv=1;var n=aa(),t=yx(),e=Pr(),r=Dr(),i=e(function(s,o){if(s==null)return[];var a=o.length;return a>1&&r(s,o[0],o[1])?o=[]:a>2&&r(o[0],o[1],o[2])&&(o=[o[0]]),t(s,n(o,1),[])});return Lu=i,Lu}var Du,Mv;function bx(){if(Mv)return Du;Mv=1;var n=Xd(),t=0;function e(r){var i=++t;return n(r)+i}return Du=e,Du}var zu,Sv;function _x(){if(Sv)return zu;Sv=1;function n(t,e,r){for(var i=-1,s=t.length,o=e.length,a={};++i<s;){var u=i<o?e[i]:void 0;r(a,t[i],u)}return a}return zu=n,zu}var $u,Rv;function Ex(){if(Rv)return $u;Rv=1;var n=Rr(),t=_x();function e(r,i){return t(r||[],i||[],n)}return $u=e,$u}var zr;if(typeof Cn=="function")try{zr={cloneDeep:DE(),constant:Us(),defaults:zE(),each:vd(),filter:hg(),find:WE(),flatten:Gp(),forEach:gd(),forIn:YE(),has:pg(),isUndefined:yg(),last:KE(),map:Eg(),mapValues:XE(),max:JE(),merge:nx(),min:ix(),minBy:sx(),now:ox(),pick:lx(),range:gx(),reduce:Sg(),sortBy:wx(),uniqueId:bx(),values:sp(),zipObject:Ex()}}catch{}zr||(zr=window._);var ne=zr,xx=$r;function $r(){var n={};n._next=n._prev=n,this._sentinel=n}$r.prototype.dequeue=function(){var n=this._sentinel,t=n._prev;if(t!==n)return qv(t),t},$r.prototype.enqueue=function(n){var t=this._sentinel;n._prev&&n._next&&qv(n),n._next=t._next,t._next._prev=n,t._next=n,n._prev=t},$r.prototype.toString=function(){for(var n=[],t=this._sentinel,e=t._prev;e!==t;)n.push(JSON.stringify(e,Nx)),e=e._prev;return"["+n.join(", ")+"]"};function qv(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function Nx(n,t){if(n!=="_next"&&n!=="_prev")return t}var ze=ne,Mx=qe.Graph,Sx=xx,Rx=Ox,qx=ze.constant(1);function Ox(n,t){if(n.nodeCount()<=1)return[];var e=Ix(n,t||qx),r=Ax(e.graph,e.buckets,e.zeroIdx);return ze.flatten(ze.map(r,function(i){return n.outEdges(i.v,i.w)}),!0)}function Ax(n,t,e){for(var r=[],i=t[t.length-1],s=t[0],o;n.nodeCount();){for(;o=s.dequeue();)Fu(n,t,e,o);for(;o=i.dequeue();)Fu(n,t,e,o);if(n.nodeCount()){for(var a=t.length-2;a>0;--a)if(o=t[a].dequeue(),o){r=r.concat(Fu(n,t,e,o,!0));break}}}return r}function Fu(n,t,e,r,i){var s=i?[]:void 0;return ze.forEach(n.inEdges(r.v),function(o){var a=n.edge(o),u=n.node(o.v);i&&s.push({v:o.v,w:o.w}),u.out-=a,Bu(t,e,u)}),ze.forEach(n.outEdges(r.v),function(o){var a=n.edge(o),u=o.w,c=n.node(u);c.in-=a,Bu(t,e,c)}),n.removeNode(r.v),s}function Ix(n,t){var e=new Mx,r=0,i=0;ze.forEach(n.nodes(),function(a){e.setNode(a,{v:a,in:0,out:0})}),ze.forEach(n.edges(),function(a){var u=e.edge(a.v,a.w)||0,c=t(a),f=u+c;e.setEdge(a.v,a.w,f),i=Math.max(i,e.node(a.v).out+=c),r=Math.max(r,e.node(a.w).in+=c)});var s=ze.range(i+r+3).map(function(){return new Sx}),o=r+1;return ze.forEach(e.nodes(),function(a){Bu(s,o,e.node(a))}),{graph:e,buckets:s,zeroIdx:o}}function Bu(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)}var ct=ne,Tx=Rx,kx={run:jx,undo:Px};function jx(n){var t=n.graph().acyclicer==="greedy"?Tx(n,e(n)):Cx(n);ct.forEach(t,function(r){var i=n.edge(r);n.removeEdge(r),i.forwardName=r.name,i.reversed=!0,n.setEdge(r.w,r.v,i,ct.uniqueId("rev"))});function e(r){return function(i){return r.edge(i).weight}}}function Cx(n){var t=[],e={},r={};function i(s){ct.has(r,s)||(r[s]=!0,e[s]=!0,ct.forEach(n.outEdges(s),function(o){ct.has(e,o.w)?t.push(o):i(o.w)}),delete e[s])}return ct.forEach(n.nodes(),i),t}function Px(n){ct.forEach(n.edges(),function(t){var e=n.edge(t);if(e.reversed){n.removeEdge(t);var r=e.forwardName;delete e.reversed,delete e.forwardName,n.setEdge(t.w,t.v,e,r)}})}var J=ne,Ov=qe.Graph,ve={addDummyNode:Av,simplify:Lx,asNonCompoundGraph:Dx,successorWeights:zx,predecessorWeights:$x,intersectRect:Fx,buildLayerMatrix:Bx,normalizeRanks:Ux,removeEmptyRanks:Gx,addBorderNode:Vx,maxRank:Iv,partition:Wx,time:Yx,notime:Kx};function Av(n,t,e,r){var i;do i=J.uniqueId(r);while(n.hasNode(i));return e.dummy=t,n.setNode(i,e),i}function Lx(n){var t=new Ov().setGraph(n.graph());return J.forEach(n.nodes(),function(e){t.setNode(e,n.node(e))}),J.forEach(n.edges(),function(e){var r=t.edge(e.v,e.w)||{weight:0,minlen:1},i=n.edge(e);t.setEdge(e.v,e.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function Dx(n){var t=new Ov({multigraph:n.isMultigraph()}).setGraph(n.graph());return J.forEach(n.nodes(),function(e){n.children(e).length||t.setNode(e,n.node(e))}),J.forEach(n.edges(),function(e){t.setEdge(e,n.edge(e))}),t}function zx(n){var t=J.map(n.nodes(),function(e){var r={};return J.forEach(n.outEdges(e),function(i){r[i.w]=(r[i.w]||0)+n.edge(i).weight}),r});return J.zipObject(n.nodes(),t)}function $x(n){var t=J.map(n.nodes(),function(e){var r={};return J.forEach(n.inEdges(e),function(i){r[i.v]=(r[i.v]||0)+n.edge(i).weight}),r});return J.zipObject(n.nodes(),t)}function Fx(n,t){var e=n.x,r=n.y,i=t.x-e,s=t.y-r,o=n.width/2,a=n.height/2;if(!i&&!s)throw new Error("Not possible to find intersection inside of the rectangle");var u,c;return Math.abs(s)*o>Math.abs(i)*a?(s<0&&(a=-a),u=a*i/s,c=a):(i<0&&(o=-o),u=o,c=o*s/i),{x:e+u,y:r+c}}function Bx(n){var t=J.map(J.range(Iv(n)+1),function(){return[]});return J.forEach(n.nodes(),function(e){var r=n.node(e),i=r.rank;J.isUndefined(i)||(t[i][r.order]=e)}),t}function Ux(n){var t=J.min(J.map(n.nodes(),function(e){return n.node(e).rank}));J.forEach(n.nodes(),function(e){var r=n.node(e);J.has(r,"rank")&&(r.rank-=t)})}function Gx(n){var t=J.min(J.map(n.nodes(),function(s){return n.node(s).rank})),e=[];J.forEach(n.nodes(),function(s){var o=n.node(s).rank-t;e[o]||(e[o]=[]),e[o].push(s)});var r=0,i=n.graph().nodeRankFactor;J.forEach(e,function(s,o){J.isUndefined(s)&&o%i!==0?--r:r&&J.forEach(s,function(a){n.node(a).rank+=r})})}function Vx(n,t,e,r){var i={width:0,height:0};return arguments.length>=4&&(i.rank=e,i.order=r),Av(n,"border",i,t)}function Iv(n){return J.max(J.map(n.nodes(),function(t){var e=n.node(t).rank;if(!J.isUndefined(e))return e}))}function Wx(n,t){var e={lhs:[],rhs:[]};return J.forEach(n,function(r){t(r)?e.lhs.push(r):e.rhs.push(r)}),e}function Yx(n,t){var e=J.now();try{return t()}finally{console.log(n+" time: "+(J.now()-e)+"ms")}}function Kx(n,t){return t()}var Tv=ne,Xx=ve,Zx={run:Jx,undo:Hx};function Jx(n){n.graph().dummyChains=[],Tv.forEach(n.edges(),function(t){Qx(n,t)})}function Qx(n,t){var e=t.v,r=n.node(e).rank,i=t.w,s=n.node(i).rank,o=t.name,a=n.edge(t),u=a.labelRank;if(s!==r+1){n.removeEdge(t);var c,f,l;for(l=0,++r;r<s;++l,++r)a.points=[],f={width:0,height:0,edgeLabel:a,edgeObj:t,rank:r},c=Xx.addDummyNode(n,"edge",f,"_d"),r===u&&(f.width=a.width,f.height=a.height,f.dummy="edge-label",f.labelpos=a.labelpos),n.setEdge(e,c,{weight:a.weight},o),l===0&&n.graph().dummyChains.push(c),e=c;n.setEdge(e,i,{weight:a.weight},o)}}function Hx(n){Tv.forEach(n.graph().dummyChains,function(t){var e=n.node(t),r=e.edgeLabel,i;for(n.setEdge(e.edgeObj,r);e.dummy;)i=n.successors(t)[0],n.removeNode(t),r.points.push({x:e.x,y:e.y}),e.dummy==="edge-label"&&(r.x=e.x,r.y=e.y,r.width=e.width,r.height=e.height),t=i,e=n.node(t)})}var Fr=ne,Br={longestPath:eN,slack:tN};function eN(n){var t={};function e(r){var i=n.node(r);if(Fr.has(t,r))return i.rank;t[r]=!0;var s=Fr.min(Fr.map(n.outEdges(r),function(o){return e(o.w)-n.edge(o).minlen}));return(s===Number.POSITIVE_INFINITY||s===void 0||s===null)&&(s=0),i.rank=s}Fr.forEach(n.sources(),e)}function tN(n,t){return n.node(t.w).rank-n.node(t.v).rank-n.edge(t).minlen}var Ur=ne,rN=qe.Graph,Gr=Br.slack,kv=nN;function nN(n){var t=new rN({directed:!1}),e=n.nodes()[0],r=n.nodeCount();t.setNode(e,{});for(var i,s;iN(t,n)<r;)i=sN(t,n),s=t.hasNode(i.v)?Gr(n,i):-Gr(n,i),oN(t,n,s);return t}function iN(n,t){function e(r){Ur.forEach(t.nodeEdges(r),function(i){var s=i.v,o=r===s?i.w:s;!n.hasNode(o)&&!Gr(t,i)&&(n.setNode(o,{}),n.setEdge(r,o,{}),e(o))})}return Ur.forEach(n.nodes(),e),n.nodeCount()}function sN(n,t){return Ur.minBy(t.edges(),function(e){if(n.hasNode(e.v)!==n.hasNode(e.w))return Gr(t,e)})}function oN(n,t,e){Ur.forEach(n.nodes(),function(r){t.node(r).rank+=e})}var $e=ne,aN=kv,uN=Br.slack,cN=Br.longestPath,fN=qe.alg.preorder,lN=qe.alg.postorder,hN=ve.simplify,dN=ft;ft.initLowLimValues=Gu,ft.initCutValues=Uu,ft.calcCutValue=jv,ft.leaveEdge=Pv,ft.enterEdge=Lv,ft.exchangeEdges=Dv;function ft(n){n=hN(n),cN(n);var t=aN(n);Gu(t),Uu(t,n);for(var e,r;e=Pv(t);)r=Lv(t,n,e),Dv(t,n,e,r)}function Uu(n,t){var e=lN(n,n.nodes());e=e.slice(0,e.length-1),$e.forEach(e,function(r){gN(n,t,r)})}function gN(n,t,e){var r=n.node(e),i=r.parent;n.edge(e,i).cutvalue=jv(n,t,e)}function jv(n,t,e){var r=n.node(e),i=r.parent,s=!0,o=t.edge(e,i),a=0;return o||(s=!1,o=t.edge(i,e)),a=o.weight,$e.forEach(t.nodeEdges(e),function(u){var c=u.v===e,f=c?u.w:u.v;if(f!==i){var l=c===s,h=t.edge(u).weight;if(a+=l?h:-h,vN(n,e,f)){var g=n.edge(e,f).cutvalue;a+=l?-g:g}}}),a}function Gu(n,t){arguments.length<2&&(t=n.nodes()[0]),Cv(n,{},1,t)}function Cv(n,t,e,r,i){var s=e,o=n.node(r);return t[r]=!0,$e.forEach(n.neighbors(r),function(a){$e.has(t,a)||(e=Cv(n,t,e,a,r))}),o.low=s,o.lim=e++,i?o.parent=i:delete o.parent,e}function Pv(n){return $e.find(n.edges(),function(t){return n.edge(t).cutvalue<0})}function Lv(n,t,e){var r=e.v,i=e.w;t.hasEdge(r,i)||(r=e.w,i=e.v);var s=n.node(r),o=n.node(i),a=s,u=!1;s.lim>o.lim&&(a=o,u=!0);var c=$e.filter(t.edges(),function(f){return u===zv(n,n.node(f.v),a)&&u!==zv(n,n.node(f.w),a)});return $e.minBy(c,function(f){return uN(t,f)})}function Dv(n,t,e,r){var i=e.v,s=e.w;n.removeEdge(i,s),n.setEdge(r.v,r.w,{}),Gu(n),Uu(n,t),pN(n,t)}function pN(n,t){var e=$e.find(n.nodes(),function(i){return!t.node(i).parent}),r=fN(n,e);r=r.slice(1),$e.forEach(r,function(i){var s=n.node(i).parent,o=t.edge(i,s),a=!1;o||(o=t.edge(s,i),a=!0),t.node(i).rank=t.node(s).rank+(a?o.minlen:-o.minlen)})}function vN(n,t,e){return n.hasEdge(t,e)}function zv(n,t,e){return e.low<=t.lim&&t.lim<=e.lim}var mN=Br,$v=mN.longestPath,yN=kv,wN=dN,bN=_N;function _N(n){switch(n.graph().ranker){case"network-simplex":Fv(n);break;case"tight-tree":xN(n);break;case"longest-path":EN(n);break;default:Fv(n)}}var EN=$v;function xN(n){$v(n),yN(n)}function Fv(n){wN(n)}var Vu=ne,NN=MN;function MN(n){var t=RN(n);Vu.forEach(n.graph().dummyChains,function(e){for(var r=n.node(e),i=r.edgeObj,s=SN(n,t,i.v,i.w),o=s.path,a=s.lca,u=0,c=o[u],f=!0;e!==i.w;){if(r=n.node(e),f){for(;(c=o[u])!==a&&n.node(c).maxRank<r.rank;)u++;c===a&&(f=!1)}if(!f){for(;u<o.length-1&&n.node(c=o[u+1]).minRank<=r.rank;)u++;c=o[u]}n.setParent(e,c),e=n.successors(e)[0]}})}function SN(n,t,e,r){var i=[],s=[],o=Math.min(t[e].low,t[r].low),a=Math.max(t[e].lim,t[r].lim),u,c;u=e;do u=n.parent(u),i.push(u);while(u&&(t[u].low>o||a>t[u].lim));for(c=u,u=r;(u=n.parent(u))!==c;)s.push(u);return{path:i.concat(s.reverse()),lca:c}}function RN(n){var t={},e=0;function r(i){var s=e;Vu.forEach(n.children(i),r),t[i]={low:s,lim:e++}}return Vu.forEach(n.children(),r),t}var Fe=ne,Wu=ve,qN={run:ON,cleanup:TN};function ON(n){var t=Wu.addDummyNode(n,"root",{},"_root"),e=AN(n),r=Fe.max(Fe.values(e))-1,i=2*r+1;n.graph().nestingRoot=t,Fe.forEach(n.edges(),function(o){n.edge(o).minlen*=i});var s=IN(n)+1;Fe.forEach(n.children(),function(o){Bv(n,t,i,s,r,e,o)}),n.graph().nodeRankFactor=i}function Bv(n,t,e,r,i,s,o){var a=n.children(o);if(!a.length){o!==t&&n.setEdge(t,o,{weight:0,minlen:e});return}var u=Wu.addBorderNode(n,"_bt"),c=Wu.addBorderNode(n,"_bb"),f=n.node(o);n.setParent(u,o),f.borderTop=u,n.setParent(c,o),f.borderBottom=c,Fe.forEach(a,function(l){Bv(n,t,e,r,i,s,l);var h=n.node(l),g=h.borderTop?h.borderTop:l,p=h.borderBottom?h.borderBottom:l,v=h.borderTop?r:2*r,m=g!==p?1:i-s[o]+1;n.setEdge(u,g,{weight:v,minlen:m,nestingEdge:!0}),n.setEdge(p,c,{weight:v,minlen:m,nestingEdge:!0})}),n.parent(o)||n.setEdge(t,u,{weight:0,minlen:i+s[o]})}function AN(n){var t={};function e(r,i){var s=n.children(r);s&&s.length&&Fe.forEach(s,function(o){e(o,i+1)}),t[r]=i}return Fe.forEach(n.children(),function(r){e(r,1)}),t}function IN(n){return Fe.reduce(n.edges(),function(t,e){return t+n.edge(e).weight},0)}function TN(n){var t=n.graph();n.removeNode(t.nestingRoot),delete t.nestingRoot,Fe.forEach(n.edges(),function(e){var r=n.edge(e);r.nestingEdge&&n.removeEdge(e)})}var Yu=ne,kN=ve,jN=CN;function CN(n){function t(e){var r=n.children(e),i=n.node(e);if(r.length&&Yu.forEach(r,t),Yu.has(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var s=i.minRank,o=i.maxRank+1;s<o;++s)Uv(n,"borderLeft","_bl",e,i,s),Uv(n,"borderRight","_br",e,i,s)}}Yu.forEach(n.children(),t)}function Uv(n,t,e,r,i,s){var o={width:0,height:0,rank:s,borderType:t},a=i[t][s-1],u=kN.addDummyNode(n,"border",o,e);i[t][s]=u,n.setParent(u,r),a&&n.setEdge(a,u,{weight:1})}var Ie=ne,PN={adjust:LN,undo:DN};function LN(n){var t=n.graph().rankdir.toLowerCase();(t==="lr"||t==="rl")&&Gv(n)}function DN(n){var t=n.graph().rankdir.toLowerCase();(t==="bt"||t==="rl")&&zN(n),(t==="lr"||t==="rl")&&($N(n),Gv(n))}function Gv(n){Ie.forEach(n.nodes(),function(t){Vv(n.node(t))}),Ie.forEach(n.edges(),function(t){Vv(n.edge(t))})}function Vv(n){var t=n.width;n.width=n.height,n.height=t}function zN(n){Ie.forEach(n.nodes(),function(t){Ku(n.node(t))}),Ie.forEach(n.edges(),function(t){var e=n.edge(t);Ie.forEach(e.points,Ku),Ie.has(e,"y")&&Ku(e)})}function Ku(n){n.y=-n.y}function $N(n){Ie.forEach(n.nodes(),function(t){Xu(n.node(t))}),Ie.forEach(n.edges(),function(t){var e=n.edge(t);Ie.forEach(e.points,Xu),Ie.has(e,"x")&&Xu(e)})}function Xu(n){var t=n.x;n.x=n.y,n.y=t}var Be=ne,FN=BN;function BN(n){var t={},e=Be.filter(n.nodes(),function(a){return!n.children(a).length}),r=Be.max(Be.map(e,function(a){return n.node(a).rank})),i=Be.map(Be.range(r+1),function(){return[]});function s(a){if(!Be.has(t,a)){t[a]=!0;var u=n.node(a);i[u.rank].push(a),Be.forEach(n.successors(a),s)}}var o=Be.sortBy(e,function(a){return n.node(a).rank});return Be.forEach(o,s),i}var Ke=ne,UN=GN;function GN(n,t){for(var e=0,r=1;r<t.length;++r)e+=VN(n,t[r-1],t[r]);return e}function VN(n,t,e){for(var r=Ke.zipObject(e,Ke.map(e,function(c,f){return f})),i=Ke.flatten(Ke.map(t,function(c){return Ke.sortBy(Ke.map(n.outEdges(c),function(f){return{pos:r[f.w],weight:n.edge(f).weight}}),"pos")}),!0),s=1;s<e.length;)s<<=1;var o=2*s-1;s-=1;var a=Ke.map(new Array(o),function(){return 0}),u=0;return Ke.forEach(i.forEach(function(c){var f=c.pos+s;a[f]+=c.weight;for(var l=0;f>0;)f%2&&(l+=a[f+1]),f=f-1>>1,a[f]+=c.weight;u+=c.weight*l})),u}var Wv=ne,WN=YN;function YN(n,t){return Wv.map(t,function(e){var r=n.inEdges(e);if(r.length){var i=Wv.reduce(r,function(s,o){var a=n.edge(o),u=n.node(o.v);return{sum:s.sum+a.weight*u.order,weight:s.weight+a.weight}},{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:e}})}var be=ne,KN=XN;function XN(n,t){var e={};be.forEach(n,function(i,s){var o=e[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:s};be.isUndefined(i.barycenter)||(o.barycenter=i.barycenter,o.weight=i.weight)}),be.forEach(t.edges(),function(i){var s=e[i.v],o=e[i.w];!be.isUndefined(s)&&!be.isUndefined(o)&&(o.indegree++,s.out.push(e[i.w]))});var r=be.filter(e,function(i){return!i.indegree});return ZN(r)}function ZN(n){var t=[];function e(s){return function(o){o.merged||(be.isUndefined(o.barycenter)||be.isUndefined(s.barycenter)||o.barycenter>=s.barycenter)&&JN(s,o)}}function r(s){return function(o){o.in.push(s),--o.indegree===0&&n.push(o)}}for(;n.length;){var i=n.pop();t.push(i),be.forEach(i.in.reverse(),e(i)),be.forEach(i.out,r(i))}return be.map(be.filter(t,function(s){return!s.merged}),function(s){return be.pick(s,["vs","i","barycenter","weight"])})}function JN(n,t){var e=0,r=0;n.weight&&(e+=n.barycenter*n.weight,r+=n.weight),t.weight&&(e+=t.barycenter*t.weight,r+=t.weight),n.vs=t.vs.concat(n.vs),n.barycenter=e/r,n.weight=r,n.i=Math.min(t.i,n.i),t.merged=!0}var Xt=ne,QN=ve,HN=eM;function eM(n,t){var e=QN.partition(n,function(f){return Xt.has(f,"barycenter")}),r=e.lhs,i=Xt.sortBy(e.rhs,function(f){return-f.i}),s=[],o=0,a=0,u=0;r.sort(tM(!!t)),u=Yv(s,i,u),Xt.forEach(r,function(f){u+=f.vs.length,s.push(f.vs),o+=f.barycenter*f.weight,a+=f.weight,u=Yv(s,i,u)});var c={vs:Xt.flatten(s,!0)};return a&&(c.barycenter=o/a,c.weight=a),c}function Yv(n,t,e){for(var r;t.length&&(r=Xt.last(t)).i<=e;)t.pop(),n.push(r.vs),e++;return e}function tM(n){return function(t,e){return t.barycenter<e.barycenter?-1:t.barycenter>e.barycenter?1:n?e.i-t.i:t.i-e.i}}var Xe=ne,rM=WN,nM=KN,iM=HN,sM=Kv;function Kv(n,t,e,r){var i=n.children(t),s=n.node(t),o=s?s.borderLeft:void 0,a=s?s.borderRight:void 0,u={};o&&(i=Xe.filter(i,function(p){return p!==o&&p!==a}));var c=rM(n,i);Xe.forEach(c,function(p){if(n.children(p.v).length){var v=Kv(n,p.v,e,r);u[p.v]=v,Xe.has(v,"barycenter")&&aM(p,v)}});var f=nM(c,e);oM(f,u);var l=iM(f,r);if(o&&(l.vs=Xe.flatten([o,l.vs,a],!0),n.predecessors(o).length)){var h=n.node(n.predecessors(o)[0]),g=n.node(n.predecessors(a)[0]);Xe.has(l,"barycenter")||(l.barycenter=0,l.weight=0),l.barycenter=(l.barycenter*l.weight+h.order+g.order)/(l.weight+2),l.weight+=2}return l}function oM(n,t){Xe.forEach(n,function(e){e.vs=Xe.flatten(e.vs.map(function(r){return t[r]?t[r].vs:r}),!0)})}function aM(n,t){Xe.isUndefined(n.barycenter)?(n.barycenter=t.barycenter,n.weight=t.weight):(n.barycenter=(n.barycenter*n.weight+t.barycenter*t.weight)/(n.weight+t.weight),n.weight+=t.weight)}var Zt=ne,uM=qe.Graph,cM=fM;function fM(n,t,e){var r=lM(n),i=new uM({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(function(s){return n.node(s)});return Zt.forEach(n.nodes(),function(s){var o=n.node(s),a=n.parent(s);(o.rank===t||o.minRank<=t&&t<=o.maxRank)&&(i.setNode(s),i.setParent(s,a||r),Zt.forEach(n[e](s),function(u){var c=u.v===s?u.w:u.v,f=i.edge(c,s),l=Zt.isUndefined(f)?0:f.weight;i.setEdge(c,s,{weight:n.edge(u).weight+l})}),Zt.has(o,"minRank")&&i.setNode(s,{borderLeft:o.borderLeft[t],borderRight:o.borderRight[t]}))}),i}function lM(n){for(var t;n.hasNode(t=Zt.uniqueId("_root")););return t}var hM=ne,dM=gM;function gM(n,t,e){var r={},i;hM.forEach(e,function(s){for(var o=n.parent(s),a,u;o;){if(a=n.parent(o),a?(u=r[a],r[a]=o):(u=i,i=o),u&&u!==o){t.setEdge(u,o);return}o=a}})}var Ze=ne,pM=FN,vM=UN,mM=sM,yM=cM,wM=dM,bM=qe.Graph,Xv=ve,_M=EM;function EM(n){var t=Xv.maxRank(n),e=Zv(n,Ze.range(1,t+1),"inEdges"),r=Zv(n,Ze.range(t-1,-1,-1),"outEdges"),i=pM(n);Jv(n,i);for(var s=Number.POSITIVE_INFINITY,o,a=0,u=0;u<4;++a,++u){xM(a%2?e:r,a%4>=2),i=Xv.buildLayerMatrix(n);var c=vM(n,i);c<s&&(u=0,o=Ze.cloneDeep(i),s=c)}Jv(n,o)}function Zv(n,t,e){return Ze.map(t,function(r){return yM(n,r,e)})}function xM(n,t){var e=new bM;Ze.forEach(n,function(r){var i=r.graph().root,s=mM(r,i,e,t);Ze.forEach(s.vs,function(o,a){r.node(o).order=a}),wM(r,e,s.vs)})}function Jv(n,t){Ze.forEach(t,function(e){Ze.forEach(e,function(r,i){n.node(r).order=i})})}var W=ne,NM=qe.Graph,MM=ve,SM={positionX:LM};function RM(n,t){var e={};function r(i,s){var o=0,a=0,u=i.length,c=W.last(s);return W.forEach(s,function(f,l){var h=OM(n,f),g=h?n.node(h).order:u;(h||f===c)&&(W.forEach(s.slice(a,l+1),function(p){W.forEach(n.predecessors(p),function(v){var m=n.node(v),d=m.order;(d<o||g<d)&&!(m.dummy&&n.node(p).dummy)&&Qv(e,v,p)})}),a=l+1,o=g)}),s}return W.reduce(t,r),e}function qM(n,t){var e={};function r(s,o,a,u,c){var f;W.forEach(W.range(o,a),function(l){f=s[l],n.node(f).dummy&&W.forEach(n.predecessors(f),function(h){var g=n.node(h);g.dummy&&(g.order<u||g.order>c)&&Qv(e,h,f)})})}function i(s,o){var a=-1,u,c=0;return W.forEach(o,function(f,l){if(n.node(f).dummy==="border"){var h=n.predecessors(f);h.length&&(u=n.node(h[0]).order,r(o,c,l,a,u),c=l,a=u)}r(o,c,o.length,u,s.length)}),o}return W.reduce(t,i),e}function OM(n,t){if(n.node(t).dummy)return W.find(n.predecessors(t),function(e){return n.node(e).dummy})}function Qv(n,t,e){if(t>e){var r=t;t=e,e=r}var i=n[t];i||(n[t]=i={}),i[e]=!0}function AM(n,t,e){if(t>e){var r=t;t=e,e=r}return W.has(n[t],e)}function IM(n,t,e,r){var i={},s={},o={};return W.forEach(t,function(a){W.forEach(a,function(u,c){i[u]=u,s[u]=u,o[u]=c})}),W.forEach(t,function(a){var u=-1;W.forEach(a,function(c){var f=r(c);if(f.length){f=W.sortBy(f,function(v){return o[v]});for(var l=(f.length-1)/2,h=Math.floor(l),g=Math.ceil(l);h<=g;++h){var p=f[h];s[c]===c&&u<o[p]&&!AM(e,c,p)&&(s[p]=c,s[c]=i[c]=i[p],u=o[p])}}})}),{root:i,align:s}}function TM(n,t,e,r,i){var s={},o=kM(n,t,e,i),a=i?"borderLeft":"borderRight";function u(l,h){for(var g=o.nodes(),p=g.pop(),v={};p;)v[p]?l(p):(v[p]=!0,g.push(p),g=g.concat(h(p))),p=g.pop()}function c(l){s[l]=o.inEdges(l).reduce(function(h,g){return Math.max(h,s[g.v]+o.edge(g))},0)}function f(l){var h=o.outEdges(l).reduce(function(p,v){return Math.min(p,s[v.w]-o.edge(v))},Number.POSITIVE_INFINITY),g=n.node(l);h!==Number.POSITIVE_INFINITY&&g.borderType!==a&&(s[l]=Math.max(s[l],h))}return u(c,o.predecessors.bind(o)),u(f,o.successors.bind(o)),W.forEach(r,function(l){s[l]=s[e[l]]}),s}function kM(n,t,e,r){var i=new NM,s=n.graph(),o=DM(s.nodesep,s.edgesep,r);return W.forEach(t,function(a){var u;W.forEach(a,function(c){var f=e[c];if(i.setNode(f),u){var l=e[u],h=i.edge(l,f);i.setEdge(l,f,Math.max(o(n,c,u),h||0))}u=c})}),i}function jM(n,t){return W.minBy(W.values(t),function(e){var r=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return W.forIn(e,function(s,o){var a=zM(n,o)/2;r=Math.max(s+a,r),i=Math.min(s-a,i)}),r-i})}function CM(n,t){var e=W.values(t),r=W.min(e),i=W.max(e);W.forEach(["u","d"],function(s){W.forEach(["l","r"],function(o){var a=s+o,u=n[a],c;if(u!==t){var f=W.values(u);c=o==="l"?r-W.min(f):i-W.max(f),c&&(n[a]=W.mapValues(u,function(l){return l+c}))}})})}function PM(n,t){return W.mapValues(n.ul,function(e,r){if(t)return n[t.toLowerCase()][r];var i=W.sortBy(W.map(n,r));return(i[1]+i[2])/2})}function LM(n){var t=MM.buildLayerMatrix(n),e=W.merge(RM(n,t),qM(n,t)),r={},i;W.forEach(["u","d"],function(o){i=o==="u"?t:W.values(t).reverse(),W.forEach(["l","r"],function(a){a==="r"&&(i=W.map(i,function(l){return W.values(l).reverse()}));var u=(o==="u"?n.predecessors:n.successors).bind(n),c=IM(n,i,e,u),f=TM(n,i,c.root,c.align,a==="r");a==="r"&&(f=W.mapValues(f,function(l){return-l})),r[o+a]=f})});var s=jM(n,r);return CM(r,s),PM(r,n.graph().align)}function DM(n,t,e){return function(r,i,s){var o=r.node(i),a=r.node(s),u=0,c;if(u+=o.width/2,W.has(o,"labelpos"))switch(o.labelpos.toLowerCase()){case"l":c=-o.width/2;break;case"r":c=o.width/2;break}if(c&&(u+=e?c:-c),c=0,u+=(o.dummy?t:n)/2,u+=(a.dummy?t:n)/2,u+=a.width/2,W.has(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":c=a.width/2;break;case"r":c=-a.width/2;break}return c&&(u+=e?c:-c),c=0,u}}function zM(n,t){return n.node(t).width}var Jt=ne,Hv=ve,$M=SM.positionX,FM=BM;function BM(n){n=Hv.asNonCompoundGraph(n),UM(n),Jt.forEach($M(n),function(t,e){n.node(e).x=t})}function UM(n){var t=Hv.buildLayerMatrix(n),e=n.graph().ranksep,r=0;Jt.forEach(t,function(i){var s=Jt.max(Jt.map(i,function(o){return n.node(o).height}));Jt.forEach(i,function(o){n.node(o).y=r+s/2}),r+=s+e})}var K=ne,e0=kx,t0=Zx,GM=bN,VM=ve.normalizeRanks,WM=NN,YM=ve.removeEmptyRanks,r0=qN,KM=jN,n0=PN,XM=_M,ZM=FM,Je=ve,JM=qe.Graph,QM=HM;function HM(n,t){var e=t&&t.debugTiming?Je.time:Je.notime;e("layout",function(){var r=e(" buildLayoutGraph",function(){return fS(n)});e(" runLayout",function(){eS(r,e)}),e(" updateInputGraph",function(){tS(n,r)})})}function eS(n,t){t(" makeSpaceForEdgeLabels",function(){lS(n)}),t(" removeSelfEdges",function(){bS(n)}),t(" acyclic",function(){e0.run(n)}),t(" nestingGraph.run",function(){r0.run(n)}),t(" rank",function(){GM(Je.asNonCompoundGraph(n))}),t(" injectEdgeLabelProxies",function(){hS(n)}),t(" removeEmptyRanks",function(){YM(n)}),t(" nestingGraph.cleanup",function(){r0.cleanup(n)}),t(" normalizeRanks",function(){VM(n)}),t(" assignRankMinMax",function(){dS(n)}),t(" removeEdgeLabelProxies",function(){gS(n)}),t(" normalize.run",function(){t0.run(n)}),t(" parentDummyChains",function(){WM(n)}),t(" addBorderSegments",function(){KM(n)}),t(" order",function(){XM(n)}),t(" insertSelfEdges",function(){_S(n)}),t(" adjustCoordinateSystem",function(){n0.adjust(n)}),t(" position",function(){ZM(n)}),t(" positionSelfEdges",function(){ES(n)}),t(" removeBorderNodes",function(){wS(n)}),t(" normalize.undo",function(){t0.undo(n)}),t(" fixupEdgeLabelCoords",function(){mS(n)}),t(" undoCoordinateSystem",function(){n0.undo(n)}),t(" translateGraph",function(){pS(n)}),t(" assignNodeIntersects",function(){vS(n)}),t(" reversePoints",function(){yS(n)}),t(" acyclic.undo",function(){e0.undo(n)})}function tS(n,t){K.forEach(n.nodes(),function(e){var r=n.node(e),i=t.node(e);r&&(r.x=i.x,r.y=i.y,t.children(e).length&&(r.width=i.width,r.height=i.height))}),K.forEach(n.edges(),function(e){var r=n.edge(e),i=t.edge(e);r.points=i.points,K.has(i,"x")&&(r.x=i.x,r.y=i.y)}),n.graph().width=t.graph().width,n.graph().height=t.graph().height}var rS=["nodesep","edgesep","ranksep","marginx","marginy"],nS={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},iS=["acyclicer","ranker","rankdir","align"],sS=["width","height"],oS={width:0,height:0},aS=["minlen","weight","width","height","labeloffset"],uS={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},cS=["labelpos"];function fS(n){var t=new JM({multigraph:!0,compound:!0}),e=Ju(n.graph());return t.setGraph(K.merge({},nS,Zu(e,rS),K.pick(e,iS))),K.forEach(n.nodes(),function(r){var i=Ju(n.node(r));t.setNode(r,K.defaults(Zu(i,sS),oS)),t.setParent(r,n.parent(r))}),K.forEach(n.edges(),function(r){var i=Ju(n.edge(r));t.setEdge(r,K.merge({},uS,Zu(i,aS),K.pick(i,cS)))}),t}function lS(n){var t=n.graph();t.ranksep/=2,K.forEach(n.edges(),function(e){var r=n.edge(e);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function hS(n){K.forEach(n.edges(),function(t){var e=n.edge(t);if(e.width&&e.height){var r=n.node(t.v),i=n.node(t.w),s={rank:(i.rank-r.rank)/2+r.rank,e:t};Je.addDummyNode(n,"edge-proxy",s,"_ep")}})}function dS(n){var t=0;K.forEach(n.nodes(),function(e){var r=n.node(e);r.borderTop&&(r.minRank=n.node(r.borderTop).rank,r.maxRank=n.node(r.borderBottom).rank,t=K.max(t,r.maxRank))}),n.graph().maxRank=t}function gS(n){K.forEach(n.nodes(),function(t){var e=n.node(t);e.dummy==="edge-proxy"&&(n.edge(e.e).labelRank=e.rank,n.removeNode(t))})}function pS(n){var t=Number.POSITIVE_INFINITY,e=0,r=Number.POSITIVE_INFINITY,i=0,s=n.graph(),o=s.marginx||0,a=s.marginy||0;function u(c){var f=c.x,l=c.y,h=c.width,g=c.height;t=Math.min(t,f-h/2),e=Math.max(e,f+h/2),r=Math.min(r,l-g/2),i=Math.max(i,l+g/2)}K.forEach(n.nodes(),function(c){u(n.node(c))}),K.forEach(n.edges(),function(c){var f=n.edge(c);K.has(f,"x")&&u(f)}),t-=o,r-=a,K.forEach(n.nodes(),function(c){var f=n.node(c);f.x-=t,f.y-=r}),K.forEach(n.edges(),function(c){var f=n.edge(c);K.forEach(f.points,function(l){l.x-=t,l.y-=r}),K.has(f,"x")&&(f.x-=t),K.has(f,"y")&&(f.y-=r)}),s.width=e-t+o,s.height=i-r+a}function vS(n){K.forEach(n.edges(),function(t){var e=n.edge(t),r=n.node(t.v),i=n.node(t.w),s,o;e.points?(s=e.points[0],o=e.points[e.points.length-1]):(e.points=[],s=i,o=r),e.points.unshift(Je.intersectRect(r,s)),e.points.push(Je.intersectRect(i,o))})}function mS(n){K.forEach(n.edges(),function(t){var e=n.edge(t);if(K.has(e,"x"))switch((e.labelpos==="l"||e.labelpos==="r")&&(e.width-=e.labeloffset),e.labelpos){case"l":e.x-=e.width/2+e.labeloffset;break;case"r":e.x+=e.width/2+e.labeloffset;break}})}function yS(n){K.forEach(n.edges(),function(t){var e=n.edge(t);e.reversed&&e.points.reverse()})}function wS(n){K.forEach(n.nodes(),function(t){if(n.children(t).length){var e=n.node(t),r=n.node(e.borderTop),i=n.node(e.borderBottom),s=n.node(K.last(e.borderLeft)),o=n.node(K.last(e.borderRight));e.width=Math.abs(o.x-s.x),e.height=Math.abs(i.y-r.y),e.x=s.x+e.width/2,e.y=r.y+e.height/2}}),K.forEach(n.nodes(),function(t){n.node(t).dummy==="border"&&n.removeNode(t)})}function bS(n){K.forEach(n.edges(),function(t){if(t.v===t.w){var e=n.node(t.v);e.selfEdges||(e.selfEdges=[]),e.selfEdges.push({e:t,label:n.edge(t)}),n.removeEdge(t)}})}function _S(n){var t=Je.buildLayerMatrix(n);K.forEach(t,function(e){var r=0;K.forEach(e,function(i,s){var o=n.node(i);o.order=s+r,K.forEach(o.selfEdges,function(a){Je.addDummyNode(n,"selfedge",{width:a.label.width,height:a.label.height,rank:o.rank,order:s+ ++r,e:a.e,label:a.label},"_se")}),delete o.selfEdges})})}function ES(n){K.forEach(n.nodes(),function(t){var e=n.node(t);if(e.dummy==="selfedge"){var r=n.node(e.e.v),i=r.x+r.width/2,s=r.y,o=e.x-i,a=r.height/2;n.setEdge(e.e,e.label),n.removeNode(t),e.label.points=[{x:i+2*o/3,y:s-a},{x:i+5*o/6,y:s-a},{x:i+o,y:s},{x:i+5*o/6,y:s+a},{x:i+2*o/3,y:s+a}],e.label.x=e.x,e.label.y=e.y}})}function Zu(n,t){return K.mapValues(K.pick(n,t),Number)}function Ju(n){var t={};return K.forEach(n,function(e,r){t[r.toLowerCase()]=e}),t}var Vr=ne,xS=ve,NS=qe.Graph,MS={debugOrdering:SS};function SS(n){var t=xS.buildLayerMatrix(n),e=new NS({compound:!0,multigraph:!0}).setGraph({});return Vr.forEach(n.nodes(),function(r){e.setNode(r,{label:r}),e.setParent(r,"layer"+n.node(r).rank)}),Vr.forEach(n.edges(),function(r){e.setEdge(r.v,r.w,{},r.name)}),Vr.forEach(t,function(r,i){var s="layer"+i;e.setNode(s,{rank:"same"}),Vr.reduce(r,function(o,a){return e.setEdge(o,a,{style:"invis"}),a})}),e}var RS="0.8.5",i0={graphlib:qe,layout:QM,debug:MS,util:{time:ve.time,notime:ve.notime},version:RS},qS=Nw(i0);class Wr{constructor(t){this.id="dagre",this.options={},Object.assign(this.options,Wr.defaultOptions,t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,Object.assign(Object.assign({},this.options),e))})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,Object.assign(Object.assign({},this.options),e))})}genericDagreLayout(t,e,r){return L(this,void 0,void 0,function*(){const{nodeSize:i}=r,s=new i0.graphlib.Graph;s.setGraph(r),s.setDefaultEdgeLabel(()=>({}));const o=e.getAllNodes(),a=e.getAllEdges();[...o,...a].some(({id:c})=>V(c))&&console.error("Dagre layout only support string id, it will convert number to string."),e.getAllNodes().forEach(c=>{const{id:f}=c,l=Object.assign({},c.data);if(i!==void 0){const[h,g]=Ct(Te(i)?i(c):i);Object.assign(l,{width:h,height:g})}s.setNode(f.toString(),l)}),e.getAllEdges().forEach(({id:c,source:f,target:l})=>{s.setEdge(f.toString(),l.toString(),{id:c})}),qS.layout(s);const u={nodes:[],edges:[]};return s.nodes().forEach(c=>{const f=s.node(c);u.nodes.push({id:c,data:f}),t&&e.mergeNodeData(c,f)}),s.edges().forEach(c=>{const f=s.edge(c),{id:l}=f,h=te(f,["id"]),{v:g,w:p}=c;u.edges.push({id:l,source:g,target:p,data:h}),t&&e.mergeEdgeData(l,h)}),u})}}Wr.defaultOptions={};class Qu{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 i=Math.hypot(e,r);i=i<1e-4?1e-4:i;const s=this.g*(this.degree+1)*(t.degree+1)/i;this.fx+=s*e/i,this.fy+=s*r/i}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,i=(this.ry*this.mass+t.ry*t.mass)/e,s=this.degree+t.degree,o={rx:r,ry:i,mass:e,degree:s};return new Qu(o)}}class Rt{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,i={xmid:t,ymid:e,length:r};return new Rt(i)}NE(){const t=this.xmid+this.length/4,e=this.ymid+this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new Rt(i)}SW(){const t=this.xmid-this.length/4,e=this.ymid-this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new Rt(i)}SE(){const t=this.xmid+this.length/4,e=this.ymid-this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new Rt(i)}}class qt{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 qt(this.quad.NW()),this.NE=new qt(this.quad.NE()),this.SW=new qt(this.quad.SW()),this.SE=new qt(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 OS={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 AS{constructor(t={}){this.options=t,this.id="forceAtlas2",this.options=Object.assign(Object.assign({},OS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericForceAtlas2Layout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericForceAtlas2Layout(!0,t,e)})}genericForceAtlas2Layout(t,e,r){return L(this,void 0,void 0,function*(){const i=e.getAllEdges(),s=e.getAllNodes(),o=this.formatOptions(r,s.length),{width:a,height:u,prune:c,maxIteration:f,nodeSize:l,center:h}=o;if(!(s!=null&&s.length)||s.length===1)return rt(e,t,h);const g=s.map(d=>ye(d,[a,u])),p=i.filter(d=>{const{source:y,target:w}=d;return y!==w}),v=new ue({nodes:g,edges:p}),m=this.getSizes(v,l);if(this.run(v,e,f,m,t,o),c){for(let y=0;y<p.length;y+=1){const{source:w,target:b}=p[y],x=v.getDegree(w),M=v.getDegree(w);if(x<=1){const N=v.getNode(b);v.mergeNodeData(w,{x:N.data.x,y:N.data.y})}else if(M<=1){const N=v.getNode(w);v.mergeNodeData(b,{x:N.data.x,y:N.data.y})}}const d=Object.assign(Object.assign({},o),{prune:!1,barnesHut:!1});this.run(v,e,100,m,t,d)}return{nodes:g,edges:i}})}getSizes(t,e){const r=t.getAllNodes(),i={};for(let s=0;s<r.length;s+=1){const o=r[s];i[o.id]=mn(e,void 0)(o)}return i}formatOptions(t={},e){const r=Object.assign(Object.assign({},this.options),t),{center:i,width:s,height:o,barnesHut:a,prune:u,maxIteration:c,kr:f,kg:l}=r;return r.width=!s&&typeof window<"u"?window.innerWidth:s,r.height=!o&&typeof window<"u"?window.innerHeight:o,r.center=i||[r.width/2,r.height/2],a===void 0&&e>250&&(r.barnesHut=!0),u===void 0&&e>100&&(r.prune=!0),c===0&&!u?(r.maxIteration=250,e<=200&&e>100?r.maxIteration=1e3:e>200&&(r.maxIteration=1200)):c===0&&u&&(r.maxIteration=100,e<=200&&e>100?r.maxIteration=500:e>200&&(r.maxIteration=950)),f||(r.kr=50,e>100&&e<=500?r.kr=20:e>500&&(r.kr=1)),l||(r.kg=20,e>100&&e<=500?r.kg=10:e>500&&(r.kg=1)),r}run(t,e,r,i,s,o){const{kr:a,barnesHut:u,onTick:c}=o,f=t.getAllNodes();let l=0,h=r;const g={},p={},v={};for(let m=0;m<f.length;m+=1){const{data:d,id:y}=f[m];if(g[y]=[0,0],u){const w={id:m,rx:d.x,ry:d.y,mass:1,g:a,degree:t.getDegree(y)};v[y]=new Qu(w)}}for(;h>0;)l=this.oneStep(t,{iter:h,preventOverlapIters:50,krPrime:100,sg:l,forces:g,preForces:p,bodies:v,sizes:i},o),h--,c==null||c({nodes:f,edges:e.getAllEdges()});return t}oneStep(t,e,r){const{iter:i,preventOverlapIters:s,krPrime:o,sg:a,preForces:u,bodies:c,sizes:f}=e;let{forces:l}=e;const{preventOverlap:h,barnesHut:g}=r,p=t.getAllNodes();for(let v=0;v<p.length;v+=1){const{id:m}=p[v];u[m]=[...l[m]],l[m]=[0,0]}return l=this.getAttrForces(t,i,s,f,l,r),g&&(h&&i>s||!h)?l=this.getOptRepGraForces(t,l,c,r):l=this.getRepGraForces(t,i,s,l,o,f,r),this.updatePos(t,l,u,a,r)}getAttrForces(t,e,r,i,s,o){const{preventOverlap:a,dissuadeHubs:u,mode:c,prune:f}=o,l=t.getAllEdges();for(let h=0;h<l.length;h+=1){const{source:g,target:p}=l[h],v=t.getNode(g),m=t.getNode(p),d=t.getDegree(g),y=t.getDegree(p);if(f&&(d<=1||y<=1))continue;const w=[m.data.x-v.data.x,m.data.y-v.data.y];let b=Math.hypot(w[0],w[1]);b=b<1e-4?1e-4:b,w[0]=w[0]/b,w[1]=w[1]/b,a&&e<r&&(b=b-i[g]-i[p]);let x=b,M=x;c==="linlog"&&(x=Math.log(1+b),M=x),u&&(x=b/d,M=b/y),a&&e<r&&b<=0?(x=0,M=0):a&&e<r&&b>0&&(x=b,M=b),s[g][0]+=x*w[0],s[p][0]-=M*w[0],s[g][1]+=x*w[1],s[p][1]-=M*w[1]}return s}getOptRepGraForces(t,e,r,i){const{kg:s,center:o,prune:a}=i,u=t.getAllNodes(),c=u.length;let f=9e10,l=-9e10,h=9e10,g=-9e10;for(let y=0;y<c;y+=1){const{id:w,data:b}=u[y];a&&t.getDegree(w)<=1||(r[w].setPos(b.x,b.y),b.x>=l&&(l=b.x),b.x<=f&&(f=b.x),b.y>=g&&(g=b.y),b.y<=h&&(h=b.y))}const p=Math.max(l-f,g-h),v={xmid:(l+f)/2,ymid:(g+h)/2,length:p,massCenter:o,mass:c},m=new Rt(v),d=new qt(m);for(let y=0;y<c;y+=1){const{id:w}=u[y];a&&t.getDegree(w)<=1||r[w].in(m)&&d.insert(r[w])}for(let y=0;y<c;y+=1){const{id:w,data:b}=u[y],x=t.getDegree(w);if(a&&x<=1)continue;r[w].resetForce(),d.updateForce(r[w]),e[w][0]-=r[w].fx,e[w][1]-=r[w].fy;const M=[b.x-o[0],b.y-o[1]];let N=Math.hypot(M[0],M[1]);N=N<1e-4?1e-4:N,M[0]=M[0]/N,M[1]=M[1]/N;const E=s*(x+1);e[w][0]-=E*M[0],e[w][1]-=E*M[1]}return e}getRepGraForces(t,e,r,i,s,o,a){const{preventOverlap:u,kr:c,kg:f,center:l,prune:h}=a,g=t.getAllNodes(),p=g.length;for(let v=0;v<p;v+=1){const m=g[v],d=t.getDegree(m.id);for(let x=v+1;x<p;x+=1){const M=g[x],N=t.getDegree(M.id);if(h&&(d<=1||N<=1))continue;const E=[M.data.x-m.data.x,M.data.y-m.data.y];let O=Math.hypot(E[0],E[1]);O=O<1e-4?1e-4:O,E[0]=E[0]/O,E[1]=E[1]/O,u&&e<r&&(O=O-o[m.id]-o[M.id]);let _=c*(d+1)*(N+1)/O;u&&e<r&&O<0?_=s*(d+1)*(N+1):u&&e<r&&O===0?_=0:u&&e<r&&O>0&&(_=c*(d+1)*(N+1)/O),i[m.id][0]-=_*E[0],i[M.id][0]+=_*E[0],i[m.id][1]-=_*E[1],i[M.id][1]+=_*E[1]}const y=[m.data.x-l[0],m.data.y-l[1]],w=Math.hypot(y[0],y[1]);y[0]=y[0]/w,y[1]=y[1]/w;const b=f*(d+1);i[m.id][0]-=b*y[0],i[m.id][1]-=b*y[1]}return i}updatePos(t,e,r,i,s){const{ks:o,tao:a,prune:u,ksmax:c}=s,f=t.getAllNodes(),l=f.length,h=[],g=[];let p=0,v=0,m=i;for(let y=0;y<l;y+=1){const{id:w}=f[y],b=t.getDegree(w);if(u&&b<=1)continue;const x=[e[w][0]-r[w][0],e[w][1]-r[w][1]],M=Math.hypot(x[0],x[1]),N=[e[w][0]+r[w][0],e[w][1]+r[w][1]],E=Math.hypot(N[0],N[1]);h[y]=M,g[y]=E/2,p+=(b+1)*h[y],v+=(b+1)*g[y]}const d=m;m=a*v/p,d!==0&&(m=m>1.5*d?1.5*d:m);for(let y=0;y<l;y+=1){const{id:w,data:b}=f[y],x=t.getDegree(w);if(u&&x<=1||V(b.fx)&&V(b.fy))continue;let M=o*m/(1+m*Math.sqrt(h[y])),N=Math.hypot(e[w][0],e[w][1]);N=N<1e-4?1e-4:N;const E=c/N;M=M>E?E:M;const O=M*e[w][0],_=M*e[w][1];t.mergeNodeData(w,{x:b.x+O,y:b.y+_})}return m}}const IS={maxIteration:1e3,gravity:10,speed:5,clustering:!1,clusterGravity:10,width:300,height:300,nodeClusterBy:"cluster"},TS=800;class kS{constructor(t={}){this.options=t,this.id="fruchterman",this.timeInterval=0,this.running=!1,this.options=Object.assign(Object.assign({},IS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericFruchtermanLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericFruchtermanLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window<"u"&&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 L(this,void 0,void 0,function*(){if(this.running)return;const i=this.formatOptions(r),{dimensions:s,width:o,height:a,center:u,clustering:c,nodeClusterBy:f,maxIteration:l,onTick:h}=i,g=e.getAllNodes(),p=e.getAllEdges();if(!(g!=null&&g.length)){const w={nodes:[],edges:p};return this.lastResult=w,w}if(g.length===1){t&&e.mergeNodeData(g[0].id,{x:u[0],y:u[1],z:s===3?u[2]:void 0});const w={nodes:[Object.assign(Object.assign({},g[0]),{data:Object.assign(Object.assign({},g[0].data),{x:u[0],y:u[1],z:s===3?u[2]:void 0})})],edges:p};return this.lastResult=w,w}const v=g.map(w=>ye(w,[o,a])),m=new ue({nodes:v,edges:p}),d={};if(c&&v.forEach(w=>{const b=w.data[f];d[b]||(d[b]={name:b,cx:0,cy:0,count:0})}),this.lastLayoutNodes=v,this.lastLayoutEdges=p,this.lastAssign=t,this.lastGraph=m,this.lastOptions=i,this.lastClusterMap=d,typeof window>"u")return;let y=0;return new Promise(w=>{this.timeInterval=window.setInterval(()=>{if(!this.running){w({nodes:v,edges:p});return}this.runOneStep(m,d,i),t&&v.forEach(({id:b,data:x})=>e.mergeNodeData(b,{x:x.x,y:x.y,z:s===3?x.z:void 0})),h==null||h({nodes:v,edges:p}),y++,y>=l&&(window.clearInterval(this.timeInterval),w({nodes:v,edges:p}))},0),this.running=!0})})}formatOptions(t={}){const e=Object.assign(Object.assign({},this.options),t),{clustering:r,nodeClusterBy:i}=e,{center:s,width:o,height:a}=e;return e.width=!o&&typeof window<"u"?window.innerWidth:o,e.height=!a&&typeof window<"u"?window.innerHeight:a,e.center=s||[e.width/2,e.height/2],e.clustering=r&&!!i,e}runOneStep(t,e,r){const{dimensions:i,height:s,width:o,gravity:a,center:u,speed:c,clustering:f,nodeClusterBy:l,clusterGravity:h}=r,g=s*o,p=Math.sqrt(g)/10,v=t.getAllNodes(),m=g/(v.length+1),d=Math.sqrt(m),y={};if(this.applyCalculate(t,y,d,m),f){for(const b in e)e[b].cx=0,e[b].cy=0,e[b].count=0;v.forEach(b=>{const{data:x}=b,M=e[x[l]];V(x.x)&&(M.cx+=x.x),V(x.y)&&(M.cy+=x.y),M.count++});for(const b in e)e[b].cx/=e[b].count,e[b].cy/=e[b].count;const w=h||a;v.forEach((b,x)=>{const{id:M,data:N}=b;if(!V(N.x)||!V(N.y))return;const E=e[N[l]],O=Math.sqrt((N.x-E.cx)*(N.x-E.cx)+(N.y-E.cy)*(N.y-E.cy)),_=d*w;y[M].x-=_*(N.x-E.cx)/O,y[M].y-=_*(N.y-E.cy)/O})}v.forEach((w,b)=>{const{id:x,data:M}=w;if(!V(M.x)||!V(M.y))return;const N=.01*d*a;y[x].x-=N*(M.x-u[0]),y[x].y-=N*(M.y-u[1]),i===3&&(y[x].z-=N*(M.z-u[2]))}),v.forEach((w,b)=>{const{id:x,data:M}=w;if(V(M.fx)&&V(M.fy)){M.x=M.fx,M.y=M.fy,i===3&&(M.z=M.fz);return}if(!V(M.x)||!V(M.y))return;const N=Math.sqrt(y[x].x*y[x].x+y[x].y*y[x].y+(i===3?y[x].z*y[x].z:0));if(N>0){const E=Math.min(p*(c/TS),N);t.mergeNodeData(x,{x:M.x+y[x].x/N*E,y:M.y+y[x].y/N*E,z:i===3?M.z+y[x].z/N*E:void 0})}})}applyCalculate(t,e,r,i){this.calRepulsive(t,e,i),this.calAttractive(t,e,r)}calRepulsive(t,e,r){const i=t.getAllNodes();i.forEach(({data:s,id:o},a)=>{e[o]={x:0,y:0,z:0},i.forEach(({data:u,id:c},f)=>{if(a<=f||!V(s.x)||!V(u.x)||!V(s.y)||!V(u.y))return;let l=s.x-u.x,h=s.y-u.y,g=this.options.dimensions===3?s.z-u.z:0,p=l*l+h*h+g*g;p===0&&(p=1,l=.01,h=.01,g=.01);const v=r/p,m=l*v,d=h*v,y=g*v;e[o].x+=m,e[o].y+=d,e[c].x-=m,e[c].y-=d,this.options.dimensions===3&&(e[o].z+=y,e[c].z-=y)})})}calAttractive(t,e,r){t.getAllEdges().forEach(s=>{const{source:o,target:a}=s;if(!o||!a||o===a)return;const{data:u}=t.getNode(o),{data:c}=t.getNode(a);if(!V(c.x)||!V(u.x)||!V(c.y)||!V(u.y))return;const f=c.x-u.x,l=c.y-u.y,h=this.options.dimensions===3?c.z-u.z:0,g=Math.sqrt(f*f+l*l+h*h)/r,p=f*g,v=l*g,m=h*g;e[o].x+=p,e[o].y+=v,e[a].x-=p,e[a].y-=v,this.options.dimensions===3&&(e[o].z+=m,e[a].z-=m)})}}const jS={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 CS{constructor(t={}){this.options=t,this.id="grid",this.options=Object.assign(Object.assign({},jS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericGridLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericGridLayout(!0,t,e)})}genericGridLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{begin:s=[0,0],condense:o,preventOverlapPadding:a,preventOverlap:u,rows:c,cols:f,nodeSpacing:l,nodeSize:h,width:g,height:p,position:v}=i;let{sortBy:m}=i;const d=e.getAllNodes(),y=e.getAllEdges(),w=d==null?void 0:d.length;if(!w||w===1)return rt(e,t,s);const b=d.map(I=>ye(I));m!=="id"&&(!kt(m)||b[0].data[m]===void 0)&&(m="degree"),m==="degree"?b.sort((I,k)=>e.getDegree(k.id,"both")-e.getDegree(I.id,"both")):m==="id"?b.sort((I,k)=>V(k.id)&&V(I.id)?k.id-I.id:`${I.id}`.localeCompare(`${k.id}`)):b.sort((I,k)=>k.data[m]-I.data[m]);const x=!g&&typeof window<"u"?window.innerWidth:g,M=!p&&typeof window<"u"?window.innerHeight:p,N=w,E={rows:c,cols:f};if(c!=null&&f!=null)E.rows=c,E.cols=f;else if(c!=null&&f==null)E.rows=c,E.cols=Math.ceil(N/E.rows);else if(c==null&&f!=null)E.cols=f,E.rows=Math.ceil(N/E.cols);else{const I=Math.sqrt(N*M/x);E.rows=Math.round(I),E.cols=Math.round(x/M*I)}if(E.rows=Math.max(E.rows,1),E.cols=Math.max(E.cols,1),E.cols*E.rows>N){const I=Yr(E),k=Kr(E);(I-1)*k>=N?Yr(E,I-1):(k-1)*I>=N&&Kr(E,k-1)}else for(;E.cols*E.rows<N;){const I=Yr(E),k=Kr(E);(k+1)*I>=N?Kr(E,k+1):Yr(E,I+1)}let O=o?0:x/E.cols,_=o?0:M/E.rows;if(u||l){const I=tt(10,l),k=vn(30,h,!1);b.forEach(F=>{(!F.data.x||!F.data.y)&&(F.data.x=0,F.data.y=0);const A=e.getNode(F.id),[C,D]=Ct(k(A)||30),z=I!==void 0?I(F):a,U=C+z,P=D+z;O=Math.max(O,U),_=Math.max(_,P)})}const S={},q={row:0,col:0},R={};for(let I=0;I<b.length;I++){const k=b[I];let F;if(v&&(F=v(e.getNode(k.id))),F&&(F.row!==void 0||F.col!==void 0)){const A={row:F.row,col:F.col};if(A.col===void 0)for(A.col=0;Hu(S,A);)A.col++;else if(A.row===void 0)for(A.row=0;Hu(S,A);)A.row++;R[k.id]=A,s0(S,A)}PS(k,s,O,_,R,E,q,S)}const T={nodes:b,edges:y};return t&&b.forEach(I=>{e.mergeNodeData(I.id,{x:I.data.x,y:I.data.y})}),T})}}const Yr=(n,t)=>{let e;const r=n.rows||5,i=n.cols||5;return t==null?e=Math.min(r,i):Math.min(r,i)===n.rows?n.rows=t:n.cols=t,e},Kr=(n,t)=>{let e;const r=n.rows||5,i=n.cols||5;return t==null?e=Math.max(r,i):Math.max(r,i)===n.rows?n.rows=t:n.cols=t,e},Hu=(n,t)=>n[`c-${t.row}-${t.col}`]||!1,s0=(n,t)=>n[`c-${t.row}-${t.col}`]=!0,o0=(n,t)=>{const e=n.cols||5;t.col++,t.col>=e&&(t.col=0,t.row++)},PS=(n,t,e,r,i,s,o,a)=>{let u,c;const f=i[n.id];if(f)u=f.col*e+e/2+t[0],c=f.row*r+r/2+t[1];else{for(;Hu(a,o);)o0(s,o);u=o.col*e+e/2+t[0],c=o.row*r+r/2+t[1],s0(a,o),o0(s,o)}n.data.x=u,n.data.y=c},LS=(n,t,e)=>{try{const r=Ve.mul(Ve.pow(t,2),-.5),i=r.mean("row"),s=r.mean("column"),o=r.mean();r.add(o).subRowVector(i).subColumnVector(s);const a=new bf(r),u=Ve.sqrt(a.diagonalMatrix).diagonal();return a.leftSingularVectors.toJSON().map(c=>Ve.mul([c],[u]).toJSON()[0].splice(0,n))}catch{const i=[];for(let s=0;s<t.length;s++){const o=Math.random()*e,a=Math.random()*e;i.push([o,a])}return i}},DS=800,zS={iterations:10,height:10,width:10,speed:100,gravity:10,k:5},$S=(n,t)=>{const e=Object.assign(Object.assign({},zS),t),{positions:r,iterations:i,width:s,k:o,speed:a=100,strictRadial:u,focusIdx:c,radii:f=[],nodeSizeFunc:l}=e,h=n.getAllNodes(),g=[],p=s/10;for(let v=0;v<i;v++)r.forEach((m,d)=>{g[d]={x:0,y:0}}),FS(h,r,g,o,f,l),BS(r,g,a,u,c,p,s,f);return r},FS=(n,t,e,r,i,s)=>{t.forEach((o,a)=>{e[a]={x:0,y:0},t.forEach((u,c)=>{if(a===c||i[a]!==i[c])return;let f=o.x-u.x,l=o.y-u.y,h=Math.sqrt(f*f+l*l);if(h===0){h=1;const g=a>c?1:-1;f=.01*g,l=.01*g}if(h<s(n[a])/2+s(n[c])/2){const g=r*r/h;e[a].x+=f/h*g,e[a].y+=l/h*g}})})},BS=(n,t,e,r,i,s,o,a)=>{const u=s||o/10;return r&&t.forEach((c,f)=>{const l=n[f].x-n[i].x,h=n[f].y-n[i].y,g=Math.sqrt(l*l+h*h);let p=h/g,v=-l/g;const m=Math.sqrt(c.x*c.x+c.y*c.y);let d=Math.acos((p*c.x+v*c.y)/m);d>Math.PI/2&&(d-=Math.PI/2,p*=-1,v*=-1);const y=Math.cos(d)*m;c.x=p*y,c.y=v*y}),n.forEach((c,f)=>{if(f===i)return;const l=Math.sqrt(t[f].x*t[f].x+t[f].y*t[f].y);if(l>0&&f!==i){const h=Math.min(u*(e/DS),l);if(c.x+=t[f].x/l*h,c.y+=t[f].y/l*h,r){let g=c.x-n[i].x,p=c.y-n[i].y;const v=Math.sqrt(g*g+p*p);g=g/v*a[f],p=p/v*a[f],c.x=n[i].x+g,c.y=n[i].y+p}}}),n},US={maxIteration:1e3,focusNode:null,unitRadius:null,linkDistance:50,preventOverlap:!1,strictRadial:!0,maxPreventOverlapIteration:200,sortStrength:10};class GS{constructor(t={}){this.options=t,this.id="radial",this.options=Object.assign(Object.assign({},US),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericRadialLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericRadialLayout(!0,t,e)})}genericRadialLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{width:s,height:o,center:a,focusNode:u,unitRadius:c,nodeSize:f,nodeSpacing:l,strictRadial:h,preventOverlap:g,maxPreventOverlapIteration:p,sortBy:v,linkDistance:m=50,sortStrength:d=10,maxIteration:y=1e3}=i,w=e.getAllNodes(),b=e.getAllEdges(),x=!s&&typeof window<"u"?window.innerWidth:s,M=!o&&typeof window<"u"?window.innerHeight:o,N=a||[x/2,M/2];if(!(w!=null&&w.length)||w.length===1)return rt(e,t,N);let E=w[0];if(kt(u)){for(let G=0;G<w.length;G++)if(w[G].id===u){E=w[G];break}}else E=u||w[0];const O=YS(w,E.id),_=Zc({nodes:w,edges:b}),S=Xc(_),q=XS(S,O);KS(S,O,q+1);const R=S[O];let T=x-N[0]>N[0]?N[0]:x-N[0],I=M-N[1]>N[1]?N[1]:M-N[1];T===0&&(T=x/2),I===0&&(I=M/2);const k=Math.min(T,I),F=Math.max(...R),A=[],C=c||k/F;R.forEach((G,le)=>{A[le]=G*C});const D=VS(w,S,m,A,C,v,d),z=WS(D),U=LS(m,D,m);let P=U.map(([G,le])=>({x:(isNaN(G)?Math.random()*m:G)-U[O][0],y:(isNaN(le)?Math.random()*m:le)-U[O][1]}));this.run(y,P,z,D,A,O);let $;if(g){$=mn(f,l);const G={nodes:w,nodeSizeFunc:$,positions:P,radii:A,height:M,width:x,strictRadial:!!h,focusIdx:O,iterations:p||200,k:P.length/4.5};P=$S(e,G)}const B=[];return P.forEach((G,le)=>{const _e=ye(w[le]);_e.data.x=G.x+N[0],_e.data.y=G.y+N[1],B.push(_e)}),t&&B.forEach(G=>e.mergeNodeData(G.id,{x:G.data.x,y:G.data.y})),{nodes:B,edges:b}})}run(t,e,r,i,s,o){for(let a=0;a<=t;a++){const u=a/t;this.oneIteration(u,e,s,i,r,o)}}oneIteration(t,e,r,i,s,o){const a=1-t;e.forEach((u,c)=>{const f=Jc(u,{x:0,y:0}),l=f===0?0:1/f;if(c===o)return;let h=0,g=0,p=0;e.forEach((m,d)=>{if(c===d)return;const y=Jc(u,m),w=y===0?0:1/y,b=i[d][c];p+=s[c][d],h+=s[c][d]*(m.x+b*(u.x-m.x)*w),g+=s[c][d]*(m.y+b*(u.y-m.y)*w)});const v=r[c]===0?0:1/r[c];p*=a,p+=t*v*v,h*=a,h+=t*v*u.x*l,u.x=h/p,g*=a,g+=t*v*u.y*l,u.y=g/p})}}const VS=(n,t,e,r,i,s,o)=>{if(!n)return[];const a=[];if(t){const u={};t.forEach((c,f)=>{const l=[];c.forEach((h,g)=>{var p,v;if(f===g)l.push(0);else if(r[f]===r[g])if(s==="data")l.push(h*(Math.abs(f-g)*o)/(r[f]/i));else if(s){let m,d;if(u[n[f].id])m=u[n[f].id];else{const y=(s==="id"?n[f].id:(p=n[f].data)===null||p===void 0?void 0:p[s])||0;kt(y)?m=y.charCodeAt(0):m=y,u[n[f].id]=m}if(u[n[g].id])d=u[n[g].id];else{const y=(s==="id"?n[g].id:(v=n[g].data)===null||v===void 0?void 0:v[s])||0;kt(y)?d=y.charCodeAt(0):d=y,u[n[g].id]=d}l.push(h*(Math.abs(m-d)*o)/(r[f]/i))}else l.push(h*e/(r[f]/i));else{const m=(e+i)/2;l.push(h*m)}}),a.push(l)})}return a},WS=n=>{const t=n.length,e=n[0].length,r=[];for(let i=0;i<t;i++){const s=[];for(let o=0;o<e;o++)n[i][o]!==0?s.push(1/(n[i][o]*n[i][o])):s.push(0);r.push(s)}return r},YS=(n,t)=>{let e=-1;return n.forEach((r,i)=>{r.id===t&&(e=i)}),Math.max(e,0)},KS=(n,t,e)=>{const r=n.length;for(let i=0;i<r;i++)if(n[t][i]===1/0){n[t][i]=e,n[i][t]=e;for(let s=0;s<r;s++)n[i][s]!==1/0&&n[t][s]===1/0&&(n[t][s]=e+n[i][s],n[s][t]=e+n[i][s])}for(let i=0;i<r;i++)if(i!==t){for(let s=0;s<r;s++)if(n[i][s]===1/0){let o=Math.abs(n[t][i]-n[t][s]);o=o===0?1:o,n[i][s]=o}}},XS=(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},ZS={center:[0,0],width:300,height:300};class JS{constructor(t={}){this.options=t,this.id="random",this.options=Object.assign(Object.assign({},ZS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericRandomLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericRandomLayout(!0,t,e)})}genericRandomLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{center:s,width:o,height:a}=i,u=e.getAllNodes(),c=.9,f=!o&&typeof window<"u"?window.innerWidth:o,l=!a&&typeof window<"u"?window.innerHeight:a,h=s||[f/2,l/2],g=[];return u&&u.forEach(v=>{g.push({id:v.id,data:{x:(Math.random()-.5)*c*f+h[0],y:(Math.random()-.5)*c*l+h[1]}})}),t&&g.forEach(v=>e.mergeNodeData(v.id,{x:v.data.x,y:v.data.y})),{nodes:g,edges:e.getAllEdges()}})}}const QS={circular:Ay,concentric:yn,mds:_f,random:JS,grid:CS,radial:GS,force:nf,d3force:If,"d3-force-3d":Tb,fruchterman:kS,forceAtlas2:AS,dagre:Wr,antvDagre:Ry,comboCombined:q1};let Ue;rn({stopLayout(){Ue!=null&&Ue.stop&&Ue.stop()},calculateLayout(n,t){return L(this,void 0,void 0,function*(){const{layout:{id:e,options:r,iterations:i},nodes:s,edges:o}=n,a=new ue({nodes:s,edges:o}),u=QS[e];if(u)Ue=new u(r);else throw new Error(`Unknown layout id: ${e}`);let c=yield Ue.execute(a);return Ef(Ue)&&(Ue.stop(),c=Ue.tick(i)),[c,t]})}})})();