agentic-mermaid 0.5.1 → 0.5.4
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/AGENT_NATIVE.md +63 -375
- package/CHANGELOG.md +73 -0
- package/README.md +87 -50
- package/assets/hero.png +0 -0
- package/dist/agent-core.d.ts +7 -7
- package/dist/agent-core.js +1 -1
- package/dist/agent.d.ts +7 -7
- package/dist/agent.js +1 -1
- package/dist/agentic-mermaid-mcp.js +1 -1
- package/dist/am.js +1 -1
- package/dist/browser-lazy/chunks/agentic-producer-core-ECZ3CMZM.js +1 -0
- package/dist/browser-lazy/chunks/architecture-H5LTMKQW.js +13 -0
- package/dist/browser-lazy/chunks/block-566X6FNV.js +11 -0
- package/dist/browser-lazy/chunks/builtin-backends-VAFEZXKY.js +12 -0
- package/dist/browser-lazy/chunks/c4-ZXFDLBFK.js +10 -0
- package/dist/browser-lazy/chunks/{chunk-REBVEXI2.js → chunk-2JQXRKBC.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-37FZNMPR.js +1 -0
- package/dist/browser-lazy/chunks/chunk-3JTYTXA6.js +22 -0
- package/dist/browser-lazy/chunks/{chunk-2J5K6NIP.js → chunk-4NILRBC7.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-5LKPDHPC.js +4 -0
- package/dist/browser-lazy/chunks/chunk-62MR3LWJ.js +1 -0
- package/dist/browser-lazy/chunks/chunk-64JFHCJC.js +1 -0
- package/dist/browser-lazy/chunks/chunk-6GPDLZFQ.js +1 -0
- package/dist/browser-lazy/chunks/chunk-6UOOATQR.js +1 -0
- package/dist/browser-lazy/chunks/chunk-7TTFBJYA.js +1 -0
- package/dist/browser-lazy/chunks/chunk-7UFOFWBA.js +20 -0
- package/dist/browser-lazy/chunks/{chunk-HR5TE7TE.js → chunk-A7V5VDKN.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-CPO5P4L2.js +1 -0
- package/dist/browser-lazy/chunks/chunk-EIYLJ4FI.js +20 -0
- package/dist/browser-lazy/chunks/{chunk-GMTB5UTY.js → chunk-G4JBA7HU.js} +3 -3
- package/dist/browser-lazy/chunks/chunk-HJVO5VC3.js +1 -0
- package/dist/browser-lazy/chunks/chunk-IUI4DYC3.js +3 -0
- package/dist/browser-lazy/chunks/{chunk-SBXYR7Z3.js → chunk-J57YRC2M.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-LBXXKLIR.js +3 -0
- package/dist/browser-lazy/chunks/chunk-NKW2ZNCD.js +1 -0
- package/dist/browser-lazy/chunks/chunk-O34YYEQV.js +1 -0
- package/dist/browser-lazy/chunks/{chunk-E7UIB4SZ.js → chunk-OBI5U5XU.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-LLPBKBIG.js → chunk-OFOS57WQ.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-PSZEE64O.js +16 -0
- package/dist/browser-lazy/chunks/chunk-PXTLV57R.js +1 -0
- package/dist/browser-lazy/chunks/chunk-QVSZOF5M.js +1 -0
- package/dist/browser-lazy/chunks/chunk-TLFX3U6S.js +1 -0
- package/dist/browser-lazy/chunks/{chunk-MSP3S2VS.js → chunk-TT5GR5EJ.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-KXPF5KIU.js → chunk-V6I2VGNQ.js} +5 -5
- package/dist/browser-lazy/chunks/{chunk-HDKHAM2V.js → chunk-VRZKI33U.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-XHU3A432.js +1 -0
- package/dist/browser-lazy/chunks/chunk-YVNJDVQO.js +1 -0
- package/dist/browser-lazy/chunks/chunk-Z7UHFVKN.js +6 -0
- package/dist/browser-lazy/chunks/class-XIFNVBFE.js +13 -0
- package/dist/{zenuml/chunks/decode-BWERFDGK.js → browser-lazy/chunks/decode-5MFOG3AZ.js} +1 -1
- package/dist/browser-lazy/chunks/{elk.bundled-L4CADV5W.js → elk.bundled-RYWHIS5N.js} +8 -8
- package/dist/browser-lazy/chunks/er-VEUYJBGG.js +11 -0
- package/dist/browser-lazy/chunks/eventmodeling-G7DITZX7.js +19 -0
- package/dist/browser-lazy/chunks/flowchart-SSFIU4EU.js +4 -0
- package/dist/browser-lazy/chunks/{forest-implementation-AEP24AIP.js → forest-implementation-RWFF7XDV.js} +1 -1
- package/dist/browser-lazy/chunks/gantt-HQNVDX2B.js +11 -0
- package/dist/browser-lazy/chunks/{gitgraph-W26QIMTY.js → gitgraph-Z5MN6M6L.js} +4 -4
- package/dist/browser-lazy/chunks/ishikawa-UEERNFQV.js +6 -0
- package/dist/browser-lazy/chunks/journey-3BEWWGB5.js +16 -0
- package/dist/browser-lazy/chunks/kanban-2WFNCWLB.js +20 -0
- package/dist/{zenuml/chunks/mermaid-yaml-runtime-KZVU74WU.js → browser-lazy/chunks/mermaid-yaml-runtime-IK4ET4BT.js} +8 -8
- package/dist/browser-lazy/chunks/{mindmap-5A3MVHNH.js → mindmap-R2C6SNYR.js} +6 -6
- package/dist/browser-lazy/chunks/{packet-AL6VDOMY.js → packet-GMVCI5YZ.js} +5 -5
- package/dist/browser-lazy/chunks/pie-WER45DKC.js +15 -0
- package/dist/browser-lazy/chunks/{quadrant-RJ56XFBR.js → quadrant-NCUPSFKN.js} +5 -5
- package/dist/browser-lazy/chunks/radar-WLYS4YC5.js +16 -0
- package/dist/browser-lazy/chunks/render-core-42UVWIPF.js +3 -0
- package/dist/browser-lazy/chunks/requirement-AK3NWMJ6.js +19 -0
- package/dist/browser-lazy/chunks/{sankey-WKTBEZSS.js → sankey-C2DY6WVU.js} +8 -8
- package/dist/browser-lazy/chunks/sequence-D4WJB44W.js +5 -0
- package/dist/browser-lazy/chunks/state-YUQVESE7.js +4 -0
- package/dist/browser-lazy/chunks/{timeline-PRV5PWGP.js → timeline-BMBJJXWR.js} +4 -4
- package/dist/browser-lazy/chunks/{treemap-BVME3JLI.js → treemap-B66XBZZ6.js} +4 -4
- package/dist/browser-lazy/chunks/{xychart-XBI2RNHD.js → xychart-HAVFROGT.js} +6 -6
- package/dist/browser-lazy/chunks/{zenuml-GQKPRQFJ.js → zenuml-62RLYFWP.js} +8 -8
- package/dist/browser-lazy/index.d.ts +10 -0
- package/dist/browser-lazy/index.js +1 -1
- package/dist/browser.global.js +541 -541
- package/dist/{chunk-AVS4T4NO.js → chunk-2DNGDTJD.js} +2 -2
- package/dist/{chunk-AWZBTOV6.js → chunk-4F2UGYTM.js} +2 -2
- package/dist/{chunk-6JBQYHWB.js → chunk-7XYB2LNC.js} +2 -2
- package/dist/chunk-DOFB572I.js +58 -0
- package/dist/chunk-EHJI3QYE.js +52 -0
- package/dist/{chunk-YISEN5SO.js → chunk-HINRNKPO.js} +2 -2
- package/dist/{chunk-ORYXYGDV.js → chunk-KXMANAST.js} +33 -33
- package/dist/chunk-U4MT3RRE.js +2 -0
- package/dist/{chunk-AIWXP4OF.js → chunk-WYIB6BUR.js} +2 -2
- package/dist/{cli-BOEN5YAF.js → cli-ZYIDBYNS.js} +2 -2
- package/dist/{index-Cr3xjRw9.d.ts → index-Bvhprdxz.d.ts} +3 -3
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/{mcp-cli-NM3P4VPC.js → mcp-cli-YVDCORWA.js} +2 -2
- package/dist/{paint-certification-C33LRvWT.d.ts → paint-certification-BoLyr006.d.ts} +22 -2
- package/dist/{server-FY5Z7F32.js → server-4JGAVXR3.js} +2 -2
- package/dist/{svg-styles-C_v2tnxG.d.ts → svg-styles-BnCoXyYe.d.ts} +1 -1
- package/dist/svg-styles.d.ts +1 -1
- package/dist/svg-styles.js +1 -1
- package/dist/svg.d.ts +4 -4
- package/dist/svg.js +1 -1
- package/dist/{types-DxOTIgwg.d.ts → types-CLVJCaH2.d.ts} +11 -1
- package/dist/zenuml/chunks/{appearance-FTQ2722O.js → appearance-5RM5MVM2.js} +1 -1
- package/dist/zenuml/chunks/{builtin-backends-QLY75JCL.js → builtin-backends-UTNWL4N3.js} +11 -11
- package/dist/zenuml/chunks/{chunk-LYIRUTCM.js → chunk-3A6S6GNB.js} +2 -2
- package/dist/zenuml/chunks/{chunk-6OONHTSD.js → chunk-55WS466K.js} +9 -9
- package/dist/zenuml/chunks/chunk-6J4BGPB2.js +29 -0
- package/dist/zenuml/chunks/chunk-CNLL4BGF.js +1 -0
- package/dist/zenuml/chunks/{chunk-YFCDP4ZS.js → chunk-IARQ24W3.js} +13 -13
- package/dist/zenuml/chunks/chunk-ZNZRIISS.js +4 -0
- package/dist/{browser-lazy/chunks/decode-63UIZGD2.js → zenuml/chunks/decode-LDNNXEAO.js} +1 -1
- package/dist/{browser-lazy/chunks/mermaid-yaml-runtime-QVYX4EWK.js → zenuml/chunks/mermaid-yaml-runtime-A5CNJ3IE.js} +8 -8
- package/dist/zenuml/chunks/render-core-ECIWU5ZS.js +3 -0
- package/dist/zenuml/chunks/{zenuml-URQ4HIMD.js → zenuml-N3LZMB2G.js} +9 -9
- package/dist/zenuml.d.ts +2 -2
- package/dist/zenuml.js +1 -1
- package/docs/MCP-DIRECTORY-LISTINGS.md +81 -12
- package/docs/README.md +59 -110
- package/docs/api.md +3 -1
- package/docs/config.md +37 -0
- package/docs/getting-started.md +27 -44
- package/examples/styles/readme-hero.md +25 -0
- package/examples/styles/readme-hero.mmd +13 -0
- package/examples/styles/readme-hero.style.json +7 -0
- package/package.json +1 -1
- package/server.json +2 -2
- package/dist/browser-lazy/chunks/agentic-producer-core-MGU4FD6J.js +0 -1
- package/dist/browser-lazy/chunks/architecture-KZTC3672.js +0 -13
- package/dist/browser-lazy/chunks/block-J5PD6HQM.js +0 -11
- package/dist/browser-lazy/chunks/builtin-backends-GSGJPT5A.js +0 -12
- package/dist/browser-lazy/chunks/c4-VNQSIA5M.js +0 -10
- package/dist/browser-lazy/chunks/chunk-4C2BVM5Y.js +0 -1
- package/dist/browser-lazy/chunks/chunk-5GE2SFLQ.js +0 -4
- package/dist/browser-lazy/chunks/chunk-6YGQR6R4.js +0 -16
- package/dist/browser-lazy/chunks/chunk-7AHX3HH7.js +0 -1
- package/dist/browser-lazy/chunks/chunk-B5PDJUJG.js +0 -3
- package/dist/browser-lazy/chunks/chunk-CXQWSLJV.js +0 -1
- package/dist/browser-lazy/chunks/chunk-DWDYWUAS.js +0 -1
- package/dist/browser-lazy/chunks/chunk-EUBVLDYV.js +0 -29
- package/dist/browser-lazy/chunks/chunk-FBL4ONAL.js +0 -20
- package/dist/browser-lazy/chunks/chunk-NQF75XGM.js +0 -3
- package/dist/browser-lazy/chunks/chunk-P7DO3MRP.js +0 -13
- package/dist/browser-lazy/chunks/chunk-QQ2U2KAY.js +0 -1
- package/dist/browser-lazy/chunks/chunk-SJYDRC6G.js +0 -1
- package/dist/browser-lazy/chunks/chunk-UUTB6MDK.js +0 -1
- package/dist/browser-lazy/chunks/chunk-WEREIH5P.js +0 -1
- package/dist/browser-lazy/chunks/chunk-WHNTP27R.js +0 -6
- package/dist/browser-lazy/chunks/chunk-YXGB25MZ.js +0 -1
- package/dist/browser-lazy/chunks/class-FNDNJGYH.js +0 -13
- package/dist/browser-lazy/chunks/er-P263BDFG.js +0 -11
- package/dist/browser-lazy/chunks/eventmodeling-XX3VCGSC.js +0 -19
- package/dist/browser-lazy/chunks/flowchart-GTLWJA3P.js +0 -4
- package/dist/browser-lazy/chunks/gantt-SRIHFAIC.js +0 -11
- package/dist/browser-lazy/chunks/ishikawa-NTHJ7BUO.js +0 -6
- package/dist/browser-lazy/chunks/journey-3T62IEHN.js +0 -16
- package/dist/browser-lazy/chunks/kanban-U6DQ7LWQ.js +0 -20
- package/dist/browser-lazy/chunks/pie-4QYMTQ7W.js +0 -15
- package/dist/browser-lazy/chunks/radar-L5B4CNEL.js +0 -16
- package/dist/browser-lazy/chunks/render-core-CIGKBI2T.js +0 -3
- package/dist/browser-lazy/chunks/requirement-5QVLRI6Z.js +0 -19
- package/dist/browser-lazy/chunks/sequence-G6DQHPR7.js +0 -5
- package/dist/browser-lazy/chunks/state-6DEA5BXE.js +0 -4
- package/dist/chunk-PNL435CH.js +0 -58
- package/dist/chunk-XCEEF3NJ.js +0 -2
- package/dist/chunk-YQKNJNU4.js +0 -52
- package/dist/zenuml/chunks/chunk-4VRUBLG4.js +0 -29
- package/dist/zenuml/chunks/chunk-7QDAZ2HL.js +0 -4
- package/dist/zenuml/chunks/chunk-GDLMM3YO.js +0 -1
- package/dist/zenuml/chunks/render-core-DNCYYOIB.js +0 -3
- /package/dist/browser-lazy/chunks/{chunk-5FQ534HP.js → chunk-BMZ24VPS.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-2I4UPL7Q.js → chunk-D6MQ7QSU.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-LH7HUDKW.js → chunk-L4UC3KGS.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-NMQQMRIR.js → chunk-MFTQWHUB.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-N5ELX7LR.js → chunk-PJJSDGLB.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-CSFUKSU6.js → chunk-QCU5G5PZ.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-5UVGUSD6.js → chunk-YHMTSXIR.js} +0 -0
- /package/dist/zenuml/chunks/{chunk-EVPSMEKN.js → chunk-GC7IPQ5P.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as e,c as t}from"./chunk-LH7HUDKW.js";import{d as n}from"./chunk-5FQ534HP.js";import{i as i}from"./chunk-5GE2SFLQ.js";import{A as r,D as a,E as o,F as s,G as l,H as h,I as u,M as d,l as x,m as y,q as c}from"./chunk-SJYDRC6G.js";import{C as f,fa as g,ga as p,ia as m,ma as b,oa as M,rb as $,u as w,y as k,z as v}from"./chunk-EUBVLDYV.js";import{L as S,M as P,l as C,w as L}from"./chunk-P7DO3MRP.js";function W(e){let t=e.flatMap((e,t)=>"invisible"===e.style?[]:e.points.slice(1).flatMap((n,i)=>{let r=e.points[i],a=.01>=Math.abs(r.y-n.y);if(!a&&Math.abs(r.x-n.x)>.01)return[];let o=a?r.x:r.y,s=a?n.x:n.y;if(.01>=Math.abs(s-o))return[];let l=a?r.y:r.x;return[{edgeIndex:t,horizontal:a,cross:l,bucket:Math.floor(l/.01),lo:Math.min(o,s),hi:Math.max(o,s),sign:Math.sign(s-o)}]})).sort((e,t)=>e.lo-t.lo||e.edgeIndex-t.edgeIndex),n=new Map,i=new Set;for(let e of t){for(let t=-1;t<=1;t++){let r=`${e.horizontal}:${e.bucket+t}`,a=(n.get(r)??[]).filter(t=>t.hi-e.lo>.01);for(let t of(n.set(r,a),a))t.edgeIndex===e.edgeIndex||t.sign===e.sign||Math.abs(t.cross-e.cross)>.01||Math.min(e.hi,t.hi)-e.lo<=.01||i.add(`${Math.min(e.edgeIndex,t.edgeIndex)}:${Math.max(e.edgeIndex,t.edgeIndex)}`)}let t=`${e.horizontal}:${e.bucket}`;n.get(t).push(e)}return i.size}function N(e,t){return w(e,{transform:t.edgeTextTransform,fontSize:t.edgeLabelFontSize,fontWeight:t.edgeLabelFontWeight,letterSpacing:t.edgeLetterSpacing})}function E(e,t,n){return"group"===n?w(e,{transform:t.groupTextTransform,fontSize:t.groupHeaderFontSize,fontWeight:t.groupHeaderFontWeight,letterSpacing:t.groupLetterSpacing,fontFamily:t.groupFont}):"edge"===n?N(e,t):"note"===n?w(e,{transform:t.nodeTextTransform,fontSize:t.edgeLabelFontSize,fontWeight:t.edgeLabelFontWeight,letterSpacing:t.edgeLetterSpacing}):w(e,{transform:t.nodeTextTransform,fontSize:t.nodeLabelFontSize,fontWeight:t.nodeLabelFontWeight,letterSpacing:t.nodeLetterSpacing})}function I(e,t=!1){let n=y.width,i=t?n:y.height,r=e??"var(--_arrow)",a=`${e?`-${A(e)}`:""}${t?"-fixed":""}`,o={fill:r,stroke:r,strokeWidth:"0.75",strokeLinejoin:"round"};return[$(`arrowhead${a}`,{width:n,height:i},"end",o,t?"userSpaceOnUse":void 0),$(`arrowhead-start${a}`,{width:n,height:i},"start",o,t?"userSpaceOnUse":void 0)]}function B(e,t=!1){let n=y.width,i=`${e?`-${A(e)}`:""}${t?"-fixed":""}`,r=e??"var(--_arrow)",a={shape:"circle",size:{width:n,height:n},...t?{units:"userSpaceOnUse"}:{},orient:"auto",geometry:{kind:"circle",cx:n/2,cy:n/2,r:n/2-.75},paint:{fill:"none",stroke:r,strokeWidth:"1"}};return[{...a,id:`circlehead${i}`,ref:{x:n-.5,y:n/2}},{...a,id:`circlehead-start${i}`,ref:{x:.5,y:n/2}}]}function R(e,t=!1){let n=y.width,i=`${e?`-${A(e)}`:""}${t?"-fixed":""}`,r=e??"var(--_arrow)",a=n-1.25,o={shape:"cross",size:{width:n,height:n},...t?{units:"userSpaceOnUse"}:{},orient:"auto",geometry:{kind:"compound",children:[{kind:"line",x1:1.25,y1:1.25,x2:a,y2:a},{kind:"line",x1:1.25,y1:a,x2:a,y2:1.25}]},paint:{stroke:r,strokeWidth:String(1.25),strokeLinecap:"round"}};return[{...o,id:`crosshead${i}`,ref:{x:a+.625,y:n/2}},{...o,id:`crosshead-start${i}`,ref:{x:.625,y:n/2}}]}function H(e,t,n,i){let r=[...I()];for(let t of(n&&r.push(...B()),i&&r.push(...R()),e))r.push(...I(t)),n&&r.push(...B(t)),i&&r.push(...R(t));for(let e of t)r.push(...I(e,!0)),n&&r.push(...B(e,!0)),i&&r.push(...R(e,!0));return r}function F(e){return"circle"===e?"circlehead":"cross"===e?"crosshead":"arrowhead"}function A(e){if(/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e))return`23${e.slice(1)}`;if(/^[a-z]+$/i.test(e))return e;let t=`color-u-${Array.from(e,e=>e.codePointAt(0).toString(16)).join("-")}`;return t.length<=233?t:`color-h-${i(e).slice(8)}`}function z(e,t){return e.curve?function(e){let t=e[0],n=`M ${t.x} ${t.y}`,i=[];for(let t=1;t<e.length;t++){let r=e[t-1],a=e[t],o=(r.x+a.x)/2;n+=` C ${o} ${r.y}, ${o} ${a.y}, ${a.x} ${a.y}`,i.push({kind:"cubic",control1:{x:o,y:r.y},control2:{x:o,y:a.y},end:a})}return k(n,t,i)}(e.points):(t.edgeBendRadius??0)>0?v(e.points,t.edgeBendRadius):void 0}function O(e,t){if("invisible"===e.style||e.points.length<2||!e.hasArrowStart&&!e.hasArrowEnd)return[];let n=e.inlineStyle?.stroke??t.edgeStrokeColor,i=!!e.inlineStyle?.["stroke-width"],r=H(new Set(n?[n]:[]),new Set(i?[n]:[]),"circle"===e.startMarker||"circle"===e.endMarker,"cross"===e.startMarker||"cross"===e.endMarker),a=`${n?`-${A(n)}`:""}${i?"-fixed":""}`,o=e.hasArrowStart?r.find(t=>t.id===`${F(e.startMarker??"arrow")}-start${a}`):void 0,s=e.hasArrowEnd?r.find(t=>t.id===`${F(e.endMarker??"arrow")}${a}`):void 0,l=z(e,t),h=l?.geometry??{kind:"polyline",points:e.points};return m({route:{geometry:h,closed:!1,contours:l?.contours??f(h,!1)},stroke:{width:e.inlineStyle?.["stroke-width"]??String((t.lineWidth??1)*("thick"===e.style?2:1))},markers:{start:o,mid:[],end:s}})}var j=8;function Y(e,t){return Math.max(4,t*("thick"===e.style?2:1)*2)}function T(e,t,n){let i=n.width+2*j,r=n.height+2*j;return{x:e-i/2,y:t-r/2,w:i,h:r}}function V(e,t){if(!e.label||!e.labelPosition)return null;let n=e.labelBlock??N(L(e.label,e.labelContent),t);return T(e.labelPosition.x,e.labelPosition.y,n)}function q(e,t,n){let i=n.x+.5,r=n.x+n.w-.5,a=n.y+.5,o=n.y+n.h-.5,s=t.x-e.x,l=t.y-e.y;if(0===s)return 0!==l&&e.x>i&&e.x<r&&Math.max(e.y,t.y)>a&&Math.min(e.y,t.y)<o;if(0===l)return e.y>a&&e.y<o&&Math.max(e.x,t.x)>i&&Math.min(e.x,t.x)<r;let h=(i-e.x)/s,u=(r-e.x)/s,d=(a-e.y)/l,x=(o-e.y)/l;return Math.max(0,Math.min(h,u),Math.min(d,x))<Math.min(1,Math.max(h,u),Math.max(d,x))}var Q=new WeakMap,Z=e=>({fill:e.fill,stroke:e.stroke,strokeWidth:e.strokeWidth}),_=e=>({stroke:e.stroke,strokeWidth:e.strokeWidth}),U=(e,t)=>({geometry:{kind:"polygon",points:e},paint:Z(t),routing:{kind:"polygon",points:e}}),J=(e,t,n,i={})=>({geometry:{kind:"path",d:t},paint:{...Z(n),fill:"none"===i.fill?"none":n.fill},routing:{kind:"envelope",x:e.x,y:e.y,width:e.width,height:e.height,reason:i.reason??"closed curved path uses a conservative routing envelope"}});function D(e,t,n){var i,r,a,o;let s=function(e,t){var n,i,r,a;let{x:o,y:s,width:l,height:h}=e,u=o+l,d=s+h,x=o+l/2,y=s+h/2;switch(e.semanticShape){case"bang":return U(Array.from({length:16},(e,t)=>{let n=-Math.PI/2+t*Math.PI/8,i=t%2==0?1:.62;return{x:x+Math.cos(n)*l/2*i,y:y+Math.sin(n)*h/2*i}}),t);case"notch-rect":case"tag-rect":return U([{x:o+10,y:s},{x:u,y:s},{x:u,y:d},{x:o,y:d},{x:o,y:s+10}],t);case"cloud":return J(e,`M${o+.18*l} ${d}C${o-4} ${d} ${o-4} ${y} ${o+.12*l} ${y}C${o+.08*l} ${s+.15*h} ${o+.38*l} ${s-4} ${o+.48*l} ${s+.18*h}C${o+.65*l} ${s-5} ${u} ${s+.16*h} ${o+.88*l} ${y}C${u+5} ${y} ${u+5} ${d} ${o+.72*l} ${d}Z`,t);case"hourglass":return U([{x:o,y:s},{x:u,y:s},{x:o+.62*l,y:y},{x:u,y:d},{x:o,y:d},{x:o+.38*l,y:y}],t);case"bolt":return U([{x:o+.55*l,y:s},{x:o+.25*l,y:y},{x:o+.48*l,y:y},{x:o+.35*l,y:d},{x:o+.78*l,y:s+.4*h},{x:o+.55*l,y:s+.4*h}],t);case"brace":return el(e,`M${u} ${s}C${o+.4*l} ${s} ${o+.7*l} ${y} ${o} ${y}C${o+.7*l} ${y} ${o+.4*l} ${d} ${u} ${d}`,t);case"brace-r":return el(e,`M${o} ${s}C${o+.6*l} ${s} ${o+.3*l} ${y} ${u} ${y}C${o+.3*l} ${y} ${o+.6*l} ${d} ${o} ${d}`,t);case"braces":return el(e,`M${o+.25*l} ${s}C${o} ${s} ${o+.15*l} ${y} ${o} ${y}C${o+.15*l} ${y} ${o} ${d} ${o+.25*l} ${d}M${o+.75*l} ${s}C${u} ${s} ${o+.85*l} ${y} ${u} ${y}C${o+.85*l} ${y} ${u} ${d} ${o+.75*l} ${d}`,t);case"datastore":return el(e,`M${o+8} ${s}H${u}V${d}H${o+8}M${o+8} ${s}C${o-2} ${s+.2*h} ${o-2} ${d-.2*h} ${o+8} ${d}`,t);case"delay":return J(e,`M${o} ${s}H${u-h/2}A${h/2} ${h/2} 0 0 1 ${u-h/2} ${d}H${o}Z`,t);case"h-cyl":return J(e,`M${o+10} ${s}H${u-10}A10 ${h/2} 0 0 1 ${u-10} ${d}H${o+10}A10 ${h/2} 0 0 1 ${o+10} ${s}Z M${u-10} ${s}A10 ${h/2} 0 0 0 ${u-10} ${d}`,t);case"lin-cyl":return J(e,`M${o} ${s+8}A${l/2} 8 0 0 1 ${u} ${s+8}V${d-8}A${l/2} 8 0 0 1 ${o} ${d-8}Z M${o} ${s+8}A${l/2} 8 0 0 0 ${u} ${s+8}M${o} ${d-16}A${l/2} 8 0 0 0 ${u} ${d-16}`,t);case"curv-trap":return J(e,`M${o+12} ${s}Q${x} ${s+8} ${u-12} ${s}L${u} ${d}Q${x} ${d-8} ${o} ${d}Z`,t);case"div-rect":return eh(e,`M${o} ${s}H${u}V${d}H${o}ZM${o} ${y}H${u}`,t);case"doc":return J(e,`M${o} ${s}H${u}V${d-8}Q${o+.75*l} ${d+2} ${x} ${d-8}Q${o+.25*l} ${d-18} ${o} ${d-8}Z`,t);case"tri":return U([{x:x,y:s},{x:u,y:d},{x:o,y:d}],t);case"fork":return{geometry:{kind:"rect",x:o,y:n=y-4,width:l,height:8},paint:{fill:i=t.stroke,stroke:i,strokeWidth:t.strokeWidth},routing:{kind:"rect",x:o,y:n,width:l,height:8}};case"win-pane":return eh(e,`M${o} ${s}H${u}V${d}H${o}ZM${o+.28*l} ${s}V${d}M${o} ${s+.32*h}H${u}`,t);case"f-circ":return{geometry:{kind:"circle",cx:x,cy:y,r:r=Math.min(l,h)/2},paint:{fill:a=t.stroke,stroke:a,strokeWidth:t.strokeWidth},routing:{kind:"ellipse",cx:x,cy:y,rx:r,ry:r}};case"lin-doc":return J(e,`M${o} ${s}H${u}V${d-8}Q${o+.75*l} ${d+2} ${x} ${d-8}Q${o+.25*l} ${d-18} ${o} ${d-8}ZM${o+8} ${s+8}H${u-8}`,t);case"lin-rect":return eh(e,`M${o} ${s}H${u}V${d}H${o}ZM${o+6} ${s}V${d}M${u-6} ${s}V${d}`,t);case"notch-pent":return U([{x:o,y:s},{x:u-10,y:s},{x:u,y:y},{x:u-10,y:d},{x:o,y:d},{x:o+8,y:y}],t);case"flip-tri":return U([{x:o,y:s},{x:u,y:s},{x:x,y:d}],t);case"docs":return J(e,`M${o+8} ${s}H${u}V${d-8}Q${o+.7*l} ${d} ${o+.45*l} ${d-8}Q${o+.22*l} ${d-16} ${o+8} ${d-8}ZM${o} ${s+8}H${o+8}M${o} ${s+8}V${d}`,t);case"st-rect":return J(e,`M${o+8} ${s}H${u}V${d-8}H${o+8}ZM${o} ${s+8}H${u-8}V${d}H${o}Z`,t);case"flag":return J(e,`M${o} ${s+6}Q${o+.25*l} ${s-4} ${x} ${s+6}Q${o+.75*l} ${s+16} ${u} ${s+6}V${d-6}Q${o+.75*l} ${d+4} ${x} ${d-6}Q${o+.25*l} ${d-16} ${o} ${d-6}Z`,t);case"sm-circ":return ea(x,y,.22*Math.min(l,h),t);case"cross-circ":{let n=J(e,`M${x} ${s}A${l/2} ${h/2} 0 1 1 ${x-.01} ${s}M${o+.28*l} ${s+.28*h}L${o+.72*l} ${s+.72*h}M${o+.72*l} ${s+.28*h}L${o+.28*l} ${s+.72*h}`,t);return n.routing={kind:"ellipse",cx:x,cy:y,rx:l/2,ry:h/2},n}case"bow-rect":return J(e,`M${o} ${s}Q${o+12} ${y} ${o} ${d}H${u}Q${u-12} ${y} ${u} ${s}Z`,t);case"tag-doc":return J(e,`M${o+10} ${s}H${u}V${d-8}Q${o+.7*l} ${d} ${x} ${d-8}Q${o+.25*l} ${d-16} ${o} ${d-8}V${s+10}ZM${o} ${s+10}L${o+10} ${s}`,t);case"text":return{geometry:{kind:"path",d:`M${o} ${s}`},paint:{fill:"none",stroke:"none"},routing:{kind:"none",reason:"text blocks have no painted enclosure"}};default:return null}}(e,t);if(s)return s;let{x:l,y:h,width:u,height:d}=e,y=l+u/2,c=h+d/2;switch(e.shape){case"state-note":{let e=Math.min(12,u/6,d/4);return U([{x:l,y:h},{x:l+u-e,y:h},{x:l+u,y:h+e},{x:l+u,y:h+d},{x:l,y:h+d}],t)}case"diamond":case"state-choice":return U([{x:y,y:c-d/2},{x:y+u/2,y:c},{x:y,y:c+d/2},{x:y-u/2,y:c}],t);case"stadium":{let e=d/2;return{geometry:{kind:"rect",x:l,y:h,width:u,height:d,rx:e,ry:e},paint:Z(t),routing:{kind:"stadium",cx:y,cy:c,halfWidth:u/2,radius:e}}}case"ellipse":return{geometry:{kind:"ellipse",cx:y,cy:c,rx:u/2,ry:d/2},paint:Z(t),routing:{kind:"ellipse",cx:y,cy:c,rx:u/2,ry:d/2}};case"circle":case"state-history":return ea(y,c,Math.min(u,d)/2,t);case"doublecircle":let f;return f=Math.max(0,(i=Math.min(u,d)/2)-5),{geometry:{kind:"compound",children:[{kind:"circle",cx:y,cy:c,r:i},{kind:"circle",cx:y,cy:c,r:f}]},paint:Z(t),routing:{kind:"ellipse",cx:y,cy:c,rx:i,ry:i}};case"hexagon":{let e=d/4;return U([{x:l+e,y:h},{x:l+u-e,y:h},{x:l+u,y:c},{x:l+u-e,y:h+d},{x:l+e,y:h+d},{x:l,y:c}],t)}case"cylinder":let g,p,m;return g=l+u/2,{geometry:{kind:"compound",children:[{kind:"rect",x:l,y:p=h+7,width:u,height:m=d-14},{kind:"line",x1:l,y1:p,x2:l,y2:p+m},{kind:"line",x1:l+u,y1:p,x2:l+u,y2:p+m},{kind:"ellipse",cx:g,cy:h+d-7,rx:u/2,ry:7},{kind:"ellipse",cx:g,cy:p,rx:u/2,ry:7}]},paint:Z(t),childPaints:[{fill:t.fill,stroke:"none"},_(t),_(t),Z(t),Z(t)],routing:{kind:"cylinder",cx:g,y:h,width:u,height:d,capRadiusY:7}};case"asymmetric":return U([{x:l+12,y:h},{x:l+u,y:h},{x:l+u,y:h+d},{x:l+12,y:h+d},{x:l,y:c}],t);case"trapezoid":{let e=.15*u;return U([{x:l+e,y:h},{x:l+u-e,y:h},{x:l+u,y:h+d},{x:l,y:h+d}],t)}case"trapezoid-alt":{let e=.15*u;return U([{x:l,y:h},{x:l+u,y:h},{x:l+u-e,y:h+d},{x:l+e,y:h+d}],t)}case"lean-r":{let e=.15*u;return U([{x:l+e,y:h},{x:l+u,y:h},{x:l+u-e,y:h+d},{x:l,y:h+d}],t)}case"lean-l":{let e=.15*u;return U([{x:l,y:h},{x:l+u-e,y:h},{x:l+u,y:h+d},{x:l+e,y:h+d}],t)}case"subroutine":return{geometry:{kind:"compound",children:[{kind:"rect",x:l,y:h,width:u,height:d,rx:r=n??0,ry:r},{kind:"line",x1:l+8,y1:h,x2:l+8,y2:h+d},{kind:"line",x1:l+u-8,y1:h,x2:l+u-8,y2:h+d}]},paint:Z(t),childPaints:[Z(t),_(t),_(t)],routing:{kind:"rect",x:l,y:h,width:u,height:d}};case"state-start":return{geometry:{kind:"circle",cx:y,cy:c,r:a=Math.max(0,Math.min(u,d)/2-2)},paint:{fill:"var(--_text)",stroke:"none"},routing:{kind:"ellipse",cx:y,cy:c,rx:a,ry:a}};case"state-end":let b;return b=Math.max(0,(o=Math.max(0,Math.min(u,d)/2-2))-4),{geometry:{kind:"compound",children:[{kind:"circle",cx:y,cy:c,r:o},{kind:"circle",cx:y,cy:c,r:b}]},paint:{fill:"var(--_text)",stroke:"var(--_text)"},childPaints:[{fill:"none",stroke:"var(--_text)",strokeWidth:String(2*x.innerBox)},{fill:"var(--_text)",stroke:"none"}],routing:{kind:"ellipse",cx:y,cy:c,rx:o,ry:o}};case"state-fork":case"state-join":let M;return M=Math.min(u,d)/2,{geometry:{kind:"rect",x:l,y:h,width:u,height:d,rx:M,ry:M},paint:{fill:"var(--_text)",stroke:"none"},routing:{kind:"rect",x:l,y:h,width:u,height:d}};case"rounded":return er(l,h,u,d,t,n??6);default:return er(l,h,u,d,t,n??0)}}function X(e){let t,n,i=Q.get(e);if(i&&i.x===e.x&&i.y===e.y&&i.width===e.width&&i.height===e.height&&i.shape===e.shape&&i.semanticShape===e.semanticShape)return i.profile;let r=D(e,{fill:"",stroke:"",strokeWidth:""}).routing,a=(t=e.x+e.width/2,n=e.y+e.height/2,{N:{x:t,y:e.y},E:{x:e.x+e.width,y:n},S:{x:t,y:e.y+e.height},W:{x:e.x,y:n}}),o={};for(let e of["N","E","S","W"]){let t=function(e,t){let n=en(e);if(!n)return null;let i="E"===t||"W"===t?"x":"y",r="x"===i?n.y+n.height/2:n.x+n.width/2;return ei(e,i,r,"E"===t||"S"===t)}(r,e)??a[e];if("none"===r.kind){o[e]={kind:"none",preferred:t};continue}if("envelope"===r.kind){let[n,i]=ee(r,e);o[e]={kind:"envelope",lo:n,hi:i,preferred:t};continue}let n=function(e,t,n){let[i,r]=ee(t,n);if("rect"===t.kind)return et(i,r,4);if("stadium"===t.kind&&("N"===n||"S"===n))return et(t.cx-(t.halfWidth-t.radius),t.cx+(t.halfWidth-t.radius),2);if("cylinder"===t.kind&&("E"===n||"W"===n))return et(t.y+t.capRadiusY,t.y+t.height-t.capRadiusY,2);if("polygon"!==t.kind)return null;let a=en(t),o="E"===n||"W"===n?"x":"y",s="x"===o?"E"===n?a.x+a.width:a.x:"S"===n?a.y+a.height:a.y,l=[];for(let e=0;e<t.points.length;e++){let n=t.points[e],i=t.points[(e+1)%t.points.length];if(Math.abs(n[o]-s)>1e-9||Math.abs(i[o]-s)>1e-9)continue;let r="x"===o?n.y:n.x,a="x"===o?i.y:i.x;l.push([Math.min(r,a),Math.max(r,a)])}if(l.length>0){let e=l.sort((e,t)=>t[1]-t[0]-(e[1]-e[0]))[0];return et(e[0],e[1],2)}if(4===t.points.length&&function(e,t){let n=t.x+t.width/2,i=t.y+t.height/2,r=[{x:n,y:t.y},{x:t.x+t.width,y:i},{x:n,y:t.y+t.height},{x:t.x,y:i}];return e.every(e=>r.some(t=>1e-8>Math.abs(e.x-t.x)&&1e-8>Math.abs(e.y-t.y)))}(t.points,a)){let e=r-i;return et(i,r,e<=40?e/4:10)}return null}(0,r,e);o[e]=n?{kind:"dynamic",...n,preferred:t}:{kind:"port",point:t,preferred:t}}let s={boundary:r,sides:o};return Q.set(e,{x:e.x,y:e.y,width:e.width,height:e.height,shape:e.shape,semanticShape:e.semanticShape,profile:s}),s}function G(e){let t=X(e);return{N:{...t.sides.N.preferred},E:{...t.sides.E.preferred},S:{...t.sides.S.preferred},W:{...t.sides.W.preferred}}}function K(e,t,n){return ei(e,"E"===t||"W"===t?"x":"y",n,"E"===t||"S"===t)}function ee(e,t){let n=en(e);return"E"===t||"W"===t?[n.y,n.y+n.height]:[n.x,n.x+n.width]}function et(e,t,n){return t-e>2*n?{lo:e+n,hi:t-n}:null}function en(e){switch(e.kind){case"rect":case"envelope":return{x:e.x,y:e.y,width:e.width,height:e.height};case"ellipse":return{x:e.cx-e.rx,y:e.cy-e.ry,width:2*e.rx,height:2*e.ry};case"stadium":return{x:e.cx-e.halfWidth,y:e.cy-e.radius,width:2*e.halfWidth,height:2*e.radius};case"cylinder":return{x:e.cx-e.width/2,y:e.y,width:e.width,height:e.height};case"polygon":{if(0===e.points.length)return null;let t=e.points.map(e=>e.x),n=e.points.map(e=>e.y),i=Math.min(...t),r=Math.min(...n);return{x:i,y:r,width:Math.max(...t)-i,height:Math.max(...n)-r}}case"none":return null}}function ei(e,t,n,i){let r=e=>"x"===t?{x:e,y:n}:{x:n,y:e};switch(e.kind){case"rect":case"envelope":{let a="x"===t?e.y:e.x,o=a+("x"===t?e.height:e.width);return n<a-1e-9||n>o+1e-9?null:r("x"===t?i?e.x+e.width:e.x:i?e.y+e.height:e.y)}case"ellipse":{let a="x"===t?e.cy:e.cx,o="x"===t?e.ry:e.rx,s="x"===t?e.cx:e.cy,l="x"===t?e.rx:e.ry;if(o<=0||l<=0)return null;let h=(n-a)/o;return Math.abs(h)>1+1e-9?null:r(s+(i?1:-1)*l*Math.sqrt(Math.max(0,1-h*h)))}case"stadium":{if("x"===t){let t=n-e.cy;if(Math.abs(t)>e.radius+1e-9)return null;let a=e.halfWidth-e.radius+Math.sqrt(Math.max(0,e.radius**2-t**2));return r(e.cx+(i?a:-a))}let a=Math.abs(n-e.cx);if(a>e.halfWidth+1e-9)return null;let o=Math.max(0,a-(e.halfWidth-e.radius));return r(e.cy+(i?1:-1)*Math.sqrt(Math.max(0,e.radius**2-o**2)))}case"cylinder":{let a=e.width/2,o=e.y+e.capRadiusY,s=e.y+e.height-e.capRadiusY;if("x"===t){if(n<e.y-1e-9||n>e.y+e.height+1e-9)return null;let t=n<o?o:n>s?s:n,l=t===n?0:(n-t)/e.capRadiusY;return r(e.cx+(i?1:-1)*a*Math.sqrt(Math.max(0,1-l*l)))}let l=(n-e.cx)/a;if(Math.abs(l)>1+1e-9)return null;let h=e.capRadiusY*Math.sqrt(Math.max(0,1-l*l));return r(i?s+h:o-h)}case"polygon":{let a=[];for(let i=0;i<e.points.length;i++){let r=e.points[i],o=e.points[(i+1)%e.points.length],s="x"===t?r.y:r.x,l="x"===t?o.y:o.x,h=r[t],u=o[t],d=l-s;if(1e-9>Math.abs(d)){1e-9>Math.abs(n-s)&&a.push(h,u);continue}let x=(n-s)/d;x>=-1e-9&&x<=1+1e-9&&a.push(h+x*(u-h))}let o=0===a.length?null:i?Math.max(...a):Math.min(...a);return null===o?null:r(o)}case"none":return null}}function er(e,t,n,i,r,a){return{geometry:{kind:"rect",x:e,y:t,width:n,height:i,rx:a,ry:a},paint:Z(r),routing:{kind:"rect",x:e,y:t,width:n,height:i}}}function ea(e,t,n,i){return{geometry:{kind:"circle",cx:e,cy:t,r:n},paint:Z(i),routing:{kind:"ellipse",cx:e,cy:t,rx:n,ry:n}}}var eo=new Set(["text","brace","brace-r","braces","datastore","fork","f-circ","state-start","state-end","state-fork","state-join"]);function es(e){return!eo.has(e.semanticShape??e.shape)}function el(e,t,n){let i=J(e,t,n,{fill:"none",reason:"open symbol has no enclosing painted boundary"});return i.routing={kind:"envelope",x:e.x,y:e.y,width:e.width,height:e.height,reason:"open symbol routes to its layout envelope"},i}function eh(e,t,n){let i=J(e,t,n);return i.routing={kind:"rect",x:e.x,y:e.y,width:e.width,height:e.height},i}function eu(e,t,n,i=1e-6){let r=X(e).boundary;if("envelope"!==r.kind&&"none"!==r.kind)return ed(r,t,n,i)}function ed(e,t,n,i){let r=n.x-t.x,a=n.y-t.y,o=Math.hypot(r,a);if(o<=1e-9||Math.abs(r)>i&&Math.abs(a)>i)return!1;let s=Math.abs(r)>Math.abs(a)?r>0?"E":"W":a>0?"S":"N",l="E"===s||"W"===s?t.y:t.x,h=K(e,s,l);if(!h||Math.hypot(h.x-t.x,h.y-t.y)>i)return!1;let u=0,d=0;if("ellipse"===e.kind)u=(t.x-e.cx)/e.rx/e.rx,d=(t.y-e.cy)/e.ry/e.ry;else if("stadium"===e.kind){let n=e.halfWidth-e.radius;u=t.x-Math.max(e.cx-n,Math.min(e.cx+n,t.x)),d=t.y-e.cy}else{if("cylinder"!==e.kind)return!0;let n=e.y+e.capRadiusY,i=e.y+e.height-e.capRadiusY;t.y>=n&&t.y<=i?u=t.x-e.cx:(u=(t.x-e.cx)/(e.width/2)/(e.width/2),d=(t.y-(t.y<n?n:i))/e.capRadiusY/e.capRadiusY)}let x=Math.hypot(u,d);return x>0&&Number.isFinite(x)&&(r/o*u+a/o*d)/x>0}function ex(e,t){if("polygon"===e.kind){let n=!1;for(let i=0,r=e.points.length-1;i<e.points.length;r=i++){let a=e.points[i],o=e.points[r],s=o.x-a.x,l=o.y-a.y;if(Math.abs((t.x-a.x)*l-(t.y-a.y)*s)<=1e-6*Math.hypot(s,l)&&(t.x-a.x)*(t.x-o.x)+(t.y-a.y)*(t.y-o.y)<=1e-6)return!0;a.y>t.y!=o.y>t.y&&t.x<(o.x-a.x)*(t.y-a.y)/(o.y-a.y)+a.x&&(n=!n)}return n}let n=K(e,"W",t.y),i=K(e,"E",t.y);return!!(n&&i&&t.x>=n.x-1e-6&&t.x<=i.x+1e-6)}function ey(e,t,n){if(!ex(e,t)||!ex(e,n))return!0;if("polygon"!==e.kind)return!1;let i=n.x-t.x,r=n.y-t.y,a=1e-6>=Math.abs(i),o=a?r:i;if(1e-9>=Math.abs(o))return!1;let s=[0,1];for(let n=0;n<e.points.length;n++){let i=e.points[n],r=e.points[(n+1)%e.points.length],l=a?eM(t.x,i,r):eb(t.y,i,r);if(l){let e=(a?l.y-t.y:l.x-t.x)/o;e>0&&e<1&&s.push(e)}}return s.sort((e,t)=>e-t),s.some((n,a)=>{let o=s[a+1];if(void 0===o||o-n<=1e-9)return!1;let l=(n+o)/2;return!ex(e,{x:t.x+i*l,y:t.y+r*l})})}function ec(e,t,n){if(e.length<2)return e;let i=X(t).boundary;if("envelope"===i.kind||"none"===i.kind)return e;let r=n?e:[...e].reverse(),a=r[0];if(!ex(i,a))return e;let o=r.find(e=>Math.hypot(e.x-a.x,e.y-a.y)>1e-9);if(!o||ed(i,a,o,1e-6))return e;for(let t=0;t<r.length-1;t++){let a=r[t],o=r[t+1],s=o.x-a.x,l=o.y-a.y,h=Math.hypot(s,l);if(h<=1e-9)continue;if(Math.abs(s)>1e-6&&Math.abs(l)>1e-6)break;let u=Math.abs(s)>Math.abs(l)?s>0?"E":"W":l>0?"S":"N",d="polygon"===i.kind?em(a,o,i.points):K(i,u,"E"===u||"W"===u?a.y:a.x);if(d){let u=((d.x-a.x)*s+(d.y-a.y)*l)/h**2,x=r.slice(t+1),y=x.find(e=>Math.hypot(e.x-d.x,e.y-d.y)>1e-9);if(u>=-1e-9&&u<=1+1e-9&&y&&ed(i,d,y,1e-6)){if(ey(i,a,d))return e;let t=1e-9>=Math.hypot(d.x-o.x,d.y-o.y)?x:[d,...x];return n?t:t.reverse()}}if(ey(i,a,o))break}return e}function ef(e,t,n){if(e.length<2)return e;let i=X(t).boundary;if("rect"===i.kind||"envelope"===i.kind||"none"===i.kind)return e;let r=[...e];if(n)r[0]=eg(e[0],e[1],t,i);else{let n=e.length-1;r[n]=eg(e[n],e[n-1],t,i)}return r}function eg(e,t,n,i){let r=function(e,t,n){switch(n.kind){case"ellipse":return function(e,t,n){let{cx:i,cy:r,rx:a,ry:o}=n;if(a<=0||o<=0)return null;let{vertical:s,dir:l}=ep(e,t);if(s){let t=(e.x-i)/a;return Math.abs(t)>1?null:{x:e.x,y:r-l*o*Math.sqrt(Math.max(0,1-t*t))}}let h=(e.y-r)/o;return Math.abs(h)>1?null:{x:i-l*a*Math.sqrt(Math.max(0,1-h*h)),y:e.y}}(e,t,n);case"stadium":return function(e,t,n){let{cx:i,cy:r,halfWidth:a,radius:o}=n,{vertical:s,dir:l}=ep(e,t);if(s){let t=Math.abs(e.x-i);if(t<=a-o)return{x:e.x,y:r-l*o};let n=t-(a-o);return n>o?null:{x:e.x,y:r-l*Math.sqrt(Math.max(0,o*o-n*n))}}let h=Math.abs(e.y-r);return h>o?null:{x:i-l*(a-o+Math.sqrt(Math.max(0,o*o-h*h))),y:e.y}}(e,t,n);case"cylinder":return function(e,t,n){let{cx:i,y:r,width:a,height:o,capRadiusY:s}=n,l=a/2,h=r+s,u=r+o-s,{vertical:d,dir:x}=ep(e,t);if(!d){if(e.y>=h&&e.y<=u)return{x:i-x*l,y:e.y};let t=e.y<h?h:u,n=(e.y-t)/s;return Math.abs(n)>1?null:{x:i-x*l*Math.sqrt(Math.max(0,1-n*n)),y:e.y}}let y=(e.x-i)/l;if(Math.abs(y)>1)return null;let c=s*Math.sqrt(Math.max(0,1-y*y));return x>0?{x:e.x,y:h-c}:{x:e.x,y:u+c}}(e,t,n);case"polygon":return em(e,t,n.points);case"rect":case"envelope":case"none":return e}}(e,t,i);if(null!==r)return r;if(e.x<n.x-1e-6||e.x>n.x+n.width+1e-6||e.y<n.y-1e-6||e.y>n.y+n.height+1e-6)return e;let a=[1e-6>=Math.abs(e.y-n.y)?"N":void 0,1e-6>=Math.abs(e.y-n.y-n.height)?"S":void 0,1e-6>=Math.abs(e.x-n.x)?"W":void 0,1e-6>=Math.abs(e.x-n.x-n.width)?"E":void 0].filter(e=>void 0!==e),o=1===a.length?a[0]:void 0;return o?K(i,o,"N"===o||"S"===o?e.x:e.y)??e:e}function ep(e,t){let n=e.x-t.x,i=e.y-t.y,r=Math.abs(n)<Math.abs(i);return{vertical:r,dir:(r?i:n)>=0?1:-1}}function em(e,t,n){let{vertical:i}=ep(e,t),r=null,a=1/0;for(let o=0;o<n.length;o++){let s=n[o],l=n[(o+1)%n.length],h=l.x-s.x,u=l.y-s.y,d=e.x-s.x,x=e.y-s.y;if(1e-6>Math.abs(d*u-x*h)&&d*(e.x-l.x)+x*(e.y-l.y)<=1e-6){let i=Math.hypot(t.x-e.x,t.y-e.y),r=i>0?Math.min(1e-4/i,.5):0,a={x:e.x+(t.x-e.x)*r,y:e.y+(t.y-e.y)*r},o=!1,s=!1;for(let r=0,l=n.length-1;r<n.length;l=r++){let h=n[r],u=n[l],d=t.x-e.x,x=t.y-e.y,y=u.x-h.x,c=u.y-h.y,f=d*c-x*y;if(Math.abs(f)>1e-9){let t=h.x-e.x,n=h.y-e.y,r=(t*c-n*y)/f,a=(t*x-n*d)/f;r*i>1e-6&&r<=1&&a>=0&&a<=1&&(s=!0)}h.y>a.y!=u.y>a.y&&a.x<(u.x-h.x)*(a.y-h.y)/(u.y-h.y)+h.x&&(o=!o)}if(!o&&!s)return e}let y=i?eM(e.x,s,l):eb(e.y,s,l);if(!y)continue;let c=Math.hypot(y.x-t.x,y.y-t.y);c<a&&(r=y,a=c)}return r}function eb(e,t,n){let i=n.y-t.y;if(1e-6>Math.abs(i))return null;let r=(e-t.y)/i;return r<0||r>1?null:{x:t.x+r*(n.x-t.x),y:e}}function eM(e,t,n){let i=n.x-t.x;if(1e-6>Math.abs(i))return null;let r=(e-t.x)/i;return r<0||r>1?null:{x:e,y:t.y+r*(n.y-t.y)}}var e$=new Set(["cloud","brace","brace-r","braces","datastore","delay","h-cyl","lin-cyl","curv-trap","doc","lin-doc","docs","st-rect","flag","bow-rect","tag-doc"]);function ew(e,t,n=1.5){if("text"===e.semanticShape)return{policy:"none",onBoundary:!1};if(e.semanticShape&&e$.has(e.semanticShape))return{policy:"envelope",onBoundary:ek(t,e.x,e.y,e.width,e.height,n)};let i=function(e){let{x:t,y:n,width:i,height:r}=e,a=t+i,o=n+r,s=t+i/2,l=n+r/2;switch(e.semanticShape){case"bang":return Array.from({length:16},(e,t)=>{let n=-Math.PI/2+t*Math.PI/8,a=t%2==0?1:.62;return{x:s+Math.cos(n)*i/2*a,y:l+Math.sin(n)*r/2*a}});case"notch-rect":case"tag-rect":return[{x:t+10,y:n},{x:a,y:n},{x:a,y:o},{x:t,y:o},{x:t,y:n+10}];case"hourglass":return[{x:t,y:n},{x:a,y:n},{x:t+.62*i,y:l},{x:a,y:o},{x:t,y:o},{x:t+.38*i,y:l}];case"bolt":return[{x:t+.55*i,y:n},{x:t+.25*i,y:l},{x:t+.48*i,y:l},{x:t+.35*i,y:o},{x:t+.78*i,y:n+.4*r},{x:t+.55*i,y:n+.4*r}];case"tri":return[{x:s,y:n},{x:a,y:o},{x:t,y:o}];case"notch-pent":return[{x:t,y:n},{x:a-10,y:n},{x:a,y:l},{x:a-10,y:o},{x:t,y:o},{x:t+8,y:l}];case"flip-tri":return[{x:t,y:n},{x:a,y:n},{x:s,y:o}];default:return null}}(e);if(i)return{policy:"exact",onBoundary:eS(t,i,n)};let r=e.x+e.width/2,a=e.y+e.height/2,o=Math.min(e.width,e.height)/2;if("fork"===e.semanticShape)return{policy:"exact",onBoundary:ek(t,e.x,a-4,e.width,8,n)};if("sm-circ"===e.semanticShape){let i=.22*Math.min(e.width,e.height);return{policy:"exact",onBoundary:ev(t,r,a,i,i,n)}}if("cross-circ"===e.semanticShape)return{policy:"exact",onBoundary:ev(t,r,a,e.width/2,e.height/2,n)};if("f-circ"===e.semanticShape)return{policy:"exact",onBoundary:ev(t,r,a,o,o,n)};switch(e.shape){case"diamond":case"state-choice":return{policy:"exact",onBoundary:Math.abs(Math.abs(t.x-r)/(e.width/2)+Math.abs(t.y-a)/(e.height/2)-1)*Math.min(e.width,e.height)/2<n};case"circle":case"doublecircle":case"state-history":return{policy:"exact",onBoundary:ev(t,r,a,o,o,n)};case"state-start":case"state-end":{let e=Math.max(0,o-2);return{policy:"exact",onBoundary:ev(t,r,a,e,e,n)}}case"stadium":{let i=e.height/2,o=e.width/2-i,s=Math.abs(t.x-r);return{policy:"exact",onBoundary:s<=o?Math.abs(Math.abs(t.y-a)-i)<n:Math.abs(Math.hypot(s-o,t.y-a)-i)<n}}case"hexagon":{let i=e.height/4;return{policy:"exact",onBoundary:eS(t,[{x:e.x+i,y:e.y},{x:e.x+e.width-i,y:e.y},{x:e.x+e.width,y:a},{x:e.x+e.width-i,y:e.y+e.height},{x:e.x+i,y:e.y+e.height},{x:e.x,y:a}],n)}}case"cylinder":return{policy:"exact",onBoundary:function(e,t,n){let i=e.x+e.width/2,r=e.y+e.height/2,a=e.width/2;if(t.y>=e.y+7-n&&t.y<=e.y+e.height-7+n&&Math.abs(Math.abs(t.x-i)-a)<n)return!0;let o=t.y<r?e.y+7:e.y+e.height-7;return Math.abs(Math.hypot((t.x-i)/a,(t.y-o)/7)-1)*Math.min(a,7)<2*n}(e,t,n)};case"trapezoid":case"trapezoid-alt":case"lean-r":case"lean-l":case"asymmetric":return{policy:"exact",onBoundary:eS(t,function(e){let{x:t,y:n,width:i,height:r}=e,a=t+i,o=n+r,s=.15*i;switch(e.shape){case"trapezoid":return[{x:t+s,y:n},{x:a-s,y:n},{x:a,y:o},{x:t,y:o}];case"trapezoid-alt":return[{x:t,y:n},{x:a,y:n},{x:a-s,y:o},{x:t+s,y:o}];case"lean-r":return[{x:t+s,y:n},{x:a,y:n},{x:a-s,y:o},{x:t,y:o}];case"lean-l":return[{x:t,y:n},{x:a-s,y:n},{x:a,y:o},{x:t+s,y:o}];default:return[{x:t+12,y:n},{x:a,y:n},{x:a,y:o},{x:t+12,y:o},{x:t,y:n+r/2}]}}(e),n)};default:return{policy:"exact",onBoundary:ek(t,e.x,e.y,e.width,e.height,n)}}}function ek(e,t,n,i,r,a){let o=Math.abs(e.x-t)<a||Math.abs(e.x-(t+i))<a,s=Math.abs(e.y-n)<a||Math.abs(e.y-(n+r))<a;return o&&e.y>=n-a&&e.y<=n+r+a||s&&e.x>=t-a&&e.x<=t+i+a}function ev(e,t,n,i,r,a){return!(i<=0)&&!(r<=0)&&Math.abs(Math.hypot((e.x-t)/i,(e.y-n)/r)-1)*Math.min(i,r)<a}function eS(e,t,n){let i=1/0;for(let n=0;n<t.length;n++)i=Math.min(i,function(e,t,n){let i=n.x-t.x,r=n.y-t.y,a=i*i+r*r;if(0===a)return Math.hypot(e.x-t.x,e.y-t.y);let o=Math.max(0,Math.min(1,((e.x-t.x)*i+(e.y-t.y)*r)/a));return Math.hypot(e.x-(t.x+o*i),e.y-(t.y+o*r))}(e,t[n],t[(n+1)%t.length]));return i<=n}var eP=64,eC=128;function eL(e){let t=e.nodes.size,n=e=>{for(let i of e)t++,n(i.children)};return n(e.subgraphs),t<=eP&&e.edges.length<=eC}var eW=new Set([...new Set(["rectangle","service","rounded","subroutine","state-fork","state-join"]),"diamond","circle","ellipse","doublecircle","stadium","hexagon","cylinder","state-start","state-end","state-choice","state-history","trapezoid","trapezoid-alt","asymmetric","lean-r","lean-l"]);function eN(e){return G(e)}function eE(e){let t=e.x+e.width/2,n=e.y+e.height/2,i=e.width/4,r=e.height/4;return{NE:{x:t+i,y:n-r},SE:{x:t+i,y:n+r},SW:{x:t-i,y:n+r},NW:{x:t-i,y:n-r}}}function eI(e,t){let n=X(e);if("envelope"!==n.boundary.kind&&"none"!==n.boundary.kind){for(let e of["N","E","S","W"]){let i=n.sides[e].preferred;if(.5>=Math.abs(i.x-t.x)&&.5>=Math.abs(i.y-t.y))return e}if(eF(e)){let n=eE(e);for(let e of["NE","SE","SW","NW"])if(.5>=Math.abs(n[e].x-t.x)&&.5>=Math.abs(n[e].y-t.y))return e}}}function eB(e,t,n){let i=0;for(let[r,a]of[[t,!0],[n,!1]]){if(!r)continue;let t=X(r);if("envelope"===t.boundary.kind||"none"===t.boundary.kind)continue;let n=a?e.points:[...e.points].reverse(),o=n[0],s=o&&n.find(e=>Math.hypot(e.x-o.x,e.y-o.y)>.01);if(!o||!s){i++;continue}let l=s.x-o.x,h=s.y-o.y;Math.abs(l)>.01&&Math.abs(h)>.01||eu(r,o,s,.5)||i++}return i}function eR(e,t,n){for(let[i,r]of[[t,!0],[n,!1]]){if(!i)continue;let t=X(i);if("envelope"!==t.boundary.kind&&"none"!==t.boundary.kind)for(;e.points.length>2;){let[t,n]=r?e.points:[...e.points].reverse(),a={x:(t.x+n.x)/2,y:(t.y+n.y)/2};if(![t,n,a].every(e=>ew(i,e,.01).onBoundary))break;let o={...e,points:r?e.points.slice(1):e.points.slice(0,-1)};if(0!==eB(o,r?i:void 0,r?void 0:i))break;e.points=o.points}}}function eH(e){let t=X(e).boundary;return"envelope"!==t.kind&&"none"!==t.kind}function eF(e){let t=X(e);return"polygon"===t.boundary.kind&&["N","E","S","W"].every(e=>"dynamic"===t.sides[e].kind)}function eA(e){let t=new Set,n=new Map,i=(e,r)=>{for(let r of e){for(let e of(t.add(r.id),r.nodeIds))n.set(e,r.id);i(r.children,r.id)}};i(e.subgraphs,"");let r=new Map;return e.edges.map(e=>{if(e.source===e.target)return"self-loop";if(t.has(e.source)||t.has(e.target))return"container";let i=((e,t)=>{let n=new Set,i=[e];for(;i.length>0;){let e=i.pop();if(e===t)return!0;if(!n.has(e))for(let t of(n.add(e),r.get(e)??[]))i.push(t)}return!1})(e.target,e.source)?"feedback":(n.get(e.source)??"")!==(n.get(e.target)??"")?"cross-hierarchy":"primary-forward";return"feedback"!==i&&(r.has(e.source)||r.set(e.source,new Set),r.get(e.source).add(e.target)),i})}function ez(e){let t="LR"===e||"RL"===e;return{main:t?"x":"y",cross:t?"y":"x",sign:"RL"===e||"BT"===e?-1:1}}function eO(e,t,n){return e.x!==n.x&&e.y!==n.y&&(e.x===t.x&&t.y===n.y||e.y===t.y&&t.x===n.x)}function ej(e){let t=e;for(let e=0;e<8&&!(t.length<3);e++){let e=[t[0]];for(let n=1;n<t.length;n++){let i=t[n],r=e[e.length-1];if(.01>Math.abs(i.x-r.x)&&.01>Math.abs(i.y-r.y)){let e=t[n+1];if(e?!eO(r,i,e):i.x===r.x&&i.y===r.y)continue}e.push(i)}let n=e.length<3?e:[e[0]];if(e.length>=3){for(let t=1;t<e.length-1;t++){let i=n[n.length-1],r=e[t],a=e[t+1];.01>Math.abs((r.x-i.x)*(a.y-i.y)-(r.y-i.y)*(a.x-i.x))&&!eO(i,r,a)||n.push(r)}n.push(e[e.length-1])}if(n.length===t.length)return n;t=n}return t}function eY(e){return Math.max(0,ej(e).length-2)}function eT(e,t){for(let n=1;n<e.length;n++){let i=e[n-1],r=e[n],a=(r[t.main]-i[t.main])*t.sign,o=Math.abs(r[t.cross]-i[t.cross]);if(a>.01&&o>.01||a<-.01)return!1}return!0}function eV(e,t,n){let i=X(e).sides[eQ(t,n)];if("dynamic"===i.kind)return{lo:i.lo,hi:i.hi};if("port"===i.kind){let e=i.point[t.cross];return{lo:e-.5,hi:e+.5}}return null}function eq(e,t,n,i){var r,a;let o;return(r=X(e),a=eQ(n,i),"none"===(o=r.sides[a]).kind?null:"port"===o.kind?o.point:K(r.boundary,a,t))?.[n.main]??null}function eQ(e,t){let n=t*e.sign>0;return"x"===e.main?n?"E":"W":n?"S":"N"}function eZ(e,t,n){return{role:`${"feedback"===e||"self-loop"===e||"container"===e||"cross-hierarchy"===e?e:"flow"}-${t}`,side:eQ(n,"source"===t!=("feedback"===e)?1:-1)}}function e_(e,t,n){return n?"N"===e||"S"===e?n.x:n.y:"N"===e||"S"===e?t.x+t.width/2:t.y+t.height/2}function eU(e,t,n=eA(t)){return e1(e,t,n,!0)}function eJ(e,t,n,i,r,a=!1){let o=ez(t.direction),s=e1(e,t,i,!1).sideUse;for(let t of e.edges){if(!r(t)||void 0===t.edgeIndex)continue;let e=i[t.edgeIndex];if("primary-forward"===e||"feedback"===e&&!t.label)for(let n of["source","target"]){let i="source"===n?t.source:t.target,{side:r}=eZ(e,n,o),a=`${i}:${r}`,l=(s.get(a)??0)-1;l>0?s.set(a,l):s.delete(a)}}return{axis:o,ctx:{nodes:e.nodes,edges:e.edges,groups:e.groups,axis:o,style:n,classes:i,sideUse:s,finalLabelClearance:a,nodeLaneIndexes:C()?void 0:{},routeChannelGeometry:C()?void 0:new WeakMap}}}function eD(e,t,n){return"x"===e.main?{x:t,y:n}:{x:n,y:t}}function eX(e,t,n){return{main:e.cross,cross:e.main,sign:t<n?1:-1}}function eG(e,t,n){e.routeChannelGeometry?.delete(t),t.points=n}function eK(e){let t=new Map;return e.forEach(e=>t.set(e.id,e)),t}function e1(e,t,n,i){let r=ez(t.direction),a=eK(e.nodes),o=[],s=new Map,l=(e,t)=>{let n=`${e}:${t}`;s.set(n,(s.get(n)??0)+1)};for(let t of e.edges){if(void 0===t.edgeIndex)continue;let e=n[t.edgeIndex]??"primary-forward";for(let n of["source","target"]){let s="source"===n?t.source:t.target,h=a.get(s);if(!h)continue;let{role:u,side:d}=eZ(e,n,r),x="source"===n?t.points[0]:t.points[t.points.length-1],y=x?eI(h,x):void 0,c=y?"N"===y||"E"===y||"S"===y||"W"===y?y:y.includes(d)?d:y[0]:d;if("primary-forward"!==e&&("feedback"!==e||t.label)||l(s,d),!i){e_(c,h,x);continue}o.push({edge:t,endpoint:n,nodeId:s,side:c,role:u,coord:e_(c,h,x),edgeIndex:t.edgeIndex,port:y})}}if(!i)return{byEdge:new Map,sideUse:s};let h=new Map;for(let e of o){let t=`${e.nodeId}:${e.side}`;h.has(t)||h.set(t,[]),h.get(t).push(e)}let u=new Map,d=e=>+("source"!==e);for(let e of h.values()){e.sort((e,t)=>e.coord-t.coord||e.edgeIndex-t.edgeIndex||d(e.endpoint)-d(t.endpoint));let t=e.length;e.forEach((e,n)=>{let i={side:e.side,slotIndex:n,slotCount:t,role:e.role,...e.port?{port:e.port}:{}},r=u.get(e.edge)??{};r[e.endpoint]=i,u.set(e.edge,r)})}return{byEdge:u,sideUse:s}}function e0(e,t,n,i,r){let a=0,o=0,s=e=>{for(let t of(a=Math.min(a,e.x),o=Math.min(o,e.y),e.children))s(t)};for(let t of e)a=Math.min(a,t.x),o=Math.min(o,t.y);for(let e of n)s(e);for(let e of t){for(let t of e.points)a=Math.min(a,t.x),o=Math.min(o,t.y);let t=r&&e.labelBlock?V(e,r):null;t?(a=Math.min(a,t.x),o=Math.min(o,t.y)):e.labelPosition&&(a=Math.min(a,e.labelPosition.x),o=Math.min(o,e.labelPosition.y))}if(a>=0&&o>=0)return;let l=a<0?-a+i:0,h=o<0?-o+i:0,u=e=>{for(let t of(e.x+=l,e.y+=h,e.children))u(t)};for(let t of e)t.x+=l,t.y+=h;for(let e of n)u(e);for(let e of t){for(let t of e.points)t.x+=l,t.y+=h;e.labelPosition&&(e.labelPosition.x+=l,e.labelPosition.y+=h)}}var e2=new WeakMap;function e5(e){let t=e.points[0];if(!t)return;let n=[];for(let i of e.points)n.push(i.x-t.x,i.y-t.y);e2.set(e,{source:e.source,target:e.target,edgeIndex:e.edgeIndex,coordinates:n})}function e8(e,t){let n=e[0];if(!n||e.length<2||!(e.every(e=>e.source===n.source)||e.every(e=>e.target===n.target)||e.every(e=>e.source===n.source&&e.target===n.target||e.source===n.target&&e.target===n.source)))throw Error("Bundle construction requires related fan or parallel routes");for(let n of e)e5(n),t.add(n)}function e6(e){let t=e2.get(e);if(!t||e.source!==t.source||e.target!==t.target||e.edgeIndex!==t.edgeIndex||2*e.points.length!==t.coordinates.length)return!1;let n=e.points[0];if(!n)return!1;for(let i=0;i<e.points.length;i++){let r=e.points[i];if(!(1e-6>=Math.abs(r.x-n.x-t.coordinates[2*i]))||!(1e-6>=Math.abs(r.y-n.y-t.coordinates[2*i+1])))return!1}return!0}function e4(e){return e6(e)?e2.get(e):void 0}function e9(e,t){t&&e2.get(e)===t&&e.source===t.source&&e.target===t.target&&e.edgeIndex===t.edgeIndex&&e5(e)}function e3(e,t){let n=e.points.map(e=>({x:Number(S(e.x)),y:Number(S(e.y))})),i="thick"===e.style?2:1,r=Number(S((t.lineWidth??1)*i))/i,a={...t,lineWidth:r},o=!e.curve&&!(t.edgeBendRadius&&t.edgeBendRadius>0);return o?{regions:O({...e,points:n},a),points:n,directional:o}:{regions:O(e,a).map(e=>{let t="start"===e.position?n[0]:n.at(-1),i=e.bounds;if(!i)return{...e,anchor:t};let r=Math.max(...[i.x0,i.x1].flatMap(t=>[i.y0,i.y1].map(n=>Math.hypot(t-e.anchor.x,n-e.anchor.y))));return{...e,anchor:t,bounds:{x0:t.x-r,y0:t.y-r,x1:t.x+r,y1:t.y+r}}}),points:n,directional:o}}function e7(e,t){if("invisible"===e.style||!e.hasArrowStart&&!e.hasArrowEnd)return[];if(!te(e,t))return;let{regions:n}=e3(e,t);return n.length===+!!e.hasArrowStart+ +!!e.hasArrowEnd&&n.every(tt)?n:void 0}function te(e,t){if(!e.points.every(e=>Number.isFinite(e.x)&&Number.isFinite(e.y))||void 0!==t.edgeBendRadius&&!(Number.isFinite(t.edgeBendRadius)&&t.edgeBendRadius>=0))return!1;let n=(t.lineWidth??1)*("thick"===e.style?2:1);return!!e.inlineStyle?.["stroke-width"]||Number.isFinite(n)&&n>0}function tt(e){let t=e.bounds;return!!t&&[t.x0,t.y0,t.x1,t.y1].every(Number.isFinite)&&t.x0<=t.x1&&t.y0<=t.y1}function tn(e,t,n){if("mid"===n)return!1;let i=e=>"start"===n?e[0]:e.at(-1),r=i(e),a=i(t);if(!r||!a||r.x!==a.x||r.y!==a.y)return!1;let o=e=>{for(let t=1;t<e.length;t++){let i=e["start"===n?t:e.length-t-1];if(i.x!==r.x||i.y!==r.y)return i}},s=o(e),l=o(t);return!!s&&!!l&&(s.x===l.x&&s.y===l.y||(r.x===s.x||r.y===s.y)&&(r.x===l.x||r.y===l.y)&&Math.sign(s.x-r.x)===Math.sign(l.x-r.x)&&Math.sign(s.y-r.y)===Math.sign(l.y-r.y))}function ti(e,t){let n=e.bounds,i=t.bounds;if(!n||!i||!tt(e)||!tt(t))return!1;let r=[n.x0,n.y0,n.x1,n.y1,i.x0,i.y0,i.x1,i.y1];if(!r.every(Number.isFinite))return!1;let a=1e-10*r.reduce((e,t)=>e+Math.abs(t),0)+1e-9;return Number.isFinite(a)&&(n.x1+a<i.x0||i.x1+a<n.x0||n.y1+a<i.y0||i.y1+a<n.y0)}function tr(e,t,n,i,r=e){if(!e.hasArrowStart&&!e.hasArrowEnd||"invisible"===e.style)return;let a=(e,t,i)=>({kind:"port",id:`${i}:${e.id??`${e.source}->${e.target}[${e.edgeIndex??n.indexOf(e)}]`}:${t}`});if(!te({...e,points:t},i))return a(r,"mapping","marker");let o=e3(e,i),s=e3({...e,points:t},i),l=o.regions,h=s.regions;if(h.length!==+!!e.hasArrowStart+ +!!e.hasArrowEnd)return a(r,"unmeasured","marker");for(let u of h){let d=l.find(e=>e.position===u.position);if(!(d&&d.resource===u.resource&&d.repaint===u.repaint&&d.anchor.x===u.anchor.x&&d.anchor.y===u.anchor.y&&(o.directional&&s.directional?tn(o.points,s.points,u.position):e.points.length===t.length&&e.points.every((e,n)=>e.x===t[n].x&&e.y===t[n].y)))){if(!tt(u))return a(r,u.position,"marker");for(let e of h)if(e!==u&&!ti(u,e))return a(r,e.position,"opposite-marker");for(let t of n){if(t===r||"invisible"===t.style||!t.hasArrowStart&&!t.hasArrowEnd)continue;if(!te(t,i))return a(t,"mapping","peer-marker");let n=e3(t,i);for(let i of n.regions){let r="start"===u.position?e.source:e.target,o="start"===i.position?t.source:t.target;if(!(s.directional&&n.directional&&tt(i)&&u.position===i.position&&r===o&&u.resource===i.resource&&u.repaint===i.repaint&&u.anchor.x===i.anchor.x&&u.anchor.y===i.anchor.y&&tn(s.points,n.points,u.position))&&!ti(u,i))return a(t,i.position,"peer-marker")}}}}}function ta(e,t,n,i,r=e){return void 0===tr(e,t,n,i,r)}function to(e){return eF(e)?2:1}function ts(e,t){return eF(e)&&("NE"===t||"SE"===t||"SW"===t||"NW"===t)?eE(e)[t]:eN(e)[t]}function tl(e,t,n,i){let r=X(t).boundary;if("rect"!==r.kind||e.points.length<2)return;let a=n?0:e.points.length-1,o=e.points[a],s=r.x,l=r.x+r.width,h=r.y,u=r.y+r.height,d=(e,t)=>.5>=Math.abs(e-t),x=(t,r)=>{let o=[...e.points];if(o[a]=t,Math.abs(t.x-r.x)>.01||Math.abs(t.y-r.y)>.01)if(n){let e=o[1];(!e||Math.abs(e.x-r.x)>.01||Math.abs(e.y-r.y)>.01)&&o.splice(1,0,r)}else{let e=o[o.length-2];(!e||Math.abs(e.x-r.x)>.01||Math.abs(e.y-r.y)>.01)&&o.splice(o.length-1,0,r)}ta(e,o,i.edges,i.style)&&eG(i,e,o)};if(d(o.x,s)||d(o.x,l)){let e=d(o.x,s)?s:l;o.y<h-.5?x({x:e,y:h},{x:e,y:o.y}):o.y>u+.5&&x({x:e,y:u},{x:e,y:o.y});return}if(d(o.y,h)||d(o.y,u)){let e=d(o.y,h)?h:u;o.x<s-.5?x({x:s,y:e},{x:o.x,y:e}):o.x>l+.5&&x({x:l,y:e},{x:o.x,y:e})}}function th(e,t,n,i){if(!eF(t)||void 0===e.edgeIndex||n.classes?.[e.edgeIndex]!=="primary-forward")return null;let r=eK(n.nodes),a=n.edges.filter(t=>t.source===e.source&&void 0!==t.edgeIndex&&n.classes?.[t.edgeIndex]==="primary-forward"&&r.has(t.target)).sort((e,t)=>{let n=r.get(e.target),a=r.get(t.target);return n[i.cross]+("y"===i.cross?n.height:n.width)/2-(a[i.cross]+("y"===i.cross?a.height:a.width)/2)||(e.edgeIndex??0)-(t.edgeIndex??0)}),o=function(e,t){if(2!==t&&3!==t)return null;let n=eQ(e,1),i="E"===n?"NE":"S"===n?"SW":"NW",r="W"===n?"SW":"N"===n?"NE":"SE";return 2===t?[i,r]:[i,n,r]}(i,a.length);if(!o)return null;let s=a.indexOf(e);if(s<0)return null;let l=o[s],h=a.map(e=>{let t=r.get(e.target);return t[i.main]+("x"===i.main?t.width:t.height)/2});return{sourcePort:l,sourceLane:ts(t,l)[i.cross],targetsShareRank:Math.max(...h)-Math.min(...h)<=1}}function tu(e,t,n,i,r){let a=th(e,t,i,r);if(!a||!a.targetsShareRank)return null;let o=eQ(r,-1),s=eN(n)[o][r.cross];return .5>=Math.abs(a.sourceLane-s)?null:{sourcePort:a.sourcePort,sourceLane:a.sourceLane,targetPort:o,targetLane:s}}function td(e,t,n){return!n.fixedLabels&&!n.finalLabelClearance&&!!n.classes&&void 0!==e.edgeIndex&&void 0!==t.edgeIndex&&"primary-forward"===n.classes[e.edgeIndex]&&"feedback"===n.classes[t.edgeIndex]&&t.source===e.target&&t.target===e.source}function tx(e){return`${e.source}->${e.target}`}function ty(e,t,n,i,r,a=r.axis){return tf(e,t,n,i,r,a,!1)}function tc(e,t,n,i,r,a){return tf(e,t,n,i,r,a,!0)}function tf(n,i,r,a,o,s,l){let h=l?void 0:[],u=t(o.nodeLaneIndexes,o.nodes,s.cross,4),d=u?e(u,i):null,x=u&&null!==d,y=x?u.offsets[d]??0:0,c=x?u.offsets[d+1]??0:o.nodes.length;for(let e=y;e<c;e++){let t=o.nodes[x?u.ordinals[e]:e];if(t.id===n.source||t.id===n.target)continue;let d=("x"===s.cross?t.x:t.y)-4,y=("x"===s.cross?t.x:t.y)+("y"===s.cross?t.height:t.width)+4;if(i>d&&i<y){let e=("x"===s.main?t.x:t.y)-4;if(Math.min(a,("x"===s.main?t.x:t.y)+("x"===s.main?t.width:t.height)+4)-Math.max(r,e)>.01){if(l)return!0;h.push({kind:"node",id:t.id})}}}if(o.groups?.length&&"invisible"!==n.style){let e=t=>{let n=t.concurrencyRegion?0:t.headerHeight??t.height,o=!Number.isFinite(n)||n<0,u="x"===s.cross?t.x:t.y,d=u+("x"===s.cross?t.width:n),x="x"===s.main?t.x:t.y,y=x+("x"===s.main?t.width:n);if(o||n>0&&t.width>0&&i>u&&i<d&&Math.min(a,y)>Math.max(r,x)){if(l)return!0;h.push({kind:"group-header",id:t.id})}for(let n of t.children)if(e(n))return!0;return!1};for(let t of o.groups)if(e(t))return!0}let f=o.routeChannelGeometry;for(let e=0;e<o.edges.length;e++){let t=o.edges[e];if(t===n||void 0!==n.edgeIndex&&t.edgeIndex===n.edgeIndex)continue;let u=!td(n,t,o)&&t.label&&t.labelPosition?t.labelBlock??N(L(t.label,t.labelContent),o.style):void 0;if(u){let e=u.width+2*j,n=u.height+2*j,o=t.labelPosition.x-e/2,d=t.labelPosition.y-n/2,x=("x"===s.main?o:d)-4,y=x+("x"===s.main?e:n)+8,c=("y"===s.cross?d:o)-4,f=c+("y"===s.cross?n:e)+8;if(i>c&&i<f&&Math.min(a,y)-Math.max(r,x)>.01){if(l)return!0;h.push({kind:"label",id:tx(t)})}}if(!(f&&!function(e,t,n,i,r,a,o,s){if(!Number.isFinite(i)||!Number.isFinite(r)||!Number.isFinite(a))return!0;if(t.points.length<2)return!1;let l=e.get(t);if(void 0===l&&(l=function(e){let t=1/0,n=-1/0,i=1/0,r=-1/0;for(let a of e){let e=a.x,o=a.y;if(!Number.isFinite(e)||!Number.isFinite(o))return null;t=Math.min(t,e),n=Math.max(n,e),i=Math.min(i,o),r=Math.max(r,o)}return{minX:t,maxX:n,minY:i,maxY:r}}(t.points),e.set(t,l)),!l)return!0;let h="x"===n?l.minX:l.minY,u="x"===n?l.maxX:l.maxY;if(i<h&&h-i>=4||i>u&&i-u>=4)return!1;let d="x"===n?l.minY:l.minX;return Math.min(a,"x"===n?l.maxY:l.maxX)-Math.max(r,d)>.01}(f,t,s.cross,i,r,a,0,0)))for(let e=1;e<t.points.length;e++){let o=t.points[e-1],u=t.points[e];if(Math.abs(("x"===s.cross?o.x:o.y)-("x"===s.cross?u.x:u.y))>.01||Math.abs(("x"===s.cross?o.x:o.y)-i)>=4)continue;let d=Math.min("x"===s.main?o.x:o.y,"x"===s.main?u.x:u.y);if(Math.min(a,Math.max("x"===s.main?o.x:o.y,"x"===s.main?u.x:u.y))-Math.max(r,d)>.01){if(t.target===n.target&&t.source!==n.source&&.01>Math.abs(("x"===s.cross?o.x:o.y)-i)&&e===t.points.length-1)continue;if(l)return!0;h.push({kind:"channel",id:tx(t)});break}}}if(n.label){let e=n.labelBlock??N(L(n.label,n.labelContent),o.style);if(a-r<("x"===s.main?e.width:e.height)+2*j+8){if(l)return!0;h.push({kind:"label",id:tx(n)})}}return!l&&tb(h)}function tg(e,t,n,i){if(!e.label)return{x:(t.x+n.x)/2,y:(t.y+n.y)/2};let r=e.labelBlock??N(L(e.label,e.labelContent),i.style),a=2,o=(e,t,n,i,r,o,s,l,h=a)=>e<r+s+h&&e+n+h>r&&t<o+l+h&&t+i+h>o,s=(t,n)=>{let s=T(t,n,r);for(let t of i.nodes){if((t.id===e.source||t.id===e.target)&&!i.finalLabelClearance)continue;let n=i.finalLabelClearance?8:a;if(s.x<t.x+t.width+n&&s.x+s.w+n>t.x&&s.y<t.y+t.height+n&&s.y+s.h+n>t.y)return!1}for(let t of i.edges){if(t===e||void 0!==e.edgeIndex&&t.edgeIndex===e.edgeIndex)continue;let n=!i.finalLabelClearance&&td(e,t,i)?null:V(t,i.style),r=i.finalLabelClearance?16:a;if(n&&o(s.x,s.y,s.w,s.h,n.x,n.y,n.w,n.h,r))return!1;for(let e=1;e<t.points.length;e++){let n=t.points[e-1],r=t.points[e],l=Math.min(n.x,r.x),h=Math.max(n.x,r.x),u=Math.min(n.y,r.y),d=Math.max(n.y,r.y),x=i.finalLabelClearance?8:a;if(o(s.x,s.y,s.w,s.h,l,u,h-l,d-u,x))return!1}}return!0};for(let e of[.5,1/3,2/3,.25,.75,1/6,5/6]){let i=t.x+(n.x-t.x)*e,r=t.y+(n.y-t.y)*e;if(s(i,r))return{x:i,y:r}}return null}function tp(e,t,i,r=1/0){if("invisible"===t.style)return 0;let a=0;for(let o of i.edges)if(o!==t&&"invisible"!==o.style&&(void 0===t.edgeIndex||o.edgeIndex!==t.edgeIndex)&&(a+=function(e,t){for(let i=1;i<e.length;i++){let r=e[i-1],a=e[i],o=Math.min(r.x,a.x),s=Math.max(r.x,a.x),l=Math.min(r.y,a.y),h=Math.max(r.y,a.y);for(let i=1;i<t.length;i++){let u=t[i-1],d=t[i];if(!(s<Math.min(u.x,d.x)||o>Math.max(u.x,d.x)||h<Math.min(u.y,d.y)||l>Math.max(u.y,d.y))&&(r.x!==a.x||u.x!==d.x)&&(r.y!==a.y||u.y!==d.y))return n([{points:e},{points:t}])}}return 0}(e,o.points))>r)break;return a}function tm(e,t){for(let n of t.nodes)if(n.id!==e.source&&n.id!==e.target&&tC(e.points,n))return!0;return!1}function tb(e){let t=new Set;return e.filter(e=>{let n=`${e.kind}:${e.id}`;return!t.has(n)&&(t.add(n),!0)})}function tM(e,t,n,i,r,a){let o=eV(t,r,1),s=eV(n,r,-1);if(!o||!s)return null;let l=Math.max(o.lo,s.lo),h=Math.min(o.hi,s.hi),u=(e,t)=>eF(e)?{lo:e[r.cross]+2,hi:e[r.cross]+("y"===r.cross?e.height:e.width)-2}:t,d=Math.max(u(t,o).lo,u(n,s).lo),x=Math.min(u(t,o).hi,u(n,s).hi),y=e=>e[r.cross]+("y"===r.cross?e.height:e.width)/2,c=e=>.5>=Math.abs(e-y(n))||.5>=Math.abs(e-y(t));if(d>x)return{overlapLo:l,overlapHi:h,relaxedLo:d,relaxedHi:x,candidates:[],isPortLane:c,emptyRelaxed:!0};let f=[],g=e=>{f.every(t=>Math.abs(t-e)>.5)&&f.push(e)},p=n[r.cross]+("y"===r.cross?n.height:n.width)/2,m=t[r.cross]+("y"===r.cross?t.height:t.width)/2,b=i.sideUse?.get(`${t.id}:${eQ(r,1)}`)??1,M=eF(t)&&1===b&&to(t)>=to(n),$=i.classes&&i.edges.some(t=>t!==e&&t.source===e.target&&t.target===e.source&&!t.label&&!e.label&&void 0!==t.edgeIndex&&void 0!==e.edgeIndex),w=$&&eF(t)&&eF(n);if(void 0!==a)f.push(a);else if(w){let n="feedback"===i.classes[e.edgeIndex]?1:-1;g(t[r.cross]+("y"===r.cross?t.height:t.width)/2+n*(("y"===r.cross?t.height:t.width)/4)),g((l+h)/2+12*n/2),g(p),g(m)}else if($)g((l+h)/2+("feedback"===i.classes[e.edgeIndex]?1:-1)*12/2),g(p),g(m);else if(M)g(m),g(p);else{let n=th(e,t,i,r)?.sourceLane;void 0!==n&&g(n),g(p),g(m)}if(void 0===a){if(e.points.length>0){g(e.points[e.points.length-1][r.cross]),g(e.points[0][r.cross]);let t=e.points.map(e=>e[r.cross]);g(Math.min(...t)),g(Math.max(...t))}g((l+h)/2),g((l+(l+h)/2)/2),g(((l+h)/2+h)/2)}return{overlapLo:l,overlapHi:h,relaxedLo:d,relaxedHi:x,candidates:f,isPortLane:c,emptyRelaxed:!1}}function t$(e,t,n,i,r,a,o){let s=o.isPortLane(i)?o.relaxedLo:o.overlapLo,l=o.isPortLane(i)?o.relaxedHi:o.overlapHi;if(i<s-.01||i>l+.01)return{blockers:[{kind:"span",id:tx(e)}]};let h=eq(t,i,a,1),u=eq(n,i,a,-1);if(null===h||null===u||(u-h)*a.sign<=.01)return{blockers:[{kind:"span",id:tx(e)}]};let d=ty(e,i,Math.min(h,u),Math.max(h,u),r,a);if(d.length>0)return{blockers:d};let x=eD(a,h,i),y=eD(a,u,i),c=r.nodeLaneIndexes&&!C()?o.priorCrossings??=tp(e.points,e,r):tp(e.points,e,r);if(tp([x,y],e,r,c)>c)return{blockers:[{kind:"crossing",id:tx(e)}]};let f=tg(e,x,y,r);return null===f?{blockers:[{kind:"label",id:tx(e)}]}:{start:x,end:y,slot:f}}function tw(e,t,n,i,r=i.axis,a,o=e){let s=tM(e,t,n,i,r,a);if(!s)return{applied:!1,blockers:[]};if(s.emptyRelaxed)return{applied:!1,blockers:[{kind:"span",id:tx(e)}]};let l=[];for(let a=0;a<s.candidates.length;a++){let h=t$(e,t,n,s.candidates[a],i,r,s);if("blockers"in h){l.push(...h.blockers);continue}let u=tr(e,[h.start,h.end],i.edges,i.style,o);if(u){l.push(u);continue}let d=ej(e.points);if(2===d.length&&.01>=Math.abs(d[0][r.cross]-d[1][r.cross])){let a=+!!eI(t,d[0])+ +!!eI(n,d[1]),o=+!!eI(t,h.start)+ +!!eI(n,h.end)<a,u=()=>{let t=i.edges.filter(t=>t!==e);return W([{...e,points:[h.start,h.end]},...t])<W([{...e,points:d},...t])};if(o&&tp([h.start,h.end],e,i)>=tp(d,e,i)&&!u()){let a=d[0][r.cross],o=t$(e,t,n,a,i,r,{...s,overlapLo:Math.min(s.overlapLo,a),overlapHi:Math.max(s.overlapHi,a),relaxedLo:Math.min(s.relaxedLo,a),relaxedHi:Math.max(s.relaxedHi,a)});if(!("blockers"in o)&&.01>=Math.hypot(o.start.x-d[0].x,o.start.y-d[0].y)&&.01>=Math.hypot(o.end.x-d[1].x,o.end.y-d[1].y))return e.label&&(e.labelPosition=o.slot??void 0),{applied:!0,blockers:[]};"blockers"in o&&l.push(...o.blockers);continue}}return eG(i,e,[h.start,h.end]),e.label&&(e.labelPosition=h.slot??void 0),{applied:!0,blockers:[],usedCandidateIndex:a}}return{applied:!1,blockers:tb(l)}}function tk(e,t,n,i,r=i.axis){let a=tM(e,t,n,i,r);if(!a||a.emptyRelaxed||!eH(t)||!eH(n)||!eT(e.points,r))return null;for(let o of a.candidates)if(!("blockers"in t$(e,t,n,o,i,r,a)))return o;return null}function tv(e,t,n,i,r){let a=ez(n);return{ctx:{nodes:e,edges:t,groups:r,axis:a,style:i},axis:a}}function tS(e,t,n,i=e.labelPosition){if(!e.label||!i)return null;let r=e.labelBlock??N(L(e.label,e.labelContent),n),a=T(i.x,i.y,r);for(let n of t)if(n!==e&&(void 0===e.edgeIndex||n.edgeIndex!==e.edgeIndex))for(let t=1;t<n.points.length;t++){let i=n.points[t-1],r=n.points[t],o=.01>Math.abs(i.x-r.x),s=.01>Math.abs(i.y-r.y);if(!o&&!s)continue;let l=Math.min(i.x,r.x),h=Math.max(i.x,r.x),u=Math.min(i.y,r.y),d=Math.max(i.y,r.y);if(h>=a.x&&l<=a.x+a.w&&d>=a.y&&u<=a.y+a.h)for(let t=1;t<e.points.length;t++){let r=e.points[t-1],a=e.points[t];if(!(o?.01>Math.abs(r.x-a.x)&&4>Math.abs(r.x-i.x):.01>Math.abs(r.y-a.y)&&4>Math.abs(r.y-i.y)))continue;let s=o?Math.min(r.y,a.y):Math.min(r.x,a.x),x=o?Math.max(r.y,a.y):Math.max(r.x,a.x),y=o?u:l;if(Math.min(x,o?d:h)-Math.max(s,y)>.01)return n}}return null}function tP(e,t,n){let i=tp(t.points,t,n);return tp(e,t,n,i)>i}function tC(e,t){let n="cylinder"===t.shape?X(t).boundary:void 0,i=.5*("rectangle"!==t.shape&&"subroutine"!==t.shape||void 0!==t.semanticShape&&"rect"!==t.semanticShape&&"fr-rect"!==t.semanticShape&&"lin-rect"!==t.semanticShape&&"div-rect"!==t.semanticShape&&"win-pane"!==t.semanticShape);for(let r=1;r<e.length;r++){let a=e[r-1],o=e[r],s=Math.min(a.x,o.x),l=Math.max(a.x,o.x),h=Math.min(a.y,o.y),u=Math.max(a.y,o.y);if(n?.kind==="cylinder"&&n.height>2*n.capRadiusY&&l>t.x&&s<t.x+t.width&&u>n.y+n.capRadiusY&&h<n.y+n.height-n.capRadiusY||l>t.x+i&&s<t.x+t.width-i&&u>t.y+i&&h<t.y+t.height-i)return!0}return!1}function tL(e){return"compound"===e.kind?{...e,children:e.children.map(tL)}:"path"===e.kind?{...e,d:P("d",e.d)}:"polygon"===e.kind||"polyline"===e.kind?{...e,points:e.points.map(tW)}:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,"number"==typeof t?Number(S(t)):t]))}var tW=e=>({x:Number(S(e.x)),y:Number(S(e.y))}),tN=e=>!!e&&Object.values(e).every(Number.isFinite)&&e.x0<=e.x1&&e.y0<=e.y1,tE=(e,t)=>{let n=(Math.abs(e.x0)+Math.abs(e.y0)+Math.abs(e.x1)+Math.abs(e.y1)+Math.abs(t.x0)+Math.abs(t.y0)+Math.abs(t.x1)+Math.abs(t.y1))*1e-10+1e-9;return!Number.isFinite(n)||e.x0<t.x1+n&&t.x0<e.x1+n&&e.y0<t.y1+n&&t.y0<e.y1+n};function tI(e,t,n){if("invisible"===e.style)return{shafts:[],markers:[]};if(e.points.length>eP*eC||void 0!==t.edgeBendRadius&&!(Number.isFinite(t.edgeBendRadius)&&t.edgeBendRadius>=0))return;let i={stroke:e.inlineStyle?.stroke??t.edgeStrokeColor??"var(--_line)",strokeWidth:P("stroke-width",e.inlineStyle?.["stroke-width"]??String((t.lineWidth??1)*("thick"===e.style?2:1)))},r=b(i,e.points.length>2||!!e.curve||(t.edgeBendRadius??0)>0);if(void 0===r||e.points.length<2||(e.hasArrowStart||e.hasArrowEnd)&&void 0===b({...i,stroke:"black"},!1))return;let a=[],o=e=>{if(!n())return!1;let t=g(e,r);return!!tN(t)&&(r>0&&a.push(t),!0)},s=z(e,t);if(s){if(!p(P("d",s.geometry.d),e=>o(e.bounds),n))return}else{let t=e.points.map(tW);for(let e=1;e<t.length;e++){let n=t[e-1],i=t[e];if(!o({x0:Math.min(n.x,i.x),y0:Math.min(n.y,i.y),x1:Math.max(n.x,i.x),y1:Math.max(n.y,i.y)}))return}}let l=e7(e,t);if(!l)return;for(let e of l)if(!n()||!tN(e.bounds))return;let h=V(e,t),u=h?Y(e,t.lineWidth??1):0,d=h?{x0:h.x-u,y0:h.y-u,x1:h.x+h.w+u,y1:h.y+h.h+u}:void 0;if(!(d&&!tN(d)))return{shafts:a,markers:l,...d?{label:d}:{}}}function tB(e,t,n,i,r){if("feedback"!==t)return null;if(!n||!i)return"feedback-detour";let a=e=>"y"===r.cross?e.height:e.width,o=Math.min(n[r.cross],i[r.cross])-2,s=Math.max(n[r.cross]+a(n),i[r.cross]+a(i))+2;return e.points.some(e=>e[r.cross]<o||e[r.cross]>s)?"outer-feedback":"feedback-detour"}function tR(e){return e.routeCertificate?.invariant==="bundle"&&e6(e)}function tH(e,t=!1){e.invariant="straight",e.bendCount=0,e.directLaneClear=!0,t&&(e.straightened=!0),e.directLaneBlockedBy=void 0}function tF(e,t,n,i,r){let a,o,s,l,h,u=eA(t),{axis:d,ctx:y}=eJ(e,t,i,u,e=>n.has(e)&&e6(e),!!r?.preserveLabels);y.fixedLabels=!!r?.preserveLabels;let c=eK(e.nodes),f=function e(t,n=new Map){for(let i of t)n.set(i.id,i),e(i.children,n);return n}(e.groups),g=[],p,m=(e,t)=>{let n="feedback"===t.routeClass?{...d,sign:1===d.sign?-1:1}:d,i=c.get(e.source),a=c.get(e.target);if(!(i&&a&&eH(i)&&eH(a)&&("feedback"===t.routeClass||eT(e.points,n))))return t.invariant=tB(e,t.routeClass,i,a,y.axis)??"unverified-shape",{applied:!1,mutated:!1};if(r?.preserveStraightRoutes&&2===e.points.length){let r=e.points[0],o=e.points[1],s=d.main,l=d.cross;if(r[l]===o[l]&&0===eB(e,i,a)&&!tc(e,r[l],Math.min(r[s],o[s]),Math.max(r[s],o[s]),y,n))return tH(t),{applied:!0,mutated:!1}}let o=y.sideUse?.get(`${i.id}:${eQ(n,1)}`)??1,s="primary-forward"===t.routeClass&&eF(i)&&1===o&&to(i)>=to(a),l=JSON.stringify(e.points);if(s){let r=i[n.cross]+("y"===n.cross?i.height:i.width)/2,o=tw(e,i,a,y,n,r);if(o.applied){let n=JSON.stringify(e.points)!==l;return tH(t,n),{applied:!0,mutated:n}}if(function(e,t,n,i,r){if(e.points.length<2)return!1;let a=t[r.cross]+("y"===r.cross?t.height:t.width)/2,o=n[r.cross],s=o+("y"===r.cross?n.height:n.width),l;if(a<o-.01)l="y"===r.cross?"N":"W";else{if(!(a>s+.01))return!1;l="y"===r.cross?"S":"E"}let h=eN(n)[l][r.cross];if(8>Math.abs(h-a))return!1;let u=eN(n)[eQ(r,-1)];if(i.edges.some(t=>t!==e&&t.target===e.target&&t.source!==e.source&&t.points.length>0&&.5>=Math.abs(t.points[t.points.length-1].x-u.x)&&.5>=Math.abs(t.points[t.points.length-1].y-u.y)))return!1;let d=eN(n)[l][r.main],x=eq(t,a,r,1);if(null===x||(d-x)*r.sign<=.01)return!1;let y={...e,points:[],label:void 0};if(tc(e,a,Math.min(x,d),Math.max(x,d),i,r))return!1;let c=eX(r,a,h);if(tc(y,d,Math.min(a,h),Math.max(a,h),i,c))return!1;let f=[eD(r,x,a),eD(r,d,a),eD(r,d,h)];if(!ta(e,f,i.edges,i.style)||!tm(e,i)&&tP(f,e,i))return!1;if(e.label){let t=tg(e,f[0],f[1],i);if(!t)return!1;e.labelPosition=t}return eG(i,e,f),!0}(e,i,a,y,n)||$(e,i,a,y,n,!0))return t.invariant="explained-detour",t.directLaneClear=!1,t.directLaneBlockedBy=tb(o.blockers),t.bendCount=eY(e.points),{applied:!1,mutated:JSON.stringify(e.points)!==l}}let h=tu(e,i,a,y,n);if(h&&$(e,i,a,y,n,!1,{sourceLane:h.sourceLane,targetLane:h.targetLane,preferSourceJog:!0}))return t.invariant="explained-detour",t.directLaneClear=!1,t.directLaneBlockedBy=[{kind:"port",id:tx(e)}],t.bendCount=eY(e.points),{applied:!1,mutated:JSON.stringify(e.points)!==l};let u=tw(e,i,a,y,n);if(u.applied){let n=JSON.stringify(e.points)!==l;return tH(t,n),{applied:!0,mutated:n,upgradeable:(u.usedCandidateIndex??0)>0}}t.invariant=tB(e,t.routeClass,i,a,y.axis)??"explained-detour",t.directLaneClear=!1,t.directLaneBlockedBy=u.blockers;let f=!1;return"outer-feedback"===t.invariant||"feedback-detour"===t.invariant?("outer-feedback"===t.invariant&&(f=function(e,t,n){let i=ej(e.points);if(i.length<4)return!1;let r=t.axis,a=e=>e[r.cross],o=e=>e[r.main],s=-1,l=.01;for(let e=1;e<i.length;e++){if(Math.abs(a(i[e-1])-a(i[e]))>=.01)continue;let t=(o(i[e-1])-o(i[e]))*r.sign;t>l&&(l=t,s=e-1)}if(s<1)return!1;let h=a(i[s]),u=[i[s],i[s+1]],d=Math.sign(o(u[1])-o(u[0])),y=i[0],c=t.nodes.find(t=>t.id===e.source),f=e=>d>0?e>=o(u[0])-.01&&e<o(u[1])-.01:e<=o(u[0])+.01&&e>o(u[1])+.01,g=(n,i)=>{if(.01>Math.abs(i-h))return!0;let a="x"===r.main?{main:"y",cross:"x",sign:i<h?1:-1}:{main:"x",cross:"y",sign:i<h?1:-1};return 0===ty({...e,points:[],label:void 0},n,Math.min(i,h),Math.max(i,h),t,a).length},p=(e,t,n)=>{let a=eD(r,e,h);return .01>Math.abs(t-h)?[a,...i.slice(s+1)]:[n,a,...i.slice(s+1)]},m=null;if(c&&eH(c)){let e=c[r.cross],t="y"===r.cross?h>e?"S":"N":h>e?"E":"W",n=eN(c)[t],i=n[r.cross],a=n[r.main];f(a)&&g(a,i)&&(m=p(a,i,n))}if(!m&&c){let e=d===r.sign?1:-1,t=eV(c,r,e);if("dynamic"===X(c).sides[eQ(r,e)].kind&&t&&h>=t.lo-.01&&h<=t.hi+.01){let t=eq(c,h,r,e);if(null!==t&&f(t)&&g(t,h)){let e=eD(r,t,h);m=p(t,h,e)}}}if(!m&&f(o(y))&&g(o(y),a(y))&&(m=p(o(y),a(y),y)),!m&&2===s&&.01>Math.abs(a(i[1])-a(y))&&t.edges.some(n=>n.source===e.source&&n!==e&&tS(n,t.edges,t.style))){let n=Math.sign(o(i[1])-o(y)),l=[o(y)+12*n];for(let i of t.edges){if(i===e)continue;for(let e of i.points)l.push(o(e)+12*n);let a=V(i,t.style);a&&l.push(("x"===r.main?a.x+(n>0?a.w:0):a.y+(n>0?a.h:0))+4.01*n)}for(let u of(l.sort((e,t)=>(e-t)*n),l)){if((u-o(y))*n<11.99||(o(i[1])-u)*n<=.01||!f(u)||!g(u,a(y)))continue;let l="x"===r.main?{x:u,y:a(y)}:{x:a(y),y:u},d=[y,l,"x"===r.main?{x:u,y:h}:{x:h,y:u},...i.slice(s+1)];if(!(tp(d,e,t)>tp(i,e,t))){m=d;break}}}let M=m??i;{let n=-1;for(let e=1;e<M.length;e++)if(.01>Math.abs(a(M[e-1])-h)&&.01>Math.abs(a(M[e])-h)){n=e-1;break}let i=t.nodes.find(t=>t.id===e.target);if(n>=0&&n+1<M.length-1&&i&&eH(i)){let e=i[r.cross],t="y"===r.cross?h>e?"S":"N":h>e?"E":"W",a=eN(i)[t],s=a[r.cross],l=a[r.main],u=M[n],d=M[n+1];if((Math.sign(o(d)-o(u))>0?l>o(u)+.01&&l<=o(d)+.01:l<o(u)-.01&&l>=o(d)-.01)&&g(l,s)){let e=eD(r,l,h);m=[...M.slice(0,n+1),e,a]}}}if(!m)return!1;let $=ej(m),w=n.get(e.target);if(eB({...e,points:$},c,w)>0)return!1;let k=b({stroke:"black",strokeWidth:P("stroke-width",e.inlineStyle?.["stroke-width"]??String((t.style.lineWidth??x.connector)*("thick"===e.style?2:1)))},!0);if(!c||!w||void 0===k)return!1;let v=e=>{let n=b({stroke:"black",strokeWidth:P("stroke-width",e.inlineStyle?.["stroke-width"]??String(t.style.nodeLineWidth??x.innerBox))},!0);if(void 0===n)return;let i=Math.max(4,n+k)+.01,r=e.x-i,a=e.y-i,o=e.width+2*i,s=e.height+2*i;if([r,a,o,s].every(Number.isFinite))return{...e,shape:"rectangle",semanticShape:void 0,x:r,y:a,width:o,height:s}},S=v(c),C=v(w);if(!S||!C||tC($.slice(1),S)||tC($.slice(0,-1),C)||tP($,e,t)||!ta(e,$,t.edges,t.style))return!1;let L=e.points;if(eG(t,e,$),e.label&&e.labelPosition){let n=e.labelPosition;if(!e.points.some((t,i)=>{if(0===i)return!1;let r=e.points[i-1],a=Math.min(r.x,t.x)-1,o=Math.max(r.x,t.x)+1,s=Math.min(r.y,t.y)-1,l=Math.max(r.y,t.y)+1;return n.x>=a&&n.x<=o&&n.y>=s&&n.y<=l})){let n=null;for(let i=1;i<e.points.length;i++){let r=e.points[i-1],o=e.points[i];if(.01>Math.abs(a(r)-h)&&.01>Math.abs(a(o)-h)){n=tg(e,r,o,t);break}}if(!n)return eG(t,e,L),!1;e.labelPosition=n}}return JSON.stringify(e.points)!==JSON.stringify(L)}(e,y,c),t.bendCount=eY(e.points)),tm(e,y)&&$(e,i,a,y,n)&&(t.bendCount=eY(e.points),f=!0)):"explained-detour"===t.invariant&&(t.bendCount>2||tm(e,y)||!eI(i,e.points[0])||!eI(a,e.points[e.points.length-1]))&&($(e,i,a,y,n)||function(e,t,n,i,r){if(!tm(e,i))return!1;let a=eV(t,r,1),o=eV(n,r,-1);if(!a||!o)return!1;let s={...e,points:[],label:void 0},l=e=>"y"===r.cross?e.height:e.width,h=e=>"x"===r.main?e.width:e.height,u=t[r.cross]+l(t)/2,d=eq(t,u,r,1),x=n[r.cross]+l(n)/2,y=eq(n,x,r,-1);if(null===d||null===y||Math.abs(u-a.lo)>.01&&Math.abs(u-a.hi)>.01&&(u<a.lo-.01||u>a.hi+.01))return!1;let c=[];for(let t of i.nodes){if(t.id===e.source||t.id===e.target)continue;let n=t[r.main],i=n+h(t),a=(n-d)*r.sign>.01||(i-d)*r.sign>.01,o=(y-n)*r.sign>.01||(y-i)*r.sign>.01;if(!a||!o)continue;let s=r.sign>0?n:i;c.push({mainNear:s,crossLo:t[r.cross],crossHi:t[r.cross]+l(t)})}let f=c.filter(e=>u>e.crossLo-4&&u<e.crossHi+4);if(0===f.length)return!1;let g=f.reduce((e,t)=>(t.mainNear-d)*r.sign<(e-d)*r.sign?t.mainNear:e,f[0].mainNear);if((g-d)*r.sign<=4)return!1;let p=d+(g-d)/2,m=y-12*r.sign;if((m-p)*r.sign<=.01)return!1;let b=[],M=e=>{b.every(t=>Math.abs(t-e)>.5)&&b.push(e)};for(let e of c)M(e.crossLo-4-.01),M(e.crossHi+4+.01);let $=[...c].sort((e,t)=>e.crossLo-t.crossLo);for(let e=1;e<$.length;e++){let t=$[e-1].crossHi,n=$[e].crossLo;n-t>8&&M((t+n)/2)}b.sort((e,t)=>Math.abs(e-u)-Math.abs(t-u));let w=null;for(let t of b){if(4>Math.abs(t-u)||tc(s,u,Math.min(d,p),Math.max(d,p),i,r)||tc(s,p,Math.min(u,t),Math.max(u,t),i,eX(r,u,t))||tc(s,t,Math.min(p,m),Math.max(p,m),i,r)||tc(s,m,Math.min(t,x),Math.max(t,x),i,eX(r,t,x))||tc(s,x,Math.min(m,y),Math.max(m,y),i,r))continue;let n=ej([eD(r,d,u),eD(r,p,u),eD(r,p,t),eD(r,m,t),eD(r,m,x),eD(r,y,x)]);if(!ta(e,n,i.edges,i.style))continue;let a=[eD(r,p,t),eD(r,m,t)];if(e.label){let t=tg(e,a[0],a[1],i);if(t)return e.labelPosition=t,eG(i,e,n),!0;w||(w={route:n,labelMid:{x:(a[0].x+a[1].x)/2,y:(a[0].y+a[1].y)/2}});continue}return eG(i,e,n),!0}return!!w&&(eG(i,e,w.route),e.label&&(e.labelPosition=w.labelMid),!0)}(e,i,a,y,n))&&(t.bendCount=eY(e.points),f=!0),{applied:!1,mutated:f}};function $(e,t,n,i,r,a=!1,o){if(e.points.length<2)return!1;let s=eV(t,r,1),l=eV(n,r,-1);if(!s||!l)return!1;let h=e.points.map(e=>e[r.cross]),u=[],d=[],x=(e,t)=>{e.every(e=>Math.abs(e-t)>.5)&&e.push(t)};if(o?.sourceLane!==void 0)x(u,o.sourceLane);else if(x(u,t[r.cross]+("y"===r.cross?t.height:t.width)/2),!a)for(let t of(x(u,e.points[0][r.cross]),h))x(u,t);o?.targetLane!==void 0?x(d,o.targetLane):(x(d,n[r.cross]+("y"===r.cross?n.height:n.width)/2),x(d,e.points[e.points.length-1][r.cross]));let y=e=>{let t=e[r.main];return[t,t+("x"===r.main?e.width:e.height)]},[c,f]=y(t),[g,p]=y(n),m=Math.min(c,f,g,p),b=Math.max(c,f,g,p),M=(t,n)=>{if(n)for(let a of i.nodes){if(a.id===e.source||a.id===e.target)continue;let[i,o]=y(a);if(o<=m+.01||i>=b-.01)continue;let s=a[r.cross],l=s+("y"===r.cross?a.height:a.width);for(let e of[s-4-.01,l+4+.01])e>=n.lo-.01&&e<=n.hi+.01&&x(t,e)}};M(u,o?.sourceLane===void 0?s:null),M(d,o?.targetLane===void 0?l:null);let w=(e,t)=>eF(e)?{lo:e[r.cross]+2,hi:e[r.cross]+("y"===r.cross?e.height:e.width)-2}:t,k=w(t,s),v=w(n,l),S=!o?.requireFewerCrossings&&tm(e,i),P=null,L={...e,points:[],label:void 0},W,N=!C(),E;for(let a of d){if(a<v.lo-.01||a>v.hi+.01)continue;let s=eq(n,a,r,-1);if(null!==s)for(let l=0;l<u.length;l++){let h=u[l];if(h<k.lo-.01||h>k.hi+.01||4>Math.abs(h-a))continue;let d=eq(t,h,r,1);if(null===d||o?.requireFewerCrossings&&(d!==(1===r.sign?f:c)||s!==(1===r.sign?g:p))||(s-d)*r.sign<=.01)continue;let x=o?.preferSourceJog?[d+12*r.sign,(d+s)/2,s-12*r.sign]:[s-12*r.sign,(d+s)/2,d+12*r.sign];for(let u=0;u<x.length;u++){let y=x[u];if((y-d)*r.sign<=.01||(s-y)*r.sign<=.01)continue;let c=Math.abs(y-d)>=Math.abs(s-y),f=N?(3*l+u)*2+Number(c):0,g=N?E?.[f]:void 0,p;if(g&&Object.is(g.jog,y)?p=g.blocked:(p=tc(c?e:L,h,Math.min(d,y),Math.max(d,y),i,r),N&&(g?(g.jog=y,g.blocked=p):(E??=[])[f]={jog:y,blocked:p})),p)continue;let m=eX(r,h,a);if(tc(L,y,Math.min(h,a),Math.max(h,a),i,m)||tc(c?L:e,a,Math.min(y,s),Math.max(y,s),i,r))continue;let b=[eD(r,d,h),eD(r,y,h),eD(r,y,a),eD(r,s,a)];if(!ta(e,b,i.edges,i.style))continue;let M=+!!eI(t,e.points[0])+ +!!eI(n,e.points.at(-1)),$=+!!eI(t,b[0])+ +!!eI(n,b.at(-1));W??=S?0:tp(e.points,e,i);let w=S?0:tp(b,e,i,W);if(!(!S&&w>W)&&!(o?.requireFewerCrossings&&w>=W)&&!(!S&&w>=W&&eB({...e,points:b},t,n)>=eB(e,t,n)&&(eY(b)>eY(e.points)||eY(b)===eY(e.points)&&$<M))){if(e.label){let t=c?[b[0],b[1]]:[b[2],b[3]],n=tg(e,t[0],t[1],i);if(!n){S&&!P&&(P={route:b,labelMid:{x:(t[0].x+t[1].x)/2,y:(t[0].y+t[1].y)/2}});continue}e.labelPosition=n}return eG(i,e,b),!0}}}}return!!P&&(eG(i,e,P.route),e.label&&(e.labelPosition=P.labelMid),!0)}let w=[],k=(a=y.style,o=new Map,s=[],l=new Map,h=(e,t)=>Math.min(e.x+e.w,t.x+t.w)>Math.max(e.x,t.x)&&Math.min(e.y+e.h,t.y+t.h)>Math.max(e.y,t.y),e=>{let t=c.get(e.source);if(!t)return null;let n=t.x+t.width/2,i=t.y+t.height/2,r=e.points.slice(1,-1),u=r.length>0?{x:r.reduce((e,t)=>e+t.x,0)/r.length,y:r.reduce((e,t)=>e+t.y,0)/r.length}:e.points[0]??{x:t.x,y:i},d=(u.x-n)/Math.max(t.width/2,1),g=(u.y-i)/Math.max(t.height/2,1),p=Math.abs(d)>=Math.abs(g)?d<0?"W":"E":g<0?"N":"S",m=[p,function(e){switch(e){case"N":return"S";case"S":return"N";case"E":return"W";case"W":return"E"}}(p),..."W"===p||"E"===p?["N","S"]:["W","E"]],$=e.label?e.labelBlock??N(L(e.label,e.labelContent),a):null,k=e=>$?("N"===e||"S"===e?$.height:$.width)+2*j:0,v=e=>"N"===e||"S"===e?t.width:t.height,S=e=>`${t.id}:${e}`,P=e=>o.get(S(e))??0,C=e=>Math.min(Math.max(v(e)/4,6),10,Math.max(v(e)/2-2,3)),W=e=>C(e)+6*P(e)<=v(e)/2-2,E=r=>{let o=P(r),s=C(r)+6*o;return{d:s,desired:24+o*Math.max(14,k(r)+8),clear:((r,o)=>{let s="N"===r||"S"===r,l=s?n:i,h=l-o-6,u=l+o+6,d="W"===r?t.x:"E"===r?t.x+t.width:"N"===r?t.y:t.y+t.height,x="W"===r||"N"===r?-1:1,c=1e3,g=(e,t,n,i)=>{if(t<h||e>u)return;let r=(n-d)*x;r>0&&(c=Math.min(c,r-(i?2:6)))};for(let e of y.nodes)e.id!==t.id&&g(s?e.x:e.y,s?e.x+e.width:e.y+e.height,s?x<0?e.y+e.height:e.y:x<0?e.x+e.width:e.x,!1);for(let e of f.values())if(n>e.x&&n<e.x+e.width&&i>e.y&&i<e.y+e.height){let t=((s?x<0?e.y:e.y+e.height:x<0?e.x:e.x+e.width)-d)*x;t>0&&(c=Math.min(c,t-4))}else g(s?e.x:e.y,s?e.x+e.width:e.y+e.height,s?x<0?e.y+e.height:e.y:x<0?e.x+e.width:e.x,!1);for(let t of y.edges){if(t===e||t.source===t.target||!t.label)continue;let n=V(t,a);n&&g(s?n.x:n.y,s?n.x+n.w:n.y+n.h,s?x<0?n.y+n.h:n.y:x<0?n.x+n.w:n.x,!1)}return c})(r,s)}},I=(r,o)=>{let u=Math.max(Math.min(o.desired,o.clear),8),d=o.d,c=ef(ef((()=>{switch(r){case"W":return[{x:t.x,y:i-d},{x:t.x-u,y:i-d},{x:t.x-u,y:i+d},{x:t.x,y:i+d}];case"E":return[{x:t.x+t.width,y:i-d},{x:t.x+t.width+u,y:i-d},{x:t.x+t.width+u,y:i+d},{x:t.x+t.width,y:i+d}];case"N":return[{x:n-d,y:t.y},{x:n-d,y:t.y-u},{x:n+d,y:t.y-u},{x:n+d,y:t.y}];default:return[{x:n-d,y:t.y+t.height},{x:n-d,y:t.y+t.height+u},{x:n+d,y:t.y+t.height+u},{x:n+d,y:t.y+t.height}]}})(),t,!0),t,!1),g=tr(e,c,y.edges,a);if(g)return w?.push(g),null;let p=((r,o,u)=>{if(!e.label||!$)return[];let d="N"===r||"S"===r,c="W"===r||"N"===r?-1:1,g="W"===r||"S"===r?-1:1,p=("W"===r?t.x:"E"===r?t.x+t.width:"N"===r?t.y:t.y+t.height)+c*(o+k(r)/2+4),m=(d?$.width:$.height)+2*j+2,w=P(r),v=d?{x:n,y:p}:{x:p,y:i},C=e=>({x:e.x-$.width/2-j,y:e.y-$.height/2-j,w:$.width+2*j,h:$.height+2*j}),L=S(r),W=l.get(L)??[],N=[],E=s.slice();if(w>0){for(let e of W){let t=e.edge.labelPosition,r=d?{x:n-g*m,y:t.y}:{x:t.x,y:i-g*m};N.push({edge:e.edge,position:r,rectIndex:e.rectIndex}),E[e.rectIndex]=V({...e.edge,labelPosition:r},a)}v=d?{x:n+g*m*w,y:p}:{x:p,y:i+g*m*w}}if(E.some(e=>h(C(v),e)))for(let e=0;e<8;e++){let t=e%2==0?g:-g,r=(1+Math.floor(e/2))*m,a=d?{x:n+t*r,y:p}:{x:p,y:i+t*r};if(!E.some(e=>h(C(a),e))){v=a;break}}N.push({edge:e,position:v});let I=new Map(N.map(e=>[e.edge,e.position])),B=(e,t)=>{let n=V({...e,labelPosition:t},a);if(!n)return null;let i=Y(e,a.lineWidth??1);return{x:n.x-i,y:n.y-i,w:n.w+2*i,h:n.h+2*i}};for(let t of N){let n=B(t.edge,t.position),i=V({...t.edge,labelPosition:t.position},a);if(!n||!i||!Object.values(n).every(Number.isFinite))return null;let r=t.edge===e?u:t.edge.points,o=1/0;for(let e=1;e<r.length;e++){let t=r[e-1],n=r[e];if(t.x!==n.x&&t.y!==n.y)return null;o=Math.min(o,Math.max(i.x-Math.max(t.x,n.x),Math.min(t.x,n.x)-i.x-i.w,0)+Math.max(i.y-Math.max(t.y,n.y),Math.min(t.y,n.y)-i.y-i.h,0))}if(!(o<=i.h/2+4))return null;let s=(e,t,i,r)=>{let a=(Math.abs(e)+Math.abs(t)+Math.abs(i)+Math.abs(r)+Math.abs(n.x)+Math.abs(n.y)+n.w+n.h)*1e-10+1e-9;return!Number.isFinite(a)||h(n,{x:e-a,y:t-a,w:i+2*a,h:r+2*a})};for(let e of y.nodes){let t=D(e,{fill:e.inlineStyle?.fill??a.nodeFillColor??"var(--_node-fill)",stroke:e.inlineStyle?.stroke??a.nodeBorderColor??"var(--_node-stroke)",strokeWidth:e.inlineStyle?.["stroke-width"]??String(a.nodeLineWidth??x.innerBox)},a.cornerRadius??0),n=M({kind:"shape",id:e.id,role:"node",geometry:t.geometry,paint:t.paint,...t.childPaints?{childPaints:t.childPaints}:{}});if(!n||s(n.x0,n.y0,n.x1-n.x0,n.y1-n.y0))return null}for(let e of f.values()){let t=e.concurrencyRegion?0:e.headerHeight??e.height;if(!Number.isFinite(t)||t<0)return null;let n=b({stroke:e.inlineStyle?.stroke??"black",strokeWidth:e.inlineStyle?.["stroke-width"]??String(a.groupLineWidth??x.innerBox)},!0);if(void 0===n||t>0&&s(e.x-n,e.y-n,e.width+2*n,t+2*n))return null}for(let n of y.edges){let i=e7(n===e?{...n,points:u}:n,a);if(!i||i.some(e=>!e.bounds||s(e.bounds.x0,e.bounds.y0,e.bounds.x1-e.bounds.x0,e.bounds.y1-e.bounds.y0)))return null;if(n===t.edge||!n.label)continue;let r=I.get(n)??n.labelPosition;if(!r)continue;let o=B(n,r);if(!o||s(o.x,o.y,o.w,o.h))return null}}return N})(r,u,c);return p?{points:c,labels:p}:null},B=null,R=null,H=null,F=[],A=m.map((e,t)=>({side:e,preference:t,rank:P(e)})).sort((e,t)=>e.rank-t.rank||e.preference-t.preference).map(e=>e.side);for(let e of A){if(!W(e))continue;let t=E(e);if(t.clear<Math.min(t.desired,14))continue;let n=I(e,t);if(n){B=e,R=t,H=n.points,F=n.labels;break}}if(!B||!R||!H){let e=A.filter(W);if(0===e.length)return null;let t=e.reduce((e,t)=>E(t).clear>E(e).clear?t:e,e[0]),n=E(t),i=I(t,n);if(!i)return null;B=t,R=n,H=i.points,F=i.labels}o.set(S(B),P(B)+1),eG(y,e,H);let z=S(B),O=l.get(z)??[];for(let e of F){e.edge.labelPosition=e.position;let t=V(e.edge,a);if(void 0!==e.rectIndex)s[e.rectIndex]=t;else{let n=s.push(t)-1;O.push({edge:e.edge,rectIndex:n})}}return F.length&&l.set(z,O),B}),v=[];for(let i of e.edges){let a=n.has(i)?e4(i):void 0,o=ej(function(e){let t=!1;for(let n=1;n<e.length;n++){let i=e[n-1],r=e[n];if(Math.abs(i.x-r.x)>.01&&Math.abs(i.y-r.y)>.01){t=!0;break}}if(!t)return e;let n=[e[0]];for(let t=1;t<e.length;t++){let i=n[n.length-1],r=e[t];if(Math.abs(i.x-r.x)>.01&&Math.abs(i.y-r.y)>.01){let e=n.length>=2?n[n.length-2]:void 0,t=!e||.01>Math.abs(e.y-i.y);n.push(t?{x:r.x,y:i.y}:{x:i.x,y:r.y})}n.push(r)}return n}(i.points)),s=c.get(i.source),l=c.get(i.target);s&&(o=ec(o,s,!0)),l&&(o=ec(o,l,!1)),ta(i,o,y.edges,y.style)&&eG(y,i,o),e9(i,a);let h=i.edgeIndex??-1,d=u[h]??"primary-forward",x={edgeIndex:h,routeClass:d,bendCount:eY(i.points),invariant:"straight"};if(n.has(i)&&e6(i))x.invariant="bundle";else if("self-loop"===d){let e;if(r?.preserveSelfLoops){let t=c.get(i.source),n=(e,t)=>.01>=Math.abs(e.x-t.x)&&Math.abs(e.y-t.y)>.01?t.y>e.y?"S":"N":.01>=Math.abs(e.y-t.y)&&Math.abs(e.x-t.x)>.01?t.x>e.x?"E":"W":void 0,r=i.points[0],a=i.points.at(-1),o=r&&i.points.find(e=>Math.hypot(e.x-r.x,e.y-r.y)>.01),s=a&&[...i.points].reverse().find(e=>Math.hypot(e.x-a.x,e.y-a.y)>.01);e=t&&r&&a&&o&&s&&Math.hypot(r.x-a.x,r.y-a.y)>=8&&n(r,o)===n(a,s)?n(r,o):void 0}w.length=0;let t=e??k(i);t?(x.invariant="self-loop",x.loopSide=t,x.bendCount=eY(i.points)):(x.invariant="explained-detour",w.length&&(x.directLaneBlockedBy=[...w]))}else if("container"===d){x.invariant="container-attach";let n=function(e,t,n){let i=e=>{let i=t.get(e);if(i)return{id:e,label:"",shape:"rectangle",x:i.x,y:i.y,width:i.width,height:i.height};let r=n.get(e);return r&&eH(r)?r:null},r=i(e.source),a=i(e.target);if(!r||!a)return null;let o=ej(e.points);if(2===o.length&&tO(o[0],r.x,r.y,r.width,r.height,1)&&tO(o[1],a.x,a.y,a.width,a.height,1))return null;let s=[{gap:a.y-(r.y+r.height),axis:{main:"y",cross:"x",sign:1}},{gap:r.y-(a.y+a.height),axis:{main:"y",cross:"x",sign:-1}},{gap:a.x-(r.x+r.width),axis:{main:"x",cross:"y",sign:1}},{gap:r.x-(a.x+a.width),axis:{main:"x",cross:"y",sign:-1}}].filter(e=>e.gap>.01).sort((e,t)=>t.gap-e.gap)[0];return s?{source:r,target:a,axis:s.axis}:null}(i,f,c);if(n){let r=tw(i,n.source,n.target,y,n.axis).applied,a=!r&&(p??=eL(t)&&!C()&&!e.edges.some(e=>e.label))&&tp(i.points,i,y)>0&&$(i,n.source,n.target,y,n.axis,!1,{requireFewerCrossings:!0});(r||a)&&(x.bendCount=eY(i.points),r&&(x.directLaneClear=!0,x.straightened=!0))}}else if("primary-forward"===d||"feedback"===d)if(x.bendCount>0){let e=m(i,x);(!e.applied||e.upgradeable)&&v.push({edge:i,cert:x})}else{let t=c.get(i.source),n=c.get(i.target),r=!i.label&&void 0!==i.edgeIndex&&e.edges.some(e=>e!==i&&e.source===i.target&&e.target===i.source&&!e.label&&void 0!==e.edgeIndex);if(t&&n&&(!eI(t,i.points[0])||!eI(n,i.points[i.points.length-1])||eB(i,t,n)>0||tm(i,y)||r)){let e=m(i,x);(!e.applied||e.upgradeable)&&v.push({edge:i,cert:x})}}g.push({edge:i,cert:x})}for(let e=0;e<4&&v.length>0;e++){let e=[],t=!1;for(let n of v){if("unverified-shape"===n.cert.invariant)continue;let i=m(n.edge,n.cert);i.mutated&&(t=!0),(!i.applied||i.upgradeable)&&e.push(n)}if(!t)break;v.length=0,v.push(...e)}for(let t of e.edges){let e=n.has(t)?e4(t):void 0,i=c.get(t.source),r=c.get(t.target);i&&tl(t,i,!0,y),r&&tl(t,r,!1,y);let a=t.points;i&&(a=ec(a,i,!0)),r&&(a=ec(a,r,!1)),ta(t,a,y.edges,y.style)&&eG(y,t,a),e9(t,e)}let S=[],W=eU(e,t,u),E=(e,t)=>{let n=eY(e.points),i=c.get(e.source),r=c.get(e.target),a=W.byEdge.get(e),o={edgeIndex:t.edgeIndex,routeClass:t.routeClass,bendCount:n,directLaneClear:t.directLaneClear,directLaneBlockedBy:t.directLaneBlockedBy,sourcePort:i&&e.points.length>0?eI(i,e.points[0]):void 0,targetPort:r&&e.points.length>0?eI(r,e.points[e.points.length-1]):void 0,sourcePortAssignment:a?.source,targetPortAssignment:a?.target,...void 0!==t.loopSide?{loopSide:t.loopSide}:{}};return"straight"===t.invariant&&0===n&&2===e.points.length?{...o,invariant:"straight",...t.straightened?{straightened:!0}:{}}:{...o,invariant:"straight"===t.invariant?"explained-detour":t.invariant}};for(let{edge:e,cert:t}of g){let n=E(e,t);e.routeCertificate=n,S.push(n)}return S}function tA(e,t,n,i){if(!t){e.routeCertificate=void 0;return}let r={edgeIndex:t.edgeIndex,routeClass:t.routeClass,bendCount:eY(e.points),directLaneClear:t.directLaneClear,directLaneBlockedBy:t.directLaneBlockedBy,sourcePort:n&&e.points.length>0?eI(n,e.points[0]):t.sourcePort,targetPort:i&&e.points.length>0?eI(i,e.points[e.points.length-1]):t.targetPort,sourcePortAssignment:t.sourcePortAssignment,targetPortAssignment:t.targetPortAssignment,...void 0!==t.loopSide?{loopSide:t.loopSide}:{}};if(2===e.points.length&&0===eY(e.points)){e.routeCertificate={...r,invariant:"straight"};return}e.routeCertificate={...r,invariant:"straight"!==t.invariant&&("bundle"!==t.invariant||e6(e))?t.invariant:"explained-detour"}}function tz(e,t,n,i){let r=[];for(let t of e.edges)void 0!==t.edgeIndex&&t.routeCertificate&&(r[t.edgeIndex]=t.routeCertificate.routeClass);let{axis:a,ctx:o}=eJ(e,t,n,r,tR,!0),s=eK(e.nodes),l=o.sideUse,h=[],u=new Set;for(let t of e.edges){let e=t.routeCertificate;if(!e||tR(t)||"primary-forward"!==e.routeClass&&"feedback"!==e.routeClass)continue;let n="feedback"===e.routeClass?{...a,sign:1===a.sign?-1:1}:a,r=ej(t.points);if(r.length<=2)continue;let d=s.get(t.source),x=s.get(t.target);if(!d||!x||!eH(d)||!eH(x)||"feedback"!==e.routeClass&&!eT(r,n))continue;let y=tu(t,d,x,o,n);if(y&&function(e,t,n,i){if(e.points.length<=2)return!1;let r=e.points[0],a=e.points[e.points.length-1],o=ts(t,i.sourcePort),s=eN(n)[i.targetPort];return .5>=Math.abs(r.x-o.x)&&.5>=Math.abs(r.y-o.y)&&.5>=Math.abs(a.x-s.x)&&.5>=Math.abs(a.y-s.y)}(t,d,x,y))continue;let c=l.get(`${t.source}:${eQ(n,1)}`)??1,f="primary-forward"===e.routeClass&&eF(d)&&1===c&&to(d)>=to(x)?d[n.cross]+("y"===n.cross?d.height:d.width)/2:void 0;tw(i?t:{...t,points:r.map(e=>({...e}))},d,x,o,n,f,t).applied&&(h.push({edge:tx(t),deviationPx:Math.round(10*function(e,t){let n=1/0,i=-1/0;for(let r of e)n=Math.min(n,r[t.cross]),i=Math.max(i,r[t.cross]);return i-n}(r,n))/10}),i&&u.add(t))}if(u.size>0){let n=eU(e,t,r);for(let e of u){let t=e.routeCertificate;if(!t||2!==e.points.length||0!==eY(e.points))continue;let i=s.get(e.source),r=s.get(e.target),a=n.byEdge.get(e);e.routeCertificate={edgeIndex:t.edgeIndex,routeClass:t.routeClass,invariant:"straight",bendCount:0,directLaneClear:!0,sourcePort:i?eI(i,e.points[0]):void 0,targetPort:r?eI(r,e.points[1]):void 0,sourcePortAssignment:a?.source,targetPortAssignment:a?.target,straightened:!0}}}return h}function tO(e,t,n,i,r,a){let o=(Math.abs(e.x-t)<=a||Math.abs(e.x-(t+i))<=a)&&e.y>=n-a&&e.y<=n+r+a,s=(Math.abs(e.y-n)<=a||Math.abs(e.y-(n+r))<=a)&&e.x>=t-a&&e.x<=t+i+a;return o||s}var tj=Symbol("label-seat-sort-denied");function tY(e,t){if(t&&!t(1))return;let n=[];for(let i=1;i<e.points.length;i++){if(t&&!t(2))return;let r=e.points[i-1],a=e.points[i],o=.01>Math.abs(r.x-a.x);if(o||.01>Math.abs(r.y-a.y)){if(t&&!t(12))return;n.push({a:r,b:a,vertical:o,len:Math.abs(r.x-a.x)+Math.abs(r.y-a.y),i:i})}}if(!t||t(2*n.length+1)){try{n.sort((e,n)=>{if(t&&!t(4))throw tj;return n.len-e.len||e.i-n.i})}catch(e){if(e===tj)return;throw e}return n}}function tT(e,t){t?.();let n=[];for(let i=0;i<11;i++)t?.(),n.push(e+i/10*(1-2*e));return n.sort((e,n)=>(t?.(),Math.abs(e-.5)-Math.abs(n-.5)))}function tV(e,t){return Y(e,t.lineWidth??1)}function tq(e,t,n){n?.();let i,r=(e,t)=>t.some(t=>{n?.();let i=t.concurrencyRegion?0:t.headerHeight??t.height;return i>0&&e.x<t.x+t.width&&e.x+e.w>t.x&&e.y<t.y+i&&e.y+e.h>t.y||r(e,t.children)}),a=r=>{for(let a of C()?e.edges.flatMap(e=>(n?.(),O(e,t))):i??=e.edges.flatMap(e=>(n?.(),O(e,t)))){n?.();let e=a.bounds;if(e&&r.x<e.x1&&r.x+r.w>e.x0&&r.y<e.y1&&r.y+r.h>e.y0)return!0}return!1};return{overlapsMarker:a,clearPaintRect:(t,i)=>{n?.();let o={x:t.x-i,y:t.y-i,w:t.w+2*i,h:t.h+2*i};if(!(e.nodes.some(e=>(n?.(),o.x<e.x+e.width&&o.x+o.w>e.x&&o.y<e.y+e.height&&o.y+o.h>e.y))||r(o,e.groups)||a(o)))return o}}}function tQ(e,t,n){let i;for(let t of e.edges){if(!t.label||!t.labelPosition||t.points.length<2||!tS(t,e.edges,n))continue;let r=i??=tq(e,n),a=tV(t,n),o=t.labelBlock??N(L(t.label,t.labelContent),n),s=o.width+2*j,l=o.height+2*j,h=tY(t),u=t.labelPosition,d=!1,x=Math.min(s,l)/2-1;for(let i of[0,x,-x]){if(d)break;for(let u of h){if(d)break;let h=(u.vertical?l:s)/2;if(u.len<=2*h)continue;let x=h/u.len;for(let s of[5,4,6,3,7,2,8,1,9,0,10]){let l=x+s/10*(1-2*x),h=u.a.x+(u.b.x-u.a.x)*l+(u.vertical?i:0),y=u.a.y+(u.b.y-u.a.y)*l+(u.vertical?0:i);if(t.labelPosition={x:h,y:y},r.clearPaintRect(T(h,y,o),a)&&!tS(t,e.edges,n)){d=!0;break}}}}d||(t.labelPosition=u)}}function tZ(e,t,n){let i=(e,t,n)=>{let i=n.x-t.x,r=n.y-t.y,a=i*i+r*r;if(0===a)return Math.hypot(e.x-t.x,e.y-t.y);let o=Math.max(0,Math.min(1,((e.x-t.x)*i+(e.y-t.y)*r)/a));return Math.hypot(e.x-(t.x+o*i),e.y-(t.y+o*r))},r;for(let t of e.edges){if(!t.label||!t.labelPosition||t.points.length<2||t.source===t.target)continue;let a=t.labelBlock??N(L(t.label,t.labelContent),n),o=a.width+2*j,s=a.height+2*j,l=s/2+4,h=e=>{let n=1/0;for(let r=1;r<t.points.length;r++)n=Math.min(n,i(e,t.points[r-1],t.points[r]));return n};if(h(t.labelPosition)<=l)continue;let u=r??=tq(e,n),d=tV(t,n),x=(i,r)=>h({x:i,y:r})<=l&&!!u.clearPaintRect(T(i,r,a),d)&&!tS(t,e.edges,n,{x:i,y:r}),y=tY(t),c=!1;for(let e of y){if(c)break;let n=(e.vertical?s:o)/2;if(!(e.len<=2*n))for(let i of tT(n/e.len)){let n=e.a.x+(e.b.x-e.a.x)*i,r=e.a.y+(e.b.y-e.a.y)*i;if(x(n,r)){t.labelPosition={x:n,y:r},c=!0;break}}}if(!c){let e=t.points[0],n=1/0;for(let i of y.length?y:[]){let r=i.b.x-i.a.x,a=i.b.y-i.a.y,o=r*r+a*a||1,s=Math.max(0,Math.min(1,((t.labelPosition.x-i.a.x)*r+(t.labelPosition.y-i.a.y)*a)/o)),l=i.a.x+s*r,h=i.a.y+s*a,u=Math.hypot(t.labelPosition.x-l,t.labelPosition.y-h);u<n&&(n=u,e={x:l,y:h})}let i=n>.01?(t.labelPosition.x-e.x)/n:0,r=n>.01?(t.labelPosition.y-e.y)/n:-1,a=l-1;for(let n of[1,-1]){let o=e.x+i*a*n,s=e.y+r*a*n;if(x(o,s)){t.labelPosition={x:o,y:s};break}}}}}function t_(e,t,n=c({}),i){let r=1e6,a=e.edges.filter(e=>e.label&&e.labelPosition&&e.points.length>=2);if(0===a.length)return;let o=e=>{let t=V(e,n),i=tV(e,n);return t&&{x:t.x-i,y:t.y-i,w:t.w+2*i,h:t.h+2*i}},s=(e,t)=>Math.min(e.x+e.w,t.x+t.w)-Math.max(e.x,t.x)>.5&&Math.min(e.y+e.h,t.y+t.h)-Math.max(e.y,t.y)>.5,{overlapsMarker:l,clearPaintRect:h}=tq(e,n),u=function*(t,a,l=!1,u){if(u&&!u.pay(16))return;let d=t.labelBlock??N(L(t.label,t.labelContent),n),x=d.width+2*j,y=d.height+2*j,c=tV(t,n),f=(l,x)=>{if(u)return u.pay(3)&&u.clear({x:l,y:x});if(i?.preserveRouteClearance&&r<=0)return!1;let y=h(T(l,x,d),c);if(!y)return!1;for(let e of a){let t=o(e);if(t&&s(y,t))return!1}if(tS(t,e.edges,n,{x:l,y:x}))return!1;if(i?.preserveRouteClearance){for(let n of e.edges)if(n!==t&&"invisible"!==n.style){for(let e=1;e<n.points.length;e++)if(--r<0||q(n.points[e-1],n.points[e],y))return!1}}return!0},g=u?tY(t,u.pay):tY(t);if(!g)return;let p=y/2+4;for(let e of[0,p-1,-(p-1),(p-1)/2,-(p-1)/2])for(let t of g){let n=(t.vertical?y:x)/2;if(!l&&t.len<=2*n)continue;let a=+!!t.vertical,o=+!t.vertical,s=l?0:n/t.len;if(u&&!u.pay(160))return;for(let n of tT(s)){let s=t.a.x+(t.b.x-t.a.x)*n+a*e,l=t.a.y+(t.b.y-t.a.y)*n+o*e;if(i?.preserveRouteClearance&&r<=0)return;f(s,l)&&(yield{x:s,y:l})}}},d=(e,t)=>{for(let n of u(e,t))return e.labelPosition=n,!0;return!1},y=(e,t)=>{let n=a.filter(n=>n!==e&&n!==t);for(let i of[!1,!0]){let r=e=>{let t=[];for(let r of u(e,n,i))if(t.push(r),64===t.length)break;return t},a=r(e),l=r(t);for(let n of a)for(let i of l)if(!s(o({...e,labelPosition:n}),o({...t,labelPosition:i})))return e.labelPosition=n,t.labelPosition=i,!0}return!1},f=()=>{if(C())return;let t=e=>e>r?(r=0,!1):(r-=e,!0);if(!t(8))return;let i=(n,i)=>{for(let r of e.edges){if(!t(1))break;if(r!==n&&"invisible"!==r.style)for(let e=1;e<r.points.length;e++){if(!t(1))return!1;if(q(r.points[e-1],r.points[e],i))return!0}}return!1},s;for(let h of a){if(!t(64+(h.label?.length??0)*12+2*e.edges.length))return;let d=o(h);if(!d||!l(d)&&!i(h,d))continue;if(!t(h.points.length+2))return;if(h.curve||(n.edgeBendRadius??0)!==0||h.points.some((e,t)=>t>0&&e.x!==h.points[t-1].x&&e.y!==h.points[t-1].y))continue;if(!(s??=function(e,t,n,i,r){if(!r(16))return;let a=[],o=[],s=new Map,l=new Map,h=e=>!!r(32)&&("compound"===e.kind?r(e.children.length+1)&&e.children.every(h):"path"===e.kind?r(6*e.d.length+16):"polygon"===e.kind||"polyline"===e.kind?r(772*e.points.length+4):r(3104));for(let t of e){let e=t.inlineStyle?.["stroke-width"]??String(i.nodeLineWidth??x.innerBox);if(!r(512+6*e.length+t.id.length))return;let n=D(t,{fill:t.inlineStyle?.fill??i.nodeFillColor??"var(--_node-fill)",stroke:t.inlineStyle?.stroke??i.nodeBorderColor??"var(--_node-stroke)",strokeWidth:P("stroke-width",e)},i.cornerRadius);if(!h(n.geometry))return;let o=M({kind:"shape",id:t.id,role:"node",geometry:tL(n.geometry),paint:n.paint,...n.childPaints?{childPaints:n.childPaints}:{}});if(!tN(o))return;a.push(o)}let u=(e,t=0)=>{if(t>64||!r(e.length+1))return!1;for(let n of e){let e=n.concurrencyRegion?0:n.headerHeight??n.height,a=n.inlineStyle?.["stroke-width"]??String(i.groupLineWidth??x.innerBox);if(!r(3072+6*a.length+88)||!Number.isFinite(e)||e<0||void 0!==i.groupCornerRadius&&!(Number.isFinite(i.groupCornerRadius)&&i.groupCornerRadius>=0))return!1;if(e>0){let t=tL({kind:"rect",x:n.x,y:n.y,width:n.width,height:e}),r={fill:"black",stroke:n.inlineStyle?.stroke??"black",strokeWidth:P("stroke-width",a)},s;if(0===i.groupCornerRadius)s=M({kind:"shape",id:n.id,role:"group-header",geometry:t,paint:r});else{let e=b(r,!0),i=M({kind:"shape",id:n.id,role:"group-header",geometry:t,paint:{fill:"black",stroke:"none"}});if(void 0===e||!tN(i))return!1;s=g(i,e)}if(!tN(s))return!1;o.push(s)}if(!u(n.children,t+1))return!1}return!0};if(!u(n))return;for(let e of t){if(e.label&&!e.labelPosition)return;let t=e.inlineStyle?.["stroke-width"]??"",n=e.curve||(i.edgeBendRadius??0)>0?18:4,a=e.inlineStyle?.stroke??i.edgeStrokeColor??"";if(!r(2048+e.points.length*(384*n+32)+8*t.length+(e.label?.length??0)*12+(a.length+e.source.length+e.target.length+(e.id?.length??0))*8))return;let o=tI(e,i,()=>r(1));if(!o)return;s.set(e,o)}let d=(e,t)=>{if(!r(4))return;let n=l.get(e);if(n&&n.x===t.x&&n.y===t.y)return n.box;if(!r(64+(e.label?.length??0)*12))return;let a=V({...e,labelPosition:t},i);if(!a)return;let o=Y(e,i.lineWidth??1),s={x0:a.x-o,y0:a.y-o,x1:a.x+a.w+o,y1:a.y+a.h+o};if(!(!tN(s)||!r(6)))return l.set(e,{x:t.x,y:t.y,box:s}),s};return{clear:(e,n,i,l,h)=>{let u=d(e,n);if(!u)return!1;for(let e of a)if(!r(1)||tE(u,e))return!1;for(let e of o)if(!r(1)||tE(u,e))return!1;let x=!0;for(let n of t){if(!r(1))return!1;let t=s.get(n);for(let e of t.markers)if(!r(1)||!tN(e.bounds)||tE(u,e.bounds))return!1;if(n===e)continue;for(let e of t.shafts)if(!r(1)||tE(u,e))return!1;if(n===h)continue;let a=i.get(n)??n.labelPosition;if(!n.label||!a)continue;let o=d(n,a);if(!o)return!1;if(tE(u,o)){if(l&&!l.has(n)){if(!r(1))return!1;l.add(n)}x=!1}}return x},label:d}}(e.nodes,e.edges,e.groups,n,t))||!t(8))return;let y=new Set,c=new Map,f=(e,i,a,o)=>{if(!t(8))return;let l=[],h=new Map,d=i=>{if(e.source===e.target){if(!t(e.points.length+8))return!1;let r=V({...e,labelPosition:i},n);if(!r||e.points.some((t,n)=>{var i;return n>0&&(.01>=Math.abs((i=e.points[n-1]).x-t.x)?i.x>r.x+.01&&i.x<r.x+r.w-.01&&Math.min(Math.max(i.y,t.y),r.y+r.h)-Math.max(Math.min(i.y,t.y),r.y)>.01:.01>=Math.abs(i.y-t.y)&&i.y>r.y+.01&&i.y<r.y+r.h-.01&&Math.min(Math.max(i.x,t.x),r.x+r.w)-Math.max(Math.min(i.x,t.x),r.x)>.01)}))return!1}return s.clear(e,i,h,o,a)};for(let n of u(e,[],i,{clear:d,pay:t})){if(!t(1))return;if(l.push(n),64===l.length)break}return r>0?l:void 0},p=!1,m=f(h,!0,void 0,y);if(!m)return;for(let e of m){if(!t(3))return;if(c.set(h,e),s.clear(h,e,c)){h.labelPosition=e,p=!0;break}}if(!p)for(let e of a){if(!t(1))return;if(y.has(e)){if(!t(e.points.length+6))return;if(!(e.curve||e.points.some((t,n)=>n>0&&t.x!==e.points[n-1].x&&t.y!==e.points[n-1].y))){for(let n of[!1,!0]){let i=f(h,n,e),r=f(e,n,h);if(!i||!r)return;e:for(let n of i)for(let i of r){if(!t(16))return;let r=new Map([[h,n],[e,i]]);if(!(!s.clear(h,n,r)||!s.clear(e,i,r))){h.labelPosition=n,e.labelPosition=i,p=!0;break e}}if(p)break}if(p)break}}}}};for(let e=0;e<3;e++){if(i?.preserveRouteClearance&&r<=0)return;let t=0;for(let e of a){let n=o(e);n&&l(n)&&(t++,d(e,a.filter(t=>t!==e)))}for(let e=0;e<a.length;e++)for(let n=e+1;n<a.length;n++){let i=a[e],r=a[n],l=o(i),h=o(r);!l||!h||!s(l,h)||(t++,d(r,a.filter(e=>e!==r))||d(i,a.filter(e=>e!==i))||y(i,r))}if(0===t){f();break}2===e&&f()}}function tU(e,t,n){for(let i=0;i<e.edges.length&&0!==tz(e,t,n,!0).length;i++);return function(e,t,n){let i=eK(e);for(let e of t){let r=e.routeCertificate,a=!1,o=e.points;for(let t of[!0,!1]){let[n,r,s]=(t?[...o].reverse():o).slice(-3),l=i.get(t?e.source:e.target);if(!l||"rectangle"!==l.shape||void 0!==l.semanticShape&&"rect"!==l.semanticShape||!n||!r||!s||Math.hypot(s.x-r.x,s.y-r.y)>=1)continue;let h=(.01>Math.abs(r.x-l.x)||.01>Math.abs(r.x-l.x-l.width))&&.01>Math.abs(s.x-r.x)&&.01>Math.abs(n.y-r.y)&&r.y>l.y&&r.y<l.y+l.height&&s.y>l.y&&s.y<l.y+l.height&&(n.x-r.x)*(r.x-l.x-l.width/2)>0,u=(.01>Math.abs(r.y-l.y)||.01>Math.abs(r.y-l.y-l.height))&&.01>Math.abs(s.y-r.y)&&.01>Math.abs(n.x-r.x)&&r.x>l.x&&r.x<l.x+l.width&&s.x>l.x&&s.x<l.x+l.width&&(n.y-r.y)*(r.y-l.y-l.height/2)>0;(h||u)&&(o=t?o.slice(1):o.slice(0,-1),a=!0)}a&&ta(e,o,t,n)&&(e.points=o,tA(e,r,i.get(e.source),i.get(e.target)))}}(e.nodes,e.edges,n),e.edges.flatMap(e=>e.routeCertificate?[e.routeCertificate]:[])}function tJ(){return{total:0,labelLabel:0,labelNode:0,labelEdge:0}}function tD(e,t){return Math.min(e.x+e.w,t.x+t.w)-Math.max(e.x,t.x)>.5&&Math.min(e.y+e.h,t.y+t.h)-Math.max(e.y,t.y)>.5}function tX(e,t,n){let i=e.edges.flatMap((e,n)=>{if(!e.label)return[];let i=V(e.labelPosition?e:{...e,labelPosition:a(e.points)},t);return i?[{edgeIndex:n,rect:i}]:[]});return 0===i.length?tJ():function(e,t,n,i){let r=tJ(),a=i?e.filter(e=>i.has(e.edgeIndex)):e,o=i?[...i].filter(e=>void 0!==n[e]):[];for(let s=0;s<e.length;s++){let l=e[s],h=!i||i.has(l.edgeIndex),u=h?e:a;for(let e=h?s+1:0;e<u.length;e++){let t=u[e];!h&&t.edgeIndex<=l.edgeIndex||tD(l.rect,t.rect)&&r.labelLabel++}if(h)for(let e of t)tD(l.rect,e)&&r.labelNode++;for(let e=0;e<(h?n.length:o.length);e++){let t=h?e:o[e],i=n[t];if(!(t===l.edgeIndex||i.hidden)){for(let e=1;e<i.points.length;e++)if(q(i.points[e-1],i.points[e],l.rect)){r.labelEdge++;break}}}}return r.total=r.labelLabel+r.labelNode+r.labelEdge,r}(i,e.nodes.map(e=>({x:e.x,y:e.y,w:e.width,h:e.height})),e.edges.map(e=>({points:e.points,hidden:"invisible"===e.style})),n)}var tG={edgeThroughNode:"primary",nodeOverlaps:"primary",diagonalSegments:"secondary",unexplainedBends:"secondary",hitches:"secondary",offOutlineEndpoints:"cosmetic",endpointApproaches:"primary",labelOffRoute:"cosmetic"},tK={primary:0,secondary:1,cosmetic:2};function t1(e,t){let n=e=>.5>=Math.abs(e.x-t.x)&&.5>=Math.abs(e.y-t.y);return!!(Object.values(eN(e)).some(n)||"diamond"===e.shape&&Object.values(eE(e)).some(n))}function t0(e,t,n=1.5){let i=ew(e,t,n);return"none"===i.policy||i.onBoundary}function t2(e,t,n){let i=n.x+n.width/2,r=n.y+n.height/2,a=n.width/2,o=n.height/2,s=Math.min(e.x,t.x),l=Math.max(e.x,t.x),h=Math.min(e.y,t.y),u=Math.max(e.y,t.y);if("cylinder"===n.shape&&(void 0===n.semanticShape||"cyl"===n.semanticShape)&&n.height>14&&l>n.x&&s<n.x+n.width&&u>n.y+7&&h<n.y+n.height-7)return!0;let d=.5*("rectangle"!==n.shape&&"subroutine"!==n.shape||void 0!==n.semanticShape&&"rect"!==n.semanticShape&&"fr-rect"!==n.semanticShape&&"lin-rect"!==n.semanticShape&&"div-rect"!==n.semanticShape&&"win-pane"!==n.semanticShape);if(!(l>n.x+d&&s<n.x+n.width-d&&u>n.y+d&&h<n.y+n.height-d))return!1;switch(n.shape){case"ellipse":case"circle":case"doublecircle":case"state-start":case"state-end":return t3({x:0,y:0},{x:(e.x-i)/a,y:(e.y-r)/o},{x:(t.x-i)/a,y:(t.y-r)/o})<1-2.5/Math.min(a,o);case"stadium":return t5(e,t,{x:i-(a-o),y:r},{x:i+(a-o),y:r})<o-2.5;case"diamond":case"hexagon":case"trapezoid":case"trapezoid-alt":case"lean-r":case"lean-l":case"asymmetric":{let s,l="diamond"===n.shape?[{x:i,y:n.y},{x:n.x+n.width,y:r},{x:i,y:n.y+n.height},{x:n.x,y:r}]:"hexagon"===n.shape?(s=n.height/4,[{x:n.x+s,y:n.y},{x:n.x+n.width-s,y:n.y},{x:n.x+n.width,y:r},{x:n.x+n.width-s,y:n.y+n.height},{x:n.x+s,y:n.y+n.height},{x:n.x,y:r}]):function(e){let{x:t,y:n,width:i,height:r}=e,a=.15*i;switch(e.shape){case"trapezoid":return[{x:t+a,y:n},{x:t+i-a,y:n},{x:t+i,y:n+r},{x:t,y:n+r}];case"trapezoid-alt":return[{x:t,y:n},{x:t+i,y:n},{x:t+i-a,y:n+r},{x:t+a,y:n+r}];case"lean-r":return[{x:t+a,y:n},{x:t+i,y:n},{x:t+i-a,y:n+r},{x:t,y:n+r}];case"lean-l":return[{x:t,y:n},{x:t+i-a,y:n},{x:t+i,y:n+r},{x:t+a,y:n+r}];default:return[{x:t+12,y:n},{x:t+i,y:n},{x:t+i,y:n+r},{x:t+12,y:n+r},{x:t,y:n+r/2}]}}(n),h=Math.max(0,1-2.5/Math.min(a,o));return function(e,t,n){let i=e=>{for(let t=0;t<n.length;t++){let i=n[t],r=n[(t+1)%n.length];if((r.x-i.x)*(e.y-i.y)-(r.y-i.y)*(e.x-i.x)<-.5)return!1}return!0},r={x:(e.x+t.x)/2,y:(e.y+t.y)/2};if(i(e)||i(t)||i(r))return!0;for(let i=0;i<n.length;i++)if(t8(e,t,n[i],n[(i+1)%n.length]))return!0;return!1}(e,t,l.map(e=>({x:i+(e.x-i)*h,y:r+(e.y-r)*h})))}default:return!0}}function t5(e,t,n,i){return t8(e,t,n,i)?0:Math.min(t3(e,n,i),t3(t,n,i),t3(n,e,t),t3(i,e,t))}function t8(e,t,n,i){let r=(t.x-e.x)*(i.y-n.y)-(t.y-e.y)*(i.x-n.x);if(1e-9>Math.abs(r))return!1;let a=((n.x-e.x)*(i.y-n.y)-(n.y-e.y)*(i.x-n.x))/r,o=((n.x-e.x)*(t.y-e.y)-(n.y-e.y)*(t.x-e.x))/r;return a>.001&&a<.999&&o>.001&&o<.999}function t6(e,t){return n(e.map(e=>({points:e.points,visible:"invisible"!==e.style})),t)}function t4(e,t){let n=new Map;e.forEach((e,t)=>{if("invisible"===e.style||e.source===e.target)return;let i=JSON.stringify([e.source,e.target]),r=n.get(i)??[];r.push({edge:e,index:t}),n.set(i,r)});let i=(e,t)=>{for(let n=1;n<e.points.length;n++)for(let i=1;i<t.points.length;i++){let r=e.points[n-1],a=e.points[n],o=t.points[i-1],s=t.points[i];if(.01>=Math.abs(r.x-a.x)&&.01>=Math.abs(o.x-s.x)&&.5>=Math.abs(r.x-o.x)&&Math.min(Math.max(r.y,a.y),Math.max(o.y,s.y))-Math.max(Math.min(r.y,a.y),Math.min(o.y,s.y))>1||.01>=Math.abs(r.y-a.y)&&.01>=Math.abs(o.y-s.y)&&.5>=Math.abs(r.y-o.y)&&Math.min(Math.max(r.x,a.x),Math.max(o.x,s.x))-Math.max(Math.min(r.x,a.x),Math.min(o.x,s.x))>1)return!0}return!1},r=0;for(let e of n.values())for(let n=0;n<e.length;n++)for(let a=n+1;a<e.length;a++){let o=e[n],s=e[a];(!t||t.has(o.index)||t.has(s.index))&&i(o.edge,s.edge)&&r++}return r}function t9(e,t=!1){let n=new Map(e.nodes.map(e=>[e.id,e])),i=0,r=0;for(let a of e.edges)if(!(t&&"invisible"===a.style))for(let[e,t]of[[a.source,a.points[0]],[a.target,a.points.at(-1)]]){let a=n.get(e);a&&(i++,t&&t1(a,t)&&r++)}return 0===i?1:r/i}function t3(e,t,n){let i=n.x-t.x,r=n.y-t.y,a=i*i+r*r;if(0===a)return Math.hypot(e.x-t.x,e.y-t.y);let o=Math.max(0,Math.min(1,((e.x-t.x)*i+(e.y-t.y)*r)/a));return Math.hypot(e.x-(t.x+o*i),e.y-(t.y+o*r))}function t7(e,t){return"LR"===t||"RL"===t?e.y+e.height/2:e.x+e.width/2}function ne(e,t){return"LR"===t||"RL"===t?e.x:e.y}function nt(e,t){return"LR"===t||"RL"===t?e.x+e.width:e.y+e.height}function nn(e,t){let n=t=>t.some(t=>e.x>=t.x-.5&&e.y>=t.y-.5&&e.x+e.width<=t.x+t.width+.5&&e.y+e.height<=t.y+t.height+.5||n(t.children));return n(t)}function ni(e,t){let n=r(t.edges),i=new Map(e.nodes.map(e=>[e.id,e])),a=new Map,o=new Map;for(let n of e.edges){var s;let e=i.get(n.source),r=i.get(n.target);e&&r&&("LR"===(s=t.direction)?ne(r,s)>nt(e,s):"RL"===s||"BT"===s?nt(r,s)<ne(e,s):ne(r,s)>nt(e,s))&&(a.has(n.source)||a.set(n.source,[]),a.get(n.source).push(r),o.has(n.target)||o.set(n.target,[]),o.get(n.target).push(e))}let l=0,h=(i,r,a)=>{if(!i||r.length<2||r.length>6||!function(e,t,n=1){if(e.length<2)return!1;let i=e.map(e=>ne(e,t));return Math.max(...i)-Math.min(...i)<=n}(r,t.direction,28)||!eW.has(i.shape)||nn(i,e.groups)||!r.every(t=>("in"===a?eW.has(t.shape):"rectangle"===t.shape)&&!nn(t,e.groups))||new Set(r.map(e=>e.id)).size!==r.length)return;for(let e=0;e<r.length;e++)for(let t=0;t<r.length;t++)if(e!==t&&n(r[e].id,r[t].id))return;let o=r.reduce((e,n)=>e+t7(n,t.direction),0)/r.length;l=Math.max(l,Math.abs(t7(i,t.direction)-o))};for(let[e,t]of a)h(i.get(e),t,"out");for(let[e,t]of o)h(i.get(e),t,"in");return l}function nr(e,t,n=c({})){return na(e,t,n,!0)}function na(e,t,n,i){let r=[],a=new Map(t.nodes.map(e=>[e.id,e])),o=0,s=0,l=0,h=0,u=0,d=0,x=0,y=0,f=0;for(let e of t.edges){let t=`${e.source}->${e.target}`,c=Math.max(0,e.points.length-2);if("invisible"!==e.style){let n=eB(e,a.get(e.source),a.get(e.target));n&&(s+=n,r.push({metric:"endpointApproaches",detail:`${t}: ${n} inward or tangent exact endpoint shaft(s)`}))}let g=tR(e);"invisible"===e.style||g||(d+=c,x=Math.max(x,c)),c>0&&e.routeCertificate?.invariant==="straight"&&(h+=c,r.push({metric:"unexplainedBends",detail:`${t} certified straight with ${c} bends`}));for(let n=1;n<e.points.length;n++){let i=e.points[n-1],a=e.points[n];Math.abs(i.x-a.x)>.01&&Math.abs(i.y-a.y)>.01&&(l++,r.push({metric:"diagonalSegments",detail:`${t} segment ${n}`}))}for(let[n,i,s]of[[e.source,e.points[0],"source"],[e.target,e.points[e.points.length-1],"target"]]){let e=a.get(n);!e||i&&t0(e,i)||(o++,r.push({metric:"offOutlineEndpoints",detail:i?`${t} ${s} on ${n}(${e.shape}) at (${i.x.toFixed(1)},${i.y.toFixed(1)})`:`${t} missing ${s} endpoint on ${n}`}))}let p=a.get(e.source),m=a.get(e.target),b=(e,t)=>!!e&&!!t&&t1(e,t);if((b(p,e.points[0])||b(m,e.points[e.points.length-1]))&&y++,e.label&&e.labelPosition&&e.points.length>=2){let a=e.labelBlock??E(e.label,n,"edge"),o=(a.height+16)/2+4,s=e.source===e.target,l=1/0;for(let t=1;t<e.points.length;t++)l=Math.min(l,s?function(e,t,n,i,r,a){let o=r=>r.x>=e-n&&r.x<=e+n&&r.y>=t-i&&r.y<=t+i;if(o(r)||o(a))return 0;let s=[{x:e-n,y:t-i},{x:e+n,y:t-i},{x:e+n,y:t+i},{x:e-n,y:t+i}],l=1/0;for(let e=0;e<4;e++)l=Math.min(l,t5(s[e],s[(e+1)%4],r,a));return l}(e.labelPosition.x,e.labelPosition.y,(a.width+16)/2,(a.height+16)/2,e.points[t-1],e.points[t]):t3(e.labelPosition,e.points[t-1],e.points[t]));l>o&&(u++,r.push({metric:"labelOffRoute",detail:`${t} label ${l.toFixed(1)}px from its route (allowed ${o.toFixed(1)})`})),i&&(f=Math.max(f,e.label&&e.labelPosition&&!(e.points.length<2)?Math.abs(function(e,t){let n=0,i=[];for(let e=1;e<t.length;e++){let r=Math.hypot(t[e].x-t[e-1].x,t[e].y-t[e-1].y);i.push(r),n+=r}let r=1/0,a=0,o=0;for(let n=1;n<t.length;n++){let s=t[n-1],l=t[n],h=l.x-s.x,u=l.y-s.y,d=h*h+u*u,x=d?((e.x-s.x)*h+(e.y-s.y)*u)/d:0;x=Math.max(0,Math.min(1,x));let y=s.x+x*h,c=s.y+x*u,f=Math.hypot(e.x-y,e.y-c);f<r&&(r=f,a=o+x*i[n-1]),o+=i[n-1]}return n?a/n:.5}(e.labelPosition,e.points)-.5):0))}}let g=0;for(let e of t.edges)for(let n of t.nodes)if(n.id!==e.source&&n.id!==e.target){for(let t=1;t<e.points.length;t++)if(t2(e.points[t-1],e.points[t],n)){g++,r.push({metric:"edgeThroughNode",detail:`${e.source}->${e.target} segment ${t} through ${n.id}`});break}}let p=i?t6(t.edges):0,m=0;for(let e=0;e<t.nodes.length;e++)for(let n=e+1;n<t.nodes.length;n++){let i=t.nodes[e],a=t.nodes[n],o=Math.min(i.x+i.width,a.x+a.width)-Math.max(i.x,a.x),s=Math.min(i.y+i.height,a.y+a.height)-Math.max(i.y,a.y);o>.5&&s>.5&&(m++,r.push({metric:"nodeOverlaps",detail:`${i.id} overlaps ${a.id}`}))}let b=function(e,t,n=c({})){return tz(e,t,n,!1)}(t,e,n);for(let e of b)r.push({metric:"hitches",detail:`${e.edge} deviates ${e.deviationPx}px with a clear lane`});return{metrics:{edges:t.edges.length,offOutlineEndpoints:o,endpointApproaches:s,diagonalSegments:l,unexplainedBends:h,hitches:b.length,nodeOverlaps:m,labelOffRoute:u,edgeThroughNode:g,labelConflicts:i?tX(t,n).total:0,edgeCrossings:p,totalBends:d,maxBendsPerEdge:x,portEndpointRate:t9(t),portAnchoredEdgeRate:0===t.edges.length?1:y/t.edges.length,peerBarycenterDelta:i?ni(t,e):0,worstLabelOffset:f},violations:r.map(e=>({...e,severity:tG[e.metric]??"secondary"})).sort((e,t)=>tK[e.severity]-tK[t.severity])}}function no(e,t,n,i,r=new Set){let a={};for(let o of n)switch(o){case"hard":a.hard=nl(na(e,t,i,!1)).length;break;case"crossings":a.crossings=t6(t.edges);break;case"portRate":a.portRate=t9(t,!0);break;case"symErr":a.symErr=ni(t,e);break;case"parallelOverlaps":a.parallelOverlaps=t4(t.edges);break;case"opposingOverlaps":a.opposingOverlaps=W(t.edges);break;case"endpointApproaches":{let e=new Map(t.nodes.map(e=>[e.id,e]));a.endpointApproaches=t.edges.reduce((t,n)=>t+("invisible"===n.style?0:eB(n,e.get(n.source),e.get(n.target))),0);break}case"bends":a.bends=t.edges.reduce((e,t)=>e+("invisible"===t.style||(t.routeCertificate?tR(t):r.has(t)&&e6(t))?0:Math.max(0,t.points.length-2)),0);break;case"straight":a.straight=t.edges.filter(e=>"invisible"!==e.style&&2===e.points.length).length}return a}var ns=["offOutlineEndpoints","endpointApproaches","diagonalSegments","unexplainedBends","hitches","nodeOverlaps","labelOffRoute","edgeThroughNode"];function nl(e){let t=new Set(ns);return e.violations.filter(e=>t.has(e.metric))}function nh(e,t,n){if(e.source===e.target)return!1;let i=t.get(e.source),r=t.get(e.target);if(!i||!r)return!1;let a=o(n),l=s(i),h=s(r);return(a.isHorizontal?h.x-l.x:h.y-l.y)*a.sign>8}function nu(e,t,n=18){if(e.length<2)return!1;let i=e.map(e=>l(e,t));return Math.max(...i)-Math.min(...i)<=n}function nd(e,t){let n=o(t),i=[];for(let n of[...e].sort((e,n)=>l(e,t)-l(n,t)||h(e,t)-h(n,t))){let e=l(n,t),r=i.find(n=>18>=Math.abs(l(n[0],t)-e));r||(r=[],i.push(r)),r.push(n)}for(let e of i){let i=[...e].sort((e,n)=>h(e,t)-h(n,t)),r=h(i[0],t);for(let e of i){let i=h(e,t);if(i<r){let t=r-i;n.isHorizontal?e.y+=t:e.x+=t}r=h(e,t)+u(e,t)+24}}}function nx(e,t){let n=t=>t.some(t=>e.x>=t.x-.5&&e.y>=t.y-.5&&e.x+e.width<=t.x+t.width+.5&&e.y+e.height<=t.y+t.height+.5||n(t.children));return n(t)}function ny(e,t=[]){for(let n of e)t.push(n),ny(n.children,t);return t}function nc(e,t,n,i){if(i<=0)return;let r=o(n),a=new Set;for(let n of ny(e))a.has(n)||!t.some(e=>e.x>=n.x-.5&&e.y>=n.y-.5&&e.x+e.width<=n.x+n.width+.5&&e.y+e.height<=n.y+n.height+.5)||(a.add(n),r.isHorizontal?(r.sign>0||(n.x-=i),n.width+=i):(r.sign>0||(n.y-=i),n.height+=i))}function nf(e,t,n,i){if("diamond"===e.shape){let r=(2===i?{LR:["NE","SE"],RL:["NW","SW"],BT:["NW","NE"],TD:["SW","SE"],TB:["SW","SE"]}:3===i?{LR:["NE","E","SE"],RL:["NW","W","SW"],BT:["NW","N","NE"],TD:["SW","S","SE"],TB:["SW","S","SE"]}:{})[t]?.[n];if(r)return"diamond"===e.shape&&("NE"===r||"SE"===r||"SW"===r||"NW"===r)?eE(e)[r]:eN(e)[r]}let r=o(t),a=(n+1)/(i+1);return r.isHorizontal?{x:"E"===r.sourceSide?e.x+e.width:e.x,y:e.y+e.height*a}:{x:e.x+e.width*a,y:"S"===r.sourceSide?e.y+e.height:e.y}}function ng(e,t){return eN(e)[o(t).targetSide]}function np(e,t){return Array.from({length:e},(n,i)=>(i-(e-1)/2)*t)}function nm(e,t,n,i){return o(n).isHorizontal?ej([e,{x:i,y:e.y},{x:i,y:t.y},t]):ej([e,{x:e.x,y:i},{x:t.x,y:i},t])}function nb(e,t,n,i){for(let r=1;r<e.length;r++)if(!function(e,t,n,i,r=1,a){let o=Math.min(e.x,t.x),s=Math.max(e.x,t.x),l=Math.min(e.y,t.y),h=Math.max(e.y,t.y);for(let u of n){if(a?.(1),i.has(u.id))continue;let n=u.x-r,d=u.x+u.width+r,x=u.y-r,y=u.y+u.height+r;if(.01>Math.abs(e.x-t.x)){if(e.x>=n&&e.x<=d&&l<y&&h>x)return!1}else if(.01>Math.abs(e.y-t.y)&&e.y>=x&&e.y<=y&&o<d&&s>n)return!1}return!0}(e[r-1],e[r],t,n,1,i))return!1;return!0}function nM(e,t,n,i){if(0===e.points.length)return;let r=o(t),a=n?e.points.length-1:0,s=n?-1:1,l=e.points[a][r.cross],h=1/0,u=-1/0;for(let t=a;t>=0&&t<e.points.length&&!(Math.abs(e.points[t][r.cross]-l)>.5);t+=s)h=Math.min(h,e.points[t][r.main]),u=Math.max(u,e.points[t][r.main]),e.points[t][r.cross]+=i;e.labelPosition&&12>=Math.abs(e.labelPosition[r.cross]-l)&&e.labelPosition[r.main]>=h-.5&&e.labelPosition[r.main]<=u+.5&&(e.labelPosition[r.cross]+=i)}function n$(e,t,n,i,r){let a=o(i);for(let n of t)e.has(n.id)&&(n[a.cross]+=r);for(let t of n){let n=e.has(t.source),o=e.has(t.target);if(n&&o){for(let e of t.points)e[a.cross]+=r;t.labelPosition&&(t.labelPosition[a.cross]+=r)}else o?nM(t,i,!0,r):n&&nM(t,i,!1,r)}}function nw(e,t,n,i,r,a){let s=o(i),l=t.filter(t=>e.has(t.id)),h=new Map(l.map(e=>[e.id,{x:s.isHorizontal?e.x:e.x+r,y:s.isHorizontal?e.y+r:e.y,width:e.width,height:e.height}]));for(let e of h.values())if(e.x<0||e.y<0)return!1;for(let n=0;n<l.length;n++){let i=h.get(l[n].id);for(let e=n+1;e<l.length;e++)if(d(i,h.get(l[e].id),8))return!1;for(let n of t)if(!e.has(n.id)&&d(i,n,8))return!1}for(let t of l){let i=h.get(t.id);for(let t of n){if(e.has(t.source)||e.has(t.target))continue;for(let e=1;e<t.points.length;e++){let n=t.points[e-1],r=t.points[e];if(Math.max(n.x,r.x)>i.x+.5&&Math.min(n.x,r.x)<i.x+i.width-.5&&Math.max(n.y,r.y)>i.y+.5&&Math.min(n.y,r.y)<i.y+i.height-.5)return!1}let n=V(t,a);if(n&&d(i,{x:n.x,y:n.y,width:n.w,height:n.h},8))return!1}}return!0}function nk(e,t,n){let i=new Map(e.map(e=>[e.id,e])),r=o(n.direction);for(let o of t){if(o.source===o.target||o.points.length<2)continue;let t=i.get(o.source),s=i.get(o.target);if(!t||!s)continue;let l=!t0(t,o.points[0]),h=!t0(s,o.points[o.points.length-1]);if(!l&&!h)continue;let u=eN(t)[r.sourceSide],d=eN(s)[r.targetSide],x=nm(u,d,n.direction,(u[r.main]+d[r.main])/2);if(!nb(x,e,new Set([o.source,o.target])))continue;let y=o.routeCertificate;o.points=x,tA(o,y,t,s),o.label&&(o.labelPosition=a(x))}}function nv(e,t,n,i,r=[]){let s=o(n.direction);i?.(e.length);let l=new Map(e.map(e=>[e.id,e])),d=(t,n)=>{for(let r of e)if(i?.(1),!n.has(r.id)){for(let e=1;e<t.length;e++)if(i?.(1),t2(t[e-1],t[e],r))return!0}return!1},x=e=>{let t=n=>{i?.(1);let r=n.concurrencyRegion?0:n.headerHeight;if(0!==n.width&&(void 0===r||!Number.isFinite(r)||r<0))return!1;if(void 0!==r&&r>0&&n.width>0)for(let t=1;t<e.length;t++){i?.(1);let a=e[t-1],o=e[t];if(Math.max(a.x,o.x)>n.x&&Math.min(a.x,o.x)<n.x+n.width&&Math.max(a.y,o.y)>n.y&&Math.min(a.y,o.y)<n.y+r)return!1}for(let e of n.children)if(!t(e))return!1;return!0};for(let e of r)if(!t(e))return!1;return!0},y=(t,n)=>{for(let r=1;r<=t.length-3;r++){let a=t[r],o=t[r+1],s=t[r-1],l=t[r+2],h=.5>Math.abs(a.x-o.x);if(h===.5>Math.abs(a.y-o.y)||!d([a,o],n))continue;let u=h?"x":"y",y=h?"y":"x";if(Math.abs(s[y]-a[y])>.5||Math.abs(l[y]-o[y])>.5)continue;let c=a[u],f=[];for(let t of e)i?.(1),n.has(t.id)||f.push(t[u]-10,t[u]+("x"===u?t.width:t.height)+10);for(let a of(f.sort((e,t)=>Math.abs(e-c)-Math.abs(t-c)),f)){let o=t.map(e=>({...e}));if(o[r][u]=a,o[r+1][u]=a,!d(o,n)&&nb(o,e,n,i)&&x(o))return ej(o)}}return null},c=(t,r)=>{let a=t[0],o=t[t.length-1],l=Math.min(a[s.main],o[s.main]),y=Math.max(a[s.main],o[s.main]),c=1/0,f=-1/0,g=[];for(let t of e){if(i?.(1),r.has(t.id))continue;let e=t[s.main];if(t[s.main]+("x"===s.main?t.width:t.height)<=l||e>=y)continue;let a=h(t,n.direction),o=a+u(t,n.direction);c=Math.min(c,a),f=Math.max(f,o),g.push(a-10,o+10)}if(!Number.isFinite(c))return null;g.push(c-10,f+10);let p=(e,t)=>"x"===s.main?{x:e,y:t}:{x:t,y:e},m=Math.sign(o[s.main]-a[s.main])||1,b=Math.min(12,Math.abs(o[s.main]-a[s.main])/3),M=a[s.main]+m*b,$=o[s.main]-m*b,w=(a[s.cross]+o[s.cross])/2;for(let t of[...new Set(g)].sort((e,t)=>Math.abs(e-w)-Math.abs(t-w))){let n=ej([a,p(M,a[s.cross]),p(M,t),p($,t),p($,o[s.cross]),o]);if(!d(n,r)&&nb(n,e,r,i)&&x(n))return n}return null},f=e=>{for(let t=1;t<e.length;t++){i?.(1);let n=e[t-1],r=e[t];if(!Number.isFinite(n.x)||!Number.isFinite(n.y)||!Number.isFinite(r.x)||!Number.isFinite(r.y)||n.x!==r.x&&n.y!==r.y||n.x===r.x&&n.y===r.y)return!1;let a=n.x===r.x;for(let o=1;o<t;o++){i?.(1);let s=e[o-1],l=e[o];if(a===(s.x===l.x)){let e=a?"y":"x",i=a?"x":"y";if(n[i]!==s[i])continue;let h=Math.max(Math.min(n[e],r[e]),Math.min(s[e],l[e])),u=Math.min(Math.max(n[e],r[e]),Math.max(s[e],l[e]));if(o===t-1?h<u:h<=u)return!1}else if(o!==t-1){let e=a?n.x:s.x,t=a?s.y:n.y;if(e>=Math.min(n.x,r.x)&&e<=Math.max(n.x,r.x)&&t>=Math.min(n.y,r.y)&&t<=Math.max(n.y,r.y)&&e>=Math.min(s.x,l.x)&&e<=Math.max(s.x,l.x)&&t>=Math.min(s.y,l.y)&&t<=Math.max(s.y,l.y))return!1}}}return!0};i?.(1);let g=new Set,p=(t,n)=>{if(t.length<3)return null;let r=t.at(-1),a=t.at(-2),o=t.at(-3),s=a.y===r.y&&a.x!==r.x?"x":a.x===r.x&&a.y!==r.y?"y":void 0;if(!s)return null;let l="x"===s?"y":"x";if(o[s]!==a[s]||o[l]===a[l]||!d([a,r],n))return null;let h=[];for(let t of e)i?.(1),n.has(t.id)||!t2(a,r,t)||(i?.(2),h.push(t[l]-10,t[l]+("x"===l?t.width:t.height)+10));h.sort((e,t)=>(i?.(1),Math.abs(e-a[l])-Math.abs(t-a[l])));let u=r[s]+Math.sign(a[s]-r[s])*Math.min(10,Math.abs(a[s]-r[s])/2);for(let o of h){i?.(2*t.length+12);let h={...a,[l]:o},y={...r,[s]:u,[l]:o},c={...r,[s]:u},p=ej([...t.slice(0,-2),h,y,c,r]),m=(e,t,n)=>t.x===e.x&&n.x===e.x&&Math.sign(t.y-e.y)===Math.sign(n.y-e.y)||t.y===e.y&&n.y===e.y&&Math.sign(t.x-e.x)===Math.sign(n.x-e.x);if(!(!m(t[0],t[1],p[1])||!m(r,a,p.at(-2)))&&!d(p,g)&&nb(p,e,n,i)&&x(p)&&f(p))return p}return null};for(let e of t){if(i?.(1),e.source===e.target||e.points.length<2)continue;let t=l.get(e.source),n=l.get(e.target);if(!t||!n)continue;let r=new Set([e.source,e.target]);if(!d(e.points,r)||!t0(t,e.points[0])||!t0(n,e.points[e.points.length-1]))continue;let o=y(e.points,r)??c(e.points,r)??p(e.points,r);if(o||(i?.(e.points.length),o=p(e.points.toReversed(),r)?.reverse()??null),!o)continue;let s=e.routeCertificate;e.points=o,tA(e,s,t,n),e.label&&(e.labelPosition=a(o))}}function nS(e,t,n){let i=new Map(e.map(e=>[e.id,e]));for(let r of t){if(!n.has(r)||r.label||4!==r.points.length)continue;let t=e4(r),[a,o,s,l]=r.points;if(!a||!o||!s||!l)continue;let h=i.get(r.target);if(!h||"rectangle"!==h.shape)continue;let u=new Set([r.source,r.target]);if(.01>Math.abs(a.y-o.y)&&.01>Math.abs(o.x-s.x)&&.01>Math.abs(s.y-l.y)&&6>=Math.abs(o.y-s.y)){let n={x:l.x,y:a.y};(.01>Math.abs(l.x-h.x)||.01>Math.abs(l.x-(h.x+h.width)))&&n.y>=h.y-.5&&n.y<=h.y+h.height+.5&&nb([a,n],e,u)&&(r.points=[a,n],r.routeCertificate=void 0,e9(r,t));continue}if(.01>Math.abs(a.x-o.x)&&.01>Math.abs(o.y-s.y)&&.01>Math.abs(s.x-l.x)&&6>=Math.abs(o.x-s.x)){let n={x:a.x,y:l.y};(.01>Math.abs(l.y-h.y)||.01>Math.abs(l.y-(h.y+h.height)))&&n.x>=h.x-.5&&n.x<=h.x+h.width+.5&&nb([a,n],e,u)&&(r.points=[a,n],r.routeCertificate=void 0,e9(r,t))}}}export{W as a,N as b,E as c,H as d,F as e,A as f,z as g,O as h,e7 as i,tr as j,j as k,Y as l,V as m,D as n,G as o,K as p,es as q,eu as r,ec as s,ef as t,eP as u,eC as v,eL as w,eW as x,eN as y,eE as z,eB as A,eR as B,eA as C,ej as D,e0 as E,tL as F,tN as G,tE as H,tI as I,e8 as J,e4 as K,e9 as L,tg as M,tw as N,tk as O,tv as P,tF as Q,tA as R,tT as S,tq as T,tQ as U,tZ as V,t_ as W,tU as X,tX as Y,t0 as Z,t2 as _,t6 as $,t4 as aa,t9 as ba,nr as ca,no as da,nl as ea,nh as fa,nu as ga,nd as ha,nx as ia,ny as ja,nc as ka,nf as la,ng as ma,np as na,nm as oa,nb as pa,n$ as qa,nw as ra,nk as sa,nv as ta,nS as ua};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./chunk-SBXYR7Z3.js";import{_ as t,k as i}from"./chunk-GMTB5UTY.js";import{U as n}from"./chunk-EUBVLDYV.js";var l=/^\s*(?:fill|stroke|color)\s*:\s*$/;function s(e){return t(c(e))}function c(t){let s=[],c=t=>e(i(t),{subject:"Style text entity",example:"font-family: Inter#44;serif"});for(let e of function(e){let t=[],i=0,s=0,c="",o=!1;for(let r=0;r<e.length;r++){let f=e[r];if("#"===f){let t=/^#\w+;/.exec(e.slice(r))?.[0];if(t&&!(l.test(e.slice(i,r))&&null!==n(t.slice(0,-1)))){r+=t.length-1,o=!1;continue}}if(o){o=!1;continue}if("\\"===f){o=!0;continue}if(c){f===c&&(c="");continue}if('"'===f||"'"===f){c=f;continue}"("===f?s++:")"===f?s=Math.max(0,s-1):(","===f||";"===f)&&0===s&&(t.push(e.slice(i,r)),i=r+1)}return t.push(e.slice(i)),t}(t)){let t=e.indexOf(":");if(t<=0)continue;let i=c(e.slice(0,t).trim()),n=c(e.slice(t+1).trim().replace(/\\,/g,","));i&&n&&s.push([i,n])}return s}export{s as a,c as b};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import{A as e,F as t,G as r,H as n,J as i,L as o,M as a,a as s,b as l,c as d,d as u,e as f,h as c,i as h,l as p,m as m,n as g,o as y,p as b,r as x,u as k,v as v,w as w}from"./chunk-P7DO3MRP.js";import{a as $}from"./chunk-5UVGUSD6.js";import{c as M}from"./chunk-CSFUKSU6.js";var S="0.5.1",z=Object.freeze({core:S,scene:"2.0.0"}),j=/^[a-z][a-z0-9-]*$/,O=/^[a-z0-9][a-z0-9._/-]*$/,E=new WeakSet,F=new WeakMap;function T(e,t){if(!j.test(e))throw Error(`Invalid extension kind "${e}"`);if(!O.test(t))throw Error(`Invalid ${e} extension local id "${t}"`);return`${e}:${t}`}function C(e){let t=e.indexOf(":");if(t<=0||t===e.length-1||-1!==e.indexOf(":",t+1))return;let r=e.slice(0,t),n=e.slice(t+1);if(!(!j.test(r)||!O.test(n)))return{kind:r,localId:n}}function W(e){let t=e.id,r=e.kind,n=e.version,i=e.compatibility,o=e.provenance,a=Object.freeze({...i??{}}),s=Object.freeze({...o}),c=C(t);if(!c||c.kind!==r)throw Error(`Extension id "${t}" must use the "${r}:" namespace`);if(!d(n))throw Error(`Extension "${t}" requires a semantic version (received "${n}")`);if(0===s.owner.trim().length)throw Error(`Extension "${t}" requires a provenance owner`);if(0===s.source.trim().length)throw Error(`Extension "${t}" requires a provenance source`);let h=Object.freeze({id:t,kind:r,version:n,compatibility:a,provenance:s}),p=function(e){let t=[];for(let[r,n]of Object.entries(e.compatibility)){if(void 0===n)continue;let e=z[r];if(!u(n)){t.push(Object.freeze({contract:r,range:n,status:"invalid",diagnostic:`Compatibility requirement "${r}" has invalid semantic-version range "${n}".`}));continue}if(void 0!==e){let i=f(e,n);t.push(Object.freeze({contract:r,range:n,status:i?"compatible":"incompatible",version:e,...i?{}:{diagnostic:`Compatibility requirement "${r}" range "${n}" does not include host version ${e}.`}}));continue}if(!l(r)){t.push(Object.freeze({contract:r,range:n,status:"invalid",diagnostic:`Unknown compatibility requirement "${r}" must use a namespace.`}));continue}t.push(Object.freeze({contract:r,range:n,status:"deferred"}))}return Object.freeze({accepted:t.every(e=>"compatible"===e.status||"deferred"===e.status),resolutions:Object.freeze(t)})}(h);if(!p.accepted)throw Error(`Extension "${t}" has incompatible requirements: ${p.resolutions.filter(e=>"incompatible"===e.status||"invalid"===e.status).map(e=>e.diagnostic).join("; ")}`);return E.add(h),h}var I=class extends Error{constructor(e,t){super(`Cannot register ${e.kind} "${e.id}" for owner "${e.provenance.owner}": already registered by "${t.provenance.owner}" at version ${t.version}`),this.incoming=e,this.existing=t,this.name="ExtensionCollisionError"}incoming;existing;code="EXTENSION_ID_COLLISION"};function N(e,t){let r=function(e,t){let r=F.get(e);if(r)throw r.reentrantAttempted=!0,Error(`Extension registry mutation is forbidden while ${r.operation} is in progress`);let n={operation:t,reentrantAttempted:!1};return F.set(e,n),n}(e,"extension registration");try{let n=Object.freeze({identity:t.identity,value:t.value});if(!E.has(n.identity))throw TypeError("Extension registration identity must be created by createExtensionIdentity()");let i=n.identity.id,o=e.get(i);if(o)throw new I(n.identity,o.identity);(function(e){if(e.reentrantAttempted)throw Error(`Extension registry mutation is forbidden after a reentrant attempt during ${e.operation}`)})(r),e.set(i,n)}finally{F.get(e)===r&&F.delete(e)}}var B=Object.freeze({fontFamily:{kind:"font"},fontSize:{kind:"number",minimum:1,maximum:256,expected:"between 1 and 256"},fontWeight:{kind:"number",minimum:1,maximum:1e3,expected:"between 1 and 1000"},letterSpacing:{kind:"number",minimum:-2,maximum:4,expected:"between -2 and 4"},textTransform:{kind:"enum",values:["uppercase","lowercase","capitalize"]},textColor:{kind:"color"},paddingX:{kind:"number",minimum:0,maximum:256,expected:"between 0 and 256"},paddingY:{kind:"number",minimum:0,maximum:256,expected:"between 0 and 256"},cornerRadius:{kind:"number",minimum:0,maximum:256,expected:"between 0 and 256"},lineWidth:{kind:"number",exclusiveMinimum:0,maximum:20,expected:"greater than 0 and at most 20"},bendRadius:{kind:"number",minimum:0,maximum:256,expected:"between 0 and 256"},fillColor:{kind:"color"},borderColor:{kind:"color"},strokeColor:{kind:"color"},headerFillColor:{kind:"color"},cue:{kind:"enum",values:["none","outline","double-line","pattern"]}}),A=Object.freeze(["fontSize","fontWeight","letterSpacing","textTransform","textColor","paddingX","paddingY","cornerRadius","lineWidth","fillColor","borderColor"]),L=Object.freeze(["fontSize","fontWeight","letterSpacing","textTransform","textColor","lineWidth","bendRadius","strokeColor"]),P=Object.freeze([...A,"fontFamily","headerFillColor"]),_=Object.freeze(["fontSize","fontWeight","letterSpacing","textTransform","textColor"]),H=Object.freeze(["fontFamily","fontSize","fontWeight","letterSpacing","textTransform","textColor","fillColor","borderColor","strokeColor","lineWidth","cue"]),q=Object.freeze(["fillColor","borderColor","strokeColor","lineWidth","cue"]),D=Object.freeze(["fillColor","borderColor","strokeColor","lineWidth","textColor"]),R=Object.freeze(["fillColor","borderColor","strokeColor","lineWidth"]),G=Object.freeze(["borderColor","strokeColor","lineWidth"]),V=Object.freeze([...R,"cue"]);function J(e,t){return Object.freeze({properties:e,...t?{bindingFamilies:Object.freeze([...t])}:{}})}var U=Object.freeze({node:J(A),edge:J(L),group:J(P),"group-header":J(H,["journey"]),label:J(_),actor:J(A,["sequence"]),relationship:J(L,["er"]),"pie-slice":J(q,["pie","radar"]),legend:J(D,["radar"]),bar:J(R,["xychart","sankey","treemap"]),series:J(G,["xychart"]),point:J(R,["radar","xychart"]),task:J(V,["gantt"]),milestone:J(V,["gantt"])}),Z=Object.freeze(Object.keys(U)),X=Object.freeze(Z.filter(e=>"bindingFamilies"in U[e])),K=Object.freeze([...new Set(X.flatMap(e=>U[e].properties))]),Q=["shape","connector","text","group","document"],Y=["shape"],ee=["connector"],et=["text"],er=["shape","group"],en=["connector","group"],ei=["text","group"];function eo(e,t,r,n={}){let i=U[e];return Object.freeze({applicableKinds:t,styleFallback:r,styleConsumption:i?"exact":"fallback-only",styleExtras:Object.freeze([]),...i?{styleProperties:i.properties}:{},styleBindingFamilies:Object.freeze([...i?.bindingFamilies??[]]),domIdentity:!1,relation:!1,sketch:"none",textHalo:!1,...n})}var ea=Object.freeze({node:eo("node",er,"node",{domIdentity:!0,sketch:"shape"}),edge:eo("edge",ee,"edge",{domIdentity:!0,relation:!0,sketch:"connector"}),"edge-label":eo("edge-label",ei,"label"),group:eo("group",er,"group",{domIdentity:!0,sketch:"shape"}),"group-header":eo("group-header",Q,"group",{sketch:"shape",textHalo:!0}),label:eo("label",et,"label",{textHalo:!0}),actor:eo("actor",er,"node",{domIdentity:!0,sketch:"shape"}),lifeline:eo("lifeline",en,"edge",{sketch:"connector"}),activation:eo("activation",er,"node",{domIdentity:!0,sketch:"shape"}),message:eo("message",en,"edge",{domIdentity:!0,relation:!0,sketch:"connector"}),block:eo("block",Q,"group",{domIdentity:!0,sketch:"shape"}),note:eo("note",er,"group",{domIdentity:!0,sketch:"shape"}),"class-box":eo("class-box",er,"node",{domIdentity:!0,sketch:"shape"}),member:eo("member",et,"label",{domIdentity:!0,textHalo:!0}),entity:eo("entity",er,"node",{domIdentity:!0,sketch:"shape"}),attribute:eo("attribute",ei,"label",{domIdentity:!0,textHalo:!0}),relationship:eo("relationship",ee,"edge",{domIdentity:!0,relation:!0,sketch:"connector"}),cardinality:eo("cardinality",["shape","text"],"label",{domIdentity:!0,textHalo:!0}),"pie-slice":eo("pie-slice",Y,"node",{domIdentity:!0,sketch:"shape"}),legend:eo("legend",["shape","text","group"],"group",{textHalo:!0}),bar:eo("bar",Y,"node",{domIdentity:!0,sketch:"shape"}),series:eo("series",ee,"edge",{domIdentity:!0,sketch:"connector"}),point:eo("point",Y,"node",{domIdentity:!0}),axis:eo("axis",Q,"label",{textHalo:!0}),grid:eo("grid",Q,"edge"),plate:eo("plate",Y,"node",{domIdentity:!0,sketch:"shape"}),section:eo("section",Q,"group",{domIdentity:!0,sketch:"shape",textHalo:!0}),task:eo("task",Q,"node",{domIdentity:!0,sketch:"shape"}),milestone:eo("milestone",Y,"node",{domIdentity:!0,sketch:"shape"}),"marker-line":eo("marker-line",Q,"edge"),rail:eo("rail",Q,"edge",{sketch:"connector"}),period:eo("period",er,"group",{domIdentity:!0,sketch:"shape"}),event:eo("event",er,"group",{domIdentity:!0,sketch:"shape"}),score:eo("score",Q,"node"),"actor-pill":eo("actor-pill",Y,"node",{sketch:"shape"}),service:eo("service",er,"node",{domIdentity:!0,sketch:"shape"}),junction:eo("junction",er,"node",{domIdentity:!0}),icon:eo("icon",["shape","text","group","document"],"node",{textHalo:!0}),title:eo("title",Q,"label",{domIdentity:!0,textHalo:!0}),defs:eo("defs",["document"],"label"),prelude:eo("prelude",["document"],"label"),chrome:eo("chrome",Q,"label")}),es=Object.freeze({applicableKinds:Q,styleFallback:"label",styleConsumption:"fallback-only",styleExtras:Object.freeze([]),styleBindingFamilies:Object.freeze([]),domIdentity:!0,relation:!1,sketch:"none",textHalo:!1}),el=Object.freeze(Object.entries(ea).map(([e,t])=>Object.freeze({identity:W({id:`role:${e}`,kind:"role",version:"1.0.0",compatibility:{core:S,scene:"^2.0.0"},provenance:{owner:"agentic-mermaid",source:"built-in",reference:"src/scene/roles.ts"}}),role:e,traits:t,style:Object.freeze({fallbackRole:t.styleFallback,applicableProperties:t.styleProperties??Object.freeze([])})})));function ed(e){let t;return((t=ea[e])?{traits:t,source:"builtin"}:{traits:es,source:"namespaced-safe"}).traits}function eu(e,t,r={},n={}){let i=el.find(e=>e.role===t),o=e?.roles,a=!1===n.includeFallback?void 0:i?o?.[i.style.fallbackRole]:void 0,s=o?.[t],l=a||s?{...a,...s}:void 0,d=new Set(i?.style.applicableProperties??[]);for(let n of e?.bindings??[]){if(void 0!==n.role&&n.role!==t||!function(e,t){let r=t[e.channel];return Array.isArray(r)?r.includes(e.value):String(r??"")===e.value}(n,r))continue;let i=e?.semanticSlots?.[n.slot];if(!i)continue;let o=Object.fromEntries(Object.entries(i).filter(([e])=>d.has(e)));l={...l,...o}}return l?Object.freeze(l):void 0}function ef(e){return!e.includes("->")&&!/[#:"\[\],\u0000-\u001f]/.test(e)}function ec(e,t,r=""){let n=ef(e)&&ef(t)?`${e}->${t}`:`relation:${JSON.stringify([e,t])}`;return r?`${r}:${n}`:n}function eh(e,...t){let r=t.map(String);return ef(e)&&r.every(ef)?[e,...r].join(":"):`part:${JSON.stringify([e,...r])}`}function ep(e,t,...r){let n=r.map(String);return ef(t)&&n.every(ef)?[e,t,...n].join(":"):`${e}:${JSON.stringify([t,...n])}`}function em(e){return ed(e).domIdentity}function eg(e,t){if(!em(t.role))return e;let r=e.match(/^\s*<([A-Za-z][\w:-]*)\b[^>]*>/)?.[0];if(!r||r.startsWith("<style")||r.startsWith("<defs")||r.startsWith("<svg"))return e;let i=(e,t,r)=>{let i=n(r),o=RegExp(`\\s${t}="[^"]*"`);if(o.test(e))return e.replace(o,` ${t}="${i}"`);let a=e.endsWith("/>")?"/>":">";return`${e.slice(0,-a.length).trimEnd()} ${t}="${i}"${"/>"===a?" /":""}>`},o=i(i(r,"data-id",t.id),"data-role",t.role);return void 0!==t.from&&(o=i(o,"data-from",t.from)),void 0!==t.to&&(o=i(o,"data-to",t.to)),o===r?e:e.replace(r,o)}function ey(e,t,r=0){return Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r}function eb(e,t){let r=t.x-e.x,n=t.y-e.y,i=Math.hypot(r,n);return Number.isFinite(i)&&i>0?{x:r/i,y:n/i}:void 0}function ex(e,t){return{x:(e.x+t.x)/2,y:(e.y+t.y)/2}}function ek(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function ev(e,t,r){let n=ek(t,r);return 0===n?ek(e,t):Math.abs((r.x-t.x)*(t.y-e.y)-(t.x-e.x)*(r.y-t.y))/n}function ew(e,t,r,n,i=.5,o=12){if(!Number.isFinite(i)||i<=0)throw TypeError("Cubic flattening tolerance must be positive and finite");if(!Number.isSafeInteger(o)||o<0)throw TypeError("Cubic flattening maxDepth must be a non-negative safe integer");for(let i of[e,t,r,n])if(!Number.isFinite(i.x)||!Number.isFinite(i.y))throw TypeError("Cubic flattening points must be finite");let a=[{...e}],s=(e,t,r,n,l)=>{let d=ek(e,n),u=ek(e,t)+ek(t,r)+ek(r,n)-d;if(Math.max(ev(t,e,n),ev(r,e,n))<=i&&u<=i||l>=o)return void a.push({...n});let f=ex(e,t),c=ex(t,r),h=ex(r,n),p=ex(f,c),m=ex(c,h),g=ex(p,m);s(e,f,p,g,l+1),s(g,m,h,n,l+1)};return s(e,t,r,n,0),a}function e$(...e){let t=e[0];if(t)for(let r=1;r<e.length;r++){let n=eb(t,e[r]);if(n)return n}}function eM(e,t,r,n=.5){var i,o,a,s,l,d,u;let f,c;for(let e of[t,...r.flatMap(e=>"line"===e.kind?[e.end]:"quadratic"===e.kind?[e.control,e.end]:[e.control1,e.control2,e.end])])if(!Number.isFinite(e.x)||!Number.isFinite(e.y))throw TypeError("Connector path projection points must be finite");let h=[{...t}],p=[],m=t;for(let e of r){if(p.push(m),"line"===e.kind)h.push({...e.end});else if("quadratic"===e.kind){let[t,r]=(i=m,o=e.control,a=e.end,[{x:i.x+(o.x-i.x)*2/3,y:i.y+(o.y-i.y)*2/3},{x:a.x+(o.x-a.x)*2/3,y:a.y+(o.y-a.y)*2/3}]);h.push(...ew(m,t,r,e.end,n).slice(1))}else h.push(...ew(m,e.control1,e.control2,e.end,n).slice(1));m=e.end}for(let e=0;e<r.length&&!f;e++)s=p[e],f="line"===(l=r[e]).kind?e$(s,l.end):"quadratic"===l.kind?e$(s,l.control,l.end):e$(s,l.control1,l.control2,l.end);for(let e=r.length-1;e>=0&&!c;e--)d=p[e],c="line"===(u=r[e]).kind?e$(d,u.end):"quadratic"===u.kind?e$(u.control,u.end)??e$(d,u.end):e$(u.control2,u.end)??e$(u.control1,u.end)??e$(d,u.end);return{geometry:{kind:"path",d:e,points:h},contours:[{start:{...t},end:{...m},closed:!1,...f?{startTangent:f}:{},...c?{endTangent:c}:{}}]}}function eS(e,t,r){return"manhattan"===r?Math.abs(t.x-e.x)+Math.abs(t.y-e.y):ek(e,t)}function ez(e,t){if(void 0===t)return e;if(!Number.isSafeInteger(t)||t<0)throw TypeError("Rounded connector precision must be a non-negative safe integer");let r=10**t;return Math.round(e*r)/r}function ej(e,t,r,n,i){let o=eS(e,t,n);if(0===o)return{...e};let a=r/o;return{x:ez(e.x+(t.x-e.x)*a,i),y:ez(e.y+(t.y-e.y)*a,i)}}function eO(e,t,r={}){if(0===e.length)throw RangeError("Rounded connector paths require at least one point");if(!Number.isFinite(t))throw TypeError("Rounded connector radius must be finite");let n=r.metric??"euclidean",i=e[0],o=[];if(t<=0||e.length<3){for(let t=1;t<e.length;t++)o.push({kind:"line",end:e[t]});return eM(`M${e.map(e=>`${e.x},${e.y}`).join(" L")}`,i,o,r.tolerance)}let a=[`M${i.x},${i.y}`];for(let i=1;i<e.length-1;i++){let s=e[i-1],l=e[i],d=e[i+1],u=Math.min(t,eS(s,l,n)/2,eS(l,d,n)/2);if(u<=0){a.push(`L${l.x},${l.y}`),o.push({kind:"line",end:l});continue}let f=ej(l,s,u,n,r.precision),c=ej(l,d,u,n,r.precision);a.push(`L${f.x},${f.y}`),a.push(`Q${l.x},${l.y} ${c.x},${c.y}`),o.push({kind:"line",end:f}),o.push({kind:"quadratic",control:l,end:c})}let s=e.at(-1);return a.push(`L${s.x},${s.y}`),o.push({kind:"line",end:s}),eM(a.join(" "),i,o,r.tolerance)}function eE(e,t=!1){return"line"===e.kind?[{points:[{x:e.x1,y:e.y1},{x:e.x2,y:e.y2}],closed:!1}]:"path"===e.kind&&void 0!==e.subpaths?e.subpaths:[{points:e.points,closed:t}]}function eF(e){return"path"===e.kind&&/[AaCcQqSsTt]/.test(e.d)}function eT(e,t=!1){let r=[];for(let n of eE(e,t)){let t,i=n.points[0],o=n.points.at(-1);if(!i||!o)continue;for(let e=1;e<n.points.length&&!t;e++)t=eb(n.points[e-1],n.points[e]);let a=n.closed&&!ey(i,o);!t&&a&&(t=eb(o,i));let s=a?eb(o,i):void 0;for(let e=n.points.length-1;e>0&&!s;e--)s=eb(n.points[e-1],n.points[e]);r.push({start:"line"===e.kind?i:{...i},end:"line"===e.kind?o:{...n.closed?i:o},closed:n.closed,...t?{startTangent:t}:{},...s?{endTangent:s}:{}})}return r}function eC(e,t=!1){let r=[],n=[];for(let i of eE(e,t)){let e=i.points[0],t=i.closed?e:i.points.at(-1);e&&r.push(e),t&&n.push(t)}return{starts:r,ends:n}}function eW(e,t=!1){let r=[];for(let[n,i]of eE(e,t).entries()){for(let e=1;e<i.points.length;e++)r.push({start:i.points[e-1],end:i.points[e],subpathIndex:n,closing:!1});let e=i.points[0],t=i.points.at(-1);i.closed&&e&&t&&!ey(e,t)&&r.push({start:t,end:e,subpathIndex:n,closing:!0})}return r}function eI(e,t=!1){return"line"===e.kind?[]:"path"===e.kind?e.markerMidpoints??[]:eE(e,t).flatMap(e=>{if(e.points.length<2)return[];let t=e.closed&&ey(e.points[0],e.points.at(-1))?e.points.slice(0,-1):e.points;return e.closed?t.slice(1):t.slice(1,-1)})}var eN=Object.assign(Object.create(null),{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}),eB=/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;function eA(e){let t=e.replace("#",""),r=3===t.length||4===t.length?t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:t;return[parseInt(r.slice(0,2),16),parseInt(r.slice(2,4),16),parseInt(r.slice(4,6),16)]}function eL(e){return eQ(e)?eA(e):null}function eP(e,t,r){return"#"+[e,t,r].map(e=>Math.round(Math.max(0,Math.min(255,e))).toString(16).padStart(2,"0")).join("")}function e_(e,t,r){return eP(...eH(eA(e),eA(t),r))}function eH(e,t,r,n=[0,0,0]){let i=r/100;for(let r=0;r<3;r++)n[r]=Math.round(Math.max(0,Math.min(255,e[r]*i+t[r]*(1-i))));return n}function eq(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function eD(e){return .2126*eq(e[0]/255)+.7152*eq(e[1]/255)+.0722*eq(e[2]/255)}function eR(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}function eG(e){let t=e0(e);return t?eD(t):null}function eV(e,t){let r=eG(e),n=eG(t);return null===r||null===n?null:eR(r,n)}function eJ(e,t,r,n){let i=eV(e,t);if(null===i||i>=r)return e;let o=eV("#000000",t)??0,a=eV("#ffffff",t)??0,s=(n?eV(n,t)??0:0)>=r?n:o>=a?"#000000":"#ffffff";if((eV(s,t)??0)<r)return e;let l=eG(t),d=eA(s),u=eA(e),f=[0,0,0];for(let e=1;e<=1e3;e++)if(eH(d,u,e/10,f),eR(eD(f),l)>=r)return eP(...f);return s}var eU=4.5,eZ=3,eX=3;function eK(e,t,r=eU){return eJ(e,t,r)}function eQ(e){return eB.test(e)}function eY(e){return/^#[0-9a-fA-F]{6}$/.test(e)}function e0(e){let t=e.trim().toLowerCase(),r=Object.hasOwn(eN,t)?eN[t]:void 0;if(r){let e=eA(r);return[e[0],e[1],e[2],1]}if("transparent"===t)return[0,0,0,0];let n=eQ(t)?t.slice(1):void 0;if(n){let e=n.length<=4?[...n].map(e=>e+e).join(""):n;return[Number.parseInt(e.slice(0,2),16),Number.parseInt(e.slice(2,4),16),Number.parseInt(e.slice(4,6),16),8===e.length?Number.parseInt(e.slice(6,8),16)/255:1]}let i=t.match(/^rgba?\((.*)\)$/);if(i){let e=i[1].trim(),t=e.split("/").map(e=>e.trim());if(t.length>2||2===t.length&&e.includes(","))return null;let r=(e.includes(",")?e.split(","):t[0].split(/\s+/)).map(e=>e.trim()),n=t[1];if(e.includes(",")&&4===r.length&&void 0===n&&(n=r.pop()),3!==r.length||e.includes(",")&&r.some(e=>e.endsWith("%"))&&!r.every(e=>e.endsWith("%")))return null;let o=r.map(e=>{let t=e.endsWith("%"),r=e2(e,t);return null===r?null:Math.max(0,Math.min(255,t?2.55*r:r))});if(o.some(e=>null===e))return null;let a=e1(n);return null===a?null:[o[0],o[1],o[2],a]}let o=t.match(/^hsla?\((.*)\)$/);if(o){let e=o[1].trim(),t=e.split("/").map(e=>e.trim());if(t.length>2||2===t.length&&e.includes(","))return null;let r=(e.includes(",")?e.split(","):t[0].split(/\s+/)).map(e=>e.trim()),n=t[1];if(e.includes(",")&&4===r.length&&void 0===n&&(n=r.pop()),3!==r.length||e.includes(",")&&(!r[1].endsWith("%")||!r[2].endsWith("%")))return null;let i=function(e){let t=e.trim().match(/^([+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)(deg|grad|rad|turn)?$/i);if(!t)return null;let r=Number(t[1]);if(!Number.isFinite(r))return null;let n=r;switch(t[2]?.toLowerCase()){case"grad":n*=.9;break;case"rad":n*=180/Math.PI;break;case"turn":n*=360}return Number.isFinite(n)?n:null}(r[0]),a=e2(r[1],r[1].endsWith("%")),s=e2(r[2],r[2].endsWith("%")),l=e1(n);if(null===i||null===a||null===s||null===l)return null;let d=s/100,u=Math.max(0,a)/100*(1-Math.abs(2*d-1)),f=(i%360+360)%360/60,c=u*(1-Math.abs(f%2-1)),[h,p,m]=f<1?[u,c,0]:f<2?[c,u,0]:f<3?[0,u,c]:f<4?[0,c,u]:f<5?[c,0,u]:[u,0,c],g=d-u/2,y=[(h+g)*255,(p+g)*255,(m+g)*255];return y.some(e=>!Number.isFinite(e))?null:[Math.max(0,Math.min(255,y[0])),Math.max(0,Math.min(255,y[1])),Math.max(0,Math.min(255,y[2])),l]}return null}function e1(e){if(void 0===e)return 1;let t=e.endsWith("%"),r=e2(e,t);return null===r?null:Math.max(0,Math.min(1,t?r/100:r))}function e2(e,t){if(!(t?/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?%$/i:/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?$/i).test(e))return null;let r=Number(t?e.slice(0,-1):e);return Number.isFinite(r)?r:null}function e5(e,t){let r=e0(e);if(!r)return null;if(1===r[3])return[r[0],r[1],r[2]];let n=e0(t);if(!n)return null;let i=n[3],o=r[3]+i*(1-r[3]);return o<=0?null:[0,1,2].map(e=>Math.min(255,Math.max(0,(r[e]*r[3]+n[e]*i*(1-r[3]))/o)))}function e3(e){let t=eL(e);return t?eD(t):null}function e6(e,t){let r=e3(e),n=e3(t);return null===r||null===n?null:eR(r,n)}function e8(e,t,r="#ffffff"){let n=e5(t,r);if(!n)return null;let i=eP(...n),o=e5(e,i);return o?e6(eP(...o),i):null}var e4=[1,0,0,1,0,0];function e9(e){if(!e)return e4;if("matrix"===e.kind)return[e.a,e.b,e.c,e.d,e.e,e.f];let t=e.angle*Math.PI/180,r=Math.cos(t),n=Math.sin(t);return[r,n,-n,r,e.cx-r*e.cx+n*e.cy,e.cy-n*e.cx-r*e.cy]}function e7(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}function te(e,t){return{x:t[0]*e.x+t[2]*e.y+t[4],y:t[1]*e.x+t[3]*e.y+t[5]}}function tt(e){let t=e[0]*e[3]-e[1]*e[2];if(!(!Number.isFinite(t)||0===t))return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[3]*e[4])/t,(e[1]*e[4]-e[0]*e[5])/t]}function tr(e){let t=e4,r=0;for(let n of e.matchAll(/([A-Za-z]+)\s*\(([^()]*)\)/g)){let i;if(e.slice(r,n.index).trim())return;r=n.index+n[0].length;let o=n[2].trim();if(!o||/^(?:,)|(?:,)$|,\s*,/.test(o)||!/^[-+\d.eE,\s]+$/.test(o))return;let a=o.split(/[\s,]+/).map(Number);if(!a.every(Number.isFinite))return;if("matrix"===n[1]&&6===a.length)i=a;else if("translate"===n[1]&&(1===a.length||2===a.length))i=[1,0,0,1,a[0],a[1]??0];else if("scale"===n[1]&&(1===a.length||2===a.length))i=[a[0],0,0,a[1]??a[0],0,0];else{if("rotate"!==n[1]||1!==a.length&&3!==a.length)return;i=e9({kind:"rotate",angle:a[0],cx:a[1]??0,cy:a[2]??0})}t=e7(t,i)}return r>0&&!e.slice(r).trim()?t:void 0}function tn(e){return"rotate"===e.kind?`rotate(${e.angle} ${e.cx} ${e.cy})`:`matrix(${e.a} ${e.b} ${e.c} ${e.d} ${e.e} ${e.f})`}var ti=Symbol.for("agentic-mermaid.performance-observer.v1"),to=globalThis;function ta(e,t){try{e(Object.freeze(t))}catch{}}function ts(e,t,r,n){let i=to[ti];"function"==typeof i&&ta(i,{version:1,kind:"cache",owner:e,outcome:t,...r?{reason:r}:{},...n?{detail:n}:{}})}function tl(e,t,r){let n=to[ti];"function"==typeof n&&ta(n,{version:1,kind:"fallback",owner:e,reason:t,...void 0!==r?{attempt:r}:{}})}var td,tu=0,tf=0;function tc(e){let t;"function"==typeof(t=to[ti])&&ta(t,{version:1,kind:"scope",owner:"graphical"});let r=td,n=tu,i=tf;td=new Map,tu=0,tf=0;try{return e()}finally{td=r,tu=n,tf=i}}function th(e,t,r){if(!td)return ts("svg-inspection","bypass","outside-graphical-scope",e),r();let n=td.get(e);if(n?.has(t))return ts("svg-inspection","hit",void 0,e),n.get(t);ts("svg-inspection","miss",void 0,e);let i=r();return tf<512&&tu+t.length<=524288?(n||(n=new Map,td.set(e,n)),n.set(t,i),tu+=t.length,tf++):ts("svg-inspection","store-skipped",tf>=512?"entry-limit":"character-limit",e),i}function tp(e){if(void 0===e)return!1;let t=e.charCodeAt(0),r=32|t;return r>=97&&r<=122||t>=48&&t<=57||95===t||46===t||58===t||45===t}function tm(e){if(void 0===e)return!1;let t=e.charCodeAt(0);return t<128?32===t||t>=9&&t<=13:/\s/.test(e)}function tg(e,t){let r=e.indexOf(">",t);if(r<0)return -1;for(let n=t;n<r;n++){let t=e[n];if('"'!==t&&"'"!==t)continue;let i=e.indexOf(t,n+1);if(i<0||(n=i,i>r&&(r=e.indexOf(">",i+1))<0))return -1}return r+1}function ty(e){return th("start-tags",e,()=>tb(e))}function tb(e,t,r,n){let i=t||r||n?void 0:[];for(let o=e.indexOf("<");o>=0;o=e.indexOf("<",o+1)){if(e.startsWith("\x3c!--",o)){let t=e.indexOf("--\x3e",o+4);if(t<0)break;o=t+2;continue}let a=e[o+1];if(!a||"/"===a||"!"===a||"?"===a)continue;let s=o+1;for(;tp(e[s]);)s++;if(s===o+1)continue;let l=tg(e,s);if(l<0)break;let d=l-2;for(;d>o&&tm(e[d]);)d--;let u=e.slice(o+1,s);n&&(n.name=u);let f="/"===e[d],c=i?[]:void 0;if(i||t||n){let i=s;for(;i<l-1;){for(;tm(e[i]);)i++;if(">"===e[i]||"/"===e[i]&&">"===e[i+1])break;let o=i;for(;tp(e[i]);)i++;if(i===o)break;let a=e.slice(o,i);for(;tm(e[i]);)i++;if("="!==e[i])break;for(i++;tm(e[i]);)i++;let s=e[i];if('"'!==s&&"'"!==s)break;let d=++i,u=e.indexOf(s,i);if(u<0||u>=l-1)break;if(i=u,c)c.push(Object.freeze({name:a,value:e.slice(d,i),quote:s,nameStart:o,valueStart:d,valueEnd:i}));else if(n&&n.name===n.expectedName)n.attribute(a,e.slice(d,i));else if(t&&tM.has(a)){let e={start:d,end:i};t.push(e),"style"===a&&r.push(e)}i++}}if(i&&i.push(Object.freeze({name:u,start:o,end:l,attributes:Object.freeze(c),selfClosing:f})),n)return;if(r&&"style"===u&&!f){let n=e.indexOf("</style",l);if(n>=0){let e={start:l,end:n};t?.push(e),r.push(e)}}o=l-1}return i&&Object.freeze(i)}function tx(e){let t=e.search(/\S/);if(t<0)return;let r=tg(e,t);if(r<0)return;let n=ty(e.slice(0,r))[0];return n?.start===t&&"svg"===n.name?n:void 0}function tk(e,t){return e.attributes.find(e=>e.name===t)}function tv(e,t){let r=tk(e,t);return r?$(r.value):void 0}function tw(e,t){if(0===t.length)return e;let r=[...t].sort((e,t)=>t.start-e.start),n=[],i=e.length;for(let t of r){if(t.end>i){let t=e;for(let e of r)t=`${t.slice(0,e.start)}${e.value}${t.slice(e.end)}`;return t}n.push(e.slice(t.end,i),t.value),i=t.start}return n.push(e.slice(0,i)),n.reverse().join("")}function t$(e,t){let r=[];for(let n of ty(e))for(let e of n.attributes){let i=t(e,n);void 0!==i&&i!==e.value&&r.push({start:e.valueStart,end:e.valueEnd,value:i})}return tw(e,r)}var tM=new Set(["clip-path","color","cursor","fill","filter","flood-color","lighting-color","marker-end","marker-mid","marker-start","mask","stop-color","stroke","style"]);function tS(e){let t=[],r=[];return tb(e,t,r),{source:e,cssRanges:t,styleContexts:r}}function tz(e){let t=[];return tb(e,void 0,t),t}function tj(e,t,r=tS(e)){if(r.source!==e)throw Error("SVG CSS projection does not match its source");return tw(e,r.cssRanges.map(r=>({...r,value:t(e.slice(r.start,r.end))})))}function tO(e,t,r){return`${e.slice(0,t.start)}${r}${e.slice(t.end)}`}function tE(e,t){let r=[...e].map(e=>e.codePointAt(0)),n=[...t].map(e=>e.codePointAt(0)),i=Math.min(r.length,n.length);for(let e=0;e<i;e++){let t=r[e]-n[e];if(0!==t)return t}return r.length-n.length}function tF(e,t,r){let n=r*Math.PI/180,i=Math.cos(n),o=Math.sin(n),a=e.x-t.x,s=e.y-t.y;return{x:t.x+a*i-s*o,y:t.y+a*o+s*i}}function tT(e,t,r){if(r%360==0)return{...e};let n=[tF({x:e.x0,y:e.y0},t,r),tF({x:e.x1,y:e.y0},t,r),tF({x:e.x0,y:e.y1},t,r),tF({x:e.x1,y:e.y1},t,r)];return{x0:Math.min(...n.map(e=>e.x)),y0:Math.min(...n.map(e=>e.y)),x1:Math.max(...n.map(e=>e.x)),y1:Math.max(...n.map(e=>e.y))}}var tC=new v(256,8388608),tW=new WeakSet;function tI(e){return tW.has(e)}function tN(e,t){tW.has(e)&&tW.add(t)}function tB(e,t){return e.bold===t.bold&&e.italic===t.italic&&e.underline===t.underline&&e.strikethrough===t.strikethrough}function tA(e){let t=[],r;for(let n of e.flatMap(e=>e.fragments??e))r&&tB(r,n)?(r.text+=n.text,r.sourceEnd=n.sourceEnd):(r={...n},t.push(r));return t}function tL(e,t){if(0===e.length)return 0;let r=t.safeFont?y:g,n=1!==e.length||e[0].fragments?tA(e):e,i=1===n.length?n[0].text:n.map(e=>e.text).join("");if((t.letterSpacing??0)!==0&&!/[^\x20-\x7e]/u.test(i))return t_(n,t).width;let o=t.monospace?p()?n.reduce((e,r)=>e+b(r.text,t.fontSize,0,r.bold?Math.max(700,t.fontWeight):t.fontWeight,r.italic?"italic":"normal",t.fontFamily),0):b(i,t.fontSize):n.reduce((e,n)=>e+r(n.text,t.fontSize,n.bold?Math.max(700,t.fontWeight):t.fontWeight,n.italic?"italic":"normal",t.fontFamily),0);if(!p()&&/[^\x20-\x7e]/u.test(i))return Math.max(o,n.reduce((e,r)=>e+[...r.text].reduce((e,n)=>e+(0===m(n)?0:/[^\x20-\x7e]/u.test(n)?1.2*t.fontSize:y(n,t.fontSize,r.bold?Math.max(700,t.fontWeight):t.fontWeight)),0),0)+h(i).filter(e=>/\p{M}/u.test(e)&&[...e].every(e=>0===m(e))).length*t.fontSize*1.2)+Math.max(0,[...i].length-1)*Math.abs(t.letterSpacing??0);if((t.letterSpacing??0)<0)return t_(n,t).width;let a=t.letterSpacing??0;return Math.max(0,o+(0===a?0:Math.max(0,h(i).length-1)*a))}function tP(e,t,r,n){let i=t.bold?Math.max(700,n.fontWeight):n.fontWeight,o=t.italic?"italic":"normal",a=n.safeFont?y:g;return n.monospace?b(e,n.fontSize,0,i,o,n.fontFamily):a(e,n.fontSize,i,o,n.fontFamily)-(r||p()?0:.15*n.fontSize)}function t_(e,t){let r=0,n=0,i=0;for(let o of e){let e=h(o.text);for(let[a,s]of e.entries()){let l=tP(s,o,a===e.length-1,t);n=Math.min(n,r),i=Math.max(i,r+l),r+=l+(t.letterSpacing??0)}}return{width:i-n,originX:-n}}function tH(e){let{fragments:t,...r}=e.fragments?.at(-1)??e;return{...r,text:"-",clusters:void 0}}function tq(t,r){if(k("text-spans")&&(r={display:r.display,transform:r.transform,fontSize:r.fontSize,fontWeight:r.fontWeight,letterSpacing:r.letterSpacing,maxWidth:r.maxWidth,safeFont:r.safeFont,monospace:r.monospace,fontFamily:r.fontFamily}),!Number.isFinite(r.fontSize)||r.fontSize<=0||!Number.isFinite(r.fontWeight)||!Number.isFinite(r.letterSpacing??0))throw RangeError("Prepared text requires finite typography and a positive font size");let n=k("text-spans")&&!p()&&"string"==typeof t&&t.length<=16384?JSON.stringify([t,r]):void 0;if(void 0!==n){let e=tC.get(n);if(e)return e}let i=e(t,r.display,r.transform),o=r.maxWidth,a=[],s=[];for(let[e,t]of i.lines.entries()){if(e>0&&s.push({kind:"authored",sourceOffset:i.lineStarts[e]-1}),0===t.length){a.push([]);continue}if(!o||!Number.isFinite(o)||o<=0||tL(t,r)<=o){a.push([...t]);continue}let n=function(e){let t=e.flatMap(e=>(e.clusters??h(e.text).map(t=>({text:t,sourceStart:e.sourceStart,sourceEnd:e.sourceEnd}))).map(t=>({...e,...t,clusters:void 0}))),r=0,n=0;return h(t.map(e=>e.text).join("")).map(e=>{let i=e.length,o=[];for(;i>0;){let e=t[r],a=Math.min(i,e.text.length-n);o.push({...e,text:e.text.slice(n,n+a)}),i-=a,(n+=a)===e.text.length&&(r++,n=0)}return{...o[0],text:e,sourceEnd:o.at(-1).sourceEnd,...o.length>1?{fragments:o}:{}}})}(t),l=k("text-spans"),d=l&&!p()?function(e,t){if(1!==e.length||t.monospace||t.letterSpacing||e[0].bold||e[0].italic||e[0].underline||e[0].strikethrough||/[^\x20-\x7e]/u.test(e[0].text))return;let r=e[0],n=e=>Number.isInteger(e)&&e>=0&&e<=0xffffffff;if(!r.clusters||r.clusters.length!==r.text.length||!n(r.sourceEnd)||r.clusters.some((e,t)=>e.text!==r.text[t]||!n(e.sourceStart)))return;let i=new Float64Array(r.text.length+1),o=new Uint32Array(r.text.length+1),a=t.fontWeight>=600?.6:t.fontWeight>=500?.57:.54;for(let e=0;e<r.text.length;e++){let n=m(r.text[e]);t.safeFont&&("W"===r.text[e]||"M"===r.text[e])&&(n+=.35),i[e+1]=i[e]+n,o[e]=r.clusters[e].sourceStart}return o[r.text.length]=r.sourceEnd,{offsets:o,width:(e,r)=>(i[r]-i[e])*t.fontSize*a+.15*t.fontSize}}(t,r):void 0,u=l?(e,t)=>{let i=d?.width(e,t);return void 0!==i&&Math.abs(i-o)>1e-8*Math.max(1,Math.abs(i),Math.abs(o))?i<o:tL(n.slice(e,t),r)<=o}:void 0,f=0;for(;f<n.length;){let e=f,t=-1;if(u)for(;e<n.length&&u(f,e+1);)/\s/u.test(n[e].text)&&(t=e+1),e++;else for(;e<n.length&&tL(n.slice(f,e+1),r)<=o;)/\s/u.test(n[e].text)&&(t=e+1),e++;if(e===n.length){a.push(tA(n.slice(f)));break}if(e>f&&!/\s/u.test(n[e-1].text)&&/\s/u.test(n[e]?.text??""))for(t=e;t<n.length&&/\s/u.test(n[t].text);)t++;let l=!1,c,h;if(t>f){if(n.slice(f,t).some(e=>!/\s/u.test(e.text)))for(;t<n.length&&/\s/u.test(n[t].text);)t++;for(c=e=t;c>f&&/\s/u.test(n[c-1].text);)c--;c===f?c=e:h=n.slice(c,e).map(e=>e.text).join("")}else{let t;if(t=e=Math.max(f+1,e),/[\p{Script=Latin}\p{Script=Greek}\p{Script=Cyrillic}]/u.test(n[t-1]?.text??"")&&/\p{L}/u.test(n[t]?.text??"")){for(;e>f+1&&tL([...n.slice(f,e),tH(n[e-1])],r)>o;)e--;l=tL([...n.slice(f,e),tH(n[e-1])],r)<=o}}let p=tA(n.slice(f,c??e)),m=d?.offsets[e]??n[e]?.sourceStart??i.source.length;l&&p.push({...tH(n[e-1]),sourceStart:m,sourceEnd:m}),a.push(p),e<n.length&&s.push({kind:l?"hyphen":"wrap",sourceOffset:m,...h?{replacedText:h}:{}}),f=e}0===n.length&&a.push([])}let l=i.lines.map(e=>e.map(e=>e.text).join("")).join(`
|
|
2
|
-
`),d=/\p{M}/u.test(l.normalize("NFD").replace(/[\uFE0E\uFE0F]/g,""))?h(l.normalize("NFD")).reduce((e,t)=>Math.max(e,(t.replace(/[\uFE0E\uFE0F]/g,"").match(/\p{M}/gu)??[]).length),0):0,u=r.fontSize*Math.max(x,2.4*!!/[\p{Script=Arabic}\p{Script=Hebrew}]/u.test(l),d?x+.6*d:0),f=a.map((e,t)=>{var n;let o,a,s,l,d,f=e.map(e=>"literal"===i.display?e.text:c(e)).join("");e.forEach(Object.freeze);let p=!/[^\x20-\x7e]/u.test(f),m=e.some(e=>e.bold||e.italic||e.underline||e.strikethrough),g=p?(r.letterSpacing??0)!==0?(n=r,o=e.flatMap((e,t)=>h(e.text).map(e=>({runIndex:t,text:e}))),a=0,s=0,l=0,d=o.map((t,r)=>{let i=e[t.runIndex],d=o[r+1],u=!d||!tB(i,e[d.runIndex]),f=tP(t.text,i,u,n),c=Object.freeze({...t,x:a,width:f});return s=Math.min(s,a),l=Math.max(l,a+f),a+=f+(n.letterSpacing??0),c}),{width:l-s,originX:-s,fragments:Object.freeze(d)}):m?function(e,t){let r=[];for(let[t,n]of e.entries()){let i=r.at(-1);i&&tB(e[i.runIndex],n)?i.text+=n.text:r.push({runIndex:t,text:n.text})}let n=0,i=r.map(({runIndex:r,text:i})=>{let o=tL([{...e[r],text:i}],t),a=Object.freeze({runIndex:r,text:i,x:n,width:o});return n+=o,a});return{width:n,originX:0,fragments:Object.freeze(i)}}(e,r):void 0:void 0;return Object.freeze({runs:Object.freeze(e),text:f,width:g?.width??tL(e,r),baseline:t*u+.35*r.fontSize,originX:g?.originX??0,...g?{fragments:g.fragments}:{}})}),g=f.map(e=>e.text);Object.freeze(g),s.forEach(Object.freeze);let y=f.reduce((e,t)=>Math.max(e,t.width),0),b=Object.freeze({unit:"px",prepared:i,text:g.join(`
|
|
3
|
-
`),lines:g,lineBlocks:Object.freeze(f),breaks:Object.freeze(s),width:y,height:g.length*u,lineHeight:u,fontSize:r.fontSize,fontWeight:r.fontWeight,letterSpacing:r.letterSpacing??0,monospace:r.monospace??!1,safeFont:r.safeFont??!1,...r.fontFamily?{fontFamily:r.fontFamily}:{}});return tW.add(b),void 0!==n&&tC.set(n,b,2*n.length+128*b.prepared.source.length+256*b.lines.length+512),b}function tD(e,t){let r=e?.lineBlocks[t];if(!e||!r)return;if(!tI(e))throw TypeError("Pixel line projection requires retained preparation");let n=[r.text];Object.freeze(n);let i=Object.freeze({...e,text:r.text,lines:n,lineBlocks:Object.freeze([Object.freeze({...r,baseline:.35*e.fontSize})]),breaks:Object.freeze([]),width:r.width,height:e.lineHeight});return tW.add(i),i}function tR(e,t){let r=t.top??0,n=0,i=0,o=e.map(e=>{let o=Math.max(t.minRowHeight??0,e.block.height),a={item:e,top:r,height:o,textY:r+("start"===t.align?e.block.height:o)/2};return n=Math.max(n,e.block.width,e.reservedWidth??0),i+=o,r+=o+t.gap,a}),a=Math.max(0,e.length-!t.trailingGap),s=r-(e.length&&!t.trailingGap?t.gap:0);return{width:n,height:i+a*t.gap,bottom:s,rows:o}}function tG(e){if(0!==e.length)return{x0:Math.min(...e.map(e=>e.x)),y0:Math.min(...e.map(e=>e.y)),x1:Math.max(...e.map(e=>e.x)),y1:Math.max(...e.map(e=>e.y))}}function tV(e,t){return e?t?{x0:Math.min(e.x0,t.x0),y0:Math.min(e.y0,t.y0),x1:Math.max(e.x1,t.x1),y1:Math.max(e.y1,t.y1)}:e:t}function tJ(e,t){let r=Number.isFinite(t)?Math.max(0,t):0;return{x0:e.x0-r,y0:e.y0-r,x1:e.x1+r,y1:e.y1+r}}function tU(e,t,r){let n=/[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y,i=0,o=0,a=0,s=0,l=0,d="",u="",f,c,h,p=!1,m=e=>{if(r){for(let t=0;t<e;t++)if(!r())return p=!0,!1}return!0},g=()=>{for(;i<e.length&&/[\s,]/.test(e[i]);){if(!m(1))return;i++}},y=(t=!1)=>{if(g(),p)return;if(t){let t=e[i];return("0"===t||"1"===t)&&m(1)?(i++,Number(t)):void 0}n.lastIndex=i;let r=n.exec(e);if(!r||!m(r[0].length))return;i=n.lastIndex;let o=Number(r[0]);return Number.isFinite(o)?o:void 0},b=(e,r)=>!!Number.isFinite(e)&&!!Number.isFinite(r)&&(c=tV(c,{x0:e,y0:r,x1:e,y1:r}),t&&(h=tV(h,{x0:e,y0:r,x1:e,y1:r})),!0);for(;;){if(g(),p)return;if(i>=e.length)return c;if(/[a-zA-Z]/.test(e[i])){if(!m(1)||(d=e[i++],!/[MmLlHhVvCcSsQqTtAaZz]/.test(d)||!c&&"M"!==d.toUpperCase()))return;if("Z"===d.toUpperCase()){if(t&&!t({bounds:{x0:Math.min(o,s),y0:Math.min(a,l),x1:Math.max(o,s),y1:Math.max(a,l)},line:[{x:o,y:a},{x:s,y:l}]}))return;o=s,a=l,u="Z",f=void 0,d="";continue}}if(!d)return;let r=d.toUpperCase(),n=d!==r;t&&(h={x0:o,y0:a,x1:o,y1:a});let x="A"===r?7:"C"===r?6:"S"===r||"Q"===r?4:"H"===r||"V"===r?1:2,k=[];for(let e=0;e<x;e++){let t=y("A"===r&&(3===e||4===e));if(void 0===t)return;k.push(t)}let v=e=>k[e]+(n?o:0),w=e=>k[e]+(n?a:0),$,M,S;if("H"===r)$=v(0),M=a;else if("V"===r)$=o,M=w(0);else if("C"===r||"S"===r||"Q"===r||"T"===r){let e=f&&("S"===r?"C"===u||"S"===u:"Q"===u||"T"===u)?{x:2*o-f.x,y:2*a-f.y}:{x:o,y:a};if(("S"===r||"T"===r)&&!b(e.x,e.y))return;for(let e=0;e<x-2;e+=2)if(!b(v(e),w(e+1)))return;$=v(x-2),M=w(x-1),S="T"===r?e:{x:v(x-4),y:w(x-3)}}else if("A"===r){$=v(5),M=w(6);let e=Math.abs(k[0]),t=Math.abs(k[1]);if(e>0&&t>0&&($!==o||M!==a)){let r=k[2]%360*Math.PI/180,n=Math.cos(r),i=Math.sin(r),s=(o-$)/2,l=(a-M)/2,d=n*s+i*l,u=-i*s+n*l,f=Math.hypot(d/e,u/t);f>1&&(e*=f,t*=f);let c=(d/e)**2+(u/t)**2,h=(k[3]===k[4]?-1:1)*Math.sqrt(Math.max(0,(1-c)/c)),p=h*e*u/t,m=-h*t*d/e,g=n*p-i*m+(o+$)/2,y=i*p+n*m+(a+M)/2,x=Math.hypot(e*n,t*i),v=Math.hypot(e*i,t*n);if(!b(g-x,y-v)||!b(g+x,y+v))return}}else $=v(0),M=w(1),"M"===r&&(s=$,l=M,d=n?"l":"L");if(!b($,M)||t&&"M"!==r&&!t({bounds:h,...["L","H","V"].includes(r)?{line:[{x:o,y:a},{x:$,y:M}]}:{}}))return;o=$,a=M,f=S,u=r}}function tZ(e,t,r){return void 0!==tU(e,t,r)}function tX(e){switch(e.kind){case"rect":return{x0:e.x,y0:e.y,x1:e.x+e.width,y1:e.y+e.height};case"circle":return{x0:e.cx-e.r,y0:e.cy-e.r,x1:e.cx+e.r,y1:e.cy+e.r};case"ellipse":return{x0:e.cx-e.rx,y0:e.cy-e.ry,x1:e.cx+e.rx,y1:e.cy+e.ry};case"line":return{x0:Math.min(e.x1,e.x2),y0:Math.min(e.y1,e.y2),x1:Math.max(e.x1,e.x2),y1:Math.max(e.y1,e.y2)};case"polygon":case"polyline":return tG(e.points);case"compound":{let t;for(let r of e.children){let e=tX(r);if(!e)return;t=tV(t,e)}return t}case"path":return tU(e.d)}}function tK(e,t,r,n=!1,i){if(!e||!t)return;let o=e.geometry?tX(e.geometry):void 0;if(n&&e.geometry&&!o)return;let a=e.bounds??o??(e.viewBox?{x0:e.viewBox.x,y0:e.viewBox.y,x1:e.viewBox.x+e.viewBox.width,y1:e.viewBox.y+e.viewBox.height}:void 0)??(e.size?{x0:0,y0:0,x1:e.size.width,y1:e.size.height}:void 0);if(!a)return;if(n){a=tV(a,o);let t=t8(e.paint??{},!0);if(void 0===t)return;a=tJ(a,t)}let s=e.ref?.x??0,l=e.ref?.y??0,d=a;if(e.viewBox&&e.size){let t=Math.min(e.size.width/e.viewBox.width,e.size.height/e.viewBox.height),r=(e.size.width-e.viewBox.width*t)/2,n=(e.size.height-e.viewBox.height*t)/2,i=n=>r+(n-e.viewBox.x)*t,o=r=>n+(r-e.viewBox.y)*t;d={x0:i(a.x0),y0:o(a.y0),x1:i(a.x1),y1:o(a.y1)},s=i(s),l=o(l)}let u=(e.units??"strokeWidth")==="strokeWidth"?r:1,f=Math.max(+!!n,e.scale??1)*u;if(void 0!==i){let e=i*Math.PI/180,r=Math.cos(e),n=Math.sin(e),o=[[d.x0,d.y0],[d.x0,d.y1],[d.x1,d.y0],[d.x1,d.y1]].map(([e,i])=>({x:t.x+((e-s)*r-(i-l)*n)*f,y:t.y+((e-s)*n+(i-l)*r)*f}));return o.every(e=>Number.isFinite(e.x)&&Number.isFinite(e.y))?tG(o):void 0}let c=Math.max(Math.abs(d.x0-s),Math.abs(d.x1-s)),h=Math.max(Math.abs(d.y0-l),Math.abs(d.y1-l)),p=(n?Math.hypot(c,h):Math.max(c,h))*f;return{x0:t.x-p,y0:t.y-p,x1:t.x+p,y1:t.y+p}}function tQ(e,t){let r=e.route.geometry,n=eC(r,e.route.closed),i=eI(r,e.route.closed),o=t3(t,e.transform),a=[],s=(t,n,i,s)=>{if(!n||!i)return;let l="number"==typeof n.orient?n.orient:s?180*Math.atan2(s.y,s.x)/Math.PI+180*("start"===t&&"auto-start-reverse"===n.orient):void 0,d=tY(e.stroke.width),u=tK(n,i,d,!0,l),f=e9(o),c=JSON.stringify([{...n,orient:n.orient??"auto"},l??["unknown",r],"userSpaceOnUse"===n.units?1:d,f.slice(0,4)]),h,p;if(void 0!==l&&n.geometry?.kind==="polygon"&&n.geometry.points.length<=64){let e=(n.viewBox&&n.size?Math.min(n.size.width/n.viewBox.width,n.size.height/n.viewBox.height):1)*Math.max(1,n.scale??1)*("userSpaceOnUse"===n.units?1:d),t=l*Math.PI/180,r=Math.cos(t),o=Math.sin(t);h=n.geometry.points.map(t=>{let a=(t.x-(n.ref?.x??0))*e,s=(t.y-(n.ref?.y??0))*e;return te({x:i.x+a*r-s*o,y:i.y+a*o+s*r},f)});let[a,s,u,c]=f,m=(Math.hypot(a+c,s-u)+Math.hypot(a-c,s+u))/2,g=t8(n.paint??{},!0);void 0!==(p=void 0===g?void 0:g*e*m)&&Number.isFinite(p)&&h.every(e=>Number.isFinite(e.x)&&Number.isFinite(e.y))||(h=void 0)}a.push({position:t,resource:n.id,anchor:te(i,f),repaint:c,...h?{hull:h,padding:p}:{},...u?{bounds:t5(u,o)}:{}})};if(n.starts.forEach((t,r)=>s("start",e.markers.start,t,e.route.contours[r]?.startTangent)),n.ends.forEach((t,r)=>s("end",e.markers.end,t,e.route.contours[r]?.endTangent)),1===e.markers.mid.length)for(let t of i)s("mid",e.markers.mid[0],t);else e.markers.mid.forEach((e,t)=>s("mid",e,i[t]));return a}function tY(e){let t="number"==typeof e?e:parseFloat(e);return Number.isFinite(t)?Math.max(0,t):1}var t0=new WeakMap;function t1(e){let t=w(e.text,e.textContent),r="string"==typeof t?t:t.source;if(e.block){let t=e.block;if(t.prepared.source!==r||void 0!==e.fontSize&&e.fontSize!==t.fontSize||void 0!==e.fontWeight&&e.fontWeight!==t.fontWeight||void 0!==e.letterSpacing&&e.letterSpacing!==t.letterSpacing||void 0!==e.display&&e.display!==t.prepared.display)throw TypeError("Connector inline label typography and source must agree with its prepared block");return t}let n=e.fontSize??12,i=e.fontWeight??400,o=e.letterSpacing??0,a=e.display??"literal",s=t0.get(e);if(s&&("string"==typeof t?s.prepared.source===r:s.prepared===t)&&s.fontSize===n&&s.fontWeight===i&&s.letterSpacing===o&&s.prepared.display===a)return s;let l=tq(t,{display:a,fontSize:n,fontWeight:i,letterSpacing:o});return t0.set(e,l),l}function t2(e){if(e.visual?.kind!=="inline"||!e.anchor||void 0===e.fontSize||void 0===e.textAnchor)return;let t=t1(e),r=t.width,n="middle"===e.textAnchor?e.anchor.x-r/2:"end"===e.textAnchor?e.anchor.x-r:e.anchor.x,i=e.anchor.y-Math.max(0,e.clearance??0),o=Math.max(0,e.halo?.width??0)/2;return tJ({x0:n,y0:i-.35*t.fontSize-t.height/2,x1:n+r,y1:i-.35*t.fontSize+t.height/2},o)}function t5(e,t){if(![e.x0,e.y0,e.x1,e.y1].every(Number.isFinite))return;if(!t)return e;if("rotate"===t.kind)return tT(e,{x:t.cx,y:t.cy},t.angle);let r=e9(t),n=e.x0,i=e.y0,o=e.x0,a=e.y1,s=e.x1,l=e.y0,d=e.x1,u=e.y1;if(1===r[0]&&0===r[1]&&0===r[2]&&1===r[3]&&n===o&&i===l&&s===d&&a===u&&0!==n&&0!==i&&0!==s&&0!==a&&Number.isFinite(n)&&Number.isFinite(i)&&Number.isFinite(s)&&Number.isFinite(a)){let e=te({x:n,y:i},r),t=te({x:d,y:u},r);return Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(t.x)&&Number.isFinite(t.y)?{x0:Math.min(e.x,t.x),y0:Math.min(e.y,t.y),x1:Math.max(e.x,t.x),y1:Math.max(e.y,t.y)}:void 0}let f=[[n,i],[o,a],[s,l],[d,u]].map(([e,t])=>te({x:e,y:t},r));return f.every(e=>Number.isFinite(e.x)&&Number.isFinite(e.y))?tG(f):void 0}function t3(e,t){if(!e)return t;if(!t)return e;let[r,n,i,o,a,s]=e7(e9(e),e9(t));return{kind:"matrix",a:r,b:n,c:i,d:o,e:a,f:s}}function t6(e){return"line"!==e.geometry.kind&&!("polyline"===e.geometry.kind&&2===e.geometry.points.length&&!e.closed)}function t8(e,t){if(void 0===e.stroke||"none"===e.stroke||"transparent"===e.stroke||e0(e.stroke)?.[3]===0)return 0;let r=e.strokeWidth??"1";if(!/^\s*(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?(?:px)?\s*$/.test(r))return;let n=Number.parseFloat(r)/2;if(!Number.isFinite(n))return;let i=e.strokeLinejoin??"miter",o=Number(e.strokeMiterlimit??4);if(!Number.isFinite(o)||o<1)return;let a=Math.max(t&&("miter"===i||"miter-clip"===i)?n*o:n,"square"===e.strokeLinecap?n*Math.SQRT2:n);return Number.isFinite(a)?a:void 0}function t4(e,t,r,n){if(!r)return t5(tJ(e,t),n);let i=t5(e,n);return i?tJ(i,t):void 0}function t9(e,t,r,n,i,o){return"line"!==e.kind||i?t4(t,r,i,o):t5(function(e,t,r){let n=tX(e),i=Math.hypot(e.x2-e.x1,e.y2-e.y1);if(void 0!==r&&"butt"!==r||0===i)return tJ(n,t);let o=t*Math.abs(e.y2-e.y1)/i,a=t*Math.abs(e.x2-e.x1)/i;return{x0:n.x0-o,y0:n.y0-a,x1:n.x1+o,y1:n.y1+a}}(e,r,n),o)}function t7(e,t,r,n){let i=0;for(let o=0;o<32;o++){let a,s=o/32,l=(o+1)/32,d=e=>Math.min(l,Math.max(s,e)),u=r=>e*(1-r)**2+t*(1+r+r*r),f=6*r*Math.min(s*(1-s),l*(1-l)),c=6*n*r*l/Math.hypot((a=d(e/(e+t)),3*(e*(1-a)**2+t*a*a)),f)-u(d((2*e-t)/(2*(e+t))));c>0&&(i=Math.max(i,(1-s)*c))}return Math.min(n,i)}function re(e,t){return function e(t,r){let n,i=t3(r,t.transform);if(!i||tt(e9(i))){if("shape"===t.kind){if(!(n=tX(t.geometry)))return;let e=["polygon","polyline","path","compound"].includes(t.geometry.kind),r;for(let o of[t.paint,...t.childPaints??[]]){let a=t8(o,e),s=void 0===a?void 0:t9(t.geometry,n,a,o.strokeLinecap,"non-scaling-stroke"===o.vectorEffect,i);if(!s)return;r=r?tV(r,s):s}if(!t.conditionalPaint)return r;let o=t8(t.conditionalPaint,["polygon","polyline","path","compound"].includes(t.geometry.kind));if(!r||void 0===o)return;let a=t9(t.geometry,n,o,t.conditionalPaint.strokeLinecap,"non-scaling-stroke"===t.conditionalPaint.vectorEffect,i);return a?tV(r,a):void 0}if("connector"===t.kind)return function(e,t){let r=e.route.geometry,n=tX(r),i=t8({stroke:e.stroke.color,strokeWidth:String(e.stroke.width),strokeLinecap:e.stroke.lineCap,strokeLinejoin:e.stroke.lineJoin,strokeMiterlimit:String(e.stroke.miterLimit)},t6(e.route));if(!n||void 0===i)return;let o="path"!==r.kind||"butt"!==e.stroke.lineCap||e.stroke.nonScaling?void 0:function(e,t){if(!/^[\s,0-9eE.+\-MC]+$/.test(e))return;let r=e.match(/[MC]|[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g);if(!r||10!==r.length||"M"!==r[0]||"C"!==r[3])return;let n=r.filter(e=>"M"!==e&&"C"!==e).map(Number);if(!n.every(Number.isFinite))return;let[i,o,a,s,l,d,u,f]=n;if(a!==l||s!==o||d!==f||!((a-i)*(u-a)>0))return;let c=Math.abs(a-i),h=Math.abs(u-a),p=Math.abs(f-o),m=Math.sign(u-i),g=[i-m*t7(h,c,p,t),u+m*t7(c,h,p,t)];return{x0:Math.min(...g),y0:Math.min(o,f)-t,x1:Math.max(...g),y1:Math.max(o,f)+t}}(r.d,tY(e.stroke.width)/2),a=o?t5(o,t):t4(n,i,e.stroke.nonScaling,t);if(!a)return;let s=tY(e.stroke.width),l=eC(r,e.route.closed),d=eI(r,e.route.closed);for(let{marker:r,anchor:n}of[...l.starts.flatMap(t=>e.markers.start?[{marker:e.markers.start,anchor:t}]:[]),...l.ends.flatMap(t=>e.markers.end?[{marker:e.markers.end,anchor:t}]:[]),...1===e.markers.mid.length?d.map(t=>({marker:e.markers.mid[0],anchor:t})):e.markers.mid.map((e,t)=>({marker:e,anchor:d[t]}))]){let e=tK(r,n,s,!0),i=e&&t5(e,t);if(!i)return;a=tV(a,i)}for(let r of e.labels){let e=tV(r.bounds,t2(r));if(r.visual?.kind==="inline"&&!e)return;if(e){let r=t5(e,t);if(!r)return;a=tV(a,r)}}return a}(t,i);if("text"===t.kind){n=function(e){let t;if("shape"===e.kind)t=tX(e.geometry);else if("connector"===e.kind)t=function(e){let t=e.route.geometry,r="path"===t.kind?tG(t.points):tX(t);if(!r)return;let n=tY(e.stroke.width),i=n/2;r=tJ(r,"miter"===e.stroke.lineJoin||"miter-clip"===e.stroke.lineJoin?i*Math.max(1,e.stroke.miterLimit):i);let o=eC(t,e.route.closed);for(let t of o.starts)r=tV(r,tK(e.markers.start,t,n));for(let t of o.ends)r=tV(r,tK(e.markers.end,t,n));let a=eI(t,e.route.closed);if(1===e.markers.mid.length)for(let t of a)r=tV(r,tK(e.markers.mid[0],t,n));else for(let t=0;t<e.markers.mid.length;t++)r=tV(r,tK(e.markers.mid[t],a[t],n));for(let t of e.labels)t.bounds&&(r=tV(r,t.bounds)),r=tV(r,t2(t));return r}(e);else{if("text"!==e.kind)return;let r=e.textLayout??tq(e.text,{display:e.display,fontSize:e.fontSize,fontWeight:e.fontWeight??500,letterSpacing:e.letterSpacing}),n=r.width,i="middle"===e.anchor?e.x-n/2:"end"===e.anchor?e.x-n:e.x,o="offsetY"in r?r.offsetY:-(.35*e.fontSize);t={x0:i,y0:e.y+o-r.height/2,x1:i+n,y1:e.y+o+r.height/2}}return t?t5(t,e.transform):void 0}({...t,transform:void 0});let e=t8(t.paint,!1);return n&&void 0!==e?t4(n,e,"non-scaling-stroke"===t.paint.vectorEffect,i):void 0}if("group"!==t.kind)return;for(let r of t.children){if("document"===r.node.kind&&r.node.nonPaint)continue;let t=e(r.node,i);if(!t)return;n=tV(n,t)}return n}}(e,t)}var rt=class{value="";raw(e){this.value+=e}attribute(e,t){this.value+=` ${e}="${"number"==typeof t?o(t):n(a(e,t))}"`}},rr=new Set(["id","role","from","to","relationship","direction","prepared-text","font-metrics","text-fragment","connector-label-for"]),rn=/^[A-Za-z0-9_-]+(?: [A-Za-z0-9_-]+)*$/,ri=/^[a-z][a-z0-9-]*$/;function ro(e,t){if(t){if(t.className&&e.attribute("class",t.className),t.data)for(let r of Object.keys(t.data))e.attribute(`data-${r}`,t.data[r]);t.ariaHidden&&e.attribute("aria-hidden","true"),0===t.tabIndex&&e.attribute("tabindex",0),void 0!==t.ariaLabel&&e.attribute("aria-label",t.ariaLabel)}}function ra(e,t){void 0!==t.fill&&e.attribute("fill",t.fill),void 0!==t.fillOpacity&&e.attribute("fill-opacity",t.fillOpacity),void 0!==t.stroke&&e.attribute("stroke",t.stroke),void 0!==t.strokeOpacity&&e.attribute("stroke-opacity",t.strokeOpacity),void 0!==t.strokeWidth&&e.attribute("stroke-width",t.strokeWidth),void 0!==t.strokeDasharray&&e.attribute("stroke-dasharray",t.strokeDasharray),void 0!==t.strokeDashoffset&&e.attribute("stroke-dashoffset",t.strokeDashoffset),void 0!==t.strokeLinecap&&e.attribute("stroke-linecap",t.strokeLinecap),void 0!==t.strokeLinejoin&&e.attribute("stroke-linejoin",t.strokeLinejoin),void 0!==t.strokeMiterlimit&&e.attribute("stroke-miterlimit",t.strokeMiterlimit),void 0!==t.vectorEffect&&e.attribute("vector-effect",t.vectorEffect),void 0!==t.paintOrder&&e.attribute("paint-order",t.paintOrder),void 0!==t.opacity&&e.attribute("opacity",t.opacity)}function rs(e,t){t&&e.attribute("transform",tn(t))}function rl(e,t,r){t&&em(t.role)&&(e.attribute("data-id",t.id),e.attribute("data-role",t.role),void 0!==t.from&&e.attribute("data-from",t.from),void 0!==t.to&&e.attribute("data-to",t.to)),r&&(e.attribute("role",r.role),e.attribute("aria-roledescription",r.roleDescription),e.attribute("aria-label",r.label))}function rd(e,t){switch(t.kind){case"rect":e.attribute("x",t.x),e.attribute("y",t.y),e.attribute("width",t.width),e.attribute("height",t.height),void 0!==t.rx&&e.attribute("rx",t.rx),void 0!==t.ry&&e.attribute("ry",t.ry);return;case"circle":e.attribute("cx",t.cx),e.attribute("cy",t.cy),e.attribute("r",t.r);return;case"ellipse":e.attribute("cx",t.cx),e.attribute("cy",t.cy),e.attribute("rx",t.rx),e.attribute("ry",t.ry);return;case"line":e.attribute("x1",t.x1),e.attribute("y1",t.y1),e.attribute("x2",t.x2),e.attribute("y2",t.y2);return;case"polygon":case"polyline":{let r="";for(let e=0;e<t.points.length;e++){let n=t.points[e];r+=`${e?" ":""}${n.x},${n.y}`}e.attribute("points",r);return}case"path":e.attribute("d",t.d)}}function ru(e,t,r,n,i){let o=Math.max(0,Math.min(i,r/2,n));return 0===o?`M${e},${t} H${e+r} V${t+n} H${e} Z`:`M${e+o},${t} H${e+r-o} A${o},${o} 0 0 1 ${e+r},${t+o} V${t+n} H${e} V${t+o} A${o},${o} 0 0 1 ${e+o},${t} Z`}var rf=new WeakMap,rc=new WeakSet,rh=new WeakMap,rp=/<\s*text/i;function rm(e){if(!e.includes("<svg"))return e;let t="",r=0;for(;r<e.length;){let n=e.indexOf("<",r);if(n<0)return t+e.slice(r);if(t+=e.slice(r,n),e.startsWith("\x3c!--",n)){let i=e.indexOf("--\x3e",n+4);if(i<0)return t+e.slice(n);t+=e.slice(n,i+3),r=i+3;continue}let i,o=n+1;for(;o<e.length;o++){let t=e[o];if(i)t===i&&(i=void 0);else if('"'===t||"'"===t)i=t;else if(">"===t)break}if(o>=e.length)return t+e.slice(n);t+=function(e){let t=e.match(/^<([A-Za-z_][A-Za-z0-9_.:-]*)/);if(!t||e.startsWith("</")||e.startsWith("<!")||e.startsWith("<?"))return e;let r=t[1];if("svg"!==r)return e;let n=/\/\s*>$/.test(e),i=n?e.lastIndexOf("/"):e.length-1,o=[],a=t[0].length;for(;a<i;){for(;/\s/.test(e[a]??"");)a++;if(a>=i)break;let t=e.slice(a).match(/^([^\s=<>/]+)/);if(!t)return e;let r=t[1];for(a+=t[0].length;/\s/.test(e[a]??"");)a++;if("="!==e[a])return e;for(a++;/\s/.test(e[a]??"");)a++;let n=e[a];if('"'!==n&&"'"!==n)return e;let s=++a;for(;a<i&&e[a]!==n;)a++;if(e[a]!==n)return e;let l=e.slice(s,a);a++,o.push({name:r,value:'"'===n?l:l.replaceAll('"',"""),index:o.length})}let s=new Map([["xmlns",0],["width",1],["height",2],["viewBox",3],["style",4]]);o.sort((e,t)=>(s.get(e.name)??100)-(s.get(t.name)??100)||tE(e.name,t.name)||e.index-t.index);let l=o.map(e=>`${e.name}="${e.value}"`).join(" ");return`<${r}${l?` ${l}`:""}${n?" /":""}>`}(e.slice(n,o+1)),r=o+1}return t}function rg(e,t){if("document"!==e.kind)throw TypeError(`Scene ${e.kind} "${e.id}" is written from its fields, not stored markup`);return rf.set(e,rm(t)),e}function ry(e){return rc.add(e),e}function rb(e){let t=rf.get(e);if(void 0!==t)return t;if(!rc.has(e))throw TypeError(`Scene node "${e.id}" has no admitted SVG serialization`);let o=rh.get(e);if(void 0!==o)return o;let a=function(e){switch(e.kind){case"shape":return function(e){let t=new rt,r="compound"===e.geometry.kind,n="compound"===e.geometry.kind?e.geometry.children:[e.geometry];for(let i=0;i<n.length;i++){let o=n[i];if("compound"===o.kind)throw TypeError(`Shape "${e.id}" nests compound geometry`);i&&t.raw(`
|
|
4
|
-
`),t.raw(`<${o.kind}`),0===i&&ro(t,e.attributes),rd(t,o),ra(t,r?e.childPaints?.[i]??e.paint:e.paint),rs(t,e.transform),0===i&&rl(t,e.identity,e.accessibility),t.raw(" />")}return t.value}(e);case"text":return function(e){let t=new rt;ro(t,e.attributes),t.attribute("text-anchor",e.anchor),e.dominantBaseline&&t.attribute("dominant-baseline",e.dominantBaseline),e.block?.fontFamily&&t.attribute("font-family",e.block.fontFamily),t.attribute("font-size",e.fontSize),t.attribute("font-weight",e.fontWeight??e.block?.fontWeight??400),(e.letterSpacing??0)!==0&&t.attribute("letter-spacing",e.letterSpacing),e.fontStyle&&t.attribute("font-style",e.fontStyle),e.textDecoration&&t.attribute("text-decoration",e.textDecoration),ra(t,e.paint),rs(t,e.transform),rl(t,e.identity,e.accessibility);let o=t.value.slice(1),a="prepared"===e.measurement&&e.block,s=i(a?e.block:e.text,e.x,e.y,e.fontSize,o,e.baselineShift??.35,"literal"===e.display);if(!e.spans)return s;let l=a?e.block.text:e.text,d=`>${r(l)}</text>`;if(!s.endsWith(d))throw TypeError(`Text "${e.id}" spans require a one-line label`);let u="";for(let t of e.spans)u+=`<tspan fill="${n(t.fill)}">${r(t.text)}</tspan>`;return`${s.slice(0,-d.length)}>${u}</text>`}(e);case"connector":return function(e){let t=new rt,{stroke:r,markers:n}=e,o=r.dash,a=n.mid[0];if("invisible"!==e.lineStyle){let i=e.route.geometry;t.raw(`<${i.kind}`),ro(t,e.attributes),rd(t,i),"line"!==i.kind&&t.attribute("fill","none"),t.attribute("stroke",r.color),void 0!==r.opacity&&t.attribute("stroke-opacity",r.opacity),t.attribute("stroke-width",r.width),o&&t.attribute("stroke-dasharray","string"==typeof o.array?o.array:o.array.join(" ")),o?.offset!==void 0&&t.attribute("stroke-dashoffset",o.offset),"butt"!==r.lineCap&&t.attribute("stroke-linecap",r.lineCap),"miter"!==r.lineJoin&&t.attribute("stroke-linejoin",r.lineJoin),4!==r.miterLimit&&t.attribute("stroke-miterlimit",r.miterLimit),void 0!==r.pathLength&&t.attribute("pathLength",r.pathLength),void 0!==r.paintOrder&&t.attribute("paint-order",r.paintOrder),r.nonScaling&&t.attribute("vector-effect","non-scaling-stroke"),r.mixBlendMode&&t.attribute("style",`mix-blend-mode:${r.mixBlendMode}`),n.start&&t.attribute("marker-start",`url(#${n.start.id})`),a&&t.attribute("marker-mid",`url(#${a.id})`),n.end&&t.attribute("marker-end",`url(#${n.end.id})`),"none"===e.hit.pointerEvents&&t.attribute("pointer-events","none"),rs(t,e.transform),t.attribute("data-relationship",e.relationship.kind),t.attribute("data-direction",e.relationship.direction),rl(t,e.identity,e.accessibility),t.raw(" />")}for(let r=0;r<e.labels.length;r++){let n=function(e,t,r){if(t.visual?.kind!=="inline")return;if(!t.anchor||!t.paint||void 0===t.fontSize||void 0===t.textAnchor)throw TypeError(`Connector "${e.id}" inline label ${r+1} requires anchor, paint, fontSize, and textAnchor`);let n=t1(t),o={...t.paint,...t.halo?{stroke:t.halo.color??"var(--bg)",strokeWidth:String(t.halo.width),paintOrder:"stroke fill"}:{}},a=new rt;return a.attribute("data-id",t.id??`${e.id}-label-${r+1}`),a.attribute("data-role","label"),a.attribute("data-connector-label-for",e.id),a.attribute("font-size",n.fontSize),a.attribute("font-weight",n.fontWeight),n.letterSpacing&&a.attribute("letter-spacing",n.letterSpacing),a.attribute("text-anchor",t.textAnchor),rs(a,e.transform),ra(a,o),i(n,t.anchor.x,t.anchor.y-Math.max(0,t.clearance??0),n.fontSize,a.value.slice(1),0)}(e,e.labels[r],r);void 0!==n&&(t.value&&t.raw(`
|
|
5
|
-
`),t.raw(n))}return t.value}(e);case"group":return[e.open,...e.children.map(e=>rx(rb(e.node),e.indent)),e.close].join(e.join);case"document":throw TypeError(`Scene node "${e.id}" has no admitted SVG serialization`)}}(e);return"group"!==e.kind&&Object.isFrozen(e)&&rh.set(e,a),a}function rx(e,t){if(t<=0||""===e)return e;let r=" ".repeat(t);return r+e.replace(/\n/g,`
|
|
6
|
-
${r}`)}function rk(e,t){let r=rf.get(e);void 0!==r&&rf.set(t,r),rc.has(e)&&rc.add(t)}function rv(e){let t=e=>{if("document"===e.kind){let t=rf.get(e);return void 0!==t&&!rp.test(t)}if(!rc.has(e))return!1;switch(e.kind){case"text":return"prepared"===e.measurement&&void 0!==e.block;case"shape":case"connector":return!0;case"group":return!rp.test(e.open)&&!rp.test(e.close)&&e.children.every(e=>t(e.node))}};return e.parts.every(t)}var rw={};function r$(e,t){if(!ed(e.role).relation||void 0===e.from||void 0===e.to)return;let r={from:e.from,to:e.to,...t?{label:t}:{}};return{label:`${r.from} to ${r.to}${r.label?`: ${r.label}`:""}`,role:"graphics-symbol",roleDescription:"relation",relation:r}}function rM(e,t,r){return!r||Object.hasOwn(e,t)?e[t]:void 0}function rS(e,t){return e?{...e,...rM(e,"geometry",t)?{geometry:rM(e,"geometry",t)}:{},...rM(e,"size",t)?{size:{...rM(e,"size",t)}}:{},...rM(e,"viewBox",t)?{viewBox:{...rM(e,"viewBox",t)}}:{},...rM(e,"ref",t)?{ref:{...rM(e,"ref",t)}}:{},...rM(e,"bounds",t)?{bounds:{...rM(e,"bounds",t)}}:{},...rM(e,"paint",t)?{paint:{...rM(e,"paint",t)}}:{}}:void 0}function rz(e,t){let r=rM(e,"owner",t),n=rM(e,"point",t);return{...e,...r?{owner:{...r}}:{},...n?{point:{...n}}:{}}}function rj(e,t=!1){if(t&&"path"===e.geometry.kind)throw TypeError("Deferred terminal projections require line or polyline geometry");let r=function(e,t,r=!1){let n=["continuous-geometry","stroke-width","stroke-cap","stroke-join"];e.bendRadius>0&&n.push("bend-radius"),void 0!==rM(t,"opacity",r)&&n.push("stroke-opacity"),("miter"===t.lineJoin||"miter-clip"===t.lineJoin)&&n.push("stroke-miter"),rM(t,"dash",r)&&n.push("dash-pattern");let i=rM(t,"dash",r);return i&&void 0!==rM(i,"offset",r)&&n.push("dash-offset"),void 0!==rM(t,"pathLength",r)&&n.push("path-length"),void 0!==rM(t,"paintOrder",r)&&n.push("paint-order"),/^url\(#[A-Za-z_][A-Za-z0-9_.:-]*\)$/.test(t.color)&&n.push("gradient-paint"),void 0!==rM(t,"mixBlendMode",r)&&"normal"!==rM(t,"mixBlendMode",r)&&n.push("mix-blend-mode"),rM(t,"nonScaling",r)&&n.push("non-scaling-stroke"),n}(e.route,e.stroke,t),n=function(e,t=!1){let r=[],n=[];return eE(e,t).forEach((e,t)=>{let i=e.points[0],o=e.closed?i:e.points.at(-1);i&&r.push({point:{...i},contourIndex:t}),o&&n.push({point:{...o},contourIndex:t})}),{starts:r,ends:n}}(e.geometry,e.route.closed),i=function(e,t=!1){if("line"===e.kind)return[];let r=eE(e,t);return"path"===e.kind?(e.markerMidpoints??[]).map(e=>{if(1===r.length)return{point:{...e},contourIndex:0};let t=r.flatMap((t,r)=>t.points.some(t=>ey(t,e))?[r]:[]);if(1!==t.length)throw TypeError("Path marker-mid vertices on multiple subpaths must belong to exactly one typed contour");return{point:{...e},contourIndex:t[0]}}):r.flatMap((e,t)=>{if(e.points.length<2)return[];let r=e.closed&&ey(e.points[0],e.points.at(-1))?e.points.slice(0,-1):e.points;return(e.closed?r.slice(1):r.slice(1,-1)).map(e=>({point:{...e},contourIndex:t}))})}(e.geometry,e.route.closed),o=rM(e.stroke,"dash",t),a={start:rM(e.markers,"start",t)?n.starts.map(r=>({markerId:rM(e.markers,"start",t).id,point:{...r.point},contourIndex:r.contourIndex})):[],mid:0===e.markers.mid.length?[]:i.map((t,r)=>({markerId:(1===e.markers.mid.length?e.markers.mid[0]:e.markers.mid[r]).id,point:{...t.point},contourIndex:t.contourIndex})),end:rM(e.markers,"end",t)?n.ends.map(r=>({markerId:rM(e.markers,"end",t).id,point:{...r.point},contourIndex:r.contourIndex})):[]};return{realization:"invisible"===e.lineStyle?"unsupported":"projected",topology:e.geometry.kind,geometry:e.geometry,direction:e.relationship.direction,relationship:e.relationship.kind,markers:{...rM(e.markers,"start",t)?{start:rS(rM(e.markers,"start",t),t)}:{},mid:e.markers.mid.map(e=>rS(e,t)),...rM(e.markers,"end",t)?{end:rS(rM(e.markers,"end",t),t)}:{}},markerPlacements:a,endpoints:{...e.endpoints,...rM(e.endpoints,"start",t)?{start:rz(rM(e.endpoints,"start",t),t)}:{},...rM(e.endpoints,"end",t)?{end:rz(rM(e.endpoints,"end",t),t)}:{}},route:{ownership:e.route.ownership,closed:e.route.closed,bendRadius:e.route.bendRadius,contours:e.route.contours.map(e=>({...e,start:{...e.start},end:{...e.end},...rM(e,"startTangent",t)?{startTangent:{...rM(e,"startTangent",t)}}:{},...rM(e,"endTangent",t)?{endTangent:{...rM(e,"endTangent",t)}}:{}})),...rM(e.route,"startTangent",t)?{startTangent:{...rM(e.route,"startTangent",t)}}:{},...rM(e.route,"endTangent",t)?{endTangent:{...rM(e.route,"endTangent",t)}}:{},labelAnchors:e.route.labelAnchors.map(e=>({...e}))},stroke:{...e.stroke,...o?{dash:{...o,array:Array.isArray(o.array)?[...o.array]:o.array}}:{}},hit:{...e.hit,geometry:e.hit.geometry},...rM(e,"transform",t)?{transform:{...rM(e,"transform",t)}}:{},labels:e.labels.map(e=>({...e,...rM(e,"anchor",t)?{anchor:{...rM(e,"anchor",t)}}:{},...rM(e,"bounds",t)?{bounds:{...rM(e,"bounds",t)}}:{},...rM(e,"halo",t)?{halo:{...rM(e,"halo",t)}}:{},...rM(e,"paint",t)?{paint:{...rM(e,"paint",t)}}:{},...rM(e,"visual",t)?{visual:{...rM(e,"visual",t)}}:{}})),lineStyle:e.lineStyle,strokeLosses:r,diagnostics:["invisible"===e.lineStyle?"This connector affects layout but is intentionally absent from terminal output.":`The terminal grid preserves connector semantics while projecting continuous stroke fields: ${r.join(", ")}.`,...rM(e,"additionalDiagnostics",t)??[]]}}M(rw,{connector:()=>rV,definitions:()=>rX,documentClose:()=>rK,documentContent:()=>rU,documentOpen:()=>rY,documentText:()=>rZ,drawPathArtwork:()=>r1,group:()=>rQ,indentLines:()=>rx,pathArtwork:()=>r0,shape:()=>rH,text:()=>rJ});var rO=new WeakMap,rE=0;function rF(e){rE++;try{return e()}finally{rE--}}var rT={enumerable:!0,configurable:!0,get(){let e=rO.get(this);if(Object.hasOwn(e,"projection"))return e.projection;let t=rj(e,!0);return rO.set(this,{projection:t}),t},set(e){if(Object.isFrozen(this))throw TypeError("Cannot assign to readonly terminalProjection");Object.defineProperty(this,"terminalProjection",{value:e,enumerable:!0,configurable:!0,writable:!0}),rO.delete(this)}};function rC(e,t){rO.set(e,t),Object.defineProperty(e,"terminalProjection",rT)}function rW(e){let t=rO.get(e);return!t||Object.hasOwn(t,"projection")?void 0:Object.getOwnPropertyDescriptor(e,"terminalProjection")?.get===rT.get?t:void 0}function rI(e,t,r){let n=rO.get(e);return"terminalProjection"===t&&n&&r.get===rT.get?rT.get.call(e):void 0}function rN(e,t){let r=rW(e);return!!r&&(rC(t,r),!0)}function rB(e,t){if(t){for(let r of Object.keys(t))if("className"!==r&&"data"!==r&&"ariaHidden"!==r&&"tabIndex"!==r&&"ariaLabel"!==r)throw TypeError(`Mark "${e}" has unknown attribute hook "${r}"`);if(void 0!==t.className&&!rn.test(t.className))throw TypeError(`Mark "${e}" class must be space-separated CSS tokens`);for(let[r,n]of Object.entries(t.data??{})){if(!ri.test(r))throw TypeError(`Mark "${e}" has an invalid data attribute key "${r}"`);if(rr.has(r))throw TypeError(`Mark "${e}" data-${r} belongs to its typed fields`);if("string"!=typeof n)throw TypeError(`Mark "${e}" data-${r} must be a string`)}if(void 0!==t.ariaHidden&&!0!==t.ariaHidden)throw TypeError(`Mark "${e}" ariaHidden must be true when present`);if(void 0!==t.tabIndex&&0!==t.tabIndex)throw TypeError(`Mark "${e}" tabIndex must be 0 when present`);if(void 0!==t.ariaLabel&&"string"!=typeof t.ariaLabel)throw TypeError(`Mark "${e}" ariaLabel must be a string`)}}var rA=/^(?:class|data-[a-z][a-z0-9-]*|role|aria-[a-z]+|tabindex|pointer-events|transform|style)$/,rL=/^\s*<g\b[^>]*>(?:<title>[^<]*<\/title>)?$/,rP=/^\s*(?:--[A-Za-z0-9_-]+\s*:[^;]*(?:;\s*|$))*$/;function r_(e){if(e.identity)return{...e.identity,role:e.role};let t=e.attributes?.className?.split(" ");return{id:e.id,role:e.role,...t?{classNames:t}:{}}}function rH(e){if(rB(e.id,e.attributes),e.childPaints&&("compound"!==e.geometry.kind||e.childPaints.length!==e.geometry.children.length))throw TypeError(`Shape "${e.id}" child paints must match its compound geometry`);if(!1===e.identity&&e.owner?.role!==e.role)throw TypeError(`Shape "${e.id}" without DOM identity requires an explicit owner with the same role`);let t=!1===e.identity?void 0:r_(e),r=t?r$(t,e.attributes?.data?.label):void 0;if(r&&e.attributes?.ariaLabel!==void 0)throw TypeError(`Shape "${e.id}" takes its aria-label from typed relation accessibility`);return ry({kind:"shape",id:e.id,role:e.role,...t?{identity:t}:{},...e.owner?{owner:e.owner}:{},...e.visibility?{visibility:e.visibility}:{},...r?{accessibility:r}:{},geometry:e.geometry,paint:e.paint,...e.childPaints?{childPaints:e.childPaints}:{},...e.conditionalPaint?{conditionalPaint:e.conditionalPaint}:{},...void 0!==e.surfaceFragment?{surfaceFragment:e.surfaceFragment}:{},...e.channels?{channels:e.channels}:{},...e.transform?{transform:e.transform}:{},...e.attributes?{attributes:e.attributes}:{}})}var rq={id:!0,role:!0,geometry:!0,lineStyle:!0,paint:!0,identity:!0,owner:!0,visibility:!0,endpoints:!0,relationship:!0,route:!0,stroke:!0,markers:!0,labels:!0,hit:!0,terminalProjection:!0,channels:!0,transform:!0,attributes:!0},rD={start:!0,mid:!0,end:!0};function rR(e,t,r){if(!e||"object"!=typeof e||Array.isArray(e))throw TypeError(`${r} fields must be an object`);for(let n of Reflect.ownKeys(e))if(!Object.hasOwn(t,n))throw TypeError(`unknown ${r} field "${String(n)}"`)}function rG(e,t){return t?{...e,...t,...t.owner?{owner:{...t.owner}}:{},...t.point?{point:{...t.point}}:{}}:e??{}}function rV(e){var r;let n;if(rR(e,rq,"connector"),void 0!==e.markers&&rR(e.markers,rD,"marker"),"path"!==e.geometry.kind&&e.route?.closed===!0)throw TypeError(`Connector "${e.id}" closed route topology requires path geometry`);if("path"===e.geometry.kind){let t=e.geometry,n=t.subpaths,i=(r=t.d,r.match(/[Mm](?=\s*[-+.]?\d)/g)?.length??0);if(i>1&&!n)throw TypeError(`Connector "${e.id}" path has multiple SVG subpaths but no typed subpaths`);if(n){if(0===n.length||n.some(e=>e.points.length<2))throw TypeError(`Connector "${e.id}" typed subpaths must each contain at least two points`);if(i!==n.length)throw TypeError(`Connector "${e.id}" typed subpath count disagrees with SVG path moves`);let r=n.flatMap(e=>e.points);if(r.length!==t.points.length||r.some((e,r)=>{let n=t.points[r];return!n||n.x!==e.x||n.y!==e.y}))throw TypeError(`Connector "${e.id}" typed subpaths disagree with the canonical point projection`)}}let i=eE(e.geometry,e.route?.closed??!1),o=1===i.length&&i[0].closed;if("path"===e.geometry.kind&&e.geometry.subpaths&&e.route?.closed!==void 0&&e.route.closed!==o)throw TypeError(`Connector "${e.id}" route.closed disagrees with typed subpath topology`);let a="path"===e.geometry.kind&&e.geometry.subpaths?o:e.route?.closed??!1;if("path"===e.geometry.kind&&(e.geometry.d.match(/[Zz]/g)?.length??0)!==(e.geometry.subpaths?e.geometry.subpaths.filter(e=>e.closed).length:+!!a))throw TypeError(`Connector "${e.id}" SVG close commands disagree with typed closed-contour semantics`);let l=e.markers?.start,d=e.markers?.end,u=e.markers?.mid??[];for(let t of[l,...u,d])if(t?.geometry?.kind==="path"&&!t.bounds&&!t.viewBox&&!t.size)throw TypeError(`Connector "${e.id}" path marker "${t.id}" requires bounds, viewBox, or size`);!function(e,t,r,n){if(0===n.length)return;let i=eI(t,r).length;if(0===i)throw RangeError(`Connector "${e}" has mid markers but no typed interior route points`);if(1!==n.length&&n.length!==i)throw RangeError(`Connector "${e}" mid markers must contain one repeated descriptor or one descriptor per interior route point`);if(1!==new Set(n.map(e=>e.id)).size)throw RangeError(`Connector "${e}" uses distinct mid markers that one SVG marker-mid carrier cannot represent`);n[0].id}(e.id,e.geometry,a,u);let f=function(e,t){if("line"===e.kind)return{start:{point:{x:e.x1,y:e.y1}},end:{point:{x:e.x2,y:e.y2}}};let r=eE(e,t),n=r[0]?.points[0],i=r.at(-1),o=i?.closed?i.points[0]:i?.points.at(-1);return{...n?{start:{point:{...n}}}:{},...o?{end:{point:{...o}}}:{}}}(e.geometry,a);for(let t of["start","end"]){let r=e.endpoints?.[t]?.point,n=f[t]?.point;if(r&&n&&!ey(r,n))throw TypeError(`Connector "${e.id}" endpoints.${t}.point disagrees with typed route geometry`)}let c={...e.endpoints??{},start:rG(f.start,e.endpoints?.start),end:rG(f.end,e.endpoints?.end)},h={kind:e.relationship?.kind??e.role,direction:e.relationship?.direction??(void 0!==c.from&&c.from===c.to?"self":l&&d?"bidirectional":l?"reverse":d?"forward":"undirected")},p=(e.labels??[]).map(e=>{let t=w(e.text,e.textContent),r=s(e.text);return{...e,text:r,..."string"!=typeof t?{textContent:{...e.textContent,value:r}}:{}}}),m={id:e.identity?.id??e.id,role:e.role,...e.identity?.classNames?{classNames:e.identity.classNames}:{},...e.identity?.from??c.from?{from:e.identity?.from??c.from}:{},...e.identity?.to??c.to?{to:e.identity?.to??c.to}:{}},g=p[0],y=r$(m,g?.visual?.kind==="inline"?t1(g).lineBlocks.map(e=>e.runs.map(e=>e.text).join("")).join(`
|
|
7
|
-
`):g?t(w(g.text,g.textContent),g.display??"literal"):void 0);if(rB(e.id,e.attributes),y&&e.attributes?.ariaLabel!==void 0)throw TypeError(`Connector "${e.id}" takes its aria-label from typed relation accessibility`);for(let[t,r]of p.entries())if(r.visual?.kind==="inline"&&(!r.anchor||!r.paint||void 0===r.fontSize||void 0===r.textAnchor))throw TypeError(`Connector "${e.id}" inline label ${t+1} requires anchor, paint, fontSize, and textAnchor`);let b=e.stroke?.width??e.paint.strokeWidth??"1",x=e.stroke?.dash??(e.paint.strokeDasharray?{array:e.paint.strokeDasharray,...void 0!==e.paint.strokeDashoffset?{offset:e.paint.strokeDashoffset}:{}}:void 0),k=e.stroke?.opacity??e.paint.opacity,v=e.stroke?.paintOrder??e.paint.paintOrder,$=e.stroke?.mixBlendMode,M={color:e.stroke?.color??e.paint.stroke??"var(--_line)",width:b,...void 0!==k?{opacity:k}:{},...x?{dash:x}:{},lineCap:e.stroke?.lineCap??e.paint.strokeLinecap??"butt",lineJoin:e.stroke?.lineJoin??e.paint.strokeLinejoin??"miter",miterLimit:e.stroke?.miterLimit??Number(e.paint.strokeMiterlimit??4),...e.stroke?.pathLength!==void 0?{pathLength:e.stroke.pathLength}:{},...void 0!==v?{paintOrder:v}:{},...void 0!==$?{mixBlendMode:$}:{},nonScaling:e.stroke?.nonScaling??"non-scaling-stroke"===e.paint.vectorEffect,...e.stroke?.encodesValue?{encodesValue:!0}:{}},S=eT(e.geometry,a),z=e.route?.contours;if(z&&(z.length!==S.length||z.some((e,t)=>{let r=S[t];return!r||e.start.x!==r.start.x||e.start.y!==r.start.y||e.end.x!==r.end.x||e.end.y!==r.end.y||e.closed!==r.closed})))throw TypeError(`Connector "${e.id}" route contours disagree with typed subpath endpoint topology`);if(!eF(e.geometry)&&z)for(let[t,r]of z.entries()){let n=S[t];for(let i of["startTangent","endTangent"]){let o=r[i],a=n[i];if(o&&(!a||!ey(o,a,1e-9)))throw TypeError(`Connector "${e.id}" route.contours[${t}].${i} disagrees with linear route geometry`)}}let j=z?S.map((e,t)=>{let r=z?.[t],n=r?.startTangent??e.startTangent,i=r?.endTangent??e.endTangent;return{start:{...e.start},end:{...e.end},closed:e.closed,...n?{startTangent:n}:{},...i?{endTangent:i}:{}}}):S;for(let t of j)for(let r of[t.startTangent,t.endTangent]){if(!r)continue;let t=Math.hypot(r.x,r.y);if(!Number.isFinite(t)||Math.abs(t-1)>1e-9)throw TypeError(`Connector "${e.id}" contour tangents must be finite unit vectors`)}for(let t of[e.route?.startTangent,e.route?.endTangent]){if(!t)continue;let r=Math.hypot(t.x,t.y);if(!Number.isFinite(r)||Math.abs(r-1)>1e-9)throw TypeError(`Connector "${e.id}" route tangents must be finite unit vectors`)}for(let[t,r,n]of[["startTangent",e.route?.startTangent,j[0]?.startTangent],["endTangent",e.route?.endTangent,j.at(-1)?.endTangent]])if(r&&n&&!ey(r,n,1e-9))throw TypeError(`Connector "${e.id}" route.${t} disagrees with its contour tangent authority`);let O={geometry:e.geometry,ownership:e.route?.ownership??"family",closed:a,bendRadius:e.route?.bendRadius??0,contours:j,...e.route?.startTangent??j[0]?.startTangent?{startTangent:e.route?.startTangent??j[0]?.startTangent}:{},...e.route?.endTangent??j.at(-1)?.endTangent?{endTangent:e.route?.endTangent??j.at(-1)?.endTangent}:{},labelAnchors:e.route?.labelAnchors??p.flatMap(e=>e.anchor?[e.anchor]:[])};if(e.hit?.closed!==void 0&&e.hit.closed!==a)throw TypeError(`Connector "${e.id}" hit.closed must match route.closed topology`);let E={geometry:e.hit?.geometry??e.geometry,closed:e.hit?.closed??a,strokeWidth:e.hit?.strokeWidth??Math.max(6,Number.isFinite(n="number"==typeof b?b:parseFloat(b))?Math.max(0,n):1),pointerEvents:e.hit?.pointerEvents??("invisible"===e.lineStyle?"none":"stroke")},F={geometry:e.geometry,lineStyle:e.lineStyle,endpoints:c,relationship:h,route:O,stroke:M,markers:{...l?{start:l}:{},mid:u,...d?{end:d}:{}},labels:p,hit:E,...e.transform?{transform:e.transform}:{},additionalDiagnostics:e.terminalProjection?.diagnostics},T={kind:"connector",id:e.id,role:e.role,lineStyle:e.lineStyle,endpoints:c,relationship:h,route:O,stroke:M,markers:{...l?{start:l}:{},mid:u,...d?{end:d}:{}},labels:p,hit:E,terminalProjection:void 0,identity:m,...e.owner?{owner:e.owner}:{},...e.visibility?{visibility:e.visibility}:{},...y?{accessibility:y}:{},...e.channels?{channels:e.channels}:{},...e.transform?{transform:e.transform}:{},...e.attributes?{attributes:e.attributes}:{}};return function(e,t){if(0===rE||"path"===t.geometry.kind||void 0!==t.additionalDiagnostics&&!t.additionalDiagnostics.every(e=>"string"==typeof e)){e.terminalProjection=rj(t);return}t.additionalDiagnostics&&Object.defineProperty(t,"additionalDiagnostics",{value:Object.freeze([...t.additionalDiagnostics])}),rC(e,Object.freeze(t))}(T,F),ry(T)}function rJ(e){let{block:t,...r}=e;if(t){for(let r of["fontSize","fontWeight","letterSpacing"])if(void 0!==e[r]&&e[r]!==t[r])throw TypeError(`Text "${e.id}" ${r} differs from its retained prepared block`)}rB(e.id,e.attributes);let n=e.fontWeight??t?.fontWeight??400,i=e.letterSpacing??t?.letterSpacing??0,o=e.display??t?.prepared.display??"formatted",a=t??tq(e.text,{display:o,fontSize:e.fontSize,fontWeight:n,letterSpacing:i});if(e.spans&&(1!==a.lines.length||e.spans.map(e=>e.text).join("")!==a.text))throw TypeError(`Text "${e.id}" spans must spell its one displayed line`);let s=e.baselineShift??.35,l=a.lines.length,d=t?t.lineHeight:e.fontSize*x,u=(1===l?0:-((l-1)/2)*d)+e.fontSize*s,f="hanging"===e.dominantBaseline?a.lineHeight/2:"middle"===e.dominantBaseline||"central"===e.dominantBaseline?0:-(.35*e.fontSize),c=u+(l-1)*a.lineHeight/2+f,h=r_(e),p=r$(h,e.attributes?.data?.label);if(p&&e.attributes?.ariaLabel!==void 0)throw TypeError(`Text "${e.id}" takes its aria-label from typed relation accessibility`);return ry({kind:"text",...r,identity:h,accessibility:p,block:a,measurement:t?"prepared":"fallback",...t?{prepared:!0,preparedLines:t.lineBlocks.map(e=>e.runs)}:{},fontWeight:n,letterSpacing:i,display:o,textLayout:{width:a.width,height:a.height,lineHeight:a.lineHeight,offsetY:c}})}function rU(e,t){return rg({kind:"document",element:"content",...e},t)}function rZ(e){let t="title"===e.element?"title":"desc",i=e.domId?` id="${n(e.domId)}"`:"";return rg({kind:"document",role:"chrome",...e},`<${t}${i}>${r(e.text)}</${t}>`)}function rX(e,t){return rg({kind:"document",role:"defs",element:"definitions",...e},t)}function rK(){return rg({kind:"document",id:"svg-close",role:"chrome",element:"close"},"</svg>")}function rQ(e){var t;let r,i,o,a,s;!function(e,t,r){let n,i=new Set,o;if((rL.test(t)?(tb(t,void 0,void 0,n={attribute:(t,r)=>{if(i.has(t))throw TypeError(`Group "${e}" open has a duplicate "${t}"`);if(i.add(t),!rA.test(t))throw TypeError(`Group "${e}" open sets "${t}"; paint and geometry belong to typed marks`);if("style"===t&&!rP.test($(r)))throw TypeError(`Group "${e}" open style may only set custom properties; paint belongs to typed marks`);"transform"===t&&(o=r)},expectedName:"g",name:void 0}),n.name):void 0)!=="g")throw TypeError(`Group "${e}" open must be one <g> tag with an optional <title>`);let a=void 0===o?void 0:$(o),s=void 0===a?void 0:tr(a),l=r?e9(r):void 0;if(void 0!==a&&!s)throw TypeError(`Group "${e}" open has an unsupported transform`);if(!!s!=!!l||s&&l&&s.some((e,t)=>Math.abs(e-l[t])>1e-9*Math.max(1,Math.abs(e))))throw TypeError(`Group "${e}" open transform disagrees with its typed transform`)}(e.id,e.open,e.transform);let l=e.join??`
|
|
8
|
-
`,d=(t=e.open,r=t.match(/^\s*<([A-Za-z][\w:-]*)\b[^>]*>/)?.[0]??"",o=((i=e=>{let t=r.match(RegExp(`\\s${e}="([^"]*)"`))?.[1];return void 0===t?void 0:$(t)})("class")??"").split(/\s+/).filter(Boolean),a=i("data-from"),s=i("data-to"),{id:i("data-id")??e.id,role:e.role,...void 0!==a?{from:a}:{},...void 0!==s?{to:s}:{},...o.length>0?{classNames:o}:{}}),u=e.paint&&[...void 0!==e.paint.opacity?[`opacity="${n(e.paint.opacity)}"`]:[],...void 0!==e.paint.fill?[`fill="${n(e.paint.fill)}"`]:[]].join(" "),f=u?e.open.replace(/^<g\b/,`<g ${u}`):e.open,c=e.owner??{id:d.id,role:d.role},h=e.children.map(e=>{var t;let r;if(e.node.owner||"document"===e.node.kind||"group"===e.node.kind)return e;if(rW(e.node)){let t={};for(let r of Object.keys(e.node))t[r]="terminalProjection"===r?void 0:e.node[r];t.owner=c,r=t,rN(e.node,r)}else r={...e.node,owner:c};return t=e.node,(rf.has(t)||rc.has(t))&&rk(e.node,r),{...e,node:r}}),p=rm(eg(f,d));return ry({kind:"group",id:e.id,role:e.role,open:p,close:e.close,children:h,join:l,channels:e.channels,identity:d,owner:c,...e.visibility?{visibility:e.visibility}:{},...e.transform?{transform:e.transform}:{},...e.paint?{paint:e.paint}:{}})}function rY(e,t){return rg({kind:"document",element:"open",id:e.id,role:"prelude"},t)}function r0(e){return r1({shape:rH,group:rQ},e)}function r1(e,t){return e.group({id:t.id,role:"icon",open:t.open,close:"</g>",...t.transform?{transform:t.transform}:{},...t.owner?{owner:t.owner}:{},...t.channels?{channels:t.channels}:{},join:t.join??"",children:t.paths.map((r,n)=>({indent:t.indent??0,node:e.shape({id:eh(t.id,"path",n),role:"icon",geometry:{kind:"path",d:r},paint:t.paint,...t.owner?{owner:t.owner}:{}})}))})}var r2=/^(?:#[0-9a-f]{3,4}|#[0-9a-f]{6}|#[0-9a-f]{8}|[a-z][a-z0-9-]*)$/i,r5=/^var\(--[a-z_][a-z0-9_-]*\)$/i,r3=/^[a-z0-9_#(),.%+\-\s/]*$/i,r6=new Set(["color","color-mix","device-cmyk","hsl","hsla","hwb","lab","lch","oklab","oklch","rgb","rgba"]);function r8(e){let t=[],r=0,n=0;for(let i=0;i<e.length;i++){let o=e[i];if("("===o?r++:")"===o?r--:","===o&&0===r&&(t.push(e.slice(n,i)),n=i+1),r<0)return[e]}return 0!==r?[e]:(t.push(e.slice(n)),t)}function r4(e){return r9(e,!1)}function r9(e,t){if("string"!=typeof e)return;let r=e.trim();if(0===r.length||r.length>256)return;if(r2.test(r))return r;if(!r3.test(r))return;let n=r.indexOf("(");if(n<=0||!r.endsWith(")"))return;let i=0;for(let e of r)if("("===e)i++;else if(")"===e&&--i<0)return;if(0!==i)return;for(let e of r.matchAll(/([a-z][a-z0-9-]*)\s*\(/gi)){let r=e[1].toLowerCase();if(!(t&&"var"===r)&&!r6.has(r))return}let o=r.slice(0,n).trim().toLowerCase();return t&&"var"===o||r6.has(o)?r:void 0}function r7(e,t=!1){let r=nt(e);if(void 0===r)return;let n=r.toLowerCase();return"currentcolor"===n||t&&"none"===n||r5.test(r)||null!==e0(r)?r:void 0}function ne(e){return`a color name, #RGB, #RGBA, #RRGGBB, #RRGGBBAA, rgb(), rgba(), hsl(), hsla(), transparent, currentColor${e?", none":""}, or var(--name)`}function nt(e){return"string"==typeof e&&e.length<=256&&r5.test(e)?e:r9(e,!0)}var nr=/^[a-z0-9_,'(). \t-]+$/i;function nn(e){if("string"!=typeof e)return;let t=function(e){if(!e.includes('"')&&!e.includes("'"))return e;let t="";for(let r=0;r<e.length;r++){let n=e[r];if('"'!==n&&"'"!==n){t+=n;continue}let i=e.indexOf(n,r+1);if(i<0)return;let o=e.slice(r+1,i);if(o.includes('"')||o.includes("'"))return;t+=`'${o}'`,r=i}return t}(e.trim());if(void 0===t||0===t.length||t.length>256||!nr.test(t))return;let r=0;for(let e of t)if("("===e)r++;else if(")"===e&&--r<0)return;if(0===r){for(let e of t.matchAll(/([a-z][a-z0-9-]*)\s*\(/gi))if("var"!==e[1].toLowerCase())return;if(!/\b(?:url|expression|import)\b/i.test(t))return t}}function ni(e){let t=nn(e);if(void 0===t)throw Error("font family must be a safe non-fetching CSS family or var() fallback");return t}function no(e,t){let r=new WeakSet,n=0,i=e=>{if(!(n>t)){if("string"==typeof e){n+=4*e.length+16;return}if(null===e||"object"!=typeof e){n+=16;return}if(r.has(e)){n+=8;return}if(r.add(e),n+=64,e instanceof Map){for(let[r,o]of e)if(n+=32,i(r),i(o),n>t)break}else if(e instanceof Set){for(let r of e)if(n+=16,i(r),n>t)break}else if(e instanceof ArrayBuffer)n+=e.byteLength;else if(ArrayBuffer.isView(e))i(e.buffer);else for(let r of Object.keys(e))if(n+=2*r.length+16,i(e[r]),n>t)break}};return i(e),n}var na={bg:"#FFFFFF",fg:"#27272A"};function ns(e){if(!e.shadow)return"";let t=function(e){if(e.replace("#","").length<6)return!1;let[t,r,n]=eA(e);return(299*t+587*r+114*n)/1e3/255<.4}(e.bg);return` <filter id="bm-shadow" x="-12%" y="-10%" width="128%" height="136%">
|
|
9
|
-
<feDropShadow dx="0" dy="1.5" stdDeviation="2.5" flood-color="${t?"#ffffff":"#000000"}" flood-opacity="${t?"0.12":"0.08"}" />
|
|
10
|
-
</filter>`}function nl(e){return/^[A-Za-z0-9][A-Za-z0-9 _-]*$/.test(e)}function nd(e,t,r,n=!1){e=ni(e);let i=n?[...nl(e)?[`@import url('https://fonts.googleapis.com/css2?family=${encodeURIComponent(e)}:wght@400;500;600;700&display=swap');`]:[],...t?["@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap');"]:[]]:[],o=`
|
|
11
|
-
/* Derived from --bg and --fg (overridable via --line, --accent, etc.) */
|
|
12
|
-
--_text: var(--fg);
|
|
13
|
-
--_text-sec: var(--muted, color-mix(in srgb, var(--fg) 78%, var(--bg)));
|
|
14
|
-
--_text-muted: var(--muted, color-mix(in srgb, var(--fg) 66%, var(--bg)));
|
|
15
|
-
--_text-faint: color-mix(in srgb, var(--fg) 54%, var(--bg));
|
|
16
|
-
--_line: var(--line, color-mix(in srgb, var(--fg) 50%, var(--bg)));
|
|
17
|
-
--_arrow: var(--accent, color-mix(in srgb, var(--fg) 85%, var(--bg)));
|
|
18
|
-
--_node-fill: var(--surface, color-mix(in srgb, var(--fg) 3%, var(--bg)));
|
|
19
|
-
--_node-stroke: var(--border, color-mix(in srgb, var(--fg) 20%, var(--bg)));
|
|
20
|
-
--_group-fill: var(--bg);
|
|
21
|
-
--_group-hdr: color-mix(in srgb, var(--fg) 5%, var(--bg));
|
|
22
|
-
--_inner-stroke: color-mix(in srgb, var(--fg) 12%, var(--bg));
|
|
23
|
-
--_key-badge: color-mix(in srgb, var(--fg) 10%, var(--bg));`,a=r?`
|
|
24
|
-
.node, .class-node, .entity, .actor[data-type="participant"], .note, .block, .timeline-event, .journey-task, .sankey-node { filter: url(#bm-shadow); }`:"",s=` svg { font-family: var(--font, ${nl(e)?`'${e}'`:e}), system-ui, sans-serif; }`;return["<style>",...i.length>0?[` ${i.join(`
|
|
25
|
-
`)}`,s]:[s],...t?[" .mono { font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', ui-monospace, monospace; }"]:[],` svg {${o}`,` }${a}`,"</style>"].join(`
|
|
26
|
-
`)}function nu(e,t,r,n,i){let s=void 0===r.font?void 0:ni(r.font);for(let e of["bg","fg","line","accent","muted","surface","border"]){let t=r[e];void 0!==t&&function(e,t){if(void 0===nt(e))throw Error(`${t} must be a safe non-fetching CSS color or var() reference`)}(t,e)}let l=[`--bg:${r.bg}`,`--fg:${r.fg}`,r.line?`--line:${r.line}`:"",r.accent?`--accent:${r.accent}`:"",r.muted?`--muted:${r.muted}`:"",r.surface?`--surface:${r.surface}`:"",r.border?`--border:${r.border}`:"",s?`--font:${s}`:""].filter(Boolean).join(";"),d=i&&("width"in i||"height"in i||"style"in i||"attrs"in i)?i:void 0,u=d?.attrs??i??{},f=`${l}${n?"":";background:var(--bg)"}${d?.style?`;${d.style}`:""}`,c=Object.entries(u).filter(([,e])=>void 0!==e).map(([e,t])=>`${e}="${t}"`).join(" "),h=c?` ${c}`:"";return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${o(e)} ${o(t)}" width="${a("width",String(d?.width??e))}" height="${a("height",String(d?.height??t))}" style="${f}"${h}>`}var nf=new v(64,262144);function nc(e){let t=[e.bg,e.fg,e.line,e.accent,e.muted,e.surface,e.border].join(`
|
|
27
|
-
`),r=nf.get(t);if(r)return r;let n=Object.freeze(function(e){let{bg:t,fg:r}=e,n=e.surface??e_(r,t,3),i=e_(r,t,5),o=e_(r,t,10),a=np(e,[t,n,i,o]),{text:s,textSec:l,textMuted:d,textFaint:u}=a.legible?a:np(e,[t,i,o]);return{bg:t,fg:r,text:s,textSec:l,textMuted:d,textFaint:u,line:eJ(e.line??e_(r,t,50),t,3,s),arrow:eJ(e.accent??e_(r,t,85),t,3,s),nodeFill:n,nodeStroke:function(e,t,r){let n=e0(e),i=e0(t);if(!n||!i||1!==n[3]||1!==i[3])return e;let o=eP(n[0],n[1],n[2]),a=eP(i[0],i[1],i[2]);if((eV(o,a)??1/0)>=eX)return e;let s=e0(r);return eJ(o,a,eX,s?.[3]===1?eP(s[0],s[1],s[2]):void 0)}(e.border??e_(r,t,20),t,s),groupFill:t,groupHdr:i,innerStroke:e_(r,t,12),keyBadge:o}}(nh(e)??e)),i=2*t.length+no(n,262144);return nf.set(t,n,i),n}function nh(e){if(eQ(e.bg)&&eQ(e.fg))return e;let t=e0(e.bg),r=e0(e.fg);if(!(!t||!r||1!==t[3]||1!==r[3]))return{...e,bg:eP(t[0],t[1],t[2]),fg:eP(r[0],r[1],r[2])}}function np(e,t){let{bg:r,fg:n}=e,i=nm(n,t),o=nm(e.muted??e_(n,r,78),t,i),a=nm(e.muted??e_(n,r,66),t,i),s=nm(e_(n,r,54),t,i,eX),l=(e,r)=>t.every(t=>(eV(e,t)??1/0)>=r),d=[i,o,a].every(e=>l(e,eU))&&l(s,eX);return{text:i,textSec:o,textMuted:a,textFaint:s,legible:d}}function nm(e,t,r,n=eU){let i=e;for(let e=0;e<2;e++)for(let e of t)i=eJ(i,e,n,r);return i}function ng(e){if(!nh(e))return;let t=nc(e),r=new Map;return r.set("bg",t.bg),r.set("fg",t.fg),e.line&&eQ(e.line)&&r.set("line",e.line),e.accent&&eQ(e.accent)&&r.set("accent",e.accent),e.muted&&eQ(e.muted)&&r.set("muted",e.muted),e.surface&&eQ(e.surface)&&r.set("surface",e.surface),e.border&&eQ(e.border)&&r.set("border",e.border),r.set("_text",t.text),r.set("_text-sec",t.textSec),r.set("_text-muted",t.textMuted),r.set("_text-faint",t.textFaint),r.set("_line",t.line),r.set("_arrow",t.arrow),r.set("_node-fill",t.nodeFill),r.set("_node-stroke",t.nodeStroke),r.set("_group-fill",t.groupFill),r.set("_group-hdr",t.groupHdr),r.set("_inner-stroke",t.innerStroke),r.set("_key-badge",t.keyBadge),r}function ny(e,t){if(eQ(e))return e;let r=e.match(/^var\(\s*--([\w-]+)\s*(?:,\s*(#[0-9a-fA-F]{3,8})\s*)?\)$/);if(r)return ng(t)?.get(r[1])??r[2]}function nb(e){let t=new Map;for(let r of e.styleContexts)for(let n of e.source.slice(r.start,r.end).matchAll(/--([\w-]+)\s*:\s*([^;{}]+)/g)){let e=n[2].trim();("none"===e||"currentcolor"===e.toLowerCase()||e0(e)||e.startsWith("var(")&&nt(e))&&t.set(n[1],e)}return t}function nx(e,t){let r=n$(t,e);return r?nM(e,r):e}function nk(e,t){return nw(n(e),n$(t))}function nv(){let e,t;return(r,i)=>{let o=n(r);if(i!==e){let r=Object.isFrozen(i)?Object.getOwnPropertyDescriptors(i):void 0;if(!(r&&Reflect.ownKeys(r).every(e=>"value"in r[e])&&["bg","fg","line","accent","muted","surface","border","font"].every(e=>{let t=r[e];return Object.hasOwn(r,e)&&(void 0===t.value||"string"==typeof t.value)})))return nw(o,n$(i));t=n$(i),e=i}return nw(o,t)}}function nw(e,t){let r=t?t.resolveCss(e,t.vars,10):e;return t&&/[<"]/.test(r)?tv(ty(nM(`<rect fill="${e}"/>`,t))[0],"fill"):$(r)}function n$(e,t){let r=ng(e);if(!r)return;let n=nc(e),i=void 0===t?void 0:tS(t),o=i?nb(i):new Map;for(let[e,t]of r)(e.startsWith("_")||void 0!==t&&!o.has(e))&&o.set(e,t);o.set("bg",n.bg),o.set("fg",n.fg);let a=new Set(["font"]);for(let t of[e.font,e.line,e.accent,e.muted,e.surface,e.border])if(t)for(let e of t.matchAll(/var\(\s*--([\w-]+)/g))o.has(e[1])||a.add(e[1]);return{vars:o,SKIP_VARS:a,resolveCss:(e,t,r)=>{let i=e;for(let e=0;e<r;e++){let e=i;if((i=(i=(i=i.replace(/var\(--([\w-]+)\)/g,(e,r)=>a.has(r)?e:t.get(r)??e)).replace(/var\(--([\w-]+),\s*([^()]+)\)/g,(e,r,n)=>a.has(r)?e:t.get(r)??n.trim())).replace(/color-mix\(in srgb,\s*(#[0-9a-fA-F]{3,8})\s+(\d+(?:\.\d+)?)%,\s*(#[0-9a-fA-F]{3,8}|transparent)\)/g,(e,t,r,i)=>e_(t,"transparent"===i?n.bg:i,parseFloat(r))))===e)break}return i},projection:i}}function nM(e,t){let{vars:r,SKIP_VARS:n,resolveCss:i}=t,o=t.projection??tS(e),a=new Map,s=tj(e,e=>{let t=a.get(e);if(void 0!==t)return t;let n=i(e,r,10);return a.set(e,n),n},o),l=s.includes("color-mix(");if(!l){for(let e of s.matchAll(/var\((?=\s*--([\w-]+))/g))if(!n.has(e[1])){l=!0;break}}if(!l)return s;let d=tS(s),u=nb(d);if(u.size>0)for(let e=0;e<5;e++){let e=tj(s,e=>i(e,u,1),d);if(e===s)break;d=tS(s=e)}return s}function nS(e,t,r,n,i){let o={};return i?(o.role="img",o["aria-roledescription"]=i):(e||t)&&(o.role="img"),e&&(o["aria-labelledby"]=r),t&&(o["aria-describedby"]=n),o}function nz(e,t,r,n,i){if("start"!==r&&"end"!==r)throw TypeError("Arrow endpoint must be start or end");let{width:o,height:a}=t,s="start"===r?0:o,l="start"===r?o:0,d={id:e,shape:"arrow",size:{width:o,height:a},ref:{x:s,y:a/2},...i?{units:i}:{},orient:"auto",geometry:{kind:"polygon",points:[{x:l,y:0},{x:s,y:a/2},{x:l,y:a}]},paint:n};return nE(d),d}function nj(e,t){if(!Number.isFinite(e))throw Error(`Marker ${t} must be finite`);return e}function nO(e){return e.map(e=>`${nj(e.x,"point.x")} ${nj(e.y,"point.y")}`).join(", ")}function nE(e){if("string"!=typeof e.id||""===e.id.trim())throw Error("Marker id must not be empty");if(!["arrow","open-arrow","circle","cross","triangle","diamond","diamond-open"].includes(String(e.shape)))throw Error(`Marker "${e.id}" has an unknown shape`);if(!e.geometry)throw Error(`Marker "${e.id}" must declare geometry`);if(!e.size)throw Error(`Marker "${e.id}" must declare marker size`);if(!e.ref)throw Error(`Marker "${e.id}" must declare a reference point`);if(!(e.size.width>0)||!(e.size.height>0))throw Error(`Marker "${e.id}" size must be positive`);if(nj(e.size.width,"size.width"),nj(e.size.height,"size.height"),nj(e.ref.x,"ref.x"),nj(e.ref.y,"ref.y"),void 0!==e.units&&"strokeWidth"!==e.units&&"userSpaceOnUse"!==e.units)throw Error(`Marker "${e.id}" units must be strokeWidth or userSpaceOnUse`);if("number"==typeof e.orient)nj(e.orient,"orient");else if(void 0!==e.orient&&"auto"!==e.orient&&"auto-start-reverse"!==e.orient)throw Error(`Marker "${e.id}" orient must be auto, auto-start-reverse, or a finite angle`);if(void 0!==e.overflow&&"hidden"!==e.overflow&&"visible"!==e.overflow)throw Error(`Marker "${e.id}" overflow must be hidden or visible`);if(e.viewBox&&(nj(e.viewBox.x,"viewBox.x"),nj(e.viewBox.y,"viewBox.y"),nj(e.viewBox.width,"viewBox.width"),nj(e.viewBox.height,"viewBox.height"),!(e.viewBox.width>0)||!(e.viewBox.height>0)))throw Error(`Marker "${e.id}" viewBox must be positive`)}function nF(e,t={}){nE(e);let r=" ".repeat(t.indent??2),i=`${r} `,o=e.units,a=e.orient??"auto",s=[`id="${n(e.id)}"`,`markerWidth="${nj(e.size.width,"size.width")}"`,`markerHeight="${nj(e.size.height,"size.height")}"`,`refX="${nj(e.ref.x,"ref.x")}"`,`refY="${nj(e.ref.y,"ref.y")}"`,`orient="${n(String(a))}"`,...o?[`markerUnits="${n(o)}"`]:[],...e.viewBox?[`viewBox="${nj(e.viewBox.x,"viewBox.x")} ${nj(e.viewBox.y,"viewBox.y")} ${nj(e.viewBox.width,"viewBox.width")} ${nj(e.viewBox.height,"viewBox.height")}"`]:[],...e.overflow?[`overflow="${n(e.overflow)}"`]:[]];return[`${r}<marker ${s.join(" ")}>`,...function e(t,r,i){let o=function(e){if(!e)return"";let t=[];return void 0!==e.fill&&t.push(`fill="${n(e.fill)}"`),void 0!==e.stroke&&t.push(`stroke="${n(e.stroke)}"`),void 0!==e.strokeWidth&&t.push(`stroke-width="${n(e.strokeWidth)}"`),void 0!==e.strokeDasharray&&t.push(`stroke-dasharray="${n(e.strokeDasharray)}"`),void 0!==e.strokeDashoffset&&t.push(`stroke-dashoffset="${n(e.strokeDashoffset)}"`),void 0!==e.strokeLinecap&&t.push(`stroke-linecap="${n(e.strokeLinecap)}"`),void 0!==e.strokeLinejoin&&t.push(`stroke-linejoin="${n(e.strokeLinejoin)}"`),void 0!==e.strokeMiterlimit&&t.push(`stroke-miterlimit="${n(e.strokeMiterlimit)}"`),void 0!==e.vectorEffect&&t.push(`vector-effect="${n(e.vectorEffect)}"`),void 0!==e.paintOrder&&t.push(`paint-order="${n(e.paintOrder)}"`),void 0!==e.opacity&&t.push(`opacity="${n(e.opacity)}"`),t.length>0?` ${t.join(" ")}`:""}(r);switch(t.kind){case"rect":return[`${i}<rect x="${nj(t.x,"rect.x")}" y="${nj(t.y,"rect.y")}" width="${nj(t.width,"rect.width")}" height="${nj(t.height,"rect.height")}"${void 0!==t.rx?` rx="${nj(t.rx,"rect.rx")}"`:""}${void 0!==t.ry?` ry="${nj(t.ry,"rect.ry")}"`:""}${o} />`];case"circle":return[`${i}<circle cx="${nj(t.cx,"circle.cx")}" cy="${nj(t.cy,"circle.cy")}" r="${nj(t.r,"circle.r")}"${o} />`];case"ellipse":return[`${i}<ellipse cx="${nj(t.cx,"ellipse.cx")}" cy="${nj(t.cy,"ellipse.cy")}" rx="${nj(t.rx,"ellipse.rx")}" ry="${nj(t.ry,"ellipse.ry")}"${o} />`];case"line":return[`${i}<line x1="${nj(t.x1,"line.x1")}" y1="${nj(t.y1,"line.y1")}" x2="${nj(t.x2,"line.x2")}" y2="${nj(t.y2,"line.y2")}"${o} />`];case"polygon":return[`${i}<polygon points="${nO(t.points)}"${o} />`];case"polyline":return[`${i}<polyline points="${nO(t.points)}"${o} />`];case"path":return[`${i}<path d="${n(t.d)}"${o} />`];case"compound":return t.children.flatMap(t=>e(t,r,i))}}(e.geometry,e.paint,i),`${r}</marker>`].join(`
|
|
28
|
-
`)}function nT(e,t={}){let r=new Set;for(let t of e){if(r.has(t.id))throw Error(`Duplicate marker resource "${t.id}"`);r.add(t.id)}return e.map(e=>nF(e,t)).join(`
|
|
29
|
-
`)}export{S as a,T as b,C as c,W as d,N as e,B as f,Z as g,X as h,K as i,ea as j,el as k,ed as l,eu as m,ec as n,eh as o,ep as p,em as q,eg as r,tI as s,tN as t,tq as u,tD as v,tR as w,ey as x,eM as y,eO as z,eE as A,eF as B,eT as C,eC as D,eW as E,eN as F,eA as G,eL as H,eP as I,e_ as J,eq as K,eG as L,eV as M,eJ as N,eU as O,eZ as P,eX as Q,eK as R,eQ as S,eY as T,e0 as U,e5 as V,e6 as W,e8 as X,tT as Y,e4 as Z,e9 as _,e7 as $,te as aa,tt as ba,tr as ca,tn as da,tV as ea,tJ as fa,tZ as ga,tX as ha,tQ as ia,t2 as ja,t5 as ka,t6 as la,t8 as ma,t7 as na,re as oa,rj as pa,rF as qa,rW as ra,rI as sa,rN as ta,ts as ua,tl as va,tc as wa,th as xa,tp as ya,ty as za,tx as Aa,tk as Ba,tv as Ca,t$ as Da,tz as Ea,tj as Fa,tO as Ga,tE as Ha,rr as Ia,rn as Ja,ri as Ka,ru as La,rm as Ma,rb as Na,rx as Oa,rk as Pa,rv as Qa,rH as Ra,rV as Sa,rJ as Ta,rU as Ua,rZ as Va,rX as Wa,rK as Xa,rQ as Ya,rY as Za,r1 as _a,rw as $a,r8 as ab,r4 as bb,r7 as cb,ne as db,nt as eb,nn as fb,no as gb,na as hb,ns as ib,nd as jb,nu as kb,nc as lb,ny as mb,nx as nb,nk as ob,nv as pb,nS as qb,nz as rb,nE as sb,nF as tb,nT as ub};
|