@moxa/graph 2.6.1 → 2.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/worker-BXptD9Xo.js +13 -0
- package/index.cjs +53 -53
- package/index.js +28713 -27843
- package/lib/graph/graph.d.ts +17 -3
- package/lib/graph/graph.d.ts.map +1 -1
- package/lib/plugin/element-toolbar.d.ts.map +1 -1
- package/lib/plugin/history.d.ts +1 -0
- package/lib/plugin/history.d.ts.map +1 -1
- package/package.json +1 -1
- package/assets/worker-CXYYSlse.js +0 -13
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var eR=Object.defineProperty;var tR=(ne,$,se)=>$ in ne?eR(ne,$,{enumerable:!0,configurable:!0,writable:!0,value:se}):ne[$]=se;var te=(ne,$,se)=>(tR(ne,typeof $!="symbol"?$+"":$,se),se),nc=(ne,$,se)=>{if(!$.has(ne))throw TypeError("Cannot "+se)};var Ie=(ne,$,se)=>(nc(ne,$,"read from private field"),se?se.call(ne):$.get(ne)),ic=(ne,$,se)=>{if($.has(ne))throw TypeError("Cannot add the same private member more than once");$ instanceof WeakSet?$.add(ne):$.set(ne,se)},Qr=(ne,$,se,Qt)=>(nc(ne,$,"write to private field"),Qt?Qt.call(ne,se):$.set(ne,se),se);var sc=(ne,$,se)=>(nc(ne,$,"access private method"),se);(function(){"use strict";var Jt,oc,qt,fe;function ne(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 $(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 se="*",Qt=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[se]||[],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 Hr(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 Ht(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)&&Ht(s,t,e,r))return!0;return!1}const ac=()=>!0;class w0{constructor(t){te(this,"graph");te(this,"nodeFilter");te(this,"edgeFilter");te(this,"cacheEnabled");te(this,"inEdgesMap",new Map);te(this,"outEdgesMap",new Map);te(this,"bothEdgesMap",new Map);te(this,"allNodesMap",new Map);te(this,"allEdgesMap",new Map);te(this,"clearCache",()=>{this.inEdgesMap.clear(),this.outEdgesMap.clear(),this.bothEdgesMap.clear(),this.allNodesMap.clear(),this.allEdgesMap.clear()});te(this,"refreshCache",()=>{this.clearCache(),this.updateCache(this.graph.getAllNodes().map(t=>t.id))});te(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)})});te(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||ac,r=t.edgeFilter||ac;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];Hr([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];Ht(this.getNode(t),new Set,e,i)}}let ue=class y0 extends Qt{constructor(e){super();te(this,"nodeMap",new Map);te(this,"edgeMap",new Map);te(this,"inEdgesMap",new Map);te(this,"outEdgesMap",new Map);te(this,"bothEdgesMap",new Map);te(this,"treeIndices",new Map);te(this,"changes",[]);te(this,"batchCount",0);te(this,"onChanged",()=>{});te(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),o=this.getNode(e),a=s.parentMap.get(e);if((a==null?void 0:a.id)===r)return;if(r===void 0){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 Ht(this.getNode(e),new Set,r,s)}bfsTree(e,r,i){const s=o=>this.getChildren(o,i);return Hr([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 Hr([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 Ht(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 y0({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 w0({graph:this,...e})}};/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2019 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/const uc=Symbol("Comlink.proxy"),b0=Symbol("Comlink.endpoint"),_0=Symbol("Comlink.releaseProxy"),en=Symbol("Comlink.finalizer"),er=Symbol("Comlink.thrown"),cc=n=>typeof n=="object"&&n!==null||typeof n=="function",E0={canHandle:n=>cc(n)&&n[uc],serialize(n){const{port1:t,port2:e}=new MessageChannel;return tn(n,t),[e,[e]]},deserialize(n){return n.start(),S0(n)}},x0={canHandle:n=>cc(n)&&er 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}},fc=new Map([["proxy",E0],["throw",x0]]);function N0(n,t){for(const e of n)if(t===e||e==="*"||e instanceof RegExp&&e.test(t))return!0;return!1}function tn(n,t=globalThis,e=["*"]){t.addEventListener("message",function r(i){if(!i||!i.data)return;if(!N0(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(rt);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]]=rt(i.data.value),c=!0;break;case"APPLY":c=l.apply(f,u);break;case"CONSTRUCT":{const h=new l(...u);c=I0(h)}break;case"ENDPOINT":{const{port1:h,port2:g}=new MessageChannel;tn(n,g),c=A0(h,[h])}break;case"RELEASE":c=void 0;break;default:return}}catch(f){c={value:f,[er]:0}}Promise.resolve(c).catch(f=>({value:f,[er]:0})).then(f=>{const[l,h]=ir(f);t.postMessage(Object.assign(Object.assign({},l),{id:s}),h),o==="RELEASE"&&(t.removeEventListener("message",r),lc(t),en in n&&typeof n[en]=="function"&&n[en]())}).catch(f=>{const[l,h]=ir({value:new TypeError("Unserializable return value"),[er]:0});t.postMessage(Object.assign(Object.assign({},l),{id:s}),h)})}),t.start&&t.start()}function M0(n){return n.constructor.name==="MessagePort"}function lc(n){M0(n)&&n.close()}function S0(n,t){return rn(n,[],t)}function tr(n){if(n)throw new Error("Proxy has been released and is not useable")}function hc(n){return dt(n,{type:"RELEASE"}).then(()=>{lc(n)})}const rr=new WeakMap,nr="FinalizationRegistry"in globalThis&&new FinalizationRegistry(n=>{const t=(rr.get(n)||0)-1;rr.set(n,t),t===0&&hc(n)});function R0(n,t){const e=(rr.get(t)||0)+1;rr.set(t,e),nr&&nr.register(n,t,n)}function q0(n){nr&&nr.unregister(n)}function rn(n,t=[],e=function(){}){let r=!1;const i=new Proxy(e,{get(s,o){if(tr(r),o===_0)return()=>{q0(i),hc(n),r=!0};if(o==="then"){if(t.length===0)return{then:()=>i};const a=dt(n,{type:"GET",path:t.map(u=>u.toString())}).then(rt);return a.then.bind(a)}return rn(n,[...t,o])},set(s,o,a){tr(r);const[u,c]=ir(a);return dt(n,{type:"SET",path:[...t,o].map(f=>f.toString()),value:u},c).then(rt)},apply(s,o,a){tr(r);const u=t[t.length-1];if(u===b0)return dt(n,{type:"ENDPOINT"}).then(rt);if(u==="bind")return rn(n,t.slice(0,-1));const[c,f]=dc(a);return dt(n,{type:"APPLY",path:t.map(l=>l.toString()),argumentList:c},f).then(rt)},construct(s,o){tr(r);const[a,u]=dc(o);return dt(n,{type:"CONSTRUCT",path:t.map(c=>c.toString()),argumentList:a},u).then(rt)}});return R0(i,n),i}function O0(n){return Array.prototype.concat.apply([],n)}function dc(n){const t=n.map(ir);return[t.map(e=>e[0]),O0(t.map(e=>e[1]))]}const gc=new WeakMap;function A0(n,t){return gc.set(n,t),n}function I0(n){return Object.assign(n,{[uc]:!0})}function ir(n){for(const[t,e]of fc)if(e.canHandle(n)){const[r,i]=e.serialize(n);return[{type:"HANDLER",name:t,value:r},i]}return[{type:"RAW",value:n},gc.get(n)||[]]}function rt(n){switch(n.type){case"HANDLER":return fc.get(n.name).deserialize(n.value);case"RAW":return n.value}}function dt(n,t,e){return new Promise(r=>{const i=T0();n.addEventListener("message",function s(o){!o.data||!o.data.id||o.data.id!==i||(n.removeEventListener("message",s),r(o.data))}),n.start&&n.start(),n.postMessage(Object.assign({id:i},t),e)})}function T0(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function xe(n){return typeof n=="function"}function k0(n){return n==null}function nn(n){return Array.isArray(n)}var Ge=function(n){var t=typeof n;return n!==null&&t==="object"||t==="function"};function j0(n,t){if(n){var e;if(nn(n))for(var r=0,i=n.length;r<i&&(e=t(n[r],r),e!==!1);r++);else if(Ge(n)){for(var s in n)if(n.hasOwnProperty(s)&&(e=t(n[s],s),e===!1))break}}}var C0=function(n){return typeof n=="object"&&n!==null},P0={}.toString,L0=function(n,t){return P0.call(n)==="[object "+t+"]"},sn=function(n){if(!C0(n)||!L0(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 U(n){return typeof n=="number"}var sr=function(n){if(typeof n!="object"||n===null)return n;var t;if(nn(n)){t=[];for(var e=0,r=n.length;e<r;e++)typeof n[e]=="object"&&n[e]!=null?t[e]=sr(n[e]):t[e]=n[e]}else{t={};for(var i in n)typeof n[i]=="object"&&n[i]!=null?t[i]=sr(n[i]):t[i]=n[i]}return t},D0=5;function z0(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 pc(n,t,e,r){e=e||0,r=r||D0;for(var i in t)if(z0(t,i)){var s=t[i];s!==null&&sn(s)?(sn(n[i])||(n[i]={}),e<r?pc(n[i],s,e+1,r):n[i]=t[i]):nn(s)?(n[i]=[],n[i]=n[i].concat(s)):s!==void 0&&(n[i]=s)}}var vc=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)pc(n,t[r]);return n},$0=Object.prototype.hasOwnProperty,mc=function(n,t){if(n===null||!sn(n))return{};var e={};return j0(t,function(r){$0.call(n,r)&&(e[r]=n[r])}),e};const F0=(n,t)=>{if(n!=="next"&&n!=="prev")return t},yc=n=>{n.prev.next=n.next,n.next.prev=n.prev,delete n.next,delete n.prev};let B0=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 yc(e),e}enqueue(t){const e=this.shortcut;t.prev&&t.next&&yc(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,F0)),r=r==null?void 0:r.prev;return`[${t.join(", ")}]`}},U0=class extends B0{};const G0=()=>1,V0=(n,t)=>{var e;if(n.getAllNodes().length<=1)return[];const r=Y0(n,t||G0);return(e=W0(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()},W0=(n,t,e)=>{let r=[];const i=t[t.length-1],s=t[0];let o;for(;n.getAllNodes().length;){for(;o=s.dequeue();)on(n,t,e,o);for(;o=i.dequeue();)on(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(on(n,t,e,o,!0));break}}}return r},on=(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,an(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,an(t,e,Object.assign({v:l.id},l.data))}),n.removeNode(r.v)),i?a:void 0},Y0=(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 U0);const a=r+1;return e.getAllNodes().forEach(u=>{an(s,a,Object.assign({v:u.id},e.getNode(u.id).data))}),{buckets:s,zeroIdx:a,graph:e}},an=(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)},K0=(n,t)=>{const r=t==="greedy"?V0(n,(i=>s=>s.data.weight||1)()):X0(n);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)})})},X0=n=>{const t=[],e={},r={},i=s=>{r[s]||(r[s]=!0,e[s]=!0,n.getRelatedEdges(s,"out").forEach(o=>{e[o.target]?t.push(o):i(o.target)}),delete e[s])};return n.getAllNodes().forEach(s=>i(s.id)),t},Z0=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})})}})},J0=(n,t)=>Number(n)-Number(t),gt=(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},Q0=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},wc=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},H0=(n,t)=>n==null?void 0:n.reduce((e,r,i)=>(e[r]=t[i],e),{}),bc=(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=Ec(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)=>J0(n.getNode(i).data.order,n.getNode(s).data.order));return t},em=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)})},tm=(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)}))}},_c=(n,t,e,r)=>{const i={width:0,height:0};return U(e)&&U(r)&&(i.rank=e,i.order=r),gt(n,"border",i,t)},Ec=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},rm=(n,t)=>{const e={lhs:[],rhs:[]};return n==null||n.forEach(r=>{t(r)?e.lhs.push(r):e.rhs.push(r)}),e},un=(n,t)=>n.reduce((e,r)=>{const i=t(e),s=t(r);return i>s?r:e}),xc=(n,t,e,r,i,s)=>{r.includes(t.id)||(r.push(t.id),e||s.push(t.id),i(t.id).forEach(o=>xc(n,o,e,r,i,s)),e&&s.push(t.id))},Nc=(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))xc(n,u,e==="post",a,s,o);else throw new Error(`Graph does not have node: ${u}`)}),o},nm=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)Mc(n,"borderLeft","_bl",e,i,s),Mc(n,"borderRight","_br",e,i,s)}};n.getRoots().forEach(e=>t(e.id))},Mc=(n,t,e,r,i,s)=>{const o={rank:s,borderType:t,width:0,height:0},a=i.data[t][s-1],u=gt(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}})},im=(n,t)=>{const e=t.toLowerCase();(e==="lr"||e==="rl")&&Sc(n)},sm=(n,t)=>{const e=t.toLowerCase();(e==="bt"||e==="rl")&&om(n),(e==="lr"||e==="rl")&&(am(n),Sc(n))},Sc=n=>{n.getAllNodes().forEach(t=>{Rc(t)}),n.getAllEdges().forEach(t=>{Rc(t)})},Rc=n=>{const t=n.data.width;n.data.width=n.data.height,n.data.height=t},om=n=>{n.getAllNodes().forEach(t=>{cn(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>cn(r)),t.data.hasOwnProperty("y")&&cn(t.data)})},cn=n=>{n!=null&&n.y&&(n.y=-n.y)},am=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("x")&&fn(t.data)})},fn=n=>{const t=n.x;n.x=n.y,n.y=t},um=n=>{const t=gt(n,"root",{},"_root"),e=cm(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=fm(n)+1;return n.getRoots().forEach(a=>{qc(n,t,s,o,i,e,a.id)}),{nestingRoot:t,nodeRankFactor:s}},qc=(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=_c(n,"_bt"),c=_c(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=>{qc(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]}})},cm=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},fm=n=>{let t=0;return n.getAllEdges().forEach(e=>{t+=e.data.weight}),t},lm=(n,t)=>{t&&n.removeNode(t),n.getAllEdges().forEach(e=>{e.data.nestingEdge&&n.removeEdge(e.id)})},hm="edge",Oc="edge-label",dm=(n,t)=>{n.getAllEdges().forEach(e=>gm(n,e,t))},gm=(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=gt(n,hm,c,"_d"),i===a&&(c.width=t.data.width,c.height=t.data.height,c.dummy=Oc,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}})},pm=(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===Oc&&(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)})},vm=(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}})},mm=(n,t,e)=>{const r=ym(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},ym=n=>{let t;for(;n.hasNode(t=`_root${Math.random()}`););return t},wm=(n,t,e)=>{const r=H0(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},Ac=(n,t)=>{let e=0;for(let r=1;r<(t==null?void 0:t.length);r+=1)e+=wm(n,t[r-1],t[r]);return e},Ic=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},bm=(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}}),_m=(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 Em(o)},Em=n=>{var t,e;const r=[],i=u=>c=>{c.merged||(c.barycenter===void 0||u.barycenter===void 0||c.barycenter>=u.barycenter)&&xm(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})},xm=(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},Nm=(n,t,e,r)=>{const i=rm(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(Mm(!!t,!!e)),f=Tc(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=Tc(a,o,f)});const l={vs:a.flat()};return c&&(l.barycenter=u/c,l.weight=c),l},Tc=(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},Mm=(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},kc=(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=bm(n,f||[]);v==null||v.forEach(y=>{var w;if(!((w=n.getChildren(y.v))===null||w===void 0)&&w.length){const b=kc(n,y.v,e,r,s);p[y.v]=b,b.hasOwnProperty("barycenter")&&Rm(y,b)}});const m=_m(v,e);Sm(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=Nm(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},Sm=(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()})},Rm=(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)},qm=(n,t)=>{const e=Ec(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=jc(n,r,"in"),o=jc(n,i,"out");let a=Ic(n);ln(n,a);let u=Number.POSITIVE_INFINITY,c;for(let f=0,l=0;l<4;++f,++l){Cc(f%2?s:o,f%4>=2,!1,t),a=jt(n);const h=Ac(n,a);h<u&&(l=0,c=sr(a),u=h)}a=Ic(n),ln(n,a);for(let f=0,l=0;l<4;++f,++l){Cc(f%2?s:o,f%4>=2,!0,t),a=jt(n);const h=Ac(n,a);h<u&&(l=0,c=sr(a),u=h)}ln(n,c)},jc=(n,t,e)=>t.map(r=>mm(n,r,e)),Cc=(n,t,e,r)=>{const i=new ue;n==null||n.forEach(s=>{var o;const a=s.getRoots()[0].id,u=kc(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)}vm(s,i,u.vs)})},ln=(n,t)=>{t==null||t.forEach(e=>{e==null||e.forEach((r,i)=>{n.getNode(r).data.order=i})})},Om=(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))})},Am=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},Im=(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())}},Tm=(n,t)=>{const e=Am(n);t.forEach(r=>{var i,s;let o=r,a=n.getNode(o);const u=a.data.originalEdge;if(!u)return;const c=Im(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}})},km=(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=Cm(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))&&Pc(e,d.id,v)})}),a=l+1,o=p)}),s};return t!=null&&t.length&&t.reduce(r),e},jm=(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)&&Pc(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},Cm=(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)},Pc=(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},Pm=(n,t,e)=>{let r=t,i=e;if(r>i){const s=t;r=i,i=s}return!!n[r]},Lm=(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]&&!Pm(e,c,p)&&(s[p]=c,s[c]=i[c]=i[p],u=o[p])}}})}),{root:i,align:s}},Dm=(n,t,e,r,i,s,o)=>{var a;const u={},c=zm(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},zm=(n,t,e,r,i,s)=>{const o=new ue,a=Um(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},$m=(n,t)=>un(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=Gm(n,o)/2;i=Math.max(a+u,i),s=Math.min(a-u,s)}),i-s});function Fm(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 Bm=(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},Um=(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},Gm=(n,t)=>n.getNode(t).data.width||0,Vm=(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})},Wm=(n,t)=>{const{align:e,nodesep:r=0,edgesep:i=0}=t||{},s=jt(n),o=Object.assign(km(n,s),jm(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=Lm(n,u,o,h),p=Dm(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=$m(n,a);return c&&Fm(a,c),Bm(a,e)},Ym=(n,t)=>{var e;const r=wc(n);Vm(r,t);const i=Wm(r,t);(e=Object.keys(i))===null||e===void 0||e.forEach(s=>{r.getNode(s).data.x=i[s]})},Lc=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))},Km=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))})},Ve=(n,t)=>n.getNode(t.target).data.rank-n.getNode(t.source).data.rank-t.data.minlen,Xm=n=>{const t=new ue({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let i,s;for(;Zm(t,n)<r;)i=Dc(t,n),s=t.hasNode(i.source)?Ve(n,i):-Ve(n,i),zc(t,n,s);return t},Zm=(n,t)=>{const e=r=>{t.getRelatedEdges(r,"both").forEach(i=>{const s=i.source,o=r===s?i.target:s;!n.hasNode(o)&&!Ve(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},Jm=n=>{const t=new ue({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let i,s;for(;Qm(t,n)<r;)i=Dc(t,n),s=t.hasNode(i.source)?Ve(n,i):-Ve(n,i),zc(t,n,s);return t},Qm=(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||!Ve(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},Dc=(n,t)=>un(t.getAllEdges(),e=>n.hasNode(e.source)!==n.hasNode(e.target)?Ve(t,e):1/0),zc=(n,t,e)=>{n.getAllNodes().forEach(r=>{const i=t.getNode(r.id);i.data.rank||(i.data.rank=0),i.data.rank+=e})},Hm=n=>{const t=Q0(n);Lc(t);const e=Xm(t);Fc(e),$c(e,t);let r,i;for(;r=ry(e);)i=ny(e,t,r),iy(e,t,r,i)},$c=(n,t)=>{let e=Nc(n,n.getAllNodes(),"post");e=e.slice(0,(e==null?void 0:e.length)-1),e.forEach(r=>{ey(n,t,r)})},ey=(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=ty(n,t,e)},ty=(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,oy(n,e,f)){const g=n.getRelatedEdges(e,"both").find(p=>p.source===f||p.target===f).data.cutvalue;a+=l?-g:g}}}),a},Fc=(n,t=n.getAllNodes()[0].id)=>{Bc(n,{},1,t)},Bc=(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=Bc(n,t,a,c.id,r))}),u.data.low=o,u.data.lim=a++,i?u.data.parent=i:delete u.data.parent,a},ry=n=>n.getAllEdges().find(t=>t.data.cutvalue<0),ny=(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===Uc(n.getNode(f.source),a)&&u!==Uc(n.getNode(f.target),a));return un(c,f=>Ve(t,f))},iy=(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:{}}),Fc(n),$c(n,t),sy(n,t)},sy=(n,t)=>{const e=n.getAllNodes().find(i=>!i.data.parent);let r=Nc(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))})},oy=(n,t,e)=>n.getRelatedEdges(t,"both").find(r=>r.source===e||r.target===e),Uc=(n,t)=>t.data.low<=n.data.lim&&n.data.lim<=t.data.lim,ay=(n,t)=>{switch(t){case"network-simplex":cy(n);break;case"tight-tree":Gc(n);break;case"longest-path":uy(n);break;default:Gc(n)}},uy=Lc,Gc=n=>{Km(n),Jm(n)},cy=n=>{Hm(n)},fy=(n,t)=>{const{edgeLabelSpace:e,keepNodeOrder:r,prevGraph:i,rankdir:s,ranksep:o}=t;!r&&i&&hy(n,i);const a=yy(n);e&&(t.ranksep=wy(a,{rankdir:s,ranksep:o}));let u;try{u=ly(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:
|
|
6
|
+
`,c);return}throw c}return dy(n,a),u},ly=(n,t)=>{const{acyclicer:e,ranker:r,rankdir:i="tb",nodeOrder:s,keepNodeOrder:o,align:a,nodesep:u=50,edgesep:c=20,ranksep:f=50}=t;qy(n),K0(n,e);const{nestingRoot:l,nodeRankFactor:h}=um(n);ay(wc(n),r),by(n),tm(n,h),lm(n,l),em(n),_y(n),Ey(n);const g=[];dm(n,g),Tm(n,g),nm(n),o&&Om(n,s),qm(n,o),Oy(n),im(n,i),Ym(n,{align:a,nodesep:u,edgesep:c,ranksep:f}),Ay(n),Ry(n),pm(n,g),My(n),sm(n,i);const{width:p,height:v}=xy(n);return Ny(n),Sy(n),Z0(n),{width:p,height:v}},hy=(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})},dy=(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)})},gy=["width","height","layer","fixorder"],py={width:0,height:0},vy=["minlen","weight","width","height","labeloffset"],my={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},hn=["labelpos"],yy=n=>{const t=new ue({tree:[]});return n.getAllNodes().forEach(e=>{const r=Wc(n.getNode(e.id).data),i=Object.assign(Object.assign({},py),r),s=Vc(i,gy);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);k0(o)||(t.hasNode(o.id)||t.addNode(Object.assign({},o)),t.setParent(e.id,o.id))}),n.getAllEdges().forEach(e=>{const r=Wc(n.getEdge(e.id).data),i={};hn==null||hn.forEach(s=>{r[s]!==void 0&&(i[s]=r[s])}),t.addEdge({id:e.id,source:e.source,target:e.target,data:Object.assign({},my,Vc(r,vy),i)})}),t},wy=(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},by=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};gt(n,"edge-proxy",i,"_ep")}})},_y=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},Ey=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))})},xy=(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}},Ny=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(bc(e.data,i)),t.data.points.push(bc(r.data,s))})},My=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}})},Sy=n=>{n.getAllEdges().forEach(t=>{var e;t.data.reversed&&((e=t.data.points)===null||e===void 0||e.reverse())})},Ry=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)})},qy=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)}})},Oy=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=>{gt(n,"selfedge",{width:u.data.width,height:u.data.height,rank:a.data.rank,order:s+ ++r,e:u},"_se")}),delete a.data.selfEdges})})},Ay=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}})},Vc=(n,t)=>{const e={};return t==null||t.forEach(r=>{n[r]!==void 0&&(e[r]=+n[r])}),e},Wc=(n={})=>{const t={};return Object.keys(n).forEach(e=>{t[e.toLowerCase()]=n[e]}),t},he=Array.isArray,Yc=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},Kc=(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},Iy=(n,t)=>{const e=[];return n.forEach(r=>{const i=[];r.forEach(s=>{i.push(s*t)}),e.push(i)}),e},Ty=n=>{let t=1/0,e=1/0,r=-1/0,i=-1/0;return n.forEach(s=>{let o=s.data.size;he(o)?o.length===1&&(o=[o[0],o[0]]):U(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}},Xc=(n,t)=>Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y)),dn=(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),dn(n,n.getChildren(c.id,i),e,r,i,s),r!=="TB"&&e(c)}}},gn=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=>gn(e))}if(typeof n=="object"){const t={};return Object.keys(n).forEach(e=>{t[e]=gn(n[e])}),t}return n},we=(n,t)=>{const e=gn(n);return e.data=e.data||{},t&&(U(e.data.x)||(e.data.x=Math.random()*t[0]),U(e.data.y)||(e.data.y=Math.random()*t[1])),e};function We(n,t){let e;return xe(t)?e=t:U(t)?e=()=>t:e=()=>n,e}function Zc(n,t,e=!0){return!t&&t!==0?r=>{const{size:i}=r.data||{};return i?Array.isArray(i)?i[0]>i[1]?i[0]:i[1]:Ge(i)?i.width>i.height?i.width:i.height:i:n}:xe(t)?t:U(t)?()=>t:Array.isArray(t)?()=>{if(e){const r=Math.max(...t);return isNaN(r)?n:r}return t}:Ge(t)?()=>{if(e){const r=Math.max(t.width,t.height);return isNaN(r)?n:r}return[t.width,t.height]}:()=>n}const Jc=(n,t)=>{let e,r;return U(t)?r=()=>t:xe(t)?r=t:r=()=>0,n?Array.isArray(n)?e=i=>(n[0]>n[1]?n[0]:n[1])+r(i):xe(n)?e=n:e=i=>n+r(i):e=i=>{var s,o;if(!((s=i.data)===null||s===void 0)&&s.bboxSize)return Math.max(i.data.bboxSize[0],i.data.bboxSize[1])+r(i);if(!((o=i.data)===null||o===void 0)&&o.size){if(Array.isArray(i.data.size))return Math.max(i.data.size[0],i.data.size[1])+r(i);const a=i.data.size;return Ge(a)?(a.width>a.height?a.width:a.height)+r(i):a+r(i)}return 10+r(i)},e},ky={rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class jy{constructor(t={}){this.options=t,this.id="antv-dagre",this.options=Object.assign(Object.assign({},ky),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,e)})}genericDagreLayout(t,e,r){return $(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=We(u||50,f),M=We(c||50,l);let N=M,E=x;(a==="LR"||a==="RL")&&(N=x,E=M);const O=Jc(s,void 0),_=e.getAllNodes(),S=e.getAllEdges();_.forEach(A=>{const k=O(A),L=E(A),D=N(A),G=k+2*D,P=k+2*L,z=A.data.layer;U(z)?b.addNode({id:A.id,data:{width:G,height:P,layer:z}}):b.addNode({id:A.id,data:{width:G,height:P}})}),y&&(b.attachTreeStructure("combo"),_.forEach(A=>{const{parentId:k}=A.data;k!==void 0&&b.hasNode(k)&&b.setParent(A.id,k,"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})),fy(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,k=1/0;b.getAllNodes().forEach(L=>{A>L.data.x&&(A=L.data.x),k>L.data.y&&(k=L.data.y)}),b.getAllEdges().forEach(L=>{var D;(D=L.data.points)===null||D===void 0||D.forEach(G=>{A>G.x&&(A=G.x),k>G.y&&(k=G.y)})}),R[0]=v[0]-A,R[1]=v[1]-k}const T=a==="LR"||a==="RL";if(!d){const A=new Set,L=a==="BT"||a==="RL"?(z,B)=>B-z:(z,B)=>z-B;b.getAllNodes().forEach(z=>{z.data.x=z.data.x+R[0],z.data.y=z.data.y+R[1],A.add(T?z.data.x:z.data.y)});const D=Array.from(A).sort(L),G=T?(z,B)=>z.x!==B.x:(z,B)=>z.y!==B.y,P=T?(z,B,Z)=>{const V=Math.max(B.y,Z.y),le=Math.min(B.y,Z.y);return z.filter(Ee=>Ee.y<=V&&Ee.y>=le)}:(z,B,Z)=>{const V=Math.max(B.x,Z.x),le=Math.min(B.x,Z.x);return z.filter(Ee=>Ee.x<=V&&Ee.x>=le)};b.getAllEdges().forEach((z,B)=>{var Z;h&&m&&z.data.type!=="loop"&&(z.data.controlPoints=Cy((Z=z.data.points)===null||Z===void 0?void 0:Z.map(({x:V,y:le})=>({x:V+R[0],y:le+R[1]})),b.getNode(z.source),b.getNode(z.target),D,T,G,P))})}let I=[];I=b.getAllNodes().map(A=>we(A));const j=b.getAllEdges();return t&&(I.forEach(A=>{e.mergeNodeData(A.id,{x:A.data.x,y:A.data.y})}),j.forEach(A=>{e.mergeEdgeData(A.id,{controlPoints:A.data.controlPoints})})),{nodes:I,edges:j}})}}const Cy=(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},nt=(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}},Py={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1};class Ly{constructor(t={}){this.options=t,this.id="circular",this.options=Object.assign(Object.assign({},Py),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericCircularLayout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericCircularLayout(!0,t,e)})}genericCircularLayout(t,e,r){return $(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]=zy(s,o,a),x=m==null?void 0:m.length;if(!x||x===1)return nt(e,t,b);const M=(f-c)/x;let{radius:N,startRadius:E,endRadius:O}=i;if(p){const T=We(10,p),I=Zc(10,v);let j=-1/0;m.forEach(A=>{const k=I(A);j<k&&(j=k)});let F=0;m.forEach((A,k)=>{k===0?F+=j||10:F+=(T(A)||0)+(j||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=Dy(e,m):S=m.map(T=>we(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 j=c+T%q*_+2*Math.PI/u*Math.floor(T/q);g||(j=f-T%q*_-2*Math.PI/u*Math.floor(T/q)),S[T].data.x=b[0]+Math.cos(j)*I,S[T].data.y=b[1]+Math.sin(j)*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=[we(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(we(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(we(g)),i[g.id]=!0,f=!0;break}}let l=0;for(;!f&&(i[t[l].id]||(r.push(we(t[l])),i[t[l].id]=!0,f=!0),l++,l!==s););}}),r};function Dy(n,t){const e=[];return t.forEach((r,i)=>{e.push(we(r))}),e.sort((r,i)=>n.getDegree(r.id,"both")-n.getDegree(i.id,"both")),e}const zy=(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]},$y={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:3/2*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class pn{constructor(t={}){this.options=t,this.id="concentric",this.options=Object.assign(Object.assign({},$y),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericConcentricLayout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericConcentricLayout(!0,t,e)})}genericConcentricLayout(t,e,r){return $(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 nt(e,t,x);const M=[];let N,E=0;he(v)?N=Math.max(v[0],v[1]):xe(v)?(N=-1/0,d.forEach(A=>{const k=v(A);k>N&&(N=k)})):N=v,he(m)?E=Math.max(m[0],m[1]):U(m)&&(E=m),d.forEach(A=>{const k=we(A);M.push(k);let L=N;const{data:D}=k;he(D.size)?L=Math.max(D.size[0],D.size[1]):U(D.size)?L=D.size:Ge(D.size)&&(L=Math.max(D.size.width,D.size.height)),N=Math.max(N,L),xe(m)&&(E=Math.max(m(A),E))});const O={};M.forEach((A,k)=>{O[A.id]=k});let _=u;(!kt(_)||M[0].data[_]===void 0)&&(_="degree"),_==="degree"?M.sort((A,k)=>e.getDegree(k.id,"both")-e.getDegree(A.id,"both")):M.sort((A,k)=>k.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 k=Math.abs(_==="degree"?e.getDegree(T.nodes[0].id,"both")-e.getDegree(A.id,"both"):T.nodes[0].data[_]-A.data[_]);q&&k>=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,L=(Math.min(w,b)/2-I)/(R.length+(A?1:0));I=Math.min(I,L)}let j=0;if(R.forEach(A=>{const k=f===void 0?2*Math.PI-2*Math.PI/A.nodes.length:f;if(A.dTheta=k/Math.max(1,A.nodes.length-1),A.nodes.length>1&&g){const L=Math.cos(A.dTheta)-Math.cos(0),D=Math.sin(A.dTheta)-Math.sin(0),G=Math.sqrt(I*I/(L*L+D*D));j=Math.max(G,j)}A.r=j,j+=I}),h){let A=0,k=0;for(let L=0;L<R.length;L++){const G=(R[L].r||0)-k;A=Math.max(A,G)}k=0,R.forEach((L,D)=>{D===0&&(k=L.r||0),L.r=k,k+=A})}return R.forEach(A=>{const k=A.dTheta||0,L=A.r||0;A.nodes.forEach((D,G)=>{const P=p+(l?1:-1)*k*G;D.data.x=x[0]+L*Math.cos(P),D.data.y=x[1]+L*Math.sin(P)})}),t&&M.forEach(A=>e.mergeNodeData(A.id,{x:A.data.x,y:A.data.y})),{nodes:M,edges:y}})}}function Fy(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 By(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 Uy(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 Gy(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function Vy(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 de(n,t,e,r,i){this.node=n,this.x0=t,this.y0=e,this.x1=r,this.y1=i}function Wy(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 de(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 de(g[3],m,d,u,c),new de(g[2],o,d,m,c),new de(g[1],m,a,u,d),new de(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 Yy(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 Ky(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function Xy(){return this._root}function Zy(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function Jy(n){var t=[],e,r=this._root,i,s,o,a,u;for(r&&t.push(new de(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 de(i,c,f,a,u)),(i=r[2])&&t.push(new de(i,s,f,c,u)),(i=r[1])&&t.push(new de(i,c,o,a,f)),(i=r[0])&&t.push(new de(i,s,o,c,f))}return this}function Qy(n){var t=[],e=[],r;for(this._root&&t.push(new de(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 de(s,o,a,f,l)),(s=i[1])&&t.push(new de(s,f,a,u,l)),(s=i[2])&&t.push(new de(s,o,l,f,c)),(s=i[3])&&t.push(new de(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 Hy(n){return n[0]}function ew(n){return arguments.length?(this._x=n,this):this._x}function tw(n){return n[1]}function rw(n){return arguments.length?(this._y=n,this):this._y}function pt(n,t,e){var r=new vn(t??Hy,e??tw,NaN,NaN,NaN,NaN);return n==null?r:r.addAll(n)}function vn(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 ge=pt.prototype=vn.prototype;ge.copy=function(){var n=new vn(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},ge.add=Fy,ge.addAll=By,ge.cover=Uy,ge.data=Gy,ge.extent=Vy,ge.find=Wy,ge.remove=Yy,ge.removeAll=Ky,ge.root=Xy,ge.size=Zy,ge.visit=Jy,ge.visitAfter=Qy,ge.x=ew,ge.y=rw;function nw(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 iw(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 sw(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 ow(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function aw(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 uw(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}function cw(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 fw(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function lw(){return this._root}function hw(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function dw(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 gw(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 pw(n){return n[0]}function vw(n){return arguments.length?(this._x=n,this):this._x}function mw(n){return n[1]}function yw(n){return arguments.length?(this._y=n,this):this._y}function ww(n){return n[2]}function bw(n){return arguments.length?(this._z=n,this):this._z}function or(n,t,e,r){var i=new mn(t??pw,e??mw,r??ww,NaN,NaN,NaN,NaN,NaN,NaN);return n==null?i:i.addAll(n)}function mn(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=or.prototype=mn.prototype;ce.copy=function(){var n=new mn(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=nw,ce.addAll=iw,ce.cover=sw,ce.data=ow,ce.extent=aw,ce.find=uw,ce.remove=cw,ce.removeAll=fw,ce.root=lw,ce.size=hw,ce.visit=dw,ce.visitAfter=gw,ce.x=vw,ce.y=yw,ce.z=bw;const _w=.81,yn=.1;function Ew(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?pt(a,f=>f.x,f=>f.y):or(a,f=>f.x,f=>f.y,f=>f.z)).visitAfter(xw),c=new Map;return a.forEach(f=>{c.set(f.id,f),Mw(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 xw(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 Nw=(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||yn,f=s.y-n.y||yn,l=s.z-n.z||yn,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*_w<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 Mw(n,t,e){t.visit((r,i,s,o,a)=>Nw(r,i,s,o,a,n,e))}const Sw={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({},Sw),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericForceLayout(!1,t,e)})}assign(t,e){return $(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 $(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:U(E.data.x)?E.data.x:Math.random()*c,y:U(E.data.y)?E.data.y:Math.random()*f,z:U(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:wn(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:wn(e,m),edges:o}),N++,(N>=b||this.judgingDistance<x)&&(window.clearInterval(this.timeInterval),E({nodes:wn(e,m),edges:o}))},0),this.running=!0})})}formatOptions(t,e){const r=Object.assign({},t),{width:i,height:s,getMass:o,nodeSize:a}=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=l=>{let h=1;U(l==null?void 0:l.data.mass)&&(h=l==null?void 0:l.data.mass);const g=e.getDegree(l.id,"both");return!g||g<5?h:g*5*h});const u=We(0,t.nodeSpacing);let c;a?xe(a)?c=l=>a(l)+u(l):he(a)?c=l=>{const h=a;return Math.max(h[0],h[1])+u(l)}:c=l=>a+u(l):c=l=>{const{size:h}=(l==null?void 0:l.data)||{};return h?he(h)?Math.max(h[0],h[1])+u(l):Ge(h)?Math.max(h.width,h.height)+u(l):h+u(l):10+u(l)},r.nodeSize=c;const f=t.linkDistance?We(1,t.linkDistance):l=>1+r.nodeSize(e.getNode(l.source))+r.nodeSize(e.getNode(l.target));return r.linkDistance=f,r.nodeStrength=We(1,t.nodeStrength),r.edgeStrength=We(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;Ew(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,j]=R;M=y-T,N=w-I,O=j}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:j,center:F}=g,{x:A,y:k,z:L,centerStrength:D}=(F==null?void 0:F(x,a,u,c,f))||{x:0,y:0,z:0,centerStrength:0};if(!U(A)||!U(k))return;const G=(y-A)/d,P=(w-k)/d,z=(b-L)/d;if(D&&(r[v].x-=D*G,r[v].y-=D*P,r[v].z-=D*z),q===0){const Z=I(x);if(!Z)return;r[v].x-=Z*G,r[v].y-=Z*P,r[v].z-=Z*z;return}if(_===0||S===0){const Z=T(x,a,u);if(!Z)return;r[v].x-=Z*G,r[v].y-=Z*P,r[v].z-=Z*z;return}const B=j(x);if(!B)return;r[v].x-=B*G,r[v].y-=B*P,r[v].z-=B*z}})}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(U(h.data.fx)&&U(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]=Rw(n,"leaf",i,t))}),r},Rw=(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=qw(n,t,r,e,a);return{coreNode:o,siblingLeaves:a,sameTypeLeaves:u}},qw=(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}},wn=(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 ar=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ow(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 Aw=Object.prototype.toString;function Ct(n){const t=Aw.call(n);return t.endsWith("Array]")&&!t.includes("Big")}var Iw=Object.freeze({__proto__:null,isAnyArray:Ct}),Tw=af(Iw);function kw(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Ct(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 jw(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Ct(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 Cw(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Ct(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(!Ct(t.output))throw new TypeError("output option must be an array if specified");e=t.output}else e=new Array(n.length);var r=jw(n),i=kw(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 Pw=Object.freeze({__proto__:null,default:Cw}),Lw=af(Pw);Object.defineProperty(X,"__esModule",{value:!0});var pe=Tw,uf=Lw;const ur=" ".repeat(2),cf=" ".repeat(4);function Dw(){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} {
|
|
7
|
+
${ur}[
|
|
8
|
+
${cf}${zw(n,e,r,i,s)}
|
|
9
|
+
${ur}]
|
|
10
|
+
${ur}rows: ${n.rows}
|
|
11
|
+
${ur}columns: ${n.columns}
|
|
12
|
+
}`}function zw(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($w(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(`
|
|
13
|
+
${cf}`)}function $w(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 Fw(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 Ne(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 Me(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 vt(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 mt(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 bn(n,t){if(!pe.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 _n(n,t){if(!pe.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 En(n,t,e,r,i){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(fr("startRow",t),fr("endRow",e),fr("startColumn",r),fr("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 cr(n,t=0){let e=[];for(let r=0;r<n;r++)e.push(t);return e}function fr(n,t){if(typeof t!="number")throw new TypeError(`${n} must be a number`)}function yt(n){if(n.isEmpty())throw new Error("Empty matrix has no elements to index")}function Bw(n){let t=cr(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 Uw(n){let t=cr(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 Gw(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 Vw(n){let t=cr(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 Ww(n){let t=cr(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 Yw(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 Kw(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 Xw(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 Zw(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 Jw(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 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,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 e1(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 t1(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 r1(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 n1(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 i1(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 s1(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 C(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 C(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 C(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 C(t,e)}static ones(t,e){return new C(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 C(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 C(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 C(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 C(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 C(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){Ne(this,t);let e=[];for(let r=0;r<this.columns;r++)e.push(this.get(t,r));return e}getRowVector(t){return C.rowVector(this.getRow(t))}setRow(t,e){Ne(this,t),e=vt(this,e);for(let r=0;r<this.columns;r++)this.set(t,r,e[r]);return this}swapRows(t,e){Ne(this,t),Ne(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){Me(this,t);let e=[];for(let r=0;r<this.rows;r++)e.push(this.get(r,t));return e}getColumnVector(t){return C.columnVector(this.getColumn(t))}setColumn(t,e){Me(this,t),e=mt(this,e);for(let r=0;r<this.rows;r++)this.set(r,t,e[r]);return this}swapColumns(t,e){Me(this,t),Me(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=vt(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=vt(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=vt(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=vt(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=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[e]);return this}subColumnVector(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[e]);return this}mulColumnVector(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[e]);return this}divColumnVector(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[e]);return this}mulRow(t,e){Ne(this,t);for(let r=0;r<this.columns;r++)this.set(t,r,this.get(t,r)*e);return this}mulColumn(t,e){Me(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(){yt(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(){yt(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(Ne(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){Ne(this,t),yt(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(Ne(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){Ne(this,t),yt(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(Me(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){Me(this,t),yt(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(Me(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){Me(this,t),yt(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=C.checkMatrix(t);let e=this.rows,r=this.columns,i=t.columns,s=new C(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}strassen2x2(t){t=C.checkMatrix(t);let e=new C(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=C.checkMatrix(t);let e=new C(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),j=(-s+f+l)*(m+y-w),F=(s-l)*(m-w),A=s*y,k=(f+l)*(-y+w),L=(-s+a+u)*(d+y-b),D=(s-u)*(d-b),G=(a+u)*(-y+b),P=i*v,z=u*w,B=o*p,Z=c*g,V=l*b,le=_+A+P,Ee=x+E+O+_+j+A+k,Qu=_+S+R+T+A+L+G,Hu=M+N+E+_+A+L+D,ec=M+E+O+_+z,tc=A+L+D+G+B,rc=_+S+q+I+j+F+A,H=j+F+A+k+Z,Ot=_+S+q+R+V;return e.set(0,0,le),e.set(0,1,Ee),e.set(0,2,Qu),e.set(1,0,Hu),e.set(1,1,ec),e.set(1,2,tc),e.set(2,0,rc),e.set(2,1,H),e.set(2,2,Ot),e}mmulStrassen(t){t=C.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),j=Y.add(O,q);j.sub(R),j.add(I);let F=Y.add(S,R),A=Y.add(_,q),k=Y.sub(O,_);k.add(S),k.add(T);let L=Y.zeros(2*j.rows,2*j.columns);return L=L.setSubMatrix(j,0,0),L=L.setSubMatrix(F,j.rows,0),L=L.setSubMatrix(A,0,j.columns),L=L.setSubMatrix(k,j.rows,j.columns),L.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 C(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 C(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=C.checkMatrix(t);let e=this.rows,r=this.columns,i=t.rows,s=t.columns,o=new C(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=C.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(C.eye(r,r)),s=C.eye(e,e).kroneckerProduct(t);return i.add(s)}transpose(){let t=new C(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){En(this,t,e,r,i);let s=new C(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 C(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 C(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=C.checkMatrix(t),t.isEmpty())return this;let i=e+t.rows-1,s=r+t.columns-1;En(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){bn(this,t),_n(this,e);let r=new C(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 C(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 Bw(this);case"column":return Uw(this);case void 0:return Gw(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return Vw(this);case"column":return Ww(this);case void 0:return Yw(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(!pe.isAnyArray(i))throw new TypeError("mean must be an array");return Kw(this,r,i)}case"column":{if(!pe.isAnyArray(i))throw new TypeError("mean must be an array");return Xw(this,r,i)}case void 0:{if(typeof i!="number")throw new TypeError("mean must be a number");return Zw(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(!pe.isAnyArray(r))throw new TypeError("center must be an array");return Jw(this,r),this}case"column":{if(!pe.isAnyArray(r))throw new TypeError("center must be an array");return Qw(this,r),this}case void 0:{if(typeof r!="number")throw new TypeError("center must be a number");return Hw(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=e1(this);else if(!pe.isAnyArray(r))throw new TypeError("scale must be an array");return t1(this,r),this}case"column":{if(r===void 0)r=r1(this);else if(!pe.isAnyArray(r))throw new TypeError("scale must be an array");return n1(this,r),this}case void 0:{if(r===void 0)r=i1(this);else if(typeof r!="number")throw new TypeError("scale must be a number");return s1(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")]=Dw);function hf(n,t){return n-t}function o1(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 C=(qt=class extends Y{constructor(e,r){super();ic(this,Jt);te(this,"data");if(qt.isMatrix(e))sc(this,Jt,oc).call(this,e.rows,e.columns),qt.copy(e,this);else if(Number.isInteger(e)&&e>=0)sc(this,Jt,oc).call(this,e,r);else if(pe.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(!o1(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 Ne(this,e),this.data.splice(e,1),this.rows-=1,this}addRow(e,r){return r===void 0&&(r=e,e=this.rows),Ne(this,e,!0),r=Float64Array.from(vt(this,r)),this.data.splice(e,0,r),this.rows+=1,this}removeColumn(e){Me(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),Me(this,e,!0),r=mt(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}},Jt=new WeakSet,oc=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},qt);Fw(Y,C);const Kr=class Kr extends Y{constructor(e){super();ic(this,fe,void 0);if(C.isMatrix(e)){if(!e.isSymmetric())throw new TypeError("not symmetric data");Qr(this,fe,C.copy(e,new C(e.rows,e.rows)))}else if(Number.isInteger(e)&&e>=0)Qr(this,fe,new C(e,e));else if(Qr(this,fe,new C(e)),!this.isSymmetric())throw new TypeError("not symmetric data")}get size(){return Ie(this,fe).size}get rows(){return Ie(this,fe).rows}get columns(){return Ie(this,fe).columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(e){return C.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 Kr(this.diagonalSize);for(const[r,i,s]of this.upperRightEntries())e.set(r,i,s);return e}toMatrix(){return new C(this)}get(e,r){return Ie(this,fe).get(e,r)}set(e,r,i){return Ie(this,fe).set(e,r,i),Ie(this,fe).set(r,e,i),this}removeCross(e){return Ie(this,fe).removeRow(e),Ie(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),Ie(this,fe).addRow(e,i),Ie(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 Kr(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 it=Kr;it.prototype.klassType="SymmetricMatrix";class lr extends it{static isDistanceMatrix(t){return it.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 it(this)}clone(){const t=new lr(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}}lr.prototype.klassSubType="DistanceMatrix";class je extends Y{constructor(t,e,r){super(),this.matrix=t,this.rows=e,this.columns=r}}class a1 extends je{constructor(t,e){Me(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 u1 extends je{constructor(t,e){_n(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 c1 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 f1 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 l1 extends je{constructor(t,e){Ne(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 h1 extends je{constructor(t,e){bn(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 hr extends je{constructor(t,e,r){bn(t,e),_n(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 d1 extends je{constructor(t,e,r,i,s){En(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 g1 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 be 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 p1(n,t){if(pe.isAnyArray(n))return n[0]&&pe.isAnyArray(n[0])?new be(n):new df(n,t);throw new Error("the argument is not an array")}class dr{constructor(t){t=be.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=C.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 C(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 C(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 xn{constructor(t){t=be.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=C.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 C(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 C(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 wt=class{constructor(t,e={}){if(t=be.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 C(r,h),m=new C(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,j=q/T;if(p[R]=T,R!==_&&(q=-j*d[R-1],d[R-1]=I*d[R-1]),c)for(let F=0;F<i;F++)T=I*m.get(F,R)+j*m.get(F,N-1),m.set(F,N-1,-j*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,j=q/T;if(p[R]=T,q=-j*d[R],d[R]=I*d[R],u)for(let F=0;F<r;F++)T=I*v.get(F,R)+j*v.get(F,_-1),v.set(F,_-1,-j*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,j=p[_]/q,F=d[_]/q,A=((T+R)*(T-R)+I*I)/2,k=R*I*(R*I);let L=0;(A!==0||k!==0)&&(A<0?L=0-Math.sqrt(A*A+k):L=Math.sqrt(A*A+k),L=k/(A+L));let D=(j+R)*(j-R)+L,G=j*F;for(let P=_;P<N-1;P++){let z=Ce(D,G);z===0&&(z=Number.MIN_VALUE);let B=D/z,Z=G/z;if(P!==_&&(d[P-1]=z),D=B*p[P]+Z*d[P],d[P]=B*d[P]-Z*p[P],G=Z*p[P+1],p[P+1]=B*p[P+1],c)for(let V=0;V<i;V++)z=B*m.get(V,P)+Z*m.get(V,P+1),m.set(V,P+1,-Z*m.get(V,P)+B*m.get(V,P+1)),m.set(V,P,z);if(z=Ce(D,G),z===0&&(z=Number.MIN_VALUE),B=D/z,Z=G/z,p[P]=z,D=B*d[P]+Z*p[P+1],p[P+1]=-Z*d[P]+B*p[P+1],G=Z*d[P+1],d[P+1]=B*d[P+1],u&&P<r-1)for(let V=0;V<r;V++)z=B*v.get(V,P)+Z*v.get(V,P+1),v.set(V,P+1,-Z*v.get(V,P)+B*v.get(V,P+1)),v.set(V,P,z)}d[N-2]=D;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=C.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=C.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(C.diag(t))}inverse(){let t=this.V,e=this.threshold,r=t.rows,i=t.columns,s=new C(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 C(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 C.diag(this.s)}};function v1(n,t=!1){return n=be.checkMatrix(n),t?new wt(n).inverse():gf(n,C.eye(n.rows))}function gf(n,t,e=!1){return n=be.checkMatrix(n),t=be.checkMatrix(t),e?new wt(n).solve(t):n.isSquare()?new dr(n).solve(t):new xn(n).solve(t)}function gr(n){if(n=C.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 hr(n,[1,2],[1,2]),o=new hr(n,[1,2],[0,2]),a=new hr(n,[1,2],[0,1]),t=n.get(0,0),e=n.get(0,1),r=n.get(0,2),t*gr(s)-e*gr(o)+r*gr(a)}else return new dr(n).determinant}else throw Error("determinant can only be calculated for a square matrix")}function m1(n,t){let e=[];for(let r=0;r<n;r++)r!==t&&e.push(r);return e}function y1(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 w1(n,t={}){const{thresholdValue:e=1e-9,thresholdError:r=1e-9}=t;n=C.checkMatrix(n);let i=n.rows,s=new C(i,i);for(let o=0;o<i;o++){let a=C.columnVector(n.getRow(o)),u=n.subMatrixRow(m1(i,o)).transpose(),f=new wt(u).solve(a),l=C.sub(a,u.mmul(f)).abs().max();s.setRow(o,y1(l,f,o,e,r))}return s}function b1(n,t=Number.EPSILON){if(n=C.checkMatrix(n),n.isEmpty())return n.transpose();let e=new wt(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(C.diag(s).mmul(r.transpose()))}function _1(n,t=n,e={}){n=new C(n);let r=!1;if(typeof t=="object"&&!C.isMatrix(t)&&!pe.isAnyArray(t)?(e=t,t=n,r=!0):t=new C(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 E1(n,t=n,e={}){n=new C(n);let r=!1;if(typeof t=="object"&&!C.isMatrix(t)&&!pe.isAnyArray(t)?(e=t,t=n,r=!0):t=new C(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=be.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 C(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));x1(i,a,o,s),N1(i,a,o,s)}else{let h=new C(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));M1(i,h,g,s),S1(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 C(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 x1(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 N1(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 M1(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 S1(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=pr(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=pr(-_,-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=pr(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=pr(-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 pr(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=be.checkMatrix(t),!t.isSymmetric())throw new Error("Matrix is not symmetric");let e=t,r=e.rows,i=new C(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&=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=be.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=be.checkMatrix(t);let{Y:r}=e;const{scaleScores:i=!1,maxIterations:s=1e3,terminationCriteria:o=1e-10}=e;let a;if(r){if(pe.isAnyArray(r)&&typeof r[0]=="number"?r=C.columnVector(r):r=be.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=lr,X.EVD=pf,X.EigenvalueDecomposition=pf,X.LU=dr,X.LuDecomposition=dr;var yf=X.Matrix=C;X.MatrixColumnSelectionView=u1,X.MatrixColumnView=a1,X.MatrixFlipColumnView=c1,X.MatrixFlipRowView=f1,X.MatrixRowSelectionView=h1,X.MatrixRowView=l1,X.MatrixSelectionView=hr,X.MatrixSubView=d1,X.MatrixTransposeView=g1,X.NIPALS=mf,X.Nipals=mf,X.QR=xn,X.QrDecomposition=xn,X.SVD=wt;var R1=X.SingularValueDecomposition=wt;X.SymmetricMatrix=it,X.WrapperMatrix1D=df,X.WrapperMatrix2D=be,X.correlation=E1,X.covariance=_1;var wf=X.default=C;X.determinant=gr,X.inverse=v1,X.linearDependencies=w1,X.pseudoInverse=b1,X.solve=gf,X.wrap=p1;const Ye=yf,bf=R1;wf.Matrix&&wf.Matrix;const q1={center:[0,0],linkDistance:50};class _f{constructor(t={}){this.options=t,this.id="mds",this.options=Object.assign(Object.assign({},q1),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericMDSLayout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericMDSLayout(!0,t,e)})}genericMDSLayout(t,e,r){return $(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 nt(e,t,s);const c=Kc({nodes:a,edges:u}),f=Yc(c);O1(f);const l=Iy(f,o),h=A1(l),g=[];return h.forEach((v,m)=>{const d=we(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 O1=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)})})},A1=n=>{const e=Ye.mul(Ye.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=Ye.sqrt(o.diagonalMatrix).diagonal();return o.leftSingularVectors.toJSON().map(u=>Ye.mul([u],[a]).toJSON()[0].splice(0,2))};function Ef(n){return!!n.tick&&!!n.stop}const I1={gForce:!0,force2:!0,d3force:!0,fruchterman:!0,forceAtlas2:!0,force:!0,"graphin-force":!0},T1={center:[0,0],comboPadding:10,treeKey:"combo"};class k1{constructor(t={}){this.options=t,this.id="comboCombined",this.options=Object.assign(Object.assign({},T1),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericComboCombinedLayout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericComboCombinedLayout(!0,t,e)})}genericComboCombinedLayout(t,e,r){return $(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 nt(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),dn(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&&I1[O.id]&&(yield(y.length<100?new _f:new pn).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(U(i)?a=()=>i:xe(i)?a=i:a=()=>0,e.spacing=a,!r)o=c=>{const f=a(c);return c.size?he(c.size)?((c.size[0]>c.size[1]?c.size[0]:c.size[1])+f)/2:Ge(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(xe(r))o=c=>{const f=r(c),l=a(c);return he(c.size)?((c.size[0]>c.size[1]?c.size[0]:c.size[1])+l)/2:((f||32)+l)/2};else if(he(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 U(s)?u=()=>s:he(s)?u=()=>Math.max.apply(null,s):xe(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 pn({}),g={center:[0,0],preventOverlap:!0,nodeSpacing:f},p=[],v=m=>{let d=(c==null?void 0:c(m))||10;return he(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();dn(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]),U(R)&&(R=[R,R]);const[T,I]=R;_>T&&(_=T),_>I&&(_=I),S.data.size=R}),d=d.then(()=>$(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}=Ty(E),j={x:(T+q)/2,y:(I+R)/2};O.nodes.forEach(A=>{A.data.x-=j.x,A.data.y-=j.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 $(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 j1(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 Ke(n){return(n()-.5)*1e-6}function C1(n){return n.x+n.vx}function P1(n){return n.y+n.vy}function L1(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=pt(t,C1,P1).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=Ke(r),R+=S*S),q===0&&(q=Ke(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 D1(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 z1(n){var t=D1,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||Ke(c),E=M.y+M.vy-x.y-x.vy||Ke(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 $1={value:()=>{}};function Nn(){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 vr(e)}function vr(n){this._=n}function F1(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}})}vr.prototype=Nn.prototype={constructor:vr,on:function(n,t){var e=this._,r=F1(n+"",e),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(n=r[s]).type)&&(i=B1(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 vr(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 B1(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]=$1,n=n.slice(0,r).concat(n.slice(r+1));break}return e!=null&&n.push({name:t,value:e}),n}var bt=0,Pt=0,Lt=0,Sf=1e3,mr,Dt,yr=0,st=0,wr=0,zt=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 st||(Rf(U1),st=zt.now()+wr)}function U1(){st=0}function Mn(){this._call=this._time=this._next=null}Mn.prototype=Sn.prototype={constructor:Mn,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&&Dt!==this&&(Dt?Dt._next=this:mr=this,Dt=this),this._call=n,this._time=e,Rn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Rn())}};function Sn(n,t,e){var r=new Mn;return r.restart(n,t,e),r}function G1(){qf(),++bt;for(var n=mr,t;n;)(t=st-n._time)>=0&&n._call.call(void 0,t),n=n._next;--bt}function Of(){st=(yr=zt.now())+wr,bt=Pt=0;try{G1()}finally{bt=0,W1(),st=0}}function V1(){var n=zt.now(),t=n-yr;t>Sf&&(wr-=t,yr=n)}function W1(){for(var n,t=mr,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:mr=e);Dt=n,Rn(r)}function Rn(n){if(!bt){Pt&&(Pt=clearTimeout(Pt));var t=n-st;t>24?(n<1/0&&(Pt=setTimeout(Of,n-zt.now()-wr)),Lt&&(Lt=clearInterval(Lt))):(Lt||(yr=zt.now(),Lt=setInterval(V1,Sf)),bt=1,Rf(Of))}}const Y1=1664525,K1=1013904223,Af=4294967296;function X1(){let n=1;return()=>(n=(Y1*n+K1)%Af)/Af}function Z1(n){return n.x}function J1(n){return n.y}var Q1=10,H1=Math.PI*(3-Math.sqrt(5));function eb(n){var t,e=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,a=new Map,u=Sn(l),c=Nn("tick","end"),f=X1();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=Q1*Math.sqrt(.5+v),w=v*H1;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 tb(){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=pt(n,Z1,J1).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=Ke(e),b+=d*d),y===0&&(y=Ke(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=Ke(e),b+=d*d),y===0&&(y=Ke(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 rb(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 nb(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 ib(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:z1,manyBody:tb,center:j1,collide:L1,radial:rb,x:nb,y:ib},this.options={link:{id:e=>e.id},manyBody:{},center:{x:0,y:0}},this.context={options:{},assign:!1,nodes:[],edges:[]},vc(this.options,t),this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericLayout(!1,t,e)})}assign(t,e){return $(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=vc({},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 $(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),mc(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),mc(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 eb()}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 sb(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 ob(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 ab(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 ub(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 cb(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function fb(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 lb(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 hb(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 db(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function gb(){return this._root}function pb(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function vb(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 mb(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 yb(n){return n[0]}function wb(n){return arguments.length?(this._x=n,this):this._x}function qn(n,t){var e=new On(t??yb,NaN,NaN);return n==null?e:e.addAll(n)}function On(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 ve=qn.prototype=On.prototype;ve.copy=function(){var n=new On(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},ve.add=ob,ve.addAll=ab,ve.cover=ub,ve.data=cb,ve.extent=fb,ve.find=lb,ve.remove=hb,ve.removeAll=db,ve.root=gb,ve.size=pb,ve.visit=vb,ve.visitAfter=mb,ve.x=wb;function ie(n){return function(){return n}}function Se(n){return(n()-.5)*1e-6}function An(n){return n.x+n.vx}function Cf(n){return n.y+n.vy}function bb(n){return n.z+n.vz}function _b(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?qn(t,An):e===2?pt(t,An,Cf):e===3?or(t,An,Cf,bb):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],j=q[e],F=q[e+1],A=q[e+2],k=x.data,L=x.r,D=d+L;if(k){if(k.index>g.index){var G=p-k.x-k.vx,P=e>1?v-k.y-k.vy:0,z=e>2?m-k.z-k.vz:0,B=G*G+P*P+z*z;B<D*D&&(G===0&&(G=Se(i),B+=G*G),e>1&&P===0&&(P=Se(i),B+=P*P),e>2&&z===0&&(z=Se(i),B+=z*z),B=(D-(B=Math.sqrt(B)))/B*s,g.vx+=(G*=B)*(D=(L*=L)/(y+L)),e>1&&(g.vy+=(P*=B)*D),e>2&&(g.vz+=(z*=B)*D),k.vx-=G*(D=1-D),e>1&&(k.vy-=P*D),e>2&&(k.vz-=z*D))}return}return R>p+D||j<p-D||e>1&&(T>v+D||F<v-D)||e>2&&(I>m+D||A<m-D)}}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 Eb(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 xb(n){var t=Eb,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||Se(f),a>1&&(O=N.y+N.vy-M.y-M.vy||Se(f)),a>2&&(_=N.z+N.vz-M.z-M.vz||Se(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 Nb=1664525,Mb=1013904223,Lf=4294967296;function Sb(){let n=1;return()=>(n=(Nb*n+Mb)%Lf)/Lf}var Df=3;function In(n){return n.x}function zf(n){return n.y}function Rb(n){return n.z}var qb=10,Ob=Math.PI*(3-Math.sqrt(5)),Ab=Math.PI*20/(9+Math.sqrt(221));function Ib(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=Sn(g),l=Nn("tick","end"),h=Sb();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=qb*(e>2?Math.cbrt(.5+d):e>1?Math.sqrt(.5+d):d),x=d*Ob,M=d*Ab;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 Tb(){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?qn(n,In):t===2?pt(n,In,zf):t===3?or(n,In,zf,Rb):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=Se(r),E+=b*b),t>1&&x===0&&(x=Se(r),E+=x*x),t>2&&M===0&&(M=Se(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=Se(r),E+=b*b),t>1&&x===0&&(x=Se(r),E+=x*x),t>2&&M===0&&(M=Se(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 kb(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 jb(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 Cb(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 Pb(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 Lb 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:xb,manyBody:Tb,center:sb,collide:_b,radial:kb,x:jb,y:Cb,z:Pb},this.options={numDimensions:3,link:{id:t=>t.id},manyBody:{},center:{x:0,y:0,z:0}}}initSimulation(){return Ib()}}function Tn(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 kn,$f;function Db(){if($f)return kn;$f=1;function n(){this.__data__=[],this.size=0}return kn=n,kn}var jn,Ff;function _t(){if(Ff)return jn;Ff=1;function n(t,e){return t===e||t!==t&&e!==e}return jn=n,jn}var Cn,Bf;function br(){if(Bf)return Cn;Bf=1;var n=_t();function t(e,r){for(var i=e.length;i--;)if(n(e[i][0],r))return i;return-1}return Cn=t,Cn}var Pn,Uf;function zb(){if(Uf)return Pn;Uf=1;var n=br(),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 Pn=r,Pn}var Ln,Gf;function $b(){if(Gf)return Ln;Gf=1;var n=br();function t(e){var r=this.__data__,i=n(r,e);return i<0?void 0:r[i][1]}return Ln=t,Ln}var Dn,Vf;function Fb(){if(Vf)return Dn;Vf=1;var n=br();function t(e){return n(this.__data__,e)>-1}return Dn=t,Dn}var zn,Wf;function Bb(){if(Wf)return zn;Wf=1;var n=br();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 zn=t,zn}var $n,Yf;function _r(){if(Yf)return $n;Yf=1;var n=Db(),t=zb(),e=$b(),r=Fb(),i=Bb();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,$n=s,$n}var Fn,Kf;function Ub(){if(Kf)return Fn;Kf=1;var n=_r();function t(){this.__data__=new n,this.size=0}return Fn=t,Fn}var Bn,Xf;function Gb(){if(Xf)return Bn;Xf=1;function n(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}return Bn=n,Bn}var Un,Zf;function Vb(){if(Zf)return Un;Zf=1;function n(t){return this.__data__.get(t)}return Un=n,Un}var Gn,Jf;function Wb(){if(Jf)return Gn;Jf=1;function n(t){return this.__data__.has(t)}return Gn=n,Gn}var Vn,Qf;function Hf(){if(Qf)return Vn;Qf=1;var n=typeof ar=="object"&&ar&&ar.Object===Object&&ar;return Vn=n,Vn}var Wn,el;function Oe(){if(el)return Wn;el=1;var n=Hf(),t=typeof self=="object"&&self&&self.Object===Object&&self,e=n||t||Function("return this")();return Wn=e,Wn}var Yn,tl;function Et(){if(tl)return Yn;tl=1;var n=Oe(),t=n.Symbol;return Yn=t,Yn}var Kn,rl;function Yb(){if(rl)return Kn;rl=1;var n=Et(),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 Kn=s,Kn}var Xn,nl;function Kb(){if(nl)return Xn;nl=1;var n=Object.prototype,t=n.toString;function e(r){return t.call(r)}return Xn=e,Xn}var Zn,il;function ot(){if(il)return Zn;il=1;var n=Et(),t=Yb(),e=Kb(),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 Zn=o,Zn}var Jn,sl;function Re(){if(sl)return Jn;sl=1;function n(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}return Jn=n,Jn}var Qn,ol;function $t(){if(ol)return Qn;ol=1;var n=ot(),t=Re(),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 Qn=o,Qn}var Hn,al;function Xb(){if(al)return Hn;al=1;var n=Oe(),t=n["__core-js_shared__"];return Hn=t,Hn}var ei,ul;function Zb(){if(ul)return ei;ul=1;var n=Xb(),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 ei=e,ei}var ti,cl;function fl(){if(cl)return ti;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 ti=e,ti}var ri,ll;function Jb(){if(ll)return ri;ll=1;var n=$t(),t=Zb(),e=Re(),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 ri=l,ri}var ni,hl;function Qb(){if(hl)return ni;hl=1;function n(t,e){return t==null?void 0:t[e]}return ni=n,ni}var ii,dl;function at(){if(dl)return ii;dl=1;var n=Jb(),t=Qb();function e(r,i){var s=t(r,i);return n(s)?s:void 0}return ii=e,ii}var si,gl;function oi(){if(gl)return si;gl=1;var n=at(),t=Oe(),e=n(t,"Map");return si=e,si}var ai,pl;function Er(){if(pl)return ai;pl=1;var n=at(),t=n(Object,"create");return ai=t,ai}var ui,vl;function Hb(){if(vl)return ui;vl=1;var n=Er();function t(){this.__data__=n?n(null):{},this.size=0}return ui=t,ui}var ci,ml;function e_(){if(ml)return ci;ml=1;function n(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}return ci=n,ci}var fi,yl;function t_(){if(yl)return fi;yl=1;var n=Er(),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 fi=i,fi}var li,wl;function r_(){if(wl)return li;wl=1;var n=Er(),t=Object.prototype,e=t.hasOwnProperty;function r(i){var s=this.__data__;return n?s[i]!==void 0:e.call(s,i)}return li=r,li}var hi,bl;function n_(){if(bl)return hi;bl=1;var n=Er(),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 hi=e,hi}var di,_l;function i_(){if(_l)return di;_l=1;var n=Hb(),t=e_(),e=t_(),r=r_(),i=n_();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,di=s,di}var gi,El;function s_(){if(El)return gi;El=1;var n=i_(),t=_r(),e=oi();function r(){this.size=0,this.__data__={hash:new n,map:new(e||t),string:new n}}return gi=r,gi}var pi,xl;function o_(){if(xl)return pi;xl=1;function n(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}return pi=n,pi}var vi,Nl;function xr(){if(Nl)return vi;Nl=1;var n=o_();function t(e,r){var i=e.__data__;return n(r)?i[typeof r=="string"?"string":"hash"]:i.map}return vi=t,vi}var mi,Ml;function a_(){if(Ml)return mi;Ml=1;var n=xr();function t(e){var r=n(this,e).delete(e);return this.size-=r?1:0,r}return mi=t,mi}var yi,Sl;function u_(){if(Sl)return yi;Sl=1;var n=xr();function t(e){return n(this,e).get(e)}return yi=t,yi}var wi,Rl;function c_(){if(Rl)return wi;Rl=1;var n=xr();function t(e){return n(this,e).has(e)}return wi=t,wi}var bi,ql;function f_(){if(ql)return bi;ql=1;var n=xr();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 bi=t,bi}var _i,Ol;function Ei(){if(Ol)return _i;Ol=1;var n=s_(),t=a_(),e=u_(),r=c_(),i=f_();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,_i=s,_i}var xi,Al;function l_(){if(Al)return xi;Al=1;var n=_r(),t=oi(),e=Ei(),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 xi=i,xi}var Ni,Il;function Nr(){if(Il)return Ni;Il=1;var n=_r(),t=Ub(),e=Gb(),r=Vb(),i=Wb(),s=l_();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,Ni=o,Ni}var Mi,Tl;function Si(){if(Tl)return Mi;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 Mi=n,Mi}var Ri,kl;function jl(){if(kl)return Ri;kl=1;var n=at(),t=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch{}}();return Ri=t,Ri}var qi,Cl;function Mr(){if(Cl)return qi;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 qi=t,qi}var Oi,Pl;function Sr(){if(Pl)return Oi;Pl=1;var n=Mr(),t=_t(),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 Oi=i,Oi}var Ai,Ll;function Ft(){if(Ll)return Ai;Ll=1;var n=Sr(),t=Mr();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 Ai=e,Ai}var Ii,Dl;function h_(){if(Dl)return Ii;Dl=1;function n(t,e){for(var r=-1,i=Array(t);++r<t;)i[r]=e(r);return i}return Ii=n,Ii}var Ti,zl;function Te(){if(zl)return Ti;zl=1;function n(t){return t!=null&&typeof t=="object"}return Ti=n,Ti}var ki,$l;function d_(){if($l)return ki;$l=1;var n=ot(),t=Te(),e="[object Arguments]";function r(i){return t(i)&&n(i)==e}return ki=r,ki}var ji,Fl;function Bt(){if(Fl)return ji;Fl=1;var n=d_(),t=Te(),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 ji=s,ji}var Ci,Bl;function oe(){if(Bl)return Ci;Bl=1;var n=Array.isArray;return Ci=n,Ci}var Ut={exports:{}},Pi,Ul;function g_(){if(Ul)return Pi;Ul=1;function n(){return!1}return Pi=n,Pi}Ut.exports;var Gl;function xt(){return Gl||(Gl=1,function(n,t){var e=Oe(),r=g_(),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}(Ut,Ut.exports)),Ut.exports}var Li,Vl;function Rr(){if(Vl)return Li;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 Li=e,Li}var Di,Wl;function zi(){if(Wl)return Di;Wl=1;var n=9007199254740991;function t(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=n}return Di=t,Di}var $i,Yl;function p_(){if(Yl)return $i;Yl=1;var n=ot(),t=zi(),e=Te(),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 $i=q,$i}var Fi,Kl;function qr(){if(Kl)return Fi;Kl=1;function n(t){return function(e){return t(e)}}return Fi=n,Fi}var Gt={exports:{}};Gt.exports;var Xl;function Bi(){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}(Gt,Gt.exports)),Gt.exports}var Ui,Zl;function Vt(){if(Zl)return Ui;Zl=1;var n=p_(),t=qr(),e=Bi(),r=e&&e.isTypedArray,i=r?t(r):n;return Ui=i,Ui}var Gi,Jl;function Ql(){if(Jl)return Gi;Jl=1;var n=h_(),t=Bt(),e=oe(),r=xt(),i=Rr(),s=Vt(),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 Gi=u,Gi}var Vi,Hl;function Or(){if(Hl)return Vi;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 Vi=t,Vi}var Wi,eh;function th(){if(eh)return Wi;eh=1;function n(t,e){return function(r){return t(e(r))}}return Wi=n,Wi}var Yi,rh;function v_(){if(rh)return Yi;rh=1;var n=th(),t=n(Object.keys,Object);return Yi=t,Yi}var Ki,nh;function Xi(){if(nh)return Ki;nh=1;var n=Or(),t=v_(),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 Ki=i,Ki}var Zi,ih;function Le(){if(ih)return Zi;ih=1;var n=$t(),t=zi();function e(r){return r!=null&&t(r.length)&&!n(r)}return Zi=e,Zi}var Ji,sh;function Xe(){if(sh)return Ji;sh=1;var n=Ql(),t=Xi(),e=Le();function r(i){return e(i)?n(i):t(i)}return Ji=r,Ji}var Qi,oh;function m_(){if(oh)return Qi;oh=1;var n=Ft(),t=Xe();function e(r,i){return r&&n(i,t(i),r)}return Qi=e,Qi}var Hi,ah;function y_(){if(ah)return Hi;ah=1;function n(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}return Hi=n,Hi}var es,uh;function w_(){if(uh)return es;uh=1;var n=Re(),t=Or(),e=y_(),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 es=s,es}var ts,ch;function ut(){if(ch)return ts;ch=1;var n=Ql(),t=w_(),e=Le();function r(i){return e(i)?n(i,!0):t(i)}return ts=r,ts}var rs,fh;function b_(){if(fh)return rs;fh=1;var n=Ft(),t=ut();function e(r,i){return r&&n(i,t(i),r)}return rs=e,rs}var Wt={exports:{}};Wt.exports;var lh;function hh(){return lh||(lh=1,function(n,t){var e=Oe(),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}(Wt,Wt.exports)),Wt.exports}var ns,dh;function gh(){if(dh)return ns;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 ns=n,ns}var is,ph;function vh(){if(ph)return is;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 is=n,is}var ss,mh;function yh(){if(mh)return ss;mh=1;function n(){return[]}return ss=n,ss}var os,wh;function as(){if(wh)return os;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 os=s,os}var us,bh;function __(){if(bh)return us;bh=1;var n=Ft(),t=as();function e(r,i){return n(r,t(r),i)}return us=e,us}var cs,_h;function fs(){if(_h)return cs;_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 cs=n,cs}var ls,Eh;function Ar(){if(Eh)return ls;Eh=1;var n=th(),t=n(Object.getPrototypeOf,Object);return ls=t,ls}var hs,xh;function Nh(){if(xh)return hs;xh=1;var n=fs(),t=Ar(),e=as(),r=yh(),i=Object.getOwnPropertySymbols,s=i?function(o){for(var a=[];o;)n(a,e(o)),o=t(o);return a}:r;return hs=s,hs}var ds,Mh;function E_(){if(Mh)return ds;Mh=1;var n=Ft(),t=Nh();function e(r,i){return n(r,t(r),i)}return ds=e,ds}var gs,Sh;function Rh(){if(Sh)return gs;Sh=1;var n=fs(),t=oe();function e(r,i,s){var o=i(r);return t(r)?o:n(o,s(r))}return gs=e,gs}var ps,qh;function Oh(){if(qh)return ps;qh=1;var n=Rh(),t=as(),e=Xe();function r(i){return n(i,e,t)}return ps=r,ps}var vs,Ah;function x_(){if(Ah)return vs;Ah=1;var n=Rh(),t=Nh(),e=ut();function r(i){return n(i,e,t)}return vs=r,vs}var ms,Ih;function N_(){if(Ih)return ms;Ih=1;var n=at(),t=Oe(),e=n(t,"DataView");return ms=e,ms}var ys,Th;function M_(){if(Th)return ys;Th=1;var n=at(),t=Oe(),e=n(t,"Promise");return ys=e,ys}var ws,kh;function jh(){if(kh)return ws;kh=1;var n=at(),t=Oe(),e=n(t,"Set");return ws=e,ws}var bs,Ch;function S_(){if(Ch)return bs;Ch=1;var n=at(),t=Oe(),e=n(t,"WeakMap");return bs=e,bs}var _s,Ph;function Nt(){if(Ph)return _s;Ph=1;var n=N_(),t=oi(),e=M_(),r=jh(),i=S_(),s=ot(),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}),_s=y,_s}var Es,Lh;function R_(){if(Lh)return Es;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 Es=e,Es}var xs,Dh;function zh(){if(Dh)return xs;Dh=1;var n=Oe(),t=n.Uint8Array;return xs=t,xs}var Ns,$h;function Ms(){if($h)return Ns;$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 Ns=t,Ns}var Ss,Fh;function q_(){if(Fh)return Ss;Fh=1;var n=Ms();function t(e,r){var i=r?n(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.byteLength)}return Ss=t,Ss}var Rs,Bh;function O_(){if(Bh)return Rs;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 Rs=t,Rs}var qs,Uh;function A_(){if(Uh)return qs;Uh=1;var n=Et(),t=n?n.prototype:void 0,e=t?t.valueOf:void 0;function r(i){return e?Object(e.call(i)):{}}return qs=r,qs}var Os,Gh;function Vh(){if(Gh)return Os;Gh=1;var n=Ms();function t(e,r){var i=r?n(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.length)}return Os=t,Os}var As,Wh;function I_(){if(Wh)return As;Wh=1;var n=Ms(),t=q_(),e=O_(),r=A_(),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 As=E,As}var Is,Yh;function Kh(){if(Yh)return Is;Yh=1;var n=Re(),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 Is=e,Is}var Ts,Xh;function Zh(){if(Xh)return Ts;Xh=1;var n=Kh(),t=Ar(),e=Or();function r(i){return typeof i.constructor=="function"&&!e(i)?n(t(i)):{}}return Ts=r,Ts}var ks,Jh;function T_(){if(Jh)return ks;Jh=1;var n=Nt(),t=Te(),e="[object Map]";function r(i){return t(i)&&n(i)==e}return ks=r,ks}var js,Qh;function k_(){if(Qh)return js;Qh=1;var n=T_(),t=qr(),e=Bi(),r=e&&e.isMap,i=r?t(r):n;return js=i,js}var Cs,Hh;function j_(){if(Hh)return Cs;Hh=1;var n=Nt(),t=Te(),e="[object Set]";function r(i){return t(i)&&n(i)==e}return Cs=r,Cs}var Ps,ed;function C_(){if(ed)return Ps;ed=1;var n=j_(),t=qr(),e=Bi(),r=e&&e.isSet,i=r?t(r):n;return Ps=i,Ps}var Ls,td;function rd(){if(td)return Ls;td=1;var n=Nr(),t=Si(),e=Sr(),r=m_(),i=b_(),s=hh(),o=gh(),a=__(),u=E_(),c=Oh(),f=x_(),l=Nt(),h=R_(),g=I_(),p=Zh(),v=oe(),m=xt(),d=k_(),y=Re(),w=C_(),b=Xe(),x=ut(),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]",j="[object Map]",F="[object Number]",A="[object Object]",k="[object RegExp]",L="[object Set]",D="[object String]",G="[object Symbol]",P="[object WeakMap]",z="[object ArrayBuffer]",B="[object DataView]",Z="[object Float32Array]",V="[object Float64Array]",le="[object Int8Array]",Ee="[object Int16Array]",Qu="[object Int32Array]",Hu="[object Uint8Array]",ec="[object Uint8ClampedArray]",tc="[object Uint16Array]",rc="[object Uint32Array]",H={};H[O]=H[_]=H[z]=H[B]=H[S]=H[q]=H[Z]=H[V]=H[le]=H[Ee]=H[Qu]=H[j]=H[F]=H[A]=H[k]=H[L]=H[D]=H[G]=H[Hu]=H[ec]=H[tc]=H[rc]=!0,H[R]=H[T]=H[P]=!1;function Ot(Q,At,It,JS,Xr,et){var ye,Zr=At&M,Jr=At&N,QS=At&E;if(It&&(ye=Xr?It(Q,JS,Xr,et):It(Q)),ye!==void 0)return ye;if(!y(Q))return Q;var g0=v(Q);if(g0){if(ye=h(Q),!Zr)return o(Q,ye)}else{var Tt=l(Q),p0=Tt==T||Tt==I;if(m(Q))return s(Q,Zr);if(Tt==A||Tt==O||p0&&!Xr){if(ye=Jr||p0?{}:p(Q),!Zr)return Jr?u(Q,i(ye,Q)):a(Q,r(ye,Q))}else{if(!H[Tt])return Xr?Q:{};ye=g(Q,Tt,Zr)}}et||(et=new n);var v0=et.get(Q);if(v0)return v0;et.set(Q,ye),w(Q)?Q.forEach(function(tt){ye.add(Ot(tt,At,It,tt,Q,et))}):d(Q)&&Q.forEach(function(tt,ht){ye.set(ht,Ot(tt,At,It,ht,Q,et))});var HS=QS?Jr?f:c:Jr?x:b,m0=g0?void 0:HS(Q);return t(m0||Q,function(tt,ht){m0&&(ht=tt,tt=Q[ht]),e(ye,ht,Ot(tt,At,It,ht,Q,et))}),ye}return Ls=Ot,Ls}var Ds,nd;function P_(){if(nd)return Ds;nd=1;var n=rd(),t=4;function e(r){return n(r,t)}return Ds=e,Ds}var zs,id;function $s(){if(id)return zs;id=1;function n(t){return function(){return t}}return zs=n,zs}var Fs,sd;function L_(){if(sd)return Fs;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 Fs=n,Fs}var Bs,od;function Us(){if(od)return Bs;od=1;var n=L_(),t=n();return Bs=t,Bs}var Gs,ad;function Vs(){if(ad)return Gs;ad=1;var n=Us(),t=Xe();function e(r,i){return r&&n(r,i,t)}return Gs=e,Gs}var Ws,ud;function D_(){if(ud)return Ws;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 Ws=t,Ws}var Ys,cd;function Ir(){if(cd)return Ys;cd=1;var n=Vs(),t=D_(),e=t(n);return Ys=e,Ys}var Ks,fd;function ct(){if(fd)return Ks;fd=1;function n(t){return t}return Ks=n,Ks}var Xs,ld;function hd(){if(ld)return Xs;ld=1;var n=ct();function t(e){return typeof e=="function"?e:n}return Xs=t,Xs}var Zs,dd;function gd(){if(dd)return Zs;dd=1;var n=Si(),t=Ir(),e=hd(),r=oe();function i(s,o){var a=r(s)?n:t;return a(s,e(o))}return Zs=i,Zs}var Js,pd;function vd(){return pd||(pd=1,Js=gd()),Js}var Qs,md;function z_(){if(md)return Qs;md=1;var n=Ir();function t(e,r){var i=[];return n(e,function(s,o,a){r(s,o,a)&&i.push(s)}),i}return Qs=t,Qs}var Hs,yd;function $_(){if(yd)return Hs;yd=1;var n="__lodash_hash_undefined__";function t(e){return this.__data__.set(e,n),this}return Hs=t,Hs}var eo,wd;function F_(){if(wd)return eo;wd=1;function n(t){return this.__data__.has(t)}return eo=n,eo}var to,bd;function _d(){if(bd)return to;bd=1;var n=Ei(),t=$_(),e=F_();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,to=r,to}var ro,Ed;function B_(){if(Ed)return ro;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 ro=n,ro}var no,xd;function Nd(){if(xd)return no;xd=1;function n(t,e){return t.has(e)}return no=n,no}var io,Md;function Sd(){if(Md)return io;Md=1;var n=_d(),t=B_(),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 io=s,io}var so,Rd;function U_(){if(Rd)return so;Rd=1;function n(t){var e=-1,r=Array(t.size);return t.forEach(function(i,s){r[++e]=[s,i]}),r}return so=n,so}var oo,qd;function ao(){if(qd)return oo;qd=1;function n(t){var e=-1,r=Array(t.size);return t.forEach(function(i){r[++e]=i}),r}return oo=n,oo}var uo,Od;function G_(){if(Od)return uo;Od=1;var n=Et(),t=zh(),e=_t(),r=Sd(),i=U_(),s=ao(),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 j=r(R(M),R(N),O,_,S,q);return q.delete(M),j;case m:if(b)return b.call(M)==b.call(N)}return!1}return uo=x,uo}var co,Ad;function V_(){if(Ad)return co;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 co=i,co}var fo,Id;function W_(){if(Id)return fo;Id=1;var n=Nr(),t=Sd(),e=G_(),r=V_(),i=Nt(),s=oe(),o=xt(),a=Vt(),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 fo=p,fo}var lo,Td;function kd(){if(Td)return lo;Td=1;var n=W_(),t=Te();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 lo=e,lo}var ho,jd;function Y_(){if(jd)return ho;jd=1;var n=Nr(),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 ho=i,ho}var go,Cd;function Pd(){if(Cd)return go;Cd=1;var n=Re();function t(e){return e===e&&!n(e)}return go=t,go}var po,Ld;function K_(){if(Ld)return po;Ld=1;var n=Pd(),t=Xe();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 po=e,po}var vo,Dd;function zd(){if(Dd)return vo;Dd=1;function n(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}return vo=n,vo}var mo,$d;function X_(){if($d)return mo;$d=1;var n=Y_(),t=K_(),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 mo=r,mo}var yo,Fd;function Mt(){if(Fd)return yo;Fd=1;var n=ot(),t=Te(),e="[object Symbol]";function r(i){return typeof i=="symbol"||t(i)&&n(i)==e}return yo=r,yo}var wo,Bd;function bo(){if(Bd)return wo;Bd=1;var n=oe(),t=Mt(),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 wo=i,wo}var _o,Ud;function Z_(){if(Ud)return _o;Ud=1;var n=Ei(),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,_o=e,_o}var Eo,Gd;function J_(){if(Gd)return Eo;Gd=1;var n=Z_(),t=500;function e(r){var i=n(r,function(o){return s.size===t&&s.clear(),o}),s=i.cache;return i}return Eo=e,Eo}var xo,Vd;function Q_(){if(Vd)return xo;Vd=1;var n=J_(),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 xo=r,xo}var No,Wd;function Tr(){if(Wd)return No;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 No=n,No}var Mo,Yd;function H_(){if(Yd)return Mo;Yd=1;var n=Et(),t=Tr(),e=oe(),r=Mt(),i=1/0,s=n?n.prototype:void 0,o=s?s.toString:void 0;function a(u){if(typeof u=="string")return u;if(e(u))return t(u,a)+"";if(r(u))return o?o.call(u):"";var c=u+"";return c=="0"&&1/u==-i?"-0":c}return Mo=a,Mo}var So,Kd;function Xd(){if(Kd)return So;Kd=1;var n=H_();function t(e){return e==null?"":n(e)}return So=t,So}var Ro,Zd;function kr(){if(Zd)return Ro;Zd=1;var n=oe(),t=bo(),e=Q_(),r=Xd();function i(s,o){return n(s)?s:t(s,o)?[s]:e(r(s))}return Ro=i,Ro}var qo,Jd;function Yt(){if(Jd)return qo;Jd=1;var n=Mt(),t=1/0;function e(r){if(typeof r=="string"||n(r))return r;var i=r+"";return i=="0"&&1/r==-t?"-0":i}return qo=e,qo}var Oo,Qd;function jr(){if(Qd)return Oo;Qd=1;var n=kr(),t=Yt();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 Oo=e,Oo}var Ao,Hd;function eE(){if(Hd)return Ao;Hd=1;var n=jr();function t(e,r,i){var s=e==null?void 0:n(e,r);return s===void 0?i:s}return Ao=t,Ao}var Io,eg;function tE(){if(eg)return Io;eg=1;function n(t,e){return t!=null&&e in Object(t)}return Io=n,Io}var To,tg;function rg(){if(tg)return To;tg=1;var n=kr(),t=Bt(),e=oe(),r=Rr(),i=zi(),s=Yt();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 To=o,To}var ko,ng;function ig(){if(ng)return ko;ng=1;var n=tE(),t=rg();function e(r,i){return r!=null&&t(r,i,n)}return ko=e,ko}var jo,sg;function rE(){if(sg)return jo;sg=1;var n=kd(),t=eE(),e=ig(),r=bo(),i=Pd(),s=zd(),o=Yt(),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 jo=c,jo}var Co,og;function ag(){if(og)return Co;og=1;function n(t){return function(e){return e==null?void 0:e[t]}}return Co=n,Co}var Po,ug;function nE(){if(ug)return Po;ug=1;var n=jr();function t(e){return function(r){return n(r,e)}}return Po=t,Po}var Lo,cg;function iE(){if(cg)return Lo;cg=1;var n=ag(),t=nE(),e=bo(),r=Yt();function i(s){return e(s)?n(r(s)):t(s)}return Lo=i,Lo}var Do,fg;function De(){if(fg)return Do;fg=1;var n=X_(),t=rE(),e=ct(),r=oe(),i=iE();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 Do=s,Do}var zo,lg;function hg(){if(lg)return zo;lg=1;var n=vh(),t=z_(),e=De(),r=oe();function i(s,o){var a=r(s)?n:t;return a(s,e(o,3))}return zo=i,zo}var $o,dg;function sE(){if(dg)return $o;dg=1;var n=Object.prototype,t=n.hasOwnProperty;function e(r,i){return r!=null&&t.call(r,i)}return $o=e,$o}var Fo,gg;function pg(){if(gg)return Fo;gg=1;var n=sE(),t=rg();function e(r,i){return r!=null&&t(r,i,n)}return Fo=e,Fo}var Bo,vg;function oE(){if(vg)return Bo;vg=1;var n=Xi(),t=Nt(),e=Bt(),r=oe(),i=Le(),s=xt(),o=Or(),a=Vt(),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 Bo=h,Bo}var Uo,mg;function yg(){if(mg)return Uo;mg=1;function n(t){return t===void 0}return Uo=n,Uo}var Go,wg;function bg(){if(wg)return Go;wg=1;var n=Ir(),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 Go=e,Go}var Vo,_g;function Eg(){if(_g)return Vo;_g=1;var n=Tr(),t=De(),e=bg(),r=oe();function i(s,o){var a=r(s)?n:e;return a(s,t(o,3))}return Vo=i,Vo}var Wo,xg;function aE(){if(xg)return Wo;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 Wo=n,Wo}var Yo,Ng;function uE(){if(Ng)return Yo;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 Yo=n,Yo}var Ko,Mg;function Sg(){if(Mg)return Ko;Mg=1;var n=aE(),t=Ir(),e=De(),r=uE(),i=oe();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 Ko=s,Ko}var Xo,Rg;function cE(){if(Rg)return Xo;Rg=1;var n=ot(),t=oe(),e=Te(),r="[object String]";function i(s){return typeof s=="string"||!t(s)&&e(s)&&n(s)==r}return Xo=i,Xo}var Zo,qg;function fE(){if(qg)return Zo;qg=1;var n=ag(),t=n("length");return Zo=t,Zo}var Jo,Og;function lE(){if(Og)return Jo;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 Jo=u,Jo}var Qo,Ag;function hE(){if(Ag)return Qo;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 Qo=b,Qo}var Ho,Ig;function dE(){if(Ig)return Ho;Ig=1;var n=fE(),t=lE(),e=hE();function r(i){return t(i)?e(i):n(i)}return Ho=r,Ho}var ea,Tg;function gE(){if(Tg)return ea;Tg=1;var n=Xi(),t=Nt(),e=Le(),r=cE(),i=dE(),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 ea=a,ea}var ta,kg;function pE(){if(kg)return ta;kg=1;var n=Si(),t=Kh(),e=Vs(),r=De(),i=Ar(),s=oe(),o=xt(),a=$t(),u=Re(),c=Vt();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 ta=f,ta}var ra,jg;function vE(){if(jg)return ra;jg=1;var n=Et(),t=Bt(),e=oe(),r=n?n.isConcatSpreadable:void 0;function i(s){return e(s)||t(s)||!!(r&&s&&s[r])}return ra=i,ra}var na,Cg;function ia(){if(Cg)return na;Cg=1;var n=fs(),t=vE();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 na=e,na}var sa,Pg;function mE(){if(Pg)return sa;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 sa=n,sa}var oa,Lg;function Dg(){if(Lg)return oa;Lg=1;var n=mE(),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 oa=e,oa}var aa,zg;function yE(){if(zg)return aa;zg=1;var n=$s(),t=jl(),e=ct(),r=t?function(i,s){return t(i,"toString",{configurable:!0,enumerable:!1,value:n(s),writable:!0})}:e;return aa=r,aa}var ua,$g;function wE(){if($g)return ua;$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 ua=r,ua}var ca,Fg;function Bg(){if(Fg)return ca;Fg=1;var n=yE(),t=wE(),e=t(n);return ca=e,ca}var fa,Ug;function Cr(){if(Ug)return fa;Ug=1;var n=ct(),t=Dg(),e=Bg();function r(i,s){return e(t(i,s,n),i+"")}return fa=r,fa}var la,Gg;function Vg(){if(Gg)return la;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 la=n,la}var ha,Wg;function bE(){if(Wg)return ha;Wg=1;function n(t){return t!==t}return ha=n,ha}var da,Yg;function _E(){if(Yg)return da;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 da=n,da}var ga,Kg;function EE(){if(Kg)return ga;Kg=1;var n=Vg(),t=bE(),e=_E();function r(i,s,o){return s===s?e(i,s,o):n(i,t,o)}return ga=r,ga}var pa,Xg;function xE(){if(Xg)return pa;Xg=1;var n=EE();function t(e,r){var i=e==null?0:e.length;return!!i&&n(e,r,0)>-1}return pa=t,pa}var va,Zg;function NE(){if(Zg)return va;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 va=n,va}var ma,Jg;function ME(){if(Jg)return ma;Jg=1;function n(){}return ma=n,ma}var ya,Qg;function SE(){if(Qg)return ya;Qg=1;var n=jh(),t=ME(),e=ao(),r=1/0,i=n&&1/e(new n([,-0]))[1]==r?function(s){return new n(s)}:t;return ya=i,ya}var wa,Hg;function RE(){if(Hg)return wa;Hg=1;var n=_d(),t=xE(),e=NE(),r=Nd(),i=SE(),s=ao(),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 wa=a,wa}var ba,ep;function tp(){if(ep)return ba;ep=1;var n=Le(),t=Te();function e(r){return t(r)&&n(r)}return ba=e,ba}var _a,rp;function qE(){if(rp)return _a;rp=1;var n=ia(),t=Cr(),e=RE(),r=tp(),i=t(function(s){return e(n(s,1,r,!0))});return _a=i,_a}var Ea,np;function OE(){if(np)return Ea;np=1;var n=Tr();function t(e,r){return n(r,function(i){return e[i]})}return Ea=t,Ea}var xa,ip;function sp(){if(ip)return xa;ip=1;var n=OE(),t=Xe();function e(r){return r==null?[]:n(r,t(r))}return xa=e,xa}var Na,op;function qe(){if(op)return Na;op=1;var n;if(typeof Tn=="function")try{n={clone:P_(),constant:$s(),each:vd(),filter:hg(),has:pg(),isArray:oe(),isEmpty:oE(),isFunction:$t(),isUndefined:yg(),keys:Xe(),map:Eg(),reduce:Sg(),size:gE(),transform:pE(),union:qE(),values:sp()}}catch{}return n||(n=window._),Na=n,Na}var Ma,ap;function Sa(){if(ap)return Ma;ap=1;var n=qe();Ma=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 Ma}var Ra,up;function AE(){return up||(up=1,Ra="2.1.8"),Ra}var qa,cp;function IE(){return cp||(cp=1,qa={Graph:Sa(),version:AE()}),qa}var Oa,fp;function TE(){if(fp)return Oa;fp=1;var n=qe(),t=Sa();Oa={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 Oa}var Aa,lp;function kE(){if(lp)return Aa;lp=1;var n=qe();Aa=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 Aa}var Ia,hp;function dp(){if(hp)return Ia;hp=1;var n=qe();Ia=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},Ia}var Ta,gp;function pp(){if(gp)return Ta;gp=1;var n=qe(),t=dp();Ta=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 Ta}var ka,vp;function jE(){if(vp)return ka;vp=1;var n=pp(),t=qe();ka=e;function e(r,i,s){return t.transform(r.nodes(),function(o,a){o[a]=n(r,a,i,s)},{})}return ka}var ja,mp;function yp(){if(mp)return ja;mp=1;var n=qe();ja=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 ja}var Ca,wp;function CE(){if(wp)return Ca;wp=1;var n=qe(),t=yp();Ca=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 Ca}var Pa,bp;function PE(){if(bp)return Pa;bp=1;var n=qe();Pa=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 Pa}var La,_p;function Ep(){if(_p)return La;_p=1;var n=qe();La=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,La}var Da,xp;function LE(){if(xp)return Da;xp=1;var n=Ep();Da=t;function t(e){try{n(e)}catch(r){if(r instanceof n.CycleException)return!1;throw r}return!0}return Da}var za,Np;function Mp(){if(Np)return za;Np=1;var n=qe();za=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 za}var $a,Sp;function DE(){if(Sp)return $a;Sp=1;var n=Mp();$a=t;function t(e,r){return n(e,r,"post")}return $a}var Fa,Rp;function zE(){if(Rp)return Fa;Rp=1;var n=Mp();Fa=t;function t(e,r){return n(e,r,"pre")}return Fa}var Ba,qp;function $E(){if(qp)return Ba;qp=1;var n=qe(),t=Sa(),e=dp();Ba=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 Ba}var Ua,Op;function FE(){return Op||(Op=1,Ua={components:kE(),dijkstra:pp(),dijkstraAll:jE(),findCycles:CE(),floydWarshall:PE(),isAcyclic:LE(),postorder:DE(),preorder:zE(),prim:$E(),tarjan:yp(),topsort:Ep()}),Ua}var Ga,Ap;function BE(){if(Ap)return Ga;Ap=1;var n=IE();return Ga={Graph:n.Graph,json:TE(),alg:FE(),version:n.version},Ga}var Pr;if(typeof Tn=="function")try{Pr=BE()}catch{}Pr||(Pr=window.graphlib);var Ae=Pr,Va,Ip;function UE(){if(Ip)return Va;Ip=1;var n=rd(),t=1,e=4;function r(i){return n(i,t|e)}return Va=r,Va}var Wa,Tp;function Lr(){if(Tp)return Wa;Tp=1;var n=_t(),t=Le(),e=Rr(),r=Re();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 Wa=i,Wa}var Ya,kp;function GE(){if(kp)return Ya;kp=1;var n=Cr(),t=_t(),e=Lr(),r=ut(),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 Ya=o,Ya}var Ka,jp;function VE(){if(jp)return Ka;jp=1;var n=De(),t=Le(),e=Xe();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 Ka=r,Ka}var Xa,Cp;function WE(){if(Cp)return Xa;Cp=1;var n=/\s/;function t(e){for(var r=e.length;r--&&n.test(e.charAt(r)););return r}return Xa=t,Xa}var Za,Pp;function YE(){if(Pp)return Za;Pp=1;var n=WE(),t=/^\s+/;function e(r){return r&&r.slice(0,n(r)+1).replace(t,"")}return Za=e,Za}var Ja,Lp;function KE(){if(Lp)return Ja;Lp=1;var n=YE(),t=Re(),e=Mt(),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 Ja=u,Ja}var Qa,Dp;function zp(){if(Dp)return Qa;Dp=1;var n=KE(),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 Qa=r,Qa}var Ha,$p;function XE(){if($p)return Ha;$p=1;var n=zp();function t(e){var r=n(e),i=r%1;return r===r?i?r-i:r:0}return Ha=t,Ha}var eu,Fp;function ZE(){if(Fp)return eu;Fp=1;var n=Vg(),t=De(),e=XE(),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 eu=i,eu}var tu,Bp;function JE(){if(Bp)return tu;Bp=1;var n=VE(),t=ZE(),e=n(t);return tu=e,tu}var ru,Up;function Gp(){if(Up)return ru;Up=1;var n=ia();function t(e){var r=e==null?0:e.length;return r?n(e,1):[]}return ru=t,ru}var nu,Vp;function QE(){if(Vp)return nu;Vp=1;var n=Us(),t=hd(),e=ut();function r(i,s){return i==null?i:n(i,t(s),e)}return nu=r,nu}var iu,Wp;function HE(){if(Wp)return iu;Wp=1;function n(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}return iu=n,iu}var su,Yp;function ex(){if(Yp)return su;Yp=1;var n=Mr(),t=Vs(),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 su=r,su}var ou,Kp;function au(){if(Kp)return ou;Kp=1;var n=Mt();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 ou=t,ou}var uu,Xp;function tx(){if(Xp)return uu;Xp=1;function n(t,e){return t>e}return uu=n,uu}var cu,Zp;function rx(){if(Zp)return cu;Zp=1;var n=au(),t=tx(),e=ct();function r(i){return i&&i.length?n(i,e,t):void 0}return cu=r,cu}var fu,Jp;function Qp(){if(Jp)return fu;Jp=1;var n=Mr(),t=_t();function e(r,i,s){(s!==void 0&&!t(r[i],s)||s===void 0&&!(i in r))&&n(r,i,s)}return fu=e,fu}var lu,Hp;function nx(){if(Hp)return lu;Hp=1;var n=ot(),t=Ar(),e=Te(),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 lu=c,lu}var hu,ev;function tv(){if(ev)return hu;ev=1;function n(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}return hu=n,hu}var du,rv;function ix(){if(rv)return du;rv=1;var n=Ft(),t=ut();function e(r){return n(r,t(r))}return du=e,du}var gu,nv;function sx(){if(nv)return gu;nv=1;var n=Qp(),t=hh(),e=Vh(),r=gh(),i=Zh(),s=Bt(),o=oe(),a=tp(),u=xt(),c=$t(),f=Re(),l=nx(),h=Vt(),g=tv(),p=ix();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 gu=v,gu}var pu,iv;function ox(){if(iv)return pu;iv=1;var n=Nr(),t=Qp(),e=Us(),r=sx(),i=Re(),s=ut(),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 pu=a,pu}var vu,sv;function ax(){if(sv)return vu;sv=1;var n=Cr(),t=Lr();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 vu=e,vu}var mu,ov;function ux(){if(ov)return mu;ov=1;var n=ox(),t=ax(),e=t(function(r,i,s){n(r,i,s)});return mu=e,mu}var yu,av;function uv(){if(av)return yu;av=1;function n(t,e){return t<e}return yu=n,yu}var wu,cv;function cx(){if(cv)return wu;cv=1;var n=au(),t=uv(),e=ct();function r(i){return i&&i.length?n(i,e,t):void 0}return wu=r,wu}var bu,fv;function fx(){if(fv)return bu;fv=1;var n=au(),t=De(),e=uv();function r(i,s){return i&&i.length?n(i,t(s,2),e):void 0}return bu=r,bu}var _u,lv;function lx(){if(lv)return _u;lv=1;var n=Oe(),t=function(){return n.Date.now()};return _u=t,_u}var Eu,hv;function hx(){if(hv)return Eu;hv=1;var n=Sr(),t=kr(),e=Rr(),r=Re(),i=Yt();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 Eu=s,Eu}var xu,dv;function dx(){if(dv)return xu;dv=1;var n=jr(),t=hx(),e=kr();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 xu=r,xu}var Nu,gv;function gx(){if(gv)return Nu;gv=1;var n=dx(),t=ig();function e(r,i){return n(r,i,function(s,o){return t(r,o)})}return Nu=e,Nu}var Mu,pv;function px(){if(pv)return Mu;pv=1;var n=Gp(),t=Dg(),e=Bg();function r(i){return e(t(i,void 0,n),i+"")}return Mu=r,Mu}var Su,vv;function vx(){if(vv)return Su;vv=1;var n=gx(),t=px(),e=t(function(r,i){return r==null?{}:n(r,i)});return Su=e,Su}var Ru,mv;function mx(){if(mv)return Ru;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 Ru=e,Ru}var qu,yv;function yx(){if(yv)return qu;yv=1;var n=mx(),t=Lr(),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 qu=r,qu}var Ou,wv;function wx(){if(wv)return Ou;wv=1;var n=yx(),t=n();return Ou=t,Ou}var Au,bv;function bx(){if(bv)return Au;bv=1;function n(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}return Au=n,Au}var Iu,_v;function _x(){if(_v)return Iu;_v=1;var n=Mt();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 Iu=t,Iu}var Tu,Ev;function Ex(){if(Ev)return Tu;Ev=1;var n=_x();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 Tu=t,Tu}var ku,xv;function xx(){if(xv)return ku;xv=1;var n=Tr(),t=jr(),e=De(),r=bg(),i=bx(),s=qr(),o=Ex(),a=ct(),u=oe();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 ku=c,ku}var ju,Nv;function Nx(){if(Nv)return ju;Nv=1;var n=ia(),t=xx(),e=Cr(),r=Lr(),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 ju=i,ju}var Cu,Mv;function Mx(){if(Mv)return Cu;Mv=1;var n=Xd(),t=0;function e(r){var i=++t;return n(r)+i}return Cu=e,Cu}var Pu,Sv;function Sx(){if(Sv)return Pu;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 Pu=n,Pu}var Lu,Rv;function Rx(){if(Rv)return Lu;Rv=1;var n=Sr(),t=Sx();function e(r,i){return t(r||[],i||[],n)}return Lu=e,Lu}var Dr;if(typeof Tn=="function")try{Dr={cloneDeep:UE(),constant:$s(),defaults:GE(),each:vd(),filter:hg(),find:JE(),flatten:Gp(),forEach:gd(),forIn:QE(),has:pg(),isUndefined:yg(),last:HE(),map:Eg(),mapValues:ex(),max:rx(),merge:ux(),min:cx(),minBy:fx(),now:lx(),pick:vx(),range:wx(),reduce:Sg(),sortBy:Nx(),uniqueId:Mx(),values:sp(),zipObject:Rx()}}catch{}Dr||(Dr=window._);var re=Dr,qx=zr;function zr(){var n={};n._next=n._prev=n,this._sentinel=n}zr.prototype.dequeue=function(){var n=this._sentinel,t=n._prev;if(t!==n)return qv(t),t},zr.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},zr.prototype.toString=function(){for(var n=[],t=this._sentinel,e=t._prev;e!==t;)n.push(JSON.stringify(e,Ox)),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 Ox(n,t){if(n!=="_next"&&n!=="_prev")return t}var ze=re,Ax=Ae.Graph,Ix=qx,Tx=jx,kx=ze.constant(1);function jx(n,t){if(n.nodeCount()<=1)return[];var e=Px(n,t||kx),r=Cx(e.graph,e.buckets,e.zeroIdx);return ze.flatten(ze.map(r,function(i){return n.outEdges(i.v,i.w)}),!0)}function Cx(n,t,e){for(var r=[],i=t[t.length-1],s=t[0],o;n.nodeCount();){for(;o=s.dequeue();)Du(n,t,e,o);for(;o=i.dequeue();)Du(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(Du(n,t,e,o,!0));break}}}return r}function Du(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,zu(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,zu(t,e,c)}),n.removeNode(r.v),s}function Px(n,t){var e=new Ax,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 Ix}),o=r+1;return ze.forEach(e.nodes(),function(a){zu(s,o,e.node(a))}),{graph:e,buckets:s,zeroIdx:o}}function zu(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 ft=re,Lx=Tx,Dx={run:zx,undo:Fx};function zx(n){var t=n.graph().acyclicer==="greedy"?Lx(n,e(n)):$x(n);ft.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,ft.uniqueId("rev"))});function e(r){return function(i){return r.edge(i).weight}}}function $x(n){var t=[],e={},r={};function i(s){ft.has(r,s)||(r[s]=!0,e[s]=!0,ft.forEach(n.outEdges(s),function(o){ft.has(e,o.w)?t.push(o):i(o.w)}),delete e[s])}return ft.forEach(n.nodes(),i),t}function Fx(n){ft.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=re,Ov=Ae.Graph,me={addDummyNode:Av,simplify:Bx,asNonCompoundGraph:Ux,successorWeights:Gx,predecessorWeights:Vx,intersectRect:Wx,buildLayerMatrix:Yx,normalizeRanks:Kx,removeEmptyRanks:Xx,addBorderNode:Zx,maxRank:Iv,partition:Jx,time:Qx,notime:Hx};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 Bx(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 Ux(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 Gx(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 Vx(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 Wx(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 Yx(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 Kx(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 Xx(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 Zx(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 Jx(n,t){var e={lhs:[],rhs:[]};return J.forEach(n,function(r){t(r)?e.lhs.push(r):e.rhs.push(r)}),e}function Qx(n,t){var e=J.now();try{return t()}finally{console.log(n+" time: "+(J.now()-e)+"ms")}}function Hx(n,t){return t()}var Tv=re,eN=me,tN={run:rN,undo:iN};function rN(n){n.graph().dummyChains=[],Tv.forEach(n.edges(),function(t){nN(n,t)})}function nN(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=eN.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 iN(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 $r=re,Fr={longestPath:sN,slack:oN};function sN(n){var t={};function e(r){var i=n.node(r);if($r.has(t,r))return i.rank;t[r]=!0;var s=$r.min($r.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}$r.forEach(n.sources(),e)}function oN(n,t){return n.node(t.w).rank-n.node(t.v).rank-n.edge(t).minlen}var Br=re,aN=Ae.Graph,Ur=Fr.slack,kv=uN;function uN(n){var t=new aN({directed:!1}),e=n.nodes()[0],r=n.nodeCount();t.setNode(e,{});for(var i,s;cN(t,n)<r;)i=fN(t,n),s=t.hasNode(i.v)?Ur(n,i):-Ur(n,i),lN(t,n,s);return t}function cN(n,t){function e(r){Br.forEach(t.nodeEdges(r),function(i){var s=i.v,o=r===s?i.w:s;!n.hasNode(o)&&!Ur(t,i)&&(n.setNode(o,{}),n.setEdge(r,o,{}),e(o))})}return Br.forEach(n.nodes(),e),n.nodeCount()}function fN(n,t){return Br.minBy(t.edges(),function(e){if(n.hasNode(e.v)!==n.hasNode(e.w))return Ur(t,e)})}function lN(n,t,e){Br.forEach(n.nodes(),function(r){t.node(r).rank+=e})}var $e=re,hN=kv,dN=Fr.slack,gN=Fr.longestPath,pN=Ae.alg.preorder,vN=Ae.alg.postorder,mN=me.simplify,yN=lt;lt.initLowLimValues=Fu,lt.initCutValues=$u,lt.calcCutValue=jv,lt.leaveEdge=Pv,lt.enterEdge=Lv,lt.exchangeEdges=Dv;function lt(n){n=mN(n),gN(n);var t=hN(n);Fu(t),$u(t,n);for(var e,r;e=Pv(t);)r=Lv(t,n,e),Dv(t,n,e,r)}function $u(n,t){var e=vN(n,n.nodes());e=e.slice(0,e.length-1),$e.forEach(e,function(r){wN(n,t,r)})}function wN(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,_N(n,e,f)){var g=n.edge(e,f).cutvalue;a+=l?-g:g}}}),a}function Fu(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 dN(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,{}),Fu(n),$u(n,t),bN(n,t)}function bN(n,t){var e=$e.find(n.nodes(),function(i){return!t.node(i).parent}),r=pN(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 _N(n,t,e){return n.hasEdge(t,e)}function zv(n,t,e){return e.low<=t.lim&&t.lim<=e.lim}var EN=Fr,$v=EN.longestPath,xN=kv,NN=yN,MN=SN;function SN(n){switch(n.graph().ranker){case"network-simplex":Fv(n);break;case"tight-tree":qN(n);break;case"longest-path":RN(n);break;default:Fv(n)}}var RN=$v;function qN(n){$v(n),xN(n)}function Fv(n){NN(n)}var Bu=re,ON=AN;function AN(n){var t=TN(n);Bu.forEach(n.graph().dummyChains,function(e){for(var r=n.node(e),i=r.edgeObj,s=IN(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 IN(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 TN(n){var t={},e=0;function r(i){var s=e;Bu.forEach(n.children(i),r),t[i]={low:s,lim:e++}}return Bu.forEach(n.children(),r),t}var Fe=re,Uu=me,kN={run:jN,cleanup:LN};function jN(n){var t=Uu.addDummyNode(n,"root",{},"_root"),e=CN(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=PN(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=Uu.addBorderNode(n,"_bt"),c=Uu.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 CN(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 PN(n){return Fe.reduce(n.edges(),function(t,e){return t+n.edge(e).weight},0)}function LN(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 Gu=re,DN=me,zN=$N;function $N(n){function t(e){var r=n.children(e),i=n.node(e);if(r.length&&Gu.forEach(r,t),Gu.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)}}Gu.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=DN.addDummyNode(n,"border",o,e);i[t][s]=u,n.setParent(u,r),a&&n.setEdge(a,u,{weight:1})}var ke=re,FN={adjust:BN,undo:UN};function BN(n){var t=n.graph().rankdir.toLowerCase();(t==="lr"||t==="rl")&&Gv(n)}function UN(n){var t=n.graph().rankdir.toLowerCase();(t==="bt"||t==="rl")&&GN(n),(t==="lr"||t==="rl")&&(VN(n),Gv(n))}function Gv(n){ke.forEach(n.nodes(),function(t){Vv(n.node(t))}),ke.forEach(n.edges(),function(t){Vv(n.edge(t))})}function Vv(n){var t=n.width;n.width=n.height,n.height=t}function GN(n){ke.forEach(n.nodes(),function(t){Vu(n.node(t))}),ke.forEach(n.edges(),function(t){var e=n.edge(t);ke.forEach(e.points,Vu),ke.has(e,"y")&&Vu(e)})}function Vu(n){n.y=-n.y}function VN(n){ke.forEach(n.nodes(),function(t){Wu(n.node(t))}),ke.forEach(n.edges(),function(t){var e=n.edge(t);ke.forEach(e.points,Wu),ke.has(e,"x")&&Wu(e)})}function Wu(n){var t=n.x;n.x=n.y,n.y=t}var Be=re,WN=YN;function YN(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 Ze=re,KN=XN;function XN(n,t){for(var e=0,r=1;r<t.length;++r)e+=ZN(n,t[r-1],t[r]);return e}function ZN(n,t,e){for(var r=Ze.zipObject(e,Ze.map(e,function(c,f){return f})),i=Ze.flatten(Ze.map(t,function(c){return Ze.sortBy(Ze.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=Ze.map(new Array(o),function(){return 0}),u=0;return Ze.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=re,JN=QN;function QN(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 _e=re,HN=eM;function eM(n,t){var e={};_e.forEach(n,function(i,s){var o=e[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:s};_e.isUndefined(i.barycenter)||(o.barycenter=i.barycenter,o.weight=i.weight)}),_e.forEach(t.edges(),function(i){var s=e[i.v],o=e[i.w];!_e.isUndefined(s)&&!_e.isUndefined(o)&&(o.indegree++,s.out.push(e[i.w]))});var r=_e.filter(e,function(i){return!i.indegree});return tM(r)}function tM(n){var t=[];function e(s){return function(o){o.merged||(_e.isUndefined(o.barycenter)||_e.isUndefined(s.barycenter)||o.barycenter>=s.barycenter)&&rM(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),_e.forEach(i.in.reverse(),e(i)),_e.forEach(i.out,r(i))}return _e.map(_e.filter(t,function(s){return!s.merged}),function(s){return _e.pick(s,["vs","i","barycenter","weight"])})}function rM(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 Kt=re,nM=me,iM=sM;function sM(n,t){var e=nM.partition(n,function(f){return Kt.has(f,"barycenter")}),r=e.lhs,i=Kt.sortBy(e.rhs,function(f){return-f.i}),s=[],o=0,a=0,u=0;r.sort(oM(!!t)),u=Yv(s,i,u),Kt.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:Kt.flatten(s,!0)};return a&&(c.barycenter=o/a,c.weight=a),c}function Yv(n,t,e){for(var r;t.length&&(r=Kt.last(t)).i<=e;)t.pop(),n.push(r.vs),e++;return e}function oM(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 Je=re,aM=JN,uM=HN,cM=iM,fM=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=Je.filter(i,function(p){return p!==o&&p!==a}));var c=aM(n,i);Je.forEach(c,function(p){if(n.children(p.v).length){var v=Kv(n,p.v,e,r);u[p.v]=v,Je.has(v,"barycenter")&&hM(p,v)}});var f=uM(c,e);lM(f,u);var l=cM(f,r);if(o&&(l.vs=Je.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]);Je.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 lM(n,t){Je.forEach(n,function(e){e.vs=Je.flatten(e.vs.map(function(r){return t[r]?t[r].vs:r}),!0)})}function hM(n,t){Je.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 Xt=re,dM=Ae.Graph,gM=pM;function pM(n,t,e){var r=vM(n),i=new dM({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(function(s){return n.node(s)});return Xt.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),Xt.forEach(n[e](s),function(u){var c=u.v===s?u.w:u.v,f=i.edge(c,s),l=Xt.isUndefined(f)?0:f.weight;i.setEdge(c,s,{weight:n.edge(u).weight+l})}),Xt.has(o,"minRank")&&i.setNode(s,{borderLeft:o.borderLeft[t],borderRight:o.borderRight[t]}))}),i}function vM(n){for(var t;n.hasNode(t=Xt.uniqueId("_root")););return t}var mM=re,yM=wM;function wM(n,t,e){var r={},i;mM.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 Qe=re,bM=WN,_M=KN,EM=fM,xM=gM,NM=yM,MM=Ae.Graph,Xv=me,SM=RM;function RM(n){var t=Xv.maxRank(n),e=Zv(n,Qe.range(1,t+1),"inEdges"),r=Zv(n,Qe.range(t-1,-1,-1),"outEdges"),i=bM(n);Jv(n,i);for(var s=Number.POSITIVE_INFINITY,o,a=0,u=0;u<4;++a,++u){qM(a%2?e:r,a%4>=2),i=Xv.buildLayerMatrix(n);var c=_M(n,i);c<s&&(u=0,o=Qe.cloneDeep(i),s=c)}Jv(n,o)}function Zv(n,t,e){return Qe.map(t,function(r){return xM(n,r,e)})}function qM(n,t){var e=new MM;Qe.forEach(n,function(r){var i=r.graph().root,s=EM(r,i,e,t);Qe.forEach(s.vs,function(o,a){r.node(o).order=a}),NM(r,e,s.vs)})}function Jv(n,t){Qe.forEach(t,function(e){Qe.forEach(e,function(r,i){n.node(r).order=i})})}var W=re,OM=Ae.Graph,AM=me,IM={positionX:jM,findType1Conflicts:Qv,findType2Conflicts:Hv,addConflict:Yu,hasConflict:e0,verticalAlignment:t0,horizontalCompaction:r0,alignCoordinates:i0,findSmallestWidthAlignment:n0,balance:s0};function Qv(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=TM(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)&&Yu(e,v,p)})}),a=l+1,o=g)}),s}return W.reduce(t,r),e}function Hv(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)&&Yu(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 TM(n,t){if(n.node(t).dummy)return W.find(n.predecessors(t),function(e){return n.node(e).dummy})}function Yu(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 e0(n,t,e){if(t>e){var r=t;t=e,e=r}return W.has(n[t],e)}function t0(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]&&!e0(e,c,p)&&(s[p]=c,s[c]=i[c]=i[p],u=o[p])}}})}),{root:i,align:s}}function r0(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 OM,s=n.graph(),o=CM(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 n0(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=PM(n,o)/2;r=Math.max(s+a,r),i=Math.min(s-a,i)}),r-i})}function i0(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 s0(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 jM(n){var t=AM.buildLayerMatrix(n),e=W.merge(Qv(n,t),Hv(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=t0(n,i,e,u),f=r0(n,i,c.root,c.align,a==="r");a==="r"&&(f=W.mapValues(f,function(l){return-l})),r[o+a]=f})});var s=n0(n,r);return i0(r,s),s0(r,n.graph().align)}function CM(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 PM(n,t){return n.node(t).width}var Zt=re,o0=me,LM=IM.positionX,DM=zM;function zM(n){n=o0.asNonCompoundGraph(n),$M(n),Zt.forEach(LM(n),function(t,e){n.node(e).x=t})}function $M(n){var t=o0.buildLayerMatrix(n),e=n.graph().ranksep,r=0;Zt.forEach(t,function(i){var s=Zt.max(Zt.map(i,function(o){return n.node(o).height}));Zt.forEach(i,function(o){n.node(o).y=r+s/2}),r+=s+e})}var K=re,a0=Dx,u0=tN,FM=MN,BM=me.normalizeRanks,UM=ON,GM=me.removeEmptyRanks,c0=kN,VM=zN,f0=FN,WM=SM,YM=DM,He=me,KM=Ae.Graph,XM=ZM;function ZM(n,t){var e=t&&t.debugTiming?He.time:He.notime;e("layout",function(){var r=e(" buildLayoutGraph",function(){return aS(n)});e(" runLayout",function(){JM(r,e)}),e(" updateInputGraph",function(){QM(n,r)})})}function JM(n,t){t(" makeSpaceForEdgeLabels",function(){uS(n)}),t(" removeSelfEdges",function(){mS(n)}),t(" acyclic",function(){a0.run(n)}),t(" nestingGraph.run",function(){c0.run(n)}),t(" rank",function(){FM(He.asNonCompoundGraph(n))}),t(" injectEdgeLabelProxies",function(){cS(n)}),t(" removeEmptyRanks",function(){GM(n)}),t(" nestingGraph.cleanup",function(){c0.cleanup(n)}),t(" normalizeRanks",function(){BM(n)}),t(" assignRankMinMax",function(){fS(n)}),t(" removeEdgeLabelProxies",function(){lS(n)}),t(" normalize.run",function(){u0.run(n)}),t(" parentDummyChains",function(){UM(n)}),t(" addBorderSegments",function(){VM(n)}),t(" order",function(){WM(n)}),t(" insertSelfEdges",function(){yS(n)}),t(" adjustCoordinateSystem",function(){f0.adjust(n)}),t(" position",function(){YM(n)}),t(" positionSelfEdges",function(){wS(n)}),t(" removeBorderNodes",function(){vS(n)}),t(" normalize.undo",function(){u0.undo(n)}),t(" fixupEdgeLabelCoords",function(){gS(n)}),t(" undoCoordinateSystem",function(){f0.undo(n)}),t(" translateGraph",function(){hS(n)}),t(" assignNodeIntersects",function(){dS(n)}),t(" reversePoints",function(){pS(n)}),t(" acyclic.undo",function(){a0.undo(n)})}function QM(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 HM=["nodesep","edgesep","ranksep","marginx","marginy"],eS={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},tS=["acyclicer","ranker","rankdir","align"],rS=["width","height"],nS={width:0,height:0},iS=["minlen","weight","width","height","labeloffset"],sS={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},oS=["labelpos"];function aS(n){var t=new KM({multigraph:!0,compound:!0}),e=Xu(n.graph());return t.setGraph(K.merge({},eS,Ku(e,HM),K.pick(e,tS))),K.forEach(n.nodes(),function(r){var i=Xu(n.node(r));t.setNode(r,K.defaults(Ku(i,rS),nS)),t.setParent(r,n.parent(r))}),K.forEach(n.edges(),function(r){var i=Xu(n.edge(r));t.setEdge(r,K.merge({},sS,Ku(i,iS),K.pick(i,oS)))}),t}function uS(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 cS(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};He.addDummyNode(n,"edge-proxy",s,"_ep")}})}function fS(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 lS(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 hS(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 dS(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(He.intersectRect(r,s)),e.points.push(He.intersectRect(i,o))})}function gS(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 pS(n){K.forEach(n.edges(),function(t){var e=n.edge(t);e.reversed&&e.points.reverse()})}function vS(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 mS(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 yS(n){var t=He.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){He.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 wS(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 Ku(n,t){return K.mapValues(K.pick(n,t),Number)}function Xu(n){var t={};return K.forEach(n,function(e,r){t[r.toLowerCase()]=e}),t}var Gr=re,bS=me,_S=Ae.Graph,ES={debugOrdering:xS};function xS(n){var t=bS.buildLayerMatrix(n),e=new _S({compound:!0,multigraph:!0}).setGraph({});return Gr.forEach(n.nodes(),function(r){e.setNode(r,{label:r}),e.setParent(r,"layer"+n.node(r).rank)}),Gr.forEach(n.edges(),function(r){e.setEdge(r.v,r.w,{},r.name)}),Gr.forEach(t,function(r,i){var s="layer"+i;e.setNode(s,{rank:"same"}),Gr.reduce(r,function(o,a){return e.setEdge(o,a,{style:"invis"}),a})}),e}var NS="0.8.5",l0={graphlib:Ae,layout:XM,debug:ES,util:{time:me.time,notime:me.notime},version:NS},MS=Ow(l0);function SS(n){if(!n)return[0,0,0];if(U(n))return[n,n,n];if(n.length===0)return[0,0,0];const[t,e=t,r=t]=n;return[t,e,r]}class Vr{constructor(t){this.id="dagre",this.options={},Object.assign(this.options,Vr.defaultOptions,t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,Object.assign(Object.assign({},this.options),e))})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,Object.assign(Object.assign({},this.options),e))})}genericDagreLayout(t,e,r){return $(this,void 0,void 0,function*(){const{nodeSize:i}=r,s=new l0.graphlib.Graph;s.setGraph(r),s.setDefaultEdgeLabel(()=>({}));const o=e.getAllNodes(),a=e.getAllEdges();[...o,...a].some(({id:c})=>U(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]=SS(xe(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})}),MS.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=ne(f,["id"]),{v:g,w:p}=c;u.edges.push({id:l,source:g,target:p,data:h}),t&&e.mergeEdgeData(l,h)}),u})}}Vr.defaultOptions={};class Zu{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 Zu(o)}}class St{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 St(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 St(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 St(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 St(i)}}class Rt{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 Rt(this.quad.NW()),this.NE=new Rt(this.quad.NE()),this.SW=new Rt(this.quad.SW()),this.SE=new Rt(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 RS={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 qS{constructor(t={}){this.options=t,this.id="forceAtlas2",this.options=Object.assign(Object.assign({},RS),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericForceAtlas2Layout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericForceAtlas2Layout(!0,t,e)})}genericForceAtlas2Layout(t,e,r){return $(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 nt(e,t,h);const g=s.map(d=>we(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,e,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,r){const i=t.getAllNodes(),s={};for(let o=0;o<i.length;o+=1){const{id:a,data:u}=i[o];if(s[a]=10,U(u.size))s[a]=u.size;else if(he(u.size))isNaN(u.size[0])||(s[a]=Math.max(u.size[0])),isNaN(u.size[1])||(s[a]=Math.max(u.size[1]));else if(Ge(u.size))s[a]=Math.max(u.size.width,u.size.height);else if(xe(r)){const c=e.getNode(a),f=r(c);he(f)?s[a]=Math.max(...f):s[a]=f}else he(r)?s[a]=Math.max(...r):U(r)&&(s[a]=r)}return s}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 Zu(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 St(v),d=new Rt(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||U(b.fx)&&U(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 OS={maxIteration:1e3,gravity:10,speed:5,clustering:!1,clusterGravity:10,width:300,height:300,nodeClusterBy:"cluster"},AS=800;class IS{constructor(t={}){this.options=t,this.id="fruchterman",this.timeInterval=0,this.running=!1,this.options=Object.assign(Object.assign({},OS),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericFruchtermanLayout(!1,t,e)})}assign(t,e){return $(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 $(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=>we(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]];U(x.x)&&(M.cx+=x.x),U(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(!U(N.x)||!U(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(!U(M.x)||!U(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(U(M.fx)&&U(M.fy)){M.x=M.fx,M.y=M.fy,i===3&&(M.z=M.fz);return}if(!U(M.x)||!U(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/AS),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||!U(s.x)||!U(u.x)||!U(s.y)||!U(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(!U(c.x)||!U(u.x)||!U(c.y)||!U(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 TS={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 kS{constructor(t={}){this.options=t,this.id="grid",this.options=Object.assign(Object.assign({},TS),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericGridLayout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericGridLayout(!0,t,e)})}genericGridLayout(t,e,r){return $(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 nt(e,t,s);const b=d.map(I=>we(I));m!=="id"&&(!kt(m)||b[0].data[m]===void 0)&&(m="degree"),m==="degree"?b.sort((I,j)=>e.getDegree(j.id,"both")-e.getDegree(I.id,"both")):m==="id"?b.sort((I,j)=>U(j.id)&&U(I.id)?j.id-I.id:`${I.id}`.localeCompare(`${j.id}`)):b.sort((I,j)=>j.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=Wr(E),j=Yr(E);(I-1)*j>=N?Wr(E,I-1):(j-1)*I>=N&&Yr(E,j-1)}else for(;E.cols*E.rows<N;){const I=Wr(E),j=Yr(E);(j+1)*I>=N?Yr(E,j+1):Wr(E,I+1)}let O=o?0:x/E.cols,_=o?0:M/E.rows;if(u||l){const I=We(10,l),j=Zc(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),k=j(A)||30;let L,D;he(k)?(L=k[0],D=k[1]):(L=k,D=k);const G=I!==void 0?I(F):a,P=L+G,z=D+G;O=Math.max(O,P),_=Math.max(_,z)})}const S={},q={row:0,col:0},R={};for(let I=0;I<b.length;I++){const j=b[I];let F;if(v&&(F=v(e.getNode(j.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;Ju(S,A);)A.col++;else if(A.row===void 0)for(A.row=0;Ju(S,A);)A.row++;R[j.id]=A,h0(S,A)}jS(j,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 Wr=(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},Yr=(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},Ju=(n,t)=>n[`c-${t.row}-${t.col}`]||!1,h0=(n,t)=>n[`c-${t.row}-${t.col}`]=!0,d0=(n,t)=>{const e=n.cols||5;t.col++,t.col>=e&&(t.col=0,t.row++)},jS=(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(;Ju(a,o);)d0(s,o);u=o.col*e+e/2+t[0],c=o.row*r+r/2+t[1],h0(a,o),d0(s,o)}n.data.x=u,n.data.y=c},CS=(n,t,e)=>{try{const r=Ye.mul(Ye.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=Ye.sqrt(a.diagonalMatrix).diagonal();return a.leftSingularVectors.toJSON().map(c=>Ye.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}},PS=800,LS={iterations:10,height:10,width:10,speed:100,gravity:10,k:5},DS=(n,t)=>{const e=Object.assign(Object.assign({},LS),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}}),zS(h,r,g,o,f,l),$S(r,g,a,u,c,p,s,f);return r},zS=(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}})})},$S=(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/PS),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},FS={maxIteration:1e3,focusNode:null,unitRadius:null,linkDistance:50,preventOverlap:!1,strictRadial:!0,maxPreventOverlapIteration:200,sortStrength:10};class BS{constructor(t={}){this.options=t,this.id="radial",this.options=Object.assign(Object.assign({},FS),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericRadialLayout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericRadialLayout(!0,t,e)})}genericRadialLayout(t,e,r){return $(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 nt(e,t,N);let E=w[0];if(kt(u)){for(let V=0;V<w.length;V++)if(w[V].id===u){E=w[V];break}}else E=u||w[0];const O=VS(w,E.id),_=Kc({nodes:w,edges:b}),S=Yc(_),q=YS(S,O);WS(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 j=Math.min(T,I),F=Math.max(...R),A=[],k=c||j/F;R.forEach((V,le)=>{A[le]=V*k});const L=US(w,S,m,A,k,v,d),D=GS(L),G=CS(m,L,m);let P=G.map(([V,le])=>({x:(isNaN(V)?Math.random()*m:V)-G[O][0],y:(isNaN(le)?Math.random()*m:le)-G[O][1]}));this.run(y,P,D,L,A,O);let z;if(g){z=Jc(f,l);const V={nodes:w,nodeSizeFunc:z,positions:P,radii:A,height:M,width:x,strictRadial:!!h,focusIdx:O,iterations:p||200,k:P.length/4.5};P=DS(e,V)}const B=[];return P.forEach((V,le)=>{const Ee=we(w[le]);Ee.data.x=V.x+N[0],Ee.data.y=V.y+N[1],B.push(Ee)}),t&&B.forEach(V=>e.mergeNodeData(V.id,{x:V.data.x,y:V.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=Xc(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=Xc(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 US=(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},GS=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},VS=(n,t)=>{let e=-1;return n.forEach((r,i)=>{r.id===t&&(e=i)}),Math.max(e,0)},WS=(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}}},YS=(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},KS={center:[0,0],width:300,height:300};class XS{constructor(t={}){this.options=t,this.id="random",this.options=Object.assign(Object.assign({},KS),t)}execute(t,e){return $(this,void 0,void 0,function*(){return this.genericRandomLayout(!1,t,e)})}assign(t,e){return $(this,void 0,void 0,function*(){yield this.genericRandomLayout(!0,t,e)})}genericRandomLayout(t,e,r){return $(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 ZS={circular:Ly,concentric:pn,mds:_f,random:XS,grid:kS,radial:BS,force:nf,d3force:If,"d3-force-3d":Lb,fruchterman:IS,forceAtlas2:qS,dagre:Vr,antvDagre:jy,comboCombined:k1};let Ue;tn({stopLayout(){Ue!=null&&Ue.stop&&Ue.stop()},calculateLayout(n,t){return $(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=ZS[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]})}})})();
|