@rse/gradia 1.1.3 → 1.1.5

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/README.md CHANGED
@@ -256,24 +256,32 @@ type is silently ignored. Without both, the type defaults to `graph`.
256
256
  A `#config` directive sets one of the rendering options, which otherwise
257
257
  are settable through the corresponding `--config <option>=<value>`
258
258
  command-line options (`font-embed` being command-line only, see below).
259
- The recognized options are:
259
+ The recognized options, and their default values, are:
260
260
 
261
261
  ```
262
- font-family color-edge-name graph-channel-width-min
263
- font-embed color-edge-arity graph-gutter-height-max
264
- color-node-regular-name color-edge-halo graph-gutter-height-min
265
- color-node-regular-box size-canvas-margin graph-node-separation
266
- color-node-regular-border size-node-width-min graph-rank-separation
267
- color-node-primary-name size-node-width-max graph-node-degree-max
268
- color-node-primary-box size-node-height-scale hub-channel-width-max
269
- color-node-primary-border size-edge-corner-radius hub-channel-width-min
270
- color-node-ghost-name size-edge-hop-radius hub-node-gap
271
- color-node-ghost-box size-edge-track-gap hub-node-degree-max
272
- color-node-ghost-border size-edge-port-gap grid-columns-max
273
- color-group-name group-box-padding grid-columns-min
274
- color-group-box group-box-gap grid-gap-horizontal
275
- color-group-border graph-columns-max grid-gap-vertical
276
- color-edge-line graph-channel-width-max grid-node-width-equal
262
+ font-family Helvetica size-edge-hop-radius 8
263
+ font-embed false size-edge-track-gap 12
264
+ color-node-regular-name #336699 size-edge-port-gap 24
265
+ color-node-regular-box #e0f0ff group-box-padding 30
266
+ color-node-regular-border #c0d0e0 group-box-gap 40
267
+ color-node-primary-name #ffffff graph-columns-max 4
268
+ color-node-primary-box #336699 graph-channel-width-max 140
269
+ color-node-primary-border #003366 graph-channel-width-min 24
270
+ color-node-ghost-name #666666 graph-gutter-height-max 90
271
+ color-node-ghost-box #f0f0f0 graph-gutter-height-min 20
272
+ color-node-ghost-border #a0a0a0 graph-node-separation 30
273
+ color-group-name #6699cc graph-rank-separation 60
274
+ color-group-box #f4f8fc graph-node-degree-max 3
275
+ color-group-border #c0d0e0 hub-channel-width-max 340
276
+ color-edge-line #999999 hub-channel-width-min 240
277
+ color-edge-name #333333 hub-node-gap 20
278
+ color-edge-arity #333333 hub-node-degree-max 3
279
+ color-edge-halo #ffffff grid-columns-max 4
280
+ size-canvas-margin 40 grid-columns-min 3
281
+ size-node-width-min 220 grid-gap-horizontal 40
282
+ size-node-width-max 0 grid-gap-vertical 20
283
+ size-node-height-scale 2.25 grid-node-width-equal true
284
+ size-edge-corner-radius 20
277
285
  ```
278
286
 
279
287
  The `size-*`, `group-*`, `graph-*`, `hub-*`, and `grid-*` options
@@ -285,17 +293,17 @@ The `size-node-width-max` option additionally enables the word-wrapping
285
293
  of the node box texts: given a positive value, the node name, its type,
286
294
  and its attribute lines are greedily broken at whitespace so that the
287
295
  node box stays within the given width and grows in height instead. The
288
- default `0` disables the wrapping entirely and hence lets a node box
296
+ value `0` disables the wrapping entirely and hence lets a node box
289
297
  become as wide as its longest text. A single word wider than the
290
298
  maximum is never broken and still widens the box beyond the maximum.
291
299
 
292
- The `size-edge-port-gap` option (default `24`) controls the distance of
293
- the edge attachment ports along a node side, and hence the vertical
294
- distance of the parallel edges and their labels. It is a *maximum*: a
295
- node box too small to hold all its ports at that distance packs them
296
- closer together instead. A node side carrying more edges than
297
- `graph-node-degree-max` respectively `hub-node-degree-max` grows its box
298
- height by this very distance per additional edge.
300
+ The `size-edge-port-gap` option controls the distance of the edge
301
+ attachment ports along a node side, and hence the vertical distance of
302
+ the parallel edges and their labels. It is a *maximum*: a node box too
303
+ small to hold all its ports at that distance packs them closer together
304
+ instead. A node side carrying more edges than `graph-node-degree-max`
305
+ respectively `hub-node-degree-max` grows its box height by this very
306
+ distance per additional edge.
299
307
 
300
308
  The `graph-channel-width-*` and `graph-gutter-height-*` options control
301
309
  the spacing of a `graph` diagram: its inter-column channels and
@@ -303,21 +311,21 @@ inter-row gutters are sized by the edges routed through them and by the
303
311
  edge labels landing inside them -- a channel by the widest label demand
304
312
  it has to hold (an edge name placed along it, or an edge arity set back
305
313
  from its arrow head), a gutter by one text line per edge name placed
306
- along its run. The `-min` options (defaults `24` and `20`) raise the
307
- result, so that even an unlabeled diagram can be spaced out, while the
308
- `-max` options (defaults `140` and `90`) cap it, so that neither many
309
- parallel edges nor a long label can push the nodes apart without bound.
314
+ along its run. The `-min` options raise the result, so that even an
315
+ unlabeled diagram can be spaced out, while the `-max` options cap it, so
316
+ that neither many parallel edges nor a long label can push the nodes
317
+ apart without bound.
310
318
 
311
319
  The `grid-columns-min` and `grid-columns-max` options control the column
312
320
  count of a `grid` diagram, which by default is derived from the node
313
- count as a roughly square grid: `grid-columns-min` (default `3`) raises
314
- the derived count, so that a few nodes still share a single row instead
315
- of being stacked, while `grid-columns-max` (default `4`) caps it, so
316
- that larger diagrams grow in height only. The column count never
317
- exceeds the node count and the maximum always wins over the minimum.
321
+ count as a roughly square grid: `grid-columns-min` raises the derived
322
+ count, so that a few nodes still share a single row instead of being
323
+ stacked, while `grid-columns-max` caps it, so that larger diagrams grow
324
+ in height only. The column count never exceeds the node count and the
325
+ maximum always wins over the minimum.
318
326
 
319
327
  The `grid-node-width-equal` option controls the tile widths of a `grid`
320
- diagram: its default `true` forces all node boxes to the width of the
328
+ diagram: the value `true` forces all node boxes to the width of the
321
329
  widest one and hence yields a strictly regular grid, while `false` lets
322
330
  each column become only as wide as its own widest node box.
323
331
 
@@ -5,7 +5,7 @@ export type Side = "e" | "w" | "n";
5
5
  export declare const assignPorts: (edges: Edge[], sides: {
6
6
  s: Side;
7
7
  t: Side;
8
- }[], cx: (id: string) => number, cy: (id: string) => number, boxW: Map<string, number>, boxH: Map<string, number>, portGap: number) => Map<string, {
8
+ }[], cx: (id: string) => number, cy: (id: string) => number, boxW: Map<string, number>, boxH: Map<string, number>, portGap: number, approachY?: (edge: number) => number | undefined) => Map<string, {
9
9
  x: number;
10
10
  y: number;
11
11
  }>;
@@ -24,10 +24,12 @@ export const simplifyPoly = (pts) => {
24
24
  }
25
25
  return out;
26
26
  };
27
- /* distribute the edge attachment ports along each node side, ordered by
28
- the vertical position of the opposite endpoint and separated by at
29
- most portGap (less, if the node box is too small to hold them all) */
30
- export const assignPorts = (edges, sides, cx, cy, boxW, boxH, portGap) => {
27
+ /* distribute the edge attachment ports along each node side, ordered
28
+ by the vertical position the edge approaches from (the approachY
29
+ override where given, the opposite endpoint center otherwise) and
30
+ separated by at most portGap (less, if the node box is too small
31
+ to hold them all) */
32
+ export const assignPorts = (edges, sides, cx, cy, boxW, boxH, portGap, approachY) => {
31
33
  /* group the edge endpoints by the node side they attach to */
32
34
  const portGroups = new Map();
33
35
  const addPort = (key, edge, role) => {
@@ -62,7 +64,8 @@ export const assignPorts = (edges, sides, cx, cy, boxW, boxH, portGap) => {
62
64
  continue;
63
65
  }
64
66
  const otherOf = (p) => p.role === "s" ? edges[p.edge].target : edges[p.edge].source;
65
- group.sort((a, b) => (cy(otherOf(a)) - cy(otherOf(b))) || (a.edge - b.edge));
67
+ const keyOf = (p) => approachY?.(p.edge) ?? cy(otherOf(p));
68
+ group.sort((a, b) => (keyOf(a) - keyOf(b)) || (a.edge - b.edge));
66
69
  const spacing = Math.min(portGap, (boxH.get(id) - PORT_PAD) / group.length);
67
70
  group.forEach((p, idx) => {
68
71
  portPos.set(`${p.edge}:${p.role}`, {
@@ -374,9 +374,18 @@ export const render = async (graph, config) => {
374
374
  const grid = computeGrid(nodes, col, row, boxW, boxH, ncols, nrows, chanCnt, gutCnt, chanLbl, gutLbl, config);
375
375
  const cx = (id) => grid.colCX[col.get(id)];
376
376
  const cy = (id) => grid.rowCY[row.get(id)];
377
- /* distribute the edge attachment ports along each node side */
378
- const portPos = assignPorts(edges, sides, cx, cy, boxW, boxH, config["size-edge-port-gap"]);
379
- /* assign the parallel tracks within the channels and gutters */
377
+ /* distribute the edge attachment ports along each node side and
378
+ assign the parallel tracks within the channels and gutters,
379
+ provisionally, to learn the gutter track every edge follows */
380
+ const portPre = assignPorts(edges, sides, cx, cy, boxW, boxH, config["size-edge-port-gap"]);
381
+ const trackPre = assignTrackCoords(edges, plans, col, portPre, grid, config);
382
+ /* re-distribute the ports with every gutter-routed edge ordered by
383
+ its actual gutter track approach instead of the opposite node
384
+ position (which can disagree and would cross the edges right in
385
+ front of their attachments), then re-assign the tracks on top
386
+ of the moved ports */
387
+ const portPos = assignPorts(edges, sides, cx, cy, boxW, boxH, config["size-edge-port-gap"], (edge) => plans[edge].guts.length > 0 ?
388
+ trackPre.gutY(plans[edge].guts[0], edge) : undefined);
380
389
  const { chanX, gutY } = assignTrackCoords(edges, plans, col, portPos, grid, config);
381
390
  /* route every edge as an orthogonal polyline through the channels
382
391
  between columns and the gutters between rows */
@@ -1,5 +1,5 @@
1
1
  (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Gradia={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule||!o.call(e,`default`)?n(i,`default`,{value:e,enumerable:!0}):i,e)),u=e=>{let t=[],n=1,r=1,i=0,a=/--(?:\((?:"((?:[^"\\\n]|\\.)*)"|([^()"\s]+))\)--)?>(?:\[(?:"((?:[^"\\\n]|\\.)*)"|([^[\]"\s]+))\])?/y,o=/"((?:[^"\\\n]|\\.)*)"/y,s=/(?:(?!--)[^\s[\](),:">#])+/y,c=t=>(t.lastIndex=i,t.exec(e)),l=e=>e.replace(/\\(.)/g,`$1`);for(;i<e.length;){let u=e[i],d;if(u===`
2
2
  `)t.push({type:`newline`,text:`
3
3
  `,line:n,col:r}),n++,r=1,i++;else if(u===` `||u===` `||u===`\r`)r++,i++;else if(u===`#`)for(;i<e.length&&e[i]!==`
4
- `;)r++,i++;else if((d=c(a))!==null){let e=d[1]===void 0?d[2]:l(d[1]),a=d[3]===void 0?d[4]:l(d[3]);t.push({type:`edge`,text:d[0],name:e,arity:a,line:n,col:r}),r+=d[0].length,i+=d[0].length}else if((d=c(o))!==null)t.push({type:`string`,text:l(d[1]),line:n,col:r}),r+=d[0].length,i+=d[0].length;else if(u===`"`)throw Error(`unterminated string at line ${n}, column ${r}`);else if(`[](),:`.includes(u))t.push({type:`punct`,text:u,line:n,col:r}),r++,i++;else if((d=c(s))!==null)t.push({type:`word`,text:d[0],line:n,col:r}),r+=d[0].length,i+=d[0].length;else throw Error(`invalid character ${JSON.stringify(u)} at line ${n}, column ${r}`)}return t},d=e=>{let t=u(e),n={nodes:new Map,edges:[]},r=0,i=()=>r<t.length?t[r]:null,a=e=>{let t=i();return t===null||t.type!==`punct`||t.text!==e?!1:(r++,!0)},o=e=>{let t=i(),n=t===null?`end of input`:`line ${t.line}, column ${t.col}`;throw Error(`expected ${e} at ${n}`)},s=()=>{let e=i();return e===null||e.type!==`word`&&e.type!==`string`?o(`bareword or quoted string`):(r++,e.text)},c=()=>{let e=t[r],i=s(),c=null;a(`:`)&&(c=s());let l=[];if(a(`[`)){for(;;){let e=s();a(`:`)||o(`":" in key/value attribute`);let t=s();if(l.push({key:e,val:t}),!a(`,`))break}a(`]`)||o(`"]" after key/value attributes`)}let u=n.nodes.get(i)??{id:i,name:i,attrs:[]};c!==null&&(u.name=c);for(let t of l){let n=u.attrs.findIndex(e=>e.key===t.key);if(n===-1)u.attrs.push(t);else{if(t.key===`group`&&u.attrs[n].val!==t.val)throw Error(`node "${i}" cannot be a member of more than one group ("${u.attrs[n].val}" vs "${t.val}") at line ${e.line}, column ${e.col}`);u.attrs[n]=t}}return n.nodes.set(i,u),i};for(;r<t.length;){if(t[r].type===`newline`){r++;continue}let e=c(),a=i();for(;a!==null&&a.type===`edge`;){r++;let t=c();n.edges.push({source:e,target:t,name:a.name,arity:a.arity}),e=t,a=i()}a!==null&&a.type!==`newline`&&o(`edge operator or end of line`)}return n},f=l(s(((e,t)=>{t.exports={}}))(),1),p={"font-family":`Helvetica`,"font-embed":!1,"color-node-regular-name":`#336699`,"color-node-regular-box":`#e0f0ff`,"color-node-regular-border":`#c0d0e0`,"color-node-primary-name":`#ffffff`,"color-node-primary-box":`#336699`,"color-node-primary-border":`#003366`,"color-node-ghost-name":`#666666`,"color-node-ghost-box":`#f0f0f0`,"color-node-ghost-border":`#a0a0a0`,"color-group-name":`#6699cc`,"color-group-box":`#f4f8fc`,"color-group-border":`#c0d0e0`,"color-edge-line":`#999999`,"color-edge-name":`#333333`,"color-edge-arity":`#333333`,"color-edge-halo":`#ffffff`,"size-canvas-margin":40,"size-node-width-min":220,"size-node-width-max":0,"size-node-height-scale":2.25,"size-edge-corner-radius":20,"size-edge-hop-radius":8,"size-edge-track-gap":12,"size-edge-port-gap":24,"group-box-padding":30,"group-box-gap":40,"graph-columns-max":4,"graph-channel-width-max":140,"graph-channel-width-min":24,"graph-gutter-height-max":90,"graph-gutter-height-min":20,"graph-node-separation":30,"graph-rank-separation":60,"graph-node-degree-max":3,"hub-channel-width-max":340,"hub-channel-width-min":240,"hub-node-gap":20,"hub-node-degree-max":3,"grid-columns-max":4,"grid-columns-min":3,"grid-gap-horizontal":40,"grid-gap-vertical":20,"grid-node-width-equal":!0},m=(e,t)=>Object.hasOwn(e,t)?e[t].replace(/[;{}]/g,``):`var(--gradia-${t}, ${p[t]})`,h=e=>{let t={};for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#config[ \t]+([a-z][a-z0-9-]*)[ \t]+(?:"((?:[^"\\]|\\.)*)"|(\S+))[ \t]*$/.exec(n);if(e===null||!Object.hasOwn(p,e[1]))continue;let r=e[1],i=e[2]===void 0?e[3]:e[2].replace(/\\(.)/g,`$1`);if(!(r===`font-embed`||r===`font-family`&&i.endsWith(`.woff2`))){if(typeof p[r]==`boolean`){if(i!==`true`&&i!==`false`)continue;t[r]=i===`true`}else if(typeof p[r]==`number`){let e=Number(i);if(i===``||!Number.isFinite(e)||e<0)continue;t[r]=e}else t[r]=i}}return t},g={"Source Sans 3":{file:`source-sans/WOFF2/VF/SourceSans3VF-Upright.ttf.woff2`,weight:`200 900`}},_=e=>{let t=e[`font-family`];if(Object.hasOwn(g,t)){let n=g[t];if(e[`font-embed`]){let e=f.default.fileURLToPath((e=>e)(n.file));return{family:t,embed:f.default.readFileSync(e).toString(`base64`),weight:n.weight}}return{family:t}}if(t.endsWith(`.woff2`)){let n=f.default.basename(t,`.woff2`);return e[`font-embed`]?{family:n,embed:f.default.readFileSync(t).toString(`base64`)}:{family:n}}if(e[`font-embed`])throw Error(`option "font-embed" requires option "font-family" to be a built-in font family (${Object.keys(g).map(e=>`"${e}"`).join(`, `)}) or the path to a WOFF2 file`);return{family:t}},v=(e,t)=>e.length*t*.52,y=(e,t,n)=>{let r=e.split(/\s+/).filter(e=>e!==``);if(n<=0||r.length<=1||v(e,t)<=n)return[e];let i=[],a=r[0];for(let e of r.slice(1))v(`${a} ${e}`,t)>n?(i.push(a),a=e):a=`${a} ${e}`;return i.push(a),i},b=e=>e.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g,``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`),x=34,S=e=>e.attrs.findLast(e=>e.key===`group`)?.val,C=e=>{let t=Array.from(e.nodes.values());if(!t.some(e=>S(e)!==void 0))return null;let n=new Map,r=new Map;for(let e of t){let t=S(e)??`default`;r.set(e.id,t);let i=n.get(t);i===void 0&&(i={nodes:new Map,edges:[]},n.set(t,i)),i.nodes.set(e.id,e)}for(let t of e.edges){let e=r.get(t.source),i=r.get(t.target);if(e!==i)throw Error(`edge "${t.source}" --> "${t.target}" crosses groups "${e}" and "${i}"`);n.get(e).edges.push(t)}return Array.from(n.entries()).map(([e,t])=>({name:e,graph:t}))},w=e=>{let{nodes:t,cx:n,cy:r,boxW:i,boxH:a,polys:o}=e,[s,c,l,u]=[1/0,1/0,-1/0,-1/0];for(let e of t)s=Math.min(s,n(e.id)-i.get(e.id)/2),c=Math.min(c,r(e.id)-a.get(e.id)/2),l=Math.max(l,n(e.id)+i.get(e.id)/2),u=Math.max(u,r(e.id)+a.get(e.id)/2);for(let e of o)for(let[t,n]of e)s=Math.min(s,t),c=Math.min(c,n),l=Math.max(l,t),u=Math.max(u,n);return{minX:s,minY:c,maxX:l,maxY:u}},T=(e,t,n)=>{let r=n[`size-canvas-margin`],i=n[`group-box-padding`],a=n[`group-box-gap`],o=[],s=[],c=[],l=new Map,u=r;t.forEach((t,n)=>{let d=w(t),f=Math.max(d.maxX-d.minX+i*2,v(e[n].name,24)+i*2),p=d.maxY-d.minY+i*2+x;s.push(r+i-d.minX),c.push(u+x+i-d.minY);for(let e of t.nodes)l.set(e.id,n);o.push({name:e[n].name,x:r,y:u,w:f,h:p}),u+=p+a});let d=e=>new Map(t.flatMap(t=>Array.from(e(t).entries()))),f=e=>l.get(e);return{nodes:t.flatMap(e=>e.nodes),edges:t.flatMap(e=>e.edges),cx:e=>t[f(e)].cx(e)+s[f(e)],cy:e=>t[f(e)].cy(e)+c[f(e)],boxW:d(e=>e.boxW),boxH:d(e=>e.boxH),contentH:d(e=>e.contentH),polys:t.flatMap((e,t)=>e.polys.map(e=>e.map(([e,n])=>[e+s[t],n+c[t]]))),styleOf:t.every(e=>e.styleOf!==void 0)?e=>t[f(e.id)].styleOf(e):void 0,groups:o}},E=l(s(((e,t)=>{(function(e,n,r){typeof define==`function`&&define.amd!==void 0?define(function(){return r(e)}):typeof t==`object`&&typeof t.exports==`object`?(t.exports=r(e),t.exports.default=t.exports):e[n]=r(e)})(e,`UUID`,function(){let e=function(e,t,n,r,i,a){let o=function(e,t){let n=e.toString(16);return n.length<2&&(n=`0`+n),t&&(n=n.toUpperCase()),n};for(let s=t;s<=n;s++)i[a++]=o(e[s],r);return i},t=function(e,t,n,r,i){for(let a=t;a<=n;a+=2)r[i++]=parseInt(e.substr(a,2),16)},n=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#`.split(``),r=[0,68,0,84,83,82,72,0,75,76,70,65,0,63,62,69,0,1,2,3,4,5,6,7,8,9,64,0,73,66,74,71,81,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,77,0,78,67,0,0,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,79,0,80,0,0],i=function(e,t){if(t%4!=0)throw Error(`z85_encode: invalid input length (multiple of 4 expected)`);let r=``,i=0,a=0;for(;i<t;)if(a=a*256+e[i++],i%4==0){let e=52200625;for(;e>=1;){let t=Math.floor(a/e)%85;r+=n[t],e/=85}a=0}return r},a=function(e,t){let n=e.length;if(n%5!=0)throw Error(`z85_decode: invalid input length (multiple of 5 expected)`);t===void 0&&(t=Array(n*4/5));let i=0,a=0,o=0;for(;i<n;){let n=e.charCodeAt(i++)-32;if(n<0||n>=r.length)break;if(o=o*85+r[n],i%5==0){let e=16777216;for(;e>=1;)t[a++]=Math.trunc(o/e%256),e/=256;o=0}}return t},o=function(e,t){let n={ibits:8,obits:8,obigendian:!0};for(let e in t)n[e]!==void 0&&(n[e]=t[e]);let r=[],i=0,a,o,s=0,c,l=0,u=e.length;for(;s===0&&(o=e.charCodeAt(i++)),a=o>>n.ibits-(s+8)&255,s=(s+8)%n.ibits,n.obigendian?l===0?c=a<<n.obits-8:c|=a<<n.obits-8-l:l===0?c=a:c|=a<<l,l=(l+8)%n.obits,!(l===0&&(r.push(c),i>=u)););return r},s=function(e,t){let n={ibits:32,ibigendian:!0};for(let e in t)n[e]!==void 0&&(n[e]=t[e]);let r=``,i=4294967295;n.ibits<32&&(i=(1<<n.ibits)-1);let a=e.length;for(let t=0;t<a;t++){let a=e[t]&i;for(let e=0;e<n.ibits;e+=8)n.ibigendian?r+=String.fromCharCode(a>>n.ibits-8-e&255):r+=String.fromCharCode(a>>e&255)}return r},c=function(e,t,n,r,i,a,o,s){return[s,o,a,i,r,n,t,e]},l=function(){return c(0,0,0,0,0,0,0,0)},u=function(e){return e.slice(0)},d=function(e){let t=l();for(let n=0;n<8;n++)t[n]=Math.floor(e%256),e/=256;return t},f=function(e){let t=0;for(let n=7;n>=0;n--)t*=256,t+=e[n];return Math.floor(t)},p=function(e,t){let n=0;for(let r=0;r<8;r++)n+=e[r]+t[r],e[r]=Math.floor(n%256),n=Math.floor(n/256);return n},m=function(e,t){let n=0;for(let r=0;r<8;r++)n+=e[r]*t,e[r]=Math.floor(n%256),n=Math.floor(n/256);return n},h=function(e,t){let n,r,i=Array(16);for(n=0;n<16;n++)i[n]=0;let a;for(n=0;n<8;n++){for(a=0,r=0;r<8;r++)a+=e[n]*t[r]+i[n+r],i[n+r]=a%256,a/=256;for(;r<16-n;r++)a+=i[n+r],i[n+r]=a%256,a/=256}for(n=0;n<8;n++)e[n]=i[n];return i.slice(8,16)},g=function(e,t){for(let n=0;n<8;n++)e[n]&=t[n];return e},_=function(e,t){for(let n=0;n<8;n++)e[n]|=t[n];return e},v=function(e,t){let n=l();if(t%8!=0)throw Error(`ui64_rorn: only bit rotations supported with a multiple of digit bits`);let r=Math.floor(t/8);for(let t=0;t<r;t++){let t;for(t=6;t>=0;t--)n[t+1]=n[t];for(n[0]=e[0],t=0;t<7;t++)e[t]=e[t+1];e[t]=0}return f(n)},y=function(e,t){if(t>64)throw Error(`ui64_ror: invalid number of bits to shift`);let n=Array(16),r;for(r=0;r<8;r++)n[r+8]=e[r],n[r]=0;let i=Math.floor(t/8),a=t%8;for(r=i;r<15;r++)n[r-i]=(n[r]>>>a|n[r+1]<<8-a)&255;for(n[15-i]=n[15]>>>a&255,r=15-i+1;r<16;r++)n[r]=0;for(r=0;r<8;r++)e[r]=n[r+8];return n.slice(0,8)},b=function(e,t){if(t>64)throw Error(`ui64_rol: invalid number of bits to shift`);let n=Array(16),r;for(r=0;r<8;r++)n[r+8]=0,n[r]=e[r];let i=Math.floor(t/8),a=t%8;for(r=7-i;r>0;r--)n[r+i]=(n[r]<<a|n[r-1]>>>8-a)&255;for(n[0+i]=n[0]<<a&255,r=0+i-1;r>=0;r--)n[r]=0;for(r=0;r<8;r++)e[r]=n[r];return n.slice(8,16)},x=function(e,t){for(let n=0;n<8;n++)e[n]^=t[n]},S=function(e,t){let n=(e&65535)+(t&65535);return(e>>16)+(t>>16)+(n>>16)<<16|n&65535},C=function(e,t){return e<<t&4294967295|e>>>32-t&4294967295},w=function(e,t){function n(e,t,n,r){return e<20?t&n|~t&r:e<40?t^n^r:e<60?t&n|t&r|n&r:t^n^r}function r(e){return e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514}e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;let i=Array(80),a=1732584193,o=-271733879,s=-1732584194,c=271733878,l=-1009589776;for(let t=0;t<e.length;t+=16){let u=a,d=o,f=s,p=c,m=l;for(let u=0;u<80;u++){u<16?i[u]=e[t+u]:i[u]=C(i[u-3]^i[u-8]^i[u-14]^i[u-16],1);let d=S(S(C(a,5),n(u,o,s,c)),S(S(l,i[u]),r(u)));l=c,c=s,s=C(o,30),o=a,a=d}a=S(a,u),o=S(o,d),s=S(s,f),c=S(c,p),l=S(l,m)}return[a,o,s,c,l]},T=function(e){return s(w(o(e,{ibits:8,obits:32,obigendian:!0}),e.length*8),{ibits:32,ibigendian:!0})},E=function(e,t){function n(e,t,n,r,i,a){return S(C(S(S(t,e),S(r,a)),i),n)}function r(e,t,r,i,a,o,s){return n(t&r|~t&i,e,t,a,o,s)}function i(e,t,r,i,a,o,s){return n(t&i|r&~i,e,t,a,o,s)}function a(e,t,r,i,a,o,s){return n(t^r^i,e,t,a,o,s)}function o(e,t,r,i,a,o,s){return n(r^(t|~i),e,t,a,o,s)}e[t>>5]|=128<<t%32,e[(t+64>>>9<<4)+14]=t;let s=1732584193,c=-271733879,l=-1732584194,u=271733878;for(let t=0;t<e.length;t+=16){let n=s,d=c,f=l,p=u;s=r(s,c,l,u,e[t+0],7,-680876936),u=r(u,s,c,l,e[t+1],12,-389564586),l=r(l,u,s,c,e[t+2],17,606105819),c=r(c,l,u,s,e[t+3],22,-1044525330),s=r(s,c,l,u,e[t+4],7,-176418897),u=r(u,s,c,l,e[t+5],12,1200080426),l=r(l,u,s,c,e[t+6],17,-1473231341),c=r(c,l,u,s,e[t+7],22,-45705983),s=r(s,c,l,u,e[t+8],7,1770035416),u=r(u,s,c,l,e[t+9],12,-1958414417),l=r(l,u,s,c,e[t+10],17,-42063),c=r(c,l,u,s,e[t+11],22,-1990404162),s=r(s,c,l,u,e[t+12],7,1804603682),u=r(u,s,c,l,e[t+13],12,-40341101),l=r(l,u,s,c,e[t+14],17,-1502002290),c=r(c,l,u,s,e[t+15],22,1236535329),s=i(s,c,l,u,e[t+1],5,-165796510),u=i(u,s,c,l,e[t+6],9,-1069501632),l=i(l,u,s,c,e[t+11],14,643717713),c=i(c,l,u,s,e[t+0],20,-373897302),s=i(s,c,l,u,e[t+5],5,-701558691),u=i(u,s,c,l,e[t+10],9,38016083),l=i(l,u,s,c,e[t+15],14,-660478335),c=i(c,l,u,s,e[t+4],20,-405537848),s=i(s,c,l,u,e[t+9],5,568446438),u=i(u,s,c,l,e[t+14],9,-1019803690),l=i(l,u,s,c,e[t+3],14,-187363961),c=i(c,l,u,s,e[t+8],20,1163531501),s=i(s,c,l,u,e[t+13],5,-1444681467),u=i(u,s,c,l,e[t+2],9,-51403784),l=i(l,u,s,c,e[t+7],14,1735328473),c=i(c,l,u,s,e[t+12],20,-1926607734),s=a(s,c,l,u,e[t+5],4,-378558),u=a(u,s,c,l,e[t+8],11,-2022574463),l=a(l,u,s,c,e[t+11],16,1839030562),c=a(c,l,u,s,e[t+14],23,-35309556),s=a(s,c,l,u,e[t+1],4,-1530992060),u=a(u,s,c,l,e[t+4],11,1272893353),l=a(l,u,s,c,e[t+7],16,-155497632),c=a(c,l,u,s,e[t+10],23,-1094730640),s=a(s,c,l,u,e[t+13],4,681279174),u=a(u,s,c,l,e[t+0],11,-358537222),l=a(l,u,s,c,e[t+3],16,-722521979),c=a(c,l,u,s,e[t+6],23,76029189),s=a(s,c,l,u,e[t+9],4,-640364487),u=a(u,s,c,l,e[t+12],11,-421815835),l=a(l,u,s,c,e[t+15],16,530742520),c=a(c,l,u,s,e[t+2],23,-995338651),s=o(s,c,l,u,e[t+0],6,-198630844),u=o(u,s,c,l,e[t+7],10,1126891415),l=o(l,u,s,c,e[t+14],15,-1416354905),c=o(c,l,u,s,e[t+5],21,-57434055),s=o(s,c,l,u,e[t+12],6,1700485571),u=o(u,s,c,l,e[t+3],10,-1894986606),l=o(l,u,s,c,e[t+10],15,-1051523),c=o(c,l,u,s,e[t+1],21,-2054922799),s=o(s,c,l,u,e[t+8],6,1873313359),u=o(u,s,c,l,e[t+15],10,-30611744),l=o(l,u,s,c,e[t+6],15,-1560198380),c=o(c,l,u,s,e[t+13],21,1309151649),s=o(s,c,l,u,e[t+4],6,-145523070),u=o(u,s,c,l,e[t+11],10,-1120210379),l=o(l,u,s,c,e[t+2],15,718787259),c=o(c,l,u,s,e[t+9],21,-343485551),s=S(s,n),c=S(c,d),l=S(l,f),u=S(u,p)}return[s,c,l,u]},D=function(e){return s(E(o(e,{ibits:8,obits:32,obigendian:!1}),e.length*8),{ibits:32,ibigendian:!1})},O=function(e){this.mul=c(88,81,244,45,76,149,127,45),this.inc=c(20,5,123,126,247,103,129,79),this.mask=c(0,0,0,0,255,255,255,255),this.state=u(this.inc),this.next(),g(this.state,this.mask);let t;e===void 0?typeof window==`object`&&typeof window.crypto==`object`&&typeof window.crypto.getRandomValues==`function`?(t=new Uint32Array(2),window.crypto.getRandomValues(t),e=_(d(t[0]>>>0),y(d(t[1]>>>0),32))):typeof globalThis==`object`&&typeof globalThis.crypto==`object`&&typeof globalThis.crypto.getRandomValues==`function`?(t=new Uint32Array(2),globalThis.crypto.getRandomValues(t),e=_(d(t[0]>>>0),y(d(t[1]>>>0),32))):(e=d(Math.random()*4294967295>>>0),_(e,y(d(new Date().getTime()),32))):e=d(e>>>0),_(this.state,e),this.next()};O.prototype.next=function(){let e=u(this.state);h(this.state,this.mul),p(this.state,this.inc);let t=u(e);y(t,18),x(t,e),y(t,27);let n=u(e);y(n,59),g(t,this.mask);let r=f(n),i=u(t);return b(i,32-r),y(t,r),x(t,i),f(t)},O.prototype.reseed=function(e){if(typeof e!=`string`)throw Error(`UUID: PCG: seed: invalid argument (string expected)`);let t=w(o(e,{ibits:8,obits:32,obigendian:!0}),e.length*8);for(let e=0;e<t.length;e++)x(k.state,d(t[e]>>>0))};let k=new O;O.reseed=function(e){k.reseed(e)};let A=function(e,t){let n=[];for(let r=0;r<e;r++)n[r]=k.next()%t;return n},j=0,M=0,N=function(){if(arguments.length===1&&typeof arguments[0]==`string`)this.parse.apply(this,arguments);else if(arguments.length>=1&&typeof arguments[0]==`number`)this.make.apply(this,arguments);else if(arguments.length>=1)throw Error(`UUID: constructor: invalid arguments`);else for(let e=0;e<16;e++)this[e]=0};return N.prototype=typeof Uint8Array<`u`?new Uint8Array(16):typeof Buffer<`u`?Buffer.alloc(16):Array(16),N.prototype.constructor=N,N.prototype.make=function(e){let t,n=this;if(e===1){let e=new Date().getTime();e===j?M++:M=0,j=e;let r=d(e);m(r,1e4),p(r,c(1,178,29,210,19,129,64,0)),M>0&&p(r,d(M));let i;i=v(r,8),n[3]=i&255,i=v(r,8),n[2]=i&255,i=v(r,8),n[1]=i&255,i=v(r,8),n[0]=i&255,i=v(r,8),n[5]=i&255,i=v(r,8),n[4]=i&255,i=v(r,8),n[7]=i&255,i=v(r,8),n[6]=i&15;let a=A(2,255);n[8]=a[0],n[9]=a[1];let o=A(6,255);for(o[0]|=3,t=0;t<6;t++)n[10+t]=o[t]}else if(e===4){let e=A(16,255);for(t=0;t<16;t++)this[t]=e[t]}else if(e===3||e===5){let r=``,i=typeof arguments[1]==`object`&&arguments[1]instanceof N?arguments[1]:new N().parse(arguments[1]);for(t=0;t<16;t++)r+=String.fromCharCode(i[t]);r+=arguments[2];let a=e===3?D(r):T(r);for(t=0;t<16;t++)n[t]=a.charCodeAt(t)}else throw Error(`UUID: make: invalid version`);return n[6]&=15,n[6]|=e<<4,n[8]&=63,n[8]|=128,n},N.prototype.format=function(t){let n,r;if(t===`z85`)n=i(this,16);else if(t===`b16`)r=Array(32),e(this,0,15,!0,r,0),n=r.join(``);else if(t===void 0||t===`std`)r=Array(36),e(this,0,3,!1,r,0),r[8]=`-`,e(this,4,5,!1,r,9),r[13]=`-`,e(this,6,7,!1,r,14),r[18]=`-`,e(this,8,9,!1,r,19),r[23]=`-`,e(this,10,15,!1,r,24),n=r.join(``);else throw Error(`UUID: format: invalid type argument`);return n},N.prototype.toString=function(e){return this.format(e)},N.prototype.toJSON=function(){return this.format(`std`)},N.prototype.parse=function(e,n){if(typeof e!=`string`)throw Error(`UUID: parse: invalid argument (type string expected)`);if(n===`z85`)a(e,this);else if(n===`b16`)t(e,0,35,this,0);else if(n===void 0||n===`std`){let n={nil:`00000000-0000-0000-0000-000000000000`,"ns:DNS":`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,"ns:URL":`6ba7b811-9dad-11d1-80b4-00c04fd430c8`,"ns:OID":`6ba7b812-9dad-11d1-80b4-00c04fd430c8`,"ns:X500":`6ba7b814-9dad-11d1-80b4-00c04fd430c8`};if(n[e]!==void 0)e=n[e];else if(!e.match(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/))throw Error(`UUID: parse: invalid string representation (expected "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")`);t(e,0,7,this,0),t(e,9,12,this,4),t(e,14,17,this,6),t(e,19,22,this,8),t(e,24,35,this,10)}return this},N.prototype.export=function(){let e=Array(16);for(let t=0;t<16;t++)e[t]=this[t];return e},N.prototype.import=function(e){if(!(typeof e==`object`&&e instanceof Array))throw Error(`UUID: import: invalid argument (type Array expected)`);if(e.length!==16)throw Error(`UUID: import: invalid argument (Array of length 16 expected)`);for(let t=0;t<16;t++){if(typeof e[t]!=`number`)throw Error(`UUID: import: invalid array element #`+t+` (type Number expected)`);if(!(isFinite(e[t])&&Math.floor(e[t])===e[t]))throw Error(`UUID: import: invalid array element #`+t+` (Number with integer value expected)`);if(!(e[t]>=0&&e[t]<=255))throw Error(`UUID: import: invalid array element #`+t+` (Number with integer value in range 0...255 expected)`);this[t]=e[t]}return this},N.prototype.compare=function(e){if(typeof e!=`object`||!(e instanceof N))throw Error(`UUID: compare: invalid argument (type UUID expected)`);for(let t=0;t<16;t++)if(this[t]<e[t])return-1;else if(this[t]>e[t])return 1;return 0},N.prototype.equal=function(e){return this.compare(e)===0},N.prototype.fold=function(e){if(e===void 0)throw Error(`UUID: fold: invalid argument (number of fold operations expected)`);if(e<1||e>4)throw Error(`UUID: fold: invalid argument (1-4 fold operations expected)`);let t=16/2**e,n=Array(t);for(let e=0;e<t;e++){let r=0;for(let n=0;e+n<16;n+=t)r^=this[e+n];n[e]=r}return n},N.PCG=O,N})}))(),1),D=e=>e.attrs.findLast(e=>e.key===`primary`)?.val===`true`,O=e=>D(e)?{fill:`color-node-primary-box`,stroke:`color-node-primary-border`,text:`color-node-primary-name`}:{fill:`color-node-regular-box`,stroke:`color-node-regular-border`,text:`color-node-regular-name`},k=e=>e.attrs.findLast(e=>e.key===`type`)?.val,A=new Set([`url`,`type`,`primary`,`group`]),j=e=>e.attrs.filter(e=>!A.has(e.key)),M=/^\s*([A-Za-z][A-Za-z0-9+.-]*):/,N=[`http`,`https`,`mailto`],ee=e=>{let t=e.attrs.findLast(e=>e.key===`url`)?.val;if(t===void 0)return;let n=t.replace(/[\u0000-\u001F\u007F]/g,``),r=M.exec(n);if(!(r!==null&&!N.includes(r[1].toLowerCase())))return n},P=(e,t)=>{let n=t[`size-node-width-max`]>0?t[`size-node-width-max`]-36:0,r=k(e);return{name:y(e.name,30,n),type:r===void 0?[]:y(r,16,n),attrs:j(e).flatMap(e=>y(`${e.key}: ${e.val}`,22,n))}},F=(e,t,n)=>{let r=new Map,i=new Map,a=new Map;for(let o of e){let e=P(o,t),s=0;for(let t of e.name)s=Math.max(s,v(t,30));for(let t of e.type)s=Math.max(s,v(t,16));for(let t of e.attrs)s=Math.max(s,v(t,22));let c=56+(e.name.length-1)*34+e.type.length*26+(e.attrs.length>0?e.attrs.length*30+12:0);r.set(o.id,Math.max(t[`size-node-width-min`],Math.ceil(s)+36)),i.set(o.id,Math.ceil(c*n(o))),a.set(o.id,c)}return{boxW:r,boxH:i,contentH:a}},te=10,ne=e=>{let t=[...e];for(let e=t.length-2;e>0;e--){let[n,r,i]=[t[e-1],t[e],t[e+1]];(n[0]===r[0]&&r[0]===i[0]||n[1]===r[1]&&r[1]===i[1])&&t.splice(e,1)}let n=[];for(let e of t)n.length>0&&n[n.length-1][0]===e[0]&&n[n.length-1][1]===e[1]||n.push(e);return n},re=(e,t,n,r,i,a,o)=>{let s=new Map,c=(e,t,n)=>{let r=s.get(e);r===void 0?s.set(e,[{edge:t,role:n}]):r.push({edge:t,role:n})};e.forEach((e,n)=>{c(`${e.source}:${t[n].s}`,n,`s`),c(`${e.target}:${t[n].t}`,n,`t`)});let l=new Map;for(let[t,c]of s){let s=t.lastIndexOf(`:`),u=t.slice(0,s),d=t.slice(s+1);if(d===`n`){c.sort((e,t)=>t.edge-e.edge);let e=Math.min(o,(i.get(u)-te)/c.length);c.forEach((t,i)=>{l.set(`${t.edge}:${t.role}`,{x:n(u)+(i-(c.length-1)/2)*e,y:r(u)-a.get(u)/2})});continue}let f=t=>t.role===`s`?e[t.edge].target:e[t.edge].source;c.sort((e,t)=>r(f(e))-r(f(t))||e.edge-t.edge);let p=Math.min(o,(a.get(u)-te)/c.length);c.forEach((e,t)=>{l.set(`${e.edge}:${e.role}`,{x:n(u)+(d===`e`?1:-1)*i.get(u)/2,y:r(u)+(t-(c.length-1)/2)*p})})}return l},I=24,ie=(e,t,n,r)=>{let i=(e,t)=>{let n=t?-1:1,r=e.filter(e=>e.posOut<e.posIn).sort((e,t)=>n*(e.posIn-t.posIn||e.posOut-t.posOut)),i=e.filter(e=>e.posOut>=e.posIn).sort((e,t)=>n*(t.posIn-e.posIn||t.posOut-e.posOut));return[...r,...i]},a=[...i(e.filter(e=>!e.mirror),!1),...i(e.filter(e=>e.mirror),!0)],o=(e,t)=>Math.min(e.posIn,e.posOut)<Math.max(t.posIn,t.posOut)+I&&Math.min(t.posIn,t.posOut)<Math.max(e.posIn,e.posOut)+I,s=new Map,c=0;a.forEach((e,t)=>{let n=0;for(let r=0;r<t;r++)o(a[r],e)&&(n=Math.max(n,s.get(a[r].edge)+1));s.set(e.edge,n),c=Math.max(c,n+1)});let l=Math.min(r,(t-n)/Math.max(c-1,1)),u=new Map;for(let[e,t]of s)u.set(e,(t-(c-1)/2)*l);return u},ae=e=>{let t=[];return e.forEach((e,n)=>{for(let r=0;r<e.length-1;r++){let[i,a]=[e[r],e[r+1]];i[0]===a[0]&&t.push({owner:n,x:i[0],y1:Math.min(i[1],a[1]),y2:Math.max(i[1],a[1])})}}),e.map((e,n)=>{let r=new Map;for(let i=0;i<e.length-1;i++){let[a,o]=[e[i],e[i+1]];if(a[1]!==o[1])continue;let s=a[1],c=Math.min(a[0],o[0]),l=Math.max(a[0],o[0]),u=[];for(let e of t)e.owner!==n&&e.x>c+1&&e.x<l-1&&s>e.y1+1&&s<e.y2-1&&u.push(e.x);u.length>0&&r.set(i,u)}return r})},L=(e,t)=>Math.abs(t[0]-e[0])+Math.abs(t[1]-e[1]),oe=(e,t,n,r)=>{let i=i=>{if(i<=0||i>=e.length-1)return 0;let a=Math.min(n,L(e[i-1],e[i])/2,L(e[i],e[i+1])/2);for(let n of[i-1,i])for(let o of t.get(n)??[])a=Math.min(a,Math.max(Math.abs(o-e[i][0])-r-2,4));return a},a=[];for(let n=0;n<e.length-1;n++){let[o,s]=[e[n],e[n+1]],c=L(o,s),l=(s[0]-o[0])/c,u=(s[1]-o[1])/c,d=i(n),f=i(n+1),p=[o[0]+l*d,o[1]+u*d],m=[s[0]-l*f,s[1]-u*f];if(n===0&&a.push(`M ${p[0]} ${p[1]}`),o[1]===s[1]&&t.has(n)){let e=Math.sign(s[0]-o[0]),i=t.get(n).filter(t=>(t-p[0])*e>2&&(m[0]-t)*e>2).sort((t,n)=>(t-n)*e),c=[];for(let e of i){let t=c[c.length-1];t!==void 0&&Math.abs(e-t[t.length-1])<=r*2+14?t.push(e):c.push([e])}for(let t of c){let n=t[0]-e*r,i=t[t.length-1]+e*r;(n-p[0])*e<0&&(n=p[0]),(m[0]-i)*e<0&&(i=m[0]),a.push(`L ${n} ${o[1]}`),a.push(`A ${Math.abs(i-n)/2} ${r} 0 0 ${+(e>0)} ${i} ${o[1]}`)}}if(a.push(`L ${m[0]} ${m[1]}`),n<e.length-2){let t=e[n+1],r=e[n+2],i=L(t,r),o=[t[0]+(r[0]-t[0])/i*f,t[1]+(r[1]-t[1])/i*f];a.push(`Q ${s[0]} ${s[1]} ${o[0]} ${o[1]}`)}}return a.join(` `)},se=(e,t)=>{let n=e.slice(0,-1).map((t,n)=>L(t,e[n+1])),r=n.reduce((e,t)=>e+t,0)*t;for(let t=0;t<n.length;t++){if(r<=n[t]||t===n.length-1){let i=n[t]>0?r/n[t]:0;return{x:e[t][0]+(e[t+1][0]-e[t][0])*Math.min(i,1),y:e[t][1]+(e[t+1][1]-e[t][1])*Math.min(i,1),horizontal:e[t][1]===e[t+1][1]}}r-=n[t]}return{x:e[0][0],y:e[0][1],horizontal:!0}},ce=e=>e.replace(/[\\"']/g,`\\$&`).replace(/[\r\n\f]/g,` `),le=new E.default(5,`ns:URL`,`https://github.com/rse/gradia`).format(),ue=e=>`gradia-${new E.default(5,le,e).format(`b16`).toLowerCase()}`,de=18,fe=12,R=e=>{let{nodes:t,cx:n,cy:r,boxW:i,boxH:a}=e,o=t.map(e=>[n(e.id)-i.get(e.id)/2,r(e.id)-a.get(e.id)/2,n(e.id)+i.get(e.id)/2,r(e.id)+a.get(e.id)/2]);for(let t of e.groups??[])o.push([t.x+de,t.y+fe,t.x+de+v(t.name,24),t.y+fe+24*1.2]);let s=e=>o.some(t=>e[0]<t[2]&&e[2]>t[0]&&e[1]<t[3]&&e[3]>t[1]);return{claim:e=>{let t=e.find(e=>!s(e))??e[0];return o.push(t),t},occupied:o}},pe=(e,t,n,r,i,a)=>{let{cx:o,cy:s,boxW:c,boxH:l,contentH:u}=t,d=c.get(e.id),f=l.get(e.id),p=o(e.id)-d/2,m=s(e.id)-f/2,h=P(e,a),g=ee(e),_=[];_.push(`<rect x="${p}" y="${m}" width="${d}" height="${f}" rx="6" style="fill: ${i(n.fill)}; stroke: ${i(n.stroke)}" stroke-width="4.0"${n.dash===void 0?``:` stroke-dasharray="${b(n.dash)}"`}/>`);let v=s(e.id)-u.get(e.id)/2,y=h.type.length*26,x=(h.name.length-1)*34,S=h.attrs.length>0?v+y+28+30*.36:s(e.id)+y/2+30*.36-x/2;return h.type.forEach((t,a)=>{_.push(`<text x="${o(e.id)}" y="${S-36-(h.type.length-1-a)*26}" text-anchor="middle" font-size="16" style="font-family: ${r}; fill: ${i(n.text)}">${b(t)}</text>`)}),h.name.forEach((t,a)=>{_.push(`<text x="${o(e.id)}" y="${S+a*34}" text-anchor="middle" font-size="30" font-weight="600" style="font-family: ${r}; fill: ${i(n.text)}">${b(t)}</text>`)}),h.attrs.forEach((t,a)=>{_.push(`<text x="${o(e.id)}" y="${v+y+x+56+12+a*30}" text-anchor="middle" font-size="22" style="font-family: ${r}; fill: ${i(n.text)}">${b(t)}</text>`)}),g===void 0?_:[`<a href="${b(g)}" xlink:href="${b(g)}">`,..._,`</a>`]},me=(e,t,n)=>{let{polys:r}=e,[i,a,o,s]=[1/0,1/0,-1/0,-1/0];for(let[e,n,r,c]of t)i=Math.min(i,e),a=Math.min(a,n),o=Math.max(o,r),s=Math.max(s,c);for(let e of r)for(let[t,n]of e)i=Math.min(i,t),a=Math.min(a,n),o=Math.max(o,t),s=Math.max(s,n);return Number.isFinite(i)||([i,a,o,s]=[0,0,0,0]),{x:Math.floor(i-n/2),y:Math.floor(a-n/2),w:Math.ceil(o-i+n),h:Math.ceil(s-a+n)}},he=(e,t,n,r,i)=>{let a=`stroke-width="4.5" paint-order="stroke" stroke-linejoin="round"`,o=[];if(e.name!==void 0){let s=v(e.name,16),c=[];for(let e of[.5,.4,.6,.3,.7,.2,.8]){let n=se(t,e);n.horizontal?(c.push([n.x-s/2,n.y-23,n.x+s/2,n.y-3]),c.push([n.x-s/2,n.y+3,n.x+s/2,n.y+23])):(c.push([n.x+5,n.y-10,n.x+5+s,n.y+10]),c.push([n.x-5-s,n.y-10,n.x-5,n.y+10]))}let l=n(c);o.push(`<text x="${(l[0]+l[2])/2}" y="${l[3]-3}" text-anchor="middle" font-size="16" style="font-family: ${r}; fill: ${i(`color-edge-name`)}; stroke: ${i(`color-edge-halo`)}" ${a}>${b(e.name)}</text>`)}if(e.arity!==void 0){let s=v(e.arity,16),c=se(t,1),l=se(t,.999),u;if(c.horizontal){let e=Math.sign(c.x-l.x)||1,t=c.x-e*(24+s/2);u=[[t-s/2,c.y-17,t+s/2,c.y-4],[t-s/2,c.y+4,t+s/2,c.y+17],[t-s/2-e*14,c.y-17,t+s/2-e*14,c.y-4]]}else{let e=Math.sign(c.y-l.y)||1,t=c.y-e*24;u=[[c.x+6,t-7,c.x+6+s,t+6],[c.x-6-s,t-7,c.x-6,t+6],[c.x+6,t-7-e*14,c.x+6+s,t+6-e*14]]}let d=n(u);o.push(`<text x="${(d[0]+d[2])/2}" y="${d[3]-3}" text-anchor="middle" font-size="16" style="font-family: ${r}; fill: ${i(`color-edge-arity`)}; stroke: ${i(`color-edge-halo`)}" ${a}>${b(e.arity)}</text>`)}return o},ge=(e,t,n,r)=>{let{nodes:i,edges:a,polys:o}=e,s=e.groups??[],c=e.styleOf??O,l=e=>b(m(n,e)),u=`${ue(r)}-arrow`,{family:d,embed:f,weight:p}=_(t),h=b(`${Object.hasOwn(n,`font-family`)?`'${ce(d)}'`:`var(--gradia-font-family, '${ce(d)}')`}, ui-sans-serif, -apple-system, Helvetica, Arial, sans-serif`),g=ae(o),{claim:v,occupied:y}=R(e),x=[],S=[];a.forEach((e,n)=>{x.push(`<path d="${oe(o[n],g[n],t[`size-edge-corner-radius`],t[`size-edge-hop-radius`])}" fill="none" style="stroke: ${l(`color-edge-line`)}" stroke-width="3.0" marker-end="url(#${u})"/>`),S.push(...he(e,o[n],v,h,l))});let C=i.flatMap(n=>pe(n,e,c(n),h,l,t)),w=s.flatMap(e=>[`<rect x="${e.x}" y="${e.y}" width="${e.w}" height="${e.h}" rx="12" style="fill: ${l(`color-group-box`)}; stroke: ${l(`color-group-border`)}" stroke-width="3.0"/>`,`<text x="${e.x+de}" y="${e.y+fe+24}" font-size="24" font-weight="600" style="font-family: ${h}; fill: ${l(`color-group-name`)}">${b(e.name)}</text>`]),T=s.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),E=me(e,[...y,...T],t[`size-canvas-margin`]);return[`<?xml version="1.0" encoding="UTF-8"?>`,`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="${E.x} ${E.y} ${E.w} ${E.h}" width="${E.w}" height="${E.h}">`,`<defs>`,...f===void 0?[]:[`<style>`,`@font-face { font-family: "${b(ce(d))}"; `+(p===void 0?``:`font-weight: ${b(ce(p))}; `)+`src: url(data:font/woff2;base64,${f}) format("woff2"); }`,`</style>`],`<marker id="${u}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="21" markerHeight="21" markerUnits="userSpaceOnUse" orient="auto-start-reverse">`,`<path d="M 0 1 L 9 5 L 0 9 z" style="fill: ${l(`color-edge-line`)}"/>`,`</marker>`,`</defs>`,...w,...x,...C,...S,`</svg>`,``].join(`
5
- `)};function _e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}var ve={abs:Math.abs,ceil:Math.ceil,floor:Math.floor,max:Math.max,min:Math.min,round:Math.round,sqrt:Math.sqrt,pow:Math.pow},z=class extends Error{constructor(e,t,n){super(e),this.position=t,this.token=n,this.name=`ExpressionError`}},B;(function(e){e[e.STRING=0]=`STRING`,e[e.NUMBER=1]=`NUMBER`,e[e.BOOLEAN=2]=`BOOLEAN`,e[e.NULL=3]=`NULL`,e[e.IDENTIFIER=4]=`IDENTIFIER`,e[e.OPERATOR=5]=`OPERATOR`,e[e.FUNCTION=6]=`FUNCTION`,e[e.DOT=7]=`DOT`,e[e.BRACKET_LEFT=8]=`BRACKET_LEFT`,e[e.BRACKET_RIGHT=9]=`BRACKET_RIGHT`,e[e.PAREN_LEFT=10]=`PAREN_LEFT`,e[e.PAREN_RIGHT=11]=`PAREN_RIGHT`,e[e.COMMA=12]=`COMMA`,e[e.QUESTION=13]=`QUESTION`,e[e.COLON=14]=`COLON`,e[e.DOLLAR=15]=`DOLLAR`})(B||={});var ye=new Set([32,9,10,13]),be=new Set([43,45,42,47,37,33,38,124,61,60,62]),xe=new Map([[`true`,B.BOOLEAN],[`false`,B.BOOLEAN],[`null`,B.NULL]]),Se=new Map([[`===`,!0],[`!==`,!0],[`<=`,!0],[`>=`,!0],[`&&`,!0],[`||`,!0],[`+`,!0],[`-`,!0],[`*`,!0],[`/`,!0],[`%`,!0],[`!`,!0],[`<`,!0],[`>`,!0]]),Ce=new Map([[46,B.DOT],[91,B.BRACKET_LEFT],[93,B.BRACKET_RIGHT],[40,B.PAREN_LEFT],[41,B.PAREN_RIGHT],[44,B.COMMA],[63,B.QUESTION],[58,B.COLON],[36,B.DOLLAR]]),we=new Map;for(let[e,t]of Ce.entries())we.set(e,{type:t,value:String.fromCharCode(e)});function Te(e){return e>=48&&e<=57}function Ee(e){return e>=97&&e<=122||e>=65&&e<=90||e===95}function De(e){return Ee(e)||Te(e)}function Oe(e){return be.has(e)}var V;(function(e){e[e.Program=0]=`Program`,e[e.Literal=1]=`Literal`,e[e.Identifier=2]=`Identifier`,e[e.MemberExpression=3]=`MemberExpression`,e[e.CallExpression=4]=`CallExpression`,e[e.BinaryExpression=5]=`BinaryExpression`,e[e.UnaryExpression=6]=`UnaryExpression`,e[e.ConditionalExpression=7]=`ConditionalExpression`})(V||={});var ke=new Map([[`||`,2],[`&&`,3],[`===`,4],[`!==`,4],[`>`,5],[`>=`,5],[`<`,5],[`<=`,5],[`+`,6],[`-`,6],[`*`,7],[`/`,7],[`%`,7],[`!`,8]]),Ae={type:V.Literal,value:null},je={type:V.Literal,value:!0},Me={type:V.Literal,value:!1},Ne=e=>{let t=0,n=e.length,r=()=>t>=n?null:e[t],i=()=>e[t++],a=e=>{let t=r();return t!==null&&t.type===e},o=e=>e.type===B.OPERATOR?ke.get(e.value)||-1:e.type===B.DOT||e.type===B.BRACKET_LEFT?9:e.type===B.QUESTION?1:-1,s=e=>{let n,o;if(i().type===B.DOT){if(!a(B.IDENTIFIER)){let e=r();throw new z(`Expected property name`,t,e?e.value:`<end of input>`)}let e=i();n={type:V.Identifier,name:e.value},o=!1}else{if(n=l(0),!a(B.BRACKET_RIGHT)){let e=r();throw new z(`Expected closing bracket`,t,e?e.value:`<end of input>`)}i(),o=!0}return{type:V.MemberExpression,object:e,property:n,computed:o}},c=()=>{let e=r();if(!e)throw new z(`Unexpected end of input`,t,`<end of input>`);if(e.type===B.OPERATOR&&(e.value===`!`||e.value===`-`)){i();let t=c();return{type:V.UnaryExpression,operator:e.value,argument:t,prefix:!0}}switch(e.type){case B.NUMBER:return i(),{type:V.Literal,value:Number(e.value)};case B.STRING:return i(),{type:V.Literal,value:e.value};case B.BOOLEAN:return i(),e.value===`true`?je:Me;case B.NULL:return i(),Ae;case B.IDENTIFIER:return i(),{type:V.Identifier,name:e.value};case B.FUNCTION:return(()=>{let e=i(),n=[];if(!a(B.PAREN_LEFT)){let e=r();throw new z(`Expected opening parenthesis after function name`,t,e?e.value:`<end of input>`)}for(i();;){if(a(B.PAREN_RIGHT)){i();break}if(!r()){let e=r();throw new z(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}if(n.length>0){if(!a(B.COMMA)){let e=r();throw new z(`Expected comma between function arguments`,t,e?e.value:`<end of input>`)}i()}let e=l(0);n.push(e)}return{type:V.CallExpression,callee:{type:V.Identifier,name:e.value},arguments:n}})();case B.PAREN_LEFT:{i();let e=l(0);if(!a(B.PAREN_RIGHT)){let e=r();throw new z(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}return i(),e}default:throw new z(`Unexpected token: ${e.type}`,t,e.value)}},l=(u=0)=>{let d=c();for(;t<n;){let n=e[t],c=o(n);if(c<=u)break;if(n.type!==B.QUESTION){if(n.type!==B.OPERATOR){if(n.type!==B.DOT&&n.type!==B.BRACKET_LEFT)break;d=s(d)}else{i();let e=l(c);d={type:V.BinaryExpression,operator:n.value,left:d,right:e}}}else{i();let e=l(0);if(!a(B.COLON)){let e=r();throw new z(`Expected : in conditional expression`,t,e?e.value:`<end of input>`)}i();let n=l(0);d={type:V.ConditionalExpression,test:d,consequent:e,alternate:n}}}return d},u=l();return{type:V.Program,body:u}},Pe=(e,t,n)=>{let r=t;n&&(r={...t,context:{...t.context,...n}});let i=e=>{switch(e.type){case V.Literal:return(e=>e.value)(e);case V.Identifier:return(e=>{if(!(e.name in r.context))throw new z(`Undefined variable: ${e.name}`);return r.context[e.name]})(e);case V.MemberExpression:return(e=>{let t=i(e.object);if(t==null)throw new z(`Cannot access property of null or undefined`);return t[e.computed?i(e.property):e.property.name]})(e);case V.CallExpression:return(e=>{let t=r.functions[e.callee.name];if(!t)throw new z(`Undefined function: ${e.callee.name}`);return t(...e.arguments.map((e=>i(e))))})(e);case V.BinaryExpression:return(e=>{if(e.operator===`&&`)return i(e.left)&&i(e.right);if(e.operator===`||`)return i(e.left)||i(e.right);let t=i(e.left),n=i(e.right);switch(e.operator){case`+`:return t+n;case`-`:return t-n;case`*`:return t*n;case`/`:return t/n;case`%`:return t%n;case`===`:return t===n;case`!==`:return t!==n;case`>`:return t>n;case`>=`:return t>=n;case`<`:return t<n;case`<=`:return t<=n;default:throw new z(`Unknown operator: ${e.operator}`)}})(e);case V.UnaryExpression:return(e=>{let t=i(e.argument);if(e.prefix)switch(e.operator){case`!`:return!t;case`-`:if(typeof t!=`number`)throw new z(`Cannot apply unary - to non-number: ${t}`);return-t;default:throw new z(`Unknown operator: ${e.operator}`)}throw new z(`Postfix operators are not supported: ${e.operator}`)})(e);case V.ConditionalExpression:return(e=>{let t=i(e.test);return i(t?e.consequent:e.alternate)})(e);default:throw new z(`Evaluation error: Unsupported node type: ${e.type}`)}};return i(e.body)};function Fe(e){let t=Ne((e=>{let t=e,n=t.length,r=Array(Math.ceil(n/3)),i=0,a=0;function o(e){let r=a+1;a++;let i=``,o=!1;for(;a<n;){let n=t.charCodeAt(a);if(n===e)return o||(i=t.substring(r,a)),a++,{type:B.STRING,value:i};n===92?(o||=(i=t.substring(r,a),!0),a++,i+=t[a]):o&&(i+=t[a]),a++}throw new z(`Unterminated string starting with ${String.fromCharCode(e)}`,a,t.substring(Math.max(0,a-10),a))}function s(){let e=a;for(t.charCodeAt(a)===45&&a++;a<n&&Te(t.charCodeAt(a));)a++;if(a<n&&t.charCodeAt(a)===46)for(a++;a<n&&Te(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:B.NUMBER,value:r}}function c(){a++;let e=a;if(a<n&&Ee(t.charCodeAt(a)))for(a++;a<n&&De(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:B.FUNCTION,value:r}}function l(){let e=a++;for(;a<n&&De(t.charCodeAt(a));)a++;let r=t.slice(e,a),i=xe.get(r);return i?{type:i,value:r}:{type:B.IDENTIFIER,value:r}}function u(){if(a+2<n){let e=t.substring(a,a+3);if(Se.has(e))return a+=3,{type:B.OPERATOR,value:e}}if(a+1<n){let e=t.substring(a,a+2);if(Se.has(e))return a+=2,{type:B.OPERATOR,value:e}}let e=t[a];if(Se.has(e))return a++,{type:B.OPERATOR,value:e};throw new z(`Unknown operator at position ${a}: ${t.substring(a,a+1)}`,a,t.substring(Math.max(0,a-10),a))}for(;a<n;){let e=t.charCodeAt(a);if(d=e,ye.has(d)){a++;continue}let f=we.get(e);if(f)r[i++]=f,a++;else if(e!==34&&e!==39){if(Te(e)||e===45&&a+1<n&&Te(t.charCodeAt(a+1)))r[i++]=s();else if(e!==64){if(Ee(e))r[i++]=l();else{if(!Oe(e))throw new z(`Unexpected character: ${t[a]}`,a,t.substring(Math.max(0,a-10),a));r[i++]=u()}}else r[i++]=c()}else r[i++]=o(e)}var d;return i===r.length?r:r.slice(0,i)})(e)),n=((e={},t={})=>({context:e,functions:t}))({},ve);return(e={})=>Pe(t,n,e)}function Ie(e,t={}){return Fe(e)(t)}function Le(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)try{return Fe(n),Ie(n,t)}catch{return}}function Re(e){return typeof e==`number`}function ze(e){if(!e)return[0,0,0];if(Re(e))return[e,e,e];if(Array.isArray(e)&&e.length===0)return[0,0,0];let[t,n=t,r=t]=e;return[t,n,r]}function Be(e){return Re(e)?!0:Array.isArray(e)?e.every(e=>Re(e)):!1}function H(e){return e==null}function Ve(e){return typeof e==`string`}function He(e){return typeof e==`function`}function Ue(e,t){if(typeof e==`function`)return e;if(typeof e==`string`){let n=e;return(...e)=>{let r={};for(let n=0;n<t.length;n++)r[t[n]]=e[n];return Le(n,r)}}return()=>e}function We(e,t,n=`node`){if(H(e))return()=>t;if(Ve(e)){let r=Ue(e,[n]);return e=>{let n=r(e);return Re(n)?n:t}}return He(e)?e:Re(e)?()=>e:()=>t}function Ge(e,t=10,n=`node`){if(H(e))return()=>t;if(Ve(e)){let r=Ue(e,[n]);return e=>{let n=r(e);return Be(n)?n:t}}return He(e)?e:Re(e)||Array.isArray(e)?()=>e:()=>t}function Ke(e){return[e.x,e.y,e.z??0]}var qe=class{constructor(e,t={}){this.edgeIdCounter=new Map,this.nodeMap=Xe(e.nodes,t.node),this.edgeMap=Ze(e.edges||[],t.edge,this.getEdgeId.bind(this))}data(){return{nodes:this.nodeMap,edges:this.edgeMap}}replace(e){this.nodeMap=e.nodes,this.edgeMap=e.edges,this.clearCache()}nodes(){return Array.from(this.nodeMap.values())}node(e){return this.nodeMap.get(e)}nodeAt(e){this.indexNodeCache||this.buildNodeIndexCache();let t=this.indexNodeCache.get(e);return t?this.nodeMap.get(t):void 0}nodeIndexOf(e){return this.nodeIndexCache||this.buildNodeIndexCache(),this.nodeIndexCache.get(e)??-1}firstNode(){return this.nodeMap.values().next().value}forEachNode(e){let t=0;this.nodeMap.forEach(n=>e(n,t++))}originalNode(e){return this.nodeMap.get(e)?._original}nodeCount(){return this.nodeMap.size}edges(){return Array.from(this.edgeMap.values())}edge(e){return this.edgeMap.get(e)}firstEdge(){return this.edgeMap.values().next().value}forEachEdge(e){let t=0;this.edgeMap.forEach(n=>e(n,t++))}originalEdge(e){return this.edgeMap.get(e)?._original}edgeCount(){return this.edgeMap.size}getEdgeId(e){if(e.id)return e.id;let t=`${e.source}-${e.target}`,n=this.edgeIdCounter.get(t)||0,r=n===0?t:`${t}-${n}`;return this.edgeIdCounter.set(t,n+1),r}degree(e,t=`both`){this.degreeCache||this.buildDegreeCache();let n=this.degreeCache.get(e);return n?n[t]:0}neighbors(e,t=`both`){if((!this.outAdjacencyCache||!this.inAdjacencyCache)&&this.buildAdjacencyCache(),t===`out`)return Array.from(this.outAdjacencyCache.get(e)||[]);if(t===`in`)return Array.from(this.inAdjacencyCache.get(e)||[]);if(this.bothAdjacencyCache)return Array.from(this.bothAdjacencyCache.get(e)||[]);let n=this.inAdjacencyCache.get(e),r=this.outAdjacencyCache.get(e);if(!n&&!r)return[];if(!n)return Array.from(r);if(!r)return Array.from(n);let i=new Set;return n.forEach(e=>i.add(e)),r.forEach(e=>i.add(e)),Array.from(i)}successors(e){return this.neighbors(e,`out`)}predecessors(e){return this.neighbors(e,`in`)}setNodeOrder(e){let t=new Map;for(let n of e)t.set(n.id,n);this.nodeMap=t,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}clearCache(){this.degreeCache=void 0,this.inAdjacencyCache=void 0,this.outAdjacencyCache=void 0,this.bothAdjacencyCache=void 0,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}buildDegreeCache(){this.degreeCache=new Map;for(let e of this.edges()){let{source:t,target:n}=e;if(e.source===e.target)continue;this.degreeCache.has(t)||this.degreeCache.set(t,{in:0,out:0,both:0});let r=this.degreeCache.get(e.source);r&&(r.out++,r.both++),this.degreeCache.has(n)||this.degreeCache.set(n,{in:0,out:0,both:0});let i=this.degreeCache.get(e.target);i&&(i.in++,i.both++)}}buildAdjacencyCache(){this.inAdjacencyCache=new Map,this.outAdjacencyCache=new Map;for(let e of this.edges())!this.nodeMap.has(e.source)||!this.nodeMap.has(e.target)||(this.outAdjacencyCache.has(e.source)||this.outAdjacencyCache.set(e.source,new Set),this.outAdjacencyCache.get(e.source).add(e.target),this.inAdjacencyCache.has(e.target)||this.inAdjacencyCache.set(e.target,new Set),this.inAdjacencyCache.get(e.target).add(e.source))}buildNodeIndexCache(){this.nodeIndexCache=new Map,this.indexNodeCache=new Map;let e=0;this.nodeMap.forEach((t,n)=>{this.nodeIndexCache.set(n,e),this.indexNodeCache.set(e,n),e++})}destroy(){this.clearCache(),this.nodeMap.clear(),this.edgeMap.clear(),this.edgeIdCounter.clear()}},Je=[`id`,`x`,`y`,`z`,`vx`,`vy`,`vz`,`fx`,`fy`,`fz`,`parentId`],Ye=[`id`,`source`,`target`,`points`];function Xe(e,t){if(!e)throw Error(`Data.nodes is required`);let n=new Map;for(let r of e){let e={_original:r};for(let t of Je){let n=r[t];H(n)||(e[t]=n)}if(t){let n=t(r);for(let t in n){let r=n[t];H(r)||(e[t]=r)}}if(H(e.id))throw Error(`Node is missing id field`);n.set(e.id,e)}return n}function Ze(e,t,n){let r=new Map;for(let i of e){let e={_original:i};for(let t of Ye){let n=i[t];H(n)||(e[t]=n)}if(t){let n=t(i);for(let t in n){let r=n[t];H(r)||(e[t]=r)}}if(H(e.source)||H(e.target))throw Error(`Edge is missing source or target field`);H(e.id)&&(e.id=n?.(i)),r.set(e.id,e)}return r}var Qe=class{constructor(e,t={}){this.graph=new qe(e,t)}export(){return this.graph.data()}replace(e){this.graph.replace(e)}forEachNode(e){this.graph.forEachNode(e)}forEachEdge(e){this.graph.forEachEdge((t,n)=>{t.sourceNode=this.graph.node(t.source),t.targetNode=this.graph.node(t.target),e(t,n)})}destroy(){this.graph.destroy()}},$e=Symbol(`Comlink.proxy`),et=Symbol(`Comlink.endpoint`),tt=Symbol(`Comlink.releaseProxy`),nt=Symbol(`Comlink.finalizer`),rt=Symbol(`Comlink.thrown`),it=e=>typeof e==`object`&&!!e||typeof e==`function`,at=new Map([[`proxy`,{canHandle:e=>it(e)&&e[$e],serialize(e){let{port1:t,port2:n}=new MessageChannel;return st(e,t),[n,[n]]},deserialize(e){return e.start(),ut(e)}}],[`throw`,{canHandle:e=>it(e)&&rt in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function ot(e,t){for(let n of e)if(t===n||n===`*`||n instanceof RegExp&&n.test(t))return!0;return!1}function st(e,t=globalThis,n=[`*`]){t.addEventListener(`message`,function r(i){if(!i||!i.data)return;if(!ot(n,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}let{id:a,type:o,path:s}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(wt),l;try{let t=s.slice(0,-1).reduce((e,t)=>e[t],e),n=s.reduce((e,t)=>e[t],e);switch(o){case`GET`:l=n;break;case`SET`:t[s.slice(-1)[0]]=wt(i.data.value),l=!0;break;case`APPLY`:l=n.apply(t,c);break;case`CONSTRUCT`:l=St(new n(...c));break;case`ENDPOINT`:{let{port1:t,port2:n}=new MessageChannel;st(e,n),l=xt(t,[t])}break;case`RELEASE`:l=void 0;break;default:return}}catch(e){l={value:e,[rt]:0}}Promise.resolve(l).catch(e=>({value:e,[rt]:0})).then(n=>{let[i,s]=Ct(n);t.postMessage(Object.assign(Object.assign({},i),{id:a}),s),o===`RELEASE`&&(t.removeEventListener(`message`,r),lt(t),nt in e&&typeof e[nt]==`function`&&e[nt]())}).catch(e=>{let[n,r]=Ct({value:TypeError(`Unserializable return value`),[rt]:0});t.postMessage(Object.assign(Object.assign({},n),{id:a}),r)})}),t.start&&t.start()}function ct(e){return e.constructor.name===`MessagePort`}function lt(e){ct(e)&&e.close()}function ut(e,t){let n=new Map;return e.addEventListener(`message`,function(e){let{data:t}=e;if(!t||!t.id)return;let r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}}),_t(e,n,[],t)}function dt(e){if(e)throw Error(`Proxy has been released and is not useable`)}function ft(e){return Tt(e,new Map,{type:`RELEASE`}).then(()=>{lt(e)})}var pt=new WeakMap,mt=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(pt.get(e)||0)-1;pt.set(e,t),t===0&&ft(e)});function ht(e,t){let n=(pt.get(t)||0)+1;pt.set(t,n),mt&&mt.register(e,t,e)}function gt(e){mt&&mt.unregister(e)}function _t(e,t,n=[],r=function(){}){let i=!1,a=new Proxy(r,{get(r,o){if(dt(i),o===tt)return()=>{gt(a),ft(e),t.clear(),i=!0};if(o===`then`){if(n.length===0)return{then:()=>a};let r=Tt(e,t,{type:`GET`,path:n.map(e=>e.toString())}).then(wt);return r.then.bind(r)}return _t(e,t,[...n,o])},set(r,a,o){dt(i);let[s,c]=Ct(o);return Tt(e,t,{type:`SET`,path:[...n,a].map(e=>e.toString()),value:s},c).then(wt)},apply(r,a,o){dt(i);let s=n[n.length-1];if(s===et)return Tt(e,t,{type:`ENDPOINT`}).then(wt);if(s===`bind`)return _t(e,t,n.slice(0,-1));let[c,l]=yt(o);return Tt(e,t,{type:`APPLY`,path:n.map(e=>e.toString()),argumentList:c},l).then(wt)},construct(r,a){dt(i);let[o,s]=yt(a);return Tt(e,t,{type:`CONSTRUCT`,path:n.map(e=>e.toString()),argumentList:o},s).then(wt)}});return ht(a,e),a}function vt(e){return Array.prototype.concat.apply([],e)}function yt(e){let t=e.map(Ct);return[t.map(e=>e[0]),vt(t.map(e=>e[1]))]}var bt=new WeakMap;function xt(e,t){return bt.set(e,t),e}function St(e){return Object.assign(e,{[$e]:!0})}function Ct(e){for(let[t,n]of at)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:`HANDLER`,name:t,value:r},i]}return[{type:`RAW`,value:e},bt.get(e)||[]]}function wt(e){switch(e.type){case`HANDLER`:return at.get(e.name).deserialize(e.value);case`RAW`:return e.value}}function Tt(e,t,n,r){return new Promise(i=>{let a=Et();t.set(a,i),e.start&&e.start(),e.postMessage(Object.assign({id:a},n),r)})}function Et(){return[,,,,].fill(0).map(()=>Math.floor(Math.random()*(2**53-1)).toString(16)).join(`-`)}var Dt=class{constructor(){this.worker=null,this.workerApi=null}execute(e,t,n){return _e(this,void 0,void 0,function*(){if(this.worker||(yield this.initWorker()),!this.workerApi)throw Error(`Worker API not initialized`);return yield this.workerApi.execute(e,t,n)})}destroy(){this.workerApi&&this.workerApi.destroy(),this.worker&&(this.worker.terminate(),this.worker=null,this.workerApi=null)}initWorker(){return _e(this,void 0,void 0,function*(){let e=this.resolveWorkerPath(),t=e.includes(`/lib/`)||e.endsWith(`.mjs`)?`module`:`classic`;this.worker=new Worker(e,{type:t}),this.workerApi=ut(this.worker)})}resolveWorkerPath(){let e=(()=>{if(typeof document>`u`)return null;let e=document.currentScript;if(e?.src)return e.src;let t=document.getElementsByTagName(`script`);for(let e=t.length-1;e>=0;e--){let n=t[e].src;if(n&&(n.includes(`index.js`)||n.includes(`index.min.js`)))return n}return null})();if(e){if(e.includes(`index.js`)||e.includes(`index.min.js`)){let t=e.replace(/index(\.min)?\.(m?js)(\?.*)?$/,`worker.js`);if(t!==e)return t}let t=e.replace(/\/runtime\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(t!==e)return t;let n=e.replace(/\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(n!==e)return n}return`./worker.js`}},Ot=class{constructor(e){this.supervisor=null,this.initialOptions=this.mergeOptions(this.getDefaultOptions(),e)}get options(){return this.runtimeOptions||this.initialOptions}mergeOptions(e,t){return Object.assign({},e,t||{})}execute(e,t){return _e(this,void 0,void 0,function*(){this.runtimeOptions=this.mergeOptions(this.initialOptions,t);let{node:n,edge:r,enableWorker:i}=this.runtimeOptions;this.context=new Qe(e,{node:n,edge:r}),this.model=this.context.graph,i&&typeof Worker<`u`?yield this.layoutInWorker(e,this.runtimeOptions):yield this.layout(this.runtimeOptions)})}layoutInWorker(e,t){var n;return _e(this,void 0,void 0,function*(){try{this.supervisor||=new Dt;let r=yield this.supervisor.execute(this.id,e,t);(n=this.context)==null||n.replace(r)}catch(e){console.error(`Layout in worker failed, fallback to main thread layout.`,e),yield this.layout(t)}})}forEachNode(e){this.context.forEachNode(e)}forEachEdge(e){this.context.forEachEdge(e)}destroy(){var e;(e=this.context)==null||e.destroy(),this.model=null,this.context=null,this.supervisor&&=(this.supervisor.destroy(),null)}};function kt(e){return Array.isArray(e)}var At=(function(e){var t=typeof e;return e!==null&&t===`object`||t===`function`}),jt=function(e){return typeof e==`object`&&!!e},Mt={}.toString,Nt=function(e,t){return Mt.call(e)===`[object `+t+`]`},Pt=function(e){if(!jt(e)||!Nt(e,`Object`))return!1;if(Object.getPrototypeOf(e)===null)return!0;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},Ft=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function It(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function Lt(e){throw Error(`Could not dynamically require "`+e+`". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.`)}var Rt,zt;function Bt(){if(zt)return Rt;zt=1;function e(){this.__data__=[],this.size=0}return Rt=e,Rt}var Vt,Ht;function Ut(){if(Ht)return Vt;Ht=1;function e(e,t){return e===t||e!==e&&t!==t}return Vt=e,Vt}var Wt,Gt;function Kt(){if(Gt)return Wt;Gt=1;var e=Ut();function t(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}return Wt=t,Wt}var qt,Jt;function Yt(){if(Jt)return qt;Jt=1;var e=Kt(),t=Array.prototype.splice;function n(n){var r=this.__data__,i=e(r,n);return i<0?!1:(i==r.length-1?r.pop():t.call(r,i,1),--this.size,!0)}return qt=n,qt}var Xt,Zt;function Qt(){if(Zt)return Xt;Zt=1;var e=Kt();function t(t){var n=this.__data__,r=e(n,t);return r<0?void 0:n[r][1]}return Xt=t,Xt}var $t,en;function tn(){if(en)return $t;en=1;var e=Kt();function t(t){return e(this.__data__,t)>-1}return $t=t,$t}var nn,rn;function an(){if(rn)return nn;rn=1;var e=Kt();function t(t,n){var r=this.__data__,i=e(r,t);return i<0?(++this.size,r.push([t,n])):r[i][1]=n,this}return nn=t,nn}var on,sn;function cn(){if(sn)return on;sn=1;var e=Bt(),t=Yt(),n=Qt(),r=tn(),i=an();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,on=a,on}var ln,un;function dn(){if(un)return ln;un=1;var e=cn();function t(){this.__data__=new e,this.size=0}return ln=t,ln}var fn,pn;function mn(){if(pn)return fn;pn=1;function e(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}return fn=e,fn}var hn,gn;function _n(){if(gn)return hn;gn=1;function e(e){return this.__data__.get(e)}return hn=e,hn}var vn,yn;function bn(){if(yn)return vn;yn=1;function e(e){return this.__data__.has(e)}return vn=e,vn}var xn,Sn;function Cn(){return Sn?xn:(Sn=1,xn=typeof Ft==`object`&&Ft&&Ft.Object===Object&&Ft,xn)}var wn,Tn;function U(){if(Tn)return wn;Tn=1;var e=Cn(),t=typeof self==`object`&&self&&self.Object===Object&&self;return wn=e||t||Function(`return this`)(),wn}var En,Dn;function On(){return Dn?En:(Dn=1,En=U().Symbol,En)}var kn,An;function jn(){if(An)return kn;An=1;var e=On(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,i=e?e.toStringTag:void 0;function a(e){var t=n.call(e,i),a=e[i];try{e[i]=void 0;var o=!0}catch{}var s=r.call(e);return o&&(t?e[i]=a:delete e[i]),s}return kn=a,kn}var Mn,Nn;function Pn(){if(Nn)return Mn;Nn=1;var e=Object.prototype.toString;function t(t){return e.call(t)}return Mn=t,Mn}var Fn,In;function Ln(){if(In)return Fn;In=1;var e=On(),t=jn(),n=Pn(),r=`[object Null]`,i=`[object Undefined]`,a=e?e.toStringTag:void 0;function o(e){return e==null?e===void 0?i:r:a&&a in Object(e)?t(e):n(e)}return Fn=o,Fn}var Rn,zn;function W(){if(zn)return Rn;zn=1;function e(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}return Rn=e,Rn}var Bn,Vn;function Hn(){if(Vn)return Bn;Vn=1;var e=Ln(),t=W(),n=`[object AsyncFunction]`,r=`[object Function]`,i=`[object GeneratorFunction]`,a=`[object Proxy]`;function o(o){if(!t(o))return!1;var s=e(o);return s==r||s==i||s==n||s==a}return Bn=o,Bn}var Un,Wn;function Gn(){return Wn?Un:(Wn=1,Un=U()[`__core-js_shared__`],Un)}var Kn,qn;function Jn(){if(qn)return Kn;qn=1;var e=Gn(),t=function(){var t=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||``);return t?`Symbol(src)_1.`+t:``}();function n(e){return!!t&&t in e}return Kn=n,Kn}var Yn,Xn;function Zn(){if(Xn)return Yn;Xn=1;var e=Function.prototype.toString;function t(t){if(t!=null){try{return e.call(t)}catch{}try{return t+``}catch{}}return``}return Yn=t,Yn}var Qn,$n;function er(){if($n)return Qn;$n=1;var e=Hn(),t=Jn(),n=W(),r=Zn(),i=/[\\^$.*+?()[\]{}|]/g,a=/^\[object .+?Constructor\]$/,o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=RegExp(`^`+c.call(l).replace(i,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function d(i){return!n(i)||t(i)?!1:(e(i)?u:a).test(r(i))}return Qn=d,Qn}var tr,nr;function rr(){if(nr)return tr;nr=1;function e(e,t){return e?.[t]}return tr=e,tr}var ir,ar;function or(){if(ar)return ir;ar=1;var e=er(),t=rr();function n(n,r){var i=t(n,r);return e(i)?i:void 0}return ir=n,ir}var sr,cr;function lr(){return cr?sr:(cr=1,sr=or()(U(),`Map`),sr)}var ur,dr;function fr(){return dr?ur:(dr=1,ur=or()(Object,`create`),ur)}var pr,mr;function hr(){if(mr)return pr;mr=1;var e=fr();function t(){this.__data__=e?e(null):{},this.size=0}return pr=t,pr}var gr,_r;function vr(){if(_r)return gr;_r=1;function e(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}return gr=e,gr}var yr,br;function xr(){if(br)return yr;br=1;var e=fr(),t=`__lodash_hash_undefined__`,n=Object.prototype.hasOwnProperty;function r(r){var i=this.__data__;if(e){var a=i[r];return a===t?void 0:a}return n.call(i,r)?i[r]:void 0}return yr=r,yr}var Sr,Cr;function wr(){if(Cr)return Sr;Cr=1;var e=fr(),t=Object.prototype.hasOwnProperty;function n(n){var r=this.__data__;return e?r[n]!==void 0:t.call(r,n)}return Sr=n,Sr}var Tr,Er;function Dr(){if(Er)return Tr;Er=1;var e=fr(),t=`__lodash_hash_undefined__`;function n(n,r){var i=this.__data__;return this.size+=+!this.has(n),i[n]=e&&r===void 0?t:r,this}return Tr=n,Tr}var Or,kr;function Ar(){if(kr)return Or;kr=1;var e=hr(),t=vr(),n=xr(),r=wr(),i=Dr();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Or=a,Or}var jr,Mr;function Nr(){if(Mr)return jr;Mr=1;var e=Ar(),t=cn(),n=lr();function r(){this.size=0,this.__data__={hash:new e,map:new(n||t),string:new e}}return jr=r,jr}var Pr,Fr;function Ir(){if(Fr)return Pr;Fr=1;function e(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}return Pr=e,Pr}var Lr,Rr;function zr(){if(Rr)return Lr;Rr=1;var e=Ir();function t(t,n){var r=t.__data__;return e(n)?r[typeof n==`string`?`string`:`hash`]:r.map}return Lr=t,Lr}var Br,Vr;function Hr(){if(Vr)return Br;Vr=1;var e=zr();function t(t){var n=e(this,t).delete(t);return this.size-=+!!n,n}return Br=t,Br}var Ur,Wr;function Gr(){if(Wr)return Ur;Wr=1;var e=zr();function t(t){return e(this,t).get(t)}return Ur=t,Ur}var Kr,qr;function Jr(){if(qr)return Kr;qr=1;var e=zr();function t(t){return e(this,t).has(t)}return Kr=t,Kr}var Yr,Xr;function Zr(){if(Xr)return Yr;Xr=1;var e=zr();function t(t,n){var r=e(this,t),i=r.size;return r.set(t,n),this.size+=r.size==i?0:1,this}return Yr=t,Yr}var Qr,$r;function ei(){if($r)return Qr;$r=1;var e=Nr(),t=Hr(),n=Gr(),r=Jr(),i=Zr();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Qr=a,Qr}var ti,ni;function ri(){if(ni)return ti;ni=1;var e=cn(),t=lr(),n=ei(),r=200;function i(i,a){var o=this.__data__;if(o instanceof e){var s=o.__data__;if(!t||s.length<r-1)return s.push([i,a]),this.size=++o.size,this;o=this.__data__=new n(s)}return o.set(i,a),this.size=o.size,this}return ti=i,ti}var ii,ai;function oi(){if(ai)return ii;ai=1;var e=cn(),t=dn(),n=mn(),r=_n(),i=bn(),a=ri();function o(t){var n=this.__data__=new e(t);this.size=n.size}return o.prototype.clear=t,o.prototype.delete=n,o.prototype.get=r,o.prototype.has=i,o.prototype.set=a,ii=o,ii}var si,ci;function li(){if(ci)return si;ci=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}return si=e,si}var ui,di;function fi(){if(di)return ui;di=1;var e=or();return ui=function(){try{var t=e(Object,`defineProperty`);return t({},``,{}),t}catch{}}(),ui}var pi,mi;function hi(){if(mi)return pi;mi=1;var e=fi();function t(t,n,r){n==`__proto__`&&e?e(t,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[n]=r}return pi=t,pi}var gi,_i;function vi(){if(_i)return gi;_i=1;var e=hi(),t=Ut(),n=Object.prototype.hasOwnProperty;function r(r,i,a){var o=r[i];(!(n.call(r,i)&&t(o,a))||a===void 0&&!(i in r))&&e(r,i,a)}return gi=r,gi}var yi,bi;function xi(){if(bi)return yi;bi=1;var e=vi(),t=hi();function n(n,r,i,a){var o=!i;i||={};for(var s=-1,c=r.length;++s<c;){var l=r[s],u=a?a(i[l],n[l],l,i,n):void 0;u===void 0&&(u=n[l]),o?t(i,l,u):e(i,l,u)}return i}return yi=n,yi}var Si,Ci;function wi(){if(Ci)return Si;Ci=1;function e(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}return Si=e,Si}var Ti,Ei;function G(){if(Ei)return Ti;Ei=1;function e(e){return typeof e==`object`&&!!e}return Ti=e,Ti}var Di,Oi;function ki(){if(Oi)return Di;Oi=1;var e=Ln(),t=G(),n=`[object Arguments]`;function r(r){return t(r)&&e(r)==n}return Di=r,Di}var Ai,ji;function Mi(){if(ji)return Ai;ji=1;var e=ki(),t=G(),n=Object.prototype,r=n.hasOwnProperty,i=n.propertyIsEnumerable;return Ai=e(function(){return arguments}())?e:function(e){return t(e)&&r.call(e,`callee`)&&!i.call(e,`callee`)},Ai}var Ni,Pi;function K(){return Pi?Ni:(Pi=1,Ni=Array.isArray,Ni)}var Fi={exports:{}},Ii,Li;function Ri(){if(Li)return Ii;Li=1;function e(){return!1}return Ii=e,Ii}Fi.exports;var zi;function Bi(){return zi?Fi.exports:(zi=1,(function(e,t){var n=U(),r=Ri(),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?n.Buffer:void 0;e.exports=(o?o.isBuffer:void 0)||r})(Fi,Fi.exports),Fi.exports)}var Vi,Hi;function Ui(){if(Hi)return Vi;Hi=1;var e=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function n(n,r){var i=typeof n;return r??=e,!!r&&(i==`number`||i!=`symbol`&&t.test(n))&&n>-1&&n%1==0&&n<r}return Vi=n,Vi}var Wi,Gi;function Ki(){if(Gi)return Wi;Gi=1;var e=9007199254740991;function t(t){return typeof t==`number`&&t>-1&&t%1==0&&t<=e}return Wi=t,Wi}var qi,Ji;function Yi(){if(Ji)return qi;Ji=1;var e=Ln(),t=Ki(),n=G(),r=`[object Arguments]`,i=`[object Array]`,a=`[object Boolean]`,o=`[object Date]`,s=`[object Error]`,c=`[object Function]`,l=`[object Map]`,u=`[object Number]`,d=`[object Object]`,f=`[object RegExp]`,p=`[object Set]`,m=`[object String]`,h=`[object WeakMap]`,g=`[object ArrayBuffer]`,_=`[object DataView]`,v=`[object Float32Array]`,y=`[object Float64Array]`,b=`[object Int8Array]`,x=`[object Int16Array]`,S=`[object Int32Array]`,C=`[object Uint8Array]`,w=`[object Uint8ClampedArray]`,T=`[object Uint16Array]`,E=`[object Uint32Array]`,D={};D[v]=D[y]=D[b]=D[x]=D[S]=D[C]=D[w]=D[T]=D[E]=!0,D[r]=D[i]=D[g]=D[a]=D[_]=D[o]=D[s]=D[c]=D[l]=D[u]=D[d]=D[f]=D[p]=D[m]=D[h]=!1;function O(r){return n(r)&&t(r.length)&&!!D[e(r)]}return qi=O,qi}var Xi,Zi;function Qi(){if(Zi)return Xi;Zi=1;function e(e){return function(t){return e(t)}}return Xi=e,Xi}var $i={exports:{}};$i.exports;var ea;function ta(){return ea?$i.exports:(ea=1,(function(e,t){var n=Cn(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r&&n.process;e.exports=function(){try{return i&&i.require&&i.require(`util`).types||a&&a.binding&&a.binding(`util`)}catch{}}()})($i,$i.exports),$i.exports)}var na,ra;function ia(){if(ra)return na;ra=1;var e=Yi(),t=Qi(),n=ta(),r=n&&n.isTypedArray;return na=r?t(r):e,na}var aa,oa;function sa(){if(oa)return aa;oa=1;var e=wi(),t=Mi(),n=K(),r=Bi(),i=Ui(),a=ia(),o=Object.prototype.hasOwnProperty;function s(s,c){var l=n(s),u=!l&&t(s),d=!l&&!u&&r(s),f=!l&&!u&&!d&&a(s),p=l||u||d||f,m=p?e(s.length,String):[],h=m.length;for(var g in s)(c||o.call(s,g))&&!(p&&(g==`length`||d&&(g==`offset`||g==`parent`)||f&&(g==`buffer`||g==`byteLength`||g==`byteOffset`)||i(g,h)))&&m.push(g);return m}return aa=s,aa}var ca,la;function ua(){if(la)return ca;la=1;var e=Object.prototype;function t(t){var n=t&&t.constructor;return t===(typeof n==`function`&&n.prototype||e)}return ca=t,ca}var da,fa;function pa(){if(fa)return da;fa=1;function e(e,t){return function(n){return e(t(n))}}return da=e,da}var ma,ha;function ga(){return ha?ma:(ha=1,ma=pa()(Object.keys,Object),ma)}var _a,va;function ya(){if(va)return _a;va=1;var e=ua(),t=ga(),n=Object.prototype.hasOwnProperty;function r(r){if(!e(r))return t(r);var i=[];for(var a in Object(r))n.call(r,a)&&a!=`constructor`&&i.push(a);return i}return _a=r,_a}var ba,xa;function q(){if(xa)return ba;xa=1;var e=Hn(),t=Ki();function n(n){return n!=null&&t(n.length)&&!e(n)}return ba=n,ba}var Sa,Ca;function J(){if(Ca)return Sa;Ca=1;var e=sa(),t=ya(),n=q();function r(r){return n(r)?e(r):t(r)}return Sa=r,Sa}var wa,Ta;function Ea(){if(Ta)return wa;Ta=1;var e=xi(),t=J();function n(n,r){return n&&e(r,t(r),n)}return wa=n,wa}var Da,Oa;function ka(){if(Oa)return Da;Oa=1;function e(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}return Da=e,Da}var Aa,ja;function Ma(){if(ja)return Aa;ja=1;var e=W(),t=ua(),n=ka(),r=Object.prototype.hasOwnProperty;function i(i){if(!e(i))return n(i);var a=t(i),o=[];for(var s in i)s==`constructor`&&(a||!r.call(i,s))||o.push(s);return o}return Aa=i,Aa}var Na,Pa;function Fa(){if(Pa)return Na;Pa=1;var e=sa(),t=Ma(),n=q();function r(r){return n(r)?e(r,!0):t(r)}return Na=r,Na}var Ia,La;function Ra(){if(La)return Ia;La=1;var e=xi(),t=Fa();function n(n,r){return n&&e(r,t(r),n)}return Ia=n,Ia}var za={exports:{}};za.exports;var Ba;function Va(){return Ba?za.exports:(Ba=1,(function(e,t){var n=U(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r?n.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}e.exports=s})(za,za.exports),za.exports)}var Ha,Ua;function Wa(){if(Ua)return Ha;Ua=1;function e(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}return Ha=e,Ha}var Ga,Ka;function qa(){if(Ka)return Ga;Ka=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}return Ga=e,Ga}var Ja,Ya;function Xa(){if(Ya)return Ja;Ya=1;function e(){return[]}return Ja=e,Ja}var Za,Qa;function $a(){if(Qa)return Za;Qa=1;var e=qa(),t=Xa(),n=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols;return Za=r?function(t){return t==null?[]:(t=Object(t),e(r(t),function(e){return n.call(t,e)}))}:t,Za}var eo,to;function no(){if(to)return eo;to=1;var e=xi(),t=$a();function n(n,r){return e(n,t(n),r)}return eo=n,eo}var ro,io;function ao(){if(io)return ro;io=1;function e(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}return ro=e,ro}var oo,so;function co(){return so?oo:(so=1,oo=pa()(Object.getPrototypeOf,Object),oo)}var lo,uo;function fo(){if(uo)return lo;uo=1;var e=ao(),t=co(),n=$a(),r=Xa();return lo=Object.getOwnPropertySymbols?function(r){for(var i=[];r;)e(i,n(r)),r=t(r);return i}:r,lo}var po,mo;function ho(){if(mo)return po;mo=1;var e=xi(),t=fo();function n(n,r){return e(n,t(n),r)}return po=n,po}var go,_o;function vo(){if(_o)return go;_o=1;var e=ao(),t=K();function n(n,r,i){var a=r(n);return t(n)?a:e(a,i(n))}return go=n,go}var yo,bo;function xo(){if(bo)return yo;bo=1;var e=vo(),t=$a(),n=J();function r(r){return e(r,n,t)}return yo=r,yo}var So,Co;function wo(){if(Co)return So;Co=1;var e=vo(),t=fo(),n=Fa();function r(r){return e(r,n,t)}return So=r,So}var To,Eo;function Do(){return Eo?To:(Eo=1,To=or()(U(),`DataView`),To)}var Oo,ko;function Ao(){return ko?Oo:(ko=1,Oo=or()(U(),`Promise`),Oo)}var jo,Mo;function No(){return Mo?jo:(Mo=1,jo=or()(U(),`Set`),jo)}var Po,Fo;function Io(){return Fo?Po:(Fo=1,Po=or()(U(),`WeakMap`),Po)}var Lo,Ro;function zo(){if(Ro)return Lo;Ro=1;var e=Do(),t=lr(),n=Ao(),r=No(),i=Io(),a=Ln(),o=Zn(),s=`[object Map]`,c=`[object Object]`,l=`[object Promise]`,u=`[object Set]`,d=`[object WeakMap]`,f=`[object DataView]`,p=o(e),m=o(t),h=o(n),g=o(r),_=o(i),v=a;return(e&&v(new e(new ArrayBuffer(1)))!=f||t&&v(new t)!=s||n&&v(n.resolve())!=l||r&&v(new r)!=u||i&&v(new i)!=d)&&(v=function(e){var t=a(e),n=t==c?e.constructor:void 0,r=n?o(n):``;if(r)switch(r){case p:return f;case m:return s;case h:return l;case g:return u;case _:return d}return t}),Lo=v,Lo}var Bo,Vo;function Ho(){if(Vo)return Bo;Vo=1;var e=Object.prototype.hasOwnProperty;function t(t){var n=t.length,r=new t.constructor(n);return n&&typeof t[0]==`string`&&e.call(t,`index`)&&(r.index=t.index,r.input=t.input),r}return Bo=t,Bo}var Uo,Wo;function Go(){return Wo?Uo:(Wo=1,Uo=U().Uint8Array,Uo)}var Ko,qo;function Jo(){if(qo)return Ko;qo=1;var e=Go();function t(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}return Ko=t,Ko}var Yo,Xo;function Zo(){if(Xo)return Yo;Xo=1;var e=Jo();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}return Yo=t,Yo}var Qo,$o;function es(){if($o)return Qo;$o=1;var e=/\w*$/;function t(t){var n=new t.constructor(t.source,e.exec(t));return n.lastIndex=t.lastIndex,n}return Qo=t,Qo}var ts,ns;function rs(){if(ns)return ts;ns=1;var e=On(),t=e?e.prototype:void 0,n=t?t.valueOf:void 0;function r(e){return n?Object(n.call(e)):{}}return ts=r,ts}var is,as;function os(){if(as)return is;as=1;var e=Jo();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}return is=t,is}var ss,cs;function ls(){if(cs)return ss;cs=1;var e=Jo(),t=Zo(),n=es(),r=rs(),i=os(),a=`[object Boolean]`,o=`[object Date]`,s=`[object Map]`,c=`[object Number]`,l=`[object RegExp]`,u=`[object Set]`,d=`[object String]`,f=`[object Symbol]`,p=`[object ArrayBuffer]`,m=`[object DataView]`,h=`[object Float32Array]`,g=`[object Float64Array]`,_=`[object Int8Array]`,v=`[object Int16Array]`,y=`[object Int32Array]`,b=`[object Uint8Array]`,x=`[object Uint8ClampedArray]`,S=`[object Uint16Array]`,C=`[object Uint32Array]`;function w(w,T,E){var D=w.constructor;switch(T){case p:return e(w);case a:case o:return new D(+w);case m:return t(w,E);case h:case g:case _:case v:case y:case b:case x:case S:case C:return i(w,E);case s:return new D;case c:case d:return new D(w);case l:return n(w);case u:return new D;case f:return r(w)}}return ss=w,ss}var us,ds;function fs(){if(ds)return us;ds=1;var e=W(),t=Object.create;return us=function(){function n(){}return function(r){if(!e(r))return{};if(t)return t(r);n.prototype=r;var i=new n;return n.prototype=void 0,i}}(),us}var ps,ms;function hs(){if(ms)return ps;ms=1;var e=fs(),t=co(),n=ua();function r(r){return typeof r.constructor==`function`&&!n(r)?e(t(r)):{}}return ps=r,ps}var gs,_s;function vs(){if(_s)return gs;_s=1;var e=zo(),t=G(),n=`[object Map]`;function r(r){return t(r)&&e(r)==n}return gs=r,gs}var ys,bs;function xs(){if(bs)return ys;bs=1;var e=vs(),t=Qi(),n=ta(),r=n&&n.isMap;return ys=r?t(r):e,ys}var Ss,Cs;function ws(){if(Cs)return Ss;Cs=1;var e=zo(),t=G(),n=`[object Set]`;function r(r){return t(r)&&e(r)==n}return Ss=r,Ss}var Ts,Es;function Ds(){if(Es)return Ts;Es=1;var e=ws(),t=Qi(),n=ta(),r=n&&n.isSet;return Ts=r?t(r):e,Ts}var Os,ks;function As(){if(ks)return Os;ks=1;var e=oi(),t=li(),n=vi(),r=Ea(),i=Ra(),a=Va(),o=Wa(),s=no(),c=ho(),l=xo(),u=wo(),d=zo(),f=Ho(),p=ls(),m=hs(),h=K(),g=Bi(),_=xs(),v=W(),y=Ds(),b=J(),x=Fa(),S=1,C=2,w=4,T=`[object Arguments]`,E=`[object Array]`,D=`[object Boolean]`,O=`[object Date]`,k=`[object Error]`,A=`[object Function]`,j=`[object GeneratorFunction]`,M=`[object Map]`,N=`[object Number]`,ee=`[object Object]`,P=`[object RegExp]`,F=`[object Set]`,te=`[object String]`,ne=`[object Symbol]`,re=`[object WeakMap]`,I=`[object ArrayBuffer]`,ie=`[object DataView]`,ae=`[object Float32Array]`,L=`[object Float64Array]`,oe=`[object Int8Array]`,se=`[object Int16Array]`,ce=`[object Int32Array]`,le=`[object Uint8Array]`,ue=`[object Uint8ClampedArray]`,de=`[object Uint16Array]`,fe=`[object Uint32Array]`,R={};R[T]=R[E]=R[I]=R[ie]=R[D]=R[O]=R[ae]=R[L]=R[oe]=R[se]=R[ce]=R[M]=R[N]=R[ee]=R[P]=R[F]=R[te]=R[ne]=R[le]=R[ue]=R[de]=R[fe]=!0,R[k]=R[A]=R[re]=!1;function pe(E,D,O,k,M,N){var P,F=D&S,te=D&C,ne=D&w;if(O&&(P=M?O(E,k,M,N):O(E)),P!==void 0)return P;if(!v(E))return E;var re=h(E);if(re){if(P=f(E),!F)return o(E,P)}else{var I=d(E),ie=I==A||I==j;if(g(E))return a(E,F);if(I==ee||I==T||ie&&!M){if(P=te||ie?{}:m(E),!F)return te?c(E,i(P,E)):s(E,r(P,E))}else{if(!R[I])return M?E:{};P=p(E,I,F)}}N||=new e;var ae=N.get(E);if(ae)return ae;N.set(E,P),y(E)?E.forEach(function(e){P.add(pe(e,D,O,e,E,N))}):_(E)&&E.forEach(function(e,t){P.set(t,pe(e,D,O,t,E,N))});var L=re?void 0:(ne?te?u:l:te?x:b)(E);return t(L||E,function(e,t){L&&(t=e,e=E[t]),n(P,t,pe(e,D,O,t,E,N))}),P}return Os=pe,Os}var js,Ms;function Ns(){if(Ms)return js;Ms=1;var e=As(),t=4;function n(n){return e(n,t)}return js=n,js}var Ps,Fs;function Is(){if(Fs)return Ps;Fs=1;function e(e){return function(){return e}}return Ps=e,Ps}var Ls,Rs;function zs(){if(Rs)return Ls;Rs=1;function e(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}return Ls=e,Ls}var Bs,Vs;function Hs(){return Vs?Bs:(Vs=1,Bs=zs()(),Bs)}var Us,Ws;function Gs(){if(Ws)return Us;Ws=1;var e=Hs(),t=J();function n(n,r){return n&&e(n,r,t)}return Us=n,Us}var Ks,qs;function Js(){if(qs)return Ks;qs=1;var e=q();function t(t,n){return function(r,i){if(r==null)return r;if(!e(r))return t(r,i);for(var a=r.length,o=n?a:-1,s=Object(r);(n?o--:++o<a)&&i(s[o],o,s)!==!1;);return r}}return Ks=t,Ks}var Ys,Xs;function Zs(){if(Xs)return Ys;Xs=1;var e=Gs();return Ys=Js()(e),Ys}var Qs,$s;function ec(){if($s)return Qs;$s=1;function e(e){return e}return Qs=e,Qs}var tc,nc;function rc(){if(nc)return tc;nc=1;var e=ec();function t(t){return typeof t==`function`?t:e}return tc=t,tc}var ic,ac;function oc(){if(ac)return ic;ac=1;var e=li(),t=Zs(),n=rc(),r=K();function i(i,a){return(r(i)?e:t)(i,n(a))}return ic=i,ic}var sc,cc;function lc(){return cc?sc:(cc=1,sc=oc(),sc)}var uc,dc;function fc(){if(dc)return uc;dc=1;var e=Zs();function t(t,n){var r=[];return e(t,function(e,t,i){n(e,t,i)&&r.push(e)}),r}return uc=t,uc}var pc,mc;function hc(){if(mc)return pc;mc=1;var e=`__lodash_hash_undefined__`;function t(t){return this.__data__.set(t,e),this}return pc=t,pc}var gc,_c;function vc(){if(_c)return gc;_c=1;function e(e){return this.__data__.has(e)}return gc=e,gc}var yc,bc;function xc(){if(bc)return yc;bc=1;var e=ei(),t=hc(),n=vc();function r(t){var n=-1,r=t==null?0:t.length;for(this.__data__=new e;++n<r;)this.add(t[n])}return r.prototype.add=r.prototype.push=t,r.prototype.has=n,yc=r,yc}var Sc,Cc;function wc(){if(Cc)return Sc;Cc=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}return Sc=e,Sc}var Tc,Ec;function Dc(){if(Ec)return Tc;Ec=1;function e(e,t){return e.has(t)}return Tc=e,Tc}var Oc,kc;function Ac(){if(kc)return Oc;kc=1;var e=xc(),t=wc(),n=Dc(),r=1,i=2;function a(a,o,s,c,l,u){var d=s&r,f=a.length,p=o.length;if(f!=p&&!(d&&p>f))return!1;var m=u.get(a),h=u.get(o);if(m&&h)return m==o&&h==a;var g=-1,_=!0,v=s&i?new e:void 0;for(u.set(a,o),u.set(o,a);++g<f;){var y=a[g],b=o[g];if(c)var x=d?c(b,y,g,o,a,u):c(y,b,g,a,o,u);if(x!==void 0){if(x)continue;_=!1;break}if(v){if(!t(o,function(e,t){if(!n(v,t)&&(y===e||l(y,e,s,c,u)))return v.push(t)})){_=!1;break}}else if(!(y===b||l(y,b,s,c,u))){_=!1;break}}return u.delete(a),u.delete(o),_}return Oc=a,Oc}var jc,Mc;function Nc(){if(Mc)return jc;Mc=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}return jc=e,jc}var Pc,Fc;function Ic(){if(Fc)return Pc;Fc=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}return Pc=e,Pc}var Lc,Rc;function zc(){if(Rc)return Lc;Rc=1;var e=On(),t=Go(),n=Ut(),r=Ac(),i=Nc(),a=Ic(),o=1,s=2,c=`[object Boolean]`,l=`[object Date]`,u=`[object Error]`,d=`[object Map]`,f=`[object Number]`,p=`[object RegExp]`,m=`[object Set]`,h=`[object String]`,g=`[object Symbol]`,_=`[object ArrayBuffer]`,v=`[object DataView]`,y=e?e.prototype:void 0,b=y?y.valueOf:void 0;function x(e,y,x,S,C,w,T){switch(x){case v:if(e.byteLength!=y.byteLength||e.byteOffset!=y.byteOffset)return!1;e=e.buffer,y=y.buffer;case _:return!(e.byteLength!=y.byteLength||!w(new t(e),new t(y)));case c:case l:case f:return n(+e,+y);case u:return e.name==y.name&&e.message==y.message;case p:case h:return e==y+``;case d:var E=i;case m:var D=S&o;if(E||=a,e.size!=y.size&&!D)return!1;var O=T.get(e);if(O)return O==y;S|=s,T.set(e,y);var k=r(E(e),E(y),S,C,w,T);return T.delete(e),k;case g:if(b)return b.call(e)==b.call(y)}return!1}return Lc=x,Lc}var Bc,Vc;function Hc(){if(Vc)return Bc;Vc=1;var e=xo(),t=1,n=Object.prototype.hasOwnProperty;function r(r,i,a,o,s,c){var l=a&t,u=e(r),d=u.length;if(d!=e(i).length&&!l)return!1;for(var f=d;f--;){var p=u[f];if(!(l?p in i:n.call(i,p)))return!1}var m=c.get(r),h=c.get(i);if(m&&h)return m==i&&h==r;var g=!0;c.set(r,i),c.set(i,r);for(var _=l;++f<d;){p=u[f];var v=r[p],y=i[p];if(o)var b=l?o(y,v,p,i,r,c):o(v,y,p,r,i,c);if(!(b===void 0?v===y||s(v,y,a,o,c):b)){g=!1;break}_||=p==`constructor`}if(g&&!_){var x=r.constructor,S=i.constructor;x!=S&&`constructor`in r&&`constructor`in i&&!(typeof x==`function`&&x instanceof x&&typeof S==`function`&&S instanceof S)&&(g=!1)}return c.delete(r),c.delete(i),g}return Bc=r,Bc}var Uc,Wc;function Gc(){if(Wc)return Uc;Wc=1;var e=oi(),t=Ac(),n=zc(),r=Hc(),i=zo(),a=K(),o=Bi(),s=ia(),c=1,l=`[object Arguments]`,u=`[object Array]`,d=`[object Object]`,f=Object.prototype.hasOwnProperty;function p(p,m,h,g,_,v){var y=a(p),b=a(m),x=y?u:i(p),S=b?u:i(m);x=x==l?d:x,S=S==l?d:S;var C=x==d,w=S==d,T=x==S;if(T&&o(p)){if(!o(m))return!1;y=!0,C=!1}if(T&&!C)return v||=new e,y||s(p)?t(p,m,h,g,_,v):n(p,m,x,h,g,_,v);if(!(h&c)){var E=C&&f.call(p,`__wrapped__`),D=w&&f.call(m,`__wrapped__`);if(E||D){var O=E?p.value():p,k=D?m.value():m;return v||=new e,_(O,k,h,g,v)}}return T?(v||=new e,r(p,m,h,g,_,v)):!1}return Uc=p,Uc}var Kc,qc;function Jc(){if(qc)return Kc;qc=1;var e=Gc(),t=G();function n(r,i,a,o,s){return r===i?!0:r==null||i==null||!t(r)&&!t(i)?r!==r&&i!==i:e(r,i,a,o,n,s)}return Kc=n,Kc}var Yc,Xc;function Zc(){if(Xc)return Yc;Xc=1;var e=oi(),t=Jc(),n=1,r=2;function i(i,a,o,s){var c=o.length,l=c,u=!s;if(i==null)return!l;for(i=Object(i);c--;){var d=o[c];if(u&&d[2]?d[1]!==i[d[0]]:!(d[0]in i))return!1}for(;++c<l;){d=o[c];var f=d[0],p=i[f],m=d[1];if(u&&d[2]){if(p===void 0&&!(f in i))return!1}else{var h=new e;if(s)var g=s(p,m,f,i,a,h);if(!(g===void 0?t(m,p,n|r,s,h):g))return!1}}return!0}return Yc=i,Yc}var Qc,$c;function el(){if($c)return Qc;$c=1;var e=W();function t(t){return t===t&&!e(t)}return Qc=t,Qc}var tl,nl;function rl(){if(nl)return tl;nl=1;var e=el(),t=J();function n(n){for(var r=t(n),i=r.length;i--;){var a=r[i],o=n[a];r[i]=[a,o,e(o)]}return r}return tl=n,tl}var il,al;function ol(){if(al)return il;al=1;function e(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}return il=e,il}var sl,cl;function ll(){if(cl)return sl;cl=1;var e=Zc(),t=rl(),n=ol();function r(r){var i=t(r);return i.length==1&&i[0][2]?n(i[0][0],i[0][1]):function(t){return t===r||e(t,r,i)}}return sl=r,sl}var ul,dl;function fl(){if(dl)return ul;dl=1;var e=Ln(),t=G(),n=`[object Symbol]`;function r(r){return typeof r==`symbol`||t(r)&&e(r)==n}return ul=r,ul}var pl,ml;function hl(){if(ml)return pl;ml=1;var e=K(),t=fl(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(i,a){if(e(i))return!1;var o=typeof i;return o==`number`||o==`symbol`||o==`boolean`||i==null||t(i)?!0:r.test(i)||!n.test(i)||a!=null&&i in Object(a)}return pl=i,pl}var gl,_l;function vl(){if(_l)return gl;_l=1;var e=ei(),t=`Expected a function`;function n(r,i){if(typeof r!=`function`||i!=null&&typeof i!=`function`)throw TypeError(t);var a=function(){var e=arguments,t=i?i.apply(this,e):e[0],n=a.cache;if(n.has(t))return n.get(t);var o=r.apply(this,e);return a.cache=n.set(t,o)||n,o};return a.cache=new(n.Cache||e),a}return n.Cache=e,gl=n,gl}var yl,bl;function xl(){if(bl)return yl;bl=1;var e=vl(),t=500;function n(n){var r=e(n,function(e){return i.size===t&&i.clear(),e}),i=r.cache;return r}return yl=n,yl}var Sl,Cl;function wl(){if(Cl)return Sl;Cl=1;var e=xl(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g;return Sl=e(function(e){var r=[];return e.charCodeAt(0)===46&&r.push(``),e.replace(t,function(e,t,i,a){r.push(i?a.replace(n,`$1`):t||e)}),r}),Sl}var Tl,El;function Dl(){if(El)return Tl;El=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}return Tl=e,Tl}var Ol,kl;function Al(){if(kl)return Ol;kl=1;var e=On(),t=Dl(),n=K(),r=fl(),i=e?e.prototype:void 0,a=i?i.toString:void 0;function o(e){if(typeof e==`string`)return e;if(n(e))return t(e,o)+``;if(r(e))return a?a.call(e):``;var i=e+``;return i==`0`&&1/e==-1/0?`-0`:i}return Ol=o,Ol}var jl,Ml;function Nl(){if(Ml)return jl;Ml=1;var e=Al();function t(t){return t==null?``:e(t)}return jl=t,jl}var Pl,Fl;function Il(){if(Fl)return Pl;Fl=1;var e=K(),t=hl(),n=wl(),r=Nl();function i(i,a){return e(i)?i:t(i,a)?[i]:n(r(i))}return Pl=i,Pl}var Ll,Rl;function zl(){if(Rl)return Ll;Rl=1;var e=fl();function t(t){if(typeof t==`string`||e(t))return t;var n=t+``;return n==`0`&&1/t==-1/0?`-0`:n}return Ll=t,Ll}var Bl,Vl;function Hl(){if(Vl)return Bl;Vl=1;var e=Il(),t=zl();function n(n,r){r=e(r,n);for(var i=0,a=r.length;n!=null&&i<a;)n=n[t(r[i++])];return i&&i==a?n:void 0}return Bl=n,Bl}var Ul,Wl;function Gl(){if(Wl)return Ul;Wl=1;var e=Hl();function t(t,n,r){var i=t==null?void 0:e(t,n);return i===void 0?r:i}return Ul=t,Ul}var Kl,ql;function Jl(){if(ql)return Kl;ql=1;function e(e,t){return e!=null&&t in Object(e)}return Kl=e,Kl}var Yl,Xl;function Zl(){if(Xl)return Yl;Xl=1;var e=Il(),t=Mi(),n=K(),r=Ui(),i=Ki(),a=zl();function o(o,s,c){s=e(s,o);for(var l=-1,u=s.length,d=!1;++l<u;){var f=a(s[l]);if(!(d=o!=null&&c(o,f)))break;o=o[f]}return d||++l!=u?d:(u=o==null?0:o.length,!!u&&i(u)&&r(f,u)&&(n(o)||t(o)))}return Yl=o,Yl}var Ql,$l;function eu(){if($l)return Ql;$l=1;var e=Jl(),t=Zl();function n(n,r){return n!=null&&t(n,r,e)}return Ql=n,Ql}var tu,nu;function ru(){if(nu)return tu;nu=1;var e=Jc(),t=Gl(),n=eu(),r=hl(),i=el(),a=ol(),o=zl(),s=1,c=2;function l(l,u){return r(l)&&i(u)?a(o(l),u):function(r){var i=t(r,l);return i===void 0&&i===u?n(r,l):e(u,i,s|c)}}return tu=l,tu}var iu,au;function ou(){if(au)return iu;au=1;function e(e){return function(t){return t?.[e]}}return iu=e,iu}var su,cu;function lu(){if(cu)return su;cu=1;var e=Hl();function t(t){return function(n){return e(n,t)}}return su=t,su}var uu,du;function fu(){if(du)return uu;du=1;var e=ou(),t=lu(),n=hl(),r=zl();function i(i){return n(i)?e(r(i)):t(i)}return uu=i,uu}var pu,mu;function Y(){if(mu)return pu;mu=1;var e=ll(),t=ru(),n=ec(),r=K(),i=fu();function a(a){return typeof a==`function`?a:a==null?n:typeof a==`object`?r(a)?t(a[0],a[1]):e(a):i(a)}return pu=a,pu}var hu,gu;function _u(){if(gu)return hu;gu=1;var e=qa(),t=fc(),n=Y(),r=K();function i(i,a){return(r(i)?e:t)(i,n(a,3))}return hu=i,hu}var vu,yu;function bu(){if(yu)return vu;yu=1;var e=Object.prototype.hasOwnProperty;function t(t,n){return t!=null&&e.call(t,n)}return vu=t,vu}var xu,Su;function Cu(){if(Su)return xu;Su=1;var e=bu(),t=Zl();function n(n,r){return n!=null&&t(n,r,e)}return xu=n,xu}var wu,Tu;function Eu(){if(Tu)return wu;Tu=1;var e=ya(),t=zo(),n=Mi(),r=K(),i=q(),a=Bi(),o=ua(),s=ia(),c=`[object Map]`,l=`[object Set]`,u=Object.prototype.hasOwnProperty;function d(d){if(d==null)return!0;if(i(d)&&(r(d)||typeof d==`string`||typeof d.splice==`function`||a(d)||s(d)||n(d)))return!d.length;var f=t(d);if(f==c||f==l)return!d.size;if(o(d))return!e(d).length;for(var p in d)if(u.call(d,p))return!1;return!0}return wu=d,wu}var Du,Ou;function ku(){if(Ou)return Du;Ou=1;function e(e){return e===void 0}return Du=e,Du}var Au,ju;function Mu(){if(ju)return Au;ju=1;var e=Zs(),t=q();function n(n,r){var i=-1,a=t(n)?Array(n.length):[];return e(n,function(e,t,n){a[++i]=r(e,t,n)}),a}return Au=n,Au}var Nu,Pu;function Fu(){if(Pu)return Nu;Pu=1;var e=Dl(),t=Y(),n=Mu(),r=K();function i(i,a){return(r(i)?e:n)(i,t(a,3))}return Nu=i,Nu}var Iu,Lu;function Ru(){if(Lu)return Iu;Lu=1;function e(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}return Iu=e,Iu}var zu,Bu;function Vu(){if(Bu)return zu;Bu=1;function e(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}return zu=e,zu}var Hu,Uu;function Wu(){if(Uu)return Hu;Uu=1;var e=Ru(),t=Zs(),n=Y(),r=Vu(),i=K();function a(a,o,s){var c=i(a)?e:r,l=arguments.length<3;return c(a,n(o,4),s,l,t)}return Hu=a,Hu}var Gu,Ku;function qu(){if(Ku)return Gu;Ku=1;var e=Ln(),t=K(),n=G(),r=`[object String]`;function i(i){return typeof i==`string`||!t(i)&&n(i)&&e(i)==r}return Gu=i,Gu}var Ju,Yu;function Xu(){return Yu?Ju:(Yu=1,Ju=ou()(`length`),Ju)}var Zu,Qu;function $u(){if(Qu)return Zu;Qu=1;var e=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function t(t){return e.test(t)}return Zu=t,Zu}var ed,td;function nd(){if(td)return ed;td=1;var e=`\\ud800-\\udfff`,t=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,n=`\\ufe0e\\ufe0f`,r=`[`+e+`]`,i=`[`+t+`]`,a=`\\ud83c[\\udffb-\\udfff]`,o=`(?:`+i+`|`+a+`)`,s=`[^`+e+`]`,c=`(?:\\ud83c[\\udde6-\\uddff]){2}`,l=`[\\ud800-\\udbff][\\udc00-\\udfff]`,u=`\\u200d`,d=o+`?`,f=`[`+n+`]?`,p=`(?:`+u+`(?:`+[s,c,l].join(`|`)+`)`+f+d+`)*`,m=f+d+p,h=`(?:`+[s+i+`?`,i,c,l,r].join(`|`)+`)`,g=RegExp(a+`(?=`+a+`)|`+h+m,`g`);function _(e){for(var t=g.lastIndex=0;g.test(e);)++t;return t}return ed=_,ed}var rd,id;function ad(){if(id)return rd;id=1;var e=Xu(),t=$u(),n=nd();function r(r){return t(r)?n(r):e(r)}return rd=r,rd}var od,sd;function cd(){if(sd)return od;sd=1;var e=ya(),t=zo(),n=q(),r=qu(),i=ad(),a=`[object Map]`,o=`[object Set]`;function s(s){if(s==null)return 0;if(n(s))return r(s)?i(s):s.length;var c=t(s);return c==a||c==o?s.size:e(s).length}return od=s,od}var ld,ud;function dd(){if(ud)return ld;ud=1;var e=li(),t=fs(),n=Gs(),r=Y(),i=co(),a=K(),o=Bi(),s=Hn(),c=W(),l=ia();function u(u,d,f){var p=a(u),m=p||o(u)||l(u);if(d=r(d,4),f==null){var h=u&&u.constructor;f=m?p?new h:[]:c(u)&&s(h)?t(i(u)):{}}return(m?e:n)(u,function(e,t,n){return d(f,e,t,n)}),f}return ld=u,ld}var fd,pd;function md(){if(pd)return fd;pd=1;var e=On(),t=Mi(),n=K(),r=e?e.isConcatSpreadable:void 0;function i(e){return n(e)||t(e)||!!(r&&e&&e[r])}return fd=i,fd}var hd,gd;function _d(){if(gd)return hd;gd=1;var e=ao(),t=md();function n(r,i,a,o,s){var c=-1,l=r.length;for(a||=t,s||=[];++c<l;){var u=r[c];i>0&&a(u)?i>1?n(u,i-1,a,o,s):e(s,u):o||(s[s.length]=u)}return s}return hd=n,hd}var vd,yd;function bd(){if(yd)return vd;yd=1;function e(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}return vd=e,vd}var xd,Sd;function Cd(){if(Sd)return xd;Sd=1;var e=bd(),t=Math.max;function n(n,r,i){return r=t(r===void 0?n.length-1:r,0),function(){for(var a=arguments,o=-1,s=t(a.length-r,0),c=Array(s);++o<s;)c[o]=a[r+o];o=-1;for(var l=Array(r+1);++o<r;)l[o]=a[o];return l[r]=i(c),e(n,this,l)}}return xd=n,xd}var wd,Td;function Ed(){if(Td)return wd;Td=1;var e=Is(),t=fi(),n=ec();return wd=t?function(n,r){return t(n,`toString`,{configurable:!0,enumerable:!1,value:e(r),writable:!0})}:n,wd}var Dd,Od;function kd(){if(Od)return Dd;Od=1;var e=800,t=16,n=Date.now;function r(r){var i=0,a=0;return function(){var o=n(),s=t-(o-a);if(a=o,s>0){if(++i>=e)return arguments[0]}else i=0;return r.apply(void 0,arguments)}}return Dd=r,Dd}var Ad,jd;function Md(){if(jd)return Ad;jd=1;var e=Ed();return Ad=kd()(e),Ad}var Nd,Pd;function Fd(){if(Pd)return Nd;Pd=1;var e=ec(),t=Cd(),n=Md();function r(r,i){return n(t(r,i,e),r+``)}return Nd=r,Nd}var Id,Ld;function Rd(){if(Ld)return Id;Ld=1;function e(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}return Id=e,Id}var zd,Bd;function Vd(){if(Bd)return zd;Bd=1;function e(e){return e!==e}return zd=e,zd}var Hd,Ud;function Wd(){if(Ud)return Hd;Ud=1;function e(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}return Hd=e,Hd}var Gd,Kd;function qd(){if(Kd)return Gd;Kd=1;var e=Rd(),t=Vd(),n=Wd();function r(r,i,a){return i===i?n(r,i,a):e(r,t,a)}return Gd=r,Gd}var Jd,Yd;function Xd(){if(Yd)return Jd;Yd=1;var e=qd();function t(t,n){return!!(t!=null&&t.length)&&e(t,n,0)>-1}return Jd=t,Jd}var Zd,Qd;function $d(){if(Qd)return Zd;Qd=1;function e(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}return Zd=e,Zd}var ef,tf;function nf(){if(tf)return ef;tf=1;function e(){}return ef=e,ef}var rf,af;function of(){if(af)return rf;af=1;var e=No(),t=nf(),n=Ic();return rf=e&&1/n(new e([,-0]))[1]==1/0?function(t){return new e(t)}:t,rf}var sf,cf;function lf(){if(cf)return sf;cf=1;var e=xc(),t=Xd(),n=$d(),r=Dc(),i=of(),a=Ic(),o=200;function s(s,c,l){var u=-1,d=t,f=s.length,p=!0,m=[],h=m;if(l)p=!1,d=n;else if(f>=o){var g=c?null:i(s);if(g)return a(g);p=!1,d=r,h=new e}else h=c?[]:m;outer:for(;++u<f;){var _=s[u],v=c?c(_):_;if(_=l||_!==0?_:0,p&&v===v){for(var y=h.length;y--;)if(h[y]===v)continue outer;c&&h.push(v),m.push(_)}else d(h,v,l)||(h!==m&&h.push(v),m.push(_))}return m}return sf=s,sf}var uf,df;function ff(){if(df)return uf;df=1;var e=q(),t=G();function n(n){return t(n)&&e(n)}return uf=n,uf}var pf,mf;function hf(){if(mf)return pf;mf=1;var e=_d(),t=Fd(),n=lf(),r=ff();return pf=t(function(t){return n(e(t,1,r,!0))}),pf}var gf,_f;function vf(){if(_f)return gf;_f=1;var e=Dl();function t(t,n){return e(n,function(e){return t[e]})}return gf=t,gf}var yf,bf;function xf(){if(bf)return yf;bf=1;var e=vf(),t=J();function n(n){return n==null?[]:e(n,t(n))}return yf=n,yf}var Sf,Cf;function X(){if(Cf)return Sf;Cf=1;var e;if(typeof Lt==`function`)try{e={clone:Ns(),constant:Is(),each:lc(),filter:_u(),has:Cu(),isArray:K(),isEmpty:Eu(),isFunction:Hn(),isUndefined:ku(),keys:J(),map:Fu(),reduce:Wu(),size:cd(),transform:dd(),union:hf(),values:xf()}}catch{}return e||=window._,Sf=e,Sf}var wf,Tf;function Ef(){if(Tf)return wf;Tf=1;var e=X();wf=i;var t=`\0`,n=`\0`,r=``;function i(t){this._isDirected=!e.has(t,`directed`)||t.directed,this._isMultigraph=e.has(t,`multigraph`)?t.multigraph:!1,this._isCompound=e.has(t,`compound`)?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[n]={}),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(e){return this._label=e,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultNodeLabelFn=t,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return e.keys(this._nodes)},i.prototype.sources=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._in[n])})},i.prototype.sinks=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._out[n])})},i.prototype.setNodes=function(t,n){var r=arguments,i=this;return e.each(t,function(e){r.length>1?i.setNode(e,n):i.setNode(e)}),this},i.prototype.setNode=function(t,r){return e.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=r),this):(this._nodes[t]=arguments.length>1?r:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=n,this._children[t]={},this._children[n][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},i.prototype.node=function(e){return this._nodes[e]},i.prototype.hasNode=function(t){return e.has(this._nodes,t)},i.prototype.removeNode=function(t){var n=this;if(e.has(this._nodes,t)){var r=function(e){n.removeEdge(n._edgeObjs[e])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],e.each(this.children(t),function(e){n.setParent(e)}),delete this._children[t]),e.each(e.keys(this._in[t]),r),delete this._in[t],delete this._preds[t],e.each(e.keys(this._out[t]),r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},i.prototype.setParent=function(t,r){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(e.isUndefined(r))r=n;else{r+=``;for(var i=r;!e.isUndefined(i);i=this.parent(i))if(i===t)throw Error(`Setting `+r+` as parent of `+t+` would create a cycle`);this.setNode(r)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=r,this._children[r][t]=!0,this},i.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},i.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==n)return t}},i.prototype.children=function(t){if(e.isUndefined(t)&&(t=n),this._isCompound){var r=this._children[t];if(r)return e.keys(r)}else if(t===n)return this.nodes();else if(this.hasNode(t))return[]},i.prototype.predecessors=function(t){var n=this._preds[t];if(n)return e.keys(n)},i.prototype.successors=function(t){var n=this._sucs[t];if(n)return e.keys(n)},i.prototype.neighbors=function(t){var n=this.predecessors(t);if(n)return e.union(n,this.successors(t))},i.prototype.isLeaf=function(e){return(this.isDirected()?this.successors(e):this.neighbors(e)).length===0},i.prototype.filterNodes=function(t){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var r=this;e.each(this._nodes,function(e,r){t(r)&&n.setNode(r,e)}),e.each(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,r.edge(e))});var i={};function a(e){var t=r.parent(e);return t===void 0||n.hasNode(t)?(i[e]=t,t):t in i?i[t]:a(t)}return this._isCompound&&e.each(n.nodes(),function(e){n.setParent(e,a(e))}),n},i.prototype.setDefaultEdgeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultEdgeLabelFn=t,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return e.values(this._edgeObjs)},i.prototype.setPath=function(t,n){var r=this,i=arguments;return e.reduce(t,function(e,t){return i.length>1?r.setEdge(e,t,n):r.setEdge(e,t),t}),this},i.prototype.setEdge=function(){var t,n,r,i,o=!1,l=arguments[0];typeof l==`object`&&l&&`v`in l?(t=l.v,n=l.w,r=l.name,arguments.length===2&&(i=arguments[1],o=!0)):(t=l,n=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),t=``+t,n=``+n,e.isUndefined(r)||(r=``+r);var u=s(this._isDirected,t,n,r);if(e.has(this._edgeLabels,u))return o&&(this._edgeLabels[u]=i),this;if(!e.isUndefined(r)&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(t),this.setNode(n),this._edgeLabels[u]=o?i:this._defaultEdgeLabelFn(t,n,r);var d=c(this._isDirected,t,n,r);return t=d.v,n=d.w,Object.freeze(d),this._edgeObjs[u]=d,a(this._preds[n],t),a(this._sucs[t],n),this._in[n][u]=d,this._out[t][u]=d,this._edgeCount++,this},i.prototype.edge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return this._edgeLabels[r]},i.prototype.hasEdge=function(t,n,r){var i=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,t,n,r);return e.has(this._edgeLabels,i)},i.prototype.removeEdge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],o(this._preds[t],e),o(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},i.prototype.inEdges=function(t,n){var r=this._in[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.v===n}):i}},i.prototype.outEdges=function(t,n){var r=this._out[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.w===n}):i}},i.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))};function a(e,t){e[t]?e[t]++:e[t]=1}function o(e,t){--e[t]||delete e[t]}function s(n,i,a,o){var s=``+i,c=``+a;if(!n&&s>c){var l=s;s=c,c=l}return s+r+c+r+(e.isUndefined(o)?t:o)}function c(e,t,n,r){var i=``+t,a=``+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function l(e,t){return s(e,t.v,t.w,t.name)}return wf}var Df,Of;function kf(){return Of?Df:(Of=1,Df=`2.1.8`,Df)}var Af,jf;function Mf(){return jf?Af:(jf=1,Af={Graph:Ef(),version:kf()},Af)}var Nf,Pf;function Ff(){if(Pf)return Nf;Pf=1;var e=X(),t=Ef();Nf={write:n,read:a};function n(t){var n={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:r(t),edges:i(t)};return e.isUndefined(t.graph())||(n.value=e.clone(t.graph())),n}function r(t){return e.map(t.nodes(),function(n){var r=t.node(n),i=t.parent(n),a={v:n};return e.isUndefined(r)||(a.value=r),e.isUndefined(i)||(a.parent=i),a})}function i(t){return e.map(t.edges(),function(n){var r=t.edge(n),i={v:n.v,w:n.w};return e.isUndefined(n.name)||(i.name=n.name),e.isUndefined(r)||(i.value=r),i})}function a(n){var r=new t(n.options).setGraph(n.value);return e.each(n.nodes,function(e){r.setNode(e.v,e.value),e.parent&&r.setParent(e.v,e.parent)}),e.each(n.edges,function(e){r.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),r}return Nf}var If,Lf;function Rf(){if(Lf)return If;Lf=1;var e=X();If=t;function t(t){var n={},r=[],i;function a(r){e.has(n,r)||(n[r]=!0,i.push(r),e.each(t.successors(r),a),e.each(t.predecessors(r),a))}return e.each(t.nodes(),function(e){i=[],a(e),i.length&&r.push(i)}),r}return If}var zf,Bf;function Vf(){if(Bf)return zf;Bf=1;var e=X();zf=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(t){return e.has(this._keyIndices,t)},t.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority},t.prototype.min=function(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key},t.prototype.add=function(t,n){var r=this._keyIndices;if(t=String(t),!e.has(r,t)){var i=this._arr,a=i.length;return r[t]=a,i.push({key:t,priority:n}),this._decrease(a),!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,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error(`New priority is greater than current priority. Key: `+e+` Old: `+this._arr[n].priority+` New: `+t);this._arr[n].priority=t,this._decrease(n)},t.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))},t.prototype._decrease=function(e){for(var t=this._arr,n=t[e].priority,r;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r},t.prototype._swap=function(e,t){var n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t},zf}var Hf,Uf;function Wf(){if(Uf)return Hf;Uf=1;var e=X(),t=Vf();Hf=r;var n=e.constant(1);function r(e,t,r,a){return i(e,String(t),r||n,a||function(t){return e.outEdges(t)})}function i(e,n,r,i){var a={},o=new t,s,c,l=function(e){var t=e.v===s?e.w:e.v,n=a[t],i=r(e),l=c.distance+i;if(i<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+i);l<n.distance&&(n.distance=l,n.predecessor=s,o.decrease(t,l))};for(e.nodes().forEach(function(e){var t=e===n?0:1/0;a[e]={distance:t},o.add(e,t)});o.size()>0&&(s=o.removeMin(),c=a[s],c.distance!==1/0);)i(s).forEach(l);return a}return Hf}var Gf,Kf;function qf(){if(Kf)return Gf;Kf=1;var e=Wf(),t=X();Gf=n;function n(n,r,i){return t.transform(n.nodes(),function(t,a){t[a]=e(n,a,r,i)},{})}return Gf}var Jf,Yf;function Xf(){if(Yf)return Jf;Yf=1;var e=X();Jf=t;function t(t){var n=0,r=[],i={},a=[];function o(s){var c=i[s]={onStack:!0,lowlink:n,index:n++};if(r.push(s),t.successors(s).forEach(function(t){e.has(i,t)?i[t].onStack&&(c.lowlink=Math.min(c.lowlink,i[t].index)):(o(t),c.lowlink=Math.min(c.lowlink,i[t].lowlink))}),c.lowlink===c.index){var l=[],u;do u=r.pop(),i[u].onStack=!1,l.push(u);while(s!==u);a.push(l)}}return t.nodes().forEach(function(t){e.has(i,t)||o(t)}),a}return Jf}var Zf,Qf;function $f(){if(Qf)return Zf;Qf=1;var e=X(),t=Xf();Zf=n;function n(n){return e.filter(t(n),function(e){return e.length>1||e.length===1&&n.hasEdge(e[0],e[0])})}return Zf}var ep,tp;function np(){if(tp)return ep;tp=1;var e=X();ep=n;var t=e.constant(1);function n(e,n,i){return r(e,n||t,i||function(t){return e.outEdges(t)})}function r(e,t,n){var r={},i=e.nodes();return i.forEach(function(e){r[e]={},r[e][e]={distance:0},i.forEach(function(t){e!==t&&(r[e][t]={distance:1/0})}),n(e).forEach(function(n){var i=n.v===e?n.w:n.v,a=t(n);r[e][i]={distance:a,predecessor:e}})}),i.forEach(function(e){var t=r[e];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[e],i=t[n],o=a[n],s=r.distance+i.distance;s<o.distance&&(o.distance=s,o.predecessor=i.predecessor)})})}),r}return ep}var rp,ip;function ap(){if(ip)return rp;ip=1;var e=X();rp=t,t.CycleException=n;function t(t){var r={},i={},a=[];function o(s){if(e.has(i,s))throw new n;e.has(r,s)||(i[s]=!0,r[s]=!0,e.each(t.predecessors(s),o),delete i[s],a.push(s))}if(e.each(t.sinks(),o),e.size(r)!==t.nodeCount())throw new n;return a}function n(){}return n.prototype=Error(),rp}var op,sp;function cp(){if(sp)return op;sp=1;var e=ap();op=t;function t(t){try{e(t)}catch(t){if(t instanceof e.CycleException)return!1;throw t}return!0}return op}var lp,up;function dp(){if(up)return lp;up=1;var e=X();lp=t;function t(t,r,i){e.isArray(r)||(r=[r]);var a=(t.isDirected()?t.successors:t.neighbors).bind(t),o=[],s={};return e.each(r,function(e){if(!t.hasNode(e))throw Error(`Graph does not have node: `+e);n(t,e,i===`post`,s,a,o)}),o}function n(t,r,i,a,o,s){e.has(a,r)||(a[r]=!0,i||s.push(r),e.each(o(r),function(e){n(t,e,i,a,o,s)}),i&&s.push(r))}return lp}var fp,pp;function mp(){if(pp)return fp;pp=1;var e=dp();fp=t;function t(t,n){return e(t,n,`post`)}return fp}var hp,gp;function _p(){if(gp)return hp;gp=1;var e=dp();hp=t;function t(t,n){return e(t,n,`pre`)}return hp}var vp,yp;function bp(){if(yp)return vp;yp=1;var e=X(),t=Ef(),n=Vf();vp=r;function r(r,i){var a=new t,o={},s=new n,c;function l(e){var t=e.v===c?e.w:e.v,n=s.priority(t);if(n!==void 0){var r=i(e);r<n&&(o[t]=c,s.decrease(t,r))}}if(r.nodeCount()===0)return a;e.each(r.nodes(),function(e){s.add(e,1/0),a.setNode(e)}),s.decrease(r.nodes()[0],0);for(var u=!1;s.size()>0;){if(c=s.removeMin(),e.has(o,c))a.setEdge(c,o[c]);else if(u)throw Error(`Input graph is not connected: `+r);else u=!0;r.nodeEdges(c).forEach(l)}return a}return vp}var xp,Sp;function Cp(){return Sp?xp:(Sp=1,xp={components:Rf(),dijkstra:Wf(),dijkstraAll:qf(),findCycles:$f(),floydWarshall:np(),isAcyclic:cp(),postorder:mp(),preorder:_p(),prim:bp(),tarjan:Xf(),topsort:ap()},xp)}var wp,Tp;function Ep(){if(Tp)return wp;Tp=1;var e=Mf();return wp={Graph:e.Graph,json:Ff(),alg:Cp(),version:e.version},wp}var Dp,Op;function Z(){if(Op)return Dp;Op=1;var e;if(typeof Lt==`function`)try{e=Ep()}catch{}return e||=window.graphlib,Dp=e,Dp}var kp,Ap;function jp(){if(Ap)return kp;Ap=1;var e=As(),t=1,n=4;function r(r){return e(r,t|n)}return kp=r,kp}var Mp,Np;function Pp(){if(Np)return Mp;Np=1;var e=Ut(),t=q(),n=Ui(),r=W();function i(i,a,o){if(!r(o))return!1;var s=typeof a;return(s==`number`?t(o)&&n(a,o.length):s==`string`&&a in o)?e(o[a],i):!1}return Mp=i,Mp}var Fp,Ip;function Lp(){if(Ip)return Fp;Ip=1;var e=Fd(),t=Ut(),n=Pp(),r=Fa(),i=Object.prototype,a=i.hasOwnProperty;return Fp=e(function(e,o){e=Object(e);var s=-1,c=o.length,l=c>2?o[2]:void 0;for(l&&n(o[0],o[1],l)&&(c=1);++s<c;)for(var u=o[s],d=r(u),f=-1,p=d.length;++f<p;){var m=d[f],h=e[m];(h===void 0||t(h,i[m])&&!a.call(e,m))&&(e[m]=u[m])}return e}),Fp}var Rp,zp;function Bp(){if(zp)return Rp;zp=1;var e=Y(),t=q(),n=J();function r(r){return function(i,a,o){var s=Object(i);if(!t(i)){var c=e(a,3);i=n(i),a=function(e){return c(s[e],e,s)}}var l=r(i,a,o);return l>-1?s[c?i[l]:l]:void 0}}return Rp=r,Rp}var Vp,Hp;function Up(){if(Hp)return Vp;Hp=1;var e=/\s/;function t(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}return Vp=t,Vp}var Wp,Gp;function Kp(){if(Gp)return Wp;Gp=1;var e=Up(),t=/^\s+/;function n(n){return n&&n.slice(0,e(n)+1).replace(t,``)}return Wp=n,Wp}var qp,Jp;function Yp(){if(Jp)return qp;Jp=1;var e=Kp(),t=W(),n=fl(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt;function c(c){if(typeof c==`number`)return c;if(n(c))return r;if(t(c)){var l=typeof c.valueOf==`function`?c.valueOf():c;c=t(l)?l+``:l}if(typeof c!=`string`)return c===0?c:+c;c=e(c);var u=a.test(c);return u||o.test(c)?s(c.slice(2),u?2:8):i.test(c)?r:+c}return qp=c,qp}var Xp,Zp;function Qp(){if(Zp)return Xp;Zp=1;var e=Yp(),t=1/0,n=17976931348623157e292;function r(r){return r?(r=e(r),r===t||r===-t?(r<0?-1:1)*n:r===r?r:0):r===0?r:0}return Xp=r,Xp}var $p,em;function tm(){if(em)return $p;em=1;var e=Qp();function t(t){var n=e(t),r=n%1;return n===n?r?n-r:n:0}return $p=t,$p}var nm,rm;function im(){if(rm)return nm;rm=1;var e=Rd(),t=Y(),n=tm(),r=Math.max;function i(i,a,o){var s=i==null?0:i.length;if(!s)return-1;var c=o==null?0:n(o);return c<0&&(c=r(s+c,0)),e(i,t(a,3),c)}return nm=i,nm}var am,om;function sm(){return om?am:(om=1,am=Bp()(im()),am)}var cm,lm;function um(){if(lm)return cm;lm=1;var e=_d();function t(t){return t!=null&&t.length?e(t,1):[]}return cm=t,cm}var dm,fm;function pm(){if(fm)return dm;fm=1;var e=Hs(),t=rc(),n=Fa();function r(r,i){return r==null?r:e(r,t(i),n)}return dm=r,dm}var mm,hm;function gm(){if(hm)return mm;hm=1;function e(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}return mm=e,mm}var _m,vm;function ym(){if(vm)return _m;vm=1;var e=hi(),t=Gs(),n=Y();function r(r,i){var a={};return i=n(i,3),t(r,function(t,n,r){e(a,n,i(t,n,r))}),a}return _m=r,_m}var bm,xm;function Sm(){if(xm)return bm;xm=1;var e=fl();function t(t,n,r){for(var i=-1,a=t.length;++i<a;){var o=t[i],s=n(o);if(s!=null&&(c===void 0?s===s&&!e(s):r(s,c)))var c=s,l=o}return l}return bm=t,bm}var Cm,wm;function Tm(){if(wm)return Cm;wm=1;function e(e,t){return e>t}return Cm=e,Cm}var Em,Dm;function Om(){if(Dm)return Em;Dm=1;var e=Sm(),t=Tm(),n=ec();function r(r){return r&&r.length?e(r,n,t):void 0}return Em=r,Em}var km,Am;function jm(){if(Am)return km;Am=1;var e=hi(),t=Ut();function n(n,r,i){(i!==void 0&&!t(n[r],i)||i===void 0&&!(r in n))&&e(n,r,i)}return km=n,km}var Mm,Nm;function Pm(){if(Nm)return Mm;Nm=1;var e=Ln(),t=co(),n=G(),r=`[object Object]`,i=Function.prototype,a=Object.prototype,o=i.toString,s=a.hasOwnProperty,c=o.call(Object);function l(i){if(!n(i)||e(i)!=r)return!1;var a=t(i);if(a===null)return!0;var l=s.call(a,`constructor`)&&a.constructor;return typeof l==`function`&&l instanceof l&&o.call(l)==c}return Mm=l,Mm}var Fm,Im;function Lm(){if(Im)return Fm;Im=1;function e(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}return Fm=e,Fm}var Rm,zm;function Bm(){if(zm)return Rm;zm=1;var e=xi(),t=Fa();function n(n){return e(n,t(n))}return Rm=n,Rm}var Vm,Hm;function Um(){if(Hm)return Vm;Hm=1;var e=jm(),t=Va(),n=os(),r=Wa(),i=hs(),a=Mi(),o=K(),s=ff(),c=Bi(),l=Hn(),u=W(),d=Pm(),f=ia(),p=Lm(),m=Bm();function h(h,g,_,v,y,b,x){var S=p(h,_),C=p(g,_),w=x.get(C);if(w){e(h,_,w);return}var T=b?b(S,C,_+``,h,g,x):void 0,E=T===void 0;if(E){var D=o(C),O=!D&&c(C),k=!D&&!O&&f(C);T=C,D||O||k?o(S)?T=S:s(S)?T=r(S):O?(E=!1,T=t(C,!0)):k?(E=!1,T=n(C,!0)):T=[]:d(C)||a(C)?(T=S,a(S)?T=m(S):(!u(S)||l(S))&&(T=i(C))):E=!1}E&&(x.set(C,T),y(T,C,v,b,x),x.delete(C)),e(h,_,T)}return Vm=h,Vm}var Wm,Gm;function Km(){if(Gm)return Wm;Gm=1;var e=oi(),t=jm(),n=Hs(),r=Um(),i=W(),a=Fa(),o=Lm();function s(c,l,u,d,f){c!==l&&n(l,function(n,a){if(f||=new e,i(n))r(c,l,a,u,s,d,f);else{var p=d?d(o(c,a),n,a+``,c,l,f):void 0;p===void 0&&(p=n),t(c,a,p)}},a)}return Wm=s,Wm}var qm,Jm;function Ym(){if(Jm)return qm;Jm=1;var e=Fd(),t=Pp();function n(n){return e(function(e,r){var i=-1,a=r.length,o=a>1?r[a-1]:void 0,s=a>2?r[2]:void 0;for(o=n.length>3&&typeof o==`function`?(a--,o):void 0,s&&t(r[0],r[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++i<a;){var c=r[i];c&&n(e,c,i,o)}return e})}return qm=n,qm}var Xm,Zm;function Qm(){if(Zm)return Xm;Zm=1;var e=Km();return Xm=Ym()(function(t,n,r){e(t,n,r)}),Xm}var $m,eh;function th(){if(eh)return $m;eh=1;function e(e,t){return e<t}return $m=e,$m}var nh,rh;function ih(){if(rh)return nh;rh=1;var e=Sm(),t=th(),n=ec();function r(r){return r&&r.length?e(r,n,t):void 0}return nh=r,nh}var ah,oh;function sh(){if(oh)return ah;oh=1;var e=Sm(),t=Y(),n=th();function r(r,i){return r&&r.length?e(r,t(i,2),n):void 0}return ah=r,ah}var ch,lh;function uh(){if(lh)return ch;lh=1;var e=U();return ch=function(){return e.Date.now()},ch}var dh,fh;function ph(){if(fh)return dh;fh=1;var e=vi(),t=Il(),n=Ui(),r=W(),i=zl();function a(a,o,s,c){if(!r(a))return a;o=t(o,a);for(var l=-1,u=o.length,d=u-1,f=a;f!=null&&++l<u;){var p=i(o[l]),m=s;if(p===`__proto__`||p===`constructor`||p===`prototype`)return a;if(l!=d){var h=f[p];m=c?c(h,p,f):void 0,m===void 0&&(m=r(h)?h:n(o[l+1])?[]:{})}e(f,p,m),f=f[p]}return a}return dh=a,dh}var mh,hh;function gh(){if(hh)return mh;hh=1;var e=Hl(),t=ph(),n=Il();function r(r,i,a){for(var o=-1,s=i.length,c={};++o<s;){var l=i[o],u=e(r,l);a(u,l)&&t(c,n(l,r),u)}return c}return mh=r,mh}var _h,vh;function yh(){if(vh)return _h;vh=1;var e=gh(),t=eu();function n(n,r){return e(n,r,function(e,r){return t(n,r)})}return _h=n,_h}var bh,xh;function Sh(){if(xh)return bh;xh=1;var e=um(),t=Cd(),n=Md();function r(r){return n(t(r,void 0,e),r+``)}return bh=r,bh}var Ch,wh;function Th(){if(wh)return Ch;wh=1;var e=yh();return Ch=Sh()(function(t,n){return t==null?{}:e(t,n)}),Ch}var Eh,Dh;function Oh(){if(Dh)return Eh;Dh=1;var e=Math.ceil,t=Math.max;function n(n,r,i,a){for(var o=-1,s=t(e((r-n)/(i||1)),0),c=Array(s);s--;)c[a?s:++o]=n,n+=i;return c}return Eh=n,Eh}var kh,Ah;function jh(){if(Ah)return kh;Ah=1;var e=Oh(),t=Pp(),n=Qp();function r(r){return function(i,a,o){return o&&typeof o!=`number`&&t(i,a,o)&&(a=o=void 0),i=n(i),a===void 0?(a=i,i=0):a=n(a),o=o===void 0?i<a?1:-1:n(o),e(i,a,o,r)}}return kh=r,kh}var Mh,Nh;function Ph(){return Nh?Mh:(Nh=1,Mh=jh()(),Mh)}var Fh,Ih;function Lh(){if(Ih)return Fh;Ih=1;function e(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}return Fh=e,Fh}var Rh,zh;function Bh(){if(zh)return Rh;zh=1;var e=fl();function t(t,n){if(t!==n){var r=t!==void 0,i=t===null,a=t===t,o=e(t),s=n!==void 0,c=n===null,l=n===n,u=e(n);if(!c&&!u&&!o&&t>n||o&&s&&l&&!c&&!u||i&&s&&l||!r&&l||!a)return 1;if(!i&&!o&&!u&&t<n||u&&r&&a&&!i&&!o||c&&r&&a||!s&&a||!l)return-1}return 0}return Rh=t,Rh}var Vh,Hh;function Uh(){if(Hh)return Vh;Hh=1;var e=Bh();function t(t,n,r){for(var i=-1,a=t.criteria,o=n.criteria,s=a.length,c=r.length;++i<s;){var l=e(a[i],o[i]);if(l)return i>=c?l:l*(r[i]==`desc`?-1:1)}return t.index-n.index}return Vh=t,Vh}var Wh,Gh;function Kh(){if(Gh)return Wh;Gh=1;var e=Dl(),t=Hl(),n=Y(),r=Mu(),i=Lh(),a=Qi(),o=Uh(),s=ec(),c=K();function l(l,u,d){u=u.length?e(u,function(e){return c(e)?function(n){return t(n,e.length===1?e[0]:e)}:e}):[s];var f=-1;return u=e(u,a(n)),i(r(l,function(t,n,r){return{criteria:e(u,function(e){return e(t)}),index:++f,value:t}}),function(e,t){return o(e,t,d)})}return Wh=l,Wh}var qh,Jh;function Yh(){if(Jh)return qh;Jh=1;var e=_d(),t=Kh(),n=Fd(),r=Pp();return qh=n(function(n,i){if(n==null)return[];var a=i.length;return a>1&&r(n,i[0],i[1])?i=[]:a>2&&r(i[0],i[1],i[2])&&(i=[i[0]]),t(n,e(i,1),[])}),qh}var Xh,Zh;function Qh(){if(Zh)return Xh;Zh=1;var e=Nl(),t=0;function n(n){var r=++t;return e(n)+r}return Xh=n,Xh}var $h,eg;function tg(){if(eg)return $h;eg=1;function e(e,t,n){for(var r=-1,i=e.length,a=t.length,o={};++r<i;){var s=r<a?t[r]:void 0;n(o,e[r],s)}return o}return $h=e,$h}var ng,rg;function ig(){if(rg)return ng;rg=1;var e=vi(),t=tg();function n(n,r){return t(n||[],r||[],e)}return ng=n,ng}var ag,og;function Q(){if(og)return ag;og=1;var e;if(typeof Lt==`function`)try{e={cloneDeep:jp(),constant:Is(),defaults:Lp(),each:lc(),filter:_u(),find:sm(),flatten:um(),forEach:oc(),forIn:pm(),has:Cu(),isUndefined:ku(),last:gm(),map:Fu(),mapValues:ym(),max:Om(),merge:Qm(),min:ih(),minBy:sh(),now:uh(),pick:Th(),range:Ph(),reduce:Wu(),sortBy:Yh(),uniqueId:Qh(),values:xf(),zipObject:ig()}}catch{}return e||=window._,ag=e,ag}var sg,cg;function lg(){if(cg)return sg;cg=1,sg=e;function e(){var e={};e._next=e._prev=e,this._sentinel=e}e.prototype.dequeue=function(){var e=this._sentinel,n=e._prev;if(n!==e)return t(n),n},e.prototype.enqueue=function(e){var n=this._sentinel;e._prev&&e._next&&t(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n},e.prototype.toString=function(){for(var e=[],t=this._sentinel,r=t._prev;r!==t;)e.push(JSON.stringify(r,n)),r=r._prev;return`[`+e.join(`, `)+`]`};function t(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function n(e,t){if(e!==`_next`&&e!==`_prev`)return t}return sg}var ug,dg;function fg(){if(dg)return ug;dg=1;var e=Q(),t=Z().Graph,n=lg();ug=i;var r=e.constant(1);function i(t,n){if(t.nodeCount()<=1)return[];var i=s(t,n||r),o=a(i.graph,i.buckets,i.zeroIdx);return e.flatten(e.map(o,function(e){return t.outEdges(e.v,e.w)}),!0)}function a(e,t,n){for(var r=[],i=t[t.length-1],a=t[0],s;e.nodeCount();){for(;s=a.dequeue();)o(e,t,n,s);for(;s=i.dequeue();)o(e,t,n,s);if(e.nodeCount()){for(var c=t.length-2;c>0;--c)if(s=t[c].dequeue(),s){r=r.concat(o(e,t,n,s,!0));break}}}return r}function o(t,n,r,i,a){var o=a?[]:void 0;return e.forEach(t.inEdges(i.v),function(e){var i=t.edge(e),s=t.node(e.v);a&&o.push({v:e.v,w:e.w}),s.out-=i,c(n,r,s)}),e.forEach(t.outEdges(i.v),function(e){var i=t.edge(e),a=e.w,o=t.node(a);o.in-=i,c(n,r,o)}),t.removeNode(i.v),o}function s(r,i){var a=new t,o=0,s=0;e.forEach(r.nodes(),function(e){a.setNode(e,{v:e,in:0,out:0})}),e.forEach(r.edges(),function(e){var t=a.edge(e.v,e.w)||0,n=i(e),r=t+n;a.setEdge(e.v,e.w,r),s=Math.max(s,a.node(e.v).out+=n),o=Math.max(o,a.node(e.w).in+=n)});var l=e.range(s+o+3).map(function(){return new n}),u=o+1;return e.forEach(a.nodes(),function(e){c(l,u,a.node(e))}),{graph:a,buckets:l,zeroIdx:u}}function c(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}return ug}var pg,mg;function hg(){if(mg)return pg;mg=1;var e=Q(),t=fg();pg={run:n,undo:i};function n(n){var i=n.graph().acyclicer===`greedy`?t(n,a(n)):r(n);e.forEach(i,function(t){var r=n.edge(t);n.removeEdge(t),r.forwardName=t.name,r.reversed=!0,n.setEdge(t.w,t.v,r,e.uniqueId(`rev`))});function a(e){return function(t){return e.edge(t).weight}}}function r(t){var n=[],r={},i={};function a(o){e.has(i,o)||(i[o]=!0,r[o]=!0,e.forEach(t.outEdges(o),function(t){e.has(r,t.w)?n.push(t):a(t.w)}),delete r[o])}return e.forEach(t.nodes(),a),n}function i(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}})}return pg}var gg,_g;function $(){if(_g)return gg;_g=1;var e=Q(),t=Z().Graph;gg={addDummyNode:n,simplify:r,asNonCompoundGraph:i,successorWeights:a,predecessorWeights:o,intersectRect:s,buildLayerMatrix:c,normalizeRanks:l,removeEmptyRanks:u,addBorderNode:d,maxRank:f,partition:p,time:m,notime:h};function n(t,n,r,i){var a;do a=e.uniqueId(i);while(t.hasNode(a));return r.dummy=n,t.setNode(a,r),a}function r(n){var r=new t().setGraph(n.graph());return e.forEach(n.nodes(),function(e){r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){var t=r.edge(e.v,e.w)||{weight:0,minlen:1},i=n.edge(e);r.setEdge(e.v,e.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),r}function i(n){var r=new t({multigraph:n.isMultigraph()}).setGraph(n.graph());return e.forEach(n.nodes(),function(e){n.children(e).length||r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){r.setEdge(e,n.edge(e))}),r}function a(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.outEdges(n),function(e){r[e.w]=(r[e.w]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function o(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.inEdges(n),function(e){r[e.v]=(r[e.v]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function s(e,t){var n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);var c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function c(t){var n=e.map(e.range(f(t)+1),function(){return[]});return e.forEach(t.nodes(),function(r){var i=t.node(r),a=i.rank;e.isUndefined(a)||(n[a][i.order]=r)}),n}function l(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank}));e.forEach(t.nodes(),function(r){var i=t.node(r);e.has(i,`rank`)&&(i.rank-=n)})}function u(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank})),r=[];e.forEach(t.nodes(),function(e){var i=t.node(e).rank-n;r[i]||(r[i]=[]),r[i].push(e)});var i=0,a=t.graph().nodeRankFactor;e.forEach(r,function(n,r){e.isUndefined(n)&&r%a!==0?--i:i&&e.forEach(n,function(e){t.node(e).rank+=i})})}function d(e,t,r,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=i),n(e,`border`,a,t)}function f(t){return e.max(e.map(t.nodes(),function(n){var r=t.node(n).rank;if(!e.isUndefined(r))return r}))}function p(t,n){var r={lhs:[],rhs:[]};return e.forEach(t,function(e){n(e)?r.lhs.push(e):r.rhs.push(e)}),r}function m(t,n){var r=e.now();try{return n()}finally{console.log(t+` time: `+(e.now()-r)+`ms`)}}function h(e,t){return t()}return gg}var vg,yg;function bg(){if(yg)return vg;yg=1;var e=Q(),t=$();vg={run:n,undo:i};function n(t){t.graph().dummyChains=[],e.forEach(t.edges(),function(e){r(t,e)})}function r(e,n){var r=n.v,i=e.node(r).rank,a=n.w,o=e.node(a).rank,s=n.name,c=e.edge(n),l=c.labelRank;if(o!==i+1){e.removeEdge(n);var u,d,f;for(f=0,++i;i<o;++f,++i)c.points=[],d={width:0,height:0,edgeLabel:c,edgeObj:n,rank:i},u=t.addDummyNode(e,`edge`,d,`_d`),i===l&&(d.width=c.width,d.height=c.height,d.dummy=`edge-label`,d.labelpos=c.labelpos),e.setEdge(r,u,{weight:c.weight},s),f===0&&e.graph().dummyChains.push(u),r=u;e.setEdge(r,a,{weight:c.weight},s)}}function i(t){e.forEach(t.graph().dummyChains,function(e){var n=t.node(e),r=n.edgeLabel,i;for(t.setEdge(n.edgeObj,r);n.dummy;)i=t.successors(e)[0],t.removeNode(e),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),e=i,n=t.node(e)})}return vg}var xg,Sg;function Cg(){if(Sg)return xg;Sg=1;var e=Q();xg={longestPath:t,slack:n};function t(t){var n={};function r(i){var a=t.node(i);if(e.has(n,i))return a.rank;n[i]=!0;var o=e.min(e.map(t.outEdges(i),function(e){return r(e.w)-t.edge(e).minlen}));return(o===1/0||o==null)&&(o=0),a.rank=o}e.forEach(t.sources(),r)}function n(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}return xg}var wg,Tg;function Eg(){if(Tg)return wg;Tg=1;var e=Q(),t=Z().Graph,n=Cg().slack;wg=r;function r(e){var r=new t({directed:!1}),s=e.nodes()[0],c=e.nodeCount();r.setNode(s,{});for(var l,u;i(r,e)<c;)l=a(r,e),u=r.hasNode(l.v)?n(e,l):-n(e,l),o(r,e,u);return r}function i(t,r){function i(a){e.forEach(r.nodeEdges(a),function(e){var o=e.v,s=a===o?e.w:o;!t.hasNode(s)&&!n(r,e)&&(t.setNode(s,{}),t.setEdge(a,s,{}),i(s))})}return e.forEach(t.nodes(),i),t.nodeCount()}function a(t,r){return e.minBy(r.edges(),function(e){if(t.hasNode(e.v)!==t.hasNode(e.w))return n(r,e)})}function o(t,n,r){e.forEach(t.nodes(),function(e){n.node(e).rank+=r})}return wg}var Dg,Og;function kg(){if(Og)return Dg;Og=1;var e=Q(),t=Eg(),n=Cg().slack,r=Cg().longestPath,i=Z().alg.preorder,a=Z().alg.postorder,o=$().simplify;Dg=s,s.initLowLimValues=d,s.initCutValues=c,s.calcCutValue=u,s.leaveEdge=p,s.enterEdge=m,s.exchangeEdges=h;function s(e){e=o(e),r(e);var n=t(e);d(n),c(n,e);for(var i,a;i=p(n);)a=m(n,e,i),h(n,e,i,a)}function c(t,n){var r=a(t,t.nodes());r=r.slice(0,r.length-1),e.forEach(r,function(e){l(t,n,e)})}function l(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=u(e,t,n)}function u(t,n,r){var i=t.node(r).parent,a=!0,o=n.edge(r,i),s=0;return o||=(a=!1,n.edge(i,r)),s=o.weight,e.forEach(n.nodeEdges(r),function(e){var o=e.v===r,c=o?e.w:e.v;if(c!==i){var l=o===a,u=n.edge(e).weight;if(s+=l?u:-u,_(t,r,c)){var d=t.edge(r,c).cutvalue;s+=l?-d:d}}}),s}function d(e,t){arguments.length<2&&(t=e.nodes()[0]),f(e,{},1,t)}function f(t,n,r,i,a){var o=r,s=t.node(i);return n[i]=!0,e.forEach(t.neighbors(i),function(a){e.has(n,a)||(r=f(t,n,r,a,i))}),s.low=o,s.lim=r++,a?s.parent=a:delete s.parent,r}function p(t){return e.find(t.edges(),function(e){return t.edge(e).cutvalue<0})}function m(t,r,i){var a=i.v,o=i.w;r.hasEdge(a,o)||(a=i.w,o=i.v);var s=t.node(a),c=t.node(o),l=s,u=!1;s.lim>c.lim&&(l=c,u=!0);var d=e.filter(r.edges(),function(e){return u===v(t,t.node(e.v),l)&&u!==v(t,t.node(e.w),l)});return e.minBy(d,function(e){return n(r,e)})}function h(e,t,n,r){var i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),d(e),c(e,t),g(e,t)}function g(t,n){var r=i(t,e.find(t.nodes(),function(e){return!n.node(e).parent}));r=r.slice(1),e.forEach(r,function(e){var r=t.node(e).parent,i=n.edge(e,r),a=!1;i||(i=n.edge(r,e),a=!0),n.node(e).rank=n.node(r).rank+(a?i.minlen:-i.minlen)})}function _(e,t,n){return e.hasEdge(t,n)}function v(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}return Dg}var Ag,jg;function Mg(){if(jg)return Ag;jg=1;var e=Cg().longestPath,t=Eg(),n=kg();Ag=r;function r(e){switch(e.graph().ranker){case`network-simplex`:o(e);break;case`tight-tree`:a(e);break;case`longest-path`:i(e);break;default:o(e)}}var i=e;function a(n){e(n),t(n)}function o(e){n(e)}return Ag}var Ng,Pg;function Fg(){if(Pg)return Ng;Pg=1;var e=Q();Ng=t;function t(t){var i=r(t);e.forEach(t.graph().dummyChains,function(e){for(var r=t.node(e),a=r.edgeObj,o=n(t,i,a.v,a.w),s=o.path,c=o.lca,l=0,u=s[l],d=!0;e!==a.w;){if(r=t.node(e),d){for(;(u=s[l])!==c&&t.node(u).maxRank<r.rank;)l++;u===c&&(d=!1)}if(!d){for(;l<s.length-1&&t.node(u=s[l+1]).minRank<=r.rank;)l++;u=s[l]}t.setParent(e,u),e=t.successors(e)[0]}})}function n(e,t,n,r){var i=[],a=[],o=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),c=n,l;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||s>t[c].lim));for(l=c,c=r;(c=e.parent(c))!==l;)a.push(c);return{path:i.concat(a.reverse()),lca:l}}function r(t){var n={},r=0;function i(a){var o=r;e.forEach(t.children(a),i),n[a]={low:o,lim:r++}}return e.forEach(t.children(),i),n}return Ng}var Ig,Lg;function Rg(){if(Lg)return Ig;Lg=1;var e=Q(),t=$();Ig={run:n,cleanup:o};function n(n){var o=t.addDummyNode(n,`root`,{},`_root`),s=i(n),c=e.max(e.values(s))-1,l=2*c+1;n.graph().nestingRoot=o,e.forEach(n.edges(),function(e){n.edge(e).minlen*=l});var u=a(n)+1;e.forEach(n.children(),function(e){r(n,o,l,u,c,s,e)}),n.graph().nodeRankFactor=l}function r(n,i,a,o,s,c,l){var u=n.children(l);if(!u.length){l!==i&&n.setEdge(i,l,{weight:0,minlen:a});return}var d=t.addBorderNode(n,`_bt`),f=t.addBorderNode(n,`_bb`),p=n.node(l);n.setParent(d,l),p.borderTop=d,n.setParent(f,l),p.borderBottom=f,e.forEach(u,function(e){r(n,i,a,o,s,c,e);var t=n.node(e),u=t.borderTop?t.borderTop:e,p=t.borderBottom?t.borderBottom:e,m=t.borderTop?o:2*o,h=u===p?s-c[l]+1:1;n.setEdge(d,u,{weight:m,minlen:h,nestingEdge:!0}),n.setEdge(p,f,{weight:m,minlen:h,nestingEdge:!0})}),n.parent(l)||n.setEdge(i,d,{weight:0,minlen:s+c[l]})}function i(t){var n={};function r(i,a){var o=t.children(i);o&&o.length&&e.forEach(o,function(e){r(e,a+1)}),n[i]=a}return e.forEach(t.children(),function(e){r(e,1)}),n}function a(t){return e.reduce(t.edges(),function(e,n){return e+t.edge(n).weight},0)}function o(t){var n=t.graph();t.removeNode(n.nestingRoot),delete n.nestingRoot,e.forEach(t.edges(),function(e){t.edge(e).nestingEdge&&t.removeEdge(e)})}return Ig}var zg,Bg;function Vg(){if(Bg)return zg;Bg=1;var e=Q(),t=$();zg=n;function n(t){function n(i){var a=t.children(i),o=t.node(i);if(a.length&&e.forEach(a,n),e.has(o,`minRank`)){o.borderLeft=[],o.borderRight=[];for(var s=o.minRank,c=o.maxRank+1;s<c;++s)r(t,`borderLeft`,`_bl`,i,o,s),r(t,`borderRight`,`_br`,i,o,s)}}e.forEach(t.children(),n)}function r(e,n,r,i,a,o){var s={width:0,height:0,rank:o,borderType:n},c=a[n][o-1],l=t.addDummyNode(e,`border`,s,r);a[n][o]=l,e.setParent(l,i),c&&e.setEdge(c,l,{weight:1})}return zg}var Hg,Ug;function Wg(){if(Ug)return Hg;Ug=1;var e=Q();Hg={adjust:t,undo:n};function t(e){var t=e.graph().rankdir.toLowerCase();(t===`lr`||t===`rl`)&&r(e)}function n(e){var t=e.graph().rankdir.toLowerCase();(t===`bt`||t===`rl`)&&a(e),(t===`lr`||t===`rl`)&&(s(e),r(e))}function r(t){e.forEach(t.nodes(),function(e){i(t.node(e))}),e.forEach(t.edges(),function(e){i(t.edge(e))})}function i(e){var t=e.width;e.width=e.height,e.height=t}function a(t){e.forEach(t.nodes(),function(e){o(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,o),e.has(r,`y`)&&o(r)})}function o(e){e.y=-e.y}function s(t){e.forEach(t.nodes(),function(e){c(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,c),e.has(r,`x`)&&c(r)})}function c(e){var t=e.x;e.x=e.y,e.y=t}return Hg}var Gg,Kg;function qg(){if(Kg)return Gg;Kg=1;var e=Q();Gg=t;function t(t){var n={},r=e.filter(t.nodes(),function(e){return!t.children(e).length}),i=e.max(e.map(r,function(e){return t.node(e).rank})),a=e.map(e.range(i+1),function(){return[]});function o(r){e.has(n,r)||(n[r]=!0,a[t.node(r).rank].push(r),e.forEach(t.successors(r),o))}var s=e.sortBy(r,function(e){return t.node(e).rank});return e.forEach(s,o),a}return Gg}var Jg,Yg;function Xg(){if(Yg)return Jg;Yg=1;var e=Q();Jg=t;function t(e,t){for(var r=0,i=1;i<t.length;++i)r+=n(e,t[i-1],t[i]);return r}function n(t,n,r){for(var i=e.zipObject(r,e.map(r,function(e,t){return t})),a=e.flatten(e.map(n,function(n){return e.sortBy(e.map(t.outEdges(n),function(e){return{pos:i[e.w],weight:t.edge(e).weight}}),`pos`)}),!0),o=1;o<r.length;)o<<=1;var s=2*o-1;--o;var c=e.map(Array(s),function(){return 0}),l=0;return e.forEach(a.forEach(function(e){var t=e.pos+o;c[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=c[t+1]),t=t-1>>1,c[t]+=e.weight;l+=e.weight*n})),l}return Jg}var Zg,Qg;function $g(){if(Qg)return Zg;Qg=1;var e=Q();Zg=t;function t(t,n){return e.map(n,function(n){var r=t.inEdges(n);if(r.length){var i=e.reduce(r,function(e,n){var r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:n,barycenter:i.sum/i.weight,weight:i.weight}}return{v:n}})}return Zg}var e_,t_;function n_(){if(t_)return e_;t_=1;var e=Q();e_=t;function t(t,r){var i={};return e.forEach(t,function(t,n){var r=i[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:n};e.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)}),e.forEach(r.edges(),function(t){var n=i[t.v],r=i[t.w];!e.isUndefined(n)&&!e.isUndefined(r)&&(r.indegree++,n.out.push(i[t.w]))}),n(e.filter(i,function(e){return!e.indegree}))}function n(t){var n=[];function i(t){return function(n){n.merged||(e.isUndefined(n.barycenter)||e.isUndefined(t.barycenter)||n.barycenter>=t.barycenter)&&r(t,n)}}function a(e){return function(n){n.in.push(e),--n.indegree===0&&t.push(n)}}for(;t.length;){var o=t.pop();n.push(o),e.forEach(o.in.reverse(),i(o)),e.forEach(o.out,a(o))}return e.map(e.filter(n,function(e){return!e.merged}),function(t){return e.pick(t,[`vs`,`i`,`barycenter`,`weight`])})}function r(e,t){var n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}return e_}var r_,i_;function a_(){if(i_)return r_;i_=1;var e=Q(),t=$();r_=n;function n(n,a){var o=t.partition(n,function(t){return e.has(t,`barycenter`)}),s=o.lhs,c=e.sortBy(o.rhs,function(e){return-e.i}),l=[],u=0,d=0,f=0;s.sort(i(!!a)),f=r(l,c,f),e.forEach(s,function(e){f+=e.vs.length,l.push(e.vs),u+=e.barycenter*e.weight,d+=e.weight,f=r(l,c,f)});var p={vs:e.flatten(l,!0)};return d&&(p.barycenter=u/d,p.weight=d),p}function r(t,n,r){for(var i;n.length&&(i=e.last(n)).i<=r;)n.pop(),t.push(i.vs),r++;return r}function i(e){return function(t,n){return t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}}return r_}var o_,s_;function c_(){if(s_)return o_;s_=1;var e=Q(),t=$g(),n=n_(),r=a_();o_=i;function i(s,c,l,u){var d=s.children(c),f=s.node(c),p=f?f.borderLeft:void 0,m=f?f.borderRight:void 0,h={};p&&(d=e.filter(d,function(e){return e!==p&&e!==m}));var g=t(s,d);e.forEach(g,function(t){if(s.children(t.v).length){var n=i(s,t.v,l,u);h[t.v]=n,e.has(n,`barycenter`)&&o(t,n)}});var _=n(g,l);a(_,h);var v=r(_,u);if(p&&(v.vs=e.flatten([p,v.vs,m],!0),s.predecessors(p).length)){var y=s.node(s.predecessors(p)[0]),b=s.node(s.predecessors(m)[0]);e.has(v,`barycenter`)||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+y.order+b.order)/(v.weight+2),v.weight+=2}return v}function a(t,n){e.forEach(t,function(t){t.vs=e.flatten(t.vs.map(function(e){return n[e]?n[e].vs:e}),!0)})}function o(t,n){e.isUndefined(t.barycenter)?(t.barycenter=n.barycenter,t.weight=n.weight):(t.barycenter=(t.barycenter*t.weight+n.barycenter*n.weight)/(t.weight+n.weight),t.weight+=n.weight)}return o_}var l_,u_;function d_(){if(u_)return l_;u_=1;var e=Q(),t=Z().Graph;l_=n;function n(n,i,a){var o=r(n),s=new t({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(e){return n.node(e)});return e.forEach(n.nodes(),function(t){var r=n.node(t),c=n.parent(t);(r.rank===i||r.minRank<=i&&i<=r.maxRank)&&(s.setNode(t),s.setParent(t,c||o),e.forEach(n[a](t),function(r){var i=r.v===t?r.w:r.v,a=s.edge(i,t),o=e.isUndefined(a)?0:a.weight;s.setEdge(i,t,{weight:n.edge(r).weight+o})}),e.has(r,`minRank`)&&s.setNode(t,{borderLeft:r.borderLeft[i],borderRight:r.borderRight[i]}))}),s}function r(t){for(var n;t.hasNode(n=e.uniqueId(`_root`)););return n}return l_}var f_,p_;function m_(){if(p_)return f_;p_=1;var e=Q();f_=t;function t(t,n,r){var i={},a;e.forEach(r,function(e){for(var r=t.parent(e),o,s;r;){if(o=t.parent(r),o?(s=i[o],i[o]=r):(s=a,a=r),s&&s!==r){n.setEdge(s,r);return}r=o}})}return f_}var h_,g_;function __(){if(g_)return h_;g_=1;var e=Q(),t=qg(),n=Xg(),r=c_(),i=d_(),a=m_(),o=Z().Graph,s=$();h_=c;function c(r){var i=s.maxRank(r),a=l(r,e.range(1,i+1),`inEdges`),o=l(r,e.range(i-1,-1,-1),`outEdges`),c=t(r);d(r,c);for(var f=1/0,p,m=0,h=0;h<4;++m,++h){u(m%2?a:o,m%4>=2),c=s.buildLayerMatrix(r);var g=n(r,c);g<f&&(h=0,p=e.cloneDeep(c),f=g)}d(r,p)}function l(t,n,r){return e.map(n,function(e){return i(t,e,r)})}function u(t,n){var i=new o;e.forEach(t,function(t){var o=t.graph().root,s=r(t,o,i,n);e.forEach(s.vs,function(e,n){t.node(e).order=n}),a(t,i,s.vs)})}function d(t,n){e.forEach(n,function(n){e.forEach(n,function(e,n){t.node(e).order=n})})}return h_}var v_,y_;function b_(){if(y_)return v_;y_=1;var e=Q(),t=Z().Graph,n=$();v_={positionX:m,findType1Conflicts:r,findType2Conflicts:i,addConflict:o,hasConflict:s,verticalAlignment:c,horizontalCompaction:l,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function r(t,n){var r={};function i(n,i){var s=0,c=0,l=n.length,u=e.last(i);return e.forEach(i,function(n,d){var f=a(t,n),p=f?t.node(f).order:l;(f||n===u)&&(e.forEach(i.slice(c,d+1),function(n){e.forEach(t.predecessors(n),function(e){var i=t.node(e),a=i.order;(a<s||p<a)&&!(i.dummy&&t.node(n).dummy)&&o(r,e,n)})}),c=d+1,s=p)}),i}return e.reduce(n,i),r}function i(t,n){var r={};function i(n,i,a,s,c){var l;e.forEach(e.range(i,a),function(i){l=n[i],t.node(l).dummy&&e.forEach(t.predecessors(l),function(e){var n=t.node(e);n.dummy&&(n.order<s||n.order>c)&&o(r,e,l)})})}function a(n,r){var a=-1,o,s=0;return e.forEach(r,function(e,c){if(t.node(e).dummy===`border`){var l=t.predecessors(e);l.length&&(o=t.node(l[0]).order,i(r,s,c,a,o),s=c,a=o)}i(r,s,r.length,o,n.length)}),r}return e.reduce(n,a),r}function a(t,n){if(t.node(n).dummy)return e.find(t.predecessors(n),function(e){return t.node(e).dummy})}function o(e,t,n){if(t>n){var r=t;t=n,n=r}var i=e[t];i||(e[t]=i={}),i[n]=!0}function s(t,n,r){if(n>r){var i=n;n=r,r=i}return e.has(t[n],r)}function c(t,n,r,i){var a={},o={},c={};return e.forEach(n,function(t){e.forEach(t,function(e,t){a[e]=e,o[e]=e,c[e]=t})}),e.forEach(n,function(t){var n=-1;e.forEach(t,function(t){var l=i(t);if(l.length){l=e.sortBy(l,function(e){return c[e]});for(var u=(l.length-1)/2,d=Math.floor(u),f=Math.ceil(u);d<=f;++d){var p=l[d];o[t]===t&&n<c[p]&&!s(r,t,p)&&(o[p]=t,o[t]=a[t]=a[p],n=c[p])}}})}),{root:a,align:o}}function l(t,n,r,i,a){var o={},s=u(t,n,r,a),c=a?`borderLeft`:`borderRight`;function l(e,t){for(var n=s.nodes(),r=n.pop(),i={};r;)i[r]?e(r):(i[r]=!0,n.push(r),n=n.concat(t(r))),r=n.pop()}function d(e){o[e]=s.inEdges(e).reduce(function(e,t){return Math.max(e,o[t.v]+s.edge(t))},0)}function f(e){var n=s.outEdges(e).reduce(function(e,t){return Math.min(e,o[t.w]-s.edge(t))},1/0),r=t.node(e);n!==1/0&&r.borderType!==c&&(o[e]=Math.max(o[e],n))}return l(d,s.predecessors.bind(s)),l(f,s.successors.bind(s)),e.forEach(i,function(e){o[e]=o[r[e]]}),o}function u(n,r,i,a){var o=new t,s=n.graph(),c=h(s.nodesep,s.edgesep,a);return e.forEach(r,function(t){var r;e.forEach(t,function(e){var t=i[e];if(o.setNode(t),r){var a=i[r],s=o.edge(a,t);o.setEdge(a,t,Math.max(c(n,e,r),s||0))}r=e})}),o}function d(t,n){return e.minBy(e.values(n),function(n){var r=-1/0,i=1/0;return e.forIn(n,function(e,n){var a=g(t,n)/2;r=Math.max(e+a,r),i=Math.min(e-a,i)}),r-i})}function f(t,n){var r=e.values(n),i=e.min(r),a=e.max(r);e.forEach([`u`,`d`],function(r){e.forEach([`l`,`r`],function(o){var s=r+o,c=t[s],l;if(c!==n){var u=e.values(c);l=o===`l`?i-e.min(u):a-e.max(u),l&&(t[s]=e.mapValues(c,function(e){return e+l}))}})})}function p(t,n){return e.mapValues(t.ul,function(r,i){if(n)return t[n.toLowerCase()][i];var a=e.sortBy(e.map(t,i));return(a[1]+a[2])/2})}function m(t){var a=n.buildLayerMatrix(t),o=e.merge(r(t,a),i(t,a)),s={},u;return e.forEach([`u`,`d`],function(n){u=n===`u`?a:e.values(a).reverse(),e.forEach([`l`,`r`],function(r){r===`r`&&(u=e.map(u,function(t){return e.values(t).reverse()}));var i=(n===`u`?t.predecessors:t.successors).bind(t),a=c(t,u,o,i),d=l(t,u,a.root,a.align,r===`r`);r===`r`&&(d=e.mapValues(d,function(e){return-e})),s[n+r]=d})}),f(s,d(t,s)),p(s,t.graph().align)}function h(t,n,r){return function(i,a,o){var s=i.node(a),c=i.node(o),l=0,u;if(l+=s.width/2,e.has(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:u=-s.width/2;break;case`r`:u=s.width/2}if(u&&(l+=r?u:-u),u=0,l+=(s.dummy?n:t)/2,l+=(c.dummy?n:t)/2,l+=c.width/2,e.has(c,`labelpos`))switch(c.labelpos.toLowerCase()){case`l`:u=c.width/2;break;case`r`:u=-c.width/2}return u&&(l+=r?u:-u),u=0,l}}function g(e,t){return e.node(t).width}return v_}var x_,S_;function C_(){if(S_)return x_;S_=1;var e=Q(),t=$(),n=b_().positionX;x_=r;function r(r){r=t.asNonCompoundGraph(r),i(r),e.forEach(n(r),function(e,t){r.node(t).x=e})}function i(n){var r=t.buildLayerMatrix(n),i=n.graph().ranksep,a=0;e.forEach(r,function(t){var r=e.max(e.map(t,function(e){return n.node(e).height}));e.forEach(t,function(e){n.node(e).y=a+r/2}),a+=r+i})}return x_}var w_,T_;function E_(){if(T_)return w_;T_=1;var e=Q(),t=hg(),n=bg(),r=Mg(),i=$().normalizeRanks,a=Fg(),o=$().removeEmptyRanks,s=Rg(),c=Vg(),l=Wg(),u=__(),d=C_(),f=$(),p=Z().Graph;w_=m;function m(e,t){var n=t&&t.debugTiming?f.time:f.notime;n(`layout`,function(){var t=n(` buildLayoutGraph`,function(){return T(e)});n(` runLayout`,function(){h(t,n)}),n(` updateInputGraph`,function(){g(e,t)})})}function h(e,p){p(` makeSpaceForEdgeLabels`,function(){E(e)}),p(` removeSelfEdges`,function(){P(e)}),p(` acyclic`,function(){t.run(e)}),p(` nestingGraph.run`,function(){s.run(e)}),p(` rank`,function(){r(f.asNonCompoundGraph(e))}),p(` injectEdgeLabelProxies`,function(){D(e)}),p(` removeEmptyRanks`,function(){o(e)}),p(` nestingGraph.cleanup`,function(){s.cleanup(e)}),p(` normalizeRanks`,function(){i(e)}),p(` assignRankMinMax`,function(){O(e)}),p(` removeEdgeLabelProxies`,function(){k(e)}),p(` normalize.run`,function(){n.run(e)}),p(` parentDummyChains`,function(){a(e)}),p(` addBorderSegments`,function(){c(e)}),p(` order`,function(){u(e)}),p(` insertSelfEdges`,function(){F(e)}),p(` adjustCoordinateSystem`,function(){l.adjust(e)}),p(` position`,function(){d(e)}),p(` positionSelfEdges`,function(){te(e)}),p(` removeBorderNodes`,function(){ee(e)}),p(` normalize.undo`,function(){n.undo(e)}),p(` fixupEdgeLabelCoords`,function(){M(e)}),p(` undoCoordinateSystem`,function(){l.undo(e)}),p(` translateGraph`,function(){A(e)}),p(` assignNodeIntersects`,function(){j(e)}),p(` reversePoints`,function(){N(e)}),p(` acyclic.undo`,function(){t.undo(e)})}function g(t,n){e.forEach(t.nodes(),function(e){var r=t.node(e),i=n.node(e);r&&(r.x=i.x,r.y=i.y,n.children(e).length&&(r.width=i.width,r.height=i.height))}),e.forEach(t.edges(),function(r){var i=t.edge(r),a=n.edge(r);i.points=a.points,e.has(a,`x`)&&(i.x=a.x,i.y=a.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height}var _=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],v={ranksep:50,edgesep:20,nodesep:50,rankdir:`tb`},y=[`acyclicer`,`ranker`,`rankdir`,`align`],b=[`width`,`height`],x={width:0,height:0},S=[`minlen`,`weight`,`width`,`height`,`labeloffset`],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},w=[`labelpos`];function T(t){var n=new p({multigraph:!0,compound:!0}),r=re(t.graph());return n.setGraph(e.merge({},v,ne(r,_),e.pick(r,y))),e.forEach(t.nodes(),function(r){var i=re(t.node(r));n.setNode(r,e.defaults(ne(i,b),x)),n.setParent(r,t.parent(r))}),e.forEach(t.edges(),function(r){var i=re(t.edge(r));n.setEdge(r,e.merge({},C,ne(i,S),e.pick(i,w)))}),n}function E(t){var n=t.graph();n.ranksep/=2,e.forEach(t.edges(),function(e){var r=t.edge(e);r.minlen*=2,r.labelpos.toLowerCase()!==`c`&&(n.rankdir===`TB`||n.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function D(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e};f.addDummyNode(t,`edge-proxy`,i,`_ep`)}})}function O(t){var n=0;e.forEach(t.nodes(),function(r){var i=t.node(r);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,n=e.max(n,i.maxRank))}),t.graph().maxRank=n}function k(t){e.forEach(t.nodes(),function(e){var n=t.node(e);n.dummy===`edge-proxy`&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}function A(t){var n=1/0,r=0,i=1/0,a=0,o=t.graph(),s=o.marginx||0,c=o.marginy||0;function l(e){var t=e.x,o=e.y,s=e.width,c=e.height;n=Math.min(n,t-s/2),r=Math.max(r,t+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}e.forEach(t.nodes(),function(e){l(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.has(r,`x`)&&l(r)}),n-=s,i-=c,e.forEach(t.nodes(),function(e){var r=t.node(e);r.x-=n,r.y-=i}),e.forEach(t.edges(),function(r){var a=t.edge(r);e.forEach(a.points,function(e){e.x-=n,e.y-=i}),e.has(a,`x`)&&(a.x-=n),e.has(a,`y`)&&(a.y-=i)}),o.width=r-n+s,o.height=a-i+c}function j(t){e.forEach(t.edges(),function(e){var n=t.edge(e),r=t.node(e.v),i=t.node(e.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(f.intersectRect(r,a)),n.points.push(f.intersectRect(i,o))})}function M(t){e.forEach(t.edges(),function(n){var r=t.edge(n);if(e.has(r,`x`))switch((r.labelpos===`l`||r.labelpos===`r`)&&(r.width-=r.labeloffset),r.labelpos){case`l`:r.x-=r.width/2+r.labeloffset;break;case`r`:r.x+=r.width/2+r.labeloffset}})}function N(t){e.forEach(t.edges(),function(e){var n=t.edge(e);n.reversed&&n.points.reverse()})}function ee(t){e.forEach(t.nodes(),function(n){if(t.children(n).length){var r=t.node(n),i=t.node(r.borderTop),a=t.node(r.borderBottom),o=t.node(e.last(r.borderLeft)),s=t.node(e.last(r.borderRight));r.width=Math.abs(s.x-o.x),r.height=Math.abs(a.y-i.y),r.x=o.x+r.width/2,r.y=i.y+r.height/2}}),e.forEach(t.nodes(),function(e){t.node(e).dummy===`border`&&t.removeNode(e)})}function P(t){e.forEach(t.edges(),function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||=[],n.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function F(t){var n=f.buildLayerMatrix(t);e.forEach(n,function(n){var r=0;e.forEach(n,function(n,i){var a=t.node(n);a.order=i+r,e.forEach(a.selfEdges,function(e){f.addDummyNode(t,`selfedge`,{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++r,e:e.e,label:e.label},`_se`)}),delete a.selfEdges})})}function te(t){e.forEach(t.nodes(),function(e){var n=t.node(e);if(n.dummy===`selfedge`){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}})}function ne(t,n){return e.mapValues(e.pick(t,n),Number)}function re(t){var n={};return e.forEach(t,function(e,t){n[t.toLowerCase()]=e}),n}return w_}var D_,O_;function k_(){if(O_)return D_;O_=1;var e=Q(),t=$(),n=Z().Graph;D_={debugOrdering:r};function r(r){var i=t.buildLayerMatrix(r),a=new n({compound:!0,multigraph:!0}).setGraph({});return e.forEach(r.nodes(),function(e){a.setNode(e,{label:e}),a.setParent(e,`layer`+r.node(e).rank)}),e.forEach(r.edges(),function(e){a.setEdge(e.v,e.w,{},e.name)}),e.forEach(i,function(t,n){var r=`layer`+n;a.setNode(r,{rank:`same`}),e.reduce(t,function(e,t){return a.setEdge(e,t,{style:`invis`}),t})}),a}return D_}var A_,j_;function M_(){return j_?A_:(j_=1,A_=`0.8.5`,A_)}var N_,P_;function F_(){return P_?N_:(P_=1,N_={graphlib:Z(),layout:E_(),debug:k_(),util:{time:$().time,notime:$().notime},version:M_()},N_)}var I_=F_(),L_=It(I_),R_=function(e){return Nt(e,`Boolean`)};function z_(e,t){if(e){var n;if(kt(e))for(var r=0,i=e.length;r<i&&(n=t(e[r],r),n!==!1);r++);else if(At(e)){for(var a in e)if(e.hasOwnProperty(a)&&(n=t(e[a],a),n===!1))break}}}var B_=Object.prototype.hasOwnProperty,V_=(function(e,t){if(e===null||!Pt(e))return{};var n={};return z_(t,function(t){B_.call(e,t)&&(n[t]=e[t])}),n}),H_=class extends Ot{constructor(){super(...arguments),this.id=`dagre`,this.isCompoundGraph=null,this.config={graphAttributes:[`rankdir`,`align`,`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`,`acyclicer`,`ranker`],nodeAttributes:[`width`,`height`],edgeAttributes:[`minlen`,`weight`,`width`,`height`,`labelpos`,`labeloffset`]}}getDefaultOptions(){return{directed:!0,multigraph:!0,rankdir:`TB`,align:void 0,nodesep:50,edgesep:10,ranksep:50,marginx:0,marginy:0,acyclicer:void 0,ranker:`network-simplex`,nodeSize:[0,0],edgeMinLen:1,edgeWeight:1,edgeLabelSize:[0,0],edgeLabelPos:`r`,edgeLabelOffset:10}}layout(){return _e(this,void 0,void 0,function*(){let e=new I_.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});e.setGraph(V_(this.options,this.config.graphAttributes)),e.setDefaultEdgeLabel(()=>({}));let t=Ge(this.options.nodeSize,0);this.model.forEachNode(n=>{let r=n._original,[i,a]=ze(t(r)),o={width:i,height:a};if(e.setNode(String(n.id),o),this.isCompound()){if(H(n.parentId))return;e.setParent(String(n.id),String(n.parentId))}});let{edgeLabelSize:n,edgeLabelOffset:r,edgeLabelPos:i,edgeMinLen:a,edgeWeight:o}=this.options,s=Ge(n,0,`edge`),c=We(r,10,`edge`),l=typeof i==`string`?()=>i:Ue(i,[`edge`]),u=We(a,1,`edge`),d=We(o,1,`edge`);this.model.forEachEdge(t=>{let n=t._original,[r,i]=ze(s(n)),a={width:r,height:i,labelpos:l(n),labeloffset:c(n),minlen:u(n),weight:d(n)};e.setEdge(String(t.source),String(t.target),a,String(t.id))}),L_.layout(e),this.model.forEachNode(t=>{let n=e.node(String(t.id));n&&(t.x=n.x,t.y=n.y,t.size=[n.width,n.height])}),this.model.forEachEdge(t=>{let n=e.edge(String(t.source),String(t.target),String(t.id));if(!n)return;let{width:r,height:i,weight:a,minlen:o,labelpos:s,labeloffset:c,points:l}=n;t.labelSize=[r,i],t.weight=a,t.minLen=o,t.labelPos=s,t.labelOffset=c,t.points=l.map(Ke)})})}isCompound(){return this.isCompoundGraph===null?R_(this.options.compound)?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(e=>!H(e.parentId)),this.isCompoundGraph):this.isCompoundGraph}},U_=26,W_=72,G_=24,K_=28,q_=16,J_=8,Y_=20,X_=24,Z_=12,Q_=22,$_=24,ev=52,tv=(e,t,n)=>{let r=(e,t)=>{let n=Array.from(new Set(e)).sort((e,t)=>e-t),r=[];for(let e of n)(r.length===0||e-r[r.length-1]>t)&&r.push(e);return r},i=r(e.map(e=>t.get(e.id)),U_),a=r(e.map(e=>n.get(e.id)),W_),o=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n},s=new Map,c=new Map;for(let r of e)s.set(r.id,o(i,t.get(r.id))),c.set(r.id,o(a,n.get(r.id)));return{col:s,row:c,ncols:i.length,nrows:a.length}},nv=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)},rv=(e,t,n,r)=>{let i=new Set;for(let t of e)i.add(`${n.get(t.id)}:${r.get(t.id)}`);let a=new Map;for(let e of t)e.source!==e.target&&(nv(a,e.source,e.target),nv(a,e.target,e.source));for(let t of e){let e=a.get(t.id);if(e===void 0)continue;let o=e.map(e=>r.get(e)).sort((e,t)=>e-t),s=o[Math.floor((o.length-1)/2)],c=r.get(t.id),l=Math.abs(s-c);if(l===0)continue;let u=Math.sign(s-c),d;if(l===1){if(!e.some(e=>r.get(e)===s&&Math.abs(n.get(e)-n.get(t.id))===1))continue;d=s}else d=c+u*Math.ceil(l/2);for(let e=d;e!==c;e-=u)if(!i.has(`${n.get(t.id)}:${e}`)){i.delete(`${n.get(t.id)}:${c}`),i.add(`${n.get(t.id)}:${e}`),r.set(t.id,e);break}}},iv=(e,t,n)=>{let r=e.map(e=>{if(e.source===e.target)return{chans:[],guts:[]};let r=t.get(e.source),i=t.get(e.target),a=n.get(e.source),o=n.get(e.target),s,c=[];return r===i?s=[r]:Math.abs(r-i)===1?s=[Math.min(r,i)]:(s=[r<i?r:r-1,r<i?i-1:i],c=[o>a?o-1:o]),{chans:s,guts:c}}),i=new Map,a=new Map,o=new Map,s=new Map,c=(e,t)=>o.set(e,Math.max(o.get(e)??0,t));return r.forEach((t,n)=>{for(let e of t.chans)i.set(e,(i.get(e)??0)+1);for(let e of t.guts)a.set(e,(a.get(e)??0)+1);let{name:r,arity:o}=e[n];r!==void 0&&t.chans.length===1?c(t.chans[0],v(r,16)+16):r!==void 0&&t.guts.length>0&&s.set(t.guts[0],(s.get(t.guts[0])??0)+1),o!==void 0&&t.chans.length>0&&c(t.chans[t.chans.length-1],24+v(o,16)+J_)}),{plans:r,chanCnt:i,gutCnt:a,chanLbl:o,gutLbl:s}},av=(e,t,n,r,i,a,o,s,c,l,u,d)=>{let f=Array.from({length:a},()=>0),p=Array.from({length:o},()=>0);for(let a of e)f[t.get(a.id)]=Math.max(f[t.get(a.id)],r.get(a.id)),p[n.get(a.id)]=Math.max(p[n.get(a.id)],i.get(a.id));let m=Array.from({length:a},(e,t)=>{let n=s.get(t)??0;return Math.min(d[`graph-channel-width-max`],Math.max(d[`graph-channel-width-min`],n===0?G_:K_+(n-1)*d[`size-edge-track-gap`],l.get(t)??0))}),h=Array.from({length:o},(e,t)=>{let n=c.get(t)??0,r=u.get(t)??0;return Math.min(d[`graph-gutter-height-max`],Math.max(d[`graph-gutter-height-min`],n===0?Y_:X_+(n-1)*d[`size-edge-track-gap`],r>0?X_+r*Q_:0))}),g=[],_=[],v=d[`size-canvas-margin`];for(let e=0;e<f.length;e++)g.push(v+f[e]/2),v+=f[e]+m[e];let y=d[`size-canvas-margin`];for(let e=0;e<p.length;e++)_.push(y+p[e]/2),y+=p[e]+h[e];return{colWidth:f,rowHeight:p,chanW:m,gutH:h,colCX:g,rowCY:_}},ov=(e,t,n,r,i,a)=>{let{colWidth:o,rowHeight:s,chanW:c,gutH:l,colCX:u,rowCY:d}=i,f=e=>d[e]+s[e]/2+l[e]/2,p=new Map;e.forEach((e,i)=>{let{chans:a,guts:o}=t[i];if(a.length===0)return;let s=n.get(e.target)<n.get(e.source),c=r.get(`${i}:s`),l=r.get(`${i}:t`);if(a.length===1)nv(p,a[0],{edge:i,posIn:c.y,posOut:l.y,mirror:s});else{let e=f(o[0]);nv(p,a[0],{edge:i,posIn:c.y,posOut:e,mirror:s}),nv(p,a[1],{edge:i,posIn:e,posOut:l.y,mirror:s})}});let m=new Map;for(let[e,t]of p)for(let[n,r]of ie(t,c[e],q_,a[`size-edge-track-gap`]))m.set(`${e}:${n}`,r);let h=(e,t)=>u[e]+o[e]/2+c[e]/2+m.get(`${e}:${t}`),g=new Map;e.forEach((e,n)=>{let{chans:i,guts:a}=t[n];if(a.length===0)return;let o=r.get(`${n}:s`);nv(g,a[0],{edge:n,posIn:h(i[0],n),posOut:h(i[1],n),mirror:o.y>f(a[0])})});let _=new Map;for(let[e,t]of g)for(let[n,r]of ie(t,l[e],Z_,a[`size-edge-track-gap`]))_.set(`${e}:${n}`,r);return{chanX:h,gutY:(e,t)=>f(e)+_.get(`${e}:${t}`)}},sv=(e,t,n,r,i,a,o,s,c,l,u)=>{let d=new Map;return e.map((e,f)=>{let p=n.get(e.source),m=n.get(e.target),h=r.get(`${f}:s`),g=r.get(`${f}:t`),{chans:_,guts:v}=t[f],y;if(e.source===e.target){let t=d.get(e.source)??0;d.set(e.source,t+1);let n=t*u[`size-edge-track-gap`],r=o(e.source)+i.get(e.source)/2+$_+n,c=s(e.source)-a.get(e.source)/2-ev-n;y=[[h.x,h.y],[r,h.y],[r,c],[g.x,c],[g.x,g.y]]}else if(_.length===1){let e=c(_[0],f);y=Math.abs(p-m)===1&&h.y===g.y?[[h.x,h.y],[g.x,g.y]]:[[h.x,h.y],[e,h.y],[e,g.y],[g.x,g.y]]}else{let e=c(_[0],f),t=c(_[1],f),n=l(v[0],f);y=[[h.x,h.y],[e,h.y],[e,n],[t,n],[t,g.y],[g.x,g.y]]}return ne(y)})},cv=async(e,t)=>{let n=Array.from(e.nodes.values()),r=e.edges,{boxW:i,boxH:a,contentH:o}=F(n,t,()=>t[`size-node-height-scale`]/2),s=new H_({rankdir:`LR`,nodesep:t[`graph-node-separation`],ranksep:t[`graph-rank-separation`],nodeSize:e=>e.size});await s.execute({nodes:n.map(e=>({id:e.id,size:[i.get(e.id),a.get(e.id)]})),edges:r.map((e,t)=>({id:`e${t}`,source:e.source,target:e.target}))});let c=new Map,l=new Map;s.forEachNode(e=>{c.set(String(e.id),e.x),l.set(String(e.id),e.y)});let{col:u,row:d,ncols:f,nrows:p}=tv(n,c,l);rv(n,r,u,d);let m=Math.max(Math.floor(t[`graph-columns-max`]),1);if(f>m)for(let e of n){let t=u.get(e.id);u.set(e.id,t%m),d.set(e.id,d.get(e.id)+Math.floor(t/m)*p)}let h=Math.min(f,m),g=Array.from(new Set(n.map(e=>d.get(e.id)))).sort((e,t)=>e-t),_=new Map(g.map((e,t)=>[e,t]));for(let e of n)d.set(e.id,_.get(d.get(e.id)));let v=g.length,{plans:y,chanCnt:b,gutCnt:x,chanLbl:S,gutLbl:C}=iv(r,u,d),w=r.map(e=>{let t=u.get(e.source),n=u.get(e.target);return e.source===e.target?{s:`e`,t:`n`}:t<n?{s:`e`,t:`w`}:t>n?{s:`w`,t:`e`}:{s:`e`,t:`e`}}),T=new Map;r.forEach((e,t)=>{T.set(`${w[t].s}:${e.source}`,(T.get(`${w[t].s}:${e.source}`)??0)+1),T.set(`${w[t].t}:${e.target}`,(T.get(`${w[t].t}:${e.target}`)??0)+1)});for(let e of n){let n=Math.max(T.get(`w:${e.id}`)??0,T.get(`e:${e.id}`)??0);n>t[`graph-node-degree-max`]&&a.set(e.id,a.get(e.id)+(n-t[`graph-node-degree-max`])*t[`size-edge-port-gap`])}let E=av(n,u,d,i,a,h,v,b,x,S,C,t),D=e=>E.colCX[u.get(e)],O=e=>E.rowCY[d.get(e)],k=re(r,w,D,O,i,a,t[`size-edge-port-gap`]),{chanX:A,gutY:j}=ov(r,y,u,k,E,t);return{nodes:n,edges:r,cx:D,cy:O,boxW:i,boxH:a,contentH:o,polys:sv(r,y,u,k,i,a,D,O,A,j,t)}},lv=`\0`,uv=e=>{let t=Array.from(e.nodes.values());for(let e of t)if(e.id.includes(lv))throw Error(`node id ${JSON.stringify(e.id)} contains a reserved control character`);let n=t.filter(D);if(n.length!==1)throw Error(`expected exactly one node annotated with "primary: true" (found ${n.length})`);let r=n[0],i=new Set,a=new Set;for(let t of e.edges)if(t.source===r.id&&t.target===r.id)throw Error(`self-loop on primary node "${r.id}" not supported`);else if(t.target===r.id)i.add(t.source);else if(t.source===r.id)a.add(t.target);else throw Error(`edge "${t.source}" --> "${t.target}" does not connect to primary node "${r.id}"`);let o=new Set,s=[],c=[];for(let e of t){if(e.id===r.id)continue;let t=i.has(e.id),n=a.has(e.id);if(!t&&!n)throw Error(`node "${e.id}" is neither input nor output of primary node "${r.id}"`);t&&n?(o.add(e.id),s.push({...e,id:e.id+`\0in`}),c.push({...e,id:e.id+`\0out`})):t?s.push(e):c.push(e)}let l=e.edges.map(e=>e.target===r.id&&o.has(e.source)?{...e,source:e.source+`\0in`}:e.source===r.id&&o.has(e.target)?{...e,target:e.target+`\0out`}:e);return{center:r,inputs:s,outputs:c,nodes:[r,...s,...c],edges:l}},dv={graph:cv,hub:async(e,t)=>{let{center:n,inputs:r,outputs:i,nodes:a,edges:o}=uv(e),s=new Set(r.map(e=>e.id)),c=t[`size-canvas-margin`],l=t[`hub-node-gap`],u=t[`size-node-height-scale`],d=e=>e===n.id?1:s.has(e)?0:2,f=o.map(e=>d(e.source)<d(e.target)?{s:`e`,t:`w`}:{s:`w`,t:`e`}),{boxW:p,boxH:m,contentH:h}=F(a,t,()=>u/2),g=new Map;o.forEach((e,t)=>{g.set(`${f[t].s}:${e.source}`,(g.get(`${f[t].s}:${e.source}`)??0)+1),g.set(`${f[t].t}:${e.target}`,(g.get(`${f[t].t}:${e.target}`)??0)+1)});for(let e of a){let n=Math.max(g.get(`w:${e.id}`)??0,g.get(`e:${e.id}`)??0);n>t[`hub-node-degree-max`]&&m.set(e.id,m.get(e.id)+(n-t[`hub-node-degree-max`])*t[`size-edge-port-gap`])}let _=e=>e.reduce((e,t)=>e+m.get(t.id),0)+Math.max(e.length-1,0)*l,v=Math.max(_(r),m.get(n.id),_(i)),y=new Map,b=e=>{let t=c+(v-_(e))/2;for(let n of e)y.set(n.id,t+m.get(n.id)/2),t+=m.get(n.id)+l};b(r),b(i),y.set(n.id,c+v/2);let x=[r.reduce((e,t)=>Math.max(e,p.get(t.id)),0),p.get(n.id),i.reduce((e,t)=>Math.max(e,p.get(t.id)),0)],S=e=>Math.min(d(e.source),d(e.target)),C=[o.filter(e=>S(e)===0).length,o.filter(e=>S(e)===1).length].map(e=>Math.min(t[`hub-channel-width-max`],Math.max(t[`hub-channel-width-min`],28+(e-1)*t[`size-edge-track-gap`]))),w=[],T=c;for(let e=0;e<3;e++)w.push(T),T+=x[e]+(e<2?C[e]:0);let E=e=>{let t=d(e);return t===0?w[0]+x[0]-p.get(e)/2:t===2?w[2]+p.get(e)/2:w[1]+x[1]/2},D=e=>y.get(e),k=re(o,f,E,D,p,m,t[`size-edge-port-gap`]),A=[[],[]];o.forEach((e,t)=>{A[S(e)].push({edge:t,posIn:k.get(`${t}:s`).y,posOut:k.get(`${t}:t`).y,mirror:!1})});let j=new Map;A.forEach((e,n)=>{for(let[r,i]of ie(e,C[n],16,t[`size-edge-track-gap`]))j.set(`${n}:${r}`,i)});let M=(e,t)=>w[e]+x[e]+C[e]/2+j.get(`${e}:${t}`);return{nodes:a,edges:o,cx:E,cy:D,boxW:p,boxH:m,contentH:h,polys:o.map((e,t)=>{let n=k.get(`${t}:s`),r=k.get(`${t}:t`),i=M(S(e),t),a;return a=n.y===r.y?[[n.x,n.y],[r.x,r.y]]:[[n.x,n.y],[i,n.y],[i,r.y],[r.x,r.y]],ne(a)}),styleOf:e=>e.id.endsWith(`\0out`)?{fill:`color-node-ghost-box`,stroke:`color-node-ghost-border`,text:`color-node-ghost-name`,dash:`10 6`}:O(e)}},grid:async(e,t)=>{let n=Array.from(e.nodes.values()),r=t[`size-canvas-margin`],i=t[`grid-gap-horizontal`],a=t[`grid-gap-vertical`],o=Math.max(Math.floor(t[`grid-columns-max`]),1),s=Math.max(Math.floor(t[`grid-columns-min`]),1);if(e.edges.length>0){let t=e.edges[0];throw Error(`diagram type "grid" does not support edges (found ${e.edges.length}, first is "${t.source}" --> "${t.target}")`)}let{boxW:c,boxH:l,contentH:u}=F(n,t,()=>t[`size-node-height-scale`]/2),d=n.reduce((e,t)=>Math.max(e,l.get(t.id)),0),f=n.reduce((e,t)=>Math.max(e,c.get(t.id)),0);for(let e of n)l.set(e.id,d),t[`grid-node-width-equal`]&&c.set(e.id,f);let p=Math.max(Math.min(Math.max(Math.ceil(Math.sqrt(n.length)),s),o,n.length),1),m=Array.from({length:p},()=>0);n.forEach((e,t)=>{m[t%p]=Math.max(m[t%p],c.get(e.id))});let h=[],g=r;for(let e=0;e<p;e++)h.push(g),g+=m[e]+i;let _=new Map,v=new Map;return n.forEach((e,t)=>{_.set(e.id,h[t%p]+c.get(e.id)/2),v.set(e.id,r+Math.floor(t/p)*(d+a)+d/2)}),{nodes:n,edges:[],cx:e=>_.get(e),cy:e=>v.get(e),boxW:c,boxH:l,contentH:u,polys:[]}}},fv=Object.keys(dv),pv=`graph`,mv=e=>{let t;for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#type[ \t]+([a-z][a-z0-9-]*)[ \t]*$/.exec(n);e===null||!Object.hasOwn(dv,e[1])||(t=e[1])}return t},hv=[`svg:standalone`,`svg:embedded`,`url:xml`,`url:base64`];e.Gradia=class e{static config=Object.freeze({...p});static parse(e){return d(e)}static async generate(e,t={}){let n=t.type??`graph`;if(!Object.hasOwn(dv,n))throw Error(`invalid diagram type "${n}"`);let r=t.format??`svg:standalone`;if(!hv.includes(r))throw Error(`invalid output format "${r}"`);let i=t.config??{},a={...p,...i},o=C(e),s=ge(o===null?await dv[n](e,a):T(o,await Promise.all(o.map(e=>dv[n](e.graph,a))),a),a,i,JSON.stringify({type:n,config:a,explicit:Object.keys(i).sort(),nodes:Array.from(e.nodes.values()),edges:e.edges}));return r===`svg:embedded`?s.replace(/^<\?xml[^?]*\?>\n/,``):r===`url:xml`?`data:image/svg+xml,${encodeURIComponent(s)}`:r===`url:base64`?`data:image/svg+xml;base64,${btoa(Array.from(new TextEncoder().encode(s),e=>String.fromCharCode(e)).join(``))}`:s}static async render(t,n={}){let r=e.parse(t),i=n.type??mv(t),a={...h(t),...n.config??{}};return e.generate(r,{...n,type:i,config:a})}},e.diagramFormatDefault=`svg:standalone`,e.diagramFormats=hv,e.diagramTypeDefault=pv,e.diagramTypes=fv});
4
+ `;)r++,i++;else if((d=c(a))!==null){let e=d[1]===void 0?d[2]:l(d[1]),a=d[3]===void 0?d[4]:l(d[3]);t.push({type:`edge`,text:d[0],name:e,arity:a,line:n,col:r}),r+=d[0].length,i+=d[0].length}else if((d=c(o))!==null)t.push({type:`string`,text:l(d[1]),line:n,col:r}),r+=d[0].length,i+=d[0].length;else if(u===`"`)throw Error(`unterminated string at line ${n}, column ${r}`);else if(`[](),:`.includes(u))t.push({type:`punct`,text:u,line:n,col:r}),r++,i++;else if((d=c(s))!==null)t.push({type:`word`,text:d[0],line:n,col:r}),r+=d[0].length,i+=d[0].length;else throw Error(`invalid character ${JSON.stringify(u)} at line ${n}, column ${r}`)}return t},d=e=>{let t=u(e),n={nodes:new Map,edges:[]},r=0,i=()=>r<t.length?t[r]:null,a=e=>{let t=i();return t===null||t.type!==`punct`||t.text!==e?!1:(r++,!0)},o=e=>{let t=i(),n=t===null?`end of input`:`line ${t.line}, column ${t.col}`;throw Error(`expected ${e} at ${n}`)},s=()=>{let e=i();return e===null||e.type!==`word`&&e.type!==`string`?o(`bareword or quoted string`):(r++,e.text)},c=()=>{let e=t[r],i=s(),c=null;a(`:`)&&(c=s());let l=[];if(a(`[`)){for(;;){let e=s();a(`:`)||o(`":" in key/value attribute`);let t=s();if(l.push({key:e,val:t}),!a(`,`))break}a(`]`)||o(`"]" after key/value attributes`)}let u=n.nodes.get(i)??{id:i,name:i,attrs:[]};c!==null&&(u.name=c);for(let t of l){let n=u.attrs.findIndex(e=>e.key===t.key);if(n===-1)u.attrs.push(t);else{if(t.key===`group`&&u.attrs[n].val!==t.val)throw Error(`node "${i}" cannot be a member of more than one group ("${u.attrs[n].val}" vs "${t.val}") at line ${e.line}, column ${e.col}`);u.attrs[n]=t}}return n.nodes.set(i,u),i};for(;r<t.length;){if(t[r].type===`newline`){r++;continue}let e=c(),a=i();for(;a!==null&&a.type===`edge`;){r++;let t=c();n.edges.push({source:e,target:t,name:a.name,arity:a.arity}),e=t,a=i()}a!==null&&a.type!==`newline`&&o(`edge operator or end of line`)}return n},f=l(s(((e,t)=>{t.exports={}}))(),1),p={"font-family":`Helvetica`,"font-embed":!1,"color-node-regular-name":`#336699`,"color-node-regular-box":`#e0f0ff`,"color-node-regular-border":`#c0d0e0`,"color-node-primary-name":`#ffffff`,"color-node-primary-box":`#336699`,"color-node-primary-border":`#003366`,"color-node-ghost-name":`#666666`,"color-node-ghost-box":`#f0f0f0`,"color-node-ghost-border":`#a0a0a0`,"color-group-name":`#6699cc`,"color-group-box":`#f4f8fc`,"color-group-border":`#c0d0e0`,"color-edge-line":`#999999`,"color-edge-name":`#333333`,"color-edge-arity":`#333333`,"color-edge-halo":`#ffffff`,"size-canvas-margin":40,"size-node-width-min":220,"size-node-width-max":0,"size-node-height-scale":2.25,"size-edge-corner-radius":20,"size-edge-hop-radius":8,"size-edge-track-gap":12,"size-edge-port-gap":24,"group-box-padding":30,"group-box-gap":40,"graph-columns-max":4,"graph-channel-width-max":140,"graph-channel-width-min":24,"graph-gutter-height-max":90,"graph-gutter-height-min":20,"graph-node-separation":30,"graph-rank-separation":60,"graph-node-degree-max":3,"hub-channel-width-max":340,"hub-channel-width-min":240,"hub-node-gap":20,"hub-node-degree-max":3,"grid-columns-max":4,"grid-columns-min":3,"grid-gap-horizontal":40,"grid-gap-vertical":20,"grid-node-width-equal":!0},m=(e,t)=>Object.hasOwn(e,t)?e[t].replace(/[;{}]/g,``):`var(--gradia-${t}, ${p[t]})`,h=e=>{let t={};for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#config[ \t]+([a-z][a-z0-9-]*)[ \t]+(?:"((?:[^"\\]|\\.)*)"|(\S+))[ \t]*$/.exec(n);if(e===null||!Object.hasOwn(p,e[1]))continue;let r=e[1],i=e[2]===void 0?e[3]:e[2].replace(/\\(.)/g,`$1`);if(!(r===`font-embed`||r===`font-family`&&i.endsWith(`.woff2`))){if(typeof p[r]==`boolean`){if(i!==`true`&&i!==`false`)continue;t[r]=i===`true`}else if(typeof p[r]==`number`){let e=Number(i);if(i===``||!Number.isFinite(e)||e<0)continue;t[r]=e}else t[r]=i}}return t},g={"Source Sans 3":{file:`source-sans/WOFF2/VF/SourceSans3VF-Upright.ttf.woff2`,weight:`200 900`}},_=e=>{let t=e[`font-family`];if(Object.hasOwn(g,t)){let n=g[t];if(e[`font-embed`]){let e=f.default.fileURLToPath((e=>e)(n.file));return{family:t,embed:f.default.readFileSync(e).toString(`base64`),weight:n.weight}}return{family:t}}if(t.endsWith(`.woff2`)){let n=f.default.basename(t,`.woff2`);return e[`font-embed`]?{family:n,embed:f.default.readFileSync(t).toString(`base64`)}:{family:n}}if(e[`font-embed`])throw Error(`option "font-embed" requires option "font-family" to be a built-in font family (${Object.keys(g).map(e=>`"${e}"`).join(`, `)}) or the path to a WOFF2 file`);return{family:t}},v=(e,t)=>e.length*t*.52,y=(e,t,n)=>{let r=e.split(/\s+/).filter(e=>e!==``);if(n<=0||r.length<=1||v(e,t)<=n)return[e];let i=[],a=r[0];for(let e of r.slice(1))v(`${a} ${e}`,t)>n?(i.push(a),a=e):a=`${a} ${e}`;return i.push(a),i},b=e=>e.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g,``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`),x=34,S=e=>e.attrs.findLast(e=>e.key===`group`)?.val,C=e=>{let t=Array.from(e.nodes.values());if(!t.some(e=>S(e)!==void 0))return null;let n=new Map,r=new Map;for(let e of t){let t=S(e)??`default`;r.set(e.id,t);let i=n.get(t);i===void 0&&(i={nodes:new Map,edges:[]},n.set(t,i)),i.nodes.set(e.id,e)}for(let t of e.edges){let e=r.get(t.source),i=r.get(t.target);if(e!==i)throw Error(`edge "${t.source}" --> "${t.target}" crosses groups "${e}" and "${i}"`);n.get(e).edges.push(t)}return Array.from(n.entries()).map(([e,t])=>({name:e,graph:t}))},w=e=>{let{nodes:t,cx:n,cy:r,boxW:i,boxH:a,polys:o}=e,[s,c,l,u]=[1/0,1/0,-1/0,-1/0];for(let e of t)s=Math.min(s,n(e.id)-i.get(e.id)/2),c=Math.min(c,r(e.id)-a.get(e.id)/2),l=Math.max(l,n(e.id)+i.get(e.id)/2),u=Math.max(u,r(e.id)+a.get(e.id)/2);for(let e of o)for(let[t,n]of e)s=Math.min(s,t),c=Math.min(c,n),l=Math.max(l,t),u=Math.max(u,n);return{minX:s,minY:c,maxX:l,maxY:u}},T=(e,t,n)=>{let r=n[`size-canvas-margin`],i=n[`group-box-padding`],a=n[`group-box-gap`],o=[],s=[],c=[],l=new Map,u=r;t.forEach((t,n)=>{let d=w(t),f=Math.max(d.maxX-d.minX+i*2,v(e[n].name,24)+i*2),p=d.maxY-d.minY+i*2+x;s.push(r+i-d.minX),c.push(u+x+i-d.minY);for(let e of t.nodes)l.set(e.id,n);o.push({name:e[n].name,x:r,y:u,w:f,h:p}),u+=p+a});let d=e=>new Map(t.flatMap(t=>Array.from(e(t).entries()))),f=e=>l.get(e);return{nodes:t.flatMap(e=>e.nodes),edges:t.flatMap(e=>e.edges),cx:e=>t[f(e)].cx(e)+s[f(e)],cy:e=>t[f(e)].cy(e)+c[f(e)],boxW:d(e=>e.boxW),boxH:d(e=>e.boxH),contentH:d(e=>e.contentH),polys:t.flatMap((e,t)=>e.polys.map(e=>e.map(([e,n])=>[e+s[t],n+c[t]]))),styleOf:t.every(e=>e.styleOf!==void 0)?e=>t[f(e.id)].styleOf(e):void 0,groups:o}},E=l(s(((e,t)=>{(function(e,n,r){typeof define==`function`&&define.amd!==void 0?define(function(){return r(e)}):typeof t==`object`&&typeof t.exports==`object`?(t.exports=r(e),t.exports.default=t.exports):e[n]=r(e)})(e,`UUID`,function(){let e=function(e,t,n,r,i,a){let o=function(e,t){let n=e.toString(16);return n.length<2&&(n=`0`+n),t&&(n=n.toUpperCase()),n};for(let s=t;s<=n;s++)i[a++]=o(e[s],r);return i},t=function(e,t,n,r,i){for(let a=t;a<=n;a+=2)r[i++]=parseInt(e.substr(a,2),16)},n=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#`.split(``),r=[0,68,0,84,83,82,72,0,75,76,70,65,0,63,62,69,0,1,2,3,4,5,6,7,8,9,64,0,73,66,74,71,81,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,77,0,78,67,0,0,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,79,0,80,0,0],i=function(e,t){if(t%4!=0)throw Error(`z85_encode: invalid input length (multiple of 4 expected)`);let r=``,i=0,a=0;for(;i<t;)if(a=a*256+e[i++],i%4==0){let e=52200625;for(;e>=1;){let t=Math.floor(a/e)%85;r+=n[t],e/=85}a=0}return r},a=function(e,t){let n=e.length;if(n%5!=0)throw Error(`z85_decode: invalid input length (multiple of 5 expected)`);t===void 0&&(t=Array(n*4/5));let i=0,a=0,o=0;for(;i<n;){let n=e.charCodeAt(i++)-32;if(n<0||n>=r.length)break;if(o=o*85+r[n],i%5==0){let e=16777216;for(;e>=1;)t[a++]=Math.trunc(o/e%256),e/=256;o=0}}return t},o=function(e,t){let n={ibits:8,obits:8,obigendian:!0};for(let e in t)n[e]!==void 0&&(n[e]=t[e]);let r=[],i=0,a,o,s=0,c,l=0,u=e.length;for(;s===0&&(o=e.charCodeAt(i++)),a=o>>n.ibits-(s+8)&255,s=(s+8)%n.ibits,n.obigendian?l===0?c=a<<n.obits-8:c|=a<<n.obits-8-l:l===0?c=a:c|=a<<l,l=(l+8)%n.obits,!(l===0&&(r.push(c),i>=u)););return r},s=function(e,t){let n={ibits:32,ibigendian:!0};for(let e in t)n[e]!==void 0&&(n[e]=t[e]);let r=``,i=4294967295;n.ibits<32&&(i=(1<<n.ibits)-1);let a=e.length;for(let t=0;t<a;t++){let a=e[t]&i;for(let e=0;e<n.ibits;e+=8)n.ibigendian?r+=String.fromCharCode(a>>n.ibits-8-e&255):r+=String.fromCharCode(a>>e&255)}return r},c=function(e,t,n,r,i,a,o,s){return[s,o,a,i,r,n,t,e]},l=function(){return c(0,0,0,0,0,0,0,0)},u=function(e){return e.slice(0)},d=function(e){let t=l();for(let n=0;n<8;n++)t[n]=Math.floor(e%256),e/=256;return t},f=function(e){let t=0;for(let n=7;n>=0;n--)t*=256,t+=e[n];return Math.floor(t)},p=function(e,t){let n=0;for(let r=0;r<8;r++)n+=e[r]+t[r],e[r]=Math.floor(n%256),n=Math.floor(n/256);return n},m=function(e,t){let n=0;for(let r=0;r<8;r++)n+=e[r]*t,e[r]=Math.floor(n%256),n=Math.floor(n/256);return n},h=function(e,t){let n,r,i=Array(16);for(n=0;n<16;n++)i[n]=0;let a;for(n=0;n<8;n++){for(a=0,r=0;r<8;r++)a+=e[n]*t[r]+i[n+r],i[n+r]=a%256,a/=256;for(;r<16-n;r++)a+=i[n+r],i[n+r]=a%256,a/=256}for(n=0;n<8;n++)e[n]=i[n];return i.slice(8,16)},g=function(e,t){for(let n=0;n<8;n++)e[n]&=t[n];return e},_=function(e,t){for(let n=0;n<8;n++)e[n]|=t[n];return e},v=function(e,t){let n=l();if(t%8!=0)throw Error(`ui64_rorn: only bit rotations supported with a multiple of digit bits`);let r=Math.floor(t/8);for(let t=0;t<r;t++){let t;for(t=6;t>=0;t--)n[t+1]=n[t];for(n[0]=e[0],t=0;t<7;t++)e[t]=e[t+1];e[t]=0}return f(n)},y=function(e,t){if(t>64)throw Error(`ui64_ror: invalid number of bits to shift`);let n=Array(16),r;for(r=0;r<8;r++)n[r+8]=e[r],n[r]=0;let i=Math.floor(t/8),a=t%8;for(r=i;r<15;r++)n[r-i]=(n[r]>>>a|n[r+1]<<8-a)&255;for(n[15-i]=n[15]>>>a&255,r=15-i+1;r<16;r++)n[r]=0;for(r=0;r<8;r++)e[r]=n[r+8];return n.slice(0,8)},b=function(e,t){if(t>64)throw Error(`ui64_rol: invalid number of bits to shift`);let n=Array(16),r;for(r=0;r<8;r++)n[r+8]=0,n[r]=e[r];let i=Math.floor(t/8),a=t%8;for(r=7-i;r>0;r--)n[r+i]=(n[r]<<a|n[r-1]>>>8-a)&255;for(n[0+i]=n[0]<<a&255,r=0+i-1;r>=0;r--)n[r]=0;for(r=0;r<8;r++)e[r]=n[r];return n.slice(8,16)},x=function(e,t){for(let n=0;n<8;n++)e[n]^=t[n]},S=function(e,t){let n=(e&65535)+(t&65535);return(e>>16)+(t>>16)+(n>>16)<<16|n&65535},C=function(e,t){return e<<t&4294967295|e>>>32-t&4294967295},w=function(e,t){function n(e,t,n,r){return e<20?t&n|~t&r:e<40?t^n^r:e<60?t&n|t&r|n&r:t^n^r}function r(e){return e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514}e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;let i=Array(80),a=1732584193,o=-271733879,s=-1732584194,c=271733878,l=-1009589776;for(let t=0;t<e.length;t+=16){let u=a,d=o,f=s,p=c,m=l;for(let u=0;u<80;u++){u<16?i[u]=e[t+u]:i[u]=C(i[u-3]^i[u-8]^i[u-14]^i[u-16],1);let d=S(S(C(a,5),n(u,o,s,c)),S(S(l,i[u]),r(u)));l=c,c=s,s=C(o,30),o=a,a=d}a=S(a,u),o=S(o,d),s=S(s,f),c=S(c,p),l=S(l,m)}return[a,o,s,c,l]},T=function(e){return s(w(o(e,{ibits:8,obits:32,obigendian:!0}),e.length*8),{ibits:32,ibigendian:!0})},E=function(e,t){function n(e,t,n,r,i,a){return S(C(S(S(t,e),S(r,a)),i),n)}function r(e,t,r,i,a,o,s){return n(t&r|~t&i,e,t,a,o,s)}function i(e,t,r,i,a,o,s){return n(t&i|r&~i,e,t,a,o,s)}function a(e,t,r,i,a,o,s){return n(t^r^i,e,t,a,o,s)}function o(e,t,r,i,a,o,s){return n(r^(t|~i),e,t,a,o,s)}e[t>>5]|=128<<t%32,e[(t+64>>>9<<4)+14]=t;let s=1732584193,c=-271733879,l=-1732584194,u=271733878;for(let t=0;t<e.length;t+=16){let n=s,d=c,f=l,p=u;s=r(s,c,l,u,e[t+0],7,-680876936),u=r(u,s,c,l,e[t+1],12,-389564586),l=r(l,u,s,c,e[t+2],17,606105819),c=r(c,l,u,s,e[t+3],22,-1044525330),s=r(s,c,l,u,e[t+4],7,-176418897),u=r(u,s,c,l,e[t+5],12,1200080426),l=r(l,u,s,c,e[t+6],17,-1473231341),c=r(c,l,u,s,e[t+7],22,-45705983),s=r(s,c,l,u,e[t+8],7,1770035416),u=r(u,s,c,l,e[t+9],12,-1958414417),l=r(l,u,s,c,e[t+10],17,-42063),c=r(c,l,u,s,e[t+11],22,-1990404162),s=r(s,c,l,u,e[t+12],7,1804603682),u=r(u,s,c,l,e[t+13],12,-40341101),l=r(l,u,s,c,e[t+14],17,-1502002290),c=r(c,l,u,s,e[t+15],22,1236535329),s=i(s,c,l,u,e[t+1],5,-165796510),u=i(u,s,c,l,e[t+6],9,-1069501632),l=i(l,u,s,c,e[t+11],14,643717713),c=i(c,l,u,s,e[t+0],20,-373897302),s=i(s,c,l,u,e[t+5],5,-701558691),u=i(u,s,c,l,e[t+10],9,38016083),l=i(l,u,s,c,e[t+15],14,-660478335),c=i(c,l,u,s,e[t+4],20,-405537848),s=i(s,c,l,u,e[t+9],5,568446438),u=i(u,s,c,l,e[t+14],9,-1019803690),l=i(l,u,s,c,e[t+3],14,-187363961),c=i(c,l,u,s,e[t+8],20,1163531501),s=i(s,c,l,u,e[t+13],5,-1444681467),u=i(u,s,c,l,e[t+2],9,-51403784),l=i(l,u,s,c,e[t+7],14,1735328473),c=i(c,l,u,s,e[t+12],20,-1926607734),s=a(s,c,l,u,e[t+5],4,-378558),u=a(u,s,c,l,e[t+8],11,-2022574463),l=a(l,u,s,c,e[t+11],16,1839030562),c=a(c,l,u,s,e[t+14],23,-35309556),s=a(s,c,l,u,e[t+1],4,-1530992060),u=a(u,s,c,l,e[t+4],11,1272893353),l=a(l,u,s,c,e[t+7],16,-155497632),c=a(c,l,u,s,e[t+10],23,-1094730640),s=a(s,c,l,u,e[t+13],4,681279174),u=a(u,s,c,l,e[t+0],11,-358537222),l=a(l,u,s,c,e[t+3],16,-722521979),c=a(c,l,u,s,e[t+6],23,76029189),s=a(s,c,l,u,e[t+9],4,-640364487),u=a(u,s,c,l,e[t+12],11,-421815835),l=a(l,u,s,c,e[t+15],16,530742520),c=a(c,l,u,s,e[t+2],23,-995338651),s=o(s,c,l,u,e[t+0],6,-198630844),u=o(u,s,c,l,e[t+7],10,1126891415),l=o(l,u,s,c,e[t+14],15,-1416354905),c=o(c,l,u,s,e[t+5],21,-57434055),s=o(s,c,l,u,e[t+12],6,1700485571),u=o(u,s,c,l,e[t+3],10,-1894986606),l=o(l,u,s,c,e[t+10],15,-1051523),c=o(c,l,u,s,e[t+1],21,-2054922799),s=o(s,c,l,u,e[t+8],6,1873313359),u=o(u,s,c,l,e[t+15],10,-30611744),l=o(l,u,s,c,e[t+6],15,-1560198380),c=o(c,l,u,s,e[t+13],21,1309151649),s=o(s,c,l,u,e[t+4],6,-145523070),u=o(u,s,c,l,e[t+11],10,-1120210379),l=o(l,u,s,c,e[t+2],15,718787259),c=o(c,l,u,s,e[t+9],21,-343485551),s=S(s,n),c=S(c,d),l=S(l,f),u=S(u,p)}return[s,c,l,u]},D=function(e){return s(E(o(e,{ibits:8,obits:32,obigendian:!1}),e.length*8),{ibits:32,ibigendian:!1})},O=function(e){this.mul=c(88,81,244,45,76,149,127,45),this.inc=c(20,5,123,126,247,103,129,79),this.mask=c(0,0,0,0,255,255,255,255),this.state=u(this.inc),this.next(),g(this.state,this.mask);let t;e===void 0?typeof window==`object`&&typeof window.crypto==`object`&&typeof window.crypto.getRandomValues==`function`?(t=new Uint32Array(2),window.crypto.getRandomValues(t),e=_(d(t[0]>>>0),y(d(t[1]>>>0),32))):typeof globalThis==`object`&&typeof globalThis.crypto==`object`&&typeof globalThis.crypto.getRandomValues==`function`?(t=new Uint32Array(2),globalThis.crypto.getRandomValues(t),e=_(d(t[0]>>>0),y(d(t[1]>>>0),32))):(e=d(Math.random()*4294967295>>>0),_(e,y(d(new Date().getTime()),32))):e=d(e>>>0),_(this.state,e),this.next()};O.prototype.next=function(){let e=u(this.state);h(this.state,this.mul),p(this.state,this.inc);let t=u(e);y(t,18),x(t,e),y(t,27);let n=u(e);y(n,59),g(t,this.mask);let r=f(n),i=u(t);return b(i,32-r),y(t,r),x(t,i),f(t)},O.prototype.reseed=function(e){if(typeof e!=`string`)throw Error(`UUID: PCG: seed: invalid argument (string expected)`);let t=w(o(e,{ibits:8,obits:32,obigendian:!0}),e.length*8);for(let e=0;e<t.length;e++)x(k.state,d(t[e]>>>0))};let k=new O;O.reseed=function(e){k.reseed(e)};let A=function(e,t){let n=[];for(let r=0;r<e;r++)n[r]=k.next()%t;return n},j=0,M=0,N=function(){if(arguments.length===1&&typeof arguments[0]==`string`)this.parse.apply(this,arguments);else if(arguments.length>=1&&typeof arguments[0]==`number`)this.make.apply(this,arguments);else if(arguments.length>=1)throw Error(`UUID: constructor: invalid arguments`);else for(let e=0;e<16;e++)this[e]=0};return N.prototype=typeof Uint8Array<`u`?new Uint8Array(16):typeof Buffer<`u`?Buffer.alloc(16):Array(16),N.prototype.constructor=N,N.prototype.make=function(e){let t,n=this;if(e===1){let e=new Date().getTime();e===j?M++:M=0,j=e;let r=d(e);m(r,1e4),p(r,c(1,178,29,210,19,129,64,0)),M>0&&p(r,d(M));let i;i=v(r,8),n[3]=i&255,i=v(r,8),n[2]=i&255,i=v(r,8),n[1]=i&255,i=v(r,8),n[0]=i&255,i=v(r,8),n[5]=i&255,i=v(r,8),n[4]=i&255,i=v(r,8),n[7]=i&255,i=v(r,8),n[6]=i&15;let a=A(2,255);n[8]=a[0],n[9]=a[1];let o=A(6,255);for(o[0]|=3,t=0;t<6;t++)n[10+t]=o[t]}else if(e===4){let e=A(16,255);for(t=0;t<16;t++)this[t]=e[t]}else if(e===3||e===5){let r=``,i=typeof arguments[1]==`object`&&arguments[1]instanceof N?arguments[1]:new N().parse(arguments[1]);for(t=0;t<16;t++)r+=String.fromCharCode(i[t]);r+=arguments[2];let a=e===3?D(r):T(r);for(t=0;t<16;t++)n[t]=a.charCodeAt(t)}else throw Error(`UUID: make: invalid version`);return n[6]&=15,n[6]|=e<<4,n[8]&=63,n[8]|=128,n},N.prototype.format=function(t){let n,r;if(t===`z85`)n=i(this,16);else if(t===`b16`)r=Array(32),e(this,0,15,!0,r,0),n=r.join(``);else if(t===void 0||t===`std`)r=Array(36),e(this,0,3,!1,r,0),r[8]=`-`,e(this,4,5,!1,r,9),r[13]=`-`,e(this,6,7,!1,r,14),r[18]=`-`,e(this,8,9,!1,r,19),r[23]=`-`,e(this,10,15,!1,r,24),n=r.join(``);else throw Error(`UUID: format: invalid type argument`);return n},N.prototype.toString=function(e){return this.format(e)},N.prototype.toJSON=function(){return this.format(`std`)},N.prototype.parse=function(e,n){if(typeof e!=`string`)throw Error(`UUID: parse: invalid argument (type string expected)`);if(n===`z85`)a(e,this);else if(n===`b16`)t(e,0,35,this,0);else if(n===void 0||n===`std`){let n={nil:`00000000-0000-0000-0000-000000000000`,"ns:DNS":`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,"ns:URL":`6ba7b811-9dad-11d1-80b4-00c04fd430c8`,"ns:OID":`6ba7b812-9dad-11d1-80b4-00c04fd430c8`,"ns:X500":`6ba7b814-9dad-11d1-80b4-00c04fd430c8`};if(n[e]!==void 0)e=n[e];else if(!e.match(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/))throw Error(`UUID: parse: invalid string representation (expected "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")`);t(e,0,7,this,0),t(e,9,12,this,4),t(e,14,17,this,6),t(e,19,22,this,8),t(e,24,35,this,10)}return this},N.prototype.export=function(){let e=Array(16);for(let t=0;t<16;t++)e[t]=this[t];return e},N.prototype.import=function(e){if(!(typeof e==`object`&&e instanceof Array))throw Error(`UUID: import: invalid argument (type Array expected)`);if(e.length!==16)throw Error(`UUID: import: invalid argument (Array of length 16 expected)`);for(let t=0;t<16;t++){if(typeof e[t]!=`number`)throw Error(`UUID: import: invalid array element #`+t+` (type Number expected)`);if(!(isFinite(e[t])&&Math.floor(e[t])===e[t]))throw Error(`UUID: import: invalid array element #`+t+` (Number with integer value expected)`);if(!(e[t]>=0&&e[t]<=255))throw Error(`UUID: import: invalid array element #`+t+` (Number with integer value in range 0...255 expected)`);this[t]=e[t]}return this},N.prototype.compare=function(e){if(typeof e!=`object`||!(e instanceof N))throw Error(`UUID: compare: invalid argument (type UUID expected)`);for(let t=0;t<16;t++)if(this[t]<e[t])return-1;else if(this[t]>e[t])return 1;return 0},N.prototype.equal=function(e){return this.compare(e)===0},N.prototype.fold=function(e){if(e===void 0)throw Error(`UUID: fold: invalid argument (number of fold operations expected)`);if(e<1||e>4)throw Error(`UUID: fold: invalid argument (1-4 fold operations expected)`);let t=16/2**e,n=Array(t);for(let e=0;e<t;e++){let r=0;for(let n=0;e+n<16;n+=t)r^=this[e+n];n[e]=r}return n},N.PCG=O,N})}))(),1),D=e=>e.attrs.findLast(e=>e.key===`primary`)?.val===`true`,O=e=>D(e)?{fill:`color-node-primary-box`,stroke:`color-node-primary-border`,text:`color-node-primary-name`}:{fill:`color-node-regular-box`,stroke:`color-node-regular-border`,text:`color-node-regular-name`},k=e=>e.attrs.findLast(e=>e.key===`type`)?.val,A=new Set([`url`,`type`,`primary`,`group`]),j=e=>e.attrs.filter(e=>!A.has(e.key)),M=/^\s*([A-Za-z][A-Za-z0-9+.-]*):/,N=[`http`,`https`,`mailto`],ee=e=>{let t=e.attrs.findLast(e=>e.key===`url`)?.val;if(t===void 0)return;let n=t.replace(/[\u0000-\u001F\u007F]/g,``),r=M.exec(n);if(!(r!==null&&!N.includes(r[1].toLowerCase())))return n},P=(e,t)=>{let n=t[`size-node-width-max`]>0?t[`size-node-width-max`]-36:0,r=k(e);return{name:y(e.name,30,n),type:r===void 0?[]:y(r,16,n),attrs:j(e).flatMap(e=>y(`${e.key}: ${e.val}`,22,n))}},F=(e,t,n)=>{let r=new Map,i=new Map,a=new Map;for(let o of e){let e=P(o,t),s=0;for(let t of e.name)s=Math.max(s,v(t,30));for(let t of e.type)s=Math.max(s,v(t,16));for(let t of e.attrs)s=Math.max(s,v(t,22));let c=56+(e.name.length-1)*34+e.type.length*26+(e.attrs.length>0?e.attrs.length*30+12:0);r.set(o.id,Math.max(t[`size-node-width-min`],Math.ceil(s)+36)),i.set(o.id,Math.ceil(c*n(o))),a.set(o.id,c)}return{boxW:r,boxH:i,contentH:a}},I=10,te=e=>{let t=[...e];for(let e=t.length-2;e>0;e--){let[n,r,i]=[t[e-1],t[e],t[e+1]];(n[0]===r[0]&&r[0]===i[0]||n[1]===r[1]&&r[1]===i[1])&&t.splice(e,1)}let n=[];for(let e of t)n.length>0&&n[n.length-1][0]===e[0]&&n[n.length-1][1]===e[1]||n.push(e);return n},L=(e,t,n,r,i,a,o,s)=>{let c=new Map,l=(e,t,n)=>{let r=c.get(e);r===void 0?c.set(e,[{edge:t,role:n}]):r.push({edge:t,role:n})};e.forEach((e,n)=>{l(`${e.source}:${t[n].s}`,n,`s`),l(`${e.target}:${t[n].t}`,n,`t`)});let u=new Map;for(let[t,l]of c){let c=t.lastIndexOf(`:`),d=t.slice(0,c),f=t.slice(c+1);if(f===`n`){l.sort((e,t)=>t.edge-e.edge);let e=Math.min(o,(i.get(d)-I)/l.length);l.forEach((t,i)=>{u.set(`${t.edge}:${t.role}`,{x:n(d)+(i-(l.length-1)/2)*e,y:r(d)-a.get(d)/2})});continue}let p=t=>t.role===`s`?e[t.edge].target:e[t.edge].source,m=e=>s?.(e.edge)??r(p(e));l.sort((e,t)=>m(e)-m(t)||e.edge-t.edge);let h=Math.min(o,(a.get(d)-I)/l.length);l.forEach((e,t)=>{u.set(`${e.edge}:${e.role}`,{x:n(d)+(f===`e`?1:-1)*i.get(d)/2,y:r(d)+(t-(l.length-1)/2)*h})})}return u},R=24,ne=(e,t,n,r)=>{let i=(e,t)=>{let n=t?-1:1,r=e.filter(e=>e.posOut<e.posIn).sort((e,t)=>n*(e.posIn-t.posIn||e.posOut-t.posOut)),i=e.filter(e=>e.posOut>=e.posIn).sort((e,t)=>n*(t.posIn-e.posIn||t.posOut-e.posOut));return[...r,...i]},a=[...i(e.filter(e=>!e.mirror),!1),...i(e.filter(e=>e.mirror),!0)],o=(e,t)=>Math.min(e.posIn,e.posOut)<Math.max(t.posIn,t.posOut)+R&&Math.min(t.posIn,t.posOut)<Math.max(e.posIn,e.posOut)+R,s=new Map,c=0;a.forEach((e,t)=>{let n=0;for(let r=0;r<t;r++)o(a[r],e)&&(n=Math.max(n,s.get(a[r].edge)+1));s.set(e.edge,n),c=Math.max(c,n+1)});let l=Math.min(r,(t-n)/Math.max(c-1,1)),u=new Map;for(let[e,t]of s)u.set(e,(t-(c-1)/2)*l);return u},re=e=>{let t=[];return e.forEach((e,n)=>{for(let r=0;r<e.length-1;r++){let[i,a]=[e[r],e[r+1]];i[0]===a[0]&&t.push({owner:n,x:i[0],y1:Math.min(i[1],a[1]),y2:Math.max(i[1],a[1])})}}),e.map((e,n)=>{let r=new Map;for(let i=0;i<e.length-1;i++){let[a,o]=[e[i],e[i+1]];if(a[1]!==o[1])continue;let s=a[1],c=Math.min(a[0],o[0]),l=Math.max(a[0],o[0]),u=[];for(let e of t)e.owner!==n&&e.x>c+1&&e.x<l-1&&s>e.y1+1&&s<e.y2-1&&u.push(e.x);u.length>0&&r.set(i,u)}return r})},ie=(e,t)=>Math.abs(t[0]-e[0])+Math.abs(t[1]-e[1]),ae=(e,t,n,r)=>{let i=i=>{if(i<=0||i>=e.length-1)return 0;let a=Math.min(n,ie(e[i-1],e[i])/2,ie(e[i],e[i+1])/2);for(let n of[i-1,i])for(let o of t.get(n)??[])a=Math.min(a,Math.max(Math.abs(o-e[i][0])-r-2,4));return a},a=[];for(let n=0;n<e.length-1;n++){let[o,s]=[e[n],e[n+1]],c=ie(o,s),l=(s[0]-o[0])/c,u=(s[1]-o[1])/c,d=i(n),f=i(n+1),p=[o[0]+l*d,o[1]+u*d],m=[s[0]-l*f,s[1]-u*f];if(n===0&&a.push(`M ${p[0]} ${p[1]}`),o[1]===s[1]&&t.has(n)){let e=Math.sign(s[0]-o[0]),i=t.get(n).filter(t=>(t-p[0])*e>2&&(m[0]-t)*e>2).sort((t,n)=>(t-n)*e),c=[];for(let e of i){let t=c[c.length-1];t!==void 0&&Math.abs(e-t[t.length-1])<=r*2+14?t.push(e):c.push([e])}for(let t of c){let n=t[0]-e*r,i=t[t.length-1]+e*r;(n-p[0])*e<0&&(n=p[0]),(m[0]-i)*e<0&&(i=m[0]),a.push(`L ${n} ${o[1]}`),a.push(`A ${Math.abs(i-n)/2} ${r} 0 0 ${+(e>0)} ${i} ${o[1]}`)}}if(a.push(`L ${m[0]} ${m[1]}`),n<e.length-2){let t=e[n+1],r=e[n+2],i=ie(t,r),o=[t[0]+(r[0]-t[0])/i*f,t[1]+(r[1]-t[1])/i*f];a.push(`Q ${s[0]} ${s[1]} ${o[0]} ${o[1]}`)}}return a.join(` `)},oe=(e,t)=>{let n=e.slice(0,-1).map((t,n)=>ie(t,e[n+1])),r=n.reduce((e,t)=>e+t,0)*t;for(let t=0;t<n.length;t++){if(r<=n[t]||t===n.length-1){let i=n[t]>0?r/n[t]:0;return{x:e[t][0]+(e[t+1][0]-e[t][0])*Math.min(i,1),y:e[t][1]+(e[t+1][1]-e[t][1])*Math.min(i,1),horizontal:e[t][1]===e[t+1][1]}}r-=n[t]}return{x:e[0][0],y:e[0][1],horizontal:!0}},se=e=>e.replace(/[\\"']/g,`\\$&`).replace(/[\r\n\f]/g,` `),ce=new E.default(5,`ns:URL`,`https://github.com/rse/gradia`).format(),le=e=>`gradia-${new E.default(5,ce,e).format(`b16`).toLowerCase()}`,ue=18,de=12,z=e=>{let{nodes:t,cx:n,cy:r,boxW:i,boxH:a}=e,o=t.map(e=>[n(e.id)-i.get(e.id)/2,r(e.id)-a.get(e.id)/2,n(e.id)+i.get(e.id)/2,r(e.id)+a.get(e.id)/2]);for(let t of e.groups??[])o.push([t.x+ue,t.y+de,t.x+ue+v(t.name,24),t.y+de+24*1.2]);let s=e=>o.some(t=>e[0]<t[2]&&e[2]>t[0]&&e[1]<t[3]&&e[3]>t[1]);return{claim:e=>{let t=e.find(e=>!s(e))??e[0];return o.push(t),t},occupied:o}},fe=(e,t,n,r,i,a)=>{let{cx:o,cy:s,boxW:c,boxH:l,contentH:u}=t,d=c.get(e.id),f=l.get(e.id),p=o(e.id)-d/2,m=s(e.id)-f/2,h=P(e,a),g=ee(e),_=[];_.push(`<rect x="${p}" y="${m}" width="${d}" height="${f}" rx="6" style="fill: ${i(n.fill)}; stroke: ${i(n.stroke)}" stroke-width="4.0"${n.dash===void 0?``:` stroke-dasharray="${b(n.dash)}"`}/>`);let v=s(e.id)-u.get(e.id)/2,y=h.type.length*26,x=(h.name.length-1)*34,S=h.attrs.length>0?v+y+28+30*.36:s(e.id)+y/2+30*.36-x/2;return h.type.forEach((t,a)=>{_.push(`<text x="${o(e.id)}" y="${S-36-(h.type.length-1-a)*26}" text-anchor="middle" font-size="16" style="font-family: ${r}; fill: ${i(n.text)}">${b(t)}</text>`)}),h.name.forEach((t,a)=>{_.push(`<text x="${o(e.id)}" y="${S+a*34}" text-anchor="middle" font-size="30" font-weight="600" style="font-family: ${r}; fill: ${i(n.text)}">${b(t)}</text>`)}),h.attrs.forEach((t,a)=>{_.push(`<text x="${o(e.id)}" y="${v+y+x+56+12+a*30}" text-anchor="middle" font-size="22" style="font-family: ${r}; fill: ${i(n.text)}">${b(t)}</text>`)}),g===void 0?_:[`<a href="${b(g)}" xlink:href="${b(g)}">`,..._,`</a>`]},pe=(e,t,n)=>{let{polys:r}=e,[i,a,o,s]=[1/0,1/0,-1/0,-1/0];for(let[e,n,r,c]of t)i=Math.min(i,e),a=Math.min(a,n),o=Math.max(o,r),s=Math.max(s,c);for(let e of r)for(let[t,n]of e)i=Math.min(i,t),a=Math.min(a,n),o=Math.max(o,t),s=Math.max(s,n);return Number.isFinite(i)||([i,a,o,s]=[0,0,0,0]),{x:Math.floor(i-n/2),y:Math.floor(a-n/2),w:Math.ceil(o-i+n),h:Math.ceil(s-a+n)}},me=(e,t,n,r,i)=>{let a=`stroke-width="4.5" paint-order="stroke" stroke-linejoin="round"`,o=[];if(e.name!==void 0){let s=v(e.name,16),c=[];for(let e of[.5,.4,.6,.3,.7,.2,.8]){let n=oe(t,e);n.horizontal?(c.push([n.x-s/2,n.y-23,n.x+s/2,n.y-3]),c.push([n.x-s/2,n.y+3,n.x+s/2,n.y+23])):(c.push([n.x+5,n.y-10,n.x+5+s,n.y+10]),c.push([n.x-5-s,n.y-10,n.x-5,n.y+10]))}let l=n(c);o.push(`<text x="${(l[0]+l[2])/2}" y="${l[3]-3}" text-anchor="middle" font-size="16" style="font-family: ${r}; fill: ${i(`color-edge-name`)}; stroke: ${i(`color-edge-halo`)}" ${a}>${b(e.name)}</text>`)}if(e.arity!==void 0){let s=v(e.arity,16),c=oe(t,1),l=oe(t,.999),u;if(c.horizontal){let e=Math.sign(c.x-l.x)||1,t=c.x-e*(24+s/2);u=[[t-s/2,c.y-17,t+s/2,c.y-4],[t-s/2,c.y+4,t+s/2,c.y+17],[t-s/2-e*14,c.y-17,t+s/2-e*14,c.y-4]]}else{let e=Math.sign(c.y-l.y)||1,t=c.y-e*24;u=[[c.x+6,t-7,c.x+6+s,t+6],[c.x-6-s,t-7,c.x-6,t+6],[c.x+6,t-7-e*14,c.x+6+s,t+6-e*14]]}let d=n(u);o.push(`<text x="${(d[0]+d[2])/2}" y="${d[3]-3}" text-anchor="middle" font-size="16" style="font-family: ${r}; fill: ${i(`color-edge-arity`)}; stroke: ${i(`color-edge-halo`)}" ${a}>${b(e.arity)}</text>`)}return o},he=(e,t,n,r)=>{let{nodes:i,edges:a,polys:o}=e,s=e.groups??[],c=e.styleOf??O,l=e=>b(m(n,e)),u=`${le(r)}-arrow`,{family:d,embed:f,weight:p}=_(t),h=b(`${Object.hasOwn(n,`font-family`)?`'${se(d)}'`:`var(--gradia-font-family, '${se(d)}')`}, ui-sans-serif, -apple-system, Helvetica, Arial, sans-serif`),g=re(o),{claim:v,occupied:y}=z(e),x=[],S=[];a.forEach((e,n)=>{x.push(`<path d="${ae(o[n],g[n],t[`size-edge-corner-radius`],t[`size-edge-hop-radius`])}" fill="none" style="stroke: ${l(`color-edge-line`)}" stroke-width="3.0" marker-end="url(#${u})"/>`),S.push(...me(e,o[n],v,h,l))});let C=i.flatMap(n=>fe(n,e,c(n),h,l,t)),w=s.flatMap(e=>[`<rect x="${e.x}" y="${e.y}" width="${e.w}" height="${e.h}" rx="12" style="fill: ${l(`color-group-box`)}; stroke: ${l(`color-group-border`)}" stroke-width="3.0"/>`,`<text x="${e.x+ue}" y="${e.y+de+24}" font-size="24" font-weight="600" style="font-family: ${h}; fill: ${l(`color-group-name`)}">${b(e.name)}</text>`]),T=s.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),E=pe(e,[...y,...T],t[`size-canvas-margin`]);return[`<?xml version="1.0" encoding="UTF-8"?>`,`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="${E.x} ${E.y} ${E.w} ${E.h}" width="${E.w}" height="${E.h}">`,`<defs>`,...f===void 0?[]:[`<style>`,`@font-face { font-family: "${b(se(d))}"; `+(p===void 0?``:`font-weight: ${b(se(p))}; `)+`src: url(data:font/woff2;base64,${f}) format("woff2"); }`,`</style>`],`<marker id="${u}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="21" markerHeight="21" markerUnits="userSpaceOnUse" orient="auto-start-reverse">`,`<path d="M 0 1 L 9 5 L 0 9 z" style="fill: ${l(`color-edge-line`)}"/>`,`</marker>`,`</defs>`,...w,...x,...C,...S,`</svg>`,``].join(`
5
+ `)};function ge(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}var _e={abs:Math.abs,ceil:Math.ceil,floor:Math.floor,max:Math.max,min:Math.min,round:Math.round,sqrt:Math.sqrt,pow:Math.pow},B=class extends Error{constructor(e,t,n){super(e),this.position=t,this.token=n,this.name=`ExpressionError`}},V;(function(e){e[e.STRING=0]=`STRING`,e[e.NUMBER=1]=`NUMBER`,e[e.BOOLEAN=2]=`BOOLEAN`,e[e.NULL=3]=`NULL`,e[e.IDENTIFIER=4]=`IDENTIFIER`,e[e.OPERATOR=5]=`OPERATOR`,e[e.FUNCTION=6]=`FUNCTION`,e[e.DOT=7]=`DOT`,e[e.BRACKET_LEFT=8]=`BRACKET_LEFT`,e[e.BRACKET_RIGHT=9]=`BRACKET_RIGHT`,e[e.PAREN_LEFT=10]=`PAREN_LEFT`,e[e.PAREN_RIGHT=11]=`PAREN_RIGHT`,e[e.COMMA=12]=`COMMA`,e[e.QUESTION=13]=`QUESTION`,e[e.COLON=14]=`COLON`,e[e.DOLLAR=15]=`DOLLAR`})(V||={});var ve=new Set([32,9,10,13]),ye=new Set([43,45,42,47,37,33,38,124,61,60,62]),be=new Map([[`true`,V.BOOLEAN],[`false`,V.BOOLEAN],[`null`,V.NULL]]),xe=new Map([[`===`,!0],[`!==`,!0],[`<=`,!0],[`>=`,!0],[`&&`,!0],[`||`,!0],[`+`,!0],[`-`,!0],[`*`,!0],[`/`,!0],[`%`,!0],[`!`,!0],[`<`,!0],[`>`,!0]]),Se=new Map([[46,V.DOT],[91,V.BRACKET_LEFT],[93,V.BRACKET_RIGHT],[40,V.PAREN_LEFT],[41,V.PAREN_RIGHT],[44,V.COMMA],[63,V.QUESTION],[58,V.COLON],[36,V.DOLLAR]]),Ce=new Map;for(let[e,t]of Se.entries())Ce.set(e,{type:t,value:String.fromCharCode(e)});function we(e){return e>=48&&e<=57}function Te(e){return e>=97&&e<=122||e>=65&&e<=90||e===95}function Ee(e){return Te(e)||we(e)}function De(e){return ye.has(e)}var H;(function(e){e[e.Program=0]=`Program`,e[e.Literal=1]=`Literal`,e[e.Identifier=2]=`Identifier`,e[e.MemberExpression=3]=`MemberExpression`,e[e.CallExpression=4]=`CallExpression`,e[e.BinaryExpression=5]=`BinaryExpression`,e[e.UnaryExpression=6]=`UnaryExpression`,e[e.ConditionalExpression=7]=`ConditionalExpression`})(H||={});var Oe=new Map([[`||`,2],[`&&`,3],[`===`,4],[`!==`,4],[`>`,5],[`>=`,5],[`<`,5],[`<=`,5],[`+`,6],[`-`,6],[`*`,7],[`/`,7],[`%`,7],[`!`,8]]),ke={type:H.Literal,value:null},Ae={type:H.Literal,value:!0},je={type:H.Literal,value:!1},Me=e=>{let t=0,n=e.length,r=()=>t>=n?null:e[t],i=()=>e[t++],a=e=>{let t=r();return t!==null&&t.type===e},o=e=>e.type===V.OPERATOR?Oe.get(e.value)||-1:e.type===V.DOT||e.type===V.BRACKET_LEFT?9:e.type===V.QUESTION?1:-1,s=e=>{let n,o;if(i().type===V.DOT){if(!a(V.IDENTIFIER)){let e=r();throw new B(`Expected property name`,t,e?e.value:`<end of input>`)}let e=i();n={type:H.Identifier,name:e.value},o=!1}else{if(n=l(0),!a(V.BRACKET_RIGHT)){let e=r();throw new B(`Expected closing bracket`,t,e?e.value:`<end of input>`)}i(),o=!0}return{type:H.MemberExpression,object:e,property:n,computed:o}},c=()=>{let e=r();if(!e)throw new B(`Unexpected end of input`,t,`<end of input>`);if(e.type===V.OPERATOR&&(e.value===`!`||e.value===`-`)){i();let t=c();return{type:H.UnaryExpression,operator:e.value,argument:t,prefix:!0}}switch(e.type){case V.NUMBER:return i(),{type:H.Literal,value:Number(e.value)};case V.STRING:return i(),{type:H.Literal,value:e.value};case V.BOOLEAN:return i(),e.value===`true`?Ae:je;case V.NULL:return i(),ke;case V.IDENTIFIER:return i(),{type:H.Identifier,name:e.value};case V.FUNCTION:return(()=>{let e=i(),n=[];if(!a(V.PAREN_LEFT)){let e=r();throw new B(`Expected opening parenthesis after function name`,t,e?e.value:`<end of input>`)}for(i();;){if(a(V.PAREN_RIGHT)){i();break}if(!r()){let e=r();throw new B(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}if(n.length>0){if(!a(V.COMMA)){let e=r();throw new B(`Expected comma between function arguments`,t,e?e.value:`<end of input>`)}i()}let e=l(0);n.push(e)}return{type:H.CallExpression,callee:{type:H.Identifier,name:e.value},arguments:n}})();case V.PAREN_LEFT:{i();let e=l(0);if(!a(V.PAREN_RIGHT)){let e=r();throw new B(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}return i(),e}default:throw new B(`Unexpected token: ${e.type}`,t,e.value)}},l=(u=0)=>{let d=c();for(;t<n;){let n=e[t],c=o(n);if(c<=u)break;if(n.type!==V.QUESTION){if(n.type!==V.OPERATOR){if(n.type!==V.DOT&&n.type!==V.BRACKET_LEFT)break;d=s(d)}else{i();let e=l(c);d={type:H.BinaryExpression,operator:n.value,left:d,right:e}}}else{i();let e=l(0);if(!a(V.COLON)){let e=r();throw new B(`Expected : in conditional expression`,t,e?e.value:`<end of input>`)}i();let n=l(0);d={type:H.ConditionalExpression,test:d,consequent:e,alternate:n}}}return d},u=l();return{type:H.Program,body:u}},Ne=(e,t,n)=>{let r=t;n&&(r={...t,context:{...t.context,...n}});let i=e=>{switch(e.type){case H.Literal:return(e=>e.value)(e);case H.Identifier:return(e=>{if(!(e.name in r.context))throw new B(`Undefined variable: ${e.name}`);return r.context[e.name]})(e);case H.MemberExpression:return(e=>{let t=i(e.object);if(t==null)throw new B(`Cannot access property of null or undefined`);return t[e.computed?i(e.property):e.property.name]})(e);case H.CallExpression:return(e=>{let t=r.functions[e.callee.name];if(!t)throw new B(`Undefined function: ${e.callee.name}`);return t(...e.arguments.map((e=>i(e))))})(e);case H.BinaryExpression:return(e=>{if(e.operator===`&&`)return i(e.left)&&i(e.right);if(e.operator===`||`)return i(e.left)||i(e.right);let t=i(e.left),n=i(e.right);switch(e.operator){case`+`:return t+n;case`-`:return t-n;case`*`:return t*n;case`/`:return t/n;case`%`:return t%n;case`===`:return t===n;case`!==`:return t!==n;case`>`:return t>n;case`>=`:return t>=n;case`<`:return t<n;case`<=`:return t<=n;default:throw new B(`Unknown operator: ${e.operator}`)}})(e);case H.UnaryExpression:return(e=>{let t=i(e.argument);if(e.prefix)switch(e.operator){case`!`:return!t;case`-`:if(typeof t!=`number`)throw new B(`Cannot apply unary - to non-number: ${t}`);return-t;default:throw new B(`Unknown operator: ${e.operator}`)}throw new B(`Postfix operators are not supported: ${e.operator}`)})(e);case H.ConditionalExpression:return(e=>{let t=i(e.test);return i(t?e.consequent:e.alternate)})(e);default:throw new B(`Evaluation error: Unsupported node type: ${e.type}`)}};return i(e.body)};function Pe(e){let t=Me((e=>{let t=e,n=t.length,r=Array(Math.ceil(n/3)),i=0,a=0;function o(e){let r=a+1;a++;let i=``,o=!1;for(;a<n;){let n=t.charCodeAt(a);if(n===e)return o||(i=t.substring(r,a)),a++,{type:V.STRING,value:i};n===92?(o||=(i=t.substring(r,a),!0),a++,i+=t[a]):o&&(i+=t[a]),a++}throw new B(`Unterminated string starting with ${String.fromCharCode(e)}`,a,t.substring(Math.max(0,a-10),a))}function s(){let e=a;for(t.charCodeAt(a)===45&&a++;a<n&&we(t.charCodeAt(a));)a++;if(a<n&&t.charCodeAt(a)===46)for(a++;a<n&&we(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:V.NUMBER,value:r}}function c(){a++;let e=a;if(a<n&&Te(t.charCodeAt(a)))for(a++;a<n&&Ee(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:V.FUNCTION,value:r}}function l(){let e=a++;for(;a<n&&Ee(t.charCodeAt(a));)a++;let r=t.slice(e,a),i=be.get(r);return i?{type:i,value:r}:{type:V.IDENTIFIER,value:r}}function u(){if(a+2<n){let e=t.substring(a,a+3);if(xe.has(e))return a+=3,{type:V.OPERATOR,value:e}}if(a+1<n){let e=t.substring(a,a+2);if(xe.has(e))return a+=2,{type:V.OPERATOR,value:e}}let e=t[a];if(xe.has(e))return a++,{type:V.OPERATOR,value:e};throw new B(`Unknown operator at position ${a}: ${t.substring(a,a+1)}`,a,t.substring(Math.max(0,a-10),a))}for(;a<n;){let e=t.charCodeAt(a);if(d=e,ve.has(d)){a++;continue}let f=Ce.get(e);if(f)r[i++]=f,a++;else if(e!==34&&e!==39){if(we(e)||e===45&&a+1<n&&we(t.charCodeAt(a+1)))r[i++]=s();else if(e!==64){if(Te(e))r[i++]=l();else{if(!De(e))throw new B(`Unexpected character: ${t[a]}`,a,t.substring(Math.max(0,a-10),a));r[i++]=u()}}else r[i++]=c()}else r[i++]=o(e)}var d;return i===r.length?r:r.slice(0,i)})(e)),n=((e={},t={})=>({context:e,functions:t}))({},_e);return(e={})=>Ne(t,n,e)}function Fe(e,t={}){return Pe(e)(t)}function Ie(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)try{return Pe(n),Fe(n,t)}catch{return}}function Le(e){return typeof e==`number`}function Re(e){if(!e)return[0,0,0];if(Le(e))return[e,e,e];if(Array.isArray(e)&&e.length===0)return[0,0,0];let[t,n=t,r=t]=e;return[t,n,r]}function ze(e){return Le(e)?!0:Array.isArray(e)?e.every(e=>Le(e)):!1}function U(e){return e==null}function Be(e){return typeof e==`string`}function Ve(e){return typeof e==`function`}function He(e,t){if(typeof e==`function`)return e;if(typeof e==`string`){let n=e;return(...e)=>{let r={};for(let n=0;n<t.length;n++)r[t[n]]=e[n];return Ie(n,r)}}return()=>e}function Ue(e,t,n=`node`){if(U(e))return()=>t;if(Be(e)){let r=He(e,[n]);return e=>{let n=r(e);return Le(n)?n:t}}return Ve(e)?e:Le(e)?()=>e:()=>t}function We(e,t=10,n=`node`){if(U(e))return()=>t;if(Be(e)){let r=He(e,[n]);return e=>{let n=r(e);return ze(n)?n:t}}return Ve(e)?e:Le(e)||Array.isArray(e)?()=>e:()=>t}function Ge(e){return[e.x,e.y,e.z??0]}var Ke=class{constructor(e,t={}){this.edgeIdCounter=new Map,this.nodeMap=Ye(e.nodes,t.node),this.edgeMap=Xe(e.edges||[],t.edge,this.getEdgeId.bind(this))}data(){return{nodes:this.nodeMap,edges:this.edgeMap}}replace(e){this.nodeMap=e.nodes,this.edgeMap=e.edges,this.clearCache()}nodes(){return Array.from(this.nodeMap.values())}node(e){return this.nodeMap.get(e)}nodeAt(e){this.indexNodeCache||this.buildNodeIndexCache();let t=this.indexNodeCache.get(e);return t?this.nodeMap.get(t):void 0}nodeIndexOf(e){return this.nodeIndexCache||this.buildNodeIndexCache(),this.nodeIndexCache.get(e)??-1}firstNode(){return this.nodeMap.values().next().value}forEachNode(e){let t=0;this.nodeMap.forEach(n=>e(n,t++))}originalNode(e){return this.nodeMap.get(e)?._original}nodeCount(){return this.nodeMap.size}edges(){return Array.from(this.edgeMap.values())}edge(e){return this.edgeMap.get(e)}firstEdge(){return this.edgeMap.values().next().value}forEachEdge(e){let t=0;this.edgeMap.forEach(n=>e(n,t++))}originalEdge(e){return this.edgeMap.get(e)?._original}edgeCount(){return this.edgeMap.size}getEdgeId(e){if(e.id)return e.id;let t=`${e.source}-${e.target}`,n=this.edgeIdCounter.get(t)||0,r=n===0?t:`${t}-${n}`;return this.edgeIdCounter.set(t,n+1),r}degree(e,t=`both`){this.degreeCache||this.buildDegreeCache();let n=this.degreeCache.get(e);return n?n[t]:0}neighbors(e,t=`both`){if((!this.outAdjacencyCache||!this.inAdjacencyCache)&&this.buildAdjacencyCache(),t===`out`)return Array.from(this.outAdjacencyCache.get(e)||[]);if(t===`in`)return Array.from(this.inAdjacencyCache.get(e)||[]);if(this.bothAdjacencyCache)return Array.from(this.bothAdjacencyCache.get(e)||[]);let n=this.inAdjacencyCache.get(e),r=this.outAdjacencyCache.get(e);if(!n&&!r)return[];if(!n)return Array.from(r);if(!r)return Array.from(n);let i=new Set;return n.forEach(e=>i.add(e)),r.forEach(e=>i.add(e)),Array.from(i)}successors(e){return this.neighbors(e,`out`)}predecessors(e){return this.neighbors(e,`in`)}setNodeOrder(e){let t=new Map;for(let n of e)t.set(n.id,n);this.nodeMap=t,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}clearCache(){this.degreeCache=void 0,this.inAdjacencyCache=void 0,this.outAdjacencyCache=void 0,this.bothAdjacencyCache=void 0,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}buildDegreeCache(){this.degreeCache=new Map;for(let e of this.edges()){let{source:t,target:n}=e;if(e.source===e.target)continue;this.degreeCache.has(t)||this.degreeCache.set(t,{in:0,out:0,both:0});let r=this.degreeCache.get(e.source);r&&(r.out++,r.both++),this.degreeCache.has(n)||this.degreeCache.set(n,{in:0,out:0,both:0});let i=this.degreeCache.get(e.target);i&&(i.in++,i.both++)}}buildAdjacencyCache(){this.inAdjacencyCache=new Map,this.outAdjacencyCache=new Map;for(let e of this.edges())!this.nodeMap.has(e.source)||!this.nodeMap.has(e.target)||(this.outAdjacencyCache.has(e.source)||this.outAdjacencyCache.set(e.source,new Set),this.outAdjacencyCache.get(e.source).add(e.target),this.inAdjacencyCache.has(e.target)||this.inAdjacencyCache.set(e.target,new Set),this.inAdjacencyCache.get(e.target).add(e.source))}buildNodeIndexCache(){this.nodeIndexCache=new Map,this.indexNodeCache=new Map;let e=0;this.nodeMap.forEach((t,n)=>{this.nodeIndexCache.set(n,e),this.indexNodeCache.set(e,n),e++})}destroy(){this.clearCache(),this.nodeMap.clear(),this.edgeMap.clear(),this.edgeIdCounter.clear()}},qe=[`id`,`x`,`y`,`z`,`vx`,`vy`,`vz`,`fx`,`fy`,`fz`,`parentId`],Je=[`id`,`source`,`target`,`points`];function Ye(e,t){if(!e)throw Error(`Data.nodes is required`);let n=new Map;for(let r of e){let e={_original:r};for(let t of qe){let n=r[t];U(n)||(e[t]=n)}if(t){let n=t(r);for(let t in n){let r=n[t];U(r)||(e[t]=r)}}if(U(e.id))throw Error(`Node is missing id field`);n.set(e.id,e)}return n}function Xe(e,t,n){let r=new Map;for(let i of e){let e={_original:i};for(let t of Je){let n=i[t];U(n)||(e[t]=n)}if(t){let n=t(i);for(let t in n){let r=n[t];U(r)||(e[t]=r)}}if(U(e.source)||U(e.target))throw Error(`Edge is missing source or target field`);U(e.id)&&(e.id=n?.(i)),r.set(e.id,e)}return r}var Ze=class{constructor(e,t={}){this.graph=new Ke(e,t)}export(){return this.graph.data()}replace(e){this.graph.replace(e)}forEachNode(e){this.graph.forEachNode(e)}forEachEdge(e){this.graph.forEachEdge((t,n)=>{t.sourceNode=this.graph.node(t.source),t.targetNode=this.graph.node(t.target),e(t,n)})}destroy(){this.graph.destroy()}},Qe=Symbol(`Comlink.proxy`),$e=Symbol(`Comlink.endpoint`),et=Symbol(`Comlink.releaseProxy`),tt=Symbol(`Comlink.finalizer`),nt=Symbol(`Comlink.thrown`),rt=e=>typeof e==`object`&&!!e||typeof e==`function`,it=new Map([[`proxy`,{canHandle:e=>rt(e)&&e[Qe],serialize(e){let{port1:t,port2:n}=new MessageChannel;return ot(e,t),[n,[n]]},deserialize(e){return e.start(),lt(e)}}],[`throw`,{canHandle:e=>rt(e)&&nt in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function at(e,t){for(let n of e)if(t===n||n===`*`||n instanceof RegExp&&n.test(t))return!0;return!1}function ot(e,t=globalThis,n=[`*`]){t.addEventListener(`message`,function r(i){if(!i||!i.data)return;if(!at(n,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}let{id:a,type:o,path:s}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(Ct),l;try{let t=s.slice(0,-1).reduce((e,t)=>e[t],e),n=s.reduce((e,t)=>e[t],e);switch(o){case`GET`:l=n;break;case`SET`:t[s.slice(-1)[0]]=Ct(i.data.value),l=!0;break;case`APPLY`:l=n.apply(t,c);break;case`CONSTRUCT`:l=xt(new n(...c));break;case`ENDPOINT`:{let{port1:t,port2:n}=new MessageChannel;ot(e,n),l=bt(t,[t])}break;case`RELEASE`:l=void 0;break;default:return}}catch(e){l={value:e,[nt]:0}}Promise.resolve(l).catch(e=>({value:e,[nt]:0})).then(n=>{let[i,s]=St(n);t.postMessage(Object.assign(Object.assign({},i),{id:a}),s),o===`RELEASE`&&(t.removeEventListener(`message`,r),ct(t),tt in e&&typeof e[tt]==`function`&&e[tt]())}).catch(e=>{let[n,r]=St({value:TypeError(`Unserializable return value`),[nt]:0});t.postMessage(Object.assign(Object.assign({},n),{id:a}),r)})}),t.start&&t.start()}function st(e){return e.constructor.name===`MessagePort`}function ct(e){st(e)&&e.close()}function lt(e,t){let n=new Map;return e.addEventListener(`message`,function(e){let{data:t}=e;if(!t||!t.id)return;let r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}}),gt(e,n,[],t)}function ut(e){if(e)throw Error(`Proxy has been released and is not useable`)}function dt(e){return wt(e,new Map,{type:`RELEASE`}).then(()=>{ct(e)})}var ft=new WeakMap,pt=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(ft.get(e)||0)-1;ft.set(e,t),t===0&&dt(e)});function mt(e,t){let n=(ft.get(t)||0)+1;ft.set(t,n),pt&&pt.register(e,t,e)}function ht(e){pt&&pt.unregister(e)}function gt(e,t,n=[],r=function(){}){let i=!1,a=new Proxy(r,{get(r,o){if(ut(i),o===et)return()=>{ht(a),dt(e),t.clear(),i=!0};if(o===`then`){if(n.length===0)return{then:()=>a};let r=wt(e,t,{type:`GET`,path:n.map(e=>e.toString())}).then(Ct);return r.then.bind(r)}return gt(e,t,[...n,o])},set(r,a,o){ut(i);let[s,c]=St(o);return wt(e,t,{type:`SET`,path:[...n,a].map(e=>e.toString()),value:s},c).then(Ct)},apply(r,a,o){ut(i);let s=n[n.length-1];if(s===$e)return wt(e,t,{type:`ENDPOINT`}).then(Ct);if(s===`bind`)return gt(e,t,n.slice(0,-1));let[c,l]=vt(o);return wt(e,t,{type:`APPLY`,path:n.map(e=>e.toString()),argumentList:c},l).then(Ct)},construct(r,a){ut(i);let[o,s]=vt(a);return wt(e,t,{type:`CONSTRUCT`,path:n.map(e=>e.toString()),argumentList:o},s).then(Ct)}});return mt(a,e),a}function _t(e){return Array.prototype.concat.apply([],e)}function vt(e){let t=e.map(St);return[t.map(e=>e[0]),_t(t.map(e=>e[1]))]}var yt=new WeakMap;function bt(e,t){return yt.set(e,t),e}function xt(e){return Object.assign(e,{[Qe]:!0})}function St(e){for(let[t,n]of it)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:`HANDLER`,name:t,value:r},i]}return[{type:`RAW`,value:e},yt.get(e)||[]]}function Ct(e){switch(e.type){case`HANDLER`:return it.get(e.name).deserialize(e.value);case`RAW`:return e.value}}function wt(e,t,n,r){return new Promise(i=>{let a=Tt();t.set(a,i),e.start&&e.start(),e.postMessage(Object.assign({id:a},n),r)})}function Tt(){return[,,,,].fill(0).map(()=>Math.floor(Math.random()*(2**53-1)).toString(16)).join(`-`)}var Et=class{constructor(){this.worker=null,this.workerApi=null}execute(e,t,n){return ge(this,void 0,void 0,function*(){if(this.worker||(yield this.initWorker()),!this.workerApi)throw Error(`Worker API not initialized`);return yield this.workerApi.execute(e,t,n)})}destroy(){this.workerApi&&this.workerApi.destroy(),this.worker&&(this.worker.terminate(),this.worker=null,this.workerApi=null)}initWorker(){return ge(this,void 0,void 0,function*(){let e=this.resolveWorkerPath(),t=e.includes(`/lib/`)||e.endsWith(`.mjs`)?`module`:`classic`;this.worker=new Worker(e,{type:t}),this.workerApi=lt(this.worker)})}resolveWorkerPath(){let e=(()=>{if(typeof document>`u`)return null;let e=document.currentScript;if(e?.src)return e.src;let t=document.getElementsByTagName(`script`);for(let e=t.length-1;e>=0;e--){let n=t[e].src;if(n&&(n.includes(`index.js`)||n.includes(`index.min.js`)))return n}return null})();if(e){if(e.includes(`index.js`)||e.includes(`index.min.js`)){let t=e.replace(/index(\.min)?\.(m?js)(\?.*)?$/,`worker.js`);if(t!==e)return t}let t=e.replace(/\/runtime\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(t!==e)return t;let n=e.replace(/\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(n!==e)return n}return`./worker.js`}},Dt=class{constructor(e){this.supervisor=null,this.initialOptions=this.mergeOptions(this.getDefaultOptions(),e)}get options(){return this.runtimeOptions||this.initialOptions}mergeOptions(e,t){return Object.assign({},e,t||{})}execute(e,t){return ge(this,void 0,void 0,function*(){this.runtimeOptions=this.mergeOptions(this.initialOptions,t);let{node:n,edge:r,enableWorker:i}=this.runtimeOptions;this.context=new Ze(e,{node:n,edge:r}),this.model=this.context.graph,i&&typeof Worker<`u`?yield this.layoutInWorker(e,this.runtimeOptions):yield this.layout(this.runtimeOptions)})}layoutInWorker(e,t){var n;return ge(this,void 0,void 0,function*(){try{this.supervisor||=new Et;let r=yield this.supervisor.execute(this.id,e,t);(n=this.context)==null||n.replace(r)}catch(e){console.error(`Layout in worker failed, fallback to main thread layout.`,e),yield this.layout(t)}})}forEachNode(e){this.context.forEachNode(e)}forEachEdge(e){this.context.forEachEdge(e)}destroy(){var e;(e=this.context)==null||e.destroy(),this.model=null,this.context=null,this.supervisor&&=(this.supervisor.destroy(),null)}};function Ot(e){return Array.isArray(e)}var kt=(function(e){var t=typeof e;return e!==null&&t===`object`||t===`function`}),At=function(e){return typeof e==`object`&&!!e},jt={}.toString,Mt=function(e,t){return jt.call(e)===`[object `+t+`]`},Nt=function(e){if(!At(e)||!Mt(e,`Object`))return!1;if(Object.getPrototypeOf(e)===null)return!0;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},Pt=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function Ft(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function It(e){throw Error(`Could not dynamically require "`+e+`". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.`)}var Lt,Rt;function zt(){if(Rt)return Lt;Rt=1;function e(){this.__data__=[],this.size=0}return Lt=e,Lt}var Bt,Vt;function Ht(){if(Vt)return Bt;Vt=1;function e(e,t){return e===t||e!==e&&t!==t}return Bt=e,Bt}var Ut,Wt;function Gt(){if(Wt)return Ut;Wt=1;var e=Ht();function t(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}return Ut=t,Ut}var Kt,qt;function Jt(){if(qt)return Kt;qt=1;var e=Gt(),t=Array.prototype.splice;function n(n){var r=this.__data__,i=e(r,n);return i<0?!1:(i==r.length-1?r.pop():t.call(r,i,1),--this.size,!0)}return Kt=n,Kt}var Yt,Xt;function Zt(){if(Xt)return Yt;Xt=1;var e=Gt();function t(t){var n=this.__data__,r=e(n,t);return r<0?void 0:n[r][1]}return Yt=t,Yt}var Qt,$t;function en(){if($t)return Qt;$t=1;var e=Gt();function t(t){return e(this.__data__,t)>-1}return Qt=t,Qt}var tn,nn;function rn(){if(nn)return tn;nn=1;var e=Gt();function t(t,n){var r=this.__data__,i=e(r,t);return i<0?(++this.size,r.push([t,n])):r[i][1]=n,this}return tn=t,tn}var an,on;function sn(){if(on)return an;on=1;var e=zt(),t=Jt(),n=Zt(),r=en(),i=rn();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,an=a,an}var cn,ln;function un(){if(ln)return cn;ln=1;var e=sn();function t(){this.__data__=new e,this.size=0}return cn=t,cn}var dn,fn;function pn(){if(fn)return dn;fn=1;function e(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}return dn=e,dn}var mn,hn;function gn(){if(hn)return mn;hn=1;function e(e){return this.__data__.get(e)}return mn=e,mn}var _n,vn;function yn(){if(vn)return _n;vn=1;function e(e){return this.__data__.has(e)}return _n=e,_n}var bn,xn;function Sn(){return xn?bn:(xn=1,bn=typeof Pt==`object`&&Pt&&Pt.Object===Object&&Pt,bn)}var Cn,wn;function W(){if(wn)return Cn;wn=1;var e=Sn(),t=typeof self==`object`&&self&&self.Object===Object&&self;return Cn=e||t||Function(`return this`)(),Cn}var Tn,En;function Dn(){return En?Tn:(En=1,Tn=W().Symbol,Tn)}var On,kn;function An(){if(kn)return On;kn=1;var e=Dn(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,i=e?e.toStringTag:void 0;function a(e){var t=n.call(e,i),a=e[i];try{e[i]=void 0;var o=!0}catch{}var s=r.call(e);return o&&(t?e[i]=a:delete e[i]),s}return On=a,On}var jn,Mn;function Nn(){if(Mn)return jn;Mn=1;var e=Object.prototype.toString;function t(t){return e.call(t)}return jn=t,jn}var Pn,Fn;function In(){if(Fn)return Pn;Fn=1;var e=Dn(),t=An(),n=Nn(),r=`[object Null]`,i=`[object Undefined]`,a=e?e.toStringTag:void 0;function o(e){return e==null?e===void 0?i:r:a&&a in Object(e)?t(e):n(e)}return Pn=o,Pn}var Ln,Rn;function G(){if(Rn)return Ln;Rn=1;function e(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}return Ln=e,Ln}var zn,Bn;function Vn(){if(Bn)return zn;Bn=1;var e=In(),t=G(),n=`[object AsyncFunction]`,r=`[object Function]`,i=`[object GeneratorFunction]`,a=`[object Proxy]`;function o(o){if(!t(o))return!1;var s=e(o);return s==r||s==i||s==n||s==a}return zn=o,zn}var Hn,Un;function Wn(){return Un?Hn:(Un=1,Hn=W()[`__core-js_shared__`],Hn)}var Gn,Kn;function qn(){if(Kn)return Gn;Kn=1;var e=Wn(),t=function(){var t=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||``);return t?`Symbol(src)_1.`+t:``}();function n(e){return!!t&&t in e}return Gn=n,Gn}var Jn,Yn;function Xn(){if(Yn)return Jn;Yn=1;var e=Function.prototype.toString;function t(t){if(t!=null){try{return e.call(t)}catch{}try{return t+``}catch{}}return``}return Jn=t,Jn}var Zn,Qn;function $n(){if(Qn)return Zn;Qn=1;var e=Vn(),t=qn(),n=G(),r=Xn(),i=/[\\^$.*+?()[\]{}|]/g,a=/^\[object .+?Constructor\]$/,o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=RegExp(`^`+c.call(l).replace(i,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function d(i){return!n(i)||t(i)?!1:(e(i)?u:a).test(r(i))}return Zn=d,Zn}var er,tr;function nr(){if(tr)return er;tr=1;function e(e,t){return e?.[t]}return er=e,er}var rr,ir;function ar(){if(ir)return rr;ir=1;var e=$n(),t=nr();function n(n,r){var i=t(n,r);return e(i)?i:void 0}return rr=n,rr}var or,sr;function cr(){return sr?or:(sr=1,or=ar()(W(),`Map`),or)}var lr,ur;function dr(){return ur?lr:(ur=1,lr=ar()(Object,`create`),lr)}var fr,pr;function mr(){if(pr)return fr;pr=1;var e=dr();function t(){this.__data__=e?e(null):{},this.size=0}return fr=t,fr}var hr,gr;function _r(){if(gr)return hr;gr=1;function e(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}return hr=e,hr}var vr,yr;function br(){if(yr)return vr;yr=1;var e=dr(),t=`__lodash_hash_undefined__`,n=Object.prototype.hasOwnProperty;function r(r){var i=this.__data__;if(e){var a=i[r];return a===t?void 0:a}return n.call(i,r)?i[r]:void 0}return vr=r,vr}var xr,Sr;function Cr(){if(Sr)return xr;Sr=1;var e=dr(),t=Object.prototype.hasOwnProperty;function n(n){var r=this.__data__;return e?r[n]!==void 0:t.call(r,n)}return xr=n,xr}var wr,Tr;function Er(){if(Tr)return wr;Tr=1;var e=dr(),t=`__lodash_hash_undefined__`;function n(n,r){var i=this.__data__;return this.size+=+!this.has(n),i[n]=e&&r===void 0?t:r,this}return wr=n,wr}var Dr,Or;function kr(){if(Or)return Dr;Or=1;var e=mr(),t=_r(),n=br(),r=Cr(),i=Er();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Dr=a,Dr}var Ar,jr;function Mr(){if(jr)return Ar;jr=1;var e=kr(),t=sn(),n=cr();function r(){this.size=0,this.__data__={hash:new e,map:new(n||t),string:new e}}return Ar=r,Ar}var Nr,Pr;function Fr(){if(Pr)return Nr;Pr=1;function e(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}return Nr=e,Nr}var Ir,Lr;function Rr(){if(Lr)return Ir;Lr=1;var e=Fr();function t(t,n){var r=t.__data__;return e(n)?r[typeof n==`string`?`string`:`hash`]:r.map}return Ir=t,Ir}var zr,Br;function Vr(){if(Br)return zr;Br=1;var e=Rr();function t(t){var n=e(this,t).delete(t);return this.size-=+!!n,n}return zr=t,zr}var Hr,Ur;function Wr(){if(Ur)return Hr;Ur=1;var e=Rr();function t(t){return e(this,t).get(t)}return Hr=t,Hr}var Gr,Kr;function qr(){if(Kr)return Gr;Kr=1;var e=Rr();function t(t){return e(this,t).has(t)}return Gr=t,Gr}var Jr,Yr;function Xr(){if(Yr)return Jr;Yr=1;var e=Rr();function t(t,n){var r=e(this,t),i=r.size;return r.set(t,n),this.size+=r.size==i?0:1,this}return Jr=t,Jr}var Zr,Qr;function $r(){if(Qr)return Zr;Qr=1;var e=Mr(),t=Vr(),n=Wr(),r=qr(),i=Xr();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Zr=a,Zr}var ei,ti;function ni(){if(ti)return ei;ti=1;var e=sn(),t=cr(),n=$r(),r=200;function i(i,a){var o=this.__data__;if(o instanceof e){var s=o.__data__;if(!t||s.length<r-1)return s.push([i,a]),this.size=++o.size,this;o=this.__data__=new n(s)}return o.set(i,a),this.size=o.size,this}return ei=i,ei}var ri,ii;function ai(){if(ii)return ri;ii=1;var e=sn(),t=un(),n=pn(),r=gn(),i=yn(),a=ni();function o(t){var n=this.__data__=new e(t);this.size=n.size}return o.prototype.clear=t,o.prototype.delete=n,o.prototype.get=r,o.prototype.has=i,o.prototype.set=a,ri=o,ri}var oi,si;function ci(){if(si)return oi;si=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}return oi=e,oi}var li,ui;function di(){if(ui)return li;ui=1;var e=ar();return li=function(){try{var t=e(Object,`defineProperty`);return t({},``,{}),t}catch{}}(),li}var fi,pi;function mi(){if(pi)return fi;pi=1;var e=di();function t(t,n,r){n==`__proto__`&&e?e(t,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[n]=r}return fi=t,fi}var hi,gi;function _i(){if(gi)return hi;gi=1;var e=mi(),t=Ht(),n=Object.prototype.hasOwnProperty;function r(r,i,a){var o=r[i];(!(n.call(r,i)&&t(o,a))||a===void 0&&!(i in r))&&e(r,i,a)}return hi=r,hi}var vi,yi;function bi(){if(yi)return vi;yi=1;var e=_i(),t=mi();function n(n,r,i,a){var o=!i;i||={};for(var s=-1,c=r.length;++s<c;){var l=r[s],u=a?a(i[l],n[l],l,i,n):void 0;u===void 0&&(u=n[l]),o?t(i,l,u):e(i,l,u)}return i}return vi=n,vi}var xi,Si;function Ci(){if(Si)return xi;Si=1;function e(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}return xi=e,xi}var wi,Ti;function K(){if(Ti)return wi;Ti=1;function e(e){return typeof e==`object`&&!!e}return wi=e,wi}var Ei,Di;function Oi(){if(Di)return Ei;Di=1;var e=In(),t=K(),n=`[object Arguments]`;function r(r){return t(r)&&e(r)==n}return Ei=r,Ei}var ki,Ai;function ji(){if(Ai)return ki;Ai=1;var e=Oi(),t=K(),n=Object.prototype,r=n.hasOwnProperty,i=n.propertyIsEnumerable;return ki=e(function(){return arguments}())?e:function(e){return t(e)&&r.call(e,`callee`)&&!i.call(e,`callee`)},ki}var Mi,Ni;function q(){return Ni?Mi:(Ni=1,Mi=Array.isArray,Mi)}var Pi={exports:{}},Fi,Ii;function Li(){if(Ii)return Fi;Ii=1;function e(){return!1}return Fi=e,Fi}Pi.exports;var Ri;function zi(){return Ri?Pi.exports:(Ri=1,(function(e,t){var n=W(),r=Li(),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?n.Buffer:void 0;e.exports=(o?o.isBuffer:void 0)||r})(Pi,Pi.exports),Pi.exports)}var Bi,Vi;function Hi(){if(Vi)return Bi;Vi=1;var e=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function n(n,r){var i=typeof n;return r??=e,!!r&&(i==`number`||i!=`symbol`&&t.test(n))&&n>-1&&n%1==0&&n<r}return Bi=n,Bi}var Ui,Wi;function Gi(){if(Wi)return Ui;Wi=1;var e=9007199254740991;function t(t){return typeof t==`number`&&t>-1&&t%1==0&&t<=e}return Ui=t,Ui}var Ki,qi;function Ji(){if(qi)return Ki;qi=1;var e=In(),t=Gi(),n=K(),r=`[object Arguments]`,i=`[object Array]`,a=`[object Boolean]`,o=`[object Date]`,s=`[object Error]`,c=`[object Function]`,l=`[object Map]`,u=`[object Number]`,d=`[object Object]`,f=`[object RegExp]`,p=`[object Set]`,m=`[object String]`,h=`[object WeakMap]`,g=`[object ArrayBuffer]`,_=`[object DataView]`,v=`[object Float32Array]`,y=`[object Float64Array]`,b=`[object Int8Array]`,x=`[object Int16Array]`,S=`[object Int32Array]`,C=`[object Uint8Array]`,w=`[object Uint8ClampedArray]`,T=`[object Uint16Array]`,E=`[object Uint32Array]`,D={};D[v]=D[y]=D[b]=D[x]=D[S]=D[C]=D[w]=D[T]=D[E]=!0,D[r]=D[i]=D[g]=D[a]=D[_]=D[o]=D[s]=D[c]=D[l]=D[u]=D[d]=D[f]=D[p]=D[m]=D[h]=!1;function O(r){return n(r)&&t(r.length)&&!!D[e(r)]}return Ki=O,Ki}var Yi,Xi;function Zi(){if(Xi)return Yi;Xi=1;function e(e){return function(t){return e(t)}}return Yi=e,Yi}var Qi={exports:{}};Qi.exports;var $i;function ea(){return $i?Qi.exports:($i=1,(function(e,t){var n=Sn(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r&&n.process;e.exports=function(){try{return i&&i.require&&i.require(`util`).types||a&&a.binding&&a.binding(`util`)}catch{}}()})(Qi,Qi.exports),Qi.exports)}var ta,na;function ra(){if(na)return ta;na=1;var e=Ji(),t=Zi(),n=ea(),r=n&&n.isTypedArray;return ta=r?t(r):e,ta}var ia,aa;function oa(){if(aa)return ia;aa=1;var e=Ci(),t=ji(),n=q(),r=zi(),i=Hi(),a=ra(),o=Object.prototype.hasOwnProperty;function s(s,c){var l=n(s),u=!l&&t(s),d=!l&&!u&&r(s),f=!l&&!u&&!d&&a(s),p=l||u||d||f,m=p?e(s.length,String):[],h=m.length;for(var g in s)(c||o.call(s,g))&&!(p&&(g==`length`||d&&(g==`offset`||g==`parent`)||f&&(g==`buffer`||g==`byteLength`||g==`byteOffset`)||i(g,h)))&&m.push(g);return m}return ia=s,ia}var sa,ca;function la(){if(ca)return sa;ca=1;var e=Object.prototype;function t(t){var n=t&&t.constructor;return t===(typeof n==`function`&&n.prototype||e)}return sa=t,sa}var ua,da;function fa(){if(da)return ua;da=1;function e(e,t){return function(n){return e(t(n))}}return ua=e,ua}var pa,ma;function ha(){return ma?pa:(ma=1,pa=fa()(Object.keys,Object),pa)}var ga,_a;function va(){if(_a)return ga;_a=1;var e=la(),t=ha(),n=Object.prototype.hasOwnProperty;function r(r){if(!e(r))return t(r);var i=[];for(var a in Object(r))n.call(r,a)&&a!=`constructor`&&i.push(a);return i}return ga=r,ga}var ya,ba;function J(){if(ba)return ya;ba=1;var e=Vn(),t=Gi();function n(n){return n!=null&&t(n.length)&&!e(n)}return ya=n,ya}var xa,Sa;function Ca(){if(Sa)return xa;Sa=1;var e=oa(),t=va(),n=J();function r(r){return n(r)?e(r):t(r)}return xa=r,xa}var wa,Ta;function Ea(){if(Ta)return wa;Ta=1;var e=bi(),t=Ca();function n(n,r){return n&&e(r,t(r),n)}return wa=n,wa}var Da,Oa;function ka(){if(Oa)return Da;Oa=1;function e(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}return Da=e,Da}var Aa,ja;function Ma(){if(ja)return Aa;ja=1;var e=G(),t=la(),n=ka(),r=Object.prototype.hasOwnProperty;function i(i){if(!e(i))return n(i);var a=t(i),o=[];for(var s in i)s==`constructor`&&(a||!r.call(i,s))||o.push(s);return o}return Aa=i,Aa}var Na,Pa;function Fa(){if(Pa)return Na;Pa=1;var e=oa(),t=Ma(),n=J();function r(r){return n(r)?e(r,!0):t(r)}return Na=r,Na}var Ia,La;function Ra(){if(La)return Ia;La=1;var e=bi(),t=Fa();function n(n,r){return n&&e(r,t(r),n)}return Ia=n,Ia}var za={exports:{}};za.exports;var Ba;function Va(){return Ba?za.exports:(Ba=1,(function(e,t){var n=W(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r?n.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}e.exports=s})(za,za.exports),za.exports)}var Ha,Ua;function Wa(){if(Ua)return Ha;Ua=1;function e(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}return Ha=e,Ha}var Ga,Ka;function qa(){if(Ka)return Ga;Ka=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}return Ga=e,Ga}var Ja,Ya;function Xa(){if(Ya)return Ja;Ya=1;function e(){return[]}return Ja=e,Ja}var Za,Qa;function $a(){if(Qa)return Za;Qa=1;var e=qa(),t=Xa(),n=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols;return Za=r?function(t){return t==null?[]:(t=Object(t),e(r(t),function(e){return n.call(t,e)}))}:t,Za}var eo,to;function no(){if(to)return eo;to=1;var e=bi(),t=$a();function n(n,r){return e(n,t(n),r)}return eo=n,eo}var ro,io;function ao(){if(io)return ro;io=1;function e(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}return ro=e,ro}var oo,so;function co(){return so?oo:(so=1,oo=fa()(Object.getPrototypeOf,Object),oo)}var lo,uo;function fo(){if(uo)return lo;uo=1;var e=ao(),t=co(),n=$a(),r=Xa();return lo=Object.getOwnPropertySymbols?function(r){for(var i=[];r;)e(i,n(r)),r=t(r);return i}:r,lo}var po,mo;function ho(){if(mo)return po;mo=1;var e=bi(),t=fo();function n(n,r){return e(n,t(n),r)}return po=n,po}var go,_o;function vo(){if(_o)return go;_o=1;var e=ao(),t=q();function n(n,r,i){var a=r(n);return t(n)?a:e(a,i(n))}return go=n,go}var yo,bo;function xo(){if(bo)return yo;bo=1;var e=vo(),t=$a(),n=Ca();function r(r){return e(r,n,t)}return yo=r,yo}var So,Co;function wo(){if(Co)return So;Co=1;var e=vo(),t=fo(),n=Fa();function r(r){return e(r,n,t)}return So=r,So}var To,Eo;function Do(){return Eo?To:(Eo=1,To=ar()(W(),`DataView`),To)}var Oo,ko;function Ao(){return ko?Oo:(ko=1,Oo=ar()(W(),`Promise`),Oo)}var jo,Mo;function No(){return Mo?jo:(Mo=1,jo=ar()(W(),`Set`),jo)}var Po,Fo;function Io(){return Fo?Po:(Fo=1,Po=ar()(W(),`WeakMap`),Po)}var Lo,Ro;function zo(){if(Ro)return Lo;Ro=1;var e=Do(),t=cr(),n=Ao(),r=No(),i=Io(),a=In(),o=Xn(),s=`[object Map]`,c=`[object Object]`,l=`[object Promise]`,u=`[object Set]`,d=`[object WeakMap]`,f=`[object DataView]`,p=o(e),m=o(t),h=o(n),g=o(r),_=o(i),v=a;return(e&&v(new e(new ArrayBuffer(1)))!=f||t&&v(new t)!=s||n&&v(n.resolve())!=l||r&&v(new r)!=u||i&&v(new i)!=d)&&(v=function(e){var t=a(e),n=t==c?e.constructor:void 0,r=n?o(n):``;if(r)switch(r){case p:return f;case m:return s;case h:return l;case g:return u;case _:return d}return t}),Lo=v,Lo}var Bo,Vo;function Ho(){if(Vo)return Bo;Vo=1;var e=Object.prototype.hasOwnProperty;function t(t){var n=t.length,r=new t.constructor(n);return n&&typeof t[0]==`string`&&e.call(t,`index`)&&(r.index=t.index,r.input=t.input),r}return Bo=t,Bo}var Uo,Wo;function Go(){return Wo?Uo:(Wo=1,Uo=W().Uint8Array,Uo)}var Ko,qo;function Jo(){if(qo)return Ko;qo=1;var e=Go();function t(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}return Ko=t,Ko}var Yo,Xo;function Zo(){if(Xo)return Yo;Xo=1;var e=Jo();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}return Yo=t,Yo}var Qo,$o;function es(){if($o)return Qo;$o=1;var e=/\w*$/;function t(t){var n=new t.constructor(t.source,e.exec(t));return n.lastIndex=t.lastIndex,n}return Qo=t,Qo}var ts,ns;function rs(){if(ns)return ts;ns=1;var e=Dn(),t=e?e.prototype:void 0,n=t?t.valueOf:void 0;function r(e){return n?Object(n.call(e)):{}}return ts=r,ts}var is,as;function os(){if(as)return is;as=1;var e=Jo();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}return is=t,is}var ss,cs;function ls(){if(cs)return ss;cs=1;var e=Jo(),t=Zo(),n=es(),r=rs(),i=os(),a=`[object Boolean]`,o=`[object Date]`,s=`[object Map]`,c=`[object Number]`,l=`[object RegExp]`,u=`[object Set]`,d=`[object String]`,f=`[object Symbol]`,p=`[object ArrayBuffer]`,m=`[object DataView]`,h=`[object Float32Array]`,g=`[object Float64Array]`,_=`[object Int8Array]`,v=`[object Int16Array]`,y=`[object Int32Array]`,b=`[object Uint8Array]`,x=`[object Uint8ClampedArray]`,S=`[object Uint16Array]`,C=`[object Uint32Array]`;function w(w,T,E){var D=w.constructor;switch(T){case p:return e(w);case a:case o:return new D(+w);case m:return t(w,E);case h:case g:case _:case v:case y:case b:case x:case S:case C:return i(w,E);case s:return new D;case c:case d:return new D(w);case l:return n(w);case u:return new D;case f:return r(w)}}return ss=w,ss}var us,ds;function fs(){if(ds)return us;ds=1;var e=G(),t=Object.create;return us=function(){function n(){}return function(r){if(!e(r))return{};if(t)return t(r);n.prototype=r;var i=new n;return n.prototype=void 0,i}}(),us}var ps,ms;function hs(){if(ms)return ps;ms=1;var e=fs(),t=co(),n=la();function r(r){return typeof r.constructor==`function`&&!n(r)?e(t(r)):{}}return ps=r,ps}var gs,_s;function vs(){if(_s)return gs;_s=1;var e=zo(),t=K(),n=`[object Map]`;function r(r){return t(r)&&e(r)==n}return gs=r,gs}var ys,bs;function xs(){if(bs)return ys;bs=1;var e=vs(),t=Zi(),n=ea(),r=n&&n.isMap;return ys=r?t(r):e,ys}var Ss,Cs;function ws(){if(Cs)return Ss;Cs=1;var e=zo(),t=K(),n=`[object Set]`;function r(r){return t(r)&&e(r)==n}return Ss=r,Ss}var Ts,Es;function Ds(){if(Es)return Ts;Es=1;var e=ws(),t=Zi(),n=ea(),r=n&&n.isSet;return Ts=r?t(r):e,Ts}var Os,ks;function As(){if(ks)return Os;ks=1;var e=ai(),t=ci(),n=_i(),r=Ea(),i=Ra(),a=Va(),o=Wa(),s=no(),c=ho(),l=xo(),u=wo(),d=zo(),f=Ho(),p=ls(),m=hs(),h=q(),g=zi(),_=xs(),v=G(),y=Ds(),b=Ca(),x=Fa(),S=1,C=2,w=4,T=`[object Arguments]`,E=`[object Array]`,D=`[object Boolean]`,O=`[object Date]`,k=`[object Error]`,A=`[object Function]`,j=`[object GeneratorFunction]`,M=`[object Map]`,N=`[object Number]`,ee=`[object Object]`,P=`[object RegExp]`,F=`[object Set]`,I=`[object String]`,te=`[object Symbol]`,L=`[object WeakMap]`,R=`[object ArrayBuffer]`,ne=`[object DataView]`,re=`[object Float32Array]`,ie=`[object Float64Array]`,ae=`[object Int8Array]`,oe=`[object Int16Array]`,se=`[object Int32Array]`,ce=`[object Uint8Array]`,le=`[object Uint8ClampedArray]`,ue=`[object Uint16Array]`,de=`[object Uint32Array]`,z={};z[T]=z[E]=z[R]=z[ne]=z[D]=z[O]=z[re]=z[ie]=z[ae]=z[oe]=z[se]=z[M]=z[N]=z[ee]=z[P]=z[F]=z[I]=z[te]=z[ce]=z[le]=z[ue]=z[de]=!0,z[k]=z[A]=z[L]=!1;function fe(E,D,O,k,M,N){var P,F=D&S,I=D&C,te=D&w;if(O&&(P=M?O(E,k,M,N):O(E)),P!==void 0)return P;if(!v(E))return E;var L=h(E);if(L){if(P=f(E),!F)return o(E,P)}else{var R=d(E),ne=R==A||R==j;if(g(E))return a(E,F);if(R==ee||R==T||ne&&!M){if(P=I||ne?{}:m(E),!F)return I?c(E,i(P,E)):s(E,r(P,E))}else{if(!z[R])return M?E:{};P=p(E,R,F)}}N||=new e;var re=N.get(E);if(re)return re;N.set(E,P),y(E)?E.forEach(function(e){P.add(fe(e,D,O,e,E,N))}):_(E)&&E.forEach(function(e,t){P.set(t,fe(e,D,O,t,E,N))});var ie=L?void 0:(te?I?u:l:I?x:b)(E);return t(ie||E,function(e,t){ie&&(t=e,e=E[t]),n(P,t,fe(e,D,O,t,E,N))}),P}return Os=fe,Os}var js,Ms;function Ns(){if(Ms)return js;Ms=1;var e=As(),t=4;function n(n){return e(n,t)}return js=n,js}var Ps,Fs;function Is(){if(Fs)return Ps;Fs=1;function e(e){return function(){return e}}return Ps=e,Ps}var Ls,Rs;function zs(){if(Rs)return Ls;Rs=1;function e(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}return Ls=e,Ls}var Bs,Vs;function Hs(){return Vs?Bs:(Vs=1,Bs=zs()(),Bs)}var Us,Ws;function Gs(){if(Ws)return Us;Ws=1;var e=Hs(),t=Ca();function n(n,r){return n&&e(n,r,t)}return Us=n,Us}var Ks,qs;function Js(){if(qs)return Ks;qs=1;var e=J();function t(t,n){return function(r,i){if(r==null)return r;if(!e(r))return t(r,i);for(var a=r.length,o=n?a:-1,s=Object(r);(n?o--:++o<a)&&i(s[o],o,s)!==!1;);return r}}return Ks=t,Ks}var Ys,Xs;function Zs(){if(Xs)return Ys;Xs=1;var e=Gs();return Ys=Js()(e),Ys}var Qs,$s;function ec(){if($s)return Qs;$s=1;function e(e){return e}return Qs=e,Qs}var tc,nc;function rc(){if(nc)return tc;nc=1;var e=ec();function t(t){return typeof t==`function`?t:e}return tc=t,tc}var ic,ac;function oc(){if(ac)return ic;ac=1;var e=ci(),t=Zs(),n=rc(),r=q();function i(i,a){return(r(i)?e:t)(i,n(a))}return ic=i,ic}var sc,cc;function lc(){return cc?sc:(cc=1,sc=oc(),sc)}var uc,dc;function fc(){if(dc)return uc;dc=1;var e=Zs();function t(t,n){var r=[];return e(t,function(e,t,i){n(e,t,i)&&r.push(e)}),r}return uc=t,uc}var pc,mc;function hc(){if(mc)return pc;mc=1;var e=`__lodash_hash_undefined__`;function t(t){return this.__data__.set(t,e),this}return pc=t,pc}var gc,_c;function vc(){if(_c)return gc;_c=1;function e(e){return this.__data__.has(e)}return gc=e,gc}var yc,bc;function xc(){if(bc)return yc;bc=1;var e=$r(),t=hc(),n=vc();function r(t){var n=-1,r=t==null?0:t.length;for(this.__data__=new e;++n<r;)this.add(t[n])}return r.prototype.add=r.prototype.push=t,r.prototype.has=n,yc=r,yc}var Sc,Cc;function wc(){if(Cc)return Sc;Cc=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}return Sc=e,Sc}var Tc,Ec;function Dc(){if(Ec)return Tc;Ec=1;function e(e,t){return e.has(t)}return Tc=e,Tc}var Oc,kc;function Ac(){if(kc)return Oc;kc=1;var e=xc(),t=wc(),n=Dc(),r=1,i=2;function a(a,o,s,c,l,u){var d=s&r,f=a.length,p=o.length;if(f!=p&&!(d&&p>f))return!1;var m=u.get(a),h=u.get(o);if(m&&h)return m==o&&h==a;var g=-1,_=!0,v=s&i?new e:void 0;for(u.set(a,o),u.set(o,a);++g<f;){var y=a[g],b=o[g];if(c)var x=d?c(b,y,g,o,a,u):c(y,b,g,a,o,u);if(x!==void 0){if(x)continue;_=!1;break}if(v){if(!t(o,function(e,t){if(!n(v,t)&&(y===e||l(y,e,s,c,u)))return v.push(t)})){_=!1;break}}else if(!(y===b||l(y,b,s,c,u))){_=!1;break}}return u.delete(a),u.delete(o),_}return Oc=a,Oc}var jc,Mc;function Nc(){if(Mc)return jc;Mc=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}return jc=e,jc}var Pc,Fc;function Ic(){if(Fc)return Pc;Fc=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}return Pc=e,Pc}var Lc,Rc;function zc(){if(Rc)return Lc;Rc=1;var e=Dn(),t=Go(),n=Ht(),r=Ac(),i=Nc(),a=Ic(),o=1,s=2,c=`[object Boolean]`,l=`[object Date]`,u=`[object Error]`,d=`[object Map]`,f=`[object Number]`,p=`[object RegExp]`,m=`[object Set]`,h=`[object String]`,g=`[object Symbol]`,_=`[object ArrayBuffer]`,v=`[object DataView]`,y=e?e.prototype:void 0,b=y?y.valueOf:void 0;function x(e,y,x,S,C,w,T){switch(x){case v:if(e.byteLength!=y.byteLength||e.byteOffset!=y.byteOffset)return!1;e=e.buffer,y=y.buffer;case _:return!(e.byteLength!=y.byteLength||!w(new t(e),new t(y)));case c:case l:case f:return n(+e,+y);case u:return e.name==y.name&&e.message==y.message;case p:case h:return e==y+``;case d:var E=i;case m:var D=S&o;if(E||=a,e.size!=y.size&&!D)return!1;var O=T.get(e);if(O)return O==y;S|=s,T.set(e,y);var k=r(E(e),E(y),S,C,w,T);return T.delete(e),k;case g:if(b)return b.call(e)==b.call(y)}return!1}return Lc=x,Lc}var Bc,Vc;function Hc(){if(Vc)return Bc;Vc=1;var e=xo(),t=1,n=Object.prototype.hasOwnProperty;function r(r,i,a,o,s,c){var l=a&t,u=e(r),d=u.length;if(d!=e(i).length&&!l)return!1;for(var f=d;f--;){var p=u[f];if(!(l?p in i:n.call(i,p)))return!1}var m=c.get(r),h=c.get(i);if(m&&h)return m==i&&h==r;var g=!0;c.set(r,i),c.set(i,r);for(var _=l;++f<d;){p=u[f];var v=r[p],y=i[p];if(o)var b=l?o(y,v,p,i,r,c):o(v,y,p,r,i,c);if(!(b===void 0?v===y||s(v,y,a,o,c):b)){g=!1;break}_||=p==`constructor`}if(g&&!_){var x=r.constructor,S=i.constructor;x!=S&&`constructor`in r&&`constructor`in i&&!(typeof x==`function`&&x instanceof x&&typeof S==`function`&&S instanceof S)&&(g=!1)}return c.delete(r),c.delete(i),g}return Bc=r,Bc}var Uc,Wc;function Gc(){if(Wc)return Uc;Wc=1;var e=ai(),t=Ac(),n=zc(),r=Hc(),i=zo(),a=q(),o=zi(),s=ra(),c=1,l=`[object Arguments]`,u=`[object Array]`,d=`[object Object]`,f=Object.prototype.hasOwnProperty;function p(p,m,h,g,_,v){var y=a(p),b=a(m),x=y?u:i(p),S=b?u:i(m);x=x==l?d:x,S=S==l?d:S;var C=x==d,w=S==d,T=x==S;if(T&&o(p)){if(!o(m))return!1;y=!0,C=!1}if(T&&!C)return v||=new e,y||s(p)?t(p,m,h,g,_,v):n(p,m,x,h,g,_,v);if(!(h&c)){var E=C&&f.call(p,`__wrapped__`),D=w&&f.call(m,`__wrapped__`);if(E||D){var O=E?p.value():p,k=D?m.value():m;return v||=new e,_(O,k,h,g,v)}}return T?(v||=new e,r(p,m,h,g,_,v)):!1}return Uc=p,Uc}var Kc,qc;function Jc(){if(qc)return Kc;qc=1;var e=Gc(),t=K();function n(r,i,a,o,s){return r===i?!0:r==null||i==null||!t(r)&&!t(i)?r!==r&&i!==i:e(r,i,a,o,n,s)}return Kc=n,Kc}var Yc,Xc;function Zc(){if(Xc)return Yc;Xc=1;var e=ai(),t=Jc(),n=1,r=2;function i(i,a,o,s){var c=o.length,l=c,u=!s;if(i==null)return!l;for(i=Object(i);c--;){var d=o[c];if(u&&d[2]?d[1]!==i[d[0]]:!(d[0]in i))return!1}for(;++c<l;){d=o[c];var f=d[0],p=i[f],m=d[1];if(u&&d[2]){if(p===void 0&&!(f in i))return!1}else{var h=new e;if(s)var g=s(p,m,f,i,a,h);if(!(g===void 0?t(m,p,n|r,s,h):g))return!1}}return!0}return Yc=i,Yc}var Qc,$c;function el(){if($c)return Qc;$c=1;var e=G();function t(t){return t===t&&!e(t)}return Qc=t,Qc}var tl,nl;function rl(){if(nl)return tl;nl=1;var e=el(),t=Ca();function n(n){for(var r=t(n),i=r.length;i--;){var a=r[i],o=n[a];r[i]=[a,o,e(o)]}return r}return tl=n,tl}var il,al;function ol(){if(al)return il;al=1;function e(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}return il=e,il}var sl,cl;function ll(){if(cl)return sl;cl=1;var e=Zc(),t=rl(),n=ol();function r(r){var i=t(r);return i.length==1&&i[0][2]?n(i[0][0],i[0][1]):function(t){return t===r||e(t,r,i)}}return sl=r,sl}var ul,dl;function fl(){if(dl)return ul;dl=1;var e=In(),t=K(),n=`[object Symbol]`;function r(r){return typeof r==`symbol`||t(r)&&e(r)==n}return ul=r,ul}var pl,ml;function hl(){if(ml)return pl;ml=1;var e=q(),t=fl(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(i,a){if(e(i))return!1;var o=typeof i;return o==`number`||o==`symbol`||o==`boolean`||i==null||t(i)?!0:r.test(i)||!n.test(i)||a!=null&&i in Object(a)}return pl=i,pl}var gl,_l;function vl(){if(_l)return gl;_l=1;var e=$r(),t=`Expected a function`;function n(r,i){if(typeof r!=`function`||i!=null&&typeof i!=`function`)throw TypeError(t);var a=function(){var e=arguments,t=i?i.apply(this,e):e[0],n=a.cache;if(n.has(t))return n.get(t);var o=r.apply(this,e);return a.cache=n.set(t,o)||n,o};return a.cache=new(n.Cache||e),a}return n.Cache=e,gl=n,gl}var yl,bl;function xl(){if(bl)return yl;bl=1;var e=vl(),t=500;function n(n){var r=e(n,function(e){return i.size===t&&i.clear(),e}),i=r.cache;return r}return yl=n,yl}var Sl,Cl;function wl(){if(Cl)return Sl;Cl=1;var e=xl(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g;return Sl=e(function(e){var r=[];return e.charCodeAt(0)===46&&r.push(``),e.replace(t,function(e,t,i,a){r.push(i?a.replace(n,`$1`):t||e)}),r}),Sl}var Tl,El;function Dl(){if(El)return Tl;El=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}return Tl=e,Tl}var Ol,kl;function Al(){if(kl)return Ol;kl=1;var e=Dn(),t=Dl(),n=q(),r=fl(),i=e?e.prototype:void 0,a=i?i.toString:void 0;function o(e){if(typeof e==`string`)return e;if(n(e))return t(e,o)+``;if(r(e))return a?a.call(e):``;var i=e+``;return i==`0`&&1/e==-1/0?`-0`:i}return Ol=o,Ol}var jl,Ml;function Nl(){if(Ml)return jl;Ml=1;var e=Al();function t(t){return t==null?``:e(t)}return jl=t,jl}var Pl,Fl;function Il(){if(Fl)return Pl;Fl=1;var e=q(),t=hl(),n=wl(),r=Nl();function i(i,a){return e(i)?i:t(i,a)?[i]:n(r(i))}return Pl=i,Pl}var Ll,Rl;function zl(){if(Rl)return Ll;Rl=1;var e=fl();function t(t){if(typeof t==`string`||e(t))return t;var n=t+``;return n==`0`&&1/t==-1/0?`-0`:n}return Ll=t,Ll}var Bl,Vl;function Hl(){if(Vl)return Bl;Vl=1;var e=Il(),t=zl();function n(n,r){r=e(r,n);for(var i=0,a=r.length;n!=null&&i<a;)n=n[t(r[i++])];return i&&i==a?n:void 0}return Bl=n,Bl}var Ul,Wl;function Gl(){if(Wl)return Ul;Wl=1;var e=Hl();function t(t,n,r){var i=t==null?void 0:e(t,n);return i===void 0?r:i}return Ul=t,Ul}var Kl,ql;function Jl(){if(ql)return Kl;ql=1;function e(e,t){return e!=null&&t in Object(e)}return Kl=e,Kl}var Yl,Xl;function Zl(){if(Xl)return Yl;Xl=1;var e=Il(),t=ji(),n=q(),r=Hi(),i=Gi(),a=zl();function o(o,s,c){s=e(s,o);for(var l=-1,u=s.length,d=!1;++l<u;){var f=a(s[l]);if(!(d=o!=null&&c(o,f)))break;o=o[f]}return d||++l!=u?d:(u=o==null?0:o.length,!!u&&i(u)&&r(f,u)&&(n(o)||t(o)))}return Yl=o,Yl}var Ql,$l;function eu(){if($l)return Ql;$l=1;var e=Jl(),t=Zl();function n(n,r){return n!=null&&t(n,r,e)}return Ql=n,Ql}var tu,nu;function ru(){if(nu)return tu;nu=1;var e=Jc(),t=Gl(),n=eu(),r=hl(),i=el(),a=ol(),o=zl(),s=1,c=2;function l(l,u){return r(l)&&i(u)?a(o(l),u):function(r){var i=t(r,l);return i===void 0&&i===u?n(r,l):e(u,i,s|c)}}return tu=l,tu}var iu,au;function ou(){if(au)return iu;au=1;function e(e){return function(t){return t?.[e]}}return iu=e,iu}var su,cu;function lu(){if(cu)return su;cu=1;var e=Hl();function t(t){return function(n){return e(n,t)}}return su=t,su}var uu,du;function fu(){if(du)return uu;du=1;var e=ou(),t=lu(),n=hl(),r=zl();function i(i){return n(i)?e(r(i)):t(i)}return uu=i,uu}var pu,mu;function Y(){if(mu)return pu;mu=1;var e=ll(),t=ru(),n=ec(),r=q(),i=fu();function a(a){return typeof a==`function`?a:a==null?n:typeof a==`object`?r(a)?t(a[0],a[1]):e(a):i(a)}return pu=a,pu}var hu,gu;function _u(){if(gu)return hu;gu=1;var e=qa(),t=fc(),n=Y(),r=q();function i(i,a){return(r(i)?e:t)(i,n(a,3))}return hu=i,hu}var vu,yu;function bu(){if(yu)return vu;yu=1;var e=Object.prototype.hasOwnProperty;function t(t,n){return t!=null&&e.call(t,n)}return vu=t,vu}var xu,Su;function Cu(){if(Su)return xu;Su=1;var e=bu(),t=Zl();function n(n,r){return n!=null&&t(n,r,e)}return xu=n,xu}var wu,Tu;function Eu(){if(Tu)return wu;Tu=1;var e=va(),t=zo(),n=ji(),r=q(),i=J(),a=zi(),o=la(),s=ra(),c=`[object Map]`,l=`[object Set]`,u=Object.prototype.hasOwnProperty;function d(d){if(d==null)return!0;if(i(d)&&(r(d)||typeof d==`string`||typeof d.splice==`function`||a(d)||s(d)||n(d)))return!d.length;var f=t(d);if(f==c||f==l)return!d.size;if(o(d))return!e(d).length;for(var p in d)if(u.call(d,p))return!1;return!0}return wu=d,wu}var Du,Ou;function ku(){if(Ou)return Du;Ou=1;function e(e){return e===void 0}return Du=e,Du}var Au,ju;function Mu(){if(ju)return Au;ju=1;var e=Zs(),t=J();function n(n,r){var i=-1,a=t(n)?Array(n.length):[];return e(n,function(e,t,n){a[++i]=r(e,t,n)}),a}return Au=n,Au}var Nu,Pu;function Fu(){if(Pu)return Nu;Pu=1;var e=Dl(),t=Y(),n=Mu(),r=q();function i(i,a){return(r(i)?e:n)(i,t(a,3))}return Nu=i,Nu}var Iu,Lu;function Ru(){if(Lu)return Iu;Lu=1;function e(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}return Iu=e,Iu}var zu,Bu;function Vu(){if(Bu)return zu;Bu=1;function e(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}return zu=e,zu}var Hu,Uu;function Wu(){if(Uu)return Hu;Uu=1;var e=Ru(),t=Zs(),n=Y(),r=Vu(),i=q();function a(a,o,s){var c=i(a)?e:r,l=arguments.length<3;return c(a,n(o,4),s,l,t)}return Hu=a,Hu}var Gu,Ku;function qu(){if(Ku)return Gu;Ku=1;var e=In(),t=q(),n=K(),r=`[object String]`;function i(i){return typeof i==`string`||!t(i)&&n(i)&&e(i)==r}return Gu=i,Gu}var Ju,Yu;function Xu(){return Yu?Ju:(Yu=1,Ju=ou()(`length`),Ju)}var Zu,Qu;function $u(){if(Qu)return Zu;Qu=1;var e=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function t(t){return e.test(t)}return Zu=t,Zu}var ed,td;function nd(){if(td)return ed;td=1;var e=`\\ud800-\\udfff`,t=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,n=`\\ufe0e\\ufe0f`,r=`[`+e+`]`,i=`[`+t+`]`,a=`\\ud83c[\\udffb-\\udfff]`,o=`(?:`+i+`|`+a+`)`,s=`[^`+e+`]`,c=`(?:\\ud83c[\\udde6-\\uddff]){2}`,l=`[\\ud800-\\udbff][\\udc00-\\udfff]`,u=`\\u200d`,d=o+`?`,f=`[`+n+`]?`,p=`(?:`+u+`(?:`+[s,c,l].join(`|`)+`)`+f+d+`)*`,m=f+d+p,h=`(?:`+[s+i+`?`,i,c,l,r].join(`|`)+`)`,g=RegExp(a+`(?=`+a+`)|`+h+m,`g`);function _(e){for(var t=g.lastIndex=0;g.test(e);)++t;return t}return ed=_,ed}var rd,id;function ad(){if(id)return rd;id=1;var e=Xu(),t=$u(),n=nd();function r(r){return t(r)?n(r):e(r)}return rd=r,rd}var od,sd;function cd(){if(sd)return od;sd=1;var e=va(),t=zo(),n=J(),r=qu(),i=ad(),a=`[object Map]`,o=`[object Set]`;function s(s){if(s==null)return 0;if(n(s))return r(s)?i(s):s.length;var c=t(s);return c==a||c==o?s.size:e(s).length}return od=s,od}var ld,ud;function dd(){if(ud)return ld;ud=1;var e=ci(),t=fs(),n=Gs(),r=Y(),i=co(),a=q(),o=zi(),s=Vn(),c=G(),l=ra();function u(u,d,f){var p=a(u),m=p||o(u)||l(u);if(d=r(d,4),f==null){var h=u&&u.constructor;f=m?p?new h:[]:c(u)&&s(h)?t(i(u)):{}}return(m?e:n)(u,function(e,t,n){return d(f,e,t,n)}),f}return ld=u,ld}var fd,pd;function md(){if(pd)return fd;pd=1;var e=Dn(),t=ji(),n=q(),r=e?e.isConcatSpreadable:void 0;function i(e){return n(e)||t(e)||!!(r&&e&&e[r])}return fd=i,fd}var hd,gd;function _d(){if(gd)return hd;gd=1;var e=ao(),t=md();function n(r,i,a,o,s){var c=-1,l=r.length;for(a||=t,s||=[];++c<l;){var u=r[c];i>0&&a(u)?i>1?n(u,i-1,a,o,s):e(s,u):o||(s[s.length]=u)}return s}return hd=n,hd}var vd,yd;function bd(){if(yd)return vd;yd=1;function e(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}return vd=e,vd}var xd,Sd;function Cd(){if(Sd)return xd;Sd=1;var e=bd(),t=Math.max;function n(n,r,i){return r=t(r===void 0?n.length-1:r,0),function(){for(var a=arguments,o=-1,s=t(a.length-r,0),c=Array(s);++o<s;)c[o]=a[r+o];o=-1;for(var l=Array(r+1);++o<r;)l[o]=a[o];return l[r]=i(c),e(n,this,l)}}return xd=n,xd}var wd,Td;function Ed(){if(Td)return wd;Td=1;var e=Is(),t=di(),n=ec();return wd=t?function(n,r){return t(n,`toString`,{configurable:!0,enumerable:!1,value:e(r),writable:!0})}:n,wd}var Dd,Od;function kd(){if(Od)return Dd;Od=1;var e=800,t=16,n=Date.now;function r(r){var i=0,a=0;return function(){var o=n(),s=t-(o-a);if(a=o,s>0){if(++i>=e)return arguments[0]}else i=0;return r.apply(void 0,arguments)}}return Dd=r,Dd}var Ad,jd;function Md(){if(jd)return Ad;jd=1;var e=Ed();return Ad=kd()(e),Ad}var Nd,Pd;function Fd(){if(Pd)return Nd;Pd=1;var e=ec(),t=Cd(),n=Md();function r(r,i){return n(t(r,i,e),r+``)}return Nd=r,Nd}var Id,Ld;function Rd(){if(Ld)return Id;Ld=1;function e(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}return Id=e,Id}var zd,Bd;function Vd(){if(Bd)return zd;Bd=1;function e(e){return e!==e}return zd=e,zd}var Hd,Ud;function Wd(){if(Ud)return Hd;Ud=1;function e(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}return Hd=e,Hd}var Gd,Kd;function qd(){if(Kd)return Gd;Kd=1;var e=Rd(),t=Vd(),n=Wd();function r(r,i,a){return i===i?n(r,i,a):e(r,t,a)}return Gd=r,Gd}var Jd,Yd;function Xd(){if(Yd)return Jd;Yd=1;var e=qd();function t(t,n){return!!(t!=null&&t.length)&&e(t,n,0)>-1}return Jd=t,Jd}var Zd,Qd;function $d(){if(Qd)return Zd;Qd=1;function e(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}return Zd=e,Zd}var ef,tf;function nf(){if(tf)return ef;tf=1;function e(){}return ef=e,ef}var rf,af;function of(){if(af)return rf;af=1;var e=No(),t=nf(),n=Ic();return rf=e&&1/n(new e([,-0]))[1]==1/0?function(t){return new e(t)}:t,rf}var sf,cf;function lf(){if(cf)return sf;cf=1;var e=xc(),t=Xd(),n=$d(),r=Dc(),i=of(),a=Ic(),o=200;function s(s,c,l){var u=-1,d=t,f=s.length,p=!0,m=[],h=m;if(l)p=!1,d=n;else if(f>=o){var g=c?null:i(s);if(g)return a(g);p=!1,d=r,h=new e}else h=c?[]:m;outer:for(;++u<f;){var _=s[u],v=c?c(_):_;if(_=l||_!==0?_:0,p&&v===v){for(var y=h.length;y--;)if(h[y]===v)continue outer;c&&h.push(v),m.push(_)}else d(h,v,l)||(h!==m&&h.push(v),m.push(_))}return m}return sf=s,sf}var uf,df;function ff(){if(df)return uf;df=1;var e=J(),t=K();function n(n){return t(n)&&e(n)}return uf=n,uf}var pf,mf;function hf(){if(mf)return pf;mf=1;var e=_d(),t=Fd(),n=lf(),r=ff();return pf=t(function(t){return n(e(t,1,r,!0))}),pf}var gf,_f;function vf(){if(_f)return gf;_f=1;var e=Dl();function t(t,n){return e(n,function(e){return t[e]})}return gf=t,gf}var yf,bf;function xf(){if(bf)return yf;bf=1;var e=vf(),t=Ca();function n(n){return n==null?[]:e(n,t(n))}return yf=n,yf}var Sf,Cf;function X(){if(Cf)return Sf;Cf=1;var e;if(typeof It==`function`)try{e={clone:Ns(),constant:Is(),each:lc(),filter:_u(),has:Cu(),isArray:q(),isEmpty:Eu(),isFunction:Vn(),isUndefined:ku(),keys:Ca(),map:Fu(),reduce:Wu(),size:cd(),transform:dd(),union:hf(),values:xf()}}catch{}return e||=window._,Sf=e,Sf}var wf,Tf;function Ef(){if(Tf)return wf;Tf=1;var e=X();wf=i;var t=`\0`,n=`\0`,r=``;function i(t){this._isDirected=!e.has(t,`directed`)||t.directed,this._isMultigraph=e.has(t,`multigraph`)?t.multigraph:!1,this._isCompound=e.has(t,`compound`)?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[n]={}),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(e){return this._label=e,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultNodeLabelFn=t,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return e.keys(this._nodes)},i.prototype.sources=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._in[n])})},i.prototype.sinks=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._out[n])})},i.prototype.setNodes=function(t,n){var r=arguments,i=this;return e.each(t,function(e){r.length>1?i.setNode(e,n):i.setNode(e)}),this},i.prototype.setNode=function(t,r){return e.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=r),this):(this._nodes[t]=arguments.length>1?r:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=n,this._children[t]={},this._children[n][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},i.prototype.node=function(e){return this._nodes[e]},i.prototype.hasNode=function(t){return e.has(this._nodes,t)},i.prototype.removeNode=function(t){var n=this;if(e.has(this._nodes,t)){var r=function(e){n.removeEdge(n._edgeObjs[e])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],e.each(this.children(t),function(e){n.setParent(e)}),delete this._children[t]),e.each(e.keys(this._in[t]),r),delete this._in[t],delete this._preds[t],e.each(e.keys(this._out[t]),r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},i.prototype.setParent=function(t,r){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(e.isUndefined(r))r=n;else{r+=``;for(var i=r;!e.isUndefined(i);i=this.parent(i))if(i===t)throw Error(`Setting `+r+` as parent of `+t+` would create a cycle`);this.setNode(r)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=r,this._children[r][t]=!0,this},i.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},i.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==n)return t}},i.prototype.children=function(t){if(e.isUndefined(t)&&(t=n),this._isCompound){var r=this._children[t];if(r)return e.keys(r)}else if(t===n)return this.nodes();else if(this.hasNode(t))return[]},i.prototype.predecessors=function(t){var n=this._preds[t];if(n)return e.keys(n)},i.prototype.successors=function(t){var n=this._sucs[t];if(n)return e.keys(n)},i.prototype.neighbors=function(t){var n=this.predecessors(t);if(n)return e.union(n,this.successors(t))},i.prototype.isLeaf=function(e){return(this.isDirected()?this.successors(e):this.neighbors(e)).length===0},i.prototype.filterNodes=function(t){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var r=this;e.each(this._nodes,function(e,r){t(r)&&n.setNode(r,e)}),e.each(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,r.edge(e))});var i={};function a(e){var t=r.parent(e);return t===void 0||n.hasNode(t)?(i[e]=t,t):t in i?i[t]:a(t)}return this._isCompound&&e.each(n.nodes(),function(e){n.setParent(e,a(e))}),n},i.prototype.setDefaultEdgeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultEdgeLabelFn=t,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return e.values(this._edgeObjs)},i.prototype.setPath=function(t,n){var r=this,i=arguments;return e.reduce(t,function(e,t){return i.length>1?r.setEdge(e,t,n):r.setEdge(e,t),t}),this},i.prototype.setEdge=function(){var t,n,r,i,o=!1,l=arguments[0];typeof l==`object`&&l&&`v`in l?(t=l.v,n=l.w,r=l.name,arguments.length===2&&(i=arguments[1],o=!0)):(t=l,n=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),t=``+t,n=``+n,e.isUndefined(r)||(r=``+r);var u=s(this._isDirected,t,n,r);if(e.has(this._edgeLabels,u))return o&&(this._edgeLabels[u]=i),this;if(!e.isUndefined(r)&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(t),this.setNode(n),this._edgeLabels[u]=o?i:this._defaultEdgeLabelFn(t,n,r);var d=c(this._isDirected,t,n,r);return t=d.v,n=d.w,Object.freeze(d),this._edgeObjs[u]=d,a(this._preds[n],t),a(this._sucs[t],n),this._in[n][u]=d,this._out[t][u]=d,this._edgeCount++,this},i.prototype.edge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return this._edgeLabels[r]},i.prototype.hasEdge=function(t,n,r){var i=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,t,n,r);return e.has(this._edgeLabels,i)},i.prototype.removeEdge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],o(this._preds[t],e),o(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},i.prototype.inEdges=function(t,n){var r=this._in[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.v===n}):i}},i.prototype.outEdges=function(t,n){var r=this._out[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.w===n}):i}},i.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))};function a(e,t){e[t]?e[t]++:e[t]=1}function o(e,t){--e[t]||delete e[t]}function s(n,i,a,o){var s=``+i,c=``+a;if(!n&&s>c){var l=s;s=c,c=l}return s+r+c+r+(e.isUndefined(o)?t:o)}function c(e,t,n,r){var i=``+t,a=``+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function l(e,t){return s(e,t.v,t.w,t.name)}return wf}var Df,Of;function kf(){return Of?Df:(Of=1,Df=`2.1.8`,Df)}var Af,jf;function Mf(){return jf?Af:(jf=1,Af={Graph:Ef(),version:kf()},Af)}var Nf,Pf;function Ff(){if(Pf)return Nf;Pf=1;var e=X(),t=Ef();Nf={write:n,read:a};function n(t){var n={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:r(t),edges:i(t)};return e.isUndefined(t.graph())||(n.value=e.clone(t.graph())),n}function r(t){return e.map(t.nodes(),function(n){var r=t.node(n),i=t.parent(n),a={v:n};return e.isUndefined(r)||(a.value=r),e.isUndefined(i)||(a.parent=i),a})}function i(t){return e.map(t.edges(),function(n){var r=t.edge(n),i={v:n.v,w:n.w};return e.isUndefined(n.name)||(i.name=n.name),e.isUndefined(r)||(i.value=r),i})}function a(n){var r=new t(n.options).setGraph(n.value);return e.each(n.nodes,function(e){r.setNode(e.v,e.value),e.parent&&r.setParent(e.v,e.parent)}),e.each(n.edges,function(e){r.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),r}return Nf}var If,Lf;function Rf(){if(Lf)return If;Lf=1;var e=X();If=t;function t(t){var n={},r=[],i;function a(r){e.has(n,r)||(n[r]=!0,i.push(r),e.each(t.successors(r),a),e.each(t.predecessors(r),a))}return e.each(t.nodes(),function(e){i=[],a(e),i.length&&r.push(i)}),r}return If}var zf,Bf;function Vf(){if(Bf)return zf;Bf=1;var e=X();zf=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(t){return e.has(this._keyIndices,t)},t.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority},t.prototype.min=function(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key},t.prototype.add=function(t,n){var r=this._keyIndices;if(t=String(t),!e.has(r,t)){var i=this._arr,a=i.length;return r[t]=a,i.push({key:t,priority:n}),this._decrease(a),!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,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error(`New priority is greater than current priority. Key: `+e+` Old: `+this._arr[n].priority+` New: `+t);this._arr[n].priority=t,this._decrease(n)},t.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))},t.prototype._decrease=function(e){for(var t=this._arr,n=t[e].priority,r;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r},t.prototype._swap=function(e,t){var n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t},zf}var Hf,Uf;function Wf(){if(Uf)return Hf;Uf=1;var e=X(),t=Vf();Hf=r;var n=e.constant(1);function r(e,t,r,a){return i(e,String(t),r||n,a||function(t){return e.outEdges(t)})}function i(e,n,r,i){var a={},o=new t,s,c,l=function(e){var t=e.v===s?e.w:e.v,n=a[t],i=r(e),l=c.distance+i;if(i<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+i);l<n.distance&&(n.distance=l,n.predecessor=s,o.decrease(t,l))};for(e.nodes().forEach(function(e){var t=e===n?0:1/0;a[e]={distance:t},o.add(e,t)});o.size()>0&&(s=o.removeMin(),c=a[s],c.distance!==1/0);)i(s).forEach(l);return a}return Hf}var Gf,Kf;function qf(){if(Kf)return Gf;Kf=1;var e=Wf(),t=X();Gf=n;function n(n,r,i){return t.transform(n.nodes(),function(t,a){t[a]=e(n,a,r,i)},{})}return Gf}var Jf,Yf;function Xf(){if(Yf)return Jf;Yf=1;var e=X();Jf=t;function t(t){var n=0,r=[],i={},a=[];function o(s){var c=i[s]={onStack:!0,lowlink:n,index:n++};if(r.push(s),t.successors(s).forEach(function(t){e.has(i,t)?i[t].onStack&&(c.lowlink=Math.min(c.lowlink,i[t].index)):(o(t),c.lowlink=Math.min(c.lowlink,i[t].lowlink))}),c.lowlink===c.index){var l=[],u;do u=r.pop(),i[u].onStack=!1,l.push(u);while(s!==u);a.push(l)}}return t.nodes().forEach(function(t){e.has(i,t)||o(t)}),a}return Jf}var Zf,Qf;function $f(){if(Qf)return Zf;Qf=1;var e=X(),t=Xf();Zf=n;function n(n){return e.filter(t(n),function(e){return e.length>1||e.length===1&&n.hasEdge(e[0],e[0])})}return Zf}var ep,tp;function np(){if(tp)return ep;tp=1;var e=X();ep=n;var t=e.constant(1);function n(e,n,i){return r(e,n||t,i||function(t){return e.outEdges(t)})}function r(e,t,n){var r={},i=e.nodes();return i.forEach(function(e){r[e]={},r[e][e]={distance:0},i.forEach(function(t){e!==t&&(r[e][t]={distance:1/0})}),n(e).forEach(function(n){var i=n.v===e?n.w:n.v,a=t(n);r[e][i]={distance:a,predecessor:e}})}),i.forEach(function(e){var t=r[e];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[e],i=t[n],o=a[n],s=r.distance+i.distance;s<o.distance&&(o.distance=s,o.predecessor=i.predecessor)})})}),r}return ep}var rp,ip;function ap(){if(ip)return rp;ip=1;var e=X();rp=t,t.CycleException=n;function t(t){var r={},i={},a=[];function o(s){if(e.has(i,s))throw new n;e.has(r,s)||(i[s]=!0,r[s]=!0,e.each(t.predecessors(s),o),delete i[s],a.push(s))}if(e.each(t.sinks(),o),e.size(r)!==t.nodeCount())throw new n;return a}function n(){}return n.prototype=Error(),rp}var op,sp;function cp(){if(sp)return op;sp=1;var e=ap();op=t;function t(t){try{e(t)}catch(t){if(t instanceof e.CycleException)return!1;throw t}return!0}return op}var lp,up;function dp(){if(up)return lp;up=1;var e=X();lp=t;function t(t,r,i){e.isArray(r)||(r=[r]);var a=(t.isDirected()?t.successors:t.neighbors).bind(t),o=[],s={};return e.each(r,function(e){if(!t.hasNode(e))throw Error(`Graph does not have node: `+e);n(t,e,i===`post`,s,a,o)}),o}function n(t,r,i,a,o,s){e.has(a,r)||(a[r]=!0,i||s.push(r),e.each(o(r),function(e){n(t,e,i,a,o,s)}),i&&s.push(r))}return lp}var fp,pp;function mp(){if(pp)return fp;pp=1;var e=dp();fp=t;function t(t,n){return e(t,n,`post`)}return fp}var hp,gp;function _p(){if(gp)return hp;gp=1;var e=dp();hp=t;function t(t,n){return e(t,n,`pre`)}return hp}var vp,yp;function bp(){if(yp)return vp;yp=1;var e=X(),t=Ef(),n=Vf();vp=r;function r(r,i){var a=new t,o={},s=new n,c;function l(e){var t=e.v===c?e.w:e.v,n=s.priority(t);if(n!==void 0){var r=i(e);r<n&&(o[t]=c,s.decrease(t,r))}}if(r.nodeCount()===0)return a;e.each(r.nodes(),function(e){s.add(e,1/0),a.setNode(e)}),s.decrease(r.nodes()[0],0);for(var u=!1;s.size()>0;){if(c=s.removeMin(),e.has(o,c))a.setEdge(c,o[c]);else if(u)throw Error(`Input graph is not connected: `+r);else u=!0;r.nodeEdges(c).forEach(l)}return a}return vp}var xp,Sp;function Cp(){return Sp?xp:(Sp=1,xp={components:Rf(),dijkstra:Wf(),dijkstraAll:qf(),findCycles:$f(),floydWarshall:np(),isAcyclic:cp(),postorder:mp(),preorder:_p(),prim:bp(),tarjan:Xf(),topsort:ap()},xp)}var wp,Tp;function Ep(){if(Tp)return wp;Tp=1;var e=Mf();return wp={Graph:e.Graph,json:Ff(),alg:Cp(),version:e.version},wp}var Dp,Op;function Z(){if(Op)return Dp;Op=1;var e;if(typeof It==`function`)try{e=Ep()}catch{}return e||=window.graphlib,Dp=e,Dp}var kp,Ap;function jp(){if(Ap)return kp;Ap=1;var e=As(),t=1,n=4;function r(r){return e(r,t|n)}return kp=r,kp}var Mp,Np;function Pp(){if(Np)return Mp;Np=1;var e=Ht(),t=J(),n=Hi(),r=G();function i(i,a,o){if(!r(o))return!1;var s=typeof a;return(s==`number`?t(o)&&n(a,o.length):s==`string`&&a in o)?e(o[a],i):!1}return Mp=i,Mp}var Fp,Ip;function Lp(){if(Ip)return Fp;Ip=1;var e=Fd(),t=Ht(),n=Pp(),r=Fa(),i=Object.prototype,a=i.hasOwnProperty;return Fp=e(function(e,o){e=Object(e);var s=-1,c=o.length,l=c>2?o[2]:void 0;for(l&&n(o[0],o[1],l)&&(c=1);++s<c;)for(var u=o[s],d=r(u),f=-1,p=d.length;++f<p;){var m=d[f],h=e[m];(h===void 0||t(h,i[m])&&!a.call(e,m))&&(e[m]=u[m])}return e}),Fp}var Rp,zp;function Bp(){if(zp)return Rp;zp=1;var e=Y(),t=J(),n=Ca();function r(r){return function(i,a,o){var s=Object(i);if(!t(i)){var c=e(a,3);i=n(i),a=function(e){return c(s[e],e,s)}}var l=r(i,a,o);return l>-1?s[c?i[l]:l]:void 0}}return Rp=r,Rp}var Vp,Hp;function Up(){if(Hp)return Vp;Hp=1;var e=/\s/;function t(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}return Vp=t,Vp}var Wp,Gp;function Kp(){if(Gp)return Wp;Gp=1;var e=Up(),t=/^\s+/;function n(n){return n&&n.slice(0,e(n)+1).replace(t,``)}return Wp=n,Wp}var qp,Jp;function Yp(){if(Jp)return qp;Jp=1;var e=Kp(),t=G(),n=fl(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt;function c(c){if(typeof c==`number`)return c;if(n(c))return r;if(t(c)){var l=typeof c.valueOf==`function`?c.valueOf():c;c=t(l)?l+``:l}if(typeof c!=`string`)return c===0?c:+c;c=e(c);var u=a.test(c);return u||o.test(c)?s(c.slice(2),u?2:8):i.test(c)?r:+c}return qp=c,qp}var Xp,Zp;function Qp(){if(Zp)return Xp;Zp=1;var e=Yp(),t=1/0,n=17976931348623157e292;function r(r){return r?(r=e(r),r===t||r===-t?(r<0?-1:1)*n:r===r?r:0):r===0?r:0}return Xp=r,Xp}var $p,em;function tm(){if(em)return $p;em=1;var e=Qp();function t(t){var n=e(t),r=n%1;return n===n?r?n-r:n:0}return $p=t,$p}var nm,rm;function im(){if(rm)return nm;rm=1;var e=Rd(),t=Y(),n=tm(),r=Math.max;function i(i,a,o){var s=i==null?0:i.length;if(!s)return-1;var c=o==null?0:n(o);return c<0&&(c=r(s+c,0)),e(i,t(a,3),c)}return nm=i,nm}var am,om;function sm(){return om?am:(om=1,am=Bp()(im()),am)}var cm,lm;function um(){if(lm)return cm;lm=1;var e=_d();function t(t){return t!=null&&t.length?e(t,1):[]}return cm=t,cm}var dm,fm;function pm(){if(fm)return dm;fm=1;var e=Hs(),t=rc(),n=Fa();function r(r,i){return r==null?r:e(r,t(i),n)}return dm=r,dm}var mm,hm;function gm(){if(hm)return mm;hm=1;function e(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}return mm=e,mm}var _m,vm;function ym(){if(vm)return _m;vm=1;var e=mi(),t=Gs(),n=Y();function r(r,i){var a={};return i=n(i,3),t(r,function(t,n,r){e(a,n,i(t,n,r))}),a}return _m=r,_m}var bm,xm;function Sm(){if(xm)return bm;xm=1;var e=fl();function t(t,n,r){for(var i=-1,a=t.length;++i<a;){var o=t[i],s=n(o);if(s!=null&&(c===void 0?s===s&&!e(s):r(s,c)))var c=s,l=o}return l}return bm=t,bm}var Cm,wm;function Tm(){if(wm)return Cm;wm=1;function e(e,t){return e>t}return Cm=e,Cm}var Em,Dm;function Om(){if(Dm)return Em;Dm=1;var e=Sm(),t=Tm(),n=ec();function r(r){return r&&r.length?e(r,n,t):void 0}return Em=r,Em}var km,Am;function jm(){if(Am)return km;Am=1;var e=mi(),t=Ht();function n(n,r,i){(i!==void 0&&!t(n[r],i)||i===void 0&&!(r in n))&&e(n,r,i)}return km=n,km}var Mm,Nm;function Pm(){if(Nm)return Mm;Nm=1;var e=In(),t=co(),n=K(),r=`[object Object]`,i=Function.prototype,a=Object.prototype,o=i.toString,s=a.hasOwnProperty,c=o.call(Object);function l(i){if(!n(i)||e(i)!=r)return!1;var a=t(i);if(a===null)return!0;var l=s.call(a,`constructor`)&&a.constructor;return typeof l==`function`&&l instanceof l&&o.call(l)==c}return Mm=l,Mm}var Fm,Im;function Lm(){if(Im)return Fm;Im=1;function e(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}return Fm=e,Fm}var Rm,zm;function Bm(){if(zm)return Rm;zm=1;var e=bi(),t=Fa();function n(n){return e(n,t(n))}return Rm=n,Rm}var Vm,Hm;function Um(){if(Hm)return Vm;Hm=1;var e=jm(),t=Va(),n=os(),r=Wa(),i=hs(),a=ji(),o=q(),s=ff(),c=zi(),l=Vn(),u=G(),d=Pm(),f=ra(),p=Lm(),m=Bm();function h(h,g,_,v,y,b,x){var S=p(h,_),C=p(g,_),w=x.get(C);if(w){e(h,_,w);return}var T=b?b(S,C,_+``,h,g,x):void 0,E=T===void 0;if(E){var D=o(C),O=!D&&c(C),k=!D&&!O&&f(C);T=C,D||O||k?o(S)?T=S:s(S)?T=r(S):O?(E=!1,T=t(C,!0)):k?(E=!1,T=n(C,!0)):T=[]:d(C)||a(C)?(T=S,a(S)?T=m(S):(!u(S)||l(S))&&(T=i(C))):E=!1}E&&(x.set(C,T),y(T,C,v,b,x),x.delete(C)),e(h,_,T)}return Vm=h,Vm}var Wm,Gm;function Km(){if(Gm)return Wm;Gm=1;var e=ai(),t=jm(),n=Hs(),r=Um(),i=G(),a=Fa(),o=Lm();function s(c,l,u,d,f){c!==l&&n(l,function(n,a){if(f||=new e,i(n))r(c,l,a,u,s,d,f);else{var p=d?d(o(c,a),n,a+``,c,l,f):void 0;p===void 0&&(p=n),t(c,a,p)}},a)}return Wm=s,Wm}var qm,Jm;function Ym(){if(Jm)return qm;Jm=1;var e=Fd(),t=Pp();function n(n){return e(function(e,r){var i=-1,a=r.length,o=a>1?r[a-1]:void 0,s=a>2?r[2]:void 0;for(o=n.length>3&&typeof o==`function`?(a--,o):void 0,s&&t(r[0],r[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++i<a;){var c=r[i];c&&n(e,c,i,o)}return e})}return qm=n,qm}var Xm,Zm;function Qm(){if(Zm)return Xm;Zm=1;var e=Km();return Xm=Ym()(function(t,n,r){e(t,n,r)}),Xm}var $m,eh;function th(){if(eh)return $m;eh=1;function e(e,t){return e<t}return $m=e,$m}var nh,rh;function ih(){if(rh)return nh;rh=1;var e=Sm(),t=th(),n=ec();function r(r){return r&&r.length?e(r,n,t):void 0}return nh=r,nh}var ah,oh;function sh(){if(oh)return ah;oh=1;var e=Sm(),t=Y(),n=th();function r(r,i){return r&&r.length?e(r,t(i,2),n):void 0}return ah=r,ah}var ch,lh;function uh(){if(lh)return ch;lh=1;var e=W();return ch=function(){return e.Date.now()},ch}var dh,fh;function ph(){if(fh)return dh;fh=1;var e=_i(),t=Il(),n=Hi(),r=G(),i=zl();function a(a,o,s,c){if(!r(a))return a;o=t(o,a);for(var l=-1,u=o.length,d=u-1,f=a;f!=null&&++l<u;){var p=i(o[l]),m=s;if(p===`__proto__`||p===`constructor`||p===`prototype`)return a;if(l!=d){var h=f[p];m=c?c(h,p,f):void 0,m===void 0&&(m=r(h)?h:n(o[l+1])?[]:{})}e(f,p,m),f=f[p]}return a}return dh=a,dh}var mh,hh;function gh(){if(hh)return mh;hh=1;var e=Hl(),t=ph(),n=Il();function r(r,i,a){for(var o=-1,s=i.length,c={};++o<s;){var l=i[o],u=e(r,l);a(u,l)&&t(c,n(l,r),u)}return c}return mh=r,mh}var _h,vh;function yh(){if(vh)return _h;vh=1;var e=gh(),t=eu();function n(n,r){return e(n,r,function(e,r){return t(n,r)})}return _h=n,_h}var bh,xh;function Sh(){if(xh)return bh;xh=1;var e=um(),t=Cd(),n=Md();function r(r){return n(t(r,void 0,e),r+``)}return bh=r,bh}var Ch,wh;function Th(){if(wh)return Ch;wh=1;var e=yh();return Ch=Sh()(function(t,n){return t==null?{}:e(t,n)}),Ch}var Eh,Dh;function Oh(){if(Dh)return Eh;Dh=1;var e=Math.ceil,t=Math.max;function n(n,r,i,a){for(var o=-1,s=t(e((r-n)/(i||1)),0),c=Array(s);s--;)c[a?s:++o]=n,n+=i;return c}return Eh=n,Eh}var kh,Ah;function jh(){if(Ah)return kh;Ah=1;var e=Oh(),t=Pp(),n=Qp();function r(r){return function(i,a,o){return o&&typeof o!=`number`&&t(i,a,o)&&(a=o=void 0),i=n(i),a===void 0?(a=i,i=0):a=n(a),o=o===void 0?i<a?1:-1:n(o),e(i,a,o,r)}}return kh=r,kh}var Mh,Nh;function Ph(){return Nh?Mh:(Nh=1,Mh=jh()(),Mh)}var Fh,Ih;function Lh(){if(Ih)return Fh;Ih=1;function e(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}return Fh=e,Fh}var Rh,zh;function Bh(){if(zh)return Rh;zh=1;var e=fl();function t(t,n){if(t!==n){var r=t!==void 0,i=t===null,a=t===t,o=e(t),s=n!==void 0,c=n===null,l=n===n,u=e(n);if(!c&&!u&&!o&&t>n||o&&s&&l&&!c&&!u||i&&s&&l||!r&&l||!a)return 1;if(!i&&!o&&!u&&t<n||u&&r&&a&&!i&&!o||c&&r&&a||!s&&a||!l)return-1}return 0}return Rh=t,Rh}var Vh,Hh;function Uh(){if(Hh)return Vh;Hh=1;var e=Bh();function t(t,n,r){for(var i=-1,a=t.criteria,o=n.criteria,s=a.length,c=r.length;++i<s;){var l=e(a[i],o[i]);if(l)return i>=c?l:l*(r[i]==`desc`?-1:1)}return t.index-n.index}return Vh=t,Vh}var Wh,Gh;function Kh(){if(Gh)return Wh;Gh=1;var e=Dl(),t=Hl(),n=Y(),r=Mu(),i=Lh(),a=Zi(),o=Uh(),s=ec(),c=q();function l(l,u,d){u=u.length?e(u,function(e){return c(e)?function(n){return t(n,e.length===1?e[0]:e)}:e}):[s];var f=-1;return u=e(u,a(n)),i(r(l,function(t,n,r){return{criteria:e(u,function(e){return e(t)}),index:++f,value:t}}),function(e,t){return o(e,t,d)})}return Wh=l,Wh}var qh,Jh;function Yh(){if(Jh)return qh;Jh=1;var e=_d(),t=Kh(),n=Fd(),r=Pp();return qh=n(function(n,i){if(n==null)return[];var a=i.length;return a>1&&r(n,i[0],i[1])?i=[]:a>2&&r(i[0],i[1],i[2])&&(i=[i[0]]),t(n,e(i,1),[])}),qh}var Xh,Zh;function Qh(){if(Zh)return Xh;Zh=1;var e=Nl(),t=0;function n(n){var r=++t;return e(n)+r}return Xh=n,Xh}var $h,eg;function tg(){if(eg)return $h;eg=1;function e(e,t,n){for(var r=-1,i=e.length,a=t.length,o={};++r<i;){var s=r<a?t[r]:void 0;n(o,e[r],s)}return o}return $h=e,$h}var ng,rg;function ig(){if(rg)return ng;rg=1;var e=_i(),t=tg();function n(n,r){return t(n||[],r||[],e)}return ng=n,ng}var ag,og;function Q(){if(og)return ag;og=1;var e;if(typeof It==`function`)try{e={cloneDeep:jp(),constant:Is(),defaults:Lp(),each:lc(),filter:_u(),find:sm(),flatten:um(),forEach:oc(),forIn:pm(),has:Cu(),isUndefined:ku(),last:gm(),map:Fu(),mapValues:ym(),max:Om(),merge:Qm(),min:ih(),minBy:sh(),now:uh(),pick:Th(),range:Ph(),reduce:Wu(),sortBy:Yh(),uniqueId:Qh(),values:xf(),zipObject:ig()}}catch{}return e||=window._,ag=e,ag}var sg,cg;function lg(){if(cg)return sg;cg=1,sg=e;function e(){var e={};e._next=e._prev=e,this._sentinel=e}e.prototype.dequeue=function(){var e=this._sentinel,n=e._prev;if(n!==e)return t(n),n},e.prototype.enqueue=function(e){var n=this._sentinel;e._prev&&e._next&&t(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n},e.prototype.toString=function(){for(var e=[],t=this._sentinel,r=t._prev;r!==t;)e.push(JSON.stringify(r,n)),r=r._prev;return`[`+e.join(`, `)+`]`};function t(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function n(e,t){if(e!==`_next`&&e!==`_prev`)return t}return sg}var ug,dg;function fg(){if(dg)return ug;dg=1;var e=Q(),t=Z().Graph,n=lg();ug=i;var r=e.constant(1);function i(t,n){if(t.nodeCount()<=1)return[];var i=s(t,n||r),o=a(i.graph,i.buckets,i.zeroIdx);return e.flatten(e.map(o,function(e){return t.outEdges(e.v,e.w)}),!0)}function a(e,t,n){for(var r=[],i=t[t.length-1],a=t[0],s;e.nodeCount();){for(;s=a.dequeue();)o(e,t,n,s);for(;s=i.dequeue();)o(e,t,n,s);if(e.nodeCount()){for(var c=t.length-2;c>0;--c)if(s=t[c].dequeue(),s){r=r.concat(o(e,t,n,s,!0));break}}}return r}function o(t,n,r,i,a){var o=a?[]:void 0;return e.forEach(t.inEdges(i.v),function(e){var i=t.edge(e),s=t.node(e.v);a&&o.push({v:e.v,w:e.w}),s.out-=i,c(n,r,s)}),e.forEach(t.outEdges(i.v),function(e){var i=t.edge(e),a=e.w,o=t.node(a);o.in-=i,c(n,r,o)}),t.removeNode(i.v),o}function s(r,i){var a=new t,o=0,s=0;e.forEach(r.nodes(),function(e){a.setNode(e,{v:e,in:0,out:0})}),e.forEach(r.edges(),function(e){var t=a.edge(e.v,e.w)||0,n=i(e),r=t+n;a.setEdge(e.v,e.w,r),s=Math.max(s,a.node(e.v).out+=n),o=Math.max(o,a.node(e.w).in+=n)});var l=e.range(s+o+3).map(function(){return new n}),u=o+1;return e.forEach(a.nodes(),function(e){c(l,u,a.node(e))}),{graph:a,buckets:l,zeroIdx:u}}function c(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}return ug}var pg,mg;function hg(){if(mg)return pg;mg=1;var e=Q(),t=fg();pg={run:n,undo:i};function n(n){var i=n.graph().acyclicer===`greedy`?t(n,a(n)):r(n);e.forEach(i,function(t){var r=n.edge(t);n.removeEdge(t),r.forwardName=t.name,r.reversed=!0,n.setEdge(t.w,t.v,r,e.uniqueId(`rev`))});function a(e){return function(t){return e.edge(t).weight}}}function r(t){var n=[],r={},i={};function a(o){e.has(i,o)||(i[o]=!0,r[o]=!0,e.forEach(t.outEdges(o),function(t){e.has(r,t.w)?n.push(t):a(t.w)}),delete r[o])}return e.forEach(t.nodes(),a),n}function i(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}})}return pg}var gg,_g;function $(){if(_g)return gg;_g=1;var e=Q(),t=Z().Graph;gg={addDummyNode:n,simplify:r,asNonCompoundGraph:i,successorWeights:a,predecessorWeights:o,intersectRect:s,buildLayerMatrix:c,normalizeRanks:l,removeEmptyRanks:u,addBorderNode:d,maxRank:f,partition:p,time:m,notime:h};function n(t,n,r,i){var a;do a=e.uniqueId(i);while(t.hasNode(a));return r.dummy=n,t.setNode(a,r),a}function r(n){var r=new t().setGraph(n.graph());return e.forEach(n.nodes(),function(e){r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){var t=r.edge(e.v,e.w)||{weight:0,minlen:1},i=n.edge(e);r.setEdge(e.v,e.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),r}function i(n){var r=new t({multigraph:n.isMultigraph()}).setGraph(n.graph());return e.forEach(n.nodes(),function(e){n.children(e).length||r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){r.setEdge(e,n.edge(e))}),r}function a(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.outEdges(n),function(e){r[e.w]=(r[e.w]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function o(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.inEdges(n),function(e){r[e.v]=(r[e.v]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function s(e,t){var n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);var c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function c(t){var n=e.map(e.range(f(t)+1),function(){return[]});return e.forEach(t.nodes(),function(r){var i=t.node(r),a=i.rank;e.isUndefined(a)||(n[a][i.order]=r)}),n}function l(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank}));e.forEach(t.nodes(),function(r){var i=t.node(r);e.has(i,`rank`)&&(i.rank-=n)})}function u(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank})),r=[];e.forEach(t.nodes(),function(e){var i=t.node(e).rank-n;r[i]||(r[i]=[]),r[i].push(e)});var i=0,a=t.graph().nodeRankFactor;e.forEach(r,function(n,r){e.isUndefined(n)&&r%a!==0?--i:i&&e.forEach(n,function(e){t.node(e).rank+=i})})}function d(e,t,r,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=i),n(e,`border`,a,t)}function f(t){return e.max(e.map(t.nodes(),function(n){var r=t.node(n).rank;if(!e.isUndefined(r))return r}))}function p(t,n){var r={lhs:[],rhs:[]};return e.forEach(t,function(e){n(e)?r.lhs.push(e):r.rhs.push(e)}),r}function m(t,n){var r=e.now();try{return n()}finally{console.log(t+` time: `+(e.now()-r)+`ms`)}}function h(e,t){return t()}return gg}var vg,yg;function bg(){if(yg)return vg;yg=1;var e=Q(),t=$();vg={run:n,undo:i};function n(t){t.graph().dummyChains=[],e.forEach(t.edges(),function(e){r(t,e)})}function r(e,n){var r=n.v,i=e.node(r).rank,a=n.w,o=e.node(a).rank,s=n.name,c=e.edge(n),l=c.labelRank;if(o!==i+1){e.removeEdge(n);var u,d,f;for(f=0,++i;i<o;++f,++i)c.points=[],d={width:0,height:0,edgeLabel:c,edgeObj:n,rank:i},u=t.addDummyNode(e,`edge`,d,`_d`),i===l&&(d.width=c.width,d.height=c.height,d.dummy=`edge-label`,d.labelpos=c.labelpos),e.setEdge(r,u,{weight:c.weight},s),f===0&&e.graph().dummyChains.push(u),r=u;e.setEdge(r,a,{weight:c.weight},s)}}function i(t){e.forEach(t.graph().dummyChains,function(e){var n=t.node(e),r=n.edgeLabel,i;for(t.setEdge(n.edgeObj,r);n.dummy;)i=t.successors(e)[0],t.removeNode(e),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),e=i,n=t.node(e)})}return vg}var xg,Sg;function Cg(){if(Sg)return xg;Sg=1;var e=Q();xg={longestPath:t,slack:n};function t(t){var n={};function r(i){var a=t.node(i);if(e.has(n,i))return a.rank;n[i]=!0;var o=e.min(e.map(t.outEdges(i),function(e){return r(e.w)-t.edge(e).minlen}));return(o===1/0||o==null)&&(o=0),a.rank=o}e.forEach(t.sources(),r)}function n(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}return xg}var wg,Tg;function Eg(){if(Tg)return wg;Tg=1;var e=Q(),t=Z().Graph,n=Cg().slack;wg=r;function r(e){var r=new t({directed:!1}),s=e.nodes()[0],c=e.nodeCount();r.setNode(s,{});for(var l,u;i(r,e)<c;)l=a(r,e),u=r.hasNode(l.v)?n(e,l):-n(e,l),o(r,e,u);return r}function i(t,r){function i(a){e.forEach(r.nodeEdges(a),function(e){var o=e.v,s=a===o?e.w:o;!t.hasNode(s)&&!n(r,e)&&(t.setNode(s,{}),t.setEdge(a,s,{}),i(s))})}return e.forEach(t.nodes(),i),t.nodeCount()}function a(t,r){return e.minBy(r.edges(),function(e){if(t.hasNode(e.v)!==t.hasNode(e.w))return n(r,e)})}function o(t,n,r){e.forEach(t.nodes(),function(e){n.node(e).rank+=r})}return wg}var Dg,Og;function kg(){if(Og)return Dg;Og=1;var e=Q(),t=Eg(),n=Cg().slack,r=Cg().longestPath,i=Z().alg.preorder,a=Z().alg.postorder,o=$().simplify;Dg=s,s.initLowLimValues=d,s.initCutValues=c,s.calcCutValue=u,s.leaveEdge=p,s.enterEdge=m,s.exchangeEdges=h;function s(e){e=o(e),r(e);var n=t(e);d(n),c(n,e);for(var i,a;i=p(n);)a=m(n,e,i),h(n,e,i,a)}function c(t,n){var r=a(t,t.nodes());r=r.slice(0,r.length-1),e.forEach(r,function(e){l(t,n,e)})}function l(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=u(e,t,n)}function u(t,n,r){var i=t.node(r).parent,a=!0,o=n.edge(r,i),s=0;return o||=(a=!1,n.edge(i,r)),s=o.weight,e.forEach(n.nodeEdges(r),function(e){var o=e.v===r,c=o?e.w:e.v;if(c!==i){var l=o===a,u=n.edge(e).weight;if(s+=l?u:-u,_(t,r,c)){var d=t.edge(r,c).cutvalue;s+=l?-d:d}}}),s}function d(e,t){arguments.length<2&&(t=e.nodes()[0]),f(e,{},1,t)}function f(t,n,r,i,a){var o=r,s=t.node(i);return n[i]=!0,e.forEach(t.neighbors(i),function(a){e.has(n,a)||(r=f(t,n,r,a,i))}),s.low=o,s.lim=r++,a?s.parent=a:delete s.parent,r}function p(t){return e.find(t.edges(),function(e){return t.edge(e).cutvalue<0})}function m(t,r,i){var a=i.v,o=i.w;r.hasEdge(a,o)||(a=i.w,o=i.v);var s=t.node(a),c=t.node(o),l=s,u=!1;s.lim>c.lim&&(l=c,u=!0);var d=e.filter(r.edges(),function(e){return u===v(t,t.node(e.v),l)&&u!==v(t,t.node(e.w),l)});return e.minBy(d,function(e){return n(r,e)})}function h(e,t,n,r){var i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),d(e),c(e,t),g(e,t)}function g(t,n){var r=i(t,e.find(t.nodes(),function(e){return!n.node(e).parent}));r=r.slice(1),e.forEach(r,function(e){var r=t.node(e).parent,i=n.edge(e,r),a=!1;i||(i=n.edge(r,e),a=!0),n.node(e).rank=n.node(r).rank+(a?i.minlen:-i.minlen)})}function _(e,t,n){return e.hasEdge(t,n)}function v(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}return Dg}var Ag,jg;function Mg(){if(jg)return Ag;jg=1;var e=Cg().longestPath,t=Eg(),n=kg();Ag=r;function r(e){switch(e.graph().ranker){case`network-simplex`:o(e);break;case`tight-tree`:a(e);break;case`longest-path`:i(e);break;default:o(e)}}var i=e;function a(n){e(n),t(n)}function o(e){n(e)}return Ag}var Ng,Pg;function Fg(){if(Pg)return Ng;Pg=1;var e=Q();Ng=t;function t(t){var i=r(t);e.forEach(t.graph().dummyChains,function(e){for(var r=t.node(e),a=r.edgeObj,o=n(t,i,a.v,a.w),s=o.path,c=o.lca,l=0,u=s[l],d=!0;e!==a.w;){if(r=t.node(e),d){for(;(u=s[l])!==c&&t.node(u).maxRank<r.rank;)l++;u===c&&(d=!1)}if(!d){for(;l<s.length-1&&t.node(u=s[l+1]).minRank<=r.rank;)l++;u=s[l]}t.setParent(e,u),e=t.successors(e)[0]}})}function n(e,t,n,r){var i=[],a=[],o=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),c=n,l;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||s>t[c].lim));for(l=c,c=r;(c=e.parent(c))!==l;)a.push(c);return{path:i.concat(a.reverse()),lca:l}}function r(t){var n={},r=0;function i(a){var o=r;e.forEach(t.children(a),i),n[a]={low:o,lim:r++}}return e.forEach(t.children(),i),n}return Ng}var Ig,Lg;function Rg(){if(Lg)return Ig;Lg=1;var e=Q(),t=$();Ig={run:n,cleanup:o};function n(n){var o=t.addDummyNode(n,`root`,{},`_root`),s=i(n),c=e.max(e.values(s))-1,l=2*c+1;n.graph().nestingRoot=o,e.forEach(n.edges(),function(e){n.edge(e).minlen*=l});var u=a(n)+1;e.forEach(n.children(),function(e){r(n,o,l,u,c,s,e)}),n.graph().nodeRankFactor=l}function r(n,i,a,o,s,c,l){var u=n.children(l);if(!u.length){l!==i&&n.setEdge(i,l,{weight:0,minlen:a});return}var d=t.addBorderNode(n,`_bt`),f=t.addBorderNode(n,`_bb`),p=n.node(l);n.setParent(d,l),p.borderTop=d,n.setParent(f,l),p.borderBottom=f,e.forEach(u,function(e){r(n,i,a,o,s,c,e);var t=n.node(e),u=t.borderTop?t.borderTop:e,p=t.borderBottom?t.borderBottom:e,m=t.borderTop?o:2*o,h=u===p?s-c[l]+1:1;n.setEdge(d,u,{weight:m,minlen:h,nestingEdge:!0}),n.setEdge(p,f,{weight:m,minlen:h,nestingEdge:!0})}),n.parent(l)||n.setEdge(i,d,{weight:0,minlen:s+c[l]})}function i(t){var n={};function r(i,a){var o=t.children(i);o&&o.length&&e.forEach(o,function(e){r(e,a+1)}),n[i]=a}return e.forEach(t.children(),function(e){r(e,1)}),n}function a(t){return e.reduce(t.edges(),function(e,n){return e+t.edge(n).weight},0)}function o(t){var n=t.graph();t.removeNode(n.nestingRoot),delete n.nestingRoot,e.forEach(t.edges(),function(e){t.edge(e).nestingEdge&&t.removeEdge(e)})}return Ig}var zg,Bg;function Vg(){if(Bg)return zg;Bg=1;var e=Q(),t=$();zg=n;function n(t){function n(i){var a=t.children(i),o=t.node(i);if(a.length&&e.forEach(a,n),e.has(o,`minRank`)){o.borderLeft=[],o.borderRight=[];for(var s=o.minRank,c=o.maxRank+1;s<c;++s)r(t,`borderLeft`,`_bl`,i,o,s),r(t,`borderRight`,`_br`,i,o,s)}}e.forEach(t.children(),n)}function r(e,n,r,i,a,o){var s={width:0,height:0,rank:o,borderType:n},c=a[n][o-1],l=t.addDummyNode(e,`border`,s,r);a[n][o]=l,e.setParent(l,i),c&&e.setEdge(c,l,{weight:1})}return zg}var Hg,Ug;function Wg(){if(Ug)return Hg;Ug=1;var e=Q();Hg={adjust:t,undo:n};function t(e){var t=e.graph().rankdir.toLowerCase();(t===`lr`||t===`rl`)&&r(e)}function n(e){var t=e.graph().rankdir.toLowerCase();(t===`bt`||t===`rl`)&&a(e),(t===`lr`||t===`rl`)&&(s(e),r(e))}function r(t){e.forEach(t.nodes(),function(e){i(t.node(e))}),e.forEach(t.edges(),function(e){i(t.edge(e))})}function i(e){var t=e.width;e.width=e.height,e.height=t}function a(t){e.forEach(t.nodes(),function(e){o(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,o),e.has(r,`y`)&&o(r)})}function o(e){e.y=-e.y}function s(t){e.forEach(t.nodes(),function(e){c(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,c),e.has(r,`x`)&&c(r)})}function c(e){var t=e.x;e.x=e.y,e.y=t}return Hg}var Gg,Kg;function qg(){if(Kg)return Gg;Kg=1;var e=Q();Gg=t;function t(t){var n={},r=e.filter(t.nodes(),function(e){return!t.children(e).length}),i=e.max(e.map(r,function(e){return t.node(e).rank})),a=e.map(e.range(i+1),function(){return[]});function o(r){e.has(n,r)||(n[r]=!0,a[t.node(r).rank].push(r),e.forEach(t.successors(r),o))}var s=e.sortBy(r,function(e){return t.node(e).rank});return e.forEach(s,o),a}return Gg}var Jg,Yg;function Xg(){if(Yg)return Jg;Yg=1;var e=Q();Jg=t;function t(e,t){for(var r=0,i=1;i<t.length;++i)r+=n(e,t[i-1],t[i]);return r}function n(t,n,r){for(var i=e.zipObject(r,e.map(r,function(e,t){return t})),a=e.flatten(e.map(n,function(n){return e.sortBy(e.map(t.outEdges(n),function(e){return{pos:i[e.w],weight:t.edge(e).weight}}),`pos`)}),!0),o=1;o<r.length;)o<<=1;var s=2*o-1;--o;var c=e.map(Array(s),function(){return 0}),l=0;return e.forEach(a.forEach(function(e){var t=e.pos+o;c[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=c[t+1]),t=t-1>>1,c[t]+=e.weight;l+=e.weight*n})),l}return Jg}var Zg,Qg;function $g(){if(Qg)return Zg;Qg=1;var e=Q();Zg=t;function t(t,n){return e.map(n,function(n){var r=t.inEdges(n);if(r.length){var i=e.reduce(r,function(e,n){var r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:n,barycenter:i.sum/i.weight,weight:i.weight}}return{v:n}})}return Zg}var e_,t_;function n_(){if(t_)return e_;t_=1;var e=Q();e_=t;function t(t,r){var i={};return e.forEach(t,function(t,n){var r=i[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:n};e.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)}),e.forEach(r.edges(),function(t){var n=i[t.v],r=i[t.w];!e.isUndefined(n)&&!e.isUndefined(r)&&(r.indegree++,n.out.push(i[t.w]))}),n(e.filter(i,function(e){return!e.indegree}))}function n(t){var n=[];function i(t){return function(n){n.merged||(e.isUndefined(n.barycenter)||e.isUndefined(t.barycenter)||n.barycenter>=t.barycenter)&&r(t,n)}}function a(e){return function(n){n.in.push(e),--n.indegree===0&&t.push(n)}}for(;t.length;){var o=t.pop();n.push(o),e.forEach(o.in.reverse(),i(o)),e.forEach(o.out,a(o))}return e.map(e.filter(n,function(e){return!e.merged}),function(t){return e.pick(t,[`vs`,`i`,`barycenter`,`weight`])})}function r(e,t){var n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}return e_}var r_,i_;function a_(){if(i_)return r_;i_=1;var e=Q(),t=$();r_=n;function n(n,a){var o=t.partition(n,function(t){return e.has(t,`barycenter`)}),s=o.lhs,c=e.sortBy(o.rhs,function(e){return-e.i}),l=[],u=0,d=0,f=0;s.sort(i(!!a)),f=r(l,c,f),e.forEach(s,function(e){f+=e.vs.length,l.push(e.vs),u+=e.barycenter*e.weight,d+=e.weight,f=r(l,c,f)});var p={vs:e.flatten(l,!0)};return d&&(p.barycenter=u/d,p.weight=d),p}function r(t,n,r){for(var i;n.length&&(i=e.last(n)).i<=r;)n.pop(),t.push(i.vs),r++;return r}function i(e){return function(t,n){return t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}}return r_}var o_,s_;function c_(){if(s_)return o_;s_=1;var e=Q(),t=$g(),n=n_(),r=a_();o_=i;function i(s,c,l,u){var d=s.children(c),f=s.node(c),p=f?f.borderLeft:void 0,m=f?f.borderRight:void 0,h={};p&&(d=e.filter(d,function(e){return e!==p&&e!==m}));var g=t(s,d);e.forEach(g,function(t){if(s.children(t.v).length){var n=i(s,t.v,l,u);h[t.v]=n,e.has(n,`barycenter`)&&o(t,n)}});var _=n(g,l);a(_,h);var v=r(_,u);if(p&&(v.vs=e.flatten([p,v.vs,m],!0),s.predecessors(p).length)){var y=s.node(s.predecessors(p)[0]),b=s.node(s.predecessors(m)[0]);e.has(v,`barycenter`)||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+y.order+b.order)/(v.weight+2),v.weight+=2}return v}function a(t,n){e.forEach(t,function(t){t.vs=e.flatten(t.vs.map(function(e){return n[e]?n[e].vs:e}),!0)})}function o(t,n){e.isUndefined(t.barycenter)?(t.barycenter=n.barycenter,t.weight=n.weight):(t.barycenter=(t.barycenter*t.weight+n.barycenter*n.weight)/(t.weight+n.weight),t.weight+=n.weight)}return o_}var l_,u_;function d_(){if(u_)return l_;u_=1;var e=Q(),t=Z().Graph;l_=n;function n(n,i,a){var o=r(n),s=new t({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(e){return n.node(e)});return e.forEach(n.nodes(),function(t){var r=n.node(t),c=n.parent(t);(r.rank===i||r.minRank<=i&&i<=r.maxRank)&&(s.setNode(t),s.setParent(t,c||o),e.forEach(n[a](t),function(r){var i=r.v===t?r.w:r.v,a=s.edge(i,t),o=e.isUndefined(a)?0:a.weight;s.setEdge(i,t,{weight:n.edge(r).weight+o})}),e.has(r,`minRank`)&&s.setNode(t,{borderLeft:r.borderLeft[i],borderRight:r.borderRight[i]}))}),s}function r(t){for(var n;t.hasNode(n=e.uniqueId(`_root`)););return n}return l_}var f_,p_;function m_(){if(p_)return f_;p_=1;var e=Q();f_=t;function t(t,n,r){var i={},a;e.forEach(r,function(e){for(var r=t.parent(e),o,s;r;){if(o=t.parent(r),o?(s=i[o],i[o]=r):(s=a,a=r),s&&s!==r){n.setEdge(s,r);return}r=o}})}return f_}var h_,g_;function __(){if(g_)return h_;g_=1;var e=Q(),t=qg(),n=Xg(),r=c_(),i=d_(),a=m_(),o=Z().Graph,s=$();h_=c;function c(r){var i=s.maxRank(r),a=l(r,e.range(1,i+1),`inEdges`),o=l(r,e.range(i-1,-1,-1),`outEdges`),c=t(r);d(r,c);for(var f=1/0,p,m=0,h=0;h<4;++m,++h){u(m%2?a:o,m%4>=2),c=s.buildLayerMatrix(r);var g=n(r,c);g<f&&(h=0,p=e.cloneDeep(c),f=g)}d(r,p)}function l(t,n,r){return e.map(n,function(e){return i(t,e,r)})}function u(t,n){var i=new o;e.forEach(t,function(t){var o=t.graph().root,s=r(t,o,i,n);e.forEach(s.vs,function(e,n){t.node(e).order=n}),a(t,i,s.vs)})}function d(t,n){e.forEach(n,function(n){e.forEach(n,function(e,n){t.node(e).order=n})})}return h_}var v_,y_;function b_(){if(y_)return v_;y_=1;var e=Q(),t=Z().Graph,n=$();v_={positionX:m,findType1Conflicts:r,findType2Conflicts:i,addConflict:o,hasConflict:s,verticalAlignment:c,horizontalCompaction:l,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function r(t,n){var r={};function i(n,i){var s=0,c=0,l=n.length,u=e.last(i);return e.forEach(i,function(n,d){var f=a(t,n),p=f?t.node(f).order:l;(f||n===u)&&(e.forEach(i.slice(c,d+1),function(n){e.forEach(t.predecessors(n),function(e){var i=t.node(e),a=i.order;(a<s||p<a)&&!(i.dummy&&t.node(n).dummy)&&o(r,e,n)})}),c=d+1,s=p)}),i}return e.reduce(n,i),r}function i(t,n){var r={};function i(n,i,a,s,c){var l;e.forEach(e.range(i,a),function(i){l=n[i],t.node(l).dummy&&e.forEach(t.predecessors(l),function(e){var n=t.node(e);n.dummy&&(n.order<s||n.order>c)&&o(r,e,l)})})}function a(n,r){var a=-1,o,s=0;return e.forEach(r,function(e,c){if(t.node(e).dummy===`border`){var l=t.predecessors(e);l.length&&(o=t.node(l[0]).order,i(r,s,c,a,o),s=c,a=o)}i(r,s,r.length,o,n.length)}),r}return e.reduce(n,a),r}function a(t,n){if(t.node(n).dummy)return e.find(t.predecessors(n),function(e){return t.node(e).dummy})}function o(e,t,n){if(t>n){var r=t;t=n,n=r}var i=e[t];i||(e[t]=i={}),i[n]=!0}function s(t,n,r){if(n>r){var i=n;n=r,r=i}return e.has(t[n],r)}function c(t,n,r,i){var a={},o={},c={};return e.forEach(n,function(t){e.forEach(t,function(e,t){a[e]=e,o[e]=e,c[e]=t})}),e.forEach(n,function(t){var n=-1;e.forEach(t,function(t){var l=i(t);if(l.length){l=e.sortBy(l,function(e){return c[e]});for(var u=(l.length-1)/2,d=Math.floor(u),f=Math.ceil(u);d<=f;++d){var p=l[d];o[t]===t&&n<c[p]&&!s(r,t,p)&&(o[p]=t,o[t]=a[t]=a[p],n=c[p])}}})}),{root:a,align:o}}function l(t,n,r,i,a){var o={},s=u(t,n,r,a),c=a?`borderLeft`:`borderRight`;function l(e,t){for(var n=s.nodes(),r=n.pop(),i={};r;)i[r]?e(r):(i[r]=!0,n.push(r),n=n.concat(t(r))),r=n.pop()}function d(e){o[e]=s.inEdges(e).reduce(function(e,t){return Math.max(e,o[t.v]+s.edge(t))},0)}function f(e){var n=s.outEdges(e).reduce(function(e,t){return Math.min(e,o[t.w]-s.edge(t))},1/0),r=t.node(e);n!==1/0&&r.borderType!==c&&(o[e]=Math.max(o[e],n))}return l(d,s.predecessors.bind(s)),l(f,s.successors.bind(s)),e.forEach(i,function(e){o[e]=o[r[e]]}),o}function u(n,r,i,a){var o=new t,s=n.graph(),c=h(s.nodesep,s.edgesep,a);return e.forEach(r,function(t){var r;e.forEach(t,function(e){var t=i[e];if(o.setNode(t),r){var a=i[r],s=o.edge(a,t);o.setEdge(a,t,Math.max(c(n,e,r),s||0))}r=e})}),o}function d(t,n){return e.minBy(e.values(n),function(n){var r=-1/0,i=1/0;return e.forIn(n,function(e,n){var a=g(t,n)/2;r=Math.max(e+a,r),i=Math.min(e-a,i)}),r-i})}function f(t,n){var r=e.values(n),i=e.min(r),a=e.max(r);e.forEach([`u`,`d`],function(r){e.forEach([`l`,`r`],function(o){var s=r+o,c=t[s],l;if(c!==n){var u=e.values(c);l=o===`l`?i-e.min(u):a-e.max(u),l&&(t[s]=e.mapValues(c,function(e){return e+l}))}})})}function p(t,n){return e.mapValues(t.ul,function(r,i){if(n)return t[n.toLowerCase()][i];var a=e.sortBy(e.map(t,i));return(a[1]+a[2])/2})}function m(t){var a=n.buildLayerMatrix(t),o=e.merge(r(t,a),i(t,a)),s={},u;return e.forEach([`u`,`d`],function(n){u=n===`u`?a:e.values(a).reverse(),e.forEach([`l`,`r`],function(r){r===`r`&&(u=e.map(u,function(t){return e.values(t).reverse()}));var i=(n===`u`?t.predecessors:t.successors).bind(t),a=c(t,u,o,i),d=l(t,u,a.root,a.align,r===`r`);r===`r`&&(d=e.mapValues(d,function(e){return-e})),s[n+r]=d})}),f(s,d(t,s)),p(s,t.graph().align)}function h(t,n,r){return function(i,a,o){var s=i.node(a),c=i.node(o),l=0,u;if(l+=s.width/2,e.has(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:u=-s.width/2;break;case`r`:u=s.width/2}if(u&&(l+=r?u:-u),u=0,l+=(s.dummy?n:t)/2,l+=(c.dummy?n:t)/2,l+=c.width/2,e.has(c,`labelpos`))switch(c.labelpos.toLowerCase()){case`l`:u=c.width/2;break;case`r`:u=-c.width/2}return u&&(l+=r?u:-u),u=0,l}}function g(e,t){return e.node(t).width}return v_}var x_,S_;function C_(){if(S_)return x_;S_=1;var e=Q(),t=$(),n=b_().positionX;x_=r;function r(r){r=t.asNonCompoundGraph(r),i(r),e.forEach(n(r),function(e,t){r.node(t).x=e})}function i(n){var r=t.buildLayerMatrix(n),i=n.graph().ranksep,a=0;e.forEach(r,function(t){var r=e.max(e.map(t,function(e){return n.node(e).height}));e.forEach(t,function(e){n.node(e).y=a+r/2}),a+=r+i})}return x_}var w_,T_;function E_(){if(T_)return w_;T_=1;var e=Q(),t=hg(),n=bg(),r=Mg(),i=$().normalizeRanks,a=Fg(),o=$().removeEmptyRanks,s=Rg(),c=Vg(),l=Wg(),u=__(),d=C_(),f=$(),p=Z().Graph;w_=m;function m(e,t){var n=t&&t.debugTiming?f.time:f.notime;n(`layout`,function(){var t=n(` buildLayoutGraph`,function(){return T(e)});n(` runLayout`,function(){h(t,n)}),n(` updateInputGraph`,function(){g(e,t)})})}function h(e,p){p(` makeSpaceForEdgeLabels`,function(){E(e)}),p(` removeSelfEdges`,function(){P(e)}),p(` acyclic`,function(){t.run(e)}),p(` nestingGraph.run`,function(){s.run(e)}),p(` rank`,function(){r(f.asNonCompoundGraph(e))}),p(` injectEdgeLabelProxies`,function(){D(e)}),p(` removeEmptyRanks`,function(){o(e)}),p(` nestingGraph.cleanup`,function(){s.cleanup(e)}),p(` normalizeRanks`,function(){i(e)}),p(` assignRankMinMax`,function(){O(e)}),p(` removeEdgeLabelProxies`,function(){k(e)}),p(` normalize.run`,function(){n.run(e)}),p(` parentDummyChains`,function(){a(e)}),p(` addBorderSegments`,function(){c(e)}),p(` order`,function(){u(e)}),p(` insertSelfEdges`,function(){F(e)}),p(` adjustCoordinateSystem`,function(){l.adjust(e)}),p(` position`,function(){d(e)}),p(` positionSelfEdges`,function(){I(e)}),p(` removeBorderNodes`,function(){ee(e)}),p(` normalize.undo`,function(){n.undo(e)}),p(` fixupEdgeLabelCoords`,function(){M(e)}),p(` undoCoordinateSystem`,function(){l.undo(e)}),p(` translateGraph`,function(){A(e)}),p(` assignNodeIntersects`,function(){j(e)}),p(` reversePoints`,function(){N(e)}),p(` acyclic.undo`,function(){t.undo(e)})}function g(t,n){e.forEach(t.nodes(),function(e){var r=t.node(e),i=n.node(e);r&&(r.x=i.x,r.y=i.y,n.children(e).length&&(r.width=i.width,r.height=i.height))}),e.forEach(t.edges(),function(r){var i=t.edge(r),a=n.edge(r);i.points=a.points,e.has(a,`x`)&&(i.x=a.x,i.y=a.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height}var _=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],v={ranksep:50,edgesep:20,nodesep:50,rankdir:`tb`},y=[`acyclicer`,`ranker`,`rankdir`,`align`],b=[`width`,`height`],x={width:0,height:0},S=[`minlen`,`weight`,`width`,`height`,`labeloffset`],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},w=[`labelpos`];function T(t){var n=new p({multigraph:!0,compound:!0}),r=L(t.graph());return n.setGraph(e.merge({},v,te(r,_),e.pick(r,y))),e.forEach(t.nodes(),function(r){var i=L(t.node(r));n.setNode(r,e.defaults(te(i,b),x)),n.setParent(r,t.parent(r))}),e.forEach(t.edges(),function(r){var i=L(t.edge(r));n.setEdge(r,e.merge({},C,te(i,S),e.pick(i,w)))}),n}function E(t){var n=t.graph();n.ranksep/=2,e.forEach(t.edges(),function(e){var r=t.edge(e);r.minlen*=2,r.labelpos.toLowerCase()!==`c`&&(n.rankdir===`TB`||n.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function D(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e};f.addDummyNode(t,`edge-proxy`,i,`_ep`)}})}function O(t){var n=0;e.forEach(t.nodes(),function(r){var i=t.node(r);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,n=e.max(n,i.maxRank))}),t.graph().maxRank=n}function k(t){e.forEach(t.nodes(),function(e){var n=t.node(e);n.dummy===`edge-proxy`&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}function A(t){var n=1/0,r=0,i=1/0,a=0,o=t.graph(),s=o.marginx||0,c=o.marginy||0;function l(e){var t=e.x,o=e.y,s=e.width,c=e.height;n=Math.min(n,t-s/2),r=Math.max(r,t+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}e.forEach(t.nodes(),function(e){l(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.has(r,`x`)&&l(r)}),n-=s,i-=c,e.forEach(t.nodes(),function(e){var r=t.node(e);r.x-=n,r.y-=i}),e.forEach(t.edges(),function(r){var a=t.edge(r);e.forEach(a.points,function(e){e.x-=n,e.y-=i}),e.has(a,`x`)&&(a.x-=n),e.has(a,`y`)&&(a.y-=i)}),o.width=r-n+s,o.height=a-i+c}function j(t){e.forEach(t.edges(),function(e){var n=t.edge(e),r=t.node(e.v),i=t.node(e.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(f.intersectRect(r,a)),n.points.push(f.intersectRect(i,o))})}function M(t){e.forEach(t.edges(),function(n){var r=t.edge(n);if(e.has(r,`x`))switch((r.labelpos===`l`||r.labelpos===`r`)&&(r.width-=r.labeloffset),r.labelpos){case`l`:r.x-=r.width/2+r.labeloffset;break;case`r`:r.x+=r.width/2+r.labeloffset}})}function N(t){e.forEach(t.edges(),function(e){var n=t.edge(e);n.reversed&&n.points.reverse()})}function ee(t){e.forEach(t.nodes(),function(n){if(t.children(n).length){var r=t.node(n),i=t.node(r.borderTop),a=t.node(r.borderBottom),o=t.node(e.last(r.borderLeft)),s=t.node(e.last(r.borderRight));r.width=Math.abs(s.x-o.x),r.height=Math.abs(a.y-i.y),r.x=o.x+r.width/2,r.y=i.y+r.height/2}}),e.forEach(t.nodes(),function(e){t.node(e).dummy===`border`&&t.removeNode(e)})}function P(t){e.forEach(t.edges(),function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||=[],n.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function F(t){var n=f.buildLayerMatrix(t);e.forEach(n,function(n){var r=0;e.forEach(n,function(n,i){var a=t.node(n);a.order=i+r,e.forEach(a.selfEdges,function(e){f.addDummyNode(t,`selfedge`,{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++r,e:e.e,label:e.label},`_se`)}),delete a.selfEdges})})}function I(t){e.forEach(t.nodes(),function(e){var n=t.node(e);if(n.dummy===`selfedge`){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}})}function te(t,n){return e.mapValues(e.pick(t,n),Number)}function L(t){var n={};return e.forEach(t,function(e,t){n[t.toLowerCase()]=e}),n}return w_}var D_,O_;function k_(){if(O_)return D_;O_=1;var e=Q(),t=$(),n=Z().Graph;D_={debugOrdering:r};function r(r){var i=t.buildLayerMatrix(r),a=new n({compound:!0,multigraph:!0}).setGraph({});return e.forEach(r.nodes(),function(e){a.setNode(e,{label:e}),a.setParent(e,`layer`+r.node(e).rank)}),e.forEach(r.edges(),function(e){a.setEdge(e.v,e.w,{},e.name)}),e.forEach(i,function(t,n){var r=`layer`+n;a.setNode(r,{rank:`same`}),e.reduce(t,function(e,t){return a.setEdge(e,t,{style:`invis`}),t})}),a}return D_}var A_,j_;function M_(){return j_?A_:(j_=1,A_=`0.8.5`,A_)}var N_,P_;function F_(){return P_?N_:(P_=1,N_={graphlib:Z(),layout:E_(),debug:k_(),util:{time:$().time,notime:$().notime},version:M_()},N_)}var I_=F_(),L_=Ft(I_),R_=function(e){return Mt(e,`Boolean`)};function z_(e,t){if(e){var n;if(Ot(e))for(var r=0,i=e.length;r<i&&(n=t(e[r],r),n!==!1);r++);else if(kt(e)){for(var a in e)if(e.hasOwnProperty(a)&&(n=t(e[a],a),n===!1))break}}}var B_=Object.prototype.hasOwnProperty,V_=(function(e,t){if(e===null||!Nt(e))return{};var n={};return z_(t,function(t){B_.call(e,t)&&(n[t]=e[t])}),n}),H_=class extends Dt{constructor(){super(...arguments),this.id=`dagre`,this.isCompoundGraph=null,this.config={graphAttributes:[`rankdir`,`align`,`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`,`acyclicer`,`ranker`],nodeAttributes:[`width`,`height`],edgeAttributes:[`minlen`,`weight`,`width`,`height`,`labelpos`,`labeloffset`]}}getDefaultOptions(){return{directed:!0,multigraph:!0,rankdir:`TB`,align:void 0,nodesep:50,edgesep:10,ranksep:50,marginx:0,marginy:0,acyclicer:void 0,ranker:`network-simplex`,nodeSize:[0,0],edgeMinLen:1,edgeWeight:1,edgeLabelSize:[0,0],edgeLabelPos:`r`,edgeLabelOffset:10}}layout(){return ge(this,void 0,void 0,function*(){let e=new I_.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});e.setGraph(V_(this.options,this.config.graphAttributes)),e.setDefaultEdgeLabel(()=>({}));let t=We(this.options.nodeSize,0);this.model.forEachNode(n=>{let r=n._original,[i,a]=Re(t(r)),o={width:i,height:a};if(e.setNode(String(n.id),o),this.isCompound()){if(U(n.parentId))return;e.setParent(String(n.id),String(n.parentId))}});let{edgeLabelSize:n,edgeLabelOffset:r,edgeLabelPos:i,edgeMinLen:a,edgeWeight:o}=this.options,s=We(n,0,`edge`),c=Ue(r,10,`edge`),l=typeof i==`string`?()=>i:He(i,[`edge`]),u=Ue(a,1,`edge`),d=Ue(o,1,`edge`);this.model.forEachEdge(t=>{let n=t._original,[r,i]=Re(s(n)),a={width:r,height:i,labelpos:l(n),labeloffset:c(n),minlen:u(n),weight:d(n)};e.setEdge(String(t.source),String(t.target),a,String(t.id))}),L_.layout(e),this.model.forEachNode(t=>{let n=e.node(String(t.id));n&&(t.x=n.x,t.y=n.y,t.size=[n.width,n.height])}),this.model.forEachEdge(t=>{let n=e.edge(String(t.source),String(t.target),String(t.id));if(!n)return;let{width:r,height:i,weight:a,minlen:o,labelpos:s,labeloffset:c,points:l}=n;t.labelSize=[r,i],t.weight=a,t.minLen=o,t.labelPos=s,t.labelOffset=c,t.points=l.map(Ge)})})}isCompound(){return this.isCompoundGraph===null?R_(this.options.compound)?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(e=>!U(e.parentId)),this.isCompoundGraph):this.isCompoundGraph}},U_=26,W_=72,G_=24,K_=28,q_=16,J_=8,Y_=20,X_=24,Z_=12,Q_=22,$_=24,ev=52,tv=(e,t,n)=>{let r=(e,t)=>{let n=Array.from(new Set(e)).sort((e,t)=>e-t),r=[];for(let e of n)(r.length===0||e-r[r.length-1]>t)&&r.push(e);return r},i=r(e.map(e=>t.get(e.id)),U_),a=r(e.map(e=>n.get(e.id)),W_),o=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n},s=new Map,c=new Map;for(let r of e)s.set(r.id,o(i,t.get(r.id))),c.set(r.id,o(a,n.get(r.id)));return{col:s,row:c,ncols:i.length,nrows:a.length}},nv=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)},rv=(e,t,n,r)=>{let i=new Set;for(let t of e)i.add(`${n.get(t.id)}:${r.get(t.id)}`);let a=new Map;for(let e of t)e.source!==e.target&&(nv(a,e.source,e.target),nv(a,e.target,e.source));for(let t of e){let e=a.get(t.id);if(e===void 0)continue;let o=e.map(e=>r.get(e)).sort((e,t)=>e-t),s=o[Math.floor((o.length-1)/2)],c=r.get(t.id),l=Math.abs(s-c);if(l===0)continue;let u=Math.sign(s-c),d;if(l===1){if(!e.some(e=>r.get(e)===s&&Math.abs(n.get(e)-n.get(t.id))===1))continue;d=s}else d=c+u*Math.ceil(l/2);for(let e=d;e!==c;e-=u)if(!i.has(`${n.get(t.id)}:${e}`)){i.delete(`${n.get(t.id)}:${c}`),i.add(`${n.get(t.id)}:${e}`),r.set(t.id,e);break}}},iv=(e,t,n)=>{let r=e.map(e=>{if(e.source===e.target)return{chans:[],guts:[]};let r=t.get(e.source),i=t.get(e.target),a=n.get(e.source),o=n.get(e.target),s,c=[];return r===i?s=[r]:Math.abs(r-i)===1?s=[Math.min(r,i)]:(s=[r<i?r:r-1,r<i?i-1:i],c=[o>a?o-1:o]),{chans:s,guts:c}}),i=new Map,a=new Map,o=new Map,s=new Map,c=(e,t)=>o.set(e,Math.max(o.get(e)??0,t));return r.forEach((t,n)=>{for(let e of t.chans)i.set(e,(i.get(e)??0)+1);for(let e of t.guts)a.set(e,(a.get(e)??0)+1);let{name:r,arity:o}=e[n];r!==void 0&&t.chans.length===1?c(t.chans[0],v(r,16)+16):r!==void 0&&t.guts.length>0&&s.set(t.guts[0],(s.get(t.guts[0])??0)+1),o!==void 0&&t.chans.length>0&&c(t.chans[t.chans.length-1],24+v(o,16)+J_)}),{plans:r,chanCnt:i,gutCnt:a,chanLbl:o,gutLbl:s}},av=(e,t,n,r,i,a,o,s,c,l,u,d)=>{let f=Array.from({length:a},()=>0),p=Array.from({length:o},()=>0);for(let a of e)f[t.get(a.id)]=Math.max(f[t.get(a.id)],r.get(a.id)),p[n.get(a.id)]=Math.max(p[n.get(a.id)],i.get(a.id));let m=Array.from({length:a},(e,t)=>{let n=s.get(t)??0;return Math.min(d[`graph-channel-width-max`],Math.max(d[`graph-channel-width-min`],n===0?G_:K_+(n-1)*d[`size-edge-track-gap`],l.get(t)??0))}),h=Array.from({length:o},(e,t)=>{let n=c.get(t)??0,r=u.get(t)??0;return Math.min(d[`graph-gutter-height-max`],Math.max(d[`graph-gutter-height-min`],n===0?Y_:X_+(n-1)*d[`size-edge-track-gap`],r>0?X_+r*Q_:0))}),g=[],_=[],v=d[`size-canvas-margin`];for(let e=0;e<f.length;e++)g.push(v+f[e]/2),v+=f[e]+m[e];let y=d[`size-canvas-margin`];for(let e=0;e<p.length;e++)_.push(y+p[e]/2),y+=p[e]+h[e];return{colWidth:f,rowHeight:p,chanW:m,gutH:h,colCX:g,rowCY:_}},ov=(e,t,n,r,i,a)=>{let{colWidth:o,rowHeight:s,chanW:c,gutH:l,colCX:u,rowCY:d}=i,f=e=>d[e]+s[e]/2+l[e]/2,p=new Map;e.forEach((e,i)=>{let{chans:a,guts:o}=t[i];if(a.length===0)return;let s=n.get(e.target)<n.get(e.source),c=r.get(`${i}:s`),l=r.get(`${i}:t`);if(a.length===1)nv(p,a[0],{edge:i,posIn:c.y,posOut:l.y,mirror:s});else{let e=f(o[0]);nv(p,a[0],{edge:i,posIn:c.y,posOut:e,mirror:s}),nv(p,a[1],{edge:i,posIn:e,posOut:l.y,mirror:s})}});let m=new Map;for(let[e,t]of p)for(let[n,r]of ne(t,c[e],q_,a[`size-edge-track-gap`]))m.set(`${e}:${n}`,r);let h=(e,t)=>u[e]+o[e]/2+c[e]/2+m.get(`${e}:${t}`),g=new Map;e.forEach((e,n)=>{let{chans:i,guts:a}=t[n];if(a.length===0)return;let o=r.get(`${n}:s`);nv(g,a[0],{edge:n,posIn:h(i[0],n),posOut:h(i[1],n),mirror:o.y>f(a[0])})});let _=new Map;for(let[e,t]of g)for(let[n,r]of ne(t,l[e],Z_,a[`size-edge-track-gap`]))_.set(`${e}:${n}`,r);return{chanX:h,gutY:(e,t)=>f(e)+_.get(`${e}:${t}`)}},sv=(e,t,n,r,i,a,o,s,c,l,u)=>{let d=new Map;return e.map((e,f)=>{let p=n.get(e.source),m=n.get(e.target),h=r.get(`${f}:s`),g=r.get(`${f}:t`),{chans:_,guts:v}=t[f],y;if(e.source===e.target){let t=d.get(e.source)??0;d.set(e.source,t+1);let n=t*u[`size-edge-track-gap`],r=o(e.source)+i.get(e.source)/2+$_+n,c=s(e.source)-a.get(e.source)/2-ev-n;y=[[h.x,h.y],[r,h.y],[r,c],[g.x,c],[g.x,g.y]]}else if(_.length===1){let e=c(_[0],f);y=Math.abs(p-m)===1&&h.y===g.y?[[h.x,h.y],[g.x,g.y]]:[[h.x,h.y],[e,h.y],[e,g.y],[g.x,g.y]]}else{let e=c(_[0],f),t=c(_[1],f),n=l(v[0],f);y=[[h.x,h.y],[e,h.y],[e,n],[t,n],[t,g.y],[g.x,g.y]]}return te(y)})},cv=async(e,t)=>{let n=Array.from(e.nodes.values()),r=e.edges,{boxW:i,boxH:a,contentH:o}=F(n,t,()=>t[`size-node-height-scale`]/2),s=new H_({rankdir:`LR`,nodesep:t[`graph-node-separation`],ranksep:t[`graph-rank-separation`],nodeSize:e=>e.size});await s.execute({nodes:n.map(e=>({id:e.id,size:[i.get(e.id),a.get(e.id)]})),edges:r.map((e,t)=>({id:`e${t}`,source:e.source,target:e.target}))});let c=new Map,l=new Map;s.forEachNode(e=>{c.set(String(e.id),e.x),l.set(String(e.id),e.y)});let{col:u,row:d,ncols:f,nrows:p}=tv(n,c,l);rv(n,r,u,d);let m=Math.max(Math.floor(t[`graph-columns-max`]),1);if(f>m)for(let e of n){let t=u.get(e.id);u.set(e.id,t%m),d.set(e.id,d.get(e.id)+Math.floor(t/m)*p)}let h=Math.min(f,m),g=Array.from(new Set(n.map(e=>d.get(e.id)))).sort((e,t)=>e-t),_=new Map(g.map((e,t)=>[e,t]));for(let e of n)d.set(e.id,_.get(d.get(e.id)));let v=g.length,{plans:y,chanCnt:b,gutCnt:x,chanLbl:S,gutLbl:C}=iv(r,u,d),w=r.map(e=>{let t=u.get(e.source),n=u.get(e.target);return e.source===e.target?{s:`e`,t:`n`}:t<n?{s:`e`,t:`w`}:t>n?{s:`w`,t:`e`}:{s:`e`,t:`e`}}),T=new Map;r.forEach((e,t)=>{T.set(`${w[t].s}:${e.source}`,(T.get(`${w[t].s}:${e.source}`)??0)+1),T.set(`${w[t].t}:${e.target}`,(T.get(`${w[t].t}:${e.target}`)??0)+1)});for(let e of n){let n=Math.max(T.get(`w:${e.id}`)??0,T.get(`e:${e.id}`)??0);n>t[`graph-node-degree-max`]&&a.set(e.id,a.get(e.id)+(n-t[`graph-node-degree-max`])*t[`size-edge-port-gap`])}let E=av(n,u,d,i,a,h,v,b,x,S,C,t),D=e=>E.colCX[u.get(e)],O=e=>E.rowCY[d.get(e)],k=ov(r,y,u,L(r,w,D,O,i,a,t[`size-edge-port-gap`]),E,t),A=L(r,w,D,O,i,a,t[`size-edge-port-gap`],e=>y[e].guts.length>0?k.gutY(y[e].guts[0],e):void 0),{chanX:j,gutY:M}=ov(r,y,u,A,E,t);return{nodes:n,edges:r,cx:D,cy:O,boxW:i,boxH:a,contentH:o,polys:sv(r,y,u,A,i,a,D,O,j,M,t)}},lv=`\0`,uv=e=>{let t=Array.from(e.nodes.values());for(let e of t)if(e.id.includes(lv))throw Error(`node id ${JSON.stringify(e.id)} contains a reserved control character`);let n=t.filter(D);if(n.length!==1)throw Error(`expected exactly one node annotated with "primary: true" (found ${n.length})`);let r=n[0],i=new Set,a=new Set;for(let t of e.edges)if(t.source===r.id&&t.target===r.id)throw Error(`self-loop on primary node "${r.id}" not supported`);else if(t.target===r.id)i.add(t.source);else if(t.source===r.id)a.add(t.target);else throw Error(`edge "${t.source}" --> "${t.target}" does not connect to primary node "${r.id}"`);let o=new Set,s=[],c=[];for(let e of t){if(e.id===r.id)continue;let t=i.has(e.id),n=a.has(e.id);if(!t&&!n)throw Error(`node "${e.id}" is neither input nor output of primary node "${r.id}"`);t&&n?(o.add(e.id),s.push({...e,id:e.id+`\0in`}),c.push({...e,id:e.id+`\0out`})):t?s.push(e):c.push(e)}let l=e.edges.map(e=>e.target===r.id&&o.has(e.source)?{...e,source:e.source+`\0in`}:e.source===r.id&&o.has(e.target)?{...e,target:e.target+`\0out`}:e);return{center:r,inputs:s,outputs:c,nodes:[r,...s,...c],edges:l}},dv={graph:cv,hub:async(e,t)=>{let{center:n,inputs:r,outputs:i,nodes:a,edges:o}=uv(e),s=new Set(r.map(e=>e.id)),c=t[`size-canvas-margin`],l=t[`hub-node-gap`],u=t[`size-node-height-scale`],d=e=>e===n.id?1:s.has(e)?0:2,f=o.map(e=>d(e.source)<d(e.target)?{s:`e`,t:`w`}:{s:`w`,t:`e`}),{boxW:p,boxH:m,contentH:h}=F(a,t,()=>u/2),g=new Map;o.forEach((e,t)=>{g.set(`${f[t].s}:${e.source}`,(g.get(`${f[t].s}:${e.source}`)??0)+1),g.set(`${f[t].t}:${e.target}`,(g.get(`${f[t].t}:${e.target}`)??0)+1)});for(let e of a){let n=Math.max(g.get(`w:${e.id}`)??0,g.get(`e:${e.id}`)??0);n>t[`hub-node-degree-max`]&&m.set(e.id,m.get(e.id)+(n-t[`hub-node-degree-max`])*t[`size-edge-port-gap`])}let _=e=>e.reduce((e,t)=>e+m.get(t.id),0)+Math.max(e.length-1,0)*l,v=Math.max(_(r),m.get(n.id),_(i)),y=new Map,b=e=>{let t=c+(v-_(e))/2;for(let n of e)y.set(n.id,t+m.get(n.id)/2),t+=m.get(n.id)+l};b(r),b(i),y.set(n.id,c+v/2);let x=[r.reduce((e,t)=>Math.max(e,p.get(t.id)),0),p.get(n.id),i.reduce((e,t)=>Math.max(e,p.get(t.id)),0)],S=e=>Math.min(d(e.source),d(e.target)),C=[o.filter(e=>S(e)===0).length,o.filter(e=>S(e)===1).length].map(e=>Math.min(t[`hub-channel-width-max`],Math.max(t[`hub-channel-width-min`],28+(e-1)*t[`size-edge-track-gap`]))),w=[],T=c;for(let e=0;e<3;e++)w.push(T),T+=x[e]+(e<2?C[e]:0);let E=e=>{let t=d(e);return t===0?w[0]+x[0]-p.get(e)/2:t===2?w[2]+p.get(e)/2:w[1]+x[1]/2},D=e=>y.get(e),k=L(o,f,E,D,p,m,t[`size-edge-port-gap`]),A=[[],[]];o.forEach((e,t)=>{A[S(e)].push({edge:t,posIn:k.get(`${t}:s`).y,posOut:k.get(`${t}:t`).y,mirror:!1})});let j=new Map;A.forEach((e,n)=>{for(let[r,i]of ne(e,C[n],16,t[`size-edge-track-gap`]))j.set(`${n}:${r}`,i)});let M=(e,t)=>w[e]+x[e]+C[e]/2+j.get(`${e}:${t}`);return{nodes:a,edges:o,cx:E,cy:D,boxW:p,boxH:m,contentH:h,polys:o.map((e,t)=>{let n=k.get(`${t}:s`),r=k.get(`${t}:t`),i=M(S(e),t),a;return a=n.y===r.y?[[n.x,n.y],[r.x,r.y]]:[[n.x,n.y],[i,n.y],[i,r.y],[r.x,r.y]],te(a)}),styleOf:e=>e.id.endsWith(`\0out`)?{fill:`color-node-ghost-box`,stroke:`color-node-ghost-border`,text:`color-node-ghost-name`,dash:`10 6`}:O(e)}},grid:async(e,t)=>{let n=Array.from(e.nodes.values()),r=t[`size-canvas-margin`],i=t[`grid-gap-horizontal`],a=t[`grid-gap-vertical`],o=Math.max(Math.floor(t[`grid-columns-max`]),1),s=Math.max(Math.floor(t[`grid-columns-min`]),1);if(e.edges.length>0){let t=e.edges[0];throw Error(`diagram type "grid" does not support edges (found ${e.edges.length}, first is "${t.source}" --> "${t.target}")`)}let{boxW:c,boxH:l,contentH:u}=F(n,t,()=>t[`size-node-height-scale`]/2),d=n.reduce((e,t)=>Math.max(e,l.get(t.id)),0),f=n.reduce((e,t)=>Math.max(e,c.get(t.id)),0);for(let e of n)l.set(e.id,d),t[`grid-node-width-equal`]&&c.set(e.id,f);let p=Math.max(Math.min(Math.max(Math.ceil(Math.sqrt(n.length)),s),o,n.length),1),m=Array.from({length:p},()=>0);n.forEach((e,t)=>{m[t%p]=Math.max(m[t%p],c.get(e.id))});let h=[],g=r;for(let e=0;e<p;e++)h.push(g),g+=m[e]+i;let _=new Map,v=new Map;return n.forEach((e,t)=>{_.set(e.id,h[t%p]+c.get(e.id)/2),v.set(e.id,r+Math.floor(t/p)*(d+a)+d/2)}),{nodes:n,edges:[],cx:e=>_.get(e),cy:e=>v.get(e),boxW:c,boxH:l,contentH:u,polys:[]}}},fv=Object.keys(dv),pv=`graph`,mv=e=>{let t;for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#type[ \t]+([a-z][a-z0-9-]*)[ \t]*$/.exec(n);e===null||!Object.hasOwn(dv,e[1])||(t=e[1])}return t},hv=[`svg:standalone`,`svg:embedded`,`url:xml`,`url:base64`];e.Gradia=class e{static config=Object.freeze({...p});static parse(e){return d(e)}static async generate(e,t={}){let n=t.type??`graph`;if(!Object.hasOwn(dv,n))throw Error(`invalid diagram type "${n}"`);let r=t.format??`svg:standalone`;if(!hv.includes(r))throw Error(`invalid output format "${r}"`);let i=t.config??{},a={...p,...i},o=C(e),s=he(o===null?await dv[n](e,a):T(o,await Promise.all(o.map(e=>dv[n](e.graph,a))),a),a,i,JSON.stringify({type:n,config:a,explicit:Object.keys(i).sort(),nodes:Array.from(e.nodes.values()),edges:e.edges}));return r===`svg:embedded`?s.replace(/^<\?xml[^?]*\?>\n/,``):r===`url:xml`?`data:image/svg+xml,${encodeURIComponent(s)}`:r===`url:base64`?`data:image/svg+xml;base64,${btoa(Array.from(new TextEncoder().encode(s),e=>String.fromCharCode(e)).join(``))}`:s}static async render(t,n={}){let r=e.parse(t),i=n.type??mv(t),a={...h(t),...n.config??{}};return e.generate(r,{...n,type:i,config:a})}},e.diagramFormatDefault=`svg:standalone`,e.diagramFormats=hv,e.diagramTypeDefault=pv,e.diagramTypes=fv});
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Object Graph Diagram Rendering",
4
4
  "keywords": [ "object", "graph", "diagram", "rendering", "svg", "layout", "api", "cli" ],
5
5
  "publishConfig": { "access": "public" },
6
- "version": "1.1.3",
6
+ "version": "1.1.5",
7
7
  "license": "MIT",
8
8
  "author": {
9
9
  "name": "Dr. Ralf S. Engelschall",
@@ -29,17 +29,17 @@
29
29
  "pure-uuid": "2.0.0",
30
30
  "source-sans": "3.52.0",
31
31
  "@modelcontextprotocol/sdk": "1.30.0",
32
- "zod": "4.4.3"
32
+ "zod": "4.5.4"
33
33
  },
34
34
  "devDependencies": {
35
- "eslint": "10.9.0",
35
+ "eslint": "10.9.1",
36
36
  "@eslint/js": "10.0.1",
37
- "typescript-eslint": "8.67.0",
37
+ "typescript-eslint": "8.69.0",
38
38
  "eslint-plugin-promise": "7.3.0",
39
39
  "neostandard": "0.14.0-next.1",
40
- "globals": "17.11.0",
40
+ "globals": "17.12.0",
41
41
  "typescript": "6.0.3",
42
- "@types/node": "26.2.0",
42
+ "@types/node": "26.4.1",
43
43
  "@rse/stx": "1.1.6",
44
44
  "shx": "0.4.0",
45
45
  "nodemon": "3.1.14",